brintos

brintos / llvm-project-archived public Read only

0
0
Text · 27.9 KiB · 07b4a19 Raw
983 lines · plain
1// RUN: not llvm-mc -triple aarch64 -show-encoding -mattr=+mte < %s 2>&1| FileCheck %s2 3irg4irg x05irg q0, x06irg w0, x07irg x0, q08irg x0, w09irg x0, x1, q010irg x0, x1, w011irg x0, x1, sp12irg x0, x1, #113irg x0, #1, x114irg #1, x0, x115irg x0, x1, x2, x316 17// CHECK: too few operands for instruction18// CHECK-NEXT: irg19// CHECK: too few operands for instruction20// CHECK-NEXT: irg x021// CHECK: invalid operand for instruction22// CHECK-NEXT: irg q0, x023// CHECK: invalid operand for instruction24// CHECK-NEXT: irg w0, x025// CHECK: invalid operand for instruction26// CHECK-NEXT: irg x0, q027// CHECK: invalid operand for instruction28// CHECK-NEXT: irg x0, w029// CHECK: invalid operand for instruction30// CHECK-NEXT: irg x0, x1, q031// CHECK: invalid operand for instruction32// CHECK-NEXT: irg x0, x1, w033// CHECK: invalid operand for instruction34// CHECK-NEXT: irg x0, x1, sp35// CHECK: invalid operand for instruction36// CHECK-NEXT: irg x0, x1, #137// CHECK: invalid operand for instruction38// CHECK-NEXT: irg x0, #1, x139// CHECK: invalid operand for instruction40// CHECK-NEXT: irg #1, x0, x141// CHECK: invalid operand for instruction42// CHECK-NEXT: irg x0, x1, x2, x343 44addg45addg x046addg x0, x147addg x0, x1, #048addg x0, x1, #1024, #049addg x0, x1, #8, #050addg x0, x1, #-16, #051addg x0, x1, #0, #1652addg q0, x1, #0, #053addg w0, x1, #0, #054addg x0, q1, #0, #055addg x0, w1, #0, #056addg #0, x1, #0, #057addg x0, #0, #0, #058addg x0, x1, x0, #059addg x0, x1, #0, x060addg x0, x1, #16, #2, #9961 62subg63subg x064subg x0, x165subg x0, x1, #066subg x0, x1, #1024, #067subg x0, x1, #8, #068subg x0, x1, #-16, #069subg x0, x1, #0, #1670subg q0, x1, #0, #071subg w0, x1, #0, #072subg x0, q1, #0, #073subg x0, w1, #0, #074subg #0, x1, #0, #075subg x0, #0, #0, #076subg x0, x1, x0, #077subg x0, x1, #0, x078subg x0, x1, #16, #2, #9979 80// CHECK: too few operands for instruction81// CHECK-NEXT: addg82// CHECK: too few operands for instruction83// CHECK-NEXT: addg x084// CHECK: too few operands for instruction85// CHECK-NEXT: addg x0, x186// CHECK: too few operands for instruction87// CHECK-NEXT: addg x0, x1, #088// CHECK: index must be a multiple of 16 in range [0, 1008]89// CHECK-NEXT: addg x0, x1, #1024, #090// CHECK: index must be a multiple of 16 in range [0, 1008]91// CHECK-NEXT: addg x0, x1, #8, #092// CHECK: index must be a multiple of 16 in range [0, 1008]93// CHECK-NEXT: addg x0, x1, #-16, #094// CHECK: immediate must be an integer in range [0, 15]95// CHECK-NEXT: addg x0, x1, #0, #1696// CHECK: invalid operand for instruction97// CHECK-NEXT: addg q0, x1, #0, #098// CHECK: invalid operand for instruction99// CHECK-NEXT: addg w0, x1, #0, #0100// CHECK: invalid operand for instruction101// CHECK-NEXT: addg x0, q1, #0, #0102// CHECK: invalid operand for instruction103// CHECK-NEXT: addg x0, w1, #0, #0104// CHECK: invalid operand for instruction105// CHECK-NEXT: addg #0, x1, #0, #0106// CHECK: invalid operand for instruction107// CHECK-NEXT: addg x0, #0, #0, #0108// CHECK: invalid operand for instruction109// CHECK-NEXT: addg x0, x1, x0, #0110// CHECK: immediate must be an integer in range [0, 15]111// CHECK-NEXT: addg x0, x1, #0, x0112// CHECK: invalid operand for instruction113// CHECK-NEXT: addg x0, x1, #16, #2, #99114 115// CHECK: too few operands for instruction116// CHECK-NEXT: subg117// CHECK: too few operands for instruction118// CHECK-NEXT: subg x0119// CHECK: too few operands for instruction120// CHECK-NEXT: subg x0, x1121// CHECK: too few operands for instruction122// CHECK-NEXT: subg x0, x1, #0123// CHECK: index must be a multiple of 16 in range [0, 1008]124// CHECK-NEXT: subg x0, x1, #1024, #0125// CHECK: index must be a multiple of 16 in range [0, 1008]126// CHECK-NEXT: subg x0, x1, #8, #0127// CHECK: index must be a multiple of 16 in range [0, 1008]128// CHECK-NEXT: subg x0, x1, #-16, #0129// CHECK: immediate must be an integer in range [0, 15]130// CHECK-NEXT: subg x0, x1, #0, #16131// CHECK: invalid operand for instruction132// CHECK-NEXT: subg q0, x1, #0, #0133// CHECK: invalid operand for instruction134// CHECK-NEXT: subg w0, x1, #0, #0135// CHECK: invalid operand for instruction136// CHECK-NEXT: subg x0, q1, #0, #0137// CHECK: invalid operand for instruction138// CHECK-NEXT: subg x0, w1, #0, #0139// CHECK: invalid operand for instruction140// CHECK-NEXT: subg #0, x1, #0, #0141// CHECK: invalid operand for instruction142// CHECK-NEXT: subg x0, #0, #0, #0143// CHECK: invalid operand for instruction144// CHECK-NEXT: subg x0, x1, x0, #0145// CHECK: immediate must be an integer in range [0, 15]146// CHECK-NEXT: subg x0, x1, #0, x0147// CHECK: invalid operand for instruction148// CHECK-NEXT: subg x0, x1, #16, #2, #99149 150gmi151gmi x0152gmi x0, x1153gmi sp, x0, x1154gmi x0, x1, sp155gmi x0, x1, x2, #1156gmi w0, x1, x2157gmi x0, w1, x2158gmi x0, x1, w2159gmi #1, x1, x2160gmi x0, #1, x2161gmi x0, x1, #1162 163// CHECK: too few operands for instruction164// CHECK-NEXT: gmi165// CHECK: too few operands for instruction166// CHECK-NEXT: gmi x0167// CHECK: too few operands for instruction168// CHECK-NEXT: gmi x0, x1169// CHECK: invalid operand for instruction170// CHECK-NEXT: gmi sp, x0, x1171// CHECK: invalid operand for instruction172// CHECK-NEXT: gmi x0, x1, sp173// CHECK: invalid operand for instruction174// CHECK-NEXT: gmi x0, x1, x2, #1175// CHECK: invalid operand for instruction176// CHECK-NEXT: gmi w0, x1, x2177// CHECK: invalid operand for instruction178// CHECK-NEXT: gmi x0, w1, x2179// CHECK: invalid operand for instruction180// CHECK-NEXT: gmi x0, x1, w2181// CHECK: invalid operand for instruction182// CHECK-NEXT: gmi #1, x1, x2183// CHECK: invalid operand for instruction184// CHECK-NEXT: gmi x0, #1, x2185// CHECK: invalid operand for instruction186// CHECK-NEXT: gmi x0, x1, #1187stg188stg x0189stg w0190stg sp191stg #1192stg x0, [x0, #-4112]193stg x0, [x0, #4096]194stg x0, [x0, #8]195stg x0, [x0, x1]196stg x0, [w0]197stg x0, [xzr]198stg x0, [#1]199 200// CHECK: too few operands for instruction201// CHECK-NEXT: stg202// CHECK: too few operands for instruction203// CHECK-NEXT: stg x0204// CHECK: invalid operand for instruction205// CHECK-NEXT: stg w0206// CHECK: too few operands for instruction207// CHECK-NEXT: stg sp208// CHECK: invalid operand for instruction209// CHECK-NEXT: stg #1210// CHECK: index must be a multiple of 16 in range [-4096, 4080]211// CHECK-NEXT: #-4112212// CHECK: index must be a multiple of 16 in range [-4096, 4080]213// CHECK-NEXT: #4096214// CHECK: index must be a multiple of 16 in range [-4096, 4080]215// CHECK-NEXT: #8216// CHECK: invalid operand for instruction217// CHECK-NEXT: stg x0, [x0, x1]218// CHECK: invalid operand for instruction219// CHECK-NEXT: stg x0, [w0]220// CHECK: invalid operand for instruction221// CHECK-NEXT: stg x0, [xzr]222// CHECK: invalid operand for instruction223// CHECK-NEXT: stg x0, [#1]224 225stzg226stzg x0227stzg w0228stzg sp229stzg #1230stzg x0, [x0, #-4112]231stzg x0, [x0, #4096]232stzg x0, [x0, #8]233stzg x0, [x0, x1]234stzg x0, [w0]235stzg x0, [xzr]236stzg x0, [#1]237 238// CHECK: too few operands for instruction239// CHECK-NEXT: stzg240// CHECK: too few operands for instruction241// CHECK-NEXT: stzg x0242// CHECK: invalid operand for instruction243// CHECK-NEXT: stzg w0244// CHECK: too few operands for instruction245// CHECK-NEXT: stzg sp246// CHECK: invalid operand for instruction247// CHECK-NEXT: stzg #1248// CHECK: index must be a multiple of 16 in range [-4096, 4080]249// CHECK-NEXT: #-4112250// CHECK: index must be a multiple of 16 in range [-4096, 4080]251// CHECK-NEXT: #4096252// CHECK: index must be a multiple of 16 in range [-4096, 4080]253// CHECK-NEXT: #8254// CHECK: invalid operand for instruction255// CHECK-NEXT: stzg x0, [x0, x1]256// CHECK: invalid operand for instruction257// CHECK-NEXT: stzg x0, [w0]258// CHECK: invalid operand for instruction259// CHECK-NEXT: stzg x0, [xzr]260// CHECK: invalid operand for instruction261// CHECK-NEXT: stzg x0, [#1]262 263stg x0, [x0, #-4112]!264stg x0, [x0, #4096]!265stg x0, [x0, #8]!266stg x0, [x0, x1]!267stg x0, [w0]!268stg x0, [xzr]!269stg x0, [#1]!270 271// CHECK: index must be a multiple of 16 in range [-4096, 4080]272// CHECK-NEXT: #-4112273// CHECK: index must be a multiple of 16 in range [-4096, 4080]274// CHECK-NEXT: #4096275// CHECK: index must be a multiple of 16 in range [-4096, 4080]276// CHECK-NEXT: #8277// CHECK: invalid operand for instruction278// CHECK-NEXT: stg x0, [x0, x1]!279// CHECK: invalid operand for instruction280// CHECK-NEXT: stg x0, [w0]!281// CHECK: invalid operand for instruction282// CHECK-NEXT: stg x0, [xzr]!283// CHECK: invalid operand for instruction284// CHECK-NEXT: stg x0, [#1]!285 286stzg x0, [x0, #-4112]!287stzg x0, [x0, #4096]!288stzg x0, [x0, #8]!289stzg x0, [x0, x1]!290stzg x0, [w0]!291stzg x0, [xzr]!292stzg x0, [#1]!293 294// CHECK: index must be a multiple of 16 in range [-4096, 4080]295// CHECK-NEXT: #-4112296// CHECK: index must be a multiple of 16 in range [-4096, 4080]297// CHECK-NEXT: #4096298// CHECK: index must be a multiple of 16 in range [-4096, 4080]299// CHECK-NEXT: #8300// CHECK: invalid operand for instruction301// CHECK-NEXT: stzg x0, [x0, x1]!302// CHECK: invalid operand for instruction303// CHECK-NEXT: stzg x0, [w0]!304// CHECK: invalid operand for instruction305// CHECK-NEXT: stzg x0, [xzr]!306// CHECK: invalid operand for instruction307// CHECK-NEXT: stzg x0, [#1]!308 309stg x0, [x0], #-4112310stg x0, [x0], #4096311stg x0, [x0], #8312stg x0, [x0], x1313stg x0, [w0], #255314stg x0, [xzr], #255315stg x0, [#1], #255316 317// CHECK: index must be a multiple of 16 in range [-4096, 4080]318// CHECK-NEXT: #-4112319// CHECK: index must be a multiple of 16 in range [-4096, 4080]320// CHECK-NEXT: #4096321// CHECK: index must be a multiple of 16 in range [-4096, 4080]322// CHECK-NEXT: #8323// CHECK: invalid operand for instruction324// CHECK-NEXT: stg x0, [x0], x1325// CHECK: invalid operand for instruction326// CHECK-NEXT: stg x0, [w0], #255327// CHECK: invalid operand for instruction328// CHECK-NEXT: stg x0, [xzr], #255329// CHECK: invalid operand for instruction330// CHECK-NEXT: stg x0, [#1], #255331 332stzg x0, [x0], #-4112333stzg x0, [x0], #4096334stzg x0, [x0], #8335stzg x0, [x0], x1336stzg x0, [w0], #255337stzg x0, [xzr], #255338stzg x0, [#1], #255339 340// CHECK: index must be a multiple of 16 in range [-4096, 4080]341// CHECK-NEXT: #-4112342// CHECK: index must be a multiple of 16 in range [-4096, 4080]343// CHECK-NEXT: #4096344// CHECK: index must be a multiple of 16 in range [-4096, 4080]345// CHECK-NEXT: #8346// CHECK: invalid operand for instruction347// CHECK-NEXT: stzg x0, [x0], x1348// CHECK: invalid operand for instruction349// CHECK-NEXT: stzg x0, [w0], #255350// CHECK: invalid operand for instruction351// CHECK-NEXT: stzg x0, [xzr], #255352// CHECK: invalid operand for instruction353// CHECK-NEXT: stzg x0, [#1], #255354 355st2g356st2g x0357st2g w0358st2g sp359st2g #1360st2g x0, [x0, #-4112]361st2g x0, [x0, #4096]362st2g x0, [x0, #8]363st2g x0, [x0, x1]364st2g x0, [w0]365st2g x0, [xzr]366st2g x0, [#1]367 368// CHECK: too few operands for instruction369// CHECK-NEXT: st2g370// CHECK: too few operands for instruction371// CHECK-NEXT: st2g x0372// CHECK: invalid operand for instruction373// CHECK-NEXT: st2g w0374// CHECK: too few operands for instruction375// CHECK-NEXT: st2g sp376// CHECK: invalid operand for instruction377// CHECK-NEXT: st2g #1378// CHECK: index must be a multiple of 16 in range [-4096, 4080]379// CHECK-NEXT: #-4112380// CHECK: index must be a multiple of 16 in range [-4096, 4080]381// CHECK-NEXT: #4096382// CHECK: index must be a multiple of 16 in range [-4096, 4080]383// CHECK-NEXT: #8384// CHECK: invalid operand for instruction385// CHECK-NEXT: st2g x0, [x0, x1]386// CHECK: invalid operand for instruction387// CHECK-NEXT: st2g x0, [w0]388// CHECK: invalid operand for instruction389// CHECK-NEXT: st2g x0, [xzr]390// CHECK: invalid operand for instruction391// CHECK-NEXT: st2g x0, [#1]392 393stz2g394stz2g x0395stz2g w0396stz2g sp397stz2g #1398stz2g x0, [x0, #-4112]399stz2g x0, [x0, #4096]400stz2g x0, [x0, #8]401stz2g x0, [x0, x1]402stz2g x0, [w0]403stz2g x0, [xzr]404stz2g x0, [#1]405 406// CHECK: too few operands for instruction407// CHECK-NEXT: stz2g408// CHECK: too few operands for instruction409// CHECK-NEXT: stz2g x0410// CHECK: invalid operand for instruction411// CHECK-NEXT: stz2g w0412// CHECK: too few operands for instruction413// CHECK-NEXT: stz2g sp414// CHECK: invalid operand for instruction415// CHECK-NEXT: stz2g #1416// CHECK: index must be a multiple of 16 in range [-4096, 4080]417// CHECK-NEXT: #-4112418// CHECK: index must be a multiple of 16 in range [-4096, 4080]419// CHECK-NEXT: #4096420// CHECK: index must be a multiple of 16 in range [-4096, 4080]421// CHECK-NEXT: #8422// CHECK: invalid operand for instruction423// CHECK-NEXT: stz2g x0, [x0, x1]424// CHECK: invalid operand for instruction425// CHECK-NEXT: stz2g x0, [w0]426// CHECK: invalid operand for instruction427// CHECK-NEXT: stz2g x0, [xzr]428// CHECK: invalid operand for instruction429// CHECK-NEXT: stz2g x0, [#1]430 431st2g x0, [x0, #-4112]!432st2g x0, [x0, #4096]!433st2g x0, [x0, #8]!434st2g x0, [x0, x1]!435st2g x0, [w0, #256]!436st2g x0, [xzr, #256]!437st2g x0, [#1, #256]!438 439// CHECK: index must be a multiple of 16 in range [-4096, 4080]440// CHECK-NEXT: #-4112441// CHECK: index must be a multiple of 16 in range [-4096, 4080]442// CHECK-NEXT: #4096443// CHECK: index must be a multiple of 16 in range [-4096, 4080]444// CHECK-NEXT: #8445// CHECK: invalid operand for instruction446// CHECK-NEXT: st2g x0, [x0, x1]!447// CHECK: invalid operand for instruction448// CHECK-NEXT: st2g x0, [w0, #256]!449// CHECK: invalid operand for instruction450// CHECK-NEXT: st2g x0, [xzr, #256]!451// CHECK: invalid operand for instruction452// CHECK-NEXT: st2g x0, [#1, #256]!453 454stz2g x0, [x0, #-4112]!455stz2g x0, [x0, #4096]!456stz2g x0, [x0, #8]!457stz2g x0, [x0, x1]!458stz2g x0, [w0, #255]!459stz2g x0, [xzr, #255]!460stz2g x0, [#1, #255]!461 462// CHECK: index must be a multiple of 16 in range [-4096, 4080]463// CHECK-NEXT: #-4112464// CHECK: index must be a multiple of 16 in range [-4096, 4080]465// CHECK-NEXT: #4096466// CHECK: index must be a multiple of 16 in range [-4096, 4080]467// CHECK-NEXT: #8468// CHECK: invalid operand for instruction469// CHECK-NEXT: stz2g x0, [x0, x1]!470// CHECK: invalid operand for instruction471// CHECK-NEXT: stz2g x0, [w0, #255]!472// CHECK: invalid operand for instruction473// CHECK-NEXT: stz2g x0, [xzr, #255]!474// CHECK: invalid operand for instruction475// CHECK-NEXT: stz2g x0, [#1, #255]!476 477st2g x0, [x0], #-4112478st2g x0, [x0], #4096479st2g x0, [x0], #8480st2g x0, [x0], x1481st2g x0, [w0], #255482st2g x0, [xzr], #255483st2g x0, [#1], #255484 485// CHECK: index must be a multiple of 16 in range [-4096, 4080]486// CHECK-NEXT: #-4112487// CHECK: index must be a multiple of 16 in range [-4096, 4080]488// CHECK-NEXT: #4096489// CHECK: index must be a multiple of 16 in range [-4096, 4080]490// CHECK-NEXT: #8491// CHECK: invalid operand for instruction492// CHECK-NEXT: st2g x0, [x0], x1493// CHECK: invalid operand for instruction494// CHECK-NEXT: st2g x0, [w0], #255495// CHECK: invalid operand for instruction496// CHECK-NEXT: st2g x0, [xzr], #255497// CHECK: invalid operand for instruction498// CHECK-NEXT: st2g x0, [#1], #255499 500stz2g x0, [x0], #-4112501stz2g x0, [x0], #4096502stz2g x0, [x0], #8503stz2g x0, [x0], x1504stz2g x0, [w0], #255505stz2g x0, [xzr], #255506stz2g x0, [#1], #255507 508// CHECK: index must be a multiple of 16 in range [-4096, 4080]509// CHECK-NEXT: #-4112510// CHECK: index must be a multiple of 16 in range [-4096, 4080]511// CHECK-NEXT: #4096512// CHECK: index must be a multiple of 16 in range [-4096, 4080]513// CHECK-NEXT: #8514// CHECK: invalid operand for instruction515// CHECK-NEXT: stz2g x0, [x0], x1516// CHECK: invalid operand for instruction517// CHECK-NEXT: stz2g x0, [w0], #255518// CHECK: invalid operand for instruction519// CHECK-NEXT: stz2g x0, [xzr], #255520// CHECK: invalid operand for instruction521// CHECK-NEXT: stz2g x0, [#1], #255522 523stgp sp, x1, [x2, #16]524stgp x0, sp, [x2, #16]525stgp x0, x1, [xzr, #16]526stgp x0, x1, [x2, #-1040]527stgp x0, x1, [x2, #1024]528stgp x0, x1, [x2, #8]529stgp x0, x1, [x2, x3]530stgp w0, x1, [x2, #1]531stgp x0, w1, [x2, #1]532stgp x0, x1, [w2, #1]533stgp #1, x1, [x3, #1]534stgp x0, #1, [x3, #1]535stgp x0, x1, [#1, #1]536 537// CHECK: invalid operand for instruction538// CHECK-NEXT: stgp sp539// CHECK: invalid operand for instruction540// CHECK-NEXT: stgp x0, sp541// CHECK: invalid operand for instruction542// CHECK-NEXT: stgp x0, x1, [xzr543// CHECK: index must be a multiple of 16 in range [-1024, 1008]544// CHECK-NEXT: #-1040545// CHECK: index must be a multiple of 16 in range [-1024, 1008]546// CHECK-NEXT: #1024547// CHECK: index must be a multiple of 16 in range [-1024, 1008]548// CHECK-NEXT: #8549// CHECK: invalid operand for instruction550// CHECK-NEXT: stgp x0, x1, [x2, x3]551// CHECK: invalid operand for instruction552// CHECK-NEXT: stgp w0, x1, [x2, #1]553// CHECK: invalid operand for instruction554// CHECK-NEXT: stgp x0, w1, [x2, #1]555// CHECK: invalid operand for instruction556// CHECK-NEXT: stgp x0, x1, [w2, #1]557// CHECK: invalid operand for instruction558// CHECK-NEXT: stgp #1, x1, [x3, #1]559// CHECK: invalid operand for instruction560// CHECK-NEXT: stgp x0, #1, [x3, #1]561// CHECK: invalid operand for instruction562// CHECK-NEXT: stgp x0, x1, [#1, #1]563 564stgp sp, x1, [x2, #16]!565stgp x0, sp, [x2, #16]!566stgp x0, x1, [xzr, #16]!567stgp x0, x1, [x2, #-1040]!568stgp x0, x1, [x2, #1024]!569stgp x0, x1, [x2, #8]!570stgp x0, x1, [x2, x3]!571stgp w0, x1, [x2, #1]!572stgp x0, w1, [x2, #1]!573stgp x0, x1, [w2, #1]!574stgp #1, x1, [x3, #1]!575stgp x0, #1, [x3, #1]!576stgp x0, x1, [#1, #1]!577 578// CHECK: invalid operand for instruction579// CHECK-NEXT: stgp sp580// CHECK: invalid operand for instruction581// CHECK-NEXT: stgp x0, sp582// CHECK: invalid operand for instruction583// CHECK-NEXT: stgp x0, x1, [xzr584// CHECK: index must be a multiple of 16 in range [-1024, 1008]585// CHECK-NEXT: #-1040586// CHECK: index must be a multiple of 16 in range [-1024, 1008]587// CHECK-NEXT: #1024588// CHECK: index must be a multiple of 16 in range [-1024, 1008]589// CHECK-NEXT: #8590// CHECK: invalid operand for instruction591// CHECK-NEXT: stgp x0, x1, [x2, x3]!592// CHECK: invalid operand for instruction593// CHECK-NEXT: stgp w0, x1, [x2, #1]!594// CHECK: invalid operand for instruction595// CHECK-NEXT: stgp x0, w1, [x2, #1]!596// CHECK: invalid operand for instruction597// CHECK-NEXT: stgp x0, x1, [w2, #1]!598// CHECK: invalid operand for instruction599// CHECK-NEXT: stgp #1, x1, [x3, #1]!600// CHECK: invalid operand for instruction601// CHECK-NEXT: stgp x0, #1, [x3, #1]!602// CHECK: invalid operand for instruction603// CHECK-NEXT: stgp x0, x1, [#1, #1]!604 605stgp sp, x1, [x2], #16606stgp x0, sp, [x2], #16607stgp x0, x1, [xzr], #16608stgp x0, x1, [x2], #-1040609stgp x0, x1, [x2], #1024610stgp x0, x1, [x2], #8611stgp x0, x1, [x2], x3612stgp w0, x1, [x2], #1613stgp x0, w1, [x2], #1614stgp x0, x1, [w2], #1615stgp #1, x1, [x2], #1616stgp x0, #1, [x2], #1617stgp x0, x1, [#1], #1618 619// CHECK: invalid operand for instruction620// CHECK-NEXT: stgp sp621// CHECK: invalid operand for instruction622// CHECK-NEXT: stgp x0, sp623// CHECK: invalid operand for instruction624// CHECK-NEXT: stgp x0, x1, [xzr625// CHECK: index must be a multiple of 16 in range [-1024, 1008]626// CHECK-NEXT: #-1040627// CHECK: index must be a multiple of 16 in range [-1024, 1008]628// CHECK-NEXT: #1024629// CHECK: index must be a multiple of 16 in range [-1024, 1008]630// CHECK-NEXT: #8631// CHECK: invalid operand for instruction632// CHECK-NEXT: stgp x0, x1, [x2], x3633// CHECK: invalid operand for instruction634// CHECK-NEXT: stgp w0, x1, [x2], #1635// CHECK: invalid operand for instruction636// CHECK-NEXT: stgp x0, w1, [x2], #1637// CHECK: invalid operand for instruction638// CHECK-NEXT: stgp x0, x1, [w2], #1639// CHECK: invalid operand for instruction640// CHECK-NEXT: stgp #1, x1, [x2], #1641// CHECK: invalid operand for instruction642// CHECK-NEXT: stgp x0, #1, [x2], #1643// CHECK: invalid operand for instruction644// CHECK-NEXT: stgp x0, x1, [#1], #1645 646mrs tco647mrs gcr_el1648mrs rgsr_el1649mrs tfsr_el1650mrs tfsr_el2651mrs tfsr_el3652mrs tfsr_el12653mrs tfsre0_el1654mrs gmid_el1655 656// CHECK:      invalid operand for instruction657// CHECK-NEXT: tco658// CHECK:      invalid operand for instruction659// CHECK-NEXT: gcr_el1660// CHECK:      invalid operand for instruction661// CHECK-NEXT: rgsr_el1662// CHECK:      invalid operand for instruction663// CHECK-NEXT: tfsr_el1664// CHECK:      invalid operand for instruction665// CHECK-NEXT: tfsr_el2666// CHECK:      invalid operand for instruction667// CHECK-NEXT: tfsr_el3668// CHECK:      invalid operand for instruction669// CHECK-NEXT: tfsr_el12670// CHECK:      invalid operand for instruction671// CHECK-NEXT: tfsre0_el1672// CHECK:      invalid operand for instruction673// CHECK-NEXT: gmid_el1674 675mrs tco, #0676mrs tco, x0677mrs gcr_el1, x1678mrs rgsr_el1, x2679mrs tfsr_el1, x3680mrs tfsr_el2, x4681mrs tfsr_el3, x5682mrs tfsr_el12, x6683mrs tfsre0_el1, x7684mrs gmid_el1, x7685 686// CHECK:      invalid operand for instruction687// CHECK-NEXT: tco, #0688// CHECK:      invalid operand for instruction689// CHECK-NEXT: tco, x0690// CHECK:      invalid operand for instruction691// CHECK-NEXT: gcr_el1692// CHECK:      invalid operand for instruction693// CHECK-NEXT: rgsr_el1694// CHECK:      invalid operand for instruction695// CHECK-NEXT: tfsr_el1696// CHECK:      invalid operand for instruction697// CHECK-NEXT: tfsr_el2698// CHECK:      invalid operand for instruction699// CHECK-NEXT: tfsr_el3700// CHECK:      invalid operand for instruction701// CHECK-NEXT: tfsr_el12702// CHECK:      invalid operand for instruction703// CHECK-NEXT: tfsre0_el1704// CHECK:      invalid operand for instruction705// CHECK-NEXT: gmid_el1706 707msr tco708msr gcr_el1709msr rgsr_el1710msr tfsr_el1711msr tfsr_el2712msr tfsr_el3713msr tfsr_el12714msr tfsre0_el1715msr gmid_el1716 717// CHECK:      too few operands for instruction718// CHECK-NEXT: tco719// CHECK:      too few operands for instruction720// CHECK-NEXT: gcr_el1721// CHECK:      too few operands for instruction722// CHECK-NEXT: rgsr_el1723// CHECK:      too few operands for instruction724// CHECK-NEXT: tfsr_el1725// CHECK:      too few operands for instruction726// CHECK-NEXT: tfsr_el2727// CHECK:      too few operands for instruction728// CHECK-NEXT: tfsr_el3729// CHECK:      too few operands for instruction730// CHECK-NEXT: tfsr_el12731// CHECK:      too few operands for instruction732// CHECK-NEXT: tfsre0_el1733// CHECK:      expected writable system register or pstate734// CHECK-NEXT: gmid_el1735 736msr x0, tco737msr x1, gcr_el1738msr x2, rgsr_el1739msr x3, tfsr_el1740msr x4, tfsr_el2741msr x5, tfsr_el3742msr x6, tfsr_el12743msr x7, tfsre0_el1744msr x7, gmid_el1745 746// CHECK:      expected writable system register or pstate747// CHECK-NEXT: tco748// CHECK:      expected writable system register or pstate749// CHECK-NEXT: gcr_el1750// CHECK:      expected writable system register or pstate751// CHECK-NEXT: rgsr_el1752// CHECK:      expected writable system register or pstate753// CHECK-NEXT: tfsr_el1754// CHECK:      expected writable system register or pstate755// CHECK-NEXT: tfsr_el2756// CHECK:      expected writable system register or pstate757// CHECK-NEXT: tfsr_el3758// CHECK:      expected writable system register or pstate759// CHECK-NEXT: tfsr_el12760// CHECK:      expected writable system register or pstate761// CHECK-NEXT: tfsre0_el1762// CHECK:      expected writable system register or pstate763// CHECK-NEXT: gmid_el1764 765msr gmid_el1, x7766 767// CHECK:      expected writable system register or pstate768// CHECK-NEXT: gmid_el1769 770// Among the system registers added by MTE, only TCO can be used with MSR (imm).771// The rest can only be used with MSR (reg).772msr gcr_el1, #1773msr rgsr_el1, #2774msr tfsr_el1, #3775msr tfsr_el2, #4776msr tfsr_el3, #5777msr tfsr_el12, #6778msr tfsre0_el1, #7779// Is read only780msr gmid_el1, #7781 782// CHECK:      invalid operand for instruction783// CHECK-NEXT: gcr_el1784// CHECK:      invalid operand for instruction785// CHECK-NEXT: rgsr_el1786// CHECK:      invalid operand for instruction787// CHECK-NEXT: tfsr_el1788// CHECK:      invalid operand for instruction789// CHECK-NEXT: tfsr_el2790// CHECK:      invalid operand for instruction791// CHECK-NEXT: tfsr_el3792// CHECK:      invalid operand for instruction793// CHECK-NEXT: tfsr_el12794// CHECK:      invalid operand for instruction795// CHECK-NEXT: tfsre0_el1796// CHECK:      expected writable system register or pstate797// CHECK-NEXT: gmid_el1798 799// Xd cannot be the stack pointer, the rest can800subps sp, x0, x1801subp  sp, x2, x3802subp  w0, x1, x2803subp  x0, w1, x2804subp  x0, x1, w2805subps w0, x1, x2806subps x0, w1, x2807subps x0, x1, w2808subp  #1, x1, x2809subp  x0, #1, x2810subp  x0, x1, #1811subps #1, x1, x2812subps x0, #1, x2813subps x0, x1, #1814 815// CHECK:      invalid operand for instruction816// CHECK-NEXT: sp817// CHECK:      invalid operand for instruction818// CHECK-NEXT: sp819// CHECK:      invalid operand for instruction820// CHECK-NEXT: subp  w0, x1, x2821// CHECK:      invalid operand for instruction822// CHECK-NEXT: subp  x0, w1, x2823// CHECK:      invalid operand for instruction824// CHECK-NEXT: subp  x0, x1, w2825// CHECK:      invalid operand for instruction826// CHECK-NEXT: subps w0, x1, x2827// CHECK:      invalid operand for instruction828// CHECK-NEXT: subps x0, w1, x2829// CHECK:      invalid operand for instruction830// CHECK-NEXT: subps x0, x1, w2831// CHECK: invalid operand for instruction832// CHECK-NEXT: subp  #1, x1, x2833// CHECK: invalid operand for instruction834// CHECK-NEXT: subp  x0, #1, x2835// CHECK: invalid operand for instruction836// CHECK-NEXT: subp  x0, x1, #1837// CHECK: invalid operand for instruction838// CHECK-NEXT: subps #1, x1, x2839// CHECK: invalid operand for instruction840// CHECK-NEXT: subps x0, #1, x2841// CHECK: invalid operand for instruction842// CHECK-NEXT: subps x0, x1, #1843 844subps x0, x1, x2, x3845subp  x0, x1, x2, x3846 847// CHECK: invalid operand for instruction848// CHECK-NEXT: subps x0, x1, x2, x3849// CHECK: invalid operand for instruction850// CHECK-NEXT: subp x0, x1, x2, x3851 852subps853subp854cmpp855subps x0856subp  x0857cmpp  x0858subps x0, x1859subp  x0, x1860 861// CHECK:      too few operands for instruction862// CHECK-NEXT: subps863// CHECK:      too few operands for instruction864// CHECK-NEXT: subp865// CHECK:      too few operands for instruction866// CHECK-NEXT: cmpp867// CHECK:      too few operands for instruction868// CHECK-NEXT: subps x0869// CHECK:      too few operands for instruction870// CHECK-NEXT: subp x0871// CHECK:      too few operands for instruction872// CHECK-NEXT: cmpp x0873// CHECK:      too few operands for instruction874// CHECK-NEXT: subps x0, x1875// CHECK:      too few operands for instruction876// CHECK-NEXT: subp x0, x1877 878ldg sp, [x0, #0]879ldg x0, [x0, x0]880ldg x0, [x0, #4096]881ldg x0, [x0, #-4112]882ldg #1, [x0, #255]883ldg x0, [#1, #255]884 885// CHECK:      invalid operand for instruction886// CHECK-NEXT: ldg sp, [x0, #0]887// CHECK:      invalid operand for instruction888// CHECK-NEXT: ldg x0, [x0, x0]889// CHECK:      index must be a multiple of 16 in range [-4096, 4080].890// CHECK-NEXT: ldg x0, [x0, #4096]891// CHECK:      index must be a multiple of 16 in range [-4096, 4080].892// CHECK-NEXT: ldg x0, [x0, #-4112]893// CHECK:      invalid operand for instruction894// CHECK-NEXT: ldg #1, [x0, #255]895// CHECK:      invalid operand for instruction896// CHECK-NEXT: ldg x0, [#1, #255]897 898ldg899ldg x0900ldg x0, [#0]901ldg w0, [x1]902ldg x0, [w1]903 904// CHECK:      too few operands for instruction905// CHECK-NEXT: ldg906// CHECK:      too few operands for instruction907// CHECK-NEXT: ldg x0908// CHECK:      invalid operand for instruction909// CHECK-NEXT: ldg x0, [#0]910// CHECK:      invalid operand for instruction911// CHECK-NEXT: ldg w0, [x1]912// CHECK:      invalid operand for instruction913// CHECK-NEXT: ldg x0, [w1]914 915ldgm916ldgm x0917ldgm w0, [x1]918ldgm x0, [w1]919ldgm #1, [x1]920ldgm x0, [#1]921ldgm sp, [x0]922 923// CHECK:      too few operands for instruction924// CHECK-NEXT: ldgm925// CHECK:      too few operands for instruction926// CHECK-NEXT: ldgm x0927// CHECK:      invalid operand for instruction928// CHECK-NEXT: ldgm w0, [x1]929// CHECK:      invalid operand for instruction930// CHECK-NEXT: ldgm x0, [w1]931// CHECK:      invalid operand for instruction932// CHECK-NEXT: ldgm #1, [x1]933// CHECK:      invalid operand for instruction934// CHECK-NEXT: ldgm x0, [#1]935// CHECK:      invalid operand for instruction936// CHECK-NEXT: ldgm sp, [x0]937 938stgm939stgm x0940stgm sp, [x0]941stgm w0, [x0]942stgm x0, [w0]943stgm #1, [x1]944stgm x0, [#1]945 946// CHECK:      too few operands for instruction947// CHECK-NEXT: stgm948// CHECK:      too few operands for instruction949// CHECK-NEXT: stgm x0950// CHECK:      invalid operand for instruction951// CHECK-NEXT: stgm sp, [x0]952// CHECK:      invalid operand for instruction953// CHECK-NEXT: stgm w0, [x0]954// CHECK:      invalid operand for instruction955// CHECK-NEXT: stgm x0, [w0]956// CHECK:      invalid operand for instruction957// CHECK-NEXT: stgm #1, [x1]958// CHECK:      invalid operand for instruction959// CHECK-NEXT: stgm x0, [#1]960 961stzgm962stzgm x0963stzgm sp, [x0]964stzgm w0, [x0]965stzgm x0, [w0]966stzgm #1, [x1]967stzgm x0, [#1]968 969// CHECK:      too few operands for instruction970// CHECK-NEXT: stzgm971// CHECK:      too few operands for instruction972// CHECK-NEXT: stzgm x0973// CHECK:      invalid operand for instruction974// CHECK-NEXT: stzgm sp, [x0]975// CHECK:      invalid operand for instruction976// CHECK-NEXT: stzgm w0, [x0]977// CHECK:      invalid operand for instruction978// CHECK-NEXT: stzgm x0, [w0]979// CHECK:      invalid operand for instruction980// CHECK-NEXT: stzgm #1, [x1]981// CHECK:      invalid operand for instruction982// CHECK-NEXT: stzgm x0, [#1]983