llvm-6502/test/CodeGen/ARM
Evan Cheng 055b0310f8 Implement Thumb2 ldr.
After much back and forth, I decided to deviate from ARM design and split LDR into 4 instructions (r + imm12, r + imm8, r + r << imm12, constantpool). The advantage of this is 1) it follows the latest ARM technical manual, and 2) makes it easier to reduce the width of the instruction later. The down side is this creates more inconsistency between the two sub-targets. We should split ARM LDR instruction in a similar fashion later. I've added a README entry for this.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74420 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-29 07:51:04 +00:00
..
2006-11-10-CycleInDAG.ll
2007-01-19-InfiniteLoop.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
2007-03-07-CombinerCrash.ll
2007-03-13-InstrSched.ll For Darwin on ARMv6 and newer, make register r9 available for use as a 2009-06-22 21:01:46 +00:00
2007-03-21-JoinIntervalsCrash.ll
2007-03-26-RegScavengerAssert.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-jumptoentry.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-05-31-RegScavengerInfiniteLoop.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-14-CoalescerBug.ll It's coalescer, not coaleser. 2009-06-22 21:09:17 +00:00
2008-09-17-CoalescerBug.ll
2008-11-18-ScavengerAssert.ll
2008-11-19-ScavengerAssert.ll Changing allocation ordering from r3 ... r0 back to r0 ... r3. The order change no longer make sense after the coalescing changes we have made since then. 2009-06-05 19:08:58 +00:00
2009-02-16-SpillerBug.ll
2009-02-22-SoftenFloatVaArg.ll
2009-02-27-SpillerBug.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
2009-03-07-SpillerBug.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
2009-03-09-AddrModeBug.ll
2009-04-06-AsmModifier.ll
2009-04-08-AggregateAddr.ll
2009-04-08-FloatUndef.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
2009-04-08-FREM.ll
2009-04-09-RegScavengerAsm.ll
2009-05-05-DAGCombineBug.ll
2009-05-07-RegAllocLocal.ll Fix pr4100. Do not remove no-op copies when they are dead. The register 2009-05-07 23:47:03 +00:00
2009-05-11-CodePlacementCrash.ll Fix pr4195: When iterating through predecessor blocks, break out of the loop 2009-05-12 03:48:10 +00:00
2009-05-18-InlineAsmMem.ll Fix pr4091: Add support for "m" constraint in ARM inline assembly. 2009-05-19 05:53:42 +00:00
2009-06-02-ISelCrash.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
2009-06-04-MissingLiveIn.ll A value defined by an implicit_def can be liven to a use BB. This is unfortunate. But register allocator still has to add it to the live-in set of the use BB. 2009-06-04 20:25:48 +00:00
2009-06-12-RegScavengerAssert.ll If killed register is defined by implicit_def, do not clear it since it's live range may overlap another def of same register. 2009-06-12 21:34:26 +00:00
2009-06-15-RegScavengerAssert.ll If a val# is defined by an implicit_def and it is being removed, all of the copies off the val# were removed. This causes problem later since the scavenger will see uses of registers without defs. The proper solution is to change the copies into implicit_def's instead. 2009-06-16 07:12:58 +00:00
2009-06-19-RegScavengerAssert.ll Fix PR4419: handle defs of partial uses. 2009-06-20 04:34:51 +00:00
2009-06-22-CoalescerBug.ll Fix another register coalescer crash: forgot to check if the instruction being updated has already been coalesced. 2009-06-22 20:49:32 +00:00
addrmode.ll
aliases.ll
align.ll
alloca.ll
argaddr.ll
arguments2.ll
arguments3.ll
arguments4.ll
arguments5.ll
arguments6.ll
arguments7.ll
arguments8.ll
arguments_f64_backfill.ll Add testcase for register scanveger assertion fix in r72755 2009-06-08 22:54:15 +00:00
arguments-nosplit-double.ll Fix pr4058 and pr4059. Do not split i64 or double arguments between r3 and 2009-05-19 10:02:36 +00:00
arguments-nosplit-i64.ll Fix pr4058 and pr4059. Do not split i64 or double arguments between r3 and 2009-05-19 10:02:36 +00:00
arguments.ll
arm-asm.ll
arm-frameaddr.ll hasFP should return true if frame address is taken. 2009-06-22 18:38:48 +00:00
arm-negative-stride.ll Add nounwind to a few tests. 2009-05-18 15:16:49 +00:00
bic.ll ORN and BIC tests. 2009-06-26 16:20:06 +00:00
bits.ll
branch.ll
bx_fold.ll
call_nolink.ll
call.ll
carry.ll Select ADC, SBC, and RSC instead of the ADCS, SBCS, and RSCS when the carry bit def is not used. 2009-06-25 23:34:10 +00:00
clz.ll
compare-call.ll
constants.ll
cse-libcalls.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
ctors_dtors.ll
dg.exp
div.ll
dyn-stackalloc.ll Move thumb and thumb2 tests into separate directories. 2009-06-24 06:36:07 +00:00
extloadi1.ll
fcopysign.ll
fixunsdfdi.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
fmdrr-fmrrd.ll
fnmul.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
formal.ll
fp.ll
fparith.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
fpcmp_ueq.ll
fpcmp.ll
fpconv.ll Move thumb and thumb2 tests into separate directories. 2009-06-24 06:36:07 +00:00
fpmem.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
fpow.ll Move thumb and thumb2 tests into separate directories. 2009-06-24 06:36:07 +00:00
fpowi.ll
fptoint.ll
hello.ll
hidden-vis-2.ll
hidden-vis-3.ll
hidden-vis.ll
iabs.ll Move thumb and thumb2 tests into separate directories. 2009-06-24 06:36:07 +00:00
ifcvt1.ll
ifcvt2.ll
ifcvt3.ll
ifcvt4.ll
ifcvt5.ll
ifcvt6.ll
ifcvt7.ll
ifcvt8.ll -enable-arm-if-conversion is gone. 2007-09-20 18:03:23 +00:00
ifcvt9.ll ifcvt should ignore cfg where true and false successors are the same. 2009-06-15 21:24:34 +00:00
illegal-vector-bitcast.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
imm.ll
inlineasm2.ll
inlineasm-imm-arm.ll
inlineasm.ll
insn-sched1.ll
ispositive.ll Move thumb and thumb2 tests into separate directories. 2009-06-24 06:36:07 +00:00
large-stack.ll Move thumb and thumb2 tests into separate directories. 2009-06-24 06:36:07 +00:00
ldm.ll
ldr_ext.ll Move thumb and thumb2 tests into separate directories. 2009-06-24 06:36:07 +00:00
ldr_frame.ll Move thumb and thumb2 tests into separate directories. 2009-06-24 06:36:07 +00:00
ldr_post.ll
ldr_pre.ll
ldr.ll Implement Thumb2 ldr. 2009-06-29 07:51:04 +00:00
ldrd.ll Enable arm pre-allocation load / store multiple optimization pass. 2009-06-19 23:17:27 +00:00
load-global.ll
load.ll Remove llvm-upgrade. 2008-02-17 20:02:20 +00:00
long_shift.ll Move thumb and thumb2 tests into separate directories. 2009-06-24 06:36:07 +00:00
long-setcc.ll Move thumb and thumb2 tests into separate directories. 2009-06-24 06:36:07 +00:00
long.ll Move thumb and thumb2 tests into separate directories. 2009-06-24 06:36:07 +00:00
lsr-code-insertion.ll Mark some pattern-less instructions as neverHasSideEffects. 2009-06-12 20:46:18 +00:00
lsr-scale-addr-mode.ll Changing allocation ordering from r3 ... r0 back to r0 ... r3. The order change no longer make sense after the coalescing changes we have made since then. 2009-06-05 19:08:58 +00:00
mem.ll
memcpy-inline.ll Changing allocation ordering from r3 ... r0 back to r0 ... r3. The order change no longer make sense after the coalescing changes we have made since then. 2009-06-05 19:08:58 +00:00
memfunc.ll
mul.ll Move thumb and thumb2 tests into separate directories. 2009-06-24 06:36:07 +00:00
mulhi.ll
mvn.ll
neon_arith1.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
neon_ld1.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
neon_ld2.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
pack.ll
pr3502.ll
private.ll
remat.ll
ret0.ll
ret_arg1.ll Remove llvm-upgrade. 2008-02-17 20:02:20 +00:00
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_void.ll
rev.ll
section.ll
select_xform.ll
select.ll Move thumb and thumb2 tests into separate directories. 2009-06-24 06:36:07 +00:00
shifter_operand.ll
smul.ll
stack-frame.ll Move thumb and thumb2 tests into separate directories. 2009-06-24 06:36:07 +00:00
stm.ll Enable arm pre-allocation load / store multiple optimization pass. 2009-06-19 23:17:27 +00:00
str_post.ll
str_pre-2.ll Re-apply 72756 with fixes. One of those was introduced by we changed MachineInstrBuilder::addReg() interface. 2009-06-04 01:15:28 +00:00
str_pre.ll
str_trunc.ll
sxt_rot.ll
thread_pointer.ll
tls1.ll
tls2.ll
tls3.ll
trunc_ldr.ll
truncstore-dag-combine.ll
tst_teq.ll Move thumb and thumb2 tests into separate directories. 2009-06-24 06:36:07 +00:00
uint64tof64.ll
unaligned_load_store.ll
unord.ll Move thumb and thumb2 tests into separate directories. 2009-06-24 06:36:07 +00:00
uxt_rot.ll
uxtb.ll
vaba.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vabal.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vabd.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vabdl.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vabs.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vacge.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vacgt.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vadd.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vaddhn.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vaddl.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vaddw.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vand.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vargs_align.ll
vargs.ll
vbic.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vbsl.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vceq.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vcge.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vcgt.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vcls.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vclz.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vcnt.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vcvt_n.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vcvt.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vdup_lane.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vdup.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
veor.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vfcmp.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vfp.ll Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
vget_lane.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vhadd.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vhsub.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vicmp.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vmax.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vmin.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vmla.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vmlal.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vmls.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vmlsl.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vmov.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vmovl.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vmovn.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vmul.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vmull.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vmvn.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vneg.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vorn.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vorr.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vpadal.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vpadd.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vpaddl.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vpmax.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vpmin.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vqabs.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vqadd.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vqdmlal.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vqdmlsl.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vqdmulh.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vqdmull.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vqmovn.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vqneg.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vqrshl.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vqrshrn.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vqshl.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vqshrn.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vqsub.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vraddhn.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vrecpe.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vrecps.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vrhadd.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vrshl.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vrshrn.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vrsqrte.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vrsqrts.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vrsubhn.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vset_lane.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vshift.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vshiftins.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vshl.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vshll.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vshrn.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vsra.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vsub.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vsubhn.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vsubl.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vsubw.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
vtst.ll Add support for ARM's Advanced SIMD (NEON) instruction set. 2009-06-22 23:27:02 +00:00
weak2.ll
weak.ll