From 651f763f955393cdbc51ff65de35f0de4dd07ec0 Mon Sep 17 00:00:00 2001 From: Jonathan Thackray Date: Fri, 27 Jun 2025 20:16:06 +0100 Subject: [PATCH 1/2] [AArch64][llvm] Unify AArch64 tests into a single file (4/4) (NFC) This is a series of patches (4/4) to unify assembly/disassembly of recent AArch64 tests into a single file. The aim is to improve consistency, so that all instructions and system registers are thoroughly tested, and future test cases will be in a unified format. This patch: * removes .txt tests whose .s tests have functions * makes the .s tests have a roundabout run line to test both encoding and assembly Co-authored-by: Virginia Cangelosi --- llvm/test/MC/AArch64/armv9.6a-lsui.s | 1073 +++++++++++------ llvm/test/MC/AArch64/armv9.6a-occmo.s | 54 +- llvm/test/MC/AArch64/armv9.6a-pcdphint.s | 37 +- llvm/test/MC/AArch64/armv9.6a-rme-gpc3.s | 46 +- .../MC/Disassembler/AArch64/armv9.6a-lsui.txt | 323 ----- .../Disassembler/AArch64/armv9.6a-occmo.txt | 11 - .../AArch64/armv9.6a-pcdphint.txt | 8 - .../AArch64/armv9.6a-rme-gpc3.txt | 18 - 8 files changed, 805 insertions(+), 765 deletions(-) delete mode 100644 llvm/test/MC/Disassembler/AArch64/armv9.6a-lsui.txt delete mode 100644 llvm/test/MC/Disassembler/AArch64/armv9.6a-occmo.txt delete mode 100644 llvm/test/MC/Disassembler/AArch64/armv9.6a-pcdphint.txt delete mode 100644 llvm/test/MC/Disassembler/AArch64/armv9.6a-rme-gpc3.txt diff --git a/llvm/test/MC/AArch64/armv9.6a-lsui.s b/llvm/test/MC/AArch64/armv9.6a-lsui.s index d4a5e1f980560..264a869b6d286 100644 --- a/llvm/test/MC/AArch64/armv9.6a-lsui.s +++ b/llvm/test/MC/AArch64/armv9.6a-lsui.s @@ -1,408 +1,751 @@ -// RUN: llvm-mc -triple aarch64 -mattr=+lsui -show-encoding %s | FileCheck %s -// RUN: not llvm-mc -triple aarch64 -show-encoding %s 2>&1 | FileCheck %s --check-prefix=ERROR +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+lsui < %s \ +// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST +// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \ +// RUN: | FileCheck %s --check-prefixes=CHECK-ERROR +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+lsui < %s \ +// RUN: | llvm-objdump -d --mattr=+lsui --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+lsui < %s \ +// RUN: | llvm-objdump -d --mattr=-lsui --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// Disassemble encoding and check the re-encoding (-show-encoding) matches. +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+lsui < %s \ +// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+lsui -disassemble -show-encoding \ +// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST + + -_func: -// CHECK: _func: //------------------------------------------------------------------------------ // Unprivileged load/store operations //------------------------------------------------------------------------------ - ldtxr x9, [sp] -// CHECK: ldtxr x9, [sp] // encoding: [0xe9,0x7f,0x5f,0xc9] -// ERROR: error: instruction requires: lsui - ldtxr x9, [sp, #0] -// CHECK: ldtxr x9, [sp] // encoding: [0xe9,0x7f,0x5f,0xc9] -// ERROR: error: instruction requires: lsui - ldtxr x10, [x11] -// CHECK: ldtxr x10, [x11] // encoding: [0x6a,0x7d,0x5f,0xc9] -// ERROR: error: instruction requires: lsui - ldtxr x10, [x11, #0] -// CHECK: ldtxr x10, [x11] // encoding: [0x6a,0x7d,0x5f,0xc9] -// ERROR: error: instruction requires: lsui - - ldatxr x9, [sp] -// CHECK: ldatxr x9, [sp] // encoding: [0xe9,0xff,0x5f,0xc9] -// ERROR: error: instruction requires: lsui - ldatxr x10, [x11] -// CHECK: ldatxr x10, [x11] // encoding: [0x6a,0xfd,0x5f,0xc9] -// ERROR: error: instruction requires: lsui - - sttxr wzr, w4, [sp] -// CHECK: sttxr wzr, w4, [sp] // encoding: [0xe4,0x7f,0x1f,0x89] -// ERROR: error: instruction requires: lsui - sttxr wzr, w4, [sp, #0] -// CHECK: sttxr wzr, w4, [sp] // encoding: [0xe4,0x7f,0x1f,0x89] -// ERROR: error: instruction requires: lsui - sttxr w5, x6, [x7] -// CHECK: sttxr w5, x6, [x7] // encoding: [0xe6,0x7c,0x05,0xc9] -// ERROR: error: instruction requires: lsui - sttxr w5, x6, [x7, #0] -// CHECK: sttxr w5, x6, [x7] // encoding: [0xe6,0x7c,0x05,0xc9] -// ERROR: error: instruction requires: lsui - - stltxr w2, w4, [sp] -// CHECK: stltxr w2, w4, [sp] // encoding: [0xe4,0xff,0x02,0x89] -// ERROR: error: instruction requires: lsui - stltxr w5, x6, [x7] -// CHECK: stltxr w5, x6, [x7] // encoding: [0xe6,0xfc,0x05,0xc9] -// ERROR: error: instruction requires: lsui +ldtxr x9, [sp] +// CHECK-INST: ldtxr x9, [sp] +// CHECK-ENCODING: encoding: [0xe9,0x7f,0x5f,0xc9] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: c95f7fe9 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtxr x9, [sp, #0] +// CHECK-INST: ldtxr x9, [sp] +// CHECK-ENCODING: encoding: [0xe9,0x7f,0x5f,0xc9] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: c95f7fe9 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtxr x10, [x11] +// CHECK-INST: ldtxr x10, [x11] +// CHECK-ENCODING: encoding: [0x6a,0x7d,0x5f,0xc9] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: c95f7d6a +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtxr x10, [x11, #0] +// CHECK-INST: ldtxr x10, [x11] +// CHECK-ENCODING: encoding: [0x6a,0x7d,0x5f,0xc9] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: c95f7d6a +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +ldatxr x9, [sp] +// CHECK-INST: ldatxr x9, [sp] +// CHECK-ENCODING: encoding: [0xe9,0xff,0x5f,0xc9] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: c95fffe9 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldatxr x10, [x11] +// CHECK-INST: ldatxr x10, [x11] +// CHECK-ENCODING: encoding: [0x6a,0xfd,0x5f,0xc9] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: c95ffd6a +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +sttxr wzr, w4, [sp] +// CHECK-INST: sttxr wzr, w4, [sp] +// CHECK-ENCODING: encoding: [0xe4,0x7f,0x1f,0x89] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 891f7fe4 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttxr wzr, w4, [sp, #0] +// CHECK-INST: sttxr wzr, w4, [sp] +// CHECK-ENCODING: encoding: [0xe4,0x7f,0x1f,0x89] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 891f7fe4 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttxr w5, x6, [x7] +// CHECK-INST: sttxr w5, x6, [x7] +// CHECK-ENCODING: encoding: [0xe6,0x7c,0x05,0xc9] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: c9057ce6 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttxr w5, x6, [x7, #0] +// CHECK-INST: sttxr w5, x6, [x7] +// CHECK-ENCODING: encoding: [0xe6,0x7c,0x05,0xc9] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: c9057ce6 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +stltxr w2, w4, [sp] +// CHECK-INST: stltxr w2, w4, [sp] +// CHECK-ENCODING: encoding: [0xe4,0xff,0x02,0x89] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 8902ffe4 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +stltxr w5, x6, [x7] +// CHECK-INST: stltxr w5, x6, [x7] +// CHECK-ENCODING: encoding: [0xe6,0xfc,0x05,0xc9] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: c905fce6 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui //------------------------------------------------------------------------------ // Unprivileged load/store register pair (offset) //------------------------------------------------------------------------------ - ldtp x21, x29, [x2, #504] -// CHECK: ldtp x21, x29, [x2, #504] // encoding: [0x55,0xf4,0x5f,0xe9] -// ERROR: instruction requires: lsui - ldtp x22, x23, [x3, #-512] -// CHECK: ldtp x22, x23, [x3, #-512] // encoding: [0x76,0x5c,0x60,0xe9] -// ERROR: instruction requires: lsui - ldtp x24, x25, [x4, #8] -// CHECK: ldtp x24, x25, [x4, #8] // encoding: [0x98,0xe4,0x40,0xe9] -// ERROR: instruction requires: lsui - - sttp x3, x5, [sp], #16 -// CHECK: sttp x3, x5, [sp], #16 // encoding: [0xe3,0x17,0x81,0xe8] -// ERROR: instruction requires: lsui - sttp x3, x5, [sp, #8]! -// CHECK: sttp x3, x5, [sp, #8]! // encoding: [0xe3,0x97,0x80,0xe9] -// ERROR: instruction requires: lsui - - sttp q3, q5, [sp] -// CHECK: sttp q3, q5, [sp] // encoding: [0xe3,0x17,0x00,0xed] -// ERROR: instruction requires: lsui - sttp q17, q19, [sp, #1008] -// CHECK: sttp q17, q19, [sp, #1008] // encoding: [0xf1,0xcf,0x1f,0xed] -// ERROR: instruction requires: lsui +ldtp x21, x29, [x2, #504] +// CHECK-INST: ldtp x21, x29, [x2, #504] +// CHECK-ENCODING: encoding: [0x55,0xf4,0x5f,0xe9] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: e95ff455 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtp x22, x23, [x3, #-512] +// CHECK-INST: ldtp x22, x23, [x3, #-512] +// CHECK-ENCODING: encoding: [0x76,0x5c,0x60,0xe9] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: e9605c76 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtp x24, x25, [x4, #8] +// CHECK-INST: ldtp x24, x25, [x4, #8] +// CHECK-ENCODING: encoding: [0x98,0xe4,0x40,0xe9] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: e940e498 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +sttp x3, x5, [sp], #16 +// CHECK-INST: sttp x3, x5, [sp], #16 +// CHECK-ENCODING: encoding: [0xe3,0x17,0x81,0xe8] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: e88117e3 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttp x3, x5, [sp, #8]! +// CHECK-INST: sttp x3, x5, [sp, #8]! +// CHECK-ENCODING: encoding: [0xe3,0x97,0x80,0xe9] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: e98097e3 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +sttp q3, q5, [sp] +// CHECK-INST: sttp q3, q5, [sp] +// CHECK-ENCODING: encoding: [0xe3,0x17,0x00,0xed] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: ed0017e3 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttp q17, q19, [sp, #1008] +// CHECK-INST: sttp q17, q19, [sp, #1008] +// CHECK-ENCODING: encoding: [0xf1,0xcf,0x1f,0xed] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: ed1fcff1 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui //------------------------------------------------------------------------------ // Load/store register pair (post-indexed) //------------------------------------------------------------------------------ - ldtp x21, x29, [x2], #504 -// CHECK: ldtp x21, x29, [x2], #504 // encoding: [0x55,0xf4,0xdf,0xe8] -// ERROR: instruction requires: lsui - ldtp x22, x23, [x3], #-512 -// CHECK: ldtp x22, x23, [x3], #-512 // encoding: [0x76,0x5c,0xe0,0xe8] -// ERROR: instruction requires: lsui - ldtp x24, x25, [x4], #8 -// CHECK: ldtp x24, x25, [x4], #8 // encoding: [0x98,0xe4,0xc0,0xe8] -// ERROR: instruction requires: lsui - - sttp q3, q5, [sp], #0 -// CHECK: sttp q3, q5, [sp], #0 // encoding: [0xe3,0x17,0x80,0xec] -// ERROR: instruction requires: lsui - sttp q17, q19, [sp], #1008 -// CHECK: sttp q17, q19, [sp], #1008 // encoding: [0xf1,0xcf,0x9f,0xec] -// ERROR: instruction requires: lsui - ldtp q23, q29, [x1], #-1024 -// CHECK: ldtp q23, q29, [x1], #-1024 // encoding: [0x37,0x74,0xe0,0xec] -// ERROR: instruction requires: lsui +ldtp x21, x29, [x2], #504 +// CHECK-INST: ldtp x21, x29, [x2], #504 +// CHECK-ENCODING: encoding: [0x55,0xf4,0xdf,0xe8] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: e8dff455 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtp x22, x23, [x3], #-512 +// CHECK-INST: ldtp x22, x23, [x3], #-512 +// CHECK-ENCODING: encoding: [0x76,0x5c,0xe0,0xe8] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: e8e05c76 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtp x24, x25, [x4], #8 +// CHECK-INST: ldtp x24, x25, [x4], #8 +// CHECK-ENCODING: encoding: [0x98,0xe4,0xc0,0xe8] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: e8c0e498 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +sttp q3, q5, [sp], #0 +// CHECK-INST: sttp q3, q5, [sp], #0 +// CHECK-ENCODING: encoding: [0xe3,0x17,0x80,0xec] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: ec8017e3 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttp q17, q19, [sp], #1008 +// CHECK-INST: sttp q17, q19, [sp], #1008 +// CHECK-ENCODING: encoding: [0xf1,0xcf,0x9f,0xec] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: ec9fcff1 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtp q23, q29, [x1], #-1024 +// CHECK-INST: ldtp q23, q29, [x1], #-1024 +// CHECK-ENCODING: encoding: [0x37,0x74,0xe0,0xec] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: ece07437 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui //------------------------------------------------------------------------------ // Load/store register pair (pre-indexed) //------------------------------------------------------------------------------ - ldtp x21, x29, [x2, #504]! -// CHECK: ldtp x21, x29, [x2, #504]! // encoding: [0x55,0xf4,0xdf,0xe9] -// ERROR: instruction requires: lsui - ldtp x22, x23, [x3, #-512]! -// CHECK: ldtp x22, x23, [x3, #-512]! // encoding: [0x76,0x5c,0xe0,0xe9] -// ERROR: instruction requires: lsui - ldtp x24, x25, [x4, #8]! -// CHECK: ldtp x24, x25, [x4, #8]! // encoding: [0x98,0xe4,0xc0,0xe9] -// ERROR: instruction requires: lsui - - sttp q3, q5, [sp, #0]! -// CHECK: sttp q3, q5, [sp, #0]! // encoding: [0xe3,0x17,0x80,0xed] -// ERROR: instruction requires: lsui - sttp q17, q19, [sp, #1008]! -// CHECK: sttp q17, q19, [sp, #1008]! // encoding: [0xf1,0xcf,0x9f,0xed] -// ERROR: instruction requires: lsui - ldtp q23, q29, [x1, #-1024]! -// CHECK: ldtp q23, q29, [x1, #-1024]! // encoding: [0x37,0x74,0xe0,0xed] -// ERROR: instruction requires: lsui +ldtp x21, x29, [x2, #504]! +// CHECK-INST: ldtp x21, x29, [x2, #504]! +// CHECK-ENCODING: encoding: [0x55,0xf4,0xdf,0xe9] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: e9dff455 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtp x22, x23, [x3, #-512]! +// CHECK-INST: ldtp x22, x23, [x3, #-512]! +// CHECK-ENCODING: encoding: [0x76,0x5c,0xe0,0xe9] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: e9e05c76 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtp x24, x25, [x4, #8]! +// CHECK-INST: ldtp x24, x25, [x4, #8]! +// CHECK-ENCODING: encoding: [0x98,0xe4,0xc0,0xe9] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: e9c0e498 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +sttp q3, q5, [sp, #0]! +// CHECK-INST: sttp q3, q5, [sp, #0]! +// CHECK-ENCODING: encoding: [0xe3,0x17,0x80,0xed] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: ed8017e3 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttp q17, q19, [sp, #1008]! +// CHECK-INST: sttp q17, q19, [sp, #1008]! +// CHECK-ENCODING: encoding: [0xf1,0xcf,0x9f,0xed] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: ed9fcff1 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtp q23, q29, [x1, #-1024]! +// CHECK-INST: ldtp q23, q29, [x1, #-1024]! +// CHECK-ENCODING: encoding: [0x37,0x74,0xe0,0xed] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: ede07437 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui //------------------------------------------------------------------------------ // CAS(P)T instructions //------------------------------------------------------------------------------ //64 bits - cast x0, x1, [x2] -// CHECK: cast x0, x1, [x2] // encoding: [0x41,0x7c,0x80,0xc9] -// ERROR: instruction requires: lsui - cast x0, x1, [sp, #0] -// CHECK: cast x0, x1, [sp] // encoding: [0xe1,0x7f,0x80,0xc9] -// ERROR: instruction requires: lsui - casat x0, x1, [x2] -// CHECK: casat x0, x1, [x2] // encoding: [0x41,0x7c,0xc0,0xc9] -// ERROR: instruction requires: lsui - casat x0, x1, [sp, #0] -// CHECK: casat x0, x1, [sp] // encoding: [0xe1,0x7f,0xc0,0xc9] -// ERROR: instruction requires: lsui - casalt x0, x1, [x2] -// CHECK: casalt x0, x1, [x2] // encoding: [0x41,0xfc,0xc0,0xc9] -// ERROR: instruction requires: lsui - casalt x0, x1, [sp, #0] -// CHECK: casalt x0, x1, [sp] // encoding: [0xe1,0xff,0xc0,0xc9] -// ERROR: instruction requires: lsui - caslt x0, x1, [x2] -// CHECK: caslt x0, x1, [x2] // encoding: [0x41,0xfc,0x80,0xc9] -// ERROR: instruction requires: lsui - caslt x0, x1, [sp, #0] -// CHECK: caslt x0, x1, [sp] // encoding: [0xe1,0xff,0x80,0xc9] -// ERROR: instruction requires: lsui + cast x0, x1, [x2] +// CHECK-INST: cast x0, x1, [x2] +// CHECK-ENCODING: encoding: [0x41,0x7c,0x80,0xc9] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: c9807c41 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + cast x0, x1, [sp, #0] +// CHECK-INST: cast x0, x1, [sp] +// CHECK-ENCODING: encoding: [0xe1,0x7f,0x80,0xc9] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: c9807fe1 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + casat x0, x1, [x2] +// CHECK-INST: casat x0, x1, [x2] +// CHECK-ENCODING: encoding: [0x41,0x7c,0xc0,0xc9] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: c9c07c41 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + casat x0, x1, [sp, #0] +// CHECK-INST: casat x0, x1, [sp] +// CHECK-ENCODING: encoding: [0xe1,0x7f,0xc0,0xc9] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: c9c07fe1 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + casalt x0, x1, [x2] +// CHECK-INST: casalt x0, x1, [x2] +// CHECK-ENCODING: encoding: [0x41,0xfc,0xc0,0xc9] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: c9c0fc41 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + casalt x0, x1, [sp, #0] +// CHECK-INST: casalt x0, x1, [sp] +// CHECK-ENCODING: encoding: [0xe1,0xff,0xc0,0xc9] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: c9c0ffe1 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + caslt x0, x1, [x2] +// CHECK-INST: caslt x0, x1, [x2] +// CHECK-ENCODING: encoding: [0x41,0xfc,0x80,0xc9] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: c980fc41 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + caslt x0, x1, [sp, #0] +// CHECK-INST: caslt x0, x1, [sp] +// CHECK-ENCODING: encoding: [0xe1,0xff,0x80,0xc9] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: c980ffe1 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui //CASP instruction - caspt x0, x1, x2, x3, [x4] -// CHECK: caspt x0, x1, x2, x3, [x4] // encoding: [0x82,0x7c,0x80,0x49] -// ERROR: instruction requires: lsui - caspt x0, x1, x2, x3, [sp, #0] -// CHECK: caspt x0, x1, x2, x3, [sp] // encoding: [0xe2,0x7f,0x80,0x49] -// ERROR: instruction requires: lsui - caspat x0, x1, x2, x3, [x4] -// CHECK: caspat x0, x1, x2, x3, [x4] // encoding: [0x82,0x7c,0xc0,0x49] -// ERROR: instruction requires: lsui - caspat x0, x1, x2, x3, [sp, #0] -// CHECK: caspat x0, x1, x2, x3, [sp] // encoding: [0xe2,0x7f,0xc0,0x49] -// ERROR: instruction requires: lsui - casplt x0, x1, x2, x3, [x4] -// CHECK: casplt x0, x1, x2, x3, [x4] // encoding: [0x82,0xfc,0x80,0x49] -// ERROR: instruction requires: lsui - casplt x0, x1, x2, x3, [sp, #0] -// CHECK: casplt x0, x1, x2, x3, [sp] // encoding: [0xe2,0xff,0x80,0x49] -// ERROR: instruction requires: lsui - caspalt x0, x1, x2, x3, [x4] -// CHECK: caspalt x0, x1, x2, x3, [x4] // encoding: [0x82,0xfc,0xc0,0x49] -// ERROR: instruction requires: lsui - caspalt x0, x1, x2, x3, [sp, #0] -// CHECK: caspalt x0, x1, x2, x3, [sp] // encoding: [0xe2,0xff,0xc0,0x49] -// ERROR: instruction requires: lsui +caspt x0, x1, x2, x3, [x4] +// CHECK-INST: caspt x0, x1, x2, x3, [x4] +// CHECK-ENCODING: encoding: [0x82,0x7c,0x80,0x49] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 49807c82 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +caspt x0, x1, x2, x3, [sp, #0] +// CHECK-INST: caspt x0, x1, x2, x3, [sp] +// CHECK-ENCODING: encoding: [0xe2,0x7f,0x80,0x49] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 49807fe2 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +caspat x0, x1, x2, x3, [x4] +// CHECK-INST: caspat x0, x1, x2, x3, [x4] +// CHECK-ENCODING: encoding: [0x82,0x7c,0xc0,0x49] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 49c07c82 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +caspat x0, x1, x2, x3, [sp, #0] +// CHECK-INST: caspat x0, x1, x2, x3, [sp] +// CHECK-ENCODING: encoding: [0xe2,0x7f,0xc0,0x49] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 49c07fe2 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +casplt x0, x1, x2, x3, [x4] +// CHECK-INST: casplt x0, x1, x2, x3, [x4] +// CHECK-ENCODING: encoding: [0x82,0xfc,0x80,0x49] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 4980fc82 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +casplt x0, x1, x2, x3, [sp, #0] +// CHECK-INST: casplt x0, x1, x2, x3, [sp] +// CHECK-ENCODING: encoding: [0xe2,0xff,0x80,0x49] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 4980ffe2 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +caspalt x0, x1, x2, x3, [x4] +// CHECK-INST: caspalt x0, x1, x2, x3, [x4] +// CHECK-ENCODING: encoding: [0x82,0xfc,0xc0,0x49] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 49c0fc82 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +caspalt x0, x1, x2, x3, [sp, #0] +// CHECK-INST: caspalt x0, x1, x2, x3, [sp] +// CHECK-ENCODING: encoding: [0xe2,0xff,0xc0,0x49] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 49c0ffe2 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui //------------------------------------------------------------------------------ // SWP(A|L)T instructions //------------------------------------------------------------------------------ - swpt w7, wzr, [x5] -// CHECK: swpt w7, wzr, [x5] // encoding: [0xbf,0x84,0x27,0x19] -// ERROR: instruction requires: lsui - swpt x9, xzr, [sp] -// CHECK: swpt x9, xzr, [sp] // encoding: [0xff,0x87,0x29,0x59] -// ERROR: instruction requires: lsui - - swpta w7, wzr, [x5] -// CHECK: swpta w7, wzr, [x5] // encoding: [0xbf,0x84,0xa7,0x19] -// ERROR: instruction requires: lsui - swpta x9, xzr, [sp] -// CHECK: swpta x9, xzr, [sp] // encoding: [0xff,0x87,0xa9,0x59] -// ERROR: instruction requires: lsui - - swptl w7, wzr, [x5] -// CHECK: swptl w7, wzr, [x5] // encoding: [0xbf,0x84,0x67,0x19] -// ERROR: instruction requires: lsui - swptl x9, xzr, [sp] -// CHECK: swptl x9, xzr, [sp] // encoding: [0xff,0x87,0x69,0x59] -// ERROR: instruction requires: lsui - - swptal w7, wzr, [x5] -// CHECK: swptal w7, wzr, [x5] // encoding: [0xbf,0x84,0xe7,0x19] -// ERROR: instruction requires: lsui - swptal x9, xzr, [sp] -// CHECK: swptal x9, xzr, [sp] // encoding: [0xff,0x87,0xe9,0x59] -// ERROR: instruction requires: lsui +swpt w7, wzr, [x5] +// CHECK-INST: swpt w7, wzr, [x5] +// CHECK-ENCODING: encoding: [0xbf,0x84,0x27,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 192784bf +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +swpt x9, xzr, [sp] +// CHECK-INST: swpt x9, xzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x87,0x29,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 592987ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +swpta w7, wzr, [x5] +// CHECK-INST: swpta w7, wzr, [x5] +// CHECK-ENCODING: encoding: [0xbf,0x84,0xa7,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 19a784bf +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +swpta x9, xzr, [sp] +// CHECK-INST: swpta x9, xzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x87,0xa9,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 59a987ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +swptl w7, wzr, [x5] +// CHECK-INST: swptl w7, wzr, [x5] +// CHECK-ENCODING: encoding: [0xbf,0x84,0x67,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 196784bf +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +swptl x9, xzr, [sp] +// CHECK-INST: swptl x9, xzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x87,0x69,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 596987ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +swptal w7, wzr, [x5] +// CHECK-INST: swptal w7, wzr, [x5] +// CHECK-ENCODING: encoding: [0xbf,0x84,0xe7,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 19e784bf +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +swptal x9, xzr, [sp] +// CHECK-INST: swptal x9, xzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x87,0xe9,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 59e987ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui //------------------------------------------------------------------------------ // LD{ADD|CLR|SET)(A|L|AL)T instructions //------------------------------------------------------------------------------ - ldtadd w7, wzr, [x5] -// CHECK: ldtadd w7, wzr, [x5] // encoding: [0xbf,0x04,0x27,0x19] -// ERROR: instruction requires: lsui - ldtadd x9, xzr, [sp] -// CHECK: ldtadd x9, xzr, [sp] // encoding: [0xff,0x07,0x29,0x59] -// ERROR: instruction requires: lsui - - ldtadda w7, wzr, [x5] -// CHECK: ldtadda w7, wzr, [x5] // encoding: [0xbf,0x04,0xa7,0x19] -// ERROR: instruction requires: lsui - ldtadda x9, xzr, [sp] -// CHECK: ldtadda x9, xzr, [sp] // encoding: [0xff,0x07,0xa9,0x59] -// ERROR: instruction requires: lsui - - ldtaddl w7, wzr, [x5] -// CHECK: ldtaddl w7, wzr, [x5] // encoding: [0xbf,0x04,0x67,0x19] -// ERROR: instruction requires: lsui - ldtaddl x9, xzr, [sp] -// CHECK: ldtaddl x9, xzr, [sp] // encoding: [0xff,0x07,0x69,0x59] -// ERROR: instruction requires: lsui - - ldtaddal w7, wzr, [x5] -// CHECK: ldtaddal w7, wzr, [x5] // encoding: [0xbf,0x04,0xe7,0x19] -// ERROR: instruction requires: lsui - ldtaddal x9, xzr, [sp] -// CHECK: ldtaddal x9, xzr, [sp] // encoding: [0xff,0x07,0xe9,0x59] -// ERROR: instruction requires: lsui - - ldtclr w7, wzr, [x5] -// CHECK: ldtclr w7, wzr, [x5] // encoding: [0xbf,0x14,0x27,0x19] -// ERROR: instruction requires: lsui - ldtclr x9, xzr, [sp] -// CHECK: ldtclr x9, xzr, [sp] // encoding: [0xff,0x17,0x29,0x59] -// ERROR: instruction requires: lsui - - ldtclrl w7, wzr, [x5] -// CHECK: ldtclrl w7, wzr, [x5] // encoding: [0xbf,0x14,0x67,0x19] -// ERROR: instruction requires: lsui - ldtclrl x9, xzr, [sp] -// CHECK: ldtclrl x9, xzr, [sp] // encoding: [0xff,0x17,0x69,0x59] -// ERROR: instruction requires: lsui - - ldtclra w7, wzr, [x5] -// CHECK: ldtclra w7, wzr, [x5] // encoding: [0xbf,0x14,0xa7,0x19] -// ERROR: instruction requires: lsui - ldtclra x9, xzr, [sp] -// CHECK: ldtclra x9, xzr, [sp] // encoding: [0xff,0x17,0xa9,0x59] -// ERROR: instruction requires: lsui - - ldtclral w7, wzr, [x5] -// CHECK: ldtclral w7, wzr, [x5] // encoding: [0xbf,0x14,0xe7,0x19] -// ERROR: instruction requires: lsui - ldtclral x9, xzr, [sp] -// CHECK: ldtclral x9, xzr, [sp] // encoding: [0xff,0x17,0xe9,0x59] -// ERROR: instruction requires: lsui - - ldtset w7, wzr, [x5] -// CHECK: ldtset w7, wzr, [x5] // encoding: [0xbf,0x34,0x27,0x19] -// ERROR: instruction requires: lsui - ldtset x9, xzr, [sp] -// CHECK: ldtset x9, xzr, [sp] // encoding: [0xff,0x37,0x29,0x59] -// ERROR: instruction requires: lsui - - ldtsetl w7, wzr, [x5] -// CHECK: ldtsetl w7, wzr, [x5] // encoding: [0xbf,0x34,0x67,0x19] -// ERROR: instruction requires: lsui - ldtsetl x9, xzr, [sp] -// CHECK: ldtsetl x9, xzr, [sp] // encoding: [0xff,0x37,0x69,0x59] -// ERROR: instruction requires: lsui - - ldtseta w7, wzr, [x5] -// CHECK: ldtseta w7, wzr, [x5] // encoding: [0xbf,0x34,0xa7,0x19] -// ERROR: instruction requires: lsui - ldtseta x9, xzr, [sp] -// CHECK: ldtseta x9, xzr, [sp] // encoding: [0xff,0x37,0xa9,0x59] -// ERROR: instruction requires: lsui - - ldtsetal w7, wzr, [x5] -// CHECK: ldtsetal w7, wzr, [x5] // encoding: [0xbf,0x34,0xe7,0x19] -// ERROR: instruction requires: lsui - ldtsetal x9, xzr, [sp] -// CHECK: ldtsetal x9, xzr, [sp] // encoding: [0xff,0x37,0xe9,0x59] -// ERROR: instruction requires: lsui +ldtadd w7, wzr, [x5] +// CHECK-INST: ldtadd w7, wzr, [x5] +// CHECK-ENCODING: encoding: [0xbf,0x04,0x27,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 192704bf +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtadd x9, xzr, [sp] +// CHECK-INST: ldtadd x9, xzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x07,0x29,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 592907ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +ldtadda w7, wzr, [x5] +// CHECK-INST: ldtadda w7, wzr, [x5] +// CHECK-ENCODING: encoding: [0xbf,0x04,0xa7,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 19a704bf +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtadda x9, xzr, [sp] +// CHECK-INST: ldtadda x9, xzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x07,0xa9,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 59a907ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +ldtaddl w7, wzr, [x5] +// CHECK-INST: ldtaddl w7, wzr, [x5] +// CHECK-ENCODING: encoding: [0xbf,0x04,0x67,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 196704bf +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtaddl x9, xzr, [sp] +// CHECK-INST: ldtaddl x9, xzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x07,0x69,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 596907ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +ldtaddal w7, wzr, [x5] +// CHECK-INST: ldtaddal w7, wzr, [x5] +// CHECK-ENCODING: encoding: [0xbf,0x04,0xe7,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 19e704bf +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtaddal x9, xzr, [sp] +// CHECK-INST: ldtaddal x9, xzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x07,0xe9,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 59e907ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +ldtclr w7, wzr, [x5] +// CHECK-INST: ldtclr w7, wzr, [x5] +// CHECK-ENCODING: encoding: [0xbf,0x14,0x27,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 192714bf +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtclr x9, xzr, [sp] +// CHECK-INST: ldtclr x9, xzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x17,0x29,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 592917ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +ldtclrl w7, wzr, [x5] +// CHECK-INST: ldtclrl w7, wzr, [x5] +// CHECK-ENCODING: encoding: [0xbf,0x14,0x67,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 196714bf +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtclrl x9, xzr, [sp] +// CHECK-INST: ldtclrl x9, xzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x17,0x69,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 596917ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +ldtclra w7, wzr, [x5] +// CHECK-INST: ldtclra w7, wzr, [x5] +// CHECK-ENCODING: encoding: [0xbf,0x14,0xa7,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 19a714bf +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtclra x9, xzr, [sp] +// CHECK-INST: ldtclra x9, xzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x17,0xa9,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 59a917ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +ldtclral w7, wzr, [x5] +// CHECK-INST: ldtclral w7, wzr, [x5] +// CHECK-ENCODING: encoding: [0xbf,0x14,0xe7,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 19e714bf +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtclral x9, xzr, [sp] +// CHECK-INST: ldtclral x9, xzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x17,0xe9,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 59e917ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +ldtset w7, wzr, [x5] +// CHECK-INST: ldtset w7, wzr, [x5] +// CHECK-ENCODING: encoding: [0xbf,0x34,0x27,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 192734bf +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtset x9, xzr, [sp] +// CHECK-INST: ldtset x9, xzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x37,0x29,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 592937ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +ldtsetl w7, wzr, [x5] +// CHECK-INST: ldtsetl w7, wzr, [x5] +// CHECK-ENCODING: encoding: [0xbf,0x34,0x67,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 196734bf +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtsetl x9, xzr, [sp] +// CHECK-INST: ldtsetl x9, xzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x37,0x69,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 596937ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +ldtseta w7, wzr, [x5] +// CHECK-INST: ldtseta w7, wzr, [x5] +// CHECK-ENCODING: encoding: [0xbf,0x34,0xa7,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 19a734bf +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtseta x9, xzr, [sp] +// CHECK-INST: ldtseta x9, xzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x37,0xa9,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 59a937ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +ldtsetal w7, wzr, [x5] +// CHECK-INST: ldtsetal w7, wzr, [x5] +// CHECK-ENCODING: encoding: [0xbf,0x34,0xe7,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 19e734bf +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtsetal x9, xzr, [sp] +// CHECK-INST: ldtsetal x9, xzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x37,0xe9,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 59e937ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui //------------------------------------------------------------------------------ // ST{ADD|CLR|SET)(A|L|AL)T instructions //------------------------------------------------------------------------------ - sttadd w0, [x2] -// CHECK: ldtadd w0, wzr, [x2] // encoding: [0x5f,0x04,0x20,0x19] -// ERROR: instruction requires: lsui - sttadd w2, [sp] -// CHECK: ldtadd w2, wzr, [sp] // encoding: [0xff,0x07,0x22,0x19] -// ERROR: instruction requires: lsui - sttadd x0, [x2] -// CHECK: ldtadd x0, xzr, [x2] // encoding: [0x5f,0x04,0x20,0x59] -// ERROR: instruction requires: lsui - sttadd x2, [sp] -// CHECK: ldtadd x2, xzr, [sp] // encoding: [0xff,0x07,0x22,0x59] -// ERROR: instruction requires: lsui - - sttaddl w0, [x2] -// CHECK: ldtaddl w0, wzr, [x2] // encoding: [0x5f,0x04,0x60,0x19] -// ERROR: instruction requires: lsui - sttaddl w2, [sp] -// CHECK: ldtaddl w2, wzr, [sp] // encoding: [0xff,0x07,0x62,0x19] -// ERROR: instruction requires: lsui - sttaddl x0, [x2] -// CHECK: ldtaddl x0, xzr, [x2] // encoding: [0x5f,0x04,0x60,0x59] -// ERROR: instruction requires: lsui - sttaddl x2, [sp] -// CHECK: ldtaddl x2, xzr, [sp] // encoding: [0xff,0x07,0x62,0x59] -// ERROR: instruction requires: lsui - - sttclr w0, [x2] -// CHECK: ldtclr w0, wzr, [x2] // encoding: [0x5f,0x14,0x20,0x19] -// ERROR: instruction requires: lsui - sttclr w2, [sp] -// CHECK: ldtclr w2, wzr, [sp] // encoding: [0xff,0x17,0x22,0x19] -// ERROR: instruction requires: lsui - sttclr x0, [x2] -// CHECK: ldtclr x0, xzr, [x2] // encoding: [0x5f,0x14,0x20,0x59] -// ERROR: instruction requires: lsui - sttclr x2, [sp] -// CHECK: ldtclr x2, xzr, [sp] // encoding: [0xff,0x17,0x22,0x59] -// ERROR: instruction requires: lsui - - sttclrl w0, [x2] -// CHECK: ldtclrl w0, wzr, [x2] // encoding: [0x5f,0x14,0x60,0x19] -// ERROR: instruction requires: lsui - sttclrl w2, [sp] -// CHECK: ldtclrl w2, wzr, [sp] // encoding: [0xff,0x17,0x62,0x19] -// ERROR: instruction requires: lsui - sttclrl x0, [x2] -// CHECK: ldtclrl x0, xzr, [x2] // encoding: [0x5f,0x14,0x60,0x59] -// ERROR: instruction requires: lsui - sttclrl x2, [sp] -// CHECK: ldtclrl x2, xzr, [sp] // encoding: [0xff,0x17,0x62,0x59] -// ERROR: instruction requires: lsui - - sttset w0, [x2] -// CHECK: ldtset w0, wzr, [x2] // encoding: [0x5f,0x34,0x20,0x19] -// ERROR: instruction requires: lsui - sttset w2, [sp] -// CHECK: ldtset w2, wzr, [sp] // encoding: [0xff,0x37,0x22,0x19] -// ERROR: instruction requires: lsui - sttset x0, [x2] -// CHECK: ldtset x0, xzr, [x2] // encoding: [0x5f,0x34,0x20,0x59] -// ERROR: instruction requires: lsui - sttset x2, [sp] -// CHECK: ldtset x2, xzr, [sp] // encoding: [0xff,0x37,0x22,0x59] -// ERROR: instruction requires: lsui - - sttsetl w0, [x2] -// CHECK: ldtsetl w0, wzr, [x2] // encoding: [0x5f,0x34,0x60,0x19] -// ERROR: instruction requires: lsui - sttsetl w2, [sp] -// CHECK: ldtsetl w2, wzr, [sp] // encoding: [0xff,0x37,0x62,0x19] -// ERROR: instruction requires: lsui - sttsetl x0, [x2] -// CHECK: ldtsetl x0, xzr, [x2] // encoding: [0x5f,0x34,0x60,0x59] -// ERROR: instruction requires: lsui - sttsetl x2, [sp] -// CHECK: ldtsetl x2, xzr, [sp] // encoding: [0xff,0x37,0x62,0x59] -// ERROR: instruction requires: lsui +sttadd w0, [x2] +// CHECK-INST: ldtadd w0, wzr, [x2] +// CHECK-ENCODING: encoding: [0x5f,0x04,0x20,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 1920045f +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttadd w2, [sp] +// CHECK-INST: ldtadd w2, wzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x07,0x22,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 192207ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttadd x0, [x2] +// CHECK-INST: ldtadd x0, xzr, [x2] +// CHECK-ENCODING: encoding: [0x5f,0x04,0x20,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 5920045f +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttadd x2, [sp] +// CHECK-INST: ldtadd x2, xzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x07,0x22,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 592207ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +sttaddl w0, [x2] +// CHECK-INST: ldtaddl w0, wzr, [x2] +// CHECK-ENCODING: encoding: [0x5f,0x04,0x60,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 1960045f +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttaddl w2, [sp] +// CHECK-INST: ldtaddl w2, wzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x07,0x62,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 196207ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttaddl x0, [x2] +// CHECK-INST: ldtaddl x0, xzr, [x2] +// CHECK-ENCODING: encoding: [0x5f,0x04,0x60,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 5960045f +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttaddl x2, [sp] +// CHECK-INST: ldtaddl x2, xzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x07,0x62,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 596207ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +sttclr w0, [x2] +// CHECK-INST: ldtclr w0, wzr, [x2] +// CHECK-ENCODING: encoding: [0x5f,0x14,0x20,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 1920145f +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttclr w2, [sp] +// CHECK-INST: ldtclr w2, wzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x17,0x22,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 192217ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttclr x0, [x2] +// CHECK-INST: ldtclr x0, xzr, [x2] +// CHECK-ENCODING: encoding: [0x5f,0x14,0x20,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 5920145f +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttclr x2, [sp] +// CHECK-INST: ldtclr x2, xzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x17,0x22,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 592217ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +sttclrl w0, [x2] +// CHECK-INST: ldtclrl w0, wzr, [x2] +// CHECK-ENCODING: encoding: [0x5f,0x14,0x60,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 1960145f +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttclrl w2, [sp] +// CHECK-INST: ldtclrl w2, wzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x17,0x62,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 196217ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttclrl x0, [x2] +// CHECK-INST: ldtclrl x0, xzr, [x2] +// CHECK-ENCODING: encoding: [0x5f,0x14,0x60,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 5960145f +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttclrl x2, [sp] +// CHECK-INST: ldtclrl x2, xzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x17,0x62,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 596217ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +sttset w0, [x2] +// CHECK-INST: ldtset w0, wzr, [x2] +// CHECK-ENCODING: encoding: [0x5f,0x34,0x20,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 1920345f +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttset w2, [sp] +// CHECK-INST: ldtset w2, wzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x37,0x22,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 192237ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttset x0, [x2] +// CHECK-INST: ldtset x0, xzr, [x2] +// CHECK-ENCODING: encoding: [0x5f,0x34,0x20,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 5920345f +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttset x2, [sp] +// CHECK-INST: ldtset x2, xzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x37,0x22,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 592237ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +sttsetl w0, [x2] +// CHECK-INST: ldtsetl w0, wzr, [x2] +// CHECK-ENCODING: encoding: [0x5f,0x34,0x60,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 1960345f +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttsetl w2, [sp] +// CHECK-INST: ldtsetl w2, wzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x37,0x62,0x19] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 196237ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttsetl x0, [x2] +// CHECK-INST: ldtsetl x0, xzr, [x2] +// CHECK-ENCODING: encoding: [0x5f,0x34,0x60,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 5960345f +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttsetl x2, [sp] +// CHECK-INST: ldtsetl x2, xzr, [sp] +// CHECK-ENCODING: encoding: [0xff,0x37,0x62,0x59] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: 596237ff +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui //------------------------------------------------------------------------------ // Load/store non-temporal register pair (offset) //------------------------------------------------------------------------------ - ldtnp x21, x29, [x2, #504] -// CHECK: ldtnp x21, x29, [x2, #504] // encoding: [0x55,0xf4,0x5f,0xe8] -// ERROR: instruction requires: lsui - ldtnp x22, x23, [x3, #-512] -// CHECK: ldtnp x22, x23, [x3, #-512] // encoding: [0x76,0x5c,0x60,0xe8] -// ERROR: instruction requires: lsui - ldtnp x24, x25, [x4, #8] -// CHECK: ldtnp x24, x25, [x4, #8] // encoding: [0x98,0xe4,0x40,0xe8] -// ERROR: instruction requires: lsui - ldtnp q23, q29, [x1, #-1024] -// CHECK: ldtnp q23, q29, [x1, #-1024] // encoding: [0x37,0x74,0x60,0xec] -// ERROR: instruction requires: lsui - - sttnp x3, x5, [sp] -// CHECK: sttnp x3, x5, [sp] // encoding: [0xe3,0x17,0x00,0xe8] -// ERROR: instruction requires: lsui - sttnp x17, x19, [sp, #64] -// CHECK: sttnp x17, x19, [sp, #64] // encoding: [0xf1,0x4f,0x04,0xe8] -// ERROR: instruction requires: lsui - sttnp q3, q5, [sp] -// CHECK: sttnp q3, q5, [sp] // encoding: [0xe3,0x17,0x00,0xec] -// ERROR: instruction requires: lsui - sttnp q17, q19, [sp, #1008] -// CHECK: sttnp q17, q19, [sp, #1008] // encoding: [0xf1,0xcf,0x1f,0xec] -// ERROR: instruction requires: lsui - +ldtnp x21, x29, [x2, #504] +// CHECK-INST: ldtnp x21, x29, [x2, #504] +// CHECK-ENCODING: encoding: [0x55,0xf4,0x5f,0xe8] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: e85ff455 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtnp x22, x23, [x3, #-512] +// CHECK-INST: ldtnp x22, x23, [x3, #-512] +// CHECK-ENCODING: encoding: [0x76,0x5c,0x60,0xe8] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: e8605c76 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtnp x24, x25, [x4, #8] +// CHECK-INST: ldtnp x24, x25, [x4, #8] +// CHECK-ENCODING: encoding: [0x98,0xe4,0x40,0xe8] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: e840e498 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +ldtnp q23, q29, [x1, #-1024] +// CHECK-INST: ldtnp q23, q29, [x1, #-1024] +// CHECK-ENCODING: encoding: [0x37,0x74,0x60,0xec] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: ec607437 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + +sttnp x3, x5, [sp] +// CHECK-INST: sttnp x3, x5, [sp] +// CHECK-ENCODING: encoding: [0xe3,0x17,0x00,0xe8] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: e80017e3 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttnp x17, x19, [sp, #64] +// CHECK-INST: sttnp x17, x19, [sp, #64] +// CHECK-ENCODING: encoding: [0xf1,0x4f,0x04,0xe8] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: e8044ff1 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttnp q3, q5, [sp] +// CHECK-INST: sttnp q3, q5, [sp] +// CHECK-ENCODING: encoding: [0xe3,0x17,0x00,0xec] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: ec0017e3 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui +sttnp q17, q19, [sp, #1008] +// CHECK-INST: sttnp q17, q19, [sp, #1008] +// CHECK-ENCODING: encoding: [0xf1,0xcf,0x1f,0xec] +// CHECK-ERROR: error: instruction requires: lsui +// CHECK-UNKNOWN: ec1fcff1 +// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui diff --git a/llvm/test/MC/AArch64/armv9.6a-occmo.s b/llvm/test/MC/AArch64/armv9.6a-occmo.s index d6548f98645a5..0b3ec13dcd0f1 100644 --- a/llvm/test/MC/AArch64/armv9.6a-occmo.s +++ b/llvm/test/MC/AArch64/armv9.6a-occmo.s @@ -1,17 +1,39 @@ -// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+occmo -mattr=+mte %s | FileCheck %s -// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding %s -mattr=+mte 2>&1 | FileCheck --check-prefix=ERROR %s -.func: -// CHECK: .func: - dc civaoc, x12 -// CHECK: dc civaoc, x12 // encoding: [0x0c,0x7f,0x0b,0xd5] -// ERROR: error: DC CIVAOC requires: occmo - dc cigdvaoc, x0 -// CHECK: dc cigdvaoc, x0 // encoding: [0xe0,0x7f,0x0b,0xd5] -// ERROR: error: DC CIGDVAOC requires: mte, memtag, occmo - dc cvaoc, x13 -// CHECK: dc cvaoc, x13 // encoding: [0x0d,0x7b,0x0b,0xd5] -// ERROR: error: DC CVAOC requires: occmo - dc cgdvaoc, x1 -// CHECK: dc cgdvaoc, x1 // encoding: [0xe1,0x7b,0x0b,0xd5] -// ERROR: error: DC CGDVAOC requires: mte, memtag, occmo +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+occmo,+mte,+memtag < %s \ +// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST +// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \ +// RUN: | FileCheck %s --check-prefixes=CHECK-ERROR +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+occmo,+mte,+memtag < %s \ +// RUN: | llvm-objdump -d --mattr=+occmo,+mte,+memtag --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+occmo,+mte,+memtag < %s \ +// RUN: | llvm-objdump -d --mattr=-occmo,-mte,-memtag --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// Disassemble encoding and check the re-encoding (-show-encoding) matches. +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+occmo,+mte,+memtag < %s \ +// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+occmo,+mte,+memtag -disassemble -show-encoding \ +// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST + + +dc civaoc, x12 +// CHECK-INST: dc civaoc, x12 +// CHECK-ENCODING: encoding: [0x0c,0x7f,0x0b,0xd5] +// CHECK-ERROR: error: DC CIVAOC requires: occmo +// CHECK-UNKNOWN: d50b7f0c sys #3, c7, c15, #0, x12 +dc cigdvaoc, x0 +// CHECK-INST: dc cigdvaoc, x0 +// CHECK-ENCODING: encoding: [0xe0,0x7f,0x0b,0xd5] +// CHECK-ERROR: error: DC CIGDVAOC requires: mte, memtag, occmo +// CHECK-UNKNOWN: d50b7fe0 sys #3, c7, c15, #7, x0 +// ERROR: :[[@LINE-3]]:4: error: DC CIGDVAOC requires: mte, memtag, occmo +dc cvaoc, x13 +// CHECK-INST: dc cvaoc, x13 +// CHECK-ENCODING: encoding: [0x0d,0x7b,0x0b,0xd5] +// CHECK-ERROR: error: DC CVAOC requires: occmo +// CHECK-UNKNOWN: d50b7b0d sys #3, c7, c11, #0, x13 +// ERROR: :[[@LINE-3]]:4: error: DC CVAOC requires: occmo +dc cgdvaoc, x1 +// CHECK-INST: dc cgdvaoc, x1 +// CHECK-ENCODING: encoding: [0xe1,0x7b,0x0b,0xd5] +// CHECK-ERROR: error: DC CGDVAOC requires: mte, memtag, occmo +// CHECK-UNKNOWN: d50b7be1 sys #3, c7, c11, #7, x1 +// ERROR: :[[@LINE-3]]:4: error: DC CGDVAOC requires: mte, memtag, occmo diff --git a/llvm/test/MC/AArch64/armv9.6a-pcdphint.s b/llvm/test/MC/AArch64/armv9.6a-pcdphint.s index 6314e534318c4..8cf7b4518624f 100644 --- a/llvm/test/MC/AArch64/armv9.6a-pcdphint.s +++ b/llvm/test/MC/AArch64/armv9.6a-pcdphint.s @@ -1,13 +1,26 @@ -// RUN: llvm-mc -triple aarch64 -show-encoding -mattr=+pcdphint %s | FileCheck %s -// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding %s 2>&1 | FileCheck --check-prefix=ERROR %s - -.func: -// CHECK: .func: - stshh keep -// CHECK: stshh keep // encoding: [0x1f,0x96,0x01,0xd5] -// ERROR: error: instruction requires: pcdphint - stshh strm -// CHECK: stshh strm // encoding: [0x3f,0x96,0x01,0xd5] -// ERROR: error: instruction requires: pcdphint - +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+pcdphint < %s \ +// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST +// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \ +// RUN: | FileCheck %s --check-prefixes=CHECK-ERROR +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+pcdphint < %s \ +// RUN: | llvm-objdump -d --mattr=+pcdphint - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+pcdphint < %s \ +// RUN: | llvm-objdump -d --mattr=-pcdphint - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// Disassemble encoding and check the re-encoding (-show-encoding) matches. +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+pcdphint < %s \ +// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+pcdphint -disassemble -show-encoding \ +// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST +stshh keep +// CHECK-INST: stshh keep +// CHECK-ENCODING: encoding: [0x1f,0x96,0x01,0xd5] +// CHECK-ERROR: error: instruction requires: pcdphint +// CHECK-UNKNOWN: d501961f msr S0_1_C9_C6_0, xzr +// ERROR: :[[@LINE-3]]:3: error: instruction requires: pcdphint +stshh strm +// CHECK-INST: stshh strm +// CHECK-ENCODING: encoding: [0x3f,0x96,0x01,0xd5] +// CHECK-ERROR: error: instruction requires: pcdphint +// CHECK-UNKNOWN: d501963f msr S0_1_C9_C6_1, xzr +// ERROR: :[[@LINE-3]]:3: error: instruction requires: pcdphint diff --git a/llvm/test/MC/AArch64/armv9.6a-rme-gpc3.s b/llvm/test/MC/AArch64/armv9.6a-rme-gpc3.s index 093101b6cd812..201ad61c49baa 100644 --- a/llvm/test/MC/AArch64/armv9.6a-rme-gpc3.s +++ b/llvm/test/MC/AArch64/armv9.6a-rme-gpc3.s @@ -1,19 +1,41 @@ -# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py -// RUN: llvm-mc -triple aarch64 -show-encoding %s | FileCheck %s -.func: +// RUN: llvm-mc -triple=aarch64 -show-encoding < %s \ +// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj < %s \ +// RUN: | llvm-objdump -d --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj < %s \ +// RUN: | llvm-objdump -d --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// Disassemble encoding and check the re-encoding (-show-encoding) matches. +// RUN: llvm-mc -triple=aarch64 -show-encoding < %s \ +// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ +// RUN: | llvm-mc -triple=aarch64 -disassemble -show-encoding \ +// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST + + apas x0 +// CHECK-INST: apas x0 +// CHECK-ENCODING: encoding: [0x00,0x70,0x0e,0xd5] +// CHECK-UNKNOWN: d50e7000 apas x0 apas x1 +// CHECK-INST: apas x1 +// CHECK-ENCODING: encoding: [0x01,0x70,0x0e,0xd5] +// CHECK-UNKNOWN: d50e7001 apas x1 apas x2 +// CHECK-INST: apas x2 +// CHECK-ENCODING: encoding: [0x02,0x70,0x0e,0xd5] +// CHECK-UNKNOWN: d50e7002 apas x2 apas x17 +// CHECK-INST: apas x17 +// CHECK-ENCODING: encoding: [0x11,0x70,0x0e,0xd5] +// CHECK-UNKNOWN: d50e7011 apas x17 apas x30 +// CHECK-INST: apas x30 +// CHECK-ENCODING: encoding: [0x1e,0x70,0x0e,0xd5] +// CHECK-UNKNOWN: d50e701e apas x30 mrs x3, GPCBW_EL3 +// CHECK-INST: mrs x3, GPCBW_EL3 +// CHECK-ENCODING: encoding: [0xa3,0x21,0x3e,0xd5] +// CHECK-UNKNOWN: d53e21a3 mrs x3, GPCBW_EL3 msr GPCBW_EL3, x4 - -# CHECK: .func: -# CHECK-NEXT: apas x0 // encoding: [0x00,0x70,0x0e,0xd5] -# CHECK-NEXT: apas x1 // encoding: [0x01,0x70,0x0e,0xd5] -# CHECK-NEXT: apas x2 // encoding: [0x02,0x70,0x0e,0xd5] -# CHECK-NEXT: apas x17 // encoding: [0x11,0x70,0x0e,0xd5] -# CHECK-NEXT: apas x30 // encoding: [0x1e,0x70,0x0e,0xd5] -# CHECK-NEXT: mrs x3, GPCBW_EL3 // encoding: [0xa3,0x21,0x3e,0xd5] -# CHECK-NEXT: msr GPCBW_EL3, x4 // encoding: [0xa4,0x21,0x1e,0xd5] +// CHECK-INST: msr GPCBW_EL3, x4 +// CHECK-ENCODING: encoding: [0xa4,0x21,0x1e,0xd5] +// CHECK-UNKNOWN: d51e21a4 msr GPCBW_EL3, x4 diff --git a/llvm/test/MC/Disassembler/AArch64/armv9.6a-lsui.txt b/llvm/test/MC/Disassembler/AArch64/armv9.6a-lsui.txt deleted file mode 100644 index 4cde11f38dde1..0000000000000 --- a/llvm/test/MC/Disassembler/AArch64/armv9.6a-lsui.txt +++ /dev/null @@ -1,323 +0,0 @@ -# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py -# RUN: llvm-mc -triple aarch64 -mattr=+lsui -disassemble %s | FileCheck %s - -# LDTXR and STTXR -[0xe9,0x7f,0x5f,0xc9] -[0xe9,0x7f,0x5f,0xc9] -[0x6a,0x7d,0x5f,0xc9] -[0x6a,0x7d,0x5f,0xc9] - -[0xe4,0x7f,0x1f,0x89] -[0xe4,0x7f,0x1f,0x89] -[0xe6,0x7c,0x05,0xc9] -[0xe6,0x7c,0x05,0xc9] - -# LDATXR and STLTXR -[0xe9,0xff,0x5f,0xc9] -[0x6a,0xfd,0x5f,0xc9] - -[0xe4,0xff,0x02,0x89] -[0xe6,0xfc,0x05,0xc9] - -# STTP and LDTP -[0x55,0xf4,0x5f,0xe9] -[0x76,0x5c,0x60,0xe9] -[0x98,0xe4,0x40,0xe9] - -[0xe3,0x17,0x81,0xe8] -[0xe3,0x97,0x80,0xe9] -[0xe3,0x17,0x00,0xed] -[0xf1,0xcf,0x1f,0xed] - -[0x55,0xf4,0xdf,0xe8] -[0x76,0x5c,0xe0,0xe8] -[0x98,0xe4,0xc0,0xe8] - -[0xe3,0x17,0x80,0xec] -[0xf1,0xcf,0x9f,0xec] -[0x37,0x74,0xe0,0xec] - -[0x55,0xf4,0xdf,0xe9] -[0x76,0x5c,0xe0,0xe9] -[0x98,0xe4,0xc0,0xe9] - -[0xe3,0x17,0x80,0xed] -[0xf1,0xcf,0x9f,0xed] -[0x37,0x74,0xe0,0xed] - -[0x55,0xf4,0x5f,0xe8] -[0x76,0x5c,0x60,0xe8] -[0x98,0xe4,0x40,0xe8] -[0x37,0x74,0x60,0xec] - -[0xe3,0x17,0x00,0xe8] -[0xf1,0x4f,0x04,0xe8] -[0xe3,0x17,0x00,0xec] -[0xf1,0xcf,0x1f,0xec] - -# SWPT{A|L} -[0xbf,0x84,0x27,0x19] -[0xff,0x87,0x29,0x59] - -[0xbf,0x84,0xa7,0x19] -[0xff,0x87,0xa9,0x59] - -[0xbf,0x84,0x67,0x19] -[0xff,0x87,0x69,0x59] - -[0xbf,0x84,0xe7,0x19] -[0xff,0x87,0xe9,0x59] - -# CAS{A|L}T -[0x41,0x7c,0x80,0xc9] -[0xe1,0x7f,0x80,0xc9] -[0x41,0x7c,0xc0,0xc9] -[0xe1,0x7f,0xc0,0xc9] -[0x41,0xfc,0xc0,0xc9] -[0xe1,0xff,0xc0,0xc9] -[0x41,0xfc,0x80,0xc9] -[0xe1,0xff,0x80,0xc9] - -# CASP{A|L}T -[0x82,0x7c,0x80,0x49] -[0xe2,0x7f,0x80,0x49] -[0x82,0x7c,0xc0,0x49] -[0xe2,0x7f,0xc0,0x49] -[0x82,0xfc,0x80,0x49] -[0xe2,0xff,0x80,0x49] -[0x82,0xfc,0xc0,0x49] -[0xe2,0xff,0xc0,0x49] - -#LDT{SET|ADD|CLR}{A|L} and STT{ADD|SET|CLR}{L} - -[0xbf,0x04,0x27,0x19] -[0xff,0x07,0x29,0x59] - -[0xbf,0x04,0xa7,0x19] -[0xff,0x07,0xa9,0x59] - -[0xbf,0x04,0x67,0x19] -[0xff,0x07,0x69,0x59] - -[0xbf,0x04,0xe7,0x19] -[0xff,0x07,0xe9,0x59] - -[0xbf,0x14,0x27,0x19] -[0xff,0x17,0x29,0x59] - -[0xbf,0x14,0x67,0x19] -[0xff,0x17,0x69,0x59] - -[0xbf,0x14,0xa7,0x19] -[0xff,0x17,0xa9,0x59] - -[0xbf,0x14,0xe7,0x19] -[0xff,0x17,0xe9,0x59] - -[0xbf,0x34,0x27,0x19] -[0xff,0x37,0x29,0x59] - -[0xbf,0x34,0x67,0x19] -[0xff,0x37,0x69,0x59] - -[0xbf,0x34,0xa7,0x19] -[0xff,0x37,0xa9,0x59] - -[0xbf,0x34,0xe7,0x19] -[0xff,0x37,0xe9,0x59] - -[0x5f,0x04,0x20,0x19] -[0xff,0x07,0x22,0x19] -[0x5f,0x04,0x20,0x59] -[0xff,0x07,0x22,0x59] - -[0x5f,0x04,0x20,0x19] -[0xff,0x07,0x22,0x19] -[0x5f,0x04,0x20,0x59] -[0xff,0x07,0x22,0x59] - -[0x5f,0x04,0x20,0x19] -[0xff,0x07,0x22,0x19] -[0x5f,0x04,0x20,0x59] -[0xff,0x07,0x22,0x59] - -[0x5f,0x04,0x20,0x19] -[0xff,0x07,0x22,0x19] -[0x5f,0x04,0x20,0x59] -[0xff,0x07,0x22,0x59] - -[0x5f,0x14,0x20,0x19] -[0xff,0x17,0x22,0x19] -[0x5f,0x14,0x20,0x59] -[0xff,0x17,0x22,0x59] - -[0x5f,0x14,0x20,0x19] -[0xff,0x17,0x22,0x19] -[0x5f,0x14,0x20,0x59] -[0xff,0x17,0x22,0x59] - -[0x5f,0x14,0x20,0x19] -[0xff,0x17,0x22,0x19] -[0x5f,0x14,0x20,0x59] -[0xff,0x17,0x22,0x59] - -[0x5f,0x14,0x20,0x19] -[0xff,0x17,0x22,0x59] -[0x5f,0x14,0x20,0x59] -[0xff,0x17,0x22,0x59] - -[0x5f,0x34,0x20,0x19] -[0xff,0x37,0x22,0x19] -[0x5f,0x34,0x20,0x59] -[0xff,0x37,0x22,0x59] - -[0x5f,0x34,0x20,0x19] -[0xff,0x37,0x22,0x19] -[0x5f,0x34,0x20,0x59] -[0xff,0x37,0x22,0x59] - -[0x5f,0x34,0x20,0x19] -[0xff,0x37,0x22,0x19] -[0x5f,0x34,0x20,0x59] -[0xff,0x37,0x22,0x59] - -[0x5f,0x34,0x20,0x19] -[0xff,0x37,0x22,0x59] -[0x5f,0x34,0x20,0x59] -[0xff,0x37,0x22,0x59] - -# CHECK: ldtxr x9, [sp] -# CHECK-NEXT: ldtxr x9, [sp] -# CHECK-NEXT: ldtxr x10, [x11] -# CHECK-NEXT: ldtxr x10, [x11] -# CHECK-NEXT: sttxr wzr, w4, [sp] -# CHECK-NEXT: sttxr wzr, w4, [sp] -# CHECK-NEXT: sttxr w5, x6, [x7] -# CHECK-NEXT: sttxr w5, x6, [x7] -# CHECK-NEXT: ldatxr x9, [sp] -# CHECK-NEXT: ldatxr x10, [x11] -# CHECK-NEXT: stltxr w2, w4, [sp] -# CHECK-NEXT: stltxr w5, x6, [x7] -# CHECK-NEXT: ldtp x21, x29, [x2, #504] -# CHECK-NEXT: ldtp x22, x23, [x3, #-512] -# CHECK-NEXT: ldtp x24, x25, [x4, #8] -# CHECK-NEXT: sttp x3, x5, [sp], #16 -# CHECK-NEXT: sttp x3, x5, [sp, #8]! -# CHECK-NEXT: sttp q3, q5, [sp] -# CHECK-NEXT: sttp q17, q19, [sp, #1008] -# CHECK-NEXT: ldtp x21, x29, [x2], #504 -# CHECK-NEXT: ldtp x22, x23, [x3], #-512 -# CHECK-NEXT: ldtp x24, x25, [x4], #8 -# CHECK-NEXT: sttp q3, q5, [sp], #0 -# CHECK-NEXT: sttp q17, q19, [sp], #1008 -# CHECK-NEXT: ldtp q23, q29, [x1], #-1024 -# CHECK-NEXT: ldtp x21, x29, [x2, #504]! -# CHECK-NEXT: ldtp x22, x23, [x3, #-512]! -# CHECK-NEXT: ldtp x24, x25, [x4, #8]! -# CHECK-NEXT: sttp q3, q5, [sp, #0]! -# CHECK-NEXT: sttp q17, q19, [sp, #1008]! -# CHECK-NEXT: ldtp q23, q29, [x1, #-1024]! -# CHECK-NEXT: ldtnp x21, x29, [x2, #504] -# CHECK-NEXT: ldtnp x22, x23, [x3, #-512] -# CHECK-NEXT: ldtnp x24, x25, [x4, #8] -# CHECK-NEXT: ldtnp q23, q29, [x1, #-1024] -# CHECK-NEXT: sttnp x3, x5, [sp] -# CHECK-NEXT: sttnp x17, x19, [sp, #64] -# CHECK-NEXT: sttnp q3, q5, [sp] -# CHECK-NEXT: sttnp q17, q19, [sp, #1008] -# CHECK-NEXT: swpt w7, wzr, [x5] -# CHECK-NEXT: swpt x9, xzr, [sp] -# CHECK-NEXT: swpta w7, wzr, [x5] -# CHECK-NEXT: swpta x9, xzr, [sp] -# CHECK-NEXT: swptl w7, wzr, [x5] -# CHECK-NEXT: swptl x9, xzr, [sp] -# CHECK-NEXT: swptal w7, wzr, [x5] -# CHECK-NEXT: swptal x9, xzr, [sp] -# CHECK-NEXT: cast x0, x1, [x2] -# CHECK-NEXT: cast x0, x1, [sp] -# CHECK-NEXT: casat x0, x1, [x2] -# CHECK-NEXT: casat x0, x1, [sp] -# CHECK-NEXT: casalt x0, x1, [x2] -# CHECK-NEXT: casalt x0, x1, [sp] -# CHECK-NEXT: caslt x0, x1, [x2] -# CHECK-NEXT: caslt x0, x1, [sp] -# CHECK-NEXT: caspt x0, x1, x2, x3, [x4] -# CHECK-NEXT: caspt x0, x1, x2, x3, [sp] -# CHECK-NEXT: caspat x0, x1, x2, x3, [x4] -# CHECK-NEXT: caspat x0, x1, x2, x3, [sp] -# CHECK-NEXT: casplt x0, x1, x2, x3, [x4] -# CHECK-NEXT: casplt x0, x1, x2, x3, [sp] -# CHECK-NEXT: caspalt x0, x1, x2, x3, [x4] -# CHECK-NEXT: caspalt x0, x1, x2, x3, [sp] -# CHECK-NEXT: ldtadd w7, wzr, [x5] -# CHECK-NEXT: ldtadd x9, xzr, [sp] -# CHECK-NEXT: ldtadda w7, wzr, [x5] -# CHECK-NEXT: ldtadda x9, xzr, [sp] -# CHECK-NEXT: ldtaddl w7, wzr, [x5] -# CHECK-NEXT: ldtaddl x9, xzr, [sp] -# CHECK-NEXT: ldtaddal w7, wzr, [x5] -# CHECK-NEXT: ldtaddal x9, xzr, [sp] -# CHECK-NEXT: ldtclr w7, wzr, [x5] -# CHECK-NEXT: ldtclr x9, xzr, [sp] -# CHECK-NEXT: ldtclrl w7, wzr, [x5] -# CHECK-NEXT: ldtclrl x9, xzr, [sp] -# CHECK-NEXT: ldtclra w7, wzr, [x5] -# CHECK-NEXT: ldtclra x9, xzr, [sp] -# CHECK-NEXT: ldtclral w7, wzr, [x5] -# CHECK-NEXT: ldtclral x9, xzr, [sp] -# CHECK-NEXT: ldtset w7, wzr, [x5] -# CHECK-NEXT: ldtset x9, xzr, [sp] -# CHECK-NEXT: ldtsetl w7, wzr, [x5] -# CHECK-NEXT: ldtsetl x9, xzr, [sp] -# CHECK-NEXT: ldtseta w7, wzr, [x5] -# CHECK-NEXT: ldtseta x9, xzr, [sp] -# CHECK-NEXT: ldtsetal w7, wzr, [x5] -# CHECK-NEXT: ldtsetal x9, xzr, [sp] -# CHECK-NEXT: ldtadd w0, wzr, [x2] -# CHECK-NEXT: ldtadd w2, wzr, [sp] -# CHECK-NEXT: ldtadd x0, xzr, [x2] -# CHECK-NEXT: ldtadd x2, xzr, [sp] -# CHECK-NEXT: ldtadd w0, wzr, [x2] -# CHECK-NEXT: ldtadd w2, wzr, [sp] -# CHECK-NEXT: ldtadd x0, xzr, [x2] -# CHECK-NEXT: ldtadd x2, xzr, [sp] -# CHECK-NEXT: ldtadd w0, wzr, [x2] -# CHECK-NEXT: ldtadd w2, wzr, [sp] -# CHECK-NEXT: ldtadd x0, xzr, [x2] -# CHECK-NEXT: ldtadd x2, xzr, [sp] -# CHECK-NEXT: ldtadd w0, wzr, [x2] -# CHECK-NEXT: ldtadd w2, wzr, [sp] -# CHECK-NEXT: ldtadd x0, xzr, [x2] -# CHECK-NEXT: ldtadd x2, xzr, [sp] -# CHECK-NEXT: ldtclr w0, wzr, [x2] -# CHECK-NEXT: ldtclr w2, wzr, [sp] -# CHECK-NEXT: ldtclr x0, xzr, [x2] -# CHECK-NEXT: ldtclr x2, xzr, [sp] -# CHECK-NEXT: ldtclr w0, wzr, [x2] -# CHECK-NEXT: ldtclr w2, wzr, [sp] -# CHECK-NEXT: ldtclr x0, xzr, [x2] -# CHECK-NEXT: ldtclr x2, xzr, [sp] -# CHECK-NEXT: ldtclr w0, wzr, [x2] -# CHECK-NEXT: ldtclr w2, wzr, [sp] -# CHECK-NEXT: ldtclr x0, xzr, [x2] -# CHECK-NEXT: ldtclr x2, xzr, [sp] -# CHECK-NEXT: ldtclr w0, wzr, [x2] -# CHECK-NEXT: ldtclr x2, xzr, [sp] -# CHECK-NEXT: ldtclr x0, xzr, [x2] -# CHECK-NEXT: ldtclr x2, xzr, [sp] -# CHECK-NEXT: ldtset w0, wzr, [x2] -# CHECK-NEXT: ldtset w2, wzr, [sp] -# CHECK-NEXT: ldtset x0, xzr, [x2] -# CHECK-NEXT: ldtset x2, xzr, [sp] -# CHECK-NEXT: ldtset w0, wzr, [x2] -# CHECK-NEXT: ldtset w2, wzr, [sp] -# CHECK-NEXT: ldtset x0, xzr, [x2] -# CHECK-NEXT: ldtset x2, xzr, [sp] -# CHECK-NEXT: ldtset w0, wzr, [x2] -# CHECK-NEXT: ldtset w2, wzr, [sp] -# CHECK-NEXT: ldtset x0, xzr, [x2] -# CHECK-NEXT: ldtset x2, xzr, [sp] -# CHECK-NEXT: ldtset w0, wzr, [x2] -# CHECK-NEXT: ldtset x2, xzr, [sp] -# CHECK-NEXT: ldtset x0, xzr, [x2] -# CHECK-NEXT: ldtset x2, xzr, [sp] diff --git a/llvm/test/MC/Disassembler/AArch64/armv9.6a-occmo.txt b/llvm/test/MC/Disassembler/AArch64/armv9.6a-occmo.txt deleted file mode 100644 index 5c3b57a871b9e..0000000000000 --- a/llvm/test/MC/Disassembler/AArch64/armv9.6a-occmo.txt +++ /dev/null @@ -1,11 +0,0 @@ -# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py -# RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+occmo -mattr=+mte -disassemble < %s | FileCheck %s -[0x0c,0x7f,0x0b,0xd5] -[0xe0,0x7f,0x0b,0xd5] -[0x0d,0x7b,0x0b,0xd5] -[0xe1,0x7b,0x0b,0xd5] - -# CHECK: dc civaoc, x12 -# CHECK-NEXT: dc cigdvaoc, x0 -# CHECK-NEXT: dc cvaoc, x13 -# CHECK-NEXT: dc cgdvaoc, x1 diff --git a/llvm/test/MC/Disassembler/AArch64/armv9.6a-pcdphint.txt b/llvm/test/MC/Disassembler/AArch64/armv9.6a-pcdphint.txt deleted file mode 100644 index 3855ce035a4c1..0000000000000 --- a/llvm/test/MC/Disassembler/AArch64/armv9.6a-pcdphint.txt +++ /dev/null @@ -1,8 +0,0 @@ -# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py -# RUN: llvm-mc -triple aarch64 -disassemble -mattr=+pcdphint %s | FileCheck %s - -[0x1f,0x96,0x01,0xd5] -[0x3f,0x96,0x01,0xd5] - -# CHECK: stshh keep -# CHECK-NEXT: stshh strm diff --git a/llvm/test/MC/Disassembler/AArch64/armv9.6a-rme-gpc3.txt b/llvm/test/MC/Disassembler/AArch64/armv9.6a-rme-gpc3.txt deleted file mode 100644 index 75129ac48566e..0000000000000 --- a/llvm/test/MC/Disassembler/AArch64/armv9.6a-rme-gpc3.txt +++ /dev/null @@ -1,18 +0,0 @@ -# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py -# RUN: llvm-mc -triple aarch64 -disassemble %s | FileCheck %s - -[0x00,0x70,0x0e,0xd5] -[0x01,0x70,0x0e,0xd5] -[0x02,0x70,0x0e,0xd5] -[0x11,0x70,0x0e,0xd5] -[0x1e,0x70,0x0e,0xd5] -[0xa3,0x21,0x3e,0xd5] -[0xa4,0x21,0x1e,0xd5] - -# CHECK: apas x0 -# CHECK-NEXT: apas x1 -# CHECK-NEXT: apas x2 -# CHECK-NEXT: apas x17 -# CHECK-NEXT: apas x30 -# CHECK-NEXT: mrs x3, GPCBW_EL3 -# CHECK-NEXT: msr GPCBW_EL3, x4 From 8d29fef9a0735b26d2e98034962d8080751b7c5e Mon Sep 17 00:00:00 2001 From: Jonathan Thackray Date: Mon, 30 Jun 2025 16:59:02 +0100 Subject: [PATCH 2/2] fixup! [AArch64][llvm] Unify AArch64 tests into a single file (4/4) (NFC) This is a series of patches (4/4) to unify assembly/disassembly of recent AArch64 tests into a single file. The aim is to improve consistency, so that all instructions and system registers are thoroughly tested, and future test cases will be in a unified format. This patch: * removes .txt tests whose .s tests have functions * makes the .s tests have a roundabout run line to test both encoding and assembly Co-authored-by: Virginia Cangelosi --- llvm/test/MC/AArch64/armv9.6a-lsui.s | 78 +++++++++++++++++++++++- llvm/test/MC/AArch64/armv9.6a-occmo.s | 5 +- llvm/test/MC/AArch64/armv9.6a-pcdphint.s | 3 +- llvm/test/MC/AArch64/armv9.6a-rme-gpc3.s | 8 ++- 4 files changed, 89 insertions(+), 5 deletions(-) diff --git a/llvm/test/MC/AArch64/armv9.6a-lsui.s b/llvm/test/MC/AArch64/armv9.6a-lsui.s index 264a869b6d286..274727ebad812 100644 --- a/llvm/test/MC/AArch64/armv9.6a-lsui.s +++ b/llvm/test/MC/AArch64/armv9.6a-lsui.s @@ -3,9 +3,9 @@ // RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \ // RUN: | FileCheck %s --check-prefixes=CHECK-ERROR // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+lsui < %s \ -// RUN: | llvm-objdump -d --mattr=+lsui --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST +// RUN: | llvm-objdump -d --mattr=+lsui --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+lsui < %s \ -// RUN: | llvm-objdump -d --mattr=-lsui --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// RUN: | llvm-objdump -d --mattr=-lsui --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-UNKNOWN // Disassemble encoding and check the re-encoding (-show-encoding) matches. // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+lsui < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ @@ -23,18 +23,21 @@ ldtxr x9, [sp] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: c95f7fe9 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtxr x9, [sp, #0] // CHECK-INST: ldtxr x9, [sp] // CHECK-ENCODING: encoding: [0xe9,0x7f,0x5f,0xc9] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: c95f7fe9 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtxr x10, [x11] // CHECK-INST: ldtxr x10, [x11] // CHECK-ENCODING: encoding: [0x6a,0x7d,0x5f,0xc9] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: c95f7d6a // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtxr x10, [x11, #0] // CHECK-INST: ldtxr x10, [x11] // CHECK-ENCODING: encoding: [0x6a,0x7d,0x5f,0xc9] @@ -48,6 +51,7 @@ ldatxr x9, [sp] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: c95fffe9 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldatxr x10, [x11] // CHECK-INST: ldatxr x10, [x11] // CHECK-ENCODING: encoding: [0x6a,0xfd,0x5f,0xc9] @@ -61,18 +65,21 @@ sttxr wzr, w4, [sp] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 891f7fe4 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttxr wzr, w4, [sp, #0] // CHECK-INST: sttxr wzr, w4, [sp] // CHECK-ENCODING: encoding: [0xe4,0x7f,0x1f,0x89] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 891f7fe4 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttxr w5, x6, [x7] // CHECK-INST: sttxr w5, x6, [x7] // CHECK-ENCODING: encoding: [0xe6,0x7c,0x05,0xc9] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: c9057ce6 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttxr w5, x6, [x7, #0] // CHECK-INST: sttxr w5, x6, [x7] // CHECK-ENCODING: encoding: [0xe6,0x7c,0x05,0xc9] @@ -86,6 +93,7 @@ stltxr w2, w4, [sp] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 8902ffe4 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + stltxr w5, x6, [x7] // CHECK-INST: stltxr w5, x6, [x7] // CHECK-ENCODING: encoding: [0xe6,0xfc,0x05,0xc9] @@ -103,12 +111,14 @@ ldtp x21, x29, [x2, #504] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: e95ff455 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtp x22, x23, [x3, #-512] // CHECK-INST: ldtp x22, x23, [x3, #-512] // CHECK-ENCODING: encoding: [0x76,0x5c,0x60,0xe9] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: e9605c76 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtp x24, x25, [x4, #8] // CHECK-INST: ldtp x24, x25, [x4, #8] // CHECK-ENCODING: encoding: [0x98,0xe4,0x40,0xe9] @@ -122,6 +132,7 @@ sttp x3, x5, [sp], #16 // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: e88117e3 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttp x3, x5, [sp, #8]! // CHECK-INST: sttp x3, x5, [sp, #8]! // CHECK-ENCODING: encoding: [0xe3,0x97,0x80,0xe9] @@ -135,6 +146,7 @@ sttp q3, q5, [sp] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: ed0017e3 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttp q17, q19, [sp, #1008] // CHECK-INST: sttp q17, q19, [sp, #1008] // CHECK-ENCODING: encoding: [0xf1,0xcf,0x1f,0xed] @@ -152,12 +164,14 @@ ldtp x21, x29, [x2], #504 // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: e8dff455 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtp x22, x23, [x3], #-512 // CHECK-INST: ldtp x22, x23, [x3], #-512 // CHECK-ENCODING: encoding: [0x76,0x5c,0xe0,0xe8] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: e8e05c76 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtp x24, x25, [x4], #8 // CHECK-INST: ldtp x24, x25, [x4], #8 // CHECK-ENCODING: encoding: [0x98,0xe4,0xc0,0xe8] @@ -171,12 +185,14 @@ sttp q3, q5, [sp], #0 // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: ec8017e3 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttp q17, q19, [sp], #1008 // CHECK-INST: sttp q17, q19, [sp], #1008 // CHECK-ENCODING: encoding: [0xf1,0xcf,0x9f,0xec] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: ec9fcff1 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtp q23, q29, [x1], #-1024 // CHECK-INST: ldtp q23, q29, [x1], #-1024 // CHECK-ENCODING: encoding: [0x37,0x74,0xe0,0xec] @@ -193,12 +209,14 @@ ldtp x21, x29, [x2, #504]! // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: e9dff455 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtp x22, x23, [x3, #-512]! // CHECK-INST: ldtp x22, x23, [x3, #-512]! // CHECK-ENCODING: encoding: [0x76,0x5c,0xe0,0xe9] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: e9e05c76 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtp x24, x25, [x4, #8]! // CHECK-INST: ldtp x24, x25, [x4, #8]! // CHECK-ENCODING: encoding: [0x98,0xe4,0xc0,0xe9] @@ -212,12 +230,14 @@ sttp q3, q5, [sp, #0]! // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: ed8017e3 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttp q17, q19, [sp, #1008]! // CHECK-INST: sttp q17, q19, [sp, #1008]! // CHECK-ENCODING: encoding: [0xf1,0xcf,0x9f,0xed] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: ed9fcff1 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtp q23, q29, [x1, #-1024]! // CHECK-INST: ldtp q23, q29, [x1, #-1024]! // CHECK-ENCODING: encoding: [0x37,0x74,0xe0,0xed] @@ -235,42 +255,49 @@ ldtp q23, q29, [x1, #-1024]! // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: c9807c41 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + cast x0, x1, [sp, #0] // CHECK-INST: cast x0, x1, [sp] // CHECK-ENCODING: encoding: [0xe1,0x7f,0x80,0xc9] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: c9807fe1 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + casat x0, x1, [x2] // CHECK-INST: casat x0, x1, [x2] // CHECK-ENCODING: encoding: [0x41,0x7c,0xc0,0xc9] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: c9c07c41 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + casat x0, x1, [sp, #0] // CHECK-INST: casat x0, x1, [sp] // CHECK-ENCODING: encoding: [0xe1,0x7f,0xc0,0xc9] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: c9c07fe1 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + casalt x0, x1, [x2] // CHECK-INST: casalt x0, x1, [x2] // CHECK-ENCODING: encoding: [0x41,0xfc,0xc0,0xc9] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: c9c0fc41 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + casalt x0, x1, [sp, #0] // CHECK-INST: casalt x0, x1, [sp] // CHECK-ENCODING: encoding: [0xe1,0xff,0xc0,0xc9] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: c9c0ffe1 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + caslt x0, x1, [x2] // CHECK-INST: caslt x0, x1, [x2] // CHECK-ENCODING: encoding: [0x41,0xfc,0x80,0xc9] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: c980fc41 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + caslt x0, x1, [sp, #0] // CHECK-INST: caslt x0, x1, [sp] // CHECK-ENCODING: encoding: [0xe1,0xff,0x80,0xc9] @@ -285,42 +312,49 @@ caspt x0, x1, x2, x3, [x4] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 49807c82 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + caspt x0, x1, x2, x3, [sp, #0] // CHECK-INST: caspt x0, x1, x2, x3, [sp] // CHECK-ENCODING: encoding: [0xe2,0x7f,0x80,0x49] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 49807fe2 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + caspat x0, x1, x2, x3, [x4] // CHECK-INST: caspat x0, x1, x2, x3, [x4] // CHECK-ENCODING: encoding: [0x82,0x7c,0xc0,0x49] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 49c07c82 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + caspat x0, x1, x2, x3, [sp, #0] // CHECK-INST: caspat x0, x1, x2, x3, [sp] // CHECK-ENCODING: encoding: [0xe2,0x7f,0xc0,0x49] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 49c07fe2 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + casplt x0, x1, x2, x3, [x4] // CHECK-INST: casplt x0, x1, x2, x3, [x4] // CHECK-ENCODING: encoding: [0x82,0xfc,0x80,0x49] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 4980fc82 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + casplt x0, x1, x2, x3, [sp, #0] // CHECK-INST: casplt x0, x1, x2, x3, [sp] // CHECK-ENCODING: encoding: [0xe2,0xff,0x80,0x49] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 4980ffe2 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + caspalt x0, x1, x2, x3, [x4] // CHECK-INST: caspalt x0, x1, x2, x3, [x4] // CHECK-ENCODING: encoding: [0x82,0xfc,0xc0,0x49] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 49c0fc82 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + caspalt x0, x1, x2, x3, [sp, #0] // CHECK-INST: caspalt x0, x1, x2, x3, [sp] // CHECK-ENCODING: encoding: [0xe2,0xff,0xc0,0x49] @@ -337,6 +371,7 @@ swpt w7, wzr, [x5] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 192784bf // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + swpt x9, xzr, [sp] // CHECK-INST: swpt x9, xzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x87,0x29,0x59] @@ -350,6 +385,7 @@ swpta w7, wzr, [x5] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 19a784bf // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + swpta x9, xzr, [sp] // CHECK-INST: swpta x9, xzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x87,0xa9,0x59] @@ -363,6 +399,7 @@ swptl w7, wzr, [x5] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 196784bf // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + swptl x9, xzr, [sp] // CHECK-INST: swptl x9, xzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x87,0x69,0x59] @@ -376,6 +413,7 @@ swptal w7, wzr, [x5] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 19e784bf // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + swptal x9, xzr, [sp] // CHECK-INST: swptal x9, xzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x87,0xe9,0x59] @@ -393,6 +431,7 @@ ldtadd w7, wzr, [x5] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 192704bf // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtadd x9, xzr, [sp] // CHECK-INST: ldtadd x9, xzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x07,0x29,0x59] @@ -406,6 +445,7 @@ ldtadda w7, wzr, [x5] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 19a704bf // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtadda x9, xzr, [sp] // CHECK-INST: ldtadda x9, xzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x07,0xa9,0x59] @@ -419,6 +459,7 @@ ldtaddl w7, wzr, [x5] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 196704bf // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtaddl x9, xzr, [sp] // CHECK-INST: ldtaddl x9, xzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x07,0x69,0x59] @@ -432,6 +473,7 @@ ldtaddal w7, wzr, [x5] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 19e704bf // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtaddal x9, xzr, [sp] // CHECK-INST: ldtaddal x9, xzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x07,0xe9,0x59] @@ -445,6 +487,7 @@ ldtclr w7, wzr, [x5] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 192714bf // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtclr x9, xzr, [sp] // CHECK-INST: ldtclr x9, xzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x17,0x29,0x59] @@ -458,6 +501,7 @@ ldtclrl w7, wzr, [x5] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 196714bf // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtclrl x9, xzr, [sp] // CHECK-INST: ldtclrl x9, xzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x17,0x69,0x59] @@ -471,6 +515,7 @@ ldtclra w7, wzr, [x5] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 19a714bf // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtclra x9, xzr, [sp] // CHECK-INST: ldtclra x9, xzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x17,0xa9,0x59] @@ -484,6 +529,7 @@ ldtclral w7, wzr, [x5] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 19e714bf // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtclral x9, xzr, [sp] // CHECK-INST: ldtclral x9, xzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x17,0xe9,0x59] @@ -497,6 +543,7 @@ ldtset w7, wzr, [x5] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 192734bf // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtset x9, xzr, [sp] // CHECK-INST: ldtset x9, xzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x37,0x29,0x59] @@ -510,6 +557,7 @@ ldtsetl w7, wzr, [x5] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 196734bf // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtsetl x9, xzr, [sp] // CHECK-INST: ldtsetl x9, xzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x37,0x69,0x59] @@ -523,6 +571,7 @@ ldtseta w7, wzr, [x5] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 19a734bf // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtseta x9, xzr, [sp] // CHECK-INST: ldtseta x9, xzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x37,0xa9,0x59] @@ -536,6 +585,7 @@ ldtsetal w7, wzr, [x5] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 19e734bf // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtsetal x9, xzr, [sp] // CHECK-INST: ldtsetal x9, xzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x37,0xe9,0x59] @@ -553,18 +603,21 @@ sttadd w0, [x2] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 1920045f // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttadd w2, [sp] // CHECK-INST: ldtadd w2, wzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x07,0x22,0x19] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 192207ff // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttadd x0, [x2] // CHECK-INST: ldtadd x0, xzr, [x2] // CHECK-ENCODING: encoding: [0x5f,0x04,0x20,0x59] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 5920045f // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttadd x2, [sp] // CHECK-INST: ldtadd x2, xzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x07,0x22,0x59] @@ -578,18 +631,21 @@ sttaddl w0, [x2] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 1960045f // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttaddl w2, [sp] // CHECK-INST: ldtaddl w2, wzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x07,0x62,0x19] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 196207ff // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttaddl x0, [x2] // CHECK-INST: ldtaddl x0, xzr, [x2] // CHECK-ENCODING: encoding: [0x5f,0x04,0x60,0x59] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 5960045f // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttaddl x2, [sp] // CHECK-INST: ldtaddl x2, xzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x07,0x62,0x59] @@ -603,18 +659,21 @@ sttclr w0, [x2] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 1920145f // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttclr w2, [sp] // CHECK-INST: ldtclr w2, wzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x17,0x22,0x19] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 192217ff // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttclr x0, [x2] // CHECK-INST: ldtclr x0, xzr, [x2] // CHECK-ENCODING: encoding: [0x5f,0x14,0x20,0x59] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 5920145f // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttclr x2, [sp] // CHECK-INST: ldtclr x2, xzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x17,0x22,0x59] @@ -628,18 +687,21 @@ sttclrl w0, [x2] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 1960145f // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttclrl w2, [sp] // CHECK-INST: ldtclrl w2, wzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x17,0x62,0x19] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 196217ff // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttclrl x0, [x2] // CHECK-INST: ldtclrl x0, xzr, [x2] // CHECK-ENCODING: encoding: [0x5f,0x14,0x60,0x59] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 5960145f // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttclrl x2, [sp] // CHECK-INST: ldtclrl x2, xzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x17,0x62,0x59] @@ -653,18 +715,21 @@ sttset w0, [x2] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 1920345f // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttset w2, [sp] // CHECK-INST: ldtset w2, wzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x37,0x22,0x19] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 192237ff // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttset x0, [x2] // CHECK-INST: ldtset x0, xzr, [x2] // CHECK-ENCODING: encoding: [0x5f,0x34,0x20,0x59] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 5920345f // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttset x2, [sp] // CHECK-INST: ldtset x2, xzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x37,0x22,0x59] @@ -678,18 +743,21 @@ sttsetl w0, [x2] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 1960345f // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttsetl w2, [sp] // CHECK-INST: ldtsetl w2, wzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x37,0x62,0x19] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 196237ff // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttsetl x0, [x2] // CHECK-INST: ldtsetl x0, xzr, [x2] // CHECK-ENCODING: encoding: [0x5f,0x34,0x60,0x59] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: 5960345f // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttsetl x2, [sp] // CHECK-INST: ldtsetl x2, xzr, [sp] // CHECK-ENCODING: encoding: [0xff,0x37,0x62,0x59] @@ -706,18 +774,21 @@ ldtnp x21, x29, [x2, #504] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: e85ff455 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtnp x22, x23, [x3, #-512] // CHECK-INST: ldtnp x22, x23, [x3, #-512] // CHECK-ENCODING: encoding: [0x76,0x5c,0x60,0xe8] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: e8605c76 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtnp x24, x25, [x4, #8] // CHECK-INST: ldtnp x24, x25, [x4, #8] // CHECK-ENCODING: encoding: [0x98,0xe4,0x40,0xe8] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: e840e498 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + ldtnp q23, q29, [x1, #-1024] // CHECK-INST: ldtnp q23, q29, [x1, #-1024] // CHECK-ENCODING: encoding: [0x37,0x74,0x60,0xec] @@ -731,18 +802,21 @@ sttnp x3, x5, [sp] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: e80017e3 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttnp x17, x19, [sp, #64] // CHECK-INST: sttnp x17, x19, [sp, #64] // CHECK-ENCODING: encoding: [0xf1,0x4f,0x04,0xe8] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: e8044ff1 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttnp q3, q5, [sp] // CHECK-INST: sttnp q3, q5, [sp] // CHECK-ENCODING: encoding: [0xe3,0x17,0x00,0xec] // CHECK-ERROR: error: instruction requires: lsui // CHECK-UNKNOWN: ec0017e3 // ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui + sttnp q17, q19, [sp, #1008] // CHECK-INST: sttnp q17, q19, [sp, #1008] // CHECK-ENCODING: encoding: [0xf1,0xcf,0x1f,0xec] diff --git a/llvm/test/MC/AArch64/armv9.6a-occmo.s b/llvm/test/MC/AArch64/armv9.6a-occmo.s index 0b3ec13dcd0f1..1c00721e8b9ca 100644 --- a/llvm/test/MC/AArch64/armv9.6a-occmo.s +++ b/llvm/test/MC/AArch64/armv9.6a-occmo.s @@ -5,7 +5,7 @@ // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+occmo,+mte,+memtag < %s \ // RUN: | llvm-objdump -d --mattr=+occmo,+mte,+memtag --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+occmo,+mte,+memtag < %s \ -// RUN: | llvm-objdump -d --mattr=-occmo,-mte,-memtag --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// RUN: | llvm-objdump -d --mattr=-occmo,-mte,-memtag --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-UNKNOWN // Disassemble encoding and check the re-encoding (-show-encoding) matches. // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+occmo,+mte,+memtag < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ @@ -19,18 +19,21 @@ dc civaoc, x12 // CHECK-ENCODING: encoding: [0x0c,0x7f,0x0b,0xd5] // CHECK-ERROR: error: DC CIVAOC requires: occmo // CHECK-UNKNOWN: d50b7f0c sys #3, c7, c15, #0, x12 + dc cigdvaoc, x0 // CHECK-INST: dc cigdvaoc, x0 // CHECK-ENCODING: encoding: [0xe0,0x7f,0x0b,0xd5] // CHECK-ERROR: error: DC CIGDVAOC requires: mte, memtag, occmo // CHECK-UNKNOWN: d50b7fe0 sys #3, c7, c15, #7, x0 // ERROR: :[[@LINE-3]]:4: error: DC CIGDVAOC requires: mte, memtag, occmo + dc cvaoc, x13 // CHECK-INST: dc cvaoc, x13 // CHECK-ENCODING: encoding: [0x0d,0x7b,0x0b,0xd5] // CHECK-ERROR: error: DC CVAOC requires: occmo // CHECK-UNKNOWN: d50b7b0d sys #3, c7, c11, #0, x13 // ERROR: :[[@LINE-3]]:4: error: DC CVAOC requires: occmo + dc cgdvaoc, x1 // CHECK-INST: dc cgdvaoc, x1 // CHECK-ENCODING: encoding: [0xe1,0x7b,0x0b,0xd5] diff --git a/llvm/test/MC/AArch64/armv9.6a-pcdphint.s b/llvm/test/MC/AArch64/armv9.6a-pcdphint.s index 8cf7b4518624f..983e7e058df18 100644 --- a/llvm/test/MC/AArch64/armv9.6a-pcdphint.s +++ b/llvm/test/MC/AArch64/armv9.6a-pcdphint.s @@ -5,7 +5,7 @@ // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+pcdphint < %s \ // RUN: | llvm-objdump -d --mattr=+pcdphint - | FileCheck %s --check-prefix=CHECK-INST // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+pcdphint < %s \ -// RUN: | llvm-objdump -d --mattr=-pcdphint - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// RUN: | llvm-objdump -d --mattr=-pcdphint - | FileCheck %s --check-prefix=CHECK-UNKNOWN // Disassemble encoding and check the re-encoding (-show-encoding) matches. // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+pcdphint < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ @@ -18,6 +18,7 @@ stshh keep // CHECK-ERROR: error: instruction requires: pcdphint // CHECK-UNKNOWN: d501961f msr S0_1_C9_C6_0, xzr // ERROR: :[[@LINE-3]]:3: error: instruction requires: pcdphint + stshh strm // CHECK-INST: stshh strm // CHECK-ENCODING: encoding: [0x3f,0x96,0x01,0xd5] diff --git a/llvm/test/MC/AArch64/armv9.6a-rme-gpc3.s b/llvm/test/MC/AArch64/armv9.6a-rme-gpc3.s index 201ad61c49baa..888d87c633af8 100644 --- a/llvm/test/MC/AArch64/armv9.6a-rme-gpc3.s +++ b/llvm/test/MC/AArch64/armv9.6a-rme-gpc3.s @@ -3,7 +3,7 @@ // RUN: llvm-mc -triple=aarch64 -filetype=obj < %s \ // RUN: | llvm-objdump -d --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST // RUN: llvm-mc -triple=aarch64 -filetype=obj < %s \ -// RUN: | llvm-objdump -d --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// RUN: | llvm-objdump -d --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-UNKNOWN // Disassemble encoding and check the re-encoding (-show-encoding) matches. // RUN: llvm-mc -triple=aarch64 -show-encoding < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ @@ -15,26 +15,32 @@ // CHECK-INST: apas x0 // CHECK-ENCODING: encoding: [0x00,0x70,0x0e,0xd5] // CHECK-UNKNOWN: d50e7000 apas x0 + apas x1 // CHECK-INST: apas x1 // CHECK-ENCODING: encoding: [0x01,0x70,0x0e,0xd5] // CHECK-UNKNOWN: d50e7001 apas x1 + apas x2 // CHECK-INST: apas x2 // CHECK-ENCODING: encoding: [0x02,0x70,0x0e,0xd5] // CHECK-UNKNOWN: d50e7002 apas x2 + apas x17 // CHECK-INST: apas x17 // CHECK-ENCODING: encoding: [0x11,0x70,0x0e,0xd5] // CHECK-UNKNOWN: d50e7011 apas x17 + apas x30 // CHECK-INST: apas x30 // CHECK-ENCODING: encoding: [0x1e,0x70,0x0e,0xd5] // CHECK-UNKNOWN: d50e701e apas x30 + mrs x3, GPCBW_EL3 // CHECK-INST: mrs x3, GPCBW_EL3 // CHECK-ENCODING: encoding: [0xa3,0x21,0x3e,0xd5] // CHECK-UNKNOWN: d53e21a3 mrs x3, GPCBW_EL3 + msr GPCBW_EL3, x4 // CHECK-INST: msr GPCBW_EL3, x4 // CHECK-ENCODING: encoding: [0xa4,0x21,0x1e,0xd5]