llvm-6502/test/CodeGen/X86
Chandler Carruth 3071363bcd Completely re-write the algorithm behind MachineBlockPlacement based on
discussions with Andy. Fundamentally, the previous algorithm is both
counter productive on several fronts and prioritizing things which
aren't necessarily the most important: static branch prediction.

The new algorithm uses the existing loop CFG structure information to
walk through the CFG itself to layout blocks. It coalesces adjacent
blocks within the loop where the CFG allows based on the most likely
path taken. Finally, it topologically orders the block chains that have
been formed. This allows it to choose a (mostly) topologically valid
ordering which still priorizes fallthrough within the structural
constraints.

As a final twist in the algorithm, it does violate the CFG when it
discovers a "hot" edge, that is an edge that is more than 4x hotter than
the competing edges in the CFG. These are forcibly merged into
a fallthrough chain.

Future transformations that need te be added are rotation of loop exit
conditions to be fallthrough, and better isolation of cold block chains.
I'm also planning on adding statistics to model how well the algorithm
does at laying out blocks based on the probabilities it receives.

The old tests mostly still pass, and I have some new tests to add, but
the nested loops are still behaving very strangely. This almost seems
like working-as-intended as it rotated the exit branch to be
fallthrough, but I'm not convinced this is actually the best layout. It
is well supported by the probabilities for loops we currently get, but
those are pretty broken for nested loops, so this may change later.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142743 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-23 09:18:45 +00:00
..
GC
3addr-16bit.ll
3addr-or.ll
3dnow-intrinsics.ll
4char-promote.ll
2003-08-03-CallArgLiveRanges.ll
2003-08-23-DeadBlockTest.ll
2003-11-03-GlobalBool.ll
2004-02-13-FrameReturnAddress.ll
2004-02-14-InefficientStackPointer.ll
2004-02-22-Casts.ll
2004-03-30-Select-Max.ll
2004-04-09-SameValueCoalescing.ll
2004-04-13-FPCMOV-Crash.ll
2004-06-10-StackifierCrash.ll
2004-10-08-SelectSetCCFold.ll
2005-01-17-CycleInDAG.ll
2005-02-14-IllegalAssembler.ll
2005-05-08-FPStackifierPHI.ll
2006-01-19-ISelFoldingBug.ll
2006-03-01-InstrSchedBug.ll
2006-03-02-InstrSchedBug.ll
2006-04-04-CrossBlockCrash.ll
2006-04-27-ISelFoldingBug.ll
2006-05-01-SchedCausingSpills.ll
2006-05-02-InstrSched1.ll
2006-05-02-InstrSched2.ll
2006-05-08-CoalesceSubRegClass.ll
2006-05-08-InstrSched.ll
2006-05-11-InstrSched.ll Attempt to fix -mtriple=i686-{cygwin|mingw|win32} regressions. Nakamura, 2011-09-20 00:08:12 +00:00
2006-05-17-VectorArg.ll
2006-05-22-FPSetEQ.ll
2006-05-25-CycleInDAG.ll
2006-07-10-InlineAsmAConstraint.ll
2006-07-12-InlineAsmQConstraint.ll
2006-07-20-InlineAsm.ll
2006-07-28-AsmPrint-Long-As-Pointer.ll
2006-07-31-SingleRegClass.ll
2006-08-07-CycleInDAG.ll
2006-08-16-CycleInDAG.ll
2006-08-21-ExtraMovInst.ll
2006-09-01-CycleInDAG.ll
2006-10-02-BoolRetCrash.ll
2006-10-07-ScalarSSEMiscompile.ll
2006-10-09-CycleInDAG.ll
2006-10-10-FindModifiedNodeSlotBug.ll
2006-10-12-CycleInDAG.ll
2006-10-13-CycleInDAG.ll
2006-10-19-SwitchUnnecessaryBranching.ll
2006-11-12-CSRetCC.ll
2006-11-17-IllegalMove.ll
2006-11-27-SelectLegalize.ll
2006-12-16-InlineAsmCrash.ll
2006-12-19-IntelSyntax.ll
2007-01-08-InstrSched.ll
2007-01-08-X86-64-Pointer.ll
2007-01-13-StackPtrIndex.ll
2007-01-29-InlineAsm-ir.ll
2007-02-04-OrAddrMode.ll
2007-02-16-BranchFold.ll
2007-02-19-LiveIntervalAssert.ll
2007-02-23-DAGCombine-Miscompile.ll
2007-02-25-FastCCStack.ll
2007-03-01-SpillerCrash.ll
2007-03-15-GEP-Idx-Sink.ll
2007-03-16-InlineAsm.ll
2007-03-18-LiveIntervalAssert.ll
2007-03-24-InlineAsmMultiRegConstraint.ll
2007-03-24-InlineAsmPModifier.ll
2007-03-24-InlineAsmVectorOp.ll
2007-03-24-InlineAsmXConstraint.ll
2007-03-26-CoalescerBug.ll
2007-04-08-InlineAsmCrash.ll
2007-04-11-InlineAsmVectorResult.ll
2007-04-17-LiveIntervalAssert.ll
2007-04-24-Huge-Stack.ll
2007-04-24-VectorCrash.ll
2007-04-25-MMX-PADDQ.ll
2007-04-27-InlineAsm-IntMemInput.ll
2007-05-05-Personality.ll
2007-05-05-VecCastExpand.ll
2007-05-07-InvokeSRet.ll Update more tests to the new EH scheme. 2011-08-31 21:39:05 +00:00
2007-05-14-LiveIntervalAssert.ll
2007-05-15-maskmovq.ll
2007-05-17-ShuffleISelBug.ll
2007-06-04-X86-64-CtorAsmBugs.ll
2007-06-15-IntToMMX.ll
2007-06-28-X86-64-isel.ll
2007-06-29-DAGCombinerBug.ll
2007-06-29-VecFPConstantCSEBug.ll
2007-07-03-GR64ToVR64.ll
2007-07-10-StackerAssert.ll
2007-07-18-Vector-Extract.ll
2007-08-01-LiveVariablesBug.ll
2007-08-09-IllegalX86-64Asm.ll
2007-08-10-SignExtSubreg.ll
2007-08-13-AppendingLinkage.ll
2007-09-05-InvalidAsm.ll
2007-09-06-ExtWeakAliasee.ll
2007-09-17-ObjcFrameEH.ll
2007-09-18-ShuffleXformBug.ll
2007-09-27-LDIntrinsics.ll
2007-10-04-AvoidEFLAGSCopy.ll
2007-10-12-CoalesceExtSubReg.ll
2007-10-12-SpillerUnfold1.ll
2007-10-12-SpillerUnfold2.ll
2007-10-14-CoalescerCrash.ll
2007-10-15-CoalescerCrash.ll
2007-10-16-CoalescerCrash.ll
2007-10-17-IllegalAsm.ll
2007-10-19-SpillerUnfold.ll
2007-10-28-inlineasm-q-modifier.ll
2007-10-29-ExtendSetCC.ll
2007-10-30-LSRCrash.ll
2007-10-31-extractelement-i64.ll
2007-11-01-ISelCrash.ll
2007-11-03-x86-64-q-constraint.ll
2007-11-04-LiveIntervalCrash.ll
2007-11-04-LiveVariablesBug.ll
2007-11-04-rip-immediate-constant.ll
2007-11-06-InstrSched.ll
2007-11-07-MulBy4.ll
2007-11-30-LoadFolding-Bug.ll
2007-12-16-BURRSchedCrash.ll
2007-12-18-LoadCSEBug.ll
2008-01-08-IllegalCMP.ll
2008-01-08-SchedulerCrash.ll This test depends on cmov being available. 2011-09-01 18:40:01 +00:00
2008-01-09-LongDoubleSin.ll
2008-01-16-FPStackifierAssert.ll
2008-01-16-InvalidDAGCombineXform.ll
2008-01-16-Trampoline.ll
2008-02-05-ISelCrash.ll
2008-02-06-LoadFoldingBug.ll
2008-02-08-LoadFoldingBug.ll
2008-02-14-BitMiscompile.ll
2008-02-18-TailMergingBug.ll
2008-02-20-InlineAsmClobber.ll
2008-02-22-LocalRegAllocBug.ll
2008-02-22-ReMatBug.ll
2008-02-25-InlineAsmBug.ll
2008-02-25-X86-64-CoalescerBug.ll
2008-02-26-AsmDirectMemOp.ll
2008-02-27-DeadSlotElimBug.ll
2008-02-27-PEICrash.ll
2008-03-06-frem-fpstack.ll
2008-03-07-APIntBug.ll
2008-03-10-RegAllocInfLoop.ll
2008-03-12-ThreadLocalAlias.ll
2008-03-13-TwoAddrPassCrash.ll
2008-03-14-SpillerCrash.ll
2008-03-18-CoalescerBug.ll
2008-03-19-DAGCombinerBug.ll
2008-03-23-DarwinAsmComments.ll
2008-03-25-TwoAddrPassBug.ll
2008-03-31-SpillerFoldingBug.ll
2008-04-02-unnamedEH.ll
2008-04-08-CoalescerCrash.ll
2008-04-09-BranchFolding.ll
2008-04-15-LiveVariableBug.ll
2008-04-16-CoalescerBug.ll
2008-04-16-ReMatBug.ll
2008-04-17-CoalescerBug.ll Update more tests to the new EH scheme. 2011-08-31 21:39:05 +00:00
2008-04-24-MemCpyBug.ll
2008-04-24-pblendw-fold-crash.ll
2008-04-26-Asm-Optimize-Imm.ll
2008-04-28-CoalescerBug.ll
2008-04-28-CyclicSchedUnit.ll
2008-05-01-InvalidOrdCompare.ll
2008-05-09-PHIElimBug.ll
2008-05-09-ShuffleLoweringBug.ll
2008-05-12-tailmerge-5.ll
2008-05-21-CoalescerBug.ll
2008-05-22-FoldUnalignedLoad.ll
2008-05-28-CoalescerBug.ll
2008-05-28-LocalRegAllocBug.ll Update more tests to the new EH scheme. 2011-08-31 21:39:05 +00:00
2008-06-13-NotVolatileLoadStore.ll
2008-06-13-VolatileLoadStore.ll
2008-06-16-SubregsBug.ll
2008-06-18-BadShuffle.ll
2008-06-25-VecISelBug.ll
2008-07-07-DanglingDeadInsts.ll
2008-07-09-ELFSectionAttributes.ll
2008-07-11-SHLBy1.ll
2008-07-16-CoalescerCrash.ll
2008-07-19-movups-spills.ll
2008-07-22-CombinerCrash.ll
2008-07-23-VSetCC.ll
2008-08-06-CmpStride.ll
2008-08-06-RewriterBug.ll
2008-08-17-UComiCodeGenBug.ll
2008-08-19-SubAndFetch.ll Convert a bunch more tests over to the new atomic instructions. 2011-09-26 23:15:09 +00:00
2008-08-23-64Bit-maskmovq.ll
2008-08-25-AsmRegTypeMismatch.ll
2008-08-31-EH_RETURN32.ll
2008-08-31-EH_RETURN64.ll
2008-09-05-sinttofp-2xi32.ll Enable element promotion type legalization by deafault. 2011-10-16 20:31:33 +00:00
2008-09-09-LinearScanBug.ll
2008-09-11-CoalescerBug2.ll
2008-09-11-CoalescerBug.ll
2008-09-17-inline-asm-1.ll
2008-09-18-inline-asm-2.ll Fix test typo. 2011-08-31 00:02:59 +00:00
2008-09-19-RegAllocBug.ll
2008-09-25-sseregparm-1.ll
2008-09-26-FrameAddrBug.ll
2008-09-29-ReMatBug.ll
2008-09-29-VolatileBug.ll
2008-10-06-MMXISelBug.ll
2008-10-06-x87ld-nan-1.ll
2008-10-06-x87ld-nan-2.ll
2008-10-07-SSEISelBug.ll
2008-10-11-CallCrash.ll
2008-10-13-CoalescerBug.ll
2008-10-16-VecUnaryOp.ll
2008-10-17-Asm64bitRConstraint.ll
2008-10-20-AsmDoubleInI32.ll
2008-10-24-FlippedCompare.ll
2008-10-27-CoalescerBug.ll
2008-10-27-StackRealignment.ll
2008-10-29-ExpandVAARG.ll
2008-11-03-F80VAARG.ll
2008-11-06-testb.ll
2008-11-13-inlineasm-3.ll
2008-11-29-ULT-Sign.ll
2008-12-01-loop-iv-used-outside-loop.ll
2008-12-01-SpillerAssert.ll
2008-12-02-dagcombine-1.ll
2008-12-02-dagcombine-2.ll
2008-12-02-dagcombine-3.ll
2008-12-02-IllegalResultType.ll
2008-12-12-PrivateEHSymbol.ll
2008-12-16-BadShift.ll
2008-12-16-dagcombine-4.ll
2008-12-19-EarlyClobberBug.ll
2008-12-22-dagcombine-5.ll
2008-12-23-crazy-address.ll
2008-12-23-dagcombine-6.ll
2009-01-13-DoubleUpdate.ll
2009-01-16-SchedulerBug.ll
2009-01-16-UIntToFP.ll
2009-01-18-ConstantExprCrash.ll
2009-01-25-NoSSE.ll
2009-01-26-WrongCheck.ll
2009-01-27-NullStrings.ll
2009-01-31-BigShift2.ll
2009-01-31-BigShift3.ll
2009-01-31-BigShift.ll
2009-02-01-LargeMask.ll
2009-02-03-AnalyzedTwice.ll
2009-02-04-sext-i64-gep.ll
2009-02-05-CoalescerBug.ll
2009-02-08-CoalescerBug.ll
2009-02-09-ivs-different-sizes.ll
2009-02-11-codegenprepare-reuse.ll
2009-02-12-DebugInfoVLA.ll
2009-02-12-InlineAsm-nieZ-constraints.ll
2009-02-12-SpillerBug.ll
2009-02-21-ExtWeakInitializer.ll
2009-02-25-CommuteBug.ll
2009-02-26-MachineLICMBug.ll
2009-03-03-BitcastLongDouble.ll
2009-03-03-BTHang.ll
2009-03-05-burr-list-crash.ll
2009-03-07-FPConstSelect.ll
2009-03-09-APIntCrash.ll
2009-03-09-SpillerBug.ll
2009-03-10-CoalescerBug.ll
2009-03-12-CPAlignBug.ll
2009-03-13-PHIElimBug.ll Update more tests to the new EH scheme. 2011-08-31 21:39:05 +00:00
2009-03-16-PHIElimInLPad.ll Update more tests to the new EH scheme. 2011-08-31 21:39:05 +00:00
2009-03-16-SpillerBug.ll
2009-03-23-i80-fp80.ll
2009-03-23-LinearScanBug.ll
2009-03-23-MultiUseSched.ll
2009-03-25-TestBug.ll
2009-03-26-NoImplicitFPBug.ll
2009-04-12-FastIselOverflowCrash.ll
2009-04-12-picrel.ll
2009-04-13-2AddrAssert-2.ll
2009-04-13-2AddrAssert.ll
2009-04-14-IllegalRegs.ll
2009-04-16-SpillerUnfold.ll
2009-04-21-NoReloadImpDef.ll
2009-04-24.ll
2009-04-25-CoalescerBug.ll
2009-04-27-CoalescerAssert.ll
2009-04-27-LiveIntervalsAssert2.ll
2009-04-27-LiveIntervalsAssert.ll
2009-04-29-IndirectDestOperands.ll
2009-04-29-LinearScanBug.ll
2009-04-29-RegAllocAssert.ll
2009-04-scale.ll
2009-05-08-InlineAsmIOffset.ll
2009-05-11-tailmerge-crash.ll
2009-05-19-SingleElementExtractElement.ll
2009-05-23-available_externally.ll
2009-05-23-dagcombine-shifts.ll
2009-05-28-DAGCombineCrash.ll
2009-05-30-ISelBug.ll
2009-06-02-RewriterBug.ll
2009-06-03-Win64DisableRedZone.ll
2009-06-03-Win64SpillXMM.ll
2009-06-04-VirtualLiveIn.ll
2009-06-05-ScalarToVectorByteMMX.ll Attempt to fix -mtriple=i686-{cygwin|mingw|win32} regressions. Nakamura, 2011-09-20 00:08:12 +00:00
2009-06-05-sitofpCrash.ll
2009-06-05-VariableIndexInsert.ll
2009-06-05-VZextByteShort.ll Enable element promotion type legalization by deafault. 2011-10-16 20:31:33 +00:00
2009-06-06-ConcatVectors.ll
2009-06-07-ExpandMMXBitcast.ll Add tripple and stabalize a few more tests. 2011-10-16 21:20:54 +00:00
2009-06-12-x86_64-tail-call-conv-out-of-sync-bug.ll
2009-06-15-not-a-tail-call.ll
2009-06-18-movlp-shuffle-register.ll - Move all MOVSS and MOVSD patterns close to their definitions 2011-08-31 03:04:20 +00:00
2009-07-06-TwoAddrAssert.ll
2009-07-07-SplitICmp.ll
2009-07-09-ExtractBoolFromVector.ll
2009-07-15-CoalescerBug.ll
2009-07-16-CoalescerBug.ll
2009-07-17-StackColoringBug.ll
2009-07-19-AsmExtraOperands.ll
2009-07-20-CoalescerBug.ll
2009-07-20-DAGCombineBug.ll
2009-08-02-mmx-scalar-to-vector.ll
2009-08-06-branchfolder-crash.ll
2009-08-06-inlineasm.ll
2009-08-08-CastError.ll
2009-08-12-badswitch.ll
2009-08-14-Win64MemoryIndirectArg.ll
2009-08-19-LoadNarrowingMiscompile.ll
2009-08-23-linkerprivate.ll
2009-08-23-SubRegReuseUndo.ll
2009-09-10-LoadFoldingBug.ll Update more tests to the new EH scheme. 2011-08-31 21:39:05 +00:00
2009-09-10-SpillComments.ll
2009-09-16-CoalescerBug.ll
2009-09-19-earlyclobber.ll
2009-09-21-NoSpillLoopCount.ll
2009-09-22-CoalescerBug.ll
2009-09-23-LiveVariablesBug.ll
2009-10-14-LiveVariablesBug.ll
2009-10-16-Scope.ll Add a new wrapper node for a DILexicalBlock that encapsulates it and a 2011-10-11 22:59:11 +00:00
2009-10-19-atomic-cmp-eflags.ll Convert a bunch more tests over to the new atomic instructions. 2011-09-26 23:15:09 +00:00
2009-10-19-EmergencySpill.ll
2009-10-25-RewriterBug.ll
2009-11-04-SubregCoalescingBug.ll
2009-11-13-VirtRegRewriterBug.ll
2009-11-16-MachineLICM.ll
2009-11-16-UnfoldMemOpBug.ll
2009-11-17-UpdateTerminator.ll
2009-11-18-TwoAddrKill.ll
2009-11-25-ImpDefBug.ll Update more tests to the new EH scheme. 2011-08-31 21:39:05 +00:00
2009-12-01-EarlyClobberBug.ll Be more aggressive about following hints. 2011-07-08 20:46:18 +00:00
2009-12-11-TLSNoRedZone.ll
2010-01-05-ZExt-Shl.ll
2010-01-07-ISelBug.ll
2010-01-07-UAMemFeature.ll
2010-01-08-Atomic64Bug.ll Convert a bunch more tests over to the new atomic instructions. 2011-09-26 23:15:09 +00:00
2010-01-11-ExtraPHIArg.ll
2010-01-13-OptExtBug.ll
2010-01-15-SelectionDAGCycle.ll
2010-01-18-DbgValue.ll
2010-01-19-OptExtBug.ll
2010-02-01-DbgValueCrash.ll
2010-02-01-TaillCallCrash.ll
2010-02-03-DualUndef.ll
2010-02-04-SchedulerBug.ll
2010-02-11-NonTemporal.ll
2010-02-12-CoalescerBug-Impdef.ll Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
2010-02-15-ImplicitDefBug.ll
2010-02-19-TailCallRetAddrBug.ll
2010-02-23-DAGCombineBug.ll
2010-02-23-DIV8rDefinesAX.ll
2010-02-23-RematImplicitSubreg.ll
2010-02-23-SingleDefPhiJoin.ll
2010-03-04-Mul8Bug.ll
2010-03-05-ConstantFoldCFG.ll
2010-03-05-EFLAGS-Redef.ll
2010-03-17-ISelBug.ll
2010-04-06-SSEDomainFixCrash.ll Update more tests to the new EH scheme. 2011-08-31 21:39:05 +00:00
2010-04-07-DbgValueOtherTargets.ll
2010-04-08-CoalescerBug.ll
2010-04-13-AnalyzeBranchCrash.ll
2010-04-21-CoalescerBug.ll
2010-04-23-mmx-movdq2q.ll Enable element promotion type legalization by deafault. 2011-10-16 20:31:33 +00:00
2010-04-29-CoalescerCrash.ll
2010-04-30-LocalAlloc-LandingPad.ll Cannot have an llvm.eh.exception call in a non-landing pad block. 2011-08-27 04:53:28 +00:00
2010-05-03-CoalescerSubRegClobber.ll
2010-05-05-LocalAllocEarlyClobber.ll
2010-05-06-LocalInlineAsmClobber.ll
2010-05-07-ldconvert.ll
2010-05-10-DAGCombinerBug.ll
2010-05-12-FastAllocKills.ll
2010-05-16-nosseconversion.ll
2010-05-25-DotDebugLoc.ll
2010-05-26-DotDebugLoc.ll
2010-05-26-FP_TO_INT-crash.ll
2010-05-28-Crash.ll
2010-06-01-DeadArg-DbgInfo.ll
2010-06-09-FastAllocRegisters.ll
2010-06-14-fast-isel-fs-load.ll
2010-06-15-FastAllocEarlyCLobber.ll
2010-06-24-g-constraint-crash.ll
2010-06-25-asm-RA-crash.ll
2010-06-25-CoalescerSubRegDefDead.ll
2010-06-28-DbgEntryPC.ll
2010-06-28-FastAllocTiedOperand.ll
2010-06-28-matched-g-constraint.ll
2010-07-02-asm-alignstack.ll
2010-07-02-UnfoldBug.ll
2010-07-06-asm-RIP.ll
2010-07-06-DbgCrash.ll
2010-07-11-FPStackLoneUse.ll Fix broken x86_64 tests which specify non-64-bit cpu's. 2011-07-08 22:29:33 +00:00
2010-07-13-indirectXconstraint.ll
2010-07-15-Crash.ll
2010-07-29-SetccSimplify.ll
2010-08-04-MaskedSignedCompare.ll
2010-08-04-MingWCrash.ll
2010-08-04-StackVariable.ll
2010-08-10-DbgConstant.ll
2010-09-01-RemoveCopyByCommutingDef.ll
2010-09-16-asmcrash.ll
2010-09-16-EmptyFilename.ll
2010-09-17-SideEffectsInChain.ll
2010-09-30-CMOV-JumpTable-PHI.ll
2010-10-08-cmpxchg8b.ll Convert a bunch more tests over to the new atomic instructions. 2011-09-26 23:15:09 +00:00
2010-11-02-DbgParameter.ll
2010-11-09-MOVLPS.ll Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
2010-11-18-SelectOfExtload.ll
2010-12-02-MC-Set.ll
2011-01-07-LegalizeTypesCrash.ll
2011-01-10-DagCombineHang.ll
2011-01-24-DbgValue-Before-Use.ll
2011-02-04-FastRegallocNoFP.ll
2011-02-12-shuffle.ll
2011-02-21-VirtRegRewriter-KillSubReg.ll
2011-02-23-UnfoldBug.ll
2011-02-27-Fpextend.ll
2011-03-02-DAGCombiner.ll
2011-03-08-Sched-crash.ll
2011-03-09-Physreg-Coalescing.ll
2011-03-30-CreateFixedObjCrash.ll
2011-04-13-SchedCmpJmp.ll Fix broken x86_64 tests which specify non-64-bit cpu's. 2011-07-08 22:29:33 +00:00
2011-05-09-loaduse.ll
2011-05-26-UnreachableBlockElim.ll
2011-05-27-CrossClassCoalescing.ll
2011-06-01-fildll.ll
2011-06-03-x87chain.ll
2011-06-06-fgetsign80bit.ll
2011-06-12-FastAllocSpill.ll
2011-06-14-mmx-inlineasm.ll
2011-06-14-PreschedRegalias.ll
2011-06-19-QuicksortCoalescerBug.ll
2011-07-13-BadFrameIndexDisplacement.ll Make sure we don't combine a large displacement and a frame index in the same addressing mode on x86-64. It can overflow, leading to a crash/miscompile. 2011-07-13 21:29:53 +00:00
2011-08-23-PerformSubCombine128.ll PerformSubCombine to work on integers larger than i128. Fixes a crasher. 2011-08-23 19:01:24 +00:00
2011-08-23-Trampoline.ll Another forgotten trampoline testcase. 2011-09-07 10:05:14 +00:00
2011-08-29-BlockConstant.ll Compress Repeated Byte Output 2011-08-31 17:30:56 +00:00
2011-08-29-InitOrder.ll Darwin wants ctors/dtors to be ordered the other way round to linux. 2011-09-02 18:07:19 +00:00
2011-09-14-valcoalesce.ll Test case trial and error. Not sure the proper way to check MBB names. 2011-09-16 03:57:19 +00:00
2011-09-18-sse2cmp.ll setOperationAction should be done on the return value of the type, not the operands. 2011-09-18 14:57:03 +00:00
2011-09-21-setcc-bug.ll add another testcase for pr10902 2011-09-21 17:13:40 +00:00
2011-10-11-SpillDead.ll Add value numbers when spilling dead defs. 2011-10-14 00:34:31 +00:00
2011-10-11-srl.ll Add support for legalization of vector SHL/SRA/SRL instructions 2011-10-11 14:36:35 +00:00
2011-10-12-MachineCSE.ll We need to verify that the machine instruction we're using as a replacement for 2011-10-12 23:03:40 +00:00
2011-10-18-FastISel-VectorParams.ll Added testcase for <rdar://problem/10215997> 2011-10-18 23:50:52 +00:00
2011-10-19-LegelizeLoad.ll Fix a bug in the legalization of vector anyext-load and trunc-store. Mem Index starts with zero. 2011-10-18 22:32:43 +00:00
2011-10-19-widen_vselect.ll Add support for the vector-widening of vselect and vector-setcc 2011-10-19 09:45:11 +00:00
2011-10-21-widen-cmp.ll Fix pr11193. 2011-10-22 12:39:25 +00:00
2011-20-21-zext-ui2fp.ll Fix pr11194. When promoting and splitting integers we need to use 2011-10-21 17:35:19 +00:00
9601.ll
20090313-signext.ll
abi-isel.ll
add-of-carry.ll
add.ll
adde-carry.ll
addr-label-difference.ll
aliases.ll
aligned-comm.ll
alignment-2.ll Filecheck-ize. 2011-09-30 23:40:29 +00:00
alignment.ll Add new line at end of file. 2011-09-30 23:21:11 +00:00
all-ones-vector.ll
alldiv-divdi3.ll
alloca-align-rounding-32.ll
alloca-align-rounding.ll
allrem-moddi3.ll Add _allrem, _aullrem and _allmul to the runtime for MSVC. 2011-07-08 21:40:25 +00:00
and-or-fold.ll
and-su.ll
andimm8.ll
anyext.ll
apm.ll
arg-cast.ll
asm-block-labels.ll
asm-global-imm.ll
asm-indirect-mem.ll
asm-label2.ll Update more tests to the new EH scheme. 2011-08-31 21:39:05 +00:00
asm-label.ll
asm-modifier-P.ll
asm-modifier.ll
atomic_add.ll Convert a bunch more tests over to the new atomic instructions. 2011-09-26 23:15:09 +00:00
atomic_op.ll Last batch of test conversions to new atomic instructions. 2011-09-27 00:17:29 +00:00
atomic-load-store-wide.ll Error out on CodeGen of unaligned load/store. Fix test so it isn't accidentally testing that case. 2011-09-13 20:50:54 +00:00
atomic-load-store.ll Fix atomic load and store on x86 to pass -verify-machineinstrs (and possibly fix some subtle bugs involving passes which check mayStore()). 2011-09-07 18:48:32 +00:00
atomic-or.ll Convert a bunch more tests over to the new atomic instructions. 2011-09-26 23:15:09 +00:00
Atomics-64.ll Last batch of test conversions to new atomic instructions. 2011-09-27 00:17:29 +00:00
attribute-sections.ll
avoid-lea-scale2.ll
avoid-loop-align-2.ll
avoid-loop-align.ll
avx-arith.ll Break 256-bit vector int add/sub/mul into two 128-bit operations to avoid costly scalarization. Fixes PR10711. 2011-08-24 06:14:18 +00:00
avx-basic.ll Change all checks regarding the presence of any SSE level to always 2011-09-15 18:27:36 +00:00
avx-bitcast.ll Add a AVX version of a simple i64 -> f64 bitcast. This could be 2011-09-08 21:52:33 +00:00
avx-blend.ll Apply Duncan's test fix from r139986 to the avx version of that test too. 2011-09-18 00:41:38 +00:00
avx-cast.ll Add patterns to generate copies for extract_subvector instead of 2011-07-28 01:26:50 +00:00
avx-cmp.ll Match X86ISD::FSETCCsd and X86ISD::FSETCCss while in AVX mode. This fix 2011-09-19 21:29:24 +00:00
avx-cvt.ll Reapply a more appropriate solution than in r137114. AVX supports 2011-08-09 17:39:13 +00:00
avx-intrinsics-x86_64.ll
avx-intrinsics-x86.ll
avx-load-store.ll Remove X86-dependent stuff from SSEDomainFix. 2011-09-27 23:50:46 +00:00
avx-logic.ll Cleanup vector logical ops in AVX and add use int versions for simple 2011-08-18 02:11:34 +00:00
avx-minmax.ll test/CodeGen/X86/avx-minmax.ll: Unbreak Win32. 2011-09-20 14:11:35 +00:00
avx-movdup.ll Rename and tidy up tests 2011-08-09 03:04:23 +00:00
avx-select.ll Add 256-bit support for v8i32, v4i64 and v4f64 ISD::SELECT. Fix PR10556 2011-08-09 23:27:13 +00:00
avx-shift.ll Fix PR10688. Add support for spliting 256-bit vector shifts when the 2011-08-17 22:12:20 +00:00
avx-shuffle.ll Make sure the X86 backend doesn't explode on 128-bit shuffles in AVX mode. Fixes PR11102. 2011-10-10 22:28:47 +00:00
avx-splat.ll Remove X86-dependent stuff from SSEDomainFix. 2011-09-27 23:50:46 +00:00
avx-unpack.ll Use fp unpack instructions to unpack int types. Until we have AVX2, this 2011-08-09 22:18:37 +00:00
avx-vbroadcast.ll Fix vbroadcast matching logic to early unmatch if the node doesn't have 2011-09-01 18:15:06 +00:00
avx-vextractf128.ll Add a dag combine to xform 256-bit shuffles into simple vector 2011-08-11 21:50:44 +00:00
avx-vinsertf128.ll Add a DAGCombine for subvector extracts to remove useless chains of 2011-09-20 23:19:33 +00:00
avx-vmovddup.ll Add support for AVX 256-bit version of MOVDDUP! 2011-08-25 21:40:37 +00:00
avx-vperm2f128.ll The VPERM2F128 is a AVX instruction which permutes between two 256-bit 2011-08-12 21:48:26 +00:00
avx-vpermil.ll Fix a bug in vpermilps mask checking. Fix PR10560 2011-08-10 01:54:17 +00:00
avx-vshufp.ll Add support for 256-bit versions of VSHUFPD and VSHUFPS. 2011-08-25 02:58:26 +00:00
avx-vzeroupper.ll Introduce a pass to insert vzeroupper instructions to avoid AVX to 2011-08-23 01:14:17 +00:00
barrier-sse.ll Last batch of test conversions to new atomic instructions. 2011-09-27 00:17:29 +00:00
barrier.ll Last batch of test conversions to new atomic instructions. 2011-09-27 00:17:29 +00:00
basic-promote-integers.ll
bc-extract.ll
bigstructret2.ll
bigstructret.ll
bit-test-shift.ll
bitcast2.ll
bitcast-int-to-vector.ll
bitcast.ll
block-placement.ll Completely re-write the algorithm behind MachineBlockPlacement based on 2011-10-23 09:18:45 +00:00
bmi.ll Remove intrinsics for X86 BLSI, BLSMSK, and BLSR intrinsics and replace with custom isel lowering code. 2011-10-21 06:55:01 +00:00
bool-zext.ll
br-fold.ll
brcond.ll
break-anti-dependencies.ll
break-sse-dep.ll
bss_pagealigned.ll
bswap-inline-asm.ll
bswap.ll Force CPU type on test so it doesn't accidentally emit movbe instead of bswap on Intel Atom CPUs. 2011-10-13 14:27:54 +00:00
bt.ll
byval2.ll
byval3.ll
byval4.ll
byval5.ll
byval6.ll
byval7.ll
byval-align.ll
byval.ll
call-imm.ll
call-push.ll
change-compare-stride-0.ll LSR: rewrite inner loops only. 2011-09-29 01:33:38 +00:00
change-compare-stride-1.ll LSR: rewrite inner loops only. 2011-09-29 01:33:38 +00:00
change-compare-stride-trickiness-0.ll
change-compare-stride-trickiness-1.ll
change-compare-stride-trickiness-2.ll
clz.ll
cmov.ll Pseudo CMOV instructions don't clobber EFLAGS. 2011-09-02 23:52:55 +00:00
cmp.ll
cmpxchg16b.ll Add support for generating CMPXCHG16B on x86-64 for the cmpxchg IR instruction. 2011-08-26 21:21:21 +00:00
coalesce-esp.ll
coalescer-commute1.ll
coalescer-commute2.ll
coalescer-commute3.ll
coalescer-commute4.ll
coalescer-commute5.ll
coalescer-cross.ll
coalescer-dce.ll Add test case for r138018. 2011-08-19 04:30:24 +00:00
coalescer-remat.ll Convert a bunch more tests over to the new atomic instructions. 2011-09-26 23:15:09 +00:00
code_placement_eh.ll Update to new EH scheme. 2011-08-27 04:53:41 +00:00
code_placement.ll
codegen-prepare-cast.ll
codegen-prepare-extload.ll
codemodel.ll
combine-lds.ll
combiner-aa-0.ll
combiner-aa-1.ll
commute-intrinsic.ll
commute-two-addr.ll
compare_folding.ll
compare-add.ll
compare-inf.ll
compiler_used.ll
complex-asm.ll
complex-fca.ll
conditional-indecrement.ll
constant-pool-remat-0.ll
constant-pool-sharing.ll
constpool.ll
convert-2-addr-3-addr-inc64.ll
copysign-zero.ll
crash-nosse.ll Eliminate copies of undefined values during coalescing. 2011-07-26 23:00:24 +00:00
crash-O0.ll
crash.ll Also inflate register classes around inline asm. 2011-10-12 23:37:40 +00:00
critical-edge-split-2.ll
cstring.ll
ctpop-combine.ll
dag-rauw-cse.ll
dagcombine-buildvector.ll
dagcombine-cse.ll
darwin-bzero.ll
darwin-no-dead-strip.ll
darwin-quote.ll
darwin-stub.ll
dbg-at-specficiation.ll Do not unnecessarily use AT_specification DIE because it does not add any value. 2011-09-21 23:41:11 +00:00
dbg-byval-parameter.ll
dbg-const-int.ll
dbg-const.ll
dbg-declare-arg.ll
dbg-file-name.ll Add support for a new extension to the .file directive: 2011-10-17 23:05:28 +00:00
dbg-i128-const.ll
dbg-inline.ll It is quiet possible that inlined function body is split into multiple chunks of consequtive instructions. But, there is not any way to describe this in .debug_inline accelerator table used by gdb. However, describe non contiguous ranges of inlined function body appropriately using AT_range of DW_TAG_inlined_subroutine debug info entry. 2011-07-27 00:34:13 +00:00
dbg-large-unsigned-const.ll While emitting constant value, look through derived type and use underlying basic type to determine size and signness of the constant value. 2011-07-20 21:57:04 +00:00
dbg-merge-loc-entry.ll
dbg-prolog-end.ll
dbg-value-dag-combine.ll
dbg-value-inlined-parameter.ll
dbg-value-isel.ll While extending definition range of a debug variable, consult lexical scopes also. There is no point extending debug variable out side its lexical block. This provides 6x compile time speedup in some cases. 2011-08-10 21:25:34 +00:00
dbg-value-location.ll
dbg-value-range.ll
dg.exp
discontiguous-loops.ll
div8.ll
divide-by-constant.ll Be more aggressive about following hints. 2011-07-08 20:46:18 +00:00
divrem.ll
dll-linkage.ll
dllexport.ll
dollar-name.ll
dyn-stackalloc.ll
eh_frame.ll
empty-functions.ll
empty-struct-return-type.ll
epilogue.ll
extend.ll
extern_weak.ll
extmul64.ll
extmul128.ll
extract-combine.ll
extract-extract.ll
extractelement-from-arg.ll
extractelement-load.ll Make sure this DAGCombine actually returns an UNDEF of the correct type; PR10476. 2011-07-25 22:25:42 +00:00
extractelement-shuffle.ll
extractps.ll
fabs.ll
fast-cc-callee-pops.ll
fast-cc-merge-stack-adj.ll
fast-cc-pass-in-regs.ll
fast-isel-agg-constant.ll
fast-isel-atomic.ll Convert a bunch more tests over to the new atomic instructions. 2011-09-26 23:15:09 +00:00
fast-isel-avoid-unnecessary-pic-base.ll
fast-isel-bail.ll
fast-isel-bc.ll
fast-isel-call.ll
fast-isel-cmp-branch.ll Update more tests to the new EH scheme. 2011-08-31 21:39:05 +00:00
fast-isel-constpool.ll
fast-isel-extract.ll
fast-isel-fneg.ll
fast-isel-gep.ll Update more tests to the new EH scheme. 2011-08-31 21:39:05 +00:00
fast-isel-gv.ll
fast-isel-i1.ll
fast-isel-mem.ll
fast-isel-ret-ext.ll
fast-isel-tailcall.ll
fast-isel-tls.ll PR10991: make fast-isel correctly check whether accessing a global through an alias involves thread-local storage. (I'm not entirely sure how this is supposed to work, but this patch makes fast-isel consistent with the normal isel path.) 2011-09-22 23:41:28 +00:00
fast-isel-x86-64.ll FastISel: avoid function calls between the materialization of the constant and its use. 2011-08-18 22:06:10 +00:00
fast-isel-x86.ll
fast-isel.ll
fastcall-correct-mangling.ll
fastcc3struct.ll
fastcc-2.ll
fastcc-byval.ll
fastcc-sret.ll
fastcc.ll
field-extract-use-trunc.ll
fildll.ll
fltused.ll
fma.ll Add an intrinsic and codegen support for fused multiply-accumulate. The intent 2011-07-08 21:39:21 +00:00
fmul-zero.ll
fold-add.ll
fold-and-shift.ll
fold-call-2.ll
fold-call-3.ll
fold-call.ll
fold-imm.ll
fold-load.ll
fold-mul-lohi.ll
fold-pcmpeqd-0.ll
fold-pcmpeqd-1.ll
fold-pcmpeqd-2.ll
fold-sext-trunc.ll
fold-xmm-zero.ll
fold-zext-trunc.ll
force-align-stack.ll
fp2sint.ll
fp_constant_op.ll
fp_load_cast_fold.ll
fp_load_fold.ll
fp-elim.ll
fp-immediate-shorten.ll
fp-in-intregs.ll
fp-stack-2results.ll Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
fp-stack-compare.ll
fp-stack-direct-ret.ll
fp-stack-O0-crash.ll Handle IMPLICIT_DEF instructions in X86FloatingPoint. 2011-08-03 16:33:19 +00:00
fp-stack-O0.ll
fp-stack-ret-conv.ll
fp-stack-ret-store.ll
fp-stack-ret.ll
fp-stack-retcopy.ll
fp-stack-set-st1.ll
fp-stack.ll
fp-trunc.ll
fsxor-alignment.ll
full-lsr.ll
ga-offset.ll
gather-addresses.ll
ghc-cc64.ll
ghc-cc.ll
global-sections-tls.ll
global-sections.ll Fix an obvious typo that's preventing x86 (32-bit) from using .literal16. 2011-07-19 23:14:32 +00:00
h-register-addressing-32.ll
h-register-addressing-64.ll
h-register-store.ll
h-registers-0.ll
h-registers-1.ll
h-registers-2.ll
h-registers-3.ll
haddsub.ll Synthesize SSE3/AVX 128 bit horizontal add/sub instructions from 2011-09-22 20:15:48 +00:00
hidden-vis-2.ll
hidden-vis-3.ll
hidden-vis-4.ll
hidden-vis-pic.ll
hidden-vis.ll PR10989: Don't print .hidden on Windows. 2011-09-23 00:13:02 +00:00
hoist-common.ll
i2k.ll
i64-mem-copy.ll
i128-and-beyond.ll
i128-immediate.ll
i128-mul.ll
i128-ret.ll
i256-add.ll
iabs.ll
illegal-insert.ll
illegal-vector-args-return.ll
imul-lea-2.ll
imul-lea.ll
inline-asm-2addr.ll
inline-asm-error.ll
inline-asm-flag-clobber.ll
inline-asm-fpstack.ll Don't clobber pending ST regs when FP regs are killed. 2011-08-08 17:15:43 +00:00
inline-asm-h.ll
inline-asm-modifier-n.ll
inline-asm-mrv.ll
inline-asm-out-regs.ll
inline-asm-pic.ll
inline-asm-ptr-cast.ll
inline-asm-q-regs.ll Let the inline asm 'q' constraint match float, and on 64-bit double too. 2011-07-08 00:19:27 +00:00
inline-asm-R-constraint.ll
inline-asm-tied.ll
inline-asm-x-scalar.ll
inline-asm.ll Check register class matching instead of width of type matching 2011-07-14 20:13:52 +00:00
ins_subreg_coalesce-1.ll
ins_subreg_coalesce-2.ll
ins_subreg_coalesce-3.ll
insert-positions.ll
insertelement-copytoregs.ll
insertelement-legalize.ll
int-intrinsic.ll
invalid-shift-immediate.ll
isel-sink2.ll
isel-sink3.ll
isel-sink.ll
isint.ll
isnan2.ll
isnan.ll
ispositive.ll
iv-users-in-other-loops.ll LSR: rewrite inner loops only. 2011-09-29 01:33:38 +00:00
jump_sign.ll
label-redefinition.ll
large-gep-scale.ll
ldzero.ll
lea-2.ll
lea-3.ll
lea-4.ll
lea-recursion.ll
lea.ll
leaf-fp-elim.ll
legalize-fmp-oeq-vector-select.ll
legalize-sub-zero-2.ll
legalize-sub-zero.ll
legalizedag_vec.ll
lfence.ll Last batch of test conversions to new atomic instructions. 2011-09-27 00:17:29 +00:00
licm-dominance.ll Add dominance check for the instruction being hoisted. 2011-10-11 18:09:58 +00:00
licm-nested.ll Make this test more specific. There are 3 stats that matched "machine-licm". 2011-10-11 23:34:31 +00:00
licm-symbol.ll
limited-prec.ll
live-out-reg-info.ll
liveness-local-regalloc.ll
lock-inst-encoding.ll Convert a bunch more tests over to the new atomic instructions. 2011-09-26 23:15:09 +00:00
long-setcc.ll
longlong-deadload.ll
loop-blocks.ll
loop-hoist.ll
loop-strength-reduce2.ll
loop-strength-reduce3.ll LSR: rewrite inner loops only. 2011-09-29 01:33:38 +00:00
loop-strength-reduce4.ll
loop-strength-reduce5.ll
loop-strength-reduce6.ll
loop-strength-reduce7.ll
loop-strength-reduce8.ll
loop-strength-reduce-2.ll
loop-strength-reduce-3.ll
loop-strength-reduce.ll
lsr-delayed-fold.ll
lsr-i386.ll
lsr-interesting-step.ll
lsr-loop-exit-cond.ll
lsr-negative-stride.ll
lsr-nonaffine.ll
lsr-normalization.ll
lsr-overflow.ll
lsr-quadratic-expand.ll
lsr-redundant-addressing.ll
lsr-reuse-trunc.ll Be more aggressive about following hints. 2011-07-08 20:46:18 +00:00
lsr-reuse.ll
lsr-sort.ll
lsr-static-addr.ll
lsr-wrap.ll
lzcnt.ll Test case for X86 LZCNT instruction selection. 2011-10-11 06:47:01 +00:00
machine-cse.ll
MachineSink-CritEdge.ll
MachineSink-DbgValue.ll While sinking machine instructions, sink matching DBG_VALUEs also otherwise live debug variable pass will drop DBG_VALUEs on the floor. 2011-09-07 00:07:58 +00:00
MachineSink-eflags.ll Update live-in lists when splitting critical edges. 2011-10-14 17:25:46 +00:00
MachineSink-PHIUse.ll
masked-iv-safe.ll
masked-iv-unsafe.ll
maskmovdqu.ll
mcinst-lowering.ll
mem-promote-integers.ll
membarrier.ll Last batch of test conversions to new atomic instructions. 2011-09-27 00:17:29 +00:00
memcmp.ll
memcpy-2.ll
memcpy.ll
memset64-on-x86-32.ll
memset-2.ll
memset-3.ll
memset.ll
mfence.ll Last batch of test conversions to new atomic instructions. 2011-09-27 00:17:29 +00:00
mingw-alloca.ll
misaligned-memset.ll
mmx-arg-passing2.ll
mmx-arg-passing.ll
mmx-arith.ll
mmx-bitcast-to-i64.ll
mmx-builtins.ll
mmx-copy-gprs.ll
mmx-emms.ll
mmx-insert-element.ll
mmx-pinsrw.ll stabalize tests by specifying the exact sse level 2011-10-17 19:45:38 +00:00
mmx-punpckhdq.ll
mmx-s2v.ll
mmx-shift.ll
mmx-shuffle.ll
movbe.ll test/CodeGen/X86/movbe.ll: Give explicit -mtriple=x86_64-linux, to unbreak win32 hosts. 2011-10-11 03:41:03 +00:00
movfs.ll
movgs.ll Attempt to fix -mtriple=i686-{cygwin|mingw|win32} regressions. Nakamura, 2011-09-20 00:08:12 +00:00
movmsk.ll High bits of movmskp{s|d} and pmovmskb are known zero. rdar://10247336 2011-10-07 17:21:44 +00:00
movntdq-no-avx.ll
mul64.ll
mul128.ll
mul-legalize.ll
mul-remat.ll
mul-shift-reassoc.ll
muloti.ll
mult-alt-generic-i686.ll
mult-alt-generic-x86_64.ll
mult-alt-x86.ll
multiple-loop-post-inc.ll
multiple-return-values-cross-block.ll
nancvt.ll
narrow_op-1.ll
narrow-shl-cst.ll
narrow-shl-load.ll
neg_fp.ll
neg-shl-add.ll
negate-add-zero.ll
negative_zero.ll
negative-sin.ll
negative-stride-fptosi-user.ll
negative-subscript.ll
no-cfi.ll
nobt.ll
non-lazy-bind.ll
nontemporal.ll
norex-subreg.ll Add TEST8ri_NOREX pseudo to constrain sub_8bit_hi copies. 2011-10-08 18:28:28 +00:00
nosse-error1.ll
nosse-error2.ll
nosse-varargs.ll
object-size.ll
opt-ext-uses.ll
opt-shuff-tstore.ll test/CodeGen/X86/opt-shuff-tstore.ll: Add explicit -mtriple=x86_64-linux. 2011-08-10 22:52:48 +00:00
optimize-max-0.ll
optimize-max-1.ll
optimize-max-2.ll
optimize-max-3.ll
or-address.ll Pseudo CMOV instructions don't clobber EFLAGS. 2011-09-02 23:52:55 +00:00
or-branch.ll
overlap-shift.ll
packed_struct.ll
palignr-2.ll
palignr.ll Really un-XFAIL the testcase, like I said I would in r139458. 2011-09-10 02:02:27 +00:00
peep-setb.ll
peep-test-0.ll
peep-test-1.ll
peep-test-2.ll
peep-test-3.ll Be more aggressive about following hints. 2011-07-08 20:46:18 +00:00
peep-vector-extract-concat.ll
peep-vector-extract-insert.ll
personality.ll Remove old declare statements. 2011-08-31 21:41:20 +00:00
phi-bit-propagation.ll
phi-immediate-factoring.ll
phys_subreg_coalesce-2.ll
phys_subreg_coalesce-3.ll
phys_subreg_coalesce.ll
phys-reg-local-regalloc.ll
pic_jumptable.ll
pic-load-remat.ll
pic.ll
pmul.ll
pmulld.ll
popcnt.ll
postalloc-coalescing.ll
postra-licm.ll
powi.ll
pr1462.ll
pr1489.ll
pr1505.ll
pr1505b.ll
pr2177.ll
pr2182.ll
pr2326.ll
pr2656.ll
pr2659.ll
pr2849.ll
pr2924.ll
pr2982.ll
pr3154.ll
pr3216.ll
pr3241.ll
pr3243.ll
pr3244.ll
pr3250.ll
pr3317.ll Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
pr3366.ll
pr3457.ll
pr3495-2.ll
pr3495.ll LSR: rewrite inner loops only. 2011-09-29 01:33:38 +00:00
pr3522.ll Update more tests to the new EH scheme. 2011-08-31 21:39:05 +00:00
pr7882.ll
pr9127.ll
pr9743.ll
pr10068.ll
pr10420.ll Assume .cfi_startproc is the first thing in a function. If the function is 2011-08-02 20:24:22 +00:00
prefetch.ll
private-2.ll
private.ll
promote-assert-zext.ll
promote-i16.ll
promote-trunc.ll
promote.ll Add additional element-promotion tests. 2011-10-18 23:05:33 +00:00
ptr-rotate.ll New pointer rotate test. 2011-07-20 03:09:11 +00:00
ptrtoint-constexpr.ll
rdtsc.ll
red-zone2.ll
red-zone.ll
reghinting.ll Hoist spills within a basic block. 2011-07-09 00:25:03 +00:00
regpressure.ll
rem-2.ll
rem.ll
remat-constant.ll
remat-mov-0.ll
remat-scalar-zero.ll
ret-addr.ll
ret-i64-0.ll
ret-mmx.ll
rip-rel-address.ll
rodata-relocs.ll
rot16.ll
rot32.ll
rot64.ll
rotate2.ll
rotate.ll
scalar_sse_minmax.ll
scalar_widen_div.ll fix a typo in the test 2011-10-16 20:43:41 +00:00
scalar-extract.ll
scalar-min-max-fill-operand.ll
scalarize-bitcast.ll
scev-interchange.ll Update more tests to the new EH scheme. 2011-08-31 21:39:05 +00:00
sdiv-exact.ll Emit a more efficient magic number multiplication for exact sdivs. 2011-07-08 10:31:30 +00:00
segmented-stacks.ll More closely follow libgcc, which has code after the `ret' instruction to 2011-10-13 08:24:19 +00:00
select.ll
setcc.ll
setoeq.ll
setuge.ll
sext-i1.ll
sext-load.ll
sext-ret-val.ll
sext-subreg.ll
sext-trunc.ll
sfence.ll Last batch of test conversions to new atomic instructions. 2011-09-27 00:17:29 +00:00
shift-and.ll
shift-coalesce.ll
shift-codegen.ll
shift-combine.ll
shift-double.ll
shift-folding.ll
shift-i128.ll
shift-i256.ll
shift-one.ll
shift-pair.ll
shift-parts.ll
shl_elim.ll
shl_undef.ll
shl-anyext.ll
shrink-compare.ll
shrink-fp-const1.ll
shrink-fp-const2.ll
sibcall-2.ll
sibcall-3.ll
sibcall-4.ll
sibcall-5.ll
sibcall-byval.ll
sibcall.ll
sincos.ll
sink-hoist.ll Add dominance check for the instruction being hoisted. 2011-10-11 18:09:58 +00:00
small-byval-memcpy.ll
smul-with-overflow.ll
soft-fp.ll
splat-scalar-load.ll
split-eh-lpad-edges.ll Update more tests to the new EH scheme. 2011-08-31 21:39:05 +00:00
split-vector-bitcast.ll Prevent x86-specific DAGCombine from creating nodes with illegal type (which could not be selected). Fixes a minor isel issue that was breaking the testcase from r136130. 2011-07-26 21:02:58 +00:00
split-vector-rem.ll
sret.ll
sse1.ll Default 64-bit target features and SSE2 on when a triple specifies x86-64. Clean up all the other hacks which are now unnecessary. 2011-07-08 22:16:47 +00:00
sse2-blend.ll Improve code generation for vselect on SSE2: 2011-10-19 20:43:16 +00:00
sse2.ll
sse3.ll Fix broken x86_64 tests which specify non-64-bit cpu's. 2011-07-08 22:29:33 +00:00
sse41-blend.ll Synthesize x86 max/min instructions also for vectors (i.e. produce 2011-09-17 16:49:39 +00:00
sse41.ll
sse42_64.ll
sse42.ll
sse_reload_fold.ll
sse-align-0.ll
sse-align-1.ll
sse-align-2.ll
sse-align-3.ll
sse-align-4.ll
sse-align-5.ll
sse-align-6.ll
sse-align-7.ll
sse-align-8.ll
sse-align-9.ll
sse-align-10.ll
sse-align-11.ll
sse-align-12.ll
sse-commute.ll
sse-fcopysign.ll
sse-load-ret.ll
sse-minmax.ll Synthesize x86 max/min instructions also for vectors (i.e. produce 2011-09-17 16:49:39 +00:00
sse-varargs.ll
stack-align.ll
stack-protector-linux.ll
stdarg.ll
stdcall-notailcall.ll
stdcall.ll
store_op_load_fold2.ll
store_op_load_fold.ll
store-empty-member.ll
store-fp-constant.ll
store-global-address.ll
store-narrow.ll
storetrunc-fp.ll
stride-nine-with-base-reg.ll
stride-reuse.ll
sub-with-overflow.ll
sub.ll Update test. 2011-07-26 22:45:39 +00:00
subreg-to-reg-0.ll
subreg-to-reg-1.ll
subreg-to-reg-2.ll
subreg-to-reg-3.ll
subreg-to-reg-4.ll
subreg-to-reg-6.ll
switch-bt.ll Don't emit a bit test if there is only one case the test can yield false. A simple SETNE is sufficient. 2011-07-14 01:38:42 +00:00
switch-crit-edge-constant.ll
switch-or.ll
switch-zextload.ll
SwitchLowering.ll
swizzle.ll
tail-call-got.ll This test requires sse, otherwise x87 ops will block tailcall optimization 2011-08-31 16:49:05 +00:00
tail-dup-addr.ll
tail-opts.ll
tail-threshold.ll
tailcall1.ll
tailcall-fastisel.ll
tailcall-i1.ll
tailcall-largecode.ll
tailcall-returndup-void.ll
tailcall-ri64.ll
tailcall-stackalign.ll
tailcall-structret.ll
tailcall-void.ll
tailcallbyval64.ll
tailcallbyval.ll
tailcallfp2.ll
tailcallfp.ll
tailcallpic1.ll
tailcallpic2.ll
tailcallstack64.ll
test-nofold.ll
test-shrink-bug.ll
test-shrink.ll
testl-commute.ll
tls1.ll
tls2.ll
tls3.ll
tls4.ll
tls5.ll
tls6.ll
tls7.ll
tls8.ll
tls9.ll
tls10.ll
tls11.ll
tls12.ll
tls13.ll
tls14.ll
tls15.ll
tls-pic.ll
tlv-1.ll Fix TLS lowering bug. The CopyFromReg must be glued to the TLSCALL. rdar://10291355 2011-10-19 22:22:54 +00:00
tlv-2.ll
trap.ll
trunc-ext-ld-st.ll When promoting integer vectors we often create ext-loads. This patch adds a 2011-09-18 10:39:32 +00:00
trunc-to-bool.ll
twoaddr-coalesce-2.ll
twoaddr-coalesce.ll
twoaddr-lea.ll
twoaddr-pass-sink.ll
twoaddr-sink-terminator.ll PR10998: It is not legal to sink an instruction past the terminator of a block; make sure we don't do that. 2011-09-23 22:41:57 +00:00
uint64-to-float.ll Update live-in lists when splitting critical edges. 2011-10-14 17:25:46 +00:00
uint_to_fp-2.ll Explicitly zero out parts of a vector which are required to be zero by the algorithm in LowerUINT_TO_FP_i32. This only has a substantial effect on the generated code when the input is extracted from a vector register; other ways of loading an i32 do the appropriate zeroing implicitly. Fixes PR10802. 2011-08-29 21:15:46 +00:00
uint_to_fp.ll
umul-with-carry.ll
umul-with-overflow.ll
unaligned-load.ll
undef-label.ll
unknown-location.ll
unreachable-loop-sinking.ll
unreachable-stack-protector.ll
urem-i8-constant.ll
use-add-flags.ll
v2f32.ll Attempt to fix -mtriple=i686-{cygwin|mingw|win32} regressions. Nakamura, 2011-09-20 00:08:12 +00:00
v4f32-immediate.ll
v-binop-widen2.ll
v-binop-widen.ll
vararg_tailcall.ll
variable-sized-darwin-bzero.ll
variadic-node-pic.ll
vec_add.ll
vec_align.ll
vec_anyext.ll
vec_call.ll
vec_cast.ll
vec_clear.ll
vec_compare-2.ll
vec_compare-sse4.ll PR11033: Make sure we don't generate PCMPGTQ and PCMPEQQ if the target CPU does not support them. 2011-09-28 21:00:25 +00:00
vec_compare.ll
vec_ctbits.ll
vec_ext_inreg.ll
vec_extract-sse4.ll
vec_extract.ll
vec_fneg.ll
vec_i64.ll
vec_ins_extract-1.ll
vec_ins_extract.ll
vec_insert-2.ll
vec_insert-3.ll
vec_insert-4.ll
vec_insert-5.ll
vec_insert-6.ll
vec_insert-7.ll
vec_insert-8.ll
vec_insert-9.ll
vec_insert.ll
vec_loadsingles.ll
vec_logical.ll
vec_return.ll
vec_set-2.ll
vec_set-3.ll
vec_set-4.ll
vec_set-5.ll
vec_set-6.ll
vec_set-7.ll
vec_set-8.ll
vec_set-9.ll
vec_set-A.ll
vec_set-B.ll
vec_set-C.ll Attempt to fix -mtriple=i686-{cygwin|mingw|win32} regressions. Nakamura, 2011-09-20 00:08:12 +00:00
vec_set-D.ll
vec_set-E.ll
vec_set-F.ll
vec_set-G.ll
vec_set-H.ll
vec_set-I.ll
vec_set-J.ll
vec_set.ll
vec_sext.ll
vec_shift2.ll
vec_shift3.ll
vec_shift4.ll
vec_shift.ll
vec_shuffle-11.ll
vec_shuffle-14.ll
vec_shuffle-15.ll
vec_shuffle-16.ll
vec_shuffle-17.ll
vec_shuffle-18.ll
vec_shuffle-19.ll
vec_shuffle-20.ll
vec_shuffle-22.ll
vec_shuffle-23.ll
vec_shuffle-24.ll
vec_shuffle-25.ll
vec_shuffle-26.ll
vec_shuffle-27.ll
vec_shuffle-28.ll
vec_shuffle-30.ll
vec_shuffle-31.ll
vec_shuffle-34.ll
vec_shuffle-35.ll
vec_shuffle-36.ll
vec_shuffle-37.ll Enable element promotion type legalization by deafault. 2011-10-16 20:31:33 +00:00
vec_shuffle-38.ll Vector shuffle mask <i32 4, i32 5, i32 2, i32 3> should yield "movsd", not "movss". 2011-09-14 02:36:14 +00:00
vec_shuffle.ll
vec_splat-2.ll
vec_splat-3.ll
vec_splat-4.ll
vec_splat.ll
vec_ss_load_fold.ll
vec_uint_to_fp.ll
vec_zero_cse.ll
vec_zero-2.ll
vec_zero.ll
vec_zext.ll
vec-sign.ll
vec-trunc-store.ll
vector-intrinsics.ll
vector-rem.ll
vector-variable-idx.ll
vector.ll Revert "Don't check liveness of unallocatable registers." 2011-07-30 00:57:25 +00:00
vfcmp.ll
visibility2.ll
visibility.ll
volatile.ll
vortex-bug.ll
vshift_scalar.ll
vshift_split2.ll
vshift_split.ll
vshift-1.ll
vshift-2.ll
vshift-3.ll
vshift-4.ll
vshift-5.ll
vsplit-and.ll Clean the triple, add check lines. 2011-10-17 07:07:51 +00:00
weak.ll
wide-integer-fold.ll
widen_arith-1.ll Enable element promotion type legalization by deafault. 2011-10-16 20:31:33 +00:00
widen_arith-2.ll Enable element promotion type legalization by deafault. 2011-10-16 20:31:33 +00:00
widen_arith-3.ll Enable element promotion type legalization by deafault. 2011-10-16 20:31:33 +00:00
widen_arith-4.ll Revert r141569 and r141576. 2011-10-10 23:18:02 +00:00
widen_arith-5.ll
widen_arith-6.ll
widen_cast-1.ll Enable element promotion type legalization by deafault. 2011-10-16 20:31:33 +00:00
widen_cast-2.ll
widen_cast-3.ll
widen_cast-4.ll Enable element promotion type legalization by deafault. 2011-10-16 20:31:33 +00:00
widen_cast-5.ll
widen_cast-6.ll
widen_conv-1.ll Enable element promotion type legalization by deafault. 2011-10-16 20:31:33 +00:00
widen_conv-2.ll
widen_conv-3.ll
widen_conv-4.ll Enable element promotion type legalization by deafault. 2011-10-16 20:31:33 +00:00
widen_extract-1.ll
widen_load-0.ll stabalize tests by specifying the exact sse level 2011-10-17 19:45:38 +00:00
widen_load-1.ll
widen_load-2.ll Enable element promotion type legalization by deafault. 2011-10-16 20:31:33 +00:00
widen_shuffle-1.ll Enable element promotion type legalization by deafault. 2011-10-16 20:31:33 +00:00
win64_alloca_dynalloca.ll
win64_params.ll
win64_vararg.ll
win_chkstk.ll
x86_64-mul-by-const.ll
x86-64-and-mask.ll
x86-64-arg.ll
x86-64-asm.ll
x86-64-dead-stack-adjust.ll
x86-64-disp.ll
x86-64-extend-shift.ll
x86-64-frameaddr.ll
x86-64-gv-offset.ll
x86-64-jumps.ll
x86-64-mem.ll
x86-64-pic-1.ll
x86-64-pic-2.ll
x86-64-pic-3.ll
x86-64-pic-4.ll
x86-64-pic-5.ll
x86-64-pic-6.ll
x86-64-pic-7.ll
x86-64-pic-8.ll
x86-64-pic-9.ll
x86-64-pic-10.ll
x86-64-pic-11.ll
x86-64-ret0.ll
x86-64-shortint.ll
x86-64-sret-return.ll
x86-64-tls-1.ll
x86-64-varargs.ll
x86-frameaddr2.ll
x86-frameaddr.ll
x86-shifts.ll Enable element promotion type legalization by deafault. 2011-10-16 20:31:33 +00:00
x86-store-gv-addr.ll
xmm-r64.ll
xor-icmp.ll
xor.ll
zero-remat.ll
zext-extract_subreg.ll
zext-fold.ll
zext-inreg-0.ll
zext-inreg-1.ll
zext-sext.ll
zext-shl.ll
zext-trunc.ll