llvm-project/llvm/test/CodeGen/AArch64
Tim Northover 88a51d983e AArch64/ARM64: optimise vector selects & enable test
When performing a scalar comparison that feeds into a vector select,
it's actually better to do the comparison on the vector side: the
scalar route would be "CMP -> CSEL -> DUP", the vector is "CM -> DUP"
since the vector comparisons are all mask based.

llvm-svn: 208210
2014-05-07 14:10:27 +00:00
..
128bit_load_store.ll ARM64: start porting regression test suite from AArch64 2014-04-14 12:50:41 +00:00
adc.ll [ARM64-BE] Make big endian (scalar) argument passing work correctly. 2014-05-07 11:28:36 +00:00
addsub-shifted.ll ARM64: specify full triple in tests to pacify Windows. 2014-04-14 13:18:48 +00:00
addsub.ll AArch64/ARM64: use HS instead of CS & LO instead of CC. 2014-04-30 13:14:03 +00:00
addsub_ext.ll ARM64: specify full triple in tests to pacify Windows. 2014-04-14 13:18:48 +00:00
alloca.ll ARM64: print canonical syntax for add/sub (imm) instructions. 2014-04-30 11:19:15 +00:00
analyze-branch.ll ARM64: enable more regression tests from AArch64 2014-04-14 12:50:58 +00:00
andCmpBrToTBZ.ll AArch64/ARM64: more testing from AArch64 to ARM64 2014-04-22 12:45:47 +00:00
assertion-rc-mismatch.ll ARM64: specify full triple in tests to pacify Windows. 2014-04-14 13:18:48 +00:00
atomic-ops-not-barriers.ll ARM64: enable more regression tests from AArch64 2014-04-14 12:50:58 +00:00
atomic-ops.ll AArch64/ARM64: port atomics test to ARM64. 2014-04-18 09:31:31 +00:00
basic-pic.ll ARM64: specify full triple in tests to pacify Windows. 2014-04-14 13:18:48 +00:00
bitfield-insert-0.ll ARM64: specify full triple in tests to pacify Windows. 2014-04-14 13:18:48 +00:00
bitfield-insert.ll AArch64/ARM64: print BFM instructions as BFI or BFXIL 2014-05-01 12:29:38 +00:00
bitfield.ll [ARM64] Print preferred aliases for SFBM/UBFM in InstPrinter 2014-04-25 10:25:29 +00:00
blockaddress.ll ARM64: enable more regression tests from AArch64 2014-04-14 12:50:58 +00:00
bool-loads.ll [ARM64] Print preferred aliases for SFBM/UBFM in InstPrinter 2014-04-25 10:25:29 +00:00
breg.ll ARM64: specify full triple in tests to pacify Windows. 2014-04-14 13:18:48 +00:00
callee-save.ll ARM64: specify full triple in tests to pacify Windows. 2014-04-14 13:18:48 +00:00
code-model-large-abs.ll ARM64: specify full triple in tests to pacify Windows. 2014-04-14 13:18:48 +00:00
compare-branch.ll ARM64: specify full triple in tests to pacify Windows. 2014-04-14 13:18:48 +00:00
complex-copy-noneon.ll AArch64/ARM64: run test on ARM64 too. 2014-05-07 10:47:04 +00:00
concatvector-bugs.ll AArch64/ARM64: more testing from AArch64 to ARM64 2014-04-22 12:45:47 +00:00
cond-sel.ll ARM64: use hex immediates for movz/movk instructions 2014-04-30 11:19:40 +00:00
cpus.ll AArch64/ARM64: enable various AArch64 tests on ARM64. 2014-04-22 10:10:26 +00:00
directcond.ll [ARM64] Add RUN lines for "–target arm64 –mattr=-fp-armv8" on AArch64 no-fp test. 2014-04-25 09:44:20 +00:00
dp-3source.ll AArch64/ARM64: add dp tests from AArch64 2014-04-15 13:59:40 +00:00
dp1.ll AArch64/ARM64: add dp tests from AArch64 2014-04-15 13:59:40 +00:00
dp2.ll AArch64/ARM64: add dp tests from AArch64 2014-04-15 13:59:40 +00:00
eliminate-trunc.ll [ARM64] Set default CPU to generic instead of cyclone. 2014-04-15 19:08:46 +00:00
extern-weak.ll AArch64/ARM64: add more arm64 lines to AArch64 regression tests 2014-04-15 13:59:44 +00:00
extract.ll AArch64/ARM64: add more arm64 lines to AArch64 regression tests 2014-04-15 13:59:44 +00:00
fastcc-reserved.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
fastcc.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
fcmp.ll AArch64/ARM64: add more arm64 lines to AArch64 regression tests 2014-04-15 13:59:44 +00:00
fcvt-fixed.ll AArch64/ARM64: copy patterns for fixed-point conversions 2014-04-15 13:59:57 +00:00
fcvt-int.ll AArch64/ARM64: enable more AArch64 tests on ARM64. 2014-04-15 14:00:29 +00:00
flags-multiuse.ll AArch64/ARM64: enable more AArch64 tests on ARM64. 2014-04-15 14:00:29 +00:00
floatdp_1source.ll AArch64/ARM64: add half as a storage type on ARM64. 2014-04-15 14:00:03 +00:00
floatdp_2source.ll [ARM64] Set default CPU to generic instead of cyclone. 2014-04-15 19:08:46 +00:00
fp-cond-sel.ll [ARM64] Set default CPU to generic instead of cyclone. 2014-04-15 19:08:46 +00:00
fp-dp3.ll AArch64/ARM64: add patterns for various commutations of FNMADD. 2014-04-15 14:00:06 +00:00
fp128-folding.ll AArch64/ARM64: enable more AArch64 tests on ARM64. 2014-04-15 14:00:29 +00:00
fp128.ll AArch64/ARM64: make use of ANDS and BICS instructions for comparisons. 2014-04-22 12:45:42 +00:00
fpimm.ll AArch64/ARM64: enable more AArch64 tests on ARM64. 2014-04-15 14:00:29 +00:00
frameaddr.ll AArch64/ARM64: enable more AArch64 tests on ARM64. 2014-04-15 14:00:29 +00:00
free-zext.ll AArch64/ARM64: enable more AArch64 tests on ARM64. 2014-04-15 14:00:29 +00:00
func-argpassing.ll [ARM64-BE] Make big endian (scalar) argument passing work correctly. 2014-05-07 11:28:36 +00:00
func-calls.ll [ARM64-BE] Make big endian (scalar) argument passing work correctly. 2014-05-07 11:28:36 +00:00
global-alignment.ll Special case aliases in GlobalValue::getAlignment. 2014-05-06 16:48:58 +00:00
global_merge_1.ll [AArch64] Enable global merge pass. 2014-04-22 03:33:26 +00:00
got-abuse.ll AArch64/ARM64: enable more AArch64 tests on ARM64. 2014-04-15 14:00:29 +00:00
i128-align.ll ARM64: use 32-bit moves for constants where possible. 2014-04-16 11:52:51 +00:00
i128-shift.ll AArch64/ARM64: enable more AArch64 tests on ARM64. 2014-04-15 14:00:29 +00:00
illegal-float-ops.ll AArch64/ARM64: enable more AArch64 tests on ARM64. 2014-04-15 14:00:29 +00:00
init-array.ll AArch64/ARM64: enable more AArch64 tests on ARM64. 2014-04-15 14:00:29 +00:00
inline-asm-constraints-badI.ll AArch64/ARM64: add another set of tests from AArch64 2014-04-16 11:53:07 +00:00
inline-asm-constraints-badK.ll AArch64/ARM64: add another set of tests from AArch64 2014-04-16 11:53:07 +00:00
inline-asm-constraints-badK2.ll AArch64/ARM64: add another set of tests from AArch64 2014-04-16 11:53:07 +00:00
inline-asm-constraints-badL.ll AArch64/ARM64: add another set of tests from AArch64 2014-04-16 11:53:07 +00:00
inline-asm-constraints.ll Re-commit: Demote EmitRawText call in AsmPrinter::EmitInlineAsm() and remove hasRawTextSupport() call 2014-02-13 14:44:26 +00:00
inline-asm-modifiers.ll Re-commit: Demote EmitRawText call in AsmPrinter::EmitInlineAsm() and remove hasRawTextSupport() call 2014-02-13 14:44:26 +00:00
jump-table.ll AArch64/ARM64: add support for large code-model jump tables. 2014-04-15 14:00:11 +00:00
large-consts.ll AArch64/ARM64: only mangle MOVZ/MOVN during encoding when needed 2014-04-15 14:00:15 +00:00
large-frame.ll AArch64/ARM64: more testing from AArch64 to ARM64 2014-04-22 12:45:47 +00:00
ldst-regoffset.ll [ARM64] Add RUN lines for "–target arm64 –mattr=-fp-armv8" on AArch64 no-fp test. 2014-04-25 09:44:20 +00:00
ldst-unscaledimm.ll [ARM64] Add RUN lines for "–target arm64 –mattr=-fp-armv8" on AArch64 no-fp test. 2014-04-25 09:44:20 +00:00
ldst-unsignedimm.ll [ARM64] Add RUN lines for "–target arm64 –mattr=-fp-armv8" on AArch64 no-fp test. 2014-04-25 09:44:20 +00:00
lit.local.cfg ARM64: start porting regression test suite from AArch64 2014-04-14 12:50:41 +00:00
literal_pools_float.ll [ARM64] Add RUN lines for "–target arm64 –mattr=-fp-armv8" on AArch64 no-fp test. 2014-04-25 09:44:20 +00:00
literal_pools_int.ll AArch64/ARM64: enable more AArch64 tests on ARM64. 2014-04-15 14:00:29 +00:00
local_vars.ll AArch64/ARM64: more testing from AArch64 to ARM64 2014-04-22 12:45:47 +00:00
logical-imm.ll AArch64/ARM64: add another set of tests from AArch64 2014-04-16 11:53:07 +00:00
logical_shifted_reg.ll AArch64/ARM64: make use of ANDS and BICS instructions for comparisons. 2014-04-22 12:45:42 +00:00
mature-mc-support.ll ARM64: use the integrated assembler on ELF. 2014-04-16 11:52:40 +00:00
misched-basic-A53.ll AArch64/ARM64: enable various AArch64 tests on ARM64. 2014-04-22 10:10:26 +00:00
movw-consts.ll ARM64: use hex immediates for movz/movk instructions 2014-04-30 11:19:40 +00:00
movw-shift-encoding.ll AArch64/ARM64: add another set of tests from AArch64 2014-04-16 11:53:07 +00:00
mul-lohi.ll [ARM64-BE] Make big endian (scalar) argument passing work correctly. 2014-05-07 11:28:36 +00:00
named-reg-alloc.ll AArch64/ARM64: put annotation in test 2014-05-07 10:47:00 +00:00
named-reg-notareg.ll AArch64/ARM64: put annotation in test 2014-05-07 10:47:00 +00:00
neon-2velem-high.ll AArch64/ARM64: port some NEON tests to ARM64 2014-04-16 15:28:02 +00:00
neon-2velem.ll AArch64/ARM64: port some NEON tests to ARM64 2014-04-16 15:28:02 +00:00
neon-3vdiff.ll AArch64/ARM64: port some NEON tests to ARM64 2014-04-16 15:28:02 +00:00
neon-aba-abd.ll AArch64/ARM64: port some NEON tests to ARM64 2014-04-16 15:28:02 +00:00
neon-across.ll AArch64/ARM64: port some NEON tests to ARM64 2014-04-16 15:28:02 +00:00
neon-add-pairwise.ll AArch64/ARM64: port some NEON tests to ARM64 2014-04-16 15:28:02 +00:00
neon-add-sub.ll AArch64/ARM64: port some NEON tests to ARM64 2014-04-16 15:28:02 +00:00
neon-bitcast.ll AArch64/ARM64: port some NEON tests to ARM64 2014-04-16 15:28:02 +00:00
neon-bitwise-instructions.ll AArch64/ARM64: port BSL logic from AArch64 & enable test. 2014-04-18 09:31:01 +00:00
neon-bsl.ll AArch64/ARM64: port BSL logic from AArch64 & enable test. 2014-04-18 09:31:01 +00:00
neon-compare-instructions.ll AArch64/ARM64: emit all vector FP comparisons as such. 2014-04-18 09:31:07 +00:00
neon-copy.ll AArch64/ARM64: spot a greater variety of concat_vector operations. 2014-04-18 09:31:27 +00:00
neon-copyPhysReg-tuple.ll AArch64: print NEON lists with a space. 2014-04-24 14:06:20 +00:00
neon-crypto.ll AArch64/ARM64: port more AArch64 tests to ARM64. 2014-04-18 13:16:55 +00:00
neon-diagnostics.ll AArch64/ARM64: port more AArch64 tests to ARM64. 2014-04-18 13:16:55 +00:00
neon-extract.ll AArch64/ARM64: improve spotting of EXT instructions from VECTOR_SHUFFLE. 2014-04-18 12:50:58 +00:00
neon-facge-facgt.ll AArch64/ARM64: port more AArch64 tests to ARM64. 2014-04-18 13:16:55 +00:00
neon-fma.ll AArch64/ARM64: port more AArch64 tests to ARM64. 2014-04-18 13:16:55 +00:00
neon-fpround_f128.ll AArch64/ARM64: port more AArch64 tests to ARM64. 2014-04-18 13:16:55 +00:00
neon-frsqrt-frecp.ll AArch64/ARM64: port more AArch64 tests to ARM64. 2014-04-18 13:16:55 +00:00
neon-halving-add-sub.ll AArch64/ARM64: port more AArch64 tests to ARM64. 2014-04-18 13:16:55 +00:00
neon-idiv.ll AArch64: Mark vector long multiplication as expand. 2014-04-29 09:37:54 +00:00
neon-load-store-v1i32.ll AArch64/ARM64: port more AArch64 tests to ARM64. 2014-04-18 13:16:55 +00:00
neon-max-min-pairwise.ll AArch64/ARM64: port more AArch64 tests to ARM64. 2014-04-18 13:16:55 +00:00
neon-max-min.ll AArch64/ARM64: port more AArch64 tests to ARM64. 2014-04-18 13:16:55 +00:00
neon-misc-scalar.ll AArch64/ARM64: port more AArch64 tests to ARM64. 2014-04-18 13:16:55 +00:00
neon-misc.ll AArch64/ARM64: port more AArch64 tests to ARM64. 2014-04-18 13:16:55 +00:00
neon-mla-mls.ll AArch64/ARM64: port more AArch64 tests to ARM64. 2014-04-18 13:16:55 +00:00
neon-mov.ll AArch64/ARM64: port more AArch64 tests to ARM64. 2014-04-18 13:16:55 +00:00
neon-mul-div.ll AArch64/ARM64: port more AArch64 tests to ARM64. 2014-04-18 13:16:55 +00:00
neon-or-combine.ll AArch64/ARM64: port more AArch64 tests to ARM64. 2014-04-18 13:16:55 +00:00
neon-perm.ll AArch64/ARM64: port more AArch64 tests to ARM64. 2014-04-18 13:16:55 +00:00
neon-rounding-halving-add.ll AArch64/ARM64: port more AArch64 tests to ARM64. 2014-04-18 13:16:55 +00:00
neon-rounding-shift.ll AArch64/ARM64: port more AArch64 tests to ARM64. 2014-04-18 13:16:55 +00:00
neon-saturating-add-sub.ll AArch64/ARM64: port more AArch64 tests to ARM64. 2014-04-18 13:16:55 +00:00
neon-saturating-rounding-shift.ll AArch64/ARM64: port more AArch64 tests to ARM64. 2014-04-18 13:16:55 +00:00
neon-saturating-shift.ll AArch64/ARM64: port more AArch64 tests to ARM64. 2014-04-18 13:16:55 +00:00
neon-scalar-abs.ll AArch64/ARM64: enable various AArch64 tests on ARM64. 2014-04-22 10:10:26 +00:00
neon-scalar-add-sub.ll AArch64/ARM64: enable various AArch64 tests on ARM64. 2014-04-22 10:10:26 +00:00
neon-scalar-by-elem-fma.ll AArch64/ARM64: enable various AArch64 tests on ARM64. 2014-04-22 10:10:26 +00:00
neon-scalar-by-elem-mul.ll AArch64/ARM64: mark fmul intrinsic as commutative. 2014-04-22 10:10:14 +00:00
neon-scalar-compare.ll AArch64/ARM64: enable various AArch64 tests on ARM64. 2014-04-22 10:10:26 +00:00
neon-scalar-copy.ll AArch64/ARM64: add patterns for scalar_to_vector/extract pairs 2014-04-22 10:10:18 +00:00
neon-scalar-cvt.ll AArch64/ARM64: enable various AArch64 tests on ARM64. 2014-04-22 10:10:26 +00:00
neon-scalar-ext.ll AArch64/ARM64: enable various AArch64 tests on ARM64. 2014-04-22 10:10:26 +00:00
neon-scalar-extract-narrow.ll AArch64/ARM64: add extra testing from AArch64 to ARM64 2014-04-22 12:45:32 +00:00
neon-scalar-fabd.ll AArch64/ARM64: add extra testing from AArch64 to ARM64 2014-04-22 12:45:32 +00:00
neon-scalar-fcvt.ll AArch64/ARM64: add extra testing from AArch64 to ARM64 2014-04-22 12:45:32 +00:00
neon-scalar-fp-compare.ll AArch64/ARM64: add extra testing from AArch64 to ARM64 2014-04-22 12:45:32 +00:00
neon-scalar-mul.ll AArch64/ARM64: add extra testing from AArch64 to ARM64 2014-04-22 12:45:32 +00:00
neon-scalar-neg.ll AArch64/ARM64: add extra testing from AArch64 to ARM64 2014-04-22 12:45:32 +00:00
neon-scalar-recip.ll AArch64/ARM64: add extra testing from AArch64 to ARM64 2014-04-22 12:45:32 +00:00
neon-scalar-reduce-pairwise.ll AArch64/ARM64: add extra testing from AArch64 to ARM64 2014-04-22 12:45:32 +00:00
neon-scalar-rounding-shift.ll AArch64/ARM64: add extra testing from AArch64 to ARM64 2014-04-22 12:45:32 +00:00
neon-scalar-saturating-add-sub.ll AArch64/ARM64: add extra testing from AArch64 to ARM64 2014-04-22 12:45:32 +00:00
neon-scalar-saturating-rounding-shift.ll AArch64/ARM64: add extra testing from AArch64 to ARM64 2014-04-22 12:45:32 +00:00
neon-scalar-saturating-shift.ll AArch64/ARM64: add extra testing from AArch64 to ARM64 2014-04-22 12:45:32 +00:00
neon-scalar-shift-imm.ll AArch64/ARM64: add extra testing from AArch64 to ARM64 2014-04-22 12:45:32 +00:00
neon-scalar-shift.ll AArch64/ARM64: add extra testing from AArch64 to ARM64 2014-04-22 12:45:32 +00:00
neon-select_cc.ll AArch64/ARM64: optimise vector selects & enable test 2014-05-07 14:10:27 +00:00
neon-shift-left-long.ll AArch64/ARM64: add more NEON tests. 2014-04-18 14:54:53 +00:00
neon-shift.ll AArch64/ARM64: add more NEON tests. 2014-04-18 14:54:53 +00:00
neon-shl-ashr-lshr.ll ARM64: add extra NEG pattern. 2014-04-18 14:54:35 +00:00
neon-simd-ldst-multi-elem.ll AArch64: print NEON lists with a space. 2014-04-24 14:06:20 +00:00
neon-simd-ldst-one.ll AArch64: print NEON lists with a space. 2014-04-24 14:06:20 +00:00
neon-simd-ldst.ll AArch64: print NEON lists with a space. 2014-04-24 14:06:20 +00:00
neon-simd-post-ldst-multi-elem.ll AArch64: print NEON lists with a space. 2014-04-24 14:06:20 +00:00
neon-simd-post-ldst-one.ll AArch64: print NEON lists with a space. 2014-04-24 14:06:20 +00:00
neon-simd-shift.ll AArch64/ARM64: enable various AArch64 tests on ARM64. 2014-04-22 10:10:26 +00:00
neon-simd-tbl.ll AArch64: print NEON lists with a space. 2014-04-24 14:06:20 +00:00
neon-simd-vget.ll AArch64/ARM64: enable various AArch64 tests on ARM64. 2014-04-22 10:10:26 +00:00
neon-spill-fpr8-fpr16.ll AArch64/ARM64: add extra testing from AArch64 to ARM64 2014-04-22 12:45:32 +00:00
neon-truncStore-extLoad.ll AArch64: print NEON lists with a space. 2014-04-24 14:06:20 +00:00
neon-v1i1-setcc.ll AArch64/ARM64: port more tests 2014-04-24 12:11:46 +00:00
neon-vector-list-spill.ll AArch64/ARM64: add extra testing from AArch64 to ARM64 2014-04-22 12:45:32 +00:00
pic-eh-stubs.ll [ARM64] Ensure arm64_be is dealt with when emitting debug info. 2014-04-30 10:15:35 +00:00
ragreedy-csr.ll AArch64/ARM64: add another set of tests from AArch64 2014-04-16 11:53:07 +00:00
regress-bitcast-formals.ll AArch64/ARM64: add another set of tests from AArch64 2014-04-16 11:53:07 +00:00
regress-f128csel-flags.ll DAGCombiner: don't optimise non-existant litpool load 2014-04-16 09:03:09 +00:00
regress-fp128-livein.ll AArch64/ARM64: add another set of tests from AArch64 2014-04-16 11:53:07 +00:00
regress-tail-livereg.ll AArch64/ARM64: add another set of tests from AArch64 2014-04-16 11:53:07 +00:00
regress-tblgen-chains.ll AArch64/ARM64: add another set of tests from AArch64 2014-04-16 11:53:07 +00:00
regress-w29-reserved-with-fp.ll AArch64/ARM64: add another set of tests from AArch64 2014-04-16 11:53:07 +00:00
regress-wzr-allocatable.ll AArch64/ARM64: port more tests 2014-04-24 12:11:46 +00:00
returnaddr.ll AArch64/ARM64: add another set of tests from AArch64 2014-04-16 11:53:07 +00:00
setcc-takes-i32.ll AArch64/ARM64: add another set of tests from AArch64 2014-04-16 11:53:07 +00:00
sext_inreg.ll AArch64/ARM64: port more tests 2014-04-24 12:11:46 +00:00
sibling-call.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
sincos-expansion.ll AArch64/ARM64: add another set of tests from AArch64 2014-04-16 11:53:07 +00:00
sincospow-vector-expansion.ll AArch64/ARM64: add another set of tests from AArch64 2014-04-16 11:53:07 +00:00
stackpointer.ll AArch64/ARM64: put annotation in test 2014-05-07 10:47:00 +00:00
tail-call.ll Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to function definitions for more informative error messages. No functionality change and all updated tests passed locally. 2013-07-14 06:24:09 +00:00
tls-dynamic-together.ll AArch64/ARM64: add another set of tests from AArch64 2014-04-16 11:53:07 +00:00
tls-dynamics.ll AArch64/ARM64: add another set of tests from AArch64 2014-04-16 11:53:07 +00:00
tls-execs.ll AArch64/ARM64: add another set of tests from AArch64 2014-04-16 11:53:07 +00:00
tst-br.ll AArch64/ARM64: add another set of tests from AArch64 2014-04-16 11:53:07 +00:00
unaligned-vector-ld1-st1.ll AArch64: print NEON lists with a space. 2014-04-24 14:06:20 +00:00
variadic.ll AArch64/ARM64: enable various AArch64 tests on ARM64. 2014-04-22 10:10:26 +00:00
zero-reg.ll AArch64/ARM64: add another set of tests from AArch64 2014-04-16 11:53:07 +00:00