llvm-6502/test/CodeGen/AArch64
Juergen Ributzka cf45151b2c [FastISel][AArch64] Don't fold instructions that are not in the same basic block.
This fix checks first if the instruction to be folded (e.g. sign-/zero-extend,
or shift) is in the same machine basic block as the instruction we are folding
into.

Not doing so can result in incorrect code, because the value might not be
live-out of the basic block, where the value is defined.

This fixes rdar://problem/18169495.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216700 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-29 00:19:21 +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-address-type-promotion.ll
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 [FastISel][AArch64] Use the correct register class to make the MI verifier happy. 2014-08-21 20:57:57 +00:00
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 Teach the AArch64 backend about v4f16 and v8f16 2014-08-27 16:16:04 +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] Use the correct register class to make the MI verifier happy. 2014-08-21 20:57:57 +00:00
arm64-addp.ll
arm64-addr-mode-folding.ll
arm64-addr-type-promotion.ll
arm64-addrmode.ll
arm64-AdvSIMD-Scalar.ll [AArch64] Run a peephole pass right after AdvSIMD pass. 2014-08-21 18:10:07 +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 Test cases named with dates is a legacy rule not used now. Rename several test cases. 2014-05-30 05:58:19 +00:00
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
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
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 [FastISel][AArch64] Use the correct register class to make the MI verifier happy. 2014-08-21 20:57:57 +00:00
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 [FastISel][AArch64] Use the correct register class to make the MI verifier happy. 2014-08-21 20:57:57 +00:00
arm64-fast-isel-alloca.ll [FastISel][AArch64] Use the correct register class to make the MI verifier happy. 2014-08-21 20:57:57 +00:00
arm64-fast-isel-br.ll [FastISel][AArch64] Use the correct register class to make the MI verifier happy. 2014-08-21 20:57:57 +00:00
arm64-fast-isel-call.ll [FastISel][AArch64] Use the correct register class to make the MI verifier happy. 2014-08-21 20:57:57 +00:00
arm64-fast-isel-conversion.ll [FastISel][AArch64] Use the correct register class to make the MI verifier happy. 2014-08-21 20:57:57 +00:00
arm64-fast-isel-fcmp.ll [FastISel][AArch64] Use the correct register class to make the MI verifier happy. 2014-08-21 20:57:57 +00:00
arm64-fast-isel-gv.ll [FastISel][AArch64] Use the correct register class to make the MI verifier happy. 2014-08-21 20:57:57 +00:00
arm64-fast-isel-icmp.ll [FastISel][AArch64] Use the correct register class to make the MI verifier happy. 2014-08-21 20:57:57 +00:00
arm64-fast-isel-indirectbr.ll [FastISel][AArch64] Use the correct register class to make the MI verifier happy. 2014-08-21 20:57:57 +00:00
arm64-fast-isel-intrinsic.ll [FastISel][AArch64] Use the correct register class to make the MI verifier happy. 2014-08-21 20:57:57 +00:00
arm64-fast-isel-materialize.ll [FastISel][AArch64] Use the proper FMOV instruction to materialize a +0.0. 2014-08-20 01:10:36 +00:00
arm64-fast-isel-noconvert.ll [FastISel][AArch64] Use the correct register class to make the MI verifier happy. 2014-08-21 20:57:57 +00:00
arm64-fast-isel-rem.ll [FastISel][AArch64] Use the correct register class to make the MI verifier happy. 2014-08-21 20:57:57 +00:00
arm64-fast-isel-ret.ll [FastISel][AArch64] Use the correct register class to make the MI verifier happy. 2014-08-21 20:57:57 +00:00
arm64-fast-isel-select.ll [FastISel][AArch64] Use the correct register class to make the MI verifier happy. 2014-08-21 20:57:57 +00:00
arm64-fast-isel-store.ll [FastISel][AArch64] Use the correct register class to make the MI verifier happy. 2014-08-21 20:57:57 +00:00
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 [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
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 AArch64/ARM64: move ARM64 into AArch64's place 2014-05-24 12:50:23 +00:00
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 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
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
arm64-setcc-int-to-fp-combine.ll
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
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 [FastISel][AArch64] Use the correct register class to make the MI verifier happy. 2014-08-21 20:57:57 +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 Revert r216066, "Optimize ZERO_EXTEND and SIGN_EXTEND in both SelectionDAG Builder and type". 2014-08-21 01:59:30 +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 AArch64/ARM64: move ARM64 into AArch64's place 2014-05-24 12:50:23 +00:00
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
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
fast-isel-addressing-modes.ll [FastISel] 2014-08-28 00:09:46 +00:00
fast-isel-branch_weights.ll [FastISel][AArch64] Use the correct register class to make the MI verifier happy. 2014-08-21 20:57:57 +00:00
fast-isel-call-return.ll [FastISel][AArch64] Use the correct register class to make the MI verifier happy. 2014-08-21 20:57:57 +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-mul.ll [FastISel][AArch64] Use the correct register class to make the MI verifier happy. 2014-08-21 20:57:57 +00:00
fast-isel-shift.ll [FastISel][AArch64] Fold Sign-/Zero-Extend into the shift immediate instruction. 2014-08-27 00:58:26 +00:00
fast-isel-sqrt.ll [FastISel][AArch64] Use the correct register class to make the MI verifier happy. 2014-08-21 20:57:57 +00:00
fast-isel-switch-phi.ll [FastISel] Undo phi node updates when falling-back to SelectionDAG. 2014-08-28 02:06:55 +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 [FastISel][AArch64] Use the correct register class to make the MI verifier happy. 2014-08-21 20:57:57 +00:00
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 AArch64: implement efficient f16 bitcasts 2014-07-18 13:07:05 +00:00
hints.ll
i1-contents.ll
i128-align.ll
i128-fast-isel-fallback.ll
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
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 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
movw-consts.ll
movw-shift-encoding.ll
mul_pow2.ll
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
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 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
ragreedy-csr.ll
rbit.ll ARM: Fix codegen for rbit intrinsic 2014-08-20 10:40:20 +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
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 [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
tst-br.ll
zero-reg.ll