Home | History | Annotate | Download | only in AArch64
      1 # RUN: llvm-mc -triple=aarch64 -disassemble < %s | FileCheck %s
      2 
      3 #------------------------------------------------------------------------------
      4 # Add/sub (immediate)
      5 #------------------------------------------------------------------------------
      6 # CHECK: add      w4, w5, #0
      7 # CHECK: add      w2, w3, #4095
      8 # CHECK: add      w30, w29, #1, lsl #12
      9 # CHECK: add      w13, w5, #4095, lsl #12
     10 # CHECK: add      x5, x7, #1638
     11 0xa4 0x0 0x0 0x11
     12 0x62 0xfc 0x3f 0x11
     13 0xbe 0x7 0x40 0x11
     14 0xad 0xfc 0x7f 0x11
     15 0xe5 0x98 0x19 0x91
     16 
     17 # CHECK: add      w20, wsp, #801
     18 # CHECK: add      wsp, wsp, #1104
     19 # CHECK: add      wsp, w30, #4084
     20 0xf4 0x87 0xc 0x11
     21 0xff 0x43 0x11 0x11
     22 0xdf 0xd3 0x3f 0x11
     23 
     24 # CHECK: add      x0, x24, #291
     25 # CHECK: add      x3, x24, #4095, lsl #12
     26 # CHECK: add      x8, sp, #1074
     27 # CHECK: add      sp, x29, #3816
     28 0x0 0x8f 0x4 0x91
     29 0x3 0xff 0x7f 0x91
     30 0xe8 0xcb 0x10 0x91
     31 0xbf 0xa3 0x3b 0x91
     32 
     33 # CHECK: sub      w0, wsp, #4077
     34 # CHECK: sub      w4, w20, #546, lsl #12
     35 # CHECK: sub      sp, sp, #288
     36 # CHECK: sub      wsp, w19, #16
     37 0xe0 0xb7 0x3f 0x51
     38 0x84 0x8a 0x48 0x51
     39 0xff 0x83 0x4 0xd1
     40 0x7f 0x42 0x0 0x51
     41 
     42 
     43 # CHECK: adds     w13, w23, #291, lsl #12
     44 # CHECK: cmn      w2, #4095
     45 # CHECK: adds     w20, wsp, #0
     46 # CHECK: cmn      x3, #1, lsl #12
     47 0xed 0x8e 0x44 0x31
     48 0x5f 0xfc 0x3f 0x31
     49 0xf4 0x3 0x0 0x31
     50 0x7f 0x4 0x40 0xb1
     51 
     52 # CHECK: cmp      sp, #20, lsl #12
     53 # CHECK: cmp      x30, #4095
     54 # CHECK: subs     x4, sp, #3822
     55 0xff 0x53 0x40 0xf1
     56 0xdf 0xff 0x3f 0xf1
     57 0xe4 0xbb 0x3b 0xf1
     58 
     59 # These should really be CMN
     60 # CHECK: cmn      w3, #291, lsl #12
     61 # CHECK: cmn      wsp, #1365
     62 # CHECK: cmn      sp, #1092, lsl #12
     63 0x7f 0x8c 0x44 0x31
     64 0xff 0x57 0x15 0x31
     65 0xff 0x13 0x51 0xb1
     66 
     67 # CHECK: mov      sp, x30
     68 # CHECK: mov      wsp, w20
     69 # CHECK: mov      x11, sp
     70 # CHECK: mov      w24, wsp
     71 0xdf 0x3 0x0 0x91
     72 0x9f 0x2 0x0 0x11
     73 0xeb 0x3 0x0 0x91
     74 0xf8 0x3 0x0 0x11
     75 
     76 #------------------------------------------------------------------------------
     77 # Add-subtract (shifted register)
     78 #------------------------------------------------------------------------------
     79 
     80 # CHECK: add      w3, w5, w7
     81 # CHECK: add      wzr, w3, w5
     82 # CHECK: add      w20, wzr, w4
     83 # CHECK: add      w4, w6, wzr
     84 # CHECK: add      w11, w13, w15
     85 # CHECK: add      w9, w3, wzr, lsl #10
     86 # CHECK: add      w17, w29, w20, lsl #31
     87 # CHECK: add      w21, w22, w23, lsr #0
     88 # CHECK: add      w24, w25, w26, lsr #18
     89 # CHECK: add      w27, w28, w29, lsr #31
     90 # CHECK: add      w2, w3, w4, asr #0
     91 # CHECK: add      w5, w6, w7, asr #21
     92 # CHECK: add      w8, w9, w10, asr #31
     93 0xa3 0x0 0x7 0xb
     94 0x7f 0x0 0x5 0xb
     95 0xf4 0x3 0x4 0xb
     96 0xc4 0x0 0x1f 0xb
     97 0xab 0x1 0xf 0xb
     98 0x69 0x28 0x1f 0xb
     99 0xb1 0x7f 0x14 0xb
    100 0xd5 0x2 0x57 0xb
    101 0x38 0x4b 0x5a 0xb
    102 0x9b 0x7f 0x5d 0xb
    103 0x62 0x0 0x84 0xb
    104 0xc5 0x54 0x87 0xb
    105 0x28 0x7d 0x8a 0xb
    106 
    107 # CHECK: add      x3, x5, x7
    108 # CHECK: add      xzr, x3, x5
    109 # CHECK: add      x20, xzr, x4
    110 # CHECK: add      x4, x6, xzr
    111 # CHECK: add      x11, x13, x15
    112 # CHECK: add      x9, x3, xzr, lsl #10
    113 # CHECK: add      x17, x29, x20, lsl #63
    114 # CHECK: add      x21, x22, x23, lsr #0
    115 # CHECK: add      x24, x25, x26, lsr #18
    116 # CHECK: add      x27, x28, x29, lsr #63
    117 # CHECK: add      x2, x3, x4, asr #0
    118 # CHECK: add      x5, x6, x7, asr #21
    119 # CHECK: add      x8, x9, x10, asr #63
    120 0xa3 0x0 0x7 0x8b
    121 0x7f 0x0 0x5 0x8b
    122 0xf4 0x3 0x4 0x8b
    123 0xc4 0x0 0x1f 0x8b
    124 0xab 0x1 0xf 0x8b
    125 0x69 0x28 0x1f 0x8b
    126 0xb1 0xff 0x14 0x8b
    127 0xd5 0x2 0x57 0x8b
    128 0x38 0x4b 0x5a 0x8b
    129 0x9b 0xff 0x5d 0x8b
    130 0x62 0x0 0x84 0x8b
    131 0xc5 0x54 0x87 0x8b
    132 0x28 0xfd 0x8a 0x8b
    133 
    134 # CHECK: adds     w3, w5, w7
    135 # CHECK: cmn      w3, w5
    136 # CHECK: adds     w20, wzr, w4
    137 # CHECK: adds     w4, w6, wzr
    138 # CHECK: adds     w11, w13, w15
    139 # CHECK: adds     w9, w3, wzr, lsl #10
    140 # CHECK: adds     w17, w29, w20, lsl #31
    141 # CHECK: adds     w21, w22, w23, lsr #0
    142 # CHECK: adds     w24, w25, w26, lsr #18
    143 # CHECK: adds     w27, w28, w29, lsr #31
    144 # CHECK: adds     w2, w3, w4, asr #0
    145 # CHECK: adds     w5, w6, w7, asr #21
    146 # CHECK: adds     w8, w9, w10, asr #31
    147 0xa3 0x0 0x7 0x2b
    148 0x7f 0x0 0x5 0x2b
    149 0xf4 0x3 0x4 0x2b
    150 0xc4 0x0 0x1f 0x2b
    151 0xab 0x1 0xf 0x2b
    152 0x69 0x28 0x1f 0x2b
    153 0xb1 0x7f 0x14 0x2b
    154 0xd5 0x2 0x57 0x2b
    155 0x38 0x4b 0x5a 0x2b
    156 0x9b 0x7f 0x5d 0x2b
    157 0x62 0x0 0x84 0x2b
    158 0xc5 0x54 0x87 0x2b
    159 0x28 0x7d 0x8a 0x2b
    160 
    161 # CHECK: adds     x3, x5, x7
    162 # CHECK: cmn      x3, x5
    163 # CHECK: adds     x20, xzr, x4
    164 # CHECK: adds     x4, x6, xzr
    165 # CHECK: adds     x11, x13, x15
    166 # CHECK: adds     x9, x3, xzr, lsl #10
    167 # CHECK: adds     x17, x29, x20, lsl #63
    168 # CHECK: adds     x21, x22, x23, lsr #0
    169 # CHECK: adds     x24, x25, x26, lsr #18
    170 # CHECK: adds     x27, x28, x29, lsr #63
    171 # CHECK: adds     x2, x3, x4, asr #0
    172 # CHECK: adds     x5, x6, x7, asr #21
    173 # CHECK: adds     x8, x9, x10, asr #63
    174 0xa3 0x0 0x7 0xab
    175 0x7f 0x0 0x5 0xab
    176 0xf4 0x3 0x4 0xab
    177 0xc4 0x0 0x1f 0xab
    178 0xab 0x1 0xf 0xab
    179 0x69 0x28 0x1f 0xab
    180 0xb1 0xff 0x14 0xab
    181 0xd5 0x2 0x57 0xab
    182 0x38 0x4b 0x5a 0xab
    183 0x9b 0xff 0x5d 0xab
    184 0x62 0x0 0x84 0xab
    185 0xc5 0x54 0x87 0xab
    186 0x28 0xfd 0x8a 0xab
    187 
    188 # CHECK: sub      w3, w5, w7
    189 # CHECK: sub      wzr, w3, w5
    190 # CHECK: sub      w20, wzr, w4
    191 # CHECK: sub      w4, w6, wzr
    192 # CHECK: sub      w11, w13, w15
    193 # CHECK: sub      w9, w3, wzr, lsl #10
    194 # CHECK: sub      w17, w29, w20, lsl #31
    195 # CHECK: sub      w21, w22, w23, lsr #0
    196 # CHECK: sub      w24, w25, w26, lsr #18
    197 # CHECK: sub      w27, w28, w29, lsr #31
    198 # CHECK: sub      w2, w3, w4, asr #0
    199 # CHECK: sub      w5, w6, w7, asr #21
    200 # CHECK: sub      w8, w9, w10, asr #31
    201 0xa3 0x0 0x7 0x4b
    202 0x7f 0x0 0x5 0x4b
    203 0xf4 0x3 0x4 0x4b
    204 0xc4 0x0 0x1f 0x4b
    205 0xab 0x1 0xf 0x4b
    206 0x69 0x28 0x1f 0x4b
    207 0xb1 0x7f 0x14 0x4b
    208 0xd5 0x2 0x57 0x4b
    209 0x38 0x4b 0x5a 0x4b
    210 0x9b 0x7f 0x5d 0x4b
    211 0x62 0x0 0x84 0x4b
    212 0xc5 0x54 0x87 0x4b
    213 0x28 0x7d 0x8a 0x4b
    214 
    215 # CHECK: sub      x3, x5, x7
    216 # CHECK: sub      xzr, x3, x5
    217 # CHECK: sub      x20, xzr, x4
    218 # CHECK: sub      x4, x6, xzr
    219 # CHECK: sub      x11, x13, x15
    220 # CHECK: sub      x9, x3, xzr, lsl #10
    221 # CHECK: sub      x17, x29, x20, lsl #63
    222 # CHECK: sub      x21, x22, x23, lsr #0
    223 # CHECK: sub      x24, x25, x26, lsr #18
    224 # CHECK: sub      x27, x28, x29, lsr #63
    225 # CHECK: sub      x2, x3, x4, asr #0
    226 # CHECK: sub      x5, x6, x7, asr #21
    227 # CHECK: sub      x8, x9, x10, asr #63
    228 0xa3 0x0 0x7 0xcb
    229 0x7f 0x0 0x5 0xcb
    230 0xf4 0x3 0x4 0xcb
    231 0xc4 0x0 0x1f 0xcb
    232 0xab 0x1 0xf 0xcb
    233 0x69 0x28 0x1f 0xcb
    234 0xb1 0xff 0x14 0xcb
    235 0xd5 0x2 0x57 0xcb
    236 0x38 0x4b 0x5a 0xcb
    237 0x9b 0xff 0x5d 0xcb
    238 0x62 0x0 0x84 0xcb
    239 0xc5 0x54 0x87 0xcb
    240 0x28 0xfd 0x8a 0xcb
    241 
    242 # CHECK: subs     w3, w5, w7
    243 # CHECK: cmp      w3, w5
    244 # CHECK: subs     w20, wzr, w4
    245 # CHECK: subs     w4, w6, wzr
    246 # CHECK: subs     w11, w13, w15
    247 # CHECK: subs     w9, w3, wzr, lsl #10
    248 # CHECK: subs     w17, w29, w20, lsl #31
    249 # CHECK: subs     w21, w22, w23, lsr #0
    250 # CHECK: subs     w24, w25, w26, lsr #18
    251 # CHECK: subs     w27, w28, w29, lsr #31
    252 # CHECK: subs     w2, w3, w4, asr #0
    253 # CHECK: subs     w5, w6, w7, asr #21
    254 # CHECK: subs     w8, w9, w10, asr #31
    255 0xa3 0x0 0x7 0x6b
    256 0x7f 0x0 0x5 0x6b
    257 0xf4 0x3 0x4 0x6b
    258 0xc4 0x0 0x1f 0x6b
    259 0xab 0x1 0xf 0x6b
    260 0x69 0x28 0x1f 0x6b
    261 0xb1 0x7f 0x14 0x6b
    262 0xd5 0x2 0x57 0x6b
    263 0x38 0x4b 0x5a 0x6b
    264 0x9b 0x7f 0x5d 0x6b
    265 0x62 0x0 0x84 0x6b
    266 0xc5 0x54 0x87 0x6b
    267 0x28 0x7d 0x8a 0x6b
    268 
    269 # CHECK: subs     x3, x5, x7
    270 # CHECK: cmp      x3, x5
    271 # CHECK: subs     x20, xzr, x4
    272 # CHECK: subs     x4, x6, xzr
    273 # CHECK: subs     x11, x13, x15
    274 # CHECK: subs     x9, x3, xzr, lsl #10
    275 # CHECK: subs     x17, x29, x20, lsl #63
    276 # CHECK: subs     x21, x22, x23, lsr #0
    277 # CHECK: subs     x24, x25, x26, lsr #18
    278 # CHECK: subs     x27, x28, x29, lsr #63
    279 # CHECK: subs     x2, x3, x4, asr #0
    280 # CHECK: subs     x5, x6, x7, asr #21
    281 # CHECK: subs     x8, x9, x10, asr #63
    282 0xa3 0x0 0x7 0xeb
    283 0x7f 0x0 0x5 0xeb
    284 0xf4 0x3 0x4 0xeb
    285 0xc4 0x0 0x1f 0xeb
    286 0xab 0x1 0xf 0xeb
    287 0x69 0x28 0x1f 0xeb
    288 0xb1 0xff 0x14 0xeb
    289 0xd5 0x2 0x57 0xeb
    290 0x38 0x4b 0x5a 0xeb
    291 0x9b 0xff 0x5d 0xeb
    292 0x62 0x0 0x84 0xeb
    293 0xc5 0x54 0x87 0xeb
    294 0x28 0xfd 0x8a 0xeb
    295 
    296 # CHECK: cmn      w0, w3
    297 # CHECK: cmn      wzr, w4
    298 # CHECK: cmn      w5, wzr
    299 # CHECK: cmn      w6, w7
    300 # CHECK: cmn      w8, w9, lsl #15
    301 # CHECK: cmn      w10, w11, lsl #31
    302 # CHECK: cmn      w12, w13, lsr #0
    303 # CHECK: cmn      w14, w15, lsr #21
    304 # CHECK: cmn      w16, w17, lsr #31
    305 # CHECK: cmn      w18, w19, asr #0
    306 # CHECK: cmn      w20, w21, asr #22
    307 # CHECK: cmn      w22, w23, asr #31
    308 0x1f 0x0 0x3 0x2b
    309 0xff 0x3 0x4 0x2b
    310 0xbf 0x0 0x1f 0x2b
    311 0xdf 0x0 0x7 0x2b
    312 0x1f 0x3d 0x9 0x2b
    313 0x5f 0x7d 0xb 0x2b
    314 0x9f 0x1 0x4d 0x2b
    315 0xdf 0x55 0x4f 0x2b
    316 0x1f 0x7e 0x51 0x2b
    317 0x5f 0x2 0x93 0x2b
    318 0x9f 0x5a 0x95 0x2b
    319 0xdf 0x7e 0x97 0x2b
    320 
    321 # CHECK: cmn      x0, x3
    322 # CHECK: cmn      xzr, x4
    323 # CHECK: cmn      x5, xzr
    324 # CHECK: cmn      x6, x7
    325 # CHECK: cmn      x8, x9, lsl #15
    326 # CHECK: cmn      x10, x11, lsl #63
    327 # CHECK: cmn      x12, x13, lsr #0
    328 # CHECK: cmn      x14, x15, lsr #41
    329 # CHECK: cmn      x16, x17, lsr #63
    330 # CHECK: cmn      x18, x19, asr #0
    331 # CHECK: cmn      x20, x21, asr #55
    332 # CHECK: cmn      x22, x23, asr #63
    333 0x1f 0x0 0x3 0xab
    334 0xff 0x3 0x4 0xab
    335 0xbf 0x0 0x1f 0xab
    336 0xdf 0x0 0x7 0xab
    337 0x1f 0x3d 0x9 0xab
    338 0x5f 0xfd 0xb 0xab
    339 0x9f 0x1 0x4d 0xab
    340 0xdf 0xa5 0x4f 0xab
    341 0x1f 0xfe 0x51 0xab
    342 0x5f 0x2 0x93 0xab
    343 0x9f 0xde 0x95 0xab
    344 0xdf 0xfe 0x97 0xab
    345 
    346 # CHECK: cmp      w0, w3
    347 # CHECK: cmp      wzr, w4
    348 # CHECK: cmp      w5, wzr
    349 # CHECK: cmp      w6, w7
    350 # CHECK: cmp      w8, w9, lsl #15
    351 # CHECK: cmp      w10, w11, lsl #31
    352 # CHECK: cmp      w12, w13, lsr #0
    353 # CHECK: cmp      w14, w15, lsr #21
    354 # CHECK: cmp      w16, w17, lsr #31
    355 # CHECK: cmp      w18, w19, asr #0
    356 # CHECK: cmp      w20, w21, asr #22
    357 # CHECK: cmp      w22, w23, asr #31
    358 0x1f 0x0 0x3 0x6b
    359 0xff 0x3 0x4 0x6b
    360 0xbf 0x0 0x1f 0x6b
    361 0xdf 0x0 0x7 0x6b
    362 0x1f 0x3d 0x9 0x6b
    363 0x5f 0x7d 0xb 0x6b
    364 0x9f 0x1 0x4d 0x6b
    365 0xdf 0x55 0x4f 0x6b
    366 0x1f 0x7e 0x51 0x6b
    367 0x5f 0x2 0x93 0x6b
    368 0x9f 0x5a 0x95 0x6b
    369 0xdf 0x7e 0x97 0x6b
    370 
    371 # CHECK: cmp      x0, x3
    372 # CHECK: cmp      xzr, x4
    373 # CHECK: cmp      x5, xzr
    374 # CHECK: cmp      x6, x7
    375 # CHECK: cmp      x8, x9, lsl #15
    376 # CHECK: cmp      x10, x11, lsl #63
    377 # CHECK: cmp      x12, x13, lsr #0
    378 # CHECK: cmp      x14, x15, lsr #41
    379 # CHECK: cmp      x16, x17, lsr #63
    380 # CHECK: cmp      x18, x19, asr #0
    381 # CHECK: cmp      x20, x21, asr #55
    382 # CHECK: cmp      x22, x23, asr #63
    383 0x1f 0x0 0x3 0xeb
    384 0xff 0x3 0x4 0xeb
    385 0xbf 0x0 0x1f 0xeb
    386 0xdf 0x0 0x7 0xeb
    387 0x1f 0x3d 0x9 0xeb
    388 0x5f 0xfd 0xb 0xeb
    389 0x9f 0x1 0x4d 0xeb
    390 0xdf 0xa5 0x4f 0xeb
    391 0x1f 0xfe 0x51 0xeb
    392 0x5f 0x2 0x93 0xeb
    393 0x9f 0xde 0x95 0xeb
    394 0xdf 0xfe 0x97 0xeb
    395 
    396 # CHECK: sub      w29, wzr, w30
    397 # CHECK: sub      w30, wzr, wzr
    398 # CHECK: sub      wzr, wzr, w0
    399 # CHECK: sub      w28, wzr, w27
    400 # CHECK: sub      w26, wzr, w25, lsl #29
    401 # CHECK: sub      w24, wzr, w23, lsl #31
    402 # CHECK: sub      w22, wzr, w21, lsr #0
    403 # CHECK: sub      w20, wzr, w19, lsr #1
    404 # CHECK: sub      w18, wzr, w17, lsr #31
    405 # CHECK: sub      w16, wzr, w15, asr #0
    406 # CHECK: sub      w14, wzr, w13, asr #12
    407 # CHECK: sub      w12, wzr, w11, asr #31
    408 0xfd 0x3 0x1e 0x4b
    409 0xfe 0x3 0x1f 0x4b
    410 0xff 0x3 0x0 0x4b
    411 0xfc 0x3 0x1b 0x4b
    412 0xfa 0x77 0x19 0x4b
    413 0xf8 0x7f 0x17 0x4b
    414 0xf6 0x3 0x55 0x4b
    415 0xf4 0x7 0x53 0x4b
    416 0xf2 0x7f 0x51 0x4b
    417 0xf0 0x3 0x8f 0x4b
    418 0xee 0x33 0x8d 0x4b
    419 0xec 0x7f 0x8b 0x4b
    420 
    421 # CHECK: sub      x29, xzr, x30
    422 # CHECK: sub      x30, xzr, xzr
    423 # CHECK: sub      xzr, xzr, x0
    424 # CHECK: sub      x28, xzr, x27
    425 # CHECK: sub      x26, xzr, x25, lsl #29
    426 # CHECK: sub      x24, xzr, x23, lsl #31
    427 # CHECK: sub      x22, xzr, x21, lsr #0
    428 # CHECK: sub      x20, xzr, x19, lsr #1
    429 # CHECK: sub      x18, xzr, x17, lsr #31
    430 # CHECK: sub      x16, xzr, x15, asr #0
    431 # CHECK: sub      x14, xzr, x13, asr #12
    432 # CHECK: sub      x12, xzr, x11, asr #31
    433 0xfd 0x3 0x1e 0xcb
    434 0xfe 0x3 0x1f 0xcb
    435 0xff 0x3 0x0 0xcb
    436 0xfc 0x3 0x1b 0xcb
    437 0xfa 0x77 0x19 0xcb
    438 0xf8 0x7f 0x17 0xcb
    439 0xf6 0x3 0x55 0xcb
    440 0xf4 0x7 0x53 0xcb
    441 0xf2 0x7f 0x51 0xcb
    442 0xf0 0x3 0x8f 0xcb
    443 0xee 0x33 0x8d 0xcb
    444 0xec 0x7f 0x8b 0xcb
    445 
    446 # CHECK: subs     w29, wzr, w30
    447 # CHECK: subs     w30, wzr, wzr
    448 # CHECK: cmp      wzr, w0
    449 # CHECK: subs     w28, wzr, w27
    450 # CHECK: subs     w26, wzr, w25, lsl #29
    451 # CHECK: subs     w24, wzr, w23, lsl #31
    452 # CHECK: subs     w22, wzr, w21, lsr #0
    453 # CHECK: subs     w20, wzr, w19, lsr #1
    454 # CHECK: subs     w18, wzr, w17, lsr #31
    455 # CHECK: subs     w16, wzr, w15, asr #0
    456 # CHECK: subs     w14, wzr, w13, asr #12
    457 # CHECK: subs     w12, wzr, w11, asr #31
    458 0xfd 0x3 0x1e 0x6b
    459 0xfe 0x3 0x1f 0x6b
    460 0xff 0x3 0x0 0x6b
    461 0xfc 0x3 0x1b 0x6b
    462 0xfa 0x77 0x19 0x6b
    463 0xf8 0x7f 0x17 0x6b
    464 0xf6 0x3 0x55 0x6b
    465 0xf4 0x7 0x53 0x6b
    466 0xf2 0x7f 0x51 0x6b
    467 0xf0 0x3 0x8f 0x6b
    468 0xee 0x33 0x8d 0x6b
    469 0xec 0x7f 0x8b 0x6b
    470 
    471 # CHECK: subs     x29, xzr, x30
    472 # CHECK: subs     x30, xzr, xzr
    473 # CHECK: cmp      xzr, x0
    474 # CHECK: subs     x28, xzr, x27
    475 # CHECK: subs     x26, xzr, x25, lsl #29
    476 # CHECK: subs     x24, xzr, x23, lsl #31
    477 # CHECK: subs     x22, xzr, x21, lsr #0
    478 # CHECK: subs     x20, xzr, x19, lsr #1
    479 # CHECK: subs     x18, xzr, x17, lsr #31
    480 # CHECK: subs     x16, xzr, x15, asr #0
    481 # CHECK: subs     x14, xzr, x13, asr #12
    482 # CHECK: subs     x12, xzr, x11, asr #31
    483 0xfd 0x3 0x1e 0xeb
    484 0xfe 0x3 0x1f 0xeb
    485 0xff 0x3 0x0 0xeb
    486 0xfc 0x3 0x1b 0xeb
    487 0xfa 0x77 0x19 0xeb
    488 0xf8 0x7f 0x17 0xeb
    489 0xf6 0x3 0x55 0xeb
    490 0xf4 0x7 0x53 0xeb
    491 0xf2 0x7f 0x51 0xeb
    492 0xf0 0x3 0x8f 0xeb
    493 0xee 0x33 0x8d 0xeb
    494 0xec 0x7f 0x8b 0xeb
    495 
    496 #------------------------------------------------------------------------------
    497 # Add-subtract (shifted register)
    498 #------------------------------------------------------------------------------
    499 
    500 # CHECK: adc      w29, w27, w25
    501 # CHECK: adc      wzr, w3, w4
    502 # CHECK: adc      w9, wzr, w10
    503 # CHECK: adc      w20, w0, wzr
    504 0x7d 0x3 0x19 0x1a
    505 0x7f 0x0 0x4 0x1a
    506 0xe9 0x3 0xa 0x1a
    507 0x14 0x0 0x1f 0x1a
    508 
    509 # CHECK: adc      x29, x27, x25
    510 # CHECK: adc      xzr, x3, x4
    511 # CHECK: adc      x9, xzr, x10
    512 # CHECK: adc      x20, x0, xzr
    513 0x7d 0x3 0x19 0x9a
    514 0x7f 0x0 0x4 0x9a
    515 0xe9 0x3 0xa 0x9a
    516 0x14 0x0 0x1f 0x9a
    517 
    518 # CHECK: adcs     w29, w27, w25
    519 # CHECK: adcs     wzr, w3, w4
    520 # CHECK: adcs     w9, wzr, w10
    521 # CHECK: adcs     w20, w0, wzr
    522 0x7d 0x3 0x19 0x3a
    523 0x7f 0x0 0x4 0x3a
    524 0xe9 0x3 0xa 0x3a
    525 0x14 0x0 0x1f 0x3a
    526 
    527 # CHECK: adcs     x29, x27, x25
    528 # CHECK: adcs     xzr, x3, x4
    529 # CHECK: adcs     x9, xzr, x10
    530 # CHECK: adcs     x20, x0, xzr
    531 0x7d 0x3 0x19 0xba
    532 0x7f 0x0 0x4 0xba
    533 0xe9 0x3 0xa 0xba
    534 0x14 0x0 0x1f 0xba
    535 
    536 # CHECK: sbc      w29, w27, w25
    537 # CHECK: sbc      wzr, w3, w4
    538 # CHECK: ngc      w9, w10
    539 # CHECK: sbc      w20, w0, wzr
    540 0x7d 0x3 0x19 0x5a
    541 0x7f 0x0 0x4 0x5a
    542 0xe9 0x3 0xa 0x5a
    543 0x14 0x0 0x1f 0x5a
    544 
    545 # CHECK: sbc      x29, x27, x25
    546 # CHECK: sbc      xzr, x3, x4
    547 # CHECK: ngc      x9, x10
    548 # CHECK: sbc      x20, x0, xzr
    549 0x7d 0x3 0x19 0xda
    550 0x7f 0x0 0x4 0xda
    551 0xe9 0x3 0xa 0xda
    552 0x14 0x0 0x1f 0xda
    553 
    554 # CHECK: sbcs     w29, w27, w25
    555 # CHECK: sbcs     wzr, w3, w4
    556 # CHECK: ngcs     w9, w10
    557 # CHECK: sbcs     w20, w0, wzr
    558 0x7d 0x3 0x19 0x7a
    559 0x7f 0x0 0x4 0x7a
    560 0xe9 0x3 0xa 0x7a
    561 0x14 0x0 0x1f 0x7a
    562 
    563 # CHECK: sbcs     x29, x27, x25
    564 # CHECK: sbcs     xzr, x3, x4
    565 # CHECK: ngcs     x9, x10
    566 # CHECK: sbcs     x20, x0, xzr
    567 0x7d 0x3 0x19 0xfa
    568 0x7f 0x0 0x4 0xfa
    569 0xe9 0x3 0xa 0xfa
    570 0x14 0x0 0x1f 0xfa
    571 
    572 # CHECK: ngc      w3, w12
    573 # CHECK: ngc      wzr, w9
    574 # CHECK: ngc      w23, wzr
    575 0xe3 0x3 0xc 0x5a
    576 0xff 0x3 0x9 0x5a
    577 0xf7 0x3 0x1f 0x5a
    578 
    579 # CHECK: ngc      x29, x30
    580 # CHECK: ngc      xzr, x0
    581 # CHECK: ngc      x0, xzr
    582 0xfd 0x3 0x1e 0xda
    583 0xff 0x3 0x0 0xda
    584 0xe0 0x3 0x1f 0xda
    585 
    586 # CHECK: ngcs     w3, w12
    587 # CHECK: ngcs     wzr, w9
    588 # CHECK: ngcs     w23, wzr
    589 0xe3 0x3 0xc 0x7a
    590 0xff 0x3 0x9 0x7a
    591 0xf7 0x3 0x1f 0x7a
    592 
    593 # CHECK: ngcs     x29, x30
    594 # CHECK: ngcs     xzr, x0
    595 # CHECK: ngcs     x0, xzr
    596 0xfd 0x3 0x1e 0xfa
    597 0xff 0x3 0x0 0xfa
    598 0xe0 0x3 0x1f 0xfa
    599 
    600 #------------------------------------------------------------------------------
    601 # Compare and branch (immediate)
    602 #------------------------------------------------------------------------------
    603 
    604 # CHECK: sbfx     x1, x2, #3, #2
    605 # CHECK: asr      x3, x4, #63
    606 # CHECK: asr      wzr, wzr, #31
    607 # CHECK: sbfx     w12, w9, #0, #1
    608 0x41 0x10 0x43 0x93
    609 0x83 0xfc 0x7f 0x93
    610 0xff 0x7f 0x1f 0x13
    611 0x2c 0x1 0x0 0x13
    612 
    613 # CHECK: ubfiz    x4, x5, #52, #11
    614 # CHECK: ubfx     xzr, x4, #0, #1
    615 # CHECK: ubfiz    x4, xzr, #1, #6
    616 # CHECK: lsr      x5, x6, #12
    617 0xa4 0x28 0x4c 0xd3
    618 0x9f 0x0 0x40 0xd3
    619 0xe4 0x17 0x7f 0xd3
    620 0xc5 0xfc 0x4c 0xd3
    621 
    622 # CHECK: bfi      x4, x5, #52, #11
    623 # CHECK: bfxil    xzr, x4, #0, #1
    624 # CHECK: bfi      x4, xzr, #1, #6
    625 # CHECK: bfxil    x5, x6, #12, #52
    626 0xa4 0x28 0x4c 0xb3
    627 0x9f 0x0 0x40 0xb3
    628 0xe4 0x17 0x7f 0xb3
    629 0xc5 0xfc 0x4c 0xb3
    630 
    631 # CHECK: sxtb     w1, w2
    632 # CHECK: sxtb     xzr, w3
    633 # CHECK: sxth     w9, w10
    634 # CHECK: sxth     x0, w1
    635 # CHECK: sxtw     x3, w30
    636 0x41 0x1c 0x0 0x13
    637 0x7f 0x1c 0x40 0x93
    638 0x49 0x3d 0x0 0x13
    639 0x20 0x3c 0x40 0x93
    640 0xc3 0x7f 0x40 0x93
    641 
    642 # CHECK: uxtb     w1, w2
    643 # CHECK: uxth     w9, w10
    644 # CHECK: ubfx     x3, x30, #0, #32
    645 0x41 0x1c 0x0 0x53
    646 0x49 0x3d 0x0 0x53
    647 0xc3 0x7f 0x40 0xd3
    648 
    649 # CHECK: asr      w3, w2, #0
    650 # CHECK: asr      w9, w10, #31
    651 # CHECK: asr      x20, x21, #63
    652 # CHECK: asr      w1, wzr, #3
    653 0x43 0x7c 0x0 0x13
    654 0x49 0x7d 0x1f 0x13
    655 0xb4 0xfe 0x7f 0x93
    656 0xe1 0x7f 0x3 0x13
    657 
    658 # CHECK: lsr      w3, w2, #0
    659 # CHECK: lsr      w9, w10, #31
    660 # CHECK: lsr      x20, x21, #63
    661 # CHECK: lsr      wzr, wzr, #3
    662 0x43 0x7c 0x0 0x53
    663 0x49 0x7d 0x1f 0x53
    664 0xb4 0xfe 0x7f 0xd3
    665 0xff 0x7f 0x3 0x53
    666 
    667 # CHECK: lsr      w3, w2, #0
    668 # CHECK: lsl      w9, w10, #31
    669 # CHECK: lsl      x20, x21, #63
    670 # CHECK: lsl      w1, wzr, #3
    671 0x43 0x7c 0x0 0x53
    672 0x49 0x1 0x1 0x53
    673 0xb4 0x2 0x41 0xd3
    674 0xe1 0x73 0x1d 0x53
    675 
    676 # CHECK: sbfx     w9, w10, #0, #1
    677 # CHECK: sbfiz    x2, x3, #63, #1
    678 # CHECK: asr      x19, x20, #0
    679 # CHECK: sbfiz    x9, x10, #5, #59
    680 # CHECK: asr      w9, w10, #0
    681 # CHECK: sbfiz    w11, w12, #31, #1
    682 # CHECK: sbfiz    w13, w14, #29, #3
    683 # CHECK: sbfiz    xzr, xzr, #10, #11
    684 0x49 0x1 0x0 0x13
    685 0x62 0x0 0x41 0x93
    686 0x93 0xfe 0x40 0x93
    687 0x49 0xe9 0x7b 0x93
    688 0x49 0x7d 0x0 0x13
    689 0x8b 0x1 0x1 0x13
    690 0xcd 0x9 0x3 0x13
    691 0xff 0x2b 0x76 0x93
    692 
    693 # CHECK: sbfx     w9, w10, #0, #1
    694 # CHECK: asr      x2, x3, #63
    695 # CHECK: asr      x19, x20, #0
    696 # CHECK: asr      x9, x10, #5
    697 # CHECK: asr      w9, w10, #0
    698 # CHECK: asr      w11, w12, #31
    699 # CHECK: asr      w13, w14, #29
    700 # CHECK: sbfx     xzr, xzr, #10, #11
    701 0x49 0x1 0x0 0x13
    702 0x62 0xfc 0x7f 0x93
    703 0x93 0xfe 0x40 0x93
    704 0x49 0xfd 0x45 0x93
    705 0x49 0x7d 0x0 0x13
    706 0x8b 0x7d 0x1f 0x13
    707 0xcd 0x7d 0x1d 0x13
    708 0xff 0x53 0x4a 0x93
    709 
    710 # CHECK: bfxil    w9, w10, #0, #1
    711 # CHECK: bfi      x2, x3, #63, #1
    712 # CHECK: bfxil    x19, x20, #0, #64
    713 # CHECK: bfi      x9, x10, #5, #59
    714 # CHECK: bfxil    w9, w10, #0, #32
    715 # CHECK: bfi      w11, w12, #31, #1
    716 # CHECK: bfi      w13, w14, #29, #3
    717 # CHECK: bfi      xzr, xzr, #10, #11
    718 0x49 0x1 0x0 0x33
    719 0x62 0x0 0x41 0xb3
    720 0x93 0xfe 0x40 0xb3
    721 0x49 0xe9 0x7b 0xb3
    722 0x49 0x7d 0x0 0x33
    723 0x8b 0x1 0x1 0x33
    724 0xcd 0x9 0x3 0x33
    725 0xff 0x2b 0x76 0xb3
    726 
    727 # CHECK: bfxil    w9, w10, #0, #1
    728 # CHECK: bfxil    x2, x3, #63, #1
    729 # CHECK: bfxil    x19, x20, #0, #64
    730 # CHECK: bfxil    x9, x10, #5, #59
    731 # CHECK: bfxil    w9, w10, #0, #32
    732 # CHECK: bfxil    w11, w12, #31, #1
    733 # CHECK: bfxil    w13, w14, #29, #3
    734 # CHECK: bfxil    xzr, xzr, #10, #11
    735 0x49 0x1 0x0 0x33
    736 0x62 0xfc 0x7f 0xb3
    737 0x93 0xfe 0x40 0xb3
    738 0x49 0xfd 0x45 0xb3
    739 0x49 0x7d 0x0 0x33
    740 0x8b 0x7d 0x1f 0x33
    741 0xcd 0x7d 0x1d 0x33
    742 0xff 0x53 0x4a 0xb3
    743 
    744 # CHECK: ubfx     w9, w10, #0, #1
    745 # CHECK: lsl      x2, x3, #63
    746 # CHECK: lsr      x19, x20, #0
    747 # CHECK: lsl      x9, x10, #5
    748 # CHECK: lsr      w9, w10, #0
    749 # CHECK: lsl      w11, w12, #31
    750 # CHECK: lsl      w13, w14, #29
    751 # CHECK: ubfiz    xzr, xzr, #10, #11
    752 0x49 0x1 0x0 0x53
    753 0x62 0x0 0x41 0xd3
    754 0x93 0xfe 0x40 0xd3
    755 0x49 0xe9 0x7b 0xd3
    756 0x49 0x7d 0x0 0x53
    757 0x8b 0x1 0x1 0x53
    758 0xcd 0x9 0x3 0x53
    759 0xff 0x2b 0x76 0xd3
    760 
    761 # CHECK: ubfx     w9, w10, #0, #1
    762 # CHECK: lsr      x2, x3, #63
    763 # CHECK: lsr      x19, x20, #0
    764 # CHECK: lsr      x9, x10, #5
    765 # CHECK: lsr      w9, w10, #0
    766 # CHECK: lsr      w11, w12, #31
    767 # CHECK: lsr      w13, w14, #29
    768 # CHECK: ubfx     xzr, xzr, #10, #11
    769 0x49 0x1 0x0 0x53
    770 0x62 0xfc 0x7f 0xd3
    771 0x93 0xfe 0x40 0xd3
    772 0x49 0xfd 0x45 0xd3
    773 0x49 0x7d 0x0 0x53
    774 0x8b 0x7d 0x1f 0x53
    775 0xcd 0x7d 0x1d 0x53
    776 0xff 0x53 0x4a 0xd3
    777 
    778 
    779 #------------------------------------------------------------------------------
    780 # Compare and branch (immediate)
    781 #------------------------------------------------------------------------------
    782 
    783 # CHECK: cbz      w5, #4
    784 # CHECK: cbz      x5, #0
    785 # CHECK: cbnz     x2, #-4
    786 # CHECK: cbnz     x26, #1048572
    787 0x25 0x0 0x0 0x34
    788 0x05 0x0 0x0 0xb4
    789 0xe2 0xff 0xff 0xb5
    790 0xfa 0xff 0x7f 0xb5
    791 
    792 # CHECK: cbz      wzr, #0
    793 # CHECK: cbnz     xzr, #0
    794 0x1f 0x0 0x0 0x34
    795 0x1f 0x0 0x0 0xb5
    796 
    797 #------------------------------------------------------------------------------
    798 # Conditional branch (immediate)
    799 #------------------------------------------------------------------------------
    800 
    801 # CHECK: b.ne #4
    802 # CHECK: b.ge #1048572
    803 # CHECK: b.ge #-4
    804 0x21 0x00 0x00 0x54
    805 0xea 0xff 0x7f 0x54
    806 0xea 0xff 0xff 0x54
    807 
    808 #------------------------------------------------------------------------------
    809 # Conditional compare (immediate)
    810 #------------------------------------------------------------------------------
    811 
    812 # CHECK: ccmp w1, #31, #0, eq
    813 # CHECK: ccmp w3, #0, #15, hs
    814 # CHECK: ccmp wzr, #15, #13, hs
    815 0x20 0x08 0x5f 0x7a
    816 0x6f 0x28 0x40 0x7a
    817 0xed 0x2b 0x4f 0x7a
    818 
    819 # CHECK: ccmp x9, #31, #0, le
    820 # CHECK: ccmp x3, #0, #15, gt
    821 # CHECK: ccmp xzr, #5, #7, ne
    822 0x20 0xd9 0x5f 0xfa
    823 0x6f 0xc8 0x40 0xfa
    824 0xe7 0x1b 0x45 0xfa
    825 
    826 # CHECK: ccmn w1, #31, #0, eq
    827 # CHECK: ccmn w3, #0, #15, hs
    828 # CHECK: ccmn wzr, #15, #13, hs
    829 0x20 0x08 0x5f 0x3a
    830 0x6f 0x28 0x40 0x3a
    831 0xed 0x2b 0x4f 0x3a
    832 
    833 # CHECK: ccmn x9, #31, #0, le
    834 # CHECK: ccmn x3, #0, #15, gt
    835 # CHECK: ccmn xzr, #5, #7, ne
    836 0x20 0xd9 0x5f 0xba
    837 0x6f 0xc8 0x40 0xba
    838 0xe7 0x1b 0x45 0xba
    839 
    840 #------------------------------------------------------------------------------
    841 # Conditional compare (register)
    842 #------------------------------------------------------------------------------
    843 
    844 # CHECK: ccmp w1, wzr, #0, eq
    845 # CHECK: ccmp w3, w0, #15, hs
    846 # CHECK: ccmp wzr, w15, #13, hs
    847 0x20 0x00 0x5f 0x7a
    848 0x6f 0x20 0x40 0x7a
    849 0xed 0x23 0x4f 0x7a
    850 
    851 # CHECK: ccmp x9, xzr, #0, le
    852 # CHECK: ccmp x3, x0, #15, gt
    853 # CHECK: ccmp xzr, x5, #7, ne
    854 0x20 0xd1 0x5f 0xfa
    855 0x6f 0xc0 0x40 0xfa
    856 0xe7 0x13 0x45 0xfa
    857 
    858 # CHECK: ccmn w1, wzr, #0, eq
    859 # CHECK: ccmn w3, w0, #15, hs
    860 # CHECK: ccmn wzr, w15, #13, hs
    861 0x20 0x00 0x5f 0x3a
    862 0x6f 0x20 0x40 0x3a
    863 0xed 0x23 0x4f 0x3a
    864 
    865 # CHECK: ccmn x9, xzr, #0, le
    866 # CHECK: ccmn x3, x0, #15, gt
    867 # CHECK: ccmn xzr, x5, #7, ne
    868 0x20 0xd1 0x5f 0xba
    869 0x6f 0xc0 0x40 0xba
    870 0xe7 0x13 0x45 0xba
    871 
    872 #------------------------------------------------------------------------------
    873 # Conditional branch (immediate)
    874 #------------------------------------------------------------------------------
    875 # CHECK: csel     w1, w0, w19, ne
    876 # CHECK: csel     wzr, w5, w9, eq
    877 # CHECK: csel     w9, wzr, w30, gt
    878 # CHECK: csel     w1, w28, wzr, mi
    879 # CHECK: csel     x19, x23, x29, lt
    880 # CHECK: csel     xzr, x3, x4, ge
    881 # CHECK: csel     x5, xzr, x6, hs
    882 # CHECK: csel     x7, x8, xzr, lo
    883 0x1 0x10 0x93 0x1a
    884 0xbf 0x0 0x89 0x1a
    885 0xe9 0xc3 0x9e 0x1a
    886 0x81 0x43 0x9f 0x1a
    887 0xf3 0xb2 0x9d 0x9a
    888 0x7f 0xa0 0x84 0x9a
    889 0xe5 0x23 0x86 0x9a
    890 0x7 0x31 0x9f 0x9a
    891 
    892 # CHECK: csinc    w1, w0, w19, ne
    893 # CHECK: csinc    wzr, w5, w9, eq
    894 # CHECK: csinc    w9, wzr, w30, gt
    895 # CHECK: csinc    w1, w28, wzr, mi
    896 # CHECK: csinc    x19, x23, x29, lt
    897 # CHECK: csinc    xzr, x3, x4, ge
    898 # CHECK: csinc    x5, xzr, x6, hs
    899 # CHECK: csinc    x7, x8, xzr, lo
    900 0x1 0x14 0x93 0x1a
    901 0xbf 0x4 0x89 0x1a
    902 0xe9 0xc7 0x9e 0x1a
    903 0x81 0x47 0x9f 0x1a
    904 0xf3 0xb6 0x9d 0x9a
    905 0x7f 0xa4 0x84 0x9a
    906 0xe5 0x27 0x86 0x9a
    907 0x7 0x35 0x9f 0x9a
    908 
    909 # CHECK: csinv    w1, w0, w19, ne
    910 # CHECK: csinv    wzr, w5, w9, eq
    911 # CHECK: csinv    w9, wzr, w30, gt
    912 # CHECK: csinv    w1, w28, wzr, mi
    913 # CHECK: csinv    x19, x23, x29, lt
    914 # CHECK: csinv    xzr, x3, x4, ge
    915 # CHECK: csinv    x5, xzr, x6, hs
    916 # CHECK: csinv    x7, x8, xzr, lo
    917 0x1 0x10 0x93 0x5a
    918 0xbf 0x0 0x89 0x5a
    919 0xe9 0xc3 0x9e 0x5a
    920 0x81 0x43 0x9f 0x5a
    921 0xf3 0xb2 0x9d 0xda
    922 0x7f 0xa0 0x84 0xda
    923 0xe5 0x23 0x86 0xda
    924 0x7 0x31 0x9f 0xda
    925 
    926 # CHECK: csneg    w1, w0, w19, ne
    927 # CHECK: csneg    wzr, w5, w9, eq
    928 # CHECK: csneg    w9, wzr, w30, gt
    929 # CHECK: csneg    w1, w28, wzr, mi
    930 # CHECK: csneg    x19, x23, x29, lt
    931 # CHECK: csneg    xzr, x3, x4, ge
    932 # CHECK: csneg    x5, xzr, x6, hs
    933 # CHECK: csneg    x7, x8, xzr, lo
    934 0x1 0x14 0x93 0x5a
    935 0xbf 0x4 0x89 0x5a
    936 0xe9 0xc7 0x9e 0x5a
    937 0x81 0x47 0x9f 0x5a
    938 0xf3 0xb6 0x9d 0xda
    939 0x7f 0xa4 0x84 0xda
    940 0xe5 0x27 0x86 0xda
    941 0x7 0x35 0x9f 0xda
    942 
    943 # CHECK: csinc    w3, wzr, wzr, ne
    944 # CHECK: csinc    x9, xzr, xzr, mi
    945 # CHECK: csinv    w20, wzr, wzr, eq
    946 # CHECK: csinv    x30, xzr, xzr, lt
    947 0xe3 0x17 0x9f 0x1a
    948 0xe9 0x47 0x9f 0x9a
    949 0xf4 0x3 0x9f 0x5a
    950 0xfe 0xb3 0x9f 0xda
    951 
    952 # CHECK: csinc    w3, w5, w5, le
    953 # CHECK: csinc    wzr, w4, w4, gt
    954 # CHECK: csinc    w9, wzr, wzr, ge
    955 # CHECK: csinc    x3, x5, x5, le
    956 # CHECK: csinc    xzr, x4, x4, gt
    957 # CHECK: csinc    x9, xzr, xzr, ge
    958 0xa3 0xd4 0x85 0x1a
    959 0x9f 0xc4 0x84 0x1a
    960 0xe9 0xa7 0x9f 0x1a
    961 0xa3 0xd4 0x85 0x9a
    962 0x9f 0xc4 0x84 0x9a
    963 0xe9 0xa7 0x9f 0x9a
    964 
    965 # CHECK: csinv    w3, w5, w5, le
    966 # CHECK: csinv    wzr, w4, w4, gt
    967 # CHECK: csinv    w9, wzr, wzr, ge
    968 # CHECK: csinv    x3, x5, x5, le
    969 # CHECK: csinv    xzr, x4, x4, gt
    970 # CHECK: csinv    x9, xzr, xzr, ge
    971 0xa3 0xd0 0x85 0x5a
    972 0x9f 0xc0 0x84 0x5a
    973 0xe9 0xa3 0x9f 0x5a
    974 0xa3 0xd0 0x85 0xda
    975 0x9f 0xc0 0x84 0xda
    976 0xe9 0xa3 0x9f 0xda
    977 
    978 # CHECK: csneg     w3, w5, w5, le
    979 # CHECK: csneg     wzr, w4, w4, gt
    980 # CHECK: csneg     w9, wzr, wzr, ge
    981 # CHECK: csneg     x3, x5, x5, le
    982 # CHECK: csneg     xzr, x4, x4, gt
    983 # CHECK: csneg     x9, xzr, xzr, ge
    984 0xa3 0xd4 0x85 0x5a
    985 0x9f 0xc4 0x84 0x5a
    986 0xe9 0xa7 0x9f 0x5a
    987 0xa3 0xd4 0x85 0xda
    988 0x9f 0xc4 0x84 0xda
    989 0xe9 0xa7 0x9f 0xda
    990 
    991 #------------------------------------------------------------------------------
    992 # Data-processing (1 source)
    993 #------------------------------------------------------------------------------
    994 
    995 # CHECK: rbit	w0, w7
    996 # CHECK: rbit   x18, x3
    997 # CHECK: rev16	w17, w1
    998 # CHECK: rev16	x5, x2
    999 # CHECK: rev	w18, w0
   1000 # CHECK: rev32	x20, x1
   1001 0xe0 0x00 0xc0 0x5a
   1002 0x72 0x00 0xc0 0xda
   1003 0x31 0x04 0xc0 0x5a
   1004 0x45 0x04 0xc0 0xda
   1005 0x12 0x08 0xc0 0x5a
   1006 0x34 0x08 0xc0 0xda
   1007 
   1008 # CHECK: rev	x22, x2
   1009 # CHECK: clz	w24, w3
   1010 # CHECK: clz	x26, x4
   1011 # CHECK: cls	w3, w5
   1012 # CHECK: cls	x20, x5
   1013 0x56 0x0c 0xc0 0xda
   1014 0x78 0x10 0xc0 0x5a
   1015 0x9a 0x10 0xc0 0xda
   1016 0xa3 0x14 0xc0 0x5a
   1017 0xb4 0x14 0xc0 0xda
   1018 
   1019 #------------------------------------------------------------------------------
   1020 # Data-processing (2 source)
   1021 #------------------------------------------------------------------------------
   1022 
   1023 # CHECK: crc32b  w5, w7, w20
   1024 # CHECK: crc32h  w28, wzr, w30
   1025 # CHECK: crc32w  w0, w1, w2
   1026 # CHECK: crc32x  w7, w9, x20
   1027 # CHECK: crc32cb w9, w5, w4
   1028 # CHECK: crc32ch w13, w17, w25
   1029 # CHECK: crc32cw wzr, w3, w5
   1030 # CHECK: crc32cx w18, w16, xzr
   1031 0xe5 0x40 0xd4 0x1a
   1032 0xfc 0x47 0xde 0x1a
   1033 0x20 0x48 0xc2 0x1a
   1034 0x27 0x4d 0xd4 0x9a
   1035 0xa9 0x50 0xc4 0x1a
   1036 0x2d 0x56 0xd9 0x1a
   1037 0x7f 0x58 0xc5 0x1a
   1038 0x12 0x5e 0xdf 0x9a
   1039 
   1040 # CHECK: udiv	w0, w7, w10
   1041 # CHECK: udiv	x9, x22, x4
   1042 # CHECK: sdiv	w12, w21, w0
   1043 # CHECK: sdiv	x13, x2, x1
   1044 # CHECK: lsl	w11, w12, w13
   1045 # CHECK: lsl	x14, x15, x16
   1046 # CHECK: lsr	w17, w18, w19
   1047 # CHECK: lsr	x20, x21, x22
   1048 # CHECK: asr	w23, w24, w25
   1049 # CHECK: asr	x26, x27, x28
   1050 # CHECK: ror	w0, w1, w2
   1051 # CHECK: ror    x3, x4, x5
   1052 0xe0 0x08 0xca 0x1a
   1053 0xc9 0x0a 0xc4 0x9a
   1054 0xac 0x0e 0xc0 0x1a
   1055 0x4d 0x0c 0xc1 0x9a
   1056 0x8b 0x21 0xcd 0x1a
   1057 0xee 0x21 0xd0 0x9a
   1058 0x51 0x26 0xd3 0x1a
   1059 0xb4 0x26 0xd6 0x9a
   1060 0x17 0x2b 0xd9 0x1a
   1061 0x7a 0x2b 0xdc 0x9a
   1062 0x20 0x2c 0xc2 0x1a
   1063 0x83 0x2c 0xc5 0x9a
   1064 
   1065 # CHECK: lsl	w6, w7, w8
   1066 # CHECK: lsl	x9, x10, x11
   1067 # CHECK: lsr	w12, w13, w14
   1068 # CHECK: lsr	x15, x16, x17
   1069 # CHECK: asr	w18, w19, w20
   1070 # CHECK: asr	x21, x22, x23
   1071 # CHECK: ror	w24, w25, w26
   1072 # CHECK: ror	x27, x28, x29
   1073 0xe6 0x20 0xc8 0x1a
   1074 0x49 0x21 0xcb 0x9a
   1075 0xac 0x25 0xce 0x1a
   1076 0x0f 0x26 0xd1 0x9a
   1077 0x72 0x2a 0xd4 0x1a
   1078 0xd5 0x2a 0xd7 0x9a
   1079 0x38 0x2f 0xda 0x1a
   1080 0x9b 0x2f 0xdd 0x9a
   1081 
   1082 #------------------------------------------------------------------------------
   1083 # Data-processing (3 sources)
   1084 #------------------------------------------------------------------------------
   1085 
   1086 # First check some non-canonical encodings where Ra is not 0b11111 (only umulh
   1087 # and smulh have them).
   1088 
   1089 # CHECK: smulh    x30, x29, x28
   1090 # CHECK: smulh    xzr, x27, x26
   1091 # CHECK: umulh    x30, x29, x28
   1092 # CHECK: umulh    x23, x30, xzr
   1093 0xbe 0x73 0x5c 0x9b
   1094 0x7f 0x2f 0x5a 0x9b
   1095 0xbe 0x3f 0xdc 0x9b
   1096 0xd7 0x77 0xdf 0x9b
   1097 
   1098 # Now onto the boilerplate stuff
   1099 
   1100 # CHECK: madd     w1, w3, w7, w4
   1101 # CHECK: madd     wzr, w0, w9, w11
   1102 # CHECK: madd     w13, wzr, w4, w4
   1103 # CHECK: madd     w19, w30, wzr, w29
   1104 # CHECK: mul      w4, w5, w6
   1105 0x61 0x10 0x7 0x1b
   1106 0x1f 0x2c 0x9 0x1b
   1107 0xed 0x13 0x4 0x1b
   1108 0xd3 0x77 0x1f 0x1b
   1109 0xa4 0x7c 0x6 0x1b
   1110 
   1111 # CHECK: madd     x1, x3, x7, x4
   1112 # CHECK: madd     xzr, x0, x9, x11
   1113 # CHECK: madd     x13, xzr, x4, x4
   1114 # CHECK: madd     x19, x30, xzr, x29
   1115 # CHECK: mul      x4, x5, x6
   1116 0x61 0x10 0x7 0x9b
   1117 0x1f 0x2c 0x9 0x9b
   1118 0xed 0x13 0x4 0x9b
   1119 0xd3 0x77 0x1f 0x9b
   1120 0xa4 0x7c 0x6 0x9b
   1121 
   1122 # CHECK: msub     w1, w3, w7, w4
   1123 # CHECK: msub     wzr, w0, w9, w11
   1124 # CHECK: msub     w13, wzr, w4, w4
   1125 # CHECK: msub     w19, w30, wzr, w29
   1126 # CHECK: mneg     w4, w5, w6
   1127 0x61 0x90 0x7 0x1b
   1128 0x1f 0xac 0x9 0x1b
   1129 0xed 0x93 0x4 0x1b
   1130 0xd3 0xf7 0x1f 0x1b
   1131 0xa4 0xfc 0x6 0x1b
   1132 
   1133 # CHECK: msub     x1, x3, x7, x4
   1134 # CHECK: msub     xzr, x0, x9, x11
   1135 # CHECK: msub     x13, xzr, x4, x4
   1136 # CHECK: msub     x19, x30, xzr, x29
   1137 # CHECK: mneg     x4, x5, x6
   1138 0x61 0x90 0x7 0x9b
   1139 0x1f 0xac 0x9 0x9b
   1140 0xed 0x93 0x4 0x9b
   1141 0xd3 0xf7 0x1f 0x9b
   1142 0xa4 0xfc 0x6 0x9b
   1143 
   1144 # CHECK: smaddl   x3, w5, w2, x9
   1145 # CHECK: smaddl   xzr, w10, w11, x12
   1146 # CHECK: smaddl   x13, wzr, w14, x15
   1147 # CHECK: smaddl   x16, w17, wzr, x18
   1148 # CHECK: smull    x19, w20, w21
   1149 0xa3 0x24 0x22 0x9b
   1150 0x5f 0x31 0x2b 0x9b
   1151 0xed 0x3f 0x2e 0x9b
   1152 0x30 0x4a 0x3f 0x9b
   1153 0x93 0x7e 0x35 0x9b
   1154 
   1155 # CHECK: smsubl   x3, w5, w2, x9
   1156 # CHECK: smsubl   xzr, w10, w11, x12
   1157 # CHECK: smsubl   x13, wzr, w14, x15
   1158 # CHECK: smsubl   x16, w17, wzr, x18
   1159 # CHECK: smnegl   x19, w20, w21
   1160 0xa3 0xa4 0x22 0x9b
   1161 0x5f 0xb1 0x2b 0x9b
   1162 0xed 0xbf 0x2e 0x9b
   1163 0x30 0xca 0x3f 0x9b
   1164 0x93 0xfe 0x35 0x9b
   1165 
   1166 # CHECK: umaddl   x3, w5, w2, x9
   1167 # CHECK: umaddl   xzr, w10, w11, x12
   1168 # CHECK: umaddl   x13, wzr, w14, x15
   1169 # CHECK: umaddl   x16, w17, wzr, x18
   1170 # CHECK: umull    x19, w20, w21
   1171 0xa3 0x24 0xa2 0x9b
   1172 0x5f 0x31 0xab 0x9b
   1173 0xed 0x3f 0xae 0x9b
   1174 0x30 0x4a 0xbf 0x9b
   1175 0x93 0x7e 0xb5 0x9b
   1176 
   1177 # CHECK: umsubl   x3, w5, w2, x9
   1178 # CHECK: umsubl   xzr, w10, w11, x12
   1179 # CHECK: umsubl   x13, wzr, w14, x15
   1180 # CHECK: umsubl   x16, w17, wzr, x18
   1181 # CHECK: umnegl   x19, w20, w21
   1182 0xa3 0xa4 0xa2 0x9b
   1183 0x5f 0xb1 0xab 0x9b
   1184 0xed 0xbf 0xae 0x9b
   1185 0x30 0xca 0xbf 0x9b
   1186 0x93 0xfe 0xb5 0x9b
   1187 
   1188 # CHECK: smulh    x30, x29, x28
   1189 # CHECK: smulh    xzr, x27, x26
   1190 # CHECK: smulh    x25, xzr, x24
   1191 # CHECK: smulh    x23, x22, xzr
   1192 0xbe 0x7f 0x5c 0x9b
   1193 0x7f 0x7f 0x5a 0x9b
   1194 0xf9 0x7f 0x58 0x9b
   1195 0xd7 0x7e 0x5f 0x9b
   1196 
   1197 # CHECK: umulh    x30, x29, x28
   1198 # CHECK: umulh    xzr, x27, x26
   1199 # CHECK: umulh    x25, xzr, x24
   1200 # CHECK: umulh    x23, x22, xzr
   1201 0xbe 0x7f 0xdc 0x9b
   1202 0x7f 0x7f 0xda 0x9b
   1203 0xf9 0x7f 0xd8 0x9b
   1204 0xd7 0x7e 0xdf 0x9b
   1205 
   1206 # CHECK: mul      w3, w4, w5
   1207 # CHECK: mul      wzr, w6, w7
   1208 # CHECK: mul      w8, wzr, w9
   1209 # CHECK: mul      w10, w11, wzr
   1210 # CHECK: mul      x12, x13, x14
   1211 # CHECK: mul      xzr, x15, x16
   1212 # CHECK: mul      x17, xzr, x18
   1213 # CHECK: mul      x19, x20, xzr
   1214 0x83 0x7c 0x5 0x1b
   1215 0xdf 0x7c 0x7 0x1b
   1216 0xe8 0x7f 0x9 0x1b
   1217 0x6a 0x7d 0x1f 0x1b
   1218 0xac 0x7d 0xe 0x9b
   1219 0xff 0x7d 0x10 0x9b
   1220 0xf1 0x7f 0x12 0x9b
   1221 0x93 0x7e 0x1f 0x9b
   1222 
   1223 # CHECK: mneg     w21, w22, w23
   1224 # CHECK: mneg     wzr, w24, w25
   1225 # CHECK: mneg     w26, wzr, w27
   1226 # CHECK: mneg     w28, w29, wzr
   1227 0xd5 0xfe 0x17 0x1b
   1228 0x1f 0xff 0x19 0x1b
   1229 0xfa 0xff 0x1b 0x1b
   1230 0xbc 0xff 0x1f 0x1b
   1231 
   1232 # CHECK: smull    x11, w13, w17
   1233 # CHECK: umull    x11, w13, w17
   1234 # CHECK: smnegl   x11, w13, w17
   1235 # CHECK: umnegl   x11, w13, w17
   1236 0xab 0x7d 0x31 0x9b
   1237 0xab 0x7d 0xb1 0x9b
   1238 0xab 0xfd 0x31 0x9b
   1239 0xab 0xfd 0xb1 0x9b
   1240 
   1241 #------------------------------------------------------------------------------
   1242 # Exception generation
   1243 #------------------------------------------------------------------------------
   1244 
   1245 # CHECK: svc      #0
   1246 # CHECK: svc      #65535
   1247 0x1 0x0 0x0 0xd4
   1248 0xe1 0xff 0x1f 0xd4
   1249 
   1250 # CHECK: hvc      #1
   1251 # CHECK: smc      #12000
   1252 # CHECK: brk      #12
   1253 # CHECK: hlt      #123
   1254 0x22 0x0 0x0 0xd4
   1255 0x3 0xdc 0x5 0xd4
   1256 0x80 0x1 0x20 0xd4
   1257 0x60 0xf 0x40 0xd4
   1258 
   1259 # CHECK: dcps1    #42
   1260 # CHECK: dcps2    #9
   1261 # CHECK: dcps3    #1000
   1262 0x41 0x5 0xa0 0xd4
   1263 0x22 0x1 0xa0 0xd4
   1264 0x3 0x7d 0xa0 0xd4
   1265 
   1266 # CHECK: dcps1
   1267 # CHECK: dcps2
   1268 # CHECK: dcps3
   1269 0x1 0x0 0xa0 0xd4
   1270 0x2 0x0 0xa0 0xd4
   1271 0x3 0x0 0xa0 0xd4
   1272 
   1273 #------------------------------------------------------------------------------
   1274 # Extract (immediate)
   1275 #------------------------------------------------------------------------------
   1276 
   1277 # CHECK: extr     w3, w5, w7, #0
   1278 # CHECK: extr     w11, w13, w17, #31
   1279 0xa3 0x0 0x87 0x13
   1280 0xab 0x7d 0x91 0x13
   1281 
   1282 # CHECK: extr     x3, x5, x7, #15
   1283 # CHECK: extr     x11, x13, x17, #63
   1284 0xa3 0x3c 0xc7 0x93
   1285 0xab 0xfd 0xd1 0x93
   1286 
   1287 # CHECK: extr     x19, x23, x23, #24
   1288 # CHECK: extr     x29, xzr, xzr, #63
   1289 # CHECK: extr     w9, w13, w13, #31
   1290 0xf3 0x62 0xd7 0x93
   1291 0xfd 0xff 0xdf 0x93
   1292 0xa9 0x7d 0x8d 0x13
   1293 
   1294 #------------------------------------------------------------------------------
   1295 # Floating-point compare
   1296 #------------------------------------------------------------------------------
   1297 
   1298 # CHECK: fcmp    s3, s5
   1299 # CHECK: fcmp    s31, #0.0
   1300 # CHECK: fcmp    s31, #0.0
   1301 0x60 0x20 0x25 0x1e
   1302 0xe8 0x23 0x20 0x1e
   1303 0xe8 0x23 0x3f 0x1e
   1304 
   1305 # CHECK: fcmpe   s29, s30
   1306 # CHECK: fcmpe   s15, #0.0
   1307 # CHECK: fcmpe   s15, #0.0
   1308 0xb0 0x23 0x3e 0x1e
   1309 0xf8 0x21 0x20 0x1e
   1310 0xf8 0x21 0x2f 0x1e
   1311 
   1312 # CHECK: fcmp    d4, d12
   1313 # CHECK: fcmp    d23, #0.0
   1314 # CHECK: fcmp    d23, #0.0
   1315 0x80 0x20 0x6c 0x1e
   1316 0xe8 0x22 0x60 0x1e
   1317 0xe8 0x22 0x77 0x1e
   1318 
   1319 # CHECK: fcmpe   d26, d22
   1320 # CHECK: fcmpe   d29, #0.0
   1321 # CHECK: fcmpe   d29, #0.0
   1322 0x50 0x23 0x76 0x1e
   1323 0xb8 0x23 0x60 0x1e
   1324 0xb8 0x23 0x6d 0x1e
   1325 
   1326 #------------------------------------------------------------------------------
   1327 # Floating-point conditional compare
   1328 #------------------------------------------------------------------------------
   1329 
   1330 # CHECK: fccmp s1, s31, #0, eq
   1331 # CHECK: fccmp s3, s0, #15, hs
   1332 # CHECK: fccmp s31, s15, #13, hs
   1333 0x20 0x04 0x3f 0x1e
   1334 0x6f 0x24 0x20 0x1e
   1335 0xed 0x27 0x2f 0x1e
   1336 
   1337 # CHECK: fccmp d9, d31, #0, le
   1338 # CHECK: fccmp d3, d0, #15, gt
   1339 # CHECK: fccmp d31, d5, #7, ne
   1340 0x20 0xd5 0x7f 0x1e
   1341 0x6f 0xc4 0x60 0x1e
   1342 0xe7 0x17 0x65 0x1e
   1343 
   1344 # CHECK: fccmpe s1, s31, #0, eq
   1345 # CHECK: fccmpe s3, s0, #15, hs
   1346 # CHECK: fccmpe s31, s15, #13, hs
   1347 0x30 0x04 0x3f 0x1e
   1348 0x7f 0x24 0x20 0x1e
   1349 0xfd 0x27 0x2f 0x1e
   1350 
   1351 # CHECK: fccmpe d9, d31, #0, le
   1352 # CHECK: fccmpe d3, d0, #15, gt
   1353 # CHECK: fccmpe d31, d5, #7, ne
   1354 0x30 0xd5 0x7f 0x1e
   1355 0x7f 0xc4 0x60 0x1e
   1356 0xf7 0x17 0x65 0x1e
   1357 
   1358 #-------------------------------------------------------------------------------
   1359 # Floating-point conditional compare
   1360 #-------------------------------------------------------------------------------
   1361 
   1362 # CHECK: fcsel s3, s20, s9, pl
   1363 # CHECK: fcsel d9, d10, d11, mi
   1364 0x83 0x5e 0x29 0x1e
   1365 0x49 0x4d 0x6b 0x1e
   1366 
   1367 #------------------------------------------------------------------------------
   1368 # Floating-point data-processing (1 source)
   1369 #------------------------------------------------------------------------------
   1370 
   1371 # CHECK: fmov     s0, s1
   1372 # CHECK: fabs     s2, s3
   1373 # CHECK: fneg     s4, s5
   1374 # CHECK: fsqrt    s6, s7
   1375 # CHECK: fcvt     d8, s9
   1376 # CHECK: fcvt     h10, s11
   1377 # CHECK: frintn   s12, s13
   1378 # CHECK: frintp   s14, s15
   1379 # CHECK: frintm   s16, s17
   1380 # CHECK: frintz   s18, s19
   1381 # CHECK: frinta   s20, s21
   1382 # CHECK: frintx   s22, s23
   1383 # CHECK: frinti   s24, s25
   1384 0x20 0x40 0x20 0x1e
   1385 0x62 0xc0 0x20 0x1e
   1386 0xa4 0x40 0x21 0x1e
   1387 0xe6 0xc0 0x21 0x1e
   1388 0x28 0xc1 0x22 0x1e
   1389 0x6a 0xc1 0x23 0x1e
   1390 0xac 0x41 0x24 0x1e
   1391 0xee 0xc1 0x24 0x1e
   1392 0x30 0x42 0x25 0x1e
   1393 0x72 0xc2 0x25 0x1e
   1394 0xb4 0x42 0x26 0x1e
   1395 0xf6 0x42 0x27 0x1e
   1396 0x38 0xc3 0x27 0x1e
   1397 
   1398 # CHECK: fmov     d0, d1
   1399 # CHECK: fabs     d2, d3
   1400 # CHECK: fneg     d4, d5
   1401 # CHECK: fsqrt    d6, d7
   1402 # CHECK: fcvt     s8, d9
   1403 # CHECK: fcvt     h10, d11
   1404 # CHECK: frintn   d12, d13
   1405 # CHECK: frintp   d14, d15
   1406 # CHECK: frintm   d16, d17
   1407 # CHECK: frintz   d18, d19
   1408 # CHECK: frinta   d20, d21
   1409 # CHECK: frintx   d22, d23
   1410 # CHECK: frinti   d24, d25
   1411 0x20 0x40 0x60 0x1e
   1412 0x62 0xc0 0x60 0x1e
   1413 0xa4 0x40 0x61 0x1e
   1414 0xe6 0xc0 0x61 0x1e
   1415 0x28 0x41 0x62 0x1e
   1416 0x6a 0xc1 0x63 0x1e
   1417 0xac 0x41 0x64 0x1e
   1418 0xee 0xc1 0x64 0x1e
   1419 0x30 0x42 0x65 0x1e
   1420 0x72 0xc2 0x65 0x1e
   1421 0xb4 0x42 0x66 0x1e
   1422 0xf6 0x42 0x67 0x1e
   1423 0x38 0xc3 0x67 0x1e
   1424 
   1425 # CHECK: fcvt     s26, h27
   1426 # CHECK: fcvt     d28, h29
   1427 0x7a 0x43 0xe2 0x1e
   1428 0xbc 0xc3 0xe2 0x1e
   1429 
   1430 #------------------------------------------------------------------------------
   1431 # Floating-point data-processing (2 sources)
   1432 #------------------------------------------------------------------------------
   1433 
   1434 # CHECK: fmul     s20, s19, s17
   1435 # CHECK: fdiv     s1, s2, s3
   1436 # CHECK: fadd     s4, s5, s6
   1437 # CHECK: fsub     s7, s8, s9
   1438 # CHECK: fmax     s10, s11, s12
   1439 # CHECK: fmin     s13, s14, s15
   1440 # CHECK: fmaxnm   s16, s17, s18
   1441 # CHECK: fminnm   s19, s20, s21
   1442 # CHECK: fnmul    s22, s23, s2
   1443 0x74 0xa 0x31 0x1e
   1444 0x41 0x18 0x23 0x1e
   1445 0xa4 0x28 0x26 0x1e
   1446 0x7 0x39 0x29 0x1e
   1447 0x6a 0x49 0x2c 0x1e
   1448 0xcd 0x59 0x2f 0x1e
   1449 0x30 0x6a 0x32 0x1e
   1450 0x93 0x7a 0x35 0x1e
   1451 0xf6 0x8a 0x38 0x1e
   1452 
   1453 
   1454 # CHECK: fmul     d20, d19, d17
   1455 # CHECK: fdiv     d1, d2, d3
   1456 # CHECK: fadd     d4, d5, d6
   1457 # CHECK: fsub     d7, d8, d9
   1458 # CHECK: fmax     d10, d11, d12
   1459 # CHECK: fmin     d13, d14, d15
   1460 # CHECK: fmaxnm   d16, d17, d18
   1461 # CHECK: fminnm   d19, d20, d21
   1462 # CHECK: fnmul    d22, d23, d24
   1463 0x74 0xa 0x71 0x1e
   1464 0x41 0x18 0x63 0x1e
   1465 0xa4 0x28 0x66 0x1e
   1466 0x7 0x39 0x69 0x1e
   1467 0x6a 0x49 0x6c 0x1e
   1468 0xcd 0x59 0x6f 0x1e
   1469 0x30 0x6a 0x72 0x1e
   1470 0x93 0x7a 0x75 0x1e
   1471 0xf6 0x8a 0x78 0x1e
   1472 
   1473 #------------------------------------------------------------------------------
   1474 # Floating-point data-processing (1 source)
   1475 #------------------------------------------------------------------------------
   1476 
   1477 # CHECK: fmadd s3, s5, s6, s31
   1478 # CHECK: fmadd d3, d13, d0, d23
   1479 # CHECK: fmsub s3, s5, s6, s31
   1480 # CHECK: fmsub d3, d13, d0, d23
   1481 # CHECK: fnmadd s3, s5, s6, s31
   1482 # CHECK: fnmadd d3, d13, d0, d23
   1483 # CHECK: fnmsub s3, s5, s6, s31
   1484 # CHECK: fnmsub d3, d13, d0, d23
   1485 0xa3 0x7c 0x06 0x1f
   1486 0xa3 0x5d 0x40 0x1f
   1487 0xa3 0xfc 0x06 0x1f
   1488 0xa3 0xdd 0x40 0x1f
   1489 0xa3 0x7c 0x26 0x1f
   1490 0xa3 0x5d 0x60 0x1f
   1491 0xa3 0xfc 0x26 0x1f
   1492 0xa3 0xdd 0x60 0x1f
   1493 
   1494 #------------------------------------------------------------------------------
   1495 # Floating-point <-> fixed-point conversion
   1496 #------------------------------------------------------------------------------
   1497 
   1498 # CHECK: fcvtzs  w3, s5, #1
   1499 # CHECK: fcvtzs  wzr, s20, #13
   1500 # CHECK: fcvtzs  w19, s0, #32
   1501 0xa3 0xfc 0x18 0x1e
   1502 0x9f 0xce 0x18 0x1e
   1503 0x13 0x80 0x18 0x1e
   1504 
   1505 # CHECK: fcvtzs  x3, s5, #1
   1506 # CHECK: fcvtzs  x12, s30, #45
   1507 # CHECK: fcvtzs  x19, s0, #64
   1508 0xa3 0xfc 0x18 0x9e
   1509 0xcc 0x4f 0x18 0x9e
   1510 0x13 0x00 0x18 0x9e
   1511 
   1512 # CHECK: fcvtzs  w3, d5, #1
   1513 # CHECK: fcvtzs  wzr, d20, #13
   1514 # CHECK: fcvtzs  w19, d0, #32
   1515 0xa3 0xfc 0x58 0x1e
   1516 0x9f 0xce 0x58 0x1e
   1517 0x13 0x80 0x58 0x1e
   1518 
   1519 # CHECK: fcvtzs  x3, d5, #1
   1520 # CHECK: fcvtzs  x12, d30, #45
   1521 # CHECK: fcvtzs  x19, d0, #64
   1522 0xa3 0xfc 0x58 0x9e
   1523 0xcc 0x4f 0x58 0x9e
   1524 0x13 0x00 0x58 0x9e
   1525 
   1526 # CHECK: fcvtzu  w3, s5, #1
   1527 # CHECK: fcvtzu  wzr, s20, #13
   1528 # CHECK: fcvtzu  w19, s0, #32
   1529 0xa3 0xfc 0x19 0x1e
   1530 0x9f 0xce 0x19 0x1e
   1531 0x13 0x80 0x19 0x1e
   1532 
   1533 # CHECK: fcvtzu  x3, s5, #1
   1534 # CHECK: fcvtzu  x12, s30, #45
   1535 # CHECK: fcvtzu  x19, s0, #64
   1536 0xa3 0xfc 0x19 0x9e
   1537 0xcc 0x4f 0x19 0x9e
   1538 0x13 0x00 0x19 0x9e
   1539 
   1540 # CHECK: fcvtzu  w3, d5, #1
   1541 # CHECK: fcvtzu  wzr, d20, #13
   1542 # CHECK: fcvtzu  w19, d0, #32
   1543 0xa3 0xfc 0x59 0x1e
   1544 0x9f 0xce 0x59 0x1e
   1545 0x13 0x80 0x59 0x1e
   1546 
   1547 # CHECK: fcvtzu  x3, d5, #1
   1548 # CHECK: fcvtzu  x12, d30, #45
   1549 # CHECK: fcvtzu  x19, d0, #64
   1550 0xa3 0xfc 0x59 0x9e
   1551 0xcc 0x4f 0x59 0x9e
   1552 0x13 0x00 0x59 0x9e
   1553 
   1554 # CHECK: scvtf   s23, w19, #1
   1555 # CHECK: scvtf   s31, wzr, #20
   1556 # CHECK: scvtf   s14, w0, #32
   1557 0x77 0xfe 0x02 0x1e
   1558 0xff 0xb3 0x02 0x1e
   1559 0x0e 0x80 0x02 0x1e
   1560 
   1561 # CHECK: scvtf   s23, x19, #1
   1562 # CHECK: scvtf   s31, xzr, #20
   1563 # CHECK: scvtf   s14, x0, #64
   1564 0x77 0xfe 0x02 0x9e
   1565 0xff 0xb3 0x02 0x9e
   1566 0x0e 0x00 0x02 0x9e
   1567 
   1568 # CHECK: scvtf   d23, w19, #1
   1569 # CHECK: scvtf   d31, wzr, #20
   1570 # CHECK: scvtf   d14, w0, #32
   1571 0x77 0xfe 0x42 0x1e
   1572 0xff 0xb3 0x42 0x1e
   1573 0x0e 0x80 0x42 0x1e
   1574 
   1575 # CHECK: scvtf   d23, x19, #1
   1576 # CHECK: scvtf   d31, xzr, #20
   1577 # CHECK: scvtf   d14, x0, #64
   1578 0x77 0xfe 0x42 0x9e
   1579 0xff 0xb3 0x42 0x9e
   1580 0x0e 0x00 0x42 0x9e
   1581 
   1582 # CHECK: ucvtf   s23, w19, #1
   1583 # CHECK: ucvtf   s31, wzr, #20
   1584 # CHECK: ucvtf   s14, w0, #32
   1585 0x77 0xfe 0x03 0x1e
   1586 0xff 0xb3 0x03 0x1e
   1587 0x0e 0x80 0x03 0x1e
   1588 
   1589 # CHECK: ucvtf   s23, x19, #1
   1590 # CHECK: ucvtf   s31, xzr, #20
   1591 # CHECK: ucvtf   s14, x0, #64
   1592 0x77 0xfe 0x03 0x9e
   1593 0xff 0xb3 0x03 0x9e
   1594 0x0e 0x00 0x03 0x9e
   1595 
   1596 # CHECK: ucvtf   d23, w19, #1
   1597 # CHECK: ucvtf   d31, wzr, #20
   1598 # CHECK: ucvtf   d14, w0, #32
   1599 0x77 0xfe 0x43 0x1e
   1600 0xff 0xb3 0x43 0x1e
   1601 0x0e 0x80 0x43 0x1e
   1602 
   1603 # CHECK: ucvtf   d23, x19, #1
   1604 # CHECK: ucvtf   d31, xzr, #20
   1605 # CHECK: ucvtf   d14, x0, #64
   1606 0x77 0xfe 0x43 0x9e
   1607 0xff 0xb3 0x43 0x9e
   1608 0x0e 0x00 0x43 0x9e
   1609 
   1610 #------------------------------------------------------------------------------
   1611 # Floating-point <-> integer conversion
   1612 #------------------------------------------------------------------------------
   1613 # CHECK: fcvtns   w3, s31
   1614 # CHECK: fcvtns   xzr, s12
   1615 # CHECK: fcvtnu   wzr, s12
   1616 # CHECK: fcvtnu   x0, s0
   1617 0xe3 0x3 0x20 0x1e
   1618 0x9f 0x1 0x20 0x9e
   1619 0x9f 0x1 0x21 0x1e
   1620 0x0 0x0 0x21 0x9e
   1621 
   1622 # CHECK: fcvtps   wzr, s9
   1623 # CHECK: fcvtps   x12, s20
   1624 # CHECK: fcvtpu   w30, s23
   1625 # CHECK: fcvtpu   x29, s3
   1626 0x3f 0x1 0x28 0x1e
   1627 0x8c 0x2 0x28 0x9e
   1628 0xfe 0x2 0x29 0x1e
   1629 0x7d 0x0 0x29 0x9e
   1630 
   1631 # CHECK: fcvtms   w2, s3
   1632 # CHECK: fcvtms   x4, s5
   1633 # CHECK: fcvtmu   w6, s7
   1634 # CHECK: fcvtmu   x8, s9
   1635 0x62 0x0 0x30 0x1e
   1636 0xa4 0x0 0x30 0x9e
   1637 0xe6 0x0 0x31 0x1e
   1638 0x28 0x1 0x31 0x9e
   1639 
   1640 # CHECK: fcvtzs   w10, s11
   1641 # CHECK: fcvtzs   x12, s13
   1642 # CHECK: fcvtzu   w14, s15
   1643 # CHECK: fcvtzu   x15, s16
   1644 0x6a 0x1 0x38 0x1e
   1645 0xac 0x1 0x38 0x9e
   1646 0xee 0x1 0x39 0x1e
   1647 0xf 0x2 0x39 0x9e
   1648 
   1649 # CHECK: scvtf    s17, w18
   1650 # CHECK: scvtf    s19, x20
   1651 # CHECK: ucvtf    s21, w22
   1652 # CHECK: scvtf    s23, x24
   1653 0x51 0x2 0x22 0x1e
   1654 0x93 0x2 0x22 0x9e
   1655 0xd5 0x2 0x23 0x1e
   1656 0x17 0x3 0x22 0x9e
   1657 
   1658 # CHECK: fcvtas   w25, s26
   1659 # CHECK: fcvtas   x27, s28
   1660 # CHECK: fcvtau   w29, s30
   1661 # CHECK: fcvtau   xzr, s0
   1662 0x59 0x3 0x24 0x1e
   1663 0x9b 0x3 0x24 0x9e
   1664 0xdd 0x3 0x25 0x1e
   1665 0x1f 0x0 0x25 0x9e
   1666 
   1667 # CHECK: fcvtns   w3, d31
   1668 # CHECK: fcvtns   xzr, d12
   1669 # CHECK: fcvtnu   wzr, d12
   1670 # CHECK: fcvtnu   x0, d0
   1671 0xe3 0x3 0x60 0x1e
   1672 0x9f 0x1 0x60 0x9e
   1673 0x9f 0x1 0x61 0x1e
   1674 0x0 0x0 0x61 0x9e
   1675 
   1676 # CHECK: fcvtps   wzr, d9
   1677 # CHECK: fcvtps   x12, d20
   1678 # CHECK: fcvtpu   w30, d23
   1679 # CHECK: fcvtpu   x29, d3
   1680 0x3f 0x1 0x68 0x1e
   1681 0x8c 0x2 0x68 0x9e
   1682 0xfe 0x2 0x69 0x1e
   1683 0x7d 0x0 0x69 0x9e
   1684 
   1685 # CHECK: fcvtms   w2, d3
   1686 # CHECK: fcvtms   x4, d5
   1687 # CHECK: fcvtmu   w6, d7
   1688 # CHECK: fcvtmu   x8, d9
   1689 0x62 0x0 0x70 0x1e
   1690 0xa4 0x0 0x70 0x9e
   1691 0xe6 0x0 0x71 0x1e
   1692 0x28 0x1 0x71 0x9e
   1693 
   1694 # CHECK: fcvtzs   w10, d11
   1695 # CHECK: fcvtzs   x12, d13
   1696 # CHECK: fcvtzu   w14, d15
   1697 # CHECK: fcvtzu   x15, d16
   1698 0x6a 0x1 0x78 0x1e
   1699 0xac 0x1 0x78 0x9e
   1700 0xee 0x1 0x79 0x1e
   1701 0xf 0x2 0x79 0x9e
   1702 
   1703 # CHECK: scvtf    d17, w18
   1704 # CHECK: scvtf    d19, x20
   1705 # CHECK: ucvtf    d21, w22
   1706 # CHECK: ucvtf    d23, x24
   1707 0x51 0x2 0x62 0x1e
   1708 0x93 0x2 0x62 0x9e
   1709 0xd5 0x2 0x63 0x1e
   1710 0x17 0x3 0x63 0x9e
   1711 
   1712 # CHECK: fcvtas   w25, d26
   1713 # CHECK: fcvtas   x27, d28
   1714 # CHECK: fcvtau   w29, d30
   1715 # CHECK: fcvtau   xzr, d0
   1716 0x59 0x3 0x64 0x1e
   1717 0x9b 0x3 0x64 0x9e
   1718 0xdd 0x3 0x65 0x1e
   1719 0x1f 0x0 0x65 0x9e
   1720 
   1721 # CHECK: fmov     w3, s9
   1722 # CHECK: fmov     s9, w3
   1723 0x23 0x1 0x26 0x1e
   1724 0x69 0x0 0x27 0x1e
   1725 
   1726 # CHECK: fmov     x20, d31
   1727 # CHECK: fmov     d1, x15
   1728 0xf4 0x3 0x66 0x9e
   1729 0xe1 0x1 0x67 0x9e
   1730 
   1731 # CHECK: fmov     x3, v12.d[1]
   1732 # CHECK: fmov     v1.d[1], x19
   1733 0x83 0x1 0xae 0x9e
   1734 0x61 0x2 0xaf 0x9e
   1735 
   1736 #------------------------------------------------------------------------------
   1737 # Floating-point immediate
   1738 #------------------------------------------------------------------------------
   1739 
   1740 # CHECK: fmov     s2, #0.12500000
   1741 # CHECK: fmov     s3, #1.00000000
   1742 # CHECK: fmov     d30, #16.00000000
   1743 0x2 0x10 0x28 0x1e
   1744 0x3 0x10 0x2e 0x1e
   1745 0x1e 0x10 0x66 0x1e
   1746 
   1747 # CHECK: fmov     s4, #1.06250000
   1748 # CHECK: fmov     d10, #1.93750000
   1749 0x4 0x30 0x2e 0x1e
   1750 0xa 0xf0 0x6f 0x1e
   1751 
   1752 # CHECK: fmov     s12, #-1.00000000
   1753 0xc 0x10 0x3e 0x1e
   1754 
   1755 # CHECK: fmov     d16, #8.50000000
   1756 0x10 0x30 0x64 0x1e
   1757 
   1758 #------------------------------------------------------------------------------
   1759 # Load-register (literal)
   1760 #------------------------------------------------------------------------------
   1761 
   1762 # CHECK: ldr       w3, #0
   1763 # CHECK: ldr       x29, #4
   1764 # CHECK: ldrsw     xzr, #-4
   1765 0x03 0x00 0x00 0x18
   1766 0x3d 0x00 0x00 0x58
   1767 0xff 0xff 0xff 0x98
   1768 
   1769 # CHECK: ldr       s0, #8
   1770 # CHECK: ldr       d0, #1048572
   1771 # CHECK: ldr       q0, #-1048576
   1772 0x40 0x00 0x00 0x1c
   1773 0xe0 0xff 0x7f 0x5c
   1774 0x00 0x00 0x80 0x9c
   1775 
   1776 # CHECK: prfm      pldl1strm, #0
   1777 # CHECK: prfm      #22, #0
   1778 0x01 0x00 0x00 0xd8
   1779 0x16 0x00 0x00 0xd8
   1780 
   1781 #------------------------------------------------------------------------------
   1782 # Load/store exclusive
   1783 #------------------------------------------------------------------------------
   1784 
   1785 #CHECK: stxrb      w18, w8, [sp]
   1786 #CHECK: stxrh      w24, w15, [x16]
   1787 #CHECK: stxr       w5, w6, [x17]
   1788 #CHECK: stxr       w1, x10, [x21]
   1789 #CHECK: stxr       w1, x10, [x21]
   1790 0xe8 0x7f 0x12 0x08
   1791 0x0f 0x7e 0x18 0x48
   1792 0x26 0x7e 0x05 0x88
   1793 0xaa 0x7e 0x01 0xc8
   1794 0xaa 0x7a 0x01 0xc8
   1795 
   1796 #CHECK: ldxrb      w30, [x0]
   1797 #CHECK: ldxrh      w17, [x4]
   1798 #CHECK: ldxr       w22, [sp]
   1799 #CHECK: ldxr       x11, [x29]
   1800 #CHECK: ldxr       x11, [x29]
   1801 #CHECK: ldxr       x11, [x29]
   1802 0x1e 0x7c 0x5f 0x08
   1803 0x91 0x7c 0x5f 0x48
   1804 0xf6 0x7f 0x5f 0x88
   1805 0xab 0x7f 0x5f 0xc8
   1806 0xab 0x6f 0x5f 0xc8
   1807 0xab 0x7f 0x5e 0xc8
   1808 
   1809 #CHECK: stxp       w12, w11, w10, [sp]
   1810 #CHECK: stxp       wzr, x27, x9, [x12]
   1811 0xeb 0x2b 0x2c 0x88
   1812 0x9b 0x25 0x3f 0xc8
   1813 
   1814 #CHECK: ldxp       w0, wzr, [sp]
   1815 #CHECK: ldxp       x17, x0, [x18]
   1816 #CHECK: ldxp       x17, x0, [x18]
   1817 0xe0 0x7f 0x7f 0x88
   1818 0x51 0x02 0x7f 0xc8
   1819 0x51 0x02 0x7e 0xc8
   1820 
   1821 #CHECK: stlxrb     w12, w22, [x0]
   1822 #CHECK: stlxrh     w10, w1, [x1]
   1823 #CHECK: stlxr      w9, w2, [x2]
   1824 #CHECK: stlxr      w9, x3, [sp]
   1825 
   1826 0x16 0xfc 0x0c 0x08
   1827 0x21 0xfc 0x0a 0x48
   1828 0x42 0xfc 0x09 0x88
   1829 0xe3 0xff 0x09 0xc8
   1830 
   1831 #CHECK: ldaxrb     w8, [x4]
   1832 #CHECK: ldaxrh     w7, [x5]
   1833 #CHECK: ldaxr      w6, [sp]
   1834 #CHECK: ldaxr      x5, [x6]
   1835 #CHECK: ldaxr      x5, [x6]
   1836 #CHECK: ldaxr      x5, [x6]
   1837 0x88 0xfc 0x5f 0x08
   1838 0xa7 0xfc 0x5f 0x48
   1839 0xe6 0xff 0x5f 0x88
   1840 0xc5 0xfc 0x5f 0xc8
   1841 0xc5 0xec 0x5f 0xc8
   1842 0xc5 0xfc 0x5e 0xc8
   1843 
   1844 #CHECK: stlxp      w4, w5, w6, [sp]
   1845 #CHECK: stlxp      wzr, x6, x7, [x1]
   1846 0xe5 0x9b 0x24 0x88
   1847 0x26 0x9c 0x3f 0xc8
   1848 
   1849 #CHECK: ldaxp      w5, w18, [sp]
   1850 #CHECK: ldaxp      x6, x19, [x22]
   1851 #CHECK: ldaxp      x6, x19, [x22]
   1852 0xe5 0xcb 0x7f 0x88
   1853 0xc6 0xce 0x7f 0xc8
   1854 0xc6 0xce 0x7e 0xc8
   1855 
   1856 #CHECK: stlrb      w24, [sp]
   1857 #CHECK: stlrh      w25, [x30]
   1858 #CHECK: stlr       w26, [x29]
   1859 #CHECK: stlr       x27, [x28]
   1860 #CHECK: stlr       x27, [x28]
   1861 #CHECK: stlr       x27, [x28]
   1862 0xf8 0xff 0x9f 0x08
   1863 0xd9 0xff 0x9f 0x48
   1864 0xba 0xff 0x9f 0x88
   1865 0x9b 0xff 0x9f 0xc8
   1866 0x9b 0xef 0x9f 0xc8
   1867 0x9b 0xff 0x9e 0xc8
   1868 
   1869 #CHECK: ldarb      w23, [sp]
   1870 #CHECK: ldarh      w22, [x30]
   1871 #CHECK: ldar       wzr, [x29]
   1872 #CHECK: ldar       x21, [x28]
   1873 #CHECK: ldar       x21, [x28]
   1874 #CHECK: ldar       x21, [x28]
   1875 0xf7 0xff 0xdf 0x08
   1876 0xd6 0xff 0xdf 0x48
   1877 0xbf 0xff 0xdf 0x88
   1878 0x95 0xff 0xdf 0xc8
   1879 0x95 0xef 0xdf 0xc8
   1880 0x95 0xff 0xde 0xc8
   1881 
   1882 #------------------------------------------------------------------------------
   1883 # Load/store (unscaled  immediate)
   1884 #------------------------------------------------------------------------------
   1885 
   1886 # CHECK: sturb    w9, [sp]
   1887 # CHECK: sturh    wzr, [x12, #255]
   1888 # CHECK: stur     w16, [x0, #-256]
   1889 # CHECK: stur     x28, [x14, #1]
   1890 0xe9 0x3 0x0 0x38
   1891 0x9f 0xf1 0xf 0x78
   1892 0x10 0x0 0x10 0xb8
   1893 0xdc 0x11 0x0 0xf8
   1894 
   1895 # CHECK: ldurb    w1, [x20, #255]
   1896 # CHECK: ldurh    w20, [x1, #255]
   1897 # CHECK: ldur     w12, [sp, #255]
   1898 # CHECK: ldur     xzr, [x12, #255]
   1899 0x81 0xf2 0x4f 0x38
   1900 0x34 0xf0 0x4f 0x78
   1901 0xec 0xf3 0x4f 0xb8
   1902 0x9f 0xf1 0x4f 0xf8
   1903 
   1904 # CHECK: ldursb   x9, [x7, #-256]
   1905 # CHECK: ldursh   x17, [x19, #-256]
   1906 # CHECK: ldursw   x20, [x15, #-256]
   1907 # CHECK: prfum    pldl2keep, [sp, #-256]
   1908 # CHECK: ldursb   w19, [x1, #-256]
   1909 # CHECK: ldursh   w15, [x21, #-256]
   1910 0xe9 0x0 0x90 0x38
   1911 0x71 0x2 0x90 0x78
   1912 0xf4 0x1 0x90 0xb8
   1913 0xe2 0x3 0x90 0xf8
   1914 0x33 0x0 0xd0 0x38
   1915 0xaf 0x2 0xd0 0x78
   1916 
   1917 # CHECK: stur     b0, [sp, #1]
   1918 # CHECK: stur     h12, [x12, #-1]
   1919 # CHECK: stur     s15, [x0, #255]
   1920 # CHECK: stur     d31, [x5, #25]
   1921 # CHECK: stur     q9, [x5]
   1922 0xe0 0x13 0x0 0x3c
   1923 0x8c 0xf1 0x1f 0x7c
   1924 0xf 0xf0 0xf 0xbc
   1925 0xbf 0x90 0x1 0xfc
   1926 0xa9 0x0 0x80 0x3c
   1927 
   1928 # CHECK: ldur     b3, [sp]
   1929 # CHECK: ldur     h5, [x4, #-256]
   1930 # CHECK: ldur     s7, [x12, #-1]
   1931 # CHECK: ldur     d11, [x19, #4]
   1932 # CHECK: ldur     q13, [x1, #2]
   1933 0xe3 0x3 0x40 0x3c
   1934 0x85 0x0 0x50 0x7c
   1935 0x87 0xf1 0x5f 0xbc
   1936 0x6b 0x42 0x40 0xfc
   1937 0x2d 0x20 0xc0 0x3c
   1938 
   1939 #------------------------------------------------------------------------------
   1940 # Load/store (immediate post-indexed)
   1941 #------------------------------------------------------------------------------
   1942 
   1943 # E.g. "str xzr, [sp], #4" is *not* unpredictable
   1944 # CHECK-NOT: warning: potentially undefined instruction encoding
   1945 0xff 0x47 0x40 0xb8
   1946 
   1947 # CHECK: strb     w9, [x2], #255
   1948 # CHECK: strb     w10, [x3], #1
   1949 # CHECK: strb     w10, [x3], #-256
   1950 # CHECK: strh     w9, [x2], #255
   1951 # CHECK: strh     w9, [x2], #1
   1952 # CHECK: strh     w10, [x3], #-256
   1953 0x49 0xf4 0xf 0x38
   1954 0x6a 0x14 0x0 0x38
   1955 0x6a 0x4 0x10 0x38
   1956 0x49 0xf4 0xf 0x78
   1957 0x49 0x14 0x0 0x78
   1958 0x6a 0x4 0x10 0x78
   1959 
   1960 # CHECK: str      w19, [sp], #255
   1961 # CHECK: str      w20, [x30], #1
   1962 # CHECK: str      w21, [x12], #-256
   1963 # CHECK: str      xzr, [x9], #255
   1964 # CHECK: str      x2, [x3], #1
   1965 # CHECK: str      x19, [x12], #-256
   1966 0xf3 0xf7 0xf 0xb8
   1967 0xd4 0x17 0x0 0xb8
   1968 0x95 0x5 0x10 0xb8
   1969 0x3f 0xf5 0xf 0xf8
   1970 0x62 0x14 0x0 0xf8
   1971 0x93 0x5 0x10 0xf8
   1972 
   1973 # CHECK: ldrb     w9, [x2], #255
   1974 # CHECK: ldrb     w10, [x3], #1
   1975 # CHECK: ldrb     w10, [x3], #-256
   1976 # CHECK: ldrh     w9, [x2], #255
   1977 # CHECK: ldrh     w9, [x2], #1
   1978 # CHECK: ldrh     w10, [x3], #-256
   1979 0x49 0xf4 0x4f 0x38
   1980 0x6a 0x14 0x40 0x38
   1981 0x6a 0x4 0x50 0x38
   1982 0x49 0xf4 0x4f 0x78
   1983 0x49 0x14 0x40 0x78
   1984 0x6a 0x4 0x50 0x78
   1985 
   1986 # CHECK: ldr      w19, [sp], #255
   1987 # CHECK: ldr      w20, [x30], #1
   1988 # CHECK: ldr      w21, [x12], #-256
   1989 # CHECK: ldr      xzr, [x9], #255
   1990 # CHECK: ldr      x2, [x3], #1
   1991 # CHECK: ldr      x19, [x12], #-256
   1992 0xf3 0xf7 0x4f 0xb8
   1993 0xd4 0x17 0x40 0xb8
   1994 0x95 0x5 0x50 0xb8
   1995 0x3f 0xf5 0x4f 0xf8
   1996 0x62 0x14 0x40 0xf8
   1997 0x93 0x5 0x50 0xf8
   1998 
   1999 # CHECK: ldrsb    xzr, [x9], #255
   2000 # CHECK: ldrsb    x2, [x3], #1
   2001 # CHECK: ldrsb    x19, [x12], #-256
   2002 # CHECK: ldrsh    xzr, [x9], #255
   2003 # CHECK: ldrsh    x2, [x3], #1
   2004 # CHECK: ldrsh    x19, [x12], #-256
   2005 # CHECK: ldrsw    xzr, [x9], #255
   2006 # CHECK: ldrsw    x2, [x3], #1
   2007 # CHECK: ldrsw    x19, [x12], #-256
   2008 0x3f 0xf5 0x8f 0x38
   2009 0x62 0x14 0x80 0x38
   2010 0x93 0x5 0x90 0x38
   2011 0x3f 0xf5 0x8f 0x78
   2012 0x62 0x14 0x80 0x78
   2013 0x93 0x5 0x90 0x78
   2014 0x3f 0xf5 0x8f 0xb8
   2015 0x62 0x14 0x80 0xb8
   2016 0x93 0x5 0x90 0xb8
   2017 
   2018 # CHECK: ldrsb    wzr, [x9], #255
   2019 # CHECK: ldrsb    w2, [x3], #1
   2020 # CHECK: ldrsb    w19, [x12], #-256
   2021 # CHECK: ldrsh    wzr, [x9], #255
   2022 # CHECK: ldrsh    w2, [x3], #1
   2023 # CHECK: ldrsh    w19, [x12], #-256
   2024 0x3f 0xf5 0xcf 0x38
   2025 0x62 0x14 0xc0 0x38
   2026 0x93 0x5 0xd0 0x38
   2027 0x3f 0xf5 0xcf 0x78
   2028 0x62 0x14 0xc0 0x78
   2029 0x93 0x5 0xd0 0x78
   2030 
   2031 # CHECK: str      b0, [x0], #255
   2032 # CHECK: str      b3, [x3], #1
   2033 # CHECK: str      b5, [sp], #-256
   2034 # CHECK: str      h10, [x10], #255
   2035 # CHECK: str      h13, [x23], #1
   2036 # CHECK: str      h15, [sp], #-256
   2037 # CHECK: str      s20, [x20], #255
   2038 # CHECK: str      s23, [x23], #1
   2039 # CHECK: str      s25, [x0], #-256
   2040 # CHECK: str      d20, [x20], #255
   2041 # CHECK: str      d23, [x23], #1
   2042 # CHECK: str      d25, [x0], #-256
   2043 0x0 0xf4 0xf 0x3c
   2044 0x63 0x14 0x0 0x3c
   2045 0xe5 0x7 0x10 0x3c
   2046 0x4a 0xf5 0xf 0x7c
   2047 0xed 0x16 0x0 0x7c
   2048 0xef 0x7 0x10 0x7c
   2049 0x94 0xf6 0xf 0xbc
   2050 0xf7 0x16 0x0 0xbc
   2051 0x19 0x4 0x10 0xbc
   2052 0x94 0xf6 0xf 0xfc
   2053 0xf7 0x16 0x0 0xfc
   2054 0x19 0x4 0x10 0xfc
   2055 
   2056 # CHECK: ldr      b0, [x0], #255
   2057 # CHECK: ldr      b3, [x3], #1
   2058 # CHECK: ldr      b5, [sp], #-256
   2059 # CHECK: ldr      h10, [x10], #255
   2060 # CHECK: ldr      h13, [x23], #1
   2061 # CHECK: ldr      h15, [sp], #-256
   2062 # CHECK: ldr      s20, [x20], #255
   2063 # CHECK: ldr      s23, [x23], #1
   2064 # CHECK: ldr      s25, [x0], #-256
   2065 # CHECK: ldr      d20, [x20], #255
   2066 # CHECK: ldr      d23, [x23], #1
   2067 # CHECK: ldr      d25, [x0], #-256
   2068 0x0 0xf4 0x4f 0x3c
   2069 0x63 0x14 0x40 0x3c
   2070 0xe5 0x7 0x50 0x3c
   2071 0x4a 0xf5 0x4f 0x7c
   2072 0xed 0x16 0x40 0x7c
   2073 0xef 0x7 0x50 0x7c
   2074 0x94 0xf6 0x4f 0xbc
   2075 0xf7 0x16 0x40 0xbc
   2076 0x19 0x4 0x50 0xbc
   2077 0x94 0xf6 0x4f 0xfc
   2078 0xf7 0x16 0x40 0xfc
   2079 0x19 0x4 0x50 0xfc
   2080 0x34 0xf4 0xcf 0x3c
   2081 
   2082 # CHECK: ldr      q20, [x1], #255
   2083 # CHECK: ldr      q23, [x9], #1
   2084 # CHECK: ldr      q25, [x20], #-256
   2085 # CHECK: str      q10, [x1], #255
   2086 # CHECK: str      q22, [sp], #1
   2087 # CHECK: str      q21, [x20], #-256
   2088 0x37 0x15 0xc0 0x3c
   2089 0x99 0x6 0xd0 0x3c
   2090 0x2a 0xf4 0x8f 0x3c
   2091 0xf6 0x17 0x80 0x3c
   2092 0x95 0x6 0x90 0x3c
   2093 
   2094 #-------------------------------------------------------------------------------
   2095 # Load-store register (immediate pre-indexed)
   2096 #-------------------------------------------------------------------------------
   2097 
   2098 # E.g. "str xzr, [sp, #4]!" is *not* unpredictable
   2099 # CHECK-NOT: warning: potentially undefined instruction encoding
   2100 0xff 0xf 0x40 0xf8
   2101 
   2102 # CHECK: ldr      x3, [x4, #0]!
   2103 0x83 0xc 0x40 0xf8
   2104 
   2105 # CHECK: strb     w9, [x2, #255]!
   2106 # CHECK: strb     w10, [x3, #1]!
   2107 # CHECK: strb     w10, [x3, #-256]!
   2108 # CHECK: strh     w9, [x2, #255]!
   2109 # CHECK: strh     w9, [x2, #1]!
   2110 # CHECK: strh     w10, [x3, #-256]!
   2111 0x49 0xfc 0xf 0x38
   2112 0x6a 0x1c 0x0 0x38
   2113 0x6a 0xc 0x10 0x38
   2114 0x49 0xfc 0xf 0x78
   2115 0x49 0x1c 0x0 0x78
   2116 0x6a 0xc 0x10 0x78
   2117 
   2118 # CHECK: str      w19, [sp, #255]!
   2119 # CHECK: str      w20, [x30, #1]!
   2120 # CHECK: str      w21, [x12, #-256]!
   2121 # CHECK: str      xzr, [x9, #255]!
   2122 # CHECK: str      x2, [x3, #1]!
   2123 # CHECK: str      x19, [x12, #-256]!
   2124 0xf3 0xff 0xf 0xb8
   2125 0xd4 0x1f 0x0 0xb8
   2126 0x95 0xd 0x10 0xb8
   2127 0x3f 0xfd 0xf 0xf8
   2128 0x62 0x1c 0x0 0xf8
   2129 0x93 0xd 0x10 0xf8
   2130 
   2131 # CHECK: ldrb     w9, [x2, #255]!
   2132 # CHECK: ldrb     w10, [x3, #1]!
   2133 # CHECK: ldrb     w10, [x3, #-256]!
   2134 # CHECK: ldrh     w9, [x2, #255]!
   2135 # CHECK: ldrh     w9, [x2, #1]!
   2136 # CHECK: ldrh     w10, [x3, #-256]!
   2137 0x49 0xfc 0x4f 0x38
   2138 0x6a 0x1c 0x40 0x38
   2139 0x6a 0xc 0x50 0x38
   2140 0x49 0xfc 0x4f 0x78
   2141 0x49 0x1c 0x40 0x78
   2142 0x6a 0xc 0x50 0x78
   2143 
   2144 # CHECK: ldr      w19, [sp, #255]!
   2145 # CHECK: ldr      w20, [x30, #1]!
   2146 # CHECK: ldr      w21, [x12, #-256]!
   2147 # CHECK: ldr      xzr, [x9, #255]!
   2148 # CHECK: ldr      x2, [x3, #1]!
   2149 # CHECK: ldr      x19, [x12, #-256]!
   2150 0xf3 0xff 0x4f 0xb8
   2151 0xd4 0x1f 0x40 0xb8
   2152 0x95 0xd 0x50 0xb8
   2153 0x3f 0xfd 0x4f 0xf8
   2154 0x62 0x1c 0x40 0xf8
   2155 0x93 0xd 0x50 0xf8
   2156 
   2157 # CHECK: ldrsb    xzr, [x9, #255]!
   2158 # CHECK: ldrsb    x2, [x3, #1]!
   2159 # CHECK: ldrsb    x19, [x12, #-256]!
   2160 # CHECK: ldrsh    xzr, [x9, #255]!
   2161 # CHECK: ldrsh    x2, [x3, #1]!
   2162 # CHECK: ldrsh    x19, [x12, #-256]!
   2163 # CHECK: ldrsw    xzr, [x9, #255]!
   2164 # CHECK: ldrsw    x2, [x3, #1]!
   2165 # CHECK: ldrsw    x19, [x12, #-256]!
   2166 0x3f 0xfd 0x8f 0x38
   2167 0x62 0x1c 0x80 0x38
   2168 0x93 0xd 0x90 0x38
   2169 0x3f 0xfd 0x8f 0x78
   2170 0x62 0x1c 0x80 0x78
   2171 0x93 0xd 0x90 0x78
   2172 0x3f 0xfd 0x8f 0xb8
   2173 0x62 0x1c 0x80 0xb8
   2174 0x93 0xd 0x90 0xb8
   2175 
   2176 # CHECK: ldrsb    wzr, [x9, #255]!
   2177 # CHECK: ldrsb    w2, [x3, #1]!
   2178 # CHECK: ldrsb    w19, [x12, #-256]!
   2179 # CHECK: ldrsh    wzr, [x9, #255]!
   2180 # CHECK: ldrsh    w2, [x3, #1]!
   2181 # CHECK: ldrsh    w19, [x12, #-256]!
   2182 0x3f 0xfd 0xcf 0x38
   2183 0x62 0x1c 0xc0 0x38
   2184 0x93 0xd 0xd0 0x38
   2185 0x3f 0xfd 0xcf 0x78
   2186 0x62 0x1c 0xc0 0x78
   2187 0x93 0xd 0xd0 0x78
   2188 
   2189 # CHECK: str      b0, [x0, #255]!
   2190 # CHECK: str      b3, [x3, #1]!
   2191 # CHECK: str      b5, [sp, #-256]!
   2192 # CHECK: str      h10, [x10, #255]!
   2193 # CHECK: str      h13, [x23, #1]!
   2194 # CHECK: str      h15, [sp, #-256]!
   2195 # CHECK: str      s20, [x20, #255]!
   2196 # CHECK: str      s23, [x23, #1]!
   2197 # CHECK: str      s25, [x0, #-256]!
   2198 # CHECK: str      d20, [x20, #255]!
   2199 # CHECK: str      d23, [x23, #1]!
   2200 # CHECK: str      d25, [x0, #-256]!
   2201 0x0 0xfc 0xf 0x3c
   2202 0x63 0x1c 0x0 0x3c
   2203 0xe5 0xf 0x10 0x3c
   2204 0x4a 0xfd 0xf 0x7c
   2205 0xed 0x1e 0x0 0x7c
   2206 0xef 0xf 0x10 0x7c
   2207 0x94 0xfe 0xf 0xbc
   2208 0xf7 0x1e 0x0 0xbc
   2209 0x19 0xc 0x10 0xbc
   2210 0x94 0xfe 0xf 0xfc
   2211 0xf7 0x1e 0x0 0xfc
   2212 0x19 0xc 0x10 0xfc
   2213 
   2214 # CHECK: ldr      b0, [x0, #255]!
   2215 # CHECK: ldr      b3, [x3, #1]!
   2216 # CHECK: ldr      b5, [sp, #-256]!
   2217 # CHECK: ldr      h10, [x10, #255]!
   2218 # CHECK: ldr      h13, [x23, #1]!
   2219 # CHECK: ldr      h15, [sp, #-256]!
   2220 # CHECK: ldr      s20, [x20, #255]!
   2221 # CHECK: ldr      s23, [x23, #1]!
   2222 # CHECK: ldr      s25, [x0, #-256]!
   2223 # CHECK: ldr      d20, [x20, #255]!
   2224 # CHECK: ldr      d23, [x23, #1]!
   2225 # CHECK: ldr      d25, [x0, #-256]!
   2226 0x0 0xfc 0x4f 0x3c
   2227 0x63 0x1c 0x40 0x3c
   2228 0xe5 0xf 0x50 0x3c
   2229 0x4a 0xfd 0x4f 0x7c
   2230 0xed 0x1e 0x40 0x7c
   2231 0xef 0xf 0x50 0x7c
   2232 0x94 0xfe 0x4f 0xbc
   2233 0xf7 0x1e 0x40 0xbc
   2234 0x19 0xc 0x50 0xbc
   2235 0x94 0xfe 0x4f 0xfc
   2236 0xf7 0x1e 0x40 0xfc
   2237 0x19 0xc 0x50 0xfc
   2238 
   2239 # CHECK: ldr      q20, [x1, #255]!
   2240 # CHECK: ldr      q23, [x9, #1]!
   2241 # CHECK: ldr      q25, [x20, #-256]!
   2242 # CHECK: str      q10, [x1, #255]!
   2243 # CHECK: str      q22, [sp, #1]!
   2244 # CHECK: str      q21, [x20, #-256]!
   2245 0x34 0xfc 0xcf 0x3c
   2246 0x37 0x1d 0xc0 0x3c
   2247 0x99 0xe 0xd0 0x3c
   2248 0x2a 0xfc 0x8f 0x3c
   2249 0xf6 0x1f 0x80 0x3c
   2250 0x95 0xe 0x90 0x3c
   2251 
   2252 #------------------------------------------------------------------------------
   2253 # Load/store (unprivileged)
   2254 #------------------------------------------------------------------------------
   2255 
   2256 # CHECK: sttrb    w9, [sp]
   2257 # CHECK: sttrh    wzr, [x12, #255]
   2258 # CHECK: sttr     w16, [x0, #-256]
   2259 # CHECK: sttr     x28, [x14, #1]
   2260 0xe9 0x0b 0x0 0x38
   2261 0x9f 0xf9 0xf 0x78
   2262 0x10 0x08 0x10 0xb8
   2263 0xdc 0x19 0x0 0xf8
   2264 
   2265 # CHECK: ldtrb    w1, [x20, #255]
   2266 # CHECK: ldtrh    w20, [x1, #255]
   2267 # CHECK: ldtr     w12, [sp, #255]
   2268 # CHECK: ldtr     xzr, [x12, #255]
   2269 0x81 0xfa 0x4f 0x38
   2270 0x34 0xf8 0x4f 0x78
   2271 0xec 0xfb 0x4f 0xb8
   2272 0x9f 0xf9 0x4f 0xf8
   2273 
   2274 # CHECK: ldtrsb   x9, [x7, #-256]
   2275 # CHECK: ldtrsh   x17, [x19, #-256]
   2276 # CHECK: ldtrsw   x20, [x15, #-256]
   2277 # CHECK: ldtrsb   w19, [x1, #-256]
   2278 # CHECK: ldtrsh   w15, [x21, #-256]
   2279 0xe9 0x08 0x90 0x38
   2280 0x71 0x0a 0x90 0x78
   2281 0xf4 0x09 0x90 0xb8
   2282 0x33 0x08 0xd0 0x38
   2283 0xaf 0x0a 0xd0 0x78
   2284 
   2285 #------------------------------------------------------------------------------
   2286 # Load/store (unsigned  immediate)
   2287 #------------------------------------------------------------------------------
   2288 
   2289 # CHECK: ldr      x0, [x0]
   2290 # CHECK: ldr      x4, [x29]
   2291 # CHECK: ldr      x30, [x12, #32760]
   2292 # CHECK: ldr      x20, [sp, #8]
   2293 0x0 0x0 0x40 0xf9
   2294 0xa4 0x3 0x40 0xf9
   2295 0x9e 0xfd 0x7f 0xf9
   2296 0xf4 0x7 0x40 0xf9
   2297 
   2298 # CHECK: ldr      xzr, [sp]
   2299 0xff 0x3 0x40 0xf9
   2300 
   2301 # CHECK: ldr      w2, [sp]
   2302 # CHECK: ldr      w17, [sp, #16380]
   2303 # CHECK: ldr      w13, [x2, #4]
   2304 0xe2 0x3 0x40 0xb9
   2305 0xf1 0xff 0x7f 0xb9
   2306 0x4d 0x4 0x40 0xb9
   2307 
   2308 # CHECK: ldrsw    x2, [x5, #4]
   2309 # CHECK: ldrsw    x23, [sp, #16380]
   2310 0xa2 0x4 0x80 0xb9
   2311 0xf7 0xff 0xbf 0xb9
   2312 
   2313 # CHECK: ldrh     w2, [x4]
   2314 # CHECK: ldrsh    w23, [x6, #8190]
   2315 # CHECK: ldrsh    wzr, [sp, #2]
   2316 # CHECK: ldrsh    x29, [x2, #2]
   2317 0x82 0x0 0x40 0x79
   2318 0xd7 0xfc 0xff 0x79
   2319 0xff 0x7 0xc0 0x79
   2320 0x5d 0x4 0x80 0x79
   2321 
   2322 # CHECK: ldrb     w26, [x3, #121]
   2323 # CHECK: ldrb     w12, [x2]
   2324 # CHECK: ldrsb    w27, [sp, #4095]
   2325 # CHECK: ldrsb    xzr, [x15]
   2326 0x7a 0xe4 0x41 0x39
   2327 0x4c 0x0 0x40 0x39
   2328 0xfb 0xff 0xff 0x39
   2329 0xff 0x1 0x80 0x39
   2330 
   2331 # CHECK: str      x30, [sp]
   2332 # CHECK: str      w20, [x4, #16380]
   2333 # CHECK: strh     w20, [x10, #14]
   2334 # CHECK: strh     w17, [sp, #8190]
   2335 # CHECK: strb     w23, [x3, #4095]
   2336 # CHECK: strb     wzr, [x2]
   2337 0xfe 0x3 0x0 0xf9
   2338 0x94 0xfc 0x3f 0xb9
   2339 0x54 0x1d 0x0 0x79
   2340 0xf1 0xff 0x3f 0x79
   2341 0x77 0xfc 0x3f 0x39
   2342 0x5f 0x0 0x0 0x39
   2343 
   2344 # CHECK: ldr      b31, [sp, #4095]
   2345 # CHECK: ldr      h20, [x2, #8190]
   2346 # CHECK: ldr      s10, [x19, #16380]
   2347 # CHECK: ldr      d3, [x10, #32760]
   2348 # CHECK: str      q12, [sp, #65520]
   2349 0xff 0xff 0x7f 0x3d
   2350 0x54 0xfc 0x7f 0x7d
   2351 0x6a 0xfe 0x7f 0xbd
   2352 0x43 0xfd 0x7f 0xfd
   2353 0xec 0xff 0xbf 0x3d
   2354 
   2355 # CHECK: prfm    pldl1keep, [sp, #8]
   2356 # CHECK: prfm    pldl1strm, [x3, #0]
   2357 # CHECK: prfm    pldl2keep, [x5, #16]
   2358 # CHECK: prfm    pldl2strm, [x2, #0]
   2359 # CHECK: prfm    pldl3keep, [x5, #0]
   2360 # CHECK: prfm    pldl3strm, [x6, #0]
   2361 # CHECK: prfm    plil1keep, [sp, #8]
   2362 # CHECK: prfm    plil1strm, [x3, #0]
   2363 # CHECK: prfm    plil2keep, [x5, #16]
   2364 # CHECK: prfm    plil2strm, [x2, #0]
   2365 # CHECK: prfm    plil3keep, [x5, #0]
   2366 # CHECK: prfm    plil3strm, [x6, #0]
   2367 # CHECK: prfm    pstl1keep, [sp, #8]
   2368 # CHECK: prfm    pstl1strm, [x3, #0]
   2369 # CHECK: prfm    pstl2keep, [x5, #16]
   2370 # CHECK: prfm    pstl2strm, [x2, #0]
   2371 # CHECK: prfm    pstl3keep, [x5, #0]
   2372 # CHECK: prfm    pstl3strm, [x6, #0]
   2373 0xe0 0x07 0x80 0xf9
   2374 0x61 0x00 0x80 0xf9
   2375 0xa2 0x08 0x80 0xf9
   2376 0x43 0x00 0x80 0xf9
   2377 0xa4 0x00 0x80 0xf9
   2378 0xc5 0x00 0x80 0xf9
   2379 0xe8 0x07 0x80 0xf9
   2380 0x69 0x00 0x80 0xf9
   2381 0xaa 0x08 0x80 0xf9
   2382 0x4b 0x00 0x80 0xf9
   2383 0xac 0x00 0x80 0xf9
   2384 0xcd 0x00 0x80 0xf9
   2385 0xf0 0x07 0x80 0xf9
   2386 0x71 0x00 0x80 0xf9
   2387 0xb2 0x08 0x80 0xf9
   2388 0x53 0x00 0x80 0xf9
   2389 0xb4 0x00 0x80 0xf9
   2390 0xd5 0x00 0x80 0xf9
   2391 
   2392 
   2393 #------------------------------------------------------------------------------
   2394 # Load/store (register offset)
   2395 #------------------------------------------------------------------------------
   2396 
   2397 # CHECK: ldrb     w3, [sp, x5]
   2398 # CHECK: ldrb     w9, [x27, x6]
   2399 # CHECK: ldrsb    w10, [x30, x7]
   2400 # CHECK: ldrb     w11, [x29, x3, sxtx]
   2401 # CHECK: strb     w12, [x28, xzr, sxtx]
   2402 # CHECK: ldrb     w14, [x26, w6, uxtw]
   2403 # CHECK: ldrsb    w15, [x25, w7, uxtw]
   2404 # CHECK: ldrb     w17, [x23, w9, sxtw]
   2405 # CHECK: ldrsb    x18, [x22, w10, sxtw]
   2406 0xe3 0x6b 0x65 0x38
   2407 0x69 0x6b 0x66 0x38
   2408 0xca 0x6b 0xe7 0x38
   2409 0xab 0xeb 0x63 0x38
   2410 0x8c 0xeb 0x3f 0x38
   2411 0x4e 0x4b 0x66 0x38
   2412 0x2f 0x4b 0xe7 0x38
   2413 0xf1 0xca 0x69 0x38
   2414 0xd2 0xca 0xaa 0x38
   2415 
   2416 # CHECK: ldrsh    w3, [sp, x5]
   2417 # CHECK: ldrsh    w9, [x27, x6]
   2418 # CHECK: ldrh     w10, [x30, x7, lsl #1]
   2419 # CHECK: strh     w11, [x29, x3, sxtx]
   2420 # CHECK: ldrh     w12, [x28, xzr, sxtx]
   2421 # CHECK: ldrsh    x13, [x27, x5, sxtx #1]
   2422 # CHECK: ldrh     w14, [x26, w6, uxtw]
   2423 # CHECK: ldrh     w15, [x25, w7, uxtw]
   2424 # CHECK: ldrsh    w16, [x24, w8, uxtw #1]
   2425 # CHECK: ldrh     w17, [x23, w9, sxtw]
   2426 # CHECK: ldrh     w18, [x22, w10, sxtw]
   2427 # CHECK: strh     w19, [x21, wzr, sxtw #1]
   2428 0xe3 0x6b 0xe5 0x78
   2429 0x69 0x6b 0xe6 0x78
   2430 0xca 0x7b 0x67 0x78
   2431 0xab 0xeb 0x23 0x78
   2432 0x8c 0xeb 0x7f 0x78
   2433 0x6d 0xfb 0xa5 0x78
   2434 0x4e 0x4b 0x66 0x78
   2435 0x2f 0x4b 0x67 0x78
   2436 0x10 0x5b 0xe8 0x78
   2437 0xf1 0xca 0x69 0x78
   2438 0xd2 0xca 0x6a 0x78
   2439 0xb3 0xda 0x3f 0x78
   2440 
   2441 # CHECK: ldr      w3, [sp, x5]
   2442 # CHECK: ldr      s9, [x27, x6]
   2443 # CHECK: ldr      w10, [x30, x7, lsl #2]
   2444 # CHECK: ldr      w11, [x29, x3, sxtx]
   2445 # CHECK: str      s12, [x28, xzr, sxtx]
   2446 # CHECK: str      w13, [x27, x5, sxtx #2]
   2447 # CHECK: str      w14, [x26, w6, uxtw]
   2448 # CHECK: ldr      w15, [x25, w7, uxtw]
   2449 # CHECK: ldr      w16, [x24, w8, uxtw #2]
   2450 # CHECK: ldrsw    x17, [x23, w9, sxtw]
   2451 # CHECK: ldr      w18, [x22, w10, sxtw]
   2452 # CHECK: ldrsw    x19, [x21, wzr, sxtw #2]
   2453 0xe3 0x6b 0x65 0xb8
   2454 0x69 0x6b 0x66 0xbc
   2455 0xca 0x7b 0x67 0xb8
   2456 0xab 0xeb 0x63 0xb8
   2457 0x8c 0xeb 0x3f 0xbc
   2458 0x6d 0xfb 0x25 0xb8
   2459 0x4e 0x4b 0x26 0xb8
   2460 0x2f 0x4b 0x67 0xb8
   2461 0x10 0x5b 0x68 0xb8
   2462 0xf1 0xca 0xa9 0xb8
   2463 0xd2 0xca 0x6a 0xb8
   2464 0xb3 0xda 0xbf 0xb8
   2465 
   2466 # CHECK: ldr      x3, [sp, x5]
   2467 # CHECK: str      x9, [x27, x6]
   2468 # CHECK: ldr      d10, [x30, x7, lsl #3]
   2469 # CHECK: str      x11, [x29, x3, sxtx]
   2470 # CHECK: ldr      x12, [x28, xzr, sxtx]
   2471 # CHECK: ldr      x13, [x27, x5, sxtx #3]
   2472 # CHECK: prfm     pldl1keep, [x26, w6, uxtw]
   2473 # CHECK: ldr      x15, [x25, w7, uxtw]
   2474 # CHECK: ldr      x16, [x24, w8, uxtw #3]
   2475 # CHECK: ldr      x17, [x23, w9, sxtw]
   2476 # CHECK: ldr      x18, [x22, w10, sxtw]
   2477 # CHECK: str      d19, [x21, wzr, sxtw #3]
   2478 0xe3 0x6b 0x65 0xf8
   2479 0x69 0x6b 0x26 0xf8
   2480 0xca 0x7b 0x67 0xfc
   2481 0xab 0xeb 0x23 0xf8
   2482 0x8c 0xeb 0x7f 0xf8
   2483 0x6d 0xfb 0x65 0xf8
   2484 0x40 0x4b 0xa6 0xf8
   2485 0x2f 0x4b 0x67 0xf8
   2486 0x10 0x5b 0x68 0xf8
   2487 0xf1 0xca 0x69 0xf8
   2488 0xd2 0xca 0x6a 0xf8
   2489 0xb3 0xda 0x3f 0xfc
   2490 
   2491 # CHECK: ldr      q3, [sp, x5]
   2492 # CHECK: ldr      q9, [x27, x6]
   2493 # CHECK: ldr      q10, [x30, x7, lsl #4]
   2494 # CHECK: str      q11, [x29, x3, sxtx]
   2495 # CHECK: str      q12, [x28, xzr, sxtx]
   2496 # CHECK: str      q13, [x27, x5, sxtx #4]
   2497 # CHECK: ldr      q14, [x26, w6, uxtw]
   2498 # CHECK: ldr      q15, [x25, w7, uxtw]
   2499 # CHECK: ldr      q16, [x24, w8, uxtw #4]
   2500 # CHECK: ldr      q17, [x23, w9, sxtw]
   2501 # CHECK: str      q18, [x22, w10, sxtw]
   2502 # CHECK: ldr      q19, [x21, wzr, sxtw #4]
   2503 0xe3 0x6b 0xe5 0x3c
   2504 0x69 0x6b 0xe6 0x3c
   2505 0xca 0x7b 0xe7 0x3c
   2506 0xab 0xeb 0xa3 0x3c
   2507 0x8c 0xeb 0xbf 0x3c
   2508 0x6d 0xfb 0xa5 0x3c
   2509 0x4e 0x4b 0xe6 0x3c
   2510 0x2f 0x4b 0xe7 0x3c
   2511 0x10 0x5b 0xe8 0x3c
   2512 0xf1 0xca 0xe9 0x3c
   2513 0xd2 0xca 0xaa 0x3c
   2514 0xb3 0xda 0xff 0x3c
   2515 
   2516 #------------------------------------------------------------------------------
   2517 # Load/store register pair (offset)
   2518 #------------------------------------------------------------------------------
   2519 
   2520 # CHECK: ldp      w3, w5, [sp]
   2521 # CHECK: stp      wzr, w9, [sp, #252]
   2522 # CHECK: ldp      w2, wzr, [sp, #-256]
   2523 # CHECK: ldp      w9, w10, [sp, #4]
   2524 0xe3 0x17 0x40 0x29
   2525 0xff 0xa7 0x1f 0x29
   2526 0xe2 0x7f 0x60 0x29
   2527 0xe9 0xab 0x40 0x29
   2528 
   2529 # CHECK: ldpsw    x9, x10, [sp, #4]
   2530 # CHECK: ldpsw    x9, x10, [x2, #-256]
   2531 # CHECK: ldpsw    x20, x30, [sp, #252]
   2532 0xe9 0xab 0x40 0x69
   2533 0x49 0x28 0x60 0x69
   2534 0xf4 0xfb 0x5f 0x69
   2535 
   2536 # CHECK: ldp      x21, x29, [x2, #504]
   2537 # CHECK: ldp      x22, x23, [x3, #-512]
   2538 # CHECK: ldp      x24, x25, [x4, #8]
   2539 0x55 0xf4 0x5f 0xa9
   2540 0x76 0x5c 0x60 0xa9
   2541 0x98 0xe4 0x40 0xa9
   2542 
   2543 # CHECK: ldp      s29, s28, [sp, #252]
   2544 # CHECK: stp      s27, s26, [sp, #-256]
   2545 # CHECK: ldp      s1, s2, [x3, #44]
   2546 0xfd 0xf3 0x5f 0x2d
   2547 0xfb 0x6b 0x20 0x2d
   2548 0x61 0x88 0x45 0x2d
   2549 
   2550 # CHECK: stp      d3, d5, [x9, #504]
   2551 # CHECK: stp      d7, d11, [x10, #-512]
   2552 # CHECK: ldp      d2, d3, [x30, #-8]
   2553 0x23 0x95 0x1f 0x6d
   2554 0x47 0x2d 0x20 0x6d
   2555 0xc2 0x8f 0x7f 0x6d
   2556 
   2557 # CHECK: stp      q3, q5, [sp]
   2558 # CHECK: stp      q17, q19, [sp, #1008]
   2559 # CHECK: ldp      q23, q29, [x1, #-1024]
   2560 0xe3 0x17 0x0 0xad
   2561 0xf1 0xcf 0x1f 0xad
   2562 0x37 0x74 0x60 0xad
   2563 
   2564 #------------------------------------------------------------------------------
   2565 # Load/store register pair (post-indexed)
   2566 #------------------------------------------------------------------------------
   2567 
   2568 # CHECK: ldp      w3, w5, [sp], #0
   2569 # CHECK: stp      wzr, w9, [sp], #252
   2570 # CHECK: ldp      w2, wzr, [sp], #-256
   2571 # CHECK: ldp      w9, w10, [sp], #4
   2572 0xe3 0x17 0xc0 0x28
   2573 0xff 0xa7 0x9f 0x28
   2574 0xe2 0x7f 0xe0 0x28
   2575 0xe9 0xab 0xc0 0x28
   2576 
   2577 # CHECK: ldpsw    x9, x10, [sp], #4
   2578 # CHECK: ldpsw    x9, x10, [x2], #-256
   2579 # CHECK: ldpsw    x20, x30, [sp], #252
   2580 0xe9 0xab 0xc0 0x68
   2581 0x49 0x28 0xe0 0x68
   2582 0xf4 0xfb 0xdf 0x68
   2583 
   2584 # CHECK: ldp      x21, x29, [x2], #504
   2585 # CHECK: ldp      x22, x23, [x3], #-512
   2586 # CHECK: ldp      x24, x25, [x4], #8
   2587 0x55 0xf4 0xdf 0xa8
   2588 0x76 0x5c 0xe0 0xa8
   2589 0x98 0xe4 0xc0 0xa8
   2590 
   2591 # CHECK: ldp      s29, s28, [sp], #252
   2592 # CHECK: stp      s27, s26, [sp], #-256
   2593 # CHECK: ldp      s1, s2, [x3], #44
   2594 0xfd 0xf3 0xdf 0x2c
   2595 0xfb 0x6b 0xa0 0x2c
   2596 0x61 0x88 0xc5 0x2c
   2597 
   2598 # CHECK: stp      d3, d5, [x9], #504
   2599 # CHECK: stp      d7, d11, [x10], #-512
   2600 # CHECK: ldp      d2, d3, [x30], #-8
   2601 0x23 0x95 0x9f 0x6c
   2602 0x47 0x2d 0xa0 0x6c
   2603 0xc2 0x8f 0xff 0x6c
   2604 
   2605 # CHECK: stp      q3, q5, [sp], #0
   2606 # CHECK: stp      q17, q19, [sp], #1008
   2607 # CHECK: ldp      q23, q29, [x1], #-1024
   2608 0xe3 0x17 0x80 0xac
   2609 0xf1 0xcf 0x9f 0xac
   2610 0x37 0x74 0xe0 0xac
   2611 
   2612 #------------------------------------------------------------------------------
   2613 # Load/store register pair (pre-indexed)
   2614 #------------------------------------------------------------------------------
   2615 
   2616 # CHECK: ldp      w3, w5, [sp, #0]!
   2617 # CHECK: stp      wzr, w9, [sp, #252]!
   2618 # CHECK: ldp      w2, wzr, [sp, #-256]!
   2619 # CHECK: ldp      w9, w10, [sp, #4]!
   2620 0xe3 0x17 0xc0 0x29
   2621 0xff 0xa7 0x9f 0x29
   2622 0xe2 0x7f 0xe0 0x29
   2623 0xe9 0xab 0xc0 0x29
   2624 
   2625 # CHECK: ldpsw    x9, x10, [sp, #4]!
   2626 # CHECK: ldpsw    x9, x10, [x2, #-256]!
   2627 # CHECK: ldpsw    x20, x30, [sp, #252]!
   2628 0xe9 0xab 0xc0 0x69
   2629 0x49 0x28 0xe0 0x69
   2630 0xf4 0xfb 0xdf 0x69
   2631 
   2632 # CHECK: ldp      x21, x29, [x2, #504]!
   2633 # CHECK: ldp      x22, x23, [x3, #-512]!
   2634 # CHECK: ldp      x24, x25, [x4, #8]!
   2635 0x55 0xf4 0xdf 0xa9
   2636 0x76 0x5c 0xe0 0xa9
   2637 0x98 0xe4 0xc0 0xa9
   2638 
   2639 # CHECK: ldp      s29, s28, [sp, #252]!
   2640 # CHECK: stp      s27, s26, [sp, #-256]!
   2641 # CHECK: ldp      s1, s2, [x3, #44]!
   2642 0xfd 0xf3 0xdf 0x2d
   2643 0xfb 0x6b 0xa0 0x2d
   2644 0x61 0x88 0xc5 0x2d
   2645 
   2646 # CHECK: stp      d3, d5, [x9, #504]!
   2647 # CHECK: stp      d7, d11, [x10, #-512]!
   2648 # CHECK: ldp      d2, d3, [x30, #-8]!
   2649 0x23 0x95 0x9f 0x6d
   2650 0x47 0x2d 0xa0 0x6d
   2651 0xc2 0x8f 0xff 0x6d
   2652 
   2653 # CHECK: stp      q3, q5, [sp, #0]!
   2654 # CHECK: stp      q17, q19, [sp, #1008]!
   2655 # CHECK: ldp      q23, q29, [x1, #-1024]!
   2656 0xe3 0x17 0x80 0xad
   2657 0xf1 0xcf 0x9f 0xad
   2658 0x37 0x74 0xe0 0xad
   2659 
   2660 #------------------------------------------------------------------------------
   2661 # Load/store register pair (offset)
   2662 #------------------------------------------------------------------------------
   2663 
   2664 # CHECK: ldnp      w3, w5, [sp]
   2665 # CHECK: stnp      wzr, w9, [sp, #252]
   2666 # CHECK: ldnp      w2, wzr, [sp, #-256]
   2667 # CHECK: ldnp      w9, w10, [sp, #4]
   2668 0xe3 0x17 0x40 0x28
   2669 0xff 0xa7 0x1f 0x28
   2670 0xe2 0x7f 0x60 0x28
   2671 0xe9 0xab 0x40 0x28
   2672 
   2673 # CHECK: ldnp      x21, x29, [x2, #504]
   2674 # CHECK: ldnp      x22, x23, [x3, #-512]
   2675 # CHECK: ldnp      x24, x25, [x4, #8]
   2676 0x55 0xf4 0x5f 0xa8
   2677 0x76 0x5c 0x60 0xa8
   2678 0x98 0xe4 0x40 0xa8
   2679 
   2680 # CHECK: ldnp      s29, s28, [sp, #252]
   2681 # CHECK: stnp      s27, s26, [sp, #-256]
   2682 # CHECK: ldnp      s1, s2, [x3, #44]
   2683 0xfd 0xf3 0x5f 0x2c
   2684 0xfb 0x6b 0x20 0x2c
   2685 0x61 0x88 0x45 0x2c
   2686 
   2687 # CHECK: stnp      d3, d5, [x9, #504]
   2688 # CHECK: stnp      d7, d11, [x10, #-512]
   2689 # CHECK: ldnp      d2, d3, [x30, #-8]
   2690 0x23 0x95 0x1f 0x6c
   2691 0x47 0x2d 0x20 0x6c
   2692 0xc2 0x8f 0x7f 0x6c
   2693 
   2694 # CHECK: stnp      q3, q5, [sp]
   2695 # CHECK: stnp      q17, q19, [sp, #1008]
   2696 # CHECK: ldnp      q23, q29, [x1, #-1024]
   2697 0xe3 0x17 0x0 0xac
   2698 0xf1 0xcf 0x1f 0xac
   2699 0x37 0x74 0x60 0xac
   2700 
   2701 #------------------------------------------------------------------------------
   2702 # Logical (immediate)
   2703 #------------------------------------------------------------------------------
   2704 # CHECK: orr      w3, w9, #0xffff0000
   2705 # CHECK: orr      wsp, w10, #0xe00000ff
   2706 # CHECK: orr      w9, w10, #0x3ff
   2707 0x23 0x3d 0x10 0x32
   2708 0x5f 0x29 0x3 0x32
   2709 0x49 0x25 0x0 0x32
   2710 
   2711 # CHECK: and      w14, w15, #0x80008000
   2712 # CHECK: and      w12, w13, #0xffc3ffc3
   2713 # CHECK: and      w11, wzr, #0x30003
   2714 0xee 0x81 0x1 0x12
   2715 0xac 0xad 0xa 0x12
   2716 0xeb 0x87 0x0 0x12
   2717 
   2718 # CHECK: eor      w3, w6, #0xe0e0e0e0
   2719 # CHECK: eor      wsp, wzr, #0x3030303
   2720 # CHECK: eor      w16, w17, #0x81818181
   2721 0xc3 0xc8 0x3 0x52
   2722 0xff 0xc7 0x0 0x52
   2723 0x30 0xc6 0x1 0x52
   2724 
   2725 # CHECK: ands     wzr, w18, #0xcccccccc
   2726 # CHECK: ands     w19, w20, #0x33333333
   2727 # CHECK: ands     w21, w22, #0x99999999
   2728 0x5f 0xe6 0x2 0x72
   2729 0x93 0xe6 0x0 0x72
   2730 0xd5 0xe6 0x1 0x72
   2731 
   2732 # CHECK: ands     wzr, w3, #0xaaaaaaaa
   2733 # CHECK: ands     wzr, wzr, #0x55555555
   2734 0x7f 0xf0 0x1 0x72
   2735 0xff 0xf3 0x0 0x72
   2736 
   2737 # CHECK: eor      x3, x5, #0xffffffffc000000
   2738 # CHECK: and      x9, x10, #0x7fffffffffff
   2739 # CHECK: orr      x11, x12, #0x8000000000000fff
   2740 0xa3 0x84 0x66 0xd2
   2741 0x49 0xb9 0x40 0x92
   2742 0x8b 0x31 0x41 0xb2
   2743 
   2744 # CHECK: orr      x3, x9, #0xffff0000ffff0000
   2745 # CHECK: orr      sp, x10, #0xe00000ffe00000ff
   2746 # CHECK: orr      x9, x10, #0x3ff000003ff
   2747 0x23 0x3d 0x10 0xb2
   2748 0x5f 0x29 0x3 0xb2
   2749 0x49 0x25 0x0 0xb2
   2750 
   2751 # CHECK: and      x14, x15, #0x8000800080008000
   2752 # CHECK: and      x12, x13, #0xffc3ffc3ffc3ffc3
   2753 # CHECK: and      x11, xzr, #0x3000300030003
   2754 0xee 0x81 0x1 0x92
   2755 0xac 0xad 0xa 0x92
   2756 0xeb 0x87 0x0 0x92
   2757 
   2758 # CHECK: eor      x3, x6, #0xe0e0e0e0e0e0e0e0
   2759 # CHECK: eor      sp, xzr, #0x303030303030303
   2760 # CHECK: eor      x16, x17, #0x8181818181818181
   2761 0xc3 0xc8 0x3 0xd2
   2762 0xff 0xc7 0x0 0xd2
   2763 0x30 0xc6 0x1 0xd2
   2764 
   2765 # CHECK: ands     xzr, x18, #0xcccccccccccccccc
   2766 # CHECK: ands     x19, x20, #0x3333333333333333
   2767 # CHECK: ands     x21, x22, #0x9999999999999999
   2768 0x5f 0xe6 0x2 0xf2
   2769 0x93 0xe6 0x0 0xf2
   2770 0xd5 0xe6 0x1 0xf2
   2771 
   2772 # CHECK: ands     xzr, x3, #0xaaaaaaaaaaaaaaaa
   2773 # CHECK: ands     xzr, xzr, #0x5555555555555555
   2774 0x7f 0xf0 0x1 0xf2
   2775 0xff 0xf3 0x0 0xf2
   2776 
   2777 # CHECK: orr      w3, wzr, #0xf000f
   2778 # CHECK: orr      x10, xzr, #0xaaaaaaaaaaaaaaaa
   2779 0xe3 0x8f 0x0 0x32
   2780 0xea 0xf3 0x1 0xb2
   2781 
   2782 # CHECK: orr      w3, wzr, #0xffff
   2783 # CHECK: orr      x9, xzr, #0xffff00000000
   2784 0xe3 0x3f 0x0 0x32
   2785 0xe9 0x3f 0x60 0xb2
   2786 
   2787 #------------------------------------------------------------------------------
   2788 # Logical (shifted register)
   2789 #------------------------------------------------------------------------------
   2790 
   2791 # CHECK: and      w12, w23, w21
   2792 # CHECK: and      w16, w15, w1, lsl #1
   2793 # CHECK: and      w9, w4, w10, lsl #31
   2794 # CHECK: and      w3, w30, w11
   2795 # CHECK: and      x3, x5, x7, lsl #63
   2796 0xec 0x2 0x15 0xa
   2797 0xf0 0x5 0x1 0xa
   2798 0x89 0x7c 0xa 0xa
   2799 0xc3 0x3 0xb 0xa
   2800 0xa3 0xfc 0x7 0x8a
   2801 
   2802 # CHECK: and      x5, x14, x19, asr #4
   2803 # CHECK: and      w3, w17, w19, ror #31
   2804 # CHECK: and      w0, w2, wzr, lsr #17
   2805 # CHECK: and      w3, w30, w11, asr
   2806 0xc5 0x11 0x93 0x8a
   2807 0x23 0x7e 0xd3 0xa
   2808 0x40 0x44 0x5f 0xa
   2809 0xc3 0x3 0x8b 0xa
   2810 
   2811 # CHECK: and      xzr, x4, x26
   2812 # CHECK: and      w3, wzr, w20, ror
   2813 # CHECK: and      x7, x20, xzr, asr #63
   2814 0x9f 0x0 0x1a 0x8a
   2815 0xe3 0x3 0xd4 0xa
   2816 0x87 0xfe 0x9f 0x8a
   2817 
   2818 # CHECK: bic      x13, x20, x14, lsl #47
   2819 # CHECK: bic      w2, w7, w9
   2820 # CHECK: orr      w2, w7, w0, asr #31
   2821 # CHECK: orr      x8, x9, x10, lsl #12
   2822 # CHECK: orn      x3, x5, x7, asr
   2823 # CHECK: orn      w2, w5, w29
   2824 0x8d 0xbe 0x2e 0x8a
   2825 0xe2 0x0 0x29 0xa
   2826 0xe2 0x7c 0x80 0x2a
   2827 0x28 0x31 0xa 0xaa
   2828 0xa3 0x0 0xa7 0xaa
   2829 0xa2 0x0 0x3d 0x2a
   2830 
   2831 # CHECK: ands     w7, wzr, w9, lsl #1
   2832 # CHECK: ands     x3, x5, x20, ror #63
   2833 # CHECK: bics     w3, w5, w7
   2834 # CHECK: bics     x3, xzr, x3, lsl #1
   2835 # CHECK: tst      w3, w7, lsl #31
   2836 # CHECK: tst      x2, x20, asr
   2837 0xe7 0x7 0x9 0x6a
   2838 0xa3 0xfc 0xd4 0xea
   2839 0xa3 0x0 0x27 0x6a
   2840 0xe3 0x7 0x23 0xea
   2841 0x7f 0x7c 0x7 0x6a
   2842 0x5f 0x0 0x94 0xea
   2843 
   2844 # CHECK: mov      x3, x6
   2845 # CHECK: mov      x3, xzr
   2846 # CHECK: mov      wzr, w2
   2847 # CHECK: mov      w3, w5
   2848 0xe3 0x3 0x6 0xaa
   2849 0xe3 0x3 0x1f 0xaa
   2850 0xff 0x3 0x2 0x2a
   2851 0xe3 0x3 0x5 0x2a
   2852 
   2853 #------------------------------------------------------------------------------
   2854 # Move wide (immediate)
   2855 #------------------------------------------------------------------------------
   2856 
   2857 # N.b. (FIXME) canonical aliases aren't produced here because of
   2858 # limitation in InstAlias. Lots of the "mov[nz]" instructions should
   2859 # be "mov".
   2860 
   2861 # CHECK: movz     w1, #65535
   2862 # CHECK: movz     w2, #0, lsl #16
   2863 # CHECK: movn     w2, #1234
   2864 0xe1 0xff 0x9f 0x52
   2865 0x2 0x0 0xa0 0x52
   2866 0x42 0x9a 0x80 0x12
   2867 
   2868 # CHECK: movz     x2, #1234, lsl #32
   2869 # CHECK: movk     xzr, #4321, lsl #48
   2870 0x42 0x9a 0xc0 0xd2
   2871 0x3f 0x1c 0xe2 0xf2
   2872 
   2873 # CHECK: movz     x2, #0
   2874 # CHECK: movk     w3, #0
   2875 # CHECK: movz     x4, #0, lsl #16
   2876 # CHECK: movk     w5, #0, lsl #16
   2877 # CHECK: movz     x6, #0, lsl #32
   2878 # CHECK: movk     x7, #0, lsl #32
   2879 # CHECK: movz     x8, #0, lsl #48
   2880 # CHECK: movk     x9, #0, lsl #48
   2881 0x2 0x0 0x80 0xd2
   2882 0x3 0x0 0x80 0x72
   2883 0x4 0x0 0xa0 0xd2
   2884 0x5 0x0 0xa0 0x72
   2885 0x6 0x0 0xc0 0xd2
   2886 0x7 0x0 0xc0 0xf2
   2887 0x8 0x0 0xe0 0xd2
   2888 0x9 0x0 0xe0 0xf2
   2889 
   2890 #------------------------------------------------------------------------------
   2891 # PC-relative addressing
   2892 #------------------------------------------------------------------------------
   2893 
   2894 # It's slightly dodgy using immediates here, but harmless enough when
   2895 # it's all that's available.
   2896 
   2897 # CHECK: adr      x2, #1600
   2898 # CHECK: adrp     x21, #6553600
   2899 # CHECK: adr      x0, #262144
   2900 0x02 0x32 0x00 0x10
   2901 0x15 0x32 0x00 0x90
   2902 0x00 0x00 0x20 0x10
   2903 
   2904 #------------------------------------------------------------------------------
   2905 # System
   2906 #------------------------------------------------------------------------------
   2907 
   2908 # CHECK: nop
   2909 # CHECK: hint     #127
   2910 # CHECK: nop
   2911 # CHECK: yield
   2912 # CHECK: wfe
   2913 # CHECK: wfi
   2914 # CHECK: sev
   2915 # CHECK: sevl
   2916 0x1f 0x20 0x3 0xd5
   2917 0xff 0x2f 0x3 0xd5
   2918 0x1f 0x20 0x3 0xd5
   2919 0x3f 0x20 0x3 0xd5
   2920 0x5f 0x20 0x3 0xd5
   2921 0x7f 0x20 0x3 0xd5
   2922 0x9f 0x20 0x3 0xd5
   2923 0xbf 0x20 0x3 0xd5
   2924 
   2925 # CHECK: clrex
   2926 # CHECK: clrex    #0
   2927 # CHECK: clrex    #7
   2928 # CHECK: clrex
   2929 0x5f 0x3f 0x3 0xd5
   2930 0x5f 0x30 0x3 0xd5
   2931 0x5f 0x37 0x3 0xd5
   2932 0x5f 0x3f 0x3 0xd5
   2933 
   2934 # CHECK: dsb      #0
   2935 # CHECK: dsb      #12
   2936 # CHECK: dsb      sy
   2937 # CHECK: dsb      oshld
   2938 # CHECK: dsb      oshst
   2939 # CHECK: dsb      osh
   2940 # CHECK: dsb      nshld
   2941 # CHECK: dsb      nshst
   2942 # CHECK: dsb      nsh
   2943 # CHECK: dsb      ishld
   2944 # CHECK: dsb      ishst
   2945 # CHECK: dsb      ish
   2946 # CHECK: dsb      ld
   2947 # CHECK: dsb      st
   2948 # CHECK: dsb      sy
   2949 0x9f 0x30 0x3 0xd5
   2950 0x9f 0x3c 0x3 0xd5
   2951 0x9f 0x3f 0x3 0xd5
   2952 0x9f 0x31 0x3 0xd5
   2953 0x9f 0x32 0x3 0xd5
   2954 0x9f 0x33 0x3 0xd5
   2955 0x9f 0x35 0x3 0xd5
   2956 0x9f 0x36 0x3 0xd5
   2957 0x9f 0x37 0x3 0xd5
   2958 0x9f 0x39 0x3 0xd5
   2959 0x9f 0x3a 0x3 0xd5
   2960 0x9f 0x3b 0x3 0xd5
   2961 0x9f 0x3d 0x3 0xd5
   2962 0x9f 0x3e 0x3 0xd5
   2963 0x9f 0x3f 0x3 0xd5
   2964 
   2965 # CHECK: dmb      #0
   2966 # CHECK: dmb      #12
   2967 # CHECK: dmb      sy
   2968 # CHECK: dmb      oshld
   2969 # CHECK: dmb      oshst
   2970 # CHECK: dmb      osh
   2971 # CHECK: dmb      nshld
   2972 # CHECK: dmb      nshst
   2973 # CHECK: dmb      nsh
   2974 # CHECK: dmb      ishld
   2975 # CHECK: dmb      ishst
   2976 # CHECK: dmb      ish
   2977 # CHECK: dmb      ld
   2978 # CHECK: dmb      st
   2979 # CHECK: dmb      sy
   2980 0xbf 0x30 0x3 0xd5
   2981 0xbf 0x3c 0x3 0xd5
   2982 0xbf 0x3f 0x3 0xd5
   2983 0xbf 0x31 0x3 0xd5
   2984 0xbf 0x32 0x3 0xd5
   2985 0xbf 0x33 0x3 0xd5
   2986 0xbf 0x35 0x3 0xd5
   2987 0xbf 0x36 0x3 0xd5
   2988 0xbf 0x37 0x3 0xd5
   2989 0xbf 0x39 0x3 0xd5
   2990 0xbf 0x3a 0x3 0xd5
   2991 0xbf 0x3b 0x3 0xd5
   2992 0xbf 0x3d 0x3 0xd5
   2993 0xbf 0x3e 0x3 0xd5
   2994 0xbf 0x3f 0x3 0xd5
   2995 
   2996 # CHECK: isb
   2997 # CHECK: isb      #12
   2998 0xdf 0x3f 0x3 0xd5
   2999 0xdf 0x3c 0x3 0xd5
   3000 
   3001 # CHECK: msr      spsel, #0
   3002 # CHECK: msr      daifset, #15
   3003 # CHECK: msr      daifclr, #12
   3004 0xbf 0x40 0x0 0xd5
   3005 0xdf 0x4f 0x3 0xd5
   3006 0xff 0x4c 0x3 0xd5
   3007 
   3008 # CHECK: sys      #7, c5, c9, #7, x5
   3009 # CHECK: sys      #0, c15, c15, #2
   3010 # CHECK: sysl     x9, #7, c5, c9, #7
   3011 # CHECK: sysl     x1, #0, c15, c15, #2
   3012 0xe5 0x59 0xf 0xd5
   3013 0x5f 0xff 0x8 0xd5
   3014 0xe9 0x59 0x2f 0xd5
   3015 0x41 0xff 0x28 0xd5
   3016 
   3017 # CHECK: sys     #0, c7, c1, #0, xzr
   3018 # CHECK: sys     #0, c7, c5, #0, xzr
   3019 # CHECK: sys     #3, c7, c5, #1, x9
   3020 0x1f 0x71 0x8 0xd5
   3021 0x1f 0x75 0x8 0xd5
   3022 0x29 0x75 0xb 0xd5
   3023 
   3024 # CHECK: sys     #3, c7, c4, #1, x12
   3025 # CHECK: sys     #0, c7, c6, #1, xzr
   3026 # CHECK: sys     #0, c7, c6, #2, x2
   3027 # CHECK: sys     #3, c7, c10, #1, x9
   3028 # CHECK: sys     #0, c7, c10, #2, x10
   3029 # CHECK: sys     #3, c7, c11, #1, x0
   3030 # CHECK: sys     #3, c7, c14, #1, x3
   3031 # CHECK: sys     #0, c7, c14, #2, x30
   3032 0x2c 0x74 0xb 0xd5
   3033 0x3f 0x76 0x8 0xd5
   3034 0x42 0x76 0x8 0xd5
   3035 0x29 0x7a 0xb 0xd5
   3036 0x4a 0x7a 0x8 0xd5
   3037 0x20 0x7b 0xb 0xd5
   3038 0x23 0x7e 0xb 0xd5
   3039 0x5e 0x7e 0x8 0xd5
   3040 
   3041 
   3042 # CHECK: msr      teecr32_el1, x12
   3043 # CHECK: msr      osdtrrx_el1, x12
   3044 # CHECK: msr      mdccint_el1, x12
   3045 # CHECK: msr      mdscr_el1, x12
   3046 # CHECK: msr      osdtrtx_el1, x12
   3047 # CHECK: msr      dbgdtr_el0, x12
   3048 # CHECK: msr      dbgdtrtx_el0, x12
   3049 # CHECK: msr      oseccr_el1, x12
   3050 # CHECK: msr      dbgvcr32_el2, x12
   3051 # CHECK: msr      dbgbvr0_el1, x12
   3052 # CHECK: msr      dbgbvr1_el1, x12
   3053 # CHECK: msr      dbgbvr2_el1, x12
   3054 # CHECK: msr      dbgbvr3_el1, x12
   3055 # CHECK: msr      dbgbvr4_el1, x12
   3056 # CHECK: msr      dbgbvr5_el1, x12
   3057 # CHECK: msr      dbgbvr6_el1, x12
   3058 # CHECK: msr      dbgbvr7_el1, x12
   3059 # CHECK: msr      dbgbvr8_el1, x12
   3060 # CHECK: msr      dbgbvr9_el1, x12
   3061 # CHECK: msr      dbgbvr10_el1, x12
   3062 # CHECK: msr      dbgbvr11_el1, x12
   3063 # CHECK: msr      dbgbvr12_el1, x12
   3064 # CHECK: msr      dbgbvr13_el1, x12
   3065 # CHECK: msr      dbgbvr14_el1, x12
   3066 # CHECK: msr      dbgbvr15_el1, x12
   3067 # CHECK: msr      dbgbcr0_el1, x12
   3068 # CHECK: msr      dbgbcr1_el1, x12
   3069 # CHECK: msr      dbgbcr2_el1, x12
   3070 # CHECK: msr      dbgbcr3_el1, x12
   3071 # CHECK: msr      dbgbcr4_el1, x12
   3072 # CHECK: msr      dbgbcr5_el1, x12
   3073 # CHECK: msr      dbgbcr6_el1, x12
   3074 # CHECK: msr      dbgbcr7_el1, x12
   3075 # CHECK: msr      dbgbcr8_el1, x12
   3076 # CHECK: msr      dbgbcr9_el1, x12
   3077 # CHECK: msr      dbgbcr10_el1, x12
   3078 # CHECK: msr      dbgbcr11_el1, x12
   3079 # CHECK: msr      dbgbcr12_el1, x12
   3080 # CHECK: msr      dbgbcr13_el1, x12
   3081 # CHECK: msr      dbgbcr14_el1, x12
   3082 # CHECK: msr      dbgbcr15_el1, x12
   3083 # CHECK: msr      dbgwvr0_el1, x12
   3084 # CHECK: msr      dbgwvr1_el1, x12
   3085 # CHECK: msr      dbgwvr2_el1, x12
   3086 # CHECK: msr      dbgwvr3_el1, x12
   3087 # CHECK: msr      dbgwvr4_el1, x12
   3088 # CHECK: msr      dbgwvr5_el1, x12
   3089 # CHECK: msr      dbgwvr6_el1, x12
   3090 # CHECK: msr      dbgwvr7_el1, x12
   3091 # CHECK: msr      dbgwvr8_el1, x12
   3092 # CHECK: msr      dbgwvr9_el1, x12
   3093 # CHECK: msr      dbgwvr10_el1, x12
   3094 # CHECK: msr      dbgwvr11_el1, x12
   3095 # CHECK: msr      dbgwvr12_el1, x12
   3096 # CHECK: msr      dbgwvr13_el1, x12
   3097 # CHECK: msr      dbgwvr14_el1, x12
   3098 # CHECK: msr      dbgwvr15_el1, x12
   3099 # CHECK: msr      dbgwcr0_el1, x12
   3100 # CHECK: msr      dbgwcr1_el1, x12
   3101 # CHECK: msr      dbgwcr2_el1, x12
   3102 # CHECK: msr      dbgwcr3_el1, x12
   3103 # CHECK: msr      dbgwcr4_el1, x12
   3104 # CHECK: msr      dbgwcr5_el1, x12
   3105 # CHECK: msr      dbgwcr6_el1, x12
   3106 # CHECK: msr      dbgwcr7_el1, x12
   3107 # CHECK: msr      dbgwcr8_el1, x12
   3108 # CHECK: msr      dbgwcr9_el1, x12
   3109 # CHECK: msr      dbgwcr10_el1, x12
   3110 # CHECK: msr      dbgwcr11_el1, x12
   3111 # CHECK: msr      dbgwcr12_el1, x12
   3112 # CHECK: msr      dbgwcr13_el1, x12
   3113 # CHECK: msr      dbgwcr14_el1, x12
   3114 # CHECK: msr      dbgwcr15_el1, x12
   3115 # CHECK: msr      teehbr32_el1, x12
   3116 # CHECK: msr      oslar_el1, x12
   3117 # CHECK: msr      osdlr_el1, x12
   3118 # CHECK: msr      dbgprcr_el1, x12
   3119 # CHECK: msr      dbgclaimset_el1, x12
   3120 # CHECK: msr      dbgclaimclr_el1, x12
   3121 # CHECK: msr      csselr_el1, x12
   3122 # CHECK: msr      vpidr_el2, x12
   3123 # CHECK: msr      vmpidr_el2, x12
   3124 # CHECK: msr      sctlr_el1, x12
   3125 # CHECK: msr      sctlr_el2, x12
   3126 # CHECK: msr      sctlr_el3, x12
   3127 # CHECK: msr      actlr_el1, x12
   3128 # CHECK: msr      actlr_el2, x12
   3129 # CHECK: msr      actlr_el3, x12
   3130 # CHECK: msr      cpacr_el1, x12
   3131 # CHECK: msr      hcr_el2, x12
   3132 # CHECK: msr      scr_el3, x12
   3133 # CHECK: msr      mdcr_el2, x12
   3134 # CHECK: msr      sder32_el3, x12
   3135 # CHECK: msr      cptr_el2, x12
   3136 # CHECK: msr      cptr_el3, x12
   3137 # CHECK: msr      hstr_el2, x12
   3138 # CHECK: msr      hacr_el2, x12
   3139 # CHECK: msr      mdcr_el3, x12
   3140 # CHECK: msr      ttbr0_el1, x12
   3141 # CHECK: msr      ttbr0_el2, x12
   3142 # CHECK: msr      ttbr0_el3, x12
   3143 # CHECK: msr      ttbr1_el1, x12
   3144 # CHECK: msr      tcr_el1, x12
   3145 # CHECK: msr      tcr_el2, x12
   3146 # CHECK: msr      tcr_el3, x12
   3147 # CHECK: msr      vttbr_el2, x12
   3148 # CHECK: msr      vtcr_el2, x12
   3149 # CHECK: msr      dacr32_el2, x12
   3150 # CHECK: msr      spsr_el1, x12
   3151 # CHECK: msr      spsr_el2, x12
   3152 # CHECK: msr      spsr_el3, x12
   3153 # CHECK: msr      elr_el1, x12
   3154 # CHECK: msr      elr_el2, x12
   3155 # CHECK: msr      elr_el3, x12
   3156 # CHECK: msr      sp_el0, x12
   3157 # CHECK: msr      sp_el1, x12
   3158 # CHECK: msr      sp_el2, x12
   3159 # CHECK: msr      spsel, x12
   3160 # CHECK: msr      nzcv, x12
   3161 # CHECK: msr      daif, x12
   3162 # CHECK: msr      currentel, x12
   3163 # CHECK: msr      spsr_irq, x12
   3164 # CHECK: msr      spsr_abt, x12
   3165 # CHECK: msr      spsr_und, x12
   3166 # CHECK: msr      spsr_fiq, x12
   3167 # CHECK: msr      fpcr, x12
   3168 # CHECK: msr      fpsr, x12
   3169 # CHECK: msr      dspsr_el0, x12
   3170 # CHECK: msr      dlr_el0, x12
   3171 # CHECK: msr      ifsr32_el2, x12
   3172 # CHECK: msr      afsr0_el1, x12
   3173 # CHECK: msr      afsr0_el2, x12
   3174 # CHECK: msr      afsr0_el3, x12
   3175 # CHECK: msr      afsr1_el1, x12
   3176 # CHECK: msr      afsr1_el2, x12
   3177 # CHECK: msr      afsr1_el3, x12
   3178 # CHECK: msr      esr_el1, x12
   3179 # CHECK: msr      esr_el2, x12
   3180 # CHECK: msr      esr_el3, x12
   3181 # CHECK: msr      fpexc32_el2, x12
   3182 # CHECK: msr      far_el1, x12
   3183 # CHECK: msr      far_el2, x12
   3184 # CHECK: msr      far_el3, x12
   3185 # CHECK: msr      hpfar_el2, x12
   3186 # CHECK: msr      par_el1, x12
   3187 # CHECK: msr      pmcr_el0, x12
   3188 # CHECK: msr      pmcntenset_el0, x12
   3189 # CHECK: msr      pmcntenclr_el0, x12
   3190 # CHECK: msr      pmovsclr_el0, x12
   3191 # CHECK: msr      pmselr_el0, x12
   3192 # CHECK: msr      pmccntr_el0, x12
   3193 # CHECK: msr      pmxevtyper_el0, x12
   3194 # CHECK: msr      pmxevcntr_el0, x12
   3195 # CHECK: msr      pmuserenr_el0, x12
   3196 # CHECK: msr      pmintenset_el1, x12
   3197 # CHECK: msr      pmintenclr_el1, x12
   3198 # CHECK: msr      pmovsset_el0, x12
   3199 # CHECK: msr      mair_el1, x12
   3200 # CHECK: msr      mair_el2, x12
   3201 # CHECK: msr      mair_el3, x12
   3202 # CHECK: msr      amair_el1, x12
   3203 # CHECK: msr      amair_el2, x12
   3204 # CHECK: msr      amair_el3, x12
   3205 # CHECK: msr      vbar_el1, x12
   3206 # CHECK: msr      vbar_el2, x12
   3207 # CHECK: msr      vbar_el3, x12
   3208 # CHECK: msr      rmr_el1, x12
   3209 # CHECK: msr      rmr_el2, x12
   3210 # CHECK: msr      rmr_el3, x12
   3211 # CHECK: msr      tpidr_el0, x12
   3212 # CHECK: msr      tpidr_el2, x12
   3213 # CHECK: msr      tpidr_el3, x12
   3214 # CHECK: msr      tpidrro_el0, x12
   3215 # CHECK: msr      tpidr_el1, x12
   3216 # CHECK: msr      cntfrq_el0, x12
   3217 # CHECK: msr      cntvoff_el2, x12
   3218 # CHECK: msr      cntkctl_el1, x12
   3219 # CHECK: msr      cnthctl_el2, x12
   3220 # CHECK: msr      cntp_tval_el0, x12
   3221 # CHECK: msr      cnthp_tval_el2, x12
   3222 # CHECK: msr      cntps_tval_el1, x12
   3223 # CHECK: msr      cntp_ctl_el0, x12
   3224 # CHECK: msr      cnthp_ctl_el2, x12
   3225 # CHECK: msr      cntps_ctl_el1, x12
   3226 # CHECK: msr      cntp_cval_el0, x12
   3227 # CHECK: msr      cnthp_cval_el2, x12
   3228 # CHECK: msr      cntps_cval_el1, x12
   3229 # CHECK: msr      cntv_tval_el0, x12
   3230 # CHECK: msr      cntv_ctl_el0, x12
   3231 # CHECK: msr      cntv_cval_el0, x12
   3232 # CHECK: msr      pmevcntr0_el0, x12
   3233 # CHECK: msr      pmevcntr1_el0, x12
   3234 # CHECK: msr      pmevcntr2_el0, x12
   3235 # CHECK: msr      pmevcntr3_el0, x12
   3236 # CHECK: msr      pmevcntr4_el0, x12
   3237 # CHECK: msr      pmevcntr5_el0, x12
   3238 # CHECK: msr      pmevcntr6_el0, x12
   3239 # CHECK: msr      pmevcntr7_el0, x12
   3240 # CHECK: msr      pmevcntr8_el0, x12
   3241 # CHECK: msr      pmevcntr9_el0, x12
   3242 # CHECK: msr      pmevcntr10_el0, x12
   3243 # CHECK: msr      pmevcntr11_el0, x12
   3244 # CHECK: msr      pmevcntr12_el0, x12
   3245 # CHECK: msr      pmevcntr13_el0, x12
   3246 # CHECK: msr      pmevcntr14_el0, x12
   3247 # CHECK: msr      pmevcntr15_el0, x12
   3248 # CHECK: msr      pmevcntr16_el0, x12
   3249 # CHECK: msr      pmevcntr17_el0, x12
   3250 # CHECK: msr      pmevcntr18_el0, x12
   3251 # CHECK: msr      pmevcntr19_el0, x12
   3252 # CHECK: msr      pmevcntr20_el0, x12
   3253 # CHECK: msr      pmevcntr21_el0, x12
   3254 # CHECK: msr      pmevcntr22_el0, x12
   3255 # CHECK: msr      pmevcntr23_el0, x12
   3256 # CHECK: msr      pmevcntr24_el0, x12
   3257 # CHECK: msr      pmevcntr25_el0, x12
   3258 # CHECK: msr      pmevcntr26_el0, x12
   3259 # CHECK: msr      pmevcntr27_el0, x12
   3260 # CHECK: msr      pmevcntr28_el0, x12
   3261 # CHECK: msr      pmevcntr29_el0, x12
   3262 # CHECK: msr      pmevcntr30_el0, x12
   3263 # CHECK: msr      pmccfiltr_el0, x12
   3264 # CHECK: msr      pmevtyper0_el0, x12
   3265 # CHECK: msr      pmevtyper1_el0, x12
   3266 # CHECK: msr      pmevtyper2_el0, x12
   3267 # CHECK: msr      pmevtyper3_el0, x12
   3268 # CHECK: msr      pmevtyper4_el0, x12
   3269 # CHECK: msr      pmevtyper5_el0, x12
   3270 # CHECK: msr      pmevtyper6_el0, x12
   3271 # CHECK: msr      pmevtyper7_el0, x12
   3272 # CHECK: msr      pmevtyper8_el0, x12
   3273 # CHECK: msr      pmevtyper9_el0, x12
   3274 # CHECK: msr      pmevtyper10_el0, x12
   3275 # CHECK: msr      pmevtyper11_el0, x12
   3276 # CHECK: msr      pmevtyper12_el0, x12
   3277 # CHECK: msr      pmevtyper13_el0, x12
   3278 # CHECK: msr      pmevtyper14_el0, x12
   3279 # CHECK: msr      pmevtyper15_el0, x12
   3280 # CHECK: msr      pmevtyper16_el0, x12
   3281 # CHECK: msr      pmevtyper17_el0, x12
   3282 # CHECK: msr      pmevtyper18_el0, x12
   3283 # CHECK: msr      pmevtyper19_el0, x12
   3284 # CHECK: msr      pmevtyper20_el0, x12
   3285 # CHECK: msr      pmevtyper21_el0, x12
   3286 # CHECK: msr      pmevtyper22_el0, x12
   3287 # CHECK: msr      pmevtyper23_el0, x12
   3288 # CHECK: msr      pmevtyper24_el0, x12
   3289 # CHECK: msr      pmevtyper25_el0, x12
   3290 # CHECK: msr      pmevtyper26_el0, x12
   3291 # CHECK: msr      pmevtyper27_el0, x12
   3292 # CHECK: msr      pmevtyper28_el0, x12
   3293 # CHECK: msr      pmevtyper29_el0, x12
   3294 # CHECK: msr      pmevtyper30_el0, x12
   3295 # CHECK: mrs      x9, teecr32_el1
   3296 # CHECK: mrs      x9, osdtrrx_el1
   3297 # CHECK: mrs      x9, mdccsr_el0
   3298 # CHECK: mrs      x9, mdccint_el1
   3299 # CHECK: mrs      x9, mdscr_el1
   3300 # CHECK: mrs      x9, osdtrtx_el1
   3301 # CHECK: mrs      x9, dbgdtr_el0
   3302 # CHECK: mrs      x9, dbgdtrrx_el0
   3303 # CHECK: mrs      x9, oseccr_el1
   3304 # CHECK: mrs      x9, dbgvcr32_el2
   3305 # CHECK: mrs      x9, dbgbvr0_el1
   3306 # CHECK: mrs      x9, dbgbvr1_el1
   3307 # CHECK: mrs      x9, dbgbvr2_el1
   3308 # CHECK: mrs      x9, dbgbvr3_el1
   3309 # CHECK: mrs      x9, dbgbvr4_el1
   3310 # CHECK: mrs      x9, dbgbvr5_el1
   3311 # CHECK: mrs      x9, dbgbvr6_el1
   3312 # CHECK: mrs      x9, dbgbvr7_el1
   3313 # CHECK: mrs      x9, dbgbvr8_el1
   3314 # CHECK: mrs      x9, dbgbvr9_el1
   3315 # CHECK: mrs      x9, dbgbvr10_el1
   3316 # CHECK: mrs      x9, dbgbvr11_el1
   3317 # CHECK: mrs      x9, dbgbvr12_el1
   3318 # CHECK: mrs      x9, dbgbvr13_el1
   3319 # CHECK: mrs      x9, dbgbvr14_el1
   3320 # CHECK: mrs      x9, dbgbvr15_el1
   3321 # CHECK: mrs      x9, dbgbcr0_el1
   3322 # CHECK: mrs      x9, dbgbcr1_el1
   3323 # CHECK: mrs      x9, dbgbcr2_el1
   3324 # CHECK: mrs      x9, dbgbcr3_el1
   3325 # CHECK: mrs      x9, dbgbcr4_el1
   3326 # CHECK: mrs      x9, dbgbcr5_el1
   3327 # CHECK: mrs      x9, dbgbcr6_el1
   3328 # CHECK: mrs      x9, dbgbcr7_el1
   3329 # CHECK: mrs      x9, dbgbcr8_el1
   3330 # CHECK: mrs      x9, dbgbcr9_el1
   3331 # CHECK: mrs      x9, dbgbcr10_el1
   3332 # CHECK: mrs      x9, dbgbcr11_el1
   3333 # CHECK: mrs      x9, dbgbcr12_el1
   3334 # CHECK: mrs      x9, dbgbcr13_el1
   3335 # CHECK: mrs      x9, dbgbcr14_el1
   3336 # CHECK: mrs      x9, dbgbcr15_el1
   3337 # CHECK: mrs      x9, dbgwvr0_el1
   3338 # CHECK: mrs      x9, dbgwvr1_el1
   3339 # CHECK: mrs      x9, dbgwvr2_el1
   3340 # CHECK: mrs      x9, dbgwvr3_el1
   3341 # CHECK: mrs      x9, dbgwvr4_el1
   3342 # CHECK: mrs      x9, dbgwvr5_el1
   3343 # CHECK: mrs      x9, dbgwvr6_el1
   3344 # CHECK: mrs      x9, dbgwvr7_el1
   3345 # CHECK: mrs      x9, dbgwvr8_el1
   3346 # CHECK: mrs      x9, dbgwvr9_el1
   3347 # CHECK: mrs      x9, dbgwvr10_el1
   3348 # CHECK: mrs      x9, dbgwvr11_el1
   3349 # CHECK: mrs      x9, dbgwvr12_el1
   3350 # CHECK: mrs      x9, dbgwvr13_el1
   3351 # CHECK: mrs      x9, dbgwvr14_el1
   3352 # CHECK: mrs      x9, dbgwvr15_el1
   3353 # CHECK: mrs      x9, dbgwcr0_el1
   3354 # CHECK: mrs      x9, dbgwcr1_el1
   3355 # CHECK: mrs      x9, dbgwcr2_el1
   3356 # CHECK: mrs      x9, dbgwcr3_el1
   3357 # CHECK: mrs      x9, dbgwcr4_el1
   3358 # CHECK: mrs      x9, dbgwcr5_el1
   3359 # CHECK: mrs      x9, dbgwcr6_el1
   3360 # CHECK: mrs      x9, dbgwcr7_el1
   3361 # CHECK: mrs      x9, dbgwcr8_el1
   3362 # CHECK: mrs      x9, dbgwcr9_el1
   3363 # CHECK: mrs      x9, dbgwcr10_el1
   3364 # CHECK: mrs      x9, dbgwcr11_el1
   3365 # CHECK: mrs      x9, dbgwcr12_el1
   3366 # CHECK: mrs      x9, dbgwcr13_el1
   3367 # CHECK: mrs      x9, dbgwcr14_el1
   3368 # CHECK: mrs      x9, dbgwcr15_el1
   3369 # CHECK: mrs      x9, mdrar_el1
   3370 # CHECK: mrs      x9, teehbr32_el1
   3371 # CHECK: mrs      x9, oslsr_el1
   3372 # CHECK: mrs      x9, osdlr_el1
   3373 # CHECK: mrs      x9, dbgprcr_el1
   3374 # CHECK: mrs      x9, dbgclaimset_el1
   3375 # CHECK: mrs      x9, dbgclaimclr_el1
   3376 # CHECK: mrs      x9, dbgauthstatus_el1
   3377 # CHECK: mrs      x9, midr_el1
   3378 # CHECK: mrs      x9, ccsidr_el1
   3379 # CHECK: mrs      x9, csselr_el1
   3380 # CHECK: mrs      x9, vpidr_el2
   3381 # CHECK: mrs      x9, clidr_el1
   3382 # CHECK: mrs      x9, ctr_el0
   3383 # CHECK: mrs      x9, mpidr_el1
   3384 # CHECK: mrs      x9, vmpidr_el2
   3385 # CHECK: mrs      x9, revidr_el1
   3386 # CHECK: mrs      x9, aidr_el1
   3387 # CHECK: mrs      x9, dczid_el0
   3388 # CHECK: mrs      x9, id_pfr0_el1
   3389 # CHECK: mrs      x9, id_pfr1_el1
   3390 # CHECK: mrs      x9, id_dfr0_el1
   3391 # CHECK: mrs      x9, id_afr0_el1
   3392 # CHECK: mrs      x9, id_mmfr0_el1
   3393 # CHECK: mrs      x9, id_mmfr1_el1
   3394 # CHECK: mrs      x9, id_mmfr2_el1
   3395 # CHECK: mrs      x9, id_mmfr3_el1
   3396 # CHECK: mrs      x9, id_isar0_el1
   3397 # CHECK: mrs      x9, id_isar1_el1
   3398 # CHECK: mrs      x9, id_isar2_el1
   3399 # CHECK: mrs      x9, id_isar3_el1
   3400 # CHECK: mrs      x9, id_isar4_el1
   3401 # CHECK: mrs      x9, id_isar5_el1
   3402 # CHECK: mrs      x9, mvfr0_el1
   3403 # CHECK: mrs      x9, mvfr1_el1
   3404 # CHECK: mrs      x9, mvfr2_el1
   3405 # CHECK: mrs      x9, id_aa64pfr0_el1
   3406 # CHECK: mrs      x9, id_aa64pfr1_el1
   3407 # CHECK: mrs      x9, id_aa64dfr0_el1
   3408 # CHECK: mrs      x9, id_aa64dfr1_el1
   3409 # CHECK: mrs      x9, id_aa64afr0_el1
   3410 # CHECK: mrs      x9, id_aa64afr1_el1
   3411 # CHECK: mrs      x9, id_aa64isar0_el1
   3412 # CHECK: mrs      x9, id_aa64isar1_el1
   3413 # CHECK: mrs      x9, id_aa64mmfr0_el1
   3414 # CHECK: mrs      x9, id_aa64mmfr1_el1
   3415 # CHECK: mrs      x9, sctlr_el1
   3416 # CHECK: mrs      x9, sctlr_el2
   3417 # CHECK: mrs      x9, sctlr_el3
   3418 # CHECK: mrs      x9, actlr_el1
   3419 # CHECK: mrs      x9, actlr_el2
   3420 # CHECK: mrs      x9, actlr_el3
   3421 # CHECK: mrs      x9, cpacr_el1
   3422 # CHECK: mrs      x9, hcr_el2
   3423 # CHECK: mrs      x9, scr_el3
   3424 # CHECK: mrs      x9, mdcr_el2
   3425 # CHECK: mrs      x9, sder32_el3
   3426 # CHECK: mrs      x9, cptr_el2
   3427 # CHECK: mrs      x9, cptr_el3
   3428 # CHECK: mrs      x9, hstr_el2
   3429 # CHECK: mrs      x9, hacr_el2
   3430 # CHECK: mrs      x9, mdcr_el3
   3431 # CHECK: mrs      x9, ttbr0_el1
   3432 # CHECK: mrs      x9, ttbr0_el2
   3433 # CHECK: mrs      x9, ttbr0_el3
   3434 # CHECK: mrs      x9, ttbr1_el1
   3435 # CHECK: mrs      x9, tcr_el1
   3436 # CHECK: mrs      x9, tcr_el2
   3437 # CHECK: mrs      x9, tcr_el3
   3438 # CHECK: mrs      x9, vttbr_el2
   3439 # CHECK: mrs      x9, vtcr_el2
   3440 # CHECK: mrs      x9, dacr32_el2
   3441 # CHECK: mrs      x9, spsr_el1
   3442 # CHECK: mrs      x9, spsr_el2
   3443 # CHECK: mrs      x9, spsr_el3
   3444 # CHECK: mrs      x9, elr_el1
   3445 # CHECK: mrs      x9, elr_el2
   3446 # CHECK: mrs      x9, elr_el3
   3447 # CHECK: mrs      x9, sp_el0
   3448 # CHECK: mrs      x9, sp_el1
   3449 # CHECK: mrs      x9, sp_el2
   3450 # CHECK: mrs      x9, spsel
   3451 # CHECK: mrs      x9, nzcv
   3452 # CHECK: mrs      x9, daif
   3453 # CHECK: mrs      x9, currentel
   3454 # CHECK: mrs      x9, spsr_irq
   3455 # CHECK: mrs      x9, spsr_abt
   3456 # CHECK: mrs      x9, spsr_und
   3457 # CHECK: mrs      x9, spsr_fiq
   3458 # CHECK: mrs      x9, fpcr
   3459 # CHECK: mrs      x9, fpsr
   3460 # CHECK: mrs      x9, dspsr_el0
   3461 # CHECK: mrs      x9, dlr_el0
   3462 # CHECK: mrs      x9, ifsr32_el2
   3463 # CHECK: mrs      x9, afsr0_el1
   3464 # CHECK: mrs      x9, afsr0_el2
   3465 # CHECK: mrs      x9, afsr0_el3
   3466 # CHECK: mrs      x9, afsr1_el1
   3467 # CHECK: mrs      x9, afsr1_el2
   3468 # CHECK: mrs      x9, afsr1_el3
   3469 # CHECK: mrs      x9, esr_el1
   3470 # CHECK: mrs      x9, esr_el2
   3471 # CHECK: mrs      x9, esr_el3
   3472 # CHECK: mrs      x9, fpexc32_el2
   3473 # CHECK: mrs      x9, far_el1
   3474 # CHECK: mrs      x9, far_el2
   3475 # CHECK: mrs      x9, far_el3
   3476 # CHECK: mrs      x9, hpfar_el2
   3477 # CHECK: mrs      x9, par_el1
   3478 # CHECK: mrs      x9, pmcr_el0
   3479 # CHECK: mrs      x9, pmcntenset_el0
   3480 # CHECK: mrs      x9, pmcntenclr_el0
   3481 # CHECK: mrs      x9, pmovsclr_el0
   3482 # CHECK: mrs      x9, pmselr_el0
   3483 # CHECK: mrs      x9, pmceid0_el0
   3484 # CHECK: mrs      x9, pmceid1_el0
   3485 # CHECK: mrs      x9, pmccntr_el0
   3486 # CHECK: mrs      x9, pmxevtyper_el0
   3487 # CHECK: mrs      x9, pmxevcntr_el0
   3488 # CHECK: mrs      x9, pmuserenr_el0
   3489 # CHECK: mrs      x9, pmintenset_el1
   3490 # CHECK: mrs      x9, pmintenclr_el1
   3491 # CHECK: mrs      x9, pmovsset_el0
   3492 # CHECK: mrs      x9, mair_el1
   3493 # CHECK: mrs      x9, mair_el2
   3494 # CHECK: mrs      x9, mair_el3
   3495 # CHECK: mrs      x9, amair_el1
   3496 # CHECK: mrs      x9, amair_el2
   3497 # CHECK: mrs      x9, amair_el3
   3498 # CHECK: mrs      x9, vbar_el1
   3499 # CHECK: mrs      x9, vbar_el2
   3500 # CHECK: mrs      x9, vbar_el3
   3501 # CHECK: mrs      x9, rvbar_el1
   3502 # CHECK: mrs      x9, rvbar_el2
   3503 # CHECK: mrs      x9, rvbar_el3
   3504 # CHECK: mrs      x9, rmr_el1
   3505 # CHECK: mrs      x9, rmr_el2
   3506 # CHECK: mrs      x9, rmr_el3
   3507 # CHECK: mrs      x9, isr_el1
   3508 # CHECK: mrs      x9, contextidr_el1
   3509 # CHECK: mrs      x9, tpidr_el0
   3510 # CHECK: mrs      x9, tpidr_el2
   3511 # CHECK: mrs      x9, tpidr_el3
   3512 # CHECK: mrs      x9, tpidrro_el0
   3513 # CHECK: mrs      x9, tpidr_el1
   3514 # CHECK: mrs      x9, cntfrq_el0
   3515 # CHECK: mrs      x9, cntpct_el0
   3516 # CHECK: mrs      x9, cntvct_el0
   3517 # CHECK: mrs      x9, cntvoff_el2
   3518 # CHECK: mrs      x9, cntkctl_el1
   3519 # CHECK: mrs      x9, cnthctl_el2
   3520 # CHECK: mrs      x9, cntp_tval_el0
   3521 # CHECK: mrs      x9, cnthp_tval_el2
   3522 # CHECK: mrs      x9, cntps_tval_el1
   3523 # CHECK: mrs      x9, cntp_ctl_el0
   3524 # CHECK: mrs      x9, cnthp_ctl_el2
   3525 # CHECK: mrs      x9, cntps_ctl_el1
   3526 # CHECK: mrs      x9, cntp_cval_el0
   3527 # CHECK: mrs      x9, cnthp_cval_el2
   3528 # CHECK: mrs      x9, cntps_cval_el1
   3529 # CHECK: mrs      x9, cntv_tval_el0
   3530 # CHECK: mrs      x9, cntv_ctl_el0
   3531 # CHECK: mrs      x9, cntv_cval_el0
   3532 # CHECK: mrs      x9, pmevcntr0_el0
   3533 # CHECK: mrs      x9, pmevcntr1_el0
   3534 # CHECK: mrs      x9, pmevcntr2_el0
   3535 # CHECK: mrs      x9, pmevcntr3_el0
   3536 # CHECK: mrs      x9, pmevcntr4_el0
   3537 # CHECK: mrs      x9, pmevcntr5_el0
   3538 # CHECK: mrs      x9, pmevcntr6_el0
   3539 # CHECK: mrs      x9, pmevcntr7_el0
   3540 # CHECK: mrs      x9, pmevcntr8_el0
   3541 # CHECK: mrs      x9, pmevcntr9_el0
   3542 # CHECK: mrs      x9, pmevcntr10_el0
   3543 # CHECK: mrs      x9, pmevcntr11_el0
   3544 # CHECK: mrs      x9, pmevcntr12_el0
   3545 # CHECK: mrs      x9, pmevcntr13_el0
   3546 # CHECK: mrs      x9, pmevcntr14_el0
   3547 # CHECK: mrs      x9, pmevcntr15_el0
   3548 # CHECK: mrs      x9, pmevcntr16_el0
   3549 # CHECK: mrs      x9, pmevcntr17_el0
   3550 # CHECK: mrs      x9, pmevcntr18_el0
   3551 # CHECK: mrs      x9, pmevcntr19_el0
   3552 # CHECK: mrs      x9, pmevcntr20_el0
   3553 # CHECK: mrs      x9, pmevcntr21_el0
   3554 # CHECK: mrs      x9, pmevcntr22_el0
   3555 # CHECK: mrs      x9, pmevcntr23_el0
   3556 # CHECK: mrs      x9, pmevcntr24_el0
   3557 # CHECK: mrs      x9, pmevcntr25_el0
   3558 # CHECK: mrs      x9, pmevcntr26_el0
   3559 # CHECK: mrs      x9, pmevcntr27_el0
   3560 # CHECK: mrs      x9, pmevcntr28_el0
   3561 # CHECK: mrs      x9, pmevcntr29_el0
   3562 # CHECK: mrs      x9, pmevcntr30_el0
   3563 # CHECK: mrs      x9, pmccfiltr_el0
   3564 # CHECK: mrs      x9, pmevtyper0_el0
   3565 # CHECK: mrs      x9, pmevtyper1_el0
   3566 # CHECK: mrs      x9, pmevtyper2_el0
   3567 # CHECK: mrs      x9, pmevtyper3_el0
   3568 # CHECK: mrs      x9, pmevtyper4_el0
   3569 # CHECK: mrs      x9, pmevtyper5_el0
   3570 # CHECK: mrs      x9, pmevtyper6_el0
   3571 # CHECK: mrs      x9, pmevtyper7_el0
   3572 # CHECK: mrs      x9, pmevtyper8_el0
   3573 # CHECK: mrs      x9, pmevtyper9_el0
   3574 # CHECK: mrs      x9, pmevtyper10_el0
   3575 # CHECK: mrs      x9, pmevtyper11_el0
   3576 # CHECK: mrs      x9, pmevtyper12_el0
   3577 # CHECK: mrs      x9, pmevtyper13_el0
   3578 # CHECK: mrs      x9, pmevtyper14_el0
   3579 # CHECK: mrs      x9, pmevtyper15_el0
   3580 # CHECK: mrs      x9, pmevtyper16_el0
   3581 # CHECK: mrs      x9, pmevtyper17_el0
   3582 # CHECK: mrs      x9, pmevtyper18_el0
   3583 # CHECK: mrs      x9, pmevtyper19_el0
   3584 # CHECK: mrs      x9, pmevtyper20_el0
   3585 # CHECK: mrs      x9, pmevtyper21_el0
   3586 # CHECK: mrs      x9, pmevtyper22_el0
   3587 # CHECK: mrs      x9, pmevtyper23_el0
   3588 # CHECK: mrs      x9, pmevtyper24_el0
   3589 # CHECK: mrs      x9, pmevtyper25_el0
   3590 # CHECK: mrs      x9, pmevtyper26_el0
   3591 # CHECK: mrs      x9, pmevtyper27_el0
   3592 # CHECK: mrs      x9, pmevtyper28_el0
   3593 # CHECK: mrs      x9, pmevtyper29_el0
   3594 # CHECK: mrs      x9, pmevtyper30_el0
   3595 
   3596 0xc 0x0 0x12 0xd5
   3597 0x4c 0x0 0x10 0xd5
   3598 0xc 0x2 0x10 0xd5
   3599 0x4c 0x2 0x10 0xd5
   3600 0x4c 0x3 0x10 0xd5
   3601 0xc 0x4 0x13 0xd5
   3602 0xc 0x5 0x13 0xd5
   3603 0x4c 0x6 0x10 0xd5
   3604 0xc 0x7 0x14 0xd5
   3605 0x8c 0x0 0x10 0xd5
   3606 0x8c 0x1 0x10 0xd5
   3607 0x8c 0x2 0x10 0xd5
   3608 0x8c 0x3 0x10 0xd5
   3609 0x8c 0x4 0x10 0xd5
   3610 0x8c 0x5 0x10 0xd5
   3611 0x8c 0x6 0x10 0xd5
   3612 0x8c 0x7 0x10 0xd5
   3613 0x8c 0x8 0x10 0xd5
   3614 0x8c 0x9 0x10 0xd5
   3615 0x8c 0xa 0x10 0xd5
   3616 0x8c 0xb 0x10 0xd5
   3617 0x8c 0xc 0x10 0xd5
   3618 0x8c 0xd 0x10 0xd5
   3619 0x8c 0xe 0x10 0xd5
   3620 0x8c 0xf 0x10 0xd5
   3621 0xac 0x0 0x10 0xd5
   3622 0xac 0x1 0x10 0xd5
   3623 0xac 0x2 0x10 0xd5
   3624 0xac 0x3 0x10 0xd5
   3625 0xac 0x4 0x10 0xd5
   3626 0xac 0x5 0x10 0xd5
   3627 0xac 0x6 0x10 0xd5
   3628 0xac 0x7 0x10 0xd5
   3629 0xac 0x8 0x10 0xd5
   3630 0xac 0x9 0x10 0xd5
   3631 0xac 0xa 0x10 0xd5
   3632 0xac 0xb 0x10 0xd5
   3633 0xac 0xc 0x10 0xd5
   3634 0xac 0xd 0x10 0xd5
   3635 0xac 0xe 0x10 0xd5
   3636 0xac 0xf 0x10 0xd5
   3637 0xcc 0x0 0x10 0xd5
   3638 0xcc 0x1 0x10 0xd5
   3639 0xcc 0x2 0x10 0xd5
   3640 0xcc 0x3 0x10 0xd5
   3641 0xcc 0x4 0x10 0xd5
   3642 0xcc 0x5 0x10 0xd5
   3643 0xcc 0x6 0x10 0xd5
   3644 0xcc 0x7 0x10 0xd5
   3645 0xcc 0x8 0x10 0xd5
   3646 0xcc 0x9 0x10 0xd5
   3647 0xcc 0xa 0x10 0xd5
   3648 0xcc 0xb 0x10 0xd5
   3649 0xcc 0xc 0x10 0xd5
   3650 0xcc 0xd 0x10 0xd5
   3651 0xcc 0xe 0x10 0xd5
   3652 0xcc 0xf 0x10 0xd5
   3653 0xec 0x0 0x10 0xd5
   3654 0xec 0x1 0x10 0xd5
   3655 0xec 0x2 0x10 0xd5
   3656 0xec 0x3 0x10 0xd5
   3657 0xec 0x4 0x10 0xd5
   3658 0xec 0x5 0x10 0xd5
   3659 0xec 0x6 0x10 0xd5
   3660 0xec 0x7 0x10 0xd5
   3661 0xec 0x8 0x10 0xd5
   3662 0xec 0x9 0x10 0xd5
   3663 0xec 0xa 0x10 0xd5
   3664 0xec 0xb 0x10 0xd5
   3665 0xec 0xc 0x10 0xd5
   3666 0xec 0xd 0x10 0xd5
   3667 0xec 0xe 0x10 0xd5
   3668 0xec 0xf 0x10 0xd5
   3669 0xc 0x10 0x12 0xd5
   3670 0x8c 0x10 0x10 0xd5
   3671 0x8c 0x13 0x10 0xd5
   3672 0x8c 0x14 0x10 0xd5
   3673 0xcc 0x78 0x10 0xd5
   3674 0xcc 0x79 0x10 0xd5
   3675 0xc 0x0 0x1a 0xd5
   3676 0xc 0x0 0x1c 0xd5
   3677 0xac 0x0 0x1c 0xd5
   3678 0xc 0x10 0x18 0xd5
   3679 0xc 0x10 0x1c 0xd5
   3680 0xc 0x10 0x1e 0xd5
   3681 0x2c 0x10 0x18 0xd5
   3682 0x2c 0x10 0x1c 0xd5
   3683 0x2c 0x10 0x1e 0xd5
   3684 0x4c 0x10 0x18 0xd5
   3685 0xc 0x11 0x1c 0xd5
   3686 0xc 0x11 0x1e 0xd5
   3687 0x2c 0x11 0x1c 0xd5
   3688 0x2c 0x11 0x1e 0xd5
   3689 0x4c 0x11 0x1c 0xd5
   3690 0x4c 0x11 0x1e 0xd5
   3691 0x6c 0x11 0x1c 0xd5
   3692 0xec 0x11 0x1c 0xd5
   3693 0x2c 0x13 0x1e 0xd5
   3694 0xc 0x20 0x18 0xd5
   3695 0xc 0x20 0x1c 0xd5
   3696 0xc 0x20 0x1e 0xd5
   3697 0x2c 0x20 0x18 0xd5
   3698 0x4c 0x20 0x18 0xd5
   3699 0x4c 0x20 0x1c 0xd5
   3700 0x4c 0x20 0x1e 0xd5
   3701 0xc 0x21 0x1c 0xd5
   3702 0x4c 0x21 0x1c 0xd5
   3703 0xc 0x30 0x1c 0xd5
   3704 0xc 0x40 0x18 0xd5
   3705 0xc 0x40 0x1c 0xd5
   3706 0xc 0x40 0x1e 0xd5
   3707 0x2c 0x40 0x18 0xd5
   3708 0x2c 0x40 0x1c 0xd5
   3709 0x2c 0x40 0x1e 0xd5
   3710 0xc 0x41 0x18 0xd5
   3711 0xc 0x41 0x1c 0xd5
   3712 0xc 0x41 0x1e 0xd5
   3713 0xc 0x42 0x18 0xd5
   3714 0xc 0x42 0x1b 0xd5
   3715 0x2c 0x42 0x1b 0xd5
   3716 0x4c 0x42 0x18 0xd5
   3717 0xc 0x43 0x1c 0xd5
   3718 0x2c 0x43 0x1c 0xd5
   3719 0x4c 0x43 0x1c 0xd5
   3720 0x6c 0x43 0x1c 0xd5
   3721 0xc 0x44 0x1b 0xd5
   3722 0x2c 0x44 0x1b 0xd5
   3723 0xc 0x45 0x1b 0xd5
   3724 0x2c 0x45 0x1b 0xd5
   3725 0x2c 0x50 0x1c 0xd5
   3726 0xc 0x51 0x18 0xd5
   3727 0xc 0x51 0x1c 0xd5
   3728 0xc 0x51 0x1e 0xd5
   3729 0x2c 0x51 0x18 0xd5
   3730 0x2c 0x51 0x1c 0xd5
   3731 0x2c 0x51 0x1e 0xd5
   3732 0xc 0x52 0x18 0xd5
   3733 0xc 0x52 0x1c 0xd5
   3734 0xc 0x52 0x1e 0xd5
   3735 0xc 0x53 0x1c 0xd5
   3736 0xc 0x60 0x18 0xd5
   3737 0xc 0x60 0x1c 0xd5
   3738 0xc 0x60 0x1e 0xd5
   3739 0x8c 0x60 0x1c 0xd5
   3740 0xc 0x74 0x18 0xd5
   3741 0xc 0x9c 0x1b 0xd5
   3742 0x2c 0x9c 0x1b 0xd5
   3743 0x4c 0x9c 0x1b 0xd5
   3744 0x6c 0x9c 0x1b 0xd5
   3745 0xac 0x9c 0x1b 0xd5
   3746 0xc 0x9d 0x1b 0xd5
   3747 0x2c 0x9d 0x1b 0xd5
   3748 0x4c 0x9d 0x1b 0xd5
   3749 0xc 0x9e 0x1b 0xd5
   3750 0x2c 0x9e 0x18 0xd5
   3751 0x4c 0x9e 0x18 0xd5
   3752 0x6c 0x9e 0x1b 0xd5
   3753 0xc 0xa2 0x18 0xd5
   3754 0xc 0xa2 0x1c 0xd5
   3755 0xc 0xa2 0x1e 0xd5
   3756 0xc 0xa3 0x18 0xd5
   3757 0xc 0xa3 0x1c 0xd5
   3758 0xc 0xa3 0x1e 0xd5
   3759 0xc 0xc0 0x18 0xd5
   3760 0xc 0xc0 0x1c 0xd5
   3761 0xc 0xc0 0x1e 0xd5
   3762 0x4c 0xc0 0x18 0xd5
   3763 0x4c 0xc0 0x1c 0xd5
   3764 0x4c 0xc0 0x1e 0xd5
   3765 0x4c 0xd0 0x1b 0xd5
   3766 0x4c 0xd0 0x1c 0xd5
   3767 0x4c 0xd0 0x1e 0xd5
   3768 0x6c 0xd0 0x1b 0xd5
   3769 0x8c 0xd0 0x18 0xd5
   3770 0xc 0xe0 0x1b 0xd5
   3771 0x6c 0xe0 0x1c 0xd5
   3772 0xc 0xe1 0x18 0xd5
   3773 0xc 0xe1 0x1c 0xd5
   3774 0xc 0xe2 0x1b 0xd5
   3775 0xc 0xe2 0x1c 0xd5
   3776 0xc 0xe2 0x1f 0xd5
   3777 0x2c 0xe2 0x1b 0xd5
   3778 0x2c 0xe2 0x1c 0xd5
   3779 0x2c 0xe2 0x1f 0xd5
   3780 0x4c 0xe2 0x1b 0xd5
   3781 0x4c 0xe2 0x1c 0xd5
   3782 0x4c 0xe2 0x1f 0xd5
   3783 0xc 0xe3 0x1b 0xd5
   3784 0x2c 0xe3 0x1b 0xd5
   3785 0x4c 0xe3 0x1b 0xd5
   3786 0xc 0xe8 0x1b 0xd5
   3787 0x2c 0xe8 0x1b 0xd5
   3788 0x4c 0xe8 0x1b 0xd5
   3789 0x6c 0xe8 0x1b 0xd5
   3790 0x8c 0xe8 0x1b 0xd5
   3791 0xac 0xe8 0x1b 0xd5
   3792 0xcc 0xe8 0x1b 0xd5
   3793 0xec 0xe8 0x1b 0xd5
   3794 0xc 0xe9 0x1b 0xd5
   3795 0x2c 0xe9 0x1b 0xd5
   3796 0x4c 0xe9 0x1b 0xd5
   3797 0x6c 0xe9 0x1b 0xd5
   3798 0x8c 0xe9 0x1b 0xd5
   3799 0xac 0xe9 0x1b 0xd5
   3800 0xcc 0xe9 0x1b 0xd5
   3801 0xec 0xe9 0x1b 0xd5
   3802 0xc 0xea 0x1b 0xd5
   3803 0x2c 0xea 0x1b 0xd5
   3804 0x4c 0xea 0x1b 0xd5
   3805 0x6c 0xea 0x1b 0xd5
   3806 0x8c 0xea 0x1b 0xd5
   3807 0xac 0xea 0x1b 0xd5
   3808 0xcc 0xea 0x1b 0xd5
   3809 0xec 0xea 0x1b 0xd5
   3810 0xc 0xeb 0x1b 0xd5
   3811 0x2c 0xeb 0x1b 0xd5
   3812 0x4c 0xeb 0x1b 0xd5
   3813 0x6c 0xeb 0x1b 0xd5
   3814 0x8c 0xeb 0x1b 0xd5
   3815 0xac 0xeb 0x1b 0xd5
   3816 0xcc 0xeb 0x1b 0xd5
   3817 0xec 0xef 0x1b 0xd5
   3818 0xc 0xec 0x1b 0xd5
   3819 0x2c 0xec 0x1b 0xd5
   3820 0x4c 0xec 0x1b 0xd5
   3821 0x6c 0xec 0x1b 0xd5
   3822 0x8c 0xec 0x1b 0xd5
   3823 0xac 0xec 0x1b 0xd5
   3824 0xcc 0xec 0x1b 0xd5
   3825 0xec 0xec 0x1b 0xd5
   3826 0xc 0xed 0x1b 0xd5
   3827 0x2c 0xed 0x1b 0xd5
   3828 0x4c 0xed 0x1b 0xd5
   3829 0x6c 0xed 0x1b 0xd5
   3830 0x8c 0xed 0x1b 0xd5
   3831 0xac 0xed 0x1b 0xd5
   3832 0xcc 0xed 0x1b 0xd5
   3833 0xec 0xed 0x1b 0xd5
   3834 0xc 0xee 0x1b 0xd5
   3835 0x2c 0xee 0x1b 0xd5
   3836 0x4c 0xee 0x1b 0xd5
   3837 0x6c 0xee 0x1b 0xd5
   3838 0x8c 0xee 0x1b 0xd5
   3839 0xac 0xee 0x1b 0xd5
   3840 0xcc 0xee 0x1b 0xd5
   3841 0xec 0xee 0x1b 0xd5
   3842 0xc 0xef 0x1b 0xd5
   3843 0x2c 0xef 0x1b 0xd5
   3844 0x4c 0xef 0x1b 0xd5
   3845 0x6c 0xef 0x1b 0xd5
   3846 0x8c 0xef 0x1b 0xd5
   3847 0xac 0xef 0x1b 0xd5
   3848 0xcc 0xef 0x1b 0xd5
   3849 0x9 0x0 0x32 0xd5
   3850 0x49 0x0 0x30 0xd5
   3851 0x9 0x1 0x33 0xd5
   3852 0x9 0x2 0x30 0xd5
   3853 0x49 0x2 0x30 0xd5
   3854 0x49 0x3 0x30 0xd5
   3855 0x9 0x4 0x33 0xd5
   3856 0x9 0x5 0x33 0xd5
   3857 0x49 0x6 0x30 0xd5
   3858 0x9 0x7 0x34 0xd5
   3859 0x89 0x0 0x30 0xd5
   3860 0x89 0x1 0x30 0xd5
   3861 0x89 0x2 0x30 0xd5
   3862 0x89 0x3 0x30 0xd5
   3863 0x89 0x4 0x30 0xd5
   3864 0x89 0x5 0x30 0xd5
   3865 0x89 0x6 0x30 0xd5
   3866 0x89 0x7 0x30 0xd5
   3867 0x89 0x8 0x30 0xd5
   3868 0x89 0x9 0x30 0xd5
   3869 0x89 0xa 0x30 0xd5
   3870 0x89 0xb 0x30 0xd5
   3871 0x89 0xc 0x30 0xd5
   3872 0x89 0xd 0x30 0xd5
   3873 0x89 0xe 0x30 0xd5
   3874 0x89 0xf 0x30 0xd5
   3875 0xa9 0x0 0x30 0xd5
   3876 0xa9 0x1 0x30 0xd5
   3877 0xa9 0x2 0x30 0xd5
   3878 0xa9 0x3 0x30 0xd5
   3879 0xa9 0x4 0x30 0xd5
   3880 0xa9 0x5 0x30 0xd5
   3881 0xa9 0x6 0x30 0xd5
   3882 0xa9 0x7 0x30 0xd5
   3883 0xa9 0x8 0x30 0xd5
   3884 0xa9 0x9 0x30 0xd5
   3885 0xa9 0xa 0x30 0xd5
   3886 0xa9 0xb 0x30 0xd5
   3887 0xa9 0xc 0x30 0xd5
   3888 0xa9 0xd 0x30 0xd5
   3889 0xa9 0xe 0x30 0xd5
   3890 0xa9 0xf 0x30 0xd5
   3891 0xc9 0x0 0x30 0xd5
   3892 0xc9 0x1 0x30 0xd5
   3893 0xc9 0x2 0x30 0xd5
   3894 0xc9 0x3 0x30 0xd5
   3895 0xc9 0x4 0x30 0xd5
   3896 0xc9 0x5 0x30 0xd5
   3897 0xc9 0x6 0x30 0xd5
   3898 0xc9 0x7 0x30 0xd5
   3899 0xc9 0x8 0x30 0xd5
   3900 0xc9 0x9 0x30 0xd5
   3901 0xc9 0xa 0x30 0xd5
   3902 0xc9 0xb 0x30 0xd5
   3903 0xc9 0xc 0x30 0xd5
   3904 0xc9 0xd 0x30 0xd5
   3905 0xc9 0xe 0x30 0xd5
   3906 0xc9 0xf 0x30 0xd5
   3907 0xe9 0x0 0x30 0xd5
   3908 0xe9 0x1 0x30 0xd5
   3909 0xe9 0x2 0x30 0xd5
   3910 0xe9 0x3 0x30 0xd5
   3911 0xe9 0x4 0x30 0xd5
   3912 0xe9 0x5 0x30 0xd5
   3913 0xe9 0x6 0x30 0xd5
   3914 0xe9 0x7 0x30 0xd5
   3915 0xe9 0x8 0x30 0xd5
   3916 0xe9 0x9 0x30 0xd5
   3917 0xe9 0xa 0x30 0xd5
   3918 0xe9 0xb 0x30 0xd5
   3919 0xe9 0xc 0x30 0xd5
   3920 0xe9 0xd 0x30 0xd5
   3921 0xe9 0xe 0x30 0xd5
   3922 0xe9 0xf 0x30 0xd5
   3923 0x9 0x10 0x30 0xd5
   3924 0x9 0x10 0x32 0xd5
   3925 0x89 0x11 0x30 0xd5
   3926 0x89 0x13 0x30 0xd5
   3927 0x89 0x14 0x30 0xd5
   3928 0xc9 0x78 0x30 0xd5
   3929 0xc9 0x79 0x30 0xd5
   3930 0xc9 0x7e 0x30 0xd5
   3931 0x9 0x0 0x38 0xd5
   3932 0x9 0x0 0x39 0xd5
   3933 0x9 0x0 0x3a 0xd5
   3934 0x9 0x0 0x3c 0xd5
   3935 0x29 0x0 0x39 0xd5
   3936 0x29 0x0 0x3b 0xd5
   3937 0xa9 0x0 0x38 0xd5
   3938 0xa9 0x0 0x3c 0xd5
   3939 0xc9 0x0 0x38 0xd5
   3940 0xe9 0x0 0x39 0xd5
   3941 0xe9 0x0 0x3b 0xd5
   3942 0x9 0x1 0x38 0xd5
   3943 0x29 0x1 0x38 0xd5
   3944 0x49 0x1 0x38 0xd5
   3945 0x69 0x1 0x38 0xd5
   3946 0x89 0x1 0x38 0xd5
   3947 0xa9 0x1 0x38 0xd5
   3948 0xc9 0x1 0x38 0xd5
   3949 0xe9 0x1 0x38 0xd5
   3950 0x9 0x2 0x38 0xd5
   3951 0x29 0x2 0x38 0xd5
   3952 0x49 0x2 0x38 0xd5
   3953 0x69 0x2 0x38 0xd5
   3954 0x89 0x2 0x38 0xd5
   3955 0xa9 0x2 0x38 0xd5
   3956 0x9 0x3 0x38 0xd5
   3957 0x29 0x3 0x38 0xd5
   3958 0x49 0x3 0x38 0xd5
   3959 0x9 0x4 0x38 0xd5
   3960 0x29 0x4 0x38 0xd5
   3961 0x9 0x5 0x38 0xd5
   3962 0x29 0x5 0x38 0xd5
   3963 0x89 0x5 0x38 0xd5
   3964 0xa9 0x5 0x38 0xd5
   3965 0x9 0x6 0x38 0xd5
   3966 0x29 0x6 0x38 0xd5
   3967 0x9 0x7 0x38 0xd5
   3968 0x29 0x7 0x38 0xd5
   3969 0x9 0x10 0x38 0xd5
   3970 0x9 0x10 0x3c 0xd5
   3971 0x9 0x10 0x3e 0xd5
   3972 0x29 0x10 0x38 0xd5
   3973 0x29 0x10 0x3c 0xd5
   3974 0x29 0x10 0x3e 0xd5
   3975 0x49 0x10 0x38 0xd5
   3976 0x9 0x11 0x3c 0xd5
   3977 0x9 0x11 0x3e 0xd5
   3978 0x29 0x11 0x3c 0xd5
   3979 0x29 0x11 0x3e 0xd5
   3980 0x49 0x11 0x3c 0xd5
   3981 0x49 0x11 0x3e 0xd5
   3982 0x69 0x11 0x3c 0xd5
   3983 0xe9 0x11 0x3c 0xd5
   3984 0x29 0x13 0x3e 0xd5
   3985 0x9 0x20 0x38 0xd5
   3986 0x9 0x20 0x3c 0xd5
   3987 0x9 0x20 0x3e 0xd5
   3988 0x29 0x20 0x38 0xd5
   3989 0x49 0x20 0x38 0xd5
   3990 0x49 0x20 0x3c 0xd5
   3991 0x49 0x20 0x3e 0xd5
   3992 0x9 0x21 0x3c 0xd5
   3993 0x49 0x21 0x3c 0xd5
   3994 0x9 0x30 0x3c 0xd5
   3995 0x9 0x40 0x38 0xd5
   3996 0x9 0x40 0x3c 0xd5
   3997 0x9 0x40 0x3e 0xd5
   3998 0x29 0x40 0x38 0xd5
   3999 0x29 0x40 0x3c 0xd5
   4000 0x29 0x40 0x3e 0xd5
   4001 0x9 0x41 0x38 0xd5
   4002 0x9 0x41 0x3c 0xd5
   4003 0x9 0x41 0x3e 0xd5
   4004 0x9 0x42 0x38 0xd5
   4005 0x9 0x42 0x3b 0xd5
   4006 0x29 0x42 0x3b 0xd5
   4007 0x49 0x42 0x38 0xd5
   4008 0x9 0x43 0x3c 0xd5
   4009 0x29 0x43 0x3c 0xd5
   4010 0x49 0x43 0x3c 0xd5
   4011 0x69 0x43 0x3c 0xd5
   4012 0x9 0x44 0x3b 0xd5
   4013 0x29 0x44 0x3b 0xd5
   4014 0x9 0x45 0x3b 0xd5
   4015 0x29 0x45 0x3b 0xd5
   4016 0x29 0x50 0x3c 0xd5
   4017 0x9 0x51 0x38 0xd5
   4018 0x9 0x51 0x3c 0xd5
   4019 0x9 0x51 0x3e 0xd5
   4020 0x29 0x51 0x38 0xd5
   4021 0x29 0x51 0x3c 0xd5
   4022 0x29 0x51 0x3e 0xd5
   4023 0x9 0x52 0x38 0xd5
   4024 0x9 0x52 0x3c 0xd5
   4025 0x9 0x52 0x3e 0xd5
   4026 0x9 0x53 0x3c 0xd5
   4027 0x9 0x60 0x38 0xd5
   4028 0x9 0x60 0x3c 0xd5
   4029 0x9 0x60 0x3e 0xd5
   4030 0x89 0x60 0x3c 0xd5
   4031 0x9 0x74 0x38 0xd5
   4032 0x9 0x9c 0x3b 0xd5
   4033 0x29 0x9c 0x3b 0xd5
   4034 0x49 0x9c 0x3b 0xd5
   4035 0x69 0x9c 0x3b 0xd5
   4036 0xa9 0x9c 0x3b 0xd5
   4037 0xc9 0x9c 0x3b 0xd5
   4038 0xe9 0x9c 0x3b 0xd5
   4039 0x9 0x9d 0x3b 0xd5
   4040 0x29 0x9d 0x3b 0xd5
   4041 0x49 0x9d 0x3b 0xd5
   4042 0x9 0x9e 0x3b 0xd5
   4043 0x29 0x9e 0x38 0xd5
   4044 0x49 0x9e 0x38 0xd5
   4045 0x69 0x9e 0x3b 0xd5
   4046 0x9 0xa2 0x38 0xd5
   4047 0x9 0xa2 0x3c 0xd5
   4048 0x9 0xa2 0x3e 0xd5
   4049 0x9 0xa3 0x38 0xd5
   4050 0x9 0xa3 0x3c 0xd5
   4051 0x9 0xa3 0x3e 0xd5
   4052 0x9 0xc0 0x38 0xd5
   4053 0x9 0xc0 0x3c 0xd5
   4054 0x9 0xc0 0x3e 0xd5
   4055 0x29 0xc0 0x38 0xd5
   4056 0x29 0xc0 0x3c 0xd5
   4057 0x29 0xc0 0x3e 0xd5
   4058 0x49 0xc0 0x38 0xd5
   4059 0x49 0xc0 0x3c 0xd5
   4060 0x49 0xc0 0x3e 0xd5
   4061 0x9 0xc1 0x38 0xd5
   4062 0x29 0xd0 0x38 0xd5
   4063 0x49 0xd0 0x3b 0xd5
   4064 0x49 0xd0 0x3c 0xd5
   4065 0x49 0xd0 0x3e 0xd5
   4066 0x69 0xd0 0x3b 0xd5
   4067 0x89 0xd0 0x38 0xd5
   4068 0x9 0xe0 0x3b 0xd5
   4069 0x29 0xe0 0x3b 0xd5
   4070 0x49 0xe0 0x3b 0xd5
   4071 0x69 0xe0 0x3c 0xd5
   4072 0x9 0xe1 0x38 0xd5
   4073 0x9 0xe1 0x3c 0xd5
   4074 0x9 0xe2 0x3b 0xd5
   4075 0x9 0xe2 0x3c 0xd5
   4076 0x9 0xe2 0x3f 0xd5
   4077 0x29 0xe2 0x3b 0xd5
   4078 0x29 0xe2 0x3c 0xd5
   4079 0x29 0xe2 0x3f 0xd5
   4080 0x49 0xe2 0x3b 0xd5
   4081 0x49 0xe2 0x3c 0xd5
   4082 0x49 0xe2 0x3f 0xd5
   4083 0x9 0xe3 0x3b 0xd5
   4084 0x29 0xe3 0x3b 0xd5
   4085 0x49 0xe3 0x3b 0xd5
   4086 0x9 0xe8 0x3b 0xd5
   4087 0x29 0xe8 0x3b 0xd5
   4088 0x49 0xe8 0x3b 0xd5
   4089 0x69 0xe8 0x3b 0xd5
   4090 0x89 0xe8 0x3b 0xd5
   4091 0xa9 0xe8 0x3b 0xd5
   4092 0xc9 0xe8 0x3b 0xd5
   4093 0xe9 0xe8 0x3b 0xd5
   4094 0x9 0xe9 0x3b 0xd5
   4095 0x29 0xe9 0x3b 0xd5
   4096 0x49 0xe9 0x3b 0xd5
   4097 0x69 0xe9 0x3b 0xd5
   4098 0x89 0xe9 0x3b 0xd5
   4099 0xa9 0xe9 0x3b 0xd5
   4100 0xc9 0xe9 0x3b 0xd5
   4101 0xe9 0xe9 0x3b 0xd5
   4102 0x9 0xea 0x3b 0xd5
   4103 0x29 0xea 0x3b 0xd5
   4104 0x49 0xea 0x3b 0xd5
   4105 0x69 0xea 0x3b 0xd5
   4106 0x89 0xea 0x3b 0xd5
   4107 0xa9 0xea 0x3b 0xd5
   4108 0xc9 0xea 0x3b 0xd5
   4109 0xe9 0xea 0x3b 0xd5
   4110 0x9 0xeb 0x3b 0xd5
   4111 0x29 0xeb 0x3b 0xd5
   4112 0x49 0xeb 0x3b 0xd5
   4113 0x69 0xeb 0x3b 0xd5
   4114 0x89 0xeb 0x3b 0xd5
   4115 0xa9 0xeb 0x3b 0xd5
   4116 0xc9 0xeb 0x3b 0xd5
   4117 0xe9 0xef 0x3b 0xd5
   4118 0x9 0xec 0x3b 0xd5
   4119 0x29 0xec 0x3b 0xd5
   4120 0x49 0xec 0x3b 0xd5
   4121 0x69 0xec 0x3b 0xd5
   4122 0x89 0xec 0x3b 0xd5
   4123 0xa9 0xec 0x3b 0xd5
   4124 0xc9 0xec 0x3b 0xd5
   4125 0xe9 0xec 0x3b 0xd5
   4126 0x9 0xed 0x3b 0xd5
   4127 0x29 0xed 0x3b 0xd5
   4128 0x49 0xed 0x3b 0xd5
   4129 0x69 0xed 0x3b 0xd5
   4130 0x89 0xed 0x3b 0xd5
   4131 0xa9 0xed 0x3b 0xd5
   4132 0xc9 0xed 0x3b 0xd5
   4133 0xe9 0xed 0x3b 0xd5
   4134 0x9 0xee 0x3b 0xd5
   4135 0x29 0xee 0x3b 0xd5
   4136 0x49 0xee 0x3b 0xd5
   4137 0x69 0xee 0x3b 0xd5
   4138 0x89 0xee 0x3b 0xd5
   4139 0xa9 0xee 0x3b 0xd5
   4140 0xc9 0xee 0x3b 0xd5
   4141 0xe9 0xee 0x3b 0xd5
   4142 0x9 0xef 0x3b 0xd5
   4143 0x29 0xef 0x3b 0xd5
   4144 0x49 0xef 0x3b 0xd5
   4145 0x69 0xef 0x3b 0xd5
   4146 0x89 0xef 0x3b 0xd5
   4147 0xa9 0xef 0x3b 0xd5
   4148 0xc9 0xef 0x3b 0xd5
   4149 
   4150 # CHECK: mrs     x12, s3_7_c15_c1_5
   4151 # CHECK: mrs     x13, s3_2_c11_c15_7
   4152 # CHECK: msr     s3_0_c15_c0_0, x12
   4153 # CHECK: msr     s3_7_c11_c13_7, x5
   4154 0xac 0xf1 0x3f 0xd5
   4155 0xed 0xbf 0x3a 0xd5
   4156 0x0c 0xf0 0x18 0xd5
   4157 0xe5 0xbd 0x1f 0xd5
   4158 
   4159 #------------------------------------------------------------------------------
   4160 # Test and branch (immediate)
   4161 #------------------------------------------------------------------------------
   4162 
   4163 # CHECK: tbz     x12, #62, #0
   4164 # CHECK: tbz     x12, #62, #4
   4165 # CHECK: tbz     x12, #62, #-32768
   4166 # CHECK: tbnz    x12, #60, #32764
   4167 0x0c 0x00 0xf0 0xb6
   4168 0x2c 0x00 0xf0 0xb6
   4169 0x0c 0x00 0xf4 0xb6
   4170 0xec 0xff 0xe3 0xb7
   4171 
   4172 #------------------------------------------------------------------------------
   4173 # Unconditional branch (immediate)
   4174 #------------------------------------------------------------------------------
   4175 
   4176 # CHECK: b        #4
   4177 # CHECK: b        #-4
   4178 # CHECK: b        #134217724
   4179 0x01 0x00 0x00 0x14
   4180 0xff 0xff 0xff 0x17
   4181 0xff 0xff 0xff 0x15
   4182 
   4183 #------------------------------------------------------------------------------
   4184 # Unconditional branch (register)
   4185 #------------------------------------------------------------------------------
   4186 
   4187 # CHECK: br       x20
   4188 # CHECK: blr      xzr
   4189 # CHECK: ret      x10
   4190 0x80 0x2 0x1f 0xd6
   4191 0xe0 0x3 0x3f 0xd6
   4192 0x40 0x1 0x5f 0xd6
   4193 
   4194 # CHECK: ret
   4195 # CHECK: eret
   4196 # CHECK: drps
   4197 0xc0 0x3 0x5f 0xd6
   4198 0xe0 0x3 0x9f 0xd6
   4199 0xe0 0x3 0xbf 0xd6
   4200 
   4201