Home | History | Annotate | Download | only in AArch64
      1 ; RUN: llvm-mc -triple arm64-apple-darwin -mattr=crypto,fullfp16 -output-asm-variant=1 -show-encoding < %s | FileCheck %s
      2 
      3 foo:
      4 
      5   abs.8b  v0, v0
      6   abs.16b v0, v0
      7   abs.4h  v0, v0
      8   abs.8h  v0, v0
      9   abs.2s  v0, v0
     10   abs.4s  v0, v0
     11 
     12 ; CHECK: abs.8b  v0, v0              ; encoding: [0x00,0xb8,0x20,0x0e]
     13 ; CHECK: abs.16b v0, v0              ; encoding: [0x00,0xb8,0x20,0x4e]
     14 ; CHECK: abs.4h  v0, v0              ; encoding: [0x00,0xb8,0x60,0x0e]
     15 ; CHECK: abs.8h  v0, v0              ; encoding: [0x00,0xb8,0x60,0x4e]
     16 ; CHECK: abs.2s  v0, v0              ; encoding: [0x00,0xb8,0xa0,0x0e]
     17 ; CHECK: abs.4s  v0, v0              ; encoding: [0x00,0xb8,0xa0,0x4e]
     18 
     19   add.8b  v0, v0, v0
     20   add.16b v0, v0, v0
     21   add.4h  v0, v0, v0
     22   add.8h  v0, v0, v0
     23   add.2s  v0, v0, v0
     24   add.4s  v0, v0, v0
     25   add.2d  v0, v0, v0
     26 
     27 ; CHECK: add.8b  v0, v0, v0          ; encoding: [0x00,0x84,0x20,0x0e]
     28 ; CHECK: add.16b v0, v0, v0          ; encoding: [0x00,0x84,0x20,0x4e]
     29 ; CHECK: add.4h  v0, v0, v0          ; encoding: [0x00,0x84,0x60,0x0e]
     30 ; CHECK: add.8h  v0, v0, v0          ; encoding: [0x00,0x84,0x60,0x4e]
     31 ; CHECK: add.2s  v0, v0, v0          ; encoding: [0x00,0x84,0xa0,0x0e]
     32 ; CHECK: add.4s  v0, v0, v0          ; encoding: [0x00,0x84,0xa0,0x4e]
     33 ; CHECK: add.2d  v0, v0, v0          ; encoding: [0x00,0x84,0xe0,0x4e]
     34 
     35   add d1, d2, d3
     36 
     37 ; CHECK: add d1, d2, d3              ; encoding: [0x41,0x84,0xe3,0x5e]
     38 
     39   addhn.8b   v0, v0, v0
     40   addhn2.16b v0, v0, v0
     41   addhn.4h   v0, v0, v0
     42   addhn2.8h  v0, v0, v0
     43   addhn.2s   v0, v0, v0
     44   addhn2.4s  v0, v0, v0
     45 
     46 ; CHECK: addhn.8b   v0, v0, v0       ; encoding: [0x00,0x40,0x20,0x0e]
     47 ; CHECK: addhn2.16b v0, v0, v0       ; encoding: [0x00,0x40,0x20,0x4e]
     48 ; CHECK: addhn.4h   v0, v0, v0       ; encoding: [0x00,0x40,0x60,0x0e]
     49 ; CHECK: addhn2.8h  v0, v0, v0       ; encoding: [0x00,0x40,0x60,0x4e]
     50 ; CHECK: addhn.2s   v0, v0, v0       ; encoding: [0x00,0x40,0xa0,0x0e]
     51 ; CHECK: addhn2.4s  v0, v0, v0       ; encoding: [0x00,0x40,0xa0,0x4e]
     52 
     53   addp.8b  v0, v0, v0
     54   addp.16b v0, v0, v0
     55   addp.4h  v0, v0, v0
     56   addp.8h  v0, v0, v0
     57   addp.2s  v0, v0, v0
     58   addp.4s  v0, v0, v0
     59   addp.2d  v0, v0, v0
     60 
     61 ; CHECK: addp.8b   v0, v0, v0        ; encoding: [0x00,0xbc,0x20,0x0e]
     62 ; CHECK: addp.16b  v0, v0, v0        ; encoding: [0x00,0xbc,0x20,0x4e]
     63 ; CHECK: addp.4h   v0, v0, v0        ; encoding: [0x00,0xbc,0x60,0x0e]
     64 ; CHECK: addp.8h   v0, v0, v0        ; encoding: [0x00,0xbc,0x60,0x4e]
     65 ; CHECK: addp.2s   v0, v0, v0        ; encoding: [0x00,0xbc,0xa0,0x0e]
     66 ; CHECK: addp.4s   v0, v0, v0        ; encoding: [0x00,0xbc,0xa0,0x4e]
     67 ; CHECK: addp.2d   v0, v0, v0        ; encoding: [0x00,0xbc,0xe0,0x4e]
     68 
     69   addp.2d  d0, v0
     70 
     71 ; CHECK: addp.2d d0, v0              ; encoding: [0x00,0xb8,0xf1,0x5e]
     72 
     73   addv.8b  b0, v0
     74   addv.16b b0, v0
     75   addv.4h  h0, v0
     76   addv.8h  h0, v0
     77   addv.4s  s0, v0
     78 
     79 ; CHECK: addv.8b  b0, v0             ; encoding: [0x00,0xb8,0x31,0x0e]
     80 ; CHECK: addv.16b b0, v0             ; encoding: [0x00,0xb8,0x31,0x4e]
     81 ; CHECK: addv.4h  h0, v0             ; encoding: [0x00,0xb8,0x71,0x0e]
     82 ; CHECK: addv.8h  h0, v0             ; encoding: [0x00,0xb8,0x71,0x4e]
     83 ; CHECK: addv.4s  s0, v0             ; encoding: [0x00,0xb8,0xb1,0x4e]
     84 
     85 
     86 ; INS/DUP
     87   dup.2d  v0, x3
     88   dup.4s  v0, w3
     89   dup.2s  v0, w3
     90   dup.8h  v0, w3
     91   dup.4h  v0, w3
     92   dup.16b v0, w3
     93   dup.8b  v0, w3
     94 
     95   dup v1.2d, x3
     96   dup v2.4s, w4
     97   dup v3.2s, w5
     98   dup v4.8h, w6
     99   dup v5.4h, w7
    100   dup v6.16b, w8
    101   dup v7.8b, w9
    102 
    103 ; CHECK: dup.2d  v0, x3              ; encoding: [0x60,0x0c,0x08,0x4e]
    104 ; CHECK: dup.4s  v0, w3              ; encoding: [0x60,0x0c,0x04,0x4e]
    105 ; CHECK: dup.2s  v0, w3              ; encoding: [0x60,0x0c,0x04,0x0e]
    106 ; CHECK: dup.8h  v0, w3              ; encoding: [0x60,0x0c,0x02,0x4e]
    107 ; CHECK: dup.4h  v0, w3              ; encoding: [0x60,0x0c,0x02,0x0e]
    108 ; CHECK: dup.16b v0, w3              ; encoding: [0x60,0x0c,0x01,0x4e]
    109 ; CHECK: dup.8b  v0, w3              ; encoding: [0x60,0x0c,0x01,0x0e]
    110 
    111 ; CHECK: dup.2d	v1, x3               ; encoding: [0x61,0x0c,0x08,0x4e]
    112 ; CHECK: dup.4s	v2, w4               ; encoding: [0x82,0x0c,0x04,0x4e]
    113 ; CHECK: dup.2s	v3, w5               ; encoding: [0xa3,0x0c,0x04,0x0e]
    114 ; CHECK: dup.8h	v4, w6               ; encoding: [0xc4,0x0c,0x02,0x4e]
    115 ; CHECK: dup.4h	v5, w7               ; encoding: [0xe5,0x0c,0x02,0x0e]
    116 ; CHECK: dup.16b v6, w8              ; encoding: [0x06,0x0d,0x01,0x4e]
    117 ; CHECK: dup.8b	v7, w9               ; encoding: [0x27,0x0d,0x01,0x0e]
    118 
    119   dup.2d  v0, v3[1]
    120   dup.2s  v0, v3[1]
    121   dup.4s  v0, v3[1]
    122   dup.4h  v0, v3[1]
    123   dup.8h  v0, v3[1]
    124   dup.8b  v0, v3[1]
    125   dup.16b v0, v3[1]
    126 
    127   dup v7.2d, v9.d[1]
    128   dup v6.2s, v8.s[1]
    129   dup v5.4s, v7.s[2]
    130   dup v4.4h, v6.h[3]
    131   dup v3.8h, v5.h[4]
    132   dup v2.8b, v4.b[5]
    133   dup v1.16b, v3.b[6]
    134 
    135 ; CHECK: dup.2d  v0, v3[1]           ; encoding: [0x60,0x04,0x18,0x4e]
    136 ; CHECK: dup.2s  v0, v3[1]           ; encoding: [0x60,0x04,0x0c,0x0e]
    137 ; CHECK: dup.4s  v0, v3[1]           ; encoding: [0x60,0x04,0x0c,0x4e]
    138 ; CHECK: dup.4h  v0, v3[1]           ; encoding: [0x60,0x04,0x06,0x0e]
    139 ; CHECK: dup.8h  v0, v3[1]           ; encoding: [0x60,0x04,0x06,0x4e]
    140 ; CHECK: dup.8b  v0, v3[1]           ; encoding: [0x60,0x04,0x03,0x0e]
    141 ; CHECK: dup.16b v0, v3[1]           ; encoding: [0x60,0x04,0x03,0x4e]
    142 
    143 ; CHECK: dup.2d  v7, v9[1]            ; encoding: [0x27,0x05,0x18,0x4e]
    144 ; CHECK: dup.2s  v6, v8[1]            ; encoding: [0x06,0x05,0x0c,0x0e]
    145 ; CHECK: dup.4s  v5, v7[2]            ; encoding: [0xe5,0x04,0x14,0x4e]
    146 ; CHECK: dup.4h  v4, v6[3]            ; encoding: [0xc4,0x04,0x0e,0x0e]
    147 ; CHECK: dup.8h  v3, v5[4]            ; encoding: [0xa3,0x04,0x12,0x4e]
    148 ; CHECK: dup.8b  v2, v4[5]            ; encoding: [0x82,0x04,0x0b,0x0e]
    149 ; CHECK: dup.16b v1, v3[6]            ; encoding: [0x61,0x04,0x0d,0x4e]
    150 
    151   dup b3, v4[1]
    152   dup h3, v4[1]
    153   dup s3, v4[1]
    154   dup d3, v4[1]
    155   dup b3, v4.b[1]
    156   dup h3, v4.h[1]
    157   dup s3, v4.s[1]
    158   dup d3, v4.d[1]
    159 
    160   mov b3, v4[1]
    161   mov h3, v4[1]
    162   mov s3, v4[1]
    163   mov d3, v4[1]
    164   mov b3, v4.b[1]
    165   mov h3, v4.h[1]
    166   mov s3, v4.s[1]
    167   mov d3, v4.d[1]
    168 
    169 ; CHECK: mov b3, v4[1]               ; encoding: [0x83,0x04,0x03,0x5e]
    170 ; CHECK: mov h3, v4[1]               ; encoding: [0x83,0x04,0x06,0x5e]
    171 ; CHECK: mov s3, v4[1]               ; encoding: [0x83,0x04,0x0c,0x5e]
    172 ; CHECK: mov d3, v4[1]               ; encoding: [0x83,0x04,0x18,0x5e]
    173 ; CHECK: mov b3, v4[1]               ; encoding: [0x83,0x04,0x03,0x5e]
    174 ; CHECK: mov h3, v4[1]               ; encoding: [0x83,0x04,0x06,0x5e]
    175 ; CHECK: mov s3, v4[1]               ; encoding: [0x83,0x04,0x0c,0x5e]
    176 ; CHECK: mov d3, v4[1]               ; encoding: [0x83,0x04,0x18,0x5e]
    177 
    178 ; CHECK: mov b3, v4[1]               ; encoding: [0x83,0x04,0x03,0x5e]
    179 ; CHECK: mov h3, v4[1]               ; encoding: [0x83,0x04,0x06,0x5e]
    180 ; CHECK: mov s3, v4[1]               ; encoding: [0x83,0x04,0x0c,0x5e]
    181 ; CHECK: mov d3, v4[1]               ; encoding: [0x83,0x04,0x18,0x5e]
    182 ; CHECK: mov b3, v4[1]               ; encoding: [0x83,0x04,0x03,0x5e]
    183 ; CHECK: mov h3, v4[1]               ; encoding: [0x83,0x04,0x06,0x5e]
    184 ; CHECK: mov s3, v4[1]               ; encoding: [0x83,0x04,0x0c,0x5e]
    185 ; CHECK: mov d3, v4[1]               ; encoding: [0x83,0x04,0x18,0x5e]
    186 
    187   smov.s x3, v2[2]
    188   smov   x3, v2.s[2]
    189   umov.s w3, v2[2]
    190   umov   w3, v2.s[2]
    191   umov.d x3, v2[1]
    192   umov   x3, v2.d[1]
    193 
    194 ; CHECK: smov.s  x3, v2[2]           ; encoding: [0x43,0x2c,0x14,0x4e]
    195 ; CHECK: smov.s  x3, v2[2]           ; encoding: [0x43,0x2c,0x14,0x4e]
    196 ; CHECK: mov.s  w3, v2[2]           ; encoding: [0x43,0x3c,0x14,0x0e]
    197 ; CHECK: mov.s  w3, v2[2]           ; encoding: [0x43,0x3c,0x14,0x0e]
    198 ; CHECK: mov.d  x3, v2[1]           ; encoding: [0x43,0x3c,0x18,0x4e]
    199 ; CHECK: mov.d  x3, v2[1]           ; encoding: [0x43,0x3c,0x18,0x4e]
    200 
    201   ; MOV aliases for UMOV instructions above
    202 
    203   mov.s w2, v3[3]
    204   mov   w5, v7.s[2]
    205   mov.d x11, v13[1]
    206   mov   x17, v19.d[0]
    207 
    208 ; CHECK: mov.s  w2, v3[3]               ; encoding: [0x62,0x3c,0x1c,0x0e]
    209 ; CHECK: mov.s  w5, v7[2]               ; encoding: [0xe5,0x3c,0x14,0x0e]
    210 ; CHECK: mov.d  x11, v13[1]             ; encoding: [0xab,0x3d,0x18,0x4e]
    211 ; CHECK: mov.d  x17, v19[0]             ; encoding: [0x71,0x3e,0x08,0x4e]
    212 
    213   ins.d v2[1], x5
    214   ins.s v2[1], w5
    215   ins.h v2[1], w5
    216   ins.b v2[1], w5
    217 
    218   ins   v2.d[1], x5
    219   ins   v2.s[1], w5
    220   ins   v2.h[1], w5
    221   ins   v2.b[1], w5
    222 
    223 ; CHECK: ins.d v2[1], x5             ; encoding: [0xa2,0x1c,0x18,0x4e]
    224 ; CHECK: ins.s v2[1], w5             ; encoding: [0xa2,0x1c,0x0c,0x4e]
    225 ; CHECK: ins.h v2[1], w5             ; encoding: [0xa2,0x1c,0x06,0x4e]
    226 ; CHECK: ins.b v2[1], w5             ; encoding: [0xa2,0x1c,0x03,0x4e]
    227 
    228 ; CHECK: ins.d v2[1], x5             ; encoding: [0xa2,0x1c,0x18,0x4e]
    229 ; CHECK: ins.s v2[1], w5             ; encoding: [0xa2,0x1c,0x0c,0x4e]
    230 ; CHECK: ins.h v2[1], w5             ; encoding: [0xa2,0x1c,0x06,0x4e]
    231 ; CHECK: ins.b v2[1], w5             ; encoding: [0xa2,0x1c,0x03,0x4e]
    232 
    233   ins.d v2[1], v15[1]
    234   ins.s v2[1], v15[1]
    235   ins.h v2[1], v15[1]
    236   ins.b v2[1], v15[1]
    237 
    238   ins   v2.d[1], v15.d[0]
    239   ins   v2.s[3], v15.s[2]
    240   ins   v2.h[7], v15.h[3]
    241   ins   v2.b[10], v15.b[5]
    242 
    243 ; CHECK: ins.d v2[1], v15[1]         ; encoding: [0xe2,0x45,0x18,0x6e]
    244 ; CHECK: ins.s v2[1], v15[1]         ; encoding: [0xe2,0x25,0x0c,0x6e]
    245 ; CHECK: ins.h v2[1], v15[1]         ; encoding: [0xe2,0x15,0x06,0x6e]
    246 ; CHECK: ins.b v2[1], v15[1]         ; encoding: [0xe2,0x0d,0x03,0x6e]
    247 
    248 ; CHECK: ins.d v2[1], v15[0]         ; encoding: [0xe2,0x05,0x18,0x6e]
    249 ; CHECK: ins.s v2[3], v15[2]         ; encoding: [0xe2,0x45,0x1c,0x6e]
    250 ; CHECK: ins.h v2[7], v15[3]         ; encoding: [0xe2,0x35,0x1e,0x6e]
    251 ; CHECK: ins.b v2[10], v15[5]        ; encoding: [0xe2,0x2d,0x15,0x6e]
    252 
    253 ; MOV aliases for the above INS instructions.
    254   mov.d v2[1], x5
    255   mov.s v3[1], w6
    256   mov.h v4[1], w7
    257   mov.b v5[1], w8
    258 
    259   mov   v9.d[1], x2
    260   mov   v8.s[1], w3
    261   mov   v7.h[1], w4
    262   mov   v6.b[1], w5
    263 
    264   mov.d v1[1], v10[1]
    265   mov.s v2[1], v11[1]
    266   mov.h v7[1], v12[1]
    267   mov.b v8[1], v15[1]
    268 
    269   mov   v2.d[1], v15.d[0]
    270   mov   v7.s[3], v16.s[2]
    271   mov   v8.h[7], v17.h[3]
    272   mov   v9.b[10], v18.b[5]
    273 
    274 ; CHECK: ins.d	v2[1], x5               ; encoding: [0xa2,0x1c,0x18,0x4e]
    275 ; CHECK: ins.s	v3[1], w6               ; encoding: [0xc3,0x1c,0x0c,0x4e]
    276 ; CHECK: ins.h	v4[1], w7               ; encoding: [0xe4,0x1c,0x06,0x4e]
    277 ; CHECK: ins.b	v5[1], w8               ; encoding: [0x05,0x1d,0x03,0x4e]
    278 ; CHECK: ins.d	v9[1], x2               ; encoding: [0x49,0x1c,0x18,0x4e]
    279 ; CHECK: ins.s	v8[1], w3               ; encoding: [0x68,0x1c,0x0c,0x4e]
    280 ; CHECK: ins.h	v7[1], w4               ; encoding: [0x87,0x1c,0x06,0x4e]
    281 ; CHECK: ins.b	v6[1], w5               ; encoding: [0xa6,0x1c,0x03,0x4e]
    282 ; CHECK: ins.d	v1[1], v10[1]           ; encoding: [0x41,0x45,0x18,0x6e]
    283 ; CHECK: ins.s	v2[1], v11[1]           ; encoding: [0x62,0x25,0x0c,0x6e]
    284 ; CHECK: ins.h	v7[1], v12[1]           ; encoding: [0x87,0x15,0x06,0x6e]
    285 ; CHECK: ins.b	v8[1], v15[1]           ; encoding: [0xe8,0x0d,0x03,0x6e]
    286 ; CHECK: ins.d	v2[1], v15[0]           ; encoding: [0xe2,0x05,0x18,0x6e]
    287 ; CHECK: ins.s	v7[3], v16[2]           ; encoding: [0x07,0x46,0x1c,0x6e]
    288 ; CHECK: ins.h	v8[7], v17[3]           ; encoding: [0x28,0x36,0x1e,0x6e]
    289 ; CHECK: ins.b	v9[10], v18[5]          ; encoding: [0x49,0x2e,0x15,0x6e]
    290 
    291 
    292   and.8b  v0, v0, v0
    293   and.16b v0, v0, v0
    294 
    295 ; CHECK: and.8b  v0, v0, v0          ; encoding: [0x00,0x1c,0x20,0x0e]
    296 ; CHECK: and.16b v0, v0, v0          ; encoding: [0x00,0x1c,0x20,0x4e]
    297 
    298   bic.8b  v0, v0, v0
    299 
    300 ; CHECK: bic.8b  v0, v0, v0          ; encoding: [0x00,0x1c,0x60,0x0e]
    301 
    302   cmeq.8b v0, v0, v0
    303   cmge.8b v0, v0, v0
    304   cmgt.8b v0, v0, v0
    305   cmhi.8b v0, v0, v0
    306   cmhs.8b v0, v0, v0
    307   cmtst.8b v0, v0, v0
    308   fabd.2s v0, v0, v0
    309   facge.2s  v0, v0, v0
    310   facgt.2s  v0, v0, v0
    311   faddp.2s v0, v0, v0
    312   fadd.2s v0, v0, v0
    313   fcmeq.2s  v0, v0, v0
    314   fcmge.2s  v0, v0, v0
    315   fcmgt.2s  v0, v0, v0
    316   fdiv.2s v0, v0, v0
    317   fmaxnmp.2s v0, v0, v0
    318   fmaxnm.2s v0, v0, v0
    319   fmaxp.2s v0, v0, v0
    320   fmax.2s v0, v0, v0
    321   fminnmp.2s v0, v0, v0
    322   fminnm.2s v0, v0, v0
    323   fminp.2s v0, v0, v0
    324   fmin.2s v0, v0, v0
    325   fmla.2s v0, v0, v0
    326   fmls.2s v0, v0, v0
    327   fmulx.2s v0, v0, v0
    328   fmul.2s v0, v0, v0
    329   fmulx	d2, d3, d1
    330   fmulx	s2, s3, s1
    331   frecps.2s v0, v0, v0
    332   frsqrts.2s v0, v0, v0
    333   fsub.2s v0, v0, v0
    334   mla.8b v0, v0, v0
    335   mls.8b v0, v0, v0
    336   mul.8b v0, v0, v0
    337   pmul.8b v0, v0, v0
    338   saba.8b v0, v0, v0
    339   sabd.8b v0, v0, v0
    340   shadd.8b v0, v0, v0
    341   shsub.8b v0, v0, v0
    342   smaxp.8b v0, v0, v0
    343   smax.8b v0, v0, v0
    344   sminp.8b v0, v0, v0
    345   smin.8b v0, v0, v0
    346   sqadd.8b v0, v0, v0
    347   sqdmulh.4h v0, v0, v0
    348   sqrdmulh.4h v0, v0, v0
    349   sqrshl.8b v0, v0, v0
    350   sqshl.8b v0, v0, v0
    351   sqsub.8b v0, v0, v0
    352   srhadd.8b v0, v0, v0
    353   srshl.8b v0, v0, v0
    354   sshl.8b v0, v0, v0
    355   sub.8b v0, v0, v0
    356   uaba.8b v0, v0, v0
    357   uabd.8b v0, v0, v0
    358   uhadd.8b v0, v0, v0
    359   uhsub.8b v0, v0, v0
    360   umaxp.8b v0, v0, v0
    361   umax.8b v0, v0, v0
    362   uminp.8b v0, v0, v0
    363   umin.8b v0, v0, v0
    364   uqadd.8b v0, v0, v0
    365   uqrshl.8b v0, v0, v0
    366   uqshl.8b v0, v0, v0
    367   uqsub.8b v0, v0, v0
    368   urhadd.8b v0, v0, v0
    369   urshl.8b v0, v0, v0
    370   ushl.8b v0, v0, v0
    371 
    372 ; CHECK: cmeq.8b	v0, v0, v0              ; encoding: [0x00,0x8c,0x20,0x2e]
    373 ; CHECK: cmge.8b	v0, v0, v0              ; encoding: [0x00,0x3c,0x20,0x0e]
    374 ; CHECK: cmgt.8b	v0, v0, v0              ; encoding: [0x00,0x34,0x20,0x0e]
    375 ; CHECK: cmhi.8b	v0, v0, v0              ; encoding: [0x00,0x34,0x20,0x2e]
    376 ; CHECK: cmhs.8b	v0, v0, v0              ; encoding: [0x00,0x3c,0x20,0x2e]
    377 ; CHECK: cmtst.8b	v0, v0, v0      ; encoding: [0x00,0x8c,0x20,0x0e]
    378 ; CHECK: fabd.2s	v0, v0, v0              ; encoding: [0x00,0xd4,0xa0,0x2e]
    379 ; CHECK: facge.2s	v0, v0, v0      ; encoding: [0x00,0xec,0x20,0x2e]
    380 ; CHECK: facgt.2s	v0, v0, v0      ; encoding: [0x00,0xec,0xa0,0x2e]
    381 ; CHECK: faddp.2s	v0, v0, v0      ; encoding: [0x00,0xd4,0x20,0x2e]
    382 ; CHECK: fadd.2s	v0, v0, v0              ; encoding: [0x00,0xd4,0x20,0x0e]
    383 ; CHECK: fcmeq.2s	v0, v0, v0      ; encoding: [0x00,0xe4,0x20,0x0e]
    384 ; CHECK: fcmge.2s	v0, v0, v0      ; encoding: [0x00,0xe4,0x20,0x2e]
    385 ; CHECK: fcmgt.2s	v0, v0, v0      ; encoding: [0x00,0xe4,0xa0,0x2e]
    386 ; CHECK: fdiv.2s	v0, v0, v0              ; encoding: [0x00,0xfc,0x20,0x2e]
    387 ; CHECK: fmaxnmp.2s	v0, v0, v0      ; encoding: [0x00,0xc4,0x20,0x2e]
    388 ; CHECK: fmaxnm.2s	v0, v0, v0      ; encoding: [0x00,0xc4,0x20,0x0e]
    389 ; CHECK: fmaxp.2s	v0, v0, v0      ; encoding: [0x00,0xf4,0x20,0x2e]
    390 ; CHECK: fmax.2s	v0, v0, v0              ; encoding: [0x00,0xf4,0x20,0x0e]
    391 ; CHECK: fminnmp.2s	v0, v0, v0      ; encoding: [0x00,0xc4,0xa0,0x2e]
    392 ; CHECK: fminnm.2s	v0, v0, v0      ; encoding: [0x00,0xc4,0xa0,0x0e]
    393 ; CHECK: fminp.2s	v0, v0, v0      ; encoding: [0x00,0xf4,0xa0,0x2e]
    394 ; CHECK: fmin.2s	v0, v0, v0              ; encoding: [0x00,0xf4,0xa0,0x0e]
    395 ; CHECK: fmla.2s	v0, v0, v0              ; encoding: [0x00,0xcc,0x20,0x0e]
    396 ; CHECK: fmls.2s	v0, v0, v0              ; encoding: [0x00,0xcc,0xa0,0x0e]
    397 ; CHECK: fmulx.2s	v0, v0, v0      ; encoding: [0x00,0xdc,0x20,0x0e]
    398 
    399 ; CHECK: fmul.2s	v0, v0, v0              ; encoding: [0x00,0xdc,0x20,0x2e]
    400 ; CHECK: fmulx	d2, d3, d1              ; encoding: [0x62,0xdc,0x61,0x5e]
    401 ; CHECK: fmulx	s2, s3, s1              ; encoding: [0x62,0xdc,0x21,0x5e]
    402 ; CHECK: frecps.2s	v0, v0, v0      ; encoding: [0x00,0xfc,0x20,0x0e]
    403 ; CHECK: frsqrts.2s	v0, v0, v0      ; encoding: [0x00,0xfc,0xa0,0x0e]
    404 ; CHECK: fsub.2s	v0, v0, v0              ; encoding: [0x00,0xd4,0xa0,0x0e]
    405 ; CHECK: mla.8b	v0, v0, v0              ; encoding: [0x00,0x94,0x20,0x0e]
    406 ; CHECK: mls.8b	v0, v0, v0              ; encoding: [0x00,0x94,0x20,0x2e]
    407 ; CHECK: mul.8b	v0, v0, v0              ; encoding: [0x00,0x9c,0x20,0x0e]
    408 ; CHECK: pmul.8b	v0, v0, v0              ; encoding: [0x00,0x9c,0x20,0x2e]
    409 ; CHECK: saba.8b	v0, v0, v0              ; encoding: [0x00,0x7c,0x20,0x0e]
    410 ; CHECK: sabd.8b	v0, v0, v0              ; encoding: [0x00,0x74,0x20,0x0e]
    411 ; CHECK: shadd.8b	v0, v0, v0      ; encoding: [0x00,0x04,0x20,0x0e]
    412 ; CHECK: shsub.8b	v0, v0, v0      ; encoding: [0x00,0x24,0x20,0x0e]
    413 ; CHECK: smaxp.8b	v0, v0, v0      ; encoding: [0x00,0xa4,0x20,0x0e]
    414 ; CHECK: smax.8b	v0, v0, v0              ; encoding: [0x00,0x64,0x20,0x0e]
    415 ; CHECK: sminp.8b	v0, v0, v0      ; encoding: [0x00,0xac,0x20,0x0e]
    416 ; CHECK: smin.8b	v0, v0, v0              ; encoding: [0x00,0x6c,0x20,0x0e]
    417 ; CHECK: sqadd.8b	v0, v0, v0      ; encoding: [0x00,0x0c,0x20,0x0e]
    418 ; CHECK: sqdmulh.4h v0, v0, v0 ; encoding: [0x00,0xb4,0x60,0x0e]
    419 ; CHECK: sqrdmulh.4h v0, v0, v0 ; encoding: [0x00,0xb4,0x60,0x2e]
    420 ; CHECK: sqrshl.8b	v0, v0, v0      ; encoding: [0x00,0x5c,0x20,0x0e]
    421 ; CHECK: sqshl.8b	v0, v0, v0      ; encoding: [0x00,0x4c,0x20,0x0e]
    422 ; CHECK: sqsub.8b	v0, v0, v0      ; encoding: [0x00,0x2c,0x20,0x0e]
    423 ; CHECK: srhadd.8b	v0, v0, v0      ; encoding: [0x00,0x14,0x20,0x0e]
    424 ; CHECK: srshl.8b	v0, v0, v0      ; encoding: [0x00,0x54,0x20,0x0e]
    425 ; CHECK: sshl.8b	v0, v0, v0              ; encoding: [0x00,0x44,0x20,0x0e]
    426 ; CHECK: sub.8b	v0, v0, v0              ; encoding: [0x00,0x84,0x20,0x2e]
    427 ; CHECK: uaba.8b	v0, v0, v0              ; encoding: [0x00,0x7c,0x20,0x2e]
    428 ; CHECK: uabd.8b	v0, v0, v0              ; encoding: [0x00,0x74,0x20,0x2e]
    429 ; CHECK: uhadd.8b	v0, v0, v0      ; encoding: [0x00,0x04,0x20,0x2e]
    430 ; CHECK: uhsub.8b	v0, v0, v0      ; encoding: [0x00,0x24,0x20,0x2e]
    431 ; CHECK: umaxp.8b	v0, v0, v0      ; encoding: [0x00,0xa4,0x20,0x2e]
    432 ; CHECK: umax.8b	v0, v0, v0              ; encoding: [0x00,0x64,0x20,0x2e]
    433 ; CHECK: uminp.8b	v0, v0, v0      ; encoding: [0x00,0xac,0x20,0x2e]
    434 ; CHECK: umin.8b	v0, v0, v0              ; encoding: [0x00,0x6c,0x20,0x2e]
    435 ; CHECK: uqadd.8b	v0, v0, v0      ; encoding: [0x00,0x0c,0x20,0x2e]
    436 ; CHECK: uqrshl.8b	v0, v0, v0      ; encoding: [0x00,0x5c,0x20,0x2e]
    437 ; CHECK: uqshl.8b	v0, v0, v0      ; encoding: [0x00,0x4c,0x20,0x2e]
    438 ; CHECK: uqsub.8b	v0, v0, v0      ; encoding: [0x00,0x2c,0x20,0x2e]
    439 ; CHECK: urhadd.8b	v0, v0, v0      ; encoding: [0x00,0x14,0x20,0x2e]
    440 ; CHECK: urshl.8b	v0, v0, v0      ; encoding: [0x00,0x54,0x20,0x2e]
    441 ; CHECK: ushl.8b	v0, v0, v0              ; encoding: [0x00,0x44,0x20,0x2e]
    442 
    443   fabd.4h v0, v0, v0
    444   facge.4h  v0, v0, v0
    445   facgt.4h  v0, v0, v0
    446   faddp.4h v0, v0, v0
    447   fadd.4h v0, v0, v0
    448   fcmeq.4h  v0, v0, v0
    449   fcmge.4h  v0, v0, v0
    450   fcmgt.4h  v0, v0, v0
    451   fdiv.4h v0, v0, v0
    452   fmaxnmp.4h v0, v0, v0
    453   fmaxnm.4h v0, v0, v0
    454   fmaxp.4h v0, v0, v0
    455   fmax.4h v0, v0, v0
    456   fminnmp.4h v0, v0, v0
    457   fminnm.4h v0, v0, v0
    458   fminp.4h v0, v0, v0
    459   fmin.4h v0, v0, v0
    460   fmla.4h v0, v0, v0
    461   fmls.4h v0, v0, v0
    462   fmulx.4h v0, v0, v0
    463   fmul.4h v0, v0, v0
    464   frecps.4h v0, v0, v0
    465   frsqrts.4h v0, v0, v0
    466   fsub.4h v0, v0, v0
    467 
    468 ; CHECK: fabd.4h    v0, v0, v0     ; encoding: [0x00,0x14,0xc0,0x2e]
    469 ; CHECK: facge.4h   v0, v0, v0     ; encoding: [0x00,0x2c,0x40,0x2e]
    470 ; CHECK: facgt.4h   v0, v0, v0     ; encoding: [0x00,0x2c,0xc0,0x2e]
    471 ; CHECK: faddp.4h   v0, v0, v0     ; encoding: [0x00,0x14,0x40,0x2e]
    472 ; CHECK: fadd.4h    v0, v0, v0     ; encoding: [0x00,0x14,0x40,0x0e]
    473 ; CHECK: fcmeq.4h   v0, v0, v0     ; encoding: [0x00,0x24,0x40,0x0e]
    474 ; CHECK: fcmge.4h   v0, v0, v0     ; encoding: [0x00,0x24,0x40,0x2e]
    475 ; CHECK: fcmgt.4h   v0, v0, v0     ; encoding: [0x00,0x24,0xc0,0x2e]
    476 ; CHECK: fdiv.4h    v0, v0, v0     ; encoding: [0x00,0x3c,0x40,0x2e]
    477 ; CHECK: fmaxnmp.4h v0, v0, v0     ; encoding: [0x00,0x04,0x40,0x2e]
    478 ; CHECK: fmaxnm.4h  v0, v0, v0     ; encoding: [0x00,0x04,0x40,0x0e]
    479 ; CHECK: fmaxp.4h   v0, v0, v0     ; encoding: [0x00,0x34,0x40,0x2e]
    480 ; CHECK: fmax.4h    v0, v0, v0     ; encoding: [0x00,0x34,0x40,0x0e]
    481 ; CHECK: fminnmp.4h v0, v0, v0     ; encoding: [0x00,0x04,0xc0,0x2e]
    482 ; CHECK: fminnm.4h  v0, v0, v0     ; encoding: [0x00,0x04,0xc0,0x0e]
    483 ; CHECK: fminp.4h   v0, v0, v0     ; encoding: [0x00,0x34,0xc0,0x2e]
    484 ; CHECK: fmin.4h    v0, v0, v0     ; encoding: [0x00,0x34,0xc0,0x0e]
    485 ; CHECK: fmla.4h    v0, v0, v0     ; encoding: [0x00,0x0c,0x40,0x0e]
    486 ; CHECK: fmls.4h    v0, v0, v0     ; encoding: [0x00,0x0c,0xc0,0x0e]
    487 ; CHECK: fmulx.4h   v0, v0, v0     ; encoding: [0x00,0x1c,0x40,0x0e]
    488 ; CHECK: fmul.4h    v0, v0, v0     ; encoding: [0x00,0x1c,0x40,0x2e]
    489 ; CHECK: frecps.4h  v0, v0, v0     ; encoding: [0x00,0x3c,0x40,0x0e]
    490 ; CHECK: frsqrts.4h v0, v0, v0     ; encoding: [0x00,0x3c,0xc0,0x0e]
    491 ; CHECK: fsub.4h    v0, v0, v0     ; encoding: [0x00,0x14,0xc0,0x0e]
    492 
    493   fabd.8h v0, v0, v0
    494   facge.8h  v0, v0, v0
    495   facgt.8h  v0, v0, v0
    496   faddp.8h v0, v0, v0
    497   fadd.8h v0, v0, v0
    498   fcmeq.8h  v0, v0, v0
    499   fcmge.8h  v0, v0, v0
    500   fcmgt.8h  v0, v0, v0
    501   fdiv.8h v0, v0, v0
    502   fmaxnmp.8h v0, v0, v0
    503   fmaxnm.8h v0, v0, v0
    504   fmaxp.8h v0, v0, v0
    505   fmax.8h v0, v0, v0
    506   fminnmp.8h v0, v0, v0
    507   fminnm.8h v0, v0, v0
    508   fminp.8h v0, v0, v0
    509   fmin.8h v0, v0, v0
    510   fmla.8h v0, v0, v0
    511   fmls.8h v0, v0, v0
    512   fmulx.8h v0, v0, v0
    513   fmul.8h v0, v0, v0
    514   frecps.8h v0, v0, v0
    515   frsqrts.8h v0, v0, v0
    516   fsub.8h v0, v0, v0
    517 
    518 ; CHECK: fabd.8h v0, v0, v0              ; encoding: [0x00,0x14,0xc0,0x6e]
    519 ; CHECK: facge.8h        v0, v0, v0      ; encoding: [0x00,0x2c,0x40,0x6e]
    520 ; CHECK: facgt.8h        v0, v0, v0      ; encoding: [0x00,0x2c,0xc0,0x6e]
    521 ; CHECK: faddp.8h        v0, v0, v0      ; encoding: [0x00,0x14,0x40,0x6e]
    522 ; CHECK: fadd.8h v0, v0, v0              ; encoding: [0x00,0x14,0x40,0x4e]
    523 ; CHECK: fcmeq.8h        v0, v0, v0      ; encoding: [0x00,0x24,0x40,0x4e]
    524 ; CHECK: fcmge.8h        v0, v0, v0      ; encoding: [0x00,0x24,0x40,0x6e]
    525 ; CHECK: fcmgt.8h        v0, v0, v0      ; encoding: [0x00,0x24,0xc0,0x6e]
    526 ; CHECK: fdiv.8h v0, v0, v0              ; encoding: [0x00,0x3c,0x40,0x6e]
    527 ; CHECK: fmaxnmp.8h      v0, v0, v0      ; encoding: [0x00,0x04,0x40,0x6e]
    528 ; CHECK: fmaxnm.8h       v0, v0, v0      ; encoding: [0x00,0x04,0x40,0x4e]
    529 ; CHECK: fmaxp.8h        v0, v0, v0      ; encoding: [0x00,0x34,0x40,0x6e]
    530 ; CHECK: fmax.8h v0, v0, v0              ; encoding: [0x00,0x34,0x40,0x4e]
    531 ; CHECK: fminnmp.8h      v0, v0, v0      ; encoding: [0x00,0x04,0xc0,0x6e]
    532 ; CHECK: fminnm.8h       v0, v0, v0      ; encoding: [0x00,0x04,0xc0,0x4e]
    533 ; CHECK: fminp.8h        v0, v0, v0      ; encoding: [0x00,0x34,0xc0,0x6e]
    534 ; CHECK: fmin.8h v0, v0, v0              ; encoding: [0x00,0x34,0xc0,0x4e]
    535 ; CHECK: fmla.8h v0, v0, v0              ; encoding: [0x00,0x0c,0x40,0x4e]
    536 ; CHECK: fmls.8h v0, v0, v0              ; encoding: [0x00,0x0c,0xc0,0x4e]
    537 ; CHECK: fmulx.8h        v0, v0, v0      ; encoding: [0x00,0x1c,0x40,0x4e]
    538 ; CHECK: fmul.8h v0, v0, v0              ; encoding: [0x00,0x1c,0x40,0x6e]
    539 ; CHECK: frecps.8h       v0, v0, v0      ; encoding: [0x00,0x3c,0x40,0x4e]
    540 ; CHECK: frsqrts.8h      v0, v0, v0      ; encoding: [0x00,0x3c,0xc0,0x4e]
    541 ; CHECK: fsub.8h v0, v0, v0              ; encoding: [0x00,0x14,0xc0,0x4e]
    542 
    543   bif.8b v0, v0, v0
    544   bit.8b v0, v0, v0
    545   bsl.8b v0, v0, v0
    546   eor.8b v0, v0, v0
    547   orn.8b v0, v0, v0
    548   orr.8b v0, v0, v1
    549 
    550 ; CHECK: bif.8b	v0, v0, v0              ; encoding: [0x00,0x1c,0xe0,0x2e]
    551 ; CHECK: bit.8b	v0, v0, v0              ; encoding: [0x00,0x1c,0xa0,0x2e]
    552 ; CHECK: bsl.8b	v0, v0, v0              ; encoding: [0x00,0x1c,0x60,0x2e]
    553 ; CHECK: eor.8b	v0, v0, v0              ; encoding: [0x00,0x1c,0x20,0x2e]
    554 ; CHECK: orn.8b	v0, v0, v0              ; encoding: [0x00,0x1c,0xe0,0x0e]
    555 ; CHECK: orr.8b v0, v0, v1              ; encoding: [0x00,0x1c,0xa1,0x0e]
    556 
    557   sadalp.4h   v0, v0
    558   sadalp.8h  v0, v0
    559   sadalp.2s   v0, v0
    560   sadalp.4s   v0, v0
    561   sadalp.1d   v0, v0
    562   sadalp.2d   v0, v0
    563 
    564 ; CHECK: sadalp.4h	v0, v0          ; encoding: [0x00,0x68,0x20,0x0e]
    565 ; CHECK: sadalp.8h	v0, v0          ; encoding: [0x00,0x68,0x20,0x4e]
    566 ; CHECK: sadalp.2s	v0, v0          ; encoding: [0x00,0x68,0x60,0x0e]
    567 ; CHECK: sadalp.4s	v0, v0          ; encoding: [0x00,0x68,0x60,0x4e]
    568 ; CHECK: sadalp.1d	v0, v0          ; encoding: [0x00,0x68,0xa0,0x0e]
    569 ; CHECK: sadalp.2d	v0, v0          ; encoding: [0x00,0x68,0xa0,0x4e]
    570 
    571   cls.8b      v0, v0
    572   clz.8b      v0, v0
    573   cnt.8b      v0, v0
    574   fabs.2s     v0, v0
    575   fneg.2s     v0, v0
    576   frecpe.2s   v0, v0
    577   frinta.2s   v0, v0
    578   frintx.2s   v0, v0
    579   frinti.2s   v0, v0
    580   frintm.2s   v0, v0
    581   frintn.2s   v0, v0
    582   frintp.2s   v0, v0
    583   frintz.2s   v0, v0
    584   frsqrte.2s  v0, v0
    585   fsqrt.2s    v0, v0
    586   neg.8b      v0, v0
    587   not.8b      v0, v0
    588   rbit.8b     v0, v0
    589   rev16.8b    v0, v0
    590   rev32.8b    v0, v0
    591   rev64.8b    v0, v0
    592   sadalp.4h   v0, v0
    593   saddlp.4h	  v0, v0
    594   scvtf.2s    v0, v0
    595   sqabs.8b    v0, v0
    596   sqneg.8b    v0, v0
    597   sqxtn.8b    v0, v0
    598   sqxtun.8b   v0, v0
    599   suqadd.8b   v0, v0
    600   uadalp.4h   v0, v0
    601   uaddlp.4h   v0, v0
    602   ucvtf.2s    v0, v0
    603   uqxtn.8b    v0, v0
    604   urecpe.2s   v0, v0
    605   ursqrte.2s  v0, v0
    606   usqadd.8b   v0, v0
    607   xtn.8b      v0, v0
    608   shll.8h v1, v2, #8
    609   shll.4s v3, v4, #16
    610   shll.2d v5, v6, #32
    611   shll2.8h v7, v8, #8
    612   shll2.4s v9, v10, #16
    613   shll2.2d v11, v12, #32
    614   shll v1.8h, v2.8b, #8
    615   shll v1.4s, v2.4h, #16
    616   shll v1.2d, v2.2s, #32
    617   shll2 v1.8h, v2.16b, #8
    618   shll2 v1.4s, v2.8h, #16
    619   shll2 v1.2d, v2.4s, #32
    620 
    621 ; CHECK: cls.8b	v0, v0                  ; encoding: [0x00,0x48,0x20,0x0e]
    622 ; CHECK: clz.8b	v0, v0                  ; encoding: [0x00,0x48,0x20,0x2e]
    623 ; CHECK: cnt.8b	v0, v0                  ; encoding: [0x00,0x58,0x20,0x0e]
    624 ; CHECK: fabs.2s	v0, v0                  ; encoding: [0x00,0xf8,0xa0,0x0e]
    625 ; CHECK: fneg.2s	v0, v0                  ; encoding: [0x00,0xf8,0xa0,0x2e]
    626 ; CHECK: frecpe.2s	v0, v0          ; encoding: [0x00,0xd8,0xa1,0x0e]
    627 ; CHECK: frinta.2s	v0, v0          ; encoding: [0x00,0x88,0x21,0x2e]
    628 ; CHECK: frintx.2s	v0, v0          ; encoding: [0x00,0x98,0x21,0x2e]
    629 ; CHECK: frinti.2s	v0, v0          ; encoding: [0x00,0x98,0xa1,0x2e]
    630 ; CHECK: frintm.2s	v0, v0          ; encoding: [0x00,0x98,0x21,0x0e]
    631 ; CHECK: frintn.2s	v0, v0          ; encoding: [0x00,0x88,0x21,0x0e]
    632 ; CHECK: frintp.2s	v0, v0          ; encoding: [0x00,0x88,0xa1,0x0e]
    633 ; CHECK: frintz.2s	v0, v0          ; encoding: [0x00,0x98,0xa1,0x0e]
    634 ; CHECK: frsqrte.2s	v0, v0          ; encoding: [0x00,0xd8,0xa1,0x2e]
    635 ; CHECK: fsqrt.2s	v0, v0          ; encoding: [0x00,0xf8,0xa1,0x2e]
    636 ; CHECK: neg.8b	v0, v0                  ; encoding: [0x00,0xb8,0x20,0x2e]
    637 ; CHECK: mvn.8b	v0, v0                  ; encoding: [0x00,0x58,0x20,0x2e]
    638 ; CHECK: rbit.8b	v0, v0                  ; encoding: [0x00,0x58,0x60,0x2e]
    639 ; CHECK: rev16.8b	v0, v0          ; encoding: [0x00,0x18,0x20,0x0e]
    640 ; CHECK: rev32.8b	v0, v0          ; encoding: [0x00,0x08,0x20,0x2e]
    641 ; CHECK: rev64.8b	v0, v0          ; encoding: [0x00,0x08,0x20,0x0e]
    642 ; CHECK: sadalp.4h	v0, v0          ; encoding: [0x00,0x68,0x20,0x0e]
    643 ; CHECK: saddlp.4h	v0, v0          ; encoding: [0x00,0x28,0x20,0x0e]
    644 ; CHECK: scvtf.2s	v0, v0          ; encoding: [0x00,0xd8,0x21,0x0e]
    645 ; CHECK: sqabs.8b	v0, v0          ; encoding: [0x00,0x78,0x20,0x0e]
    646 ; CHECK: sqneg.8b	v0, v0          ; encoding: [0x00,0x78,0x20,0x2e]
    647 ; CHECK: sqxtn.8b	v0, v0          ; encoding: [0x00,0x48,0x21,0x0e]
    648 ; CHECK: sqxtun.8b	v0, v0          ; encoding: [0x00,0x28,0x21,0x2e]
    649 ; CHECK: suqadd.8b	v0, v0          ; encoding: [0x00,0x38,0x20,0x0e]
    650 ; CHECK: uadalp.4h	v0, v0          ; encoding: [0x00,0x68,0x20,0x2e]
    651 ; CHECK: uaddlp.4h	v0, v0          ; encoding: [0x00,0x28,0x20,0x2e]
    652 ; CHECK: ucvtf.2s	v0, v0          ; encoding: [0x00,0xd8,0x21,0x2e]
    653 ; CHECK: uqxtn.8b	v0, v0          ; encoding: [0x00,0x48,0x21,0x2e]
    654 ; CHECK: urecpe.2s	v0, v0          ; encoding: [0x00,0xc8,0xa1,0x0e]
    655 ; CHECK: ursqrte.2s	v0, v0          ; encoding: [0x00,0xc8,0xa1,0x2e]
    656 ; CHECK: usqadd.8b	v0, v0          ; encoding: [0x00,0x38,0x20,0x2e]
    657 ; CHECK: xtn.8b	v0, v0                  ; encoding: [0x00,0x28,0x21,0x0e]
    658 ; CHECK: shll.8h	v1, v2, #8      ; encoding: [0x41,0x38,0x21,0x2e]
    659 ; CHECK: shll.4s	v3, v4, #16     ; encoding: [0x83,0x38,0x61,0x2e]
    660 ; CHECK: shll.2d	v5, v6, #32     ; encoding: [0xc5,0x38,0xa1,0x2e]
    661 ; CHECK: shll2.8h	v7, v8, #8      ; encoding: [0x07,0x39,0x21,0x6e]
    662 ; CHECK: shll2.4s	v9, v10, #16    ; encoding: [0x49,0x39,0x61,0x6e]
    663 ; CHECK: shll2.2d	v11, v12, #32   ; encoding: [0x8b,0x39,0xa1,0x6e]
    664 ; CHECK: shll.8h	v1, v2, #8      ; encoding: [0x41,0x38,0x21,0x2e]
    665 ; CHECK: shll.4s	v1, v2, #16     ; encoding: [0x41,0x38,0x61,0x2e]
    666 ; CHECK: shll.2d	v1, v2, #32     ; encoding: [0x41,0x38,0xa1,0x2e]
    667 ; CHECK: shll2.8h	v1, v2, #8      ; encoding: [0x41,0x38,0x21,0x6e]
    668 ; CHECK: shll2.4s	v1, v2, #16     ; encoding: [0x41,0x38,0x61,0x6e]
    669 ; CHECK: shll2.2d	v1, v2, #32     ; encoding: [0x41,0x38,0xa1,0x6e]
    670 
    671   fabs.4h     v0, v0
    672   fneg.4h     v0, v0
    673   frecpe.4h   v0, v0
    674   frinta.4h   v0, v0
    675   frintx.4h   v0, v0
    676   frinti.4h   v0, v0
    677   frintm.4h   v0, v0
    678   frintn.4h   v0, v0
    679   frintp.4h   v0, v0
    680   frintz.4h   v0, v0
    681   frsqrte.4h  v0, v0
    682   fsqrt.4h    v0, v0
    683 
    684 ; CHECK: fabs.4h v0, v0                  ; encoding: [0x00,0xf8,0xf8,0x0e]
    685 ; CHECK: fneg.4h v0, v0                  ; encoding: [0x00,0xf8,0xf8,0x2e]
    686 ; CHECK: frecpe.4h       v0, v0          ; encoding: [0x00,0xd8,0xf9,0x0e]
    687 ; CHECK: frinta.4h       v0, v0          ; encoding: [0x00,0x88,0x79,0x2e]
    688 ; CHECK: frintx.4h       v0, v0          ; encoding: [0x00,0x98,0x79,0x2e]
    689 ; CHECK: frinti.4h       v0, v0          ; encoding: [0x00,0x98,0xf9,0x2e]
    690 ; CHECK: frintm.4h       v0, v0          ; encoding: [0x00,0x98,0x79,0x0e]
    691 ; CHECK: frintn.4h       v0, v0          ; encoding: [0x00,0x88,0x79,0x0e]
    692 ; CHECK: frintp.4h       v0, v0          ; encoding: [0x00,0x88,0xf9,0x0e]
    693 ; CHECK: frintz.4h       v0, v0          ; encoding: [0x00,0x98,0xf9,0x0e]
    694 ; CHECK: frsqrte.4h      v0, v0          ; encoding: [0x00,0xd8,0xf9,0x2e]
    695 ; CHECK: fsqrt.4h        v0, v0          ; encoding: [0x00,0xf8,0xf9,0x2e]
    696 
    697   fabs.8h     v0, v0
    698   fneg.8h     v0, v0
    699   frecpe.8h   v0, v0
    700   frinta.8h   v0, v0
    701   frintx.8h   v0, v0
    702   frinti.8h   v0, v0
    703   frintm.8h   v0, v0
    704   frintn.8h   v0, v0
    705   frintp.8h   v0, v0
    706   frintz.8h   v0, v0
    707   frsqrte.8h  v0, v0
    708   fsqrt.8h    v0, v0
    709 
    710 ; CHECK: fabs.8h v0, v0                  ; encoding: [0x00,0xf8,0xf8,0x4e]
    711 ; CHECK: fneg.8h v0, v0                  ; encoding: [0x00,0xf8,0xf8,0x6e]
    712 ; CHECK: frecpe.8h       v0, v0          ; encoding: [0x00,0xd8,0xf9,0x4e]
    713 ; CHECK: frinta.8h       v0, v0          ; encoding: [0x00,0x88,0x79,0x6e]
    714 ; CHECK: frintx.8h       v0, v0          ; encoding: [0x00,0x98,0x79,0x6e]
    715 ; CHECK: frinti.8h       v0, v0          ; encoding: [0x00,0x98,0xf9,0x6e]
    716 ; CHECK: frintm.8h       v0, v0          ; encoding: [0x00,0x98,0x79,0x4e]
    717 ; CHECK: frintn.8h       v0, v0          ; encoding: [0x00,0x88,0x79,0x4e]
    718 ; CHECK: frintp.8h       v0, v0          ; encoding: [0x00,0x88,0xf9,0x4e]
    719 ; CHECK: frintz.8h       v0, v0          ; encoding: [0x00,0x98,0xf9,0x4e]
    720 ; CHECK: frsqrte.8h      v0, v0          ; encoding: [0x00,0xd8,0xf9,0x6e]
    721 ; CHECK: fsqrt.8h        v0, v0          ; encoding: [0x00,0xf8,0xf9,0x6e]
    722 
    723   cmeq.8b   v0, v0, #0
    724   cmeq.16b  v0, v0, #0
    725   cmeq.4h   v0, v0, #0
    726   cmeq.8h   v0, v0, #0
    727   cmeq.2s   v0, v0, #0
    728   cmeq.4s   v0, v0, #0
    729   cmeq.2d   v0, v0, #0
    730 
    731 ; CHECK: cmeq.8b	v0, v0, #0              ; encoding: [0x00,0x98,0x20,0x0e]
    732 ; CHECK: cmeq.16b	v0, v0, #0      ; encoding: [0x00,0x98,0x20,0x4e]
    733 ; CHECK: cmeq.4h	v0, v0, #0              ; encoding: [0x00,0x98,0x60,0x0e]
    734 ; CHECK: cmeq.8h	v0, v0, #0              ; encoding: [0x00,0x98,0x60,0x4e]
    735 ; CHECK: cmeq.2s	v0, v0, #0              ; encoding: [0x00,0x98,0xa0,0x0e]
    736 ; CHECK: cmeq.4s	v0, v0, #0              ; encoding: [0x00,0x98,0xa0,0x4e]
    737 ; CHECK: cmeq.2d	v0, v0, #0              ; encoding: [0x00,0x98,0xe0,0x4e]
    738 
    739   cmge.8b   v0, v0, #0
    740   cmgt.8b   v0, v0, #0
    741   cmle.8b   v0, v0, #0
    742   cmlt.8b   v0, v0, #0
    743   fcmeq.2s  v0, v0, #0
    744   fcmge.2s  v0, v0, #0
    745   fcmgt.2s  v0, v0, #0
    746   fcmle.2s  v0, v0, #0
    747   fcmlt.2s  v0, v0, #0
    748 
    749 ; ARM verbose mode aliases
    750   cmlt v8.8b, v14.8b, #0
    751   cmlt v8.16b, v14.16b, #0
    752   cmlt v8.4h, v14.4h, #0
    753   cmlt v8.8h, v14.8h, #0
    754   cmlt v8.2s, v14.2s, #0
    755   cmlt v8.4s, v14.4s, #0
    756   cmlt v8.2d, v14.2d, #0
    757 
    758 ; CHECK: cmge.8b	v0, v0, #0              ; encoding: [0x00,0x88,0x20,0x2e]
    759 ; CHECK: cmgt.8b	v0, v0, #0              ; encoding: [0x00,0x88,0x20,0x0e]
    760 ; CHECK: cmle.8b	v0, v0, #0              ; encoding: [0x00,0x98,0x20,0x2e]
    761 ; CHECK: cmlt.8b	v0, v0, #0              ; encoding: [0x00,0xa8,0x20,0x0e]
    762 ; CHECK: fcmeq.2s	v0, v0, #0.0      ; encoding: [0x00,0xd8,0xa0,0x0e]
    763 ; CHECK: fcmge.2s	v0, v0, #0.0      ; encoding: [0x00,0xc8,0xa0,0x2e]
    764 ; CHECK: fcmgt.2s	v0, v0, #0.0      ; encoding: [0x00,0xc8,0xa0,0x0e]
    765 ; CHECK: fcmle.2s	v0, v0, #0.0      ; encoding: [0x00,0xd8,0xa0,0x2e]
    766 ; CHECK: fcmlt.2s	v0, v0, #0.0      ; encoding: [0x00,0xe8,0xa0,0x0e]
    767 ; CHECK: cmlt.8b	v8, v14, #0             ; encoding: [0xc8,0xa9,0x20,0x0e]
    768 ; CHECK: cmlt.16b	v8, v14, #0     ; encoding: [0xc8,0xa9,0x20,0x4e]
    769 ; CHECK: cmlt.4h	v8, v14, #0             ; encoding: [0xc8,0xa9,0x60,0x0e]
    770 ; CHECK: cmlt.8h	v8, v14, #0             ; encoding: [0xc8,0xa9,0x60,0x4e]
    771 ; CHECK: cmlt.2s	v8, v14, #0             ; encoding: [0xc8,0xa9,0xa0,0x0e]
    772 ; CHECK: cmlt.4s	v8, v14, #0             ; encoding: [0xc8,0xa9,0xa0,0x4e]
    773 ; CHECK: cmlt.2d	v8, v14, #0             ; encoding: [0xc8,0xa9,0xe0,0x4e]
    774 
    775 
    776 ;===-------------------------------------------------------------------------===
    777 ; AdvSIMD Floating-point <-> Integer Conversions
    778 ;===-------------------------------------------------------------------------===
    779 
    780   fcvtas.2s   v0, v0
    781   fcvtas.4s   v0, v0
    782   fcvtas.2d   v0, v0
    783   fcvtas      s0, s0
    784   fcvtas      d0, d0
    785 
    786 ; CHECK: fcvtas.2s  v0, v0           ; encoding: [0x00,0xc8,0x21,0x0e]
    787 ; CHECK: fcvtas.4s  v0, v0           ; encoding: [0x00,0xc8,0x21,0x4e]
    788 ; CHECK: fcvtas.2d  v0, v0           ; encoding: [0x00,0xc8,0x61,0x4e]
    789 ; CHECK: fcvtas     s0, s0           ; encoding: [0x00,0xc8,0x21,0x5e]
    790 ; CHECK: fcvtas     d0, d0           ; encoding: [0x00,0xc8,0x61,0x5e]
    791 
    792   fcvtau.2s   v0, v0
    793   fcvtau.4s   v0, v0
    794   fcvtau.2d   v0, v0
    795   fcvtau      s0, s0
    796   fcvtau      d0, d0
    797 
    798 ; CHECK: fcvtau.2s  v0, v0           ; encoding: [0x00,0xc8,0x21,0x2e]
    799 ; CHECK: fcvtau.4s  v0, v0           ; encoding: [0x00,0xc8,0x21,0x6e]
    800 ; CHECK: fcvtau.2d  v0, v0           ; encoding: [0x00,0xc8,0x61,0x6e]
    801 ; CHECK: fcvtau     s0, s0           ; encoding: [0x00,0xc8,0x21,0x7e]
    802 ; CHECK: fcvtau     d0, d0           ; encoding: [0x00,0xc8,0x61,0x7e]
    803 
    804   fcvtl   v1.4s, v5.4h
    805   fcvtl   v2.2d, v6.2s
    806   fcvtl2  v3.4s, v7.8h
    807   fcvtl2  v4.2d, v8.4s
    808 
    809 ; CHECK: fcvtl	v1.4s, v5.4h            ; encoding: [0xa1,0x78,0x21,0x0e]
    810 ; CHECK: fcvtl	v2.2d, v6.2s            ; encoding: [0xc2,0x78,0x61,0x0e]
    811 ; CHECK: fcvtl2	v3.4s, v7.8h            ; encoding: [0xe3,0x78,0x21,0x4e]
    812 ; CHECK: fcvtl2	v4.2d, v8.4s            ; encoding: [0x04,0x79,0x61,0x4e]
    813 
    814   fcvtms.2s  v0, v0
    815   fcvtms.4s  v0, v0
    816   fcvtms.2d  v0, v0
    817   fcvtms     s0, s0
    818   fcvtms     d0, d0
    819 
    820 ; CHECK: fcvtms.2s v0, v0            ; encoding: [0x00,0xb8,0x21,0x0e]
    821 ; CHECK: fcvtms.4s v0, v0            ; encoding: [0x00,0xb8,0x21,0x4e]
    822 ; CHECK: fcvtms.2d v0, v0            ; encoding: [0x00,0xb8,0x61,0x4e]
    823 ; CHECK: fcvtms    s0, s0            ; encoding: [0x00,0xb8,0x21,0x5e]
    824 ; CHECK: fcvtms    d0, d0            ; encoding: [0x00,0xb8,0x61,0x5e]
    825 
    826   fcvtmu.2s   v0, v0
    827   fcvtmu.4s   v0, v0
    828   fcvtmu.2d   v0, v0
    829   fcvtmu      s0, s0
    830   fcvtmu      d0, d0
    831 
    832 ; CHECK: fcvtmu.2s v0, v0            ; encoding: [0x00,0xb8,0x21,0x2e]
    833 ; CHECK: fcvtmu.4s v0, v0            ; encoding: [0x00,0xb8,0x21,0x6e]
    834 ; CHECK: fcvtmu.2d v0, v0            ; encoding: [0x00,0xb8,0x61,0x6e]
    835 ; CHECK: fcvtmu    s0, s0            ; encoding: [0x00,0xb8,0x21,0x7e]
    836 ; CHECK: fcvtmu    d0, d0            ; encoding: [0x00,0xb8,0x61,0x7e]
    837 
    838   fcvtns.2s   v0, v0
    839   fcvtns.4s   v0, v0
    840   fcvtns.2d   v0, v0
    841   fcvtns      s0, s0
    842   fcvtns      d0, d0
    843 
    844 ; CHECK: fcvtns.2s v0, v0            ; encoding: [0x00,0xa8,0x21,0x0e]
    845 ; CHECK: fcvtns.4s v0, v0            ; encoding: [0x00,0xa8,0x21,0x4e]
    846 ; CHECK: fcvtns.2d v0, v0            ; encoding: [0x00,0xa8,0x61,0x4e]
    847 ; CHECK: fcvtns    s0, s0            ; encoding: [0x00,0xa8,0x21,0x5e]
    848 ; CHECK: fcvtns    d0, d0            ; encoding: [0x00,0xa8,0x61,0x5e]
    849 
    850   fcvtnu.2s   v0, v0
    851   fcvtnu.4s   v0, v0
    852   fcvtnu.2d   v0, v0
    853   fcvtnu      s0, s0
    854   fcvtnu      d0, d0
    855 
    856 ; CHECK: fcvtnu.2s v0, v0            ; encoding: [0x00,0xa8,0x21,0x2e]
    857 ; CHECK: fcvtnu.4s v0, v0            ; encoding: [0x00,0xa8,0x21,0x6e]
    858 ; CHECK: fcvtnu.2d v0, v0            ; encoding: [0x00,0xa8,0x61,0x6e]
    859 ; CHECK: fcvtnu    s0, s0            ; encoding: [0x00,0xa8,0x21,0x7e]
    860 ; CHECK: fcvtnu    d0, d0            ; encoding: [0x00,0xa8,0x61,0x7e]
    861 
    862   fcvtn   v2.4h, v4.4s
    863   fcvtn   v3.2s, v5.2d
    864   fcvtn2  v4.8h, v6.4s
    865   fcvtn2  v5.4s, v7.2d
    866   fcvtxn  v6.2s, v9.2d
    867   fcvtxn2 v7.4s, v8.2d
    868 
    869 ; CHECK: fcvtn	v2.4h, v4.4s            ; encoding: [0x82,0x68,0x21,0x0e]
    870 ; CHECK: fcvtn	v3.2s, v5.2d            ; encoding: [0xa3,0x68,0x61,0x0e]
    871 ; CHECK: fcvtn2	v4.8h, v6.4s            ; encoding: [0xc4,0x68,0x21,0x4e]
    872 ; CHECK: fcvtn2	v5.4s, v7.2d            ; encoding: [0xe5,0x68,0x61,0x4e]
    873 ; CHECK: fcvtxn	v6.2s, v9.2d            ; encoding: [0x26,0x69,0x61,0x2e]
    874 ; CHECK: fcvtxn2 v7.4s, v8.2d           ; encoding: [0x07,0x69,0x61,0x6e]
    875 
    876   fcvtps.2s  v0, v0
    877   fcvtps.4s  v0, v0
    878   fcvtps.2d  v0, v0
    879   fcvtps     s0, s0
    880   fcvtps     d0, d0
    881 
    882 ; CHECK: fcvtps.2s v0, v0            ; encoding: [0x00,0xa8,0xa1,0x0e]
    883 ; CHECK: fcvtps.4s v0, v0            ; encoding: [0x00,0xa8,0xa1,0x4e]
    884 ; CHECK: fcvtps.2d v0, v0            ; encoding: [0x00,0xa8,0xe1,0x4e]
    885 ; CHECK: fcvtps    s0, s0            ; encoding: [0x00,0xa8,0xa1,0x5e]
    886 ; CHECK: fcvtps    d0, d0            ; encoding: [0x00,0xa8,0xe1,0x5e]
    887 
    888   fcvtpu.2s  v0, v0
    889   fcvtpu.4s  v0, v0
    890   fcvtpu.2d  v0, v0
    891   fcvtpu     s0, s0
    892   fcvtpu     d0, d0
    893 
    894 ; CHECK: fcvtpu.2s v0, v0            ; encoding: [0x00,0xa8,0xa1,0x2e]
    895 ; CHECK: fcvtpu.4s v0, v0            ; encoding: [0x00,0xa8,0xa1,0x6e]
    896 ; CHECK: fcvtpu.2d v0, v0            ; encoding: [0x00,0xa8,0xe1,0x6e]
    897 ; CHECK: fcvtpu    s0, s0            ; encoding: [0x00,0xa8,0xa1,0x7e]
    898 ; CHECK: fcvtpu    d0, d0            ; encoding: [0x00,0xa8,0xe1,0x7e]
    899 
    900   fcvtzs.2s  v0, v0
    901   fcvtzs.4s  v0, v0
    902   fcvtzs.2d  v0, v0
    903   fcvtzs     s0, s0
    904   fcvtzs     d0, d0
    905 
    906 ; CHECK: fcvtzs.2s v0, v0            ; encoding: [0x00,0xb8,0xa1,0x0e]
    907 ; CHECK: fcvtzs.4s v0, v0            ; encoding: [0x00,0xb8,0xa1,0x4e]
    908 ; CHECK: fcvtzs.2d v0, v0            ; encoding: [0x00,0xb8,0xe1,0x4e]
    909 ; CHECK: fcvtzs    s0, s0            ; encoding: [0x00,0xb8,0xa1,0x5e]
    910 ; CHECK: fcvtzs    d0, d0            ; encoding: [0x00,0xb8,0xe1,0x5e]
    911 
    912   fcvtzu.2s  v0, v0
    913   fcvtzu.4s  v0, v0
    914   fcvtzu.2d  v0, v0
    915   fcvtzu     s0, s0
    916   fcvtzu     d0, d0
    917 
    918 ; CHECK: fcvtzu.2s v0, v0            ; encoding: [0x00,0xb8,0xa1,0x2e]
    919 ; CHECK: fcvtzu.4s v0, v0            ; encoding: [0x00,0xb8,0xa1,0x6e]
    920 ; CHECK: fcvtzu.2d v0, v0            ; encoding: [0x00,0xb8,0xe1,0x6e]
    921 ; CHECK: fcvtzu    s0, s0            ; encoding: [0x00,0xb8,0xa1,0x7e]
    922 ; CHECK: fcvtzu    d0, d0            ; encoding: [0x00,0xb8,0xe1,0x7e]
    923 
    924 ;===-------------------------------------------------------------------------===
    925 ; AdvSIMD modified immediate instructions
    926 ;===-------------------------------------------------------------------------===
    927 
    928   bic.2s  v0, #1
    929   bic.2s  v0, #1, lsl #0
    930   bic.2s  v0, #1, lsl #8
    931   bic.2s  v0, #1, lsl #16
    932   bic.2s  v0, #1, lsl #24
    933 
    934 ; CHECK: bic.2s v0, #1               ; encoding: [0x20,0x14,0x00,0x2f]
    935 ; CHECK: bic.2s v0, #1               ; encoding: [0x20,0x14,0x00,0x2f]
    936 ; CHECK: bic.2s v0, #1, lsl #8       ; encoding: [0x20,0x34,0x00,0x2f]
    937 ; CHECK: bic.2s v0, #1, lsl #16      ; encoding: [0x20,0x54,0x00,0x2f]
    938 ; CHECK: bic.2s v0, #1, lsl #24      ; encoding: [0x20,0x74,0x00,0x2f]
    939 
    940   bic.4h  v0, #1
    941   bic.4h  v0, #1, lsl #0
    942   bic.4h  v0, #1, lsl #8
    943 
    944 ; CHECK: bic.4h v0, #1               ; encoding: [0x20,0x94,0x00,0x2f]
    945 ; CHECK: bic.4h v0, #1               ; encoding: [0x20,0x94,0x00,0x2f]
    946 ; CHECK: bic.4h v0, #1, lsl #8       ; encoding: [0x20,0xb4,0x00,0x2f]
    947 
    948   bic.4s  v0, #1
    949   bic.4s  v0, #1, lsl #0
    950   bic.4s  v0, #1, lsl #8
    951   bic.4s  v0, #1, lsl #16
    952   bic.4s  v0, #1, lsl #24
    953 
    954 ; CHECK: bic.4s v0, #1               ; encoding: [0x20,0x14,0x00,0x6f]
    955 ; CHECK: bic.4s v0, #1               ; encoding: [0x20,0x14,0x00,0x6f]
    956 ; CHECK: bic.4s v0, #1, lsl #8       ; encoding: [0x20,0x34,0x00,0x6f]
    957 ; CHECK: bic.4s v0, #1, lsl #16      ; encoding: [0x20,0x54,0x00,0x6f]
    958 ; CHECK: bic.4s v0, #1, lsl #24      ; encoding: [0x20,0x74,0x00,0x6f]
    959 
    960   bic.8h  v0, #1
    961   bic.8h  v0, #1, lsl #0
    962   bic.8h  v0, #1, lsl #8
    963 
    964 ; CHECK: bic.8h v0, #1               ; encoding: [0x20,0x94,0x00,0x6f]
    965 ; CHECK: bic.8h v0, #1               ; encoding: [0x20,0x94,0x00,0x6f]
    966 ; CHECK: bic.8h v0, #1, lsl #8       ; encoding: [0x20,0xb4,0x00,0x6f]
    967 
    968   fmov.2d v0, #1.250000e-01
    969 
    970 ; CHECK: fmov.2d v0, #0.12500000             ; encoding: [0x00,0xf4,0x02,0x6f]
    971 
    972   fmov.2s v0, #1.250000e-01
    973   fmov.4s v0, #1.250000e-01
    974 
    975 ; CHECK: fmov.2s v0, #0.12500000             ; encoding: [0x00,0xf4,0x02,0x0f]
    976 ; CHECK: fmov.4s v0, #0.12500000             ; encoding: [0x00,0xf4,0x02,0x4f]
    977 
    978   orr.2s  v0, #1
    979   orr.2s  v0, #1, lsl #0
    980   orr.2s  v0, #1, lsl #8
    981   orr.2s  v0, #1, lsl #16
    982   orr.2s  v0, #1, lsl #24
    983 
    984 ; CHECK: orr.2s v0, #1               ; encoding: [0x20,0x14,0x00,0x0f]
    985 ; CHECK: orr.2s v0, #1               ; encoding: [0x20,0x14,0x00,0x0f]
    986 ; CHECK: orr.2s v0, #1, lsl #8       ; encoding: [0x20,0x34,0x00,0x0f]
    987 ; CHECK: orr.2s v0, #1, lsl #16      ; encoding: [0x20,0x54,0x00,0x0f]
    988 ; CHECK: orr.2s v0, #1, lsl #24      ; encoding: [0x20,0x74,0x00,0x0f]
    989 
    990   orr.4h  v0, #1
    991   orr.4h  v0, #1, lsl #0
    992   orr.4h  v0, #1, lsl #8
    993 
    994 ; CHECK: orr.4h v0, #1               ; encoding: [0x20,0x94,0x00,0x0f]
    995 ; CHECK: orr.4h v0, #1               ; encoding: [0x20,0x94,0x00,0x0f]
    996 ; CHECK: orr.4h v0, #1, lsl #8       ; encoding: [0x20,0xb4,0x00,0x0f]
    997 
    998   orr.4s  v0, #1
    999   orr.4s  v0, #1, lsl #0
   1000   orr.4s  v0, #1, lsl #8
   1001   orr.4s  v0, #1, lsl #16
   1002   orr.4s  v0, #1, lsl #24
   1003 
   1004 ; CHECK: orr.4s v0, #1               ; encoding: [0x20,0x14,0x00,0x4f]
   1005 ; CHECK: orr.4s v0, #1               ; encoding: [0x20,0x14,0x00,0x4f]
   1006 ; CHECK: orr.4s v0, #1, lsl #8       ; encoding: [0x20,0x34,0x00,0x4f]
   1007 ; CHECK: orr.4s v0, #1, lsl #16      ; encoding: [0x20,0x54,0x00,0x4f]
   1008 ; CHECK: orr.4s v0, #1, lsl #24      ; encoding: [0x20,0x74,0x00,0x4f]
   1009 
   1010   orr.8h  v0, #1
   1011   orr.8h  v0, #1, lsl #0
   1012   orr.8h  v0, #1, lsl #8
   1013 
   1014 ; CHECK: orr.8h v0, #1               ; encoding: [0x20,0x94,0x00,0x4f]
   1015 ; CHECK: orr.8h v0, #1               ; encoding: [0x20,0x94,0x00,0x4f]
   1016 ; CHECK: orr.8h v0, #1, lsl #8       ; encoding: [0x20,0xb4,0x00,0x4f]
   1017 
   1018   movi     d0, #0x000000000000ff
   1019   movi.2d  v0, #0x000000000000ff
   1020 
   1021 ; CHECK: movi     d0, #0x000000000000ff ; encoding: [0x20,0xe4,0x00,0x2f]
   1022 ; CHECK: movi.2d  v0, #0x000000000000ff ; encoding: [0x20,0xe4,0x00,0x6f]
   1023 
   1024   movi.2s v0, #1
   1025   movi.2s v0, #1, lsl #0
   1026   movi.2s v0, #1, lsl #8
   1027   movi.2s v0, #1, lsl #16
   1028   movi.2s v0, #1, lsl #24
   1029 
   1030 ; CHECK: movi.2s v0, #1              ; encoding: [0x20,0x04,0x00,0x0f]
   1031 ; CHECK: movi.2s v0, #1              ; encoding: [0x20,0x04,0x00,0x0f]
   1032 ; CHECK: movi.2s v0, #1, lsl #8      ; encoding: [0x20,0x24,0x00,0x0f]
   1033 ; CHECK: movi.2s v0, #1, lsl #16     ; encoding: [0x20,0x44,0x00,0x0f]
   1034 ; CHECK: movi.2s v0, #1, lsl #24     ; encoding: [0x20,0x64,0x00,0x0f]
   1035 
   1036   movi.4s v0, #1
   1037   movi.4s v0, #1, lsl #0
   1038   movi.4s v0, #1, lsl #8
   1039   movi.4s v0, #1, lsl #16
   1040   movi.4s v0, #1, lsl #24
   1041 
   1042 ; CHECK: movi.4s v0, #1              ; encoding: [0x20,0x04,0x00,0x4f]
   1043 ; CHECK: movi.4s v0, #1              ; encoding: [0x20,0x04,0x00,0x4f]
   1044 ; CHECK: movi.4s v0, #1, lsl #8      ; encoding: [0x20,0x24,0x00,0x4f]
   1045 ; CHECK: movi.4s v0, #1, lsl #16     ; encoding: [0x20,0x44,0x00,0x4f]
   1046 ; CHECK: movi.4s v0, #1, lsl #24     ; encoding: [0x20,0x64,0x00,0x4f]
   1047 
   1048   movi.4h v0, #1
   1049   movi.4h v0, #1, lsl #0
   1050   movi.4h v0, #1, lsl #8
   1051 
   1052 ; CHECK: movi.4h v0, #1              ; encoding: [0x20,0x84,0x00,0x0f]
   1053 ; CHECK: movi.4h v0, #1              ; encoding: [0x20,0x84,0x00,0x0f]
   1054 ; CHECK: movi.4h v0, #1, lsl #8      ; encoding: [0x20,0xa4,0x00,0x0f]
   1055 
   1056   movi.8h v0, #1
   1057   movi.8h v0, #1, lsl #0
   1058   movi.8h v0, #1, lsl #8
   1059 
   1060 ; CHECK: movi.8h v0, #1              ; encoding: [0x20,0x84,0x00,0x4f]
   1061 ; CHECK: movi.8h v0, #1              ; encoding: [0x20,0x84,0x00,0x4f]
   1062 ; CHECK: movi.8h v0, #1, lsl #8      ; encoding: [0x20,0xa4,0x00,0x4f]
   1063 
   1064   movi.2s v0, #1, msl #8
   1065   movi.2s v0, #1, msl #16
   1066   movi.4s v0, #1, msl #8
   1067   movi.4s v0, #1, msl #16
   1068 
   1069 ; CHECK: movi.2s v0, #1, msl #8      ; encoding: [0x20,0xc4,0x00,0x0f]
   1070 ; CHECK: movi.2s v0, #1, msl #16     ; encoding: [0x20,0xd4,0x00,0x0f]
   1071 ; CHECK: movi.4s v0, #1, msl #8      ; encoding: [0x20,0xc4,0x00,0x4f]
   1072 ; CHECK: movi.4s v0, #1, msl #16     ; encoding: [0x20,0xd4,0x00,0x4f]
   1073 
   1074   movi.8b  v0, #1
   1075   movi.16b v0, #1
   1076 
   1077 ; CHECK: movi.8b  v0, #1             ; encoding: [0x20,0xe4,0x00,0x0f]
   1078 ; CHECK: movi.16b v0, #1             ; encoding: [0x20,0xe4,0x00,0x4f]
   1079 
   1080   mvni.2s v0, #1
   1081   mvni.2s v0, #1, lsl #0
   1082   mvni.2s v0, #1, lsl #8
   1083   mvni.2s v0, #1, lsl #16
   1084   mvni.2s v0, #1, lsl #24
   1085 
   1086 ; CHECK: mvni.2s v0, #1              ; encoding: [0x20,0x04,0x00,0x2f]
   1087 ; CHECK: mvni.2s v0, #1              ; encoding: [0x20,0x04,0x00,0x2f]
   1088 ; CHECK: mvni.2s v0, #1, lsl #8      ; encoding: [0x20,0x24,0x00,0x2f]
   1089 ; CHECK: mvni.2s v0, #1, lsl #16     ; encoding: [0x20,0x44,0x00,0x2f]
   1090 ; CHECK: mvni.2s v0, #1, lsl #24     ; encoding: [0x20,0x64,0x00,0x2f]
   1091 
   1092   mvni.4s v0, #1
   1093   mvni.4s v0, #1, lsl #0
   1094   mvni.4s v0, #1, lsl #8
   1095   mvni.4s v0, #1, lsl #16
   1096   mvni.4s v0, #1, lsl #24
   1097 
   1098 ; CHECK: mvni.4s v0, #1              ; encoding: [0x20,0x04,0x00,0x6f]
   1099 ; CHECK: mvni.4s v0, #1              ; encoding: [0x20,0x04,0x00,0x6f]
   1100 ; CHECK: mvni.4s v0, #1, lsl #8      ; encoding: [0x20,0x24,0x00,0x6f]
   1101 ; CHECK: mvni.4s v0, #1, lsl #16     ; encoding: [0x20,0x44,0x00,0x6f]
   1102 ; CHECK: mvni.4s v0, #1, lsl #24     ; encoding: [0x20,0x64,0x00,0x6f]
   1103 
   1104   mvni.4h v0, #1
   1105   mvni.4h v0, #1, lsl #0
   1106   mvni.4h v0, #1, lsl #8
   1107 
   1108 ; CHECK: mvni.4h v0, #1              ; encoding: [0x20,0x84,0x00,0x2f]
   1109 ; CHECK: mvni.4h v0, #1              ; encoding: [0x20,0x84,0x00,0x2f]
   1110 ; CHECK: mvni.4h v0, #1, lsl #8      ; encoding: [0x20,0xa4,0x00,0x2f]
   1111 
   1112   mvni.8h v0, #1
   1113   mvni.8h v0, #1, lsl #0
   1114   mvni.8h v0, #1, lsl #8
   1115 
   1116 ; CHECK: mvni.8h v0, #1              ; encoding: [0x20,0x84,0x00,0x6f]
   1117 ; CHECK: mvni.8h v0, #1              ; encoding: [0x20,0x84,0x00,0x6f]
   1118 ; CHECK: mvni.8h v0, #1, lsl #8      ; encoding: [0x20,0xa4,0x00,0x6f]
   1119 
   1120   mvni.2s v0, #1, msl #8
   1121   mvni.2s v0, #1, msl #16
   1122   mvni.4s v0, #1, msl #8
   1123   mvni.4s v0, #1, msl #16
   1124 
   1125 ; CHECK: mvni.2s v0, #1, msl #8      ; encoding: [0x20,0xc4,0x00,0x2f]
   1126 ; CHECK: mvni.2s v0, #1, msl #16     ; encoding: [0x20,0xd4,0x00,0x2f]
   1127 ; CHECK: mvni.4s v0, #1, msl #8      ; encoding: [0x20,0xc4,0x00,0x6f]
   1128 ; CHECK: mvni.4s v0, #1, msl #16     ; encoding: [0x20,0xd4,0x00,0x6f]
   1129 
   1130 ;===-------------------------------------------------------------------------===
   1131 ; AdvSIMD scalar x index
   1132 ;===-------------------------------------------------------------------------===
   1133 
   1134   fmla.s  s0, s0, v0[3]
   1135   fmla.d  d0, d0, v0[1]
   1136   fmls.s  s0, s0, v0[3]
   1137   fmls.d  d0, d0, v0[1]
   1138   fmulx.s s0, s0, v0[3]
   1139   fmulx.d d0, d0, v0[1]
   1140   fmul.s  s0, s0, v0[3]
   1141   fmul.d  d0, d0, v0[1]
   1142   sqdmlal.h s0, h0, v0[7]
   1143   sqdmlal.s d0, s0, v0[3]
   1144   sqdmlsl.h s0, h0, v0[7]
   1145   sqdmulh.h h0, h0, v0[7]
   1146   sqdmulh.s s0, s0, v0[3]
   1147   sqdmull.h s0, h0, v0[7]
   1148   sqdmull.s d0, s0, v0[3]
   1149   sqrdmulh.h  h0, h0, v0[7]
   1150   sqrdmulh.s  s0, s0, v0[3]
   1151 
   1152 ; CHECK: fmla.s	s0, s0, v0[3]           ; encoding: [0x00,0x18,0xa0,0x5f]
   1153 ; CHECK: fmla.d	d0, d0, v0[1]           ; encoding: [0x00,0x18,0xc0,0x5f]
   1154 ; CHECK: fmls.s	s0, s0, v0[3]           ; encoding: [0x00,0x58,0xa0,0x5f]
   1155 ; CHECK: fmls.d	d0, d0, v0[1]           ; encoding: [0x00,0x58,0xc0,0x5f]
   1156 ; CHECK: fmulx.s	s0, s0, v0[3]           ; encoding: [0x00,0x98,0xa0,0x7f]
   1157 ; CHECK: fmulx.d	d0, d0, v0[1]           ; encoding: [0x00,0x98,0xc0,0x7f]
   1158 ; CHECK: fmul.s	s0, s0, v0[3]           ; encoding: [0x00,0x98,0xa0,0x5f]
   1159 ; CHECK: fmul.d	d0, d0, v0[1]           ; encoding: [0x00,0x98,0xc0,0x5f]
   1160 ; CHECK: sqdmlal.h	s0, h0, v0[7]   ; encoding: [0x00,0x38,0x70,0x5f]
   1161 ; CHECK: sqdmlal.s	d0, s0, v0[3]   ; encoding: [0x00,0x38,0xa0,0x5f]
   1162 ; CHECK: sqdmlsl.h	s0, h0, v0[7]   ; encoding: [0x00,0x78,0x70,0x5f]
   1163 ; CHECK: sqdmulh.h	h0, h0, v0[7]   ; encoding: [0x00,0xc8,0x70,0x5f]
   1164 ; CHECK: sqdmulh.s	s0, s0, v0[3]   ; encoding: [0x00,0xc8,0xa0,0x5f]
   1165 ; CHECK: sqdmull.h	s0, h0, v0[7]   ; encoding: [0x00,0xb8,0x70,0x5f]
   1166 ; CHECK: sqdmull.s	d0, s0, v0[3]   ; encoding: [0x00,0xb8,0xa0,0x5f]
   1167 ; CHECK: sqrdmulh.h	h0, h0, v0[7]   ; encoding: [0x00,0xd8,0x70,0x5f]
   1168 ; CHECK: sqrdmulh.s	s0, s0, v0[3]   ; encoding: [0x00,0xd8,0xa0,0x5f]
   1169 
   1170 ;===-------------------------------------------------------------------------===
   1171 ; AdvSIMD SMLAL
   1172 ;===-------------------------------------------------------------------------===
   1173         smlal.8h v1, v2, v3
   1174         smlal.4s v1, v2, v3
   1175         smlal.2d v1, v2, v3
   1176         smlal2.8h v1, v2, v3
   1177         smlal2.4s v1, v2, v3
   1178         smlal2.2d v1, v2, v3
   1179 
   1180         smlal v13.8h, v8.8b, v0.8b
   1181         smlal v13.4s, v8.4h, v0.4h
   1182         smlal v13.2d, v8.2s, v0.2s
   1183         smlal2 v13.8h, v8.16b, v0.16b
   1184         smlal2 v13.4s, v8.8h, v0.8h
   1185         smlal2 v13.2d, v8.4s, v0.4s
   1186 
   1187 ; CHECK: smlal.8h	v1, v2, v3      ; encoding: [0x41,0x80,0x23,0x0e]
   1188 ; CHECK: smlal.4s	v1, v2, v3      ; encoding: [0x41,0x80,0x63,0x0e]
   1189 ; CHECK: smlal.2d	v1, v2, v3      ; encoding: [0x41,0x80,0xa3,0x0e]
   1190 ; CHECK: smlal2.8h	v1, v2, v3      ; encoding: [0x41,0x80,0x23,0x4e]
   1191 ; CHECK: smlal2.4s	v1, v2, v3      ; encoding: [0x41,0x80,0x63,0x4e]
   1192 ; CHECK: smlal2.2d	v1, v2, v3      ; encoding: [0x41,0x80,0xa3,0x4e]
   1193 ; CHECK: smlal.8h	v13, v8, v0     ; encoding: [0x0d,0x81,0x20,0x0e]
   1194 ; CHECK: smlal.4s	v13, v8, v0     ; encoding: [0x0d,0x81,0x60,0x0e]
   1195 ; CHECK: smlal.2d	v13, v8, v0     ; encoding: [0x0d,0x81,0xa0,0x0e]
   1196 ; CHECK: smlal2.8h	v13, v8, v0     ; encoding: [0x0d,0x81,0x20,0x4e]
   1197 ; CHECK: smlal2.4s	v13, v8, v0     ; encoding: [0x0d,0x81,0x60,0x4e]
   1198 ; CHECK: smlal2.2d	v13, v8, v0     ; encoding: [0x0d,0x81,0xa0,0x4e]
   1199 
   1200 
   1201 ;===-------------------------------------------------------------------------===
   1202 ; AdvSIMD scalar x index
   1203 ;===-------------------------------------------------------------------------===
   1204 
   1205   fmla.2s v0, v0, v0[0]
   1206   fmla.4s v0, v0, v0[1]
   1207   fmla.2d v0, v0, v0[1]
   1208   fmls.2s v0, v0, v0[0]
   1209   fmls.4s v0, v0, v0[1]
   1210   fmls.2d v0, v0, v0[1]
   1211   fmulx.2s  v0, v0, v0[0]
   1212   fmulx.4s  v0, v0, v0[1]
   1213   fmulx.2d  v0, v0, v0[1]
   1214   fmul.2s v0, v0, v0[0]
   1215   fmul.4s v0, v0, v0[1]
   1216   fmul.2d v0, v0, v0[1]
   1217   mla.4h  v0, v0, v0[0]
   1218   mla.8h  v0, v0, v0[1]
   1219   mla.2s  v0, v0, v0[2]
   1220   mla.4s  v0, v0, v0[3]
   1221   mls.4h  v0, v0, v0[0]
   1222   mls.8h  v0, v0, v0[1]
   1223   mls.2s  v0, v0, v0[2]
   1224   mls.4s  v0, v0, v0[3]
   1225   mul.4h  v0, v0, v0[0]
   1226   mul.8h  v0, v0, v0[1]
   1227   mul.2s  v0, v0, v0[2]
   1228   mul.4s  v0, v0, v0[3]
   1229   smlal.4s  v0, v0, v0[0]
   1230   smlal2.4s v0, v0, v0[1]
   1231   smlal.2d  v0, v0, v0[2]
   1232   smlal2.2d v0, v0, v0[3]
   1233   smlsl.4s  v0, v0, v0[0]
   1234   smlsl2.4s v0, v0, v0[1]
   1235   smlsl.2d  v0, v0, v0[2]
   1236   smlsl2.2d v0, v0, v0[3]
   1237   smull.4s  v0, v0, v0[0]
   1238   smull2.4s v0, v0, v0[1]
   1239   smull.2d  v0, v0, v0[2]
   1240   smull2.2d v0, v0, v0[3]
   1241   sqdmlal.4s  v0, v0, v0[0]
   1242   sqdmlal2.4s v0, v0, v0[1]
   1243   sqdmlal.2d  v0, v0, v0[2]
   1244   sqdmlal2.2d v0, v0, v0[3]
   1245   sqdmlsl.4s  v0, v0, v0[0]
   1246   sqdmlsl2.4s v0, v0, v0[1]
   1247   sqdmlsl.2d  v0, v0, v0[2]
   1248   sqdmlsl2.2d v0, v0, v0[3]
   1249   sqdmulh.4h  v0, v0, v0[0]
   1250   sqdmulh.8h  v0, v0, v0[1]
   1251   sqdmulh.2s  v0, v0, v0[2]
   1252   sqdmulh.4s  v0, v0, v0[3]
   1253   sqdmull.4s  v0, v0, v0[0]
   1254   sqdmull2.4s v0, v0, v0[1]
   1255   sqdmull.2d  v0, v0, v0[2]
   1256   sqdmull2.2d v0, v0, v0[3]
   1257   sqrdmulh.4h v0, v0, v0[0]
   1258   sqrdmulh.8h v0, v0, v0[1]
   1259   sqrdmulh.2s v0, v0, v0[2]
   1260   sqrdmulh.4s v0, v0, v0[3]
   1261   umlal.4s  v0, v0, v0[0]
   1262   umlal2.4s v0, v0, v0[1]
   1263   umlal.2d  v0, v0, v0[2]
   1264   umlal2.2d v0, v0, v0[3]
   1265   umlsl.4s  v0, v0, v0[0]
   1266   umlsl2.4s v0, v0, v0[1]
   1267   umlsl.2d  v0, v0, v0[2]
   1268   umlsl2.2d v0, v0, v0[3]
   1269   umull.4s  v0, v0, v0[0]
   1270   umull2.4s v0, v0, v0[1]
   1271   umull.2d  v0, v0, v0[2]
   1272   umull2.2d v0, v0, v0[3]
   1273 
   1274 ; CHECK: fmla.2s	v0, v0, v0[0]           ; encoding: [0x00,0x10,0x80,0x0f]
   1275 ; CHECK: fmla.4s	v0, v0, v0[1]           ; encoding: [0x00,0x10,0xa0,0x4f]
   1276 ; CHECK: fmla.2d	v0, v0, v0[1]           ; encoding: [0x00,0x18,0xc0,0x4f]
   1277 ; CHECK: fmls.2s	v0, v0, v0[0]           ; encoding: [0x00,0x50,0x80,0x0f]
   1278 ; CHECK: fmls.4s	v0, v0, v0[1]           ; encoding: [0x00,0x50,0xa0,0x4f]
   1279 ; CHECK: fmls.2d	v0, v0, v0[1]           ; encoding: [0x00,0x58,0xc0,0x4f]
   1280 ; CHECK: fmulx.2s	v0, v0, v0[0]   ; encoding: [0x00,0x90,0x80,0x2f]
   1281 ; CHECK: fmulx.4s	v0, v0, v0[1]   ; encoding: [0x00,0x90,0xa0,0x6f]
   1282 ; CHECK: fmulx.2d	v0, v0, v0[1]   ; encoding: [0x00,0x98,0xc0,0x6f]
   1283 ; CHECK: fmul.2s	v0, v0, v0[0]           ; encoding: [0x00,0x90,0x80,0x0f]
   1284 ; CHECK: fmul.4s	v0, v0, v0[1]           ; encoding: [0x00,0x90,0xa0,0x4f]
   1285 ; CHECK: fmul.2d	v0, v0, v0[1]           ; encoding: [0x00,0x98,0xc0,0x4f]
   1286 ; CHECK: mla.4h	v0, v0, v0[0]           ; encoding: [0x00,0x00,0x40,0x2f]
   1287 ; CHECK: mla.8h	v0, v0, v0[1]           ; encoding: [0x00,0x00,0x50,0x6f]
   1288 ; CHECK: mla.2s	v0, v0, v0[2]           ; encoding: [0x00,0x08,0x80,0x2f]
   1289 ; CHECK: mla.4s	v0, v0, v0[3]           ; encoding: [0x00,0x08,0xa0,0x6f]
   1290 ; CHECK: mls.4h	v0, v0, v0[0]           ; encoding: [0x00,0x40,0x40,0x2f]
   1291 ; CHECK: mls.8h	v0, v0, v0[1]           ; encoding: [0x00,0x40,0x50,0x6f]
   1292 ; CHECK: mls.2s	v0, v0, v0[2]           ; encoding: [0x00,0x48,0x80,0x2f]
   1293 ; CHECK: mls.4s	v0, v0, v0[3]           ; encoding: [0x00,0x48,0xa0,0x6f]
   1294 ; CHECK: mul.4h	v0, v0, v0[0]           ; encoding: [0x00,0x80,0x40,0x0f]
   1295 ; CHECK: mul.8h	v0, v0, v0[1]           ; encoding: [0x00,0x80,0x50,0x4f]
   1296 ; CHECK: mul.2s	v0, v0, v0[2]           ; encoding: [0x00,0x88,0x80,0x0f]
   1297 ; CHECK: mul.4s	v0, v0, v0[3]           ; encoding: [0x00,0x88,0xa0,0x4f]
   1298 ; CHECK: smlal.4s	v0, v0, v0[0]   ; encoding: [0x00,0x20,0x40,0x0f]
   1299 ; CHECK: smlal2.4s	v0, v0, v0[1]   ; encoding: [0x00,0x20,0x50,0x4f]
   1300 ; CHECK: smlal.2d	v0, v0, v0[2]   ; encoding: [0x00,0x28,0x80,0x0f]
   1301 ; CHECK: smlal2.2d	v0, v0, v0[3]   ; encoding: [0x00,0x28,0xa0,0x4f]
   1302 ; CHECK: smlsl.4s	v0, v0, v0[0]   ; encoding: [0x00,0x60,0x40,0x0f]
   1303 ; CHECK: smlsl2.4s	v0, v0, v0[1]   ; encoding: [0x00,0x60,0x50,0x4f]
   1304 ; CHECK: smlsl.2d	v0, v0, v0[2]   ; encoding: [0x00,0x68,0x80,0x0f]
   1305 ; CHECK: smlsl2.2d	v0, v0, v0[3]   ; encoding: [0x00,0x68,0xa0,0x4f]
   1306 ; CHECK: smull.4s	v0, v0, v0[0]   ; encoding: [0x00,0xa0,0x40,0x0f]
   1307 ; CHECK: smull2.4s	v0, v0, v0[1]   ; encoding: [0x00,0xa0,0x50,0x4f]
   1308 ; CHECK: smull.2d	v0, v0, v0[2]   ; encoding: [0x00,0xa8,0x80,0x0f]
   1309 ; CHECK: smull2.2d	v0, v0, v0[3]   ; encoding: [0x00,0xa8,0xa0,0x4f]
   1310 ; CHECK: sqdmlal.4s	v0, v0, v0[0]   ; encoding: [0x00,0x30,0x40,0x0f]
   1311 ; CHECK: sqdmlal2.4s	v0, v0, v0[1]   ; encoding: [0x00,0x30,0x50,0x4f]
   1312 ; CHECK: sqdmlal.2d	v0, v0, v0[2]   ; encoding: [0x00,0x38,0x80,0x0f]
   1313 ; CHECK: sqdmlal2.2d	v0, v0, v0[3]   ; encoding: [0x00,0x38,0xa0,0x4f]
   1314 ; CHECK: sqdmlsl.4s	v0, v0, v0[0]   ; encoding: [0x00,0x70,0x40,0x0f]
   1315 ; CHECK: sqdmlsl2.4s	v0, v0, v0[1]   ; encoding: [0x00,0x70,0x50,0x4f]
   1316 ; CHECK: sqdmlsl.2d	v0, v0, v0[2]   ; encoding: [0x00,0x78,0x80,0x0f]
   1317 ; CHECK: sqdmlsl2.2d	v0, v0, v0[3]   ; encoding: [0x00,0x78,0xa0,0x4f]
   1318 ; CHECK: sqdmulh.4h	v0, v0, v0[0]   ; encoding: [0x00,0xc0,0x40,0x0f]
   1319 ; CHECK: sqdmulh.8h	v0, v0, v0[1]   ; encoding: [0x00,0xc0,0x50,0x4f]
   1320 ; CHECK: sqdmulh.2s	v0, v0, v0[2]   ; encoding: [0x00,0xc8,0x80,0x0f]
   1321 ; CHECK: sqdmulh.4s	v0, v0, v0[3]   ; encoding: [0x00,0xc8,0xa0,0x4f]
   1322 ; CHECK: sqdmull.4s	v0, v0, v0[0]   ; encoding: [0x00,0xb0,0x40,0x0f]
   1323 ; CHECK: sqdmull2.4s	v0, v0, v0[1]   ; encoding: [0x00,0xb0,0x50,0x4f]
   1324 ; CHECK: sqdmull.2d	v0, v0, v0[2]   ; encoding: [0x00,0xb8,0x80,0x0f]
   1325 ; CHECK: sqdmull2.2d	v0, v0, v0[3]   ; encoding: [0x00,0xb8,0xa0,0x4f]
   1326 ; CHECK: sqrdmulh.4h	v0, v0, v0[0]   ; encoding: [0x00,0xd0,0x40,0x0f]
   1327 ; CHECK: sqrdmulh.8h	v0, v0, v0[1]   ; encoding: [0x00,0xd0,0x50,0x4f]
   1328 ; CHECK: sqrdmulh.2s	v0, v0, v0[2]   ; encoding: [0x00,0xd8,0x80,0x0f]
   1329 ; CHECK: sqrdmulh.4s	v0, v0, v0[3]   ; encoding: [0x00,0xd8,0xa0,0x4f]
   1330 ; CHECK: umlal.4s	v0, v0, v0[0]   ; encoding: [0x00,0x20,0x40,0x2f]
   1331 ; CHECK: umlal2.4s	v0, v0, v0[1]   ; encoding: [0x00,0x20,0x50,0x6f]
   1332 ; CHECK: umlal.2d	v0, v0, v0[2]   ; encoding: [0x00,0x28,0x80,0x2f]
   1333 ; CHECK: umlal2.2d	v0, v0, v0[3]   ; encoding: [0x00,0x28,0xa0,0x6f]
   1334 ; CHECK: umlsl.4s	v0, v0, v0[0]   ; encoding: [0x00,0x60,0x40,0x2f]
   1335 ; CHECK: umlsl2.4s	v0, v0, v0[1]   ; encoding: [0x00,0x60,0x50,0x6f]
   1336 ; CHECK: umlsl.2d	v0, v0, v0[2]   ; encoding: [0x00,0x68,0x80,0x2f]
   1337 ; CHECK: umlsl2.2d	v0, v0, v0[3]   ; encoding: [0x00,0x68,0xa0,0x6f]
   1338 ; CHECK: umull.4s	v0, v0, v0[0]   ; encoding: [0x00,0xa0,0x40,0x2f]
   1339 ; CHECK: umull2.4s	v0, v0, v0[1]   ; encoding: [0x00,0xa0,0x50,0x6f]
   1340 ; CHECK: umull.2d	v0, v0, v0[2]   ; encoding: [0x00,0xa8,0x80,0x2f]
   1341 ; CHECK: umull2.2d	v0, v0, v0[3]   ; encoding: [0x00,0xa8,0xa0,0x6f]
   1342 
   1343 
   1344 ;===-------------------------------------------------------------------------===
   1345 ; AdvSIMD scalar with shift
   1346 ;===-------------------------------------------------------------------------===
   1347 
   1348   fcvtzs s0, s0, #1
   1349   fcvtzs d0, d0, #2
   1350   fcvtzu s0, s0, #1
   1351   fcvtzu d0, d0, #2
   1352   shl    d0, d0, #1
   1353   sli    d0, d0, #1
   1354   sqrshrn b0, h0, #1
   1355   sqrshrn h0, s0, #2
   1356   sqrshrn s0, d0, #3
   1357   sqrshrun b0, h0, #1
   1358   sqrshrun h0, s0, #2
   1359   sqrshrun s0, d0, #3
   1360   sqshlu  b0, b0, #1
   1361   sqshlu  h0, h0, #2
   1362   sqshlu  s0, s0, #3
   1363   sqshlu  d0, d0, #4
   1364   sqshl   b0, b0, #1
   1365   sqshl   h0, h0, #2
   1366   sqshl   s0, s0, #3
   1367   sqshl   d0, d0, #4
   1368   sqshrn  b0, h0, #1
   1369   sqshrn  h0, s0, #2
   1370   sqshrn  s0, d0, #3
   1371   sqshrun b0, h0, #1
   1372   sqshrun h0, s0, #2
   1373   sqshrun s0, d0, #3
   1374   sri     d0, d0, #1
   1375   srshr   d0, d0, #1
   1376   srsra   d0, d0, #1
   1377   sshr    d0, d0, #1
   1378   ucvtf   s0, s0, #1
   1379   ucvtf   d0, d0, #2
   1380   scvtf   s0, s0, #1
   1381   scvtf   d0, d0, #2
   1382   uqrshrn b0, h0, #1
   1383   uqrshrn h0, s0, #2
   1384   uqrshrn s0, d0, #3
   1385   uqshl   b0, b0, #1
   1386   uqshl   h0, h0, #2
   1387   uqshl   s0, s0, #3
   1388   uqshl   d0, d0, #4
   1389   uqshrn  b0, h0, #1
   1390   uqshrn  h0, s0, #2
   1391   uqshrn  s0, d0, #3
   1392   urshr   d0, d0, #1
   1393   ursra   d0, d0, #1
   1394   ushr    d0, d0, #1
   1395   usra    d0, d0, #1
   1396 
   1397 ; CHECK: fcvtzs	s0, s0, #1              ; encoding: [0x00,0xfc,0x3f,0x5f]
   1398 ; CHECK: fcvtzs	d0, d0, #2              ; encoding: [0x00,0xfc,0x7e,0x5f]
   1399 ; CHECK: fcvtzu	s0, s0, #1              ; encoding: [0x00,0xfc,0x3f,0x7f]
   1400 ; CHECK: fcvtzu	d0, d0, #2              ; encoding: [0x00,0xfc,0x7e,0x7f]
   1401 ; CHECK: shl	d0, d0, #1              ; encoding: [0x00,0x54,0x41,0x5f]
   1402 ; CHECK: sli	d0, d0, #1              ; encoding: [0x00,0x54,0x41,0x7f]
   1403 ; CHECK: sqrshrn	b0, h0, #1              ; encoding: [0x00,0x9c,0x0f,0x5f]
   1404 ; CHECK: sqrshrn	h0, s0, #2              ; encoding: [0x00,0x9c,0x1e,0x5f]
   1405 ; CHECK: sqrshrn	s0, d0, #3              ; encoding: [0x00,0x9c,0x3d,0x5f]
   1406 ; CHECK: sqrshrun	b0, h0, #1      ; encoding: [0x00,0x8c,0x0f,0x7f]
   1407 ; CHECK: sqrshrun	h0, s0, #2      ; encoding: [0x00,0x8c,0x1e,0x7f]
   1408 ; CHECK: sqrshrun	s0, d0, #3      ; encoding: [0x00,0x8c,0x3d,0x7f]
   1409 ; CHECK: sqshlu	b0, b0, #1              ; encoding: [0x00,0x64,0x09,0x7f]
   1410 ; CHECK: sqshlu	h0, h0, #2              ; encoding: [0x00,0x64,0x12,0x7f]
   1411 ; CHECK: sqshlu	s0, s0, #3              ; encoding: [0x00,0x64,0x23,0x7f]
   1412 ; CHECK: sqshlu	d0, d0, #4              ; encoding: [0x00,0x64,0x44,0x7f]
   1413 ; CHECK: sqshl	b0, b0, #1              ; encoding: [0x00,0x74,0x09,0x5f]
   1414 ; CHECK: sqshl	h0, h0, #2              ; encoding: [0x00,0x74,0x12,0x5f]
   1415 ; CHECK: sqshl	s0, s0, #3              ; encoding: [0x00,0x74,0x23,0x5f]
   1416 ; CHECK: sqshl	d0, d0, #4              ; encoding: [0x00,0x74,0x44,0x5f]
   1417 ; CHECK: sqshrn	b0, h0, #1              ; encoding: [0x00,0x94,0x0f,0x5f]
   1418 ; CHECK: sqshrn	h0, s0, #2              ; encoding: [0x00,0x94,0x1e,0x5f]
   1419 ; CHECK: sqshrn	s0, d0, #3              ; encoding: [0x00,0x94,0x3d,0x5f]
   1420 ; CHECK: sqshrun	b0, h0, #1              ; encoding: [0x00,0x84,0x0f,0x7f]
   1421 ; CHECK: sqshrun	h0, s0, #2              ; encoding: [0x00,0x84,0x1e,0x7f]
   1422 ; CHECK: sqshrun	s0, d0, #3              ; encoding: [0x00,0x84,0x3d,0x7f]
   1423 ; CHECK: sri	d0, d0, #1              ; encoding: [0x00,0x44,0x7f,0x7f]
   1424 ; CHECK: srshr	d0, d0, #1              ; encoding: [0x00,0x24,0x7f,0x5f]
   1425 ; CHECK: srsra	d0, d0, #1              ; encoding: [0x00,0x34,0x7f,0x5f]
   1426 ; CHECK: sshr	d0, d0, #1              ; encoding: [0x00,0x04,0x7f,0x5f]
   1427 ; CHECK: ucvtf	s0, s0, #1              ; encoding: [0x00,0xe4,0x3f,0x7f]
   1428 ; CHECK: ucvtf	d0, d0, #2              ; encoding: [0x00,0xe4,0x7e,0x7f]
   1429 ; check: scvtf  s0, s0, #1              ; encoding: [0x00,0xe4,0x3f,0x5f]
   1430 ; check: scvtf  d0, d0, #2              ; encoding: [0x00,0xe4,0x7e,0x5f]
   1431 ; CHECK: uqrshrn	b0, h0, #1              ; encoding: [0x00,0x9c,0x0f,0x7f]
   1432 ; CHECK: uqrshrn	h0, s0, #2              ; encoding: [0x00,0x9c,0x1e,0x7f]
   1433 ; CHECK: uqrshrn	s0, d0, #3              ; encoding: [0x00,0x9c,0x3d,0x7f]
   1434 ; CHECK: uqshl	b0, b0, #1              ; encoding: [0x00,0x74,0x09,0x7f]
   1435 ; CHECK: uqshl	h0, h0, #2              ; encoding: [0x00,0x74,0x12,0x7f]
   1436 ; CHECK: uqshl	s0, s0, #3              ; encoding: [0x00,0x74,0x23,0x7f]
   1437 ; CHECK: uqshl	d0, d0, #4              ; encoding: [0x00,0x74,0x44,0x7f]
   1438 ; CHECK: uqshrn	b0, h0, #1              ; encoding: [0x00,0x94,0x0f,0x7f]
   1439 ; CHECK: uqshrn	h0, s0, #2              ; encoding: [0x00,0x94,0x1e,0x7f]
   1440 ; CHECK: uqshrn	s0, d0, #3              ; encoding: [0x00,0x94,0x3d,0x7f]
   1441 ; CHECK: urshr	d0, d0, #1              ; encoding: [0x00,0x24,0x7f,0x7f]
   1442 ; CHECK: ursra	d0, d0, #1              ; encoding: [0x00,0x34,0x7f,0x7f]
   1443 ; CHECK: ushr	d0, d0, #1              ; encoding: [0x00,0x04,0x7f,0x7f]
   1444 ; CHECK: usra	d0, d0, #1              ; encoding: [0x00,0x14,0x7f,0x7f]
   1445 
   1446 
   1447 ;===-------------------------------------------------------------------------===
   1448 ; AdvSIMD vector with shift
   1449 ;===-------------------------------------------------------------------------===
   1450 
   1451    fcvtzs.2s v0, v0, #1
   1452    fcvtzs.4s v0, v0, #2
   1453    fcvtzs.2d v0, v0, #3
   1454    fcvtzu.2s v0, v0, #1
   1455    fcvtzu.4s v0, v0, #2
   1456    fcvtzu.2d v0, v0, #3
   1457    rshrn.8b v0, v0, #1
   1458    rshrn2.16b v0, v0, #2
   1459    rshrn.4h v0, v0, #3
   1460    rshrn2.8h v0, v0, #4
   1461    rshrn.2s v0, v0, #5
   1462    rshrn2.4s v0, v0, #6
   1463    scvtf.2s v0, v0, #1
   1464    scvtf.4s v0, v0, #2
   1465    scvtf.2d v0, v0, #3
   1466    shl.8b v0, v0, #1
   1467    shl.16b v0, v0, #2
   1468    shl.4h v0, v0, #3
   1469    shl.8h v0, v0, #4
   1470    shl.2s v0, v0, #5
   1471    shl.4s v0, v0, #6
   1472    shl.2d v0, v0, #7
   1473    shrn.8b v0, v0, #1
   1474    shrn2.16b v0, v0, #2
   1475    shrn.4h v0, v0, #3
   1476    shrn2.8h v0, v0, #4
   1477    shrn.2s v0, v0, #5
   1478    shrn2.4s v0, v0, #6
   1479    sli.8b v0, v0, #1
   1480    sli.16b v0, v0, #2
   1481    sli.4h v0, v0, #3
   1482    sli.8h v0, v0, #4
   1483    sli.2s v0, v0, #5
   1484    sli.4s v0, v0, #6
   1485    sli.2d v0, v0, #7
   1486    sqrshrn.8b v0, v0, #1
   1487    sqrshrn2.16b v0, v0, #2
   1488    sqrshrn.4h v0, v0, #3
   1489    sqrshrn2.8h v0, v0, #4
   1490    sqrshrn.2s v0, v0, #5
   1491    sqrshrn2.4s v0, v0, #6
   1492    sqrshrun.8b v0, v0, #1
   1493    sqrshrun2.16b v0, v0, #2
   1494    sqrshrun.4h v0, v0, #3
   1495    sqrshrun2.8h v0, v0, #4
   1496    sqrshrun.2s v0, v0, #5
   1497    sqrshrun2.4s v0, v0, #6
   1498    sqshlu.8b v0, v0, #1
   1499    sqshlu.16b v0, v0, #2
   1500    sqshlu.4h v0, v0, #3
   1501    sqshlu.8h v0, v0, #4
   1502    sqshlu.2s v0, v0, #5
   1503    sqshlu.4s v0, v0, #6
   1504    sqshlu.2d v0, v0, #7
   1505    sqshl.8b v0, v0, #1
   1506    sqshl.16b v0, v0, #2
   1507    sqshl.4h v0, v0, #3
   1508    sqshl.8h v0, v0, #4
   1509    sqshl.2s v0, v0, #5
   1510    sqshl.4s v0, v0, #6
   1511    sqshl.2d v0, v0, #7
   1512    sqshrn.8b v0, v0, #1
   1513    sqshrn2.16b v0, v0, #2
   1514    sqshrn.4h v0, v0, #3
   1515    sqshrn2.8h v0, v0, #4
   1516    sqshrn.2s v0, v0, #5
   1517    sqshrn2.4s v0, v0, #6
   1518    sqshrun.8b v0, v0, #1
   1519    sqshrun2.16b v0, v0, #2
   1520    sqshrun.4h v0, v0, #3
   1521    sqshrun2.8h v0, v0, #4
   1522    sqshrun.2s v0, v0, #5
   1523    sqshrun2.4s v0, v0, #6
   1524    sri.8b v0, v0, #1
   1525    sri.16b v0, v0, #2
   1526    sri.4h v0, v0, #3
   1527    sri.8h v0, v0, #4
   1528    sri.2s v0, v0, #5
   1529    sri.4s v0, v0, #6
   1530    sri.2d v0, v0, #7
   1531    srshr.8b v0, v0, #1
   1532    srshr.16b v0, v0, #2
   1533    srshr.4h v0, v0, #3
   1534    srshr.8h v0, v0, #4
   1535    srshr.2s v0, v0, #5
   1536    srshr.4s v0, v0, #6
   1537    srshr.2d v0, v0, #7
   1538    srsra.8b v0, v0, #1
   1539    srsra.16b v0, v0, #2
   1540    srsra.4h v0, v0, #3
   1541    srsra.8h v0, v0, #4
   1542    srsra.2s v0, v0, #5
   1543    srsra.4s v0, v0, #6
   1544    srsra.2d v0, v0, #7
   1545    sshll.8h v0, v0, #1
   1546    sshll2.8h v0, v0, #2
   1547    sshll.4s v0, v0, #3
   1548    sshll2.4s v0, v0, #4
   1549    sshll.2d v0, v0, #5
   1550    sshll2.2d v0, v0, #6
   1551    sshr.8b v0, v0, #1
   1552    sshr.16b v0, v0, #2
   1553    sshr.4h v0, v0, #3
   1554    sshr.8h v0, v0, #4
   1555    sshr.2s v0, v0, #5
   1556    sshr.4s v0, v0, #6
   1557    sshr.2d v0, v0, #7
   1558    sshr.8b v0, v0, #1
   1559    ssra.16b v0, v0, #2
   1560    ssra.4h v0, v0, #3
   1561    ssra.8h v0, v0, #4
   1562    ssra.2s v0, v0, #5
   1563    ssra.4s v0, v0, #6
   1564    ssra.2d v0, v0, #7
   1565    ssra d0, d0, #64
   1566    ucvtf.2s v0, v0, #1
   1567    ucvtf.4s v0, v0, #2
   1568    ucvtf.2d v0, v0, #3
   1569    uqrshrn.8b v0, v0, #1
   1570    uqrshrn2.16b v0, v0, #2
   1571    uqrshrn.4h v0, v0, #3
   1572    uqrshrn2.8h v0, v0, #4
   1573    uqrshrn.2s v0, v0, #5
   1574    uqrshrn2.4s v0, v0, #6
   1575    uqshl.8b v0, v0, #1
   1576    uqshl.16b v0, v0, #2
   1577    uqshl.4h v0, v0, #3
   1578    uqshl.8h v0, v0, #4
   1579    uqshl.2s v0, v0, #5
   1580    uqshl.4s v0, v0, #6
   1581    uqshl.2d v0, v0, #7
   1582    uqshrn.8b v0, v0, #1
   1583    uqshrn2.16b v0, v0, #2
   1584    uqshrn.4h v0, v0, #3
   1585    uqshrn2.8h v0, v0, #4
   1586    uqshrn.2s v0, v0, #5
   1587    uqshrn2.4s v0, v0, #6
   1588    urshr.8b v0, v0, #1
   1589    urshr.16b v0, v0, #2
   1590    urshr.4h v0, v0, #3
   1591    urshr.8h v0, v0, #4
   1592    urshr.2s v0, v0, #5
   1593    urshr.4s v0, v0, #6
   1594    urshr.2d v0, v0, #7
   1595    ursra.8b v0, v0, #1
   1596    ursra.16b v0, v0, #2
   1597    ursra.4h v0, v0, #3
   1598    ursra.8h v0, v0, #4
   1599    ursra.2s v0, v0, #5
   1600    ursra.4s v0, v0, #6
   1601    ursra.2d v0, v0, #7
   1602    ushll.8h v0, v0, #1
   1603    ushll2.8h v0, v0, #2
   1604    ushll.4s v0, v0, #3
   1605    ushll2.4s v0, v0, #4
   1606    ushll.2d v0, v0, #5
   1607    ushll2.2d v0, v0, #6
   1608    ushr.8b v0, v0, #1
   1609    ushr.16b v0, v0, #2
   1610    ushr.4h v0, v0, #3
   1611    ushr.8h v0, v0, #4
   1612    ushr.2s v0, v0, #5
   1613    ushr.4s v0, v0, #6
   1614    ushr.2d v0, v0, #7
   1615    usra.8b v0, v0, #1
   1616    usra.16b v0, v0, #2
   1617    usra.4h v0, v0, #3
   1618    usra.8h v0, v0, #4
   1619    usra.2s v0, v0, #5
   1620    usra.4s v0, v0, #6
   1621    usra.2d v0, v0, #7
   1622 
   1623 ; CHECK: fcvtzs.2s	v0, v0, #1      ; encoding: [0x00,0xfc,0x3f,0x0f]
   1624 ; CHECK: fcvtzs.4s	v0, v0, #2      ; encoding: [0x00,0xfc,0x3e,0x4f]
   1625 ; CHECK: fcvtzs.2d	v0, v0, #3      ; encoding: [0x00,0xfc,0x7d,0x4f]
   1626 ; CHECK: fcvtzu.2s	v0, v0, #1      ; encoding: [0x00,0xfc,0x3f,0x2f]
   1627 ; CHECK: fcvtzu.4s	v0, v0, #2      ; encoding: [0x00,0xfc,0x3e,0x6f]
   1628 ; CHECK: fcvtzu.2d	v0, v0, #3      ; encoding: [0x00,0xfc,0x7d,0x6f]
   1629 ; CHECK: rshrn.8b	v0, v0, #1      ; encoding: [0x00,0x8c,0x0f,0x0f]
   1630 ; CHECK: rshrn2.16b	v0, v0, #2      ; encoding: [0x00,0x8c,0x0e,0x4f]
   1631 ; CHECK: rshrn.4h	v0, v0, #3      ; encoding: [0x00,0x8c,0x1d,0x0f]
   1632 ; CHECK: rshrn2.8h	v0, v0, #4      ; encoding: [0x00,0x8c,0x1c,0x4f]
   1633 ; CHECK: rshrn.2s	v0, v0, #5      ; encoding: [0x00,0x8c,0x3b,0x0f]
   1634 ; CHECK: rshrn2.4s	v0, v0, #6      ; encoding: [0x00,0x8c,0x3a,0x4f]
   1635 ; CHECK: scvtf.2s	v0, v0, #1      ; encoding: [0x00,0xe4,0x3f,0x0f]
   1636 ; CHECK: scvtf.4s	v0, v0, #2      ; encoding: [0x00,0xe4,0x3e,0x4f]
   1637 ; CHECK: scvtf.2d	v0, v0, #3      ; encoding: [0x00,0xe4,0x7d,0x4f]
   1638 ; CHECK: shl.8b	v0, v0, #1              ; encoding: [0x00,0x54,0x09,0x0f]
   1639 ; CHECK: shl.16b	v0, v0, #2              ; encoding: [0x00,0x54,0x0a,0x4f]
   1640 ; CHECK: shl.4h	v0, v0, #3              ; encoding: [0x00,0x54,0x13,0x0f]
   1641 ; CHECK: shl.8h	v0, v0, #4              ; encoding: [0x00,0x54,0x14,0x4f]
   1642 ; CHECK: shl.2s	v0, v0, #5              ; encoding: [0x00,0x54,0x25,0x0f]
   1643 ; CHECK: shl.4s	v0, v0, #6              ; encoding: [0x00,0x54,0x26,0x4f]
   1644 ; CHECK: shl.2d	v0, v0, #7              ; encoding: [0x00,0x54,0x47,0x4f]
   1645 ; CHECK: shrn.8b	v0, v0, #1              ; encoding: [0x00,0x84,0x0f,0x0f]
   1646 ; CHECK: shrn2.16b	v0, v0, #2      ; encoding: [0x00,0x84,0x0e,0x4f]
   1647 ; CHECK: shrn.4h	v0, v0, #3              ; encoding: [0x00,0x84,0x1d,0x0f]
   1648 ; CHECK: shrn2.8h	v0, v0, #4      ; encoding: [0x00,0x84,0x1c,0x4f]
   1649 ; CHECK: shrn.2s	v0, v0, #5              ; encoding: [0x00,0x84,0x3b,0x0f]
   1650 ; CHECK: shrn2.4s	v0, v0, #6      ; encoding: [0x00,0x84,0x3a,0x4f]
   1651 ; CHECK: sli.8b	v0, v0, #1              ; encoding: [0x00,0x54,0x09,0x2f]
   1652 ; CHECK: sli.16b	v0, v0, #2              ; encoding: [0x00,0x54,0x0a,0x6f]
   1653 ; CHECK: sli.4h	v0, v0, #3              ; encoding: [0x00,0x54,0x13,0x2f]
   1654 ; CHECK: sli.8h	v0, v0, #4              ; encoding: [0x00,0x54,0x14,0x6f]
   1655 ; CHECK: sli.2s	v0, v0, #5              ; encoding: [0x00,0x54,0x25,0x2f]
   1656 ; CHECK: sli.4s	v0, v0, #6              ; encoding: [0x00,0x54,0x26,0x6f]
   1657 ; CHECK: sli.2d	v0, v0, #7              ; encoding: [0x00,0x54,0x47,0x6f]
   1658 ; CHECK: sqrshrn.8b	v0, v0, #1      ; encoding: [0x00,0x9c,0x0f,0x0f]
   1659 ; CHECK: sqrshrn2.16b	v0, v0, #2      ; encoding: [0x00,0x9c,0x0e,0x4f]
   1660 ; CHECK: sqrshrn.4h	v0, v0, #3      ; encoding: [0x00,0x9c,0x1d,0x0f]
   1661 ; CHECK: sqrshrn2.8h	v0, v0, #4      ; encoding: [0x00,0x9c,0x1c,0x4f]
   1662 ; CHECK: sqrshrn.2s	v0, v0, #5      ; encoding: [0x00,0x9c,0x3b,0x0f]
   1663 ; CHECK: sqrshrn2.4s	v0, v0, #6      ; encoding: [0x00,0x9c,0x3a,0x4f]
   1664 ; CHECK: sqrshrun.8b	v0, v0, #1      ; encoding: [0x00,0x8c,0x0f,0x2f]
   1665 ; CHECK: sqrshrun2.16b	v0, v0, #2      ; encoding: [0x00,0x8c,0x0e,0x6f]
   1666 ; CHECK: sqrshrun.4h	v0, v0, #3      ; encoding: [0x00,0x8c,0x1d,0x2f]
   1667 ; CHECK: sqrshrun2.8h	v0, v0, #4      ; encoding: [0x00,0x8c,0x1c,0x6f]
   1668 ; CHECK: sqrshrun.2s	v0, v0, #5      ; encoding: [0x00,0x8c,0x3b,0x2f]
   1669 ; CHECK: sqrshrun2.4s	v0, v0, #6      ; encoding: [0x00,0x8c,0x3a,0x6f]
   1670 ; CHECK: sqshlu.8b	v0, v0, #1      ; encoding: [0x00,0x64,0x09,0x2f]
   1671 ; CHECK: sqshlu.16b	v0, v0, #2      ; encoding: [0x00,0x64,0x0a,0x6f]
   1672 ; CHECK: sqshlu.4h	v0, v0, #3      ; encoding: [0x00,0x64,0x13,0x2f]
   1673 ; CHECK: sqshlu.8h	v0, v0, #4      ; encoding: [0x00,0x64,0x14,0x6f]
   1674 ; CHECK: sqshlu.2s	v0, v0, #5      ; encoding: [0x00,0x64,0x25,0x2f]
   1675 ; CHECK: sqshlu.4s	v0, v0, #6      ; encoding: [0x00,0x64,0x26,0x6f]
   1676 ; CHECK: sqshlu.2d	v0, v0, #7      ; encoding: [0x00,0x64,0x47,0x6f]
   1677 ; CHECK: sqshl.8b	v0, v0, #1      ; encoding: [0x00,0x74,0x09,0x0f]
   1678 ; CHECK: sqshl.16b	v0, v0, #2      ; encoding: [0x00,0x74,0x0a,0x4f]
   1679 ; CHECK: sqshl.4h	v0, v0, #3      ; encoding: [0x00,0x74,0x13,0x0f]
   1680 ; CHECK: sqshl.8h	v0, v0, #4      ; encoding: [0x00,0x74,0x14,0x4f]
   1681 ; CHECK: sqshl.2s	v0, v0, #5      ; encoding: [0x00,0x74,0x25,0x0f]
   1682 ; CHECK: sqshl.4s	v0, v0, #6      ; encoding: [0x00,0x74,0x26,0x4f]
   1683 ; CHECK: sqshl.2d	v0, v0, #7      ; encoding: [0x00,0x74,0x47,0x4f]
   1684 ; CHECK: sqshrn.8b	v0, v0, #1      ; encoding: [0x00,0x94,0x0f,0x0f]
   1685 ; CHECK: sqshrn2.16b	v0, v0, #2      ; encoding: [0x00,0x94,0x0e,0x4f]
   1686 ; CHECK: sqshrn.4h	v0, v0, #3      ; encoding: [0x00,0x94,0x1d,0x0f]
   1687 ; CHECK: sqshrn2.8h	v0, v0, #4      ; encoding: [0x00,0x94,0x1c,0x4f]
   1688 ; CHECK: sqshrn.2s	v0, v0, #5      ; encoding: [0x00,0x94,0x3b,0x0f]
   1689 ; CHECK: sqshrn2.4s	v0, v0, #6      ; encoding: [0x00,0x94,0x3a,0x4f]
   1690 ; CHECK: sqshrun.8b	v0, v0, #1      ; encoding: [0x00,0x84,0x0f,0x2f]
   1691 ; CHECK: sqshrun2.16b	v0, v0, #2      ; encoding: [0x00,0x84,0x0e,0x6f]
   1692 ; CHECK: sqshrun.4h	v0, v0, #3      ; encoding: [0x00,0x84,0x1d,0x2f]
   1693 ; CHECK: sqshrun2.8h	v0, v0, #4      ; encoding: [0x00,0x84,0x1c,0x6f]
   1694 ; CHECK: sqshrun.2s	v0, v0, #5      ; encoding: [0x00,0x84,0x3b,0x2f]
   1695 ; CHECK: sqshrun2.4s	v0, v0, #6      ; encoding: [0x00,0x84,0x3a,0x6f]
   1696 ; CHECK: sri.8b	v0, v0, #1              ; encoding: [0x00,0x44,0x0f,0x2f]
   1697 ; CHECK: sri.16b	v0, v0, #2              ; encoding: [0x00,0x44,0x0e,0x6f]
   1698 ; CHECK: sri.4h	v0, v0, #3              ; encoding: [0x00,0x44,0x1d,0x2f]
   1699 ; CHECK: sri.8h	v0, v0, #4              ; encoding: [0x00,0x44,0x1c,0x6f]
   1700 ; CHECK: sri.2s	v0, v0, #5              ; encoding: [0x00,0x44,0x3b,0x2f]
   1701 ; CHECK: sri.4s	v0, v0, #6              ; encoding: [0x00,0x44,0x3a,0x6f]
   1702 ; CHECK: sri.2d	v0, v0, #7              ; encoding: [0x00,0x44,0x79,0x6f]
   1703 ; CHECK: srshr.8b	v0, v0, #1      ; encoding: [0x00,0x24,0x0f,0x0f]
   1704 ; CHECK: srshr.16b	v0, v0, #2      ; encoding: [0x00,0x24,0x0e,0x4f]
   1705 ; CHECK: srshr.4h	v0, v0, #3      ; encoding: [0x00,0x24,0x1d,0x0f]
   1706 ; CHECK: srshr.8h	v0, v0, #4      ; encoding: [0x00,0x24,0x1c,0x4f]
   1707 ; CHECK: srshr.2s	v0, v0, #5      ; encoding: [0x00,0x24,0x3b,0x0f]
   1708 ; CHECK: srshr.4s	v0, v0, #6      ; encoding: [0x00,0x24,0x3a,0x4f]
   1709 ; CHECK: srshr.2d	v0, v0, #7      ; encoding: [0x00,0x24,0x79,0x4f]
   1710 ; CHECK: srsra.8b	v0, v0, #1      ; encoding: [0x00,0x34,0x0f,0x0f]
   1711 ; CHECK: srsra.16b	v0, v0, #2      ; encoding: [0x00,0x34,0x0e,0x4f]
   1712 ; CHECK: srsra.4h	v0, v0, #3      ; encoding: [0x00,0x34,0x1d,0x0f]
   1713 ; CHECK: srsra.8h	v0, v0, #4      ; encoding: [0x00,0x34,0x1c,0x4f]
   1714 ; CHECK: srsra.2s	v0, v0, #5      ; encoding: [0x00,0x34,0x3b,0x0f]
   1715 ; CHECK: srsra.4s	v0, v0, #6      ; encoding: [0x00,0x34,0x3a,0x4f]
   1716 ; CHECK: srsra.2d	v0, v0, #7      ; encoding: [0x00,0x34,0x79,0x4f]
   1717 ; CHECK: sshll.8h	v0, v0, #1      ; encoding: [0x00,0xa4,0x09,0x0f]
   1718 ; CHECK: sshll2.8h	v0, v0, #2      ; encoding: [0x00,0xa4,0x0a,0x4f]
   1719 ; CHECK: sshll.4s	v0, v0, #3      ; encoding: [0x00,0xa4,0x13,0x0f]
   1720 ; CHECK: sshll2.4s	v0, v0, #4      ; encoding: [0x00,0xa4,0x14,0x4f]
   1721 ; CHECK: sshll.2d	v0, v0, #5      ; encoding: [0x00,0xa4,0x25,0x0f]
   1722 ; CHECK: sshll2.2d	v0, v0, #6      ; encoding: [0x00,0xa4,0x26,0x4f]
   1723 ; CHECK: sshr.8b	v0, v0, #1              ; encoding: [0x00,0x04,0x0f,0x0f]
   1724 ; CHECK: sshr.16b	v0, v0, #2      ; encoding: [0x00,0x04,0x0e,0x4f]
   1725 ; CHECK: sshr.4h	v0, v0, #3              ; encoding: [0x00,0x04,0x1d,0x0f]
   1726 ; CHECK: sshr.8h	v0, v0, #4              ; encoding: [0x00,0x04,0x1c,0x4f]
   1727 ; CHECK: sshr.2s	v0, v0, #5              ; encoding: [0x00,0x04,0x3b,0x0f]
   1728 ; CHECK: sshr.4s	v0, v0, #6              ; encoding: [0x00,0x04,0x3a,0x4f]
   1729 ; CHECK: sshr.2d	v0, v0, #7              ; encoding: [0x00,0x04,0x79,0x4f]
   1730 ; CHECK: sshr.8b	v0, v0, #1              ; encoding: [0x00,0x04,0x0f,0x0f]
   1731 ; CHECK: ssra.16b	v0, v0, #2      ; encoding: [0x00,0x14,0x0e,0x4f]
   1732 ; CHECK: ssra.4h	v0, v0, #3              ; encoding: [0x00,0x14,0x1d,0x0f]
   1733 ; CHECK: ssra.8h	v0, v0, #4              ; encoding: [0x00,0x14,0x1c,0x4f]
   1734 ; CHECK: ssra.2s	v0, v0, #5              ; encoding: [0x00,0x14,0x3b,0x0f]
   1735 ; CHECK: ssra.4s	v0, v0, #6              ; encoding: [0x00,0x14,0x3a,0x4f]
   1736 ; CHECK: ssra.2d	v0, v0, #7              ; encoding: [0x00,0x14,0x79,0x4f]
   1737 ; CHECK: ssra		d0, d0, #64             ; encoding: [0x00,0x14,0x40,0x5f]
   1738 ; CHECK: ucvtf.2s	v0, v0, #1      ; encoding: [0x00,0xe4,0x3f,0x2f]
   1739 ; CHECK: ucvtf.4s	v0, v0, #2      ; encoding: [0x00,0xe4,0x3e,0x6f]
   1740 ; CHECK: ucvtf.2d	v0, v0, #3      ; encoding: [0x00,0xe4,0x7d,0x6f]
   1741 ; CHECK: uqrshrn.8b	v0, v0, #1      ; encoding: [0x00,0x9c,0x0f,0x2f]
   1742 ; CHECK: uqrshrn2.16b	v0, v0, #2      ; encoding: [0x00,0x9c,0x0e,0x6f]
   1743 ; CHECK: uqrshrn.4h	v0, v0, #3      ; encoding: [0x00,0x9c,0x1d,0x2f]
   1744 ; CHECK: uqrshrn2.8h	v0, v0, #4      ; encoding: [0x00,0x9c,0x1c,0x6f]
   1745 ; CHECK: uqrshrn.2s	v0, v0, #5      ; encoding: [0x00,0x9c,0x3b,0x2f]
   1746 ; CHECK: uqrshrn2.4s	v0, v0, #6      ; encoding: [0x00,0x9c,0x3a,0x6f]
   1747 ; CHECK: uqshl.8b	v0, v0, #1      ; encoding: [0x00,0x74,0x09,0x2f]
   1748 ; CHECK: uqshl.16b	v0, v0, #2      ; encoding: [0x00,0x74,0x0a,0x6f]
   1749 ; CHECK: uqshl.4h	v0, v0, #3      ; encoding: [0x00,0x74,0x13,0x2f]
   1750 ; CHECK: uqshl.8h	v0, v0, #4      ; encoding: [0x00,0x74,0x14,0x6f]
   1751 ; CHECK: uqshl.2s	v0, v0, #5      ; encoding: [0x00,0x74,0x25,0x2f]
   1752 ; CHECK: uqshl.4s	v0, v0, #6      ; encoding: [0x00,0x74,0x26,0x6f]
   1753 ; CHECK: uqshl.2d	v0, v0, #7      ; encoding: [0x00,0x74,0x47,0x6f]
   1754 ; CHECK: uqshrn.8b	v0, v0, #1      ; encoding: [0x00,0x94,0x0f,0x2f]
   1755 ; CHECK: uqshrn2.16b	v0, v0, #2      ; encoding: [0x00,0x94,0x0e,0x6f]
   1756 ; CHECK: uqshrn.4h	v0, v0, #3      ; encoding: [0x00,0x94,0x1d,0x2f]
   1757 ; CHECK: uqshrn2.8h	v0, v0, #4      ; encoding: [0x00,0x94,0x1c,0x6f]
   1758 ; CHECK: uqshrn.2s	v0, v0, #5      ; encoding: [0x00,0x94,0x3b,0x2f]
   1759 ; CHECK: uqshrn2.4s	v0, v0, #6      ; encoding: [0x00,0x94,0x3a,0x6f]
   1760 ; CHECK: urshr.8b	v0, v0, #1      ; encoding: [0x00,0x24,0x0f,0x2f]
   1761 ; CHECK: urshr.16b	v0, v0, #2      ; encoding: [0x00,0x24,0x0e,0x6f]
   1762 ; CHECK: urshr.4h	v0, v0, #3      ; encoding: [0x00,0x24,0x1d,0x2f]
   1763 ; CHECK: urshr.8h	v0, v0, #4      ; encoding: [0x00,0x24,0x1c,0x6f]
   1764 ; CHECK: urshr.2s	v0, v0, #5      ; encoding: [0x00,0x24,0x3b,0x2f]
   1765 ; CHECK: urshr.4s	v0, v0, #6      ; encoding: [0x00,0x24,0x3a,0x6f]
   1766 ; CHECK: urshr.2d	v0, v0, #7      ; encoding: [0x00,0x24,0x79,0x6f]
   1767 ; CHECK: ursra.8b	v0, v0, #1      ; encoding: [0x00,0x34,0x0f,0x2f]
   1768 ; CHECK: ursra.16b	v0, v0, #2      ; encoding: [0x00,0x34,0x0e,0x6f]
   1769 ; CHECK: ursra.4h	v0, v0, #3      ; encoding: [0x00,0x34,0x1d,0x2f]
   1770 ; CHECK: ursra.8h	v0, v0, #4      ; encoding: [0x00,0x34,0x1c,0x6f]
   1771 ; CHECK: ursra.2s	v0, v0, #5      ; encoding: [0x00,0x34,0x3b,0x2f]
   1772 ; CHECK: ursra.4s	v0, v0, #6      ; encoding: [0x00,0x34,0x3a,0x6f]
   1773 ; CHECK: ursra.2d	v0, v0, #7      ; encoding: [0x00,0x34,0x79,0x6f]
   1774 ; CHECK: ushll.8h	v0, v0, #1      ; encoding: [0x00,0xa4,0x09,0x2f]
   1775 ; CHECK: ushll2.8h	v0, v0, #2      ; encoding: [0x00,0xa4,0x0a,0x6f]
   1776 ; CHECK: ushll.4s	v0, v0, #3      ; encoding: [0x00,0xa4,0x13,0x2f]
   1777 ; CHECK: ushll2.4s	v0, v0, #4      ; encoding: [0x00,0xa4,0x14,0x6f]
   1778 ; CHECK: ushll.2d	v0, v0, #5      ; encoding: [0x00,0xa4,0x25,0x2f]
   1779 ; CHECK: ushll2.2d	v0, v0, #6      ; encoding: [0x00,0xa4,0x26,0x6f]
   1780 ; CHECK: ushr.8b	v0, v0, #1              ; encoding: [0x00,0x04,0x0f,0x2f]
   1781 ; CHECK: ushr.16b	v0, v0, #2      ; encoding: [0x00,0x04,0x0e,0x6f]
   1782 ; CHECK: ushr.4h	v0, v0, #3              ; encoding: [0x00,0x04,0x1d,0x2f]
   1783 ; CHECK: ushr.8h	v0, v0, #4              ; encoding: [0x00,0x04,0x1c,0x6f]
   1784 ; CHECK: ushr.2s	v0, v0, #5              ; encoding: [0x00,0x04,0x3b,0x2f]
   1785 ; CHECK: ushr.4s	v0, v0, #6              ; encoding: [0x00,0x04,0x3a,0x6f]
   1786 ; CHECK: ushr.2d	v0, v0, #7              ; encoding: [0x00,0x04,0x79,0x6f]
   1787 ; CHECK: usra.8b	v0, v0, #1              ; encoding: [0x00,0x14,0x0f,0x2f]
   1788 ; CHECK: usra.16b	v0, v0, #2      ; encoding: [0x00,0x14,0x0e,0x6f]
   1789 ; CHECK: usra.4h	v0, v0, #3              ; encoding: [0x00,0x14,0x1d,0x2f]
   1790 ; CHECK: usra.8h	v0, v0, #4              ; encoding: [0x00,0x14,0x1c,0x6f]
   1791 ; CHECK: usra.2s	v0, v0, #5              ; encoding: [0x00,0x14,0x3b,0x2f]
   1792 ; CHECK: usra.4s	v0, v0, #6              ; encoding: [0x00,0x14,0x3a,0x6f]
   1793 ; CHECK: usra.2d	v0, v0, #7              ; encoding: [0x00,0x14,0x79,0x6f]
   1794 
   1795 
   1796 ; ARM Verbose syntax variants.
   1797 
   1798    rshrn v9.8b, v11.8h, #1
   1799    rshrn2 v8.16b, v9.8h, #2
   1800    rshrn v7.4h, v8.4s, #3
   1801    rshrn2 v6.8h, v7.4s, #4
   1802    rshrn v5.2s, v6.2d, #5
   1803    rshrn2 v4.4s, v5.2d, #6
   1804 
   1805    shrn v9.8b, v11.8h, #1
   1806    shrn2 v8.16b, v9.8h, #2
   1807    shrn v7.4h, v8.4s, #3
   1808    shrn2 v6.8h, v7.4s, #4
   1809    shrn v5.2s, v6.2d, #5
   1810    shrn2 v4.4s, v5.2d, #6
   1811 
   1812    sqrshrn v9.8b, v11.8h, #1
   1813    sqrshrn2 v8.16b, v9.8h, #2
   1814    sqrshrn v7.4h, v8.4s, #3
   1815    sqrshrn2 v6.8h, v7.4s, #4
   1816    sqrshrn v5.2s, v6.2d, #5
   1817    sqrshrn2 v4.4s, v5.2d, #6
   1818 
   1819    sqshrn v9.8b, v11.8h, #1
   1820    sqshrn2 v8.16b, v9.8h, #2
   1821    sqshrn v7.4h, v8.4s, #3
   1822    sqshrn2 v6.8h, v7.4s, #4
   1823    sqshrn v5.2s, v6.2d, #5
   1824    sqshrn2 v4.4s, v5.2d, #6
   1825 
   1826    sqrshrun v9.8b, v11.8h, #1
   1827    sqrshrun2 v8.16b, v9.8h, #2
   1828    sqrshrun v7.4h, v8.4s, #3
   1829    sqrshrun2 v6.8h, v7.4s, #4
   1830    sqrshrun v5.2s, v6.2d, #5
   1831    sqrshrun2 v4.4s, v5.2d, #6
   1832 
   1833    sqshrun v9.8b, v11.8h, #1
   1834    sqshrun2 v8.16b, v9.8h, #2
   1835    sqshrun v7.4h, v8.4s, #3
   1836    sqshrun2 v6.8h, v7.4s, #4
   1837    sqshrun v5.2s, v6.2d, #5
   1838    sqshrun2 v4.4s, v5.2d, #6
   1839 
   1840    uqrshrn v9.8b, v11.8h, #1
   1841    uqrshrn2 v8.16b, v9.8h, #2
   1842    uqrshrn v7.4h, v8.4s, #3
   1843    uqrshrn2 v6.8h, v7.4s, #4
   1844    uqrshrn v5.2s, v6.2d, #5
   1845    uqrshrn2 v4.4s, v5.2d, #6
   1846 
   1847    uqshrn v9.8b, v11.8h, #1
   1848    uqshrn2 v8.16b, v9.8h, #2
   1849    uqshrn v7.4h, v8.4s, #3
   1850    uqshrn2 v6.8h, v7.4s, #4
   1851    uqshrn v5.2s, v6.2d, #5
   1852    uqshrn2 v4.4s, v5.2d, #6
   1853 
   1854    sshll2 v10.8h, v3.16b, #6
   1855    sshll2 v11.4s, v4.8h, #5
   1856    sshll2 v12.2d, v5.4s, #4
   1857    sshll v13.8h, v6.8b, #3
   1858    sshll v14.4s, v7.4h, #2
   1859    sshll v15.2d, v8.2s, #7
   1860 
   1861    ushll2 v10.8h, v3.16b, #6
   1862    ushll2 v11.4s, v4.8h, #5
   1863    ushll2 v12.2d, v5.4s, #4
   1864    ushll v13.8h, v6.8b, #3
   1865    ushll v14.4s, v7.4h, #2
   1866    ushll v15.2d, v8.2s, #7
   1867 
   1868 
   1869 ; CHECK: rshrn.8b	v9, v11, #1     ; encoding: [0x69,0x8d,0x0f,0x0f]
   1870 ; CHECK: rshrn2.16b	v8, v9, #2      ; encoding: [0x28,0x8d,0x0e,0x4f]
   1871 ; CHECK: rshrn.4h	v7, v8, #3      ; encoding: [0x07,0x8d,0x1d,0x0f]
   1872 ; CHECK: rshrn2.8h	v6, v7, #4      ; encoding: [0xe6,0x8c,0x1c,0x4f]
   1873 ; CHECK: rshrn.2s	v5, v6, #5      ; encoding: [0xc5,0x8c,0x3b,0x0f]
   1874 ; CHECK: rshrn2.4s	v4, v5, #6      ; encoding: [0xa4,0x8c,0x3a,0x4f]
   1875 ; CHECK: shrn.8b	v9, v11, #1             ; encoding: [0x69,0x85,0x0f,0x0f]
   1876 ; CHECK: shrn2.16b	v8, v9, #2      ; encoding: [0x28,0x85,0x0e,0x4f]
   1877 ; CHECK: shrn.4h	v7, v8, #3              ; encoding: [0x07,0x85,0x1d,0x0f]
   1878 ; CHECK: shrn2.8h	v6, v7, #4      ; encoding: [0xe6,0x84,0x1c,0x4f]
   1879 ; CHECK: shrn.2s	v5, v6, #5              ; encoding: [0xc5,0x84,0x3b,0x0f]
   1880 ; CHECK: shrn2.4s	v4, v5, #6      ; encoding: [0xa4,0x84,0x3a,0x4f]
   1881 ; CHECK: sqrshrn.8b	v9, v11, #1     ; encoding: [0x69,0x9d,0x0f,0x0f]
   1882 ; CHECK: sqrshrn2.16b	v8, v9, #2      ; encoding: [0x28,0x9d,0x0e,0x4f]
   1883 ; CHECK: sqrshrn.4h	v7, v8, #3      ; encoding: [0x07,0x9d,0x1d,0x0f]
   1884 ; CHECK: sqrshrn2.8h	v6, v7, #4      ; encoding: [0xe6,0x9c,0x1c,0x4f]
   1885 ; CHECK: sqrshrn.2s	v5, v6, #5      ; encoding: [0xc5,0x9c,0x3b,0x0f]
   1886 ; CHECK: sqrshrn2.4s	v4, v5, #6      ; encoding: [0xa4,0x9c,0x3a,0x4f]
   1887 ; CHECK: sqshrn.8b	v9, v11, #1     ; encoding: [0x69,0x95,0x0f,0x0f]
   1888 ; CHECK: sqshrn2.16b	v8, v9, #2      ; encoding: [0x28,0x95,0x0e,0x4f]
   1889 ; CHECK: sqshrn.4h	v7, v8, #3      ; encoding: [0x07,0x95,0x1d,0x0f]
   1890 ; CHECK: sqshrn2.8h	v6, v7, #4      ; encoding: [0xe6,0x94,0x1c,0x4f]
   1891 ; CHECK: sqshrn.2s	v5, v6, #5      ; encoding: [0xc5,0x94,0x3b,0x0f]
   1892 ; CHECK: sqshrn2.4s	v4, v5, #6      ; encoding: [0xa4,0x94,0x3a,0x4f]
   1893 ; CHECK: sqrshrun.8b	v9, v11, #1     ; encoding: [0x69,0x8d,0x0f,0x2f]
   1894 ; CHECK: sqrshrun2.16b	v8, v9, #2      ; encoding: [0x28,0x8d,0x0e,0x6f]
   1895 ; CHECK: sqrshrun.4h	v7, v8, #3      ; encoding: [0x07,0x8d,0x1d,0x2f]
   1896 ; CHECK: sqrshrun2.8h	v6, v7, #4      ; encoding: [0xe6,0x8c,0x1c,0x6f]
   1897 ; CHECK: sqrshrun.2s	v5, v6, #5      ; encoding: [0xc5,0x8c,0x3b,0x2f]
   1898 ; CHECK: sqrshrun2.4s	v4, v5, #6      ; encoding: [0xa4,0x8c,0x3a,0x6f]
   1899 ; CHECK: sqshrun.8b	v9, v11, #1     ; encoding: [0x69,0x85,0x0f,0x2f]
   1900 ; CHECK: sqshrun2.16b	v8, v9, #2      ; encoding: [0x28,0x85,0x0e,0x6f]
   1901 ; CHECK: sqshrun.4h	v7, v8, #3      ; encoding: [0x07,0x85,0x1d,0x2f]
   1902 ; CHECK: sqshrun2.8h	v6, v7, #4      ; encoding: [0xe6,0x84,0x1c,0x6f]
   1903 ; CHECK: sqshrun.2s	v5, v6, #5      ; encoding: [0xc5,0x84,0x3b,0x2f]
   1904 ; CHECK: sqshrun2.4s	v4, v5, #6      ; encoding: [0xa4,0x84,0x3a,0x6f]
   1905 ; CHECK: uqrshrn.8b	v9, v11, #1     ; encoding: [0x69,0x9d,0x0f,0x2f]
   1906 ; CHECK: uqrshrn2.16b	v8, v9, #2      ; encoding: [0x28,0x9d,0x0e,0x6f]
   1907 ; CHECK: uqrshrn.4h	v7, v8, #3      ; encoding: [0x07,0x9d,0x1d,0x2f]
   1908 ; CHECK: uqrshrn2.8h	v6, v7, #4      ; encoding: [0xe6,0x9c,0x1c,0x6f]
   1909 ; CHECK: uqrshrn.2s	v5, v6, #5      ; encoding: [0xc5,0x9c,0x3b,0x2f]
   1910 ; CHECK: uqrshrn2.4s	v4, v5, #6      ; encoding: [0xa4,0x9c,0x3a,0x6f]
   1911 ; CHECK: uqshrn.8b	v9, v11, #1     ; encoding: [0x69,0x95,0x0f,0x2f]
   1912 ; CHECK: uqshrn2.16b	v8, v9, #2      ; encoding: [0x28,0x95,0x0e,0x6f]
   1913 ; CHECK: uqshrn.4h	v7, v8, #3      ; encoding: [0x07,0x95,0x1d,0x2f]
   1914 ; CHECK: uqshrn2.8h	v6, v7, #4      ; encoding: [0xe6,0x94,0x1c,0x6f]
   1915 ; CHECK: uqshrn.2s	v5, v6, #5      ; encoding: [0xc5,0x94,0x3b,0x2f]
   1916 ; CHECK: uqshrn2.4s	v4, v5, #6      ; encoding: [0xa4,0x94,0x3a,0x6f]
   1917 ; CHECK: sshll2.8h	v10, v3, #6     ; encoding: [0x6a,0xa4,0x0e,0x4f]
   1918 ; CHECK: sshll2.4s	v11, v4, #5     ; encoding: [0x8b,0xa4,0x15,0x4f]
   1919 ; CHECK: sshll2.2d	v12, v5, #4     ; encoding: [0xac,0xa4,0x24,0x4f]
   1920 ; CHECK: sshll.8h	v13, v6, #3     ; encoding: [0xcd,0xa4,0x0b,0x0f]
   1921 ; CHECK: sshll.4s	v14, v7, #2     ; encoding: [0xee,0xa4,0x12,0x0f]
   1922 ; CHECK: sshll.2d	v15, v8, #7     ; encoding: [0x0f,0xa5,0x27,0x0f]
   1923 ; CHECK: ushll2.8h	v10, v3, #6     ; encoding: [0x6a,0xa4,0x0e,0x6f]
   1924 ; CHECK: ushll2.4s	v11, v4, #5     ; encoding: [0x8b,0xa4,0x15,0x6f]
   1925 ; CHECK: ushll2.2d	v12, v5, #4     ; encoding: [0xac,0xa4,0x24,0x6f]
   1926 ; CHECK: ushll.8h	v13, v6, #3     ; encoding: [0xcd,0xa4,0x0b,0x2f]
   1927 ; CHECK: ushll.4s	v14, v7, #2     ; encoding: [0xee,0xa4,0x12,0x2f]
   1928 ; CHECK: ushll.2d	v15, v8, #7     ; encoding: [0x0f,0xa5,0x27,0x2f]
   1929 
   1930 
   1931   pmull.8h v0, v0, v0
   1932   pmull2.8h v0, v0, v0
   1933   pmull.1q v2, v3, v4
   1934   pmull2.1q v2, v3, v4
   1935   pmull v2.1q, v3.1d, v4.1d
   1936   pmull2 v2.1q, v3.2d, v4.2d
   1937 
   1938 ; CHECK: pmull.8h	v0, v0, v0      ; encoding: [0x00,0xe0,0x20,0x0e]
   1939 ; CHECK: pmull2.8h	v0, v0, v0      ; encoding: [0x00,0xe0,0x20,0x4e]
   1940 ; CHECK: pmull.1q	v2, v3, v4      ; encoding: [0x62,0xe0,0xe4,0x0e]
   1941 ; CHECK: pmull2.1q	v2, v3, v4      ; encoding: [0x62,0xe0,0xe4,0x4e]
   1942 ; CHECK: pmull.1q	v2, v3, v4      ; encoding: [0x62,0xe0,0xe4,0x0e]
   1943 ; CHECK: pmull2.1q	v2, v3, v4      ; encoding: [0x62,0xe0,0xe4,0x4e]
   1944 
   1945 
   1946   faddp.2d d1, v2
   1947   faddp.2s s3, v4
   1948 ; CHECK: faddp.2d	d1, v2          ; encoding: [0x41,0xd8,0x70,0x7e]
   1949 ; CHECK: faddp.2s	s3, v4          ; encoding: [0x83,0xd8,0x30,0x7e]
   1950 
   1951   tbl.16b v2, {v4,v5,v6,v7}, v1
   1952   tbl.8b v0, {v4,v5,v6,v7}, v1
   1953   tbl.16b v2, {v5}, v1
   1954   tbl.8b v0, {v5}, v1
   1955   tbl.16b v2, {v5,v6,v7}, v1
   1956   tbl.8b v0, {v5,v6,v7}, v1
   1957   tbl.16b v2, {v6,v7}, v1
   1958   tbl.8b v0, {v6,v7}, v1
   1959 ; CHECK: tbl.16b	v2, { v4, v5, v6, v7 }, v1 ; encoding: [0x82,0x60,0x01,0x4e]
   1960 ; CHECK: tbl.8b	v0, { v4, v5, v6, v7 }, v1 ; encoding: [0x80,0x60,0x01,0x0e]
   1961 ; CHECK: tbl.16b	v2, { v5 }, v1          ; encoding: [0xa2,0x00,0x01,0x4e]
   1962 ; CHECK: tbl.8b	v0, { v5 }, v1          ; encoding: [0xa0,0x00,0x01,0x0e]
   1963 ; CHECK: tbl.16b	v2, { v5, v6, v7 }, v1  ; encoding: [0xa2,0x40,0x01,0x4e]
   1964 ; CHECK: tbl.8b	v0, { v5, v6, v7 }, v1  ; encoding: [0xa0,0x40,0x01,0x0e]
   1965 ; CHECK: tbl.16b	v2, { v6, v7 }, v1      ; encoding: [0xc2,0x20,0x01,0x4e]
   1966 ; CHECK: tbl.8b	v0, { v6, v7 }, v1      ; encoding: [0xc0,0x20,0x01,0x0e]
   1967 
   1968   tbl v2.16b, {v4.16b,v5.16b,v6.16b,v7.16b}, v1.16b
   1969   tbl v0.8b, {v4.16b,v5.16b,v6.16b,v7.16b}, v1.8b
   1970   tbl v2.16b, {v5.16b}, v1.16b
   1971   tbl v0.8b, {v5.16b}, v1.8b
   1972   tbl v2.16b, {v5.16b,v6.16b,v7.16b}, v1.16b
   1973   tbl v0.8b, {v5.16b,v6.16b,v7.16b}, v1.8b
   1974   tbl v2.16b, {v6.16b,v7.16b}, v1.16b
   1975   tbl v0.8b, {v6.16b,v7.16b}, v1.8b
   1976 ; CHECK: tbl.16b v2, { v4, v5, v6, v7 }, v1 ; encoding: [0x82,0x60,0x01,0x4e]
   1977 ; CHECK: tbl.8b v0, { v4, v5, v6, v7 }, v1 ; encoding: [0x80,0x60,0x01,0x0e]
   1978 ; CHECK: tbl.16b v2, { v5 }, v1          ; encoding: [0xa2,0x00,0x01,0x4e]
   1979 ; CHECK: tbl.8b v0, { v5 }, v1          ; encoding: [0xa0,0x00,0x01,0x0e]
   1980 ; CHECK: tbl.16b v2, { v5, v6, v7 }, v1  ; encoding: [0xa2,0x40,0x01,0x4e]
   1981 ; CHECK: tbl.8b v0, { v5, v6, v7 }, v1  ; encoding: [0xa0,0x40,0x01,0x0e]
   1982 ; CHECK: tbl.16b v2, { v6, v7 }, v1      ; encoding: [0xc2,0x20,0x01,0x4e]
   1983 ; CHECK: tbl.8b v0, { v6, v7 }, v1      ; encoding: [0xc0,0x20,0x01,0x0e]
   1984 
   1985   sqdmull	s0, h0, h0
   1986   sqdmull	d0, s0, s0
   1987 ; CHECK: sqdmull	s0, h0, h0              ; encoding: [0x00,0xd0,0x60,0x5e]
   1988 ; CHECK: sqdmull	d0, s0, s0              ; encoding: [0x00,0xd0,0xa0,0x5e]
   1989 
   1990   frsqrte s0, s0
   1991   frsqrte d0, d0
   1992 ; CHECK: frsqrte s0, s0                  ; encoding: [0x00,0xd8,0xa1,0x7e]
   1993 ; CHECK: frsqrte d0, d0                  ; encoding: [0x00,0xd8,0xe1,0x7e]
   1994 
   1995   mov.16b v0, v0
   1996   mov.2s v0, v0
   1997 ; CHECK: mov.16b v0, v0              ; encoding: [0x00,0x1c,0xa0,0x4e]
   1998 ; CHECK: mov.8b v0, v0              ; encoding: [0x00,0x1c,0xa0,0x0e]
   1999 
   2000 
   2001 ; uadalp/sadalp verbose mode aliases.
   2002   uadalp v14.4h, v25.8b
   2003   uadalp v15.8h, v24.16b
   2004   uadalp v16.2s, v23.4h
   2005   uadalp v17.4s, v22.8h
   2006   uadalp v18.1d, v21.2s
   2007   uadalp v19.2d, v20.4s
   2008 
   2009   sadalp v1.4h, v11.8b
   2010   sadalp v2.8h, v12.16b
   2011   sadalp v3.2s, v13.4h
   2012   sadalp v4.4s, v14.8h
   2013   sadalp v5.1d, v15.2s
   2014   sadalp v6.2d, v16.4s
   2015 
   2016 ; CHECK: uadalp.4h	v14, v25        ; encoding: [0x2e,0x6b,0x20,0x2e]
   2017 ; CHECK: uadalp.8h	v15, v24        ; encoding: [0x0f,0x6b,0x20,0x6e]
   2018 ; CHECK: uadalp.2s	v16, v23        ; encoding: [0xf0,0x6a,0x60,0x2e]
   2019 ; CHECK: uadalp.4s	v17, v22        ; encoding: [0xd1,0x6a,0x60,0x6e]
   2020 ; CHECK: uadalp.1d	v18, v21        ; encoding: [0xb2,0x6a,0xa0,0x2e]
   2021 ; CHECK: uadalp.2d	v19, v20        ; encoding: [0x93,0x6a,0xa0,0x6e]
   2022 ; CHECK: sadalp.4h	v1, v11         ; encoding: [0x61,0x69,0x20,0x0e]
   2023 ; CHECK: sadalp.8h	v2, v12         ; encoding: [0x82,0x69,0x20,0x4e]
   2024 ; CHECK: sadalp.2s	v3, v13         ; encoding: [0xa3,0x69,0x60,0x0e]
   2025 ; CHECK: sadalp.4s	v4, v14         ; encoding: [0xc4,0x69,0x60,0x4e]
   2026 ; CHECK: sadalp.1d	v5, v15         ; encoding: [0xe5,0x69,0xa0,0x0e]
   2027 ; CHECK: sadalp.2d	v6, v16         ; encoding: [0x06,0x6a,0xa0,0x4e]
   2028 
   2029 ; MVN is an alias for 'not'.
   2030   mvn v1.8b, v4.8b
   2031   mvn v19.16b, v17.16b
   2032   mvn.8b v10, v6
   2033   mvn.16b v11, v7
   2034 
   2035 ; CHECK: mvn.8b	v1, v4                  ; encoding: [0x81,0x58,0x20,0x2e]
   2036 ; CHECK: mvn.16b	v19, v17                ; encoding: [0x33,0x5a,0x20,0x6e]
   2037 ; CHECK: mvn.8b	v10, v6                 ; encoding: [0xca,0x58,0x20,0x2e]
   2038 ; CHECK: mvn.16b	v11, v7                 ; encoding: [0xeb,0x58,0x20,0x6e]
   2039 
   2040 ; sqdmull verbose mode aliases
   2041  sqdmull v10.4s, v12.4h, v12.4h
   2042  sqdmull2 v10.4s, v13.8h, v13.8h
   2043  sqdmull v10.2d, v13.2s, v13.2s
   2044  sqdmull2 v10.2d, v13.4s, v13.4s
   2045 ; CHECK: sqdmull.4s	v10, v12, v12   ; encoding: [0x8a,0xd1,0x6c,0x0e]
   2046 ; CHECK: sqdmull2.4s	v10, v13, v13   ; encoding: [0xaa,0xd1,0x6d,0x4e]
   2047 ; CHECK: sqdmull.2d	v10, v13, v13   ; encoding: [0xaa,0xd1,0xad,0x0e]
   2048 ; CHECK: sqdmull2.2d	v10, v13, v13   ; encoding: [0xaa,0xd1,0xad,0x4e]
   2049 
   2050 ; xtn verbose mode aliases
   2051  xtn v14.8b, v14.8h
   2052  xtn2 v14.16b, v14.8h
   2053  xtn v14.4h, v14.4s
   2054  xtn2 v14.8h, v14.4s
   2055  xtn v14.2s, v14.2d
   2056  xtn2 v14.4s, v14.2d
   2057 ; CHECK: xtn.8b v14, v14                ; encoding: [0xce,0x29,0x21,0x0e]
   2058 ; CHECK: xtn2.16b v14, v14              ; encoding: [0xce,0x29,0x21,0x4e]
   2059 ; CHECK: xtn.4h v14, v14                ; encoding: [0xce,0x29,0x61,0x0e]
   2060 ; CHECK: xtn2.8h v14, v14               ; encoding: [0xce,0x29,0x61,0x4e]
   2061 ; CHECK: xtn.2s v14, v14                ; encoding: [0xce,0x29,0xa1,0x0e]
   2062 ; CHECK: xtn2.4s v14, v14               ; encoding: [0xce,0x29,0xa1,0x4e]
   2063 
   2064 ; uaddl verbose mode aliases
   2065  uaddl v9.8h, v13.8b, v14.8b
   2066  uaddl2 v9.8h, v13.16b, v14.16b
   2067  uaddl v9.4s, v13.4h, v14.4h
   2068  uaddl2 v9.4s, v13.8h, v14.8h
   2069  uaddl v9.2d, v13.2s, v14.2s
   2070  uaddl2 v9.2d, v13.4s, v14.4s
   2071 ; CHECK: uaddl.8h	v9, v13, v14    ; encoding: [0xa9,0x01,0x2e,0x2e]
   2072 ; CHECK: uaddl2.8h	v9, v13, v14    ; encoding: [0xa9,0x01,0x2e,0x6e]
   2073 ; CHECK: uaddl.4s	v9, v13, v14    ; encoding: [0xa9,0x01,0x6e,0x2e]
   2074 ; CHECK: uaddl2.4s	v9, v13, v14    ; encoding: [0xa9,0x01,0x6e,0x6e]
   2075 ; CHECK: uaddl.2d	v9, v13, v14    ; encoding: [0xa9,0x01,0xae,0x2e]
   2076 ; CHECK: uaddl2.2d	v9, v13, v14    ; encoding: [0xa9,0x01,0xae,0x6e]
   2077 
   2078 ; bit verbose mode aliases
   2079  bit v9.16b, v10.16b, v10.16b
   2080  bit v9.8b, v10.8b, v10.8b
   2081 ; CHECK: bit.16b v9, v10, v10           ; encoding: [0x49,0x1d,0xaa,0x6e]
   2082 ; CHECK: bit.8b v9, v10, v10            ; encoding: [0x49,0x1d,0xaa,0x2e]
   2083 
   2084 ; pmull verbose mode aliases
   2085  pmull v8.8h, v8.8b, v8.8b
   2086  pmull2 v8.8h, v8.16b, v8.16b
   2087  pmull v8.1q, v8.1d, v8.1d
   2088  pmull2 v8.1q, v8.2d, v8.2d
   2089 ; CHECK: pmull.8h	v8, v8, v8      ; encoding: [0x08,0xe1,0x28,0x0e]
   2090 ; CHECK: pmull2.8h	v8, v8, v8      ; encoding: [0x08,0xe1,0x28,0x4e]
   2091 ; CHECK: pmull.1q	v8, v8, v8      ; encoding: [0x08,0xe1,0xe8,0x0e]
   2092 ; CHECK: pmull2.1q	v8, v8, v8      ; encoding: [0x08,0xe1,0xe8,0x4e]
   2093 
   2094 ; usubl verbose mode aliases
   2095  usubl v9.8h, v13.8b, v14.8b
   2096  usubl2 v9.8h, v13.16b, v14.16b
   2097  usubl v9.4s, v13.4h, v14.4h
   2098  usubl2 v9.4s, v13.8h, v14.8h
   2099  usubl v9.2d, v13.2s, v14.2s
   2100  usubl2 v9.2d, v13.4s, v14.4s
   2101 ; CHECK: usubl.8h	v9, v13, v14    ; encoding: [0xa9,0x21,0x2e,0x2e]
   2102 ; CHECK: usubl2.8h	v9, v13, v14    ; encoding: [0xa9,0x21,0x2e,0x6e]
   2103 ; CHECK: usubl.4s	v9, v13, v14    ; encoding: [0xa9,0x21,0x6e,0x2e]
   2104 ; CHECK: usubl2.4s	v9, v13, v14    ; encoding: [0xa9,0x21,0x6e,0x6e]
   2105 ; CHECK: usubl.2d	v9, v13, v14    ; encoding: [0xa9,0x21,0xae,0x2e]
   2106 ; CHECK: usubl2.2d	v9, v13, v14    ; encoding: [0xa9,0x21,0xae,0x6e]
   2107 
   2108 ; uabdl verbose mode aliases
   2109  uabdl v9.8h, v13.8b, v14.8b
   2110  uabdl2 v9.8h, v13.16b, v14.16b
   2111  uabdl v9.4s, v13.4h, v14.4h
   2112  uabdl2 v9.4s, v13.8h, v14.8h
   2113  uabdl v9.2d, v13.2s, v14.2s
   2114  uabdl2 v9.2d, v13.4s, v14.4s
   2115 ; CHECK: uabdl.8h	v9, v13, v14    ; encoding: [0xa9,0x71,0x2e,0x2e]
   2116 ; CHECK: uabdl2.8h	v9, v13, v14    ; encoding: [0xa9,0x71,0x2e,0x6e]
   2117 ; CHECK: uabdl.4s	v9, v13, v14    ; encoding: [0xa9,0x71,0x6e,0x2e]
   2118 ; CHECK: uabdl2.4s	v9, v13, v14    ; encoding: [0xa9,0x71,0x6e,0x6e]
   2119 ; CHECK: uabdl.2d	v9, v13, v14    ; encoding: [0xa9,0x71,0xae,0x2e]
   2120 ; CHECK: uabdl2.2d	v9, v13, v14    ; encoding: [0xa9,0x71,0xae,0x6e]
   2121 
   2122 ; umull verbose mode aliases
   2123  umull v9.8h, v13.8b, v14.8b
   2124  umull2 v9.8h, v13.16b, v14.16b
   2125  umull v9.4s, v13.4h, v14.4h
   2126  umull2 v9.4s, v13.8h, v14.8h
   2127  umull v9.2d, v13.2s, v14.2s
   2128  umull2 v9.2d, v13.4s, v14.4s
   2129 ; CHECK: umull.8h	v9, v13, v14    ; encoding: [0xa9,0xc1,0x2e,0x2e]
   2130 ; CHECK: umull2.8h	v9, v13, v14    ; encoding: [0xa9,0xc1,0x2e,0x6e]
   2131 ; CHECK: umull.4s	v9, v13, v14    ; encoding: [0xa9,0xc1,0x6e,0x2e]
   2132 ; CHECK: umull2.4s	v9, v13, v14    ; encoding: [0xa9,0xc1,0x6e,0x6e]
   2133 ; CHECK: umull.2d	v9, v13, v14    ; encoding: [0xa9,0xc1,0xae,0x2e]
   2134 ; CHECK: umull2.2d	v9, v13, v14    ; encoding: [0xa9,0xc1,0xae,0x6e]
   2135 
   2136 ; smull verbose mode aliases
   2137  smull v9.8h, v13.8b, v14.8b
   2138  smull2 v9.8h, v13.16b, v14.16b
   2139  smull v9.4s, v13.4h, v14.4h
   2140  smull2 v9.4s, v13.8h, v14.8h
   2141  smull v9.2d, v13.2s, v14.2s
   2142  smull2 v9.2d, v13.4s, v14.4s
   2143 ; CHECK: smull.8h	v9, v13, v14    ; encoding: [0xa9,0xc1,0x2e,0x0e]
   2144 ; CHECK: smull2.8h	v9, v13, v14    ; encoding: [0xa9,0xc1,0x2e,0x4e]
   2145 ; CHECK: smull.4s	v9, v13, v14    ; encoding: [0xa9,0xc1,0x6e,0x0e]
   2146 ; CHECK: smull2.4s	v9, v13, v14    ; encoding: [0xa9,0xc1,0x6e,0x4e]
   2147 ; CHECK: smull.2d	v9, v13, v14    ; encoding: [0xa9,0xc1,0xae,0x0e]
   2148 ; CHECK: smull2.2d	v9, v13, v14    ; encoding: [0xa9,0xc1,0xae,0x4e]
   2149