Skip to content

Conversation

jthackray
Copy link
Contributor

@jthackray jthackray commented Jun 30, 2025

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

See also #146328, #146329 and #146330.

@llvmbot llvmbot added backend:AArch64 llvm:mc Machine (object) code labels Jun 30, 2025
@llvmbot
Copy link
Member

llvmbot commented Jun 30, 2025

@llvm/pr-subscribers-mc

@llvm/pr-subscribers-backend-aarch64

Author: Jonathan Thackray (jthackray)

Changes

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

Patch is 67.28 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/146331.diff

8 Files Affected:

  • (modified) llvm/test/MC/AArch64/armv9.6a-lsui.s (+708-365)
  • (modified) llvm/test/MC/AArch64/armv9.6a-occmo.s (+38-16)
  • (modified) llvm/test/MC/AArch64/armv9.6a-pcdphint.s (+25-12)
  • (modified) llvm/test/MC/AArch64/armv9.6a-rme-gpc3.s (+34-12)
  • (removed) llvm/test/MC/Disassembler/AArch64/armv9.6a-lsui.txt (-323)
  • (removed) llvm/test/MC/Disassembler/AArch64/armv9.6a-occmo.txt (-11)
  • (removed) llvm/test/MC/Disassembler/AArch64/armv9.6a-pcdphint.txt (-8)
  • (removed) llvm/test/MC/Disassembler/AArch64/armv9.6a-rme-gpc3.txt (-18)
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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// 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 <unknown>
+// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui
+caspt x0, x1, x2, x3, [sp, ...
[truncated]

@jthackray
Copy link
Contributor Author

Accidentally closed.

@jthackray jthackray reopened this Jul 24, 2025
// CHECK-ENCODING: encoding: [0xe9,0x7f,0x5f,0xc9]
// CHECK-ERROR: error: instruction requires: lsui
// CHECK-UNKNOWN: c95f7fe9 <unknown>
// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This ERROR can be removed, it is being checked with CHECK-ERROR

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, done.

// CHECK-ENCODING: encoding: [0x55,0xf4,0xdf,0xe8]
// CHECK-ERROR: error: instruction requires: lsui
// CHECK-UNKNOWN: e8dff455 <unknown>
// ERROR: :[[@LINE-3]]:3: error: instruction requires: lsui
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is no need for ERROR, please remove

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, done.

// 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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can combine these 2 run into 1
// RUN: llvm-mc -triple=aarch64 -filetype=obj < %s
// RUN: | llvm-objdump -d --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST,CHECK-UNKNOWN

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I couldn't quite get this to work for both using llvm-lit, since one is checking a substring of the other, and the matching gets confused, but we don't need CHECK-INST since we're checking this within CHECK-UNKNOWN, and there is no instruction gating for the apas instruction.

// 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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove ERROR

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, done.

@jthackray jthackray force-pushed the users/jthackray/unify-tests3 branch from 59e7365 to 119f50d Compare August 6, 2025 15:21
@jthackray jthackray force-pushed the users/jthackray/unify-tests4 branch from 69ee738 to bb0dd7a Compare August 6, 2025 15:21
jthackray added a commit that referenced this pull request Aug 13, 2025
…146328)

This is a series of patches (1/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:
 * unifies errorless .s and .txt tests into a single file
 * remove .txt tests which don't have feature requirements
* makes the .s tests have a roundabout run line to test both encoding
and assembly
 
See also #146329, #146330 and #146331.

---------

Co-authored-by: Virginia Cangelosi <[email protected]>
jthackray added a commit that referenced this pull request Aug 13, 2025
…146329)

This is a series of patches (2/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 which have only one feature required
* makes the .s tests have a roundabout run line to test both encoding
and assembly
 * creates diagnostic tests when needed
 * fixes naming convention of tests
 
See also #146328, #146330 and #146331.

Co-authored-by: Virginia Cangelosi <[email protected]>
@jthackray jthackray force-pushed the users/jthackray/unify-tests3 branch from 119f50d to 0d1fdcb Compare August 13, 2025 13:42
Base automatically changed from users/jthackray/unify-tests3 to main August 13, 2025 14:07
jthackray added a commit that referenced this pull request Aug 13, 2025
…146330)

This is a series of patches (3/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 which have multiple feature dependencies
* makes the .s tests have a roundabout run line to test both encoding
and assembly
 * creates diagnostic tests when needed

See also #146328, #146329 and #146331.

Co-authored-by: Virginia Cangelosi <[email protected]>
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 <[email protected]>
@jthackray jthackray force-pushed the users/jthackray/unify-tests4 branch from bb0dd7a to 0465c1c Compare August 13, 2025 14:12
@jthackray jthackray enabled auto-merge (squash) August 13, 2025 14:12
@jthackray jthackray merged commit 7bd0c5f into main Aug 13, 2025
9 checks passed
@jthackray jthackray deleted the users/jthackray/unify-tests4 branch August 13, 2025 14:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend:AArch64 llvm:mc Machine (object) code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants