// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+rcpc3 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+rcpc3,+v8.9a < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+rcpc3,+v9.4a < %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=+rcpc3 < %s \ // RUN: | llvm-objdump -d --mattr=+rcpc3 --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+rcpc3 < %s \ // RUN: | llvm-objdump -d --mattr=-rcpc3 --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=+rcpc3 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ // RUN: | llvm-mc -triple=aarch64 -mattr=+rcpc3 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST stilp w24, w0, [x16, #-8]! // CHECK-INST: stilp w24, w0, [x16, #-8]! // CHECK-ENCODING: encoding: [0x18,0x0a,0x00,0x99] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 99000a18 stilp w24, w0, [x16, -8]! // CHECK-INST: stilp w24, w0, [x16, #-8]! // CHECK-ENCODING: encoding: [0x18,0x0a,0x00,0x99] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 99000a18 stilp x25, x1, [x17, -16]! // CHECK-INST: stilp x25, x1, [x17, #-16]! // CHECK-ENCODING: encoding: [0x39,0x0a,0x01,0xd9] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: d9010a39 stilp x25, x1, [x17, #-16]! // CHECK-INST: stilp x25, x1, [x17, #-16]! // CHECK-ENCODING: encoding: [0x39,0x0a,0x01,0xd9] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: d9010a39 stilp w26, w2, [x18] // CHECK-INST: stilp w26, w2, [x18] // CHECK-ENCODING: encoding: [0x5a,0x1a,0x02,0x99] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 99021a5a stilp w26, w2, [x18, #0] // CHECK-INST: stilp w26, w2, [x18] // CHECK-ENCODING: encoding: [0x5a,0x1a,0x02,0x99] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 99021a5a stilp x27, x3, [sp] // CHECK-INST: stilp x27, x3, [sp] // CHECK-ENCODING: encoding: [0xfb,0x1b,0x03,0xd9] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: d9031bfb stilp x27, x3, [sp, 0] // CHECK-INST: stilp x27, x3, [sp] // CHECK-ENCODING: encoding: [0xfb,0x1b,0x03,0xd9] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: d9031bfb ldiapp w28, w4, [x20], #8 // CHECK-INST: ldiapp w28, w4, [x20], #8 // CHECK-ENCODING: encoding: [0x9c,0x0a,0x44,0x99] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 99440a9c ldiapp w28, w4, [x20, #0], #8 // CHECK-INST: ldiapp w28, w4, [x20], #8 // CHECK-ENCODING: encoding: [0x9c,0x0a,0x44,0x99] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 99440a9c ldiapp w28, w4, [x20], 8 // CHECK-INST: ldiapp w28, w4, [x20], #8 // CHECK-ENCODING: encoding: [0x9c,0x0a,0x44,0x99] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 99440a9c ldiapp w28, w4, [x20, 0], 8 // CHECK-INST: ldiapp w28, w4, [x20], #8 // CHECK-ENCODING: encoding: [0x9c,0x0a,0x44,0x99] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 99440a9c ldiapp x29, x5, [x21], #16 // CHECK-INST: ldiapp x29, x5, [x21], #16 // CHECK-ENCODING: encoding: [0xbd,0x0a,0x45,0xd9] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: d9450abd ldiapp x29, x5, [x21], 16 // CHECK-INST: ldiapp x29, x5, [x21], #16 // CHECK-ENCODING: encoding: [0xbd,0x0a,0x45,0xd9] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: d9450abd ldiapp w30, w6, [sp] // CHECK-INST: ldiapp w30, w6, [sp] // CHECK-ENCODING: encoding: [0xfe,0x1b,0x46,0x99] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 99461bfe ldiapp w30, w6, [sp, #0] // CHECK-INST: ldiapp w30, w6, [sp] // CHECK-ENCODING: encoding: [0xfe,0x1b,0x46,0x99] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 99461bfe ldiapp xzr, x7, [x23] // CHECK-INST: ldiapp xzr, x7, [x23] // CHECK-ENCODING: encoding: [0xff,0x1a,0x47,0xd9] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: d9471aff ldiapp xzr, x7, [x23, 0] // CHECK-INST: ldiapp xzr, x7, [x23] // CHECK-ENCODING: encoding: [0xff,0x1a,0x47,0xd9] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: d9471aff stlr w3, [x15, #-4]! // CHECK-INST: stlr w3, [x15, #-4]! // CHECK-ENCODING: encoding: [0xe3,0x09,0x80,0x99] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 998009e3 stlr w3, [x15, -4]! // CHECK-INST: stlr w3, [x15, #-4]! // CHECK-ENCODING: encoding: [0xe3,0x09,0x80,0x99] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 998009e3 stlr x3, [x15, #-8]! // CHECK-INST: stlr x3, [x15, #-8]! // CHECK-ENCODING: encoding: [0xe3,0x09,0x80,0xd9] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: d98009e3 stlr x3, [sp, -8]! // CHECK-INST: stlr x3, [sp, #-8]! // CHECK-ENCODING: encoding: [0xe3,0x0b,0x80,0xd9] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: d9800be3 ldapr w3, [sp], #4 // CHECK-INST: ldapr w3, [sp], #4 // CHECK-ENCODING: encoding: [0xe3,0x0b,0xc0,0x99] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 99c00be3 ldapr w3, [x15], 4 // CHECK-INST: ldapr w3, [x15], #4 // CHECK-ENCODING: encoding: [0xe3,0x09,0xc0,0x99] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 99c009e3 ldapr x3, [x15], #8 // CHECK-INST: ldapr x3, [x15], #8 // CHECK-ENCODING: encoding: [0xe3,0x09,0xc0,0xd9] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: d9c009e3 ldapr x3, [x15], 8 // CHECK-INST: ldapr x3, [x15], #8 // CHECK-ENCODING: encoding: [0xe3,0x09,0xc0,0xd9] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: d9c009e3 stlur b3, [x15, #-1] // CHECK-INST: stlur b3, [x15, #-1] // CHECK-ENCODING: encoding: [0xe3,0xf9,0x1f,0x1d] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 1d1ff9e3 stlur h3, [x15, #2] // CHECK-INST: stlur h3, [x15, #2] // CHECK-ENCODING: encoding: [0xe3,0x29,0x00,0x5d] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 5d0029e3 stlur s3, [x15, #-3] // CHECK-INST: stlur s3, [x15, #-3] // CHECK-ENCODING: encoding: [0xe3,0xd9,0x1f,0x9d] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 9d1fd9e3 stlur d3, [sp, #4] // CHECK-INST: stlur d3, [sp, #4] // CHECK-ENCODING: encoding: [0xe3,0x4b,0x00,0xdd] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: dd004be3 stlur q3, [x15, #-5] // CHECK-INST: stlur q3, [x15, #-5] // CHECK-ENCODING: encoding: [0xe3,0xb9,0x9f,0x1d] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 1d9fb9e3 ldapur b3, [x15, #6] // CHECK-INST: ldapur b3, [x15, #6] // CHECK-ENCODING: encoding: [0xe3,0x69,0x40,0x1d] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 1d4069e3 ldapur h3, [x15, #-7] // CHECK-INST: ldapur h3, [x15, #-7] // CHECK-ENCODING: encoding: [0xe3,0x99,0x5f,0x5d] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 5d5f99e3 ldapur s3, [x15, #8] // CHECK-INST: ldapur s3, [x15, #8] // CHECK-ENCODING: encoding: [0xe3,0x89,0x40,0x9d] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 9d4089e3 ldapur d3, [x15, #-9] // CHECK-INST: ldapur d3, [x15, #-9] // CHECK-ENCODING: encoding: [0xe3,0x79,0x5f,0xdd] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: dd5f79e3 ldapur q3, [sp, #10] // CHECK-INST: ldapur q3, [sp, #10] // CHECK-ENCODING: encoding: [0xe3,0xab,0xc0,0x1d] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 1dc0abe3 stl1 { v3.d }[0], [x15] // CHECK-INST: stl1 { v3.d }[0], [x15] // CHECK-ENCODING: encoding: [0xe3,0x85,0x01,0x0d] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 0d0185e3 stl1 { v3.d }[0], [x15, #0] // CHECK-INST: stl1 { v3.d }[0], [x15] // CHECK-ENCODING: encoding: [0xe3,0x85,0x01,0x0d] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 0d0185e3 stl1 { v3.d }[1], [sp] // CHECK-INST: stl1 { v3.d }[1], [sp] // CHECK-ENCODING: encoding: [0xe3,0x87,0x01,0x4d] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 4d0187e3 stl1 { v3.d }[1], [sp, 0] // CHECK-INST: stl1 { v3.d }[1], [sp] // CHECK-ENCODING: encoding: [0xe3,0x87,0x01,0x4d] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 4d0187e3 ldap1 { v3.d }[0], [sp] // CHECK-INST: ldap1 { v3.d }[0], [sp] // CHECK-ENCODING: encoding: [0xe3,0x87,0x41,0x0d] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 0d4187e3 ldap1 { v3.d }[0], [sp, #0] // CHECK-INST: ldap1 { v3.d }[0], [sp] // CHECK-ENCODING: encoding: [0xe3,0x87,0x41,0x0d] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 0d4187e3 ldap1 { v3.d }[1], [x15] // CHECK-INST: ldap1 { v3.d }[1], [x15] // CHECK-ENCODING: encoding: [0xe3,0x85,0x41,0x4d] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 4d4185e3 ldap1 { v3.d }[1], [x15, 0] // CHECK-INST: ldap1 { v3.d }[1], [x15] // CHECK-ENCODING: encoding: [0xe3,0x85,0x41,0x4d] // CHECK-ERROR:error: instruction requires: rcpc3 // CHECK-UNKNOWN: 4d4185e3