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