diff --git a/llvm/test/MC/AArch64/armv9.2a-mec.s b/llvm/test/MC/AArch64/armv9.2a-mec.s index 42e4bf732086e..1998b43d336ec 100644 --- a/llvm/test/MC/AArch64/armv9.2a-mec.s +++ b/llvm/test/MC/AArch64/armv9.2a-mec.s @@ -1,55 +1,129 @@ -// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+mec < %s | FileCheck %s -// RUN: not llvm-mc -triple aarch64-none-linux-gnu < %s 2>&1 | FileCheck --check-prefix=CHECK-NO-MEC %s - - mrs x0, MECIDR_EL2 -// CHECK: mrs x0, MECIDR_EL2 // encoding: [0xe0,0xa8,0x3c,0xd5] -// CHECK-NO-MEC: [[@LINE-2]]:19: error: expected readable system register - mrs x0, MECID_P0_EL2 -// CHECK: mrs x0, MECID_P0_EL2 // encoding: [0x00,0xa8,0x3c,0xd5] -// CHECK-NO-MEC: [[@LINE-2]]:19: error: expected readable system register - mrs x0, MECID_A0_EL2 -// CHECK: mrs x0, MECID_A0_EL2 // encoding: [0x20,0xa8,0x3c,0xd5] -// CHECK-NO-MEC: [[@LINE-2]]:19: error: expected readable system register - mrs x0, MECID_P1_EL2 -// CHECK: mrs x0, MECID_P1_EL2 // encoding: [0x40,0xa8,0x3c,0xd5] -// CHECK-NO-MEC: [[@LINE-2]]:19: error: expected readable system register - mrs x0, MECID_A1_EL2 -// CHECK: mrs x0, MECID_A1_EL2 // encoding: [0x60,0xa8,0x3c,0xd5] -// CHECK-NO-MEC: [[@LINE-2]]:19: error: expected readable system register - mrs x0, VMECID_P_EL2 -// CHECK: mrs x0, VMECID_P_EL2 // encoding: [0x00,0xa9,0x3c,0xd5] -// CHECK-NO-MEC: [[@LINE-2]]:19: error: expected readable system register - mrs x0, VMECID_A_EL2 -// CHECK: mrs x0, VMECID_A_EL2 // encoding: [0x20,0xa9,0x3c,0xd5] -// CHECK-NO-MEC: [[@LINE-2]]:19: error: expected readable system register - mrs x0, MECID_RL_A_EL3 -// CHECK: mrs x0, MECID_RL_A_EL3 // encoding: [0x20,0xaa,0x3e,0xd5] -// CHECK-NO-MEC: [[@LINE-2]]:19: error: expected readable system register - msr MECID_P0_EL2, x0 -// CHECK: msr MECID_P0_EL2, x0 // encoding: [0x00,0xa8,0x1c,0xd5] -// CHECK-NO-MEC: [[@LINE-2]]:15: error: expected writable system register or pstate - msr MECID_A0_EL2, x0 -// CHECK: msr MECID_A0_EL2, x0 // encoding: [0x20,0xa8,0x1c,0xd5] -// CHECK-NO-MEC: [[@LINE-2]]:15: error: expected writable system register or pstate - msr MECID_P1_EL2, x0 -// CHECK: msr MECID_P1_EL2, x0 // encoding: [0x40,0xa8,0x1c,0xd5] -// CHECK-NO-MEC: [[@LINE-2]]:15: error: expected writable system register or pstate - msr MECID_A1_EL2, x0 -// CHECK: msr MECID_A1_EL2, x0 // encoding: [0x60,0xa8,0x1c,0xd5] -// CHECK-NO-MEC: [[@LINE-2]]:15: error: expected writable system register or pstate - msr VMECID_P_EL2, x0 -// CHECK: msr VMECID_P_EL2, x0 // encoding: [0x00,0xa9,0x1c,0xd5] -// CHECK-NO-MEC: [[@LINE-2]]:15: error: expected writable system register or pstate - msr VMECID_A_EL2, x0 -// CHECK: msr VMECID_A_EL2, x0 // encoding: [0x20,0xa9,0x1c,0xd5] -// CHECK-NO-MEC: [[@LINE-2]]:15: error: expected writable system register or pstate - msr MECID_RL_A_EL3, x0 -// CHECK: msr MECID_RL_A_EL3, x0 // encoding: [0x20,0xaa,0x1e,0xd5] -// CHECK-NO-MEC: [[@LINE-2]]:15: error: expected writable system register or pstate - - dc cigdpae, x0 -// CHECK: dc cigdpae, x0 // encoding: [0xe0,0x7e,0x0c,0xd5] -// CHECK-NO-MEC: [[@LINE-2]]:14: error: DC CIGDPAE requires: mec - dc cipae, x0 -// CHECK: dc cipae, x0 // encoding: [0x00,0x7e,0x0c,0xd5] -// CHECK-NO-MEC: [[@LINE-2]]:14: error: DC CIPAE requires: mec +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+mec < %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=+mec < %s \ +// RUN: | llvm-objdump -d --mattr=+mec --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+mec < %s \ +// RUN: | llvm-objdump -d --mattr=-mec --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=+mec < %s \ +// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+mec -disassemble -show-encoding \ +// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST +// RUN: llvm-mc -triple aarch64 -disassemble < %s 2>&1 | FileCheck --check-prefix=CHECK-NO-MEC %s + + +mrs x0, MECIDR_EL2 +// CHECK-INST: mrs x0, MECIDR_EL2 +// CHECK-ENCODING: encoding: [0xe0,0xa8,0x3c,0xd5] +// CHECK-ERROR: error: expected readable system register +// CHECK-UNKNOWN: d53ca8e0 mrs x0, S3_4_C10_C8_7 + +mrs x0, MECID_P0_EL2 +// CHECK-INST: mrs x0, MECID_P0_EL2 +// CHECK-ENCODING: encoding: [0x00,0xa8,0x3c,0xd5] +// CHECK-ERROR: error: expected readable system register +// CHECK-UNKNOWN: d53ca800 mrs x0, S3_4_C10_C8_0 + +mrs x0, MECID_A0_EL2 +// CHECK-INST: mrs x0, MECID_A0_EL2 +// CHECK-ENCODING: encoding: [0x20,0xa8,0x3c,0xd5] +// CHECK-ERROR: error: expected readable system register +// CHECK-UNKNOWN: d53ca820 mrs x0, S3_4_C10_C8_1 + +mrs x0, MECID_P1_EL2 +// CHECK-INST: mrs x0, MECID_P1_EL2 +// CHECK-ENCODING: encoding: [0x40,0xa8,0x3c,0xd5] +// CHECK-ERROR: error: expected readable system register +// CHECK-UNKNOWN: d53ca840 mrs x0, S3_4_C10_C8_2 + +mrs x0, MECID_A1_EL2 +// CHECK-INST: mrs x0, MECID_A1_EL2 +// CHECK-ENCODING: encoding: [0x60,0xa8,0x3c,0xd5] +// CHECK-ERROR: error: expected readable system register +// CHECK-UNKNOWN: d53ca860 mrs x0, S3_4_C10_C8_3 + +mrs x0, VMECID_P_EL2 +// CHECK-INST: mrs x0, VMECID_P_EL2 +// CHECK-ENCODING: encoding: [0x00,0xa9,0x3c,0xd5] +// CHECK-ERROR: error: expected readable system register +// CHECK-UNKNOWN: d53ca900 mrs x0, S3_4_C10_C9_0 + +mrs x0, VMECID_A_EL2 +// CHECK-INST: mrs x0, VMECID_A_EL2 +// CHECK-ENCODING: encoding: [0x20,0xa9,0x3c,0xd5] +// CHECK-ERROR: error: expected readable system register +// CHECK-UNKNOWN: d53ca920 mrs x0, S3_4_C10_C9_1 + +mrs x0, MECID_RL_A_EL3 +// CHECK-INST: mrs x0, MECID_RL_A_EL3 +// CHECK-ENCODING: encoding: [0x20,0xaa,0x3e,0xd5] +// CHECK-ERROR: error: expected readable system register +// CHECK-UNKNOWN: d53eaa20 mrs x0, S3_6_C10_C10_1 + +msr MECID_P0_EL2, x0 +// CHECK-INST: msr MECID_P0_EL2, x0 +// CHECK-ENCODING: encoding: [0x00,0xa8,0x1c,0xd5] +// CHECK-ERROR: error: expected writable system register or pstate +// CHECK-UNKNOWN: d51ca800 msr S3_4_C10_C8_0, x0 + +msr MECID_A0_EL2, x0 +// CHECK-INST: msr MECID_A0_EL2, x0 +// CHECK-ENCODING: encoding: [0x20,0xa8,0x1c,0xd5] +// CHECK-ERROR: error: expected writable system register or pstate +// CHECK-UNKNOWN: d51ca820 msr S3_4_C10_C8_1, x0 + +msr MECID_P1_EL2, x0 +// CHECK-INST: msr MECID_P1_EL2, x0 +// CHECK-ENCODING: encoding: [0x40,0xa8,0x1c,0xd5] +// CHECK-ERROR: error: expected writable system register or pstate +// CHECK-UNKNOWN: d51ca840 msr S3_4_C10_C8_2, x0 + +msr MECID_A1_EL2, x0 +// CHECK-INST: msr MECID_A1_EL2, x0 +// CHECK-ENCODING: encoding: [0x60,0xa8,0x1c,0xd5] +// CHECK-ERROR: error: expected writable system register or pstate +// CHECK-UNKNOWN: d51ca860 msr S3_4_C10_C8_3, x0 + +msr VMECID_P_EL2, x0 +// CHECK-INST: msr VMECID_P_EL2, x0 +// CHECK-ENCODING: encoding: [0x00,0xa9,0x1c,0xd5] +// CHECK-ERROR: error: expected writable system register or pstate +// CHECK-UNKNOWN: d51ca900 msr S3_4_C10_C9_0, x0 + +msr VMECID_A_EL2, x0 +// CHECK-INST: msr VMECID_A_EL2, x0 +// CHECK-ENCODING: encoding: [0x20,0xa9,0x1c,0xd5] +// CHECK-ERROR: error: expected writable system register or pstate +// CHECK-UNKNOWN: d51ca920 msr S3_4_C10_C9_1, x0 + +msr MECID_RL_A_EL3, x0 +// CHECK-INST: msr MECID_RL_A_EL3, x0 +// CHECK-ENCODING: encoding: [0x20,0xaa,0x1e,0xd5] +// CHECK-ERROR: error: expected writable system register or pstate +// CHECK-UNKNOWN: d51eaa20 msr S3_6_C10_C10_1, x0 + +dc cigdpae, x0 +// CHECK-INST: dc cigdpae, x0 +// CHECK-ENCODING: encoding: [0xe0,0x7e,0x0c,0xd5] +// CHECK-ERROR: :[[@LINE-3]]:4: error: DC CIGDPAE requires: mec +// CHECK-UNKNOWN: d50c7ee0 sys #4, c7, c14, #7, x0 +// CHECK-NO-MEC: sys #4, c7, c14, #7, x0 + +dc cipae, x0 +// CHECK-INST: dc cipae, x0 +// CHECK-ENCODING: encoding: [0x00,0x7e,0x0c,0xd5] +// CHECK-ERROR: :[[@LINE-3]]:4: error: DC CIPAE requires: mec +// CHECK-UNKNOWN: d50c7e00 sys #4, c7, c14, #0, x0 +// CHECK-NO-MEC: sys #4, c7, c14, #0, x0 + +sys #4, c7, c14, #7, x0 +// CHECK-INST: dc cigdpae, x0 +// CHECK-ENCODING: encoding: [0xe0,0x7e,0x0c,0xd5] +// CHECK-UNKNOWN: d50c7ee0 sys #4, c7, c14, #7, x0 + +sys #4, c7, c14, #0, x0 +// CHECK-INST: dc cipae, x0 +// CHECK-ENCODING: encoding: [0x00,0x7e,0x0c,0xd5] +// CHECK-UNKNOWN: d50c7e00 sys #4, c7, c14, #0, x0 diff --git a/llvm/test/MC/AArch64/armv9.4-lse128.s b/llvm/test/MC/AArch64/armv9.4-lse128.s deleted file mode 100644 index a639278ec8263..0000000000000 --- a/llvm/test/MC/AArch64/armv9.4-lse128.s +++ /dev/null @@ -1,98 +0,0 @@ -// RUN: not llvm-mc -triple aarch64 -show-encoding -mattr +lse128 %s 2>%t | FileCheck %s -// RUN: FileCheck %s --input-file=%t --check-prefix=ERROR-INVALID-OP -// RUN: not llvm-mc -triple aarch64 -show-encoding %s 2>&1 | FileCheck --check-prefix=ERROR-NO-LSE128 %s - -ldclrp x1, x2, [x11] -// CHECK: ldclrp x1, x2, [x11] // encoding: [0x61,0x11,0x22,0x19] -// ERROR-NO-LSE128: [[@LINE-2]]:1: error: instruction requires: lse128 -ldclrp x21, x22, [sp] -// CHECK: ldclrp x21, x22, [sp] // encoding: [0xf5,0x13,0x36,0x19] -// ERROR-NO-LSE128: [[@LINE-2]]:1: error: instruction requires: lse128 -ldclrpa x1, x2, [x11] -// CHECK: ldclrpa x1, x2, [x11] // encoding: [0x61,0x11,0xa2,0x19] -// ERROR-NO-LSE128: [[@LINE-2]]:1: error: instruction requires: lse128 -ldclrpa x21, x22, [sp] -// CHECK: ldclrpa x21, x22, [sp] // encoding: [0xf5,0x13,0xb6,0x19] -// ERROR-NO-LSE128: [[@LINE-2]]:1: error: instruction requires: lse128 -ldclrpal x1, x2, [x11] -// CHECK: ldclrpal x1, x2, [x11] // encoding: [0x61,0x11,0xe2,0x19] -// ERROR-NO-LSE128: [[@LINE-2]]:1: error: instruction requires: lse128 -ldclrpal x21, x22, [sp] -// CHECK: ldclrpal x21, x22, [sp] // encoding: [0xf5,0x13,0xf6,0x19] -// ERROR-NO-LSE128: [[@LINE-2]]:1: error: instruction requires: lse128 -ldclrpl x1, x2, [x11] -// CHECK: ldclrpl x1, x2, [x11] // encoding: [0x61,0x11,0x62,0x19] -// ERROR-NO-LSE128: [[@LINE-2]]:1: error: instruction requires: lse128 -ldclrpl x21, x22, [sp] -// CHECK: ldclrpl x21, x22, [sp] // encoding: [0xf5,0x13,0x76,0x19] -// ERROR-NO-LSE128: [[@LINE-2]]:1: error: instruction requires: lse128 -ldclrpl x22, xzr, [sp] -// ERROR-INVALID-OP: [[@LINE-1]]:15: error: invalid operand for instruction -// ERROR-NO-LSE128: error: invalid operand for instruction -ldclrpl xzr, x22, [sp] -// ERROR-INVALID-OP: [[@LINE-1]]:10: error: invalid operand for instruction -// ERROR-NO-LSE128: error: invalid operand for instruction - -ldsetp x1, x2, [x11] -// CHECK: ldsetp x1, x2, [x11] // encoding: [0x61,0x31,0x22,0x19] -// ERROR-NO-LSE128: [[@LINE-2]]:1: error: instruction requires: lse128 -ldsetp x21, x22, [sp] -// CHECK: ldsetp x21, x22, [sp] // encoding: [0xf5,0x33,0x36,0x19] -// ERROR-NO-LSE128: [[@LINE-2]]:1: error: instruction requires: lse128 -ldsetpa x1, x2, [x11] -// CHECK: ldsetpa x1, x2, [x11] // encoding: [0x61,0x31,0xa2,0x19] -// ERROR-NO-LSE128: [[@LINE-2]]:1: error: instruction requires: lse128 -ldsetpa x21, x22, [sp] -// CHECK: ldsetpa x21, x22, [sp] // encoding: [0xf5,0x33,0xb6,0x19] -// ERROR-NO-LSE128: [[@LINE-2]]:1: error: instruction requires: lse128 -ldsetpal x1, x2, [x11] -// CHECK: ldsetpal x1, x2, [x11] // encoding: [0x61,0x31,0xe2,0x19] -// ERROR-NO-LSE128: [[@LINE-2]]:1: error: instruction requires: lse128 -ldsetpal x21, x22, [sp] -// CHECK: ldsetpal x21, x22, [sp] // encoding: [0xf5,0x33,0xf6,0x19] -// ERROR-NO-LSE128: [[@LINE-2]]:1: error: instruction requires: lse128 -ldsetpl x1, x2, [x11] -// CHECK: ldsetpl x1, x2, [x11] // encoding: [0x61,0x31,0x62,0x19] -// ERROR-NO-LSE128: [[@LINE-2]]:1: error: instruction requires: lse128 -ldsetpl x21, x22, [sp] -// CHECK: ldsetpl x21, x22, [sp] // encoding: [0xf5,0x33,0x76,0x19] -// ERROR-NO-LSE128: [[@LINE-2]]:1: error: instruction requires: lse128 -ldsetpl x22, xzr, [sp] -// ERROR-INVALID-OP: [[@LINE-1]]:15: error: invalid operand for instruction -// ERROR-NO-LSE128: error: invalid operand for instruction -ldsetpl xzr, x22, [sp] -// ERROR-INVALID-OP: [[@LINE-1]]:10: error: invalid operand for instruction -// ERROR-NO-LSE128: error: invalid operand for instruction - - -swpp x1, x2, [x11] -// CHECK: swpp x1, x2, [x11] // encoding: [0x61,0x81,0x22,0x19] -// ERROR-NO-LSE128: [[@LINE-2]]:1: error: instruction requires: lse128 -swpp x21, x22, [sp] -// CHECK: swpp x21, x22, [sp] // encoding: [0xf5,0x83,0x36,0x19] -// ERROR-NO-LSE128: [[@LINE-2]]:1: error: instruction requires: lse128 -swppa x1, x2, [x11] -// CHECK: swppa x1, x2, [x11] // encoding: [0x61,0x81,0xa2,0x19] -// ERROR-NO-LSE128: [[@LINE-2]]:1: error: instruction requires: lse128 -swppa x21, x22, [sp] -// CHECK: swppa x21, x22, [sp] // encoding: [0xf5,0x83,0xb6,0x19] -// ERROR-NO-LSE128: [[@LINE-2]]:1: error: instruction requires: lse128 -swppal x1, x2, [x11] -// CHECK: swppal x1, x2, [x11] // encoding: [0x61,0x81,0xe2,0x19] -// ERROR-NO-LSE128: [[@LINE-2]]:1: error: instruction requires: lse128 -swppal x21, x22, [sp] -// CHECK: swppal x21, x22, [sp] // encoding: [0xf5,0x83,0xf6,0x19] -// ERROR-NO-LSE128: [[@LINE-2]]:1: error: instruction requires: lse128 -swppl x1, x2, [x11] -// CHECK: swppl x1, x2, [x11] // encoding: [0x61,0x81,0x62,0x19] -// ERROR-NO-LSE128: [[@LINE-2]]:1: error: instruction requires: lse128 -swppl x21, x22, [sp] -// CHECK: swppl x21, x22, [sp] // encoding: [0xf5,0x83,0x76,0x19] -// ERROR-NO-LSE128: [[@LINE-2]]:1: error: instruction requires: lse128 -swppl x22, xzr, [sp] -// ERROR-INVALID-OP: [[@LINE-1]]:15: error: invalid operand for instruction -// ERROR-NO-LSE128: error: invalid operand for instruction -swppl xzr, x22, [sp] -// ERROR-INVALID-OP: [[@LINE-1]]:10: error: invalid operand for instruction -// ERROR-NO-LSE128: error: invalid operand for instruction - diff --git a/llvm/test/MC/AArch64/armv9.4a-gcs.s b/llvm/test/MC/AArch64/armv9.4a-gcs.s index b4af9b5dcb10c..1b1856d6b4f32 100644 --- a/llvm/test/MC/AArch64/armv9.4a-gcs.s +++ b/llvm/test/MC/AArch64/armv9.4a-gcs.s @@ -1,115 +1,205 @@ -// RUN: llvm-mc -triple aarch64 -mattr +gcs -show-encoding %s | FileCheck %s +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+gcs < %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=+gcs < %s \ +// RUN: | llvm-objdump -d --mattr=+gcs --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+gcs < %s \ +// RUN: | llvm-objdump -d --mattr=-gcs --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=+gcs < %s \ +// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+gcs -disassemble -show-encoding \ +// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST // RUN: not llvm-mc -triple aarch64 -show-encoding %s 2>%t | FileCheck %s --check-prefix=NO-GCS -// RUN: FileCheck --check-prefix=ERROR-NO-GCS %s < %t + msr GCSCR_EL1, x0 +// CHECK-INST: msr GCSCR_EL1, x0 +// CHECK-ENCODING: encoding: [0x00,0x25,0x18,0xd5] +// CHECK-UNKNOWN: d5182500 msr GCSCR_EL1, x0 + mrs x1, GCSCR_EL1 -// CHECK: msr GCSCR_EL1, x0 // encoding: [0x00,0x25,0x18,0xd5] -// CHECK: mrs x1, GCSCR_EL1 // encoding: [0x01,0x25,0x38,0xd5] +// CHECK-INST: mrs x1, GCSCR_EL1 +// CHECK-ENCODING: encoding: [0x01,0x25,0x38,0xd5] +// CHECK-UNKNOWN: d5382501 mrs x1, GCSCR_EL1 msr GCSPR_EL1, x2 +// CHECK-INST: msr GCSPR_EL1, x2 +// CHECK-ENCODING: encoding: [0x22,0x25,0x18,0xd5] +// CHECK-UNKNOWN: d5182522 msr GCSPR_EL1, x2 + mrs x3, GCSPR_EL1 -// CHECK: msr GCSPR_EL1, x2 // encoding: [0x22,0x25,0x18,0xd5] -// CHECK: mrs x3, GCSPR_EL1 // encoding: [0x23,0x25,0x38,0xd5] +// CHECK-INST: mrs x3, GCSPR_EL1 +// CHECK-ENCODING: encoding: [0x23,0x25,0x38,0xd5] +// CHECK-UNKNOWN: d5382523 mrs x3, GCSPR_EL1 msr GCSCRE0_EL1, x4 +// CHECK-INST: msr GCSCRE0_EL1, x4 +// CHECK-ENCODING: encoding: [0x44,0x25,0x18,0xd5] +// CHECK-UNKNOWN: d5182544 msr GCSCRE0_EL1, x4 + mrs x5, GCSCRE0_EL1 -// CHECK: msr GCSCRE0_EL1, x4 // encoding: [0x44,0x25,0x18,0xd5] -// CHECK: mrs x5, GCSCRE0_EL1 // encoding: [0x45,0x25,0x38,0xd5] +// CHECK-INST: mrs x5, GCSCRE0_EL1 +// CHECK-ENCODING: encoding: [0x45,0x25,0x38,0xd5] +// CHECK-UNKNOWN: d5382545 mrs x5, GCSCRE0_EL1 msr GCSPR_EL0, x6 +// CHECK-INST: msr GCSPR_EL0, x6 +// CHECK-ENCODING: encoding: [0x26,0x25,0x1b,0xd5] +// CHECK-UNKNOWN: d51b2526 msr GCSPR_EL0, x6 + mrs x7, GCSPR_EL0 -// CHECK: msr GCSPR_EL0, x6 // encoding: [0x26,0x25,0x1b,0xd5] -// CHECK: mrs x7, GCSPR_EL0 // encoding: [0x27,0x25,0x3b,0xd5] +// CHECK-INST: mrs x7, GCSPR_EL0 +// CHECK-ENCODING: encoding: [0x27,0x25,0x3b,0xd5] +// CHECK-UNKNOWN: d53b2527 mrs x7, GCSPR_EL0 msr GCSCR_EL2, x10 +// CHECK-INST: msr GCSCR_EL2, x10 +// CHECK-ENCODING: encoding: [0x0a,0x25,0x1c,0xd5] +// CHECK-UNKNOWN: d51c250a msr GCSCR_EL2, x10 + mrs x11, GCSCR_EL2 -// CHECK: msr GCSCR_EL2, x10 // encoding: [0x0a,0x25,0x1c,0xd5] -// CHECK: mrs x11, GCSCR_EL2 // encoding: [0x0b,0x25,0x3c,0xd5] +// CHECK-INST: mrs x11, GCSCR_EL2 +// CHECK-ENCODING: encoding: [0x0b,0x25,0x3c,0xd5] +// CHECK-UNKNOWN: d53c250b mrs x11, GCSCR_EL2 msr GCSPR_EL2, x12 +// CHECK-INST: msr GCSPR_EL2, x12 +// CHECK-ENCODING: encoding: [0x2c,0x25,0x1c,0xd5] +// CHECK-UNKNOWN: d51c252c msr GCSPR_EL2, x12 + mrs x13, GCSPR_EL2 -// CHECK: msr GCSPR_EL2, x12 // encoding: [0x2c,0x25,0x1c,0xd5] -// CHECK: mrs x13, GCSPR_EL2 // encoding: [0x2d,0x25,0x3c,0xd5] +// CHECK-INST: mrs x13, GCSPR_EL2 +// CHECK-ENCODING: encoding: [0x2d,0x25,0x3c,0xd5] +// CHECK-UNKNOWN: d53c252d mrs x13, GCSPR_EL2 msr GCSCR_EL12, x14 +// CHECK-INST: msr GCSCR_EL12, x14 +// CHECK-ENCODING: encoding: [0x0e,0x25,0x1d,0xd5] +// CHECK-UNKNOWN: d51d250e msr GCSCR_EL12, x14 + mrs x15, GCSCR_EL12 -// CHECK: msr GCSCR_EL12, x14 // encoding: [0x0e,0x25,0x1d,0xd5] -// CHECK: mrs x15, GCSCR_EL12 // encoding: [0x0f,0x25,0x3d,0xd5] +// CHECK-INST: mrs x15, GCSCR_EL12 +// CHECK-ENCODING: encoding: [0x0f,0x25,0x3d,0xd5] +// CHECK-UNKNOWN: d53d250f mrs x15, GCSCR_EL12 msr GCSPR_EL12, x16 +// CHECK-INST: msr GCSPR_EL12, x16 +// CHECK-ENCODING: encoding: [0x30,0x25,0x1d,0xd5] +// CHECK-UNKNOWN: d51d2530 msr GCSPR_EL12, x16 + mrs x17, GCSPR_EL12 -// CHECK: msr GCSPR_EL12, x16 // encoding: [0x30,0x25,0x1d,0xd5] -// CHECK: mrs x17, GCSPR_EL12 // encoding: [0x31,0x25,0x3d,0xd5] +// CHECK-INST: mrs x17, GCSPR_EL12 +// CHECK-ENCODING: encoding: [0x31,0x25,0x3d,0xd5] +// CHECK-UNKNOWN: d53d2531 mrs x17, GCSPR_EL12 msr GCSCR_EL3, x18 +// CHECK-INST: msr GCSCR_EL3, x18 +// CHECK-ENCODING: encoding: [0x12,0x25,0x1e,0xd5] +// CHECK-UNKNOWN: d51e2512 msr GCSCR_EL3, x18 + mrs x19, GCSCR_EL3 -// CHECK: msr GCSCR_EL3, x18 // encoding: [0x12,0x25,0x1e,0xd5] -// CHECK: mrs x19, GCSCR_EL3 // encoding: [0x13,0x25,0x3e,0xd5] +// CHECK-INST: mrs x19, GCSCR_EL3 +// CHECK-ENCODING: encoding: [0x13,0x25,0x3e,0xd5] +// CHECK-UNKNOWN: d53e2513 mrs x19, GCSCR_EL3 msr GCSPR_EL3, x20 +// CHECK-INST: msr GCSPR_EL3, x20 +// CHECK-ENCODING: encoding: [0x34,0x25,0x1e,0xd5] +// CHECK-UNKNOWN: d51e2534 msr GCSPR_EL3, x20 + mrs x21, GCSPR_EL3 -// CHECK: msr GCSPR_EL3, x20 // encoding: [0x34,0x25,0x1e,0xd5] -// CHECK: mrs x21, GCSPR_EL3 // encoding: [0x35,0x25,0x3e,0xd5] +// CHECK-INST: mrs x21, GCSPR_EL3 +// CHECK-ENCODING: encoding: [0x35,0x25,0x3e,0xd5] +// CHECK-UNKNOWN: d53e2535 mrs x21, GCSPR_EL3 gcsss1 x21 -// CHECK: gcsss1 x21 // encoding: [0x55,0x77,0x0b,0xd5] -// ERROR-NO-GCS: [[@LINE-2]]:1: error: instruction requires: gcs +// CHECK-INST: gcsss1 x21 +// CHECK-ENCODING: encoding: [0x55,0x77,0x0b,0xd5] +// CHECK-ERROR: error: instruction requires: gcs +// CHECK-UNKNOWN: d50b7755 sys #3, c7, c7, #2, x21 gcsss2 x22 -// CHECK: gcsss2 x22 // encoding: [0x76,0x77,0x2b,0xd5] -// ERROR-NO-GCS: [[@LINE-2]]:1: error: instruction requires: gcs +// CHECK-INST: gcsss2 x22 +// CHECK-ENCODING: encoding: [0x76,0x77,0x2b,0xd5] +// CHECK-ERROR: error: instruction requires: gcs +// CHECK-UNKNOWN: d52b7776 sysl x22, #3, c7, c7, #3 gcspushm x25 -// CHECK: gcspushm x25 // encoding: [0x19,0x77,0x0b,0xd5] -// ERROR-NO-GCS: [[@LINE-2]]:1: error: instruction requires: gcs +// CHECK-INST: gcspushm x25 +// CHECK-ENCODING: encoding: [0x19,0x77,0x0b,0xd5] +// CHECK-ERROR: error: instruction requires: gcs +// CHECK-UNKNOWN: d50b7719 sys #3, c7, c7, #0, x25 gcspopm -// CHECK: gcspopm // encoding: [0x3f,0x77,0x2b,0xd5] -// ERROR-NO-GCS: [[@LINE-2]]:1: error: instruction requires: gcs +// CHECK-INST: gcspopm +// CHECK-ENCODING: encoding: [0x3f,0x77,0x2b,0xd5] +// CHECK-ERROR: error: instruction requires: gcs +// CHECK-UNKNOWN: d52b773f sysl xzr, #3, c7, c7, #1 gcspopm xzr -// CHECK: gcspopm // encoding: [0x3f,0x77,0x2b,0xd5] -// ERROR-NO-GCS: [[@LINE-2]]:1: error: instruction requires: gcs +// CHECK-INST: gcspopm +// CHECK-ENCODING: encoding: [0x3f,0x77,0x2b,0xd5] +// CHECK-ERROR: error: instruction requires: gcs +// CHECK-UNKNOWN: d52b773f sysl xzr, #3, c7, c7, #1 gcspopm x25 -// CHECK: gcspopm x25 // encoding: [0x39,0x77,0x2b,0xd5] -// ERROR-NO-GCS: [[@LINE-2]]:1: error: instruction requires: gcs +// CHECK-INST: gcspopm x25 +// CHECK-ENCODING: encoding: [0x39,0x77,0x2b,0xd5] +// CHECK-ERROR: error: instruction requires: gcs +// CHECK-UNKNOWN: d52b7739 sysl x25, #3, c7, c7, #1 gcsb dsync -// CHECK: gcsb dsync // encoding: [0x7f,0x22,0x03,0xd5] -// ERROR-NO-GCS-NOT: [[@LINE-2]]:1: error: instruction requires: gcs +// CHECK-INST: gcsb dsync +// CHECK-ENCODING: encoding: [0x7f,0x22,0x03,0xd5] +// CHECK-UNKNOWN: d503227f hint #19 // NO-GCS: hint #19 // encoding: [0x7f,0x22,0x03,0xd5] hint #19 -// CHECK: gcsb dsync // encoding: [0x7f,0x22,0x03,0xd5] -// ERROR-NO-GCS-NOT: [[@LINE-2]]:1: error: instruction requires: gcs +// CHECK-INST: gcsb dsync +// CHECK-ENCODING: encoding: [0x7f,0x22,0x03,0xd5] +// CHECK-UNKNOWN: d503227f hint #19 // NO-GCS: hint #19 // encoding: [0x7f,0x22,0x03,0xd5] gcsstr x26, [x27] -// CHECK: gcsstr x26, [x27] // encoding: [0x7a,0x0f,0x1f,0xd9] -// ERROR-NO-GCS: [[@LINE-2]]:1: error: instruction requires: gcs +// CHECK-INST: gcsstr x26, [x27] +// CHECK-ENCODING: encoding: [0x7a,0x0f,0x1f,0xd9] +// CHECK-ERROR: error: instruction requires: gcs +// CHECK-UNKNOWN: d91f0f7a gcsstr x26, [sp] -// CHECK: gcsstr x26, [sp] // encoding: [0xfa,0x0f,0x1f,0xd9] -// ERROR-NO-GCS: [[@LINE-2]]:1: error: instruction requires: gcs +// CHECK-INST: gcsstr x26, [sp] +// CHECK-ENCODING: encoding: [0xfa,0x0f,0x1f,0xd9] +// CHECK-ERROR: error: instruction requires: gcs +// CHECK-UNKNOWN: d91f0ffa gcssttr x26, [x27] -// CHECK: gcssttr x26, [x27] // encoding: [0x7a,0x1f,0x1f,0xd9] -// ERROR-NO-GCS: [[@LINE-2]]:1: error: instruction requires: gcs +// CHECK-INST: gcssttr x26, [x27] +// CHECK-ENCODING: encoding: [0x7a,0x1f,0x1f,0xd9] +// CHECK-ERROR: error: instruction requires: gcs +// CHECK-UNKNOWN: d91f1f7a gcssttr x26, [sp] -// CHECK: gcssttr x26, [sp] // encoding: [0xfa,0x1f,0x1f,0xd9] -// ERROR-NO-GCS: [[@LINE-2]]:1: error: instruction requires: gcs +// CHECK-INST: gcssttr x26, [sp] +// CHECK-ENCODING: encoding: [0xfa,0x1f,0x1f,0xd9] +// CHECK-ERROR: error: instruction requires: gcs +// CHECK-UNKNOWN: d91f1ffa gcspushx -// CHECK: gcspushx // encoding: [0x9f,0x77,0x08,0xd5] -// ERROR-NO-GCS: [[@LINE-2]]:1: error: instruction requires: gcs +// CHECK-INST: gcspushx +// CHECK-ENCODING: encoding: [0x9f,0x77,0x08,0xd5] +// CHECK-ERROR: error: instruction requires: gcs +// CHECK-UNKNOWN: d508779f sys #0, c7, c7, #4 gcspopcx -// CHECK: gcspopcx // encoding: [0xbf,0x77,0x08,0xd5] -// ERROR-NO-GCS: [[@LINE-2]]:1: error: instruction requires: gcs +// CHECK-INST: gcspopcx +// CHECK-ENCODING: encoding: [0xbf,0x77,0x08,0xd5] +// CHECK-ERROR: error: instruction requires: gcs +// CHECK-UNKNOWN: d50877bf sys #0, c7, c7, #5 gcspopx -// CHECK: gcspopx // encoding: [0xdf,0x77,0x08,0xd5] -// ERROR-NO-GCS: [[@LINE-2]]:1: error: instruction requires: gcs +// CHECK-INST: gcspopx +// CHECK-ENCODING: encoding: [0xdf,0x77,0x08,0xd5] +// CHECK-ERROR: error: instruction requires: gcs +// CHECK-UNKNOWN: d50877df sys #0, c7, c7, #6 diff --git a/llvm/test/MC/AArch64/armv9.4a-lse128-diagnostics.s b/llvm/test/MC/AArch64/armv9.4a-lse128-diagnostics.s new file mode 100644 index 0000000000000..059b18f1e9153 --- /dev/null +++ b/llvm/test/MC/AArch64/armv9.4a-lse128-diagnostics.s @@ -0,0 +1,20 @@ +// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \ +// RUN: | FileCheck %s --check-prefixes=CHECK-ERROR + +ldclrpl x22, xzr, [sp] +// CHECK-ERROR: error: invalid operand for instruction + +ldclrpl xzr, x22, [sp] +// CHECK-ERROR: error: invalid operand for instruction + +ldsetpl x22, xzr, [sp] +// CHECK-ERROR: error: invalid operand for instruction + +ldsetpl xzr, x22, [sp] +// CHECK-ERROR: error: invalid operand for instruction + +swppl x22, xzr, [sp] +// CHECK-ERROR: error: invalid operand for instruction + +swppl xzr, x22, [sp] +// CHECK-ERROR: error: invalid operand for instruction diff --git a/llvm/test/MC/AArch64/armv9.4a-lse128.s b/llvm/test/MC/AArch64/armv9.4a-lse128.s new file mode 100644 index 0000000000000..25dcb04c2ae63 --- /dev/null +++ b/llvm/test/MC/AArch64/armv9.4a-lse128.s @@ -0,0 +1,159 @@ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+lse128 < %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=+lse128 < %s \ +// RUN: | llvm-objdump -d --mattr=+lse128 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+lse128 < %s \ +// RUN: | llvm-objdump -d --mattr=-lse128 - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// Disassemble encoding and check the re-encoding (-show-encoding) matches. +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+lse128 < %s \ +// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+lse128 -disassemble -show-encoding \ +// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST + + + +ldclrp x1, x2, [x11] +// CHECK-INST: ldclrp x1, x2, [x11] +// CHECK-ENCODING: encoding: [0x61,0x11,0x22,0x19] +// CHECK-ERROR: :[[@LINE-3]]:1: error: instruction requires: lse128 +// CHECK-UNKNOWN: 19221161 + +ldclrp x21, x22, [sp] +// CHECK-INST: ldclrp x21, x22, [sp] +// CHECK-ENCODING: encoding: [0xf5,0x13,0x36,0x19] +// CHECK-ERROR: :[[@LINE-3]]:1: error: instruction requires: lse128 +// CHECK-UNKNOWN: 193613f5 + +ldclrpa x1, x2, [x11] +// CHECK-INST: ldclrpa x1, x2, [x11] +// CHECK-ENCODING: encoding: [0x61,0x11,0xa2,0x19] +// CHECK-ERROR: :[[@LINE-3]]:1: error: instruction requires: lse128 +// CHECK-UNKNOWN: 19a21161 + +ldclrpa x21, x22, [sp] +// CHECK-INST: ldclrpa x21, x22, [sp] +// CHECK-ENCODING: encoding: [0xf5,0x13,0xb6,0x19] +// CHECK-ERROR: :[[@LINE-3]]:1: error: instruction requires: lse128 +// CHECK-UNKNOWN: 19b613f5 + +ldclrpal x1, x2, [x11] +// CHECK-INST: ldclrpal x1, x2, [x11] +// CHECK-ENCODING: encoding: [0x61,0x11,0xe2,0x19] +// CHECK-ERROR: :[[@LINE-3]]:1: error: instruction requires: lse128 +// CHECK-UNKNOWN: 19e21161 + +ldclrpal x21, x22, [sp] +// CHECK-INST: ldclrpal x21, x22, [sp] +// CHECK-ENCODING: encoding: [0xf5,0x13,0xf6,0x19] +// CHECK-ERROR: :[[@LINE-3]]:1: error: instruction requires: lse128 +// CHECK-UNKNOWN: 19f613f5 + +ldclrpl x1, x2, [x11] +// CHECK-INST: ldclrpl x1, x2, [x11] +// CHECK-ENCODING: encoding: [0x61,0x11,0x62,0x19] +// CHECK-ERROR: :[[@LINE-3]]:1: error: instruction requires: lse128 +// CHECK-UNKNOWN: 19621161 + +ldclrpl x21, x22, [sp] +// CHECK-INST: ldclrpl x21, x22, [sp] +// CHECK-ENCODING: encoding: [0xf5,0x13,0x76,0x19] +// CHECK-ERROR: :[[@LINE-3]]:1: error: instruction requires: lse128 +// CHECK-UNKNOWN: 197613f5 + +ldsetp x1, x2, [x11] +// CHECK-INST: ldsetp x1, x2, [x11] +// CHECK-ENCODING: encoding: [0x61,0x31,0x22,0x19] +// CHECK-ERROR: :[[@LINE-3]]:1: error: instruction requires: lse128 +// CHECK-UNKNOWN: 19223161 + +ldsetp x21, x22, [sp] +// CHECK-INST: ldsetp x21, x22, [sp] +// CHECK-ENCODING: encoding: [0xf5,0x33,0x36,0x19] +// CHECK-ERROR: :[[@LINE-3]]:1: error: instruction requires: lse128 +// CHECK-UNKNOWN: 193633f5 + +ldsetpa x1, x2, [x11] +// CHECK-INST: ldsetpa x1, x2, [x11] +// CHECK-ENCODING: encoding: [0x61,0x31,0xa2,0x19] +// CHECK-ERROR: :[[@LINE-3]]:1: error: instruction requires: lse128 +// CHECK-UNKNOWN: 19a23161 + +ldsetpa x21, x22, [sp] +// CHECK-INST: ldsetpa x21, x22, [sp] +// CHECK-ENCODING: encoding: [0xf5,0x33,0xb6,0x19] +// CHECK-ERROR: :[[@LINE-3]]:1: error: instruction requires: lse128 +// CHECK-UNKNOWN: 19b633f5 + +ldsetpal x1, x2, [x11] +// CHECK-INST: ldsetpal x1, x2, [x11] +// CHECK-ENCODING: encoding: [0x61,0x31,0xe2,0x19] +// CHECK-ERROR: :[[@LINE-3]]:1: error: instruction requires: lse128 +// CHECK-UNKNOWN: 19e23161 + +ldsetpal x21, x22, [sp] +// CHECK-INST: ldsetpal x21, x22, [sp] +// CHECK-ENCODING: encoding: [0xf5,0x33,0xf6,0x19] +// CHECK-ERROR: :[[@LINE-3]]:1: error: instruction requires: lse128 +// CHECK-UNKNOWN: 19f633f5 + +ldsetpl x1, x2, [x11] +// CHECK-INST: ldsetpl x1, x2, [x11] +// CHECK-ENCODING: encoding: [0x61,0x31,0x62,0x19] +// CHECK-ERROR: :[[@LINE-3]]:1: error: instruction requires: lse128 +// CHECK-UNKNOWN: 19623161 + +ldsetpl x21, x22, [sp] +// CHECK-INST: ldsetpl x21, x22, [sp] +// CHECK-ENCODING: encoding: [0xf5,0x33,0x76,0x19] +// CHECK-ERROR: :[[@LINE-3]]:1: error: instruction requires: lse128 +// CHECK-UNKNOWN: 197633f5 + +swpp x1, x2, [x11] +// CHECK-INST: swpp x1, x2, [x11] +// CHECK-ENCODING: encoding: [0x61,0x81,0x22,0x19] +// CHECK-ERROR: :[[@LINE-3]]:1: error: instruction requires: lse128 +// CHECK-UNKNOWN: 19228161 + +swpp x21, x22, [sp] +// CHECK-INST: swpp x21, x22, [sp] +// CHECK-ENCODING: encoding: [0xf5,0x83,0x36,0x19] +// CHECK-ERROR: :[[@LINE-3]]:1: error: instruction requires: lse128 +// CHECK-UNKNOWN: 193683f5 + +swppa x1, x2, [x11] +// CHECK-INST: swppa x1, x2, [x11] +// CHECK-ENCODING: encoding: [0x61,0x81,0xa2,0x19] +// CHECK-ERROR: :[[@LINE-3]]:1: error: instruction requires: lse128 +// CHECK-UNKNOWN: 19a28161 + +swppa x21, x22, [sp] +// CHECK-INST: swppa x21, x22, [sp] +// CHECK-ENCODING: encoding: [0xf5,0x83,0xb6,0x19] +// CHECK-ERROR: :[[@LINE-3]]:1: error: instruction requires: lse128 +// CHECK-UNKNOWN: 19b683f5 + +swppal x1, x2, [x11] +// CHECK-INST: swppal x1, x2, [x11] +// CHECK-ENCODING: encoding: [0x61,0x81,0xe2,0x19] +// CHECK-ERROR: :[[@LINE-3]]:1: error: instruction requires: lse128 +// CHECK-UNKNOWN: 19e28161 + +swppal x21, x22, [sp] +// CHECK-INST: swppal x21, x22, [sp] +// CHECK-ENCODING: encoding: [0xf5,0x83,0xf6,0x19] +// CHECK-ERROR: :[[@LINE-3]]:1: error: instruction requires: lse128 +// CHECK-UNKNOWN: 19f683f5 + +swppl x1, x2, [x11] +// CHECK-INST: swppl x1, x2, [x11] +// CHECK-ENCODING: encoding: [0x61,0x81,0x62,0x19] +// CHECK-ERROR: :[[@LINE-3]]:1: error: instruction requires: lse128 +// CHECK-UNKNOWN: 19628161 + +swppl x21, x22, [sp] +// CHECK-INST: swppl x21, x22, [sp] +// CHECK-ENCODING: encoding: [0xf5,0x83,0x76,0x19] +// CHECK-ERROR: :[[@LINE-3]]:1: error: instruction requires: lse128 +// CHECK-UNKNOWN: 197683f5 diff --git a/llvm/test/MC/AArch64/armv9.5a-cpa.s b/llvm/test/MC/AArch64/armv9.5a-cpa.s index 1c338eccf6cac..d239224b502fe 100644 --- a/llvm/test/MC/AArch64/armv9.5a-cpa.s +++ b/llvm/test/MC/AArch64/armv9.5a-cpa.s @@ -1,50 +1,87 @@ -// RUN: llvm-mc -triple aarch64 -show-encoding -mattr=+cpa < %s | FileCheck %s -// RUN: not llvm-mc -triple aarch64 < %s 2>&1 | FileCheck --check-prefix=ERROR-NO-CPA %s +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+cpa < %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=+cpa < %s \ +// RUN: | llvm-objdump -d --mattr=+cpa - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+cpa < %s \ +// RUN: | llvm-objdump -d --mattr=-cpa - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// Disassemble encoding and check the re-encoding (-show-encoding) matches. +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+cpa < %s \ +// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+cpa -disassemble -show-encoding \ +// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST + + addpt x0, x1, x2 -// CHECK: addpt x0, x1, x2 // encoding: [0x20,0x20,0x02,0x9a] -// ERROR-NO-CPA: error: instruction requires: cpa +// CHECK-INST: addpt x0, x1, x2 +// CHECK-ENCODING: encoding: [0x20,0x20,0x02,0x9a] +// CHECK-ERROR: error: instruction requires: cpa +// CHECK-UNKNOWN: 9a022020 addpt sp, sp, x2 -// CHECK: addpt sp, sp, x2 // encoding: [0xff,0x23,0x02,0x9a] -// ERROR-NO-CPA: error: instruction requires: cpa +// CHECK-INST: addpt sp, sp, x2 +// CHECK-ENCODING: encoding: [0xff,0x23,0x02,0x9a] +// CHECK-ERROR: error: instruction requires: cpa +// CHECK-UNKNOWN: 9a0223ff addpt x0, x1, x2, lsl #0 -// CHECK: addpt x0, x1, x2 // encoding: [0x20,0x20,0x02,0x9a] -// ERROR-NO-CPA: error: instruction requires: cpa +// CHECK-INST: addpt x0, x1, x2 +// CHECK-ENCODING: encoding: [0x20,0x20,0x02,0x9a] +// CHECK-ERROR: error: instruction requires: cpa +// CHECK-UNKNOWN: 9a022020 addpt x0, x1, x2, lsl #7 -// CHECK: addpt x0, x1, x2, lsl #7 // encoding: [0x20,0x3c,0x02,0x9a] -// ERROR-NO-CPA: error: instruction requires: cpa +// CHECK-INST: addpt x0, x1, x2, lsl #7 +// CHECK-ENCODING: encoding: [0x20,0x3c,0x02,0x9a] +// CHECK-ERROR: error: instruction requires: cpa +// CHECK-UNKNOWN: 9a023c20 addpt sp, sp, x2, lsl #7 -// CHECK: addpt sp, sp, x2, lsl #7 // encoding: [0xff,0x3f,0x02,0x9a] -// ERROR-NO-CPA: error: instruction requires: cpa +// CHECK-INST: addpt sp, sp, x2, lsl #7 +// CHECK-ENCODING: encoding: [0xff,0x3f,0x02,0x9a] +// CHECK-ERROR: error: instruction requires: cpa +// CHECK-UNKNOWN: 9a023fff subpt x0, x1, x2 -// CHECK: subpt x0, x1, x2 // encoding: [0x20,0x20,0x02,0xda] -// ERROR-NO-CPA: error: instruction requires: cpa +// CHECK-INST: subpt x0, x1, x2 +// CHECK-ENCODING: encoding: [0x20,0x20,0x02,0xda] +// CHECK-ERROR: error: instruction requires: cpa +// CHECK-UNKNOWN: da022020 subpt sp, sp, x2 -// CHECK: subpt sp, sp, x2 // encoding: [0xff,0x23,0x02,0xda] -// ERROR-NO-CPA: error: instruction requires: cpa +// CHECK-INST: subpt sp, sp, x2 +// CHECK-ENCODING: encoding: [0xff,0x23,0x02,0xda] +// CHECK-ERROR: error: instruction requires: cpa +// CHECK-UNKNOWN: da0223ff subpt x0, x1, x2, lsl #0 -// CHECK: subpt x0, x1, x2 // encoding: [0x20,0x20,0x02,0xda] -// ERROR-NO-CPA: error: instruction requires: cpa +// CHECK-INST: subpt x0, x1, x2 +// CHECK-ENCODING: encoding: [0x20,0x20,0x02,0xda] +// CHECK-ERROR: error: instruction requires: cpa +// CHECK-UNKNOWN: da022020 subpt x0, x1, x2, lsl #7 -// CHECK: subpt x0, x1, x2, lsl #7 // encoding: [0x20,0x3c,0x02,0xda] -// ERROR-NO-CPA: error: instruction requires: cpa +// CHECK-INST: subpt x0, x1, x2, lsl #7 +// CHECK-ENCODING: encoding: [0x20,0x3c,0x02,0xda] +// CHECK-ERROR: error: instruction requires: cpa +// CHECK-UNKNOWN: da023c20 subpt sp, sp, x2, lsl #7 -// CHECK: subpt sp, sp, x2, lsl #7 // encoding: [0xff,0x3f,0x02,0xda] -// ERROR-NO-CPA: error: instruction requires: cpa +// CHECK-INST: subpt sp, sp, x2, lsl #7 +// CHECK-ENCODING: encoding: [0xff,0x3f,0x02,0xda] +// CHECK-ERROR: error: instruction requires: cpa +// CHECK-UNKNOWN: da023fff maddpt x0, x1, x2, x3 -// CHECK: maddpt x0, x1, x2, x3 // encoding: [0x20,0x0c,0x62,0x9b] -// ERROR-NO-CPA: error: instruction requires: cpa +// CHECK-INST: maddpt x0, x1, x2, x3 +// CHECK-ENCODING: encoding: [0x20,0x0c,0x62,0x9b] +// CHECK-ERROR: error: instruction requires: cpa +// CHECK-UNKNOWN: 9b620c20 msubpt x0, x1, x2, x3 -// CHECK: msubpt x0, x1, x2, x3 // encoding: [0x20,0x8c,0x62,0x9b] -// ERROR-NO-CPA: error: instruction requires: cpa +// CHECK-INST: msubpt x0, x1, x2, x3 +// CHECK-ENCODING: encoding: [0x20,0x8c,0x62,0x9b] +// CHECK-ERROR: error: instruction requires: cpa +// CHECK-UNKNOWN: 9b628c20 diff --git a/llvm/test/MC/AArch64/armv9.6a-mpam-diagnostics.s b/llvm/test/MC/AArch64/armv9.6a-mpam-diagnostics.s new file mode 100644 index 0000000000000..a39eaef2a8df4 --- /dev/null +++ b/llvm/test/MC/AArch64/armv9.6a-mpam-diagnostics.s @@ -0,0 +1,5 @@ +// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \ +// RUN: | FileCheck %s --check-prefixes=CHECK-ERROR + +msr MPAMBWIDR_EL1, x0 +// CHECK-ERROR: error: expected writable system register or pstate \ No newline at end of file diff --git a/llvm/test/MC/AArch64/armv9.6a-mpam.s b/llvm/test/MC/AArch64/armv9.6a-mpam.s index c0696efd3cceb..82603caed5545 100644 --- a/llvm/test/MC/AArch64/armv9.6a-mpam.s +++ b/llvm/test/MC/AArch64/armv9.6a-mpam.s @@ -1,45 +1,94 @@ -// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding < %s 2> %t | FileCheck %s --check-prefix=CHECK -// RUN: FileCheck --check-prefix=CHECK-RO < %t %s +// 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 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj < %s \ +// RUN: | llvm-objdump -d - | 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 + + //------------------------------------------------------------------------------ // Armv9.6-A FEAT_MPAM Extensions //------------------------------------------------------------------------------ -msr MPAMBWIDR_EL1, x0 msr MPAMBW3_EL3, x0 +// CHECK-INST: msr MPAMBW3_EL3, x0 +// CHECK-ENCODING: encoding: [0x80,0xa5,0x1e,0xd5] +// CHECK-UNKNOWN: d51ea580 msr MPAMBW3_EL3, x0 + msr MPAMBW2_EL2, x0 +// CHECK-INST: msr MPAMBW2_EL2, x0 +// CHECK-ENCODING: encoding: [0x80,0xa5,0x1c,0xd5] +// CHECK-UNKNOWN: d51ca580 msr MPAMBW2_EL2, x0 + msr MPAMBW1_EL1, x0 +// CHECK-INST: msr MPAMBW1_EL1, x0 +// CHECK-ENCODING: encoding: [0x80,0xa5,0x18,0xd5] +// CHECK-UNKNOWN: d518a580 msr MPAMBW1_EL1, x0 + msr MPAMBW1_EL12, x0 +// CHECK-INST: msr MPAMBW1_EL12, x0 +// CHECK-ENCODING: encoding: [0x80,0xa5,0x1d,0xd5] +// CHECK-UNKNOWN: d51da580 msr MPAMBW1_EL12, x0 + msr MPAMBW0_EL1, x0 +// CHECK-INST: msr MPAMBW0_EL1, x0 +// CHECK-ENCODING: encoding: [0xa0,0xa5,0x18,0xd5] +// CHECK-UNKNOWN: d518a5a0 msr MPAMBW0_EL1, x0 + msr MPAMBWCAP_EL2, x0 +// CHECK-INST: msr MPAMBWCAP_EL2, x0 +// CHECK-ENCODING: encoding: [0xc0,0xa5,0x1c,0xd5] +// CHECK-UNKNOWN: d51ca5c0 msr MPAMBWCAP_EL2, x0 + msr MPAMBWSM_EL1, x0 +// CHECK-INST: msr MPAMBWSM_EL1, x0 +// CHECK-ENCODING: encoding: [0xe0,0xa5,0x18,0xd5] +// CHECK-UNKNOWN: d518a5e0 msr MPAMBWSM_EL1, x0 mrs x0, MPAMBWIDR_EL1 +// CHECK-INST: mrs x0, MPAMBWIDR_EL1 +// CHECK-ENCODING: encoding: [0xa0,0xa4,0x38,0xd5] +// CHECK-UNKNOWN: d538a4a0 mrs x0, MPAMBWIDR_EL1 + mrs x0, MPAMBW3_EL3 +// CHECK-INST: mrs x0, MPAMBW3_EL3 +// CHECK-ENCODING: encoding: [0x80,0xa5,0x3e,0xd5] +// CHECK-UNKNOWN: d53ea580 mrs x0, MPAMBW3_EL3 + mrs x0, MPAMBW2_EL2 +// CHECK-INST: mrs x0, MPAMBW2_EL2 +// CHECK-ENCODING: encoding: [0x80,0xa5,0x3c,0xd5] +// CHECK-UNKNOWN: d53ca580 mrs x0, MPAMBW2_EL2 + mrs x0, MPAMBW1_EL1 +// CHECK-INST: mrs x0, MPAMBW1_EL1 +// CHECK-ENCODING: encoding: [0x80,0xa5,0x38,0xd5] +// CHECK-UNKNOWN: d538a580 mrs x0, MPAMBW1_EL1 + mrs x0, MPAMBW1_EL12 +// CHECK-INST: mrs x0, MPAMBW1_EL12 +// CHECK-ENCODING: encoding: [0x80,0xa5,0x3d,0xd5] +// CHECK-UNKNOWN: d53da580 mrs x0, MPAMBW1_EL12 + mrs x0, MPAMBW0_EL1 +// CHECK-INST: mrs x0, MPAMBW0_EL1 +// CHECK-ENCODING: encoding: [0xa0,0xa5,0x38,0xd5] +// CHECK-UNKNOWN: d538a5a0 mrs x0, MPAMBW0_EL1 + mrs x0, MPAMBWCAP_EL2 +// CHECK-INST: mrs x0, MPAMBWCAP_EL2 +// CHECK-ENCODING: encoding: [0xc0,0xa5,0x3c,0xd5] +// CHECK-UNKNOWN: d53ca5c0 mrs x0, MPAMBWCAP_EL2 + mrs x0, MPAMBWSM_EL1 +// CHECK-INST: mrs x0, MPAMBWSM_EL1 +// CHECK-ENCODING: encoding: [0xe0,0xa5,0x38,0xd5] +// CHECK-UNKNOWN: d538a5e0 mrs x0, MPAMBWSM_EL1 + -//CHECK: msr MPAMBW3_EL3, x0 // encoding: [0x80,0xa5,0x1e,0xd5] -//CHECK: msr MPAMBW2_EL2, x0 // encoding: [0x80,0xa5,0x1c,0xd5] -//CHECK: msr MPAMBW1_EL1, x0 // encoding: [0x80,0xa5,0x18,0xd5] -//CHECK: msr MPAMBW1_EL12, x0 // encoding: [0x80,0xa5,0x1d,0xd5] -//CHECK: msr MPAMBW0_EL1, x0 // encoding: [0xa0,0xa5,0x18,0xd5] -//CHECK: msr MPAMBWCAP_EL2, x0 // encoding: [0xc0,0xa5,0x1c,0xd5] -//CHECK: msr MPAMBWSM_EL1, x0 // encoding: [0xe0,0xa5,0x18,0xd5] - -//CHECK-RO: error: expected writable system register or pstate -//CHECK-RO: msr MPAMBWIDR_EL1, x0 -//CHECK-RO: ^ - -//CHECK: mrs x0, MPAMBWIDR_EL1 // encoding: [0xa0,0xa4,0x38,0xd5] -//CHECK: mrs x0, MPAMBW3_EL3 // encoding: [0x80,0xa5,0x3e,0xd5] -//CHECK: mrs x0, MPAMBW2_EL2 // encoding: [0x80,0xa5,0x3c,0xd5] -//CHECK: mrs x0, MPAMBW1_EL1 // encoding: [0x80,0xa5,0x38,0xd5] -//CHECK: mrs x0, MPAMBW1_EL12 // encoding: [0x80,0xa5,0x3d,0xd5] -//CHECK: mrs x0, MPAMBW0_EL1 // encoding: [0xa0,0xa5,0x38,0xd5] -//CHECK: mrs x0, MPAMBWCAP_EL2 // encoding: [0xc0,0xa5,0x3c,0xd5] -//CHECK: mrs x0, MPAMBWSM_EL1 // encoding: [0xe0,0xa5,0x38,0xd5] diff --git a/llvm/test/MC/Disassembler/AArch64/armv9.4a-gcs.txt b/llvm/test/MC/Disassembler/AArch64/armv9.4a-gcs.txt deleted file mode 100644 index 512f4027d9761..0000000000000 --- a/llvm/test/MC/Disassembler/AArch64/armv9.4a-gcs.txt +++ /dev/null @@ -1,90 +0,0 @@ -# RUN: llvm-mc -triple=aarch64 -mattr +gcs -disassemble %s 2> %t | FileCheck %s - -[0x00,0x25,0x18,0xd5] -[0x01,0x25,0x38,0xd5] -// CHECK: msr GCSCR_EL1, x0 -// CHECK: mrs x1, GCSCR_EL1 - -[0x22,0x25,0x18,0xd5] -[0x23,0x25,0x38,0xd5] -// CHECK: msr GCSPR_EL1, x2 -// CHECK: mrs x3, GCSPR_EL1 - -[0x44,0x25,0x18,0xd5] -[0x45,0x25,0x38,0xd5] -// CHECK: msr GCSCRE0_EL1, x4 -// CHECK: mrs x5, GCSCRE0_EL1 - -[0x26,0x25,0x1b,0xd5] -[0x27,0x25,0x3b,0xd5] -// CHECK: msr GCSPR_EL0, x6 -// CHECK: mrs x7, GCSPR_EL0 - -[0x0a,0x25,0x1c,0xd5] -[0x0b,0x25,0x3c,0xd5] -// CHECK: msr GCSCR_EL2, x10 -// CHECK: mrs x11, GCSCR_EL2 - -[0x2c,0x25,0x1c,0xd5] -[0x2d,0x25,0x3c,0xd5] -// CHECK: msr GCSPR_EL2, x12 -// CHECK: mrs x13, GCSPR_EL2 - -[0x0e,0x25,0x1d,0xd5] -[0x0f,0x25,0x3d,0xd5] -// CHECK: msr GCSCR_EL12, x14 -// CHECK: mrs x15, GCSCR_EL12 - -[0x30,0x25,0x1d,0xd5] -[0x31,0x25,0x3d,0xd5] -// CHECK: msr GCSPR_EL12, x16 -// CHECK: mrs x17, GCSPR_EL12 - -[0x12,0x25,0x1e,0xd5] -[0x13,0x25,0x3e,0xd5] -// CHECK: msr GCSCR_EL3, x18 -// CHECK: mrs x19, GCSCR_EL3 - -[0x34,0x25,0x1e,0xd5] -[0x35,0x25,0x3e,0xd5] -// CHECK: msr GCSPR_EL3, x20 -// CHECK: mrs x21, GCSPR_EL3 - -[0x55,0x77,0x0b,0xd5] -// CHECK: gcsss1 x21 - -[0x76,0x77,0x2b,0xd5] -// CHECK: gcsss2 x22 - -[0x19,0x77,0x0b,0xd5] -// CHECK: gcspushm x25 - -[0x3f,0x77,0x2b,0xd5] -// CHECK: gcspopm - -[0x39,0x77,0x2b,0xd5] -// CHECK: gcspopm x25 - -[0x7f,0x22,0x03,0xd5] -// CHECK: gcsb dsync - -[0x7a,0x0f,0x1f,0xd9] -// CHECK: gcsstr x26, [x27] - -[0xfa,0x0f,0x1f,0xd9] -// CHECK: gcsstr x26, [sp] - -[0x7a,0x1f,0x1f,0xd9] -// CHECK: gcssttr x26, [x27] - -[0xfa,0x1f,0x1f,0xd9] -// CHECK: gcssttr x26, [sp] - -[0x9f,0x77,0x08,0xd5] -// CHECK: gcspushx - -[0xbf,0x77,0x08,0xd5] -// CHECK: gcspopcx - -[0xdf,0x77,0x08,0xd5] -// CHECK: gcspopx diff --git a/llvm/test/MC/Disassembler/AArch64/armv9.4a-lse128.txt b/llvm/test/MC/Disassembler/AArch64/armv9.4a-lse128.txt deleted file mode 100644 index d4dffa0b3a9b6..0000000000000 --- a/llvm/test/MC/Disassembler/AArch64/armv9.4a-lse128.txt +++ /dev/null @@ -1,98 +0,0 @@ -# RUN: llvm-mc -triple=aarch64 -mattr=+lse128 -disassemble %s | FileCheck %s -# RUN: not llvm-mc -triple=aarch64 -disassemble %s 2>&1 | FileCheck --check-prefix=NO-LSE128 %s - -[0x61,0x11,0x22,0x19] -# CHECK: ldclrp x1, x2, [x11] -# NO-LSE128: warning: invalid instruction encoding - -[0xf5,0x13,0x36,0x19] -# CHECK: ldclrp x21, x22, [sp] -# NO-LSE128: warning: invalid instruction encoding - -[0x61,0x11,0xa2,0x19] -# CHECK: ldclrpa x1, x2, [x11] -# NO-LSE128: warning: invalid instruction encoding - -[0xf5,0x13,0xb6,0x19] -# CHECK: ldclrpa x21, x22, [sp] -# NO-LSE128: warning: invalid instruction encoding - -[0x61,0x11,0xe2,0x19] -# CHECK: ldclrpal x1, x2, [x11] -# NO-LSE128: warning: invalid instruction encoding - -[0xf5,0x13,0xf6,0x19] -# CHECK: ldclrpal x21, x22, [sp] -# NO-LSE128: warning: invalid instruction encoding - -[0x61,0x11,0x62,0x19] -# CHECK: ldclrpl x1, x2, [x11] -# NO-LSE128: warning: invalid instruction encoding - -[0xf5,0x13,0x76,0x19] -# CHECK: ldclrpl x21, x22, [sp] -# NO-LSE128: warning: invalid instruction encoding - -[0x61,0x31,0x22,0x19] -# CHECK: ldsetp x1, x2, [x11] -# NO-LSE128: warning: invalid instruction encoding - -[0xf5,0x33,0x36,0x19] -# CHECK: ldsetp x21, x22, [sp] -# NO-LSE128: warning: invalid instruction encoding - -[0x61,0x31,0xa2,0x19] -# CHECK: ldsetpa x1, x2, [x11] -# NO-LSE128: warning: invalid instruction encoding - -[0xf5,0x33,0xb6,0x19] -# CHECK: ldsetpa x21, x22, [sp] -# NO-LSE128: warning: invalid instruction encoding - -[0x61,0x31,0xe2,0x19] -# CHECK: ldsetpal x1, x2, [x11] -# NO-LSE128: warning: invalid instruction encoding - -[0xf5,0x33,0xf6,0x19] -# CHECK: ldsetpal x21, x22, [sp] -# NO-LSE128: warning: invalid instruction encoding - -[0x61,0x31,0x62,0x19] -# CHECK: ldsetpl x1, x2, [x11] -# NO-LSE128: warning: invalid instruction encoding - -[0xf5,0x33,0x76,0x19] -# CHECK: ldsetpl x21, x22, [sp] -# NO-LSE128: warning: invalid instruction encoding - -[0x61,0x81,0x22,0x19] -# CHECK: swpp x1, x2, [x11] -# NO-LSE128: warning: invalid instruction encoding - -[0xf5,0x83,0x36,0x19] -# CHECK: swpp x21, x22, [sp] -# NO-LSE128: warning: invalid instruction encoding - -[0x61,0x81,0xa2,0x19] -# CHECK: swppa x1, x2, [x11] -# NO-LSE128: warning: invalid instruction encoding - -[0xf5,0x83,0xb6,0x19] -# CHECK: swppa x21, x22, [sp] -# NO-LSE128: warning: invalid instruction encoding - -[0x61,0x81,0xe2,0x19] -# CHECK: swppal x1, x2, [x11] -# NO-LSE128: warning: invalid instruction encoding - -[0xf5,0x83,0xf6,0x19] -# CHECK: swppal x21, x22, [sp] -# NO-LSE128: warning: invalid instruction encoding - -[0x61,0x81,0x62,0x19] -# CHECK: swppl x1, x2, [x11] -# NO-LSE128: warning: invalid instruction encoding - -[0xf5,0x83,0x76,0x19] -# CHECK: swppl x21, x22, [sp] -# NO-LSE128: warning: invalid instruction encoding diff --git a/llvm/test/MC/Disassembler/AArch64/armv9.5a-cpa.txt b/llvm/test/MC/Disassembler/AArch64/armv9.5a-cpa.txt deleted file mode 100644 index bf61782f912a3..0000000000000 --- a/llvm/test/MC/Disassembler/AArch64/armv9.5a-cpa.txt +++ /dev/null @@ -1,42 +0,0 @@ -# RUN: llvm-mc -triple aarch64 -disassemble -mattr=+cpa < %s | FileCheck %s -# RUN: not llvm-mc -triple aarch64 -disassemble < %s 2>&1 | FileCheck --check-prefix=NO-CPA %s - -[0x20,0x20,0x02,0x9a] -# CHECK: addpt x0, x1, x2 -# NO-CPA: warning: invalid instruction encoding - -[0xff,0x23,0x02,0x9a] -# CHECK: addpt sp, sp, x2 -# NO-CPA: warning: invalid instruction encoding - -[0x20,0x3c,0x02,0x9a] -# CHECK: addpt x0, x1, x2, lsl #7 -# NO-CPA: warning: invalid instruction encoding - -[0xff,0x3f,0x02,0x9a] -# CHECK: addpt sp, sp, x2, lsl #7 -# NO-CPA: warning: invalid instruction encoding - -[0x20,0x20,0x02,0xda] -# CHECK: subpt x0, x1, x2 -# NO-CPA: warning: invalid instruction encoding - -[0xff,0x23,0x02,0xda] -# CHECK: subpt sp, sp, x2 -# NO-CPA: warning: invalid instruction encoding - -[0x20,0x3c,0x02,0xda] -# CHECK: subpt x0, x1, x2, lsl #7 -# NO-CPA: warning: invalid instruction encoding - -[0xff,0x3f,0x02,0xda] -# CHECK: subpt sp, sp, x2, lsl #7 -# NO-CPA: warning: invalid instruction encoding - -[0x20,0x0c,0x62,0x9b] -# CHECK: maddpt x0, x1, x2, x3 -# NO-CPA: warning: invalid instruction encoding - -[0x20,0x8c,0x62,0x9b] -# CHECK: msubpt x0, x1, x2, x3 -# NO-CPA: warning: invalid instruction encoding diff --git a/llvm/test/MC/Disassembler/AArch64/armv9.6a-mpam.txt b/llvm/test/MC/Disassembler/AArch64/armv9.6a-mpam.txt deleted file mode 100644 index b9ff0a4d209b2..0000000000000 --- a/llvm/test/MC/Disassembler/AArch64/armv9.6a-mpam.txt +++ /dev/null @@ -1,50 +0,0 @@ -# RUN: llvm-mc -triple aarch64 -disassemble < %s | FileCheck %s - -#------------------------------------------------------------------------------ -# Armv9.6-A FEAT_MPAM Extensions -#------------------------------------------------------------------------------ - -[0x80,0xa5,0x1e,0xd5] -# CHECK: msr MPAMBW3_EL3, x0 - -[0x80,0xa5,0x1c,0xd5] -# CHECK: msr MPAMBW2_EL2, x0 - -[0x80,0xa5,0x18,0xd5] -# CHECK: msr MPAMBW1_EL1, x0 - -[0x80,0xa5,0x1d,0xd5] -# CHECK: msr MPAMBW1_EL12, x0 - -[0xa0,0xa5,0x18,0xd5] -# CHECK: msr MPAMBW0_EL1, x0 - -[0xc0,0xa5,0x1c,0xd5] -# CHECK: msr MPAMBWCAP_EL2, x0 - -[0xe0,0xa5,0x18,0xd5] -# CHECK: msr MPAMBWSM_EL1, x0 - -[0xa0,0xa4,0x38,0xd5] -# CHECK: mrs x0, MPAMBWIDR_EL1 - -[0x80,0xa5,0x3e,0xd5] -# CHECK: mrs x0, MPAMBW3_EL3 - -[0x80,0xa5,0x3c,0xd5] -# CHECK: mrs x0, MPAMBW2_EL2 - -[0x80,0xa5,0x38,0xd5] -# CHECK: mrs x0, MPAMBW1_EL1 - -[0x80,0xa5,0x3d,0xd5] -# CHECK: mrs x0, MPAMBW1_EL12 - -[0xa0,0xa5,0x38,0xd5] -# CHECK: mrs x0, MPAMBW0_EL1 - -[0xc0,0xa5,0x3c,0xd5] -# CHECK: mrs x0, MPAMBWCAP_EL2 - -[0xe0,0xa5,0x38,0xd5] -# CHECK: mrs x0, MPAMBWSM_EL1 diff --git a/llvm/test/MC/Disassembler/AArch64/armv9a-mec.txt b/llvm/test/MC/Disassembler/AArch64/armv9a-mec.txt deleted file mode 100644 index c5d931d46ca6d..0000000000000 --- a/llvm/test/MC/Disassembler/AArch64/armv9a-mec.txt +++ /dev/null @@ -1,54 +0,0 @@ -# RUN: llvm-mc -triple=aarch64 -mattr=+mec -disassemble %s | FileCheck %s -# RUN: llvm-mc -triple=aarch64 -disassemble %s 2>&1 | FileCheck %s --check-prefix=CHECK-NO-MEC - -[0xe0,0xa8,0x3c,0xd5] -# CHECK: mrs x0, MECIDR_EL2 -# CHECK-NO-MEC: mrs x0, S3_4_C10_C8_7 -[0x00,0xa8,0x3c,0xd5] -# CHECK: mrs x0, MECID_P0_EL2 -# CHECK-NO-MEC: mrs x0, S3_4_C10_C8_0 -[0x20,0xa8,0x3c,0xd5] -# CHECK: mrs x0, MECID_A0_EL2 -# CHECK-NO-MEC: mrs x0, S3_4_C10_C8_1 -[0x40,0xa8,0x3c,0xd5] -# CHECK: mrs x0, MECID_P1_EL2 -# CHECK-NO-MEC: mrs x0, S3_4_C10_C8_2 -[0x60,0xa8,0x3c,0xd5] -# CHECK: mrs x0, MECID_A1_EL2 -# CHECK-NO-MEC: mrs x0, S3_4_C10_C8_3 -[0x00,0xa9,0x3c,0xd5] -# CHECK: mrs x0, VMECID_P_EL2 -# CHECK-NO-MEC: mrs x0, S3_4_C10_C9_0 -[0x20,0xa9,0x3c,0xd5] -# CHECK: mrs x0, VMECID_A_EL2 -# CHECK-NO-MEC: mrs x0, S3_4_C10_C9_1 -[0x20,0xaa,0x3e,0xd5] -# CHECK: mrs x0, MECID_RL_A_EL3 -# CHECK-NO-MEC: mrs x0, S3_6_C10_C10_1 -[0x00,0xa8,0x1c,0xd5] -# CHECK: msr MECID_P0_EL2, x0 -# CHECK-NO-MEC: msr S3_4_C10_C8_0, x0 -[0x20,0xa8,0x1c,0xd5] -# CHECK: msr MECID_A0_EL2, x0 -# CHECK-NO-MEC: msr S3_4_C10_C8_1, x0 -[0x40,0xa8,0x1c,0xd5] -# CHECK: msr MECID_P1_EL2, x0 -# CHECK-NO-MEC: msr S3_4_C10_C8_2, x0 -[0x60,0xa8,0x1c,0xd5] -# CHECK: msr MECID_A1_EL2, x0 -# CHECK-NO-MEC: msr S3_4_C10_C8_3, x0 -[0x00,0xa9,0x1c,0xd5] -# CHECK: msr VMECID_P_EL2, x0 -# CHECK-NO-MEC: msr S3_4_C10_C9_0, x0 -[0x20,0xa9,0x1c,0xd5] -# CHECK: msr VMECID_A_EL2, x0 -# CHECK-NO-MEC: msr S3_4_C10_C9_1, x0 -[0x20,0xaa,0x1e,0xd5] -# CHECK: msr MECID_RL_A_EL3, x0 -# CHECK-NO-MEC: msr S3_6_C10_C10_1, x0 -[0xe0,0x7e,0x0c,0xd5] -# CHECK: dc cigdpae, x0 -# CHECK-NO-MEC: sys #4, c7, c14, #7, x0 -[0x00,0x7e,0x0c,0xd5] -# CHECK: dc cipae, x0 -# CHECK-NO-MEC: sys #4, c7, c14, #0, x0