1*9880d681SAndroid Build Coastguard Worker// RUN: not llvm-mc -triple aarch64-none-linux-gnu < %s 2> %t 2*9880d681SAndroid Build Coastguard Worker// RUN: FileCheck --check-prefix=CHECK-ERROR --check-prefix=CHECK-ERROR-ARM64 < %t %s 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 5*9880d681SAndroid Build Coastguard Worker// Add/sub (extended register) 6*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Worker // Mismatched final register and extend 9*9880d681SAndroid Build Coastguard Worker add x2, x3, x5, sxtb 10*9880d681SAndroid Build Coastguard Worker add x2, x4, w2, uxtx 11*9880d681SAndroid Build Coastguard Worker add w5, w7, x9, sxtx 12*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 13*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: add x2, x3, x5, sxtb 14*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 15*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected '[su]xt[bhw]' or 'lsl' with optional integer in range [0, 4] 16*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: add x2, x4, w2, uxtx 17*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 18*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected compatible register, symbol or integer in range [0, 4095] 19*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: add w5, w7, x9, sxtx 20*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Worker // Out of range extends 23*9880d681SAndroid Build Coastguard Worker add x9, x10, w11, uxtb #-1 24*9880d681SAndroid Build Coastguard Worker add x3, x5, w7, uxtb #5 25*9880d681SAndroid Build Coastguard Worker sub x9, x15, x2, uxth #5 26*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected integer shift amount 27*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: add x9, x10, w11, uxtb #-1 28*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 29*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected '[su]xt[bhw]' or 'lsl' with optional integer in range [0, 4] 30*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: add x3, x5, w7, uxtb #5 31*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 32*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 33*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: sub x9, x15, x2, uxth #5 34*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 35*9880d681SAndroid Build Coastguard Worker 36*9880d681SAndroid Build Coastguard Worker // Wrong registers on normal variants 37*9880d681SAndroid Build Coastguard Worker add xzr, x3, x5, uxtx 38*9880d681SAndroid Build Coastguard Worker sub x3, xzr, w9, sxth #1 39*9880d681SAndroid Build Coastguard Worker add x1, x2, sp, uxtx 40*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 63] 41*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: add xzr, x3, x5, uxtx 42*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 43*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 44*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: sub x3, xzr, w9, sxth #1 45*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 46*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected compatible register, symbol or integer in range [0, 4095] 47*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: add x1, x2, sp, uxtx 48*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 49*9880d681SAndroid Build Coastguard Worker 50*9880d681SAndroid Build Coastguard Worker // Wrong registers on flag-setting variants 51*9880d681SAndroid Build Coastguard Worker adds sp, x3, w2, uxtb 52*9880d681SAndroid Build Coastguard Worker adds x3, xzr, x9, uxtx 53*9880d681SAndroid Build Coastguard Worker subs x2, x1, sp, uxtx 54*9880d681SAndroid Build Coastguard Worker adds x2, x1, sp, uxtb #2 55*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 56*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: adds sp, x3, w2, uxtb 57*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 58*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 63] 59*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: adds x3, xzr, x9, uxtx 60*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 61*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected compatible register, symbol or integer in range [0, 4095] 62*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: subs x2, x1, sp, uxtx 63*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 64*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected compatible register, symbol or integer in range [0, 4095] 65*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: adds x2, x1, sp, uxtb #2 66*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 67*9880d681SAndroid Build Coastguard Worker 68*9880d681SAndroid Build Coastguard Worker // Amount not optional if lsl valid and used 69*9880d681SAndroid Build Coastguard Worker add sp, x5, x7, lsl 70*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected #imm after shift specifier 71*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: add sp, x5, x7, lsl 72*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: ^ 73*9880d681SAndroid Build Coastguard Worker 74*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 75*9880d681SAndroid Build Coastguard Worker// Add/sub (immediate) 76*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 77*9880d681SAndroid Build Coastguard Worker 78*9880d681SAndroid Build Coastguard Worker// Out of range immediates: more than 12 bits 79*9880d681SAndroid Build Coastguard Worker add w4, w5, #-4096 80*9880d681SAndroid Build Coastguard Worker add w5, w6, #0x1000 81*9880d681SAndroid Build Coastguard Worker add w4, w5, #-4096, lsl #12 82*9880d681SAndroid Build Coastguard Worker add w5, w6, #0x1000, lsl #12 83*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected compatible register, symbol or integer in range [0, 4095] 84*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add w4, w5, #-4096 85*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 86*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: error: expected compatible register, symbol or integer in range [0, 4095] 87*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: add w5, w6, #0x1000 88*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: ^ 89*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected compatible register, symbol or integer in range [0, 4095] 90*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add w4, w5, #-4096, lsl #12 91*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 92*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected compatible register, symbol or integer in range [0, 4095] 93*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add w5, w6, #0x1000, lsl #12 94*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 95*9880d681SAndroid Build Coastguard Worker 96*9880d681SAndroid Build Coastguard Worker// Only lsl #0 and lsl #12 are allowed 97*9880d681SAndroid Build Coastguard Worker add w2, w3, #0x1, lsl #1 98*9880d681SAndroid Build Coastguard Worker add w5, w17, #0xfff, lsl #13 99*9880d681SAndroid Build Coastguard Worker add w17, w20, #0x1000, lsl #12 100*9880d681SAndroid Build Coastguard Worker sub xsp, x34, #0x100, lsl #-1 101*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected compatible register, symbol or integer in range [0, 4095] 102*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add w2, w3, #0x1, lsl #1 103*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 104*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected compatible register, symbol or integer in range [0, 4095] 105*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add w5, w17, #0xfff, lsl #13 106*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 107*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected compatible register, symbol or integer in range [0, 4095] 108*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add w17, w20, #0x1000, lsl #12 109*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 110*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: only 'lsl #+N' valid after immediate 111*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sub xsp, x34, #0x100, lsl #-1 112*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 113*9880d681SAndroid Build Coastguard Worker 114*9880d681SAndroid Build Coastguard Worker// Incorrect registers (w31 doesn't exist at all, and 31 decodes to sp for these). 115*9880d681SAndroid Build Coastguard Worker add w31, w20, #1234 116*9880d681SAndroid Build Coastguard Worker add wzr, w20, #0x123 117*9880d681SAndroid Build Coastguard Worker add w20, wzr, #0x321 118*9880d681SAndroid Build Coastguard Worker add wzr, wzr, #0xfff 119*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 120*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add w31, w20, #1234 121*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 122*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 123*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add wzr, w20, #0x123 124*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 125*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 126*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add w20, wzr, #0x321 127*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 128*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 129*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add wzr, wzr, #0xfff 130*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 131*9880d681SAndroid Build Coastguard Worker 132*9880d681SAndroid Build Coastguard Worker// Mixed register classes 133*9880d681SAndroid Build Coastguard Worker add xsp, w2, #123 134*9880d681SAndroid Build Coastguard Worker sub w2, x30, #32 135*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 136*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add xsp, w2, #123 137*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 138*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 139*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sub w2, x30, #32 140*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 141*9880d681SAndroid Build Coastguard Worker 142*9880d681SAndroid Build Coastguard Worker// Out of range immediate 143*9880d681SAndroid Build Coastguard Worker adds w0, w5, #0x10000 144*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64: error: expected compatible register, symbol or integer in range [0, 4095] 145*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: adds w0, w5, #0x10000 146*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: ^ 147*9880d681SAndroid Build Coastguard Worker 148*9880d681SAndroid Build Coastguard Worker// Wn|WSP should be in second place 149*9880d681SAndroid Build Coastguard Worker adds w4, wzr, #0x123 150*9880d681SAndroid Build Coastguard Worker// ...but wzr is the 31 destination 151*9880d681SAndroid Build Coastguard Worker subs wsp, w5, #123 152*9880d681SAndroid Build Coastguard Worker subs x5, xzr, #0x456, lsl #12 153*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 154*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adds w4, wzr, #0x123 155*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 156*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 157*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: subs wsp, w5, #123 158*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 159*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 160*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: subs x5, xzr, #0x456, lsl #12 161*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 162*9880d681SAndroid Build Coastguard Worker 163*9880d681SAndroid Build Coastguard Worker // MOV alias should not accept any fiddling 164*9880d681SAndroid Build Coastguard Worker mov x2, xsp, #123 165*9880d681SAndroid Build Coastguard Worker mov wsp, w27, #0xfff, lsl #12 166*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected compatible register or logical immediate 167*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: mov x2, xsp, #123 168*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 169*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 170*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: mov wsp, w27, #0xfff, lsl #12 171*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 172*9880d681SAndroid Build Coastguard Worker 173*9880d681SAndroid Build Coastguard Worker // A relocation should be provided for symbols 174*9880d681SAndroid Build Coastguard Worker add x3, x9, #variable 175*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected compatible register, symbol or integer in range [0, 4095] 176*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add x3, x9, #variable 177*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 178*9880d681SAndroid Build Coastguard Worker 179*9880d681SAndroid Build Coastguard Worker 180*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 181*9880d681SAndroid Build Coastguard Worker// Add-subtract (shifted register) 182*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 183*9880d681SAndroid Build Coastguard Worker 184*9880d681SAndroid Build Coastguard Worker add wsp, w1, w2, lsr #3 185*9880d681SAndroid Build Coastguard Worker add x4, sp, x9, asr #5 186*9880d681SAndroid Build Coastguard Worker add x9, x10, x5, ror #3 187*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 188*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add wsp, w1, w2, lsr #3 189*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 190*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 191*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add x4, sp, x9, asr #5 192*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 193*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 194*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add x9, x10, x5, ror #3 195*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 196*9880d681SAndroid Build Coastguard Worker 197*9880d681SAndroid Build Coastguard Worker add w1, w2, w3, lsl #-1 198*9880d681SAndroid Build Coastguard Worker add w1, w2, w3, lsl #32 199*9880d681SAndroid Build Coastguard Worker add w1, w2, w3, lsr #-1 200*9880d681SAndroid Build Coastguard Worker add w1, w2, w3, lsr #32 201*9880d681SAndroid Build Coastguard Worker add w1, w2, w3, asr #-1 202*9880d681SAndroid Build Coastguard Worker add w1, w2, w3, asr #32 203*9880d681SAndroid Build Coastguard Worker add x1, x2, x3, lsl #-1 204*9880d681SAndroid Build Coastguard Worker add x1, x2, x3, lsl #64 205*9880d681SAndroid Build Coastguard Worker add x1, x2, x3, lsr #-1 206*9880d681SAndroid Build Coastguard Worker add x1, x2, x3, lsr #64 207*9880d681SAndroid Build Coastguard Worker add x1, x2, x3, asr #-1 208*9880d681SAndroid Build Coastguard Worker add x1, x2, x3, asr #64 209*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected integer shift amount 210*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add w1, w2, w3, lsl #-1 211*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 212*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 213*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add w1, w2, w3, lsl #32 214*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 215*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 216*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add w1, w2, w3, lsr #-1 217*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 218*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 219*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add w1, w2, w3, lsr #32 220*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 221*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 222*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add w1, w2, w3, asr #-1 223*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 224*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 225*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add w1, w2, w3, asr #32 226*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 227*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 228*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add x1, x2, x3, lsl #-1 229*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 230*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 231*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add x1, x2, x3, lsl #64 232*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 233*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 234*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add x1, x2, x3, lsr #-1 235*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 236*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 237*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add x1, x2, x3, lsr #64 238*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 239*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 240*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add x1, x2, x3, asr #-1 241*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 242*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 243*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: add x1, x2, x3, asr #64 244*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 245*9880d681SAndroid Build Coastguard Worker 246*9880d681SAndroid Build Coastguard Worker adds w1, w2, w3, lsl #-1 247*9880d681SAndroid Build Coastguard Worker adds w1, w2, w3, lsl #32 248*9880d681SAndroid Build Coastguard Worker adds w1, w2, w3, lsr #-1 249*9880d681SAndroid Build Coastguard Worker adds w1, w2, w3, lsr #32 250*9880d681SAndroid Build Coastguard Worker adds w1, w2, w3, asr #-1 251*9880d681SAndroid Build Coastguard Worker adds w1, w2, w3, asr #32 252*9880d681SAndroid Build Coastguard Worker adds x1, x2, x3, lsl #-1 253*9880d681SAndroid Build Coastguard Worker adds x1, x2, x3, lsl #64 254*9880d681SAndroid Build Coastguard Worker adds x1, x2, x3, lsr #-1 255*9880d681SAndroid Build Coastguard Worker adds x1, x2, x3, lsr #64 256*9880d681SAndroid Build Coastguard Worker adds x1, x2, x3, asr #-1 257*9880d681SAndroid Build Coastguard Worker adds x1, x2, x3, asr #64 258*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected integer shift amount 259*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adds w1, w2, w3, lsl #-1 260*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 261*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 262*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adds w1, w2, w3, lsl #32 263*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 264*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 265*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adds w1, w2, w3, lsr #-1 266*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 267*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 268*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adds w1, w2, w3, lsr #32 269*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 270*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 271*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adds w1, w2, w3, asr #-1 272*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 273*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 274*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adds w1, w2, w3, asr #32 275*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 276*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 277*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adds x1, x2, x3, lsl #-1 278*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 279*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 280*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adds x1, x2, x3, lsl #64 281*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 282*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 283*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adds x1, x2, x3, lsr #-1 284*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 285*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 286*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adds x1, x2, x3, lsr #64 287*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 288*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 289*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adds x1, x2, x3, asr #-1 290*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 291*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 292*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adds x1, x2, x3, asr #64 293*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 294*9880d681SAndroid Build Coastguard Worker 295*9880d681SAndroid Build Coastguard Worker sub w1, w2, w3, lsl #-1 296*9880d681SAndroid Build Coastguard Worker sub w1, w2, w3, lsl #32 297*9880d681SAndroid Build Coastguard Worker sub w1, w2, w3, lsr #-1 298*9880d681SAndroid Build Coastguard Worker sub w1, w2, w3, lsr #32 299*9880d681SAndroid Build Coastguard Worker sub w1, w2, w3, asr #-1 300*9880d681SAndroid Build Coastguard Worker sub w1, w2, w3, asr #32 301*9880d681SAndroid Build Coastguard Worker sub x1, x2, x3, lsl #-1 302*9880d681SAndroid Build Coastguard Worker sub x1, x2, x3, lsl #64 303*9880d681SAndroid Build Coastguard Worker sub x1, x2, x3, lsr #-1 304*9880d681SAndroid Build Coastguard Worker sub x1, x2, x3, lsr #64 305*9880d681SAndroid Build Coastguard Worker sub x1, x2, x3, asr #-1 306*9880d681SAndroid Build Coastguard Worker sub x1, x2, x3, asr #64 307*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected integer shift amount 308*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sub w1, w2, w3, lsl #-1 309*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 310*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 311*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sub w1, w2, w3, lsl #32 312*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 313*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 314*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sub w1, w2, w3, lsr #-1 315*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 316*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 317*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sub w1, w2, w3, lsr #32 318*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 319*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 320*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sub w1, w2, w3, asr #-1 321*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 322*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 323*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sub w1, w2, w3, asr #32 324*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 325*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 326*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sub x1, x2, x3, lsl #-1 327*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 328*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 329*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sub x1, x2, x3, lsl #64 330*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 331*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 332*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sub x1, x2, x3, lsr #-1 333*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 334*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 335*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sub x1, x2, x3, lsr #64 336*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 337*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 338*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sub x1, x2, x3, asr #-1 339*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 340*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 341*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sub x1, x2, x3, asr #64 342*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 343*9880d681SAndroid Build Coastguard Worker 344*9880d681SAndroid Build Coastguard Worker subs w1, w2, w3, lsl #-1 345*9880d681SAndroid Build Coastguard Worker subs w1, w2, w3, lsl #32 346*9880d681SAndroid Build Coastguard Worker subs w1, w2, w3, lsr #-1 347*9880d681SAndroid Build Coastguard Worker subs w1, w2, w3, lsr #32 348*9880d681SAndroid Build Coastguard Worker subs w1, w2, w3, asr #-1 349*9880d681SAndroid Build Coastguard Worker subs w1, w2, w3, asr #32 350*9880d681SAndroid Build Coastguard Worker subs x1, x2, x3, lsl #-1 351*9880d681SAndroid Build Coastguard Worker subs x1, x2, x3, lsl #64 352*9880d681SAndroid Build Coastguard Worker subs x1, x2, x3, lsr #-1 353*9880d681SAndroid Build Coastguard Worker subs x1, x2, x3, lsr #64 354*9880d681SAndroid Build Coastguard Worker subs x1, x2, x3, asr #-1 355*9880d681SAndroid Build Coastguard Worker subs x1, x2, x3, asr #64 356*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected integer shift amount 357*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: subs w1, w2, w3, lsl #-1 358*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 359*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 360*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: subs w1, w2, w3, lsl #32 361*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 362*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 363*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: subs w1, w2, w3, lsr #-1 364*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 365*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 366*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: subs w1, w2, w3, lsr #32 367*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 368*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 369*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: subs w1, w2, w3, asr #-1 370*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 371*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 372*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: subs w1, w2, w3, asr #32 373*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 374*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 375*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: subs x1, x2, x3, lsl #-1 376*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 377*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 378*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: subs x1, x2, x3, lsl #64 379*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 380*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 381*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: subs x1, x2, x3, lsr #-1 382*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 383*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 384*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: subs x1, x2, x3, lsr #64 385*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 386*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 387*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: subs x1, x2, x3, asr #-1 388*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 389*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 390*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: subs x1, x2, x3, asr #64 391*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 392*9880d681SAndroid Build Coastguard Worker 393*9880d681SAndroid Build Coastguard Worker cmn w9, w10, lsl #-1 394*9880d681SAndroid Build Coastguard Worker cmn w9, w10, lsl #32 395*9880d681SAndroid Build Coastguard Worker cmn w11, w12, lsr #-1 396*9880d681SAndroid Build Coastguard Worker cmn w11, w12, lsr #32 397*9880d681SAndroid Build Coastguard Worker cmn w19, wzr, asr #-1 398*9880d681SAndroid Build Coastguard Worker cmn wzr, wzr, asr #32 399*9880d681SAndroid Build Coastguard Worker cmn x9, x10, lsl #-1 400*9880d681SAndroid Build Coastguard Worker cmn x9, x10, lsl #64 401*9880d681SAndroid Build Coastguard Worker cmn x11, x12, lsr #-1 402*9880d681SAndroid Build Coastguard Worker cmn x11, x12, lsr #64 403*9880d681SAndroid Build Coastguard Worker cmn x19, xzr, asr #-1 404*9880d681SAndroid Build Coastguard Worker cmn xzr, xzr, asr #64 405*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected integer shift amount 406*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cmn w9, w10, lsl #-1 407*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 408*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 409*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cmn w9, w10, lsl #32 410*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 411*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 412*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cmn w11, w12, lsr #-1 413*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 414*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 415*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cmn w11, w12, lsr #32 416*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 417*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 418*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cmn w19, wzr, asr #-1 419*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 420*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 31] 421*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cmn wzr, wzr, asr #32 422*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 423*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 424*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cmn x9, x10, lsl #-1 425*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 426*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 427*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cmn x9, x10, lsl #64 428*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 429*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 430*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cmn x11, x12, lsr #-1 431*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 432*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 433*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cmn x11, x12, lsr #64 434*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 435*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 436*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cmn x19, xzr, asr #-1 437*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 438*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 63] 439*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cmn xzr, xzr, asr #64 440*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 441*9880d681SAndroid Build Coastguard Worker 442*9880d681SAndroid Build Coastguard Worker cmp w9, w10, lsl #-1 443*9880d681SAndroid Build Coastguard Worker cmp w9, w10, lsl #32 444*9880d681SAndroid Build Coastguard Worker cmp w11, w12, lsr #-1 445*9880d681SAndroid Build Coastguard Worker cmp w11, w12, lsr #32 446*9880d681SAndroid Build Coastguard Worker cmp w19, wzr, asr #-1 447*9880d681SAndroid Build Coastguard Worker cmp wzr, wzr, asr #32 448*9880d681SAndroid Build Coastguard Worker cmp x9, x10, lsl #-1 449*9880d681SAndroid Build Coastguard Worker cmp x9, x10, lsl #64 450*9880d681SAndroid Build Coastguard Worker cmp x11, x12, lsr #-1 451*9880d681SAndroid Build Coastguard Worker cmp x11, x12, lsr #64 452*9880d681SAndroid Build Coastguard Worker cmp x19, xzr, asr #-1 453*9880d681SAndroid Build Coastguard Worker cmp xzr, xzr, asr #64 454*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected integer shift amount 455*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cmp w9, w10, lsl #-1 456*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 457*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 458*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cmp w9, w10, lsl #32 459*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 460*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 461*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cmp w11, w12, lsr #-1 462*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 463*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 464*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cmp w11, w12, lsr #32 465*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 466*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 467*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cmp w19, wzr, asr #-1 468*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 469*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 31] 470*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cmp wzr, wzr, asr #32 471*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 472*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 473*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cmp x9, x10, lsl #-1 474*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 475*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 476*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cmp x9, x10, lsl #64 477*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 478*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 479*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cmp x11, x12, lsr #-1 480*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 481*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'sxtx' 'uxtx' or 'lsl' with optional integer in range [0, 4] 482*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cmp x11, x12, lsr #64 483*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 484*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 485*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cmp x19, xzr, asr #-1 486*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 487*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 63] 488*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cmp xzr, xzr, asr #64 489*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 490*9880d681SAndroid Build Coastguard Worker 491*9880d681SAndroid Build Coastguard Worker neg w9, w10, lsl #-1 492*9880d681SAndroid Build Coastguard Worker neg w9, w10, lsl #32 493*9880d681SAndroid Build Coastguard Worker neg w11, w12, lsr #-1 494*9880d681SAndroid Build Coastguard Worker neg w11, w12, lsr #32 495*9880d681SAndroid Build Coastguard Worker neg w19, wzr, asr #-1 496*9880d681SAndroid Build Coastguard Worker neg wzr, wzr, asr #32 497*9880d681SAndroid Build Coastguard Worker neg x9, x10, lsl #-1 498*9880d681SAndroid Build Coastguard Worker neg x9, x10, lsl #64 499*9880d681SAndroid Build Coastguard Worker neg x11, x12, lsr #-1 500*9880d681SAndroid Build Coastguard Worker neg x11, x12, lsr #64 501*9880d681SAndroid Build Coastguard Worker neg x19, xzr, asr #-1 502*9880d681SAndroid Build Coastguard Worker neg xzr, xzr, asr #64 503*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected integer shift amount 504*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: neg w9, w10, lsl #-1 505*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 506*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 31] 507*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: neg w9, w10, lsl #32 508*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 509*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 510*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: neg w11, w12, lsr #-1 511*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 512*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 31] 513*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: neg w11, w12, lsr #32 514*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 515*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 516*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: neg w19, wzr, asr #-1 517*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 518*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 31] 519*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: neg wzr, wzr, asr #32 520*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 521*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 522*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: neg x9, x10, lsl #-1 523*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 524*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 63] 525*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: neg x9, x10, lsl #64 526*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 527*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 528*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: neg x11, x12, lsr #-1 529*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 530*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 63] 531*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: neg x11, x12, lsr #64 532*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 533*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 534*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: neg x19, xzr, asr #-1 535*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 536*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 63] 537*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: neg xzr, xzr, asr #64 538*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 539*9880d681SAndroid Build Coastguard Worker 540*9880d681SAndroid Build Coastguard Worker negs w9, w10, lsl #-1 541*9880d681SAndroid Build Coastguard Worker negs w9, w10, lsl #32 542*9880d681SAndroid Build Coastguard Worker negs w11, w12, lsr #-1 543*9880d681SAndroid Build Coastguard Worker negs w11, w12, lsr #32 544*9880d681SAndroid Build Coastguard Worker negs w19, wzr, asr #-1 545*9880d681SAndroid Build Coastguard Worker negs wzr, wzr, asr #32 546*9880d681SAndroid Build Coastguard Worker negs x9, x10, lsl #-1 547*9880d681SAndroid Build Coastguard Worker negs x9, x10, lsl #64 548*9880d681SAndroid Build Coastguard Worker negs x11, x12, lsr #-1 549*9880d681SAndroid Build Coastguard Worker negs x11, x12, lsr #64 550*9880d681SAndroid Build Coastguard Worker negs x19, xzr, asr #-1 551*9880d681SAndroid Build Coastguard Worker negs xzr, xzr, asr #64 552*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected integer shift amount 553*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: negs w9, w10, lsl #-1 554*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 555*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 31] 556*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: negs w9, w10, lsl #32 557*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 558*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 559*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: negs w11, w12, lsr #-1 560*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 561*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 31] 562*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: negs w11, w12, lsr #32 563*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 564*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 565*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: negs w19, wzr, asr #-1 566*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 567*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 31] 568*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: negs wzr, wzr, asr #32 569*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 570*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 571*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: negs x9, x10, lsl #-1 572*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 573*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 63] 574*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: negs x9, x10, lsl #64 575*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 576*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 577*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: negs x11, x12, lsr #-1 578*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 579*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 63] 580*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: negs x11, x12, lsr #64 581*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 582*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 583*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: negs x19, xzr, asr #-1 584*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 585*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 63] 586*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: negs xzr, xzr, asr #64 587*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 588*9880d681SAndroid Build Coastguard Worker 589*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 590*9880d681SAndroid Build Coastguard Worker// Add-subtract (shifted register) 591*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 592*9880d681SAndroid Build Coastguard Worker 593*9880d681SAndroid Build Coastguard Worker adc wsp, w3, w5 594*9880d681SAndroid Build Coastguard Worker adc w1, wsp, w2 595*9880d681SAndroid Build Coastguard Worker adc w0, w10, wsp 596*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 597*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adc wsp, w3, w5 598*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 599*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 600*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adc w1, wsp, w2 601*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 602*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 603*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adc w0, w10, wsp 604*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 605*9880d681SAndroid Build Coastguard Worker 606*9880d681SAndroid Build Coastguard Worker adc sp, x3, x5 607*9880d681SAndroid Build Coastguard Worker adc x1, sp, x2 608*9880d681SAndroid Build Coastguard Worker adc x0, x10, sp 609*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 610*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adc sp, x3, x5 611*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 612*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 613*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adc x1, sp, x2 614*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 615*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 616*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adc x0, x10, sp 617*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 618*9880d681SAndroid Build Coastguard Worker 619*9880d681SAndroid Build Coastguard Worker adcs wsp, w3, w5 620*9880d681SAndroid Build Coastguard Worker adcs w1, wsp, w2 621*9880d681SAndroid Build Coastguard Worker adcs w0, w10, wsp 622*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 623*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adcs wsp, w3, w5 624*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 625*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 626*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adcs w1, wsp, w2 627*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 628*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 629*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adcs w0, w10, wsp 630*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 631*9880d681SAndroid Build Coastguard Worker 632*9880d681SAndroid Build Coastguard Worker adcs sp, x3, x5 633*9880d681SAndroid Build Coastguard Worker adcs x1, sp, x2 634*9880d681SAndroid Build Coastguard Worker adcs x0, x10, sp 635*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 636*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adcs sp, x3, x5 637*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 638*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 639*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adcs x1, sp, x2 640*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 641*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 642*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adcs x0, x10, sp 643*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 644*9880d681SAndroid Build Coastguard Worker 645*9880d681SAndroid Build Coastguard Worker sbc wsp, w3, w5 646*9880d681SAndroid Build Coastguard Worker sbc w1, wsp, w2 647*9880d681SAndroid Build Coastguard Worker sbc w0, w10, wsp 648*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 649*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbc wsp, w3, w5 650*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 651*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 652*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbc w1, wsp, w2 653*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 654*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 655*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbc w0, w10, wsp 656*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 657*9880d681SAndroid Build Coastguard Worker 658*9880d681SAndroid Build Coastguard Worker sbc sp, x3, x5 659*9880d681SAndroid Build Coastguard Worker sbc x1, sp, x2 660*9880d681SAndroid Build Coastguard Worker sbc x0, x10, sp 661*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 662*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbc sp, x3, x5 663*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 664*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 665*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbc x1, sp, x2 666*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 667*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 668*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbc x0, x10, sp 669*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 670*9880d681SAndroid Build Coastguard Worker 671*9880d681SAndroid Build Coastguard Worker sbcs wsp, w3, w5 672*9880d681SAndroid Build Coastguard Worker sbcs w1, wsp, w2 673*9880d681SAndroid Build Coastguard Worker sbcs w0, w10, wsp 674*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 675*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbcs wsp, w3, w5 676*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 677*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 678*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbcs w1, wsp, w2 679*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 680*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 681*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbcs w0, w10, wsp 682*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 683*9880d681SAndroid Build Coastguard Worker 684*9880d681SAndroid Build Coastguard Worker sbcs sp, x3, x5 685*9880d681SAndroid Build Coastguard Worker sbcs x1, sp, x2 686*9880d681SAndroid Build Coastguard Worker sbcs x0, x10, sp 687*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 688*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbcs sp, x3, x5 689*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 690*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 691*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbcs x1, sp, x2 692*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 693*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 694*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbcs x0, x10, sp 695*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 696*9880d681SAndroid Build Coastguard Worker 697*9880d681SAndroid Build Coastguard Worker ngc wsp, w3 698*9880d681SAndroid Build Coastguard Worker ngc w9, wsp 699*9880d681SAndroid Build Coastguard Worker ngc sp, x9 700*9880d681SAndroid Build Coastguard Worker ngc x2, sp 701*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 702*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ngc wsp, w3 703*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 704*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 705*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ngc w9, wsp 706*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 707*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 708*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ngc sp, x9 709*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 710*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 711*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ngc x2, sp 712*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 713*9880d681SAndroid Build Coastguard Worker 714*9880d681SAndroid Build Coastguard Worker ngcs wsp, w3 715*9880d681SAndroid Build Coastguard Worker ngcs w9, wsp 716*9880d681SAndroid Build Coastguard Worker ngcs sp, x9 717*9880d681SAndroid Build Coastguard Worker ngcs x2, sp 718*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 719*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ngcs wsp, w3 720*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 721*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 722*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ngcs w9, wsp 723*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 724*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 725*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ngcs sp, x9 726*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 727*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 728*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ngcs x2, sp 729*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 730*9880d681SAndroid Build Coastguard Worker 731*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 732*9880d681SAndroid Build Coastguard Worker// Logical (immediates) 733*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 734*9880d681SAndroid Build Coastguard Worker 735*9880d681SAndroid Build Coastguard Worker and w2, w3, #4294967296 736*9880d681SAndroid Build Coastguard Worker eor w2, w3, #4294967296 737*9880d681SAndroid Build Coastguard Worker orr w2, w3, #4294967296 738*9880d681SAndroid Build Coastguard Worker ands w2, w3, #4294967296 739*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected compatible register or logical immediate 740*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: and w2, w3, #4294967296 741*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 742*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected compatible register or logical immediate 743*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: eor w2, w3, #4294967296 744*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 745*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected compatible register or logical immediate 746*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: orr w2, w3, #4294967296 747*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 748*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected compatible register or logical immediate 749*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ands w2, w3, #4294967296 750*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 751*9880d681SAndroid Build Coastguard Worker 752*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 753*9880d681SAndroid Build Coastguard Worker// Bitfield 754*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 755*9880d681SAndroid Build Coastguard Worker 756*9880d681SAndroid Build Coastguard Worker sbfm x3, w13, #0, #0 757*9880d681SAndroid Build Coastguard Worker sbfm w12, x9, #0, #0 758*9880d681SAndroid Build Coastguard Worker sbfm sp, x3, #3, #5 759*9880d681SAndroid Build Coastguard Worker sbfm w3, wsp, #1, #9 760*9880d681SAndroid Build Coastguard Worker sbfm x9, x5, #-1, #0 761*9880d681SAndroid Build Coastguard Worker sbfm x9, x5, #0, #-1 762*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 763*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfm x3, w13, #0, #0 764*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 765*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 766*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfm w12, x9, #0, #0 767*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 768*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 769*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfm sp, x3, #3, #5 770*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 771*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 772*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfm w3, wsp, #1, #9 773*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 774*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63] 775*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfm x9, x5, #-1, #0 776*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 777*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63] 778*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfm x9, x5, #0, #-1 779*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 780*9880d681SAndroid Build Coastguard Worker 781*9880d681SAndroid Build Coastguard Worker sbfm w3, w5, #32, #1 782*9880d681SAndroid Build Coastguard Worker sbfm w7, w11, #19, #32 783*9880d681SAndroid Build Coastguard Worker sbfm x29, x30, #64, #0 784*9880d681SAndroid Build Coastguard Worker sbfm x10, x20, #63, #64 785*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31] 786*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfm w3, w5, #32, #1 787*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 788*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 789*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfm w7, w11, #19, #32 790*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 791*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63] 792*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfm x29, x30, #64, #0 793*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 794*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63] 795*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfm x10, x20, #63, #64 796*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 797*9880d681SAndroid Build Coastguard Worker 798*9880d681SAndroid Build Coastguard Worker ubfm w3, w5, #32, #1 799*9880d681SAndroid Build Coastguard Worker ubfm w7, w11, #19, #32 800*9880d681SAndroid Build Coastguard Worker ubfm x29, x30, #64, #0 801*9880d681SAndroid Build Coastguard Worker ubfm x10, x20, #63, #64 802*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31] 803*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ubfm w3, w5, #32, #1 804*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 805*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 806*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ubfm w7, w11, #19, #32 807*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 808*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63] 809*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ubfm x29, x30, #64, #0 810*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 811*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63] 812*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ubfm x10, x20, #63, #64 813*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 814*9880d681SAndroid Build Coastguard Worker 815*9880d681SAndroid Build Coastguard Worker bfm w3, w5, #32, #1 816*9880d681SAndroid Build Coastguard Worker bfm w7, w11, #19, #32 817*9880d681SAndroid Build Coastguard Worker bfm x29, x30, #64, #0 818*9880d681SAndroid Build Coastguard Worker bfm x10, x20, #63, #64 819*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31] 820*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bfm w3, w5, #32, #1 821*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 822*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 823*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bfm w7, w11, #19, #32 824*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 825*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63] 826*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bfm x29, x30, #64, #0 827*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 828*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63] 829*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bfm x10, x20, #63, #64 830*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 831*9880d681SAndroid Build Coastguard Worker 832*9880d681SAndroid Build Coastguard Worker sxtb x3, x2 833*9880d681SAndroid Build Coastguard Worker sxth xzr, xzr 834*9880d681SAndroid Build Coastguard Worker sxtw x3, x5 835*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64: error: invalid operand for instruction 836*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: sxtb x3, x2 837*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: ^ 838*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: error: invalid operand for instruction 839*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: sxth xzr, xzr 840*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: ^ 841*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: error: invalid operand for instruction 842*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: sxtw x3, x5 843*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: ^ 844*9880d681SAndroid Build Coastguard Worker 845*9880d681SAndroid Build Coastguard Worker uxtb x3, x12 846*9880d681SAndroid Build Coastguard Worker uxth x5, x9 847*9880d681SAndroid Build Coastguard Worker uxtw x3, x5 848*9880d681SAndroid Build Coastguard Worker uxtb x2, sp 849*9880d681SAndroid Build Coastguard Worker uxtb sp, xzr 850*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 851*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: uxtb x3, x12 852*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 853*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 854*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: uxth x5, x9 855*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 856*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: error: invalid instruction 857*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: uxtw x3, x5 858*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: ^ 859*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 860*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: uxtb x2, sp 861*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 862*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 863*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: uxtb sp, xzr 864*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 865*9880d681SAndroid Build Coastguard Worker 866*9880d681SAndroid Build Coastguard Worker asr x3, w2, #1 867*9880d681SAndroid Build Coastguard Worker asr sp, x2, #1 868*9880d681SAndroid Build Coastguard Worker asr x25, x26, #-1 869*9880d681SAndroid Build Coastguard Worker asr x25, x26, #64 870*9880d681SAndroid Build Coastguard Worker asr w9, w8, #32 871*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 872*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: asr x3, w2, #1 873*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 874*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 875*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: asr sp, x2, #1 876*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 877*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63] 878*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: asr x25, x26, #-1 879*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 880*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63] 881*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: asr x25, x26, #64 882*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 883*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 884*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: asr w9, w8, #32 885*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 886*9880d681SAndroid Build Coastguard Worker 887*9880d681SAndroid Build Coastguard Worker sbfiz w1, w2, #0, #0 888*9880d681SAndroid Build Coastguard Worker sbfiz wsp, w9, #0, #1 889*9880d681SAndroid Build Coastguard Worker sbfiz w9, w10, #32, #1 890*9880d681SAndroid Build Coastguard Worker sbfiz w11, w12, #32, #0 891*9880d681SAndroid Build Coastguard Worker sbfiz w9, w10, #10, #23 892*9880d681SAndroid Build Coastguard Worker sbfiz x3, x5, #12, #53 893*9880d681SAndroid Build Coastguard Worker sbfiz sp, x3, #7, #6 894*9880d681SAndroid Build Coastguard Worker sbfiz w3, wsp, #10, #8 895*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64: error: expected integer in range [<lsb>, 31] 896*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-ARM64: error: expected integer in range [1, 32] 897*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfiz w1, w2, #0, #0 898*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 899*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 900*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfiz wsp, w9, #0, #1 901*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 902*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 903*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfiz w9, w10, #32, #1 904*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 905*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 906*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfiz w11, w12, #32, #0 907*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 908*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: requested insert overflows register 909*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfiz w9, w10, #10, #23 910*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 911*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: requested insert overflows register 912*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfiz x3, x5, #12, #53 913*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 914*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 915*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfiz sp, x3, #7, #6 916*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 917*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 918*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfiz w3, wsp, #10, #8 919*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 920*9880d681SAndroid Build Coastguard Worker 921*9880d681SAndroid Build Coastguard Worker sbfx w1, w2, #0, #0 922*9880d681SAndroid Build Coastguard Worker sbfx wsp, w9, #0, #1 923*9880d681SAndroid Build Coastguard Worker sbfx w9, w10, #32, #1 924*9880d681SAndroid Build Coastguard Worker sbfx w11, w12, #32, #0 925*9880d681SAndroid Build Coastguard Worker sbfx w9, w10, #10, #23 926*9880d681SAndroid Build Coastguard Worker sbfx x3, x5, #12, #53 927*9880d681SAndroid Build Coastguard Worker sbfx sp, x3, #7, #6 928*9880d681SAndroid Build Coastguard Worker sbfx w3, wsp, #10, #8 929*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64: error: expected integer in range [<lsb>, 31] 930*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-ARM64: error: expected integer in range [1, 32] 931*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfx w1, w2, #0, #0 932*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 933*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 934*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfx wsp, w9, #0, #1 935*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 936*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 937*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfx w9, w10, #32, #1 938*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 939*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 940*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfx w11, w12, #32, #0 941*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 942*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: requested extract overflows register 943*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfx w9, w10, #10, #23 944*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 945*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: requested extract overflows register 946*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfx x3, x5, #12, #53 947*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 948*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 949*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfx sp, x3, #7, #6 950*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 951*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 952*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sbfx w3, wsp, #10, #8 953*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 954*9880d681SAndroid Build Coastguard Worker 955*9880d681SAndroid Build Coastguard Worker bfi w1, w2, #0, #0 956*9880d681SAndroid Build Coastguard Worker bfi wsp, w9, #0, #1 957*9880d681SAndroid Build Coastguard Worker bfi w9, w10, #32, #1 958*9880d681SAndroid Build Coastguard Worker bfi w11, w12, #32, #0 959*9880d681SAndroid Build Coastguard Worker bfi w9, w10, #10, #23 960*9880d681SAndroid Build Coastguard Worker bfi x3, x5, #12, #53 961*9880d681SAndroid Build Coastguard Worker bfi sp, x3, #7, #6 962*9880d681SAndroid Build Coastguard Worker bfi w3, wsp, #10, #8 963*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64: error: expected integer in range [<lsb>, 31] 964*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-ARM64: error: expected integer in range [1, 32] 965*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bfi w1, w2, #0, #0 966*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 967*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 968*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bfi wsp, w9, #0, #1 969*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 970*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 971*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bfi w9, w10, #32, #1 972*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 973*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 974*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bfi w11, w12, #32, #0 975*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 976*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: requested insert overflows register 977*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bfi w9, w10, #10, #23 978*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 979*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: requested insert overflows register 980*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bfi x3, x5, #12, #53 981*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 982*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 983*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bfi sp, x3, #7, #6 984*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 985*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 986*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bfi w3, wsp, #10, #8 987*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 988*9880d681SAndroid Build Coastguard Worker 989*9880d681SAndroid Build Coastguard Worker bfxil w1, w2, #0, #0 990*9880d681SAndroid Build Coastguard Worker bfxil wsp, w9, #0, #1 991*9880d681SAndroid Build Coastguard Worker bfxil w9, w10, #32, #1 992*9880d681SAndroid Build Coastguard Worker bfxil w11, w12, #32, #0 993*9880d681SAndroid Build Coastguard Worker bfxil w9, w10, #10, #23 994*9880d681SAndroid Build Coastguard Worker bfxil x3, x5, #12, #53 995*9880d681SAndroid Build Coastguard Worker bfxil sp, x3, #7, #6 996*9880d681SAndroid Build Coastguard Worker bfxil w3, wsp, #10, #8 997*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64: error: expected integer in range [<lsb>, 31] 998*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-ARM64: error: expected integer in range [1, 32] 999*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bfxil w1, w2, #0, #0 1000*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1001*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1002*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bfxil wsp, w9, #0, #1 1003*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1004*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 1005*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bfxil w9, w10, #32, #1 1006*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1007*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 1008*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bfxil w11, w12, #32, #0 1009*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1010*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: requested extract overflows register 1011*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bfxil w9, w10, #10, #23 1012*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1013*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: requested extract overflows register 1014*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bfxil x3, x5, #12, #53 1015*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1016*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1017*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bfxil sp, x3, #7, #6 1018*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1019*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1020*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bfxil w3, wsp, #10, #8 1021*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1022*9880d681SAndroid Build Coastguard Worker 1023*9880d681SAndroid Build Coastguard Worker ubfiz w1, w2, #0, #0 1024*9880d681SAndroid Build Coastguard Worker ubfiz wsp, w9, #0, #1 1025*9880d681SAndroid Build Coastguard Worker ubfiz w9, w10, #32, #1 1026*9880d681SAndroid Build Coastguard Worker ubfiz w11, w12, #32, #0 1027*9880d681SAndroid Build Coastguard Worker ubfiz w9, w10, #10, #23 1028*9880d681SAndroid Build Coastguard Worker ubfiz x3, x5, #12, #53 1029*9880d681SAndroid Build Coastguard Worker ubfiz sp, x3, #7, #6 1030*9880d681SAndroid Build Coastguard Worker ubfiz w3, wsp, #10, #8 1031*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64: error: expected integer in range [<lsb>, 31] 1032*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-ARM64: error: expected integer in range [1, 32] 1033*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ubfiz w1, w2, #0, #0 1034*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1035*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1036*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ubfiz wsp, w9, #0, #1 1037*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1038*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 1039*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ubfiz w9, w10, #32, #1 1040*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1041*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 1042*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ubfiz w11, w12, #32, #0 1043*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1044*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: requested insert overflows register 1045*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ubfiz w9, w10, #10, #23 1046*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1047*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: requested insert overflows register 1048*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ubfiz x3, x5, #12, #53 1049*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1050*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1051*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ubfiz sp, x3, #7, #6 1052*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1053*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1054*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ubfiz w3, wsp, #10, #8 1055*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1056*9880d681SAndroid Build Coastguard Worker 1057*9880d681SAndroid Build Coastguard Worker ubfx w1, w2, #0, #0 1058*9880d681SAndroid Build Coastguard Worker ubfx wsp, w9, #0, #1 1059*9880d681SAndroid Build Coastguard Worker ubfx w9, w10, #32, #1 1060*9880d681SAndroid Build Coastguard Worker ubfx w11, w12, #32, #0 1061*9880d681SAndroid Build Coastguard Worker ubfx w9, w10, #10, #23 1062*9880d681SAndroid Build Coastguard Worker ubfx x3, x5, #12, #53 1063*9880d681SAndroid Build Coastguard Worker ubfx sp, x3, #7, #6 1064*9880d681SAndroid Build Coastguard Worker ubfx w3, wsp, #10, #8 1065*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64: error: expected integer in range [<lsb>, 31] 1066*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-ARM64: error: expected integer in range [1, 32] 1067*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ubfx w1, w2, #0, #0 1068*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1069*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1070*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ubfx wsp, w9, #0, #1 1071*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1072*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 1073*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ubfx w9, w10, #32, #1 1074*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1075*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 1076*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ubfx w11, w12, #32, #0 1077*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1078*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: requested extract overflows register 1079*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ubfx w9, w10, #10, #23 1080*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1081*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: requested extract overflows register 1082*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ubfx x3, x5, #12, #53 1083*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1084*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1085*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ubfx sp, x3, #7, #6 1086*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1087*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1088*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ubfx w3, wsp, #10, #8 1089*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1090*9880d681SAndroid Build Coastguard Worker 1091*9880d681SAndroid Build Coastguard Worker bfc wsp, #3, #6 1092*9880d681SAndroid Build Coastguard Worker bfc w4, #2, #31 1093*9880d681SAndroid Build Coastguard Worker bfc sp, #0, #1 1094*9880d681SAndroid Build Coastguard Worker bfc x6, #0, #0 1095*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1096*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bfc wsp, #3, #6 1097*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1098*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: requested insert overflows register 1099*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bfc w4, #2, #31 1100*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1101*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1102*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bfc sp, #0, #1 1103*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1104*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer in range [1, 32] 1105*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bfc x6, #0, #0 1106*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1107*9880d681SAndroid Build Coastguard Worker 1108*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1109*9880d681SAndroid Build Coastguard Worker// Compare & branch (immediate) 1110*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1111*9880d681SAndroid Build Coastguard Worker 1112*9880d681SAndroid Build Coastguard Worker cbnz wsp, lbl 1113*9880d681SAndroid Build Coastguard Worker cbz sp, lbl 1114*9880d681SAndroid Build Coastguard Worker cbz x3, x5 1115*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1116*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cbnz wsp, lbl 1117*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1118*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1119*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cbz sp, lbl 1120*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1121*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset 1122*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cbz x3, x5 1123*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1124*9880d681SAndroid Build Coastguard Worker 1125*9880d681SAndroid Build Coastguard Worker cbz w20, #1048576 1126*9880d681SAndroid Build Coastguard Worker cbnz xzr, #-1048580 1127*9880d681SAndroid Build Coastguard Worker cbz x29, #1 1128*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected label or encodable integer pc offset 1129*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cbz w20, #1048576 1130*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1131*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset 1132*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cbnz xzr, #-1048580 1133*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1134*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset 1135*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cbz x29, #1 1136*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1137*9880d681SAndroid Build Coastguard Worker 1138*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1139*9880d681SAndroid Build Coastguard Worker// Conditional branch (immediate) 1140*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1141*9880d681SAndroid Build Coastguard Worker 1142*9880d681SAndroid Build Coastguard Worker b.zf lbl 1143*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid condition code 1144*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: b.zf lbl 1145*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1146*9880d681SAndroid Build Coastguard Worker 1147*9880d681SAndroid Build Coastguard Worker b.eq #1048576 1148*9880d681SAndroid Build Coastguard Worker b.ge #-1048580 1149*9880d681SAndroid Build Coastguard Worker b.cc #1 1150*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected label or encodable integer pc offset 1151*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: b.eq #1048576 1152*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1153*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset 1154*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: b.ge #-1048580 1155*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1156*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset 1157*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: b.cc #1 1158*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1159*9880d681SAndroid Build Coastguard Worker 1160*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1161*9880d681SAndroid Build Coastguard Worker// Conditional compare (immediate) 1162*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1163*9880d681SAndroid Build Coastguard Worker 1164*9880d681SAndroid Build Coastguard Worker ccmp wsp, #4, #2, ne 1165*9880d681SAndroid Build Coastguard Worker ccmp w25, #-1, #15, hs 1166*9880d681SAndroid Build Coastguard Worker ccmp w3, #32, #0, ge 1167*9880d681SAndroid Build Coastguard Worker ccmp w19, #5, #-1, lt 1168*9880d681SAndroid Build Coastguard Worker ccmp w20, #7, #16, hs 1169*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1170*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmp wsp, #4, #2, ne 1171*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1172*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 1173*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmp w25, #-1, #15, hs 1174*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1175*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 1176*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmp w3, #32, #0, ge 1177*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1178*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 1179*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmp w19, #5, #-1, lt 1180*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1181*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 1182*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmp w20, #7, #16, hs 1183*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1184*9880d681SAndroid Build Coastguard Worker 1185*9880d681SAndroid Build Coastguard Worker ccmp sp, #4, #2, ne 1186*9880d681SAndroid Build Coastguard Worker ccmp x25, #-1, #15, hs 1187*9880d681SAndroid Build Coastguard Worker ccmp x3, #32, #0, ge 1188*9880d681SAndroid Build Coastguard Worker ccmp x19, #5, #-1, lt 1189*9880d681SAndroid Build Coastguard Worker ccmp x20, #7, #16, hs 1190*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1191*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmp sp, #4, #2, ne 1192*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1193*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 1194*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmp x25, #-1, #15, hs 1195*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1196*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 1197*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmp x3, #32, #0, ge 1198*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1199*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 1200*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmp x19, #5, #-1, lt 1201*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1202*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 1203*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmp x20, #7, #16, hs 1204*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1205*9880d681SAndroid Build Coastguard Worker 1206*9880d681SAndroid Build Coastguard Worker ccmn wsp, #4, #2, ne 1207*9880d681SAndroid Build Coastguard Worker ccmn w25, #-1, #15, hs 1208*9880d681SAndroid Build Coastguard Worker ccmn w3, #32, #0, ge 1209*9880d681SAndroid Build Coastguard Worker ccmn w19, #5, #-1, lt 1210*9880d681SAndroid Build Coastguard Worker ccmn w20, #7, #16, hs 1211*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1212*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmn wsp, #4, #2, ne 1213*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1214*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 1215*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmn w25, #-1, #15, hs 1216*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1217*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 1218*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmn w3, #32, #0, ge 1219*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1220*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 1221*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmn w19, #5, #-1, lt 1222*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1223*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 1224*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmn w20, #7, #16, hs 1225*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1226*9880d681SAndroid Build Coastguard Worker 1227*9880d681SAndroid Build Coastguard Worker ccmn sp, #4, #2, ne 1228*9880d681SAndroid Build Coastguard Worker ccmn x25, #-1, #15, hs 1229*9880d681SAndroid Build Coastguard Worker ccmn x3, #32, #0, ge 1230*9880d681SAndroid Build Coastguard Worker ccmn x19, #5, #-1, lt 1231*9880d681SAndroid Build Coastguard Worker ccmn x20, #7, #16, hs 1232*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1233*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmn sp, #4, #2, ne 1234*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1235*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 1236*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmn x25, #-1, #15, hs 1237*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1238*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 1239*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmn x3, #32, #0, ge 1240*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1241*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 1242*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmn x19, #5, #-1, lt 1243*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1244*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 1245*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmn x20, #7, #16, hs 1246*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1247*9880d681SAndroid Build Coastguard Worker 1248*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1249*9880d681SAndroid Build Coastguard Worker// Conditional compare (register) 1250*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1251*9880d681SAndroid Build Coastguard Worker 1252*9880d681SAndroid Build Coastguard Worker ccmp wsp, w4, #2, ne 1253*9880d681SAndroid Build Coastguard Worker ccmp w3, wsp, #0, ge 1254*9880d681SAndroid Build Coastguard Worker ccmp w19, w5, #-1, lt 1255*9880d681SAndroid Build Coastguard Worker ccmp w20, w7, #16, hs 1256*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1257*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmp wsp, w4, #2, ne 1258*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1259*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 1260*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmp w3, wsp, #0, ge 1261*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1262*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 1263*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmp w19, w5, #-1, lt 1264*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1265*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 1266*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmp w20, w7, #16, hs 1267*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1268*9880d681SAndroid Build Coastguard Worker 1269*9880d681SAndroid Build Coastguard Worker ccmp sp, x4, #2, ne 1270*9880d681SAndroid Build Coastguard Worker ccmp x25, sp, #15, hs 1271*9880d681SAndroid Build Coastguard Worker ccmp x19, x5, #-1, lt 1272*9880d681SAndroid Build Coastguard Worker ccmp x20, x7, #16, hs 1273*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1274*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmp sp, x4, #2, ne 1275*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1276*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 1277*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmp x25, sp, #15, hs 1278*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1279*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 1280*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmp x19, x5, #-1, lt 1281*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1282*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 1283*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmp x20, x7, #16, hs 1284*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1285*9880d681SAndroid Build Coastguard Worker 1286*9880d681SAndroid Build Coastguard Worker ccmn wsp, w4, #2, ne 1287*9880d681SAndroid Build Coastguard Worker ccmn w25, wsp, #15, hs 1288*9880d681SAndroid Build Coastguard Worker ccmn w19, w5, #-1, lt 1289*9880d681SAndroid Build Coastguard Worker ccmn w20, w7, #16, hs 1290*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1291*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmn wsp, w4, #2, ne 1292*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1293*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 1294*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmn w25, wsp, #15, hs 1295*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1296*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 1297*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmn w19, w5, #-1, lt 1298*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1299*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 1300*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmn w20, w7, #16, hs 1301*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1302*9880d681SAndroid Build Coastguard Worker 1303*9880d681SAndroid Build Coastguard Worker ccmn sp, x4, #2, ne 1304*9880d681SAndroid Build Coastguard Worker ccmn x25, sp, #15, hs 1305*9880d681SAndroid Build Coastguard Worker ccmn x19, x5, #-1, lt 1306*9880d681SAndroid Build Coastguard Worker ccmn x20, x7, #16, hs 1307*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1308*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmn sp, x4, #2, ne 1309*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1310*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 1311*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmn x25, sp, #15, hs 1312*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1313*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 1314*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmn x19, x5, #-1, lt 1315*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1316*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 1317*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ccmn x20, x7, #16, hs 1318*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1319*9880d681SAndroid Build Coastguard Worker 1320*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1321*9880d681SAndroid Build Coastguard Worker// Conditional select 1322*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1323*9880d681SAndroid Build Coastguard Worker 1324*9880d681SAndroid Build Coastguard Worker csel w4, wsp, w9, eq 1325*9880d681SAndroid Build Coastguard Worker csel wsp, w2, w3, ne 1326*9880d681SAndroid Build Coastguard Worker csel w10, w11, wsp, ge 1327*9880d681SAndroid Build Coastguard Worker csel w1, w2, w3, #3 1328*9880d681SAndroid Build Coastguard Worker csel x4, sp, x9, eq 1329*9880d681SAndroid Build Coastguard Worker csel sp, x2, x3, ne 1330*9880d681SAndroid Build Coastguard Worker csel x10, x11, sp, ge 1331*9880d681SAndroid Build Coastguard Worker csel x1, x2, x3, #3 1332*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1333*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: csel w4, wsp, w9, eq 1334*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1335*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1336*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: csel wsp, w2, w3, ne 1337*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1338*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1339*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: csel w10, w11, wsp, ge 1340*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1341*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected AArch64 condition code 1342*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: csel w1, w2, w3, #3 1343*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1344*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1345*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: csel x4, sp, x9, eq 1346*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1347*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1348*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: csel sp, x2, x3, ne 1349*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1350*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1351*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: csel x10, x11, sp, ge 1352*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1353*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected AArch64 condition code 1354*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: csel x1, x2, x3, #3 1355*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1356*9880d681SAndroid Build Coastguard Worker 1357*9880d681SAndroid Build Coastguard Worker csinc w20, w21, wsp, mi 1358*9880d681SAndroid Build Coastguard Worker csinc sp, x30, x29, eq 1359*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1360*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: csinc w20, w21, wsp, mi 1361*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1362*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1363*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: csinc sp, x30, x29, eq 1364*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1365*9880d681SAndroid Build Coastguard Worker 1366*9880d681SAndroid Build Coastguard Worker csinv w20, wsp, wsp, mi 1367*9880d681SAndroid Build Coastguard Worker csinv sp, x30, x29, le 1368*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1369*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: csinv w20, wsp, wsp, mi 1370*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1371*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1372*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: csinv sp, x30, x29, le 1373*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1374*9880d681SAndroid Build Coastguard Worker 1375*9880d681SAndroid Build Coastguard Worker csneg w20, w21, wsp, mi 1376*9880d681SAndroid Build Coastguard Worker csneg x0, sp, x29, le 1377*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1378*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: csneg w20, w21, wsp, mi 1379*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1380*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1381*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: csneg x0, sp, x29, le 1382*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1383*9880d681SAndroid Build Coastguard Worker 1384*9880d681SAndroid Build Coastguard Worker cset wsp, lt 1385*9880d681SAndroid Build Coastguard Worker csetm sp, ge 1386*9880d681SAndroid Build Coastguard Worker cset w1, al 1387*9880d681SAndroid Build Coastguard Worker csetm x6, nv 1388*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1389*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cset wsp, lt 1390*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1391*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1392*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: csetm sp, ge 1393*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1394*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: condition codes AL and NV are invalid for this instruction 1395*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cset w1, al 1396*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1397*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: condition codes AL and NV are invalid for this instruction 1398*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: csetm x6, nv 1399*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1400*9880d681SAndroid Build Coastguard Worker 1401*9880d681SAndroid Build Coastguard Worker cinc w3, wsp, ne 1402*9880d681SAndroid Build Coastguard Worker cinc sp, x9, eq 1403*9880d681SAndroid Build Coastguard Worker cinc x2, x0, nv 1404*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1405*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cinc w3, wsp, ne 1406*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1407*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1408*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cinc sp, x9, eq 1409*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1410*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: condition codes AL and NV are invalid for this instruction 1411*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cinc x2, x0, nv 1412*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1413*9880d681SAndroid Build Coastguard Worker 1414*9880d681SAndroid Build Coastguard Worker cinv w3, wsp, ne 1415*9880d681SAndroid Build Coastguard Worker cinv sp, x9, eq 1416*9880d681SAndroid Build Coastguard Worker cinv w8, x7, nv 1417*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1418*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cinv w3, wsp, ne 1419*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1420*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1421*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cinv sp, x9, eq 1422*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1423*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: condition codes AL and NV are invalid for this instruction 1424*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cinv w8, x7, nv 1425*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1426*9880d681SAndroid Build Coastguard Worker 1427*9880d681SAndroid Build Coastguard Worker cneg w3, wsp, ne 1428*9880d681SAndroid Build Coastguard Worker cneg sp, x9, eq 1429*9880d681SAndroid Build Coastguard Worker cneg x4, x5, al 1430*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1431*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cneg w3, wsp, ne 1432*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1433*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1434*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cneg sp, x9, eq 1435*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1436*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: condition codes AL and NV are invalid for this instruction 1437*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: cneg x4, x5, al 1438*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1439*9880d681SAndroid Build Coastguard Worker 1440*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1441*9880d681SAndroid Build Coastguard Worker// Data Processing (1 source) 1442*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1443*9880d681SAndroid Build Coastguard Worker rbit x23, w2 1444*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR: error: invalid operand for instruction 1445*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR-NEXT: rbit x23, w2 1446*9880d681SAndroid Build Coastguard Worker 1447*9880d681SAndroid Build Coastguard Worker cls sp, x2 1448*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR: error: invalid operand for instruction 1449*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR-NEXT: cls sp, x2 1450*9880d681SAndroid Build Coastguard Worker 1451*9880d681SAndroid Build Coastguard Worker clz wsp, w3 1452*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR: error: invalid operand for instruction 1453*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR-NEXT: clz wsp, w3 1454*9880d681SAndroid Build Coastguard Worker 1455*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1456*9880d681SAndroid Build Coastguard Worker// Data Processing (2 sources) 1457*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1458*9880d681SAndroid Build Coastguard Worker udiv x23, w2, x18 1459*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR: error: invalid operand for instruction 1460*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR-NEXT: udiv x23, w2, x18 1461*9880d681SAndroid Build Coastguard Worker 1462*9880d681SAndroid Build Coastguard Worker lsl sp, x2, x4 1463*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR: error: invalid operand for instruction 1464*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR-NEXT: lsl sp, x2, x4 1465*9880d681SAndroid Build Coastguard Worker 1466*9880d681SAndroid Build Coastguard Worker asr wsp, w3, w9 1467*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR: error: invalid operand for instruction 1468*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR-NEXT: asr wsp, w3, w9 1469*9880d681SAndroid Build Coastguard Worker 1470*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1471*9880d681SAndroid Build Coastguard Worker// Data Processing (3 sources) 1472*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1473*9880d681SAndroid Build Coastguard Worker 1474*9880d681SAndroid Build Coastguard Worker madd sp, x3, x9, x10 1475*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR: error: invalid operand for instruction 1476*9880d681SAndroid Build Coastguard Worker//CHECK-ERROR-NEXT: madd sp, x3, x9, x10 1477*9880d681SAndroid Build Coastguard Worker 1478*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1479*9880d681SAndroid Build Coastguard Worker// Exception generation 1480*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1481*9880d681SAndroid Build Coastguard Worker svc #-1 1482*9880d681SAndroid Build Coastguard Worker hlt #65536 1483*9880d681SAndroid Build Coastguard Worker dcps4 #43 1484*9880d681SAndroid Build Coastguard Worker dcps4 1485*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 65535] 1486*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: svc #-1 1487*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1488*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 65535] 1489*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: hlt #65536 1490*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1491*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{invalid instruction|unrecognized instruction mnemonic}} 1492*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: dcps4 #43 1493*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1494*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{invalid instruction|unrecognized instruction mnemonic}} 1495*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: dcps4 1496*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1497*9880d681SAndroid Build Coastguard Worker 1498*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1499*9880d681SAndroid Build Coastguard Worker// Extract (immediate) 1500*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1501*9880d681SAndroid Build Coastguard Worker 1502*9880d681SAndroid Build Coastguard Worker extr w2, w20, w30, #-1 1503*9880d681SAndroid Build Coastguard Worker extr w9, w19, w20, #32 1504*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 1505*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: extr w2, w20, w30, #-1 1506*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1507*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 1508*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: extr w9, w19, w20, #32 1509*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1510*9880d681SAndroid Build Coastguard Worker 1511*9880d681SAndroid Build Coastguard Worker extr x10, x15, x20, #-1 1512*9880d681SAndroid Build Coastguard Worker extr x20, x25, x30, #64 1513*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63] 1514*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: extr x10, x15, x20, #-1 1515*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1516*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63] 1517*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: extr x20, x25, x30, #64 1518*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1519*9880d681SAndroid Build Coastguard Worker 1520*9880d681SAndroid Build Coastguard Worker ror w9, w10, #32 1521*9880d681SAndroid Build Coastguard Worker ror x10, x11, #64 1522*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 1523*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ror w9, w10, #32 1524*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1525*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63] 1526*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ror x10, x11, #64 1527*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1528*9880d681SAndroid Build Coastguard Worker 1529*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1530*9880d681SAndroid Build Coastguard Worker// Floating-point compare 1531*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1532*9880d681SAndroid Build Coastguard Worker 1533*9880d681SAndroid Build Coastguard Worker fcmp s3, d2 1534*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64: error: expected floating-point constant #0.0 1535*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-ARM64: error: invalid operand for instruction 1536*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fcmp s3, d2 1537*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1538*9880d681SAndroid Build Coastguard Worker 1539*9880d681SAndroid Build Coastguard Worker fcmp s9, #-0.0 1540*9880d681SAndroid Build Coastguard Worker fcmp d3, #-0.0 1541*9880d681SAndroid Build Coastguard Worker fcmp s1, #1.0 1542*9880d681SAndroid Build Coastguard Worker fcmpe s30, #-0.0 1543*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected floating-point constant #0.0 1544*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fcmp s9, #-0.0 1545*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1546*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected floating-point constant #0.0 1547*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fcmp d3, #-0.0 1548*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1549*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected floating-point constant #0.0 1550*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fcmp s1, #1.0 1551*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1552*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected floating-point constant #0.0 1553*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fcmpe s30, #-0.0 1554*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1555*9880d681SAndroid Build Coastguard Worker 1556*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1557*9880d681SAndroid Build Coastguard Worker// Floating-point conditional compare 1558*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1559*9880d681SAndroid Build Coastguard Worker 1560*9880d681SAndroid Build Coastguard Worker fccmp s19, s5, #-1, lt 1561*9880d681SAndroid Build Coastguard Worker fccmp s20, s7, #16, hs 1562*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 1563*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fccmp s19, s5, #-1, lt 1564*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1565*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 1566*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fccmp s20, s7, #16, hs 1567*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1568*9880d681SAndroid Build Coastguard Worker 1569*9880d681SAndroid Build Coastguard Worker fccmp d19, d5, #-1, lt 1570*9880d681SAndroid Build Coastguard Worker fccmp d20, d7, #16, hs 1571*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 1572*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fccmp d19, d5, #-1, lt 1573*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1574*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 1575*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fccmp d20, d7, #16, hs 1576*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1577*9880d681SAndroid Build Coastguard Worker 1578*9880d681SAndroid Build Coastguard Worker fccmpe s19, s5, #-1, lt 1579*9880d681SAndroid Build Coastguard Worker fccmpe s20, s7, #16, hs 1580*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 1581*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fccmpe s19, s5, #-1, lt 1582*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1583*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 1584*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fccmpe s20, s7, #16, hs 1585*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1586*9880d681SAndroid Build Coastguard Worker 1587*9880d681SAndroid Build Coastguard Worker fccmpe d19, d5, #-1, lt 1588*9880d681SAndroid Build Coastguard Worker fccmpe d20, d7, #16, hs 1589*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 1590*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fccmpe d19, d5, #-1, lt 1591*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1592*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 1593*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fccmpe d20, d7, #16, hs 1594*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1595*9880d681SAndroid Build Coastguard Worker 1596*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1597*9880d681SAndroid Build Coastguard Worker// Floating-point conditional compare 1598*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1599*9880d681SAndroid Build Coastguard Worker 1600*9880d681SAndroid Build Coastguard Worker fcsel q3, q20, q9, pl 1601*9880d681SAndroid Build Coastguard Worker fcsel h9, h10, h11, mi 1602*9880d681SAndroid Build Coastguard Worker fcsel b9, b10, b11, mi 1603*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1604*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fcsel q3, q20, q9, pl 1605*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1606*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: instruction requires: fullfp16 1607*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fcsel h9, h10, h11, mi 1608*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1609*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1610*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fcsel b9, b10, b11, mi 1611*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1612*9880d681SAndroid Build Coastguard Worker 1613*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1614*9880d681SAndroid Build Coastguard Worker// Floating-point data-processing (1 source) 1615*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1616*9880d681SAndroid Build Coastguard Worker 1617*9880d681SAndroid Build Coastguard Worker fmov d0, s3 1618*9880d681SAndroid Build Coastguard Worker fcvt d0, d1 1619*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected compatible register or floating-point constant 1620*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fmov d0, s3 1621*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1622*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1623*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fcvt d0, d1 1624*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1625*9880d681SAndroid Build Coastguard Worker 1626*9880d681SAndroid Build Coastguard Worker 1627*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1628*9880d681SAndroid Build Coastguard Worker// Floating-point data-processing (2 sources) 1629*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1630*9880d681SAndroid Build Coastguard Worker 1631*9880d681SAndroid Build Coastguard Worker fadd s0, d3, d7 1632*9880d681SAndroid Build Coastguard Worker fmaxnm d3, s19, d12 1633*9880d681SAndroid Build Coastguard Worker fnmul d1, d9, s18 1634*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1635*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fadd s0, d3, d7 1636*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1637*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1638*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fmaxnm d3, s19, d12 1639*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1640*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1641*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fnmul d1, d9, s18 1642*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1643*9880d681SAndroid Build Coastguard Worker 1644*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1645*9880d681SAndroid Build Coastguard Worker// Floating-point data-processing (3 sources) 1646*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1647*9880d681SAndroid Build Coastguard Worker 1648*9880d681SAndroid Build Coastguard Worker fmadd b3, b4, b5, b6 1649*9880d681SAndroid Build Coastguard Worker fmsub h1, h2, h3, h4 1650*9880d681SAndroid Build Coastguard Worker fnmadd q3, q5, q6, q7 1651*9880d681SAndroid Build Coastguard Worker fnmsub s2, s4, d5, h9 1652*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1653*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fmadd b3, b4, b5, b6 1654*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1655*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: instruction requires: fullfp16 1656*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fmsub h1, h2, h3, h4 1657*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1658*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1659*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fnmadd q3, q5, q6, q7 1660*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1661*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1662*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fnmsub s2, s4, d5, h9 1663*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1664*9880d681SAndroid Build Coastguard Worker 1665*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1666*9880d681SAndroid Build Coastguard Worker// Floating-point conditional compare 1667*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1668*9880d681SAndroid Build Coastguard Worker 1669*9880d681SAndroid Build Coastguard Worker fcvtzs w13, s31, #0 1670*9880d681SAndroid Build Coastguard Worker fcvtzs w19, s20, #33 1671*9880d681SAndroid Build Coastguard Worker fcvtzs wsp, s19, #14 1672*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [1, 32] 1673*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fcvtzs w13, s31, #0 1674*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1675*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [1, 32] 1676*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fcvtzs w19, s20, #33 1677*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1678*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1679*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fcvtzs wsp, s19, #14 1680*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1681*9880d681SAndroid Build Coastguard Worker 1682*9880d681SAndroid Build Coastguard Worker fcvtzs x13, s31, #0 1683*9880d681SAndroid Build Coastguard Worker fcvtzs x19, s20, #65 1684*9880d681SAndroid Build Coastguard Worker fcvtzs sp, s19, #14 1685*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [1, 64] 1686*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fcvtzs x13, s31, #0 1687*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1688*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [1, 64] 1689*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fcvtzs x19, s20, #65 1690*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1691*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1692*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fcvtzs sp, s19, #14 1693*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1694*9880d681SAndroid Build Coastguard Worker 1695*9880d681SAndroid Build Coastguard Worker fcvtzu w13, s31, #0 1696*9880d681SAndroid Build Coastguard Worker fcvtzu w19, s20, #33 1697*9880d681SAndroid Build Coastguard Worker fcvtzu wsp, s19, #14 1698*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [1, 32] 1699*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fcvtzu w13, s31, #0 1700*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1701*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [1, 32] 1702*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fcvtzu w19, s20, #33 1703*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1704*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1705*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fcvtzu wsp, s19, #14 1706*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1707*9880d681SAndroid Build Coastguard Worker 1708*9880d681SAndroid Build Coastguard Worker fcvtzu x13, s31, #0 1709*9880d681SAndroid Build Coastguard Worker fcvtzu x19, s20, #65 1710*9880d681SAndroid Build Coastguard Worker fcvtzu sp, s19, #14 1711*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [1, 64] 1712*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fcvtzu x13, s31, #0 1713*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1714*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [1, 64] 1715*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fcvtzu x19, s20, #65 1716*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1717*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1718*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fcvtzu sp, s19, #14 1719*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1720*9880d681SAndroid Build Coastguard Worker 1721*9880d681SAndroid Build Coastguard Worker scvtf w13, s31, #0 1722*9880d681SAndroid Build Coastguard Worker scvtf w19, s20, #33 1723*9880d681SAndroid Build Coastguard Worker scvtf wsp, s19, #14 1724*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1725*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: scvtf w13, s31, #0 1726*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1727*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1728*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: scvtf w19, s20, #33 1729*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1730*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1731*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: scvtf wsp, s19, #14 1732*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1733*9880d681SAndroid Build Coastguard Worker 1734*9880d681SAndroid Build Coastguard Worker scvtf x13, s31, #0 1735*9880d681SAndroid Build Coastguard Worker scvtf x19, s20, #65 1736*9880d681SAndroid Build Coastguard Worker scvtf sp, s19, #14 1737*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1738*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: scvtf x13, s31, #0 1739*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1740*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1741*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: scvtf x19, s20, #65 1742*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1743*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1744*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: scvtf sp, s19, #14 1745*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1746*9880d681SAndroid Build Coastguard Worker 1747*9880d681SAndroid Build Coastguard Worker ucvtf w13, s31, #0 1748*9880d681SAndroid Build Coastguard Worker ucvtf w19, s20, #33 1749*9880d681SAndroid Build Coastguard Worker ucvtf wsp, s19, #14 1750*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1751*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ucvtf w13, s31, #0 1752*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1753*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1754*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ucvtf w19, s20, #33 1755*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1756*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1757*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ucvtf wsp, s19, #14 1758*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1759*9880d681SAndroid Build Coastguard Worker 1760*9880d681SAndroid Build Coastguard Worker ucvtf x13, s31, #0 1761*9880d681SAndroid Build Coastguard Worker ucvtf x19, s20, #65 1762*9880d681SAndroid Build Coastguard Worker ucvtf sp, s19, #14 1763*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1764*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ucvtf x13, s31, #0 1765*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1766*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1767*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ucvtf x19, s20, #65 1768*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1769*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1770*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ucvtf sp, s19, #14 1771*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1772*9880d681SAndroid Build Coastguard Worker 1773*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1774*9880d681SAndroid Build Coastguard Worker// Floating-point immediate 1775*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1776*9880d681SAndroid Build Coastguard Worker ;; Exponent too large 1777*9880d681SAndroid Build Coastguard Worker fmov d3, #0.0625 1778*9880d681SAndroid Build Coastguard Worker fmov s2, #32.0 1779*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected compatible register or floating-point constant 1780*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fmov d3, #0.0625 1781*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1782*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected compatible register or floating-point constant 1783*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fmov s2, #32.0 1784*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1785*9880d681SAndroid Build Coastguard Worker 1786*9880d681SAndroid Build Coastguard Worker ;; Fraction too precise 1787*9880d681SAndroid Build Coastguard Worker fmov s9, #1.03125 1788*9880d681SAndroid Build Coastguard Worker fmov s28, #1.96875 1789*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected compatible register or floating-point constant 1790*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fmov s9, #1.03125 1791*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1792*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected compatible register or floating-point constant 1793*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fmov s28, #1.96875 1794*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1795*9880d681SAndroid Build Coastguard Worker 1796*9880d681SAndroid Build Coastguard Worker ;; No particular reason, but a striking omission 1797*9880d681SAndroid Build Coastguard Worker fmov d0, #0.0 1798*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64: error: expected compatible register or floating-point constant 1799*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: fmov d0, #0.0 1800*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: ^ 1801*9880d681SAndroid Build Coastguard Worker 1802*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1803*9880d681SAndroid Build Coastguard Worker// Floating-point <-> integer conversion 1804*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1805*9880d681SAndroid Build Coastguard Worker 1806*9880d681SAndroid Build Coastguard Worker fmov x3, v0.d[0] 1807*9880d681SAndroid Build Coastguard Worker fmov v29.1d[1], x2 1808*9880d681SAndroid Build Coastguard Worker fmov x7, v0.d[2] 1809*9880d681SAndroid Build Coastguard Worker fcvtns sp, s5 1810*9880d681SAndroid Build Coastguard Worker scvtf s6, wsp 1811*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected lane specifier '[1]' 1812*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fmov x3, v0.d[0] 1813*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1814*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: error: lane number incompatible with layout 1815*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-ARM64-NEXT: error: invalid operand for instruction 1816*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fmov v29.1d[1], x2 1817*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1818*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: error: lane number incompatible with layout 1819*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-ARM64-NEXT: error: expected lane specifier '[1]' 1820*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fmov x7, v0.d[2] 1821*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1822*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1823*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: fcvtns sp, s5 1824*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1825*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1826*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: scvtf s6, wsp 1827*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1828*9880d681SAndroid Build Coastguard Worker 1829*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1830*9880d681SAndroid Build Coastguard Worker// Load-register (literal) 1831*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1832*9880d681SAndroid Build Coastguard Worker 1833*9880d681SAndroid Build Coastguard Worker ldr sp, some_label 1834*9880d681SAndroid Build Coastguard Worker ldrsw w3, somewhere 1835*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1836*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr sp, some_label 1837*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1838*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 1839*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsw w3, somewhere 1840*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1841*9880d681SAndroid Build Coastguard Worker 1842*9880d681SAndroid Build Coastguard Worker ldrsw x2, #1048576 1843*9880d681SAndroid Build Coastguard Worker ldr q0, #-1048580 1844*9880d681SAndroid Build Coastguard Worker ldr x0, #2 1845*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected label or encodable integer pc offset 1846*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsw x2, #1048576 1847*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1848*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset 1849*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr q0, #-1048580 1850*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1851*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset 1852*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr x0, #2 1853*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1854*9880d681SAndroid Build Coastguard Worker 1855*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1856*9880d681SAndroid Build Coastguard Worker// Load/store exclusive 1857*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1858*9880d681SAndroid Build Coastguard Worker 1859*9880d681SAndroid Build Coastguard Worker stxrb w2, w3, [x4, #20] 1860*9880d681SAndroid Build Coastguard Worker stlxrh w10, w11, [w2] 1861*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64: error: expected '#0' 1862*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-ARM64: error: index must be absent or #0 1863*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stxrb w2, w3, [x4, #20] 1864*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1865*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1866*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stlxrh w10, w11, [w2] 1867*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1868*9880d681SAndroid Build Coastguard Worker 1869*9880d681SAndroid Build Coastguard Worker stlxr x20, w21, [sp] 1870*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1871*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stlxr x20, w21, [sp] 1872*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1873*9880d681SAndroid Build Coastguard Worker 1874*9880d681SAndroid Build Coastguard Worker ldxr sp, [sp] 1875*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1876*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldxr sp, [sp] 1877*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1878*9880d681SAndroid Build Coastguard Worker 1879*9880d681SAndroid Build Coastguard Worker stxp x1, x2, x3, [x4] 1880*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1881*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stxp x1, x2, x3, [x4] 1882*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1883*9880d681SAndroid Build Coastguard Worker 1884*9880d681SAndroid Build Coastguard Worker stlxp w5, x1, w4, [x5] 1885*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1886*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stlxp w5, x1, w4, [x5] 1887*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1888*9880d681SAndroid Build Coastguard Worker 1889*9880d681SAndroid Build Coastguard Worker stlxp w17, w6, x7, [x22] 1890*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1891*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stlxp w17, w6, x7, [x22] 1892*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1893*9880d681SAndroid Build Coastguard Worker 1894*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1895*9880d681SAndroid Build Coastguard Worker// Load/store (unscaled immediate) 1896*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1897*9880d681SAndroid Build Coastguard Worker 1898*9880d681SAndroid Build Coastguard Worker ldurb w2, [sp, #256] 1899*9880d681SAndroid Build Coastguard Worker sturh w17, [x1, #256] 1900*9880d681SAndroid Build Coastguard Worker ldursw x20, [x1, #256] 1901*9880d681SAndroid Build Coastguard Worker ldur x12, [sp, #256] 1902*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected|index must be an}} integer in range [-256, 255] 1903*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldurb w2, [sp, #256] 1904*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1905*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 1906*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sturh w17, [x1, #256] 1907*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1908*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 1909*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldursw x20, [x1, #256] 1910*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1911*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 1912*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldur x12, [sp, #256] 1913*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1914*9880d681SAndroid Build Coastguard Worker 1915*9880d681SAndroid Build Coastguard Worker stur h2, [x2, #-257] 1916*9880d681SAndroid Build Coastguard Worker stur b2, [x2, #-257] 1917*9880d681SAndroid Build Coastguard Worker ldursb x9, [sp, #-257] 1918*9880d681SAndroid Build Coastguard Worker ldur w2, [x30, #-257] 1919*9880d681SAndroid Build Coastguard Worker stur q9, [x20, #-257] 1920*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected|index must be an}} integer in range [-256, 255] 1921*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stur h2, [x2, #-257] 1922*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1923*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 1924*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stur b2, [x2, #-257] 1925*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1926*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 1927*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldursb x9, [sp, #-257] 1928*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1929*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 1930*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldur w2, [x30, #-257] 1931*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1932*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 1933*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stur q9, [x20, #-257] 1934*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1935*9880d681SAndroid Build Coastguard Worker 1936*9880d681SAndroid Build Coastguard Worker prfum pstl3strm, [xzr] 1937*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 1938*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: prfum pstl3strm, [xzr] 1939*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1940*9880d681SAndroid Build Coastguard Worker 1941*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1942*9880d681SAndroid Build Coastguard Worker// Load-store register (immediate post-indexed) 1943*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 1944*9880d681SAndroid Build Coastguard Worker ldr x3, [x4, #25], #0 1945*9880d681SAndroid Build Coastguard Worker ldr x4, [x9, #0], #4 1946*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64: error: {{expected symbolic reference or integer|index must be a multiple of 8}} in range [0, 32760] 1947*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-ARM64: error: invalid operand for instruction 1948*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr x3, [x4, #25], #0 1949*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1950*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: error: invalid operand for instruction 1951*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: ldr x4, [x9, #0], #4 1952*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: ^ 1953*9880d681SAndroid Build Coastguard Worker 1954*9880d681SAndroid Build Coastguard Worker strb w1, [x19], #256 1955*9880d681SAndroid Build Coastguard Worker strb w9, [sp], #-257 1956*9880d681SAndroid Build Coastguard Worker strh w1, [x19], #256 1957*9880d681SAndroid Build Coastguard Worker strh w9, [sp], #-257 1958*9880d681SAndroid Build Coastguard Worker str w1, [x19], #256 1959*9880d681SAndroid Build Coastguard Worker str w9, [sp], #-257 1960*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected|index must be an}} integer in range [-256, 255] 1961*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: strb w1, [x19], #256 1962*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1963*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 1964*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: strb w9, [sp], #-257 1965*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1966*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 1967*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: strh w1, [x19], #256 1968*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1969*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 1970*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: strh w9, [sp], #-257 1971*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1972*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 1973*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str w1, [x19], #256 1974*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1975*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 1976*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str w9, [sp], #-257 1977*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1978*9880d681SAndroid Build Coastguard Worker 1979*9880d681SAndroid Build Coastguard Worker ldrb w1, [x19], #256 1980*9880d681SAndroid Build Coastguard Worker ldrb w9, [sp], #-257 1981*9880d681SAndroid Build Coastguard Worker ldrh w1, [x19], #256 1982*9880d681SAndroid Build Coastguard Worker ldrh w9, [sp], #-257 1983*9880d681SAndroid Build Coastguard Worker ldr w1, [x19], #256 1984*9880d681SAndroid Build Coastguard Worker ldr w9, [sp], #-257 1985*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected|index must be an}} integer in range [-256, 255] 1986*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrb w1, [x19], #256 1987*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1988*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 1989*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrb w9, [sp], #-257 1990*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1991*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 1992*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrh w1, [x19], #256 1993*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1994*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 1995*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrh w9, [sp], #-257 1996*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 1997*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 1998*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr w1, [x19], #256 1999*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2000*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2001*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr w9, [sp], #-257 2002*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2003*9880d681SAndroid Build Coastguard Worker 2004*9880d681SAndroid Build Coastguard Worker ldrsb x2, [x3], #256 2005*9880d681SAndroid Build Coastguard Worker ldrsb x22, [x13], #-257 2006*9880d681SAndroid Build Coastguard Worker ldrsh x2, [x3], #256 2007*9880d681SAndroid Build Coastguard Worker ldrsh x22, [x13], #-257 2008*9880d681SAndroid Build Coastguard Worker ldrsw x2, [x3], #256 2009*9880d681SAndroid Build Coastguard Worker ldrsw x22, [x13], #-257 2010*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected|index must be an}} integer in range [-256, 255] 2011*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsb x2, [x3], #256 2012*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2013*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2014*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsb x22, [x13], #-257 2015*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2016*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2017*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsh x2, [x3], #256 2018*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2019*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2020*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsh x22, [x13], #-257 2021*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2022*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2023*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsw x2, [x3], #256 2024*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2025*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2026*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsw x22, [x13], #-257 2027*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2028*9880d681SAndroid Build Coastguard Worker 2029*9880d681SAndroid Build Coastguard Worker ldrsb w2, [x3], #256 2030*9880d681SAndroid Build Coastguard Worker ldrsb w22, [x13], #-257 2031*9880d681SAndroid Build Coastguard Worker ldrsh w2, [x3], #256 2032*9880d681SAndroid Build Coastguard Worker ldrsh w22, [x13], #-257 2033*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected|index must be an}} integer in range [-256, 255] 2034*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsb w2, [x3], #256 2035*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2036*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2037*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsb w22, [x13], #-257 2038*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2039*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2040*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsh w2, [x3], #256 2041*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2042*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2043*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsh w22, [x13], #-257 2044*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2045*9880d681SAndroid Build Coastguard Worker 2046*9880d681SAndroid Build Coastguard Worker str b3, [x3], #256 2047*9880d681SAndroid Build Coastguard Worker str b3, [x13], #-257 2048*9880d681SAndroid Build Coastguard Worker str h3, [x3], #256 2049*9880d681SAndroid Build Coastguard Worker str h3, [x13], #-257 2050*9880d681SAndroid Build Coastguard Worker str s3, [x3], #256 2051*9880d681SAndroid Build Coastguard Worker str s3, [x13], #-257 2052*9880d681SAndroid Build Coastguard Worker str d3, [x3], #256 2053*9880d681SAndroid Build Coastguard Worker str d3, [x13], #-257 2054*9880d681SAndroid Build Coastguard Worker str q3, [x3], #256 2055*9880d681SAndroid Build Coastguard Worker str q3, [x13], #-257 2056*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected|index must be an}} integer in range [-256, 255] 2057*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str b3, [x3], #256 2058*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2059*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2060*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str b3, [x13], #-257 2061*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2062*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2063*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str h3, [x3], #256 2064*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2065*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2066*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str h3, [x13], #-257 2067*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2068*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2069*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str s3, [x3], #256 2070*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2071*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2072*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str s3, [x13], #-257 2073*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2074*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2075*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str d3, [x3], #256 2076*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2077*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2078*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str d3, [x13], #-257 2079*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2080*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2081*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str q3, [x3], #256 2082*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2083*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2084*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str q3, [x13], #-257 2085*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2086*9880d681SAndroid Build Coastguard Worker 2087*9880d681SAndroid Build Coastguard Worker ldr b3, [x3], #256 2088*9880d681SAndroid Build Coastguard Worker ldr b3, [x13], #-257 2089*9880d681SAndroid Build Coastguard Worker ldr h3, [x3], #256 2090*9880d681SAndroid Build Coastguard Worker ldr h3, [x13], #-257 2091*9880d681SAndroid Build Coastguard Worker ldr s3, [x3], #256 2092*9880d681SAndroid Build Coastguard Worker ldr s3, [x13], #-257 2093*9880d681SAndroid Build Coastguard Worker ldr d3, [x3], #256 2094*9880d681SAndroid Build Coastguard Worker ldr d3, [x13], #-257 2095*9880d681SAndroid Build Coastguard Worker ldr q3, [x3], #256 2096*9880d681SAndroid Build Coastguard Worker ldr q3, [x13], #-257 2097*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected|index must be an}} integer in range [-256, 255] 2098*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr b3, [x3], #256 2099*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2100*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2101*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr b3, [x13], #-257 2102*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2103*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2104*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr h3, [x3], #256 2105*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2106*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2107*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr h3, [x13], #-257 2108*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2109*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2110*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr s3, [x3], #256 2111*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2112*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2113*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr s3, [x13], #-257 2114*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2115*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2116*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr d3, [x3], #256 2117*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2118*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2119*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr d3, [x13], #-257 2120*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2121*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2122*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr q3, [x3], #256 2123*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2124*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2125*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr q3, [x13], #-257 2126*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2127*9880d681SAndroid Build Coastguard Worker 2128*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 2129*9880d681SAndroid Build Coastguard Worker// Load-store register (immediate pre-indexed) 2130*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 2131*9880d681SAndroid Build Coastguard Worker 2132*9880d681SAndroid Build Coastguard Worker ldr x3, [x4]! 2133*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: 2134*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr x3, [x4]! 2135*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2136*9880d681SAndroid Build Coastguard Worker 2137*9880d681SAndroid Build Coastguard Worker strb w1, [x19, #256]! 2138*9880d681SAndroid Build Coastguard Worker strb w9, [sp, #-257]! 2139*9880d681SAndroid Build Coastguard Worker strh w1, [x19, #256]! 2140*9880d681SAndroid Build Coastguard Worker strh w9, [sp, #-257]! 2141*9880d681SAndroid Build Coastguard Worker str w1, [x19, #256]! 2142*9880d681SAndroid Build Coastguard Worker str w9, [sp, #-257]! 2143*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2144*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: strb w1, [x19, #256]! 2145*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2146*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2147*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: strb w9, [sp, #-257]! 2148*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2149*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2150*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: strh w1, [x19, #256]! 2151*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2152*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2153*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: strh w9, [sp, #-257]! 2154*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2155*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2156*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str w1, [x19, #256]! 2157*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2158*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2159*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str w9, [sp, #-257]! 2160*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2161*9880d681SAndroid Build Coastguard Worker 2162*9880d681SAndroid Build Coastguard Worker ldrb w1, [x19, #256]! 2163*9880d681SAndroid Build Coastguard Worker ldrb w9, [sp, #-257]! 2164*9880d681SAndroid Build Coastguard Worker ldrh w1, [x19, #256]! 2165*9880d681SAndroid Build Coastguard Worker ldrh w9, [sp, #-257]! 2166*9880d681SAndroid Build Coastguard Worker ldr w1, [x19, #256]! 2167*9880d681SAndroid Build Coastguard Worker ldr w9, [sp, #-257]! 2168*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2169*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrb w1, [x19, #256]! 2170*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2171*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2172*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrb w9, [sp, #-257]! 2173*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2174*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2175*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrh w1, [x19, #256]! 2176*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2177*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2178*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrh w9, [sp, #-257]! 2179*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2180*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2181*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr w1, [x19, #256]! 2182*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2183*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2184*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr w9, [sp, #-257]! 2185*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2186*9880d681SAndroid Build Coastguard Worker 2187*9880d681SAndroid Build Coastguard Worker ldrsb x2, [x3, #256]! 2188*9880d681SAndroid Build Coastguard Worker ldrsb x22, [x13, #-257]! 2189*9880d681SAndroid Build Coastguard Worker ldrsh x2, [x3, #256]! 2190*9880d681SAndroid Build Coastguard Worker ldrsh x22, [x13, #-257]! 2191*9880d681SAndroid Build Coastguard Worker ldrsw x2, [x3, #256]! 2192*9880d681SAndroid Build Coastguard Worker ldrsw x22, [x13, #-257]! 2193*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2194*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsb x2, [x3, #256]! 2195*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2196*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2197*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsb x22, [x13, #-257]! 2198*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2199*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2200*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsh x2, [x3, #256]! 2201*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2202*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2203*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsh x22, [x13, #-257]! 2204*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2205*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2206*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsw x2, [x3, #256]! 2207*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2208*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2209*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsw x22, [x13, #-257]! 2210*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2211*9880d681SAndroid Build Coastguard Worker 2212*9880d681SAndroid Build Coastguard Worker ldrsb w2, [x3, #256]! 2213*9880d681SAndroid Build Coastguard Worker ldrsb w22, [x13, #-257]! 2214*9880d681SAndroid Build Coastguard Worker ldrsh w2, [x3, #256]! 2215*9880d681SAndroid Build Coastguard Worker ldrsh w22, [x13, #-257]! 2216*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2217*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsb w2, [x3, #256]! 2218*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2219*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2220*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsb w22, [x13, #-257]! 2221*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2222*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2223*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsh w2, [x3, #256]! 2224*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2225*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2226*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsh w22, [x13, #-257]! 2227*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2228*9880d681SAndroid Build Coastguard Worker 2229*9880d681SAndroid Build Coastguard Worker str b3, [x3, #256]! 2230*9880d681SAndroid Build Coastguard Worker str b3, [x13, #-257]! 2231*9880d681SAndroid Build Coastguard Worker str h3, [x3, #256]! 2232*9880d681SAndroid Build Coastguard Worker str h3, [x13, #-257]! 2233*9880d681SAndroid Build Coastguard Worker str s3, [x3, #256]! 2234*9880d681SAndroid Build Coastguard Worker str s3, [x13, #-257]! 2235*9880d681SAndroid Build Coastguard Worker str d3, [x3, #256]! 2236*9880d681SAndroid Build Coastguard Worker str d3, [x13, #-257]! 2237*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2238*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str b3, [x3, #256]! 2239*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2240*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2241*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str b3, [x13, #-257]! 2242*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2243*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2244*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str h3, [x3, #256]! 2245*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2246*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2247*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str h3, [x13, #-257]! 2248*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2249*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2250*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str s3, [x3, #256]! 2251*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2252*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2253*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str s3, [x13, #-257]! 2254*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2255*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2256*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str d3, [x3, #256]! 2257*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2258*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2259*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str d3, [x13, #-257]! 2260*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2261*9880d681SAndroid Build Coastguard Worker 2262*9880d681SAndroid Build Coastguard Worker ldr b3, [x3, #256]! 2263*9880d681SAndroid Build Coastguard Worker ldr b3, [x13, #-257]! 2264*9880d681SAndroid Build Coastguard Worker ldr h3, [x3, #256]! 2265*9880d681SAndroid Build Coastguard Worker ldr h3, [x13, #-257]! 2266*9880d681SAndroid Build Coastguard Worker ldr s3, [x3, #256]! 2267*9880d681SAndroid Build Coastguard Worker ldr s3, [x13, #-257]! 2268*9880d681SAndroid Build Coastguard Worker ldr d3, [x3, #256]! 2269*9880d681SAndroid Build Coastguard Worker ldr d3, [x13, #-257]! 2270*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2271*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr b3, [x3, #256]! 2272*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2273*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2274*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr b3, [x13, #-257]! 2275*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2276*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2277*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr h3, [x3, #256]! 2278*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2279*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2280*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr h3, [x13, #-257]! 2281*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2282*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2283*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr s3, [x3, #256]! 2284*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2285*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2286*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr s3, [x13, #-257]! 2287*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2288*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2289*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr d3, [x3, #256]! 2290*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2291*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2292*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr d3, [x13, #-257]! 2293*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2294*9880d681SAndroid Build Coastguard Worker 2295*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 2296*9880d681SAndroid Build Coastguard Worker// Load/store (unprivileged) 2297*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 2298*9880d681SAndroid Build Coastguard Worker 2299*9880d681SAndroid Build Coastguard Worker ldtrb w2, [sp, #256] 2300*9880d681SAndroid Build Coastguard Worker sttrh w17, [x1, #256] 2301*9880d681SAndroid Build Coastguard Worker ldtrsw x20, [x1, #256] 2302*9880d681SAndroid Build Coastguard Worker ldtr x12, [sp, #256] 2303*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected|index must be an}} integer in range [-256, 255] 2304*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldtrb w2, [sp, #256] 2305*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2306*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2307*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sttrh w17, [x1, #256] 2308*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2309*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2310*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldtrsw x20, [x1, #256] 2311*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2312*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2313*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldtr x12, [sp, #256] 2314*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2315*9880d681SAndroid Build Coastguard Worker 2316*9880d681SAndroid Build Coastguard Worker sttr h2, [x2, #-257] 2317*9880d681SAndroid Build Coastguard Worker sttr b2, [x2, #-257] 2318*9880d681SAndroid Build Coastguard Worker ldtrsb x9, [sp, #-257] 2319*9880d681SAndroid Build Coastguard Worker ldtr w2, [x30, #-257] 2320*9880d681SAndroid Build Coastguard Worker sttr q9, [x20, #-257] 2321*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2322*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sttr h2, [x2, #-257] 2323*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2324*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2325*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sttr b2, [x2, #-257] 2326*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2327*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2328*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldtrsb x9, [sp, #-257] 2329*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2330*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2331*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldtr w2, [x30, #-257] 2332*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2333*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2334*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sttr q9, [x20, #-257] 2335*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2336*9880d681SAndroid Build Coastguard Worker 2337*9880d681SAndroid Build Coastguard Worker 2338*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 2339*9880d681SAndroid Build Coastguard Worker// Load/store (unsigned immediate) 2340*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 2341*9880d681SAndroid Build Coastguard Worker 2342*9880d681SAndroid Build Coastguard Worker//// Out of range immediates 2343*9880d681SAndroid Build Coastguard Worker ldr q0, [x11, #65536] 2344*9880d681SAndroid Build Coastguard Worker ldr x0, [sp, #32768] 2345*9880d681SAndroid Build Coastguard Worker ldr w0, [x4, #16384] 2346*9880d681SAndroid Build Coastguard Worker ldrh w2, [x21, #8192] 2347*9880d681SAndroid Build Coastguard Worker ldrb w3, [x12, #4096] 2348*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected|index must be an}} integer in range [-256, 255] 2349*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr q0, [x11, #65536] 2350*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2351*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2352*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr x0, [sp, #32768] 2353*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2354*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2355*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr w0, [x4, #16384] 2356*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2357*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2358*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrh w2, [x21, #8192] 2359*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2360*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2361*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrb w3, [x12, #4096] 2362*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2363*9880d681SAndroid Build Coastguard Worker 2364*9880d681SAndroid Build Coastguard Worker//// Misaligned addresses 2365*9880d681SAndroid Build Coastguard Worker ldr w0, [x0, #2] 2366*9880d681SAndroid Build Coastguard Worker ldrsh w2, [x0, #123] 2367*9880d681SAndroid Build Coastguard Worker str q0, [x0, #8] 2368*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64: error: too few operands for instruction 2369*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: ldr w0, [x0, #2] 2370*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: ^ 2371*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: error: too few operands for instruction 2372*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: ldrsh w2, [x0, #123] 2373*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: ^ 2374*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: error: too few operands for instruction 2375*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: str q0, [x0, #8] 2376*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: ^ 2377*9880d681SAndroid Build Coastguard Worker 2378*9880d681SAndroid Build Coastguard Worker//// 32-bit addresses 2379*9880d681SAndroid Build Coastguard Worker ldr w0, [w20] 2380*9880d681SAndroid Build Coastguard Worker ldrsh x3, [wsp] 2381*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2382*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr w0, [w20] 2383*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2384*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2385*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsh x3, [wsp] 2386*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2387*9880d681SAndroid Build Coastguard Worker 2388*9880d681SAndroid Build Coastguard Worker//// Store things 2389*9880d681SAndroid Build Coastguard Worker strb w0, [wsp] 2390*9880d681SAndroid Build Coastguard Worker strh w31, [x23, #1] 2391*9880d681SAndroid Build Coastguard Worker str x5, [x22, #12] 2392*9880d681SAndroid Build Coastguard Worker str w7, [x12, #16384] 2393*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2394*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: strb w0, [wsp] 2395*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2396*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64: error: invalid operand for instruction 2397*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: strh w31, [x23, #1] 2398*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: ^ 2399*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: error: too few operands for instruction 2400*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: str x5, [x22, #12] 2401*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: ^ 2402*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|index must be an}} integer in range [-256, 255] 2403*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str w7, [x12, #16384] 2404*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2405*9880d681SAndroid Build Coastguard Worker 2406*9880d681SAndroid Build Coastguard Worker//// Bad PRFMs 2407*9880d681SAndroid Build Coastguard Worker prfm #-1, [sp] 2408*9880d681SAndroid Build Coastguard Worker prfm #32, [sp, #8] 2409*9880d681SAndroid Build Coastguard Worker prfm pldl1strm, [w3, #8] 2410*9880d681SAndroid Build Coastguard Worker prfm wibble, [sp] 2411*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64: error: Invalid immediate for instruction 2412*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-ARM64: error: prefetch operand out of range, [0,31] expected 2413*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: prfm #-1, [sp] 2414*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2415*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: error: Invalid immediate for instruction 2416*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-ARM64-NEXT: error: prefetch operand out of range, [0,31] expected 2417*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: prfm #32, [sp, #8] 2418*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2419*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2420*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: prfm pldl1strm, [w3, #8] 2421*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2422*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: error: operand specifier not recognised 2423*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-ARM64-NEXT: error: pre-fetch hint expected 2424*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: prfm wibble, [sp] 2425*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2426*9880d681SAndroid Build Coastguard Worker 2427*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 2428*9880d681SAndroid Build Coastguard Worker// Load/store register (register offset) 2429*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 2430*9880d681SAndroid Build Coastguard Worker 2431*9880d681SAndroid Build Coastguard Worker ldr w3, [xzr, x3] 2432*9880d681SAndroid Build Coastguard Worker ldr w4, [x0, x4, lsl] 2433*9880d681SAndroid Build Coastguard Worker ldr w9, [x5, x5, uxtw] 2434*9880d681SAndroid Build Coastguard Worker ldr w10, [x6, x9, sxtw #2] 2435*9880d681SAndroid Build Coastguard Worker ldr w11, [x7, w2, lsl #2] 2436*9880d681SAndroid Build Coastguard Worker ldr w12, [x8, w1, sxtx] 2437*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2438*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr w3, [xzr, x3] 2439*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2440*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected #imm after shift specifier 2441*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr w4, [x0, x4, lsl] 2442*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2443*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'lsl' or 'sxtx' with optional shift of #0 or #2 2444*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr w9, [x5, x5, uxtw] 2445*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2446*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'lsl' or 'sxtx' with optional shift of #0 or #2 2447*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr w10, [x6, x9, sxtw #2] 2448*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2449*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'uxtw' or 'sxtw' with optional shift of #0 or #2 2450*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr w11, [x7, w2, lsl #2] 2451*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2452*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'uxtw' or 'sxtw' with optional shift of #0 or #2 2453*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr w12, [x8, w1, sxtx] 2454*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2455*9880d681SAndroid Build Coastguard Worker 2456*9880d681SAndroid Build Coastguard Worker ldrsb w9, [x4, x2, lsl #-1] 2457*9880d681SAndroid Build Coastguard Worker strb w9, [x4, x2, lsl #1] 2458*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 2459*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsb w9, [x4, x2, lsl #-1] 2460*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2461*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'lsl' or 'sxtx' with optional shift of #0 2462*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: strb w9, [x4, x2, lsl #1] 2463*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2464*9880d681SAndroid Build Coastguard Worker 2465*9880d681SAndroid Build Coastguard Worker ldrsh w9, [x4, x2, lsl #-1] 2466*9880d681SAndroid Build Coastguard Worker ldr h13, [x4, w2, uxtw #2] 2467*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 2468*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsh w9, [x4, x2, lsl #-1] 2469*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2470*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'uxtw' or 'sxtw' with optional shift of #0 or #1 2471*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr h13, [x4, w2, uxtw #2] 2472*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2473*9880d681SAndroid Build Coastguard Worker 2474*9880d681SAndroid Build Coastguard Worker str w9, [x5, w9, sxtw #-1] 2475*9880d681SAndroid Build Coastguard Worker str s3, [sp, w9, uxtw #1] 2476*9880d681SAndroid Build Coastguard Worker ldrsw x9, [x15, x4, sxtx #3] 2477*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 2478*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str w9, [x5, w9, sxtw #-1] 2479*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2480*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'uxtw' or 'sxtw' with optional shift of #0 or #2 2481*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str s3, [sp, w9, uxtw #1] 2482*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2483*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'lsl' or 'sxtx' with optional shift of #0 or #2 2484*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldrsw x9, [x15, x4, sxtx #3] 2485*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2486*9880d681SAndroid Build Coastguard Worker 2487*9880d681SAndroid Build Coastguard Worker str xzr, [x5, x9, sxtx #-1] 2488*9880d681SAndroid Build Coastguard Worker prfm pldl3keep, [sp, x20, lsl #2] 2489*9880d681SAndroid Build Coastguard Worker ldr d3, [x20, wzr, uxtw #4] 2490*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 2491*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str xzr, [x5, x9, sxtx #-1] 2492*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2493*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'lsl' or 'sxtx' with optional shift of #0 or #3 2494*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: prfm pldl3keep, [sp, x20, lsl #2] 2495*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2496*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'uxtw' or 'sxtw' with optional shift of #0 or #3 2497*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr d3, [x20, wzr, uxtw #4] 2498*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2499*9880d681SAndroid Build Coastguard Worker 2500*9880d681SAndroid Build Coastguard Worker ldr q5, [sp, x2, lsl #-1] 2501*9880d681SAndroid Build Coastguard Worker ldr q10, [x20, w4, uxtw #2] 2502*9880d681SAndroid Build Coastguard Worker str q21, [x20, w4, uxtw #5] 2503*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected integer shift amount 2504*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr q5, [sp, x2, lsl #-1] 2505*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2506*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: error: expected 'lsl' or 'sxtw' with optional shift of #0 or #4 2507*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-ARM64-NEXT: error: expected 'uxtw' or 'sxtw' with optional shift of #0 or #4 2508*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldr q10, [x20, w4, uxtw #2] 2509*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2510*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: error: expected 'lsl' or 'sxtw' with optional shift of #0 or #4 2511*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-ARM64-NEXT: error: expected 'uxtw' or 'sxtw' with optional shift of #0 or #4 2512*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: str q21, [x20, w4, uxtw #5] 2513*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2514*9880d681SAndroid Build Coastguard Worker 2515*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 2516*9880d681SAndroid Build Coastguard Worker// Load/store register pair (offset) 2517*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 2518*9880d681SAndroid Build Coastguard Worker ldp w3, w2, [x4, #1] 2519*9880d681SAndroid Build Coastguard Worker stp w1, w2, [x3, #253] 2520*9880d681SAndroid Build Coastguard Worker stp w9, w10, [x5, #256] 2521*9880d681SAndroid Build Coastguard Worker ldp w11, w12, [x9, #-260] 2522*9880d681SAndroid Build Coastguard Worker stp wsp, w9, [sp] 2523*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2524*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp w3, w2, [x4, #1] 2525*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2526*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2527*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp w1, w2, [x3, #253] 2528*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2529*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2530*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp w9, w10, [x5, #256] 2531*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2532*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2533*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp w11, w12, [x9, #-260] 2534*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2535*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2536*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp wsp, w9, [sp] 2537*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2538*9880d681SAndroid Build Coastguard Worker 2539*9880d681SAndroid Build Coastguard Worker ldpsw x9, x2, [sp, #2] 2540*9880d681SAndroid Build Coastguard Worker ldpsw x1, x2, [x10, #256] 2541*9880d681SAndroid Build Coastguard Worker ldpsw x3, x4, [x11, #-260] 2542*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2543*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldpsw x9, x2, [sp, #2] 2544*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2545*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2546*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldpsw x1, x2, [x10, #256] 2547*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2548*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2549*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldpsw x3, x4, [x11, #-260] 2550*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2551*9880d681SAndroid Build Coastguard Worker 2552*9880d681SAndroid Build Coastguard Worker ldp x2, x5, [sp, #4] 2553*9880d681SAndroid Build Coastguard Worker ldp x5, x6, [x9, #512] 2554*9880d681SAndroid Build Coastguard Worker stp x7, x8, [x10, #-520] 2555*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504] 2556*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp x2, x5, [sp, #4] 2557*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2558*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504] 2559*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp x5, x6, [x9, #512] 2560*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2561*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504] 2562*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp x7, x8, [x10, #-520] 2563*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2564*9880d681SAndroid Build Coastguard Worker 2565*9880d681SAndroid Build Coastguard Worker ldp sp, x3, [x10] 2566*9880d681SAndroid Build Coastguard Worker stp x3, sp, [x9] 2567*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2568*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp sp, x3, [x10] 2569*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2570*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2571*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp x3, sp, [x9] 2572*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2573*9880d681SAndroid Build Coastguard Worker 2574*9880d681SAndroid Build Coastguard Worker stp s3, s5, [sp, #-2] 2575*9880d681SAndroid Build Coastguard Worker ldp s6, s26, [x4, #-260] 2576*9880d681SAndroid Build Coastguard Worker stp s13, s19, [x5, #256] 2577*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2578*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp s3, s5, [sp, #-2] 2579*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2580*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2581*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp s6, s26, [x4, #-260] 2582*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2583*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2584*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp s13, s19, [x5, #256] 2585*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2586*9880d681SAndroid Build Coastguard Worker 2587*9880d681SAndroid Build Coastguard Worker ldp d3, d4, [xzr] 2588*9880d681SAndroid Build Coastguard Worker ldp d5, d6, [x0, #512] 2589*9880d681SAndroid Build Coastguard Worker stp d7, d8, [x0, #-520] 2590*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2591*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp d3, d4, [xzr] 2592*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2593*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504] 2594*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp d5, d6, [x0, #512] 2595*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2596*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504] 2597*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp d7, d8, [x0, #-520] 2598*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2599*9880d681SAndroid Build Coastguard Worker 2600*9880d681SAndroid Build Coastguard Worker ldp d3, q2, [sp] 2601*9880d681SAndroid Build Coastguard Worker ldp q3, q5, [sp, #8] 2602*9880d681SAndroid Build Coastguard Worker stp q20, q25, [x5, #1024] 2603*9880d681SAndroid Build Coastguard Worker ldp q30, q15, [x23, #-1040] 2604*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2605*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp d3, q2, [sp] 2606*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2607*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 16 in range [-1024, 1008] 2608*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp q3, q5, [sp, #8] 2609*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2610*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 16 in range [-1024, 1008] 2611*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp q20, q25, [x5, #1024] 2612*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2613*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 16 in range [-1024, 1008] 2614*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp q30, q15, [x23, #-1040] 2615*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2616*9880d681SAndroid Build Coastguard Worker 2617*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 2618*9880d681SAndroid Build Coastguard Worker// Load/store register pair (post-indexed) 2619*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 2620*9880d681SAndroid Build Coastguard Worker 2621*9880d681SAndroid Build Coastguard Worker ldp w3, w2, [x4], #1 2622*9880d681SAndroid Build Coastguard Worker stp w1, w2, [x3], #253 2623*9880d681SAndroid Build Coastguard Worker stp w9, w10, [x5], #256 2624*9880d681SAndroid Build Coastguard Worker ldp w11, w12, [x9], #-260 2625*9880d681SAndroid Build Coastguard Worker stp wsp, w9, [sp], #0 2626*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2627*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp w3, w2, [x4], #1 2628*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2629*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2630*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp w1, w2, [x3], #253 2631*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2632*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2633*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp w9, w10, [x5], #256 2634*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2635*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2636*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp w11, w12, [x9], #-260 2637*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2638*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2639*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp wsp, w9, [sp], #0 2640*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2641*9880d681SAndroid Build Coastguard Worker 2642*9880d681SAndroid Build Coastguard Worker ldpsw x9, x2, [sp], #2 2643*9880d681SAndroid Build Coastguard Worker ldpsw x1, x2, [x10], #256 2644*9880d681SAndroid Build Coastguard Worker ldpsw x3, x4, [x11], #-260 2645*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2646*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldpsw x9, x2, [sp], #2 2647*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2648*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2649*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldpsw x1, x2, [x10], #256 2650*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2651*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2652*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldpsw x3, x4, [x11], #-260 2653*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2654*9880d681SAndroid Build Coastguard Worker 2655*9880d681SAndroid Build Coastguard Worker ldp x2, x5, [sp], #4 2656*9880d681SAndroid Build Coastguard Worker ldp x5, x6, [x9], #512 2657*9880d681SAndroid Build Coastguard Worker stp x7, x8, [x10], #-520 2658*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504] 2659*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp x2, x5, [sp], #4 2660*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2661*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504] 2662*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp x5, x6, [x9], #512 2663*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2664*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504] 2665*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp x7, x8, [x10], #-520 2666*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2667*9880d681SAndroid Build Coastguard Worker 2668*9880d681SAndroid Build Coastguard Worker ldp sp, x3, [x10], #0 2669*9880d681SAndroid Build Coastguard Worker stp x3, sp, [x9], #0 2670*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2671*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp sp, x3, [x10], #0 2672*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2673*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2674*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp x3, sp, [x9], #0 2675*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2676*9880d681SAndroid Build Coastguard Worker 2677*9880d681SAndroid Build Coastguard Worker stp s3, s5, [sp], #-2 2678*9880d681SAndroid Build Coastguard Worker ldp s6, s26, [x4], #-260 2679*9880d681SAndroid Build Coastguard Worker stp s13, s19, [x5], #256 2680*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2681*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp s3, s5, [sp], #-2 2682*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2683*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2684*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp s6, s26, [x4], #-260 2685*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2686*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2687*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp s13, s19, [x5], #256 2688*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2689*9880d681SAndroid Build Coastguard Worker 2690*9880d681SAndroid Build Coastguard Worker ldp d3, d4, [xzr], #0 2691*9880d681SAndroid Build Coastguard Worker ldp d5, d6, [x0], #512 2692*9880d681SAndroid Build Coastguard Worker stp d7, d8, [x0], #-520 2693*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2694*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp d3, d4, [xzr], #0 2695*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2696*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504] 2697*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp d5, d6, [x0], #512 2698*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2699*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504] 2700*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp d7, d8, [x0], #-520 2701*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2702*9880d681SAndroid Build Coastguard Worker 2703*9880d681SAndroid Build Coastguard Worker ldp d3, q2, [sp], #0 2704*9880d681SAndroid Build Coastguard Worker ldp q3, q5, [sp], #8 2705*9880d681SAndroid Build Coastguard Worker stp q20, q25, [x5], #1024 2706*9880d681SAndroid Build Coastguard Worker ldp q30, q15, [x23], #-1040 2707*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2708*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp d3, q2, [sp], #0 2709*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2710*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 16 in range [-1024, 1008] 2711*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp q3, q5, [sp], #8 2712*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2713*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 16 in range [-1024, 1008] 2714*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp q20, q25, [x5], #1024 2715*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2716*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 16 in range [-1024, 1008] 2717*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp q30, q15, [x23], #-1040 2718*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2719*9880d681SAndroid Build Coastguard Worker 2720*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 2721*9880d681SAndroid Build Coastguard Worker// Load/store register pair (pre-indexed) 2722*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 2723*9880d681SAndroid Build Coastguard Worker 2724*9880d681SAndroid Build Coastguard Worker ldp w3, w2, [x4, #1]! 2725*9880d681SAndroid Build Coastguard Worker stp w1, w2, [x3, #253]! 2726*9880d681SAndroid Build Coastguard Worker stp w9, w10, [x5, #256]! 2727*9880d681SAndroid Build Coastguard Worker ldp w11, w12, [x9, #-260]! 2728*9880d681SAndroid Build Coastguard Worker stp wsp, w9, [sp, #0]! 2729*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2730*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp w3, w2, [x4, #1]! 2731*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2732*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2733*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp w1, w2, [x3, #253]! 2734*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2735*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2736*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp w9, w10, [x5, #256]! 2737*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2738*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2739*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp w11, w12, [x9, #-260]! 2740*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2741*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2742*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp wsp, w9, [sp, #0]! 2743*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2744*9880d681SAndroid Build Coastguard Worker 2745*9880d681SAndroid Build Coastguard Worker ldpsw x9, x2, [sp, #2]! 2746*9880d681SAndroid Build Coastguard Worker ldpsw x1, x2, [x10, #256]! 2747*9880d681SAndroid Build Coastguard Worker ldpsw x3, x4, [x11, #-260]! 2748*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2749*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldpsw x9, x2, [sp, #2]! 2750*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2751*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2752*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldpsw x1, x2, [x10, #256]! 2753*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2754*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2755*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldpsw x3, x4, [x11, #-260]! 2756*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2757*9880d681SAndroid Build Coastguard Worker 2758*9880d681SAndroid Build Coastguard Worker ldp x2, x5, [sp, #4]! 2759*9880d681SAndroid Build Coastguard Worker ldp x5, x6, [x9, #512]! 2760*9880d681SAndroid Build Coastguard Worker stp x7, x8, [x10, #-520]! 2761*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504] 2762*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp x2, x5, [sp, #4]! 2763*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2764*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504] 2765*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp x5, x6, [x9, #512]! 2766*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2767*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504] 2768*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp x7, x8, [x10, #-520]! 2769*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2770*9880d681SAndroid Build Coastguard Worker 2771*9880d681SAndroid Build Coastguard Worker ldp sp, x3, [x10, #0]! 2772*9880d681SAndroid Build Coastguard Worker stp x3, sp, [x9, #0]! 2773*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2774*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp sp, x3, [x10, #0]! 2775*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2776*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2777*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp x3, sp, [x9, #0]! 2778*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2779*9880d681SAndroid Build Coastguard Worker 2780*9880d681SAndroid Build Coastguard Worker stp s3, s5, [sp, #-2]! 2781*9880d681SAndroid Build Coastguard Worker ldp s6, s26, [x4, #-260]! 2782*9880d681SAndroid Build Coastguard Worker stp s13, s19, [x5, #256]! 2783*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2784*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp s3, s5, [sp, #-2]! 2785*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2786*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2787*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp s6, s26, [x4, #-260]! 2788*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2789*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2790*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp s13, s19, [x5, #256]! 2791*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2792*9880d681SAndroid Build Coastguard Worker 2793*9880d681SAndroid Build Coastguard Worker ldp d3, d4, [xzr, #0]! 2794*9880d681SAndroid Build Coastguard Worker ldp d5, d6, [x0, #512]! 2795*9880d681SAndroid Build Coastguard Worker stp d7, d8, [x0, #-520]! 2796*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2797*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp d3, d4, [xzr, #0]! 2798*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2799*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504] 2800*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp d5, d6, [x0, #512]! 2801*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2802*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504] 2803*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp d7, d8, [x0, #-520]! 2804*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2805*9880d681SAndroid Build Coastguard Worker 2806*9880d681SAndroid Build Coastguard Worker ldp d3, q2, [sp, #0]! 2807*9880d681SAndroid Build Coastguard Worker ldp q3, q5, [sp, #8]! 2808*9880d681SAndroid Build Coastguard Worker stp q20, q25, [x5, #1024]! 2809*9880d681SAndroid Build Coastguard Worker ldp q30, q15, [x23, #-1040]! 2810*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2811*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp d3, q2, [sp, #0]! 2812*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2813*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 16 in range [-1024, 1008] 2814*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp q3, q5, [sp, #8]! 2815*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2816*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 16 in range [-1024, 1008] 2817*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stp q20, q25, [x5, #1024]! 2818*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2819*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 16 in range [-1024, 1008] 2820*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldp q30, q15, [x23, #-1040]! 2821*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2822*9880d681SAndroid Build Coastguard Worker 2823*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 2824*9880d681SAndroid Build Coastguard Worker// Load/store register pair (offset) 2825*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 2826*9880d681SAndroid Build Coastguard Worker ldnp w3, w2, [x4, #1] 2827*9880d681SAndroid Build Coastguard Worker stnp w1, w2, [x3, #253] 2828*9880d681SAndroid Build Coastguard Worker stnp w9, w10, [x5, #256] 2829*9880d681SAndroid Build Coastguard Worker ldnp w11, w12, [x9, #-260] 2830*9880d681SAndroid Build Coastguard Worker stnp wsp, w9, [sp] 2831*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2832*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldnp w3, w2, [x4, #1] 2833*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2834*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2835*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stnp w1, w2, [x3, #253] 2836*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2837*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2838*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stnp w9, w10, [x5, #256] 2839*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2840*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2841*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldnp w11, w12, [x9, #-260] 2842*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2843*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2844*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stnp wsp, w9, [sp] 2845*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2846*9880d681SAndroid Build Coastguard Worker 2847*9880d681SAndroid Build Coastguard Worker ldnp x2, x5, [sp, #4] 2848*9880d681SAndroid Build Coastguard Worker ldnp x5, x6, [x9, #512] 2849*9880d681SAndroid Build Coastguard Worker stnp x7, x8, [x10, #-520] 2850*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504] 2851*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldnp x2, x5, [sp, #4] 2852*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2853*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504] 2854*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldnp x5, x6, [x9, #512] 2855*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2856*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504] 2857*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stnp x7, x8, [x10, #-520] 2858*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2859*9880d681SAndroid Build Coastguard Worker 2860*9880d681SAndroid Build Coastguard Worker ldnp sp, x3, [x10] 2861*9880d681SAndroid Build Coastguard Worker stnp x3, sp, [x9] 2862*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2863*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldnp sp, x3, [x10] 2864*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2865*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2866*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stnp x3, sp, [x9] 2867*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2868*9880d681SAndroid Build Coastguard Worker 2869*9880d681SAndroid Build Coastguard Worker stnp s3, s5, [sp, #-2] 2870*9880d681SAndroid Build Coastguard Worker ldnp s6, s26, [x4, #-260] 2871*9880d681SAndroid Build Coastguard Worker stnp s13, s19, [x5, #256] 2872*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2873*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stnp s3, s5, [sp, #-2] 2874*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2875*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2876*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldnp s6, s26, [x4, #-260] 2877*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2878*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 4 in range [-256, 252] 2879*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stnp s13, s19, [x5, #256] 2880*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2881*9880d681SAndroid Build Coastguard Worker 2882*9880d681SAndroid Build Coastguard Worker ldnp d3, d4, [xzr] 2883*9880d681SAndroid Build Coastguard Worker ldnp d5, d6, [x0, #512] 2884*9880d681SAndroid Build Coastguard Worker stnp d7, d8, [x0, #-520] 2885*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2886*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldnp d3, d4, [xzr] 2887*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2888*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504] 2889*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldnp d5, d6, [x0, #512] 2890*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2891*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 8 in range [-512, 504] 2892*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stnp d7, d8, [x0, #-520] 2893*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2894*9880d681SAndroid Build Coastguard Worker 2895*9880d681SAndroid Build Coastguard Worker ldnp d3, q2, [sp] 2896*9880d681SAndroid Build Coastguard Worker ldnp q3, q5, [sp, #8] 2897*9880d681SAndroid Build Coastguard Worker stnp q20, q25, [x5, #1024] 2898*9880d681SAndroid Build Coastguard Worker ldnp q30, q15, [x23, #-1040] 2899*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2900*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldnp d3, q2, [sp] 2901*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2902*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 16 in range [-1024, 1008] 2903*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldnp q3, q5, [sp, #8] 2904*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2905*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 16 in range [-1024, 1008] 2906*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: stnp q20, q25, [x5, #1024] 2907*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2908*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected integer|index must be a}} multiple of 16 in range [-1024, 1008] 2909*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ldnp q30, q15, [x23, #-1040] 2910*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2911*9880d681SAndroid Build Coastguard Worker 2912*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 2913*9880d681SAndroid Build Coastguard Worker// Logical (shifted register) 2914*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 2915*9880d681SAndroid Build Coastguard Worker orr w0, w1, #0xffffffff 2916*9880d681SAndroid Build Coastguard Worker and x3, x5, #0xffffffffffffffff 2917*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected compatible register or logical immediate 2918*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: orr w0, w1, #0xffffffff 2919*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2920*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected compatible register or logical immediate 2921*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: and x3, x5, #0xffffffffffffffff 2922*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2923*9880d681SAndroid Build Coastguard Worker 2924*9880d681SAndroid Build Coastguard Worker ands w3, w9, #0x0 2925*9880d681SAndroid Build Coastguard Worker eor x2, x0, #0x0 2926*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected compatible register or logical immediate 2927*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ands w3, w9, #0x0 2928*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2929*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected compatible register or logical immediate 2930*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: eor x2, x0, #0x0 2931*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2932*9880d681SAndroid Build Coastguard Worker 2933*9880d681SAndroid Build Coastguard Worker eor w3, w5, #0x83 2934*9880d681SAndroid Build Coastguard Worker eor x9, x20, #0x1234 2935*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected compatible register or logical immediate 2936*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: eor w3, w5, #0x83 2937*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2938*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected compatible register or logical immediate 2939*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: eor x9, x20, #0x1234 2940*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2941*9880d681SAndroid Build Coastguard Worker 2942*9880d681SAndroid Build Coastguard Worker and wzr, w4, 0xffff0000 2943*9880d681SAndroid Build Coastguard Worker eor xzr, x9, #0xffff0000ffff0000 2944*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2945*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: and wzr, w4, 0xffff0000 2946*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2947*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2948*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: eor xzr, x9, #0xffff0000ffff0000 2949*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2950*9880d681SAndroid Build Coastguard Worker 2951*9880d681SAndroid Build Coastguard Worker orr w3, wsp, #0xf0f0f0f0 2952*9880d681SAndroid Build Coastguard Worker ands x3, sp, #0xaaaaaaaaaaaaaaaa 2953*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2954*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: orr w3, wsp, #0xf0f0f0f0 2955*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2956*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 2957*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ands x3, sp, #0xaaaaaaaaaaaaaaaa 2958*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2959*9880d681SAndroid Build Coastguard Worker 2960*9880d681SAndroid Build Coastguard Worker tst sp, #0xe0e0e0e0e0e0e0e0 2961*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2962*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tst sp, #0xe0e0e0e0e0e0e0e0 2963*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2964*9880d681SAndroid Build Coastguard Worker 2965*9880d681SAndroid Build Coastguard Worker // movi has been removed from the specification. Make sure it's really gone. 2966*9880d681SAndroid Build Coastguard Worker movi wzr, #0x44444444 2967*9880d681SAndroid Build Coastguard Worker movi w3, #0xffff 2968*9880d681SAndroid Build Coastguard Worker movi x9, #0x0000ffff00000000 2969*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2970*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movi wzr, #0x44444444 2971*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2972*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2973*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movi w3, #0xffff 2974*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2975*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 2976*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movi x9, #0x0000ffff00000000 2977*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2978*9880d681SAndroid Build Coastguard Worker 2979*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 2980*9880d681SAndroid Build Coastguard Worker// Logical (shifted register) 2981*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 2982*9880d681SAndroid Build Coastguard Worker 2983*9880d681SAndroid Build Coastguard Worker //// Out of range shifts 2984*9880d681SAndroid Build Coastguard Worker and w2, w24, w6, lsl #-1 2985*9880d681SAndroid Build Coastguard Worker and w4, w6, w12, lsl #32 2986*9880d681SAndroid Build Coastguard Worker and x4, x6, x12, lsl #64 2987*9880d681SAndroid Build Coastguard Worker and x2, x5, x11, asr 2988*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected integer shift amount 2989*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: and w2, w24, w6, lsl #-1 2990*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2991*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 31] 2992*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: and w4, w6, w12, lsl #32 2993*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2994*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected 'lsl', 'lsr' or 'asr' with optional integer in range [0, 63] 2995*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: and x4, x6, x12, lsl #64 2996*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 2997*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected #imm after shift specifier 2998*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: and x2, x5, x11, asr 2999*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3000*9880d681SAndroid Build Coastguard Worker 3001*9880d681SAndroid Build Coastguard Worker //// sp not allowed 3002*9880d681SAndroid Build Coastguard Worker orn wsp, w3, w5 3003*9880d681SAndroid Build Coastguard Worker bics x20, sp, x9, lsr #0 3004*9880d681SAndroid Build Coastguard Worker orn x2, x6, sp, lsl #3 3005*9880d681SAndroid Build Coastguard Worker// FIXME: the diagnostic we get for 'orn wsp, w3, w5' is from the orn alias, 3006*9880d681SAndroid Build Coastguard Worker// which is a better match than the genuine ORNWri, whereas it would be better 3007*9880d681SAndroid Build Coastguard Worker// to get the ORNWri diagnostic when the alias did not match, i.e. the 3008*9880d681SAndroid Build Coastguard Worker// alias' diagnostics should have a lower priority. 3009*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected compatible register or logical immediate 3010*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: orn wsp, w3, w5 3011*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3012*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 3013*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: bics x20, sp, x9, lsr #0 3014*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3015*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected compatible register or logical immediate 3016*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: orn x2, x6, sp, lsl #3 3017*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3018*9880d681SAndroid Build Coastguard Worker 3019*9880d681SAndroid Build Coastguard Worker //// Mismatched registers 3020*9880d681SAndroid Build Coastguard Worker and x3, w2, w1 3021*9880d681SAndroid Build Coastguard Worker ands w1, x12, w2 3022*9880d681SAndroid Build Coastguard Worker and x4, x5, w6, lsl #12 3023*9880d681SAndroid Build Coastguard Worker orr w2, w5, x7, asr #0 3024*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 3025*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: and x3, w2, w1 3026*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3027*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 3028*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ands w1, x12, w2 3029*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3030*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected compatible register or logical immediate 3031*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: and x4, x5, w6, lsl #12 3032*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3033*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected compatible register or logical immediate 3034*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: orr w2, w5, x7, asr #0 3035*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3036*9880d681SAndroid Build Coastguard Worker 3037*9880d681SAndroid Build Coastguard Worker //// Shifts should not be allowed on mov 3038*9880d681SAndroid Build Coastguard Worker mov w3, w7, lsl #13 3039*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 3040*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: mov w3, w7, lsl #13 3041*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3042*9880d681SAndroid Build Coastguard Worker 3043*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 3044*9880d681SAndroid Build Coastguard Worker// Move wide (immediate) 3045*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 3046*9880d681SAndroid Build Coastguard Worker 3047*9880d681SAndroid Build Coastguard Worker movz w3, #65536, lsl #0 3048*9880d681SAndroid Build Coastguard Worker movz w4, #65536 3049*9880d681SAndroid Build Coastguard Worker movn w1, #2, lsl #1 3050*9880d681SAndroid Build Coastguard Worker movk w3, #0, lsl #-1 3051*9880d681SAndroid Build Coastguard Worker movn w2, #-1, lsl #0 3052*9880d681SAndroid Build Coastguard Worker movz x3, #-1 3053*9880d681SAndroid Build Coastguard Worker movk w3, #1, lsl #32 3054*9880d681SAndroid Build Coastguard Worker movn x2, #12, lsl #64 3055*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3056*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movz w3, #65536, lsl #0 3057*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3058*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3059*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movz w4, #65536 3060*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3061*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: error: expected relocated symbol or integer in range [0, 65535] 3062*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-ARM64-NEXT: error: expected 'lsl' with optional integer 0 or 16 3063*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movn w1, #2, lsl #1 3064*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3065*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: error: only 'lsl #+N' valid after immediate 3066*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-ARM64-NEXT: error: expected integer shift amount 3067*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movk w3, #0, lsl #-1 3068*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3069*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3070*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movn w2, #-1, lsl #0 3071*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3072*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3073*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movz x3, #-1 3074*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3075*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: error: expected relocated symbol or integer in range [0, 65535] 3076*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-ARM64-NEXT: error: expected 'lsl' with optional integer 0 or 16 3077*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movk w3, #1, lsl #32 3078*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3079*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: error: expected relocated symbol or integer in range [0, 65535] 3080*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-ARM64-NEXT: error: expected 'lsl' with optional integer 0, 16, 32 or 48 3081*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movn x2, #12, lsl #64 3082*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3083*9880d681SAndroid Build Coastguard Worker 3084*9880d681SAndroid Build Coastguard Worker movz x12, #:abs_g0:sym, lsl #16 3085*9880d681SAndroid Build Coastguard Worker movz x12, #:abs_g0:sym, lsl #0 3086*9880d681SAndroid Build Coastguard Worker movn x2, #:abs_g0:sym 3087*9880d681SAndroid Build Coastguard Worker movk w3, #:abs_g0:sym 3088*9880d681SAndroid Build Coastguard Worker movz x3, #:abs_g0_nc:sym 3089*9880d681SAndroid Build Coastguard Worker movn x4, #:abs_g0_nc:sym 3090*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3091*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movz x12, #:abs_g0:sym, lsl #16 3092*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3093*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3094*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movz x12, #:abs_g0:sym, lsl #0 3095*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3096*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3097*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: movn x2, #:abs_g0:sym 3098*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: ^ 3099*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3100*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movk w3, #:abs_g0:sym 3101*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3102*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3103*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movz x3, #:abs_g0_nc:sym 3104*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3105*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3106*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movn x4, #:abs_g0_nc:sym 3107*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3108*9880d681SAndroid Build Coastguard Worker 3109*9880d681SAndroid Build Coastguard Worker movn x2, #:abs_g1:sym 3110*9880d681SAndroid Build Coastguard Worker movk w3, #:abs_g1:sym 3111*9880d681SAndroid Build Coastguard Worker movz x3, #:abs_g1_nc:sym 3112*9880d681SAndroid Build Coastguard Worker movn x4, #:abs_g1_nc:sym 3113*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3114*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: movn x2, #:abs_g1:sym 3115*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: ^ 3116*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3117*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movk w3, #:abs_g1:sym 3118*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3119*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3120*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movz x3, #:abs_g1_nc:sym 3121*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3122*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3123*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movn x4, #:abs_g1_nc:sym 3124*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3125*9880d681SAndroid Build Coastguard Worker 3126*9880d681SAndroid Build Coastguard Worker movz w12, #:abs_g2:sym 3127*9880d681SAndroid Build Coastguard Worker movn x12, #:abs_g2:sym 3128*9880d681SAndroid Build Coastguard Worker movk x13, #:abs_g2:sym 3129*9880d681SAndroid Build Coastguard Worker movk w3, #:abs_g2_nc:sym 3130*9880d681SAndroid Build Coastguard Worker movz x13, #:abs_g2_nc:sym 3131*9880d681SAndroid Build Coastguard Worker movn x24, #:abs_g2_nc:sym 3132*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3133*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movz w12, #:abs_g2:sym 3134*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3135*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3136*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: movn x12, #:abs_g2:sym 3137*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: ^ 3138*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3139*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movk x13, #:abs_g2:sym 3140*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3141*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3142*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movk w3, #:abs_g2_nc:sym 3143*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3144*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3145*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movz x13, #:abs_g2_nc:sym 3146*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3147*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3148*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movn x24, #:abs_g2_nc:sym 3149*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3150*9880d681SAndroid Build Coastguard Worker 3151*9880d681SAndroid Build Coastguard Worker movn x19, #:abs_g3:sym 3152*9880d681SAndroid Build Coastguard Worker movz w20, #:abs_g3:sym 3153*9880d681SAndroid Build Coastguard Worker movk w21, #:abs_g3:sym 3154*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3155*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: movn x19, #:abs_g3:sym 3156*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: ^ 3157*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3158*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movz w20, #:abs_g3:sym 3159*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3160*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3161*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movk w21, #:abs_g3:sym 3162*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3163*9880d681SAndroid Build Coastguard Worker 3164*9880d681SAndroid Build Coastguard Worker movk x19, #:abs_g0_s:sym 3165*9880d681SAndroid Build Coastguard Worker movk w23, #:abs_g0_s:sym 3166*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3167*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movk x19, #:abs_g0_s:sym 3168*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3169*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3170*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movk w23, #:abs_g0_s:sym 3171*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3172*9880d681SAndroid Build Coastguard Worker 3173*9880d681SAndroid Build Coastguard Worker movk x19, #:abs_g1_s:sym 3174*9880d681SAndroid Build Coastguard Worker movk w23, #:abs_g1_s:sym 3175*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3176*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movk x19, #:abs_g1_s:sym 3177*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3178*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3179*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movk w23, #:abs_g1_s:sym 3180*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3181*9880d681SAndroid Build Coastguard Worker 3182*9880d681SAndroid Build Coastguard Worker movz w2, #:abs_g2_s:sym 3183*9880d681SAndroid Build Coastguard Worker movn w29, #:abs_g2_s:sym 3184*9880d681SAndroid Build Coastguard Worker movk x19, #:abs_g2_s:sym 3185*9880d681SAndroid Build Coastguard Worker movk w23, #:abs_g2_s:sym 3186*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3187*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movz w2, #:abs_g2_s:sym 3188*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3189*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3190*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movn w29, #:abs_g2_s:sym 3191*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3192*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3193*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movk x19, #:abs_g2_s:sym 3194*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3195*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected relocated symbol or|immediate must be an}} integer in range [0, 65535] 3196*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: movk w23, #:abs_g2_s:sym 3197*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3198*9880d681SAndroid Build Coastguard Worker 3199*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 3200*9880d681SAndroid Build Coastguard Worker// PC-relative addressing 3201*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 3202*9880d681SAndroid Build Coastguard Worker 3203*9880d681SAndroid Build Coastguard Worker adr sp, loc // expects xzr 3204*9880d681SAndroid Build Coastguard Worker adrp x3, #20 // Immediate unaligned 3205*9880d681SAndroid Build Coastguard Worker adrp w2, loc // 64-bit register needed 3206*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 3207*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adr sp, loc 3208*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3209*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset 3210*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adrp x3, #20 3211*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3212*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 3213*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adrp w2, loc 3214*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3215*9880d681SAndroid Build Coastguard Worker 3216*9880d681SAndroid Build Coastguard Worker adr x9, #1048576 3217*9880d681SAndroid Build Coastguard Worker adr x2, #-1048577 3218*9880d681SAndroid Build Coastguard Worker adrp x9, #4294967296 3219*9880d681SAndroid Build Coastguard Worker adrp x20, #-4294971392 3220*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected label or encodable integer pc offset 3221*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adr x9, #1048576 3222*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3223*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset 3224*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adr x2, #-1048577 3225*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3226*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset 3227*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adrp x9, #4294967296 3228*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3229*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset 3230*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: adrp x20, #-4294971392 3231*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3232*9880d681SAndroid Build Coastguard Worker 3233*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 3234*9880d681SAndroid Build Coastguard Worker// System 3235*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 3236*9880d681SAndroid Build Coastguard Worker 3237*9880d681SAndroid Build Coastguard Worker hint #-1 3238*9880d681SAndroid Build Coastguard Worker hint #128 3239*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 127] 3240*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: hint #-1 3241*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3242*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 127] 3243*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: hint #128 3244*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3245*9880d681SAndroid Build Coastguard Worker 3246*9880d681SAndroid Build Coastguard Worker clrex #-1 3247*9880d681SAndroid Build Coastguard Worker clrex #16 3248*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 3249*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: clrex #-1 3250*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3251*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 3252*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: clrex #16 3253*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3254*9880d681SAndroid Build Coastguard Worker 3255*9880d681SAndroid Build Coastguard Worker dsb #-1 3256*9880d681SAndroid Build Coastguard Worker dsb #16 3257*9880d681SAndroid Build Coastguard Worker dmb #-1 3258*9880d681SAndroid Build Coastguard Worker dmb #16 3259*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{Invalid immediate for instruction|barrier operand out of range}} 3260*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: dsb #-1 3261*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3262*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{Invalid immediate for instruction|barrier operand out of range}} 3263*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: dsb #16 3264*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3265*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{Invalid immediate for instruction|barrier operand out of range}} 3266*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: dmb #-1 3267*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3268*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{Invalid immediate for instruction|barrier operand out of range}} 3269*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: dmb #16 3270*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3271*9880d681SAndroid Build Coastguard Worker 3272*9880d681SAndroid Build Coastguard Worker isb #-1 3273*9880d681SAndroid Build Coastguard Worker isb #16 3274*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{Invalid immediate for instruction|barrier operand out of range}} 3275*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: isb #-1 3276*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3277*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{Invalid immediate for instruction|barrier operand out of range}} 3278*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: isb #16 3279*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3280*9880d681SAndroid Build Coastguard Worker 3281*9880d681SAndroid Build Coastguard Worker msr daifset, x4 3282*9880d681SAndroid Build Coastguard Worker msr spsel, #-1 3283*9880d681SAndroid Build Coastguard Worker msr spsel #-1 3284*9880d681SAndroid Build Coastguard Worker msr daifclr, #16 3285*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 3286*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr daifset, x4 3287*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3288*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 3289*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr spsel, #-1 3290*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3291*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected comma before next operand|unexpected token in argument list}} 3292*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr spsel #-1 3293*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3294*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 15] 3295*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr daifclr, #16 3296*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3297*9880d681SAndroid Build Coastguard Worker 3298*9880d681SAndroid Build Coastguard Worker sys #8, c1, c2, #7, x9 3299*9880d681SAndroid Build Coastguard Worker sys #3, c16, c2, #3, x10 3300*9880d681SAndroid Build Coastguard Worker sys #2, c11, c16, #5 3301*9880d681SAndroid Build Coastguard Worker sys #4, c9, c8, #8, xzr 3302*9880d681SAndroid Build Coastguard Worker sysl x11, #8, c1, c2, #7 3303*9880d681SAndroid Build Coastguard Worker sysl x13, #3, c16, c2, #3 3304*9880d681SAndroid Build Coastguard Worker sysl x9, #2, c11, c16, #5 3305*9880d681SAndroid Build Coastguard Worker sysl x4, #4, c9, c8, #8 3306*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 7] 3307*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sys #8, c1, c2, #7, x9 3308*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3309*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: Expected cN operand where 0 <= N <= 15 3310*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sys #3, c16, c2, #3, x10 3311*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3312*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: Expected cN operand where 0 <= N <= 15 3313*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sys #2, c11, c16, #5 3314*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3315*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 7] 3316*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sys #4, c9, c8, #8, xzr 3317*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3318*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 7] 3319*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sysl x11, #8, c1, c2, #7 3320*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3321*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: Expected cN operand where 0 <= N <= 15 3322*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sysl x13, #3, c16, c2, #3 3323*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3324*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: Expected cN operand where 0 <= N <= 15 3325*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sysl x9, #2, c11, c16, #5 3326*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3327*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 7] 3328*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: sysl x4, #4, c9, c8, #8 3329*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3330*9880d681SAndroid Build Coastguard Worker 3331*9880d681SAndroid Build Coastguard Worker ic ialluis, x2 3332*9880d681SAndroid Build Coastguard Worker ic allu, x7 3333*9880d681SAndroid Build Coastguard Worker ic ivau 3334*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{IC|ic}} op does not use a register 3335*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ic ialluis, x2 3336*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3337*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-AARCH64-NEXT: error: operand specifier not recognised 3338*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-ARM64-NEXT: error: invalid operand for IC instruction 3339*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ic allu, x7 3340*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3341*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{IC|ic}} op requires a register 3342*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ic ivau 3343*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3344*9880d681SAndroid Build Coastguard Worker 3345*9880d681SAndroid Build Coastguard Worker tlbi IPAS2E1IS 3346*9880d681SAndroid Build Coastguard Worker tlbi IPAS2LE1IS 3347*9880d681SAndroid Build Coastguard Worker tlbi VMALLE1IS, x12 3348*9880d681SAndroid Build Coastguard Worker tlbi ALLE2IS, x11 3349*9880d681SAndroid Build Coastguard Worker tlbi ALLE3IS, x20 3350*9880d681SAndroid Build Coastguard Worker tlbi VAE1IS 3351*9880d681SAndroid Build Coastguard Worker tlbi VAE2IS 3352*9880d681SAndroid Build Coastguard Worker tlbi VAE3IS 3353*9880d681SAndroid Build Coastguard Worker tlbi ASIDE1IS 3354*9880d681SAndroid Build Coastguard Worker tlbi VAAE1IS 3355*9880d681SAndroid Build Coastguard Worker tlbi ALLE1IS, x0 3356*9880d681SAndroid Build Coastguard Worker tlbi VALE1IS 3357*9880d681SAndroid Build Coastguard Worker tlbi VALE2IS 3358*9880d681SAndroid Build Coastguard Worker tlbi VALE3IS 3359*9880d681SAndroid Build Coastguard Worker tlbi VMALLS12E1IS, xzr 3360*9880d681SAndroid Build Coastguard Worker tlbi VAALE1IS 3361*9880d681SAndroid Build Coastguard Worker tlbi IPAS2E1 3362*9880d681SAndroid Build Coastguard Worker tlbi IPAS2LE1 3363*9880d681SAndroid Build Coastguard Worker tlbi VMALLE1, x9 3364*9880d681SAndroid Build Coastguard Worker tlbi ALLE2, x10 3365*9880d681SAndroid Build Coastguard Worker tlbi ALLE3, x11 3366*9880d681SAndroid Build Coastguard Worker tlbi VAE1 3367*9880d681SAndroid Build Coastguard Worker tlbi VAE2 3368*9880d681SAndroid Build Coastguard Worker tlbi VAE3 3369*9880d681SAndroid Build Coastguard Worker tlbi ASIDE1 3370*9880d681SAndroid Build Coastguard Worker tlbi VAAE1 3371*9880d681SAndroid Build Coastguard Worker tlbi ALLE1, x25 3372*9880d681SAndroid Build Coastguard Worker tlbi VALE1 3373*9880d681SAndroid Build Coastguard Worker tlbi VALE2 3374*9880d681SAndroid Build Coastguard Worker tlbi VALE3 3375*9880d681SAndroid Build Coastguard Worker tlbi VMALLS12E1, x15 3376*9880d681SAndroid Build Coastguard Worker tlbi VAALE1 3377*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register 3378*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi IPAS2E1IS 3379*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3380*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register 3381*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi IPAS2LE1IS 3382*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3383*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op does not use a register 3384*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi VMALLE1IS, x12 3385*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3386*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op does not use a register 3387*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi ALLE2IS, x11 3388*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3389*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op does not use a register 3390*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi ALLE3IS, x20 3391*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3392*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register 3393*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi VAE1IS 3394*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3395*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register 3396*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi VAE2IS 3397*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3398*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register 3399*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi VAE3IS 3400*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3401*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register 3402*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi ASIDE1IS 3403*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3404*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register 3405*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi VAAE1IS 3406*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3407*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op does not use a register 3408*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi ALLE1IS, x0 3409*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3410*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register 3411*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi VALE1IS 3412*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3413*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register 3414*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi VALE2IS 3415*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3416*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register 3417*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi VALE3IS 3418*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3419*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op does not use a register 3420*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi VMALLS12E1IS, xzr 3421*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3422*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register 3423*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi VAALE1IS 3424*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3425*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register 3426*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi IPAS2E1 3427*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3428*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register 3429*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi IPAS2LE1 3430*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3431*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op does not use a register 3432*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi VMALLE1, x9 3433*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3434*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op does not use a register 3435*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi ALLE2, x10 3436*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3437*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op does not use a register 3438*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi ALLE3, x11 3439*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3440*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register 3441*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi VAE1 3442*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3443*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register 3444*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi VAE2 3445*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3446*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register 3447*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi VAE3 3448*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3449*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register 3450*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi ASIDE1 3451*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3452*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register 3453*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi VAAE1 3454*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3455*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op does not use a register 3456*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi ALLE1, x25 3457*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3458*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register 3459*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi VALE1 3460*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3461*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register 3462*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi VALE2 3463*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3464*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register 3465*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi VALE3 3466*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3467*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op does not use a register 3468*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi VMALLS12E1, x15 3469*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3470*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: specified {{TLBI|tlbi}} op requires a register 3471*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tlbi VAALE1 3472*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3473*9880d681SAndroid Build Coastguard Worker 3474*9880d681SAndroid Build Coastguard Worker// For the MSR/MRS instructions, first make sure read-only and 3475*9880d681SAndroid Build Coastguard Worker// write-only registers actually are. 3476*9880d681SAndroid Build Coastguard Worker msr MDCCSR_EL0, x12 3477*9880d681SAndroid Build Coastguard Worker msr DBGDTRRX_EL0, x12 3478*9880d681SAndroid Build Coastguard Worker msr MDRAR_EL1, x12 3479*9880d681SAndroid Build Coastguard Worker msr OSLSR_EL1, x12 3480*9880d681SAndroid Build Coastguard Worker msr DBGAUTHSTATUS_EL1, x12 3481*9880d681SAndroid Build Coastguard Worker msr MIDR_EL1, x12 3482*9880d681SAndroid Build Coastguard Worker msr CCSIDR_EL1, x12 3483*9880d681SAndroid Build Coastguard Worker msr CLIDR_EL1, x12 3484*9880d681SAndroid Build Coastguard Worker msr CTR_EL0, x12 3485*9880d681SAndroid Build Coastguard Worker msr MPIDR_EL1, x12 3486*9880d681SAndroid Build Coastguard Worker msr REVIDR_EL1, x12 3487*9880d681SAndroid Build Coastguard Worker msr AIDR_EL1, x12 3488*9880d681SAndroid Build Coastguard Worker msr DCZID_EL0, x12 3489*9880d681SAndroid Build Coastguard Worker msr ID_PFR0_EL1, x12 3490*9880d681SAndroid Build Coastguard Worker msr ID_PFR1_EL1, x12 3491*9880d681SAndroid Build Coastguard Worker msr ID_DFR0_EL1, x12 3492*9880d681SAndroid Build Coastguard Worker msr ID_AFR0_EL1, x12 3493*9880d681SAndroid Build Coastguard Worker msr ID_MMFR0_EL1, x12 3494*9880d681SAndroid Build Coastguard Worker msr ID_MMFR1_EL1, x12 3495*9880d681SAndroid Build Coastguard Worker msr ID_MMFR2_EL1, x12 3496*9880d681SAndroid Build Coastguard Worker msr ID_MMFR3_EL1, x12 3497*9880d681SAndroid Build Coastguard Worker msr ID_MMFR4_EL1, x12 3498*9880d681SAndroid Build Coastguard Worker msr ID_ISAR0_EL1, x12 3499*9880d681SAndroid Build Coastguard Worker msr ID_ISAR1_EL1, x12 3500*9880d681SAndroid Build Coastguard Worker msr ID_ISAR2_EL1, x12 3501*9880d681SAndroid Build Coastguard Worker msr ID_ISAR3_EL1, x12 3502*9880d681SAndroid Build Coastguard Worker msr ID_ISAR4_EL1, x12 3503*9880d681SAndroid Build Coastguard Worker msr ID_ISAR5_EL1, x12 3504*9880d681SAndroid Build Coastguard Worker msr MVFR0_EL1, x12 3505*9880d681SAndroid Build Coastguard Worker msr MVFR1_EL1, x12 3506*9880d681SAndroid Build Coastguard Worker msr MVFR2_EL1, x12 3507*9880d681SAndroid Build Coastguard Worker msr ID_AA64PFR0_EL1, x12 3508*9880d681SAndroid Build Coastguard Worker msr ID_AA64PFR1_EL1, x12 3509*9880d681SAndroid Build Coastguard Worker msr ID_AA64DFR0_EL1, x12 3510*9880d681SAndroid Build Coastguard Worker msr ID_AA64DFR1_EL1, x12 3511*9880d681SAndroid Build Coastguard Worker msr ID_AA64AFR0_EL1, x12 3512*9880d681SAndroid Build Coastguard Worker msr ID_AA64AFR1_EL1, x12 3513*9880d681SAndroid Build Coastguard Worker msr ID_AA64ISAR0_EL1, x12 3514*9880d681SAndroid Build Coastguard Worker msr ID_AA64ISAR1_EL1, x12 3515*9880d681SAndroid Build Coastguard Worker msr ID_AA64MMFR0_EL1, x12 3516*9880d681SAndroid Build Coastguard Worker msr ID_AA64MMFR1_EL1, x12 3517*9880d681SAndroid Build Coastguard Worker msr PMCEID0_EL0, x12 3518*9880d681SAndroid Build Coastguard Worker msr PMCEID1_EL0, x12 3519*9880d681SAndroid Build Coastguard Worker msr RVBAR_EL1, x12 3520*9880d681SAndroid Build Coastguard Worker msr RVBAR_EL2, x12 3521*9880d681SAndroid Build Coastguard Worker msr RVBAR_EL3, x12 3522*9880d681SAndroid Build Coastguard Worker msr ISR_EL1, x12 3523*9880d681SAndroid Build Coastguard Worker msr CNTPCT_EL0, x12 3524*9880d681SAndroid Build Coastguard Worker msr CNTVCT_EL0, x12 3525*9880d681SAndroid Build Coastguard Worker msr PMEVCNTR31_EL0, x12 3526*9880d681SAndroid Build Coastguard Worker msr PMEVTYPER31_EL0, x12 3527*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected writable system register or pstate 3528*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr MDCCSR_EL0, x12 3529*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3530*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3531*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr DBGDTRRX_EL0, x12 3532*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3533*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3534*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr MDRAR_EL1, x12 3535*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3536*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3537*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr OSLSR_EL1, x12 3538*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3539*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3540*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr DBGAUTHSTATUS_EL1, x12 3541*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3542*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3543*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr MIDR_EL1, x12 3544*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3545*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3546*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr CCSIDR_EL1, x12 3547*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3548*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3549*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr CLIDR_EL1, x12 3550*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3551*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3552*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr CTR_EL0, x12 3553*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3554*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3555*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr MPIDR_EL1, x12 3556*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3557*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3558*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr REVIDR_EL1, x12 3559*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3560*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3561*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr AIDR_EL1, x12 3562*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3563*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3564*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr DCZID_EL0, x12 3565*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3566*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3567*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_PFR0_EL1, x12 3568*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3569*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3570*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_PFR1_EL1, x12 3571*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3572*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3573*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_DFR0_EL1, x12 3574*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3575*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3576*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_AFR0_EL1, x12 3577*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3578*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3579*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_MMFR0_EL1, x12 3580*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3581*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3582*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_MMFR1_EL1, x12 3583*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3584*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3585*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_MMFR2_EL1, x12 3586*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3587*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3588*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_MMFR3_EL1, x12 3589*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3590*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3591*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_MMFR4_EL1, x12 3592*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3593*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3594*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_ISAR0_EL1, x12 3595*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3596*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3597*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_ISAR1_EL1, x12 3598*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3599*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3600*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_ISAR2_EL1, x12 3601*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3602*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3603*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_ISAR3_EL1, x12 3604*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3605*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3606*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_ISAR4_EL1, x12 3607*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3608*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3609*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_ISAR5_EL1, x12 3610*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3611*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3612*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr MVFR0_EL1, x12 3613*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3614*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3615*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr MVFR1_EL1, x12 3616*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3617*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3618*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr MVFR2_EL1, x12 3619*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3620*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3621*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_AA64PFR0_EL1, x12 3622*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3623*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3624*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_AA64PFR1_EL1, x12 3625*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3626*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3627*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_AA64DFR0_EL1, x12 3628*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3629*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3630*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_AA64DFR1_EL1, x12 3631*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3632*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3633*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_AA64AFR0_EL1, x12 3634*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3635*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3636*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_AA64AFR1_EL1, x12 3637*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3638*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3639*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_AA64ISAR0_EL1, x12 3640*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3641*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3642*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_AA64ISAR1_EL1, x12 3643*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3644*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3645*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_AA64MMFR0_EL1, x12 3646*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3647*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3648*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ID_AA64MMFR1_EL1, x12 3649*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3650*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3651*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr PMCEID0_EL0, x12 3652*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3653*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3654*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr PMCEID1_EL0, x12 3655*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3656*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3657*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr RVBAR_EL1, x12 3658*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3659*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3660*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr RVBAR_EL2, x12 3661*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3662*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3663*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr RVBAR_EL3, x12 3664*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3665*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3666*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr ISR_EL1, x12 3667*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3668*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3669*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr CNTPCT_EL0, x12 3670*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3671*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3672*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr CNTVCT_EL0, x12 3673*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3674*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3675*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr PMEVCNTR31_EL0, x12 3676*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3677*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected writable system register or pstate 3678*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: msr PMEVTYPER31_EL0, x12 3679*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3680*9880d681SAndroid Build Coastguard Worker 3681*9880d681SAndroid Build Coastguard Worker mrs x9, DBGDTRTX_EL0 3682*9880d681SAndroid Build Coastguard Worker mrs x9, OSLAR_EL1 3683*9880d681SAndroid Build Coastguard Worker mrs x9, PMSWINC_EL0 3684*9880d681SAndroid Build Coastguard Worker mrs x9, PMEVCNTR31_EL0 3685*9880d681SAndroid Build Coastguard Worker mrs x9, PMEVTYPER31_EL0 3686*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected readable system register 3687*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: mrs x9, DBGDTRTX_EL0 3688*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3689*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected readable system register 3690*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: mrs x9, OSLAR_EL1 3691*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3692*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected readable system register 3693*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: mrs x9, PMSWINC_EL0 3694*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3695*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected readable system register 3696*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: mrs x9, PMEVCNTR31_EL0 3697*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3698*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected readable system register 3699*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: mrs x9, PMEVTYPER31_EL0 3700*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3701*9880d681SAndroid Build Coastguard Worker 3702*9880d681SAndroid Build Coastguard Worker// Now check some invalid generic names 3703*9880d681SAndroid Build Coastguard Worker mrs x12, s3_8_c11_c13_2 3704*9880d681SAndroid Build Coastguard Worker mrs x19, s3_2_c15_c16_2 3705*9880d681SAndroid Build Coastguard Worker mrs x30, s3_2_c15_c1_8 3706*9880d681SAndroid Build Coastguard Worker mrs x4, s4_7_c15_c15_7 3707*9880d681SAndroid Build Coastguard Worker mrs x14, s3_7_c16_c15_7 3708*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected readable system register 3709*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: mrs x12, s3_8_c11_c13_2 3710*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3711*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected readable system register 3712*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: mrs x19, s3_2_c15_c16_2 3713*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3714*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected readable system register 3715*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: mrs x30, s3_2_c15_c1_8 3716*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3717*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected readable system register 3718*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: mrs x4, s4_7_c15_c15_7 3719*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3720*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected readable system register 3721*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: mrs x14, s3_7_c16_c15_7 3722*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3723*9880d681SAndroid Build Coastguard Worker 3724*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 3725*9880d681SAndroid Build Coastguard Worker// Test and branch (immediate) 3726*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 3727*9880d681SAndroid Build Coastguard Worker 3728*9880d681SAndroid Build Coastguard Worker tbz w3, #-1, addr 3729*9880d681SAndroid Build Coastguard Worker tbz w3, #32, nowhere 3730*9880d681SAndroid Build Coastguard Worker tbz x9, #-1, there 3731*9880d681SAndroid Build Coastguard Worker tbz x20, #64, dont 3732*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: {{expected|immediate must be an}} integer in range [0, 31] 3733*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tbz w3, #-1, addr 3734*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3735*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 3736*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tbz w3, #32, nowhere 3737*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3738*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63] 3739*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tbz x9, #-1, there 3740*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3741*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63] 3742*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tbz x20, #64, dont 3743*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3744*9880d681SAndroid Build Coastguard Worker 3745*9880d681SAndroid Build Coastguard Worker tbnz w3, #-1, addr 3746*9880d681SAndroid Build Coastguard Worker tbnz w3, #32, nowhere 3747*9880d681SAndroid Build Coastguard Worker tbnz x9, #-1, there 3748*9880d681SAndroid Build Coastguard Worker tbnz x20, #64, dont 3749*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 3750*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tbnz w3, #-1, addr 3751*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3752*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 31] 3753*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tbnz w3, #32, nowhere 3754*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3755*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63] 3756*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tbnz x9, #-1, there 3757*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3758*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: {{expected|immediate must be an}} integer in range [0, 63] 3759*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: tbnz x20, #64, dont 3760*9880d681SAndroid Build Coastguard Worker 3761*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 3762*9880d681SAndroid Build Coastguard Worker// Unconditional branch (immediate) 3763*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 3764*9880d681SAndroid Build Coastguard Worker 3765*9880d681SAndroid Build Coastguard Worker b #134217728 3766*9880d681SAndroid Build Coastguard Worker b #-134217732 3767*9880d681SAndroid Build Coastguard Worker b #1 3768*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: expected label or encodable integer pc offset 3769*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: b #134217728 3770*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3771*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset 3772*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: b #-134217732 3773*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3774*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: expected label or encodable integer pc offset 3775*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: b #1 3776*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3777*9880d681SAndroid Build Coastguard Worker 3778*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 3779*9880d681SAndroid Build Coastguard Worker// Unconditional branch (register) 3780*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 3781*9880d681SAndroid Build Coastguard Worker 3782*9880d681SAndroid Build Coastguard Worker br w2 3783*9880d681SAndroid Build Coastguard Worker br sp 3784*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 3785*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: br w2 3786*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3787*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 3788*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: br sp 3789*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3790*9880d681SAndroid Build Coastguard Worker 3791*9880d681SAndroid Build Coastguard Worker //// These ones shouldn't allow any registers 3792*9880d681SAndroid Build Coastguard Worker eret x2 3793*9880d681SAndroid Build Coastguard Worker drps x2 3794*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR: error: invalid operand for instruction 3795*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: eret x2 3796*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3797*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: error: invalid operand for instruction 3798*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: drps x2 3799*9880d681SAndroid Build Coastguard Worker// CHECK-ERROR-NEXT: ^ 3800*9880d681SAndroid Build Coastguard Worker 3801