llvm-project/llvm/test/MC/AArch64
Cullen Rhodes 3a349d2269 [AArch64][SME] Introduce feature for streaming mode
The Scalable Matrix Extension (SME) introduces a new execution mode
called Streaming SVE mode. In streaming mode a substantial subset of the
SVE and SVE2 instruction set is available, along with new outer product,
load, store, extract and insert instructions that operate on the new
architectural register state for the matrix.

To support streaming mode this patch introduces a new subtarget feature
+streaming-sve. If enabled, the subset of SVE(2) instructions are
available. The existing behaviour for SVE(2) remains unchanged, the
subset of instructions that are legal in streaming mode are enabled if
either +sve[2] or +streaming-sve is specified. Instructions that are
illegal in streaming mode remain predicated on +sve[2].

The SME target feature has been updated to imply +streaming-sve rather
than +sve.

The following changes are made to the SVE(2) tests:
  * For instructions that are legal in streaming mode:
    - added RUN line to verify +streaming-sve enables the instruction.
    - updated diagnostic to 'instruction requires: streaming-sve or sve'.
  * For instructions that are illegal in streaming-mode:
    - added RUN line to verify +streaming-sve does not enable the
      instruction.

SVE(2) instructions that are legal in streaming mode have:

  if !HaveSVE[2]() && !HaveSME() then UNDEFINED;

at the top of the pseudocode in the XML.

The reference can be found here:
https://developer.arm.com/documentation/ddi0602/2021-06/SVE-Instructions

Reviewed By: sdesmalen, david-arm

Differential Revision: https://reviews.llvm.org/D106272
2021-07-30 07:30:45 +00:00
..
SME [AArch64][SME] Introduce feature for streaming mode 2021-07-30 07:30:45 +00:00
SVE [AArch64][SME] Introduce feature for streaming mode 2021-07-30 07:30:45 +00:00
SVE2 [AArch64][SME] Introduce feature for streaming mode 2021-07-30 07:30:45 +00:00
CheckDataSymbol.s [llvm-readobj] Change -t to --symbols in tests. NFC 2019-05-01 09:28:24 +00:00
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 [MC] Delete unnecessary diagnostic: "No relocation available to represent this relative expression" 2019-08-19 07:59:35 +00:00
adr.s [AArch64InstPrinter] Change printADRPLabel to print the target address in hexadecimal form 2020-12-16 09:20:55 -08:00
adrp-annotation.s [test] llvm/test/: change llvm-objdump single-dash long options to double-dash options 2020-03-15 17:46:23 -07:00
adrp-relocation.s [AArch64] Add support for the GNU ILP32 ABI 2021-01-20 13:34:47 +00:00
adrp-relocation2.s MC: AArch64: Add support for pg_hi21_nc relocation specifier. 2019-07-10 16:36:46 +00:00
alias-addsubimm.s [AArch64] Support llvm-mc/llvm-objdump -M no-aliases 2021-05-26 13:35:31 -07:00
alias-logicalimm.s
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 [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
arm64-bitfield-encoding.s
arm64-branch-encoding.s
arm64-compact-unwind-fallback.s [test] llvm/test/: change llvm-objdump single-dash long options to double-dash options 2020-03-15 17:46:23 -07:00
arm64-condbr-without-dots.s
arm64-crypto.s
arm64-diagno-predicate.s
arm64-diags.s
arm64-directive_loh.s [NFC] Fix trivial typos in comments 2020-01-06 10:50:26 +00: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 MC: AArch64: Add support for prel_g* relocation specifiers. 2019-07-18 16:54:33 +00:00
arm64-leaf-compact-unwind.s [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
arm64-logical-encoding.s [AArch64] Allow logical immediates to have all-1 in top bits 2020-04-06 09:56:04 -07:00
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 [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
arm64-spsel-sysreg.s
arm64-system-encoding.s [ARM][AArch64] Adding basic support for the v8.7-A architecture 2020-12-17 13:45:08 +00:00
arm64-target-specific-sysreg.s
arm64-tls-modifiers-darwin.s
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
armv8.1a-pan.s
armv8.1a-rdma.s
armv8.1a-vhe.s
armv8.2a-at.s [NFC][AArch64] Capturing multiple feature requirements in AsmParser messages 2020-12-17 13:44:17 +00:00
armv8.2a-bfc.s [AArch64InstPrinter] prefer bfi to bfc for < armv8.2-a 2019-10-03 20:10:02 +00:00
armv8.2a-crypto-apple.s AArch64: support the Apple NEON syntax for v8.2 crypto instructions. 2019-11-27 10:54:38 +00:00
armv8.2a-crypto-error.s
armv8.2a-crypto.s
armv8.2a-dotprod-errors.s
armv8.2a-dotprod.s [ARM][AArch64] Adding Neoverse N2 CPU support 2020-11-25 11:42:54 +00:00
armv8.2a-persistent-memory.s [NFC][AArch64] Capturing multiple feature requirements in AsmParser messages 2020-12-17 13:44:17 +00:00
armv8.2a-statistical-profiling.s [AArch64] Make Read Write System Registers Read Only 2020-02-10 14:34:24 +00:00
armv8.2a-uao.s
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 [AArch64][ASMParser] Refuse equal source/destination for LDRAA/LDRAB 2020-02-19 14:15:17 +00:00
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 [ARM][AArch64] Adding Neoverse N2 CPU support 2020-11-25 11:42:54 +00:00
armv8.3a-signed-pointer.s [AArch64] Allow PAC mnemonics in the HINT space with PAC disabled 2020-04-24 16:56:51 +01:00
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-pmu.s [AArch64] Adding support for PMMIR_EL1 register 2019-10-18 12:40:29 +00:00
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 [AArch64] Allow BTI mnemonics in the HINT space with BTI disabled 2020-06-09 19:57:02 +02:00
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 [ARM] add ARMv8.6-A Activity monitors virtualization extension 2020-04-05 13:31:06 +01:00
armv8.6a-bf16.s [PATCH] [ARM] ARMv8.6-a command-line + BFloat16 Asm Support 2020-03-26 09:17:20 +00:00
armv8.6a-ecv.s [llvm] Fix yet more missing FileCheck colons 2020-04-13 10:49:19 -06:00
armv8.6a-fgt.s [ARM] Add ARMv8.6 Fine Grain Traps system registers 2020-04-05 14:28:18 +01:00
armv8.6a-simd-matmul-error.s [AArch64] Armv8.6-a Matrix Mult Assembly + Intrinsics 2020-04-24 15:54:06 +01:00
armv8.6a-simd-matmul.s [AArch64] Armv8.6-a Matrix Mult Assembly + Intrinsics 2020-04-24 15:54:06 +01:00
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
armv8a-fpmul-error.s
armv8a-fpmul.s
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 [ARM][AArch64] Adding basic support for the v8.7-A architecture 2020-12-17 13:45:08 +00:00
basic-a64-instructions.s [ARM] Add data gathering hint instruction 2020-04-05 15:21:00 +01:00
basic-pic.s [llvm-objdump] - Print relocation record in a GNU format. 2019-05-07 13:14:18 +00:00
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 [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
coff-basic.ll
coff-debug.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
coff-function-type-info.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
coff-relocations-diags.s [AArch64] [COFF] Properly produce cross-section relative relocations 2021-04-14 12:31:26 +03: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 [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
crc.s
cyclone-movi-bug.s
darwin-reloc-addsubimm.s [test] llvm/test/: change llvm-objdump single-dash long options to double-dash options 2020-03-15 17:46:23 -07:00
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 [AArch64] Add missing "flagm" feature to the .arch_extension directive. 2021-01-20 11:57:39 +00:00
directive-arch_extension.s [AArch64] Support .arch_extension pan 2021-03-24 11:29:22 -07:00
directive-cpu-err.s
directive-cpu.s
directive-variant_pcs-err.s [AArch64][MC] Remove unneeded "in .xxx directive" from diagnostics 2021-05-23 13:58:16 -07:00
directive-variant_pcs.s [AArch64] Implement .variant_pcs directive 2020-10-13 10:06:27 +00:00
directives-case_insensitive.s [AArch64] Make AArch64 specific assembly directives case insensitive 2020-01-17 16:16:18 +00:00
dot-req-case-insensitive.s
dot-req-diagnostics.s
dot-req.s
elf-extern.s [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
elf-globaladdress.ll [test] Add explicit dso_local to definitions in ELF static relocation model tests 2020-12-30 15:47:16 -08:00
elf-objdump.s
elf-reloc-addsubimm.s [test] llvm/test/: change llvm-objdump single-dash long options to double-dash options 2020-03-15 17:46:23 -07:00
elf-reloc-ldrlit.s [AArch64] Add support for the GNU ILP32 ABI 2021-01-20 13:34:47 +00:00
elf-reloc-ldstunsimm.s [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
elf-reloc-movw.s [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
elf-reloc-pcreladdressing.s [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
elf-reloc-plt32.s [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
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 [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
error-location-during-layout.s
error-location-ldr-pseudo.s
error-location-post-layout.s
error-location.s [MC] Delete unnecessary diagnostic: "No relocation available to represent this relative expression" 2019-08-19 07:59:35 +00:00
ete-sysregs.s [AArch64] Predictably disassemble system registers with the same encoding 2020-02-07 12:19:57 +00:00
expr-bad-symbol.s
expr-shr.s
fixup-absolute-signed.s
fixup-absolute.s
fixup-out-of-range.s
fullfp16-diagnostics.s
fullfp16-neon-neg.s
gicv3-regs-diagnostics.s [AArch64] Make Read Write System Registers Read Only 2020-02-10 14:34:24 +00:00
gicv3-regs.s [AArch64] Make Read Write System Registers Read Only 2020-02-10 14:34:24 +00:00
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 [llvm-objdump] --syms: make flags closer to GNU objdump 2020-03-05 09:59:53 -08:00
invalid-instructions-spellcheck.s
ir-to-imgrel.ll
jump-table.s [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
label-arithmetic-darwin.s
label-arithmetic-diags-darwin.s
label-arithmetic-diags-elf.s
label-arithmetic-elf.s [llvm-objdump] -d: print `00000000 <foo>:` instead of `00000000 foo:` 2020-03-05 18:05:28 -08:00
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 AArch64: diagnose out of range relocation addends on MachO. 2020-07-27 13:01:22 +01:00
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 llvm-nm: Implement --special-syms. 2020-06-22 13:05:47 -07:00
mov-expr-as-immediate.s Fix race condition in llvm/test/MC/AArch64/mov-expr* tests 2020-06-09 13:25:09 +01:00
mov-expression-as-immediate.s Fix race condition in llvm/test/MC/AArch64/mov-expr* tests 2020-06-09 13:25:09 +01:00
mov-unsupported-expr-as-immediate.s [AArch64] Support expression results as immediate values in mov 2020-06-08 17:57:20 -07:00
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 [test] llvm/test/: change llvm-objdump single-dash long options to double-dash options 2020-03-15 17:46:23 -07:00
ras-extension.s
reloc-directive-err.s [MC][AArch64] Make .reloc support arbitrary relocation types 2020-03-27 12:30:52 -07:00
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] Canonicalize ARM64 unwind opcodes 2020-09-11 10:31:04 +03:00
seh-packed-epilog.s [MC] [Win64EH] Write packed ARM64 epilogues if possible 2020-09-11 10:31:04 +03:00
seh-packed-unwind.s [MC] [Win64EH] Try to generate packed unwind info where possible 2020-09-23 09:03:01 +03:00
seh.s [MC] [Win64EH] Write packed ARM64 epilogues if possible 2020-09-11 10:31:04 +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 [llvm] Fix missing FileCheck directive colons 2020-04-06 09:59:08 -06:00
tme.s [AArch64] Add support for Transactional Memory Extension (TME) 2019-07-31 12:52:17 +00:00
trace-regs-diagnostics.s
trace-regs.s [AArch64] Predictably disassemble system registers with the same encoding 2020-02-07 12:19:57 +00:00
trbe-sysreg-diag.s [AArch64] Define ETE and TRBE system registers 2019-07-26 09:19:08 +00:00
trbe-sysreg.s [AArch64] Define ETE and TRBE system registers 2019-07-26 09:19:08 +00:00
udf.s
udf_not.s