llvm-6502/test/CodeGen/X86
Dan Gohman 707e018423 Drop ISD::MEMSET, ISD::MEMMOVE, and ISD::MEMCPY, which are not Legal
on any current target and aren't optimized in DAGCombiner. Instead
of using intermediate nodes, expand the operations, choosing between
simple loads/stores, target-specific code, and library calls,
immediately.

Previously, the code to emit optimized code for these operations
was only used at initial SelectionDAG construction time; now it is
used at all times. This fixes some cases where rep;movs was being
used for small copies where simple loads/stores would be better.

This also cleans up code that checks for alignments less than 4;
let the targets make that decision instead of doing it in
target-independent code. This allows x86 to use rep;movs in
low-alignment cases.

Also, this fixes a bug that resulted in the use of rep;stos for
memsets of 0 with non-constant memory size when the alignment was
at least 4. It's better to use the library in this case, which
can be significantly faster when the size is large.

This also preserves more SourceValue information when memory
intrinsics are lowered into simple loads/stores.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49572 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-12 04:36:06 +00:00
..
2002-12-23-LocalRAProblem.llx Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2002-12-23-SubProblem.llx Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2003-08-03-CallArgLiveRanges.llx Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2003-08-23-DeadBlockTest.llx Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2003-11-03-GlobalBool.llx Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2004-02-12-Memcpy.llx Drop ISD::MEMSET, ISD::MEMMOVE, and ISD::MEMCPY, which are not Legal 2008-04-12 04:36:06 +00:00
2004-02-13-FrameReturnAddress.llx Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2004-02-14-InefficientStackPointer.llx Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2004-02-22-Casts.llx Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2004-03-30-Select-Max.llx Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2004-04-09-SameValueCoalescing.llx Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2004-04-13-FPCMOV-Crash.llx Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2004-06-10-StackifierCrash.llx Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2004-10-08-SelectSetCCFold.llx Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2005-01-17-CycleInDAG.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2005-02-14-IllegalAssembler.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2005-05-08-FPStackifierPHI.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-01-19-ISelFoldingBug.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-03-01-InstrSchedBug.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-03-02-InstrSchedBug.ll Rename -disable-required-unwind-tables to -unwind-tables-optional. 2008-04-08 18:10:08 +00:00
2006-04-04-CrossBlockCrash.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-04-27-ISelFoldingBug.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-05-01-SchedCausingSpills.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-05-02-InstrSched1.ll Rename -disable-required-unwind-tables to -unwind-tables-optional. 2008-04-08 18:10:08 +00:00
2006-05-02-InstrSched2.ll Rename -disable-required-unwind-tables to -unwind-tables-optional. 2008-04-08 18:10:08 +00:00
2006-05-08-CoalesceSubRegClass.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-05-08-InstrSched.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-05-11-InstrSched.ll Rename -disable-required-unwind-tables to -unwind-tables-optional. 2008-04-08 18:10:08 +00:00
2006-05-17-VectorArg.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-05-22-FPSetEQ.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-05-25-CycleInDAG.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-07-10-InlineAsmAConstraint.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-07-12-InlineAsmQConstraint.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-07-19-ATTAsm.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-07-20-InlineAsm.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-07-28-AsmPrint-Long-As-Pointer.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-07-31-SingleRegClass.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-08-07-CycleInDAG.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
2006-08-16-CycleInDAG.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
2006-08-21-ExtraMovInst.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
2006-09-01-CycleInDAG.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
2006-10-02-BoolRetCrash.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
2006-10-07-ScalarSSEMiscompile.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
2006-10-09-CycleInDAG.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-10-10-FindModifiedNodeSlotBug.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-10-12-CycleInDAG.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
2006-10-13-CycleInDAG.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
2006-10-19-SwitchUnnecessaryBranching.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
2006-11-12-CSRetCC.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
2006-11-17-IllegalMove.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
2006-11-27-SelectLegalize.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
2006-11-28-Memcpy.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
2006-12-19-IntelSyntax.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
2007-01-08-InstrSched.ll
2007-01-13-StackPtrIndex.ll
2007-01-29-InlineAsm-ir.ll
2007-02-04-OrAddrMode.ll
2007-02-19-LiveIntervalAssert.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 Avoid commuting a def MI in order to coalesce a copy instruction away if any use of the same val# is a copy instruction that has already been coalesced. 2008-03-26 19:03:01 +00:00
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 Enable -coalescer-commute-instrs by default. 2008-02-26 20:40:22 +00:00
2007-04-27-InlineAsm-IntMemInput.ll
2007-05-05-VecCastExpand.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
2007-05-07-InvokeSRet.ll
2007-05-14-LiveIntervalAssert.ll
2007-05-15-maskmovq.ll
2007-05-17-ShuffleISelBug.ll Fix sse2.psrl.w and sse2.psrl.q definitions. 2008-01-09 02:16:44 +00:00
2007-06-04-tailmerge4.ll
2007-06-04-X86-64-CtorAsmBugs.ll
2007-06-05-LSR-Dominator.ll
2007-06-14-branchfold.ll Teach branch folding pass about implicit_def instructions. Unfortunately we can't just eliminate them since register scavenger expects every register use to be defined. However, we can delete them when there are no intra-block uses. Carefully removing some implicit def's which enable more blocks to be optimized away. 2008-04-10 02:32:10 +00:00
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 Remove unnecessary && from the RUN lines of this test. 2007-11-27 00:03:38 +00:00
2007-07-10-StackerAssert.ll
2007-07-18-Vector-Extract.ll
2007-07-25-EpilogueBug.ll Don't emit FP_REG_KILL into a block that just returns. Nothing 2008-03-10 23:34:12 +00:00
2007-08-01-LiveVariablesBug.ll
2007-08-09-IllegalX86-64Asm.ll
2007-08-10-SignExtSubreg.ll
2007-08-13-AppendingLinkage.ll
2007-08-13-SpillerReuse.ll Turning simple splitting on. Start testing new coalescer heuristics as new llcbeta. 2007-12-06 08:54:31 +00:00
2007-09-03-X86-64-EhSelector.ll
2007-09-05-InvalidAsm.ll
2007-09-06-ExtWeakAliasee.ll
2007-09-17-ObjcFrameEH.ll Rename -disable-required-unwind-tables to -unwind-tables-optional. 2008-04-08 18:10:08 +00:00
2007-09-18-ShuffleXformBug.ll Favors pshufd over shufps when shuffling elements from one vector. pshufd is faster than shufps. 2008-04-05 00:30:36 +00:00
2007-09-27-LDIntrinsics.ll
2007-10-04-AvoidEFLAGSCopy.ll
2007-10-05-3AddrConvert.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-16-fp80_select.ll
2007-10-16-IllegalAsm.ll
2007-10-17-IllegalAsm.ll
2007-10-19-SpillerUnfold.ll
2007-10-28-inlineasm-q-modifier.ll Add support for the x86-64 'q' regigster modifier, and add support for the 2007-10-29 03:09:07 +00:00
2007-10-29-ExtendSetCC.ll Enable more fold (sext (load x)) -> (sext (truncate (sextload x))) 2007-10-29 19:58:20 +00:00
2007-10-30-LSRCrash.ll It's not safe to tell SplitCriticalEdge to merge identical edges. It may delete the phi instruction that's being processed. 2007-10-30 22:27:26 +00:00
2007-10-31-extractelement-i64.ll Test that expand_vector_elt(v2i64) works in 32-bit mode. 2007-11-01 02:38:24 +00:00
2007-11-01-ISelCrash.ll Add run line. 2007-11-02 17:36:58 +00:00
2007-11-02-BadAsm.ll One more extract_subreg coalescing bug. 2007-11-02 17:35:08 +00:00
2007-11-03-x86-64-q-constraint.ll Fix PR1763 by allowing the 'q' constraint to work with 64-bit 2007-11-04 06:51:12 +00:00
2007-11-04-LiveIntervalCrash.ll Doh. PR1187 -> PR1766. 2007-11-05 01:00:44 +00:00
2007-11-04-LiveVariablesBug.ll Handle cases where a register and one of its super-register are both marked as 2007-11-05 03:11:55 +00:00
2007-11-04-rip-immediate-constant.ll Fix PR1761 by not printing (rip) suffix when in -static mode. 2007-11-04 19:23:28 +00:00
2007-11-06-InstrSched.ll Add pseudo dependency to force two-address instruction to be scheduled after 2007-11-06 08:44:59 +00:00
2007-11-07-MulBy4.ll If both parts of smul_lohi, etc. are used, don't simplify. If only one part is used, try simplify it. 2007-11-08 09:25:29 +00:00
2007-11-14-Coalescer-Bug.ll Typo. 2007-11-16 23:55:08 +00:00
2007-11-30-LoadFolding-Bug.ll Do not fold reload into an instruction with multiple uses. It issues one extra load. 2007-11-30 21:23:43 +00:00
2007-11-30-TestLoadFolding.ll Turning simple splitting on. Start testing new coalescer heuristics as new llcbeta. 2007-12-06 08:54:31 +00:00
2007-12-11-FoldImpDefSpill.ll Implicit def instructions, e.g. X86::IMPLICIT_DEF_GR32, are always re-materializable and they should not be spilled. 2007-12-12 23:12:09 +00:00
2007-12-16-BURRSchedCrash.ll FIX for PR1799: When a load is unfolded from an instruction, check if it is a new node. If not, do not create a new SUnit. 2007-12-18 08:42:10 +00:00
2007-12-18-LoadCSEBug.ll Fix PR1872: SrcValue and SrcValueOffset should not be used to compute load / store node id. 2007-12-18 19:38:14 +00:00
2008-01-08-IllegalCMP.ll Crashes llc when using Chris's new legalization logic. 2008-01-08 21:51:53 +00:00
2008-01-08-SchedulerCrash.ll Add CMP32mr and friends to the load-unfolding table. Among 2008-03-25 16:53:19 +00:00
2008-01-09-LongDoubleSin.ll Output sinl for a long double FSIN node, not sin. 2008-01-10 10:28:30 +00:00
2008-01-16-FPStackifierAssert.ll When a live virtual register is being clobbered by an implicit def, it is spilled 2008-01-17 02:08:17 +00:00
2008-01-16-InvalidDAGCombineXform.ll Fixes a nasty dag combiner bug that causes a bunch of tests to fail at -O0. 2008-01-16 23:11:54 +00:00
2008-01-16-Trampoline.ll Trampoline support for x86-64. This looks like 2008-01-16 22:55:25 +00:00
2008-01-25-EmptyFunction.ll Add target triples to these so they don't fail on linux. 2008-01-29 06:26:07 +00:00
2008-02-05-ISelCrash.ll Fix PR1975: dag isel emitter produces patterns that isel wrong flag result. 2008-02-05 22:50:29 +00:00
2008-02-06-LoadFoldingBug.ll Added missing entries in X86 load / store folding tables. 2008-02-08 00:12:56 +00:00
2008-02-08-LoadFoldingBug.ll It's not always safe to fold movsd into xorpd, etc. Check the alignment of the load address first to make sure it's 16 byte aligned. 2008-02-08 21:20:40 +00:00
2008-02-14-BitMiscompile.ll Fix a miscompilation from Dan's recent apintification. 2008-02-14 18:48:56 +00:00
2008-02-18-TailMergingBug.ll this test requires sse2 2008-02-19 18:07:46 +00:00
2008-02-20-InlineAsmClobber.ll Treat clobber operands like early clobbers: if we have 2008-02-21 19:43:13 +00:00
2008-02-22-LocalRegAllocBug.ll Really. Why doesn't every arch support MMX? 2008-02-23 00:56:14 +00:00
2008-02-22-ReMatBug.ll Spiller now remove unused spill slots. 2008-02-27 03:04:06 +00:00
2008-02-25-InlineAsmBug.ll Fix PR2076. CodeGenPrepare now sinks address computation for inline asm memory 2008-02-26 02:42:37 +00:00
2008-02-25-X86-64-CoalescerBug.ll This is possible: 2008-02-26 08:03:41 +00:00
2008-02-26-AsmDirectMemOp.ll Fix for pr2093: direct operands aren't necessarily addresses, so don't 2008-02-26 18:37:49 +00:00
2008-02-27-DeadSlotElimBug.ll Fix a bug in dead spill slot elimination. 2008-02-27 19:57:11 +00:00
2008-02-27-PEICrash.ll Don't track max alignment during stack object allocations since they can be deleted later. Let PEI compute it. 2008-02-27 10:04:56 +00:00
2008-03-06-frem-fpstack.ll mark frem as expand for all legal fp types on x86, regardless of whether 2008-03-07 06:36:32 +00:00
2008-03-07-APIntBug.ll A test case I forgot to check in. 2008-03-13 06:42:46 +00:00
2008-03-10-RegAllocInfLoop.ll Experimental scheduler change to schedule / coalesce the copies added for function livein's. Take 2008-03-10-RegAllocInfLoop.ll, the schedule looks like this after these copies are inserted: 2008-03-12 22:19:41 +00:00
2008-03-12-ThreadLocalAlias.ll Testcase for PR2137 2008-03-11 22:43:42 +00:00
2008-03-13-TwoAddrPassCrash.ll New test case. 2008-03-13 08:05:02 +00:00
2008-03-14-SpillerCrash.ll Fix PR2138. Apparently any modification to a std::multimap (including remove entries for a different key) can invalidate multimap iterators. 2008-03-14 20:44:01 +00:00
2008-03-18-CoalescerBug.ll Fixed a coalescer bug caused by a typo. 2008-03-19 02:26:36 +00:00
2008-03-19-DAGCombinerBug.ll Fix this xform: (sra (shl X, m), result_size) -> (sign_extend (trunc (shl X, result_size - n - m))) 2008-03-20 02:18:41 +00:00
2008-03-23-DarwinAsmComments.ll Use ## for comment delimiter on darwin x86-32, so 2008-03-25 23:29:30 +00:00
2008-03-25-TwoAddrPassBug.ll Fix a memory bug: increment an iterator of a deleted machine instr. 2008-03-27 01:27:25 +00:00
2008-03-31-SpillerFoldingBug.ll It's not safe to fold a load from GV stub or constantpool into a two-address use. 2008-03-31 23:19:51 +00:00
2008-04-02-unnamedEH.ll Testcase for EH with functions whose names are stripped. 2008-04-02 20:16:41 +00:00
2008-04-08-CoalescerCrash.ll Missed a hasInterval check. 2008-04-09 01:30:15 +00:00
2008-04-09-BranchFolding.ll Teach branch folding pass about implicit_def instructions. Unfortunately we can't just eliminate them since register scavenger expects every register use to be defined. However, we can delete them when there are no intra-block uses. Carefully removing some implicit def's which enable more blocks to be optimized away. 2008-04-10 02:32:10 +00:00
aliases.ll Update testcase for recent aliases change 2008-03-11 21:42:20 +00:00
aligned-comm.ll Test is correct again for the moment. 2008-01-18 19:53:31 +00:00
all-ones-vector.ll Fix this test on hosts that don't have sse2. 2008-03-12 20:40:51 +00:00
alloca-align-rounding.ll
and-or-fold.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
arg-cast.ll Fix test. 2008-02-14 01:32:53 +00:00
asm-block-labels.ll Make labels work in asm blocks; allow labels as 2007-11-05 21:20:28 +00:00
asm-global-imm.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
bitcast2.ll
bitcast-int-to-vector.ll Fix a DAGCombiner abort on a bitcast from a scalar to a vector. 2007-10-29 20:44:42 +00:00
bitcast.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
bswap.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
byval2.ll Drop ISD::MEMSET, ISD::MEMMOVE, and ISD::MEMCPY, which are not Legal 2008-04-12 04:36:06 +00:00
byval3.ll Drop ISD::MEMSET, ISD::MEMMOVE, and ISD::MEMCPY, which are not Legal 2008-04-12 04:36:06 +00:00
byval4.ll Drop ISD::MEMSET, ISD::MEMMOVE, and ISD::MEMCPY, which are not Legal 2008-04-12 04:36:06 +00:00
byval5.ll Drop ISD::MEMSET, ISD::MEMMOVE, and ISD::MEMCPY, which are not Legal 2008-04-12 04:36:06 +00:00
byval6.ll Let each target decide byval alignment. For X86, it's 4-byte unless the aggregare contains SSE vector(s). For x86-64, it's max of 8 or alignment of the type. 2008-01-23 23:17:41 +00:00
byval7.ll Drop ISD::MEMSET, ISD::MEMMOVE, and ISD::MEMCPY, which are not Legal 2008-04-12 04:36:06 +00:00
byval.ll
call-push.ll
clz.ll Fix ctlz and cttz. llvm definition requires them to return number of bits in of the src type when value is zero. 2007-12-14 08:30:15 +00:00
cmp0.ll
cmp1.ll
cmp-test.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
coalescer-commute1.ll Enable -coalescer-commute-instrs by default. 2008-02-26 20:40:22 +00:00
coalescer-commute2.ll Evan implemented these. 2008-03-02 18:05:14 +00:00
coalescer-commute3.ll Enable -coalescer-commute-instrs by default. 2008-02-26 20:40:22 +00:00
coalescer-commute4.ll Really fix the test. 2008-03-04 08:01:56 +00:00
coalescer-commute5.ll - Fix a subtle bug in RemoveCopyByCommutingDef. ALR is the live range where the source is defined; BLR is the live range which is defined by the copy. 2008-03-10 08:11:32 +00:00
commute-two-addr.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
compare_folding.llx Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
compare-add.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
constant-pool-remat-0.ll Rename -disable-required-unwind-tables to -unwind-tables-optional. 2008-04-08 18:10:08 +00:00
copysign-zero.ll Add target-specific dag combines for FAND(x,0) and FOR(x,0). This allows 2008-01-25 05:46:26 +00:00
dagcombine-cse.ll Rename -disable-required-unwind-tables to -unwind-tables-optional. 2008-04-08 18:10:08 +00:00
darwin-bzero.ll Speculatively micro-optimize memory-zeroing calls on Darwin 10. 2008-04-01 20:38:36 +00:00
darwin-no-dead-strip.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
dg.exp
div_const.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
divrem.ll
dollar-name.ll
dyn-stackalloc.ll
epilogue.ll
extend.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
extern_weak.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
extmul64.ll
extmul128.ll
extractelement-from-arg.ll
fabs.ll
fast-cc-callee-pops.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
fast-cc-merge-stack-adj.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
fast-cc-pass-in-regs.ll fix bogus test that the more strict lexer is finding. 2007-11-18 18:26:45 +00:00
fastcall-correct-mangling.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
field-extract-use-trunc.ll Fix X86's isTruncateFree to not claim that truncate to i1 is free. This fixes Bill's testcase that failed for r48491. 2008-03-19 08:30:06 +00:00
fildll.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
fold-and-shift.ll Fold some and + shift in x86 addressing mode. 2007-12-13 00:43:27 +00:00
fold-load.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
fold-mul-lohi.ll Don't mask the isel bug. 2008-02-12 19:11:29 +00:00
fp2sint.ll
fp_constant_op.llx Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
fp_load_cast_fold.llx Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
fp_load_fold.llx Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
fp-immediate-shorten.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
fp-in-intregs.ll Implement some dag combines that allow doing fneg/fabs/fcopysign in integer 2008-01-27 17:42:27 +00:00
fp-stack-2results.ll Add support for calls that return two FP values in 2008-03-21 06:38:26 +00:00
fp-stack-compare.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
fp-stack-direct-ret.ll Significantly simplify and improve handling of FP function results on x86-32. 2008-01-24 08:07:48 +00:00
fp-stack-ret-conv.ll Significantly simplify and improve handling of FP function results on x86-32. 2008-01-24 08:07:48 +00:00
fp-stack-ret-store.ll make sure to use a cpu that has sse. 2008-01-16 06:32:02 +00:00
fp-stack-ret.ll
fp-stack-retcopy.ll My previous commit had an incomplete message, it should have been: 2008-01-16 05:56:59 +00:00
fsxor-alignment.ll
hidden-vis.ll rename tests to avoid a test- prefix when they aren't related to the test instruction. 2008-02-19 17:33:52 +00:00
i128-immediate.ll APIntify SelectionDAG's EXTRACT_ELEMENT code. 2008-03-24 16:38:05 +00:00
i128-mul.ll
i128-ret.ll
iabs.ll Rename -disable-required-unwind-tables to -unwind-tables-optional. 2008-04-08 18:10:08 +00:00
illegal-insert.ll
illegal-vector-args-return.ll
imp-def-copies.ll New test case. 2008-04-03 21:25:03 +00:00
imul-lea.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
inline-asm-fpstack.ll Implement basic support for the 'f' register class constraint. This basically 2008-03-11 19:50:13 +00:00
inline-asm-x-scalar.ll
inline-asm.ll
ins_subreg_coalesce-1.ll - More aggressively coalescing away copies whose source is defined by an implicit_def. 2008-04-09 20:57:25 +00:00
ins_subreg_coalesce-2.ll - More aggressively coalescing away copies whose source is defined by an implicit_def. 2008-04-09 20:57:25 +00:00
ins_subreg_coalesce-3.ll - More aggressively coalescing away copies whose source is defined by an implicit_def. 2008-04-09 20:57:25 +00:00
insertelement-copytoregs.ll
invalid-shift-immediate.ll Avoid aborting on invalid shift counts. 2008-02-26 18:50:50 +00:00
isel-sink.ll
isnan.ll Fold comparisons against a constant nan, and optimize ORD/UNORD 2007-12-29 08:37:08 +00:00
isnan.llx Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
ispositive.ll
jump_sign.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
ldzero.ll
lea-2.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
lea-3.ll
lea-recursion.ll
lea.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
lfence.ll llvm.memory.barrier, and impl for x86 and alpha 2008-02-16 01:24:58 +00:00
long-setcc.ll
longlong-deadload.ll Make load->store deletion a bit smarter. This allows us to compile this: 2008-01-08 23:08:06 +00:00
loop-hoist.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
loop-strength-reduce2.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
loop-strength-reduce3.ll If a loop termination compare instruction is the only use of its stride, 2007-10-25 09:11:16 +00:00
loop-strength-reduce4.ll If a loop termination compare instruction is the only use of its stride, 2007-10-25 09:11:16 +00:00
loop-strength-reduce5.ll Loosen up iv reuse to allow reuse of the same stride but a larger type when truncating from the larger type to smaller type is free. 2007-10-26 01:56:11 +00:00
loop-strength-reduce6.ll - Bug fixes. 2007-10-29 22:07:18 +00:00
loop-strength-reduce.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
lsr-negative-stride.ll
memcpy.ll
memmove-0.ll
memmove-1.ll
memmove-2.ll
memmove-3.ll
mfence.ll llvm.memory.barrier, and impl for x86 and alpha 2008-02-16 01:24:58 +00:00
mingw-alloca.ll
mmx-arith.ll
mmx-copy-gprs.ll copy mmx values from/to memory with GPRs on x86-32 2008-02-22 05:18:04 +00:00
mmx-emms.ll
mmx-insert-element.ll
mmx-punpckhdq.ll
mmx-shift.ll Undo 48570. Correctly match mmx shift instructions with an immediate operand. 2008-03-21 00:40:09 +00:00
mmx-shuffle.ll
mul64.ll
mul128.ll
mul-legalize.ll Fix mul expansion to check the correct number of bits for 2008-03-10 20:42:19 +00:00
mul-remat.ll Don't mark scalar integer multiplication as Expand on x86, since x86 2008-02-18 17:55:26 +00:00
mul-shift-reassoc.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
multiple-return-values-cross-block.ll Handle getresult instructions in different basic blocks 2008-03-21 21:01:32 +00:00
multiple-return-values.ll Make this test x86-specific for now; targets that don't use 2008-03-12 00:25:14 +00:00
nancvt.ll
negative_zero.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
negative-sin.ll
nofence.ll llvm.memory.barrier, and impl for x86 and alpha 2008-02-16 01:24:58 +00:00
opt-ext-uses.ll Be extra careful with extension use optimation. Now turned on by default. 2007-12-13 03:32:53 +00:00
or-branch.ll Rename -disable-required-unwind-tables to -unwind-tables-optional. 2008-04-08 18:10:08 +00:00
overlap-shift.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
packed_struct.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
peep-vector-extract-concat.ll Favors pshufd over shufps when shuffling elements from one vector. pshufd is faster than shufps. 2008-04-05 00:30:36 +00:00
peep-vector-extract-insert.ll
pic_jumptable.ll Fix a x86-64 codegen deficiency. Allow gv + offset when using rip addressing mode. 2008-02-07 08:53:49 +00:00
pic-1.ll rename tests to avoid a test- prefix when they aren't related to the test instruction. 2008-02-19 17:33:52 +00:00
pic-2.ll rename tests to avoid a test- prefix when they aren't related to the test instruction. 2008-02-19 17:33:52 +00:00
pic-3.ll rename tests to avoid a test- prefix when they aren't related to the test instruction. 2008-02-19 17:33:52 +00:00
pic-4.ll rename tests to avoid a test- prefix when they aren't related to the test instruction. 2008-02-19 17:33:52 +00:00
pic-5.ll rename tests to avoid a test- prefix when they aren't related to the test instruction. 2008-02-19 17:33:52 +00:00
pic-6.ll rename tests to avoid a test- prefix when they aren't related to the test instruction. 2008-02-19 17:33:52 +00:00
pic-cpool.ll rename tests to avoid a test- prefix when they aren't related to the test instruction. 2008-02-19 17:33:52 +00:00
pic-jtbl.ll rename tests to avoid a test- prefix when they aren't related to the test instruction. 2008-02-19 17:33:52 +00:00
pic-load-remat.ll Update test. 2008-02-23 02:57:25 +00:00
postalloc-coalescing.ll There are times when the coalescer would not coalesce away a copy but the copy 2007-11-03 07:20:12 +00:00
pr1462.ll APIntify SelectionDAG's EXTRACT_ELEMENT code. 2008-03-24 16:38:05 +00:00
pr1489.ll
pr1505.ll take these with a pr # 2008-01-24 06:35:44 +00:00
pr1505b.ll reduce this testcase more 2008-03-09 06:57:21 +00:00
pr2177.ll Fix a tokenfactor node to use the load chain rather than the 2008-03-28 23:45:16 +00:00
pr2182.ll Fix a DAGCombiner optimization to respect volatile qualification. 2008-03-31 20:32:52 +00:00
prefetch.ll There is no "-mattr=+sse1" flag; fix test for non-x86 hosts. 2008-03-10 17:13:37 +00:00
rdtsc.ll upgrade this test 2007-11-24 05:39:29 +00:00
regpressure.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
rem.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
rotate2.ll ensure we continue matching x86-64 rotates. 2008-03-17 01:35:03 +00:00
rotate.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
scalar_sse_minmax.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
scalar-min-max-fill-operand.ll
select-zero-one.ll
select.ll Rename -disable-required-unwind-tables to -unwind-tables-optional. 2008-04-08 18:10:08 +00:00
setuge.ll Rename -disable-required-unwind-tables to -unwind-tables-optional. 2008-04-08 18:10:08 +00:00
sext-load.ll this xform is implemented. 2007-12-29 08:19:39 +00:00
sext-select.ll Use the correct value for InSignBit. 2008-03-11 21:29:43 +00:00
sfence.ll llvm.memory.barrier, and impl for x86 and alpha 2008-02-16 01:24:58 +00:00
shift-coalesce.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
shift-codegen.ll
shift-combine.ll third time around: instead of disabling this completely, 2007-12-06 07:47:55 +00:00
shift-double.llx Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
shift-folding.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
shift-one.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
shl_elim.ll
shrink-fp-const1.ll Add a target lowering hook to control whether it's worthwhile to compress fp constant. 2008-03-05 01:30:59 +00:00
shrink-fp-const2.ll Generalize FP constant shrinking optimization to apply to any vt 2008-03-05 06:48:13 +00:00
sincos.ll
small-byval-memcpy.ll Drop ISD::MEMSET, ISD::MEMMOVE, and ISD::MEMCPY, which are not Legal 2008-04-12 04:36:06 +00:00
split-select.ll
split-vector-rem.ll Add support in SplitVectorOp for remainder operators. 2007-11-19 15:15:03 +00:00
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 fix this to use a valid triple. 2008-01-02 22:21:45 +00:00
sse-align-12.ll
sse-fcopysign.ll
sse-load-ret.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
sse-varargs.ll SSE varargs arguments are passed in memory. 2008-01-22 23:26:53 +00:00
stack-align.ll Infer alignment of loads and increase their alignment when we can tell they are 2008-01-26 19:45:50 +00:00
store_op_load_fold2.ll Byebye llvm-upgrade! 2008-03-25 04:26:08 +00:00
store_op_load_fold.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
store-fp-constant.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
store-global-address.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
storetrunc-fp.ll This commit changes: 2008-01-17 19:59:44 +00:00
stride-nine-with-base-reg.ll Don't mask the isel bug. 2008-02-12 19:11:29 +00:00
stride-reuse.ll Don't mask the isel bug. 2008-02-12 19:11:29 +00:00
tailcall1.ll
tailcallbyval.ll Update tailcall code to include inline attribute operand for memcpy. 2007-11-10 10:48:01 +00:00
tailcallpic1.ll
tailcallpic2.ll
test-nofold.ll Set to default: x86 no longer fold and into test if it has more than one use. 2008-02-28 07:46:38 +00:00
tls1.ll
tls2.ll
trap.ll verify x86 generates ud2 for llvm.trap 2008-01-15 22:22:02 +00:00
trunc-to-bool.ll
twoaddr-pass-sink.ll TwoAddressInstructionPass enhancement. After it converts a two address instruction into a 3-address one, sink it past the instruction that kills the read-mod-write register if its definition is used past the kill. This reduces the number of live register by one. 2008-03-13 06:37:55 +00:00
urem-i8-constant.ll Don't lower srem/urem X%C to X-X/C*C unless the division is actually 2007-11-26 23:46:11 +00:00
v4f32-immediate.ll
variable-sized-darwin-bzero.ll Drop ISD::MEMSET, ISD::MEMMOVE, and ISD::MEMCPY, which are not Legal 2008-04-12 04:36:06 +00:00
vec_add.ll
vec_align.ll New test to verify that "merging 4 loads into a vec load" continues to work and 2008-01-26 20:06:45 +00:00
vec_call.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
vec_clear.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
vec_ctbits.ll Allow vector integer constants to be created with 2007-12-12 22:21:26 +00:00
vec_extract-sse4.ll - SSE4.1 extractfps extracts a f32 into a gr32 register. Very useful! Not. Fix the instruction specification and teaches lowering code to use it only when the only use is a store instruction. 2008-03-24 21:52:23 +00:00
vec_extract.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
vec_fneg.ll
vec_ins_extract.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
vec_insert-2.ll Update test to catch recent x86 insert regression and improvements 2008-01-07 17:49:23 +00:00
vec_insert-3.ll Use shuffles to implement insert_vector_elt for i32, i64, f32, and f64. 2007-12-12 07:55:34 +00:00
vec_insert.ll Use shuffles to implement insert_vector_elt for i32, i64, f32, and f64. 2007-12-12 07:55:34 +00:00
vec_logical.ll
vec_return.ll Lower a build_vector with all constants into a constpool load unless it can be done with a move to low part. 2007-12-12 06:45:40 +00:00
vec_select.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
vec_set-2.ll Fix a bogus test case. 2007-12-06 22:12:45 +00:00
vec_set-3.ll Favors pshufd over shufps when shuffling elements from one vector. pshufd is faster than shufps. 2008-04-05 00:30:36 +00:00
vec_set-4.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
vec_set-5.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
vec_set-6.ll Favors pshufd over shufps when shuffling elements from one vector. pshufd is faster than shufps. 2008-04-05 00:30:36 +00:00
vec_set-7.ll upgrade this test 2007-12-29 19:24:06 +00:00
vec_set-8.ll One readme entry is done, one is really easy (Evan, want to investigate 2007-12-29 19:31:47 +00:00
vec_set-9.ll make this test harder 2008-03-09 00:30:06 +00:00
vec_set-A.ll These tests don't work unless SSE2 is active. 2008-03-10 17:33:57 +00:00
vec_set-B.ll These tests don't work unless SSE2 is active. 2008-03-10 17:33:57 +00:00
vec_set.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
vec_shift2.ll - When DAG combiner is folding a bit convert into a BUILD_VECTOR, it should check if it's essentially a SCALAR_TO_VECTOR. Avoid turning (v8i16) <10, u, u, u> to <10, 0, u, u, u, u, u, u>. Instead, simply convert it to a SCALAR_TO_VECTOR of the proper type. 2008-02-18 23:04:32 +00:00
vec_shift.ll Fix sse2.psrl.w and sse2.psrl.q definitions. 2008-01-09 02:16:44 +00:00
vec_shuffle-2.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
vec_shuffle-3.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
vec_shuffle-4.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
vec_shuffle-5.ll Favors pshufd over shufps when shuffling elements from one vector. pshufd is faster than shufps. 2008-04-05 00:30:36 +00:00
vec_shuffle-6.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
vec_shuffle-7.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
vec_shuffle-8.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
vec_shuffle-9.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
vec_shuffle-10.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
vec_shuffle-11.ll
vec_shuffle-12.ll - Improved v8i16 shuffle lowering. It now uses pshuflw and pshufhw as much as 2007-12-11 01:46:18 +00:00
vec_shuffle-13.ll Favors pshufd over shufps when shuffling elements from one vector. pshufd is faster than shufps. 2008-04-05 00:30:36 +00:00
vec_shuffle-14.ll Make better use of instructions that clear high bits; fix various 2-wide shuffle bugs. 2007-12-15 03:00:47 +00:00
vec_shuffle-15.ll Make better use of instructions that clear high bits; fix various 2-wide shuffle bugs. 2007-12-15 03:00:47 +00:00
vec_shuffle-16.ll Fix test. 2008-04-07 17:02:18 +00:00
vec_shuffle-17.ll Fix the x86-64 side of PR2108 by adding a v2f64 version of 2008-04-10 05:13:43 +00:00
vec_shuffle.ll Favors pshufd over shufps when shuffling elements from one vector. pshufd is faster than shufps. 2008-04-05 00:30:36 +00:00
vec_splat-2.ll Favors pshufd over shufps when shuffling elements from one vector. pshufd is faster than shufps. 2008-04-05 00:30:36 +00:00
vec_splat.ll Favors pshufd over shufps when shuffling elements from one vector. pshufd is faster than shufps. 2008-04-05 00:30:36 +00:00
vec_ss_load_fold.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
vec_zero_cse.ll fix this when run on non x86 hosts. 2007-12-06 01:05:52 +00:00
vec_zero-2.ll Avoid creating BUILD_VECTOR of all zero elements of "non-normalized" type (e.g. v8i16 on x86) after legalizer. Instruction selection does not expect to see them. In all likelihood this can only be an issue in a bugpoint reduced test case. 2008-03-10 07:19:13 +00:00
vec_zero.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
vector-intrinsics.ll
vector-rem.ll Add support for vector remainder operations. 2007-11-05 23:35:22 +00:00
vector.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
weak.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
x86-64-and-mask.ll Compile x86-64-and-mask.ll into: 2008-02-27 05:47:54 +00:00
x86-64-arg.ll
x86-64-asm.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
x86-64-dead-stack-adjust.ll actually run llc, thanks Dan :) 2008-02-27 17:46:54 +00:00
x86-64-gv-offset.ll Fix a x86-64 codegen deficiency. Allow gv + offset when using rip addressing mode. 2008-02-07 08:53:49 +00:00
x86-64-mem.ll Add -disable-required-unwind-tables to tests 2008-04-08 00:14:17 +00:00
x86-64-ret0.ll Fix live variables issues: 2008-03-19 00:52:20 +00:00
x86-64-shortint.ll
x86-64-varargs.ll Fix a x86-64 isel lowering bug that's been around forever. A x86-64 varargs function implicitly reads X86::AL, don't clobber it! 2008-03-18 23:36:35 +00:00
xmm-r64.ll Remove llvm-upgrade and update tests. 2008-02-21 07:42:26 +00:00
xor_not.ll fix this testcase to pass and remove a duplicate instance of itself. 2008-04-06 21:39:17 +00:00
xor-undef.ll Handle a special case xor undef, undef -> 0. Technically this should be transformed to undef. But this is such a common idiom (misuse) we are going to handle it. 2008-03-25 20:08:07 +00:00
xorl.ll It might be nice to have this run as x86 on non-x86 platforms... 2008-03-18 22:38:22 +00:00
zero-remat.ll Rename -disable-required-unwind-tables to -unwind-tables-optional. 2008-04-08 18:10:08 +00:00