llvm-6502/test/CodeGen/AArch64
Juergen Ributzka 06bb1ca1e0 Reapply [FastISel][AArch64] Add support for more addressing modes (r215597).
Note: This was originally reverted to track down a buildbot error. Reapply
without any modifications.

Original commit message:
FastISel didn't take much advantage of the different addressing modes available
to it on AArch64. This commit allows the ComputeAddress method to recognize more
addressing modes that allows shifts and sign-/zero-extensions to be folded into
the memory operation itself.

For Example:
  lsl x1, x1, #3     --> ldr x0, [x0, x1, lsl #3]
  ldr x0, [x0, x1]

  sxtw x1, w1
  lsl x1, x1, #3     --> ldr x0, [x0, x1, sxtw #3]
  ldr x0, [x0, x1]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216013 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-19 19:44:17 +00:00
..
128bit_load_store.ll
a57-csel.ll [AArch64] Add a testcase for r214957. 2014-08-06 13:31:32 +00:00
aarch64-2014-08-11-MachineCombinerCrash.ll [MachineCombiner] Fix for ICE bug 20598 2014-08-12 07:54:12 +00:00
aarch64-a57-fp-load-balancing.ll [AArch64] Add an FP load balancing pass for Cortex-A57 2014-08-08 12:33:21 +00:00
aarch64-address-type-promotion-assertion.ll AArch64: Re-enable AArch64AddressTypePromotion 2014-07-02 18:17:40 +00:00
aarch64-address-type-promotion.ll AArch64: Re-enable AArch64AddressTypePromotion 2014-07-02 18:17:40 +00:00
aarch64-neon-v1i1-setcc.ll
adc.ll AArch64: remove "arm64_be" support in favour of "aarch64_be". 2014-07-23 12:58:11 +00:00
addsub_ext.ll
addsub-shifted.ll
addsub.ll
alloca.ll
analyze-branch.ll
analyzecmp.ll [AArch64] Fix a type conversion bug for anlyzing compare. 2014-08-08 14:19:29 +00:00
arm64-2011-03-09-CPSRSpill.ll
arm64-2011-03-17-AsmPrinterCrash.ll
arm64-2011-03-21-Unaligned-Frame-Index.ll
arm64-2011-04-21-CPSRBug.ll
arm64-2011-10-18-LdStOptBug.ll
arm64-2012-01-11-ComparisonDAGCrash.ll
arm64-2012-05-07-DAGCombineVectorExtract.ll
arm64-2012-05-07-MemcpyAlignBug.ll
arm64-2012-05-09-LOADgot-bug.ll
arm64-2012-05-22-LdStOptBug.ll
arm64-2012-06-06-FPToUI.ll
arm64-2012-07-11-InstrEmitterBug.ll
arm64-2013-01-13-ffast-fcmp.ll
arm64-2013-01-23-frem-crash.ll
arm64-2013-01-23-sext-crash.ll
arm64-2013-02-12-shufv8i8.ll
arm64-aapcs-be.ll [AArch64] Narrow arguments passed in wrong position on the stack in 2014-08-15 14:29:57 +00:00
arm64-aapcs.ll ARM: Allow __fp16 as a function arg or return type for AArch64 2014-07-11 13:33:46 +00:00
arm64-abi_align.ll [AArch64, fast-isel] Fall back to SelectionDAG to select tail calls. 2014-08-13 23:23:58 +00:00
arm64-abi-varargs.ll
arm64-abi.ll [FastIsel][AArch64] Add support for the FastLowerCall and FastLowerIntrinsicCall target-hooks. 2014-07-22 23:14:58 +00:00
arm64-addp.ll
arm64-addr-mode-folding.ll
arm64-addr-type-promotion.ll
arm64-addrmode.ll
arm64-AdvSIMD-Scalar.ll [AArch64] Extend the number of scalar instructions supported in the AdvSIMD 2014-08-04 21:20:25 +00:00
arm64-alloc-no-stack-realign.ll
arm64-alloca-frame-pointer-offset.ll
arm64-andCmpBrToTBZ.ll
arm64-ands-bad-peephole.ll
arm64-AnInfiniteLoopInDAGCombine.ll
arm64-anyregcc-crash.ll
arm64-anyregcc.ll
arm64-arith-saturating.ll
arm64-arith.ll
arm64-arm64-dead-def-elimination-flag.ll
arm64-atomic-128.ll CodeGen: it turns out that NAND is not the same thing as BIC. At all. 2014-07-07 09:06:35 +00:00
arm64-atomic.ll CodeGen: it turns out that NAND is not the same thing as BIC. At all. 2014-07-07 09:06:35 +00:00
arm64-basic-pic.ll
arm64-big-endian-bitconverts.ll AArch64: remove "arm64_be" support in favour of "aarch64_be". 2014-07-23 12:58:11 +00:00
arm64-big-endian-eh.ll AArch64: remove "arm64_be" support in favour of "aarch64_be". 2014-07-23 12:58:11 +00:00
arm64-big-endian-varargs.ll AArch64: remove "arm64_be" support in favour of "aarch64_be". 2014-07-23 12:58:11 +00:00
arm64-big-endian-vector-callee.ll AArch64: remove "arm64_be" support in favour of "aarch64_be". 2014-07-23 12:58:11 +00:00
arm64-big-endian-vector-caller.ll AArch64: remove "arm64_be" support in favour of "aarch64_be". 2014-07-23 12:58:11 +00:00
arm64-big-imm-offsets.ll
arm64-big-stack.ll
arm64-bitfield-extract.ll
arm64-blockaddress.ll
arm64-build-vector.ll [AArch64]Fix an assertion failure in DAG Combiner about concating 2 build_vector. 2014-07-10 03:41:50 +00:00
arm64-call-tailcalls.ll
arm64-cast-opt.ll
arm64-ccmp-heuristics.ll
arm64-ccmp.ll
arm64-clrsb.ll
arm64-coalesce-ext.ll AArch64/ARM64: move ARM64 into AArch64's place 2014-05-24 12:50:23 +00:00
arm64-code-model-large-abs.ll
arm64-collect-loh-garbage-crash.ll
arm64-collect-loh-str.ll
arm64-collect-loh.ll
arm64-complex-copy-noneon.ll
arm64-complex-ret.ll
arm64-const-addr.ll
arm64-convert-v4f64.ll Add a triple so that right syntax is choosen on mac osx systems 2014-06-18 17:20:49 +00:00
arm64-copy-tuple.ll
arm64-crc32.ll
arm64-crypto.ll
arm64-cse.ll
arm64-csel.ll
arm64-cvt.ll
arm64-dagcombiner-convergence.ll
arm64-dagcombiner-dead-indexed-load.ll
arm64-dagcombiner-load-slicing.ll
arm64-dead-def-frame-index.ll
arm64-dead-register-def-bug.ll
arm64-dup.ll
arm64-early-ifcvt.ll
arm64-elf-calls.ll
arm64-elf-constpool.ll
arm64-elf-globals.ll
arm64-EXT-undef-mask.ll
arm64-ext.ll
arm64-extend-int-to-fp.ll
arm64-extend.ll
arm64-extern-weak.ll
arm64-extload-knownzero.ll
arm64-extract_subvector.ll
arm64-extract.ll
arm64-fast-isel-addr-offset.ll
arm64-fast-isel-alloca.ll
arm64-fast-isel-br.ll [FastISel][AArch64] Fix a few BuildMI callsites where the result register was added as an operand register. 2014-08-19 17:41:53 +00:00
arm64-fast-isel-call.ll Reapply [FastISel][AArch64] Make use of the zero register when possible (r215591). 2014-08-19 19:44:02 +00:00
arm64-fast-isel-conversion.ll [FastISel][AArch64] Don't perform sign-/zero-extension for function arguments that have already been sign-/zero-extended. 2014-08-05 05:43:44 +00:00
arm64-fast-isel-fcmp.ll
arm64-fast-isel-gv.ll
arm64-fast-isel-icmp.ll
arm64-fast-isel-indirectbr.ll
arm64-fast-isel-intrinsic.ll Reapply [FastISel][AArch64] Make use of the zero register when possible (r215591). 2014-08-19 19:44:02 +00:00
arm64-fast-isel-materialize.ll
arm64-fast-isel-noconvert.ll
arm64-fast-isel-rem.ll
arm64-fast-isel-ret.ll
arm64-fast-isel-select.ll [FastISel][AArch64] Fix a few BuildMI callsites where the result register was added as an operand register. 2014-08-19 17:41:53 +00:00
arm64-fast-isel-store.ll Reapply [FastISel][AArch64] Make use of the zero register when possible (r215591). 2014-08-19 19:44:02 +00:00
arm64-fast-isel.ll Reapply [FastISel][AArch64] Make use of the zero register when possible (r215591). 2014-08-19 19:44:02 +00:00
arm64-fastcc-tailcall.ll
arm64-fastisel-gep-promote-before-add.ll
arm64-fcmp-opt.ll
arm64-fcopysign.ll
arm64-fixed-point-scalar-cvt-dagcombine.ll
arm64-fmadd.ll
arm64-fmax.ll
arm64-fminv.ll
arm64-fmuladd.ll
arm64-fold-address.ll
arm64-fold-lsl.ll
arm64-fp128-folding.ll
arm64-fp128.ll
arm64-fp-contract-zero.ll
arm64-fp-imm.ll
arm64-fp.ll
arm64-frame-index.ll
arm64-global-address.ll
arm64-hello.ll
arm64-i16-subreg-extract.ll
arm64-icmp-opt.ll
arm64-illegal-float-ops.ll
arm64-indexed-memory.ll [AArch64] Fix registerAllocator assigns same register for base and wback in 2014-08-11 21:39:53 +00:00
arm64-indexed-vector-ldst-2.ll
arm64-indexed-vector-ldst.ll
arm64-inline-asm-error-I.ll
arm64-inline-asm-error-J.ll
arm64-inline-asm-error-K.ll
arm64-inline-asm-error-L.ll
arm64-inline-asm-error-M.ll
arm64-inline-asm-error-N.ll
arm64-inline-asm-zero-reg-error.ll
arm64-inline-asm.ll AArch64: fix conversion of 'J' inline asm constraints. 2014-07-27 07:10:29 +00:00
arm64-join-reserved.ll
arm64-jumptable.ll
arm64-large-frame.ll
arm64-ld1.ll
arm64-ldp.ll
arm64-ldur.ll
arm64-ldxr-stxr.ll
arm64-leaf.ll
arm64-long-shift.ll
arm64-memcpy-inline.ll
arm64-memset-inline.ll
arm64-memset-to-bzero.ll
arm64-misched-basic-A53.ll Revert "Revert "MachineScheduler: better book-keeping for asserts."" 2014-07-02 16:46:08 +00:00
arm64-misched-basic-A57.ll
arm64-misched-forwarding-A53.ll
arm64-movi.ll
arm64-mul.ll
arm64-named-reg-alloc.ll
arm64-named-reg-notareg.ll
arm64-neg.ll
arm64-neon-2velem-high.ll
arm64-neon-2velem.ll
arm64-neon-3vdiff.ll
arm64-neon-aba-abd.ll
arm64-neon-across.ll
arm64-neon-add-pairwise.ll
arm64-neon-add-sub.ll
arm64-neon-compare-instructions.ll
arm64-neon-copy.ll [codegen,aarch64] Add a target hook to the code generator to control 2014-07-03 00:23:43 +00:00
arm64-neon-copyPhysReg-tuple.ll
arm64-neon-mul-div.ll Revert "r214669 - MachineCombiner Pass for selecting faster instruction" 2014-08-04 05:10:33 +00:00
arm64-neon-scalar-by-elem-mul.ll
arm64-neon-select_cc.ll [codegen,aarch64] Add a target hook to the code generator to control 2014-07-03 00:23:43 +00:00
arm64-neon-simd-ldst-one.ll
arm64-neon-simd-shift.ll
arm64-neon-simd-vget.ll
arm64-neon-v1i1-setcc.ll
arm64-neon-vector-list-spill.ll
arm64-patchpoint-scratch-regs.ll [FastISel][AArch64] Update and enable patchpoint and stackmap intrinsic tests for FastISel. 2014-07-31 04:10:43 +00:00
arm64-patchpoint-webkit_jscc.ll [FastISel][AArch64] Update and enable patchpoint and stackmap intrinsic tests for FastISel. 2014-07-31 04:10:43 +00:00
arm64-patchpoint.ll [FastISel][AArch64] Update and enable patchpoint and stackmap intrinsic tests for FastISel. 2014-07-31 04:10:43 +00:00
arm64-pic-local-symbol.ll
arm64-platform-reg.ll
arm64-popcnt.ll
arm64-prefetch.ll AArch64: Add support for instruction prefetch intrinsic 2014-08-05 12:46:47 +00:00
arm64-promote-const.ll
arm64-redzone.ll
arm64-reg-copy-noneon.ll
arm64-register-offset-addressing.ll
arm64-register-pairing.ll
arm64-regress-f128csel-flags.ll
arm64-regress-interphase-shift.ll
arm64-return-vector.ll
arm64-returnaddr.ll
arm64-rev.ll
arm64-rounding.ll
arm64-scaled_iv.ll
arm64-scvt.ll [AArch64] Disable some optimization cases for type conversion from sint to fp, because those optimization cases are micro-architecture dependent and only make sense for Cyclone. A new predicate Cyclone is introduced in .td file. 2014-07-24 01:29:59 +00:00
arm64-setcc-int-to-fp-combine.ll Use an explicit triple in testcase. 2014-07-23 20:46:32 +00:00
arm64-shifted-sext.ll
arm64-shrink-v1i64.ll
arm64-simd-scalar-to-vector.ll
arm64-simplest-elf.ll
arm64-sincos.ll
arm64-sitofp-combine-chains.ll
arm64-sli-sri-opt.ll
arm64-smaxv.ll
arm64-sminv.ll
arm64-spill-lr.ll
arm64-spill.ll
arm64-sqshl-uqshl-i64Contant.ll
arm64-st1.ll
arm64-stack-no-frame.ll
arm64-stackmap.ll [FastISel][AArch64] Update and enable patchpoint and stackmap intrinsic tests for FastISel. 2014-07-31 04:10:43 +00:00
arm64-stackpointer.ll
arm64-stacksave.ll
arm64-stp.ll
arm64-strict-align.ll
arm64-stur.ll
arm64-subsections.ll
arm64-subvector-extend.ll
arm64-swizzle-tbl-i16-layout.ll
arm64-tbl.ll
arm64-this-return.ll
arm64-tls-darwin.ll
arm64-tls-dynamic-together.ll
arm64-tls-dynamics.ll
arm64-tls-execs.ll
arm64-trap.ll
arm64-trn.ll
arm64-trunc-store.ll
arm64-umaxv.ll
arm64-uminv.ll
arm64-umov.ll
arm64-unaligned_ldst.ll
arm64-uzp.ll
arm64-vaargs.ll
arm64-vabs.ll
arm64-vadd.ll
arm64-vaddlv.ll
arm64-vaddv.ll
arm64-variadic-aapcs.ll
arm64-vbitwise.ll
arm64-vclz.ll
arm64-vcmp.ll
arm64-vcnt.ll
arm64-vcombine.ll
arm64-vcvt_f32_su32.ll
arm64-vcvt_f.ll CodeGen: extend f16 conversions to permit types > float. 2014-07-17 10:51:23 +00:00
arm64-vcvt_n.ll
arm64-vcvt_su32_f32.ll
arm64-vcvt.ll
arm64-vcvtxd_f32_f64.ll
arm64-vecCmpBr.ll
arm64-vecFold.ll
arm64-vector-ext.ll
arm64-vector-imm.ll
arm64-vector-insertion.ll
arm64-vector-ldst.ll
arm64-vext_reverse.ll
arm64-vext.ll
arm64-vfloatintrinsics.ll
arm64-vhadd.ll
arm64-vhsub.ll
arm64-virtual_base.ll
arm64-vmax.ll
arm64-vminmaxnm.ll
arm64-vmovn.ll
arm64-vmul.ll
arm64-volatile.ll
arm64-vpopcnt.ll
arm64-vqadd.ll
arm64-vqsub.ll
arm64-vselect.ll
arm64-vsetcc_fp.ll
arm64-vshift.ll
arm64-vshr.ll
arm64-vshuffle.ll
arm64-vsqrt.ll
arm64-vsra.ll
arm64-vsub.ll
arm64-weak-reference.ll
arm64-xaluo.ll [FastISel][AArch64] Fix the immediate versions of the {s|u}{add|sub}.with.overflow intrinsics. 2014-08-01 01:25:55 +00:00
arm64-zero-cycle-regmov.ll
arm64-zero-cycle-zeroing.ll
arm64-zext.ll
arm64-zextload-unscaled.ll
arm64-zip.ll
asm-large-immediate.ll
assertion-rc-mismatch.ll
atomic-ops-not-barriers.ll
atomic-ops.ll
basic-pic.ll
bitfield-insert-0.ll
bitfield-insert.ll
bitfield.ll
blockaddress.ll
bool-loads.ll
branch-relax-asm.ll
breg.ll
callee-save.ll
cmpxchg-idioms.ll
code-model-large-abs.ll
compare-branch.ll
compiler-ident.ll
complex-copy-noneon.ll
complex-fp-to-int.ll
complex-int-to-fp.ll
cond-sel.ll
cpus.ll
directcond.ll
dont-take-over-the-world.ll AArch64: stop trying to take control of all UnknownArch triples. 2014-08-08 08:27:44 +00:00
dp1.ll
dp2.ll
dp-3source.ll Revert "r214669 - MachineCombiner Pass for selecting faster instruction" 2014-08-04 05:10:33 +00:00
eliminate-trunc.ll
extern-weak.ll
extract.ll
f16-convert.ll CodeGen: emit IR-level f16 conversion intrinsics as fptrunc/fpext 2014-07-21 09:13:56 +00:00
fast-isel-addressing-modes.ll Reapply [FastISel][AArch64] Add support for more addressing modes (r215597). 2014-08-19 19:44:17 +00:00
fast-isel-branch_weights.ll [FastISel][AArch64] Add branch weights. 2014-08-01 18:39:24 +00:00
fast-isel-call-return.ll [FastISel][AArch64] Fix return type in FastLowerCall. 2014-07-23 20:03:13 +00:00
fast-isel-compute-address.ll [FastISel][AArch64] Fold offset into the memory operation. 2014-08-01 19:40:16 +00:00
fast-isel-mul.ll AArch64: correctly fast-isel i8 & i16 multiplies 2014-07-10 14:18:46 +00:00
fast-isel-shift.ll [FastISel][AArch64] Fix shift lowering for i8 and i16 value types. 2014-08-04 21:49:51 +00:00
fast-isel-sqrt.ll [FastISel][AArch64] Add sqrt intrinsic support. 2014-07-31 06:25:33 +00:00
fastcc-reserved.ll
fastcc.ll
fcmp.ll
fcvt-fixed.ll
fcvt-int.ll
flags-multiuse.ll
floatdp_1source.ll
floatdp_2source.ll
fp16-instructions.ll Teach the AArch64 backend to handle f16 2014-08-18 14:22:39 +00:00
fp128-folding.ll
fp-cond-sel.ll
fp-dp3.ll
fpimm.ll
frameaddr.ll [FastISel][AArch64] Add support for frameaddress intrinsic. 2014-07-25 17:47:14 +00:00
free-zext.ll
func-argpassing.ll
func-calls.ll AArch64: remove "arm64_be" support in favour of "aarch64_be". 2014-07-23 12:58:11 +00:00
funcptr_cast.ll [AArch64] Unsized types don't specify an alignment. 2014-06-30 15:03:00 +00:00
global-alignment.ll
global-merge-1.ll
global-merge-2.ll
global-merge-3.ll
global-merge-4.ll
global-merge.ll
got-abuse.ll
half.ll AArch64: implement efficient f16 bitcasts 2014-07-18 13:07:05 +00:00
hints.ll AArch64: add support for llvm.aarch64.hint intrinsic 2014-07-12 21:20:49 +00:00
i1-contents.ll
i128-align.ll
i128-fast-isel-fallback.ll Allow AArch64FastISel to degrade graceully in the presence of an MVT::i128 2014-07-07 21:37:51 +00:00
illegal-float-ops.ll
init-array.ll
inline-asm-constraints-badI.ll
inline-asm-constraints-badK2.ll
inline-asm-constraints-badK.ll
inline-asm-constraints-badL.ll
inlineasm-ldr-pseudo.ll Resubmit commit r211533 2014-06-24 16:21:38 +00:00
intrinsics-memory-barrier.ll Port memory barriers intrinsics to AArch64 2014-07-17 10:50:20 +00:00
jump-table.ll
large-consts.ll
ldst-opt.ll
ldst-regoffset.ll
ldst-unscaledimm.ll
ldst-unsignedimm.ll
lit.local.cfg
literal_pools_float.ll
local_vars.ll
logical_shifted_reg.ll
logical-imm.ll
machine_cse.ll In Machine CSE pass, the source register of a COPY machine instruction can 2014-08-11 05:17:19 +00:00
madd-lohi.ll MachineCombiner Pass for selecting faster instruction sequence on AArch64 2014-08-07 21:40:58 +00:00
mature-mc-support.ll
memcpy-f128.ll [AArch64] Fix memset ICE when memset value is f128. 2014-06-27 21:05:09 +00:00
movw-consts.ll
movw-shift-encoding.ll
mul_pow2.ll [AArch64] Convert mul x, -(pow2 +/- 1) to shift + add/sub. 2014-06-30 14:51:14 +00:00
mul-lohi.ll MachineCombiner Pass for selecting faster instruction sequence on AArch64 2014-08-07 21:40:58 +00:00
neon-bitcast.ll
neon-bitwise-instructions.ll
neon-compare-instructions.ll
neon-diagnostics.ll
neon-extract.ll
neon-fma.ll
neon-fpround_f128.ll
neon-idiv.ll
neon-mla-mls.ll
neon-mov.ll
neon-or-combine.ll
neon-perm.ll [AArch64] Fix a bug generating incorrect instruction when building small vector. 2014-07-24 02:05:42 +00:00
neon-scalar-by-elem-fma.ll
neon-scalar-copy.ll AArch64: fall back to generic code for out of range extract/insert. 2014-07-15 10:00:26 +00:00
neon-shift-left-long.ll
neon-truncStore-extLoad.ll
nzcv-save.ll
paired-load.ll Update test to use a more modern AArch64 triple, as requested by Renato. 2014-08-02 17:15:11 +00:00
pic-eh-stubs.ll AArch64: remove "arm64_be" support in favour of "aarch64_be". 2014-07-23 12:58:11 +00:00
ragreedy-csr.ll
regress-bitcast-formals.ll
regress-f128csel-flags.ll
regress-fp128-livein.ll
regress-tail-livereg.ll
regress-tblgen-chains.ll
regress-w29-reserved-with-fp.ll
remat.ll Implement AArch64 TTI interface isAsCheapAsAMove. 2014-07-29 02:09:26 +00:00
returnaddr.ll
sdivpow2.ll [AArch64] Lower sdiv x, pow2 using add + select + shift. 2014-07-23 14:57:52 +00:00
setcc-takes-i32.ll
sibling-call.ll
sincos-expansion.ll
sincospow-vector-expansion.ll
stack_guard_remat.ll [stack protector] Fix a potential security bug in stack protector where the 2014-07-25 19:31:34 +00:00
stack-guard-remat-bitcast.ll [stack protector] Look through bitcasts to get global variable 2014-08-07 23:08:24 +00:00
tail-call.ll [ARM,AArch64] Do not tail-call to an externally-defined function with weak linkage 2014-08-18 12:42:15 +00:00
tailcall-fastisel.ll [AArch64, fast-isel] Fall back to SelectionDAG to select tail calls. 2014-08-13 23:23:58 +00:00
tbz-tbnz.ll [AArch64] Fix test from r214518 in an attempt to appease buildbots. 2014-08-01 15:30:41 +00:00
trunc-v1i64.ll [aarch64] Add a test that should have been in r212242 but I forgot to 2014-07-03 02:12:26 +00:00
tst-br.ll
zero-reg.ll