llvm-project/llvm/test/MC/AArch64
Fangrui Song 45f3a5aae7 [AArch64] Add target feature "all"
This is used by disassemblers: `llvm-mc -disassemble -mattr=` and `llvm-objdump --mattr=`.
The main use case is for llvm-objdump to disassemble all known instructions
(D128030).

In user-facing tools, "all" is intentionally not supported in producers:
integrated assembler (`.arch_extension all`), clang -march (`-march=armv9.3a+all`).
Due to the code structure, `llvm-mc -mattr=+all` `llc -mattr=+all` are not
rejected (they are internal tool). Add `llvm/test/CodeGen/AArch64/mattr-all.ll`
to catch behavior changes.

AArch64SysReg::SysReg::haveFeatures: check `FeatureAll` to print
`AArch64SysReg::SysReg::AltName` for some system registers (e.g. `ERRIDR_EL1, RNDR`).

AArch64.td: add `AssemblerPredicateWithAll` to additionally test `FeatureAll`.
Change all `AssemblerPredicate` (except `UseNegativeImmediates`) to `AssemblerPredicateWithAll`.

utils/TableGen/{DecoderEmitter,SubtargetFeatureInfo}.cpp: support arbitrarily
nested all_of, any_of, and not.

Note: A predicate supports all_of, any_of, and not. For a target (though
currently not for AArch64) an encoding may be disassembled differently with
different target features.
Note: AArch64MCCodeEmitter::computeAvailableFeatures is not available to
the disassembler.

Reviewed By: peter.smith, lenary

Differential Revision: https://reviews.llvm.org/D128029
2022-06-30 10:37:58 -07:00
..
SME [AArch64][test] Add --mattr=-{sve,sve2,sme} to SVE/SVE2/SME MC tests 2022-06-16 22:41:39 -07:00
SVE [AArch64][test] Add --mattr=-{sve,sve2,sme} to SVE/SVE2/SME MC tests 2022-06-16 22:41:39 -07:00
SVE2 [AArch64][test] Add --mattr=-{sve,sve2,sme} to SVE/SVE2/SME MC tests 2022-06-16 22:41:39 -07:00
CheckDataSymbol.s
ELF_ARM64_large-relocations.s Fix unwind info relocation with large code model on AArch64 2020-11-06 14:41:30 -05:00
adr-diagnostics.s
adr.s [AArch64InstPrinter] Change printADRPLabel to print the target address in hexadecimal form 2020-12-16 09:20:55 -08:00
adrp-annotation.s
adrp-relocation.s [AArch64] Add support for the GNU ILP32 ABI 2021-01-20 13:34:47 +00:00
adrp-relocation2.s
alias-addsubimm.s [AArch64] Add target feature "all" 2022-06-30 10:37:58 -07:00
alias-logicalimm.s
align.s [AArch64] Fix the generation of BE Nops 2022-05-20 09:31:00 +01:00
arm32-elf-relocs.s [AArch64] Add support for the GNU ILP32 ABI 2021-01-20 13:34:47 +00:00
arm64-adr.s
arm64-advsimd.s
arm64-aliases.s
arm64-arithmetic-encoding.s
arm64-arm64-fixup.s
arm64-basic-a64-instructions.s
arm64-be-datalayout.s
arm64-bitfield-encoding.s
arm64-branch-encoding.s [MC][AArch64] Enable '+v8a' when nothing specified for MCSubtargetInfo 2022-04-29 04:53:22 +08:00
arm64-compact-unwind-fallback.s AArch64: fall back to DWARF instead of crashing on weird .cfi directives 2022-05-18 11:42:42 +01:00
arm64-condbr-without-dots.s
arm64-crypto.s
arm64-diagno-predicate.s
arm64-diags.s
arm64-directive_loh.s [AArch64][MC] Change "unexpected tokens in .xxx directive " to "expected newline" 2022-06-05 14:32:31 -07:00
arm64-elf-reloc-condbr.s [AArch64] Add support for the GNU ILP32 ABI 2021-01-20 13:34:47 +00:00
arm64-elf-relocs.s MC: AArch64: Add support for gotpage_lo15 2021-01-21 08:29:49 -03:00
arm64-fp-encoding-error.s
arm64-fp-encoding.s
arm64-ilp32.s [AArch64] Add support for the GNU ILP32 ABI 2021-01-20 13:34:47 +00:00
arm64-large-relocs.s
arm64-leaf-compact-unwind.s
arm64-logical-encoding.s
arm64-memory.s
arm64-no-section.ll
arm64-nv-cond.s
arm64-optional-hash.s
arm64-separator.s
arm64-simd-ldst.s
arm64-small-data-fixups.s
arm64-spsel-sysreg.s
arm64-system-encoding.s [MC][AArch64] Enable '+v8a' when nothing specified for MCSubtargetInfo 2022-04-29 04:53:22 +08:00
arm64-target-specific-sysreg.s
arm64-tls-modifiers-darwin.s [aarch64/mac] Correctly disassemble @TLVPPAGE(OFF) relocs 2021-11-10 10:41:18 -05:00
arm64-v128_lo-diagnostics.s
arm64-variable-exprs.s
arm64-vector-lists.s
arm64-verbose-vector-case.s
arm64_32-compact-unwind.s [objdump][macho] Emit segment names along with section names 2020-09-04 09:57:02 -07:00
arm64e-subtype.s [Triple][MachO] Define "arm64e", an AArch64 subarch for Pointer Auth. 2020-12-03 07:53:59 -08:00
arm64e.s [Triple][MachO] Define "arm64e", an AArch64 subarch for Pointer Auth. 2020-12-03 07:53:59 -08:00
arm64v8.1-diagno-predicate.s
armv8.1a-atomic.s
armv8.1a-lor.s
armv8.1a-lse.s [AArch64] Add support for the 'R' architecture profile. 2021-10-27 12:32:30 +01:00
armv8.1a-pan.s [AArch64] Add support for the 'R' architecture profile. 2021-10-27 12:32:30 +01:00
armv8.1a-rdma.s [AArch64] Add support for the 'R' architecture profile. 2021-10-27 12:32:30 +01:00
armv8.1a-vhe.s
armv8.2a-at.s [AArch64] Add support for the 'R' architecture profile. 2021-10-27 12:32:30 +01:00
armv8.2a-bfc.s
armv8.2a-crypto-apple.s
armv8.2a-crypto-error.s
armv8.2a-crypto.s [AArch64] Exclude optional features from HasV8_0rOps. 2022-01-25 10:54:59 +00:00
armv8.2a-dotprod-errors.s [AArch64] Add support for the 'R' architecture profile. 2021-10-27 12:32:30 +01:00
armv8.2a-dotprod.s [AArch64] Support for Ampere1 core 2022-05-03 15:54:02 +01:00
armv8.2a-persistent-memory.s [AArch64] Add support for the 'R' architecture profile. 2021-10-27 12:32:30 +01:00
armv8.2a-statistical-profiling.s
armv8.2a-uao.s [AArch64] Add support for the 'R' architecture profile. 2021-10-27 12:32:30 +01:00
armv8.3a-ID_ISAR6_EL1.s
armv8.3a-complex.s
armv8.3a-complex_bad.s
armv8.3a-complex_missing.s
armv8.3a-complex_nofp16.s
armv8.3a-complex_nofp16_bad.s
armv8.3a-diagnostics.s
armv8.3a-js.s
armv8.3a-pauth.s [AArch64] Add missing "pauth" feature to the .arch_extension directive. 2021-01-20 11:57:39 +00:00
armv8.3a-rcpc.s [AArch64] Support for Ampere1 core 2022-05-03 15:54:02 +01:00
armv8.3a-signed-pointer.s
armv8.4a-actmon.s
armv8.4a-dit.s
armv8.4a-flag-error.s
armv8.4a-flag.s [AArch64] Add +flagm archictecture option, allowing the v8.4a flag modification extension. 2021-01-08 13:21:12 +00:00
armv8.4a-flagm.s [AArch64] Add missing "flagm" feature to the .arch_extension directive. 2021-01-20 11:57:39 +00:00
armv8.4a-ldst-error.s
armv8.4a-ldst.s
armv8.4a-mpam.s
armv8.4a-ras.s [AArch64] Enable RAS 1.1 system registers in all AArch64 2020-11-10 12:13:33 +00:00
armv8.4a-tlb.s [NFC][AArch64] Capturing multiple feature requirements in AsmParser messages 2020-12-17 13:44:17 +00:00
armv8.4a-trace-error.s
armv8.4a-trace.s [AArch64][MC] Remove unused prefix in v8.4-a trace test 2020-11-06 11:17:18 +00:00
armv8.4a-virt.s
armv8.4a-vncr.s
armv8.5a-altnzcv.s
armv8.5a-bti-error.s
armv8.5a-bti.s
armv8.5a-frint-error.s
armv8.5a-frint.s
armv8.5a-mte-error.s
armv8.5a-mte.s [NFC][AArch64] Capturing multiple feature requirements in AsmParser messages 2020-12-17 13:44:17 +00:00
armv8.5a-persistent-memory.s [NFC][AArch64] Capturing multiple feature requirements in AsmParser messages 2020-12-17 13:44:17 +00:00
armv8.5a-predres-error.s
armv8.5a-predres.s [NFC][AArch64] Capturing multiple feature requirements in AsmParser messages 2020-12-17 13:44:17 +00:00
armv8.5a-rand-error.s
armv8.5a-rand.s
armv8.5a-sb.s
armv8.5a-specrestrict.s
armv8.5a-ssbs-error.s
armv8.5a-ssbs.s [ARM][AArch64] Adding Neoverse N2 CPU support 2020-11-25 11:42:54 +00:00
armv8.5a-xaflag-error.s
armv8.6a-amvs.s
armv8.6a-bf16.s [AArch64] Add target feature "all" 2022-06-30 10:37:58 -07:00
armv8.6a-ecv.s
armv8.6a-fgt.s
armv8.6a-simd-matmul-error.s
armv8.6a-simd-matmul.s
armv8.7a-hcx.s [ARM][AArch64] Adding basic support for the v8.7-A architecture 2020-12-17 13:45:08 +00:00
armv8.7a-ls64.s [NFC] Disallow unused prefixes under MC/AArch64 2021-01-14 09:46:13 -08:00
armv8.7a-wfxt.s [ARM][AArch64] Adding basic support for the v8.7-A architecture 2020-12-17 13:45:08 +00:00
armv8.7a-xs.s [NFC] Disallow unused prefixes under MC/AArch64 2021-01-14 09:46:13 -08:00
armv8.8a-hbc.s [AArch64] Adding "armv8.8-a" BC instruction. 2022-01-03 12:33:51 +00:00
armv8.8a-mops.s [AArch64] Adding "armv8.8-a" memcpy/memset support. 2022-01-05 14:44:24 +00:00
armv8a-fpmul-error.s
armv8a-fpmul.s
armv8r-inst.s [AArch64] Add support for the 'R' architecture profile. 2021-10-27 12:32:30 +01:00
armv8r-sysreg.s [AArch64] Remove PRBAR0_ELn and PRLAR0_ELn sysregs. 2022-01-20 13:37:58 +00:00
armv8r-unsupported-inst.s [AArch64] Add support for the 'R' architecture profile. 2021-10-27 12:32:30 +01:00
armv8r-unsupported-sysreg.s [AArch64] Add support for the 'R' architecture profile. 2021-10-27 12:32:30 +01:00
armv9a-rme.s [Aarch64] Adding support for Armv9-A Realm Management Extension 2021-06-28 13:45:22 +01:00
atomic-acquire-comment.s
basic-a64-diagnostics.s [AArch64] Make PMMIR_EL1 read-only. 2022-04-05 11:09:56 +01:00
basic-a64-instructions.s [MC][AArch64] Enable '+v8a' when nothing specified for MCSubtargetInfo 2022-04-29 04:53:22 +08:00
basic-pic.s
brbe.s [AArch64] Add BRB IALL and BRB INJ instructions 2021-01-06 12:10:22 +00:00
case-insen-reg-names.s
cfi.s [MC] Parse end-of-line for .cfi_* directives 2021-03-06 16:20:55 -08:00
coff-align.s
coff-basic.ll
coff-debug.ll [clang-cl] Support the /HOTPATCH flag 2022-01-20 12:57:19 -05:00
coff-function-type-info.ll
coff-relocations-diags.s [AArch64] [COFF] Properly produce cross-section relative relocations 2021-04-14 12:31:26 +03:00
coff-relocations-offset.s [COFF] [ARM64] Create symbols with regular intervals for relocations against temporary symbols 2021-11-23 10:12:41 +02:00
coff-relocations.s [AArch64][X86] Allow 64-bit label differences lower to IMAGE_REL_*_REL32 2021-06-21 14:32:25 -07:00
coff-separator.s [AArch64] Use '//' as comment string for MSVC assembly 2021-02-08 22:30:14 +02:00
cold.s
crc.s
cyclone-movi-bug.s
darwin-reloc-addsubimm.s
directive-arch-negative.s
directive-arch.s [AArch64] Parse "rng" feature flag in .arch directive 2021-03-16 14:10:19 -07:00
directive-arch_extension-negative.s [llvm][AArch64] Accept armv8.8 "hbc" and "mops" in .arch_extension directive 2022-01-20 09:16:08 +00:00
directive-arch_extension.s [llvm][AArch64] Accept armv8.8 "hbc" and "mops" in .arch_extension directive 2022-01-20 09:16:08 +00:00
directive-cpu-err.s
directive-cpu.s
directive-variant_pcs-err.s [AArch64] Allow .variant_pcs before the symbol is registered 2022-03-28 17:52:27 -07:00
directive-variant_pcs.s [AArch64] Allow .variant_pcs before the symbol is registered 2022-03-28 17:52:27 -07:00
directives-case_insensitive.s
dot-req-case-insensitive.s
dot-req-diagnostics.s [AArch64][MC] Change "unexpected tokens in .xxx directive " to "expected newline" 2022-06-05 14:32:31 -07:00
dot-req.s
elf-extern.s
elf-globaladdress.ll [AArch64] Make -mcpu=generic schedule for an in-order core 2021-10-09 15:58:31 +01:00
elf-objdump.s
elf-reloc-addsubimm.s
elf-reloc-ldrlit.s [AArch64] Add support for the GNU ILP32 ABI 2021-01-20 13:34:47 +00:00
elf-reloc-ldstunsimm.s
elf-reloc-movw.s
elf-reloc-pcreladdressing.s
elf-reloc-plt32.s
elf-reloc-tstb.s [AArch64] Add support for the GNU ILP32 ABI 2021-01-20 13:34:47 +00:00
elf-reloc-uncondbrimm.s [AArch64] Add support for the GNU ILP32 ABI 2021-01-20 13:34:47 +00:00
elf_osabi_flags.s
error-location-during-layout.s
error-location-ldr-pseudo.s
error-location-post-layout.s
error-location.s
ete-sysregs.s
expr-bad-symbol.s
expr-shr.s
fixup-absolute-signed.s
fixup-absolute.s
fixup-out-of-range.s [AArch64] Diagnose large adrp offset on Windows. 2021-11-02 15:11:22 -07:00
fullfp16-diagnostics.s
fullfp16-neon-neg.s
gicv3-regs-diagnostics.s
gicv3-regs.s
ilp32-diagnostics.s [AArch64] Add support for the GNU ILP32 ABI 2021-01-20 13:34:47 +00:00
inline-asm-modifiers.s
inst-directive-diagnostic.s
inst-directive-other.s
inst-directive.s
invalid-instructions-spellcheck.s
ir-to-imgrel.ll
jump-table.s
label-arithmetic-darwin.s
label-arithmetic-diags-darwin.s
label-arithmetic-diags-elf.s
label-arithmetic-elf.s
ldr-pseudo-diagnostics.s
ldr-pseudo-obj-errors.s
ldr-pseudo.s
lit.local.cfg [NFC] Disallow unused prefixes under llvm/test 2021-01-21 20:31:52 -08:00
macho-addend-range.s
macho-adrp-missing-reloc.s
macho-adrp-page.s
macro-hex-int.s
mapping-across-sections.s ELFObjectWriter: Don't sort local symbols 2021-02-07 15:47:10 -08:00
mapping-within-section.s
mov-expr-as-immediate.s
mov-expression-as-immediate.s
mov-unsupported-expr-as-immediate.s
neon-2velem.s
neon-3vdiff.s
neon-aba-abd.s
neon-across.s
neon-add-pairwise.s
neon-add-sub-instructions.s
neon-bitwise-instructions.s
neon-compare-instructions.s
neon-crypto.s
neon-diagnostics.s [AArch64][SME] Add load and store instructions 2021-07-16 10:11:10 +00:00
neon-extract.s
neon-facge-facgt.s
neon-frsqrt-frecp.s
neon-halving-add-sub.s
neon-max-min-pairwise.s
neon-max-min.s
neon-mla-mls-instructions.s
neon-mov.s
neon-mul-div-instructions.s
neon-perm.s
neon-rounding-halving-add.s
neon-rounding-shift.s
neon-saturating-add-sub.s
neon-saturating-rounding-shift.s
neon-saturating-shift.s
neon-scalar-abs.s
neon-scalar-add-sub.s
neon-scalar-by-elem-mla.s
neon-scalar-by-elem-mul.s
neon-scalar-by-elem-saturating-mla.s
neon-scalar-by-elem-saturating-mul.s
neon-scalar-compare.s
neon-scalar-cvt.s
neon-scalar-dup.s
neon-scalar-extract-narrow.s
neon-scalar-fp-compare.s
neon-scalar-mul.s
neon-scalar-neg.s
neon-scalar-recip.s
neon-scalar-reduce-pairwise.s
neon-scalar-rounding-shift.s
neon-scalar-saturating-add-sub.s
neon-scalar-saturating-rounding-shift.s
neon-scalar-saturating-shift.s
neon-scalar-shift-imm.s
neon-scalar-shift.s
neon-shift-left-long.s
neon-shift.s
neon-simd-copy.s
neon-simd-ldst-multi-elem.s
neon-simd-ldst-one-elem.s
neon-simd-misc.s
neon-simd-post-ldst-multi-elem.s
neon-simd-shift.s
neon-sxtl.s
neon-tbl.s
neon-uxtl.s
nofp-crypto-diagnostic.s
noneon-diagnostics.s
optional-hash.s
ras-extension.s [AArch64] Add support for the 'R' architecture profile. 2021-10-27 12:32:30 +01:00
reloc-directive-err.s
reloc-directive.s [MC][AArch64] Support .reloc *, BFD_RELOC_{NONE,16,32,64}, * 2021-03-05 21:31:08 -08:00
seh-optimize.s [MC] [Win64EH] Try writing an ARM64 "packed epilog" even if the epilog doesn't share opcodes with the prolog 2022-05-17 00:41:39 +03:00
seh-packed-epilog.s [MC] [Win64EH] Try writing an ARM64 "packed epilog" even if the epilog doesn't share opcodes with the prolog 2022-05-17 00:41:39 +03:00
seh-packed-unwind.s [MC] [Win64EH] Don't produce packed ARM64 unwind info with homed parameters 2022-05-18 20:34:59 +03:00
seh.s [Win64EH] Write .pdata symbol relocations relative to the temporary begin symbol 2021-09-14 11:05:37 +03:00
shift_extend_op_w_symbol.s [AArch64][AsmParser] NFC: Parser.getTok().getLoc() -> getLoc() 2021-07-26 09:36:34 +00:00
single-slash.s
size-directive.s ELFObjectWriter: Don't sort non-local symbols 2021-02-13 10:32:27 -08:00
spe.s [AArch64] Add support for the SPE-EEF feature 2020-12-18 11:11:56 +00:00
speculation-barriers.s
tls-add-shift.s
tls-relocs.s [AArch64] Replace fixup_aarch64_tlsdesc_call with FirstLiteralRelocationKind + R_AARCH64_{,P32_}TLSDESC_CALL 2021-05-05 17:41:56 -07:00
tme-error.s
tme.s
trace-regs-diagnostics.s
trace-regs.s
trbe-sysreg-diag.s
trbe-sysreg.s
udf.s
udf_not.s