diff --git a/llvm/test/MC/AArch64/armv9.6a-lsui.s b/llvm/test/MC/AArch64/armv9.6a-lsui.s index d4a5e1f980560..274727ebad812 100644 --- a/llvm/test/MC/AArch64/armv9.6a-lsui.s +++ b/llvm/test/MC/AArch64/armv9.6a-lsui.s @@ -1,408 +1,825 @@ -// 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..1c00721e8b9ca 100644 --- a/llvm/test/MC/AArch64/armv9.6a-occmo.s +++ b/llvm/test/MC/AArch64/armv9.6a-occmo.s @@ -1,17 +1,42 @@ -// 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..983e7e058df18 100644 --- a/llvm/test/MC/AArch64/armv9.6a-pcdphint.s +++ b/llvm/test/MC/AArch64/armv9.6a-pcdphint.s @@ -1,13 +1,27 @@ -// 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..888d87c633af8 100644 --- a/llvm/test/MC/AArch64/armv9.6a-rme-gpc3.s +++ b/llvm/test/MC/AArch64/armv9.6a-rme-gpc3.s @@ -1,19 +1,47 @@ -# 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 - msr GPCBW_EL3, x4 +// CHECK-INST: mrs x3, GPCBW_EL3 +// CHECK-ENCODING: encoding: [0xa3,0x21,0x3e,0xd5] +// CHECK-UNKNOWN: d53e21a3 mrs x3, GPCBW_EL3 -# 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] + msr GPCBW_EL3, x4 +// 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