llvm-6502/test/CodeGen/ARM64
Tim Northover a9a94ce839 TableGen: fix operand counting for aliases
TableGen has a fairly dubious heuristic to decide whether an alias should be
printed: does the alias have lest operands than the real instruction. This is
bad enough (particularly with no way to override it), but it should at least be
calculated consistently for both strings.

This patch implements that logic: first get the *correct* string for the
variant, in the same way as the Matcher, without guessing; then count the
number of whitespace chars.

There are basically 4 changes this brings about after the previous
commits; all of these appear to be good, so I have changed the tests:

+ ARM64: we print "neg X, Y" instead of "sub X, xzr, Y".
+ ARM64: we skip implicit "uxtx" and "uxtw" modifiers.
+ Sparc: we print "mov A, B" instead of "or %g0, A, B".
+ Sparc: we print "fcmpX A, B" instead of "fcmpX %fcc0, A, B"

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208969 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-16 09:42:04 +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: print correct aliases for NEON mov & mvn instructions 2014-05-15 12:11:02 +00:00
aarch64-neon-copyPhysReg-tuple.ll TableGen/ARM64: print aliases even if they have syntax variants. 2014-05-15 11:16:32 +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 TableGen: fix operand counting for aliases 2014-05-16 09:42:04 +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 TableGen: use PrintMethods to print more aliases 2014-05-12 18:04:06 +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-eh.ll [ARM64-BE] Fix byte order of CIE and FDE frames for exception handling 2014-05-14 16:51:58 +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 TableGen: use PrintMethods to print more aliases 2014-05-12 18:04:06 +00:00
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 TableGen/ARM64: print aliases even if they have syntax variants. 2014-05-15 11:16:32 +00:00
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 Folding into CSEL when there is ZEXT between SETCC and ADD 2014-05-13 00:40:58 +00:00
cvt.ll
dagcombiner-convergence.ll
dagcombiner-dead-indexed-load.ll [DAGCombiner] Split up an indexed load if only the base pointer value is live 2014-05-12 23:00:03 +00:00
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 TableGen: use PrintMethods to print more aliases 2014-05-12 18:04:06 +00:00
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-BE] Teach fast-isel about how to set up sub-word stack arguments for big endian calls. 2014-05-08 12:53: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 TableGen: use PrintMethods to print more aliases 2014-05-12 18:04: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 TableGen: use PrintMethods to print more aliases 2014-05-12 18:04:06 +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 ARM64: make sure FastISel emits SSA MachineInstrs 2014-05-08 10:30:56 +00:00
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 TableGen: use PrintMethods to print more aliases 2014-05-12 18:04:06 +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 ARM64: fix SELECT_CC lowering in absence of NaNs. 2014-05-10 07:37:50 +00:00
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 TableGen/ARM64: print aliases even if they have syntax variants. 2014-05-15 11:16:32 +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
global-merge.ll Implement global merge optimization for global variables. 2014-05-15 23:45:42 +00:00
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 TableGen: use PrintMethods to print more aliases 2014-05-12 18:04:06 +00:00
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 [ARM64]Implement NEON post-increment LD1(lane) and post-increment LD1R. 2014-05-16 09:39:02 +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 [Test] Trim unnecessary .c and .cpp from config.suffix in lit.local.cfg 2014-05-12 19:57:31 +00:00
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 ARM64: print correct aliases for NEON mov & mvn instructions 2014-05-15 12:11:02 +00:00
neon-v1i1-setcc.ll TableGen: use PrintMethods to print more aliases 2014-05-12 18:04:06 +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
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 ARM64: print correct aliases for NEON mov & mvn instructions 2014-05-15 12:11:02 +00:00
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: print correct aliases for NEON mov & mvn instructions 2014-05-15 12:11:02 +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 TableGen: use PrintMethods to print more aliases 2014-05-12 18:04:06 +00:00
zero-cycle-regmov.ll
zero-cycle-zeroing.ll
zext.ll
zextload-unscaled.ll
zip.ll