// 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-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



mrs x3, SCTLRMASK_EL1
// CHECK-INST: mrs x3, SCTLRMASK_EL1
// CHECK-ENCODING: encoding: [0x03,0x14,0x38,0xd5]
// CHECK-UNKNOWN:  d5381403 mrs x3, SCTLRMASK_EL1

mrs x3, SCTLRMASK_EL2
// CHECK-INST: mrs x3, SCTLRMASK_EL2
// CHECK-ENCODING: encoding: [0x03,0x14,0x3c,0xd5]
// CHECK-UNKNOWN:  d53c1403 mrs x3, SCTLRMASK_EL2

mrs x3, SCTLRMASK_EL12
// CHECK-INST: mrs x3, SCTLRMASK_EL12
// CHECK-ENCODING: encoding: [0x03,0x14,0x3d,0xd5]
// CHECK-UNKNOWN:  d53d1403 mrs x3, SCTLRMASK_EL12

mrs x3, CPACRMASK_EL1
// CHECK-INST: mrs x3, CPACRMASK_EL1
// CHECK-ENCODING: encoding: [0x43,0x14,0x38,0xd5]
// CHECK-UNKNOWN:  d5381443 mrs x3, CPACRMASK_EL1

mrs x3, CPTRMASK_EL2
// CHECK-INST: mrs x3, CPTRMASK_EL2
// CHECK-ENCODING: encoding: [0x43,0x14,0x3c,0xd5]
// CHECK-UNKNOWN:  d53c1443 mrs x3, CPTRMASK_EL2

mrs x3, CPACRMASK_EL12
// CHECK-INST: mrs x3, CPACRMASK_EL12
// CHECK-ENCODING: encoding: [0x43,0x14,0x3d,0xd5]
// CHECK-UNKNOWN:  d53d1443 mrs x3, CPACRMASK_EL12

mrs x3, SCTLR2MASK_EL1
// CHECK-INST: mrs x3, SCTLR2MASK_EL1
// CHECK-ENCODING: encoding: [0x63,0x14,0x38,0xd5]
// CHECK-UNKNOWN:  d5381463 mrs x3, SCTLR2MASK_EL1

mrs x3, SCTLR2MASK_EL2
// CHECK-INST: mrs x3, SCTLR2MASK_EL2
// CHECK-ENCODING: encoding: [0x63,0x14,0x3c,0xd5]
// CHECK-UNKNOWN:  d53c1463 mrs x3, SCTLR2MASK_EL2

mrs x3, SCTLR2MASK_EL12
// CHECK-INST: mrs x3, SCTLR2MASK_EL12
// CHECK-ENCODING: encoding: [0x63,0x14,0x3d,0xd5]
// CHECK-UNKNOWN:  d53d1463 mrs x3, SCTLR2MASK_EL12

mrs x3, CPACRALIAS_EL1
// CHECK-INST: mrs x3, CPACRALIAS_EL1
// CHECK-ENCODING: encoding: [0x83,0x14,0x38,0xd5]
// CHECK-UNKNOWN:  d5381483 mrs x3, CPACRALIAS_EL1

mrs x3, SCTLRALIAS_EL1
// CHECK-INST: mrs x3, SCTLRALIAS_EL1
// CHECK-ENCODING: encoding: [0xc3,0x14,0x38,0xd5]
// CHECK-UNKNOWN:  d53814c3 mrs x3, SCTLRALIAS_EL1

mrs x3, SCTLR2ALIAS_EL1
// CHECK-INST: mrs x3, SCTLR2ALIAS_EL1
// CHECK-ENCODING: encoding: [0xe3,0x14,0x38,0xd5]
// CHECK-UNKNOWN:  d53814e3 mrs x3, SCTLR2ALIAS_EL1

mrs x3, TCRMASK_EL1
// CHECK-INST: mrs x3, TCRMASK_EL1
// CHECK-ENCODING: encoding: [0x43,0x27,0x38,0xd5]
// CHECK-UNKNOWN:  d5382743 mrs x3, TCRMASK_EL1

mrs x3, TCRMASK_EL2
// CHECK-INST: mrs x3, TCRMASK_EL2
// CHECK-ENCODING: encoding: [0x43,0x27,0x3c,0xd5]
// CHECK-UNKNOWN:  d53c2743 mrs x3, TCRMASK_EL2

mrs x3, TCRMASK_EL12
// CHECK-INST: mrs x3, TCRMASK_EL12
// CHECK-ENCODING: encoding: [0x43,0x27,0x3d,0xd5]
// CHECK-UNKNOWN:  d53d2743 mrs x3, TCRMASK_EL12

mrs x3, TCR2MASK_EL1
// CHECK-INST: mrs x3, TCR2MASK_EL1
// CHECK-ENCODING: encoding: [0x63,0x27,0x38,0xd5]
// CHECK-UNKNOWN:  d5382763 mrs x3, TCR2MASK_EL1

mrs x3, TCR2MASK_EL2
// CHECK-INST: mrs x3, TCR2MASK_EL2
// CHECK-ENCODING: encoding: [0x63,0x27,0x3c,0xd5]
// CHECK-UNKNOWN:  d53c2763 mrs x3, TCR2MASK_EL2

mrs x3, TCR2MASK_EL12
// CHECK-INST: mrs x3, TCR2MASK_EL12
// CHECK-ENCODING: encoding: [0x63,0x27,0x3d,0xd5]
// CHECK-UNKNOWN:  d53d2763 mrs x3, TCR2MASK_EL12

mrs x3, TCRALIAS_EL1
// CHECK-INST: mrs x3, TCRALIAS_EL1
// CHECK-ENCODING: encoding: [0xc3,0x27,0x38,0xd5]
// CHECK-UNKNOWN:  d53827c3 mrs x3, TCRALIAS_EL1

mrs x3, TCR2ALIAS_EL1
// CHECK-INST: mrs x3, TCR2ALIAS_EL1
// CHECK-ENCODING: encoding: [0xe3,0x27,0x38,0xd5]
// CHECK-UNKNOWN:  d53827e3 mrs x3, TCR2ALIAS_EL1

mrs x3, ACTLRMASK_EL1
// CHECK-INST: mrs x3, ACTLRMASK_EL1
// CHECK-ENCODING: encoding: [0x23,0x14,0x38,0xd5]
// CHECK-UNKNOWN:  d5381423 mrs x3, ACTLRMASK_EL1

mrs x3, ACTLRMASK_EL2
// CHECK-INST: mrs x3, ACTLRMASK_EL2
// CHECK-ENCODING: encoding: [0x23,0x14,0x3c,0xd5]
// CHECK-UNKNOWN:  d53c1423 mrs x3, ACTLRMASK_EL2

mrs x3, ACTLRMASK_EL12
// CHECK-INST: mrs x3, ACTLRMASK_EL12
// CHECK-ENCODING: encoding: [0x23,0x14,0x3d,0xd5]
// CHECK-UNKNOWN:  d53d1423 mrs x3, ACTLRMASK_EL12

mrs x3, ACTLRALIAS_EL1
// CHECK-INST: mrs x3, ACTLRALIAS_EL1
// CHECK-ENCODING: encoding: [0xa3,0x14,0x38,0xd5]
// CHECK-UNKNOWN:  d53814a3 mrs x3, ACTLRALIAS_EL1

msr SCTLRMASK_EL1, x3
// CHECK-INST: msr SCTLRMASK_EL1, x3
// CHECK-ENCODING: encoding: [0x03,0x14,0x18,0xd5]
// CHECK-UNKNOWN:  d5181403 msr SCTLRMASK_EL1, x3

msr SCTLRMASK_EL2, x3
// CHECK-INST: msr SCTLRMASK_EL2, x3
// CHECK-ENCODING: encoding: [0x03,0x14,0x1c,0xd5]
// CHECK-UNKNOWN:  d51c1403 msr SCTLRMASK_EL2, x3

msr SCTLRMASK_EL12, x3
// CHECK-INST: msr SCTLRMASK_EL12, x3
// CHECK-ENCODING: encoding: [0x03,0x14,0x1d,0xd5]
// CHECK-UNKNOWN:  d51d1403 msr SCTLRMASK_EL12, x3

msr CPACRMASK_EL1, x3
// CHECK-INST: msr CPACRMASK_EL1, x3
// CHECK-ENCODING: encoding: [0x43,0x14,0x18,0xd5]
// CHECK-UNKNOWN:  d5181443 msr CPACRMASK_EL1, x3

msr CPTRMASK_EL2, x3
// CHECK-INST: msr CPTRMASK_EL2, x3
// CHECK-ENCODING: encoding: [0x43,0x14,0x1c,0xd5]
// CHECK-UNKNOWN:  d51c1443 msr CPTRMASK_EL2, x3

msr CPACRMASK_EL12, x3
// CHECK-INST: msr CPACRMASK_EL12, x3
// CHECK-ENCODING: encoding: [0x43,0x14,0x1d,0xd5]
// CHECK-UNKNOWN:  d51d1443 msr CPACRMASK_EL12, x3

msr SCTLR2MASK_EL1, x3
// CHECK-INST: msr SCTLR2MASK_EL1, x3
// CHECK-ENCODING: encoding: [0x63,0x14,0x18,0xd5]
// CHECK-UNKNOWN:  d5181463 msr SCTLR2MASK_EL1, x3

msr SCTLR2MASK_EL2, x3
// CHECK-INST: msr SCTLR2MASK_EL2, x3
// CHECK-ENCODING: encoding: [0x63,0x14,0x1c,0xd5]
// CHECK-UNKNOWN:  d51c1463 msr SCTLR2MASK_EL2, x3

msr SCTLR2MASK_EL12, x3
// CHECK-INST: msr SCTLR2MASK_EL12, x3
// CHECK-ENCODING: encoding: [0x63,0x14,0x1d,0xd5]
// CHECK-UNKNOWN:  d51d1463 msr SCTLR2MASK_EL12, x3

msr CPACRALIAS_EL1, x3
// CHECK-INST: msr CPACRALIAS_EL1, x3
// CHECK-ENCODING: encoding: [0x83,0x14,0x18,0xd5]
// CHECK-UNKNOWN:  d5181483 msr CPACRALIAS_EL1, x3

msr SCTLRALIAS_EL1, x3
// CHECK-INST: msr SCTLRALIAS_EL1, x3
// CHECK-ENCODING: encoding: [0xc3,0x14,0x18,0xd5]
// CHECK-UNKNOWN:  d51814c3 msr SCTLRALIAS_EL1, x3

msr SCTLR2ALIAS_EL1, x3
// CHECK-INST: msr SCTLR2ALIAS_EL1, x3
// CHECK-ENCODING: encoding: [0xe3,0x14,0x18,0xd5]
// CHECK-UNKNOWN:  d51814e3 msr SCTLR2ALIAS_EL1, x3

msr TCRMASK_EL1, x3
// CHECK-INST: msr TCRMASK_EL1, x3
// CHECK-ENCODING: encoding: [0x43,0x27,0x18,0xd5]
// CHECK-UNKNOWN:  d5182743 msr TCRMASK_EL1, x3

msr TCRMASK_EL2, x3
// CHECK-INST: msr TCRMASK_EL2, x3
// CHECK-ENCODING: encoding: [0x43,0x27,0x1c,0xd5]
// CHECK-UNKNOWN:  d51c2743 msr TCRMASK_EL2, x3

msr TCRMASK_EL12, x3
// CHECK-INST: msr TCRMASK_EL12, x3
// CHECK-ENCODING: encoding: [0x43,0x27,0x1d,0xd5]
// CHECK-UNKNOWN:  d51d2743 msr TCRMASK_EL12, x3

msr TCR2MASK_EL1, x3
// CHECK-INST: msr TCR2MASK_EL1, x3
// CHECK-ENCODING: encoding: [0x63,0x27,0x18,0xd5]
// CHECK-UNKNOWN:  d5182763 msr TCR2MASK_EL1, x3

msr TCR2MASK_EL2, x3
// CHECK-INST: msr TCR2MASK_EL2, x3
// CHECK-ENCODING: encoding: [0x63,0x27,0x1c,0xd5]
// CHECK-UNKNOWN:  d51c2763 msr TCR2MASK_EL2, x3

msr TCR2MASK_EL12, x3
// CHECK-INST: msr TCR2MASK_EL12, x3
// CHECK-ENCODING: encoding: [0x63,0x27,0x1d,0xd5]
// CHECK-UNKNOWN:  d51d2763 msr TCR2MASK_EL12, x3

msr TCRALIAS_EL1, x3
// CHECK-INST: msr TCRALIAS_EL1, x3
// CHECK-ENCODING: encoding: [0xc3,0x27,0x18,0xd5]
// CHECK-UNKNOWN:  d51827c3 msr TCRALIAS_EL1, x3

msr TCR2ALIAS_EL1, x3
// CHECK-INST: msr TCR2ALIAS_EL1, x3
// CHECK-ENCODING: encoding: [0xe3,0x27,0x18,0xd5]
// CHECK-UNKNOWN:  d51827e3 msr TCR2ALIAS_EL1, x3

msr ACTLRMASK_EL1, x3
// CHECK-INST: msr ACTLRMASK_EL1, x3
// CHECK-ENCODING: encoding: [0x23,0x14,0x18,0xd5]
// CHECK-UNKNOWN:  d5181423 msr ACTLRMASK_EL1, x3

msr ACTLRMASK_EL2, x3
// CHECK-INST: msr ACTLRMASK_EL2, x3
// CHECK-ENCODING: encoding: [0x23,0x14,0x1c,0xd5]
// CHECK-UNKNOWN:  d51c1423 msr ACTLRMASK_EL2, x3

msr ACTLRMASK_EL12, x3
// CHECK-INST: msr ACTLRMASK_EL12, x3
// CHECK-ENCODING: encoding: [0x23,0x14,0x1d,0xd5]
// CHECK-UNKNOWN:  d51d1423 msr ACTLRMASK_EL12, x3

msr ACTLRALIAS_EL1, x3
// CHECK-INST: msr ACTLRALIAS_EL1, x3
// CHECK-ENCODING: encoding: [0xa3,0x14,0x18,0xd5]
// CHECK-UNKNOWN:  d51814a3 msr ACTLRALIAS_EL1, x3



