Home | History | Annotate | Download | only in ARM
      1 @ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
      2 
      3 _foo:
      4 	vshl.u8	d16, d17, d16
      5 	vshl.u16	d16, d17, d16
      6 	vshl.u32	d16, d17, d16
      7 	vshl.u64	d16, d17, d16
      8 	vshl.i8	d16, d16, #7
      9 	vshl.i16	d16, d16, #15
     10 	vshl.i32	d16, d16, #31
     11 	vshl.i64	d16, d16, #63
     12 	vshl.u8	q8, q9, q8
     13 	vshl.u16	q8, q9, q8
     14 	vshl.u32	q8, q9, q8
     15 	vshl.u64	q8, q9, q8
     16 	vshl.i8	q8, q8, #7
     17 	vshl.i16	q8, q8, #15
     18 	vshl.i32	q8, q8, #31
     19 	vshl.i64	q8, q8, #63
     20 
     21 @ CHECK: vshl.u8	d16, d17, d16  @ encoding: [0xa1,0x04,0x40,0xf3]
     22 @ CHECK: vshl.u16	d16, d17, d16  @ encoding: [0xa1,0x04,0x50,0xf3]
     23 @ CHECK: vshl.u32	d16, d17, d16  @ encoding: [0xa1,0x04,0x60,0xf3]
     24 @ CHECK: vshl.u64	d16, d17, d16  @ encoding: [0xa1,0x04,0x70,0xf3]
     25 @ CHECK: vshl.i8	d16, d16, #7  @ encoding: [0x30,0x05,0xcf,0xf2]
     26 @ CHECK: vshl.i16	d16, d16, #15  @ encoding: [0x30,0x05,0xdf,0xf2]
     27 @ CHECK: vshl.i32	d16, d16, #31  @ encoding: [0x30,0x05,0xff,0xf2]
     28 @ CHECK: vshl.i64	d16, d16, #63  @ encoding: [0xb0,0x05,0xff,0xf2]
     29 @ CHECK: vshl.u8	q8, q9, q8  @ encoding: [0xe2,0x04,0x40,0xf3]
     30 @ CHECK: vshl.u16	q8, q9, q8  @ encoding: [0xe2,0x04,0x50,0xf3]
     31 @ CHECK: vshl.u32	q8, q9, q8  @ encoding: [0xe2,0x04,0x60,0xf3]
     32 @ CHECK: vshl.u64	q8, q9, q8  @ encoding: [0xe2,0x04,0x70,0xf3]
     33 @ CHECK: vshl.i8	q8, q8, #7  @ encoding: [0x70,0x05,0xcf,0xf2]
     34 @ CHECK: vshl.i16	q8, q8, #15  @ encoding: [0x70,0x05,0xdf,0xf2]
     35 @ CHECK: vshl.i32	q8, q8, #31  @ encoding: [0x70,0x05,0xff,0xf2]
     36 @ CHECK: vshl.i64	q8, q8, #63  @ encoding: [0xf0,0x05,0xff,0xf2]
     37 
     38 
     39 	vshr.u8	d16, d16, #7
     40 	vshr.u16	d16, d16, #15
     41 	vshr.u32	d16, d16, #31
     42 	vshr.u64	d16, d16, #63
     43 	vshr.u8	q8, q8, #7
     44 	vshr.u16	q8, q8, #15
     45 	vshr.u32	q8, q8, #31
     46 	vshr.u64	q8, q8, #63
     47 	vshr.s8	d16, d16, #7
     48 	vshr.s16	d16, d16, #15
     49 	vshr.s32	d16, d16, #31
     50 	vshr.s64	d16, d16, #63
     51 	vshr.s8	q8, q8, #7
     52 	vshr.s16	q8, q8, #15
     53 	vshr.s32	q8, q8, #31
     54 	vshr.s64	q8, q8, #63
     55 
     56 @ CHECK: vshr.u8	d16, d16, #7  @ encoding: [0x30,0x00,0xc9,0xf3]
     57 @ CHECK: vshr.u16	d16, d16, #15  @ encoding: [0x30,0x00,0xd1,0xf3]
     58 @ CHECK: vshr.u32	d16, d16, #31  @ encoding: [0x30,0x00,0xe1,0xf3]
     59 @ CHECK: vshr.u64	d16, d16, #63  @ encoding: [0xb0,0x00,0xc1,0xf3]
     60 @ CHECK: vshr.u8	q8, q8, #7  @ encoding: [0x70,0x00,0xc9,0xf3]
     61 @ CHECK: vshr.u16	q8, q8, #15  @ encoding: [0x70,0x00,0xd1,0xf3]
     62 @ CHECK: vshr.u32	q8, q8, #31  @ encoding: [0x70,0x00,0xe1,0xf3]
     63 @ CHECK: vshr.u64	q8, q8, #63  @ encoding: [0xf0,0x00,0xc1,0xf3]
     64 @ CHECK: vshr.s8	d16, d16, #7  @ encoding: [0x30,0x00,0xc9,0xf2]
     65 @ CHECK: vshr.s16	d16, d16, #15  @ encoding: [0x30,0x00,0xd1,0xf2]
     66 @ CHECK: vshr.s32	d16, d16, #31  @ encoding: [0x30,0x00,0xe1,0xf2]
     67 @ CHECK: vshr.s64	d16, d16, #63  @ encoding: [0xb0,0x00,0xc1,0xf2]
     68 @ CHECK: vshr.s8	q8, q8, #7  @ encoding: [0x70,0x00,0xc9,0xf2]
     69 @ CHECK: vshr.s16	q8, q8, #15  @ encoding: [0x70,0x00,0xd1,0xf2]
     70 @ CHECK: vshr.s32	q8, q8, #31  @ encoding: [0x70,0x00,0xe1,0xf2]
     71 @ CHECK: vshr.s64	q8, q8, #63  @ encoding: [0xf0,0x00,0xc1,0xf2]
     72 
     73 @ implied destination operand variants.
     74 	vshr.u8	d16, #7
     75 	vshr.u16	d16, #15
     76 	vshr.u32	d16, #31
     77 	vshr.u64	d16, #63
     78 	vshr.u8	q8, #7
     79 	vshr.u16	q8, #15
     80 	vshr.u32	q8, #31
     81 	vshr.u64	q8, #63
     82 	vshr.s8	d16, #7
     83 	vshr.s16	d16, #15
     84 	vshr.s32	d16, #31
     85 	vshr.s64	d16, #63
     86 	vshr.s8	q8, #7
     87 	vshr.s16	q8, #15
     88 	vshr.s32	q8, #31
     89 	vshr.s64	q8, #63
     90 
     91 @ CHECK: vshr.u8	d16, d16, #7  @ encoding: [0x30,0x00,0xc9,0xf3]
     92 @ CHECK: vshr.u16	d16, d16, #15  @ encoding: [0x30,0x00,0xd1,0xf3]
     93 @ CHECK: vshr.u32	d16, d16, #31  @ encoding: [0x30,0x00,0xe1,0xf3]
     94 @ CHECK: vshr.u64	d16, d16, #63  @ encoding: [0xb0,0x00,0xc1,0xf3]
     95 @ CHECK: vshr.u8	q8, q8, #7  @ encoding: [0x70,0x00,0xc9,0xf3]
     96 @ CHECK: vshr.u16	q8, q8, #15  @ encoding: [0x70,0x00,0xd1,0xf3]
     97 @ CHECK: vshr.u32	q8, q8, #31  @ encoding: [0x70,0x00,0xe1,0xf3]
     98 @ CHECK: vshr.u64	q8, q8, #63  @ encoding: [0xf0,0x00,0xc1,0xf3]
     99 @ CHECK: vshr.s8	d16, d16, #7  @ encoding: [0x30,0x00,0xc9,0xf2]
    100 @ CHECK: vshr.s16	d16, d16, #15  @ encoding: [0x30,0x00,0xd1,0xf2]
    101 @ CHECK: vshr.s32	d16, d16, #31  @ encoding: [0x30,0x00,0xe1,0xf2]
    102 @ CHECK: vshr.s64	d16, d16, #63  @ encoding: [0xb0,0x00,0xc1,0xf2]
    103 @ CHECK: vshr.s8	q8, q8, #7  @ encoding: [0x70,0x00,0xc9,0xf2]
    104 @ CHECK: vshr.s16	q8, q8, #15  @ encoding: [0x70,0x00,0xd1,0xf2]
    105 @ CHECK: vshr.s32	q8, q8, #31  @ encoding: [0x70,0x00,0xe1,0xf2]
    106 @ CHECK: vshr.s64	q8, q8, #63  @ encoding: [0xf0,0x00,0xc1,0xf2]
    107 
    108 
    109 	vsra.s8   d16, d6, #7
    110 	vsra.s16  d26, d18, #15
    111 	vsra.s32  d11, d10, #31
    112 	vsra.s64  d12, d19, #63
    113 	vsra.s8   q1, q8, #7
    114 	vsra.s16  q2, q7, #15
    115 	vsra.s32  q3, q6, #31
    116 	vsra.s64  q4, q5, #63
    117 
    118 	vsra.s8   d16, #7
    119 	vsra.s16  d15, #15
    120 	vsra.s32  d14, #31
    121 	vsra.s64  d13, #63
    122 	vsra.s8   q4, #7
    123 	vsra.s16  q5, #15
    124 	vsra.s32  q6, #31
    125 	vsra.s64  q7, #63
    126 
    127 @ CHECK: vsra.s8	d16, d6, #7     @ encoding: [0x16,0x01,0xc9,0xf2]
    128 @ CHECK: vsra.s16	d26, d18, #15   @ encoding: [0x32,0xa1,0xd1,0xf2]
    129 @ CHECK: vsra.s32	d11, d10, #31   @ encoding: [0x1a,0xb1,0xa1,0xf2]
    130 @ CHECK: vsra.s64	d12, d19, #63   @ encoding: [0xb3,0xc1,0x81,0xf2]
    131 @ CHECK: vsra.s8	q1, q8, #7      @ encoding: [0x70,0x21,0x89,0xf2]
    132 @ CHECK: vsra.s16	q2, q7, #15     @ encoding: [0x5e,0x41,0x91,0xf2]
    133 @ CHECK: vsra.s32	q3, q6, #31     @ encoding: [0x5c,0x61,0xa1,0xf2]
    134 @ CHECK: vsra.s64	q4, q5, #63     @ encoding: [0xda,0x81,0x81,0xf2]
    135 @ CHECK: vsra.s8	d16, d16, #7    @ encoding: [0x30,0x01,0xc9,0xf2]
    136 @ CHECK: vsra.s16	d15, d15, #15   @ encoding: [0x1f,0xf1,0x91,0xf2]
    137 @ CHECK: vsra.s32	d14, d14, #31   @ encoding: [0x1e,0xe1,0xa1,0xf2]
    138 @ CHECK: vsra.s64	d13, d13, #63   @ encoding: [0x9d,0xd1,0x81,0xf2]
    139 @ CHECK: vsra.s8	q4, q4, #7      @ encoding: [0x58,0x81,0x89,0xf2]
    140 @ CHECK: vsra.s16	q5, q5, #15     @ encoding: [0x5a,0xa1,0x91,0xf2]
    141 @ CHECK: vsra.s32	q6, q6, #31     @ encoding: [0x5c,0xc1,0xa1,0xf2]
    142 @ CHECK: vsra.s64	q7, q7, #63     @ encoding: [0xde,0xe1,0x81,0xf2]
    143 
    144 
    145 	vsra.u8   d16, d6, #7
    146 	vsra.u16  d26, d18, #15
    147 	vsra.u32  d11, d10, #31
    148 	vsra.u64  d12, d19, #63
    149 	vsra.u8   q1, q8, #7
    150 	vsra.u16  q2, q7, #15
    151 	vsra.u32  q3, q6, #31
    152 	vsra.u64  q4, q5, #63
    153 
    154 	vsra.u8   d16, #7
    155 	vsra.u16  d15, #15
    156 	vsra.u32  d14, #31
    157 	vsra.u64  d13, #63
    158 	vsra.u8   q4, #7
    159 	vsra.u16  q5, #15
    160 	vsra.u32  q6, #31
    161 	vsra.u64  q7, #63
    162 
    163 @ CHECK: vsra.u8	d16, d6, #7     @ encoding: [0x16,0x01,0xc9,0xf3]
    164 @ CHECK: vsra.u16	d26, d18, #15   @ encoding: [0x32,0xa1,0xd1,0xf3]
    165 @ CHECK: vsra.u32	d11, d10, #31   @ encoding: [0x1a,0xb1,0xa1,0xf3]
    166 @ CHECK: vsra.u64	d12, d19, #63   @ encoding: [0xb3,0xc1,0x81,0xf3]
    167 @ CHECK: vsra.u8	q1, q8, #7      @ encoding: [0x70,0x21,0x89,0xf3]
    168 @ CHECK: vsra.u16	q2, q7, #15     @ encoding: [0x5e,0x41,0x91,0xf3]
    169 @ CHECK: vsra.u32	q3, q6, #31     @ encoding: [0x5c,0x61,0xa1,0xf3]
    170 @ CHECK: vsra.u64	q4, q5, #63     @ encoding: [0xda,0x81,0x81,0xf3]
    171 @ CHECK: vsra.u8	d16, d16, #7    @ encoding: [0x30,0x01,0xc9,0xf3]
    172 @ CHECK: vsra.u16	d15, d15, #15   @ encoding: [0x1f,0xf1,0x91,0xf3]
    173 @ CHECK: vsra.u32	d14, d14, #31   @ encoding: [0x1e,0xe1,0xa1,0xf3]
    174 @ CHECK: vsra.u64	d13, d13, #63   @ encoding: [0x9d,0xd1,0x81,0xf3]
    175 @ CHECK: vsra.u8	q4, q4, #7      @ encoding: [0x58,0x81,0x89,0xf3]
    176 @ CHECK: vsra.u16	q5, q5, #15     @ encoding: [0x5a,0xa1,0x91,0xf3]
    177 @ CHECK: vsra.u32	q6, q6, #31     @ encoding: [0x5c,0xc1,0xa1,0xf3]
    178 @ CHECK: vsra.u64	q7, q7, #63     @ encoding: [0xde,0xe1,0x81,0xf3]
    179 
    180 
    181 	vsri.8   d16, d6, #7
    182 	vsri.16  d26, d18, #15
    183 	vsri.32  d11, d10, #31
    184 	vsri.64  d12, d19, #63
    185 	vsri.8   q1, q8, #7
    186 	vsri.16  q2, q7, #15
    187 	vsri.32  q3, q6, #31
    188 	vsri.64  q4, q5, #63
    189 
    190 	vsri.8   d16, #7
    191 	vsri.16  d15, #15
    192 	vsri.32  d14, #31
    193 	vsri.64  d13, #63
    194 	vsri.8   q4, #7
    195 	vsri.16  q5, #15
    196 	vsri.32  q6, #31
    197 	vsri.64  q7, #63
    198 
    199 @ CHECK: vsri.8	d16, d6, #7             @ encoding: [0x16,0x04,0xc9,0xf3]
    200 @ CHECK: vsri.16 d26, d18, #15          @ encoding: [0x32,0xa4,0xd1,0xf3]
    201 @ CHECK: vsri.32 d11, d10, #31          @ encoding: [0x1a,0xb4,0xa1,0xf3]
    202 @ CHECK: vsri.64 d12, d19, #63          @ encoding: [0xb3,0xc4,0x81,0xf3]
    203 @ CHECK: vsri.8	q1, q8, #7              @ encoding: [0x70,0x24,0x89,0xf3]
    204 @ CHECK: vsri.16 q2, q7, #15            @ encoding: [0x5e,0x44,0x91,0xf3]
    205 @ CHECK: vsri.32 q3, q6, #31            @ encoding: [0x5c,0x64,0xa1,0xf3]
    206 @ CHECK: vsri.64 q4, q5, #63            @ encoding: [0xda,0x84,0x81,0xf3]
    207 @ CHECK: vsri.8	d16, d16, #7            @ encoding: [0x30,0x04,0xc9,0xf3]
    208 @ CHECK: vsri.16 d15, d15, #15          @ encoding: [0x1f,0xf4,0x91,0xf3]
    209 @ CHECK: vsri.32 d14, d14, #31          @ encoding: [0x1e,0xe4,0xa1,0xf3]
    210 @ CHECK: vsri.64 d13, d13, #63          @ encoding: [0x9d,0xd4,0x81,0xf3]
    211 @ CHECK: vsri.8	q4, q4, #7              @ encoding: [0x58,0x84,0x89,0xf3]
    212 @ CHECK: vsri.16 q5, q5, #15            @ encoding: [0x5a,0xa4,0x91,0xf3]
    213 @ CHECK: vsri.32 q6, q6, #31            @ encoding: [0x5c,0xc4,0xa1,0xf3]
    214 @ CHECK: vsri.64 q7, q7, #63            @ encoding: [0xde,0xe4,0x81,0xf3]
    215 
    216 
    217 	vsli.8   d16, d6, #7
    218 	vsli.16  d26, d18, #15
    219 	vsli.32  d11, d10, #31
    220 	vsli.64  d12, d19, #63
    221 	vsli.8   q1, q8, #7
    222 	vsli.16  q2, q7, #15
    223 	vsli.32  q3, q6, #31
    224 	vsli.64  q4, q5, #63
    225 
    226 	vsli.8   d16, #7
    227 	vsli.16  d15, #15
    228 	vsli.32  d14, #31
    229 	vsli.64  d13, #63
    230 	vsli.8   q4, #7
    231 	vsli.16  q5, #15
    232 	vsli.32  q6, #31
    233 	vsli.64  q7, #63
    234 
    235 @ CHECK: vsli.8	d16, d6, #7             @ encoding: [0x16,0x05,0xcf,0xf3]
    236 @ CHECK: vsli.16 d26, d18, #15          @ encoding: [0x32,0xa5,0xdf,0xf3]
    237 @ CHECK: vsli.32 d11, d10, #31          @ encoding: [0x1a,0xb5,0xbf,0xf3]
    238 @ CHECK: vsli.64 d12, d19, #63          @ encoding: [0xb3,0xc5,0xbf,0xf3]
    239 @ CHECK: vsli.8	q1, q8, #7              @ encoding: [0x70,0x25,0x8f,0xf3]
    240 @ CHECK: vsli.16 q2, q7, #15            @ encoding: [0x5e,0x45,0x9f,0xf3]
    241 @ CHECK: vsli.32 q3, q6, #31            @ encoding: [0x5c,0x65,0xbf,0xf3]
    242 @ CHECK: vsli.64 q4, q5, #63            @ encoding: [0xda,0x85,0xbf,0xf3]
    243 @ CHECK: vsli.8	d16, d16, #7            @ encoding: [0x30,0x05,0xcf,0xf3]
    244 @ CHECK: vsli.16 d15, d15, #15          @ encoding: [0x1f,0xf5,0x9f,0xf3]
    245 @ CHECK: vsli.32 d14, d14, #31          @ encoding: [0x1e,0xe5,0xbf,0xf3]
    246 @ CHECK: vsli.64 d13, d13, #63          @ encoding: [0x9d,0xd5,0xbf,0xf3]
    247 @ CHECK: vsli.8	q4, q4, #7              @ encoding: [0x58,0x85,0x8f,0xf3]
    248 @ CHECK: vsli.16 q5, q5, #15            @ encoding: [0x5a,0xa5,0x9f,0xf3]
    249 @ CHECK: vsli.32 q6, q6, #31            @ encoding: [0x5c,0xc5,0xbf,0xf3]
    250 @ CHECK: vsli.64 q7, q7, #63            @ encoding: [0xde,0xe5,0xbf,0xf3]
    251 
    252 
    253 	vshll.s8	q8, d16, #7
    254 	vshll.s16	q8, d16, #15
    255 	vshll.s32	q8, d16, #31
    256 	vshll.u8	q8, d16, #7
    257 	vshll.u16	q8, d16, #15
    258 	vshll.u32	q8, d16, #31
    259 	vshll.i8	q8, d16, #8
    260 	vshll.i16	q8, d16, #16
    261 	vshll.i32	q8, d16, #32
    262 
    263 @ CHECK: vshll.s8	q8, d16, #7  @ encoding: [0x30,0x0a,0xcf,0xf2]
    264 @ CHECK: vshll.s16	q8, d16, #15  @ encoding: [0x30,0x0a,0xdf,0xf2]
    265 @ CHECK: vshll.s32	q8, d16, #31  @ encoding: [0x30,0x0a,0xff,0xf2]
    266 @ CHECK: vshll.u8	q8, d16, #7  @ encoding: [0x30,0x0a,0xcf,0xf3]
    267 @ CHECK: vshll.u16	q8, d16, #15  @ encoding: [0x30,0x0a,0xdf,0xf3]
    268 @ CHECK: vshll.u32	q8, d16, #31  @ encoding: [0x30,0x0a,0xff,0xf3]
    269 @ CHECK: vshll.i8	q8, d16, #8  @ encoding: [0x20,0x03,0xf2,0xf3]
    270 @ CHECK: vshll.i16	q8, d16, #16  @ encoding: [0x20,0x03,0xf6,0xf3]
    271 @ CHECK: vshll.i32	q8, d16, #32  @ encoding: [0x20,0x03,0xfa,0xf3]
    272 
    273 	vshrn.i16	d16, q8, #8
    274 	vshrn.i32	d16, q8, #16
    275 	vshrn.i64	d16, q8, #32
    276 
    277 @ CHECK: vshrn.i16	d16, q8, #8  @ encoding: [0x30,0x08,0xc8,0xf2]
    278 @ CHECK: vshrn.i32	d16, q8, #16  @ encoding: [0x30,0x08,0xd0,0xf2]
    279 @ CHECK: vshrn.i64	d16, q8, #32  @ encoding: [0x30,0x08,0xe0,0xf2]
    280 
    281 	vrshl.s8	d16, d17, d16
    282 	vrshl.s16	d16, d17, d16
    283 	vrshl.s32	d16, d17, d16
    284 	vrshl.s64	d16, d17, d16
    285 	vrshl.u8	d16, d17, d16
    286 	vrshl.u16	d16, d17, d16
    287 	vrshl.u32	d16, d17, d16
    288 	vrshl.u64	d16, d17, d16
    289 	vrshl.s8	q8, q9, q8
    290 	vrshl.s16	q8, q9, q8
    291 	vrshl.s32	q8, q9, q8
    292 	vrshl.s64	q8, q9, q8
    293 	vrshl.u8	q8, q9, q8
    294 	vrshl.u16	q8, q9, q8
    295 	vrshl.u32	q8, q9, q8
    296 	vrshl.u64	q8, q9, q8
    297 
    298 @ CHECK: vrshl.s8	d16, d17, d16  @ encoding: [0xa1,0x05,0x40,0xf2]
    299 @ CHECK: vrshl.s16	d16, d17, d16  @ encoding: [0xa1,0x05,0x50,0xf2]
    300 @ CHECK: vrshl.s32	d16, d17, d16  @ encoding: [0xa1,0x05,0x60,0xf2]
    301 @ CHECK: vrshl.s64	d16, d17, d16  @ encoding: [0xa1,0x05,0x70,0xf2]
    302 @ CHECK: vrshl.u8	d16, d17, d16  @ encoding: [0xa1,0x05,0x40,0xf3]
    303 @ CHECK: vrshl.u16	d16, d17, d16  @ encoding: [0xa1,0x05,0x50,0xf3]
    304 @ CHECK: vrshl.u32	d16, d17, d16  @ encoding: [0xa1,0x05,0x60,0xf3]
    305 @ CHECK: vrshl.u64	d16, d17, d16  @ encoding: [0xa1,0x05,0x70,0xf3]
    306 @ CHECK: vrshl.s8	q8, q9, q8  @ encoding: [0xe2,0x05,0x40,0xf2]
    307 @ CHECK: vrshl.s16	q8, q9, q8  @ encoding: [0xe2,0x05,0x50,0xf2]
    308 @ CHECK: vrshl.s32	q8, q9, q8  @ encoding: [0xe2,0x05,0x60,0xf2]
    309 @ CHECK: vrshl.s64	q8, q9, q8  @ encoding: [0xe2,0x05,0x70,0xf2]
    310 @ CHECK: vrshl.u8	q8, q9, q8  @ encoding: [0xe2,0x05,0x40,0xf3]
    311 @ CHECK: vrshl.u16	q8, q9, q8  @ encoding: [0xe2,0x05,0x50,0xf3]
    312 @ CHECK: vrshl.u32	q8, q9, q8  @ encoding: [0xe2,0x05,0x60,0xf3]
    313 @ CHECK: vrshl.u64	q8, q9, q8  @ encoding: [0xe2,0x05,0x70,0xf3]
    314 
    315 	vrshr.s8	d16, d16, #8
    316 	vrshr.s16	d16, d16, #16
    317 	vrshr.s32	d16, d16, #32
    318 	vrshr.s64	d16, d16, #64
    319 	vrshr.u8	d16, d16, #8
    320 	vrshr.u16	d16, d16, #16
    321 	vrshr.u32	d16, d16, #32
    322 	vrshr.u64	d16, d16, #64
    323 	vrshr.s8	q8, q8, #8
    324 	vrshr.s16	q8, q8, #16
    325 	vrshr.s32	q8, q8, #32
    326 	vrshr.s64	q8, q8, #64
    327 	vrshr.u8	q8, q8, #8
    328 	vrshr.u16	q8, q8, #16
    329 	vrshr.u32	q8, q8, #32
    330 	vrshr.u64	q8, q8, #64
    331 
    332 @ CHECK: vrshr.s8	d16, d16, #8  @ encoding: [0x30,0x02,0xc8,0xf2]
    333 @ CHECK: vrshr.s16	d16, d16, #16  @ encoding: [0x30,0x02,0xd0,0xf2]
    334 @ CHECK: vrshr.s32	d16, d16, #32  @ encoding: [0x30,0x02,0xe0,0xf2]
    335 @ CHECK: vrshr.s64	d16, d16, #64  @ encoding: [0xb0,0x02,0xc0,0xf2]
    336 @ CHECK: vrshr.u8	d16, d16, #8  @ encoding: [0x30,0x02,0xc8,0xf3]
    337 @ CHECK: vrshr.u16	d16, d16, #16  @ encoding: [0x30,0x02,0xd0,0xf3]
    338 @ CHECK: vrshr.u32	d16, d16, #32  @ encoding: [0x30,0x02,0xe0,0xf3]
    339 @ CHECK: vrshr.u64	d16, d16, #64  @ encoding: [0xb0,0x02,0xc0,0xf3]
    340 @ CHECK: vrshr.s8	q8, q8, #8  @ encoding: [0x70,0x02,0xc8,0xf2]
    341 @ CHECK: vrshr.s16	q8, q8, #16  @ encoding: [0x70,0x02,0xd0,0xf2]
    342 @ CHECK: vrshr.s32	q8, q8, #32  @ encoding: [0x70,0x02,0xe0,0xf2]
    343 @ CHECK: vrshr.s64	q8, q8, #64  @ encoding: [0xf0,0x02,0xc0,0xf2]
    344 @ CHECK: vrshr.u8	q8, q8, #8  @ encoding: [0x70,0x02,0xc8,0xf3]
    345 @ CHECK: vrshr.u16	q8, q8, #16  @ encoding: [0x70,0x02,0xd0,0xf3]
    346 @ CHECK: vrshr.u32	q8, q8, #32  @ encoding: [0x70,0x02,0xe0,0xf3]
    347 @ CHECK: vrshr.u64	q8, q8, #64  @ encoding: [0xf0,0x02,0xc0,0xf3]
    348 
    349 
    350 	vrshrn.i16	d16, q8, #8
    351 	vrshrn.i32	d16, q8, #16
    352 	vrshrn.i64	d16, q8, #32
    353 	vqrshrn.s16	d16, q8, #4
    354 	vqrshrn.s32	d16, q8, #13
    355 	vqrshrn.s64	d16, q8, #13
    356 	vqrshrn.u16	d16, q8, #4
    357 	vqrshrn.u32	d16, q8, #13
    358 	vqrshrn.u64	d16, q8, #13
    359 
    360 @ CHECK: vrshrn.i16	d16, q8, #8  @ encoding: [0x70,0x08,0xc8,0xf2]
    361 @ CHECK: vrshrn.i32	d16, q8, #16  @ encoding: [0x70,0x08,0xd0,0xf2]
    362 @ CHECK: vrshrn.i64	d16, q8, #32  @ encoding: [0x70,0x08,0xe0,0xf2]
    363 @ CHECK: vqrshrn.s16	d16, q8, #4  @ encoding: [0x70,0x09,0xcc,0xf2]
    364 @ CHECK: vqrshrn.s32	d16, q8, #13  @ encoding: [0x70,0x09,0xd3,0xf2]
    365 @ CHECK: vqrshrn.s64	d16, q8, #13  @ encoding: [0x70,0x09,0xf3,0xf2]
    366 @ CHECK: vqrshrn.u16	d16, q8, #4  @ encoding: [0x70,0x09,0xcc,0xf3]
    367 @ CHECK: vqrshrn.u32	d16, q8, #13  @ encoding: [0x70,0x09,0xd3,0xf3]
    368 @ CHECK: vqrshrn.u64	d16, q8, #13  @ encoding: [0x70,0x09,0xf3,0xf3]
    369 
    370 
    371 @ Optional destination operand variants.
    372         vshl.s8 q4, q5
    373         vshl.s16 q4, q5
    374         vshl.s32 q4, q5
    375         vshl.s64 q4, q5
    376 
    377         vshl.u8 q4, q5
    378         vshl.u16 q4, q5
    379         vshl.u32 q4, q5
    380         vshl.u64 q4, q5
    381 
    382         vshl.s8 d4, d5
    383         vshl.s16 d4, d5
    384         vshl.s32 d4, d5
    385         vshl.s64 d4, d5
    386 
    387         vshl.u8 d4, d5
    388         vshl.u16 d4, d5
    389         vshl.u32 d4, d5
    390         vshl.u64 d4, d5
    391 
    392 @ CHECK: vshl.s8	q4, q4, q5      @ encoding: [0x48,0x84,0x0a,0xf2]
    393 @ CHECK: vshl.s16	q4, q4, q5      @ encoding: [0x48,0x84,0x1a,0xf2]
    394 @ CHECK: vshl.s32	q4, q4, q5      @ encoding: [0x48,0x84,0x2a,0xf2]
    395 @ CHECK: vshl.s64	q4, q4, q5      @ encoding: [0x48,0x84,0x3a,0xf2]
    396 
    397 @ CHECK: vshl.u8	q4, q4, q5      @ encoding: [0x48,0x84,0x0a,0xf3]
    398 @ CHECK: vshl.u16	q4, q4, q5      @ encoding: [0x48,0x84,0x1a,0xf3]
    399 @ CHECK: vshl.u32	q4, q4, q5      @ encoding: [0x48,0x84,0x2a,0xf3]
    400 @ CHECK: vshl.u64	q4, q4, q5      @ encoding: [0x48,0x84,0x3a,0xf3]
    401 
    402 @ CHECK: vshl.s8	d4, d4, d5      @ encoding: [0x04,0x44,0x05,0xf2]
    403 @ CHECK: vshl.s16	d4, d4, d5      @ encoding: [0x04,0x44,0x15,0xf2]
    404 @ CHECK: vshl.s32	d4, d4, d5      @ encoding: [0x04,0x44,0x25,0xf2]
    405 @ CHECK: vshl.s64	d4, d4, d5      @ encoding: [0x04,0x44,0x35,0xf2]
    406 
    407 @ CHECK: vshl.u8	d4, d4, d5      @ encoding: [0x04,0x44,0x05,0xf3]
    408 @ CHECK: vshl.u16	d4, d4, d5      @ encoding: [0x04,0x44,0x15,0xf3]
    409 @ CHECK: vshl.u32	d4, d4, d5      @ encoding: [0x04,0x44,0x25,0xf3]
    410 @ CHECK: vshl.u64	d4, d4, d5      @ encoding: [0x04,0x44,0x35,0xf3]
    411 
    412         vshl.s8 q4, #2
    413         vshl.s16 q4, #14
    414         vshl.s32 q4, #27
    415         vshl.s64 q4, #35
    416 
    417         vshl.s8 d4, #6
    418         vshl.u16 d4, #10
    419         vshl.s32 d4, #17
    420         vshl.u64 d4, #43
    421 
    422 @ CHECK: vshl.i8	q4, q4, #2      @ encoding: [0x58,0x85,0x8a,0xf2]
    423 @ CHECK: vshl.i16	q4, q4, #14     @ encoding: [0x58,0x85,0x9e,0xf2]
    424 @ CHECK: vshl.i32	q4, q4, #27     @ encoding: [0x58,0x85,0xbb,0xf2]
    425 @ CHECK: vshl.i64	q4, q4, #35     @ encoding: [0xd8,0x85,0xa3,0xf2]
    426 
    427 @ CHECK: vshl.i8	d4, d4, #6      @ encoding: [0x14,0x45,0x8e,0xf2]
    428 @ CHECK: vshl.i16	d4, d4, #10     @ encoding: [0x14,0x45,0x9a,0xf2]
    429 @ CHECK: vshl.i32	d4, d4, #17     @ encoding: [0x14,0x45,0xb1,0xf2]
    430 @ CHECK: vshl.i64	d4, d4, #43     @ encoding: [0x94,0x45,0xab,0xf2]
    431 
    432         @ Two-operand VRSHL forms.
    433 	vrshl.s8	d11, d4
    434 	vrshl.s16	d12, d5
    435 	vrshl.s32	d13, d6
    436 	vrshl.s64	d14, d7
    437 	vrshl.u8	d15, d8
    438 	vrshl.u16	d16, d9
    439 	vrshl.u32	d17, d10
    440 	vrshl.u64	d18, d11
    441 	vrshl.s8	q1, q8
    442 	vrshl.s16	q2, q15
    443 	vrshl.s32	q3, q14
    444 	vrshl.s64	q4, q13
    445 	vrshl.u8	q5, q12
    446 	vrshl.u16	q6, q11
    447 	vrshl.u32	q7, q10
    448 	vrshl.u64	q8, q9
    449 
    450 @ CHECK: vrshl.s8	d11, d11, d4    @ encoding: [0x0b,0xb5,0x04,0xf2]
    451 @ CHECK: vrshl.s16	d12, d12, d5    @ encoding: [0x0c,0xc5,0x15,0xf2]
    452 @ CHECK: vrshl.s32	d13, d13, d6    @ encoding: [0x0d,0xd5,0x26,0xf2]
    453 @ CHECK: vrshl.s64	d14, d14, d7    @ encoding: [0x0e,0xe5,0x37,0xf2]
    454 @ CHECK: vrshl.u8	d15, d15, d8    @ encoding: [0x0f,0xf5,0x08,0xf3]
    455 @ CHECK: vrshl.u16	d16, d16, d9    @ encoding: [0x20,0x05,0x59,0xf3]
    456 @ CHECK: vrshl.u32	d17, d17, d10   @ encoding: [0x21,0x15,0x6a,0xf3]
    457 @ CHECK: vrshl.u64	d18, d18, d11   @ encoding: [0x22,0x25,0x7b,0xf3]
    458 @ CHECK: vrshl.s8	q1, q1, q8      @ encoding: [0xc2,0x25,0x00,0xf2]
    459 @ CHECK: vrshl.s16	q2, q2, q15     @ encoding: [0xc4,0x45,0x1e,0xf2]
    460 @ CHECK: vrshl.s32	q3, q3, q14     @ encoding: [0xc6,0x65,0x2c,0xf2]
    461 @ CHECK: vrshl.s64	q4, q4, q13     @ encoding: [0xc8,0x85,0x3a,0xf2]
    462 @ CHECK: vrshl.u8	q5, q5, q12     @ encoding: [0xca,0xa5,0x08,0xf3]
    463 @ CHECK: vrshl.u16	q6, q6, q11     @ encoding: [0xcc,0xc5,0x16,0xf3]
    464 @ CHECK: vrshl.u32	q7, q7, q10     @ encoding: [0xce,0xe5,0x24,0xf3]
    465 @ CHECK: vrshl.u64	q8, q8, q9      @ encoding: [0xe0,0x05,0x72,0xf3]
    466 
    467 
    468 @ Two-operand forms.
    469 	vshr.s8	d15, #8
    470 	vshr.s16	d12, #16
    471 	vshr.s32	d13, #32
    472 	vshr.s64	d14, #64
    473 	vshr.u8	d16, #8
    474 	vshr.u16	d17, #16
    475 	vshr.u32	d6, #32
    476 	vshr.u64	d10, #64
    477 	vshr.s8	q1, #8
    478 	vshr.s16	q2, #16
    479 	vshr.s32	q3, #32
    480 	vshr.s64	q4, #64
    481 	vshr.u8	q5, #8
    482 	vshr.u16	q6, #16
    483 	vshr.u32	q7, #32
    484 	vshr.u64	q8, #64
    485 
    486 @ CHECK: vshr.s8	d15, d15, #8    @ encoding: [0x1f,0xf0,0x88,0xf2]
    487 @ CHECK: vshr.s16	d12, d12, #16   @ encoding: [0x1c,0xc0,0x90,0xf2]
    488 @ CHECK: vshr.s32	d13, d13, #32   @ encoding: [0x1d,0xd0,0xa0,0xf2]
    489 @ CHECK: vshr.s64	d14, d14, #64   @ encoding: [0x9e,0xe0,0x80,0xf2]
    490 @ CHECK: vshr.u8	d16, d16, #8    @ encoding: [0x30,0x00,0xc8,0xf3]
    491 @ CHECK: vshr.u16	d17, d17, #16   @ encoding: [0x31,0x10,0xd0,0xf3]
    492 @ CHECK: vshr.u32	d6, d6, #32     @ encoding: [0x16,0x60,0xa0,0xf3]
    493 @ CHECK: vshr.u64	d10, d10, #64   @ encoding: [0x9a,0xa0,0x80,0xf3]
    494 @ CHECK: vshr.s8	q1, q1, #8      @ encoding: [0x52,0x20,0x88,0xf2]
    495 @ CHECK: vshr.s16	q2, q2, #16     @ encoding: [0x54,0x40,0x90,0xf2]
    496 @ CHECK: vshr.s32	q3, q3, #32     @ encoding: [0x56,0x60,0xa0,0xf2]
    497 @ CHECK: vshr.s64	q4, q4, #64     @ encoding: [0xd8,0x80,0x80,0xf2]
    498 @ CHECK: vshr.u8	q5, q5, #8      @ encoding: [0x5a,0xa0,0x88,0xf3]
    499 @ CHECK: vshr.u16	q6, q6, #16     @ encoding: [0x5c,0xc0,0x90,0xf3]
    500 @ CHECK: vshr.u32	q7, q7, #32     @ encoding: [0x5e,0xe0,0xa0,0xf3]
    501 @ CHECK: vshr.u64	q8, q8, #64     @ encoding: [0xf0,0x00,0xc0,0xf3]
    502 
    503 	vrshr.s8	d15, #8
    504 	vrshr.s16	d12, #16
    505 	vrshr.s32	d13, #32
    506 	vrshr.s64	d14, #64
    507 	vrshr.u8	d16, #8
    508 	vrshr.u16	d17, #16
    509 	vrshr.u32	d6, #32
    510 	vrshr.u64	d10, #64
    511 	vrshr.s8	q1, #8
    512 	vrshr.s16	q2, #16
    513 	vrshr.s32	q3, #32
    514 	vrshr.s64	q4, #64
    515 	vrshr.u8	q5, #8
    516 	vrshr.u16	q6, #16
    517 	vrshr.u32	q7, #32
    518 	vrshr.u64	q8, #64
    519 
    520 @ CHECK: vrshr.s8	d15, d15, #8    @ encoding: [0x1f,0xf2,0x88,0xf2]
    521 @ CHECK: vrshr.s16	d12, d12, #16   @ encoding: [0x1c,0xc2,0x90,0xf2]
    522 @ CHECK: vrshr.s32	d13, d13, #32   @ encoding: [0x1d,0xd2,0xa0,0xf2]
    523 @ CHECK: vrshr.s64	d14, d14, #64   @ encoding: [0x9e,0xe2,0x80,0xf2]
    524 @ CHECK: vrshr.u8	d16, d16, #8    @ encoding: [0x30,0x02,0xc8,0xf3]
    525 @ CHECK: vrshr.u16	d17, d17, #16   @ encoding: [0x31,0x12,0xd0,0xf3]
    526 @ CHECK: vrshr.u32	d6, d6, #32     @ encoding: [0x16,0x62,0xa0,0xf3]
    527 @ CHECK: vrshr.u64	d10, d10, #64   @ encoding: [0x9a,0xa2,0x80,0xf3]
    528 @ CHECK: vrshr.s8	q1, q1, #8      @ encoding: [0x52,0x22,0x88,0xf2]
    529 @ CHECK: vrshr.s16	q2, q2, #16     @ encoding: [0x54,0x42,0x90,0xf2]
    530 @ CHECK: vrshr.s32	q3, q3, #32     @ encoding: [0x56,0x62,0xa0,0xf2]
    531 @ CHECK: vrshr.s64	q4, q4, #64     @ encoding: [0xd8,0x82,0x80,0xf2]
    532 @ CHECK: vrshr.u8	q5, q5, #8      @ encoding: [0x5a,0xa2,0x88,0xf3]
    533 @ CHECK: vrshr.u16	q6, q6, #16     @ encoding: [0x5c,0xc2,0x90,0xf3]
    534 @ CHECK: vrshr.u32	q7, q7, #32     @ encoding: [0x5e,0xe2,0xa0,0xf3]
    535 @ CHECK: vrshr.u64	q8, q8, #64     @ encoding: [0xf0,0x02,0xc0,0xf3]
    536