llvm-6502/test/CodeGen/ARM
Evan Cheng 376642ed62 Some enhancements for memcpy / memset inline expansion.
1. Teach it to use overlapping unaligned load / store to copy / set the trailing
   bytes. e.g. On 86, use two pairs of movups / movaps for 17 - 31 byte copies.
2. Use f64 for memcpy / memset on targets where i64 is not legal but f64 is. e.g.
   x86 and ARM.
3. When memcpy from a constant string, do *not* replace the load with a constant
   if it's not possible to materialize an integer immediate with a single
   instruction (required a new target hook: TLI.isIntImmLegal()).
4. Use unaligned load / stores more aggressively if target hooks indicates they
   are "fast".
5. Update ARM target hooks to use unaligned load / stores. e.g. vld1.8 / vst1.8.
   Also increase the threshold to something reasonable (8 for memset, 4 pairs
   for memcpy).

This significantly improves Dhrystone, up to 50% on ARM iOS devices.

rdar://12760078


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169791 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-10 23:21:26 +00:00
..
2006-11-10-CycleInDAG.ll
2007-01-19-InfiniteLoop.ll
2007-03-07-CombinerCrash.ll
2007-03-13-InstrSched.ll
2007-03-21-JoinIntervalsCrash.ll
2007-03-27-RegScavengerAssert.ll
2007-03-30-RegScavengerAssert.ll
2007-04-02-RegScavengerAssert.ll
2007-04-03-PEIBug.ll
2007-04-03-UndefinedSymbol.ll
2007-04-30-CombinerCrash.ll
2007-05-03-BadPostIndexedLd.ll
2007-05-07-tailmerge-1.ll
2007-05-09-tailmerge-2.ll
2007-05-14-InlineAsmCstCrash.ll
2007-05-14-RegScavengerAssert.ll
2007-05-22-tailmerge-3.ll
2007-05-23-BadPreIndexedStore.ll
2007-08-15-ReuseBug.ll
2008-02-04-LocalRegAllocBug.ll
2008-02-29-RegAllocLocal.ll
2008-03-05-SxtInRegBug.ll
2008-03-07-RegScavengerAssert.ll
2008-04-04-ScavengerAssert.ll
2008-04-10-ScavengerAssert.ll
2008-04-11-PHIofImpDef.ll
2008-05-19-LiveIntervalsBug.ll
2008-05-19-ScavengerAssert.ll
2008-07-17-Fdiv.ll
2008-07-24-CodeGenPrepCrash.ll
2008-08-07-AsmPrintBug.ll
2008-09-17-CoalescerBug.ll
2008-11-18-ScavengerAssert.ll
2009-02-16-SpillerBug.ll
2009-02-22-SoftenFloatVaArg.ll
2009-02-27-SpillerBug.ll
2009-03-07-SpillerBug.ll
2009-03-09-AddrModeBug.ll
2009-04-06-AsmModifier.ll
2009-04-08-AggregateAddr.ll
2009-04-08-FloatUndef.ll
2009-04-08-FREM.ll
2009-04-09-RegScavengerAsm.ll
2009-05-05-DAGCombineBug.ll
2009-05-07-RegAllocLocal.ll
2009-05-11-CodePlacementCrash.ll
2009-05-18-InlineAsmMem.ll
2009-06-02-ISelCrash.ll
2009-06-04-MissingLiveIn.ll
2009-06-15-RegScavengerAssert.ll
2009-06-19-RegScavengerAssert.ll
2009-06-22-CoalescerBug.ll
2009-06-30-RegScavengerAssert2.ll
2009-06-30-RegScavengerAssert3.ll
2009-06-30-RegScavengerAssert4.ll
2009-06-30-RegScavengerAssert5.ll
2009-06-30-RegScavengerAssert.ll
2009-07-01-CommuteBug.ll
2009-07-09-asm-p-constraint.ll
2009-07-18-RewriterBug.ll
2009-07-22-ScavengerAssert.ll
2009-07-22-SchedulerAssert.ll
2009-07-29-VFP3Registers.ll
2009-08-02-RegScavengerAssert-Neon.ll
2009-08-04-RegScavengerAssert-2.ll
2009-08-04-RegScavengerAssert.ll
2009-08-15-RegScavenger-EarlyClobber.ll
2009-08-15-RegScavengerAssert.ll
2009-08-21-PostRAKill2.ll
2009-08-21-PostRAKill3.ll
2009-08-21-PostRAKill.ll
2009-08-23-linkerprivate.ll
2009-08-26-ScalarToVector.ll
2009-08-27-ScalarToVector.ll
2009-08-29-ExtractEltf32.ll
2009-08-29-TooLongSplat.ll
2009-08-31-LSDA-Name.ll
2009-08-31-TwoRegShuffle.ll
2009-09-09-AllOnes.ll
2009-09-09-fpcmp-ole.ll
2009-09-10-postdec.ll
2009-09-13-InvalidSubreg.ll
2009-09-13-InvalidSuperReg.ll
2009-09-20-LiveIntervalsBug.ll
2009-09-21-LiveVariablesBug.ll
2009-09-22-LiveVariablesBug.ll
2009-09-23-LiveVariablesBug.ll
2009-09-24-spill-align.ll
2009-09-27-CoalescerBug.ll
2009-09-28-LdStOptiBug.ll
2009-10-02-NEONSubregsBug.ll
2009-10-16-Scope.ll
2009-10-21-InvalidFNeg.ll
2009-10-27-double-align.ll
2009-10-30.ll
2009-11-01-NeonMoves.ll
2009-11-02-NegativeLane.ll
2009-11-07-SubRegAsmPrinting.ll
2009-11-13-CoalescerCrash.ll
2009-11-13-ScavengerAssert2.ll
2009-11-13-ScavengerAssert.ll
2009-11-13-VRRewriterCrash.ll
2009-11-30-LiveVariablesBug.ll
2009-12-02-vtrn-undef.ll
2010-03-04-eabi-fp-spill.ll
2010-03-04-stm-undef-addr.ll
2010-03-18-ldm-rtrn.ll
2010-04-07-DbgValueOtherTargets.ll
2010-04-09-NeonSelect.ll
2010-04-13-v2f64SplitArg.ll
2010-04-14-SplitVector.ll
2010-04-15-ScavengerDebugValue.ll
2010-05-14-IllegalType.ll
2010-05-17-FastAllocCrash.ll
2010-05-18-LocalAllocCrash.ll
2010-05-18-PostIndexBug.ll
2010-05-19-Shuffles.ll
2010-05-20-NEONSpillCrash.ll
2010-05-21-BuildVector.ll
2010-06-11-vmovdrr-bitcast.ll
2010-06-21-LdStMultipleBug.ll
2010-06-21-nondarwin-tc.ll
2010-06-25-Thumb2ITInvalidIterator.ll
2010-06-29-PartialRedefFastAlloc.ll
2010-06-29-SubregImpDefs.ll
2010-07-26-GlobalMerge.ll
2010-08-04-EHCrash.ll
2010-08-04-StackVariable.ll
2010-09-21-OptCmpBug.ll
2010-09-29-mc-asm-header-test.ll
2010-10-19-mc-elf-objheader.ll Recommit modified r167540. 2012-11-08 09:51:45 +00:00
2010-10-25-ifcvt-ldm.ll
2010-11-15-SpillEarlyClobber.ll
2010-11-29-PrologueBug.ll
2010-11-30-reloc-movt.ll Added Mapping Symbols for ARM ELF 2012-12-07 16:50:23 +00:00
2010-12-07-PEIBug.ll Add LLVM support for Swift. 2012-09-29 21:43:49 +00:00
2010-12-08-tpsoft.ll
2010-12-15-elf-lcomm.ll Never use .lcomm on platforms where it does not accept an alignment 2012-11-27 16:11:16 +00:00
2010-12-17-LocalStackSlotCrash.ll
2011-01-19-MergedGlobalDbg.ll
2011-02-04-AntidepMultidef.ll
2011-02-07-AntidepClobber.ll
2011-03-10-DAGCombineCrash.ll
2011-03-15-LdStMultipleBug.ll Rework test so that it reproduces the error without the horrible flag. 2012-08-15 21:10:18 +00:00
2011-03-23-PeepholeBug.ll
2011-04-07-schediv.ll
2011-04-11-MachineLICMBug.ll
2011-04-12-AlignBug.ll
2011-04-12-FastRegAlloc.ll
2011-04-15-AndVFlagPeepholeBug.ll
2011-04-15-RegisterCmpPeephole.ll
2011-04-26-SchedTweak.ll
2011-04-27-IfCvtBug.ll
2011-05-04-MultipleLandingPadSuccs.ll
2011-06-09-TailCallByVal.ll
2011-06-16-TailCallByVal.ll ARM: tail-call inside a function where part of a byval argument is on caller's 2012-10-12 23:39:43 +00:00
2011-06-29-MergeGlobalsAlign.ll
2011-07-10-GlobalMergeBug.ll
2011-08-02-MergedGlobalDbg.ll
2011-08-12-vmovqqqq-pseudo.ll
2011-08-25-ldmia_ret.ll
2011-08-29-ldr_pre_imm.ll
2011-08-29-SchedCycle.ll
2011-09-09-OddVectorDivision.ll
2011-09-19-cpsr.ll
2011-09-28-CMovCombineBug.ll
2011-10-26-ExpandUnalignedLoadCrash.ll
2011-10-26-memset-inline.ll
2011-10-26-memset-with-neon.ll Some enhancements for memcpy / memset inline expansion. 2012-12-10 23:21:26 +00:00
2011-11-07-PromoteVectorLoadStore.ll
2011-11-09-BitcastVectorDouble.ll
2011-11-09-IllegalVectorFPIntConvert.ll
2011-11-14-EarlyClobber.ll
2011-11-28-DAGCombineBug.ll
2011-11-29-128bitArithmetics.ll Use vld1 / vst2 for unaligned v2f64 load / store. e.g. Use vld1.16 for 2-byte 2012-09-18 01:42:45 +00:00
2011-11-30-MergeAlignment.ll
2011-12-14-machine-sink.ll
2011-12-19-sjlj-clobber.ll
2012-01-23-PostRA-LICM.ll
2012-01-24-RegSequenceLiveRange.ll
2012-01-26-CoalescerBug.ll
2012-01-26-CopyPropKills.ll
2012-02-01-CoalescerBug.ll
2012-03-05-FPSCR-bug.ll
2012-03-13-DAGCombineBug.ll
2012-03-26-FoldImmBug.ll
2012-04-02-TwoAddrInstrCrash.ll
2012-04-10-DAGCombine.ll
2012-04-24-SplitEHCriticalEdge.ll
2012-05-04-vmov.ll Add LLVM support for Swift. 2012-09-29 21:43:49 +00:00
2012-05-10-PreferVMOVtoVDUP32.ll Add LLVM support for Swift. 2012-09-29 21:43:49 +00:00
2012-05-29-TailDupBug.ll
2012-06-12-SchedMemLatency.ll misched: Infrastructure for weak DAG edges. 2012-11-12 19:28:57 +00:00
2012-08-04-DtripleSpillReload.ll
2012-08-08-legalize-unaligned.ll
2012-08-09-neon-extload.ll
2012-08-13-bfi.ll
2012-08-23-legalize-vmull.ll Codegen failure for vmull with small vectors 2012-11-30 19:08:04 +00:00
2012-08-27-CopyPhysRegCrash.ll Make sure we add the predicate after all of the registers are added. 2012-08-27 22:12:44 +00:00
2012-08-30-select.ll Not all targets have efficient ISel code generation for select instructions. 2012-09-02 12:10:19 +00:00
2012-09-18-ARMv4ISelBug.ll MOVi16 (movw) is only legal on cpus with V6T2 support. rdar://12300648 2012-09-18 21:24:16 +00:00
2012-09-25-InlineAsmScalarToVectorConv2.ll Generate an error message instead of asserting or segfaulting when we have a 2012-09-26 06:16:18 +00:00
2012-09-25-InlineAsmScalarToVectorConv.ll Generate an error message instead of asserting or segfaulting when we have a 2012-09-26 04:04:19 +00:00
2012-10-04-AAPCS-byval-align8.ll Issue: 2012-10-16 07:16:47 +00:00
2012-10-04-FixedFrame-vs-byval.ll Issue description: 2012-10-10 11:37:36 +00:00
2012-10-04-LDRB_POST_IMM-Crash.ll Issue: 2012-10-16 07:16:47 +00:00
2012-10-18-PR14099-ByvalFrameAddress.ll ARM: 2012-10-19 08:23:06 +00:00
2012-11-14-subs_carry.ll The code pattern "imm0_255_neg" is used for checking if an immediate value is a small negative number. 2012-11-14 19:39:15 +00:00
a15-mla.ll Removed the VMLxForwarding feature for the Cortex-A15 target. 2012-09-17 14:10:54 +00:00
a15.ll This patch introduces A15 as a target in LLVM. 2012-09-13 15:05:10 +00:00
addrmode.ll
aliases.ll
align.ll
alloc-no-stack-realign.ll Stack Alignment: when creating stack objects in MachineFrameInfo, make sure 2012-12-04 00:52:33 +00:00
alloca.ll
argaddr.ll
arguments2.ll
arguments3.ll
arguments4.ll
arguments5.ll
arguments6.ll
arguments7.ll
arguments8.ll
arguments_f64_backfill.ll
arguments-nosplit-double.ll
arguments-nosplit-i64.ll
arguments.ll
arm-and-tst-peephole.ll
arm-asm.ll
arm-frameaddr.ll
arm-modifier.ll
arm-negative-stride.ll
arm-returnaddr.ll
arm-ttype-target2.ll Use TARGET2 relocation for TType references on ARM. 2012-11-14 01:47:00 +00:00
armv4.ll
atomic-64bit.ll Added atomic 64 min/max/umin/umax instrinsics support in the ARM backend. 2012-11-29 14:41:25 +00:00
atomic-cmp.ll
atomic-load-store.ll
atomic-op.ll Fix a couple of typos in EmitAtomic. 2012-08-31 02:08:34 +00:00
atomicrmw_minmax.ll ARM/atomicrmw_minmax.ll: Fix RUN line. 2012-09-26 10:12:20 +00:00
available_externally.ll
avoid-cpsr-rmw.ll Add LLVM support for Swift. 2012-09-29 21:43:49 +00:00
bfc.ll
bfi.ll
bfx.ll
bic.ll
bicZext.ll
bits.ll
bswap-inline-asm.ll
bx_fold.ll
call_nolink.ll
call-noret-minsize.ll Disable the Thumb no-return call optimization: 2012-11-10 02:09:05 +00:00
call-noret.ll Disable the Thumb no-return call optimization: 2012-11-10 02:09:05 +00:00
call-tc.ll
call.ll
carry.ll Fix a miscompilation caused by a typo. When turning a adde with negative value 2012-10-24 19:53:01 +00:00
clz.ll
cmn.ll
coalesce-subregs.ll Avoid rewriting instructions twice. 2012-11-29 00:26:11 +00:00
code-placement.ll
commute-movcc.ll
compare-call.ll
constants.ll Fix constant folding through bitcasts by no longer relying on undefined behaviour (converting NaN values between float and double). 2012-09-12 11:25:02 +00:00
crash-greedy-v6.ll
crash-greedy.ll
crash-O0.ll
crash-shufflevector.ll Fix an assertion failure when optimising a shufflevector incorrectly into concat_vectors, and a followup bug with SelectionDAG::getNode() creating nodes with invalid types. 2012-09-10 14:01:21 +00:00
crash.ll Handle the situation where CodeGenPrepare removes a reference to a BB that has 2012-11-29 19:38:06 +00:00
cse-call.ll
cse-libcalls.ll
ctor_order.ll
ctors_dtors.ll
ctz.ll
dagcombine-anyexttozeroext.ll
darwin-section-order.ll ARM: locate user-defined text sections next to default text. 2012-10-04 21:33:24 +00:00
data-in-code-annotations.ll
debug-info-arg.ll
debug-info-blocks.ll
debug-info-branch-folding.ll Use the 'count' attribute to calculate the upper bound of an array. 2012-12-04 21:34:03 +00:00
debug-info-d16-reg.ll
debug-info-qreg.ll Use the 'count' attribute to calculate the upper bound of an array. 2012-12-04 21:34:03 +00:00
debug-info-s16-reg.ll
debug-info-sreg2.ll
deps-fix.ll Fixed a bug in the ExecutionDependencyFix pass that caused dependencies to not propagate through implicit defs. 2012-10-03 08:29:36 +00:00
div.ll Add LLVM support for Swift. 2012-09-29 21:43:49 +00:00
divmod.ll Legalizer optimize a pair of div / mod to a call to divrem libcall if they are 2012-10-12 01:15:47 +00:00
domain-conv-vmovs.ll Fix typos in CHECK lines. 2012-12-06 21:24:47 +00:00
dyn-stackalloc.ll
eh-resume-darwin.ll
ehabi-filters.ll Factor out type info emission into separate routine. 2012-11-19 21:06:26 +00:00
ehabi-no-landingpad.ll Fix really stupid ARM EHABI info generation bug: we should not emit 2012-11-14 19:13:30 +00:00
ehabi-unwind.ll
elf-lcomm-align.ll Never use .lcomm on platforms where it does not accept an alignment 2012-11-27 16:11:16 +00:00
extload-knownzero.ll Properly fix the tes. 2012-12-06 02:29:29 +00:00
extloadi1.ll
fabs-neon.ll Make sure FABS on v2f32 and v4f32 is legal on ARM NEON 2012-11-16 21:15:20 +00:00
fabss.ll Add LLVM support for Swift. 2012-09-29 21:43:49 +00:00
fadds.ll Add LLVM support for Swift. 2012-09-29 21:43:49 +00:00
fast-isel-binary.ll
fast-isel-br-const.ll [fast-isel] Add the -verify-machineinstrs to these test cases. The remaining 2012-11-17 00:42:06 +00:00
fast-isel-br-phi.ll
fast-isel-call-multi-reg-return.ll [fast-isel] Add the -verify-machineinstrs to these test cases. The remaining 2012-11-17 00:42:06 +00:00
fast-isel-call.ll [arm-fast-isel] Add support for fastcc. 2012-08-16 05:15:53 +00:00
fast-isel-cmp-imm.ll
fast-isel-conversion.ll
fast-isel-crash2.ll [fast-isel] Add the -verify-machineinstrs to these test cases. The remaining 2012-11-17 00:42:06 +00:00
fast-isel-crash.ll [fast-isel] Add the -verify-machineinstrs to these test cases. The remaining 2012-11-17 00:42:06 +00:00
fast-isel-deadcode.ll [fast-isel] Add the -verify-machineinstrs to these test cases. The remaining 2012-11-17 00:42:06 +00:00
fast-isel-fold.ll [fast-isel] Add the -verify-machineinstrs to these test cases. The remaining 2012-11-17 00:42:06 +00:00
fast-isel-frameaddr.ll [fast-isel] Add the -verify-machineinstrs to these test cases. The remaining 2012-11-17 00:42:06 +00:00
fast-isel-GEP-coalesce.ll [fast-isel] Add the -verify-machineinstrs to these test cases. The remaining 2012-11-17 00:42:06 +00:00
fast-isel-icmp.ll Extend test case for r168657. 2012-11-27 01:10:48 +00:00
fast-isel-indirectbr.ll Add -verify-machineinstrs to these fast-isel test cases. 2012-11-27 20:49:56 +00:00
fast-isel-intrinsic.ll [arm fast-isel] Make the fast-isel implementation of memcpy respect alignment. 2012-12-06 01:34:31 +00:00
fast-isel-ldr-str-arm.ll
fast-isel-ldr-str-thumb-neg-index.ll
fast-isel-ldrh-strh-arm.ll
fast-isel-mvn.ll
fast-isel-pic.ll [arm-fast-isel] Add support for ELF PIC. 2012-09-27 05:21:41 +00:00
fast-isel-pred.ll Add -verify-machineinstrs to these fast-isel test cases. 2012-11-27 20:49:56 +00:00
fast-isel-redefinition.ll Add -verify-machineinstrs to these fast-isel test cases. 2012-11-27 20:49:56 +00:00
fast-isel-ret.ll
fast-isel-select.ll
fast-isel-shifter.ll
fast-isel-static.ll Add -verify-machineinstrs to these fast-isel test cases. 2012-11-27 20:49:56 +00:00
fast-isel.ll [fast-isel] Fallback to SelectionDAG isel if we require strict alignment for 2012-09-21 16:58:35 +00:00
fcopysign.ll
fdivs.ll Add LLVM support for Swift. 2012-09-29 21:43:49 +00:00
fixunsdfdi.ll
flag-crash.ll
floorf.ll llvm/test/CodeGen/ARM/floorf.ll: Add explicit -mtriple=arm-unknown-unknown, or it fails on msvc. 2012-08-14 00:56:06 +00:00
fmacs.ll
fmdrr-fmrrd.ll
fmscs.ll
fmuls.ll Add LLVM support for Swift. 2012-09-29 21:43:49 +00:00
fnegs.ll
fnmacs.ll
fnmscs.ll
fnmul.ll
fnmuls.ll
fold-const.ll
formal.ll
fp16.ll The names of VFP variants of half-to-float conversion instructions were 2012-08-14 23:36:01 +00:00
fp_convert.ll Add LLVM support for Swift. 2012-09-29 21:43:49 +00:00
fp-arg-shuffle.ll
fp-fast.ll Teach DAG combine a number of tricks to simplify FMA expressions in fast-math mode. 2012-09-01 06:04:27 +00:00
fp.ll
fparith.ll
fpcmp_ueq.ll
fpcmp-opt.ll
fpcmp.ll
fpconsts.ll
fpconv.ll
fpmem.ll
fpow.ll
fpowi.ll
fptoint.ll
fsubs.ll Add LLVM support for Swift. 2012-09-29 21:43:49 +00:00
fusedMAC.ll
global-merge.ll
globals.ll
gv-stubs-crash.ll
hardfloat_neon.ll
hello.ll
hidden-vis-2.ll
hidden-vis-3.ll
hidden-vis.ll
iabs.ll
ifcvt1.ll Add LLVM support for Swift. 2012-09-29 21:43:49 +00:00
ifcvt2.ll
ifcvt3.ll
ifcvt4.ll
ifcvt5.ll Add LLVM support for Swift. 2012-09-29 21:43:49 +00:00
ifcvt6.ll
ifcvt7.ll
ifcvt8.ll
ifcvt9.ll
ifcvt10.ll
ifcvt11.ll
ifcvt12.ll Add LLVM support for Swift. 2012-09-29 21:43:49 +00:00
illegal-vector-bitcast.ll
imm.ll
indirectbr-2.ll When a block ends in an indirect branch, add its successors to the machine basic block. 2012-10-22 23:30:04 +00:00
indirectbr.ll
inlineasm2.ll
inlineasm3.ll
inlineasm4.ll
inlineasm-imm-arm.ll
inlineasm.ll
insn-sched1.ll
int-to-fp.ll
integer_insertelement.ll Revert r163298 "Optimize codegen for VSETLNi{8,16,32} operating on Q registers." 2012-10-26 23:39:46 +00:00
intrinsics.ll
ispositive.ll
jumptable-label.ll
large-stack.ll
ldm.ll
ldr_ext.ll
ldr_frame.ll
ldr_post.ll Add LLVM support for Swift. 2012-09-29 21:43:49 +00:00
ldr_pre.ll Add LLVM support for Swift. 2012-09-29 21:43:49 +00:00
ldr.ll
ldrd-memoper.ll
ldrd.ll
ldst-f32-2-i32.ll
ldstrexd.ll
lit.local.cfg
load_i1_select.ll
load-global.ll
load.ll
log2_not_readnone.ll
long_shift.ll
long-setcc.ll
long.ll
longMAC.ll Patch to implement UMLAL/SMLAL instructions for the ARM architecture 2012-09-04 14:37:49 +00:00
lsr-code-insertion.ll
lsr-icmp-imm.ll
lsr-scale-addr-mode.ll
lsr-unfolded-offset.ll
machine-cse-cmp.ll CSE: allow PerformTrivialCoalescing to check copies across basic block 2012-11-27 18:58:41 +00:00
machine-licm.ll
mem.ll
memcpy-inline.ll Some enhancements for memcpy / memset inline expansion. 2012-12-10 23:21:26 +00:00
memfunc.ll
memset-inline.ll Some enhancements for memcpy / memset inline expansion. 2012-12-10 23:21:26 +00:00
mls.ll Add LLVM support for Swift. 2012-09-29 21:43:49 +00:00
movt-movw-global.ll
movt.ll
mul_const.ll
mul.ll
mulhi.ll
mult-alt-generic-arm.ll
mvn.ll
neon_arith1.ll
neon_div.ll
neon_fpconv.ll Mark FP_EXTEND form v2f32 to v2f64 as "expand" for ARM NEON. Patch by Pete Couperus. 2012-11-17 01:52:46 +00:00
neon_ld1.ll
neon_ld2.ll Add LLVM support for Swift. 2012-09-29 21:43:49 +00:00
neon_minmax.ll
neon_shift.ll
neon_spill.ll
neon-fma.ll Add LLVM support for Swift. 2012-09-29 21:43:49 +00:00
odr_comdat.ll
opt-shuff-tstore.ll Add LLVM support for Swift. 2012-09-29 21:43:49 +00:00
pack.ll
peephole-bitcast.ll
phi.ll
popcnt.ll ARM custom lower ctpop for vector types. Patch by Pete Couperus. 2012-12-04 22:41:50 +00:00
pr3502.ll
pr13249.ll
prefetch.ll
private.ll
reg_sequence.ll Enable the new coalescer algorithm by default. 2012-09-27 21:06:02 +00:00
ret0.ll
ret_arg1.ll
ret_arg2.ll
ret_arg3.ll
ret_arg4.ll
ret_arg5.ll
ret_f32_arg2.ll
ret_f32_arg5.ll
ret_f64_arg2.ll
ret_f64_arg_reg_split.ll
ret_f64_arg_split.ll
ret_f64_arg_stack.ll
ret_i64_arg2.ll
ret_i64_arg3.ll
ret_i64_arg_split.ll
ret_i128_arg2.ll
ret_sret_vector.ll ARM: Implement CanLowerReturn so large vectors get expanded into sret. 2012-11-28 20:55:10 +00:00
ret_void.ll
rev.ll
sbfx.ll
section.ll
select_xform.ll Use predication instead of pseudo-opcodes when folding into MOVCC. 2012-09-05 23:58:02 +00:00
select-imm.ll
select.ll Use predication instead of pseudo-opcodes when folding into MOVCC. 2012-09-05 23:58:02 +00:00
shifter_operand.ll
shuffle.ll
smml.ll
smul.ll
spill-q.ll
stack-frame.ll
stm.ll
str_post.ll
str_pre-2.ll
str_pre.ll
str_trunc.ll
struct_byval.ll ARM: tail-call inside a function where part of a byval argument is on caller's 2012-10-12 23:39:43 +00:00
sub-cmp-peephole.ll Don't attempt to use flags from predicated instructions. 2012-09-10 19:17:25 +00:00
sub.ll MOVi16 (movw) is only legal on cpus with V6T2 support. rdar://12300648 2012-09-18 21:24:16 +00:00
subreg-remat.ll Simplify REG_SEQUENCE lowering. 2012-12-01 01:06:44 +00:00
sxt_rot.ll
t2-imm.ll
tail-dup.ll
tail-opts.ll
test-sharedidx.ll
thread_pointer.ll
thumb1-varalloc.ll
thumb2-it-block.ll
tls1.ll
tls2.ll
tls3.ll
tls-models.ll
trap.ll This patch is to fix radar://8426430. It is about llvm support of __builtin_debugtrap() 2012-10-19 20:11:16 +00:00
trunc_ldr.ll
truncstore-dag-combine.ll
tst_teq.ll
twoaddrinstr.ll Try to make these tests more portable. 2012-09-20 21:35:21 +00:00
uint64tof64.ll
umulo-32.ll
unaligned_load_store_vector.ll Use vld1 / vst2 for unaligned v2f64 load / store. e.g. Use vld1.16 for 2-byte 2012-09-18 01:42:45 +00:00
unaligned_load_store.ll Use vld1 / vst2 for unaligned v2f64 load / store. e.g. Use vld1.16 for 2-byte 2012-09-18 01:42:45 +00:00
undef-sext.ll
unord.ll
unsafe-fsub.ll
uxt_rot.ll
uxtb.ll
va_arg.ll
vaba.ll
vabd.ll
vabs.ll
vadd.ll
vargs_align.ll
vargs.ll
vbits.ll
vbsl-constant.ll Try to make these tests more portable. 2012-09-20 21:35:21 +00:00
vbsl.ll ARM: v1i64 and v2i64 VBSL intrinsic support. 2012-10-15 21:23:40 +00:00
vceq.ll
vcge.ll
vcgt.ll
vcnt.ll
vcombine.ll
vcvt_combine.ll
vcvt.ll
vdiv_combine.ll
vdup.ll Fixed PR13938: the ARM backend was crashing because it couldn't select a VDUPLANE node with the vector input size different from the output size. This was bacause the BUILD_VECTOR lowering code didn't check that the size of the input vector was correct for using VDUPLANE. 2012-10-15 09:41:32 +00:00
vector-DAGCombine.ll
vector-extend-narrow.ll Fixed the DAG combiner to better handle the folding of AND nodes for vector types. The previous code was making the assumption that the length of the bitmask returned by isConstantSplat was equal to the size of the vector type. Now we first make sure that the splat value has at least the length of the vector lane type, then we only use as many fields as we have available in the splat value. 2012-09-05 08:57:21 +00:00
vext.ll Vext Lowering was missing opportunities 2012-11-02 21:32:17 +00:00
vfcmp.ll
vfp.ll
vget_lane.ll Revert r163298 "Optimize codegen for VSETLNi{8,16,32} operating on Q registers." 2012-10-26 23:39:46 +00:00
vhadd.ll
vhsub.ll
vicmp.ll
vld1.ll
vld2.ll
vld3.ll
vld4.ll
vlddup.ll
vldlane.ll
vminmax.ll
vmla.ll
vmls.ll
vmov.ll
vmul.ll
vneg.ll
vpadal.ll
vpadd.ll
vpminmax.ll
vqadd.ll
vqdmul.ll
vqshl.ll
vqshrn.ll
vqsub.ll
vrec.ll
vrev.ll
vselect_imax.ll ARM: Mark VSELECT as 'expand'. 2012-10-12 22:59:21 +00:00
vshift.ll
vshiftins.ll
vshl.ll
vshll.ll
vshrn.ll
vsra.ll
vst1.ll
vst2.ll
vst3.ll
vst4.ll
vstlane.ll
vsub.ll
vtbl.ll
vtrn.ll
vuzp.ll
vzip.ll
weak2.ll
weak.ll
widen-vmovs.ll