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