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