llvm-6502/test/CodeGen/X86
Chandler Carruth 70daea90af Rewrite how machine block placement handles loop rotation.
This is a complex change that resulted from a great deal of
experimentation with several different benchmarks. The one which proved
the most useful is included as a test case, but I don't know that it
captures all of the relevant changes, as I didn't have specific
regression tests for each, they were more the result of reasoning about
what the old algorithm would possibly do wrong. I'm also failing at the
moment to craft more targeted regression tests for these changes, if
anyone has ideas, it would be welcome.

The first big thing broken with the old algorithm is the idea that we
can take a basic block which has a loop-exiting successor and a looping
successor and use the looping successor as the layout top in order to
get that particular block to be the bottom of the loop after layout.
This happens to work in many cases, but not in all.

The second big thing broken was that we didn't try to select the exit
which fell into the nearest enclosing loop (to which we exit at all). As
a consequence, even if the rotation worked perfectly, it would result in
one of two bad layouts. Either the bottom of the loop would get
fallthrough, skipping across a nearer enclosing loop and thereby making
it discontiguous, or it would be forced to take an explicit jump over
the nearest enclosing loop to earch its successor. The point of the
rotation is to get fallthrough, so we need it to fallthrough to the
nearest loop it can.

The fix to the first issue is to actually layout the loop from the loop
header, and then rotate the loop such that the correct exiting edge can
be a fallthrough edge. This is actually much easier than I anticipated
because we can handle all the hard parts of finding a viable rotation
before we do the layout. We just store that, and then rotate after
layout is finished. No inner loops get split across the post-rotation
backedge because we check for them when selecting the rotation.

That fix exposed a latent problem with our exitting block selection --
we should allow the backedge to point into the middle of some inner-loop
chain as there is no real penalty to it, the whole point is that it
*won't* be a fallthrough edge. This may have blocked the rotation at all
in some cases, I have no idea and no test case as I've never seen it in
practice, it was just noticed by inspection.

Finally, all of these fixes, and studying the loops they produce,
highlighted another problem: in rotating loops like this, we sometimes
fail to align the destination of these backwards jumping edges. Fix this
by actually walking the backwards edges rather than relying on loopinfo.

This fixes regressions on heapsort if block placement is enabled as well
as lots of other cases where the previous logic would introduce an
abundance of unnecessary branches into the execution.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154783 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-16 01:12:56 +00:00
..
GC Continue cleanup of LIT, getting rid of the remaining artifacts from dejagnu 2012-03-25 09:02:19 +00:00
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-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 Remove pcmpgt/pcmpeq intrinsics as clang is not using them. 2012-01-31 06:52:44 +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 Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
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 Remove support for using "foo" as symbols instead of %"foo". This is ancient 2011-06-17 06:36:20 +00:00
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
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 Eliminate more uses of llvm-as and llvm-dis. 2009-09-08 23:54:48 +00:00
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 Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
2007-11-07-MulBy4.ll
2007-11-30-LoadFolding-Bug.ll
2007-12-16-BURRSchedCrash.ll
2007-12-18-LoadCSEBug.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
2008-01-08-IllegalCMP.ll
2008-01-08-SchedulerCrash.ll
2008-01-09-LongDoubleSin.ll
2008-01-16-FPStackifierAssert.ll
2008-01-16-InvalidDAGCombineXform.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-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-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
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 RegAlloc superpass: includes phi elimination, coalescing, and scheduling. 2012-02-10 04:10:36 +00:00
2008-05-22-FoldUnalignedLoad.ll
2008-05-28-CoalescerBug.ll
2008-05-28-LocalRegAllocBug.ll Remove all references to the old EH. 2012-01-31 02:09:07 +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
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
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
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-dagcombine-4.ll
2008-12-19-EarlyClobberBug.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
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-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
2009-03-16-PHIElimInLPad.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 Eliminate more uses of llvm-as and llvm-dis. 2009-09-08 23:54:48 +00:00
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 Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
2009-06-04-VirtualLiveIn.ll
2009-06-05-ScalarToVectorByteMMX.ll
2009-06-05-sitofpCrash.ll
2009-06-05-VariableIndexInsert.ll
2009-06-05-VZextByteShort.ll
2009-06-06-ConcatVectors.ll
2009-06-07-ExpandMMXBitcast.ll
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
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-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
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
2009-10-19-atomic-cmp-eflags.ll
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
2009-12-01-EarlyClobberBug.ll
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
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 When the scheduler unfold a load folding instruction it move some of the predecessors to the unfolded load. It decides what gets moved to the load by checking whether the new load is using the predecessor as an operand. The check neglects the cases whether the predecessor is a flagged scheduling unit. 2010-02-05 01:27:11 +00:00
2010-02-11-NonTemporal.ll
2010-02-12-CoalescerBug-Impdef.ll
2010-02-15-ImplicitDefBug.ll Fix PR6300. 2010-02-15 22:03:29 +00:00
2010-02-19-TailCallRetAddrBug.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
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
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
2010-04-29-CoalescerCrash.ll
2010-04-30-LocalAlloc-LandingPad.ll
2010-05-03-CoalescerSubRegClobber.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
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-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
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
2010-11-02-DbgParameter.ll
2010-11-09-MOVLPS.ll
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
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 Test case for PR10085. 2011-06-06 20:03:22 +00:00
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
2011-08-23-PerformSubCombine128.ll
2011-08-23-Trampoline.ll
2011-08-29-BlockConstant.ll
2011-08-29-InitOrder.ll Properly emit ctors / dtors with priorities into desired sections 2012-01-25 22:24:19 +00:00
2011-09-14-valcoalesce.ll
2011-09-18-sse2cmp.ll
2011-09-21-setcc-bug.ll
2011-10-11-SpillDead.ll
2011-10-11-srl.ll
2011-10-12-MachineCSE.ll
2011-10-18-FastISel-VectorParams.ll
2011-10-19-LegelizeLoad.ll
2011-10-19-widen_vselect.ll
2011-10-21-widen-cmp.ll
2011-10-27-tstore.ll 1. Remove the part of r153848 which optimizes shuffle-of-shuffle into a new 2012-04-07 21:19:08 +00:00
2011-10-30-padd.ll
2011-11-07-LegalizeBuildVector.ll
2011-11-22-AVX2-Domains.ll
2011-11-30-or.ll
2011-12-8-bitcastintprom.ll The type-legalizer often scalarizes code. One of the common patterns is extract-and-truncate. 2012-02-03 13:18:25 +00:00
2011-12-06-AVXVectorExtractCombine.ll
2011-12-06-BitcastVectorGlobal.ll
2011-12-08-AVXISelBugs.ll This is the second fix related to VZEXT_MOVL node. 2011-12-20 13:34:28 +00:00
2011-12-15-vec_shift.ll Make sure that the lower bits on the VSELECT condition are properly set. 2011-12-17 01:08:46 +00:00
2011-12-26-extractelement-duplicate-load.ll Make sure DAGCombiner doesn't introduce multiple loads from the same memory location. PR10747, part 2. 2011-12-26 22:49:32 +00:00
2011-12-28-vselecti8.ll Revert 147426 because it caused pr11696. 2012-01-03 22:19:42 +00:00
2011-20-21-zext-ui2fp.ll
2012-1-10-buildvector.ll Fix a bug in the lowering of BUILD_VECTOR for AVX. SCALAR_TO_VECTOR does not zero untouched elements. Use INSERT_VECTOR_ELT instead. 2012-01-11 14:07:51 +00:00
2012-01-10-UndefExceptionEdge.ll Fix undefined code and reenable test case. 2012-01-11 09:08:04 +00:00
2012-01-11-split-cv.ll On AVX, we can load v8i32 at a time. The bug happens when two uneven loads are used. 2012-01-11 20:19:17 +00:00
2012-01-12-extract-sv.ll Fix a bug in the AVX 256-bit shuffle code in cases where the splat element is on the boundary of two 128-bit vectors. 2012-01-12 15:31:55 +00:00
2012-01-16-mfence-nosse-flags.ll Make sure the non-SSE lowering for fences correctly clobbers EFLAGS. PR11768. 2012-01-16 16:42:21 +00:00
2012-01-18-vbitcast.ll Fix a bug in the type-legalization of vector integers. When we bitcast one vector type to another, we must not bitcast the result if one type is widened while the other is promoted. 2012-01-18 08:33:18 +00:00
2012-02-12-dagco.ll Fix a bug in DAGCombine for the optimization of BUILD_VECTOR. We cant generate a shuffle node from two vectors of different types. 2012-02-13 12:42:26 +00:00
2012-02-14-scalar.ll Fix PR12000. Some vector operations may use scalar operands with types 2012-02-14 13:06:32 +00:00
2012-02-20-MachineCPBug.ll Fix test to be register assignment invariant. 2012-04-11 00:00:24 +00:00
2012-02-23-mmx-inlineasm.ll test/CodeGen/X86/2012-02-23-mmx-inlineasm.ll: Fixup to add -march=x86. 2012-02-24 13:29:50 +00:00
2012-02-29-CoalescerBug.ll Don't redundantly copy implicit operands when rematerializing. 2012-03-01 00:41:17 +00:00
2012-03-15-build_vector_wl.ll When optimizing certain BUILD_VECTOR nodes into other BUILD_VECTOR nodes, add the new node into the work list because there is a potential for further optimizations. 2012-03-15 08:49:06 +00:00
2012-03-20-LargeConstantExpr.ll It's possible to have a constant expression who's size is quite big (e.g., 2012-03-20 08:56:43 +00:00
2012-03-26-PostRALICMBug.ll Post-ra LICM should take care not to hoist an instruction that would clobber a 2012-03-27 01:50:58 +00:00
2012-04-09-TwoAddrPassBug.ll Test case for PR12495. 2012-04-09 23:58:59 +00:00
9601.ll
20090313-signext.ll
abi-isel.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
add-of-carry.ll
add.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
adde-carry.ll
addr-label-difference.ll
aliases.ll
aligned-comm.ll
alignment-2.ll
alignment.ll
all-ones-vector.ll
alldiv-divdi3.ll
alloca-align-rounding-32.ll Eliminate the restriction that the array size in an alloca must be i32. 2010-05-28 01:14:11 +00:00
alloca-align-rounding.ll
allrem-moddi3.ll
and-or-fold.ll
and-su.ll
andimm8.ll
anyext.ll
apm.ll Fix sfence, lfence, mfence, and clflush to be able to be selected when AVX is enabled. Fix monitor and mwait to require SSE3 or AVX, previously they worked even if SSE3 was disabled. Make prefetch instructions not set the execution domain since they don't use XMM registers. 2012-01-01 19:40:22 +00:00
arg-cast.ll
asm-block-labels.ll
asm-global-imm.ll
asm-indirect-mem.ll
asm-label2.ll
asm-label.ll
asm-modifier-P.ll
asm-modifier.ll
atom-lea-sp.ll test/CodeGen/X86/atom-lea-sp.ll: Add explicit -mtriple=i686-linux. 2012-02-09 05:12:58 +00:00
atom-sched.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
atomic_add.ll
atomic_op.ll Fix X86 codegen for 'atomicrmw nand' to generate *x = ~(*x & y), not *x = ~*x & y. 2012-04-13 22:47:00 +00:00
atomic-load-store-wide.ll
atomic-load-store.ll
atomic-or.ll
Atomics-64.ll
attribute-sections.ll
avoid-lea-scale2.ll
avoid-loop-align-2.ll
avoid-loop-align.ll
avx2-arith.ll
avx2-cmp.ll
avx2-intrinsics-x86.ll Remove AVX2 vpermq and vpermpd intrinsics. These can now be handled with normal shuffle vectors. 2012-04-15 22:43:31 +00:00
avx2-logic.ll
avx2-nontemporal.ll Clean up patterns for MOVNT*. Not sure why there were floating point types on MOVNTPS and MOVNTDQ. And v4i64 was completely missing. 2012-01-09 06:52:46 +00:00
avx2-palignr.ll Add support for selecting 256-bit PALIGNR. 2012-01-20 05:53:00 +00:00
avx2-phaddsub.ll
avx2-shift.ll Add patterns for v16i16 and v32i8 immAllZerosV to select VPXOR to match v4i64 and v8i32. 2012-01-13 06:59:47 +00:00
avx2-unpack.ll Don't try to match 'unpackl/h v, v' for 32xi8 and 16xi16 when only AVX1 is supported. Fix 'unpackh v, v' for 256-bit types to understand 128-bit lanes. 2011-12-16 08:06:31 +00:00
avx2-vbroadcast.ll Fix a bug in the lowering of broadcasts: ConstantPools need to use the target pointer type. 2012-04-09 07:45:58 +00:00
avx2-vperm2i128.ll
avx2-vperm.ll Added VPERM optimization for AVX2 shuffles 2012-04-15 11:18:59 +00:00
avx-arith.ll Fixed vsqrt.ss intrinsic usage - order of input operands was wrong. 2011-11-29 15:00:45 +00:00
avx-basic.ll Fix assert in LowerBUILD_VECTOR for v16i16 type on AVX. 2011-12-15 21:34:44 +00:00
avx-bitcast.ll
avx-blend.ll
avx-cast.ll
avx-cmp.ll
avx-cvt.ll Fix for the following bug in AVX codegen for double-to-int conversions: 2012-01-26 08:51:39 +00:00
avx-fp2int.ll Unix line endings 2012-01-27 02:31:29 +00:00
avx-intrinsics-x86_64.ll
avx-intrinsics-x86.ll Fix 128-bit ptest intrinsics to take v2i64 instead of v4f32 since these are integer instructions. 2012-04-12 07:23:00 +00:00
avx-load-store.ll Fix a bug in the lowering of BUILD_VECTOR for AVX. SCALAR_TO_VECTOR does not zero untouched elements. Use INSERT_VECTOR_ELT instead. 2012-01-11 14:07:51 +00:00
avx-logic.ll
avx-minmax.ll test/CodeGen/X86/avx-minmax.ll: Relax expressions for Win32 targets. YMM arguments are passed as indirect on Win32 x64. 2012-02-01 14:35:29 +00:00
avx-movdup.ll
avx-select.ll
avx-sext.ll Optimization for SIGN_EXTEND operation on AVX. 2012-02-02 09:10:43 +00:00
avx-shift.ll
avx-shuffle-x86_32.ll FileCheck hygiene. 2012-01-05 00:43:34 +00:00
avx-shuffle.ll Reapply 154396 after fixing a test. 2012-04-11 06:40:27 +00:00
avx-splat.ll Add instruction selection for 256-bit VPSHUFD and 128-bit VPERMILPS/VPERMILPD. 2012-02-07 06:28:42 +00:00
avx-trunc.ll Unix line endings 2012-02-02 19:00:49 +00:00
avx-unpack.ll Don't try to match 'unpackl/h v, v' for 32xi8 and 16xi16 when only AVX1 is supported. Fix 'unpackh v, v' for 256-bit types to understand 128-bit lanes. 2011-12-16 08:06:31 +00:00
avx-varargs-x86_64.ll
avx-vbroadcast.ll AVX2: Build splat vectors by broadcasting a scalar from the constant pool. 2012-04-08 12:54:54 +00:00
avx-vextractf128.ll [avx] Add patterns for combining vextractf128 + vmovaps/vmovups/vmobdqu to 2012-03-20 21:43:40 +00:00
avx-vinsertf128.ll Fix test. 2012-03-20 17:20:46 +00:00
avx-vmovddup.ll
avx-vperm2f128.ll
avx-vpermil.ll Allow 256-bit shuffles to be split if a 128-bit lane contains elements from a single source. This is a rewrite of the 256-bit shuffle splitting code based on similar code from legalize types. Fixes PR12413. 2012-04-06 07:45:23 +00:00
avx-vshufp.ll Add patterns for integer forms of SHUFPD/VSHUFPD with a memory load. 2011-12-31 23:24:49 +00:00
avx-vzeroupper.ll
avx-win64-args.ll Unix line endings 2012-02-02 19:00:49 +00:00
avx-win64.ll Passing AVX 256-bit structures in Win64 was wrong. 2012-02-01 10:46:14 +00:00
avx-zext.ll This patch addresses the problem of poor code generation for the zext 2012-02-12 15:05:31 +00:00
barrier-sse.ll
barrier.ll
basic-promote-integers.ll
bc-extract.ll
bigstructret2.ll
bigstructret.ll
bit-test-shift.ll
bitcast2.ll
bitcast-int-to-vector.ll
bitcast.ll
blend-msb.ll [AVX] Optimize x86 VSELECT instructions using SimplifyDemandedBits. 2012-01-15 19:27:55 +00:00
block-placement.ll Rewrite how machine block placement handles loop rotation. 2012-04-16 01:12:56 +00:00
bmi.ll Use standard promotion for i8 CTTZ nodes and i8 CTLZ nodes when the 2011-12-24 12:12:34 +00:00
bool-zext.ll
br-fold.ll
brcond.ll Reverted commit #147601 upon Evan's request. 2012-01-08 17:20:33 +00:00
break-anti-dependencies.ll
break-sse-dep.ll
bss_pagealigned.ll
bswap-inline-asm.ll
bswap.ll
bt.ll
btq.ll
byval2.ll
byval3.ll
byval4.ll
byval5.ll
byval6.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
byval7.ll
byval-align.ll
byval.ll
call-imm.ll
call-push.ll
cfstring.ll Check to make sure that the CFString's back store ends up in the correct section. 2012-01-11 19:33:37 +00:00
change-compare-stride-1.ll
change-compare-stride-trickiness-0.ll
change-compare-stride-trickiness-1.ll
change-compare-stride-trickiness-2.ll
clz.ll Use standard promotion for i8 CTTZ nodes and i8 CTLZ nodes when the 2011-12-24 12:12:34 +00:00
cmov.ll
cmp.ll
cmpxchg16b.ll FileCheck hygiene. 2012-01-05 00:43:34 +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
coalescer-remat.ll
code_placement_eh.ll
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 Add r149110 back with a fix for when the vector and the int have the same 2012-01-27 23:33:07 +00:00
constpool.ll
convert-2-addr-3-addr-inc64.ll
copysign-zero.ll
crash-nosse.ll
crash-O0.ll
crash.ll
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
dbg-byval-parameter.ll
dbg-const-int.ll
dbg-const.ll
dbg-declare-arg.ll
dbg-file-name.ll
dbg-i128-const.ll
dbg-large-unsigned-const.ll
dbg-merge-loc-entry.ll Don't print an unused label before .cfi_endproc. 2012-01-09 00:17:29 +00:00
dbg-prolog-end.ll
dbg-subrange.ll
dbg-value-dag-combine.ll
dbg-value-inlined-parameter.ll
dbg-value-isel.ll
dbg-value-location.ll
dbg-value-range.ll
discontiguous-loops.ll
div8.ll
divide-by-constant.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
divrem.ll
dll-linkage.ll
dllexport.ll
dollar-name.ll
dwarf-comp-dir.ll
dyn-stackalloc.ll
eh_frame.ll
empty-functions.ll Don't print an unused label before .cfi_endproc. 2012-01-09 00:17:29 +00:00
empty-struct-return-type.ll
epilogue.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
extend.ll
extern_weak.ll
extmul64.ll
extmul128.ll
extract-combine.ll
extract-extract.ll
extractelement-from-arg.ll
extractelement-load.ll
extractelement-shuffle.ll
extractps.ll
f16c-intrinsics.ll
fabs.ll
fast-cc-callee-pops.ll
fast-cc-merge-stack-adj.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
fast-cc-pass-in-regs.ll
fast-isel-agg-constant.ll
fast-isel-atomic.ll
fast-isel-avoid-unnecessary-pic-base.ll
fast-isel-bail.ll
fast-isel-bc.ll RegAlloc superpass: includes phi elimination, coalescing, and scheduling. 2012-02-10 04:10:36 +00:00
fast-isel-call.ll
fast-isel-cmp-branch.ll
fast-isel-constpool.ll
fast-isel-extract.ll
fast-isel-fneg.ll
fast-isel-gep.ll
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
fast-isel-x86-64.ll
fast-isel-x86.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
fast-isel.ll Testcase for the previous commit. 2012-02-18 00:05:45 +00:00
fastcall-correct-mangling.ll
fastcc3struct.ll
fastcc-2.ll
fastcc-byval.ll
fastcc-sret.ll
fastcc.ll
fdiv.ll Add a comment noting that the fdiv -> fmul conversion won't generate 2012-04-10 20:35:27 +00:00
field-extract-use-trunc.ll
fildll.ll
fltused_function_pointer.ll Properly emit _fltused with FastISel. Refactor to share code with SDAG. 2012-02-22 19:06:13 +00:00
fltused.ll Properly emit _fltused with FastISel. Refactor to share code with SDAG. 2012-02-22 19:06:13 +00:00
fma4-intrinsics-x86_64.ll Change FMA4 memory forms to use memopv* instead of alignedloadv*. No need to force alignment on these instructions. Add a couple testcases for memory forms. 2011-12-30 02:18:36 +00:00
fma.ll
fmul-zero.ll
fold-add.ll
fold-and-shift.ll Revert r147945 which disabled an addressing mode transformation. I had 2012-01-11 18:36:12 +00:00
fold-call-2.ll
fold-call-3.ll
fold-call.ll
fold-imm.ll
fold-load.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
fold-mul-lohi.ll
fold-pcmpeqd-0.ll
fold-pcmpeqd-1.ll
fold-pcmpeqd-2.ll Chris's constant data sequence refactoring actually enabled printing 2012-01-30 23:47:44 +00:00
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
fp-stack-compare.ll
fp-stack-direct-ret.ll
fp-stack-O0-crash.ll
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
fsgsbase.ll
fsxor-alignment.ll
full-lsr.ll
ga-offset.ll
gather-addresses.ll
gcc_except_table.ll Add a test showing how the Leh_func_endN symbol is used. 2012-01-14 00:12:59 +00:00
ghc-cc64.ll
ghc-cc.ll
global-sections-tls.ll
global-sections.ll
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
hidden-vis-2.ll
hidden-vis-3.ll
hidden-vis-4.ll
hidden-vis-pic.ll
hidden-vis.ll
hoist-common.ll
hoist-invariant-load.ll
i2k.ll
i64-mem-copy.ll
i128-and-beyond.ll
i128-immediate.ll
i128-mul.ll
i128-ret.ll
i128-sdiv.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 Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +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 Make the 'x' constraint work for AVX registers as well. 2012-01-07 01:02:09 +00:00
inline-asm-R-constraint.ll
inline-asm-tied.ll RegAlloc superpass: includes phi elimination, coalescing, and scheduling. 2012-02-10 04:10:36 +00:00
inline-asm-x-scalar.ll
inline-asm.ll
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
jump_sign.ll test/CodeGen/X86/jump_sign.ll: Add -mcpu=pentiumpro for non-x86 hosts. It uses "cmov". 2012-01-04 03:52:23 +00:00
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-libcalls.ll
legalize-shift-64.ll This patch adds X86 instruction itineraries for non-pseudo opcodes in 2012-03-19 14:10:12 +00:00
legalize-sub-zero-2.ll
legalize-sub-zero.ll
legalizedag_vec.ll
lfence.ll
licm-dominance.ll
licm-nested.ll
licm-symbol.ll
limited-prec.ll
lit.local.cfg Continue cleanup of LIT, getting rid of the remaining artifacts from dejagnu 2012-03-25 09:02:19 +00:00
live-out-reg-info.ll
liveness-local-regalloc.ll
lock-inst-encoding.ll
log2_not_readnone.ll Revert r151816 as Jim has the appropriate fix. 2012-03-01 17:41:19 +00:00
long-setcc.ll
longlong-deadload.ll
loop-blocks.ll
loop-hoist.ll
loop-strength-reduce2.ll
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 Don't break the IV update in TLI::SimplifySetCC(). 2012-04-05 20:30:20 +00:00
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
lsr-reuse.ll misched: tag a few XFAILs that I plan to fix 2012-03-21 22:31:31 +00:00
lsr-sort.ll
lsr-static-addr.ll
lsr-wrap.ll
lzcnt.ll Use standard promotion for i8 CTTZ nodes and i8 CTLZ nodes when the 2011-12-24 12:12:34 +00:00
machine-cp.ll Fix machine-cp by having it to check sub-register indicies. e.g. 2012-02-20 23:28:17 +00:00
machine-cse.ll Allow machine-cse to look across MBB boundary when cse'ing instructions that 2012-01-10 02:02:58 +00:00
MachineSink-CritEdge.ll
MachineSink-DbgValue.ll
MachineSink-eflags.ll
MachineSink-PHIUse.ll
masked-iv-safe.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
masked-iv-unsafe.ll
maskmovdqu.ll
mcinst-avx-lowering.ll Add test case for r147881. 2012-01-10 23:09:53 +00:00
mcinst-lowering.ll
mem-promote-integers.ll
membarrier.ll
memcmp.ll
memcpy-2.ll
memcpy.ll Add a test for the miscompilation my recent ConstantDataArray patches introduced, to make sure 2012-02-05 02:37:36 +00:00
memset64-on-x86-32.ll
memset-2.ll
memset-3.ll
memset.ll
mfence.ll
mingw-alloca.ll
misaligned-memset.ll
misched-new.ll The shuffle scheduler is only available in asserts build - make misched-new.ll 2012-03-29 21:11:47 +00:00
mmx-arg-passing2.ll
mmx-arg-passing.ll
mmx-arith.ll
mmx-bitcast-to-i64.ll
mmx-builtins.ll Don't disable MMX support when AVX is enabled. Fix predicates for MMX instructions that were added along with SSE instructions to check for AVX in addition to SSE level. 2012-01-09 00:11:29 +00:00
mmx-copy-gprs.ll
mmx-emms.ll
mmx-insert-element.ll
mmx-pinsrw.ll
mmx-punpckhdq.ll
mmx-s2v.ll
mmx-shift.ll
mmx-shuffle.ll
movbe.ll
movfs.ll
movgs.ll
movmsk.ll Don't try to form FGETSIGN after legalization; it is possible in some cases, but the existing code can't do it correctly. PR11570. 2011-12-15 02:07:20 +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 Remove all references to the old EH. 2012-01-31 02:09:07 +00:00
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
nosse-error1.ll
nosse-error2.ll
nosse-varargs.ll
null-streamer.ll MC: Fix the MCNullStreamer which was broken in r147763. 2012-02-22 23:49:50 +00:00
objc-gc-module-flags.ll Add a test for generating Objective-C metadata from module flags. 2012-02-15 23:43:37 +00:00
object-size.ll RegAlloc superpass: includes phi elimination, coalescing, and scheduling. 2012-02-10 04:10:36 +00:00
odr_comdat.ll Fix to make sure that a comdat group gets generated correctly for a static member 2012-02-23 10:36:04 +00:00
opt-ext-uses.ll
opt-shuff-tstore.ll
optimize-max-0.ll
optimize-max-1.ll
optimize-max-2.ll
optimize-max-3.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
or-address.ll
or-branch.ll
overlap-shift.ll
packed_struct.ll
palignr-2.ll
palignr.ll
peep-setb.ll
peep-test-0.ll
peep-test-1.ll
peep-test-2.ll
peep-test-3.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
peep-vector-extract-concat.ll
peep-vector-extract-insert.ll
personality_size.ll It turns out that putting an 8-byte symbol in a 4-byte section makes Solaris ld sulk. GNU ld is perfectly happy with it, which is worrying for a whole other set of reasons... 2012-02-17 16:05:50 +00:00
personality.ll
phaddsub.ll
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 Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
pmul.ll
pmulld.ll
pointer-vector.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
pr3366.ll
pr3457.ll
pr3522.ll
pr7882.ll
pr9127.ll
pr9743.ll
pr10068.ll
pr10420.ll
pr11202.ll Don't print a label before .cfi_startproc when we don't need to. This makes 2012-01-07 22:42:19 +00:00
pr11415.ll
pr12360.ll Pattern match a setcc of boolean value with 0 as a truncate. 2012-04-09 16:06:03 +00:00
prefetch.ll Add test for r146163. 2011-12-08 19:21:39 +00:00
private-2.ll
private.ll
promote-assert-zext.ll
promote-i16.ll
promote-trunc.ll
promote.ll Fix incorrect widening of the bitcast sdnode in case the incoming operand is integer-promoted. 2012-01-03 22:12:28 +00:00
ptr-rotate.ll
ptrtoint-constexpr.ll
rd-mod-wr-eflags.ll For X86, change load/dec-or-inc/store into dec-or-inc, respectively. 2012-03-29 05:45:48 +00:00
rdtsc.ll
red-zone2.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
red-zone.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
reghinting.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
regpressure.ll
rem-2.ll
rem.ll
remat-constant.ll
remat-mov-0.ll
remat-scalar-zero.ll misched: tag a few XFAILs that I plan to fix 2012-03-21 22:31:31 +00:00
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
rounding-ops.ll X86: Add patterns for the various rounding ops for SSE4.1 and AVX. 2011-12-09 15:44:03 +00:00
scalar_sse_minmax.ll
scalar_widen_div.ll
scalar-extract.ll
scalar-min-max-fill-operand.ll
scalarize-bitcast.ll
scev-interchange.ll
sdiv-exact.ll
segmented-stacks-dynamic.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
segmented-stacks.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +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
shift-and.ll X86: Generalize the x << (y & const) optimization to also catch masks with more set bits set than 31 or 63. 2012-01-12 12:41:34 +00:00
shift-coalesce.ll
shift-codegen.ll
shift-combine.ll Relax the FileCheck assertion a bit -- all we really care about is that 2012-01-15 09:38:59 +00:00
shift-double.ll
shift-folding.ll Prevent a DAGCombine from firing where there are two uses of 2012-01-05 11:05:55 +00:00
shift-i128.ll
shift-i256.ll
shift-one.ll
shift-pair.ll
shift-parts.ll
shl_elim.ll
shl_undef.ll TargetLoweringOpt is a struct used by DAGCombine, not a pass. 2011-06-15 16:48:02 +00:00
shl-anyext.ll
shl-i64.ll Testing vector code without sse doesn't make much sense. 2012-02-05 11:19:39 +00:00
shrink-compare.ll
shrink-fp-const1.ll
shrink-fp-const2.ll
sibcall-2.ll
sibcall-3.ll
sibcall-4.ll
sibcall-5.ll Prevent obscure and incorrect tail-call optimization. 2012-03-02 02:50:46 +00:00
sibcall-byval.ll
sibcall.ll
sincos.ll
sink-hoist.ll
small-byval-memcpy.ll
smul-with-overflow.ll
soft-fp.ll
splat-scalar-load.ll
split-eh-lpad-edges.ll
split-vector-bitcast.ll
split-vector-rem.ll
sse1.ll
sse2-blend.ll Revert 147426 because it caused pr11696. 2012-01-03 22:19:42 +00:00
sse2.ll
sse3.ll
sse41-blend.ll When emulating vselect using OR/AND/XOR make sure to bitcast the result back to the original type. 2012-04-15 15:08:09 +00:00
sse41.ll Fix 128-bit ptest intrinsics to take v2i64 instead of v4f32 since these are integer instructions. 2012-04-12 07:23:00 +00:00
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-domains.ll
sse-fcopysign.ll
sse-load-ret.ll
sse-minmax.ll
sse-varargs.ll
stack-align2.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
stack-align.ll
stack-protector-linux.ll
stdarg.ll
stdcall-notailcall.ll
stdcall.ll
store_op_load_fold2.ll Allocate virtual registers in ascending order. 2012-04-02 22:30:39 +00:00
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 Trivial change to make the test use Use –mcpu=generic, 2012-03-01 19:57:20 +00:00
sub-with-overflow.ll llvm/test/CodeGen/X86/sub-with-overflow.ll: Add explicit -mtriple=i686-linux. 2012-01-11 07:34:14 +00:00
sub.ll
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
switch-crit-edge-constant.ll
switch-or.ll
switch-zextload.ll
SwitchLowering.ll
swizzle.ll
SwizzleShuff.ll 1. Remove the part of r153848 which optimizes shuffle-of-shuffle into a new 2012-04-07 21:19:08 +00:00
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 Don't print a label before .cfi_startproc when we don't need to. This makes 2012-01-07 22:42:19 +00:00
tail-opts.ll
tail-threshold.ll
tailcall1.ll
tailcall-disable.ll Space after punctuation. 2012-01-19 01:13:47 +00:00
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 Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
tailcallbyval.ll
tailcallfp2.ll
tailcallfp.ll
tailcallpic1.ll
tailcallpic2.ll
tailcallstack64.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
test-nofold.ll
test-shrink-bug.ll
test-shrink.ll
testl-commute.ll
thiscall-struct-return.ll Adding support for Microsoft's thiscall calling convention. LLVM side of the patch. 2012-02-22 03:04:40 +00:00
tls-pic.ll
tls-pie.ll Cleanup and relax a restriction on the matching of global offsets into 2012-04-09 02:13:06 +00:00
tls.ll Cleanup and relax a restriction on the matching of global offsets into 2012-04-09 02:13:06 +00:00
tlv-1.ll
tlv-2.ll
trap.ll
trunc-ext-ld-st.ll
trunc-to-bool.ll
twoaddr-coalesce-2.ll
twoaddr-coalesce.ll
twoaddr-lea.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
twoaddr-pass-sink.ll
twoaddr-sink-terminator.ll
uint64-to-float.ll Use –mcpu=generic, so that the test will not fail when run on an Intel Atom 2012-02-16 22:42:48 +00:00
uint_to_fp-2.ll
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 Do trivial CSE of dead BBs during codegen preparation. 2012-03-04 10:46:01 +00:00
urem-i8-constant.ll
use-add-flags.ll
utf8.ll Make the test for r154235 more platform-independent with a shorter 2012-04-07 01:33:14 +00:00
utf16-cfstrings.ll Testcase for r153710. 2012-03-30 00:26:54 +00:00
v2f32.ll
v4f32-immediate.ll
v-binop-widen2.ll
v-binop-widen.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
vararg_tailcall.ll
variable-sized-darwin-bzero.ll
variadic-node-pic.ll
vec_add.ll
vec_align.ll
vec_anyext.ll
vec_call.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
vec_cast.ll
vec_clear.ll
vec_compare-2.ll 1. Remove the part of r153848 which optimizes shuffle-of-shuffle into a new 2012-04-07 21:19:08 +00:00
vec_compare-sse4.ll
vec_compare.ll
vec_ctbits.ll Manually upgrade the test suite to specify the flag to cttz and ctlz. 2011-12-12 11:59:10 +00:00
vec_ext_inreg.ll
vec_extract-sse4.ll
vec_extract.ll
vec_fneg.ll
vec_fpext.ll Fix type-checking for load transformation which is not legal on floating-point types. PR11674. 2011-12-28 21:24:44 +00:00
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
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 Fix PR12529. The Vxx family of instructions are only supported by AVX. 2012-04-15 19:36:44 +00:00
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 1. Remove the part of r153848 which optimizes shuffle-of-shuffle into a new 2012-04-07 21:19:08 +00:00
vec_shuffle-38.ll
vec_shuffle-39.ll
vec_shuffle.ll
vec_splat-2.ll
vec_splat-3.ll
vec_splat-4.ll
vec_splat.ll
vec_ss_load_fold.ll
vec_udiv_to_shift.ll
vec_uint_to_fp.ll
vec_zero_cse.ll
vec_zero-2.ll
vec_zero.ll
vec_zext.ll Revert accidental commit of a pruned testcase from r150360. 2012-02-13 04:33:33 +00:00
vec-sign.ll
vec-trunc-store.ll
vector-gep.ll Fix a bug in the code that builds SDNodes from vector GEPs. 2012-02-28 11:54:05 +00:00
vector-intrinsics.ll
vector-rem.ll
vector-variable-idx2.ll
vector-variable-idx.ll
vector.ll
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
weak.ll
wide-integer-fold.ll
widen_arith-1.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
widen_arith-2.ll
widen_arith-3.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
widen_arith-4.ll
widen_arith-5.ll
widen_arith-6.ll
widen_cast-1.ll
widen_cast-2.ll
widen_cast-3.ll
widen_cast-4.ll
widen_cast-5.ll
widen_cast-6.ll
widen_conv-1.ll
widen_conv-2.ll
widen_conv-3.ll
widen_conv-4.ll
widen_extract-1.ll
widen_load-0.ll
widen_load-1.ll
widen_load-2.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
widen_shuffle-1.ll 1. Remove the part of r153848 which optimizes shuffle-of-shuffle into a new 2012-04-07 21:19:08 +00:00
win32_sret.ll Support MSVC x86-32 sret convention. PR11688. Patch by Joe Groff. 2012-01-20 00:05:46 +00:00
win64_alloca_dynalloca.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
win64_params.ll
win64_vararg.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
win_chkstk.ll
win_ftol2.ll Target/X86: Fix assertion failures and warnings caused by r151382 _ftol2 lowering for i386-*-win32 targets. Patch by Joe Groff. 2012-02-25 03:37:25 +00:00
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
x86-store-gv-addr.ll
xmm-r64.ll
xop-intrinsics-x86_64.ll Remove most of the intrinsics for XOP VPCMOV instruction. They all aliased to the same instruction with different types. This would be better accomplished with casts in the not yet created xopintrin.h header file. 2012-02-05 00:55:56 +00:00
xor-icmp.ll
xor.ll
zero-remat.ll
zext-extract_subreg.ll
zext-fold.ll Instruction scheduling itinerary for Intel Atom. 2012-02-01 23:20:51 +00:00
zext-inreg-0.ll
zext-inreg-1.ll
zext-sext.ll misched: tag a few XFAILs that I plan to fix 2012-03-21 22:31:31 +00:00
zext-shl.ll
zext-trunc.ll