llvm-6502/test/CodeGen/ARM64
Chad Rosier 8f0f458824 [ARM64][fast-isel] Disable target specific optimizations at -O0. Functionally,
this patch disables the dead register elimination pass and the load/store pair
optimization pass at -O0.  The ILP optimizations don't require the optimization
level to be checked because the call to addILPOpts is predicated with the
necessary check.  The AdvSIMDScalar pass is disabled by default at all
optimization levels.  This patch leaves that pass disabled by default.

Also, move command-line options into ARM64TargetMachine.cpp and add a few
additional flags to aid in debugging.  This fixes an issue with the
-debug-pass=Structure flag where passes were printed, but not actually run
(i.e., AdvSIMDScalar pass).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208223 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-07 16:41:55 +00:00
..
2011-03-09-CPSRSpill.ll
2011-03-17-AsmPrinterCrash.ll
2011-03-21-Unaligned-Frame-Index.ll
2011-04-21-CPSRBug.ll
2011-10-18-LdStOptBug.ll ARM64: print canonical syntax for add/sub (imm) instructions. 2014-04-30 11:19:15 +00:00
2012-01-11-ComparisonDAGCrash.ll
2012-05-07-DAGCombineVectorExtract.ll
2012-05-07-MemcpyAlignBug.ll
2012-05-09-LOADgot-bug.ll
2012-05-22-LdStOptBug.ll
2012-06-06-FPToUI.ll ARM64: add constraints to various FastISel operations 2014-04-15 13:59:53 +00:00
2012-07-11-InstrEmitterBug.ll
2013-01-13-ffast-fcmp.ll
2013-01-23-frem-crash.ll
2013-01-23-sext-crash.ll
2013-02-12-shufv8i8.ll
2014-04-16-AnInfiniteLoopInDAGCombine.ll Fix an infinite loop bug in DAG Combine about keeping transfering between ANY_EXTEND and SIGN_EXTEND. 2014-04-22 09:57:06 +00:00
2014-04-28-sqshl-uqshl-i64Contant.ll [ARM64]Fix a bug cannot select UQSHL/SQSHL with constant i64 shift amount. 2014-04-28 07:34:27 +00:00
2014-04-29-EXT-undef-mask.ll [ARM64]Fix a bug about incorrect operand order in an EXT instruction, which is introduced by r207485. 2014-04-29 07:51:19 +00:00
aapcs.ll [ARM64-BE] Make big endian (scalar) argument passing work correctly. 2014-05-07 11:28:36 +00:00
aarch64-large-frame.ll ARM64: print canonical syntax for add/sub (imm) instructions. 2014-04-30 11:19:15 +00:00
aarch64-neon-2velem-high.ll AArch64/ARM64: port some NEON tests to ARM64 2014-04-16 15:28:02 +00:00
aarch64-neon-2velem.ll AArch64/ARM64: port some NEON tests to ARM64 2014-04-16 15:28:02 +00:00
aarch64-neon-3vdiff.ll AArch64/ARM64: port some NEON tests to ARM64 2014-04-16 15:28:02 +00:00
aarch64-neon-aba-abd.ll AArch64/ARM64: port some NEON tests to ARM64 2014-04-16 15:28:02 +00:00
aarch64-neon-across.ll AArch64/ARM64: port some NEON tests to ARM64 2014-04-16 15:28:02 +00:00
aarch64-neon-add-pairwise.ll AArch64/ARM64: port some NEON tests to ARM64 2014-04-16 15:28:02 +00:00
aarch64-neon-add-sub.ll AArch64/ARM64: port some NEON tests to ARM64 2014-04-16 15:28:02 +00:00
aarch64-neon-copy.ll ARM64: hexify printing various immediate operands 2014-04-30 11:19:28 +00:00
aarch64-neon-copyPhysReg-tuple.ll AArch64/ARM64: improve spotting of EXT instructions from VECTOR_SHUFFLE. 2014-04-18 12:50:58 +00:00
aarch64-neon-mul-div.ll AArch64/ARM64: port more AArch64 tests to ARM64. 2014-04-18 13:16:55 +00:00
aarch64-neon-scalar-by-elem-mul.ll AArch64/ARM64: mark fmul intrinsic as commutative. 2014-04-22 10:10:14 +00:00
aarch64-neon-select_cc.ll AArch64/ARM64: optimise vector selects & enable test 2014-05-07 14:10:27 +00:00
aarch64-neon-simd-ldst-one.ll AArch64/ARM64: add more NEON tests. 2014-04-18 14:54:53 +00:00
aarch64-neon-simd-shift.ll AArch64/ARM64: add extra testing from AArch64 to ARM64 2014-04-22 12:45:32 +00:00
aarch64-neon-simd-vget.ll AArch64/ARM64: add extra testing from AArch64 to ARM64 2014-04-22 12:45:32 +00:00
aarch64-neon-v1i1-setcc.ll AArch64/ARM64: port more tests 2014-04-24 12:11:46 +00:00
aarch64-neon-vector-list-spill.ll AArch64/ARM64: add extra testing from AArch64 to ARM64 2014-04-22 12:45:32 +00:00
abi_align.ll [ARM64][fast-isel] Disable target specific optimizations at -O0. Functionally, 2014-05-07 16:41:55 +00:00
abi-varargs.ll
abi.ll [ARM64] Rename FP to the UAL-compliant 'X29'. 2014-04-09 14:43:50 +00:00
addp.ll [ARM64] Set default CPU to generic instead of cyclone. 2014-04-15 19:08:46 +00:00
addr-mode-folding.ll Fix some doc and comment typos 2014-04-09 14:47:27 +00:00
addr-type-promotion.ll ARM64: [su]xtw use W regs as inputs, not X regs. 2014-04-17 20:47:31 +00:00
addrmode.ll ARM64: print canonical syntax for add/sub (imm) instructions. 2014-04-30 11:19:15 +00:00
AdvSIMD-Scalar.ll [ARM64] Fix an issue where we were always assuming a copy was coming from a D subregister. 2014-04-28 16:21:50 +00:00
alloc-no-stack-realign.ll
alloca-frame-pointer-offset.ll
andCmpBrToTBZ.ll
ands-bad-peephole.ll [ARM64] Fix the information we give to the peephole optimizer for comparison. 2014-04-23 20:43:38 +00:00
anyregcc-crash.ll
anyregcc.ll [Stackmaps] Update the stackmap format to use 64-bit relocations for the function address and properly align all entries. 2014-03-31 22:14:04 +00:00
arith-saturating.ll [ARM64] Set default CPU to generic instead of cyclone. 2014-04-15 19:08:46 +00:00
arith.ll ARM64: print lsr instead of lsrv for variable shifts (etc) 2014-04-30 13:37:07 +00:00
arm64-dead-def-elimination-flag.ll Add a flag to disable the ARM64DeadRegisterDefinitionsPass 2014-04-14 21:05:02 +00:00
atomic-128.ll ARM64: switch to IR-based atomic operations. 2014-04-17 20:00:33 +00:00
atomic.ll ARM64: use hex immediates for movz/movk instructions 2014-04-30 11:19:40 +00:00
basic-pic.ll ARM64: use GOT for weak symbols & PIC. 2014-04-02 14:39:11 +00:00
big-endian-bitconverts.ll [ARM64-BE] Fix fast-isel, and add appropriate RUN lines to appropriate tests. 2014-05-07 12:33:55 +00:00
big-endian-varargs.ll [ARM64-BE] Fix variable-argument saving. 2014-05-07 12:33:48 +00:00
big-endian-vector-callee.ll [ARM64-BE] Fix fast-isel, and add appropriate RUN lines to appropriate tests. 2014-05-07 12:33:55 +00:00
big-endian-vector-caller.ll [ARM64-BE] Fix fast-isel, and add appropriate RUN lines to appropriate tests. 2014-05-07 12:33:55 +00:00
big-imm-offsets.ll
big-stack.ll ARM64: print canonical syntax for add/sub (imm) instructions. 2014-04-30 11:19:15 +00:00
bitfield-extract.ll AArch64/ARM64: print BFM instructions as BFI or BFXIL 2014-05-01 12:29:38 +00:00
blockaddress.ll
build-vector.ll Fix some doc and comment typos 2014-04-09 14:47:27 +00:00
call-tailcalls.ll
cast-opt.ll
ccmp-heuristics.ll
ccmp.ll
clrsb.ll Add ARM64 CLS patterns 2014-04-11 22:27:58 +00:00
coalesce-ext.ll ARM64: [su]xtw use W regs as inputs, not X regs. 2014-04-17 20:47:31 +00:00
code-model-large-abs.ll
collect-loh-garbage-crash.ll
collect-loh-str.ll
collect-loh.ll ARM64: disable generation of .loh directives outside MachO. 2014-04-18 14:54:46 +00:00
compact-unwind-unhandled-cfi.S
complex-copy-noneon.ll [ARM64] Enable feature predicates for NEON / FP / CRYPTO. 2014-04-23 06:22:48 +00:00
complex-ret.ll
const-addr.ll ARM64: use hex immediates for movz/movk instructions 2014-04-30 11:19:40 +00:00
convert-v2f64-v2i32.ll
convert-v2i32-v2f64.ll
copy-tuple.ll
crc32.ll [ARM64] Support crc predicate on ARM64. 2014-04-25 09:25:42 +00:00
crypto.ll [ARM64] Enable feature predicates for NEON / FP / CRYPTO. 2014-04-23 06:22:48 +00:00
cse.ll
csel.ll ARM64: use 32-bit moves for constants where possible. 2014-04-16 11:52:51 +00:00
cvt.ll
dagcombiner-convergence.ll
dagcombiner-indexed-load.ll Add the ability to use GEPs for address sinking in CGP 2014-04-12 00:59:48 +00:00
dagcombiner-load-slicing.ll
dead-def-frame-index.ll ARM64: print canonical syntax for add/sub (imm) instructions. 2014-04-30 11:19:15 +00:00
dead-register-def-bug.ll [ARM64] Teach the ARM64DeadRegisterDefinition pass to respect implicit-defs. 2014-04-03 20:51:08 +00:00
dup.ll ARM64: implement cunning optimisation from AArch64 2014-04-18 09:31:20 +00:00
early-ifcvt.ll
elf-calls.ll
elf-constpool.ll
elf-globals.ll [ARM64] Set default CPU to generic instead of cyclone. 2014-04-15 19:08:46 +00:00
ext.ll [ARM64]Fix a bug when lowering shuffle vector to an EXT instruction. 2014-04-29 01:50:36 +00:00
extend-int-to-fp.ll
extend.ll ARM64: [su]xtw use W regs as inputs, not X regs. 2014-04-17 20:47:31 +00:00
extern-weak.ll ARM64: use GOT for weak symbols & PIC. 2014-04-02 14:39:11 +00:00
extload-knownzero.ll
extract_subvector.ll
extract.ll
fast-isel-addr-offset.ll ARM64: use hex immediates for movz/movk instructions 2014-04-30 11:19:40 +00:00
fast-isel-alloca.ll [ARM64] Rename FP to the UAL-compliant 'X29'. 2014-04-09 14:43:50 +00:00
fast-isel-br.ll [ARM64] Set default CPU to generic instead of cyclone. 2014-04-15 19:08:46 +00:00
fast-isel-call.ll [ARM64] Rename FP to the UAL-compliant 'X29'. 2014-04-09 14:43:50 +00:00
fast-isel-conversion.ll [ARM64][fast-isel] Disable target specific optimizations at -O0. Functionally, 2014-05-07 16:41:55 +00:00
fast-isel-fcmp.ll [ARM64] Correctly select ANDWri in FastISel. 2014-05-03 17:27:06 +00:00
fast-isel-gv.ll ARM64: use hex immediates for movz/movk instructions 2014-04-30 11:19:40 +00:00
fast-isel-icmp.ll AArch64/ARM64: use HS instead of CS & LO instead of CC. 2014-04-30 13:14:03 +00:00
fast-isel-indirectbr.ll
fast-isel-intrinsic.ll ARM64: use hex immediates for movz/movk instructions 2014-04-30 11:19:40 +00:00
fast-isel-materialize.ll ARM64: print fp immediates without using scientific notation. 2014-04-30 16:13:34 +00:00
fast-isel-noconvert.ll [ARM64][fast-isel] Fast-isel doesn't know how to handle f128. 2014-04-30 15:29:57 +00:00
fast-isel-rem.ll
fast-isel-ret.ll
fast-isel-select.ll
fast-isel.ll ARM64: hexify printing various immediate operands 2014-04-30 11:19:28 +00:00
fastcc-tailcall.ll
fastisel-gep-promote-before-add.ll
fcmp-opt.ll ARM64: explicitly ask for Apple NEON syntax so test passes on Linux 2014-04-16 09:13:44 +00:00
fcopysign.ll ARM64: hexify printing various immediate operands 2014-04-30 11:19:28 +00:00
fixed-point-scalar-cvt-dagcombine.ll
fmadd.ll ARM64: fix fmsub patterns which assumed accum operand was first 2014-04-08 12:23:51 +00:00
fmax.ll
fminv.ll ARM64: shuffle patterns around for fmin/fmax & add tests. 2014-03-31 15:46:30 +00:00
fmuladd.ll
fold-address.ll
fold-lsl.ll [ARM64] Print preferred aliases for SFBM/UBFM in InstPrinter 2014-04-25 10:25:29 +00:00
fp128-folding.ll
fp128.ll ARM64: use hex immediates for movz/movk instructions 2014-04-30 11:19:40 +00:00
fp-contract-zero.ll DAGCombine: prevent formation of illegal ConstantFP nodes. 2014-05-02 17:25:02 +00:00
fp-imm.ll [ARM64] Fix materialization of an fp128 zero immediate. There currently 2014-03-31 00:02:10 +00:00
fp.ll
frame-index.ll
frameaddr.ll [ARM64] Rename LR to the UAL-compliant 'X30'. 2014-04-09 14:43:59 +00:00
global-address.ll
hello.ll [ARM64] Rename LR to the UAL-compliant 'X30'. 2014-04-09 14:43:59 +00:00
i16-subreg-extract.ll
icmp-opt.ll
illegal-float-ops.ll ARM64: fix lowering of fp128 fptosi/fptoui 2014-04-02 14:39:07 +00:00
indexed-memory.ll
indexed-vector-ldst.ll AArch64/ARM64: add patterns for post-indexed ST1 ops. 2014-05-02 14:54:27 +00:00
inline-asm-error-I.ll
inline-asm-error-J.ll
inline-asm-error-K.ll
inline-asm-error-L.ll
inline-asm-error-M.ll
inline-asm-error-N.ll
inline-asm-zero-reg-error.ll
inline-asm.ll
join-reserved.ll
jumptable.ll
ld1.ll ARM64: add patterns for more lane-wise ld1/st1 operations. 2014-04-01 10:37:09 +00:00
ldp.ll
ldur.ll
ldxr-stxr.ll ARM64: add acquire/release versions of the existing atomic intrinsics. 2014-04-17 20:00:24 +00:00
leaf.ll
lit.local.cfg
long-shift.ll ARM64: print lsr instead of lsrv for variable shifts (etc) 2014-04-30 13:37:07 +00:00
memcpy-inline.ll ARM64: use hex immediates for movz/movk instructions 2014-04-30 11:19:40 +00:00
memset-inline.ll
memset-to-bzero.ll [ARM64] Prefer generation of bzero on Darwin only 2014-05-01 13:11:59 +00:00
misched-basic-A53.ll [ARM64] Ports the Cortex-A53 Machine Model description from AArch64. 2014-04-18 21:22:04 +00:00
movi.ll ARM64: use hex immediates for movz/movk instructions 2014-04-30 11:19:40 +00:00
mul.ll
named-reg-alloc.ll Implememting named register intrinsics 2014-05-06 16:51:25 +00:00
named-reg-notareg.ll Implememting named register intrinsics 2014-05-06 16:51:25 +00:00
neg.ll ARM64: add extra scalar neg pattern & tests. 2014-03-31 15:46:42 +00:00
neon-compare-instructions.ll
neon-v1i1-setcc.ll DAGLegalize: add last-ditch type-legalization for VSELECT. 2014-04-04 14:49:30 +00:00
patchpoint.ll ARM64: use hex immediates for movz/movk instructions 2014-04-30 11:19:40 +00:00
pic-local-symbol.ll [ARM64] When compiling for ELF in PIC mode, local symbols shouldn't go through the GOT 2014-04-25 13:43:18 +00:00
platform-reg.ll
popcnt.ll
prefetch.ll
promote-const.ll [ARM64] Set default CPU to generic instead of cyclone. 2014-04-15 19:08:46 +00:00
redzone.ll
reg-copy-noneon.ll [ARM64] Enable feature predicates for NEON / FP / CRYPTO. 2014-04-23 06:22:48 +00:00
register-offset-addressing.ll
register-pairing.ll ARM64: use hex immediates for movz/movk instructions 2014-04-30 11:19:40 +00:00
regress-f128csel-flags.ll
regress-interphase-shift.ll Revert r191049/r191059 as it can produce wrong code (see PR17975). 2014-04-15 18:34:24 +00:00
return-vector.ll
returnaddr.ll [ARM64] Rename LR to the UAL-compliant 'X30'. 2014-04-09 14:43:59 +00:00
rev.ll ARM64: remove buggy REV16 pattern. 2014-04-14 12:59:52 +00:00
rounding.ll [ARM64] Set default CPU to generic instead of cyclone. 2014-04-15 19:08:46 +00:00
scaled_iv.ll
scvt.ll
shifted-sext.ll [ARM64] Print preferred aliases for SFBM/UBFM in InstPrinter 2014-04-25 10:25:29 +00:00
simd-scalar-to-vector.ll [ARM64] Set default CPU to generic instead of cyclone. 2014-04-15 19:08:46 +00:00
simplest-elf.ll
sincos.ll ARM64: don't generate __sincos_stret calls unless on MachO 2014-04-03 07:06:13 +00:00
sitofp-combine-chains.ll
sli-sri-opt.ll
smaxv.ll ARM64: initial backend import 2014-03-29 10:18:08 +00:00
sminv.ll
spill-lr.ll
spill.ll ARM64: specify triple so that Linux tests pass 2014-04-16 12:03:56 +00:00
st1.ll ARM64: add patterns for more lane-wise ld1/st1 operations. 2014-04-01 10:37:09 +00:00
stack-no-frame.ll
stackmap.ll [Stackmaps] Update the stackmap format to use 64-bit relocations for the function address and properly align all entries. 2014-03-31 22:14:04 +00:00
stackpointer.ll Implememting named register intrinsics 2014-05-06 16:51:25 +00:00
stacksave.ll
stp.ll [ARM64] Set default CPU to generic instead of cyclone. 2014-04-15 19:08:46 +00:00
strict-align.ll [ARM64] Enable alignment control option in front-end for ARM64. 2014-05-06 09:48:52 +00:00
stur.ll [ARM64] Set default CPU to generic instead of cyclone. 2014-04-15 19:08:46 +00:00
subsections.ll ARM64: don't emit .subsections_via_symbols on ELF. 2014-04-18 14:54:41 +00:00
subvector-extend.ll
swizzle-tbl-i16-layout.ll
tbl.ll
this-return.ll
tls-darwin.ll
tls-dynamic-together.ll
tls-dynamics.ll
tls-execs.ll
trap.ll ARM64: hexify printing various immediate operands 2014-04-30 11:19:28 +00:00
trn.ll
trunc-store.ll ARM64: [su]xtw use W regs as inputs, not X regs. 2014-04-17 20:47:31 +00:00
umaxv.ll
uminv.ll
umov.ll
unaligned_ldst.ll
uzp.ll
vaargs.ll
vabs.ll ARM64: add i64 scalar pattern for @llvm.arm64.abs 2014-03-31 15:46:17 +00:00
vadd.ll
vaddlv.ll
vaddv.ll [ARM64] Set default CPU to generic instead of cyclone. 2014-04-15 19:08:46 +00:00
variadic-aapcs.ll ARM64: use hex immediates for movz/movk instructions 2014-04-30 11:19:40 +00:00
vbitwise.ll
vclz.ll
vcmp.ll ARM64: add pattern for <1 x i64> custom not node. 2014-04-09 06:55:39 +00:00
vcnt.ll
vcombine.ll
vcvt_f32_su32.ll
vcvt_f.ll ARM64: convert fp16 narrowing ISel to pseudo-instruction 2014-04-02 14:38:54 +00:00
vcvt_n.ll
vcvt_su32_f32.ll
vcvt.ll
vcvtxd_f32_f64.ll
vecCmpBr.ll [ARM64] Set default CPU to generic instead of cyclone. 2014-04-15 19:08:46 +00:00
vecFold.ll
vector-ext.ll ARM64: hexify printing various immediate operands 2014-04-30 11:19:28 +00:00
vector-imm.ll ARM64: print fp immediates without using scientific notation. 2014-04-30 16:13:34 +00:00
vector-insertion.ll ARM64: print fp immediates without using scientific notation. 2014-04-30 16:13:34 +00:00
vector-ldst.ll
vext.ll
vfloatintrinsics.ll
vhadd.ll
vhsub.ll
virtual_base.ll
vmax.ll
vminmaxnm.ll
vmovn.ll
vmul.ll ARM64: scalarize v1i64 mul operation 2014-04-09 07:07:02 +00:00
volatile.ll
vpopcnt.ll [ARM64] Fix "Cannot select" for vector ctpop 2014-04-17 01:01:37 +00:00
vqadd.ll ARM64: add more scalar patterns for usqadd & suqadd. 2014-03-31 15:46:26 +00:00
vqsub.ll
vselect.ll Fix an infinite loop bug in DAG Combine about keeping transfering between ANY_EXTEND and SIGN_EXTEND. 2014-04-22 09:57:06 +00:00
vsetcc_fp.ll
vshift.ll ARM64: add extra NEG pattern. 2014-04-18 14:54:35 +00:00
vshr.ll [ARM64] Set default CPU to generic instead of cyclone. 2014-04-15 19:08:46 +00:00
vshuffle.ll ARM64: hexify printing various immediate operands 2014-04-30 11:19:28 +00:00
vsqrt.ll ARM64: add more scalar patterns for reciprocal ops. 2014-03-31 15:46:22 +00:00
vsra.ll ARM64: add extra patterns for scalar shifts 2014-03-31 15:46:46 +00:00
vsub.ll
weak-reference.ll
xaluo.ll AArch64/ARM64: use HS instead of CS & LO instead of CC. 2014-04-30 13:14:03 +00:00
zero-cycle-regmov.ll
zero-cycle-zeroing.ll
zext.ll
zextload-unscaled.ll
zip.ll