llvm-6502/test/CodeGen/AArch64
Juergen Ributzka 9952c922c2 Recommit r218010 [FastISel][AArch64] Fold bit test and branch into TBZ and TBNZ.
Note: This version fixed an issue with the TBZ/TBNZ instructions that were
generated in FastISel. The issue was that the 64bit version of TBZ (TBZX)
automagically sets the upper bit of the immediate field that is used to specify
the bit we want to test. To test for any of the lower 32bits we have to first
extract the subregister and use the 32bit version of the TBZ instruction (TBZW).

Original commit message:
Teach selectBranch to fold bit test and branch into a single instruction (TBZ or
TBNZ).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218693 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-30 19:59:35 +00:00
..
128bit_load_store.ll
a57-csel.ll
aarch64_f16_be.ll [AArch64] Fix some failures exposed by value type v4f16 and v8f16. 2014-08-29 01:31:42 +00:00
aarch64_tree_tests.ll Build correct vector filled with undef nodes 2014-09-11 05:10:28 +00:00
aarch64-2014-08-11-MachineCombinerCrash.ll
aarch64-a57-fp-load-balancing.ll
aarch64-address-type-promotion-assertion.ll
aarch64-address-type-promotion.ll
aarch64-be-bv.ll AArch64: fix vector-immediate BIC/ORR on big-endian devices. 2014-09-04 15:05:24 +00:00
aarch64-neon-v1i1-setcc.ll
adc.ll
addsub_ext.ll
addsub-shifted.ll
addsub.ll
alloca.ll
analyze-branch.ll
analyzecmp.ll
and-mask-removal.ll Remove spurious mask operations from AArch64 add->compares on 16 and 8 bit values 2014-08-29 21:00:22 +00:00
andandshift.ll Merge Extend and Shift into a UBFX 2014-09-02 09:33:56 +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
arm64-aapcs.ll Teach the AArch64 backend about v4f16 and v8f16 2014-08-27 16:16:04 +00:00
arm64-abi_align.ll
arm64-abi-varargs.ll
arm64-abi.ll
arm64-addp.ll
arm64-addr-mode-folding.ll
arm64-addr-type-promotion.ll
arm64-addrmode.ll
arm64-AdvSIMD-Scalar.ll
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
arm64-atomic.ll [MachineSink] Use the real post dominator tree 2014-09-01 03:47:25 +00:00
arm64-basic-pic.ll
arm64-big-endian-bitconverts.ll
arm64-big-endian-eh.ll
arm64-big-endian-varargs.ll
arm64-big-endian-vector-callee.ll
arm64-big-endian-vector-caller.ll
arm64-big-imm-offsets.ll
arm64-big-stack.ll
arm64-bitfield-extract.ll
arm64-blockaddress.ll
arm64-build-vector.ll
arm64-call-tailcalls.ll
arm64-cast-opt.ll
arm64-ccmp-heuristics.ll
arm64-ccmp.ll
arm64-clrsb.ll
arm64-coalesce-ext.ll
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
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 Revert "Revert '[DAGCombiner] Split up an indexed load if only the base pointer value is live'" 2014-09-02 06:24:04 +00:00
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 [AArch 64] Use a constant pool load for weak symbol references when 2014-09-10 13:54:38 +00:00
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] Add target-specific lowering for logical operations. 2014-09-04 01:29:18 +00:00
arm64-fast-isel-call.ll [FastISel][AArch64] Use the correct register class for branches. 2014-08-29 23:48:06 +00:00
arm64-fast-isel-conversion.ll [FastISel][AArch64] Fold sign-/zero-extends into the load instruction. 2014-09-30 00:49:58 +00:00
arm64-fast-isel-fcmp.ll [FastISel][AArch64] Improve floating-point compare support. 2014-09-15 20:47:16 +00:00
arm64-fast-isel-gv.ll [FastISel][AArch64] Add target-specific lowering for logical operations. 2014-09-04 01:29:18 +00:00
arm64-fast-isel-icmp.ll
arm64-fast-isel-indirectbr.ll
arm64-fast-isel-intrinsic.ll
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
arm64-fast-isel-store.ll
arm64-fast-isel.ll [FastISel][AArch64] Use the zero register for stores. 2014-08-27 21:04:52 +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
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
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
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
arm64-neon-copyPhysReg-tuple.ll
arm64-neon-mul-div.ll
arm64-neon-scalar-by-elem-mul.ll
arm64-neon-select_cc.ll
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
arm64-patchpoint-webkit_jscc.ll
arm64-patchpoint.ll
arm64-pic-local-symbol.ll
arm64-platform-reg.ll
arm64-popcnt.ll
arm64-prefetch.ll
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
arm64-setcc-int-to-fp-combine.ll
arm64-shifted-sext.ll Add DAG combine for shl + add of constants. 2014-09-11 17:34:19 +00:00
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
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-triv-disjoint-mem-access.ll [AArch64] Improve AA to remove unneeded edges in the AA MI scheduling graph. 2014-09-08 14:43:48 +00:00
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
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 AArch64: More correctly constrain target vector extend lowering. 2014-08-28 22:08:28 +00:00
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 Fix previous commit: [FastISel][AArch64] Simplify XALU multiplies. 2014-09-18 07:26:26 +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 Optimize sext/zext insertion algorithm in back-end. 2014-09-19 05:30:35 +00:00
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
cmpwithshort.ll Generate CMN when comparing a short int with minus 2014-08-28 04:59:53 +00:00
cmpxchg-idioms.ll
code-model-large-abs.ll
combine-comparisons-by-cse.ll [AArch64] Add pass to enable additional comparison optimizations by CSE. 2014-09-05 02:55:24 +00:00
compare-branch.ll
compiler-ident.ll
complex-copy-noneon.ll
complex-fp-to-int.ll
complex-int-to-fp.ll
cond-sel.ll AArch64: only try to get operand of a known node. 2014-08-29 15:34:58 +00:00
cpus.ll
directcond.ll
dont-take-over-the-world.ll
dp1.ll
dp2.ll
dp-3source.ll
eliminate-trunc.ll
extern-weak.ll [AArch 64] Use a constant pool load for weak symbol references when 2014-09-10 13:54:38 +00:00
extract.ll
f16-convert.ll
fast-isel-addressing-modes.ll [FastIsel][AArch64] Fix a think-o in address computation. 2014-09-19 22:23:46 +00:00
fast-isel-branch_weights.ll
fast-isel-call-return.ll
fast-isel-cbz.ll [FastISel][AArch64] Fold compare with zero and branch into CBZ and CBNZ. 2014-09-17 18:05:34 +00:00
fast-isel-cmp-branch.ll [FastISel][AArch64] Improve branch selection to support all FP conditions. 2014-09-17 17:46:47 +00:00
fast-isel-folding.ll [FastISel][AArch64] Don't fold instructions that are not in the same basic block. 2014-08-29 00:19:21 +00:00
fast-isel-int-ext.ll [FastISel][AArch64] Fold sign-/zero-extends into the load instruction. 2014-09-30 00:49:58 +00:00
fast-isel-logic-op.ll [FastISel][AArch64] Fold mul into add/sub and logical operations. 2014-09-17 19:51:38 +00:00
fast-isel-mul.ll [FastISel][AArch64] Simplify mul to shift when possible. 2014-09-17 20:35:41 +00:00
fast-isel-runtime-libcall.ll [FastISel][AArch64] Lower sin/cos/pow to runtime lib calls. 2014-09-15 22:33:06 +00:00
fast-isel-sdiv.ll [FastISel][AArch64] Custom lower sdiv by power-of-2. 2014-09-17 21:55:55 +00:00
fast-isel-shift.ll [FastISel][AArch64] Also allow folding of sign-/zero-extend and shift-left for booleans (i1). 2014-09-22 21:08:53 +00:00
fast-isel-sqrt.ll
fast-isel-switch-phi.ll [FastISel] Undo phi node updates when falling-back to SelectionDAG. 2014-08-28 02:06:55 +00:00
fast-isel-tbz.ll Recommit r218010 [FastISel][AArch64] Fold bit test and branch into TBZ and TBNZ. 2014-09-30 19:59:35 +00:00
fast-isel-trunc.ll [FastISel][AArch64] Fix an incorrect kill flag due to a bug in SelectTrunc. 2014-08-29 17:58:16 +00:00
fast-isel-vector-arithmetic.ll [FastISel][AArch64] Add vector support to argument lowering. 2014-09-16 00:25:30 +00:00
fast-isel-vret.ll [FastISel][AArch64] Add missing test case for previous commit. 2014-09-15 23:47:57 +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 about v4f16 and v8f16 2014-08-27 16:16:04 +00:00
fp16-v4-instructions.ll Teach the AArch64 backend about v4f16 and v8f16 2014-08-27 16:16:04 +00:00
fp16-v8-instructions.ll Teach the AArch64 backend about v4f16 and v8f16 2014-08-27 16:16:04 +00:00
fp16-vector-bitcast.ll Teach the AArch64 backend about v4f16 and v8f16 2014-08-27 16:16:04 +00:00
fp16-vector-load-store.ll Teach the AArch64 backend about v4f16 and v8f16 2014-08-27 16:16:04 +00:00
fp16-vector-shuffle.ll Teach the AArch64 backend about v4f16 and v8f16 2014-08-27 16:16:04 +00:00
fp128-folding.ll
fp-cond-sel.ll
fp-dp3.ll
fpimm.ll
frameaddr.ll
free-zext.ll
func-argpassing.ll
func-calls.ll
funcptr_cast.ll
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
hints.ll
i1-contents.ll
i128-align.ll
i128-fast-isel-fallback.ll
illegal-float-ops.ll
init-array.ll Replace -use-init-array with -use-ctors. 2014-09-02 13:54:53 +00:00
inline-asm-constraints-badI.ll
inline-asm-constraints-badK2.ll
inline-asm-constraints-badK.ll
inline-asm-constraints-badL.ll
inlineasm-ldr-pseudo.ll
intrinsics-memory-barrier.ll
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
madd-combiner.ll Reapply r216805 "[MachineCombiner][AArch64] Use the correct register class for MADD, SUB, and OR."" 2014-09-03 07:07:10 +00:00
madd-lohi.ll
mature-mc-support.ll
memcpy-f128.ll
movw-consts.ll
movw-shift-encoding.ll
mul_pow2.ll
mul-lohi.ll
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
neon-scalar-by-elem-fma.ll
neon-scalar-copy.ll
neon-shift-left-long.ll
neon-truncStore-extLoad.ll
nzcv-save.ll
paired-load.ll
PBQP.ll [AArch64] Reenable the PBQP test now that the leak issue has been fixed. 2014-09-11 10:39:52 +00:00
pic-eh-stubs.ll
postra-mi-sched.ll [AArch64] Enable post-RA MI scheduler. 2014-09-12 17:40:39 +00:00
ragreedy-csr.ll
rbit.ll
Redundantstore.ll [AArch64] Redundant store instructions should be removed as dead code 2014-09-27 17:02:54 +00:00
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
returnaddr.ll
rm_redundant_cmp.ll Optimize sext/zext insertion algorithm in back-end. 2014-09-19 05:30:35 +00:00
sdivpow2.ll
setcc-takes-i32.ll
sibling-call.ll
sincos-expansion.ll
sincospow-vector-expansion.ll
stack_guard_remat.ll
stack-guard-remat-bitcast.ll
tail-call.ll
tailcall-fastisel.ll
tbz-tbnz.ll
trunc-v1i64.ll
tst-br.ll
zero-reg.ll