1# RUN: llvm-mc --disassemble -triple arm64-apple-darwin < %s | FileCheck %s 2 3#----------------------------------------------------------------------------- 4# Indexed loads 5#----------------------------------------------------------------------------- 6 7 0x85 0x14 0x40 0xb9 8 0x64 0x00 0x40 0xf9 9 0xe2 0x13 0x40 0xf9 10 0xe5 0x07 0x40 0x3d 11 0xe6 0x07 0x40 0x7d 12 0xe7 0x07 0x40 0xbd 13 0xe8 0x07 0x40 0xfd 14 0xe9 0x07 0xc0 0x3d 15 0x64 0x00 0x40 0x39 16 0x20 0x78 0xa0 0xb8 17 0x85 0x50 0x40 0x39 18 19# CHECK: ldr w5, [x4, #20] 20# CHECK: ldr x4, [x3] 21# CHECK: ldr x2, [sp, #32] 22# CHECK: ldr b5, [sp, #1] 23# CHECK: ldr h6, [sp, #2] 24# CHECK: ldr s7, [sp, #4] 25# CHECK: ldr d8, [sp, #8] 26# CHECK: ldr q9, [sp, #16] 27# CHECK: ldrb w4, [x3] 28# CHECK: ldrsw x0, [x1, x0, lsl #2] 29# CHECK: ldrb w5, [x4, #20] 30# CHECK: ldrsb w9, [x3] 31# CHECK: ldrsb x2, [sp, #128] 32# CHECK: ldrh w2, [sp, #32] 33# CHECK: ldrsh w3, [sp, #32] 34# CHECK: ldrsh x5, [x9, #24] 35# CHECK: ldrsw x9, [sp, #512] 36# CHECK: prfm pldl3strm, [sp, #32] 37 38 0x69 0x00 0xc0 0x39 39 0xe2 0x03 0x82 0x39 40 0xe2 0x43 0x40 0x79 41 0xe3 0x43 0xc0 0x79 42 0x25 0x31 0x80 0x79 43 0xe9 0x03 0x82 0xb9 44 0xe5 0x13 0x80 0xf9 45 0x40 0x00 0x80 0xf9 46 0x41 0x00 0x80 0xf9 47 0x42 0x00 0x80 0xf9 48 0x43 0x00 0x80 0xf9 49 0x44 0x00 0x80 0xf9 50 0x45 0x00 0x80 0xf9 51 0x50 0x00 0x80 0xf9 52 0x51 0x00 0x80 0xf9 53 0x52 0x00 0x80 0xf9 54 0x53 0x00 0x80 0xf9 55 0x54 0x00 0x80 0xf9 56 0x55 0x00 0x80 0xf9 57 58# CHECK: prfm pldl1keep, [x2] 59# CHECK: prfm pldl1strm, [x2] 60# CHECK: prfm pldl2keep, [x2] 61# CHECK: prfm pldl2strm, [x2] 62# CHECK: prfm pldl3keep, [x2] 63# CHECK: prfm pldl3strm, [x2] 64# CHECK: prfm pstl1keep, [x2] 65# CHECK: prfm pstl1strm, [x2] 66# CHECK: prfm pstl2keep, [x2] 67# CHECK: prfm pstl2strm, [x2] 68# CHECK: prfm pstl3keep, [x2] 69# CHECK: prfm pstl3strm, [x2] 70 71#----------------------------------------------------------------------------- 72# Indexed stores 73#----------------------------------------------------------------------------- 74 75 0x64 0x00 0x00 0xf9 76 0xe2 0x13 0x00 0xf9 77 0x85 0x14 0x00 0xb9 78 0xe5 0x07 0x00 0x3d 79 0xe6 0x07 0x00 0x7d 80 0xe7 0x07 0x00 0xbd 81 0xe8 0x07 0x00 0xfd 82 0xe9 0x07 0x80 0x3d 83 0x64 0x00 0x00 0x39 84 0x85 0x50 0x00 0x39 85 0xe2 0x43 0x00 0x79 86 0x00 0xe8 0x20 0x38 87 0x00 0x48 0x20 0x38 88 89# CHECK: str x4, [x3] 90# CHECK: str x2, [sp, #32] 91# CHECK: str w5, [x4, #20] 92# CHECK: str b5, [sp, #1] 93# CHECK: str h6, [sp, #2] 94# CHECK: str s7, [sp, #4] 95# CHECK: str d8, [sp, #8] 96# CHECK: str q9, [sp, #16] 97# CHECK: strb w4, [x3] 98# CHECK: strb w5, [x4, #20] 99# CHECK: strh w2, [sp, #32] 100# CHECK: strb w0, [x0, x0, sxtx] 101# CHECK: strb w0, [x0, w0, uxtw] 102 103#----------------------------------------------------------------------------- 104# Unscaled immediate loads and stores 105#----------------------------------------------------------------------------- 106 107 0x62 0x00 0x40 0xb8 108 0xe2 0x83 0x41 0xb8 109 0x62 0x00 0x40 0xf8 110 0xe2 0x83 0x41 0xf8 111 0xe5 0x13 0x40 0x3c 112 0xe6 0x23 0x40 0x7c 113 0xe7 0x43 0x40 0xbc 114 0xe8 0x83 0x40 0xfc 115 0xe9 0x03 0xc1 0x3c 116 0x69 0x00 0xc0 0x38 117 0xe2 0x03 0x88 0x38 118 0xe3 0x03 0xc2 0x78 119 0x25 0x81 0x81 0x78 120 0xe9 0x03 0x98 0xb8 121 122# CHECK: ldur w2, [x3] 123# CHECK: ldur w2, [sp, #24] 124# CHECK: ldur x2, [x3] 125# CHECK: ldur x2, [sp, #24] 126# CHECK: ldur b5, [sp, #1] 127# CHECK: ldur h6, [sp, #2] 128# CHECK: ldur s7, [sp, #4] 129# CHECK: ldur d8, [sp, #8] 130# CHECK: ldur q9, [sp, #16] 131# CHECK: ldursb w9, [x3] 132# CHECK: ldursb x2, [sp, #128] 133# CHECK: ldursh w3, [sp, #32] 134# CHECK: ldursh x5, [x9, #24] 135# CHECK: ldursw x9, [sp, #-128] 136 137 0x64 0x00 0x00 0xb8 138 0xe2 0x03 0x02 0xb8 139 0x64 0x00 0x00 0xf8 140 0xe2 0x03 0x02 0xf8 141 0x85 0x40 0x01 0xb8 142 0xe5 0x13 0x00 0x3c 143 0xe6 0x23 0x00 0x7c 144 0xe7 0x43 0x00 0xbc 145 0xe8 0x83 0x00 0xfc 146 0xe9 0x03 0x81 0x3c 147 0x64 0x00 0x00 0x38 148 0x85 0x40 0x01 0x38 149 0xe2 0x03 0x02 0x78 150 0xe5 0x03 0x82 0xf8 151 152# CHECK: stur w4, [x3] 153# CHECK: stur w2, [sp, #32] 154# CHECK: stur x4, [x3] 155# CHECK: stur x2, [sp, #32] 156# CHECK: stur w5, [x4, #20] 157# CHECK: stur b5, [sp, #1] 158# CHECK: stur h6, [sp, #2] 159# CHECK: stur s7, [sp, #4] 160# CHECK: stur d8, [sp, #8] 161# CHECK: stur q9, [sp, #16] 162# CHECK: sturb w4, [x3] 163# CHECK: sturb w5, [x4, #20] 164# CHECK: sturh w2, [sp, #32] 165# CHECK: prfum pldl3strm, [sp, #32] 166 167#----------------------------------------------------------------------------- 168# Unprivileged loads and stores 169#----------------------------------------------------------------------------- 170 171 0x83 0x08 0x41 0xb8 172 0x83 0x08 0x41 0xf8 173 0x83 0x08 0x41 0x38 174 0x69 0x08 0xc0 0x38 175 0xe2 0x0b 0x88 0x38 176 0x83 0x08 0x41 0x78 177 0xe3 0x0b 0xc2 0x78 178 0x25 0x89 0x81 0x78 179 0xe9 0x0b 0x98 0xb8 180 181# CHECK: ldtr w3, [x4, #16] 182# CHECK: ldtr x3, [x4, #16] 183# CHECK: ldtrb w3, [x4, #16] 184# CHECK: ldtrsb w9, [x3] 185# CHECK: ldtrsb x2, [sp, #128] 186# CHECK: ldtrh w3, [x4, #16] 187# CHECK: ldtrsh w3, [sp, #32] 188# CHECK: ldtrsh x5, [x9, #24] 189# CHECK: ldtrsw x9, [sp, #-128] 190 191 0x85 0x48 0x01 0xb8 192 0x64 0x08 0x00 0xf8 193 0xe2 0x0b 0x02 0xf8 194 0x64 0x08 0x00 0x38 195 0x85 0x48 0x01 0x38 196 0xe2 0x0b 0x02 0x78 197 198# CHECK: sttr w5, [x4, #20] 199# CHECK: sttr x4, [x3] 200# CHECK: sttr x2, [sp, #32] 201# CHECK: sttrb w4, [x3] 202# CHECK: sttrb w5, [x4, #20] 203# CHECK: sttrh w2, [sp, #32] 204 205#----------------------------------------------------------------------------- 206# Pre-indexed loads and stores 207#----------------------------------------------------------------------------- 208 209 0xfd 0x8c 0x40 0xf8 210 0xfe 0x8c 0x40 0xf8 211 0x05 0x1c 0x40 0x3c 212 0x06 0x2c 0x40 0x7c 213 0x07 0x4c 0x40 0xbc 214 0x08 0x8c 0x40 0xfc 215 0x09 0x0c 0xc1 0x3c 216 217# CHECK: ldr x29, [x7, #8]! 218# CHECK: ldr x30, [x7, #8]! 219# CHECK: ldr b5, [x0, #1]! 220# CHECK: ldr h6, [x0, #2]! 221# CHECK: ldr s7, [x0, #4]! 222# CHECK: ldr d8, [x0, #8]! 223# CHECK: ldr q9, [x0, #16]! 224 225 0xfe 0x8c 0x1f 0xf8 226 0xfd 0x8c 0x1f 0xf8 227 0x05 0xfc 0x1f 0x3c 228 0x06 0xec 0x1f 0x7c 229 0x07 0xcc 0x1f 0xbc 230 0x08 0x8c 0x1f 0xfc 231 0x09 0x0c 0x9f 0x3c 232 233# CHECK: str x30, [x7, #-8]! 234# CHECK: str x29, [x7, #-8]! 235# CHECK: str b5, [x0, #-1]! 236# CHECK: str h6, [x0, #-2]! 237# CHECK: str s7, [x0, #-4]! 238# CHECK: str d8, [x0, #-8]! 239# CHECK: str q9, [x0, #-16]! 240 241#----------------------------------------------------------------------------- 242# post-indexed loads and stores 243#----------------------------------------------------------------------------- 244 245 0xfe 0x84 0x1f 0xf8 246 0xfd 0x84 0x1f 0xf8 247 0x05 0xf4 0x1f 0x3c 248 0x06 0xe4 0x1f 0x7c 249 0x07 0xc4 0x1f 0xbc 250 0x08 0x84 0x1f 0xfc 251 0x09 0x04 0x9f 0x3c 252 253# CHECK: str x30, [x7], #-8 254# CHECK: str x29, [x7], #-8 255# CHECK: str b5, [x0], #-1 256# CHECK: str h6, [x0], #-2 257# CHECK: str s7, [x0], #-4 258# CHECK: str d8, [x0], #-8 259# CHECK: str q9, [x0], #-16 260 261 0xfd 0x84 0x40 0xf8 262 0xfe 0x84 0x40 0xf8 263 0x05 0x14 0x40 0x3c 264 0x06 0x24 0x40 0x7c 265 0x07 0x44 0x40 0xbc 266 0x08 0x84 0x40 0xfc 267 0x09 0x04 0xc1 0x3c 268 269# CHECK: ldr x29, [x7], #8 270# CHECK: ldr x30, [x7], #8 271# CHECK: ldr b5, [x0], #1 272# CHECK: ldr h6, [x0], #2 273# CHECK: ldr s7, [x0], #4 274# CHECK: ldr d8, [x0], #8 275# CHECK: ldr q9, [x0], #16 276 277#----------------------------------------------------------------------------- 278# Load/Store pair (indexed offset) 279#----------------------------------------------------------------------------- 280 281 0xe3 0x09 0x42 0x29 282 0xe4 0x27 0x7f 0xa9 283 0xc2 0x0d 0x42 0x69 284 0xe2 0x0f 0x7e 0x69 285 0x4a 0x04 0x48 0x2d 286 0x4a 0x04 0x40 0x6d 287 288# CHECK: ldp w3, w2, [x15, #16] 289# CHECK: ldp x4, x9, [sp, #-16] 290# CHECK: ldpsw x2, x3, [x14, #16] 291# CHECK: ldpsw x2, x3, [sp, #-16] 292# CHECK: ldp s10, s1, [x2, #64] 293# CHECK: ldp d10, d1, [x2] 294 295 0xe3 0x09 0x02 0x29 296 0xe4 0x27 0x3f 0xa9 297 0x4a 0x04 0x08 0x2d 298 0x4a 0x04 0x00 0x6d 299 300# CHECK: stp w3, w2, [x15, #16] 301# CHECK: stp x4, x9, [sp, #-16] 302# CHECK: stp s10, s1, [x2, #64] 303# CHECK: stp d10, d1, [x2] 304 305#----------------------------------------------------------------------------- 306# Load/Store pair (pre-indexed) 307#----------------------------------------------------------------------------- 308 309 0xe3 0x09 0xc2 0x29 310 0xe4 0x27 0xff 0xa9 311 0xc2 0x0d 0xc2 0x69 312 0xe2 0x0f 0xfe 0x69 313 0x4a 0x04 0xc8 0x2d 314 0x4a 0x04 0xc1 0x6d 315 316# CHECK: ldp w3, w2, [x15, #16]! 317# CHECK: ldp x4, x9, [sp, #-16]! 318# CHECK: ldpsw x2, x3, [x14, #16]! 319# CHECK: ldpsw x2, x3, [sp, #-16]! 320# CHECK: ldp s10, s1, [x2, #64]! 321# CHECK: ldp d10, d1, [x2, #16]! 322 323 0xe3 0x09 0x82 0x29 324 0xe4 0x27 0xbf 0xa9 325 0x4a 0x04 0x88 0x2d 326 0x4a 0x04 0x81 0x6d 327 328# CHECK: stp w3, w2, [x15, #16]! 329# CHECK: stp x4, x9, [sp, #-16]! 330# CHECK: stp s10, s1, [x2, #64]! 331# CHECK: stp d10, d1, [x2, #16]! 332 333#----------------------------------------------------------------------------- 334# Load/Store pair (post-indexed) 335#----------------------------------------------------------------------------- 336 337 0xe3 0x09 0xc2 0x28 338 0xe4 0x27 0xff 0xa8 339 0xc2 0x0d 0xc2 0x68 340 0xe2 0x0f 0xfe 0x68 341 0x4a 0x04 0xc8 0x2c 342 0x4a 0x04 0xc1 0x6c 343 344# CHECK: ldp w3, w2, [x15], #16 345# CHECK: ldp x4, x9, [sp], #-16 346# CHECK: ldpsw x2, x3, [x14], #16 347# CHECK: ldpsw x2, x3, [sp], #-16 348# CHECK: ldp s10, s1, [x2], #64 349# CHECK: ldp d10, d1, [x2], #16 350 351 0xe3 0x09 0x82 0x28 352 0xe4 0x27 0xbf 0xa8 353 0x4a 0x04 0x88 0x2c 354 0x4a 0x04 0x81 0x6c 355 356# CHECK: stp w3, w2, [x15], #16 357# CHECK: stp x4, x9, [sp], #-16 358# CHECK: stp s10, s1, [x2], #64 359# CHECK: stp d10, d1, [x2], #16 360 361#----------------------------------------------------------------------------- 362# Load/Store pair (no-allocate) 363#----------------------------------------------------------------------------- 364 365 0xe3 0x09 0x42 0x28 366 0xe4 0x27 0x7f 0xa8 367 0x4a 0x04 0x48 0x2c 368 0x4a 0x04 0x40 0x6c 369 370# CHECK: ldnp w3, w2, [x15, #16] 371# CHECK: ldnp x4, x9, [sp, #-16] 372# CHECK: ldnp s10, s1, [x2, #64] 373# CHECK: ldnp d10, d1, [x2] 374 375 0xe3 0x09 0x02 0x28 376 0xe4 0x27 0x3f 0xa8 377 0x4a 0x04 0x08 0x2c 378 0x4a 0x04 0x00 0x6c 379 380# CHECK: stnp w3, w2, [x15, #16] 381# CHECK: stnp x4, x9, [sp, #-16] 382# CHECK: stnp s10, s1, [x2, #64] 383# CHECK: stnp d10, d1, [x2] 384 385#----------------------------------------------------------------------------- 386# Load/Store register offset 387#----------------------------------------------------------------------------- 388 389 0x00 0x68 0x60 0xb8 390 0x00 0x78 0x60 0xb8 391 0x00 0x68 0x60 0xf8 392 0x00 0x78 0x60 0xf8 393 0x00 0xe8 0x60 0xf8 394 395# CHECK: ldr w0, [x0, x0] 396# CHECK: ldr w0, [x0, x0, lsl #2] 397# CHECK: ldr x0, [x0, x0] 398# CHECK: ldr x0, [x0, x0, lsl #3] 399# CHECK: ldr x0, [x0, x0, sxtx] 400 401 0x21 0x68 0x62 0x3c 402 0x21 0x78 0x62 0x3c 403 0x21 0x68 0x62 0x7c 404 0x21 0x78 0x62 0x7c 405 0x21 0x68 0x62 0xbc 406 0x21 0x78 0x62 0xbc 407 0x21 0x68 0x62 0xfc 408 0x21 0x78 0x62 0xfc 409 0x21 0x68 0xe2 0x3c 410 0x21 0x78 0xe2 0x3c 411 412# CHECK: ldr b1, [x1, x2] 413# CHECK: ldr b1, [x1, x2, lsl #0] 414# CHECK: ldr h1, [x1, x2] 415# CHECK: ldr h1, [x1, x2, lsl #1] 416# CHECK: ldr s1, [x1, x2] 417# CHECK: ldr s1, [x1, x2, lsl #2] 418# CHECK: ldr d1, [x1, x2] 419# CHECK: ldr d1, [x1, x2, lsl #3] 420# CHECK: ldr q1, [x1, x2] 421# CHECK: ldr q1, [x1, x2, lsl #4] 422 423 0x00 0x48 0x20 0x7c 424 0xe1 0x6b 0x23 0xfc 425 0xe1 0x5b 0x23 0xfc 426 0xe1 0x6b 0xa3 0x3c 427 0xe1 0x5b 0xa3 0x3c 428 429# CHECK: str h0, [x0, w0, uxtw] 430# CHECK: str d1, [sp, x3] 431# CHECK: str d1, [sp, w3, uxtw #3] 432# CHECK: str q1, [sp, x3] 433# CHECK: str q1, [sp, w3, uxtw #4] 434 435#----------------------------------------------------------------------------- 436# Load/Store exclusive 437#----------------------------------------------------------------------------- 438 439 0x26 0x7c 0x5f 0x08 440 0x26 0x7c 0x5f 0x48 441 0x27 0x0d 0x7f 0x88 442 0x27 0x0d 0x7f 0xc8 443 444# CHECK: ldxrb w6, [x1] 445# CHECK: ldxrh w6, [x1] 446# CHECK: ldxp w7, w3, [x9] 447# CHECK: ldxp x7, x3, [x9] 448 449 0x64 0x7c 0x01 0xc8 450 0x64 0x7c 0x01 0x88 451 0x64 0x7c 0x01 0x08 452 0x64 0x7c 0x01 0x48 453 0x22 0x18 0x21 0xc8 454 0x22 0x18 0x21 0x88 455 456# CHECK: stxr w1, x4, [x3] 457# CHECK: stxr w1, w4, [x3] 458# CHECK: stxrb w1, w4, [x3] 459# CHECK: stxrh w1, w4, [x3] 460# CHECK: stxp w1, x2, x6, [x1] 461# CHECK: stxp w1, w2, w6, [x1] 462 463#----------------------------------------------------------------------------- 464# Load-acquire/Store-release non-exclusive 465#----------------------------------------------------------------------------- 466 467 0xe4 0xff 0xdf 0x88 468 0xe4 0xff 0xdf 0xc8 469 0xe4 0xff 0xdf 0x08 470 0xe4 0xff 0xdf 0x48 471 472# CHECK: ldar w4, [sp] 473# CHECK: ldar x4, [sp] 474# CHECK: ldarb w4, [sp] 475# CHECK: ldarh w4, [sp] 476 477 0xc3 0xfc 0x9f 0x88 478 0xc3 0xfc 0x9f 0xc8 479 0xc3 0xfc 0x9f 0x08 480 0xc3 0xfc 0x9f 0x48 481 482# CHECK: stlr w3, [x6] 483# CHECK: stlr x3, [x6] 484# CHECK: stlrb w3, [x6] 485# CHECK: stlrh w3, [x6] 486 487#----------------------------------------------------------------------------- 488# Load-acquire/Store-release exclusive 489#----------------------------------------------------------------------------- 490 491 0x82 0xfc 0x5f 0x88 492 0x82 0xfc 0x5f 0xc8 493 0x82 0xfc 0x5f 0x08 494 0x82 0xfc 0x5f 0x48 495 0x22 0x98 0x7f 0x88 496 0x22 0x98 0x7f 0xc8 497 498# CHECK: ldaxr w2, [x4] 499# CHECK: ldaxr x2, [x4] 500# CHECK: ldaxrb w2, [x4] 501# CHECK: ldaxrh w2, [x4] 502# CHECK: ldaxp w2, w6, [x1] 503# CHECK: ldaxp x2, x6, [x1] 504 505 0x27 0xfc 0x08 0xc8 506 0x27 0xfc 0x08 0x88 507 0x27 0xfc 0x08 0x08 508 0x27 0xfc 0x08 0x48 509 0x22 0x98 0x21 0xc8 510 0x22 0x98 0x21 0x88 511 512# CHECK: stlxr w8, x7, [x1] 513# CHECK: stlxr w8, w7, [x1] 514# CHECK: stlxrb w8, w7, [x1] 515# CHECK: stlxrh w8, w7, [x1] 516# CHECK: stlxp w1, x2, x6, [x1] 517# CHECK: stlxp w1, w2, w6, [x1] 518 519#----------------------------------------------------------------------------- 520# Load/Store with explicit LSL values 521#----------------------------------------------------------------------------- 522 0x20 0x78 0xa0 0xb8 523 0x20 0x78 0x60 0xf8 524 0x20 0x78 0x20 0xf8 525 0x20 0x78 0x60 0xb8 526 0x20 0x78 0x20 0xb8 527 0x20 0x78 0xe0 0x3c 528 0x20 0x78 0xa0 0x3c 529 0x20 0x78 0x60 0xfc 530 0x20 0x78 0x20 0xfc 531 0x20 0x78 0x60 0xbc 532 0x20 0x78 0x20 0xbc 533 0x20 0x78 0x60 0x7c 534 0x20 0x78 0x60 0x3c 535 0x20 0x78 0x60 0x38 536 0x20 0x78 0x20 0x38 537 0x20 0x78 0xe0 0x38 538 0x20 0x78 0x60 0x78 539 0x20 0x78 0x20 0x78 540 0x20 0x78 0xe0 0x78 541 0x20 0x78 0xa0 0x38 542 0x20 0x78 0xa0 0x78 543 544# CHECK: ldrsw x0, [x1, x0, lsl #2] 545# CHECK: ldr x0, [x1, x0, lsl #3] 546# CHECK: str x0, [x1, x0, lsl #3] 547# CHECK: ldr w0, [x1, x0, lsl #2] 548# CHECK: str w0, [x1, x0, lsl #2] 549# CHECK: ldr q0, [x1, x0, lsl #4] 550# CHECK: str q0, [x1, x0, lsl #4] 551# CHECK: ldr d0, [x1, x0, lsl #3] 552# CHECK: str d0, [x1, x0, lsl #3] 553# CHECK: ldr s0, [x1, x0, lsl #2] 554# CHECK: str s0, [x1, x0, lsl #2] 555# CHECK: ldr h0, [x1, x0, lsl #1] 556# CHECK: ldr b0, [x1, x0, lsl #0] 557# CHECK: ldrb w0, [x1, x0, lsl #0] 558# CHECK: strb w0, [x1, x0, lsl #0] 559# CHECK: ldrsb w0, [x1, x0, lsl #0] 560# CHECK: ldrh w0, [x1, x0, lsl #1] 561# CHECK: strh w0, [x1, x0, lsl #1] 562# CHECK: ldrsh w0, [x1, x0, lsl #1] 563# CHECK: ldrsb x0, [x1, x0, lsl #0] 564# CHECK: ldrsh x0, [x1, x0, lsl #1] 565