283 lines · plain
1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+rcpc3 < %s \2// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST3// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+rcpc3,+v8.9a < %s \4// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST5// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+rcpc3,+v9.4a < %s \6// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST7// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \8// RUN: | FileCheck %s --check-prefixes=CHECK-ERROR9// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+rcpc3 < %s \10// RUN: | llvm-objdump -d --mattr=+rcpc3 --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST11// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+rcpc3 < %s \12// RUN: | llvm-objdump -d --mattr=-rcpc3 --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-UNKNOWN13// Disassemble encoding and check the re-encoding (-show-encoding) matches.14// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+rcpc3 < %s \15// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \16// RUN: | llvm-mc -triple=aarch64 -mattr=+rcpc3 -disassemble -show-encoding \17// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST18 19 20stilp w24, w0, [x16, #-8]!21// CHECK-INST: stilp w24, w0, [x16, #-8]!22// CHECK-ENCODING: encoding: [0x18,0x0a,0x00,0x99]23// CHECK-ERROR:error: instruction requires: rcpc324// CHECK-UNKNOWN: 99000a18 <unknown>25 26stilp w24, w0, [x16, -8]!27// CHECK-INST: stilp w24, w0, [x16, #-8]!28// CHECK-ENCODING: encoding: [0x18,0x0a,0x00,0x99]29// CHECK-ERROR:error: instruction requires: rcpc330// CHECK-UNKNOWN: 99000a18 <unknown>31 32stilp x25, x1, [x17, -16]!33// CHECK-INST: stilp x25, x1, [x17, #-16]!34// CHECK-ENCODING: encoding: [0x39,0x0a,0x01,0xd9]35// CHECK-ERROR:error: instruction requires: rcpc336// CHECK-UNKNOWN: d9010a39 <unknown>37 38stilp x25, x1, [x17, #-16]!39// CHECK-INST: stilp x25, x1, [x17, #-16]!40// CHECK-ENCODING: encoding: [0x39,0x0a,0x01,0xd9]41// CHECK-ERROR:error: instruction requires: rcpc342// CHECK-UNKNOWN: d9010a39 <unknown>43 44stilp w26, w2, [x18]45// CHECK-INST: stilp w26, w2, [x18]46// CHECK-ENCODING: encoding: [0x5a,0x1a,0x02,0x99]47// CHECK-ERROR:error: instruction requires: rcpc348// CHECK-UNKNOWN: 99021a5a <unknown>49 50stilp w26, w2, [x18, #0]51// CHECK-INST: stilp w26, w2, [x18]52// CHECK-ENCODING: encoding: [0x5a,0x1a,0x02,0x99]53// CHECK-ERROR:error: instruction requires: rcpc354// CHECK-UNKNOWN: 99021a5a <unknown>55 56stilp x27, x3, [sp]57// CHECK-INST: stilp x27, x3, [sp]58// CHECK-ENCODING: encoding: [0xfb,0x1b,0x03,0xd9]59// CHECK-ERROR:error: instruction requires: rcpc360// CHECK-UNKNOWN: d9031bfb <unknown>61 62stilp x27, x3, [sp, 0]63// CHECK-INST: stilp x27, x3, [sp]64// CHECK-ENCODING: encoding: [0xfb,0x1b,0x03,0xd9]65// CHECK-ERROR:error: instruction requires: rcpc366// CHECK-UNKNOWN: d9031bfb <unknown>67 68ldiapp w28, w4, [x20], #869// CHECK-INST: ldiapp w28, w4, [x20], #870// CHECK-ENCODING: encoding: [0x9c,0x0a,0x44,0x99]71// CHECK-ERROR:error: instruction requires: rcpc372// CHECK-UNKNOWN: 99440a9c <unknown>73 74ldiapp w28, w4, [x20, #0], #875// CHECK-INST: ldiapp w28, w4, [x20], #876// CHECK-ENCODING: encoding: [0x9c,0x0a,0x44,0x99]77// CHECK-ERROR:error: instruction requires: rcpc378// CHECK-UNKNOWN: 99440a9c <unknown>79 80ldiapp w28, w4, [x20], 881// CHECK-INST: ldiapp w28, w4, [x20], #882// CHECK-ENCODING: encoding: [0x9c,0x0a,0x44,0x99]83// CHECK-ERROR:error: instruction requires: rcpc384// CHECK-UNKNOWN: 99440a9c <unknown>85 86ldiapp w28, w4, [x20, 0], 887// CHECK-INST: ldiapp w28, w4, [x20], #888// CHECK-ENCODING: encoding: [0x9c,0x0a,0x44,0x99]89// CHECK-ERROR:error: instruction requires: rcpc390// CHECK-UNKNOWN: 99440a9c <unknown>91 92ldiapp x29, x5, [x21], #1693// CHECK-INST: ldiapp x29, x5, [x21], #1694// CHECK-ENCODING: encoding: [0xbd,0x0a,0x45,0xd9]95// CHECK-ERROR:error: instruction requires: rcpc396// CHECK-UNKNOWN: d9450abd <unknown>97 98ldiapp x29, x5, [x21], 1699// CHECK-INST: ldiapp x29, x5, [x21], #16100// CHECK-ENCODING: encoding: [0xbd,0x0a,0x45,0xd9]101// CHECK-ERROR:error: instruction requires: rcpc3102// CHECK-UNKNOWN: d9450abd <unknown>103 104ldiapp w30, w6, [sp]105// CHECK-INST: ldiapp w30, w6, [sp]106// CHECK-ENCODING: encoding: [0xfe,0x1b,0x46,0x99]107// CHECK-ERROR:error: instruction requires: rcpc3108// CHECK-UNKNOWN: 99461bfe <unknown>109 110ldiapp w30, w6, [sp, #0]111// CHECK-INST: ldiapp w30, w6, [sp]112// CHECK-ENCODING: encoding: [0xfe,0x1b,0x46,0x99]113// CHECK-ERROR:error: instruction requires: rcpc3114// CHECK-UNKNOWN: 99461bfe <unknown>115 116ldiapp xzr, x7, [x23]117// CHECK-INST: ldiapp xzr, x7, [x23]118// CHECK-ENCODING: encoding: [0xff,0x1a,0x47,0xd9]119// CHECK-ERROR:error: instruction requires: rcpc3120// CHECK-UNKNOWN: d9471aff <unknown>121 122ldiapp xzr, x7, [x23, 0]123// CHECK-INST: ldiapp xzr, x7, [x23]124// CHECK-ENCODING: encoding: [0xff,0x1a,0x47,0xd9]125// CHECK-ERROR:error: instruction requires: rcpc3126// CHECK-UNKNOWN: d9471aff <unknown>127 128stlr w3, [x15, #-4]!129// CHECK-INST: stlr w3, [x15, #-4]!130// CHECK-ENCODING: encoding: [0xe3,0x09,0x80,0x99]131// CHECK-ERROR:error: instruction requires: rcpc3132// CHECK-UNKNOWN: 998009e3 <unknown>133 134stlr w3, [x15, -4]!135// CHECK-INST: stlr w3, [x15, #-4]!136// CHECK-ENCODING: encoding: [0xe3,0x09,0x80,0x99]137// CHECK-ERROR:error: instruction requires: rcpc3138// CHECK-UNKNOWN: 998009e3 <unknown>139 140stlr x3, [x15, #-8]!141// CHECK-INST: stlr x3, [x15, #-8]!142// CHECK-ENCODING: encoding: [0xe3,0x09,0x80,0xd9]143// CHECK-ERROR:error: instruction requires: rcpc3144// CHECK-UNKNOWN: d98009e3 <unknown>145 146stlr x3, [sp, -8]!147// CHECK-INST: stlr x3, [sp, #-8]!148// CHECK-ENCODING: encoding: [0xe3,0x0b,0x80,0xd9]149// CHECK-ERROR:error: instruction requires: rcpc3150// CHECK-UNKNOWN: d9800be3 <unknown>151 152ldapr w3, [sp], #4153// CHECK-INST: ldapr w3, [sp], #4154// CHECK-ENCODING: encoding: [0xe3,0x0b,0xc0,0x99]155// CHECK-ERROR:error: instruction requires: rcpc3156// CHECK-UNKNOWN: 99c00be3 <unknown>157 158ldapr w3, [x15], 4159// CHECK-INST: ldapr w3, [x15], #4160// CHECK-ENCODING: encoding: [0xe3,0x09,0xc0,0x99]161// CHECK-ERROR:error: instruction requires: rcpc3162// CHECK-UNKNOWN: 99c009e3 <unknown>163 164ldapr x3, [x15], #8165// CHECK-INST: ldapr x3, [x15], #8166// CHECK-ENCODING: encoding: [0xe3,0x09,0xc0,0xd9]167// CHECK-ERROR:error: instruction requires: rcpc3168// CHECK-UNKNOWN: d9c009e3 <unknown>169 170ldapr x3, [x15], 8171// CHECK-INST: ldapr x3, [x15], #8172// CHECK-ENCODING: encoding: [0xe3,0x09,0xc0,0xd9]173// CHECK-ERROR:error: instruction requires: rcpc3174// CHECK-UNKNOWN: d9c009e3 <unknown>175 176stlur b3, [x15, #-1]177// CHECK-INST: stlur b3, [x15, #-1]178// CHECK-ENCODING: encoding: [0xe3,0xf9,0x1f,0x1d]179// CHECK-ERROR:error: instruction requires: rcpc3180// CHECK-UNKNOWN: 1d1ff9e3 <unknown>181 182stlur h3, [x15, #2]183// CHECK-INST: stlur h3, [x15, #2]184// CHECK-ENCODING: encoding: [0xe3,0x29,0x00,0x5d]185// CHECK-ERROR:error: instruction requires: rcpc3186// CHECK-UNKNOWN: 5d0029e3 <unknown>187 188stlur s3, [x15, #-3]189// CHECK-INST: stlur s3, [x15, #-3]190// CHECK-ENCODING: encoding: [0xe3,0xd9,0x1f,0x9d]191// CHECK-ERROR:error: instruction requires: rcpc3192// CHECK-UNKNOWN: 9d1fd9e3 <unknown>193 194stlur d3, [sp, #4]195// CHECK-INST: stlur d3, [sp, #4]196// CHECK-ENCODING: encoding: [0xe3,0x4b,0x00,0xdd]197// CHECK-ERROR:error: instruction requires: rcpc3198// CHECK-UNKNOWN: dd004be3 <unknown>199 200stlur q3, [x15, #-5]201// CHECK-INST: stlur q3, [x15, #-5]202// CHECK-ENCODING: encoding: [0xe3,0xb9,0x9f,0x1d]203// CHECK-ERROR:error: instruction requires: rcpc3204// CHECK-UNKNOWN: 1d9fb9e3 <unknown>205 206ldapur b3, [x15, #6]207// CHECK-INST: ldapur b3, [x15, #6]208// CHECK-ENCODING: encoding: [0xe3,0x69,0x40,0x1d]209// CHECK-ERROR:error: instruction requires: rcpc3210// CHECK-UNKNOWN: 1d4069e3 <unknown>211 212ldapur h3, [x15, #-7]213// CHECK-INST: ldapur h3, [x15, #-7]214// CHECK-ENCODING: encoding: [0xe3,0x99,0x5f,0x5d]215// CHECK-ERROR:error: instruction requires: rcpc3216// CHECK-UNKNOWN: 5d5f99e3 <unknown>217 218ldapur s3, [x15, #8]219// CHECK-INST: ldapur s3, [x15, #8]220// CHECK-ENCODING: encoding: [0xe3,0x89,0x40,0x9d]221// CHECK-ERROR:error: instruction requires: rcpc3222// CHECK-UNKNOWN: 9d4089e3 <unknown>223 224ldapur d3, [x15, #-9]225// CHECK-INST: ldapur d3, [x15, #-9]226// CHECK-ENCODING: encoding: [0xe3,0x79,0x5f,0xdd]227// CHECK-ERROR:error: instruction requires: rcpc3228// CHECK-UNKNOWN: dd5f79e3 <unknown>229 230ldapur q3, [sp, #10]231// CHECK-INST: ldapur q3, [sp, #10]232// CHECK-ENCODING: encoding: [0xe3,0xab,0xc0,0x1d]233// CHECK-ERROR:error: instruction requires: rcpc3234// CHECK-UNKNOWN: 1dc0abe3 <unknown>235 236stl1 { v3.d }[0], [x15]237// CHECK-INST: stl1 { v3.d }[0], [x15]238// CHECK-ENCODING: encoding: [0xe3,0x85,0x01,0x0d]239// CHECK-ERROR:error: instruction requires: rcpc3240// CHECK-UNKNOWN: 0d0185e3 <unknown>241 242stl1 { v3.d }[0], [x15, #0]243// CHECK-INST: stl1 { v3.d }[0], [x15]244// CHECK-ENCODING: encoding: [0xe3,0x85,0x01,0x0d]245// CHECK-ERROR:error: instruction requires: rcpc3246// CHECK-UNKNOWN: 0d0185e3 <unknown>247 248stl1 { v3.d }[1], [sp]249// CHECK-INST: stl1 { v3.d }[1], [sp]250// CHECK-ENCODING: encoding: [0xe3,0x87,0x01,0x4d]251// CHECK-ERROR:error: instruction requires: rcpc3252// CHECK-UNKNOWN: 4d0187e3 <unknown>253 254stl1 { v3.d }[1], [sp, 0]255// CHECK-INST: stl1 { v3.d }[1], [sp]256// CHECK-ENCODING: encoding: [0xe3,0x87,0x01,0x4d]257// CHECK-ERROR:error: instruction requires: rcpc3258// CHECK-UNKNOWN: 4d0187e3 <unknown>259 260ldap1 { v3.d }[0], [sp]261// CHECK-INST: ldap1 { v3.d }[0], [sp]262// CHECK-ENCODING: encoding: [0xe3,0x87,0x41,0x0d]263// CHECK-ERROR:error: instruction requires: rcpc3264// CHECK-UNKNOWN: 0d4187e3 <unknown>265 266ldap1 { v3.d }[0], [sp, #0]267// CHECK-INST: ldap1 { v3.d }[0], [sp]268// CHECK-ENCODING: encoding: [0xe3,0x87,0x41,0x0d]269// CHECK-ERROR:error: instruction requires: rcpc3270// CHECK-UNKNOWN: 0d4187e3 <unknown>271 272ldap1 { v3.d }[1], [x15]273// CHECK-INST: ldap1 { v3.d }[1], [x15]274// CHECK-ENCODING: encoding: [0xe3,0x85,0x41,0x4d]275// CHECK-ERROR:error: instruction requires: rcpc3276// CHECK-UNKNOWN: 4d4185e3 <unknown>277 278ldap1 { v3.d }[1], [x15, 0]279// CHECK-INST: ldap1 { v3.d }[1], [x15]280// CHECK-ENCODING: encoding: [0xe3,0x85,0x41,0x4d]281// CHECK-ERROR:error: instruction requires: rcpc3282// CHECK-UNKNOWN: 4d4185e3 <unknown>283