llvm/test/CodeGen/ARM
Evan Cheng 733c6b1db1 LLVM sdisel normalize bit extraction of the form:
((x & 0xff00) >> 8) << 2
to
 (x >> 6) & 0x3fc

This is general goodness since it folds a left shift into the mask. However,
the trailing zeros in the mask prevents the ARM backend from using the bit
extraction instructions. And worse since the mask materialization may require
an addition instruction. This comes up fairly frequently when the result of 
the bit twiddling is used as memory address. e.g.

 = ptr[(x & 0xFF0000) >> 16]

We want to generate:
  ubfx   r3, r1, #16, #8
  ldr.w  r3, [r0, r3, lsl #2]

vs.
  mov.w  r9, #1020
  and.w  r2, r9, r1, lsr #14
  ldr    r2, [r0, r2]

Add a late ARM specific isel optimization to
ARMDAGToDAGISel::PreprocessISelDAG(). It folds the left shift to the
'base + offset' address computation; change the mask to one which doesn't have
trailing zeros and enable the use of ubfx.

Note the optimization has to be done late since it's target specific and we
don't want to change the DAG normalization. It's also fairly restrictive
as shifter operands are not always free. It's only done for lsh 1 / 2. It's
known to be free on some cpus and they are most common for address
computation.

This is a slight win for blowfish, rijndael, etc.

rdar://12870177


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170581 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-19 20:16:09 +00:00
..
2006-11-10-CycleInDAG.ll
2007-01-19-InfiniteLoop.ll
2007-03-07-CombinerCrash.ll
2007-03-13-InstrSched.ll Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
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 Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
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 Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
2007-08-15-ReuseBug.ll
2008-02-04-LocalRegAllocBug.ll Don't run RAFast in the optimizing regalloc pipeline. 2012-06-08 23:15:12 +00:00
2008-02-29-RegAllocLocal.ll Don't run RAFast in the optimizing regalloc pipeline. 2012-06-08 23:15:12 +00:00
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 Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
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 Don't run RAFast in the optimizing regalloc pipeline. 2012-06-08 23:15:12 +00:00
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 Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
2011-12-19-sjlj-clobber.ll
2012-01-23-PostRA-LICM.ll
2012-01-24-RegSequenceLiveRange.ll Preserve <undef> flags in ARMExpandPseudo. 2012-06-15 17:46:54 +00:00
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 MachineBasicBlock::SplitCriticalEdge() should follow LLVM IR variant and refuse to break edge to EH landing pad. rdar://11300144 2012-04-24 19:06:55 +00:00
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 Teach taildup to update livein set. rdar://11538365 2012-05-30 00:42:39 +00:00
2012-06-12-SchedMemLatency.ll misched: Infrastructure for weak DAG edges. 2012-11-12 19:28:57 +00:00
2012-08-04-DtripleSpillReload.ll Add stack spill / reload instructions for DTriple and DQuad register classes, which 2012-08-04 13:16:12 +00:00
2012-08-08-legalize-unaligned.ll Fix the legalization of ExtLoad on ARM. ExpandUnalignedLoad did not properly 2012-08-09 01:56:44 +00:00
2012-08-09-neon-extload.ll Add test for previous commit correcting NEON load patterns. 2012-08-13 10:38:45 +00:00
2012-08-13-bfi.ll Do not optimize (or (and X,Y), Z) into BFI and other sequences if the AND ISDNode has more than one user. 2012-08-13 18:52:44 +00:00
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 Convert the uses of '|&' to use '2>&1 |' instead, which works on old 2012-07-02 18:37:59 +00:00
aliases.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
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 Add support for the %H output modifier. 2012-08-13 18:18:52 +00:00
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 Disable ARM partial flag dependency optimization at -Oz 2012-12-18 22:47:16 +00:00
bfc.ll
bfi.ll
bfx.ll LLVM sdisel normalize bit extraction of the form: 2012-12-19 20:16:09 +00:00
bic.ll
bicZext.ll This change handles a another case for generating the bic instruction 2012-06-18 14:51:32 +00:00
bits.ll
bswap-inline-asm.ll
bx_fold.ll
call_nolink.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
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 Re-enable the CMN instruction. 2012-06-11 08:07:26 +00:00
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 Clear kill flags in removeCopyByCommutingDef(). 2012-07-31 02:47:24 +00:00
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 Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
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 Refactor data-in-code annotations. 2012-05-18 19:12:01 +00:00
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 [arm-fast-isel] Add support for shl, lshr, and ashr. 2012-08-03 02:37:48 +00:00
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 Refactor and check "onlyReadsMemory" before optimizing builtins. 2012-08-03 23:29:17 +00:00
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 Add test triples to fix win32 failures. Revert workaround from r161292. 2012-08-08 20:31:37 +00:00
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 DAG legalisation can now handle illegal fma vector types by scalarisation 2012-06-24 00:05:44 +00:00
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 ARM: optimization for sub+abs. 2012-06-15 21:32:12 +00:00
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 Don't run RAFast in the optimizing regalloc pipeline. 2012-06-08 23:15:12 +00:00
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 Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
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
misched-inorder-latency.ll MISched: add dependence to ExitSU to model live-out latency. 2012-12-18 20:53:01 +00:00
mls.ll Add LLVM support for Swift. 2012-09-29 21:43:49 +00:00
movt-movw-global.ll Transfer memory operands to the right instruction. 2012-05-20 06:38:42 +00:00
movt.ll
mul_const.ll
mul.ll
mulhi.ll
mult-alt-generic-arm.ll
mvn.ll
neon_arith1.ll
neon_div.ll ARM scheduling fix: compute predicated implicit use properly. 2012-06-22 02:50:31 +00:00
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 Now that RegistersDefinedFromSameValue handles one instruction being an 2012-07-01 17:08:01 +00:00
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 Remove incorrect pattern for ARM SMML instruction. 2012-05-17 13:12:13 +00:00
smul.ll
spill-q.ll
stack-frame.ll
stm.ll
str_post.ll
str_pre-2.ll Fix test that depends on register allocation. 2012-06-11 21:14:28 +00:00
str_pre.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
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 Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
thumb1-varalloc.ll
thumb2-it-block.ll ARM: optimization for sub+abs. 2012-06-15 21:32:12 +00:00
tls1.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
tls2.ll
tls3.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
tls-models.ll Extend the IL for selecting TLS models (PR9788) 2012-06-23 11:37:03 +00:00
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 Teach DAG combine to fold x-x to 0.0 when unsafe FP math is enabled. 2012-05-07 20:51:25 +00:00
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 More replacing of target-dependent intrinsics with target-indepdent 2012-07-18 00:02:16 +00:00
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 Add test triples to fix win32 failures. Revert workaround from r161292. 2012-08-08 20:31:37 +00:00
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 These tests used intrinsics with the wrong prototype. They weren't caught because 2012-05-27 19:35:41 +00:00
vldlane.ll
vminmax.ll
vmla.ll
vmls.ll
vmov.ll
vmul.ll Don't introduce illegal types when creating vmull operations. <rdar://11324364> 2012-04-30 16:53:34 +00:00
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 [fast-isel] Remove -disable-arm-fast-isel option. -fast-isel=0 suffices. Minor cleanup. 2012-05-11 19:40:25 +00:00
vst4.ll
vstlane.ll
vsub.ll
vtbl.ll
vtrn.ll
vuzp.ll
vzip.ll
weak2.ll
weak.ll
widen-vmovs.ll