Home | History | Annotate | Download | only in CodeGen
      1 // RUN: %clang_cc1 -triple thumbv7s-apple-darwin -target-abi apcs-gnu\
      2 // RUN:  -target-cpu swift -ffreestanding -Os -S -o - %s\
      3 // RUN:  | FileCheck %s
      4 
      5 // REQUIRES: long_tests
      6 
      7 #include <arm_neon.h>
      8 
      9 // CHECK: test_vaba_s8
     10 // CHECK: vaba.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
     11 int8x8_t test_vaba_s8(int8x8_t a, int8x8_t b, int8x8_t c) {
     12   return vaba_s8(a, b, c);
     13 }
     14 
     15 // CHECK: test_vaba_s16
     16 // CHECK: vaba.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
     17 int16x4_t test_vaba_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
     18   return vaba_s16(a, b, c);
     19 }
     20 
     21 // CHECK: test_vaba_s32
     22 // CHECK: vaba.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
     23 int32x2_t test_vaba_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
     24   return vaba_s32(a, b, c);
     25 }
     26 
     27 // CHECK: test_vaba_u8
     28 // CHECK: vaba.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
     29 uint8x8_t test_vaba_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) {
     30   return vaba_u8(a, b, c);
     31 }
     32 
     33 // CHECK: test_vaba_u16
     34 // CHECK: vaba.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
     35 uint16x4_t test_vaba_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
     36   return vaba_u16(a, b, c);
     37 }
     38 
     39 // CHECK: test_vaba_u32
     40 // CHECK: vaba.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
     41 uint32x2_t test_vaba_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
     42   return vaba_u32(a, b, c);
     43 }
     44 
     45 // CHECK: test_vabaq_s8
     46 // CHECK: vaba.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
     47 int8x16_t test_vabaq_s8(int8x16_t a, int8x16_t b, int8x16_t c) {
     48   return vabaq_s8(a, b, c);
     49 }
     50 
     51 // CHECK: test_vabaq_s16
     52 // CHECK: vaba.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
     53 int16x8_t test_vabaq_s16(int16x8_t a, int16x8_t b, int16x8_t c) {
     54   return vabaq_s16(a, b, c);
     55 }
     56 
     57 // CHECK: test_vabaq_s32
     58 // CHECK: vaba.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
     59 int32x4_t test_vabaq_s32(int32x4_t a, int32x4_t b, int32x4_t c) {
     60   return vabaq_s32(a, b, c);
     61 }
     62 
     63 // CHECK: test_vabaq_u8
     64 // CHECK: vaba.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
     65 uint8x16_t test_vabaq_u8(uint8x16_t a, uint8x16_t b, uint8x16_t c) {
     66   return vabaq_u8(a, b, c);
     67 }
     68 
     69 // CHECK: test_vabaq_u16
     70 // CHECK: vaba.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
     71 uint16x8_t test_vabaq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t c) {
     72   return vabaq_u16(a, b, c);
     73 }
     74 
     75 // CHECK: test_vabaq_u32
     76 // CHECK: vaba.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
     77 uint32x4_t test_vabaq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t c) {
     78   return vabaq_u32(a, b, c);
     79 }
     80 
     81 
     82 // CHECK: test_vabal_s8
     83 // CHECK: vabal.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
     84 int16x8_t test_vabal_s8(int16x8_t a, int8x8_t b, int8x8_t c) {
     85   return vabal_s8(a, b, c);
     86 }
     87 
     88 // CHECK: test_vabal_s16
     89 // CHECK: vabal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
     90 int32x4_t test_vabal_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
     91   return vabal_s16(a, b, c);
     92 }
     93 
     94 // CHECK: test_vabal_s32
     95 // CHECK: vabal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
     96 int64x2_t test_vabal_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
     97   return vabal_s32(a, b, c);
     98 }
     99 
    100 // CHECK: test_vabal_u8
    101 // CHECK: vabal.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    102 uint16x8_t test_vabal_u8(uint16x8_t a, uint8x8_t b, uint8x8_t c) {
    103   return vabal_u8(a, b, c);
    104 }
    105 
    106 // CHECK: test_vabal_u16
    107 // CHECK: vabal.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    108 uint32x4_t test_vabal_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) {
    109   return vabal_u16(a, b, c);
    110 }
    111 
    112 // CHECK: test_vabal_u32
    113 // CHECK: vabal.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    114 uint64x2_t test_vabal_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) {
    115   return vabal_u32(a, b, c);
    116 }
    117 
    118 
    119 // CHECK: test_vabd_s8
    120 // CHECK: vabd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    121 int8x8_t test_vabd_s8(int8x8_t a, int8x8_t b) {
    122   return vabd_s8(a, b);
    123 }
    124 
    125 // CHECK: test_vabd_s16
    126 // CHECK: vabd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    127 int16x4_t test_vabd_s16(int16x4_t a, int16x4_t b) {
    128   return vabd_s16(a, b);
    129 }
    130 
    131 // CHECK: test_vabd_s32
    132 // CHECK: vabd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    133 int32x2_t test_vabd_s32(int32x2_t a, int32x2_t b) {
    134   return vabd_s32(a, b);
    135 }
    136 
    137 // CHECK: test_vabd_u8
    138 // CHECK: vabd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    139 uint8x8_t test_vabd_u8(uint8x8_t a, uint8x8_t b) {
    140   return vabd_u8(a, b);
    141 }
    142 
    143 // CHECK: test_vabd_u16
    144 // CHECK: vabd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    145 uint16x4_t test_vabd_u16(uint16x4_t a, uint16x4_t b) {
    146   return vabd_u16(a, b);
    147 }
    148 
    149 // CHECK: test_vabd_u32
    150 // CHECK: vabd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    151 uint32x2_t test_vabd_u32(uint32x2_t a, uint32x2_t b) {
    152   return vabd_u32(a, b);
    153 }
    154 
    155 // CHECK: test_vabd_f32
    156 // CHECK: vabd.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    157 float32x2_t test_vabd_f32(float32x2_t a, float32x2_t b) {
    158   return vabd_f32(a, b);
    159 }
    160 
    161 // CHECK: test_vabdq_s8
    162 // CHECK: vabd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    163 int8x16_t test_vabdq_s8(int8x16_t a, int8x16_t b) {
    164   return vabdq_s8(a, b);
    165 }
    166 
    167 // CHECK: test_vabdq_s16
    168 // CHECK: vabd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    169 int16x8_t test_vabdq_s16(int16x8_t a, int16x8_t b) {
    170   return vabdq_s16(a, b);
    171 }
    172 
    173 // CHECK: test_vabdq_s32
    174 // CHECK: vabd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    175 int32x4_t test_vabdq_s32(int32x4_t a, int32x4_t b) {
    176   return vabdq_s32(a, b);
    177 }
    178 
    179 // CHECK: test_vabdq_u8
    180 // CHECK: vabd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    181 uint8x16_t test_vabdq_u8(uint8x16_t a, uint8x16_t b) {
    182   return vabdq_u8(a, b);
    183 }
    184 
    185 // CHECK: test_vabdq_u16
    186 // CHECK: vabd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    187 uint16x8_t test_vabdq_u16(uint16x8_t a, uint16x8_t b) {
    188   return vabdq_u16(a, b);
    189 }
    190 
    191 // CHECK: test_vabdq_u32
    192 // CHECK: vabd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    193 uint32x4_t test_vabdq_u32(uint32x4_t a, uint32x4_t b) {
    194   return vabdq_u32(a, b);
    195 }
    196 
    197 // CHECK: test_vabdq_f32
    198 // CHECK: vabd.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    199 float32x4_t test_vabdq_f32(float32x4_t a, float32x4_t b) {
    200   return vabdq_f32(a, b);
    201 }
    202 
    203 
    204 // CHECK: test_vabdl_s8
    205 // CHECK: vabdl.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    206 int16x8_t test_vabdl_s8(int8x8_t a, int8x8_t b) {
    207   return vabdl_s8(a, b);
    208 }
    209 
    210 // CHECK: test_vabdl_s16
    211 // CHECK: vabdl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    212 int32x4_t test_vabdl_s16(int16x4_t a, int16x4_t b) {
    213   return vabdl_s16(a, b);
    214 }
    215 
    216 // CHECK: test_vabdl_s32
    217 // CHECK: vabdl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    218 int64x2_t test_vabdl_s32(int32x2_t a, int32x2_t b) {
    219   return vabdl_s32(a, b);
    220 }
    221 
    222 // CHECK: test_vabdl_u8
    223 // CHECK: vabdl.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    224 uint16x8_t test_vabdl_u8(uint8x8_t a, uint8x8_t b) {
    225   return vabdl_u8(a, b);
    226 }
    227 
    228 // CHECK: test_vabdl_u16
    229 // CHECK: vabdl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    230 uint32x4_t test_vabdl_u16(uint16x4_t a, uint16x4_t b) {
    231   return vabdl_u16(a, b);
    232 }
    233 
    234 // CHECK: test_vabdl_u32
    235 // CHECK: vabdl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    236 uint64x2_t test_vabdl_u32(uint32x2_t a, uint32x2_t b) {
    237   return vabdl_u32(a, b);
    238 }
    239 
    240 
    241 // CHECK: test_vabs_s8
    242 // CHECK: vabs.s8 d{{[0-9]+}}, d{{[0-9]+}}
    243 int8x8_t test_vabs_s8(int8x8_t a) {
    244   return vabs_s8(a);
    245 }
    246 
    247 // CHECK: test_vabs_s16
    248 // CHECK: vabs.s16 d{{[0-9]+}}, d{{[0-9]+}}
    249 int16x4_t test_vabs_s16(int16x4_t a) {
    250   return vabs_s16(a);
    251 }
    252 
    253 // CHECK: test_vabs_s32
    254 // CHECK: vabs.s32 d{{[0-9]+}}, d{{[0-9]+}}
    255 int32x2_t test_vabs_s32(int32x2_t a) {
    256   return vabs_s32(a);
    257 }
    258 
    259 // CHECK: test_vabs_f32
    260 // CHECK: vabs.f32 d{{[0-9]+}}, d{{[0-9]+}}
    261 float32x2_t test_vabs_f32(float32x2_t a) {
    262   return vabs_f32(a);
    263 }
    264 
    265 // CHECK: test_vabsq_s8
    266 // CHECK: vabs.s8 q{{[0-9]+}}, q{{[0-9]+}}
    267 int8x16_t test_vabsq_s8(int8x16_t a) {
    268   return vabsq_s8(a);
    269 }
    270 
    271 // CHECK: test_vabsq_s16
    272 // CHECK: vabs.s16 q{{[0-9]+}}, q{{[0-9]+}}
    273 int16x8_t test_vabsq_s16(int16x8_t a) {
    274   return vabsq_s16(a);
    275 }
    276 
    277 // CHECK: test_vabsq_s32
    278 // CHECK: vabs.s32 q{{[0-9]+}}, q{{[0-9]+}}
    279 int32x4_t test_vabsq_s32(int32x4_t a) {
    280   return vabsq_s32(a);
    281 }
    282 
    283 // CHECK: test_vabsq_f32
    284 // CHECK: vabs.f32 q{{[0-9]+}}, q{{[0-9]+}}
    285 float32x4_t test_vabsq_f32(float32x4_t a) {
    286   return vabsq_f32(a);
    287 }
    288 
    289 
    290 // CHECK: test_vadd_s8
    291 // CHECK: vadd.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    292 int8x8_t test_vadd_s8(int8x8_t a, int8x8_t b) {
    293   return vadd_s8(a, b);
    294 }
    295 
    296 // CHECK: test_vadd_s16
    297 // CHECK: vadd.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    298 int16x4_t test_vadd_s16(int16x4_t a, int16x4_t b) {
    299   return vadd_s16(a, b);
    300 }
    301 
    302 // CHECK: test_vadd_s32
    303 // CHECK: vadd.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    304 int32x2_t test_vadd_s32(int32x2_t a, int32x2_t b) {
    305   return vadd_s32(a, b);
    306 }
    307 
    308 // CHECK: test_vadd_s64
    309 // CHECK: vadd.i64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    310 int64x1_t test_vadd_s64(int64x1_t a, int64x1_t b) {
    311   return vadd_s64(a, b);
    312 }
    313 
    314 // CHECK: test_vadd_f32
    315 // CHECK: vadd.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    316 float32x2_t test_vadd_f32(float32x2_t a, float32x2_t b) {
    317   return vadd_f32(a, b);
    318 }
    319 
    320 // CHECK: test_vadd_u8
    321 // CHECK: vadd.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    322 uint8x8_t test_vadd_u8(uint8x8_t a, uint8x8_t b) {
    323   return vadd_u8(a, b);
    324 }
    325 
    326 // CHECK: test_vadd_u16
    327 // CHECK: vadd.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    328 uint16x4_t test_vadd_u16(uint16x4_t a, uint16x4_t b) {
    329   return vadd_u16(a, b);
    330 }
    331 
    332 // CHECK: test_vadd_u32
    333 // CHECK: vadd.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    334 uint32x2_t test_vadd_u32(uint32x2_t a, uint32x2_t b) {
    335   return vadd_u32(a, b);
    336 }
    337 
    338 // CHECK: test_vadd_u64
    339 // CHECK: vadd.i64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    340 uint64x1_t test_vadd_u64(uint64x1_t a, uint64x1_t b) {
    341   return vadd_u64(a, b);
    342 }
    343 
    344 // CHECK: test_vaddq_s8
    345 // CHECK: vadd.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    346 int8x16_t test_vaddq_s8(int8x16_t a, int8x16_t b) {
    347   return vaddq_s8(a, b);
    348 }
    349 
    350 // CHECK: test_vaddq_s16
    351 // CHECK: vadd.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    352 int16x8_t test_vaddq_s16(int16x8_t a, int16x8_t b) {
    353   return vaddq_s16(a, b);
    354 }
    355 
    356 // CHECK: test_vaddq_s32
    357 // CHECK: vadd.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    358 int32x4_t test_vaddq_s32(int32x4_t a, int32x4_t b) {
    359   return vaddq_s32(a, b);
    360 }
    361 
    362 // CHECK: test_vaddq_s64
    363 // CHECK: vadd.i64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    364 int64x2_t test_vaddq_s64(int64x2_t a, int64x2_t b) {
    365   return vaddq_s64(a, b);
    366 }
    367 
    368 // CHECK: test_vaddq_f32
    369 // CHECK: vadd.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    370 float32x4_t test_vaddq_f32(float32x4_t a, float32x4_t b) {
    371   return vaddq_f32(a, b);
    372 }
    373 
    374 // CHECK: test_vaddq_u8
    375 // CHECK: vadd.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    376 uint8x16_t test_vaddq_u8(uint8x16_t a, uint8x16_t b) {
    377   return vaddq_u8(a, b);
    378 }
    379 
    380 // CHECK: test_vaddq_u16
    381 // CHECK: vadd.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    382 uint16x8_t test_vaddq_u16(uint16x8_t a, uint16x8_t b) {
    383   return vaddq_u16(a, b);
    384 }
    385 
    386 // CHECK: test_vaddq_u32
    387 // CHECK: vadd.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    388 uint32x4_t test_vaddq_u32(uint32x4_t a, uint32x4_t b) {
    389   return vaddq_u32(a, b);
    390 }
    391 
    392 // CHECK: test_vaddq_u64
    393 // CHECK: vadd.i64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    394 uint64x2_t test_vaddq_u64(uint64x2_t a, uint64x2_t b) {
    395   return vaddq_u64(a, b);
    396 }
    397 
    398 
    399 // CHECK: test_vaddhn_s16
    400 // CHECK: vaddhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    401 int8x8_t test_vaddhn_s16(int16x8_t a, int16x8_t b) {
    402   return vaddhn_s16(a, b);
    403 }
    404 
    405 // CHECK: test_vaddhn_s32
    406 // CHECK: vaddhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    407 int16x4_t test_vaddhn_s32(int32x4_t a, int32x4_t b) {
    408   return vaddhn_s32(a, b);
    409 }
    410 
    411 // CHECK: test_vaddhn_s64
    412 // CHECK: vaddhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    413 int32x2_t test_vaddhn_s64(int64x2_t a, int64x2_t b) {
    414   return vaddhn_s64(a, b);
    415 }
    416 
    417 // CHECK: test_vaddhn_u16
    418 // CHECK: vaddhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    419 uint8x8_t test_vaddhn_u16(uint16x8_t a, uint16x8_t b) {
    420   return vaddhn_u16(a, b);
    421 }
    422 
    423 // CHECK: test_vaddhn_u32
    424 // CHECK: vaddhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    425 uint16x4_t test_vaddhn_u32(uint32x4_t a, uint32x4_t b) {
    426   return vaddhn_u32(a, b);
    427 }
    428 
    429 // CHECK: test_vaddhn_u64
    430 // CHECK: vaddhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    431 uint32x2_t test_vaddhn_u64(uint64x2_t a, uint64x2_t b) {
    432   return vaddhn_u64(a, b);
    433 }
    434 
    435 
    436 // CHECK: test_vaddl_s8
    437 // CHECK: vaddl.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    438 int16x8_t test_vaddl_s8(int8x8_t a, int8x8_t b) {
    439   return vaddl_s8(a, b);
    440 }
    441 
    442 // CHECK: test_vaddl_s16
    443 // CHECK: vaddl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    444 int32x4_t test_vaddl_s16(int16x4_t a, int16x4_t b) {
    445   return vaddl_s16(a, b);
    446 }
    447 
    448 // CHECK: test_vaddl_s32
    449 // CHECK: vaddl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    450 int64x2_t test_vaddl_s32(int32x2_t a, int32x2_t b) {
    451   return vaddl_s32(a, b);
    452 }
    453 
    454 // CHECK: test_vaddl_u8
    455 // CHECK: vaddl.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    456 uint16x8_t test_vaddl_u8(uint8x8_t a, uint8x8_t b) {
    457   return vaddl_u8(a, b);
    458 }
    459 
    460 // CHECK: test_vaddl_u16
    461 // CHECK: vaddl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    462 uint32x4_t test_vaddl_u16(uint16x4_t a, uint16x4_t b) {
    463   return vaddl_u16(a, b);
    464 }
    465 
    466 // CHECK: test_vaddl_u32
    467 // CHECK: vaddl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    468 uint64x2_t test_vaddl_u32(uint32x2_t a, uint32x2_t b) {
    469   return vaddl_u32(a, b);
    470 }
    471 
    472 
    473 // CHECK: test_vaddw_s8
    474 // CHECK: vaddw.s8 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
    475 int16x8_t test_vaddw_s8(int16x8_t a, int8x8_t b) {
    476   return vaddw_s8(a, b);
    477 }
    478 
    479 // CHECK: test_vaddw_s16
    480 // CHECK: vaddw.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
    481 int32x4_t test_vaddw_s16(int32x4_t a, int16x4_t b) {
    482   return vaddw_s16(a, b);
    483 }
    484 
    485 // CHECK: test_vaddw_s32
    486 // CHECK: vaddw.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
    487 int64x2_t test_vaddw_s32(int64x2_t a, int32x2_t b) {
    488   return vaddw_s32(a, b);
    489 }
    490 
    491 // CHECK: test_vaddw_u8
    492 // CHECK: vaddw.u8 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
    493 uint16x8_t test_vaddw_u8(uint16x8_t a, uint8x8_t b) {
    494   return vaddw_u8(a, b);
    495 }
    496 
    497 // CHECK: test_vaddw_u16
    498 // CHECK: vaddw.u16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
    499 uint32x4_t test_vaddw_u16(uint32x4_t a, uint16x4_t b) {
    500   return vaddw_u16(a, b);
    501 }
    502 
    503 // CHECK: test_vaddw_u32
    504 // CHECK: vaddw.u32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
    505 uint64x2_t test_vaddw_u32(uint64x2_t a, uint32x2_t b) {
    506   return vaddw_u32(a, b);
    507 }
    508 
    509 
    510 // CHECK: test_vand_s8
    511 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    512 int8x8_t test_vand_s8(int8x8_t a, int8x8_t b) {
    513   return vand_s8(a, b);
    514 }
    515 
    516 // CHECK: test_vand_s16
    517 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    518 int16x4_t test_vand_s16(int16x4_t a, int16x4_t b) {
    519   return vand_s16(a, b);
    520 }
    521 
    522 // CHECK: test_vand_s32
    523 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    524 int32x2_t test_vand_s32(int32x2_t a, int32x2_t b) {
    525   return vand_s32(a, b);
    526 }
    527 
    528 // CHECK: test_vand_s64
    529 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    530 int64x1_t test_vand_s64(int64x1_t a, int64x1_t b) {
    531   return vand_s64(a, b);
    532 }
    533 
    534 // CHECK: test_vand_u8
    535 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    536 uint8x8_t test_vand_u8(uint8x8_t a, uint8x8_t b) {
    537   return vand_u8(a, b);
    538 }
    539 
    540 // CHECK: test_vand_u16
    541 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    542 uint16x4_t test_vand_u16(uint16x4_t a, uint16x4_t b) {
    543   return vand_u16(a, b);
    544 }
    545 
    546 // CHECK: test_vand_u32
    547 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    548 uint32x2_t test_vand_u32(uint32x2_t a, uint32x2_t b) {
    549   return vand_u32(a, b);
    550 }
    551 
    552 // CHECK: test_vand_u64
    553 // CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    554 uint64x1_t test_vand_u64(uint64x1_t a, uint64x1_t b) {
    555   return vand_u64(a, b);
    556 }
    557 
    558 // CHECK: test_vandq_s8
    559 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    560 int8x16_t test_vandq_s8(int8x16_t a, int8x16_t b) {
    561   return vandq_s8(a, b);
    562 }
    563 
    564 // CHECK: test_vandq_s16
    565 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    566 int16x8_t test_vandq_s16(int16x8_t a, int16x8_t b) {
    567   return vandq_s16(a, b);
    568 }
    569 
    570 // CHECK: test_vandq_s32
    571 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    572 int32x4_t test_vandq_s32(int32x4_t a, int32x4_t b) {
    573   return vandq_s32(a, b);
    574 }
    575 
    576 // CHECK: test_vandq_s64
    577 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    578 int64x2_t test_vandq_s64(int64x2_t a, int64x2_t b) {
    579   return vandq_s64(a, b);
    580 }
    581 
    582 // CHECK: test_vandq_u8
    583 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    584 uint8x16_t test_vandq_u8(uint8x16_t a, uint8x16_t b) {
    585   return vandq_u8(a, b);
    586 }
    587 
    588 // CHECK: test_vandq_u16
    589 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    590 uint16x8_t test_vandq_u16(uint16x8_t a, uint16x8_t b) {
    591   return vandq_u16(a, b);
    592 }
    593 
    594 // CHECK: test_vandq_u32
    595 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    596 uint32x4_t test_vandq_u32(uint32x4_t a, uint32x4_t b) {
    597   return vandq_u32(a, b);
    598 }
    599 
    600 // CHECK: test_vandq_u64
    601 // CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    602 uint64x2_t test_vandq_u64(uint64x2_t a, uint64x2_t b) {
    603   return vandq_u64(a, b);
    604 }
    605 
    606 
    607 // CHECK: test_vbic_s8
    608 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    609 int8x8_t test_vbic_s8(int8x8_t a, int8x8_t b) {
    610   return vbic_s8(a, b);
    611 }
    612 
    613 // CHECK: test_vbic_s16
    614 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    615 int16x4_t test_vbic_s16(int16x4_t a, int16x4_t b) {
    616   return vbic_s16(a, b);
    617 }
    618 
    619 // CHECK: test_vbic_s32
    620 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    621 int32x2_t test_vbic_s32(int32x2_t a, int32x2_t b) {
    622   return vbic_s32(a, b);
    623 }
    624 
    625 // CHECK: test_vbic_s64
    626 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    627 int64x1_t test_vbic_s64(int64x1_t a, int64x1_t b) {
    628   return vbic_s64(a, b);
    629 }
    630 
    631 // CHECK: test_vbic_u8
    632 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    633 uint8x8_t test_vbic_u8(uint8x8_t a, uint8x8_t b) {
    634   return vbic_u8(a, b);
    635 }
    636 
    637 // CHECK: test_vbic_u16
    638 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    639 uint16x4_t test_vbic_u16(uint16x4_t a, uint16x4_t b) {
    640   return vbic_u16(a, b);
    641 }
    642 
    643 // CHECK: test_vbic_u32
    644 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    645 uint32x2_t test_vbic_u32(uint32x2_t a, uint32x2_t b) {
    646   return vbic_u32(a, b);
    647 }
    648 
    649 // CHECK: test_vbic_u64
    650 // CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    651 uint64x1_t test_vbic_u64(uint64x1_t a, uint64x1_t b) {
    652   return vbic_u64(a, b);
    653 }
    654 
    655 // CHECK: test_vbicq_s8
    656 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    657 int8x16_t test_vbicq_s8(int8x16_t a, int8x16_t b) {
    658   return vbicq_s8(a, b);
    659 }
    660 
    661 // CHECK: test_vbicq_s16
    662 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    663 int16x8_t test_vbicq_s16(int16x8_t a, int16x8_t b) {
    664   return vbicq_s16(a, b);
    665 }
    666 
    667 // CHECK: test_vbicq_s32
    668 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    669 int32x4_t test_vbicq_s32(int32x4_t a, int32x4_t b) {
    670   return vbicq_s32(a, b);
    671 }
    672 
    673 // CHECK: test_vbicq_s64
    674 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    675 int64x2_t test_vbicq_s64(int64x2_t a, int64x2_t b) {
    676   return vbicq_s64(a, b);
    677 }
    678 
    679 // CHECK: test_vbicq_u8
    680 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    681 uint8x16_t test_vbicq_u8(uint8x16_t a, uint8x16_t b) {
    682   return vbicq_u8(a, b);
    683 }
    684 
    685 // CHECK: test_vbicq_u16
    686 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    687 uint16x8_t test_vbicq_u16(uint16x8_t a, uint16x8_t b) {
    688   return vbicq_u16(a, b);
    689 }
    690 
    691 // CHECK: test_vbicq_u32
    692 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    693 uint32x4_t test_vbicq_u32(uint32x4_t a, uint32x4_t b) {
    694   return vbicq_u32(a, b);
    695 }
    696 
    697 // CHECK: test_vbicq_u64
    698 // CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    699 uint64x2_t test_vbicq_u64(uint64x2_t a, uint64x2_t b) {
    700   return vbicq_u64(a, b);
    701 }
    702 
    703 
    704 // CHECK: test_vbsl_s8
    705 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    706 int8x8_t test_vbsl_s8(uint8x8_t a, int8x8_t b, int8x8_t c) {
    707   return vbsl_s8(a, b, c);
    708 }
    709 
    710 // CHECK: test_vbsl_s16
    711 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    712 int16x4_t test_vbsl_s16(uint16x4_t a, int16x4_t b, int16x4_t c) {
    713   return vbsl_s16(a, b, c);
    714 }
    715 
    716 // CHECK: test_vbsl_s32
    717 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    718 int32x2_t test_vbsl_s32(uint32x2_t a, int32x2_t b, int32x2_t c) {
    719   return vbsl_s32(a, b, c);
    720 }
    721 
    722 // CHECK: test_vbsl_s64
    723 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    724 int64x1_t test_vbsl_s64(uint64x1_t a, int64x1_t b, int64x1_t c) {
    725   return vbsl_s64(a, b, c);
    726 }
    727 
    728 // CHECK: test_vbsl_u8
    729 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    730 uint8x8_t test_vbsl_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) {
    731   return vbsl_u8(a, b, c);
    732 }
    733 
    734 // CHECK: test_vbsl_u16
    735 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    736 uint16x4_t test_vbsl_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
    737   return vbsl_u16(a, b, c);
    738 }
    739 
    740 // CHECK: test_vbsl_u32
    741 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    742 uint32x2_t test_vbsl_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
    743   return vbsl_u32(a, b, c);
    744 }
    745 
    746 // CHECK: test_vbsl_u64
    747 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    748 uint64x1_t test_vbsl_u64(uint64x1_t a, uint64x1_t b, uint64x1_t c) {
    749   return vbsl_u64(a, b, c);
    750 }
    751 
    752 // CHECK: test_vbsl_f32
    753 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    754 float32x2_t test_vbsl_f32(uint32x2_t a, float32x2_t b, float32x2_t c) {
    755   return vbsl_f32(a, b, c);
    756 }
    757 
    758 // CHECK: test_vbsl_p8
    759 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    760 poly8x8_t test_vbsl_p8(uint8x8_t a, poly8x8_t b, poly8x8_t c) {
    761   return vbsl_p8(a, b, c);
    762 }
    763 
    764 // CHECK: test_vbsl_p16
    765 // CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    766 poly16x4_t test_vbsl_p16(uint16x4_t a, poly16x4_t b, poly16x4_t c) {
    767   return vbsl_p16(a, b, c);
    768 }
    769 
    770 // CHECK: test_vbslq_s8
    771 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    772 int8x16_t test_vbslq_s8(uint8x16_t a, int8x16_t b, int8x16_t c) {
    773   return vbslq_s8(a, b, c);
    774 }
    775 
    776 // CHECK: test_vbslq_s16
    777 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    778 int16x8_t test_vbslq_s16(uint16x8_t a, int16x8_t b, int16x8_t c) {
    779   return vbslq_s16(a, b, c);
    780 }
    781 
    782 // CHECK: test_vbslq_s32
    783 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    784 int32x4_t test_vbslq_s32(uint32x4_t a, int32x4_t b, int32x4_t c) {
    785   return vbslq_s32(a, b, c);
    786 }
    787 
    788 // CHECK: test_vbslq_s64
    789 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    790 int64x2_t test_vbslq_s64(uint64x2_t a, int64x2_t b, int64x2_t c) {
    791   return vbslq_s64(a, b, c);
    792 }
    793 
    794 // CHECK: test_vbslq_u8
    795 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    796 uint8x16_t test_vbslq_u8(uint8x16_t a, uint8x16_t b, uint8x16_t c) {
    797   return vbslq_u8(a, b, c);
    798 }
    799 
    800 // CHECK: test_vbslq_u16
    801 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    802 uint16x8_t test_vbslq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t c) {
    803   return vbslq_u16(a, b, c);
    804 }
    805 
    806 // CHECK: test_vbslq_u32
    807 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    808 uint32x4_t test_vbslq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t c) {
    809   return vbslq_u32(a, b, c);
    810 }
    811 
    812 // CHECK: test_vbslq_u64
    813 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    814 uint64x2_t test_vbslq_u64(uint64x2_t a, uint64x2_t b, uint64x2_t c) {
    815   return vbslq_u64(a, b, c);
    816 }
    817 
    818 // CHECK: test_vbslq_f32
    819 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    820 float32x4_t test_vbslq_f32(uint32x4_t a, float32x4_t b, float32x4_t c) {
    821   return vbslq_f32(a, b, c);
    822 }
    823 
    824 // CHECK: test_vbslq_p8
    825 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    826 poly8x16_t test_vbslq_p8(uint8x16_t a, poly8x16_t b, poly8x16_t c) {
    827   return vbslq_p8(a, b, c);
    828 }
    829 
    830 // CHECK: test_vbslq_p16
    831 // CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    832 poly16x8_t test_vbslq_p16(uint16x8_t a, poly16x8_t b, poly16x8_t c) {
    833   return vbslq_p16(a, b, c);
    834 }
    835 
    836 
    837 // CHECK: test_vcage_f32
    838 // CHECK: vacge.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    839 uint32x2_t test_vcage_f32(float32x2_t a, float32x2_t b) {
    840   return vcage_f32(a, b);
    841 }
    842 
    843 // CHECK: test_vcageq_f32
    844 // CHECK: vacge.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    845 uint32x4_t test_vcageq_f32(float32x4_t a, float32x4_t b) {
    846   return vcageq_f32(a, b);
    847 }
    848 
    849 
    850 // CHECK: test_vcagt_f32
    851 // CHECK: vacgt.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    852 uint32x2_t test_vcagt_f32(float32x2_t a, float32x2_t b) {
    853   return vcagt_f32(a, b);
    854 }
    855 
    856 // CHECK: test_vcagtq_f32
    857 // CHECK: vacgt.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    858 uint32x4_t test_vcagtq_f32(float32x4_t a, float32x4_t b) {
    859   return vcagtq_f32(a, b);
    860 }
    861 
    862 
    863 // CHECK: test_vcale_f32
    864 // CHECK: vacge.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    865 uint32x2_t test_vcale_f32(float32x2_t a, float32x2_t b) {
    866   return vcale_f32(a, b);
    867 }
    868 
    869 // CHECK: test_vcaleq_f32
    870 // CHECK: vacge.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    871 uint32x4_t test_vcaleq_f32(float32x4_t a, float32x4_t b) {
    872   return vcaleq_f32(a, b);
    873 }
    874 
    875 
    876 // CHECK: test_vcalt_f32
    877 // CHECK: vacgt.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    878 uint32x2_t test_vcalt_f32(float32x2_t a, float32x2_t b) {
    879   return vcalt_f32(a, b);
    880 }
    881 
    882 // CHECK: test_vcaltq_f32
    883 // CHECK: vacgt.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    884 uint32x4_t test_vcaltq_f32(float32x4_t a, float32x4_t b) {
    885   return vcaltq_f32(a, b);
    886 }
    887 
    888 
    889 // CHECK: test_vceq_s8
    890 // CHECK: vceq.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    891 uint8x8_t test_vceq_s8(int8x8_t a, int8x8_t b) {
    892   return vceq_s8(a, b);
    893 }
    894 
    895 // CHECK: test_vceq_s16
    896 // CHECK: vceq.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    897 uint16x4_t test_vceq_s16(int16x4_t a, int16x4_t b) {
    898   return vceq_s16(a, b);
    899 }
    900 
    901 // CHECK: test_vceq_s32
    902 // CHECK: vceq.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    903 uint32x2_t test_vceq_s32(int32x2_t a, int32x2_t b) {
    904   return vceq_s32(a, b);
    905 }
    906 
    907 // CHECK: test_vceq_f32
    908 // CHECK: vceq.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    909 uint32x2_t test_vceq_f32(float32x2_t a, float32x2_t b) {
    910   return vceq_f32(a, b);
    911 }
    912 
    913 // CHECK: test_vceq_u8
    914 // CHECK: vceq.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    915 uint8x8_t test_vceq_u8(uint8x8_t a, uint8x8_t b) {
    916   return vceq_u8(a, b);
    917 }
    918 
    919 // CHECK: test_vceq_u16
    920 // CHECK: vceq.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    921 uint16x4_t test_vceq_u16(uint16x4_t a, uint16x4_t b) {
    922   return vceq_u16(a, b);
    923 }
    924 
    925 // CHECK: test_vceq_u32
    926 // CHECK: vceq.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    927 uint32x2_t test_vceq_u32(uint32x2_t a, uint32x2_t b) {
    928   return vceq_u32(a, b);
    929 }
    930 
    931 // CHECK: test_vceq_p8
    932 // CHECK: vceq.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    933 uint8x8_t test_vceq_p8(poly8x8_t a, poly8x8_t b) {
    934   return vceq_p8(a, b);
    935 }
    936 
    937 // CHECK: test_vceqq_s8
    938 // CHECK: vceq.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    939 uint8x16_t test_vceqq_s8(int8x16_t a, int8x16_t b) {
    940   return vceqq_s8(a, b);
    941 }
    942 
    943 // CHECK: test_vceqq_s16
    944 // CHECK: vceq.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    945 uint16x8_t test_vceqq_s16(int16x8_t a, int16x8_t b) {
    946   return vceqq_s16(a, b);
    947 }
    948 
    949 // CHECK: test_vceqq_s32
    950 // CHECK: vceq.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    951 uint32x4_t test_vceqq_s32(int32x4_t a, int32x4_t b) {
    952   return vceqq_s32(a, b);
    953 }
    954 
    955 // CHECK: test_vceqq_f32
    956 // CHECK: vceq.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    957 uint32x4_t test_vceqq_f32(float32x4_t a, float32x4_t b) {
    958   return vceqq_f32(a, b);
    959 }
    960 
    961 // CHECK: test_vceqq_u8
    962 // CHECK: vceq.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    963 uint8x16_t test_vceqq_u8(uint8x16_t a, uint8x16_t b) {
    964   return vceqq_u8(a, b);
    965 }
    966 
    967 // CHECK: test_vceqq_u16
    968 // CHECK: vceq.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    969 uint16x8_t test_vceqq_u16(uint16x8_t a, uint16x8_t b) {
    970   return vceqq_u16(a, b);
    971 }
    972 
    973 // CHECK: test_vceqq_u32
    974 // CHECK: vceq.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    975 uint32x4_t test_vceqq_u32(uint32x4_t a, uint32x4_t b) {
    976   return vceqq_u32(a, b);
    977 }
    978 
    979 // CHECK: test_vceqq_p8
    980 // CHECK: vceq.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
    981 uint8x16_t test_vceqq_p8(poly8x16_t a, poly8x16_t b) {
    982   return vceqq_p8(a, b);
    983 }
    984 
    985 
    986 // CHECK: test_vcge_s8
    987 // CHECK: vcge.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    988 uint8x8_t test_vcge_s8(int8x8_t a, int8x8_t b) {
    989   return vcge_s8(a, b);
    990 }
    991 
    992 // CHECK: test_vcge_s16
    993 // CHECK: vcge.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
    994 uint16x4_t test_vcge_s16(int16x4_t a, int16x4_t b) {
    995   return vcge_s16(a, b);
    996 }
    997 
    998 // CHECK: test_vcge_s32
    999 // CHECK: vcge.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1000 uint32x2_t test_vcge_s32(int32x2_t a, int32x2_t b) {
   1001   return vcge_s32(a, b);
   1002 }
   1003 
   1004 // CHECK: test_vcge_f32
   1005 // CHECK: vcge.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1006 uint32x2_t test_vcge_f32(float32x2_t a, float32x2_t b) {
   1007   return vcge_f32(a, b);
   1008 }
   1009 
   1010 // CHECK: test_vcge_u8
   1011 // CHECK: vcge.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1012 uint8x8_t test_vcge_u8(uint8x8_t a, uint8x8_t b) {
   1013   return vcge_u8(a, b);
   1014 }
   1015 
   1016 // CHECK: test_vcge_u16
   1017 // CHECK: vcge.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1018 uint16x4_t test_vcge_u16(uint16x4_t a, uint16x4_t b) {
   1019   return vcge_u16(a, b);
   1020 }
   1021 
   1022 // CHECK: test_vcge_u32
   1023 // CHECK: vcge.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1024 uint32x2_t test_vcge_u32(uint32x2_t a, uint32x2_t b) {
   1025   return vcge_u32(a, b);
   1026 }
   1027 
   1028 // CHECK: test_vcgeq_s8
   1029 // CHECK: vcge.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1030 uint8x16_t test_vcgeq_s8(int8x16_t a, int8x16_t b) {
   1031   return vcgeq_s8(a, b);
   1032 }
   1033 
   1034 // CHECK: test_vcgeq_s16
   1035 // CHECK: vcge.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1036 uint16x8_t test_vcgeq_s16(int16x8_t a, int16x8_t b) {
   1037   return vcgeq_s16(a, b);
   1038 }
   1039 
   1040 // CHECK: test_vcgeq_s32
   1041 // CHECK: vcge.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1042 uint32x4_t test_vcgeq_s32(int32x4_t a, int32x4_t b) {
   1043   return vcgeq_s32(a, b);
   1044 }
   1045 
   1046 // CHECK: test_vcgeq_f32
   1047 // CHECK: vcge.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1048 uint32x4_t test_vcgeq_f32(float32x4_t a, float32x4_t b) {
   1049   return vcgeq_f32(a, b);
   1050 }
   1051 
   1052 // CHECK: test_vcgeq_u8
   1053 // CHECK: vcge.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1054 uint8x16_t test_vcgeq_u8(uint8x16_t a, uint8x16_t b) {
   1055   return vcgeq_u8(a, b);
   1056 }
   1057 
   1058 // CHECK: test_vcgeq_u16
   1059 // CHECK: vcge.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1060 uint16x8_t test_vcgeq_u16(uint16x8_t a, uint16x8_t b) {
   1061   return vcgeq_u16(a, b);
   1062 }
   1063 
   1064 // CHECK: test_vcgeq_u32
   1065 // CHECK: vcge.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1066 uint32x4_t test_vcgeq_u32(uint32x4_t a, uint32x4_t b) {
   1067   return vcgeq_u32(a, b);
   1068 }
   1069 
   1070 
   1071 // CHECK: test_vcgt_s8
   1072 // CHECK: vcgt.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1073 uint8x8_t test_vcgt_s8(int8x8_t a, int8x8_t b) {
   1074   return vcgt_s8(a, b);
   1075 }
   1076 
   1077 // CHECK: test_vcgt_s16
   1078 // CHECK: vcgt.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1079 uint16x4_t test_vcgt_s16(int16x4_t a, int16x4_t b) {
   1080   return vcgt_s16(a, b);
   1081 }
   1082 
   1083 // CHECK: test_vcgt_s32
   1084 // CHECK: vcgt.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1085 uint32x2_t test_vcgt_s32(int32x2_t a, int32x2_t b) {
   1086   return vcgt_s32(a, b);
   1087 }
   1088 
   1089 // CHECK: test_vcgt_f32
   1090 // CHECK: vcgt.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1091 uint32x2_t test_vcgt_f32(float32x2_t a, float32x2_t b) {
   1092   return vcgt_f32(a, b);
   1093 }
   1094 
   1095 // CHECK: test_vcgt_u8
   1096 // CHECK: vcgt.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1097 uint8x8_t test_vcgt_u8(uint8x8_t a, uint8x8_t b) {
   1098   return vcgt_u8(a, b);
   1099 }
   1100 
   1101 // CHECK: test_vcgt_u16
   1102 // CHECK: vcgt.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1103 uint16x4_t test_vcgt_u16(uint16x4_t a, uint16x4_t b) {
   1104   return vcgt_u16(a, b);
   1105 }
   1106 
   1107 // CHECK: test_vcgt_u32
   1108 // CHECK: vcgt.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1109 uint32x2_t test_vcgt_u32(uint32x2_t a, uint32x2_t b) {
   1110   return vcgt_u32(a, b);
   1111 }
   1112 
   1113 // CHECK: test_vcgtq_s8
   1114 // CHECK: vcgt.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1115 uint8x16_t test_vcgtq_s8(int8x16_t a, int8x16_t b) {
   1116   return vcgtq_s8(a, b);
   1117 }
   1118 
   1119 // CHECK: test_vcgtq_s16
   1120 // CHECK: vcgt.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1121 uint16x8_t test_vcgtq_s16(int16x8_t a, int16x8_t b) {
   1122   return vcgtq_s16(a, b);
   1123 }
   1124 
   1125 // CHECK: test_vcgtq_s32
   1126 // CHECK: vcgt.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1127 uint32x4_t test_vcgtq_s32(int32x4_t a, int32x4_t b) {
   1128   return vcgtq_s32(a, b);
   1129 }
   1130 
   1131 // CHECK: test_vcgtq_f32
   1132 // CHECK: vcgt.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1133 uint32x4_t test_vcgtq_f32(float32x4_t a, float32x4_t b) {
   1134   return vcgtq_f32(a, b);
   1135 }
   1136 
   1137 // CHECK: test_vcgtq_u8
   1138 // CHECK: vcgt.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1139 uint8x16_t test_vcgtq_u8(uint8x16_t a, uint8x16_t b) {
   1140   return vcgtq_u8(a, b);
   1141 }
   1142 
   1143 // CHECK: test_vcgtq_u16
   1144 // CHECK: vcgt.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1145 uint16x8_t test_vcgtq_u16(uint16x8_t a, uint16x8_t b) {
   1146   return vcgtq_u16(a, b);
   1147 }
   1148 
   1149 // CHECK: test_vcgtq_u32
   1150 // CHECK: vcgt.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1151 uint32x4_t test_vcgtq_u32(uint32x4_t a, uint32x4_t b) {
   1152   return vcgtq_u32(a, b);
   1153 }
   1154 
   1155 
   1156 // CHECK: test_vcle_s8
   1157 // CHECK: vcge.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1158 uint8x8_t test_vcle_s8(int8x8_t a, int8x8_t b) {
   1159   return vcle_s8(a, b);
   1160 }
   1161 
   1162 // CHECK: test_vcle_s16
   1163 // CHECK: vcge.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1164 uint16x4_t test_vcle_s16(int16x4_t a, int16x4_t b) {
   1165   return vcle_s16(a, b);
   1166 }
   1167 
   1168 // CHECK: test_vcle_s32
   1169 // CHECK: vcge.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1170 uint32x2_t test_vcle_s32(int32x2_t a, int32x2_t b) {
   1171   return vcle_s32(a, b);
   1172 }
   1173 
   1174 // CHECK: test_vcle_f32
   1175 // CHECK: vcge.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1176 uint32x2_t test_vcle_f32(float32x2_t a, float32x2_t b) {
   1177   return vcle_f32(a, b);
   1178 }
   1179 
   1180 // CHECK: test_vcle_u8
   1181 // CHECK: vcge.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1182 uint8x8_t test_vcle_u8(uint8x8_t a, uint8x8_t b) {
   1183   return vcle_u8(a, b);
   1184 }
   1185 
   1186 // CHECK: test_vcle_u16
   1187 // CHECK: vcge.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1188 uint16x4_t test_vcle_u16(uint16x4_t a, uint16x4_t b) {
   1189   return vcle_u16(a, b);
   1190 }
   1191 
   1192 // CHECK: test_vcle_u32
   1193 // CHECK: vcge.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1194 uint32x2_t test_vcle_u32(uint32x2_t a, uint32x2_t b) {
   1195   return vcle_u32(a, b);
   1196 }
   1197 
   1198 // CHECK: test_vcleq_s8
   1199 // CHECK: vcge.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1200 uint8x16_t test_vcleq_s8(int8x16_t a, int8x16_t b) {
   1201   return vcleq_s8(a, b);
   1202 }
   1203 
   1204 // CHECK: test_vcleq_s16
   1205 // CHECK: vcge.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1206 uint16x8_t test_vcleq_s16(int16x8_t a, int16x8_t b) {
   1207   return vcleq_s16(a, b);
   1208 }
   1209 
   1210 // CHECK: test_vcleq_s32
   1211 // CHECK: vcge.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1212 uint32x4_t test_vcleq_s32(int32x4_t a, int32x4_t b) {
   1213   return vcleq_s32(a, b);
   1214 }
   1215 
   1216 // CHECK: test_vcleq_f32
   1217 // CHECK: vcge.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1218 uint32x4_t test_vcleq_f32(float32x4_t a, float32x4_t b) {
   1219   return vcleq_f32(a, b);
   1220 }
   1221 
   1222 // CHECK: test_vcleq_u8
   1223 // CHECK: vcge.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1224 uint8x16_t test_vcleq_u8(uint8x16_t a, uint8x16_t b) {
   1225   return vcleq_u8(a, b);
   1226 }
   1227 
   1228 // CHECK: test_vcleq_u16
   1229 // CHECK: vcge.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1230 uint16x8_t test_vcleq_u16(uint16x8_t a, uint16x8_t b) {
   1231   return vcleq_u16(a, b);
   1232 }
   1233 
   1234 // CHECK: test_vcleq_u32
   1235 // CHECK: vcge.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1236 uint32x4_t test_vcleq_u32(uint32x4_t a, uint32x4_t b) {
   1237   return vcleq_u32(a, b);
   1238 }
   1239 
   1240 
   1241 // CHECK: test_vcls_s8
   1242 // CHECK: vcls.s8 d{{[0-9]+}}, d{{[0-9]+}}
   1243 int8x8_t test_vcls_s8(int8x8_t a) {
   1244   return vcls_s8(a);
   1245 }
   1246 
   1247 // CHECK: test_vcls_s16
   1248 // CHECK: vcls.s16 d{{[0-9]+}}, d{{[0-9]+}}
   1249 int16x4_t test_vcls_s16(int16x4_t a) {
   1250   return vcls_s16(a);
   1251 }
   1252 
   1253 // CHECK: test_vcls_s32
   1254 // CHECK: vcls.s32 d{{[0-9]+}}, d{{[0-9]+}}
   1255 int32x2_t test_vcls_s32(int32x2_t a) {
   1256   return vcls_s32(a);
   1257 }
   1258 
   1259 // CHECK: test_vclsq_s8
   1260 // CHECK: vcls.s8 q{{[0-9]+}}, q{{[0-9]+}}
   1261 int8x16_t test_vclsq_s8(int8x16_t a) {
   1262   return vclsq_s8(a);
   1263 }
   1264 
   1265 // CHECK: test_vclsq_s16
   1266 // CHECK: vcls.s16 q{{[0-9]+}}, q{{[0-9]+}}
   1267 int16x8_t test_vclsq_s16(int16x8_t a) {
   1268   return vclsq_s16(a);
   1269 }
   1270 
   1271 // CHECK: test_vclsq_s32
   1272 // CHECK: vcls.s32 q{{[0-9]+}}, q{{[0-9]+}}
   1273 int32x4_t test_vclsq_s32(int32x4_t a) {
   1274   return vclsq_s32(a);
   1275 }
   1276 
   1277 
   1278 // CHECK: test_vclt_s8
   1279 // CHECK: vcgt.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1280 uint8x8_t test_vclt_s8(int8x8_t a, int8x8_t b) {
   1281   return vclt_s8(a, b);
   1282 }
   1283 
   1284 // CHECK: test_vclt_s16
   1285 // CHECK: vcgt.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1286 uint16x4_t test_vclt_s16(int16x4_t a, int16x4_t b) {
   1287   return vclt_s16(a, b);
   1288 }
   1289 
   1290 // CHECK: test_vclt_s32
   1291 // CHECK: vcgt.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1292 uint32x2_t test_vclt_s32(int32x2_t a, int32x2_t b) {
   1293   return vclt_s32(a, b);
   1294 }
   1295 
   1296 // CHECK: test_vclt_f32
   1297 // CHECK: vcgt.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1298 uint32x2_t test_vclt_f32(float32x2_t a, float32x2_t b) {
   1299   return vclt_f32(a, b);
   1300 }
   1301 
   1302 // CHECK: test_vclt_u8
   1303 // CHECK: vcgt.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1304 uint8x8_t test_vclt_u8(uint8x8_t a, uint8x8_t b) {
   1305   return vclt_u8(a, b);
   1306 }
   1307 
   1308 // CHECK: test_vclt_u16
   1309 // CHECK: vcgt.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1310 uint16x4_t test_vclt_u16(uint16x4_t a, uint16x4_t b) {
   1311   return vclt_u16(a, b);
   1312 }
   1313 
   1314 // CHECK: test_vclt_u32
   1315 // CHECK: vcgt.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1316 uint32x2_t test_vclt_u32(uint32x2_t a, uint32x2_t b) {
   1317   return vclt_u32(a, b);
   1318 }
   1319 
   1320 // CHECK: test_vcltq_s8
   1321 // CHECK: vcgt.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1322 uint8x16_t test_vcltq_s8(int8x16_t a, int8x16_t b) {
   1323   return vcltq_s8(a, b);
   1324 }
   1325 
   1326 // CHECK: test_vcltq_s16
   1327 // CHECK: vcgt.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1328 uint16x8_t test_vcltq_s16(int16x8_t a, int16x8_t b) {
   1329   return vcltq_s16(a, b);
   1330 }
   1331 
   1332 // CHECK: test_vcltq_s32
   1333 // CHECK: vcgt.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1334 uint32x4_t test_vcltq_s32(int32x4_t a, int32x4_t b) {
   1335   return vcltq_s32(a, b);
   1336 }
   1337 
   1338 // CHECK: test_vcltq_f32
   1339 // CHECK: vcgt.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1340 uint32x4_t test_vcltq_f32(float32x4_t a, float32x4_t b) {
   1341   return vcltq_f32(a, b);
   1342 }
   1343 
   1344 // CHECK: test_vcltq_u8
   1345 // CHECK: vcgt.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1346 uint8x16_t test_vcltq_u8(uint8x16_t a, uint8x16_t b) {
   1347   return vcltq_u8(a, b);
   1348 }
   1349 
   1350 // CHECK: test_vcltq_u16
   1351 // CHECK: vcgt.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1352 uint16x8_t test_vcltq_u16(uint16x8_t a, uint16x8_t b) {
   1353   return vcltq_u16(a, b);
   1354 }
   1355 
   1356 // CHECK: test_vcltq_u32
   1357 // CHECK: vcgt.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   1358 uint32x4_t test_vcltq_u32(uint32x4_t a, uint32x4_t b) {
   1359   return vcltq_u32(a, b);
   1360 }
   1361 
   1362 
   1363 // CHECK: test_vclz_s8
   1364 // CHECK: vclz.i8 d{{[0-9]+}}, d{{[0-9]+}}
   1365 int8x8_t test_vclz_s8(int8x8_t a) {
   1366   return vclz_s8(a);
   1367 }
   1368 
   1369 // CHECK: test_vclz_s16
   1370 // CHECK: vclz.i16 d{{[0-9]+}}, d{{[0-9]+}}
   1371 int16x4_t test_vclz_s16(int16x4_t a) {
   1372   return vclz_s16(a);
   1373 }
   1374 
   1375 // CHECK: test_vclz_s32
   1376 // CHECK: vclz.i32 d{{[0-9]+}}, d{{[0-9]+}}
   1377 int32x2_t test_vclz_s32(int32x2_t a) {
   1378   return vclz_s32(a);
   1379 }
   1380 
   1381 // CHECK: test_vclz_u8
   1382 // CHECK: vclz.i8 d{{[0-9]+}}, d{{[0-9]+}}
   1383 uint8x8_t test_vclz_u8(uint8x8_t a) {
   1384   return vclz_u8(a);
   1385 }
   1386 
   1387 // CHECK: test_vclz_u16
   1388 // CHECK: vclz.i16 d{{[0-9]+}}, d{{[0-9]+}}
   1389 uint16x4_t test_vclz_u16(uint16x4_t a) {
   1390   return vclz_u16(a);
   1391 }
   1392 
   1393 // CHECK: test_vclz_u32
   1394 // CHECK: vclz.i32 d{{[0-9]+}}, d{{[0-9]+}}
   1395 uint32x2_t test_vclz_u32(uint32x2_t a) {
   1396   return vclz_u32(a);
   1397 }
   1398 
   1399 // CHECK: test_vclzq_s8
   1400 // CHECK: vclz.i8 q{{[0-9]+}}, q{{[0-9]+}}
   1401 int8x16_t test_vclzq_s8(int8x16_t a) {
   1402   return vclzq_s8(a);
   1403 }
   1404 
   1405 // CHECK: test_vclzq_s16
   1406 // CHECK: vclz.i16 q{{[0-9]+}}, q{{[0-9]+}}
   1407 int16x8_t test_vclzq_s16(int16x8_t a) {
   1408   return vclzq_s16(a);
   1409 }
   1410 
   1411 // CHECK: test_vclzq_s32
   1412 // CHECK: vclz.i32 q{{[0-9]+}}, q{{[0-9]+}}
   1413 int32x4_t test_vclzq_s32(int32x4_t a) {
   1414   return vclzq_s32(a);
   1415 }
   1416 
   1417 // CHECK: test_vclzq_u8
   1418 // CHECK: vclz.i8 q{{[0-9]+}}, q{{[0-9]+}}
   1419 uint8x16_t test_vclzq_u8(uint8x16_t a) {
   1420   return vclzq_u8(a);
   1421 }
   1422 
   1423 // CHECK: test_vclzq_u16
   1424 // CHECK: vclz.i16 q{{[0-9]+}}, q{{[0-9]+}}
   1425 uint16x8_t test_vclzq_u16(uint16x8_t a) {
   1426   return vclzq_u16(a);
   1427 }
   1428 
   1429 // CHECK: test_vclzq_u32
   1430 // CHECK: vclz.i32 q{{[0-9]+}}, q{{[0-9]+}}
   1431 uint32x4_t test_vclzq_u32(uint32x4_t a) {
   1432   return vclzq_u32(a);
   1433 }
   1434 
   1435 
   1436 // CHECK: test_vcnt_u8
   1437 // CHECK: vcnt.8 d{{[0-9]+}}, d{{[0-9]+}}
   1438 uint8x8_t test_vcnt_u8(uint8x8_t a) {
   1439   return vcnt_u8(a);
   1440 }
   1441 
   1442 // CHECK: test_vcnt_s8
   1443 // CHECK: vcnt.8 d{{[0-9]+}}, d{{[0-9]+}}
   1444 int8x8_t test_vcnt_s8(int8x8_t a) {
   1445   return vcnt_s8(a);
   1446 }
   1447 
   1448 // CHECK: test_vcnt_p8
   1449 // CHECK: vcnt.8 d{{[0-9]+}}, d{{[0-9]+}}
   1450 poly8x8_t test_vcnt_p8(poly8x8_t a) {
   1451   return vcnt_p8(a);
   1452 }
   1453 
   1454 // CHECK: test_vcntq_u8
   1455 // CHECK: vcnt.8 q{{[0-9]+}}, q{{[0-9]+}}
   1456 uint8x16_t test_vcntq_u8(uint8x16_t a) {
   1457   return vcntq_u8(a);
   1458 }
   1459 
   1460 // CHECK: test_vcntq_s8
   1461 // CHECK: vcnt.8 q{{[0-9]+}}, q{{[0-9]+}}
   1462 int8x16_t test_vcntq_s8(int8x16_t a) {
   1463   return vcntq_s8(a);
   1464 }
   1465 
   1466 // CHECK: test_vcntq_p8
   1467 // CHECK: vcnt.8 q{{[0-9]+}}, q{{[0-9]+}}
   1468 poly8x16_t test_vcntq_p8(poly8x16_t a) {
   1469   return vcntq_p8(a);
   1470 }
   1471 
   1472 
   1473 // CHECK: test_vcombine_s8
   1474 int8x16_t test_vcombine_s8(int8x8_t a, int8x8_t b) {
   1475   return vcombine_s8(a, b);
   1476 }
   1477 
   1478 // CHECK: test_vcombine_s16
   1479 int16x8_t test_vcombine_s16(int16x4_t a, int16x4_t b) {
   1480   return vcombine_s16(a, b);
   1481 }
   1482 
   1483 // CHECK: test_vcombine_s32
   1484 int32x4_t test_vcombine_s32(int32x2_t a, int32x2_t b) {
   1485   return vcombine_s32(a, b);
   1486 }
   1487 
   1488 // CHECK: test_vcombine_s64
   1489 int64x2_t test_vcombine_s64(int64x1_t a, int64x1_t b) {
   1490   return vcombine_s64(a, b);
   1491 }
   1492 
   1493 // CHECK: test_vcombine_f16
   1494 float16x8_t test_vcombine_f16(float16x4_t a, float16x4_t b) {
   1495   return vcombine_f16(a, b);
   1496 }
   1497 
   1498 // CHECK: test_vcombine_f32
   1499 float32x4_t test_vcombine_f32(float32x2_t a, float32x2_t b) {
   1500   return vcombine_f32(a, b);
   1501 }
   1502 
   1503 // CHECK: test_vcombine_u8
   1504 uint8x16_t test_vcombine_u8(uint8x8_t a, uint8x8_t b) {
   1505   return vcombine_u8(a, b);
   1506 }
   1507 
   1508 // CHECK: test_vcombine_u16
   1509 uint16x8_t test_vcombine_u16(uint16x4_t a, uint16x4_t b) {
   1510   return vcombine_u16(a, b);
   1511 }
   1512 
   1513 // CHECK: test_vcombine_u32
   1514 uint32x4_t test_vcombine_u32(uint32x2_t a, uint32x2_t b) {
   1515   return vcombine_u32(a, b);
   1516 }
   1517 
   1518 // CHECK: test_vcombine_u64
   1519 uint64x2_t test_vcombine_u64(uint64x1_t a, uint64x1_t b) {
   1520   return vcombine_u64(a, b);
   1521 }
   1522 
   1523 // CHECK: test_vcombine_p8
   1524 poly8x16_t test_vcombine_p8(poly8x8_t a, poly8x8_t b) {
   1525   return vcombine_p8(a, b);
   1526 }
   1527 
   1528 // CHECK: test_vcombine_p16
   1529 poly16x8_t test_vcombine_p16(poly16x4_t a, poly16x4_t b) {
   1530   return vcombine_p16(a, b);
   1531 }
   1532 
   1533 
   1534 // CHECK: test_vcreate_s8
   1535 int8x8_t test_vcreate_s8(uint64_t a) {
   1536   return vcreate_s8(a);
   1537 }
   1538 
   1539 // CHECK: test_vcreate_s16
   1540 int16x4_t test_vcreate_s16(uint64_t a) {
   1541   return vcreate_s16(a);
   1542 }
   1543 
   1544 // CHECK: test_vcreate_s32
   1545 int32x2_t test_vcreate_s32(uint64_t a) {
   1546   return vcreate_s32(a);
   1547 }
   1548 
   1549 // CHECK: test_vcreate_f16
   1550 float16x4_t test_vcreate_f16(uint64_t a) {
   1551   return vcreate_f16(a);
   1552 }
   1553 
   1554 // CHECK: test_vcreate_f32
   1555 float32x2_t test_vcreate_f32(uint64_t a) {
   1556   return vcreate_f32(a);
   1557 }
   1558 
   1559 // CHECK: test_vcreate_u8
   1560 uint8x8_t test_vcreate_u8(uint64_t a) {
   1561   return vcreate_u8(a);
   1562 }
   1563 
   1564 // CHECK: test_vcreate_u16
   1565 uint16x4_t test_vcreate_u16(uint64_t a) {
   1566   return vcreate_u16(a);
   1567 }
   1568 
   1569 // CHECK: test_vcreate_u32
   1570 uint32x2_t test_vcreate_u32(uint64_t a) {
   1571   return vcreate_u32(a);
   1572 }
   1573 
   1574 // CHECK: test_vcreate_u64
   1575 uint64x1_t test_vcreate_u64(uint64_t a) {
   1576   return vcreate_u64(a);
   1577 }
   1578 
   1579 // CHECK: test_vcreate_p8
   1580 poly8x8_t test_vcreate_p8(uint64_t a) {
   1581   return vcreate_p8(a);
   1582 }
   1583 
   1584 // CHECK: test_vcreate_p16
   1585 poly16x4_t test_vcreate_p16(uint64_t a) {
   1586   return vcreate_p16(a);
   1587 }
   1588 
   1589 // CHECK: test_vcreate_s64
   1590 int64x1_t test_vcreate_s64(uint64_t a) {
   1591   return vcreate_s64(a);
   1592 }
   1593 
   1594 
   1595 // CHECK: test_vcvt_f16_f32
   1596 // CHECK: vcvt.f16.f32 d{{[0-9]+}}, q{{[0-9]+}}
   1597 float16x4_t test_vcvt_f16_f32(float32x4_t a) {
   1598   return vcvt_f16_f32(a);
   1599 }
   1600 
   1601 
   1602 // CHECK: test_vcvt_f32_s32
   1603 // CHECK: vcvt.f32.s32 d{{[0-9]+}}, d{{[0-9]+}}
   1604 float32x2_t test_vcvt_f32_s32(int32x2_t a) {
   1605   return vcvt_f32_s32(a);
   1606 }
   1607 
   1608 // CHECK: test_vcvt_f32_u32
   1609 // CHECK: vcvt.f32.u32 d{{[0-9]+}}, d{{[0-9]+}}
   1610 float32x2_t test_vcvt_f32_u32(uint32x2_t a) {
   1611   return vcvt_f32_u32(a);
   1612 }
   1613 
   1614 // CHECK: test_vcvtq_f32_s32
   1615 // CHECK: vcvt.f32.s32 q{{[0-9]+}}, q{{[0-9]+}}
   1616 float32x4_t test_vcvtq_f32_s32(int32x4_t a) {
   1617   return vcvtq_f32_s32(a);
   1618 }
   1619 
   1620 // CHECK: test_vcvtq_f32_u32
   1621 // CHECK: vcvt.f32.u32 q{{[0-9]+}}, q{{[0-9]+}}
   1622 float32x4_t test_vcvtq_f32_u32(uint32x4_t a) {
   1623   return vcvtq_f32_u32(a);
   1624 }
   1625 
   1626 
   1627 // CHECK: test_vcvt_f32_f16
   1628 // CHECK: vcvt.f32.f16
   1629 float32x4_t test_vcvt_f32_f16(float16x4_t a) {
   1630   return vcvt_f32_f16(a);
   1631 }
   1632 
   1633 
   1634 // CHECK: test_vcvt_n_f32_s32
   1635 // CHECK: vcvt.f32.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   1636 float32x2_t test_vcvt_n_f32_s32(int32x2_t a) {
   1637   return vcvt_n_f32_s32(a, 1);
   1638 }
   1639 
   1640 // CHECK: test_vcvt_n_f32_u32
   1641 // CHECK: vcvt.f32.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   1642 float32x2_t test_vcvt_n_f32_u32(uint32x2_t a) {
   1643   return vcvt_n_f32_u32(a, 1);
   1644 }
   1645 
   1646 // CHECK: test_vcvtq_n_f32_s32
   1647 // CHECK: vcvt.f32.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   1648 float32x4_t test_vcvtq_n_f32_s32(int32x4_t a) {
   1649   return vcvtq_n_f32_s32(a, 3);
   1650 }
   1651 
   1652 // CHECK: test_vcvtq_n_f32_u32
   1653 // CHECK: vcvt.f32.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   1654 float32x4_t test_vcvtq_n_f32_u32(uint32x4_t a) {
   1655   return vcvtq_n_f32_u32(a, 3);
   1656 }
   1657 
   1658 
   1659 // CHECK: test_vcvt_n_s32_f32
   1660 // CHECK: vcvt.s32.f32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   1661 int32x2_t test_vcvt_n_s32_f32(float32x2_t a) {
   1662   return vcvt_n_s32_f32(a, 1);
   1663 }
   1664 
   1665 // CHECK: test_vcvtq_n_s32_f32
   1666 // CHECK: vcvt.s32.f32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   1667 int32x4_t test_vcvtq_n_s32_f32(float32x4_t a) {
   1668   return vcvtq_n_s32_f32(a, 3);
   1669 }
   1670 
   1671 
   1672 // CHECK: test_vcvt_n_u32_f32
   1673 // CHECK: vcvt.u32.f32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   1674 uint32x2_t test_vcvt_n_u32_f32(float32x2_t a) {
   1675   return vcvt_n_u32_f32(a, 1);
   1676 }
   1677 
   1678 // CHECK: test_vcvtq_n_u32_f32
   1679 // CHECK: vcvt.u32.f32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   1680 uint32x4_t test_vcvtq_n_u32_f32(float32x4_t a) {
   1681   return vcvtq_n_u32_f32(a, 3);
   1682 }
   1683 
   1684 
   1685 // CHECK: test_vcvt_s32_f32
   1686 // CHECK: vcvt.s32.f32 d{{[0-9]+}}, d{{[0-9]+}}
   1687 int32x2_t test_vcvt_s32_f32(float32x2_t a) {
   1688   return vcvt_s32_f32(a);
   1689 }
   1690 
   1691 // CHECK: test_vcvtq_s32_f32
   1692 // CHECK: vcvt.s32.f32 q{{[0-9]+}}, q{{[0-9]+}}
   1693 int32x4_t test_vcvtq_s32_f32(float32x4_t a) {
   1694   return vcvtq_s32_f32(a);
   1695 }
   1696 
   1697 
   1698 // CHECK: test_vcvt_u32_f32
   1699 // CHECK: vcvt.u32.f32 d{{[0-9]+}}, d{{[0-9]+}}
   1700 uint32x2_t test_vcvt_u32_f32(float32x2_t a) {
   1701   return vcvt_u32_f32(a);
   1702 }
   1703 
   1704 // CHECK: test_vcvtq_u32_f32
   1705 // CHECK: vcvt.u32.f32 q{{[0-9]+}}, q{{[0-9]+}}
   1706 uint32x4_t test_vcvtq_u32_f32(float32x4_t a) {
   1707   return vcvtq_u32_f32(a);
   1708 }
   1709 
   1710 
   1711 // CHECK: test_vdup_lane_u8
   1712 // CHECK: vdup.8 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   1713 uint8x8_t test_vdup_lane_u8(uint8x8_t a) {
   1714   return vdup_lane_u8(a, 7);
   1715 }
   1716 
   1717 // CHECK: test_vdup_lane_u16
   1718 // CHECK: vdup.16 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   1719 uint16x4_t test_vdup_lane_u16(uint16x4_t a) {
   1720   return vdup_lane_u16(a, 3);
   1721 }
   1722 
   1723 // CHECK: test_vdup_lane_u32
   1724 // CHECK: vdup.32 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   1725 uint32x2_t test_vdup_lane_u32(uint32x2_t a) {
   1726   return vdup_lane_u32(a, 1);
   1727 }
   1728 
   1729 // CHECK: test_vdup_lane_s8
   1730 // CHECK: vdup.8 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   1731 int8x8_t test_vdup_lane_s8(int8x8_t a) {
   1732   return vdup_lane_s8(a, 7);
   1733 }
   1734 
   1735 // CHECK: test_vdup_lane_s16
   1736 // CHECK: vdup.16 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   1737 int16x4_t test_vdup_lane_s16(int16x4_t a) {
   1738   return vdup_lane_s16(a, 3);
   1739 }
   1740 
   1741 // CHECK: test_vdup_lane_s32
   1742 // CHECK: vdup.32 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   1743 int32x2_t test_vdup_lane_s32(int32x2_t a) {
   1744   return vdup_lane_s32(a, 1);
   1745 }
   1746 
   1747 // CHECK: test_vdup_lane_p8
   1748 // CHECK: vdup.8 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   1749 poly8x8_t test_vdup_lane_p8(poly8x8_t a) {
   1750   return vdup_lane_p8(a, 7);
   1751 }
   1752 
   1753 // CHECK: test_vdup_lane_p16
   1754 // CHECK: vdup.16 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   1755 poly16x4_t test_vdup_lane_p16(poly16x4_t a) {
   1756   return vdup_lane_p16(a, 3);
   1757 }
   1758 
   1759 // CHECK: test_vdup_lane_f32
   1760 // CHECK: vdup.32 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   1761 float32x2_t test_vdup_lane_f32(float32x2_t a) {
   1762   return vdup_lane_f32(a, 1);
   1763 }
   1764 
   1765 // CHECK: test_vdupq_lane_u8
   1766 // CHECK: vdup.8 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   1767 uint8x16_t test_vdupq_lane_u8(uint8x8_t a) {
   1768   return vdupq_lane_u8(a, 7);
   1769 }
   1770 
   1771 // CHECK: test_vdupq_lane_u16
   1772 // CHECK: vdup.16 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   1773 uint16x8_t test_vdupq_lane_u16(uint16x4_t a) {
   1774   return vdupq_lane_u16(a, 3);
   1775 }
   1776 
   1777 // CHECK: test_vdupq_lane_u32
   1778 // CHECK: vdup.32 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   1779 uint32x4_t test_vdupq_lane_u32(uint32x2_t a) {
   1780   return vdupq_lane_u32(a, 1);
   1781 }
   1782 
   1783 // CHECK: test_vdupq_lane_s8
   1784 // CHECK: vdup.8 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   1785 int8x16_t test_vdupq_lane_s8(int8x8_t a) {
   1786   return vdupq_lane_s8(a, 7);
   1787 }
   1788 
   1789 // CHECK: test_vdupq_lane_s16
   1790 // CHECK: vdup.16 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   1791 int16x8_t test_vdupq_lane_s16(int16x4_t a) {
   1792   return vdupq_lane_s16(a, 3);
   1793 }
   1794 
   1795 // CHECK: test_vdupq_lane_s32
   1796 // CHECK: vdup.32 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   1797 int32x4_t test_vdupq_lane_s32(int32x2_t a) {
   1798   return vdupq_lane_s32(a, 1);
   1799 }
   1800 
   1801 // CHECK: test_vdupq_lane_p8
   1802 // CHECK: vdup.8 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   1803 poly8x16_t test_vdupq_lane_p8(poly8x8_t a) {
   1804   return vdupq_lane_p8(a, 7);
   1805 }
   1806 
   1807 // CHECK: test_vdupq_lane_p16
   1808 // CHECK: vdup.16 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   1809 poly16x8_t test_vdupq_lane_p16(poly16x4_t a) {
   1810   return vdupq_lane_p16(a, 3);
   1811 }
   1812 
   1813 // CHECK: test_vdupq_lane_f32
   1814 // CHECK: vdup.32 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   1815 float32x4_t test_vdupq_lane_f32(float32x2_t a) {
   1816   return vdupq_lane_f32(a, 1);
   1817 }
   1818 
   1819 // CHECK: test_vdup_lane_s64
   1820 int64x1_t test_vdup_lane_s64(int64x1_t a) {
   1821   return vdup_lane_s64(a, 0);
   1822 }
   1823 
   1824 // CHECK: test_vdup_lane_u64
   1825 uint64x1_t test_vdup_lane_u64(uint64x1_t a) {
   1826   return vdup_lane_u64(a, 0);
   1827 }
   1828 
   1829 // CHECK: test_vdupq_lane_s64
   1830 // CHECK: {{vmov|vdup}}
   1831 int64x2_t test_vdupq_lane_s64(int64x1_t a) {
   1832   return vdupq_lane_s64(a, 0);
   1833 }
   1834 
   1835 // CHECK: test_vdupq_lane_u64
   1836 // CHECK: {{vmov|vdup}}
   1837 uint64x2_t test_vdupq_lane_u64(uint64x1_t a) {
   1838   return vdupq_lane_u64(a, 0);
   1839 }
   1840 
   1841 
   1842 // CHECK: test_vdup_n_u8
   1843 // CHECK: vmov
   1844 uint8x8_t test_vdup_n_u8(uint8_t a) {
   1845   return vdup_n_u8(a);
   1846 }
   1847 
   1848 // CHECK: test_vdup_n_u16
   1849 // CHECK: vmov
   1850 uint16x4_t test_vdup_n_u16(uint16_t a) {
   1851   return vdup_n_u16(a);
   1852 }
   1853 
   1854 // CHECK: test_vdup_n_u32
   1855 // CHECK: vmov
   1856 uint32x2_t test_vdup_n_u32(uint32_t a) {
   1857   return vdup_n_u32(a);
   1858 }
   1859 
   1860 // CHECK: test_vdup_n_s8
   1861 // CHECK: vmov
   1862 int8x8_t test_vdup_n_s8(int8_t a) {
   1863   return vdup_n_s8(a);
   1864 }
   1865 
   1866 // CHECK: test_vdup_n_s16
   1867 // CHECK: vmov
   1868 int16x4_t test_vdup_n_s16(int16_t a) {
   1869   return vdup_n_s16(a);
   1870 }
   1871 
   1872 // CHECK: test_vdup_n_s32
   1873 // CHECK: vmov
   1874 int32x2_t test_vdup_n_s32(int32_t a) {
   1875   return vdup_n_s32(a);
   1876 }
   1877 
   1878 // CHECK: test_vdup_n_p8
   1879 // CHECK: vmov
   1880 poly8x8_t test_vdup_n_p8(poly8_t a) {
   1881   return vdup_n_p8(a);
   1882 }
   1883 
   1884 // CHECK: test_vdup_n_p16
   1885 // CHECK: vmov
   1886 poly16x4_t test_vdup_n_p16(poly16_t a) {
   1887   return vdup_n_p16(a);
   1888 }
   1889 
   1890 // CHECK: test_vdup_n_f32
   1891 // CHECK: vmov
   1892 float32x2_t test_vdup_n_f32(float32_t a) {
   1893   return vdup_n_f32(a);
   1894 }
   1895 
   1896 // CHECK: test_vdupq_n_u8
   1897 // CHECK: vmov
   1898 uint8x16_t test_vdupq_n_u8(uint8_t a) {
   1899   return vdupq_n_u8(a);
   1900 }
   1901 
   1902 // CHECK: test_vdupq_n_u16
   1903 // CHECK: vmov
   1904 uint16x8_t test_vdupq_n_u16(uint16_t a) {
   1905   return vdupq_n_u16(a);
   1906 }
   1907 
   1908 // CHECK: test_vdupq_n_u32
   1909 // CHECK: vmov
   1910 uint32x4_t test_vdupq_n_u32(uint32_t a) {
   1911   return vdupq_n_u32(a);
   1912 }
   1913 
   1914 // CHECK: test_vdupq_n_s8
   1915 // CHECK: vmov
   1916 int8x16_t test_vdupq_n_s8(int8_t a) {
   1917   return vdupq_n_s8(a);
   1918 }
   1919 
   1920 // CHECK: test_vdupq_n_s16
   1921 // CHECK: vmov
   1922 int16x8_t test_vdupq_n_s16(int16_t a) {
   1923   return vdupq_n_s16(a);
   1924 }
   1925 
   1926 // CHECK: test_vdupq_n_s32
   1927 // CHECK: vmov
   1928 int32x4_t test_vdupq_n_s32(int32_t a) {
   1929   return vdupq_n_s32(a);
   1930 }
   1931 
   1932 // CHECK: test_vdupq_n_p8
   1933 // CHECK: vmov
   1934 poly8x16_t test_vdupq_n_p8(poly8_t a) {
   1935   return vdupq_n_p8(a);
   1936 }
   1937 
   1938 // CHECK: test_vdupq_n_p16
   1939 // CHECK: vmov
   1940 poly16x8_t test_vdupq_n_p16(poly16_t a) {
   1941   return vdupq_n_p16(a);
   1942 }
   1943 
   1944 // CHECK: test_vdupq_n_f32
   1945 // CHECK: vmov
   1946 float32x4_t test_vdupq_n_f32(float32_t a) {
   1947   return vdupq_n_f32(a);
   1948 }
   1949 
   1950 // CHECK: test_vdup_n_s64
   1951 // CHECK: vmov
   1952 int64x1_t test_vdup_n_s64(int64_t a) {
   1953   return vdup_n_s64(a);
   1954 }
   1955 
   1956 // CHECK: test_vdup_n_u64
   1957 // CHECK: vmov
   1958 uint64x1_t test_vdup_n_u64(uint64_t a) {
   1959   return vdup_n_u64(a);
   1960 }
   1961 
   1962 // CHECK: test_vdupq_n_s64
   1963 // CHECK: vmov
   1964 int64x2_t test_vdupq_n_s64(int64_t a) {
   1965   return vdupq_n_s64(a);
   1966 }
   1967 
   1968 // CHECK: test_vdupq_n_u64
   1969 // CHECK: vmov
   1970 uint64x2_t test_vdupq_n_u64(uint64_t a) {
   1971   return vdupq_n_u64(a);
   1972 }
   1973 
   1974 
   1975 // CHECK: test_veor_s8
   1976 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1977 int8x8_t test_veor_s8(int8x8_t a, int8x8_t b) {
   1978   return veor_s8(a, b);
   1979 }
   1980 
   1981 // CHECK: test_veor_s16
   1982 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1983 int16x4_t test_veor_s16(int16x4_t a, int16x4_t b) {
   1984   return veor_s16(a, b);
   1985 }
   1986 
   1987 // CHECK: test_veor_s32
   1988 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1989 int32x2_t test_veor_s32(int32x2_t a, int32x2_t b) {
   1990   return veor_s32(a, b);
   1991 }
   1992 
   1993 // CHECK: test_veor_s64
   1994 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   1995 int64x1_t test_veor_s64(int64x1_t a, int64x1_t b) {
   1996   return veor_s64(a, b);
   1997 }
   1998 
   1999 // CHECK: test_veor_u8
   2000 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   2001 uint8x8_t test_veor_u8(uint8x8_t a, uint8x8_t b) {
   2002   return veor_u8(a, b);
   2003 }
   2004 
   2005 // CHECK: test_veor_u16
   2006 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   2007 uint16x4_t test_veor_u16(uint16x4_t a, uint16x4_t b) {
   2008   return veor_u16(a, b);
   2009 }
   2010 
   2011 // CHECK: test_veor_u32
   2012 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   2013 uint32x2_t test_veor_u32(uint32x2_t a, uint32x2_t b) {
   2014   return veor_u32(a, b);
   2015 }
   2016 
   2017 // CHECK: test_veor_u64
   2018 // CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   2019 uint64x1_t test_veor_u64(uint64x1_t a, uint64x1_t b) {
   2020   return veor_u64(a, b);
   2021 }
   2022 
   2023 // CHECK: test_veorq_s8
   2024 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   2025 int8x16_t test_veorq_s8(int8x16_t a, int8x16_t b) {
   2026   return veorq_s8(a, b);
   2027 }
   2028 
   2029 // CHECK: test_veorq_s16
   2030 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   2031 int16x8_t test_veorq_s16(int16x8_t a, int16x8_t b) {
   2032   return veorq_s16(a, b);
   2033 }
   2034 
   2035 // CHECK: test_veorq_s32
   2036 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   2037 int32x4_t test_veorq_s32(int32x4_t a, int32x4_t b) {
   2038   return veorq_s32(a, b);
   2039 }
   2040 
   2041 // CHECK: test_veorq_s64
   2042 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   2043 int64x2_t test_veorq_s64(int64x2_t a, int64x2_t b) {
   2044   return veorq_s64(a, b);
   2045 }
   2046 
   2047 // CHECK: test_veorq_u8
   2048 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   2049 uint8x16_t test_veorq_u8(uint8x16_t a, uint8x16_t b) {
   2050   return veorq_u8(a, b);
   2051 }
   2052 
   2053 // CHECK: test_veorq_u16
   2054 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   2055 uint16x8_t test_veorq_u16(uint16x8_t a, uint16x8_t b) {
   2056   return veorq_u16(a, b);
   2057 }
   2058 
   2059 // CHECK: test_veorq_u32
   2060 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   2061 uint32x4_t test_veorq_u32(uint32x4_t a, uint32x4_t b) {
   2062   return veorq_u32(a, b);
   2063 }
   2064 
   2065 // CHECK: test_veorq_u64
   2066 // CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   2067 uint64x2_t test_veorq_u64(uint64x2_t a, uint64x2_t b) {
   2068   return veorq_u64(a, b);
   2069 }
   2070 
   2071 
   2072 // CHECK: test_vext_s8
   2073 // CHECK: vext.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   2074 int8x8_t test_vext_s8(int8x8_t a, int8x8_t b) {
   2075   return vext_s8(a, b, 7);
   2076 }
   2077 
   2078 // CHECK: test_vext_u8
   2079 // CHECK: vext.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   2080 uint8x8_t test_vext_u8(uint8x8_t a, uint8x8_t b) {
   2081   return vext_u8(a, b, 7);
   2082 }
   2083 
   2084 // CHECK: test_vext_p8
   2085 // CHECK: vext.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   2086 poly8x8_t test_vext_p8(poly8x8_t a, poly8x8_t b) {
   2087   return vext_p8(a, b, 7);
   2088 }
   2089 
   2090 // CHECK: test_vext_s16
   2091 // CHECK: vext.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   2092 int16x4_t test_vext_s16(int16x4_t a, int16x4_t b) {
   2093   return vext_s16(a, b, 3);
   2094 }
   2095 
   2096 // CHECK: test_vext_u16
   2097 // CHECK: vext.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   2098 uint16x4_t test_vext_u16(uint16x4_t a, uint16x4_t b) {
   2099   return vext_u16(a, b, 3);
   2100 }
   2101 
   2102 // CHECK: test_vext_p16
   2103 // CHECK: vext.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   2104 poly16x4_t test_vext_p16(poly16x4_t a, poly16x4_t b) {
   2105   return vext_p16(a, b, 3);
   2106 }
   2107 
   2108 // CHECK: test_vext_s32
   2109 // CHECK: vext.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   2110 int32x2_t test_vext_s32(int32x2_t a, int32x2_t b) {
   2111   return vext_s32(a, b, 1);
   2112 }
   2113 
   2114 // CHECK: test_vext_u32
   2115 // CHECK: vext.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   2116 uint32x2_t test_vext_u32(uint32x2_t a, uint32x2_t b) {
   2117   return vext_u32(a, b, 1);
   2118 }
   2119 
   2120 // CHECK: test_vext_s64
   2121 int64x1_t test_vext_s64(int64x1_t a, int64x1_t b) {
   2122   return vext_s64(a, b, 0);
   2123 }
   2124 
   2125 // CHECK: test_vext_u64
   2126 uint64x1_t test_vext_u64(uint64x1_t a, uint64x1_t b) {
   2127   return vext_u64(a, b, 0);
   2128 }
   2129 
   2130 // CHECK: test_vext_f32
   2131 // CHECK: vext.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   2132 float32x2_t test_vext_f32(float32x2_t a, float32x2_t b) {
   2133   return vext_f32(a, b, 1);
   2134 }
   2135 
   2136 // CHECK: test_vextq_s8
   2137 // CHECK: vext.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   2138 int8x16_t test_vextq_s8(int8x16_t a, int8x16_t b) {
   2139   return vextq_s8(a, b, 15);
   2140 }
   2141 
   2142 // CHECK: test_vextq_u8
   2143 // CHECK: vext.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   2144 uint8x16_t test_vextq_u8(uint8x16_t a, uint8x16_t b) {
   2145   return vextq_u8(a, b, 15);
   2146 }
   2147 
   2148 // CHECK: test_vextq_p8
   2149 // CHECK: vext.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   2150 poly8x16_t test_vextq_p8(poly8x16_t a, poly8x16_t b) {
   2151   return vextq_p8(a, b, 15);
   2152 }
   2153 
   2154 // CHECK: test_vextq_s16
   2155 // CHECK: vext.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   2156 int16x8_t test_vextq_s16(int16x8_t a, int16x8_t b) {
   2157   return vextq_s16(a, b, 7);
   2158 }
   2159 
   2160 // CHECK: test_vextq_u16
   2161 // CHECK: vext.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   2162 uint16x8_t test_vextq_u16(uint16x8_t a, uint16x8_t b) {
   2163   return vextq_u16(a, b, 7);
   2164 }
   2165 
   2166 // CHECK: test_vextq_p16
   2167 // CHECK: vext.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   2168 poly16x8_t test_vextq_p16(poly16x8_t a, poly16x8_t b) {
   2169   return vextq_p16(a, b, 7);
   2170 }
   2171 
   2172 // CHECK: test_vextq_s32
   2173 // CHECK: vext.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   2174 int32x4_t test_vextq_s32(int32x4_t a, int32x4_t b) {
   2175   return vextq_s32(a, b, 3);
   2176 }
   2177 
   2178 // CHECK: test_vextq_u32
   2179 // CHECK: vext.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   2180 uint32x4_t test_vextq_u32(uint32x4_t a, uint32x4_t b) {
   2181   return vextq_u32(a, b, 3);
   2182 }
   2183 
   2184 // CHECK: test_vextq_s64
   2185 // CHECK: {{vmov|vdup}}
   2186 int64x2_t test_vextq_s64(int64x2_t a, int64x2_t b) {
   2187   return vextq_s64(a, b, 1);
   2188 }
   2189 
   2190 // CHECK: test_vextq_u64
   2191 // CHECK: {{vmov|vdup}}
   2192 uint64x2_t test_vextq_u64(uint64x2_t a, uint64x2_t b) {
   2193   return vextq_u64(a, b, 1);
   2194 }
   2195 
   2196 // CHECK: test_vextq_f32
   2197 // CHECK: vext.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   2198 float32x4_t test_vextq_f32(float32x4_t a, float32x4_t b) {
   2199   return vextq_f32(a, b, 3);
   2200 }
   2201 
   2202 
   2203 // CHECK: test_vfma_f32
   2204 // CHECK: vfma.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   2205 float32x2_t test_vfma_f32(float32x2_t a, float32x2_t b, float32x2_t c) {
   2206   return vfma_f32(a, b, c);
   2207 }
   2208 
   2209 // CHECK: test_vfmaq_f32
   2210 // CHECK: vfma.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   2211 float32x4_t test_vfmaq_f32(float32x4_t a, float32x4_t b, float32x4_t c) {
   2212   return vfmaq_f32(a, b, c);
   2213 }
   2214 
   2215 
   2216 // CHECK: test_vget_high_s8
   2217 int8x8_t test_vget_high_s8(int8x16_t a) {
   2218   return vget_high_s8(a);
   2219 }
   2220 
   2221 // CHECK: test_vget_high_s16
   2222 int16x4_t test_vget_high_s16(int16x8_t a) {
   2223   return vget_high_s16(a);
   2224 }
   2225 
   2226 // CHECK: test_vget_high_s32
   2227 int32x2_t test_vget_high_s32(int32x4_t a) {
   2228   return vget_high_s32(a);
   2229 }
   2230 
   2231 // CHECK: test_vget_high_s64
   2232 int64x1_t test_vget_high_s64(int64x2_t a) {
   2233   return vget_high_s64(a);
   2234 }
   2235 
   2236 // CHECK: test_vget_high_f16
   2237 float16x4_t test_vget_high_f16(float16x8_t a) {
   2238   return vget_high_f16(a);
   2239 }
   2240 
   2241 // CHECK: test_vget_high_f32
   2242 float32x2_t test_vget_high_f32(float32x4_t a) {
   2243   return vget_high_f32(a);
   2244 }
   2245 
   2246 // CHECK: test_vget_high_u8
   2247 uint8x8_t test_vget_high_u8(uint8x16_t a) {
   2248   return vget_high_u8(a);
   2249 }
   2250 
   2251 // CHECK: test_vget_high_u16
   2252 uint16x4_t test_vget_high_u16(uint16x8_t a) {
   2253   return vget_high_u16(a);
   2254 }
   2255 
   2256 // CHECK: test_vget_high_u32
   2257 uint32x2_t test_vget_high_u32(uint32x4_t a) {
   2258   return vget_high_u32(a);
   2259 }
   2260 
   2261 // CHECK: test_vget_high_u64
   2262 uint64x1_t test_vget_high_u64(uint64x2_t a) {
   2263   return vget_high_u64(a);
   2264 }
   2265 
   2266 // CHECK: test_vget_high_p8
   2267 poly8x8_t test_vget_high_p8(poly8x16_t a) {
   2268   return vget_high_p8(a);
   2269 }
   2270 
   2271 // CHECK: test_vget_high_p16
   2272 poly16x4_t test_vget_high_p16(poly16x8_t a) {
   2273   return vget_high_p16(a);
   2274 }
   2275 
   2276 
   2277 // CHECK: test_vget_lane_u8
   2278 // CHECK: vmov
   2279 uint8_t test_vget_lane_u8(uint8x8_t a) {
   2280   return vget_lane_u8(a, 7);
   2281 }
   2282 
   2283 // CHECK: test_vget_lane_u16
   2284 // CHECK: vmov
   2285 uint16_t test_vget_lane_u16(uint16x4_t a) {
   2286   return vget_lane_u16(a, 3);
   2287 }
   2288 
   2289 // CHECK: test_vget_lane_u32
   2290 // CHECK: vmov
   2291 uint32_t test_vget_lane_u32(uint32x2_t a) {
   2292   return vget_lane_u32(a, 1);
   2293 }
   2294 
   2295 // CHECK: test_vget_lane_s8
   2296 // CHECK: vmov
   2297 int8_t test_vget_lane_s8(int8x8_t a) {
   2298   return vget_lane_s8(a, 7);
   2299 }
   2300 
   2301 // CHECK: test_vget_lane_s16
   2302 // CHECK: vmov
   2303 int16_t test_vget_lane_s16(int16x4_t a) {
   2304   return vget_lane_s16(a, 3);
   2305 }
   2306 
   2307 // CHECK: test_vget_lane_s32
   2308 // CHECK: vmov
   2309 int32_t test_vget_lane_s32(int32x2_t a) {
   2310   return vget_lane_s32(a, 1);
   2311 }
   2312 
   2313 // CHECK: test_vget_lane_p8
   2314 // CHECK: vmov
   2315 poly8_t test_vget_lane_p8(poly8x8_t a) {
   2316   return vget_lane_p8(a, 7);
   2317 }
   2318 
   2319 // CHECK: test_vget_lane_p16
   2320 // CHECK: vmov
   2321 poly16_t test_vget_lane_p16(poly16x4_t a) {
   2322   return vget_lane_p16(a, 3);
   2323 }
   2324 
   2325 // CHECK: test_vget_lane_f32
   2326 // CHECK: vmov
   2327 float32_t test_vget_lane_f32(float32x2_t a) {
   2328   return vget_lane_f32(a, 1);
   2329 }
   2330 
   2331 // CHECK: test_vgetq_lane_u8
   2332 // CHECK: vmov
   2333 uint8_t test_vgetq_lane_u8(uint8x16_t a) {
   2334   return vgetq_lane_u8(a, 15);
   2335 }
   2336 
   2337 // CHECK: test_vgetq_lane_u16
   2338 // CHECK: vmov
   2339 uint16_t test_vgetq_lane_u16(uint16x8_t a) {
   2340   return vgetq_lane_u16(a, 7);
   2341 }
   2342 
   2343 // CHECK: test_vgetq_lane_u32
   2344 // CHECK: vmov
   2345 uint32_t test_vgetq_lane_u32(uint32x4_t a) {
   2346   return vgetq_lane_u32(a, 3);
   2347 }
   2348 
   2349 // CHECK: test_vgetq_lane_s8
   2350 // CHECK: vmov
   2351 int8_t test_vgetq_lane_s8(int8x16_t a) {
   2352   return vgetq_lane_s8(a, 15);
   2353 }
   2354 
   2355 // CHECK: test_vgetq_lane_s16
   2356 // CHECK: vmov
   2357 int16_t test_vgetq_lane_s16(int16x8_t a) {
   2358   return vgetq_lane_s16(a, 7);
   2359 }
   2360 
   2361 // CHECK: test_vgetq_lane_s32
   2362 // CHECK: vmov
   2363 int32_t test_vgetq_lane_s32(int32x4_t a) {
   2364   return vgetq_lane_s32(a, 3);
   2365 }
   2366 
   2367 // CHECK: test_vgetq_lane_p8
   2368 // CHECK: vmov
   2369 poly8_t test_vgetq_lane_p8(poly8x16_t a) {
   2370   return vgetq_lane_p8(a, 15);
   2371 }
   2372 
   2373 // CHECK: test_vgetq_lane_p16
   2374 // CHECK: vmov
   2375 poly16_t test_vgetq_lane_p16(poly16x8_t a) {
   2376   return vgetq_lane_p16(a, 7);
   2377 }
   2378 
   2379 // CHECK: test_vgetq_lane_f32
   2380 // CHECK: vmov
   2381 float32_t test_vgetq_lane_f32(float32x4_t a) {
   2382   return vgetq_lane_f32(a, 3);
   2383 }
   2384 
   2385 // CHECK: test_vget_lane_s64
   2386 // CHECK: vmov
   2387 int64_t test_vget_lane_s64(int64x1_t a) {
   2388   return vget_lane_s64(a, 0);
   2389 }
   2390 
   2391 // CHECK: test_vget_lane_u64
   2392 // CHECK: vmov
   2393 uint64_t test_vget_lane_u64(uint64x1_t a) {
   2394   return vget_lane_u64(a, 0);
   2395 }
   2396 
   2397 // CHECK: test_vgetq_lane_s64
   2398 // CHECK: vmov
   2399 int64_t test_vgetq_lane_s64(int64x2_t a) {
   2400   return vgetq_lane_s64(a, 1);
   2401 }
   2402 
   2403 // CHECK: test_vgetq_lane_u64
   2404 // CHECK: vmov
   2405 uint64_t test_vgetq_lane_u64(uint64x2_t a) {
   2406   return vgetq_lane_u64(a, 1);
   2407 }
   2408 
   2409 
   2410 // CHECK: test_vget_low_s8
   2411 int8x8_t test_vget_low_s8(int8x16_t a) {
   2412   return vget_low_s8(a);
   2413 }
   2414 
   2415 // CHECK: test_vget_low_s16
   2416 int16x4_t test_vget_low_s16(int16x8_t a) {
   2417   return vget_low_s16(a);
   2418 }
   2419 
   2420 // CHECK: test_vget_low_s32
   2421 int32x2_t test_vget_low_s32(int32x4_t a) {
   2422   return vget_low_s32(a);
   2423 }
   2424 
   2425 // CHECK: test_vget_low_s64
   2426 int64x1_t test_vget_low_s64(int64x2_t a) {
   2427   return vget_low_s64(a);
   2428 }
   2429 
   2430 // CHECK: test_vget_low_f16
   2431 float16x4_t test_vget_low_f16(float16x8_t a) {
   2432   return vget_low_f16(a);
   2433 }
   2434 
   2435 // CHECK: test_vget_low_f32
   2436 float32x2_t test_vget_low_f32(float32x4_t a) {
   2437   return vget_low_f32(a);
   2438 }
   2439 
   2440 // CHECK: test_vget_low_u8
   2441 uint8x8_t test_vget_low_u8(uint8x16_t a) {
   2442   return vget_low_u8(a);
   2443 }
   2444 
   2445 // CHECK: test_vget_low_u16
   2446 uint16x4_t test_vget_low_u16(uint16x8_t a) {
   2447   return vget_low_u16(a);
   2448 }
   2449 
   2450 // CHECK: test_vget_low_u32
   2451 uint32x2_t test_vget_low_u32(uint32x4_t a) {
   2452   return vget_low_u32(a);
   2453 }
   2454 
   2455 // CHECK: test_vget_low_u64
   2456 uint64x1_t test_vget_low_u64(uint64x2_t a) {
   2457   return vget_low_u64(a);
   2458 }
   2459 
   2460 // CHECK: test_vget_low_p8
   2461 poly8x8_t test_vget_low_p8(poly8x16_t a) {
   2462   return vget_low_p8(a);
   2463 }
   2464 
   2465 // CHECK: test_vget_low_p16
   2466 poly16x4_t test_vget_low_p16(poly16x8_t a) {
   2467   return vget_low_p16(a);
   2468 }
   2469 
   2470 
   2471 // CHECK: test_vhadd_s8
   2472 // CHECK: vhadd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   2473 int8x8_t test_vhadd_s8(int8x8_t a, int8x8_t b) {
   2474   return vhadd_s8(a, b);
   2475 }
   2476 
   2477 // CHECK: test_vhadd_s16
   2478 // CHECK: vhadd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   2479 int16x4_t test_vhadd_s16(int16x4_t a, int16x4_t b) {
   2480   return vhadd_s16(a, b);
   2481 }
   2482 
   2483 // CHECK: test_vhadd_s32
   2484 // CHECK: vhadd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   2485 int32x2_t test_vhadd_s32(int32x2_t a, int32x2_t b) {
   2486   return vhadd_s32(a, b);
   2487 }
   2488 
   2489 // CHECK: test_vhadd_u8
   2490 // CHECK: vhadd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   2491 uint8x8_t test_vhadd_u8(uint8x8_t a, uint8x8_t b) {
   2492   return vhadd_u8(a, b);
   2493 }
   2494 
   2495 // CHECK: test_vhadd_u16
   2496 // CHECK: vhadd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   2497 uint16x4_t test_vhadd_u16(uint16x4_t a, uint16x4_t b) {
   2498   return vhadd_u16(a, b);
   2499 }
   2500 
   2501 // CHECK: test_vhadd_u32
   2502 // CHECK: vhadd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   2503 uint32x2_t test_vhadd_u32(uint32x2_t a, uint32x2_t b) {
   2504   return vhadd_u32(a, b);
   2505 }
   2506 
   2507 // CHECK: test_vhaddq_s8
   2508 // CHECK: vhadd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   2509 int8x16_t test_vhaddq_s8(int8x16_t a, int8x16_t b) {
   2510   return vhaddq_s8(a, b);
   2511 }
   2512 
   2513 // CHECK: test_vhaddq_s16
   2514 // CHECK: vhadd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   2515 int16x8_t test_vhaddq_s16(int16x8_t a, int16x8_t b) {
   2516   return vhaddq_s16(a, b);
   2517 }
   2518 
   2519 // CHECK: test_vhaddq_s32
   2520 // CHECK: vhadd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   2521 int32x4_t test_vhaddq_s32(int32x4_t a, int32x4_t b) {
   2522   return vhaddq_s32(a, b);
   2523 }
   2524 
   2525 // CHECK: test_vhaddq_u8
   2526 // CHECK: vhadd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   2527 uint8x16_t test_vhaddq_u8(uint8x16_t a, uint8x16_t b) {
   2528   return vhaddq_u8(a, b);
   2529 }
   2530 
   2531 // CHECK: test_vhaddq_u16
   2532 // CHECK: vhadd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   2533 uint16x8_t test_vhaddq_u16(uint16x8_t a, uint16x8_t b) {
   2534   return vhaddq_u16(a, b);
   2535 }
   2536 
   2537 // CHECK: test_vhaddq_u32
   2538 // CHECK: vhadd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   2539 uint32x4_t test_vhaddq_u32(uint32x4_t a, uint32x4_t b) {
   2540   return vhaddq_u32(a, b);
   2541 }
   2542 
   2543 
   2544 // CHECK: test_vhsub_s8
   2545 // CHECK: vhsub.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   2546 int8x8_t test_vhsub_s8(int8x8_t a, int8x8_t b) {
   2547   return vhsub_s8(a, b);
   2548 }
   2549 
   2550 // CHECK: test_vhsub_s16
   2551 // CHECK: vhsub.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   2552 int16x4_t test_vhsub_s16(int16x4_t a, int16x4_t b) {
   2553   return vhsub_s16(a, b);
   2554 }
   2555 
   2556 // CHECK: test_vhsub_s32
   2557 // CHECK: vhsub.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   2558 int32x2_t test_vhsub_s32(int32x2_t a, int32x2_t b) {
   2559   return vhsub_s32(a, b);
   2560 }
   2561 
   2562 // CHECK: test_vhsub_u8
   2563 // CHECK: vhsub.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   2564 uint8x8_t test_vhsub_u8(uint8x8_t a, uint8x8_t b) {
   2565   return vhsub_u8(a, b);
   2566 }
   2567 
   2568 // CHECK: test_vhsub_u16
   2569 // CHECK: vhsub.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   2570 uint16x4_t test_vhsub_u16(uint16x4_t a, uint16x4_t b) {
   2571   return vhsub_u16(a, b);
   2572 }
   2573 
   2574 // CHECK: test_vhsub_u32
   2575 // CHECK: vhsub.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   2576 uint32x2_t test_vhsub_u32(uint32x2_t a, uint32x2_t b) {
   2577   return vhsub_u32(a, b);
   2578 }
   2579 
   2580 // CHECK: test_vhsubq_s8
   2581 // CHECK: vhsub.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   2582 int8x16_t test_vhsubq_s8(int8x16_t a, int8x16_t b) {
   2583   return vhsubq_s8(a, b);
   2584 }
   2585 
   2586 // CHECK: test_vhsubq_s16
   2587 // CHECK: vhsub.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   2588 int16x8_t test_vhsubq_s16(int16x8_t a, int16x8_t b) {
   2589   return vhsubq_s16(a, b);
   2590 }
   2591 
   2592 // CHECK: test_vhsubq_s32
   2593 // CHECK: vhsub.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   2594 int32x4_t test_vhsubq_s32(int32x4_t a, int32x4_t b) {
   2595   return vhsubq_s32(a, b);
   2596 }
   2597 
   2598 // CHECK: test_vhsubq_u8
   2599 // CHECK: vhsub.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   2600 uint8x16_t test_vhsubq_u8(uint8x16_t a, uint8x16_t b) {
   2601   return vhsubq_u8(a, b);
   2602 }
   2603 
   2604 // CHECK: test_vhsubq_u16
   2605 // CHECK: vhsub.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   2606 uint16x8_t test_vhsubq_u16(uint16x8_t a, uint16x8_t b) {
   2607   return vhsubq_u16(a, b);
   2608 }
   2609 
   2610 // CHECK: test_vhsubq_u32
   2611 // CHECK: vhsub.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   2612 uint32x4_t test_vhsubq_u32(uint32x4_t a, uint32x4_t b) {
   2613   return vhsubq_u32(a, b);
   2614 }
   2615 
   2616 
   2617 // CHECK: test_vld1q_u8
   2618 // CHECK: vld1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   2619 uint8x16_t test_vld1q_u8(uint8_t const * a) {
   2620   return vld1q_u8(a);
   2621 }
   2622 
   2623 // CHECK: test_vld1q_u16
   2624 // CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   2625 uint16x8_t test_vld1q_u16(uint16_t const * a) {
   2626   return vld1q_u16(a);
   2627 }
   2628 
   2629 // CHECK: test_vld1q_u32
   2630 // CHECK: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   2631 uint32x4_t test_vld1q_u32(uint32_t const * a) {
   2632   return vld1q_u32(a);
   2633 }
   2634 
   2635 // CHECK: test_vld1q_u64
   2636 // CHECK: vld1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   2637 uint64x2_t test_vld1q_u64(uint64_t const * a) {
   2638   return vld1q_u64(a);
   2639 }
   2640 
   2641 // CHECK: test_vld1q_s8
   2642 // CHECK: vld1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   2643 int8x16_t test_vld1q_s8(int8_t const * a) {
   2644   return vld1q_s8(a);
   2645 }
   2646 
   2647 // CHECK: test_vld1q_s16
   2648 // CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   2649 int16x8_t test_vld1q_s16(int16_t const * a) {
   2650   return vld1q_s16(a);
   2651 }
   2652 
   2653 // CHECK: test_vld1q_s32
   2654 // CHECK: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   2655 int32x4_t test_vld1q_s32(int32_t const * a) {
   2656   return vld1q_s32(a);
   2657 }
   2658 
   2659 // CHECK: test_vld1q_s64
   2660 // CHECK: vld1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   2661 int64x2_t test_vld1q_s64(int64_t const * a) {
   2662   return vld1q_s64(a);
   2663 }
   2664 
   2665 // CHECK: test_vld1q_f16
   2666 // CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   2667 float16x8_t test_vld1q_f16(float16_t const * a) {
   2668   return vld1q_f16(a);
   2669 }
   2670 
   2671 // CHECK: test_vld1q_f32
   2672 // CHECK: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   2673 float32x4_t test_vld1q_f32(float32_t const * a) {
   2674   return vld1q_f32(a);
   2675 }
   2676 
   2677 // CHECK: test_vld1q_p8
   2678 // CHECK: vld1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   2679 poly8x16_t test_vld1q_p8(poly8_t const * a) {
   2680   return vld1q_p8(a);
   2681 }
   2682 
   2683 // CHECK: test_vld1q_p16
   2684 // CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   2685 poly16x8_t test_vld1q_p16(poly16_t const * a) {
   2686   return vld1q_p16(a);
   2687 }
   2688 
   2689 // CHECK: test_vld1_u8
   2690 // CHECK: vld1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
   2691 uint8x8_t test_vld1_u8(uint8_t const * a) {
   2692   return vld1_u8(a);
   2693 }
   2694 
   2695 // CHECK: test_vld1_u16
   2696 // CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
   2697 uint16x4_t test_vld1_u16(uint16_t const * a) {
   2698   return vld1_u16(a);
   2699 }
   2700 
   2701 // CHECK: test_vld1_u32
   2702 // CHECK: vld1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
   2703 uint32x2_t test_vld1_u32(uint32_t const * a) {
   2704   return vld1_u32(a);
   2705 }
   2706 
   2707 // CHECK: test_vld1_u64
   2708 // CHECK: vld1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}]
   2709 uint64x1_t test_vld1_u64(uint64_t const * a) {
   2710   return vld1_u64(a);
   2711 }
   2712 
   2713 // CHECK: test_vld1_s8
   2714 // CHECK: vld1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
   2715 int8x8_t test_vld1_s8(int8_t const * a) {
   2716   return vld1_s8(a);
   2717 }
   2718 
   2719 // CHECK: test_vld1_s16
   2720 // CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
   2721 int16x4_t test_vld1_s16(int16_t const * a) {
   2722   return vld1_s16(a);
   2723 }
   2724 
   2725 // CHECK: test_vld1_s32
   2726 // CHECK: vld1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
   2727 int32x2_t test_vld1_s32(int32_t const * a) {
   2728   return vld1_s32(a);
   2729 }
   2730 
   2731 // CHECK: test_vld1_s64
   2732 // CHECK: vld1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}]
   2733 int64x1_t test_vld1_s64(int64_t const * a) {
   2734   return vld1_s64(a);
   2735 }
   2736 
   2737 // CHECK: test_vld1_f16
   2738 // CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
   2739 float16x4_t test_vld1_f16(float16_t const * a) {
   2740   return vld1_f16(a);
   2741 }
   2742 
   2743 // CHECK: test_vld1_f32
   2744 // CHECK: vld1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
   2745 float32x2_t test_vld1_f32(float32_t const * a) {
   2746   return vld1_f32(a);
   2747 }
   2748 
   2749 // CHECK: test_vld1_p8
   2750 // CHECK: vld1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
   2751 poly8x8_t test_vld1_p8(poly8_t const * a) {
   2752   return vld1_p8(a);
   2753 }
   2754 
   2755 // CHECK: test_vld1_p16
   2756 // CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
   2757 poly16x4_t test_vld1_p16(poly16_t const * a) {
   2758   return vld1_p16(a);
   2759 }
   2760 
   2761 
   2762 // CHECK: test_vld1q_dup_u8
   2763 // CHECK: vld1.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   2764 uint8x16_t test_vld1q_dup_u8(uint8_t const * a) {
   2765   return vld1q_dup_u8(a);
   2766 }
   2767 
   2768 // CHECK: test_vld1q_dup_u16
   2769 // CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
   2770 uint16x8_t test_vld1q_dup_u16(uint16_t const * a) {
   2771   return vld1q_dup_u16(a);
   2772 }
   2773 
   2774 // CHECK: test_vld1q_dup_u32
   2775 // CHECK: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
   2776 uint32x4_t test_vld1q_dup_u32(uint32_t const * a) {
   2777   return vld1q_dup_u32(a);
   2778 }
   2779 
   2780 // CHECK: test_vld1q_dup_u64
   2781 // CHECK: {{ldr|vldr|vmov}}
   2782 uint64x2_t test_vld1q_dup_u64(uint64_t const * a) {
   2783   return vld1q_dup_u64(a);
   2784 }
   2785 
   2786 // CHECK: test_vld1q_dup_s8
   2787 // CHECK: vld1.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   2788 int8x16_t test_vld1q_dup_s8(int8_t const * a) {
   2789   return vld1q_dup_s8(a);
   2790 }
   2791 
   2792 // CHECK: test_vld1q_dup_s16
   2793 // CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
   2794 int16x8_t test_vld1q_dup_s16(int16_t const * a) {
   2795   return vld1q_dup_s16(a);
   2796 }
   2797 
   2798 // CHECK: test_vld1q_dup_s32
   2799 // CHECK: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
   2800 int32x4_t test_vld1q_dup_s32(int32_t const * a) {
   2801   return vld1q_dup_s32(a);
   2802 }
   2803 
   2804 // CHECK: test_vld1q_dup_s64
   2805 // CHECK: {{ldr|vldr|vmov}}
   2806 int64x2_t test_vld1q_dup_s64(int64_t const * a) {
   2807   return vld1q_dup_s64(a);
   2808 }
   2809 
   2810 // CHECK: test_vld1q_dup_f16
   2811 // CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
   2812 float16x8_t test_vld1q_dup_f16(float16_t const * a) {
   2813   return vld1q_dup_f16(a);
   2814 }
   2815 
   2816 // CHECK: test_vld1q_dup_f32
   2817 // CHECK: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
   2818 float32x4_t test_vld1q_dup_f32(float32_t const * a) {
   2819   return vld1q_dup_f32(a);
   2820 }
   2821 
   2822 // CHECK: test_vld1q_dup_p8
   2823 // CHECK: vld1.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   2824 poly8x16_t test_vld1q_dup_p8(poly8_t const * a) {
   2825   return vld1q_dup_p8(a);
   2826 }
   2827 
   2828 // CHECK: test_vld1q_dup_p16
   2829 // CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
   2830 poly16x8_t test_vld1q_dup_p16(poly16_t const * a) {
   2831   return vld1q_dup_p16(a);
   2832 }
   2833 
   2834 // CHECK: test_vld1_dup_u8
   2835 // CHECK: vld1.8 {d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   2836 uint8x8_t test_vld1_dup_u8(uint8_t const * a) {
   2837   return vld1_dup_u8(a);
   2838 }
   2839 
   2840 // CHECK: test_vld1_dup_u16
   2841 // CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
   2842 uint16x4_t test_vld1_dup_u16(uint16_t const * a) {
   2843   return vld1_dup_u16(a);
   2844 }
   2845 
   2846 // CHECK: test_vld1_dup_u32
   2847 // CHECK: vld1.32 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
   2848 uint32x2_t test_vld1_dup_u32(uint32_t const * a) {
   2849   return vld1_dup_u32(a);
   2850 }
   2851 
   2852 // CHECK: test_vld1_dup_u64
   2853 // CHECK: {{ldr|vldr|vmov}}
   2854 uint64x1_t test_vld1_dup_u64(uint64_t const * a) {
   2855   return vld1_dup_u64(a);
   2856 }
   2857 
   2858 // CHECK: test_vld1_dup_s8
   2859 // CHECK: vld1.8 {d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   2860 int8x8_t test_vld1_dup_s8(int8_t const * a) {
   2861   return vld1_dup_s8(a);
   2862 }
   2863 
   2864 // CHECK: test_vld1_dup_s16
   2865 // CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
   2866 int16x4_t test_vld1_dup_s16(int16_t const * a) {
   2867   return vld1_dup_s16(a);
   2868 }
   2869 
   2870 // CHECK: test_vld1_dup_s32
   2871 // CHECK: vld1.32 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
   2872 int32x2_t test_vld1_dup_s32(int32_t const * a) {
   2873   return vld1_dup_s32(a);
   2874 }
   2875 
   2876 // CHECK: test_vld1_dup_s64
   2877 // CHECK: {{ldr|vldr|vmov}}
   2878 int64x1_t test_vld1_dup_s64(int64_t const * a) {
   2879   return vld1_dup_s64(a);
   2880 }
   2881 
   2882 // CHECK: test_vld1_dup_f16
   2883 // CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
   2884 float16x4_t test_vld1_dup_f16(float16_t const * a) {
   2885   return vld1_dup_f16(a);
   2886 }
   2887 
   2888 // CHECK: test_vld1_dup_f32
   2889 // CHECK: vld1.32 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:32]
   2890 float32x2_t test_vld1_dup_f32(float32_t const * a) {
   2891   return vld1_dup_f32(a);
   2892 }
   2893 
   2894 // CHECK: test_vld1_dup_p8
   2895 // CHECK: vld1.8 {d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   2896 poly8x8_t test_vld1_dup_p8(poly8_t const * a) {
   2897   return vld1_dup_p8(a);
   2898 }
   2899 
   2900 // CHECK: test_vld1_dup_p16
   2901 // CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16]
   2902 poly16x4_t test_vld1_dup_p16(poly16_t const * a) {
   2903   return vld1_dup_p16(a);
   2904 }
   2905 
   2906 
   2907 // CHECK: test_vld1q_lane_u8
   2908 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   2909 uint8x16_t test_vld1q_lane_u8(uint8_t const * a, uint8x16_t b) {
   2910   return vld1q_lane_u8(a, b, 15);
   2911 }
   2912 
   2913 // CHECK: test_vld1q_lane_u16
   2914 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
   2915 uint16x8_t test_vld1q_lane_u16(uint16_t const * a, uint16x8_t b) {
   2916   return vld1q_lane_u16(a, b, 7);
   2917 }
   2918 
   2919 // CHECK: test_vld1q_lane_u32
   2920 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
   2921 uint32x4_t test_vld1q_lane_u32(uint32_t const * a, uint32x4_t b) {
   2922   return vld1q_lane_u32(a, b, 3);
   2923 }
   2924 
   2925 // CHECK: test_vld1q_lane_u64
   2926 // CHECK: {{ldr|vldr|vmov}}
   2927 uint64x2_t test_vld1q_lane_u64(uint64_t const * a, uint64x2_t b) {
   2928   return vld1q_lane_u64(a, b, 1);
   2929 }
   2930 
   2931 // CHECK: test_vld1q_lane_s8
   2932 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   2933 int8x16_t test_vld1q_lane_s8(int8_t const * a, int8x16_t b) {
   2934   return vld1q_lane_s8(a, b, 15);
   2935 }
   2936 
   2937 // CHECK: test_vld1q_lane_s16
   2938 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
   2939 int16x8_t test_vld1q_lane_s16(int16_t const * a, int16x8_t b) {
   2940   return vld1q_lane_s16(a, b, 7);
   2941 }
   2942 
   2943 // CHECK: test_vld1q_lane_s32
   2944 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
   2945 int32x4_t test_vld1q_lane_s32(int32_t const * a, int32x4_t b) {
   2946   return vld1q_lane_s32(a, b, 3);
   2947 }
   2948 
   2949 // CHECK: test_vld1q_lane_s64
   2950 // CHECK: {{ldr|vldr|vmov}}
   2951 int64x2_t test_vld1q_lane_s64(int64_t const * a, int64x2_t b) {
   2952   return vld1q_lane_s64(a, b, 1);
   2953 }
   2954 
   2955 // CHECK: test_vld1q_lane_f16
   2956 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
   2957 float16x8_t test_vld1q_lane_f16(float16_t const * a, float16x8_t b) {
   2958   return vld1q_lane_f16(a, b, 7);
   2959 }
   2960 
   2961 // CHECK: test_vld1q_lane_f32
   2962 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
   2963 float32x4_t test_vld1q_lane_f32(float32_t const * a, float32x4_t b) {
   2964   return vld1q_lane_f32(a, b, 3);
   2965 }
   2966 
   2967 // CHECK: test_vld1q_lane_p8
   2968 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   2969 poly8x16_t test_vld1q_lane_p8(poly8_t const * a, poly8x16_t b) {
   2970   return vld1q_lane_p8(a, b, 15);
   2971 }
   2972 
   2973 // CHECK: test_vld1q_lane_p16
   2974 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
   2975 poly16x8_t test_vld1q_lane_p16(poly16_t const * a, poly16x8_t b) {
   2976   return vld1q_lane_p16(a, b, 7);
   2977 }
   2978 
   2979 // CHECK: test_vld1_lane_u8
   2980 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   2981 uint8x8_t test_vld1_lane_u8(uint8_t const * a, uint8x8_t b) {
   2982   return vld1_lane_u8(a, b, 7);
   2983 }
   2984 
   2985 // CHECK: test_vld1_lane_u16
   2986 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
   2987 uint16x4_t test_vld1_lane_u16(uint16_t const * a, uint16x4_t b) {
   2988   return vld1_lane_u16(a, b, 3);
   2989 }
   2990 
   2991 // CHECK: test_vld1_lane_u32
   2992 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
   2993 uint32x2_t test_vld1_lane_u32(uint32_t const * a, uint32x2_t b) {
   2994   return vld1_lane_u32(a, b, 1);
   2995 }
   2996 
   2997 // CHECK: test_vld1_lane_u64
   2998 // CHECK: {{ldr|vldr|vmov}}
   2999 uint64x1_t test_vld1_lane_u64(uint64_t const * a, uint64x1_t b) {
   3000   return vld1_lane_u64(a, b, 0);
   3001 }
   3002 
   3003 // CHECK: test_vld1_lane_s8
   3004 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3005 int8x8_t test_vld1_lane_s8(int8_t const * a, int8x8_t b) {
   3006   return vld1_lane_s8(a, b, 7);
   3007 }
   3008 
   3009 // CHECK: test_vld1_lane_s16
   3010 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
   3011 int16x4_t test_vld1_lane_s16(int16_t const * a, int16x4_t b) {
   3012   return vld1_lane_s16(a, b, 3);
   3013 }
   3014 
   3015 // CHECK: test_vld1_lane_s32
   3016 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
   3017 int32x2_t test_vld1_lane_s32(int32_t const * a, int32x2_t b) {
   3018   return vld1_lane_s32(a, b, 1);
   3019 }
   3020 
   3021 // CHECK: test_vld1_lane_s64
   3022 // CHECK: {{ldr|vldr|vmov}}
   3023 int64x1_t test_vld1_lane_s64(int64_t const * a, int64x1_t b) {
   3024   return vld1_lane_s64(a, b, 0);
   3025 }
   3026 
   3027 // CHECK: test_vld1_lane_f16
   3028 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
   3029 float16x4_t test_vld1_lane_f16(float16_t const * a, float16x4_t b) {
   3030   return vld1_lane_f16(a, b, 3);
   3031 }
   3032 
   3033 // CHECK: test_vld1_lane_f32
   3034 // CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
   3035 float32x2_t test_vld1_lane_f32(float32_t const * a, float32x2_t b) {
   3036   return vld1_lane_f32(a, b, 1);
   3037 }
   3038 
   3039 // CHECK: test_vld1_lane_p8
   3040 // CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3041 poly8x8_t test_vld1_lane_p8(poly8_t const * a, poly8x8_t b) {
   3042   return vld1_lane_p8(a, b, 7);
   3043 }
   3044 
   3045 // CHECK: test_vld1_lane_p16
   3046 // CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
   3047 poly16x4_t test_vld1_lane_p16(poly16_t const * a, poly16x4_t b) {
   3048   return vld1_lane_p16(a, b, 3);
   3049 }
   3050 
   3051 
   3052 // CHECK: test_vld2q_u8
   3053 // CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3054 uint8x16x2_t test_vld2q_u8(uint8_t const * a) {
   3055   return vld2q_u8(a);
   3056 }
   3057 
   3058 // CHECK: test_vld2q_u16
   3059 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3060 uint16x8x2_t test_vld2q_u16(uint16_t const * a) {
   3061   return vld2q_u16(a);
   3062 }
   3063 
   3064 // CHECK: test_vld2q_u32
   3065 // CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3066 uint32x4x2_t test_vld2q_u32(uint32_t const * a) {
   3067   return vld2q_u32(a);
   3068 }
   3069 
   3070 // CHECK: test_vld2q_s8
   3071 // CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3072 int8x16x2_t test_vld2q_s8(int8_t const * a) {
   3073   return vld2q_s8(a);
   3074 }
   3075 
   3076 // CHECK: test_vld2q_s16
   3077 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3078 int16x8x2_t test_vld2q_s16(int16_t const * a) {
   3079   return vld2q_s16(a);
   3080 }
   3081 
   3082 // CHECK: test_vld2q_s32
   3083 // CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3084 int32x4x2_t test_vld2q_s32(int32_t const * a) {
   3085   return vld2q_s32(a);
   3086 }
   3087 
   3088 // CHECK: test_vld2q_f16
   3089 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3090 float16x8x2_t test_vld2q_f16(float16_t const * a) {
   3091   return vld2q_f16(a);
   3092 }
   3093 
   3094 // CHECK: test_vld2q_f32
   3095 // CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3096 float32x4x2_t test_vld2q_f32(float32_t const * a) {
   3097   return vld2q_f32(a);
   3098 }
   3099 
   3100 // CHECK: test_vld2q_p8
   3101 // CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3102 poly8x16x2_t test_vld2q_p8(poly8_t const * a) {
   3103   return vld2q_p8(a);
   3104 }
   3105 
   3106 // CHECK: test_vld2q_p16
   3107 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3108 poly16x8x2_t test_vld2q_p16(poly16_t const * a) {
   3109   return vld2q_p16(a);
   3110 }
   3111 
   3112 // CHECK: test_vld2_u8
   3113 // CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3114 uint8x8x2_t test_vld2_u8(uint8_t const * a) {
   3115   return vld2_u8(a);
   3116 }
   3117 
   3118 // CHECK: test_vld2_u16
   3119 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3120 uint16x4x2_t test_vld2_u16(uint16_t const * a) {
   3121   return vld2_u16(a);
   3122 }
   3123 
   3124 // CHECK: test_vld2_u32
   3125 // CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3126 uint32x2x2_t test_vld2_u32(uint32_t const * a) {
   3127   return vld2_u32(a);
   3128 }
   3129 
   3130 // CHECK: test_vld2_u64
   3131 // CHECK: vld1.64
   3132 uint64x1x2_t test_vld2_u64(uint64_t const * a) {
   3133   return vld2_u64(a);
   3134 }
   3135 
   3136 // CHECK: test_vld2_s8
   3137 // CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3138 int8x8x2_t test_vld2_s8(int8_t const * a) {
   3139   return vld2_s8(a);
   3140 }
   3141 
   3142 // CHECK: test_vld2_s16
   3143 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3144 int16x4x2_t test_vld2_s16(int16_t const * a) {
   3145   return vld2_s16(a);
   3146 }
   3147 
   3148 // CHECK: test_vld2_s32
   3149 // CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3150 int32x2x2_t test_vld2_s32(int32_t const * a) {
   3151   return vld2_s32(a);
   3152 }
   3153 
   3154 // CHECK: test_vld2_s64
   3155 // CHECK: vld1.64
   3156 int64x1x2_t test_vld2_s64(int64_t const * a) {
   3157   return vld2_s64(a);
   3158 }
   3159 
   3160 // CHECK: test_vld2_f16
   3161 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3162 float16x4x2_t test_vld2_f16(float16_t const * a) {
   3163   return vld2_f16(a);
   3164 }
   3165 
   3166 // CHECK: test_vld2_f32
   3167 // CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3168 float32x2x2_t test_vld2_f32(float32_t const * a) {
   3169   return vld2_f32(a);
   3170 }
   3171 
   3172 // CHECK: test_vld2_p8
   3173 // CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3174 poly8x8x2_t test_vld2_p8(poly8_t const * a) {
   3175   return vld2_p8(a);
   3176 }
   3177 
   3178 // CHECK: test_vld2_p16
   3179 // CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3180 poly16x4x2_t test_vld2_p16(poly16_t const * a) {
   3181   return vld2_p16(a);
   3182 }
   3183 
   3184 
   3185 // CHECK: test_vld2_dup_u8
   3186 // CHECK: vld2.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3187 uint8x8x2_t test_vld2_dup_u8(uint8_t const * a) {
   3188   return vld2_dup_u8(a);
   3189 }
   3190 
   3191 // CHECK: test_vld2_dup_u16
   3192 // CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3193 uint16x4x2_t test_vld2_dup_u16(uint16_t const * a) {
   3194   return vld2_dup_u16(a);
   3195 }
   3196 
   3197 // CHECK: test_vld2_dup_u32
   3198 // CHECK: vld2.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3199 uint32x2x2_t test_vld2_dup_u32(uint32_t const * a) {
   3200   return vld2_dup_u32(a);
   3201 }
   3202 
   3203 // CHECK: test_vld2_dup_u64
   3204 // CHECK: vld1.64
   3205 uint64x1x2_t test_vld2_dup_u64(uint64_t const * a) {
   3206   return vld2_dup_u64(a);
   3207 }
   3208 
   3209 // CHECK: test_vld2_dup_s8
   3210 // CHECK: vld2.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3211 int8x8x2_t test_vld2_dup_s8(int8_t const * a) {
   3212   return vld2_dup_s8(a);
   3213 }
   3214 
   3215 // CHECK: test_vld2_dup_s16
   3216 // CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3217 int16x4x2_t test_vld2_dup_s16(int16_t const * a) {
   3218   return vld2_dup_s16(a);
   3219 }
   3220 
   3221 // CHECK: test_vld2_dup_s32
   3222 // CHECK: vld2.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3223 int32x2x2_t test_vld2_dup_s32(int32_t const * a) {
   3224   return vld2_dup_s32(a);
   3225 }
   3226 
   3227 // CHECK: test_vld2_dup_s64
   3228 // CHECK: vld1.64
   3229 int64x1x2_t test_vld2_dup_s64(int64_t const * a) {
   3230   return vld2_dup_s64(a);
   3231 }
   3232 
   3233 // CHECK: test_vld2_dup_f16
   3234 // CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3235 float16x4x2_t test_vld2_dup_f16(float16_t const * a) {
   3236   return vld2_dup_f16(a);
   3237 }
   3238 
   3239 // CHECK: test_vld2_dup_f32
   3240 // CHECK: vld2.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3241 float32x2x2_t test_vld2_dup_f32(float32_t const * a) {
   3242   return vld2_dup_f32(a);
   3243 }
   3244 
   3245 // CHECK: test_vld2_dup_p8
   3246 // CHECK: vld2.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3247 poly8x8x2_t test_vld2_dup_p8(poly8_t const * a) {
   3248   return vld2_dup_p8(a);
   3249 }
   3250 
   3251 // CHECK: test_vld2_dup_p16
   3252 // CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3253 poly16x4x2_t test_vld2_dup_p16(poly16_t const * a) {
   3254   return vld2_dup_p16(a);
   3255 }
   3256 
   3257 
   3258 // CHECK: test_vld2q_lane_u16
   3259 // CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3260 uint16x8x2_t test_vld2q_lane_u16(uint16_t const * a, uint16x8x2_t b) {
   3261   return vld2q_lane_u16(a, b, 7);
   3262 }
   3263 
   3264 // CHECK: test_vld2q_lane_u32
   3265 // CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3266 uint32x4x2_t test_vld2q_lane_u32(uint32_t const * a, uint32x4x2_t b) {
   3267   return vld2q_lane_u32(a, b, 3);
   3268 }
   3269 
   3270 // CHECK: test_vld2q_lane_s16
   3271 // CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3272 int16x8x2_t test_vld2q_lane_s16(int16_t const * a, int16x8x2_t b) {
   3273   return vld2q_lane_s16(a, b, 7);
   3274 }
   3275 
   3276 // CHECK: test_vld2q_lane_s32
   3277 // CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3278 int32x4x2_t test_vld2q_lane_s32(int32_t const * a, int32x4x2_t b) {
   3279   return vld2q_lane_s32(a, b, 3);
   3280 }
   3281 
   3282 // CHECK: test_vld2q_lane_f16
   3283 // CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3284 float16x8x2_t test_vld2q_lane_f16(float16_t const * a, float16x8x2_t b) {
   3285   return vld2q_lane_f16(a, b, 7);
   3286 }
   3287 
   3288 // CHECK: test_vld2q_lane_f32
   3289 // CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3290 float32x4x2_t test_vld2q_lane_f32(float32_t const * a, float32x4x2_t b) {
   3291   return vld2q_lane_f32(a, b, 3);
   3292 }
   3293 
   3294 // CHECK: test_vld2q_lane_p16
   3295 // CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3296 poly16x8x2_t test_vld2q_lane_p16(poly16_t const * a, poly16x8x2_t b) {
   3297   return vld2q_lane_p16(a, b, 7);
   3298 }
   3299 
   3300 // CHECK: test_vld2_lane_u8
   3301 // CHECK: vld2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3302 uint8x8x2_t test_vld2_lane_u8(uint8_t const * a, uint8x8x2_t b) {
   3303   return vld2_lane_u8(a, b, 7);
   3304 }
   3305 
   3306 // CHECK: test_vld2_lane_u16
   3307 // CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3308 uint16x4x2_t test_vld2_lane_u16(uint16_t const * a, uint16x4x2_t b) {
   3309   return vld2_lane_u16(a, b, 3);
   3310 }
   3311 
   3312 // CHECK: test_vld2_lane_u32
   3313 // CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3314 uint32x2x2_t test_vld2_lane_u32(uint32_t const * a, uint32x2x2_t b) {
   3315   return vld2_lane_u32(a, b, 1);
   3316 }
   3317 
   3318 // CHECK: test_vld2_lane_s8
   3319 // CHECK: vld2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3320 int8x8x2_t test_vld2_lane_s8(int8_t const * a, int8x8x2_t b) {
   3321   return vld2_lane_s8(a, b, 7);
   3322 }
   3323 
   3324 // CHECK: test_vld2_lane_s16
   3325 // CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3326 int16x4x2_t test_vld2_lane_s16(int16_t const * a, int16x4x2_t b) {
   3327   return vld2_lane_s16(a, b, 3);
   3328 }
   3329 
   3330 // CHECK: test_vld2_lane_s32
   3331 // CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3332 int32x2x2_t test_vld2_lane_s32(int32_t const * a, int32x2x2_t b) {
   3333   return vld2_lane_s32(a, b, 1);
   3334 }
   3335 
   3336 // CHECK: test_vld2_lane_f16
   3337 // CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3338 float16x4x2_t test_vld2_lane_f16(float16_t const * a, float16x4x2_t b) {
   3339   return vld2_lane_f16(a, b, 3);
   3340 }
   3341 
   3342 // CHECK: test_vld2_lane_f32
   3343 // CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3344 float32x2x2_t test_vld2_lane_f32(float32_t const * a, float32x2x2_t b) {
   3345   return vld2_lane_f32(a, b, 1);
   3346 }
   3347 
   3348 // CHECK: test_vld2_lane_p8
   3349 // CHECK: vld2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3350 poly8x8x2_t test_vld2_lane_p8(poly8_t const * a, poly8x8x2_t b) {
   3351   return vld2_lane_p8(a, b, 7);
   3352 }
   3353 
   3354 // CHECK: test_vld2_lane_p16
   3355 // CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3356 poly16x4x2_t test_vld2_lane_p16(poly16_t const * a, poly16x4x2_t b) {
   3357   return vld2_lane_p16(a, b, 3);
   3358 }
   3359 
   3360 
   3361 // CHECK: test_vld3q_u8
   3362 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   3363 uint8x16x3_t test_vld3q_u8(uint8_t const * a) {
   3364   return vld3q_u8(a);
   3365 }
   3366 
   3367 // CHECK: test_vld3q_u16
   3368 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   3369 uint16x8x3_t test_vld3q_u16(uint16_t const * a) {
   3370   return vld3q_u16(a);
   3371 }
   3372 
   3373 // CHECK: test_vld3q_u32
   3374 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   3375 uint32x4x3_t test_vld3q_u32(uint32_t const * a) {
   3376   return vld3q_u32(a);
   3377 }
   3378 
   3379 // CHECK: test_vld3q_s8
   3380 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   3381 int8x16x3_t test_vld3q_s8(int8_t const * a) {
   3382   return vld3q_s8(a);
   3383 }
   3384 
   3385 // CHECK: test_vld3q_s16
   3386 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   3387 int16x8x3_t test_vld3q_s16(int16_t const * a) {
   3388   return vld3q_s16(a);
   3389 }
   3390 
   3391 // CHECK: test_vld3q_s32
   3392 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   3393 int32x4x3_t test_vld3q_s32(int32_t const * a) {
   3394   return vld3q_s32(a);
   3395 }
   3396 
   3397 // CHECK: test_vld3q_f16
   3398 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   3399 float16x8x3_t test_vld3q_f16(float16_t const * a) {
   3400   return vld3q_f16(a);
   3401 }
   3402 
   3403 // CHECK: test_vld3q_f32
   3404 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   3405 float32x4x3_t test_vld3q_f32(float32_t const * a) {
   3406   return vld3q_f32(a);
   3407 }
   3408 
   3409 // CHECK: test_vld3q_p8
   3410 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   3411 poly8x16x3_t test_vld3q_p8(poly8_t const * a) {
   3412   return vld3q_p8(a);
   3413 }
   3414 
   3415 // CHECK: test_vld3q_p16
   3416 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   3417 poly16x8x3_t test_vld3q_p16(poly16_t const * a) {
   3418   return vld3q_p16(a);
   3419 }
   3420 
   3421 // CHECK: test_vld3_u8
   3422 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3423 uint8x8x3_t test_vld3_u8(uint8_t const * a) {
   3424   return vld3_u8(a);
   3425 }
   3426 
   3427 // CHECK: test_vld3_u16
   3428 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3429 uint16x4x3_t test_vld3_u16(uint16_t const * a) {
   3430   return vld3_u16(a);
   3431 }
   3432 
   3433 // CHECK: test_vld3_u32
   3434 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3435 uint32x2x3_t test_vld3_u32(uint32_t const * a) {
   3436   return vld3_u32(a);
   3437 }
   3438 
   3439 // CHECK: test_vld3_u64
   3440 // CHECK: vld1.64
   3441 uint64x1x3_t test_vld3_u64(uint64_t const * a) {
   3442   return vld3_u64(a);
   3443 }
   3444 
   3445 // CHECK: test_vld3_s8
   3446 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3447 int8x8x3_t test_vld3_s8(int8_t const * a) {
   3448   return vld3_s8(a);
   3449 }
   3450 
   3451 // CHECK: test_vld3_s16
   3452 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3453 int16x4x3_t test_vld3_s16(int16_t const * a) {
   3454   return vld3_s16(a);
   3455 }
   3456 
   3457 // CHECK: test_vld3_s32
   3458 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3459 int32x2x3_t test_vld3_s32(int32_t const * a) {
   3460   return vld3_s32(a);
   3461 }
   3462 
   3463 // CHECK: test_vld3_s64
   3464 // CHECK: vld1.64
   3465 int64x1x3_t test_vld3_s64(int64_t const * a) {
   3466   return vld3_s64(a);
   3467 }
   3468 
   3469 // CHECK: test_vld3_f16
   3470 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3471 float16x4x3_t test_vld3_f16(float16_t const * a) {
   3472   return vld3_f16(a);
   3473 }
   3474 
   3475 // CHECK: test_vld3_f32
   3476 // CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3477 float32x2x3_t test_vld3_f32(float32_t const * a) {
   3478   return vld3_f32(a);
   3479 }
   3480 
   3481 // CHECK: test_vld3_p8
   3482 // CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3483 poly8x8x3_t test_vld3_p8(poly8_t const * a) {
   3484   return vld3_p8(a);
   3485 }
   3486 
   3487 // CHECK: test_vld3_p16
   3488 // CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3489 poly16x4x3_t test_vld3_p16(poly16_t const * a) {
   3490   return vld3_p16(a);
   3491 }
   3492 
   3493 
   3494 // CHECK: test_vld3_dup_u8
   3495 // CHECK: vld3.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3496 uint8x8x3_t test_vld3_dup_u8(uint8_t const * a) {
   3497   return vld3_dup_u8(a);
   3498 }
   3499 
   3500 // CHECK: test_vld3_dup_u16
   3501 // CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3502 uint16x4x3_t test_vld3_dup_u16(uint16_t const * a) {
   3503   return vld3_dup_u16(a);
   3504 }
   3505 
   3506 // CHECK: test_vld3_dup_u32
   3507 // CHECK: vld3.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3508 uint32x2x3_t test_vld3_dup_u32(uint32_t const * a) {
   3509   return vld3_dup_u32(a);
   3510 }
   3511 
   3512 // CHECK: test_vld3_dup_u64
   3513 // CHECK: vld1.64
   3514 uint64x1x3_t test_vld3_dup_u64(uint64_t const * a) {
   3515   return vld3_dup_u64(a);
   3516 }
   3517 
   3518 // CHECK: test_vld3_dup_s8
   3519 // CHECK: vld3.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3520 int8x8x3_t test_vld3_dup_s8(int8_t const * a) {
   3521   return vld3_dup_s8(a);
   3522 }
   3523 
   3524 // CHECK: test_vld3_dup_s16
   3525 // CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3526 int16x4x3_t test_vld3_dup_s16(int16_t const * a) {
   3527   return vld3_dup_s16(a);
   3528 }
   3529 
   3530 // CHECK: test_vld3_dup_s32
   3531 // CHECK: vld3.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3532 int32x2x3_t test_vld3_dup_s32(int32_t const * a) {
   3533   return vld3_dup_s32(a);
   3534 }
   3535 
   3536 // CHECK: test_vld3_dup_s64
   3537 // CHECK: vld1.64
   3538 int64x1x3_t test_vld3_dup_s64(int64_t const * a) {
   3539   return vld3_dup_s64(a);
   3540 }
   3541 
   3542 // CHECK: test_vld3_dup_f16
   3543 // CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3544 float16x4x3_t test_vld3_dup_f16(float16_t const * a) {
   3545   return vld3_dup_f16(a);
   3546 }
   3547 
   3548 // CHECK: test_vld3_dup_f32
   3549 // CHECK: vld3.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3550 float32x2x3_t test_vld3_dup_f32(float32_t const * a) {
   3551   return vld3_dup_f32(a);
   3552 }
   3553 
   3554 // CHECK: test_vld3_dup_p8
   3555 // CHECK: vld3.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3556 poly8x8x3_t test_vld3_dup_p8(poly8_t const * a) {
   3557   return vld3_dup_p8(a);
   3558 }
   3559 
   3560 // CHECK: test_vld3_dup_p16
   3561 // CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3562 poly16x4x3_t test_vld3_dup_p16(poly16_t const * a) {
   3563   return vld3_dup_p16(a);
   3564 }
   3565 
   3566 
   3567 // CHECK: test_vld3q_lane_u16
   3568 // CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   3569 uint16x8x3_t test_vld3q_lane_u16(uint16_t const * a, uint16x8x3_t b) {
   3570   return vld3q_lane_u16(a, b, 7);
   3571 }
   3572 
   3573 // CHECK: test_vld3q_lane_u32
   3574 // CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   3575 uint32x4x3_t test_vld3q_lane_u32(uint32_t const * a, uint32x4x3_t b) {
   3576   return vld3q_lane_u32(a, b, 3);
   3577 }
   3578 
   3579 // CHECK: test_vld3q_lane_s16
   3580 // CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   3581 int16x8x3_t test_vld3q_lane_s16(int16_t const * a, int16x8x3_t b) {
   3582   return vld3q_lane_s16(a, b, 7);
   3583 }
   3584 
   3585 // CHECK: test_vld3q_lane_s32
   3586 // CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   3587 int32x4x3_t test_vld3q_lane_s32(int32_t const * a, int32x4x3_t b) {
   3588   return vld3q_lane_s32(a, b, 3);
   3589 }
   3590 
   3591 // CHECK: test_vld3q_lane_f16
   3592 // CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   3593 float16x8x3_t test_vld3q_lane_f16(float16_t const * a, float16x8x3_t b) {
   3594   return vld3q_lane_f16(a, b, 7);
   3595 }
   3596 
   3597 // CHECK: test_vld3q_lane_f32
   3598 // CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   3599 float32x4x3_t test_vld3q_lane_f32(float32_t const * a, float32x4x3_t b) {
   3600   return vld3q_lane_f32(a, b, 3);
   3601 }
   3602 
   3603 // CHECK: test_vld3q_lane_p16
   3604 // CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   3605 poly16x8x3_t test_vld3q_lane_p16(poly16_t const * a, poly16x8x3_t b) {
   3606   return vld3q_lane_p16(a, b, 7);
   3607 }
   3608 
   3609 // CHECK: test_vld3_lane_u8
   3610 // CHECK: vld3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3611 uint8x8x3_t test_vld3_lane_u8(uint8_t const * a, uint8x8x3_t b) {
   3612   return vld3_lane_u8(a, b, 7);
   3613 }
   3614 
   3615 // CHECK: test_vld3_lane_u16
   3616 // CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3617 uint16x4x3_t test_vld3_lane_u16(uint16_t const * a, uint16x4x3_t b) {
   3618   return vld3_lane_u16(a, b, 3);
   3619 }
   3620 
   3621 // CHECK: test_vld3_lane_u32
   3622 // CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3623 uint32x2x3_t test_vld3_lane_u32(uint32_t const * a, uint32x2x3_t b) {
   3624   return vld3_lane_u32(a, b, 1);
   3625 }
   3626 
   3627 // CHECK: test_vld3_lane_s8
   3628 // CHECK: vld3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3629 int8x8x3_t test_vld3_lane_s8(int8_t const * a, int8x8x3_t b) {
   3630   return vld3_lane_s8(a, b, 7);
   3631 }
   3632 
   3633 // CHECK: test_vld3_lane_s16
   3634 // CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3635 int16x4x3_t test_vld3_lane_s16(int16_t const * a, int16x4x3_t b) {
   3636   return vld3_lane_s16(a, b, 3);
   3637 }
   3638 
   3639 // CHECK: test_vld3_lane_s32
   3640 // CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3641 int32x2x3_t test_vld3_lane_s32(int32_t const * a, int32x2x3_t b) {
   3642   return vld3_lane_s32(a, b, 1);
   3643 }
   3644 
   3645 // CHECK: test_vld3_lane_f16
   3646 // CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3647 float16x4x3_t test_vld3_lane_f16(float16_t const * a, float16x4x3_t b) {
   3648   return vld3_lane_f16(a, b, 3);
   3649 }
   3650 
   3651 // CHECK: test_vld3_lane_f32
   3652 // CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3653 float32x2x3_t test_vld3_lane_f32(float32_t const * a, float32x2x3_t b) {
   3654   return vld3_lane_f32(a, b, 1);
   3655 }
   3656 
   3657 // CHECK: test_vld3_lane_p8
   3658 // CHECK: vld3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3659 poly8x8x3_t test_vld3_lane_p8(poly8_t const * a, poly8x8x3_t b) {
   3660   return vld3_lane_p8(a, b, 7);
   3661 }
   3662 
   3663 // CHECK: test_vld3_lane_p16
   3664 // CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3665 poly16x4x3_t test_vld3_lane_p16(poly16_t const * a, poly16x4x3_t b) {
   3666   return vld3_lane_p16(a, b, 3);
   3667 }
   3668 
   3669 
   3670 // CHECK: test_vld4q_u8
   3671 // CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   3672 uint8x16x4_t test_vld4q_u8(uint8_t const * a) {
   3673   return vld4q_u8(a);
   3674 }
   3675 
   3676 // CHECK: test_vld4q_u16
   3677 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   3678 uint16x8x4_t test_vld4q_u16(uint16_t const * a) {
   3679   return vld4q_u16(a);
   3680 }
   3681 
   3682 // CHECK: test_vld4q_u32
   3683 // CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   3684 uint32x4x4_t test_vld4q_u32(uint32_t const * a) {
   3685   return vld4q_u32(a);
   3686 }
   3687 
   3688 // CHECK: test_vld4q_s8
   3689 // CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   3690 int8x16x4_t test_vld4q_s8(int8_t const * a) {
   3691   return vld4q_s8(a);
   3692 }
   3693 
   3694 // CHECK: test_vld4q_s16
   3695 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   3696 int16x8x4_t test_vld4q_s16(int16_t const * a) {
   3697   return vld4q_s16(a);
   3698 }
   3699 
   3700 // CHECK: test_vld4q_s32
   3701 // CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   3702 int32x4x4_t test_vld4q_s32(int32_t const * a) {
   3703   return vld4q_s32(a);
   3704 }
   3705 
   3706 // CHECK: test_vld4q_f16
   3707 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   3708 float16x8x4_t test_vld4q_f16(float16_t const * a) {
   3709   return vld4q_f16(a);
   3710 }
   3711 
   3712 // CHECK: test_vld4q_f32
   3713 // CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   3714 float32x4x4_t test_vld4q_f32(float32_t const * a) {
   3715   return vld4q_f32(a);
   3716 }
   3717 
   3718 // CHECK: test_vld4q_p8
   3719 // CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   3720 poly8x16x4_t test_vld4q_p8(poly8_t const * a) {
   3721   return vld4q_p8(a);
   3722 }
   3723 
   3724 // CHECK: test_vld4q_p16
   3725 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   3726 poly16x8x4_t test_vld4q_p16(poly16_t const * a) {
   3727   return vld4q_p16(a);
   3728 }
   3729 
   3730 // CHECK: test_vld4_u8
   3731 // CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3732 uint8x8x4_t test_vld4_u8(uint8_t const * a) {
   3733   return vld4_u8(a);
   3734 }
   3735 
   3736 // CHECK: test_vld4_u16
   3737 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3738 uint16x4x4_t test_vld4_u16(uint16_t const * a) {
   3739   return vld4_u16(a);
   3740 }
   3741 
   3742 // CHECK: test_vld4_u32
   3743 // CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3744 uint32x2x4_t test_vld4_u32(uint32_t const * a) {
   3745   return vld4_u32(a);
   3746 }
   3747 
   3748 // CHECK: test_vld4_u64
   3749 // CHECK: vld1.64
   3750 uint64x1x4_t test_vld4_u64(uint64_t const * a) {
   3751   return vld4_u64(a);
   3752 }
   3753 
   3754 // CHECK: test_vld4_s8
   3755 // CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3756 int8x8x4_t test_vld4_s8(int8_t const * a) {
   3757   return vld4_s8(a);
   3758 }
   3759 
   3760 // CHECK: test_vld4_s16
   3761 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3762 int16x4x4_t test_vld4_s16(int16_t const * a) {
   3763   return vld4_s16(a);
   3764 }
   3765 
   3766 // CHECK: test_vld4_s32
   3767 // CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3768 int32x2x4_t test_vld4_s32(int32_t const * a) {
   3769   return vld4_s32(a);
   3770 }
   3771 
   3772 // CHECK: test_vld4_s64
   3773 // CHECK: vld1.64
   3774 int64x1x4_t test_vld4_s64(int64_t const * a) {
   3775   return vld4_s64(a);
   3776 }
   3777 
   3778 // CHECK: test_vld4_f16
   3779 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3780 float16x4x4_t test_vld4_f16(float16_t const * a) {
   3781   return vld4_f16(a);
   3782 }
   3783 
   3784 // CHECK: test_vld4_f32
   3785 // CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3786 float32x2x4_t test_vld4_f32(float32_t const * a) {
   3787   return vld4_f32(a);
   3788 }
   3789 
   3790 // CHECK: test_vld4_p8
   3791 // CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3792 poly8x8x4_t test_vld4_p8(poly8_t const * a) {
   3793   return vld4_p8(a);
   3794 }
   3795 
   3796 // CHECK: test_vld4_p16
   3797 // CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   3798 poly16x4x4_t test_vld4_p16(poly16_t const * a) {
   3799   return vld4_p16(a);
   3800 }
   3801 
   3802 
   3803 // CHECK: test_vld4_dup_u8
   3804 // CHECK: vld4.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3805 uint8x8x4_t test_vld4_dup_u8(uint8_t const * a) {
   3806   return vld4_dup_u8(a);
   3807 }
   3808 
   3809 // CHECK: test_vld4_dup_u16
   3810 // CHECK: vld4.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3811 uint16x4x4_t test_vld4_dup_u16(uint16_t const * a) {
   3812   return vld4_dup_u16(a);
   3813 }
   3814 
   3815 // CHECK: test_vld4_dup_u32
   3816 // CHECK: vld4.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3817 uint32x2x4_t test_vld4_dup_u32(uint32_t const * a) {
   3818   return vld4_dup_u32(a);
   3819 }
   3820 
   3821 // CHECK: test_vld4_dup_u64
   3822 // CHECK: vld1.64
   3823 uint64x1x4_t test_vld4_dup_u64(uint64_t const * a) {
   3824   return vld4_dup_u64(a);
   3825 }
   3826 
   3827 // CHECK: test_vld4_dup_s8
   3828 // CHECK: vld4.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3829 int8x8x4_t test_vld4_dup_s8(int8_t const * a) {
   3830   return vld4_dup_s8(a);
   3831 }
   3832 
   3833 // CHECK: test_vld4_dup_s16
   3834 // CHECK: vld4.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3835 int16x4x4_t test_vld4_dup_s16(int16_t const * a) {
   3836   return vld4_dup_s16(a);
   3837 }
   3838 
   3839 // CHECK: test_vld4_dup_s32
   3840 // CHECK: vld4.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3841 int32x2x4_t test_vld4_dup_s32(int32_t const * a) {
   3842   return vld4_dup_s32(a);
   3843 }
   3844 
   3845 // CHECK: test_vld4_dup_s64
   3846 // CHECK: vld1.64
   3847 int64x1x4_t test_vld4_dup_s64(int64_t const * a) {
   3848   return vld4_dup_s64(a);
   3849 }
   3850 
   3851 // CHECK: test_vld4_dup_f16
   3852 // CHECK: vld4.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3853 float16x4x4_t test_vld4_dup_f16(float16_t const * a) {
   3854   return vld4_dup_f16(a);
   3855 }
   3856 
   3857 // CHECK: test_vld4_dup_f32
   3858 // CHECK: vld4.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3859 float32x2x4_t test_vld4_dup_f32(float32_t const * a) {
   3860   return vld4_dup_f32(a);
   3861 }
   3862 
   3863 // CHECK: test_vld4_dup_p8
   3864 // CHECK: vld4.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3865 poly8x8x4_t test_vld4_dup_p8(poly8_t const * a) {
   3866   return vld4_dup_p8(a);
   3867 }
   3868 
   3869 // CHECK: test_vld4_dup_p16
   3870 // CHECK: vld4.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}]
   3871 poly16x4x4_t test_vld4_dup_p16(poly16_t const * a) {
   3872   return vld4_dup_p16(a);
   3873 }
   3874 
   3875 
   3876 // CHECK: test_vld4q_lane_u16
   3877 // CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   3878 uint16x8x4_t test_vld4q_lane_u16(uint16_t const * a, uint16x8x4_t b) {
   3879   return vld4q_lane_u16(a, b, 7);
   3880 }
   3881 
   3882 // CHECK: test_vld4q_lane_u32
   3883 // CHECK: vld4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   3884 uint32x4x4_t test_vld4q_lane_u32(uint32_t const * a, uint32x4x4_t b) {
   3885   return vld4q_lane_u32(a, b, 3);
   3886 }
   3887 
   3888 // CHECK: test_vld4q_lane_s16
   3889 // CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   3890 int16x8x4_t test_vld4q_lane_s16(int16_t const * a, int16x8x4_t b) {
   3891   return vld4q_lane_s16(a, b, 7);
   3892 }
   3893 
   3894 // CHECK: test_vld4q_lane_s32
   3895 // CHECK: vld4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   3896 int32x4x4_t test_vld4q_lane_s32(int32_t const * a, int32x4x4_t b) {
   3897   return vld4q_lane_s32(a, b, 3);
   3898 }
   3899 
   3900 // CHECK: test_vld4q_lane_f16
   3901 // CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   3902 float16x8x4_t test_vld4q_lane_f16(float16_t const * a, float16x8x4_t b) {
   3903   return vld4q_lane_f16(a, b, 7);
   3904 }
   3905 
   3906 // CHECK: test_vld4q_lane_f32
   3907 // CHECK: vld4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   3908 float32x4x4_t test_vld4q_lane_f32(float32_t const * a, float32x4x4_t b) {
   3909   return vld4q_lane_f32(a, b, 3);
   3910 }
   3911 
   3912 // CHECK: test_vld4q_lane_p16
   3913 // CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   3914 poly16x8x4_t test_vld4q_lane_p16(poly16_t const * a, poly16x8x4_t b) {
   3915   return vld4q_lane_p16(a, b, 7);
   3916 }
   3917 
   3918 // CHECK: test_vld4_lane_u8
   3919 // CHECK: vld4.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3920 uint8x8x4_t test_vld4_lane_u8(uint8_t const * a, uint8x8x4_t b) {
   3921   return vld4_lane_u8(a, b, 7);
   3922 }
   3923 
   3924 // CHECK: test_vld4_lane_u16
   3925 // CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3926 uint16x4x4_t test_vld4_lane_u16(uint16_t const * a, uint16x4x4_t b) {
   3927   return vld4_lane_u16(a, b, 3);
   3928 }
   3929 
   3930 // CHECK: test_vld4_lane_u32
   3931 // CHECK: vld4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3932 uint32x2x4_t test_vld4_lane_u32(uint32_t const * a, uint32x2x4_t b) {
   3933   return vld4_lane_u32(a, b, 1);
   3934 }
   3935 
   3936 // CHECK: test_vld4_lane_s8
   3937 // CHECK: vld4.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3938 int8x8x4_t test_vld4_lane_s8(int8_t const * a, int8x8x4_t b) {
   3939   return vld4_lane_s8(a, b, 7);
   3940 }
   3941 
   3942 // CHECK: test_vld4_lane_s16
   3943 // CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3944 int16x4x4_t test_vld4_lane_s16(int16_t const * a, int16x4x4_t b) {
   3945   return vld4_lane_s16(a, b, 3);
   3946 }
   3947 
   3948 // CHECK: test_vld4_lane_s32
   3949 // CHECK: vld4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3950 int32x2x4_t test_vld4_lane_s32(int32_t const * a, int32x2x4_t b) {
   3951   return vld4_lane_s32(a, b, 1);
   3952 }
   3953 
   3954 // CHECK: test_vld4_lane_f16
   3955 // CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3956 float16x4x4_t test_vld4_lane_f16(float16_t const * a, float16x4x4_t b) {
   3957   return vld4_lane_f16(a, b, 3);
   3958 }
   3959 
   3960 // CHECK: test_vld4_lane_f32
   3961 // CHECK: vld4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3962 float32x2x4_t test_vld4_lane_f32(float32_t const * a, float32x2x4_t b) {
   3963   return vld4_lane_f32(a, b, 1);
   3964 }
   3965 
   3966 // CHECK: test_vld4_lane_p8
   3967 // CHECK: vld4.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3968 poly8x8x4_t test_vld4_lane_p8(poly8_t const * a, poly8x8x4_t b) {
   3969   return vld4_lane_p8(a, b, 7);
   3970 }
   3971 
   3972 // CHECK: test_vld4_lane_p16
   3973 // CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   3974 poly16x4x4_t test_vld4_lane_p16(poly16_t const * a, poly16x4x4_t b) {
   3975   return vld4_lane_p16(a, b, 3);
   3976 }
   3977 
   3978 
   3979 // CHECK: test_vmax_s8
   3980 // CHECK: vmax.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   3981 int8x8_t test_vmax_s8(int8x8_t a, int8x8_t b) {
   3982   return vmax_s8(a, b);
   3983 }
   3984 
   3985 // CHECK: test_vmax_s16
   3986 // CHECK: vmax.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   3987 int16x4_t test_vmax_s16(int16x4_t a, int16x4_t b) {
   3988   return vmax_s16(a, b);
   3989 }
   3990 
   3991 // CHECK: test_vmax_s32
   3992 // CHECK: vmax.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   3993 int32x2_t test_vmax_s32(int32x2_t a, int32x2_t b) {
   3994   return vmax_s32(a, b);
   3995 }
   3996 
   3997 // CHECK: test_vmax_u8
   3998 // CHECK: vmax.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   3999 uint8x8_t test_vmax_u8(uint8x8_t a, uint8x8_t b) {
   4000   return vmax_u8(a, b);
   4001 }
   4002 
   4003 // CHECK: test_vmax_u16
   4004 // CHECK: vmax.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4005 uint16x4_t test_vmax_u16(uint16x4_t a, uint16x4_t b) {
   4006   return vmax_u16(a, b);
   4007 }
   4008 
   4009 // CHECK: test_vmax_u32
   4010 // CHECK: vmax.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4011 uint32x2_t test_vmax_u32(uint32x2_t a, uint32x2_t b) {
   4012   return vmax_u32(a, b);
   4013 }
   4014 
   4015 // CHECK: test_vmax_f32
   4016 // CHECK: vmax.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4017 float32x2_t test_vmax_f32(float32x2_t a, float32x2_t b) {
   4018   return vmax_f32(a, b);
   4019 }
   4020 
   4021 // CHECK: test_vmaxq_s8
   4022 // CHECK: vmax.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4023 int8x16_t test_vmaxq_s8(int8x16_t a, int8x16_t b) {
   4024   return vmaxq_s8(a, b);
   4025 }
   4026 
   4027 // CHECK: test_vmaxq_s16
   4028 // CHECK: vmax.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4029 int16x8_t test_vmaxq_s16(int16x8_t a, int16x8_t b) {
   4030   return vmaxq_s16(a, b);
   4031 }
   4032 
   4033 // CHECK: test_vmaxq_s32
   4034 // CHECK: vmax.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4035 int32x4_t test_vmaxq_s32(int32x4_t a, int32x4_t b) {
   4036   return vmaxq_s32(a, b);
   4037 }
   4038 
   4039 // CHECK: test_vmaxq_u8
   4040 // CHECK: vmax.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4041 uint8x16_t test_vmaxq_u8(uint8x16_t a, uint8x16_t b) {
   4042   return vmaxq_u8(a, b);
   4043 }
   4044 
   4045 // CHECK: test_vmaxq_u16
   4046 // CHECK: vmax.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4047 uint16x8_t test_vmaxq_u16(uint16x8_t a, uint16x8_t b) {
   4048   return vmaxq_u16(a, b);
   4049 }
   4050 
   4051 // CHECK: test_vmaxq_u32
   4052 // CHECK: vmax.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4053 uint32x4_t test_vmaxq_u32(uint32x4_t a, uint32x4_t b) {
   4054   return vmaxq_u32(a, b);
   4055 }
   4056 
   4057 // CHECK: test_vmaxq_f32
   4058 // CHECK: vmax.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4059 float32x4_t test_vmaxq_f32(float32x4_t a, float32x4_t b) {
   4060   return vmaxq_f32(a, b);
   4061 }
   4062 
   4063 
   4064 // CHECK: test_vmin_s8
   4065 // CHECK: vmin.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4066 int8x8_t test_vmin_s8(int8x8_t a, int8x8_t b) {
   4067   return vmin_s8(a, b);
   4068 }
   4069 
   4070 // CHECK: test_vmin_s16
   4071 // CHECK: vmin.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4072 int16x4_t test_vmin_s16(int16x4_t a, int16x4_t b) {
   4073   return vmin_s16(a, b);
   4074 }
   4075 
   4076 // CHECK: test_vmin_s32
   4077 // CHECK: vmin.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4078 int32x2_t test_vmin_s32(int32x2_t a, int32x2_t b) {
   4079   return vmin_s32(a, b);
   4080 }
   4081 
   4082 // CHECK: test_vmin_u8
   4083 // CHECK: vmin.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4084 uint8x8_t test_vmin_u8(uint8x8_t a, uint8x8_t b) {
   4085   return vmin_u8(a, b);
   4086 }
   4087 
   4088 // CHECK: test_vmin_u16
   4089 // CHECK: vmin.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4090 uint16x4_t test_vmin_u16(uint16x4_t a, uint16x4_t b) {
   4091   return vmin_u16(a, b);
   4092 }
   4093 
   4094 // CHECK: test_vmin_u32
   4095 // CHECK: vmin.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4096 uint32x2_t test_vmin_u32(uint32x2_t a, uint32x2_t b) {
   4097   return vmin_u32(a, b);
   4098 }
   4099 
   4100 // CHECK: test_vmin_f32
   4101 // CHECK: vmin.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4102 float32x2_t test_vmin_f32(float32x2_t a, float32x2_t b) {
   4103   return vmin_f32(a, b);
   4104 }
   4105 
   4106 // CHECK: test_vminq_s8
   4107 // CHECK: vmin.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4108 int8x16_t test_vminq_s8(int8x16_t a, int8x16_t b) {
   4109   return vminq_s8(a, b);
   4110 }
   4111 
   4112 // CHECK: test_vminq_s16
   4113 // CHECK: vmin.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4114 int16x8_t test_vminq_s16(int16x8_t a, int16x8_t b) {
   4115   return vminq_s16(a, b);
   4116 }
   4117 
   4118 // CHECK: test_vminq_s32
   4119 // CHECK: vmin.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4120 int32x4_t test_vminq_s32(int32x4_t a, int32x4_t b) {
   4121   return vminq_s32(a, b);
   4122 }
   4123 
   4124 // CHECK: test_vminq_u8
   4125 // CHECK: vmin.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4126 uint8x16_t test_vminq_u8(uint8x16_t a, uint8x16_t b) {
   4127   return vminq_u8(a, b);
   4128 }
   4129 
   4130 // CHECK: test_vminq_u16
   4131 // CHECK: vmin.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4132 uint16x8_t test_vminq_u16(uint16x8_t a, uint16x8_t b) {
   4133   return vminq_u16(a, b);
   4134 }
   4135 
   4136 // CHECK: test_vminq_u32
   4137 // CHECK: vmin.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4138 uint32x4_t test_vminq_u32(uint32x4_t a, uint32x4_t b) {
   4139   return vminq_u32(a, b);
   4140 }
   4141 
   4142 // CHECK: test_vminq_f32
   4143 // CHECK: vmin.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4144 float32x4_t test_vminq_f32(float32x4_t a, float32x4_t b) {
   4145   return vminq_f32(a, b);
   4146 }
   4147 
   4148 
   4149 // CHECK: test_vmla_s8
   4150 // CHECK: vmla.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4151 int8x8_t test_vmla_s8(int8x8_t a, int8x8_t b, int8x8_t c) {
   4152   return vmla_s8(a, b, c);
   4153 }
   4154 
   4155 // CHECK: test_vmla_s16
   4156 // CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4157 int16x4_t test_vmla_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
   4158   return vmla_s16(a, b, c);
   4159 }
   4160 
   4161 // CHECK: test_vmla_s32
   4162 // CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4163 int32x2_t test_vmla_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
   4164   return vmla_s32(a, b, c);
   4165 }
   4166 
   4167 // CHECK: test_vmla_f32
   4168 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4169 // CHECK: vadd.f32
   4170 float32x2_t test_vmla_f32(float32x2_t a, float32x2_t b, float32x2_t c) {
   4171   return vmla_f32(a, b, c);
   4172 }
   4173 
   4174 // CHECK: test_vmla_u8
   4175 // CHECK: vmla.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4176 uint8x8_t test_vmla_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) {
   4177   return vmla_u8(a, b, c);
   4178 }
   4179 
   4180 // CHECK: test_vmla_u16
   4181 // CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4182 uint16x4_t test_vmla_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
   4183   return vmla_u16(a, b, c);
   4184 }
   4185 
   4186 // CHECK: test_vmla_u32
   4187 // CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4188 uint32x2_t test_vmla_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
   4189   return vmla_u32(a, b, c);
   4190 }
   4191 
   4192 // CHECK: test_vmlaq_s8
   4193 // CHECK: vmla.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4194 int8x16_t test_vmlaq_s8(int8x16_t a, int8x16_t b, int8x16_t c) {
   4195   return vmlaq_s8(a, b, c);
   4196 }
   4197 
   4198 // CHECK: test_vmlaq_s16
   4199 // CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4200 int16x8_t test_vmlaq_s16(int16x8_t a, int16x8_t b, int16x8_t c) {
   4201   return vmlaq_s16(a, b, c);
   4202 }
   4203 
   4204 // CHECK: test_vmlaq_s32
   4205 // CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4206 int32x4_t test_vmlaq_s32(int32x4_t a, int32x4_t b, int32x4_t c) {
   4207   return vmlaq_s32(a, b, c);
   4208 }
   4209 
   4210 // CHECK: test_vmlaq_f32
   4211 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4212 // CHECK: vadd.f32
   4213 float32x4_t test_vmlaq_f32(float32x4_t a, float32x4_t b, float32x4_t c) {
   4214   return vmlaq_f32(a, b, c);
   4215 }
   4216 
   4217 // CHECK: test_vmlaq_u8
   4218 // CHECK: vmla.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4219 uint8x16_t test_vmlaq_u8(uint8x16_t a, uint8x16_t b, uint8x16_t c) {
   4220   return vmlaq_u8(a, b, c);
   4221 }
   4222 
   4223 // CHECK: test_vmlaq_u16
   4224 // CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4225 uint16x8_t test_vmlaq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t c) {
   4226   return vmlaq_u16(a, b, c);
   4227 }
   4228 
   4229 // CHECK: test_vmlaq_u32
   4230 // CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4231 uint32x4_t test_vmlaq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t c) {
   4232   return vmlaq_u32(a, b, c);
   4233 }
   4234 
   4235 
   4236 // CHECK: test_vmlal_s8
   4237 // CHECK: vmlal.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4238 int16x8_t test_vmlal_s8(int16x8_t a, int8x8_t b, int8x8_t c) {
   4239   return vmlal_s8(a, b, c);
   4240 }
   4241 
   4242 // CHECK: test_vmlal_s16
   4243 // CHECK: vmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4244 int32x4_t test_vmlal_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
   4245   return vmlal_s16(a, b, c);
   4246 }
   4247 
   4248 // CHECK: test_vmlal_s32
   4249 // CHECK: vmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4250 int64x2_t test_vmlal_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
   4251   return vmlal_s32(a, b, c);
   4252 }
   4253 
   4254 // CHECK: test_vmlal_u8
   4255 // CHECK: vmlal.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4256 uint16x8_t test_vmlal_u8(uint16x8_t a, uint8x8_t b, uint8x8_t c) {
   4257   return vmlal_u8(a, b, c);
   4258 }
   4259 
   4260 // CHECK: test_vmlal_u16
   4261 // CHECK: vmlal.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4262 uint32x4_t test_vmlal_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) {
   4263   return vmlal_u16(a, b, c);
   4264 }
   4265 
   4266 // CHECK: test_vmlal_u32
   4267 // CHECK: vmlal.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4268 uint64x2_t test_vmlal_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) {
   4269   return vmlal_u32(a, b, c);
   4270 }
   4271 
   4272 
   4273 // CHECK: test_vmlal_lane_s16
   4274 // CHECK: vmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4275 int32x4_t test_vmlal_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
   4276   return vmlal_lane_s16(a, b, c, 3);
   4277 }
   4278 
   4279 // CHECK: test_vmlal_lane_s32
   4280 // CHECK: vmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4281 int64x2_t test_vmlal_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
   4282   return vmlal_lane_s32(a, b, c, 1);
   4283 }
   4284 
   4285 // CHECK: test_vmlal_lane_u16
   4286 // CHECK: vmlal.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4287 uint32x4_t test_vmlal_lane_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) {
   4288   return vmlal_lane_u16(a, b, c, 3);
   4289 }
   4290 
   4291 // CHECK: test_vmlal_lane_u32
   4292 // CHECK: vmlal.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4293 uint64x2_t test_vmlal_lane_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) {
   4294   return vmlal_lane_u32(a, b, c, 1);
   4295 }
   4296 
   4297 
   4298 // CHECK: test_vmlal_n_s16
   4299 // CHECK: vmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4300 int32x4_t test_vmlal_n_s16(int32x4_t a, int16x4_t b, int16_t c) {
   4301   return vmlal_n_s16(a, b, c);
   4302 }
   4303 
   4304 // CHECK: test_vmlal_n_s32
   4305 // CHECK: vmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4306 int64x2_t test_vmlal_n_s32(int64x2_t a, int32x2_t b, int32_t c) {
   4307   return vmlal_n_s32(a, b, c);
   4308 }
   4309 
   4310 // CHECK: test_vmlal_n_u16
   4311 // CHECK: vmlal.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4312 uint32x4_t test_vmlal_n_u16(uint32x4_t a, uint16x4_t b, uint16_t c) {
   4313   return vmlal_n_u16(a, b, c);
   4314 }
   4315 
   4316 // CHECK: test_vmlal_n_u32
   4317 // CHECK: vmlal.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4318 uint64x2_t test_vmlal_n_u32(uint64x2_t a, uint32x2_t b, uint32_t c) {
   4319   return vmlal_n_u32(a, b, c);
   4320 }
   4321 
   4322 
   4323 // CHECK: test_vmla_lane_s16
   4324 // CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4325 int16x4_t test_vmla_lane_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
   4326   return vmla_lane_s16(a, b, c, 3);
   4327 }
   4328 
   4329 // CHECK: test_vmla_lane_s32
   4330 // CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4331 int32x2_t test_vmla_lane_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
   4332   return vmla_lane_s32(a, b, c, 1);
   4333 }
   4334 
   4335 // CHECK: test_vmla_lane_u16
   4336 // CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4337 uint16x4_t test_vmla_lane_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
   4338   return vmla_lane_u16(a, b, c, 3);
   4339 }
   4340 
   4341 // CHECK: test_vmla_lane_u32
   4342 // CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4343 uint32x2_t test_vmla_lane_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
   4344   return vmla_lane_u32(a, b, c, 1);
   4345 }
   4346 
   4347 // CHECK: test_vmla_lane_f32
   4348 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4349 // CHECK: vadd.f32
   4350 float32x2_t test_vmla_lane_f32(float32x2_t a, float32x2_t b, float32x2_t c) {
   4351   return vmla_lane_f32(a, b, c, 1);
   4352 }
   4353 
   4354 // CHECK: test_vmlaq_lane_s16
   4355 // CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4356 int16x8_t test_vmlaq_lane_s16(int16x8_t a, int16x8_t b, int16x4_t c) {
   4357   return vmlaq_lane_s16(a, b, c, 3);
   4358 }
   4359 
   4360 // CHECK: test_vmlaq_lane_s32
   4361 // CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4362 int32x4_t test_vmlaq_lane_s32(int32x4_t a, int32x4_t b, int32x2_t c) {
   4363   return vmlaq_lane_s32(a, b, c, 1);
   4364 }
   4365 
   4366 // CHECK: test_vmlaq_lane_u16
   4367 // CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4368 uint16x8_t test_vmlaq_lane_u16(uint16x8_t a, uint16x8_t b, uint16x4_t c) {
   4369   return vmlaq_lane_u16(a, b, c, 3);
   4370 }
   4371 
   4372 // CHECK: test_vmlaq_lane_u32
   4373 // CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4374 uint32x4_t test_vmlaq_lane_u32(uint32x4_t a, uint32x4_t b, uint32x2_t c) {
   4375   return vmlaq_lane_u32(a, b, c, 1);
   4376 }
   4377 
   4378 // CHECK: test_vmlaq_lane_f32
   4379 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4380 // CHECK: vadd.f32
   4381 float32x4_t test_vmlaq_lane_f32(float32x4_t a, float32x4_t b, float32x2_t c) {
   4382   return vmlaq_lane_f32(a, b, c, 1);
   4383 }
   4384 
   4385 
   4386 // CHECK: test_vmla_n_s16
   4387 // CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4388 int16x4_t test_vmla_n_s16(int16x4_t a, int16x4_t b, int16_t c) {
   4389   return vmla_n_s16(a, b, c);
   4390 }
   4391 
   4392 // CHECK: test_vmla_n_s32
   4393 // CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4394 int32x2_t test_vmla_n_s32(int32x2_t a, int32x2_t b, int32_t c) {
   4395   return vmla_n_s32(a, b, c);
   4396 }
   4397 
   4398 // CHECK: test_vmla_n_u16
   4399 // CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4400 uint16x4_t test_vmla_n_u16(uint16x4_t a, uint16x4_t b, uint16_t c) {
   4401   return vmla_n_u16(a, b, c);
   4402 }
   4403 
   4404 // CHECK: test_vmla_n_u32
   4405 // CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4406 uint32x2_t test_vmla_n_u32(uint32x2_t a, uint32x2_t b, uint32_t c) {
   4407   return vmla_n_u32(a, b, c);
   4408 }
   4409 
   4410 // CHECK: test_vmla_n_f32
   4411 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4412 // CHECK: vadd.f32
   4413 float32x2_t test_vmla_n_f32(float32x2_t a, float32x2_t b, float32_t c) {
   4414   return vmla_n_f32(a, b, c);
   4415 }
   4416 
   4417 // CHECK: test_vmlaq_n_s16
   4418 // CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4419 int16x8_t test_vmlaq_n_s16(int16x8_t a, int16x8_t b, int16_t c) {
   4420   return vmlaq_n_s16(a, b, c);
   4421 }
   4422 
   4423 // CHECK: test_vmlaq_n_s32
   4424 // CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4425 int32x4_t test_vmlaq_n_s32(int32x4_t a, int32x4_t b, int32_t c) {
   4426   return vmlaq_n_s32(a, b, c);
   4427 }
   4428 
   4429 // CHECK: test_vmlaq_n_u16
   4430 // CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4431 uint16x8_t test_vmlaq_n_u16(uint16x8_t a, uint16x8_t b, uint16_t c) {
   4432   return vmlaq_n_u16(a, b, c);
   4433 }
   4434 
   4435 // CHECK: test_vmlaq_n_u32
   4436 // CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4437 uint32x4_t test_vmlaq_n_u32(uint32x4_t a, uint32x4_t b, uint32_t c) {
   4438   return vmlaq_n_u32(a, b, c);
   4439 }
   4440 
   4441 // CHECK: test_vmlaq_n_f32
   4442 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4443 // CHECK: vadd.f32
   4444 float32x4_t test_vmlaq_n_f32(float32x4_t a, float32x4_t b, float32_t c) {
   4445   return vmlaq_n_f32(a, b, c);
   4446 }
   4447 
   4448 
   4449 // CHECK: test_vmls_s8
   4450 // CHECK: vmls.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4451 int8x8_t test_vmls_s8(int8x8_t a, int8x8_t b, int8x8_t c) {
   4452   return vmls_s8(a, b, c);
   4453 }
   4454 
   4455 // CHECK: test_vmls_s16
   4456 // CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4457 int16x4_t test_vmls_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
   4458   return vmls_s16(a, b, c);
   4459 }
   4460 
   4461 // CHECK: test_vmls_s32
   4462 // CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4463 int32x2_t test_vmls_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
   4464   return vmls_s32(a, b, c);
   4465 }
   4466 
   4467 // CHECK: test_vmls_f32
   4468 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4469 // CHECK: vsub.f32
   4470 float32x2_t test_vmls_f32(float32x2_t a, float32x2_t b, float32x2_t c) {
   4471   return vmls_f32(a, b, c);
   4472 }
   4473 
   4474 // CHECK: test_vmls_u8
   4475 // CHECK: vmls.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4476 uint8x8_t test_vmls_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) {
   4477   return vmls_u8(a, b, c);
   4478 }
   4479 
   4480 // CHECK: test_vmls_u16
   4481 // CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4482 uint16x4_t test_vmls_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
   4483   return vmls_u16(a, b, c);
   4484 }
   4485 
   4486 // CHECK: test_vmls_u32
   4487 // CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4488 uint32x2_t test_vmls_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
   4489   return vmls_u32(a, b, c);
   4490 }
   4491 
   4492 // CHECK: test_vmlsq_s8
   4493 // CHECK: vmls.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4494 int8x16_t test_vmlsq_s8(int8x16_t a, int8x16_t b, int8x16_t c) {
   4495   return vmlsq_s8(a, b, c);
   4496 }
   4497 
   4498 // CHECK: test_vmlsq_s16
   4499 // CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4500 int16x8_t test_vmlsq_s16(int16x8_t a, int16x8_t b, int16x8_t c) {
   4501   return vmlsq_s16(a, b, c);
   4502 }
   4503 
   4504 // CHECK: test_vmlsq_s32
   4505 // CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4506 int32x4_t test_vmlsq_s32(int32x4_t a, int32x4_t b, int32x4_t c) {
   4507   return vmlsq_s32(a, b, c);
   4508 }
   4509 
   4510 // CHECK: test_vmlsq_f32
   4511 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4512 // CHECK: vsub.f32
   4513 float32x4_t test_vmlsq_f32(float32x4_t a, float32x4_t b, float32x4_t c) {
   4514   return vmlsq_f32(a, b, c);
   4515 }
   4516 
   4517 // CHECK: test_vmlsq_u8
   4518 // CHECK: vmls.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4519 uint8x16_t test_vmlsq_u8(uint8x16_t a, uint8x16_t b, uint8x16_t c) {
   4520   return vmlsq_u8(a, b, c);
   4521 }
   4522 
   4523 // CHECK: test_vmlsq_u16
   4524 // CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4525 uint16x8_t test_vmlsq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t c) {
   4526   return vmlsq_u16(a, b, c);
   4527 }
   4528 
   4529 // CHECK: test_vmlsq_u32
   4530 // CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4531 uint32x4_t test_vmlsq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t c) {
   4532   return vmlsq_u32(a, b, c);
   4533 }
   4534 
   4535 
   4536 // CHECK: test_vmlsl_s8
   4537 // CHECK: vmlsl.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4538 int16x8_t test_vmlsl_s8(int16x8_t a, int8x8_t b, int8x8_t c) {
   4539   return vmlsl_s8(a, b, c);
   4540 }
   4541 
   4542 // CHECK: test_vmlsl_s16
   4543 // CHECK: vmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4544 int32x4_t test_vmlsl_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
   4545   return vmlsl_s16(a, b, c);
   4546 }
   4547 
   4548 // CHECK: test_vmlsl_s32
   4549 // CHECK: vmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4550 int64x2_t test_vmlsl_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
   4551   return vmlsl_s32(a, b, c);
   4552 }
   4553 
   4554 // CHECK: test_vmlsl_u8
   4555 // CHECK: vmlsl.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4556 uint16x8_t test_vmlsl_u8(uint16x8_t a, uint8x8_t b, uint8x8_t c) {
   4557   return vmlsl_u8(a, b, c);
   4558 }
   4559 
   4560 // CHECK: test_vmlsl_u16
   4561 // CHECK: vmlsl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4562 uint32x4_t test_vmlsl_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) {
   4563   return vmlsl_u16(a, b, c);
   4564 }
   4565 
   4566 // CHECK: test_vmlsl_u32
   4567 // CHECK: vmlsl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4568 uint64x2_t test_vmlsl_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) {
   4569   return vmlsl_u32(a, b, c);
   4570 }
   4571 
   4572 
   4573 // CHECK: test_vmlsl_lane_s16
   4574 // CHECK: vmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4575 int32x4_t test_vmlsl_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
   4576   return vmlsl_lane_s16(a, b, c, 3);
   4577 }
   4578 
   4579 // CHECK: test_vmlsl_lane_s32
   4580 // CHECK: vmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4581 int64x2_t test_vmlsl_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
   4582   return vmlsl_lane_s32(a, b, c, 1);
   4583 }
   4584 
   4585 // CHECK: test_vmlsl_lane_u16
   4586 // CHECK: vmlsl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4587 uint32x4_t test_vmlsl_lane_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) {
   4588   return vmlsl_lane_u16(a, b, c, 3);
   4589 }
   4590 
   4591 // CHECK: test_vmlsl_lane_u32
   4592 // CHECK: vmlsl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4593 uint64x2_t test_vmlsl_lane_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) {
   4594   return vmlsl_lane_u32(a, b, c, 1);
   4595 }
   4596 
   4597 
   4598 // CHECK: test_vmlsl_n_s16
   4599 // CHECK: vmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4600 int32x4_t test_vmlsl_n_s16(int32x4_t a, int16x4_t b, int16_t c) {
   4601   return vmlsl_n_s16(a, b, c);
   4602 }
   4603 
   4604 // CHECK: test_vmlsl_n_s32
   4605 // CHECK: vmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4606 int64x2_t test_vmlsl_n_s32(int64x2_t a, int32x2_t b, int32_t c) {
   4607   return vmlsl_n_s32(a, b, c);
   4608 }
   4609 
   4610 // CHECK: test_vmlsl_n_u16
   4611 // CHECK: vmlsl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4612 uint32x4_t test_vmlsl_n_u16(uint32x4_t a, uint16x4_t b, uint16_t c) {
   4613   return vmlsl_n_u16(a, b, c);
   4614 }
   4615 
   4616 // CHECK: test_vmlsl_n_u32
   4617 // CHECK: vmlsl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4618 uint64x2_t test_vmlsl_n_u32(uint64x2_t a, uint32x2_t b, uint32_t c) {
   4619   return vmlsl_n_u32(a, b, c);
   4620 }
   4621 
   4622 
   4623 // CHECK: test_vmls_lane_s16
   4624 // CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4625 int16x4_t test_vmls_lane_s16(int16x4_t a, int16x4_t b, int16x4_t c) {
   4626   return vmls_lane_s16(a, b, c, 3);
   4627 }
   4628 
   4629 // CHECK: test_vmls_lane_s32
   4630 // CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4631 int32x2_t test_vmls_lane_s32(int32x2_t a, int32x2_t b, int32x2_t c) {
   4632   return vmls_lane_s32(a, b, c, 1);
   4633 }
   4634 
   4635 // CHECK: test_vmls_lane_u16
   4636 // CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4637 uint16x4_t test_vmls_lane_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) {
   4638   return vmls_lane_u16(a, b, c, 3);
   4639 }
   4640 
   4641 // CHECK: test_vmls_lane_u32
   4642 // CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4643 uint32x2_t test_vmls_lane_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) {
   4644   return vmls_lane_u32(a, b, c, 1);
   4645 }
   4646 
   4647 // CHECK: test_vmls_lane_f32
   4648 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4649 // CHECK: vsub.f32
   4650 float32x2_t test_vmls_lane_f32(float32x2_t a, float32x2_t b, float32x2_t c) {
   4651   return vmls_lane_f32(a, b, c, 1);
   4652 }
   4653 
   4654 // CHECK: test_vmlsq_lane_s16
   4655 // CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4656 int16x8_t test_vmlsq_lane_s16(int16x8_t a, int16x8_t b, int16x4_t c) {
   4657   return vmlsq_lane_s16(a, b, c, 3);
   4658 }
   4659 
   4660 // CHECK: test_vmlsq_lane_s32
   4661 // CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4662 int32x4_t test_vmlsq_lane_s32(int32x4_t a, int32x4_t b, int32x2_t c) {
   4663   return vmlsq_lane_s32(a, b, c, 1);
   4664 }
   4665 
   4666 // CHECK: test_vmlsq_lane_u16
   4667 // CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4668 uint16x8_t test_vmlsq_lane_u16(uint16x8_t a, uint16x8_t b, uint16x4_t c) {
   4669   return vmlsq_lane_u16(a, b, c, 3);
   4670 }
   4671 
   4672 // CHECK: test_vmlsq_lane_u32
   4673 // CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4674 uint32x4_t test_vmlsq_lane_u32(uint32x4_t a, uint32x4_t b, uint32x2_t c) {
   4675   return vmlsq_lane_u32(a, b, c, 1);
   4676 }
   4677 
   4678 // CHECK: test_vmlsq_lane_f32
   4679 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   4680 // CHECK: vsub.f32
   4681 float32x4_t test_vmlsq_lane_f32(float32x4_t a, float32x4_t b, float32x2_t c) {
   4682   return vmlsq_lane_f32(a, b, c, 1);
   4683 }
   4684 
   4685 
   4686 // CHECK: test_vmls_n_s16
   4687 // CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4688 int16x4_t test_vmls_n_s16(int16x4_t a, int16x4_t b, int16_t c) {
   4689   return vmls_n_s16(a, b, c);
   4690 }
   4691 
   4692 // CHECK: test_vmls_n_s32
   4693 // CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4694 int32x2_t test_vmls_n_s32(int32x2_t a, int32x2_t b, int32_t c) {
   4695   return vmls_n_s32(a, b, c);
   4696 }
   4697 
   4698 // CHECK: test_vmls_n_u16
   4699 // CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4700 uint16x4_t test_vmls_n_u16(uint16x4_t a, uint16x4_t b, uint16_t c) {
   4701   return vmls_n_u16(a, b, c);
   4702 }
   4703 
   4704 // CHECK: test_vmls_n_u32
   4705 // CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4706 uint32x2_t test_vmls_n_u32(uint32x2_t a, uint32x2_t b, uint32_t c) {
   4707   return vmls_n_u32(a, b, c);
   4708 }
   4709 
   4710 // CHECK: test_vmls_n_f32
   4711 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4712 // CHECK: vsub.f32
   4713 float32x2_t test_vmls_n_f32(float32x2_t a, float32x2_t b, float32_t c) {
   4714   return vmls_n_f32(a, b, c);
   4715 }
   4716 
   4717 // CHECK: test_vmlsq_n_s16
   4718 // CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4719 int16x8_t test_vmlsq_n_s16(int16x8_t a, int16x8_t b, int16_t c) {
   4720   return vmlsq_n_s16(a, b, c);
   4721 }
   4722 
   4723 // CHECK: test_vmlsq_n_s32
   4724 // CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4725 int32x4_t test_vmlsq_n_s32(int32x4_t a, int32x4_t b, int32_t c) {
   4726   return vmlsq_n_s32(a, b, c);
   4727 }
   4728 
   4729 // CHECK: test_vmlsq_n_u16
   4730 // CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4731 uint16x8_t test_vmlsq_n_u16(uint16x8_t a, uint16x8_t b, uint16_t c) {
   4732   return vmlsq_n_u16(a, b, c);
   4733 }
   4734 
   4735 // CHECK: test_vmlsq_n_u32
   4736 // CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4737 uint32x4_t test_vmlsq_n_u32(uint32x4_t a, uint32x4_t b, uint32_t c) {
   4738   return vmlsq_n_u32(a, b, c);
   4739 }
   4740 
   4741 // CHECK: test_vmlsq_n_f32
   4742 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   4743 // CHECK: vsub.f32
   4744 float32x4_t test_vmlsq_n_f32(float32x4_t a, float32x4_t b, float32_t c) {
   4745   return vmlsq_n_f32(a, b, c);
   4746 }
   4747 
   4748 
   4749 // CHECK: test_vmovl_s8
   4750 // CHECK: vmovl.s8 q{{[0-9]+}}, d{{[0-9]+}}
   4751 int16x8_t test_vmovl_s8(int8x8_t a) {
   4752   return vmovl_s8(a);
   4753 }
   4754 
   4755 // CHECK: test_vmovl_s16
   4756 // CHECK: vmovl.s16 q{{[0-9]+}}, d{{[0-9]+}}
   4757 int32x4_t test_vmovl_s16(int16x4_t a) {
   4758   return vmovl_s16(a);
   4759 }
   4760 
   4761 // CHECK: test_vmovl_s32
   4762 // CHECK: vmovl.s32 q{{[0-9]+}}, d{{[0-9]+}}
   4763 int64x2_t test_vmovl_s32(int32x2_t a) {
   4764   return vmovl_s32(a);
   4765 }
   4766 
   4767 // CHECK: test_vmovl_u8
   4768 // CHECK: vmovl.u8 q{{[0-9]+}}, d{{[0-9]+}}
   4769 uint16x8_t test_vmovl_u8(uint8x8_t a) {
   4770   return vmovl_u8(a);
   4771 }
   4772 
   4773 // CHECK: test_vmovl_u16
   4774 // CHECK: vmovl.u16 q{{[0-9]+}}, d{{[0-9]+}}
   4775 uint32x4_t test_vmovl_u16(uint16x4_t a) {
   4776   return vmovl_u16(a);
   4777 }
   4778 
   4779 // CHECK: test_vmovl_u32
   4780 // CHECK: vmovl.u32 q{{[0-9]+}}, d{{[0-9]+}}
   4781 uint64x2_t test_vmovl_u32(uint32x2_t a) {
   4782   return vmovl_u32(a);
   4783 }
   4784 
   4785 
   4786 // CHECK: test_vmovn_s16
   4787 // CHECK: vmovn.i16 d{{[0-9]+}}, q{{[0-9]+}}
   4788 int8x8_t test_vmovn_s16(int16x8_t a) {
   4789   return vmovn_s16(a);
   4790 }
   4791 
   4792 // CHECK: test_vmovn_s32
   4793 // CHECK: vmovn.i32 d{{[0-9]+}}, q{{[0-9]+}}
   4794 int16x4_t test_vmovn_s32(int32x4_t a) {
   4795   return vmovn_s32(a);
   4796 }
   4797 
   4798 // CHECK: test_vmovn_s64
   4799 // CHECK: vmovn.i64 d{{[0-9]+}}, q{{[0-9]+}}
   4800 int32x2_t test_vmovn_s64(int64x2_t a) {
   4801   return vmovn_s64(a);
   4802 }
   4803 
   4804 // CHECK: test_vmovn_u16
   4805 // CHECK: vmovn.i16 d{{[0-9]+}}, q{{[0-9]+}}
   4806 uint8x8_t test_vmovn_u16(uint16x8_t a) {
   4807   return vmovn_u16(a);
   4808 }
   4809 
   4810 // CHECK: test_vmovn_u32
   4811 // CHECK: vmovn.i32 d{{[0-9]+}}, q{{[0-9]+}}
   4812 uint16x4_t test_vmovn_u32(uint32x4_t a) {
   4813   return vmovn_u32(a);
   4814 }
   4815 
   4816 // CHECK: test_vmovn_u64
   4817 // CHECK: vmovn.i64 d{{[0-9]+}}, q{{[0-9]+}}
   4818 uint32x2_t test_vmovn_u64(uint64x2_t a) {
   4819   return vmovn_u64(a);
   4820 }
   4821 
   4822 
   4823 // CHECK: test_vmov_n_u8
   4824 // CHECK: vmov
   4825 uint8x8_t test_vmov_n_u8(uint8_t a) {
   4826   return vmov_n_u8(a);
   4827 }
   4828 
   4829 // CHECK: test_vmov_n_u16
   4830 // CHECK: vmov
   4831 uint16x4_t test_vmov_n_u16(uint16_t a) {
   4832   return vmov_n_u16(a);
   4833 }
   4834 
   4835 // CHECK: test_vmov_n_u32
   4836 // CHECK: vmov
   4837 uint32x2_t test_vmov_n_u32(uint32_t a) {
   4838   return vmov_n_u32(a);
   4839 }
   4840 
   4841 // CHECK: test_vmov_n_s8
   4842 // CHECK: vmov
   4843 int8x8_t test_vmov_n_s8(int8_t a) {
   4844   return vmov_n_s8(a);
   4845 }
   4846 
   4847 // CHECK: test_vmov_n_s16
   4848 // CHECK: vmov
   4849 int16x4_t test_vmov_n_s16(int16_t a) {
   4850   return vmov_n_s16(a);
   4851 }
   4852 
   4853 // CHECK: test_vmov_n_s32
   4854 // CHECK: vmov
   4855 int32x2_t test_vmov_n_s32(int32_t a) {
   4856   return vmov_n_s32(a);
   4857 }
   4858 
   4859 // CHECK: test_vmov_n_p8
   4860 // CHECK: vmov
   4861 poly8x8_t test_vmov_n_p8(poly8_t a) {
   4862   return vmov_n_p8(a);
   4863 }
   4864 
   4865 // CHECK: test_vmov_n_p16
   4866 // CHECK: vmov
   4867 poly16x4_t test_vmov_n_p16(poly16_t a) {
   4868   return vmov_n_p16(a);
   4869 }
   4870 
   4871 // CHECK: test_vmov_n_f32
   4872 // CHECK: vmov
   4873 float32x2_t test_vmov_n_f32(float32_t a) {
   4874   return vmov_n_f32(a);
   4875 }
   4876 
   4877 // CHECK: test_vmovq_n_u8
   4878 // CHECK: vmov
   4879 uint8x16_t test_vmovq_n_u8(uint8_t a) {
   4880   return vmovq_n_u8(a);
   4881 }
   4882 
   4883 // CHECK: test_vmovq_n_u16
   4884 // CHECK: vmov
   4885 uint16x8_t test_vmovq_n_u16(uint16_t a) {
   4886   return vmovq_n_u16(a);
   4887 }
   4888 
   4889 // CHECK: test_vmovq_n_u32
   4890 // CHECK: vmov
   4891 uint32x4_t test_vmovq_n_u32(uint32_t a) {
   4892   return vmovq_n_u32(a);
   4893 }
   4894 
   4895 // CHECK: test_vmovq_n_s8
   4896 // CHECK: vmov
   4897 int8x16_t test_vmovq_n_s8(int8_t a) {
   4898   return vmovq_n_s8(a);
   4899 }
   4900 
   4901 // CHECK: test_vmovq_n_s16
   4902 // CHECK: vmov
   4903 int16x8_t test_vmovq_n_s16(int16_t a) {
   4904   return vmovq_n_s16(a);
   4905 }
   4906 
   4907 // CHECK: test_vmovq_n_s32
   4908 // CHECK: vmov
   4909 int32x4_t test_vmovq_n_s32(int32_t a) {
   4910   return vmovq_n_s32(a);
   4911 }
   4912 
   4913 // CHECK: test_vmovq_n_p8
   4914 // CHECK: vmov
   4915 poly8x16_t test_vmovq_n_p8(poly8_t a) {
   4916   return vmovq_n_p8(a);
   4917 }
   4918 
   4919 // CHECK: test_vmovq_n_p16
   4920 // CHECK: vmov
   4921 poly16x8_t test_vmovq_n_p16(poly16_t a) {
   4922   return vmovq_n_p16(a);
   4923 }
   4924 
   4925 // CHECK: test_vmovq_n_f32
   4926 // CHECK: vmov
   4927 float32x4_t test_vmovq_n_f32(float32_t a) {
   4928   return vmovq_n_f32(a);
   4929 }
   4930 
   4931 // CHECK: test_vmov_n_s64
   4932 // CHECK: vmov
   4933 int64x1_t test_vmov_n_s64(int64_t a) {
   4934   return vmov_n_s64(a);
   4935 }
   4936 
   4937 // CHECK: test_vmov_n_u64
   4938 // CHECK: vmov
   4939 uint64x1_t test_vmov_n_u64(uint64_t a) {
   4940   return vmov_n_u64(a);
   4941 }
   4942 
   4943 // CHECK: test_vmovq_n_s64
   4944 // CHECK: vmov
   4945 int64x2_t test_vmovq_n_s64(int64_t a) {
   4946   return vmovq_n_s64(a);
   4947 }
   4948 
   4949 // CHECK: test_vmovq_n_u64
   4950 // CHECK: vmov
   4951 uint64x2_t test_vmovq_n_u64(uint64_t a) {
   4952   return vmovq_n_u64(a);
   4953 }
   4954 
   4955 
   4956 // CHECK: test_vmul_s8
   4957 // CHECK: vmul.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4958 int8x8_t test_vmul_s8(int8x8_t a, int8x8_t b) {
   4959   return vmul_s8(a, b);
   4960 }
   4961 
   4962 // CHECK: test_vmul_s16
   4963 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4964 int16x4_t test_vmul_s16(int16x4_t a, int16x4_t b) {
   4965   return vmul_s16(a, b);
   4966 }
   4967 
   4968 // CHECK: test_vmul_s32
   4969 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4970 int32x2_t test_vmul_s32(int32x2_t a, int32x2_t b) {
   4971   return vmul_s32(a, b);
   4972 }
   4973 
   4974 // CHECK: test_vmul_f32
   4975 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4976 float32x2_t test_vmul_f32(float32x2_t a, float32x2_t b) {
   4977   return vmul_f32(a, b);
   4978 }
   4979 
   4980 // CHECK: test_vmul_u8
   4981 // CHECK: vmul.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4982 uint8x8_t test_vmul_u8(uint8x8_t a, uint8x8_t b) {
   4983   return vmul_u8(a, b);
   4984 }
   4985 
   4986 // CHECK: test_vmul_u16
   4987 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4988 uint16x4_t test_vmul_u16(uint16x4_t a, uint16x4_t b) {
   4989   return vmul_u16(a, b);
   4990 }
   4991 
   4992 // CHECK: test_vmul_u32
   4993 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   4994 uint32x2_t test_vmul_u32(uint32x2_t a, uint32x2_t b) {
   4995   return vmul_u32(a, b);
   4996 }
   4997 
   4998 // CHECK: test_vmulq_s8
   4999 // CHECK: vmul.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5000 int8x16_t test_vmulq_s8(int8x16_t a, int8x16_t b) {
   5001   return vmulq_s8(a, b);
   5002 }
   5003 
   5004 // CHECK: test_vmulq_s16
   5005 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5006 int16x8_t test_vmulq_s16(int16x8_t a, int16x8_t b) {
   5007   return vmulq_s16(a, b);
   5008 }
   5009 
   5010 // CHECK: test_vmulq_s32
   5011 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5012 int32x4_t test_vmulq_s32(int32x4_t a, int32x4_t b) {
   5013   return vmulq_s32(a, b);
   5014 }
   5015 
   5016 // CHECK: test_vmulq_f32
   5017 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5018 float32x4_t test_vmulq_f32(float32x4_t a, float32x4_t b) {
   5019   return vmulq_f32(a, b);
   5020 }
   5021 
   5022 // CHECK: test_vmulq_u8
   5023 // CHECK: vmul.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5024 uint8x16_t test_vmulq_u8(uint8x16_t a, uint8x16_t b) {
   5025   return vmulq_u8(a, b);
   5026 }
   5027 
   5028 // CHECK: test_vmulq_u16
   5029 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5030 uint16x8_t test_vmulq_u16(uint16x8_t a, uint16x8_t b) {
   5031   return vmulq_u16(a, b);
   5032 }
   5033 
   5034 // CHECK: test_vmulq_u32
   5035 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5036 uint32x4_t test_vmulq_u32(uint32x4_t a, uint32x4_t b) {
   5037   return vmulq_u32(a, b);
   5038 }
   5039 
   5040 
   5041 // CHECK: test_vmull_s8
   5042 // CHECK: vmull.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5043 int16x8_t test_vmull_s8(int8x8_t a, int8x8_t b) {
   5044   return vmull_s8(a, b);
   5045 }
   5046 
   5047 // CHECK: test_vmull_s16
   5048 // CHECK: vmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5049 int32x4_t test_vmull_s16(int16x4_t a, int16x4_t b) {
   5050   return vmull_s16(a, b);
   5051 }
   5052 
   5053 // CHECK: test_vmull_s32
   5054 // CHECK: vmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5055 int64x2_t test_vmull_s32(int32x2_t a, int32x2_t b) {
   5056   return vmull_s32(a, b);
   5057 }
   5058 
   5059 // CHECK: test_vmull_u8
   5060 // CHECK: vmull.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5061 uint16x8_t test_vmull_u8(uint8x8_t a, uint8x8_t b) {
   5062   return vmull_u8(a, b);
   5063 }
   5064 
   5065 // CHECK: test_vmull_u16
   5066 // CHECK: vmull.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5067 uint32x4_t test_vmull_u16(uint16x4_t a, uint16x4_t b) {
   5068   return vmull_u16(a, b);
   5069 }
   5070 
   5071 // CHECK: test_vmull_u32
   5072 // CHECK: vmull.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5073 uint64x2_t test_vmull_u32(uint32x2_t a, uint32x2_t b) {
   5074   return vmull_u32(a, b);
   5075 }
   5076 
   5077 // CHECK: test_vmull_p8
   5078 // CHECK: vmull.p8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5079 poly16x8_t test_vmull_p8(poly8x8_t a, poly8x8_t b) {
   5080   return vmull_p8(a, b);
   5081 }
   5082 
   5083 
   5084 // CHECK: test_vmull_lane_s16
   5085 // CHECK: vmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   5086 int32x4_t test_vmull_lane_s16(int16x4_t a, int16x4_t b) {
   5087   return vmull_lane_s16(a, b, 3);
   5088 }
   5089 
   5090 // CHECK: test_vmull_lane_s32
   5091 // CHECK: vmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   5092 int64x2_t test_vmull_lane_s32(int32x2_t a, int32x2_t b) {
   5093   return vmull_lane_s32(a, b, 1);
   5094 }
   5095 
   5096 // CHECK: test_vmull_lane_u16
   5097 // CHECK: vmull.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   5098 uint32x4_t test_vmull_lane_u16(uint16x4_t a, uint16x4_t b) {
   5099   return vmull_lane_u16(a, b, 3);
   5100 }
   5101 
   5102 // CHECK: test_vmull_lane_u32
   5103 // CHECK: vmull.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   5104 uint64x2_t test_vmull_lane_u32(uint32x2_t a, uint32x2_t b) {
   5105   return vmull_lane_u32(a, b, 1);
   5106 }
   5107 
   5108 
   5109 // CHECK: test_vmull_n_s16
   5110 // CHECK: vmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5111 int32x4_t test_vmull_n_s16(int16x4_t a, int16_t b) {
   5112   return vmull_n_s16(a, b);
   5113 }
   5114 
   5115 // CHECK: test_vmull_n_s32
   5116 // CHECK: vmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5117 int64x2_t test_vmull_n_s32(int32x2_t a, int32_t b) {
   5118   return vmull_n_s32(a, b);
   5119 }
   5120 
   5121 // CHECK: test_vmull_n_u16
   5122 // CHECK: vmull.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5123 uint32x4_t test_vmull_n_u16(uint16x4_t a, uint16_t b) {
   5124   return vmull_n_u16(a, b);
   5125 }
   5126 
   5127 // CHECK: test_vmull_n_u32
   5128 // CHECK: vmull.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5129 uint64x2_t test_vmull_n_u32(uint32x2_t a, uint32_t b) {
   5130   return vmull_n_u32(a, b);
   5131 }
   5132 
   5133 
   5134 // CHECK: test_vmul_p8
   5135 // CHECK: vmul.p8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5136 poly8x8_t test_vmul_p8(poly8x8_t a, poly8x8_t b) {
   5137   return vmul_p8(a, b);
   5138 }
   5139 
   5140 // CHECK: test_vmulq_p8
   5141 // CHECK: vmul.p8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5142 poly8x16_t test_vmulq_p8(poly8x16_t a, poly8x16_t b) {
   5143   return vmulq_p8(a, b);
   5144 }
   5145 
   5146 
   5147 // CHECK: test_vmul_lane_s16
   5148 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   5149 int16x4_t test_vmul_lane_s16(int16x4_t a, int16x4_t b) {
   5150   return vmul_lane_s16(a, b, 3);
   5151 }
   5152 
   5153 // CHECK: test_vmul_lane_s32
   5154 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   5155 int32x2_t test_vmul_lane_s32(int32x2_t a, int32x2_t b) {
   5156   return vmul_lane_s32(a, b, 1);
   5157 }
   5158 
   5159 // CHECK: test_vmul_lane_f32
   5160 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   5161 float32x2_t test_vmul_lane_f32(float32x2_t a, float32x2_t b) {
   5162   return vmul_lane_f32(a, b, 1);
   5163 }
   5164 
   5165 // CHECK: test_vmul_lane_u16
   5166 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   5167 uint16x4_t test_vmul_lane_u16(uint16x4_t a, uint16x4_t b) {
   5168   return vmul_lane_u16(a, b, 3);
   5169 }
   5170 
   5171 // CHECK: test_vmul_lane_u32
   5172 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   5173 uint32x2_t test_vmul_lane_u32(uint32x2_t a, uint32x2_t b) {
   5174   return vmul_lane_u32(a, b, 1);
   5175 }
   5176 
   5177 // CHECK: test_vmulq_lane_s16
   5178 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   5179 int16x8_t test_vmulq_lane_s16(int16x8_t a, int16x4_t b) {
   5180   return vmulq_lane_s16(a, b, 3);
   5181 }
   5182 
   5183 // CHECK: test_vmulq_lane_s32
   5184 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   5185 int32x4_t test_vmulq_lane_s32(int32x4_t a, int32x2_t b) {
   5186   return vmulq_lane_s32(a, b, 1);
   5187 }
   5188 
   5189 // CHECK: test_vmulq_lane_f32
   5190 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   5191 float32x4_t test_vmulq_lane_f32(float32x4_t a, float32x2_t b) {
   5192   return vmulq_lane_f32(a, b, 1);
   5193 }
   5194 
   5195 // CHECK: test_vmulq_lane_u16
   5196 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   5197 uint16x8_t test_vmulq_lane_u16(uint16x8_t a, uint16x4_t b) {
   5198   return vmulq_lane_u16(a, b, 3);
   5199 }
   5200 
   5201 // CHECK: test_vmulq_lane_u32
   5202 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   5203 uint32x4_t test_vmulq_lane_u32(uint32x4_t a, uint32x2_t b) {
   5204   return vmulq_lane_u32(a, b, 1);
   5205 }
   5206 
   5207 
   5208 // CHECK: test_vmul_n_s16
   5209 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5210 int16x4_t test_vmul_n_s16(int16x4_t a, int16_t b) {
   5211   return vmul_n_s16(a, b);
   5212 }
   5213 
   5214 // CHECK: test_vmul_n_s32
   5215 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5216 int32x2_t test_vmul_n_s32(int32x2_t a, int32_t b) {
   5217   return vmul_n_s32(a, b);
   5218 }
   5219 
   5220 // CHECK: test_vmul_n_f32
   5221 // CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5222 float32x2_t test_vmul_n_f32(float32x2_t a, float32_t b) {
   5223   return vmul_n_f32(a, b);
   5224 }
   5225 
   5226 // CHECK: test_vmul_n_u16
   5227 // CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5228 uint16x4_t test_vmul_n_u16(uint16x4_t a, uint16_t b) {
   5229   return vmul_n_u16(a, b);
   5230 }
   5231 
   5232 // CHECK: test_vmul_n_u32
   5233 // CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5234 uint32x2_t test_vmul_n_u32(uint32x2_t a, uint32_t b) {
   5235   return vmul_n_u32(a, b);
   5236 }
   5237 
   5238 // CHECK: test_vmulq_n_s16
   5239 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5240 int16x8_t test_vmulq_n_s16(int16x8_t a, int16_t b) {
   5241   return vmulq_n_s16(a, b);
   5242 }
   5243 
   5244 // CHECK: test_vmulq_n_s32
   5245 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5246 int32x4_t test_vmulq_n_s32(int32x4_t a, int32_t b) {
   5247   return vmulq_n_s32(a, b);
   5248 }
   5249 
   5250 // CHECK: test_vmulq_n_f32
   5251 // CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5252 float32x4_t test_vmulq_n_f32(float32x4_t a, float32_t b) {
   5253   return vmulq_n_f32(a, b);
   5254 }
   5255 
   5256 // CHECK: test_vmulq_n_u16
   5257 // CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5258 uint16x8_t test_vmulq_n_u16(uint16x8_t a, uint16_t b) {
   5259   return vmulq_n_u16(a, b);
   5260 }
   5261 
   5262 // CHECK: test_vmulq_n_u32
   5263 // CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5264 uint32x4_t test_vmulq_n_u32(uint32x4_t a, uint32_t b) {
   5265   return vmulq_n_u32(a, b);
   5266 }
   5267 
   5268 
   5269 // CHECK: test_vmvn_s8
   5270 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
   5271 int8x8_t test_vmvn_s8(int8x8_t a) {
   5272   return vmvn_s8(a);
   5273 }
   5274 
   5275 // CHECK: test_vmvn_s16
   5276 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
   5277 int16x4_t test_vmvn_s16(int16x4_t a) {
   5278   return vmvn_s16(a);
   5279 }
   5280 
   5281 // CHECK: test_vmvn_s32
   5282 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
   5283 int32x2_t test_vmvn_s32(int32x2_t a) {
   5284   return vmvn_s32(a);
   5285 }
   5286 
   5287 // CHECK: test_vmvn_u8
   5288 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
   5289 uint8x8_t test_vmvn_u8(uint8x8_t a) {
   5290   return vmvn_u8(a);
   5291 }
   5292 
   5293 // CHECK: test_vmvn_u16
   5294 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
   5295 uint16x4_t test_vmvn_u16(uint16x4_t a) {
   5296   return vmvn_u16(a);
   5297 }
   5298 
   5299 // CHECK: test_vmvn_u32
   5300 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
   5301 uint32x2_t test_vmvn_u32(uint32x2_t a) {
   5302   return vmvn_u32(a);
   5303 }
   5304 
   5305 // CHECK: test_vmvn_p8
   5306 // CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}}
   5307 poly8x8_t test_vmvn_p8(poly8x8_t a) {
   5308   return vmvn_p8(a);
   5309 }
   5310 
   5311 // CHECK: test_vmvnq_s8
   5312 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
   5313 int8x16_t test_vmvnq_s8(int8x16_t a) {
   5314   return vmvnq_s8(a);
   5315 }
   5316 
   5317 // CHECK: test_vmvnq_s16
   5318 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
   5319 int16x8_t test_vmvnq_s16(int16x8_t a) {
   5320   return vmvnq_s16(a);
   5321 }
   5322 
   5323 // CHECK: test_vmvnq_s32
   5324 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
   5325 int32x4_t test_vmvnq_s32(int32x4_t a) {
   5326   return vmvnq_s32(a);
   5327 }
   5328 
   5329 // CHECK: test_vmvnq_u8
   5330 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
   5331 uint8x16_t test_vmvnq_u8(uint8x16_t a) {
   5332   return vmvnq_u8(a);
   5333 }
   5334 
   5335 // CHECK: test_vmvnq_u16
   5336 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
   5337 uint16x8_t test_vmvnq_u16(uint16x8_t a) {
   5338   return vmvnq_u16(a);
   5339 }
   5340 
   5341 // CHECK: test_vmvnq_u32
   5342 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
   5343 uint32x4_t test_vmvnq_u32(uint32x4_t a) {
   5344   return vmvnq_u32(a);
   5345 }
   5346 
   5347 // CHECK: test_vmvnq_p8
   5348 // CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}}
   5349 poly8x16_t test_vmvnq_p8(poly8x16_t a) {
   5350   return vmvnq_p8(a);
   5351 }
   5352 
   5353 
   5354 // CHECK: test_vneg_s8
   5355 // CHECK: vneg.s8 d{{[0-9]+}}, d{{[0-9]+}}
   5356 int8x8_t test_vneg_s8(int8x8_t a) {
   5357   return vneg_s8(a);
   5358 }
   5359 
   5360 // CHECK: test_vneg_s16
   5361 // CHECK: vneg.s16 d{{[0-9]+}}, d{{[0-9]+}}
   5362 int16x4_t test_vneg_s16(int16x4_t a) {
   5363   return vneg_s16(a);
   5364 }
   5365 
   5366 // CHECK: test_vneg_s32
   5367 // CHECK: vneg.s32 d{{[0-9]+}}, d{{[0-9]+}}
   5368 int32x2_t test_vneg_s32(int32x2_t a) {
   5369   return vneg_s32(a);
   5370 }
   5371 
   5372 // CHECK: test_vneg_f32
   5373 // CHECK: vneg.f32 d{{[0-9]+}}, d{{[0-9]+}}
   5374 float32x2_t test_vneg_f32(float32x2_t a) {
   5375   return vneg_f32(a);
   5376 }
   5377 
   5378 // CHECK: test_vnegq_s8
   5379 // CHECK: vneg.s8 q{{[0-9]+}}, q{{[0-9]+}}
   5380 int8x16_t test_vnegq_s8(int8x16_t a) {
   5381   return vnegq_s8(a);
   5382 }
   5383 
   5384 // CHECK: test_vnegq_s16
   5385 // CHECK: vneg.s16 q{{[0-9]+}}, q{{[0-9]+}}
   5386 int16x8_t test_vnegq_s16(int16x8_t a) {
   5387   return vnegq_s16(a);
   5388 }
   5389 
   5390 // CHECK: test_vnegq_s32
   5391 // CHECK: vneg.s32 q{{[0-9]+}}, q{{[0-9]+}}
   5392 int32x4_t test_vnegq_s32(int32x4_t a) {
   5393   return vnegq_s32(a);
   5394 }
   5395 
   5396 // CHECK: test_vnegq_f32
   5397 // CHECK: vneg.f32 q{{[0-9]+}}, q{{[0-9]+}}
   5398 float32x4_t test_vnegq_f32(float32x4_t a) {
   5399   return vnegq_f32(a);
   5400 }
   5401 
   5402 
   5403 // CHECK: test_vorn_s8
   5404 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5405 int8x8_t test_vorn_s8(int8x8_t a, int8x8_t b) {
   5406   return vorn_s8(a, b);
   5407 }
   5408 
   5409 // CHECK: test_vorn_s16
   5410 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5411 int16x4_t test_vorn_s16(int16x4_t a, int16x4_t b) {
   5412   return vorn_s16(a, b);
   5413 }
   5414 
   5415 // CHECK: test_vorn_s32
   5416 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5417 int32x2_t test_vorn_s32(int32x2_t a, int32x2_t b) {
   5418   return vorn_s32(a, b);
   5419 }
   5420 
   5421 // CHECK: test_vorn_s64
   5422 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5423 int64x1_t test_vorn_s64(int64x1_t a, int64x1_t b) {
   5424   return vorn_s64(a, b);
   5425 }
   5426 
   5427 // CHECK: test_vorn_u8
   5428 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5429 uint8x8_t test_vorn_u8(uint8x8_t a, uint8x8_t b) {
   5430   return vorn_u8(a, b);
   5431 }
   5432 
   5433 // CHECK: test_vorn_u16
   5434 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5435 uint16x4_t test_vorn_u16(uint16x4_t a, uint16x4_t b) {
   5436   return vorn_u16(a, b);
   5437 }
   5438 
   5439 // CHECK: test_vorn_u32
   5440 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5441 uint32x2_t test_vorn_u32(uint32x2_t a, uint32x2_t b) {
   5442   return vorn_u32(a, b);
   5443 }
   5444 
   5445 // CHECK: test_vorn_u64
   5446 // CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5447 uint64x1_t test_vorn_u64(uint64x1_t a, uint64x1_t b) {
   5448   return vorn_u64(a, b);
   5449 }
   5450 
   5451 // CHECK: test_vornq_s8
   5452 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5453 int8x16_t test_vornq_s8(int8x16_t a, int8x16_t b) {
   5454   return vornq_s8(a, b);
   5455 }
   5456 
   5457 // CHECK: test_vornq_s16
   5458 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5459 int16x8_t test_vornq_s16(int16x8_t a, int16x8_t b) {
   5460   return vornq_s16(a, b);
   5461 }
   5462 
   5463 // CHECK: test_vornq_s32
   5464 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5465 int32x4_t test_vornq_s32(int32x4_t a, int32x4_t b) {
   5466   return vornq_s32(a, b);
   5467 }
   5468 
   5469 // CHECK: test_vornq_s64
   5470 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5471 int64x2_t test_vornq_s64(int64x2_t a, int64x2_t b) {
   5472   return vornq_s64(a, b);
   5473 }
   5474 
   5475 // CHECK: test_vornq_u8
   5476 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5477 uint8x16_t test_vornq_u8(uint8x16_t a, uint8x16_t b) {
   5478   return vornq_u8(a, b);
   5479 }
   5480 
   5481 // CHECK: test_vornq_u16
   5482 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5483 uint16x8_t test_vornq_u16(uint16x8_t a, uint16x8_t b) {
   5484   return vornq_u16(a, b);
   5485 }
   5486 
   5487 // CHECK: test_vornq_u32
   5488 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5489 uint32x4_t test_vornq_u32(uint32x4_t a, uint32x4_t b) {
   5490   return vornq_u32(a, b);
   5491 }
   5492 
   5493 // CHECK: test_vornq_u64
   5494 // CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5495 uint64x2_t test_vornq_u64(uint64x2_t a, uint64x2_t b) {
   5496   return vornq_u64(a, b);
   5497 }
   5498 
   5499 
   5500 // CHECK: test_vorr_s8
   5501 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5502 int8x8_t test_vorr_s8(int8x8_t a, int8x8_t b) {
   5503   return vorr_s8(a, b);
   5504 }
   5505 
   5506 // CHECK: test_vorr_s16
   5507 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5508 int16x4_t test_vorr_s16(int16x4_t a, int16x4_t b) {
   5509   return vorr_s16(a, b);
   5510 }
   5511 
   5512 // CHECK: test_vorr_s32
   5513 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5514 int32x2_t test_vorr_s32(int32x2_t a, int32x2_t b) {
   5515   return vorr_s32(a, b);
   5516 }
   5517 
   5518 // CHECK: test_vorr_s64
   5519 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5520 int64x1_t test_vorr_s64(int64x1_t a, int64x1_t b) {
   5521   return vorr_s64(a, b);
   5522 }
   5523 
   5524 // CHECK: test_vorr_u8
   5525 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5526 uint8x8_t test_vorr_u8(uint8x8_t a, uint8x8_t b) {
   5527   return vorr_u8(a, b);
   5528 }
   5529 
   5530 // CHECK: test_vorr_u16
   5531 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5532 uint16x4_t test_vorr_u16(uint16x4_t a, uint16x4_t b) {
   5533   return vorr_u16(a, b);
   5534 }
   5535 
   5536 // CHECK: test_vorr_u32
   5537 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5538 uint32x2_t test_vorr_u32(uint32x2_t a, uint32x2_t b) {
   5539   return vorr_u32(a, b);
   5540 }
   5541 
   5542 // CHECK: test_vorr_u64
   5543 // CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5544 uint64x1_t test_vorr_u64(uint64x1_t a, uint64x1_t b) {
   5545   return vorr_u64(a, b);
   5546 }
   5547 
   5548 // CHECK: test_vorrq_s8
   5549 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5550 int8x16_t test_vorrq_s8(int8x16_t a, int8x16_t b) {
   5551   return vorrq_s8(a, b);
   5552 }
   5553 
   5554 // CHECK: test_vorrq_s16
   5555 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5556 int16x8_t test_vorrq_s16(int16x8_t a, int16x8_t b) {
   5557   return vorrq_s16(a, b);
   5558 }
   5559 
   5560 // CHECK: test_vorrq_s32
   5561 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5562 int32x4_t test_vorrq_s32(int32x4_t a, int32x4_t b) {
   5563   return vorrq_s32(a, b);
   5564 }
   5565 
   5566 // CHECK: test_vorrq_s64
   5567 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5568 int64x2_t test_vorrq_s64(int64x2_t a, int64x2_t b) {
   5569   return vorrq_s64(a, b);
   5570 }
   5571 
   5572 // CHECK: test_vorrq_u8
   5573 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5574 uint8x16_t test_vorrq_u8(uint8x16_t a, uint8x16_t b) {
   5575   return vorrq_u8(a, b);
   5576 }
   5577 
   5578 // CHECK: test_vorrq_u16
   5579 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5580 uint16x8_t test_vorrq_u16(uint16x8_t a, uint16x8_t b) {
   5581   return vorrq_u16(a, b);
   5582 }
   5583 
   5584 // CHECK: test_vorrq_u32
   5585 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5586 uint32x4_t test_vorrq_u32(uint32x4_t a, uint32x4_t b) {
   5587   return vorrq_u32(a, b);
   5588 }
   5589 
   5590 // CHECK: test_vorrq_u64
   5591 // CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5592 uint64x2_t test_vorrq_u64(uint64x2_t a, uint64x2_t b) {
   5593   return vorrq_u64(a, b);
   5594 }
   5595 
   5596 
   5597 // CHECK: test_vpadal_s8
   5598 // CHECK: vpadal.s8 d{{[0-9]+}}, d{{[0-9]+}}
   5599 int16x4_t test_vpadal_s8(int16x4_t a, int8x8_t b) {
   5600   return vpadal_s8(a, b);
   5601 }
   5602 
   5603 // CHECK: test_vpadal_s16
   5604 // CHECK: vpadal.s16 d{{[0-9]+}}, d{{[0-9]+}}
   5605 int32x2_t test_vpadal_s16(int32x2_t a, int16x4_t b) {
   5606   return vpadal_s16(a, b);
   5607 }
   5608 
   5609 // CHECK: test_vpadal_s32
   5610 // CHECK: vpadal.s32 d{{[0-9]+}}, d{{[0-9]+}}
   5611 int64x1_t test_vpadal_s32(int64x1_t a, int32x2_t b) {
   5612   return vpadal_s32(a, b);
   5613 }
   5614 
   5615 // CHECK: test_vpadal_u8
   5616 // CHECK: vpadal.u8 d{{[0-9]+}}, d{{[0-9]+}}
   5617 uint16x4_t test_vpadal_u8(uint16x4_t a, uint8x8_t b) {
   5618   return vpadal_u8(a, b);
   5619 }
   5620 
   5621 // CHECK: test_vpadal_u16
   5622 // CHECK: vpadal.u16 d{{[0-9]+}}, d{{[0-9]+}}
   5623 uint32x2_t test_vpadal_u16(uint32x2_t a, uint16x4_t b) {
   5624   return vpadal_u16(a, b);
   5625 }
   5626 
   5627 // CHECK: test_vpadal_u32
   5628 // CHECK: vpadal.u32 d{{[0-9]+}}, d{{[0-9]+}}
   5629 uint64x1_t test_vpadal_u32(uint64x1_t a, uint32x2_t b) {
   5630   return vpadal_u32(a, b);
   5631 }
   5632 
   5633 // CHECK: test_vpadalq_s8
   5634 // CHECK: vpadal.s8 q{{[0-9]+}}, q{{[0-9]+}}
   5635 int16x8_t test_vpadalq_s8(int16x8_t a, int8x16_t b) {
   5636   return vpadalq_s8(a, b);
   5637 }
   5638 
   5639 // CHECK: test_vpadalq_s16
   5640 // CHECK: vpadal.s16 q{{[0-9]+}}, q{{[0-9]+}}
   5641 int32x4_t test_vpadalq_s16(int32x4_t a, int16x8_t b) {
   5642   return vpadalq_s16(a, b);
   5643 }
   5644 
   5645 // CHECK: test_vpadalq_s32
   5646 // CHECK: vpadal.s32 q{{[0-9]+}}, q{{[0-9]+}}
   5647 int64x2_t test_vpadalq_s32(int64x2_t a, int32x4_t b) {
   5648   return vpadalq_s32(a, b);
   5649 }
   5650 
   5651 // CHECK: test_vpadalq_u8
   5652 // CHECK: vpadal.u8 q{{[0-9]+}}, q{{[0-9]+}}
   5653 uint16x8_t test_vpadalq_u8(uint16x8_t a, uint8x16_t b) {
   5654   return vpadalq_u8(a, b);
   5655 }
   5656 
   5657 // CHECK: test_vpadalq_u16
   5658 // CHECK: vpadal.u16 q{{[0-9]+}}, q{{[0-9]+}}
   5659 uint32x4_t test_vpadalq_u16(uint32x4_t a, uint16x8_t b) {
   5660   return vpadalq_u16(a, b);
   5661 }
   5662 
   5663 // CHECK: test_vpadalq_u32
   5664 // CHECK: vpadal.u32 q{{[0-9]+}}, q{{[0-9]+}}
   5665 uint64x2_t test_vpadalq_u32(uint64x2_t a, uint32x4_t b) {
   5666   return vpadalq_u32(a, b);
   5667 }
   5668 
   5669 
   5670 // CHECK: test_vpadd_s8
   5671 // CHECK: vpadd.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5672 int8x8_t test_vpadd_s8(int8x8_t a, int8x8_t b) {
   5673   return vpadd_s8(a, b);
   5674 }
   5675 
   5676 // CHECK: test_vpadd_s16
   5677 // CHECK: vpadd.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5678 int16x4_t test_vpadd_s16(int16x4_t a, int16x4_t b) {
   5679   return vpadd_s16(a, b);
   5680 }
   5681 
   5682 // CHECK: test_vpadd_s32
   5683 // CHECK: vpadd.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5684 int32x2_t test_vpadd_s32(int32x2_t a, int32x2_t b) {
   5685   return vpadd_s32(a, b);
   5686 }
   5687 
   5688 // CHECK: test_vpadd_u8
   5689 // CHECK: vpadd.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5690 uint8x8_t test_vpadd_u8(uint8x8_t a, uint8x8_t b) {
   5691   return vpadd_u8(a, b);
   5692 }
   5693 
   5694 // CHECK: test_vpadd_u16
   5695 // CHECK: vpadd.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5696 uint16x4_t test_vpadd_u16(uint16x4_t a, uint16x4_t b) {
   5697   return vpadd_u16(a, b);
   5698 }
   5699 
   5700 // CHECK: test_vpadd_u32
   5701 // CHECK: vpadd.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5702 uint32x2_t test_vpadd_u32(uint32x2_t a, uint32x2_t b) {
   5703   return vpadd_u32(a, b);
   5704 }
   5705 
   5706 // CHECK: test_vpadd_f32
   5707 // CHECK: vpadd.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5708 float32x2_t test_vpadd_f32(float32x2_t a, float32x2_t b) {
   5709   return vpadd_f32(a, b);
   5710 }
   5711 
   5712 
   5713 // CHECK: test_vpaddl_s8
   5714 // CHECK: vpaddl.s8 d{{[0-9]+}}, d{{[0-9]+}}
   5715 int16x4_t test_vpaddl_s8(int8x8_t a) {
   5716   return vpaddl_s8(a);
   5717 }
   5718 
   5719 // CHECK: test_vpaddl_s16
   5720 // CHECK: vpaddl.s16 d{{[0-9]+}}, d{{[0-9]+}}
   5721 int32x2_t test_vpaddl_s16(int16x4_t a) {
   5722   return vpaddl_s16(a);
   5723 }
   5724 
   5725 // CHECK: test_vpaddl_s32
   5726 // CHECK: vpaddl.s32 d{{[0-9]+}}, d{{[0-9]+}}
   5727 int64x1_t test_vpaddl_s32(int32x2_t a) {
   5728   return vpaddl_s32(a);
   5729 }
   5730 
   5731 // CHECK: test_vpaddl_u8
   5732 // CHECK: vpaddl.u8 d{{[0-9]+}}, d{{[0-9]+}}
   5733 uint16x4_t test_vpaddl_u8(uint8x8_t a) {
   5734   return vpaddl_u8(a);
   5735 }
   5736 
   5737 // CHECK: test_vpaddl_u16
   5738 // CHECK: vpaddl.u16 d{{[0-9]+}}, d{{[0-9]+}}
   5739 uint32x2_t test_vpaddl_u16(uint16x4_t a) {
   5740   return vpaddl_u16(a);
   5741 }
   5742 
   5743 // CHECK: test_vpaddl_u32
   5744 // CHECK: vpaddl.u32 d{{[0-9]+}}, d{{[0-9]+}}
   5745 uint64x1_t test_vpaddl_u32(uint32x2_t a) {
   5746   return vpaddl_u32(a);
   5747 }
   5748 
   5749 // CHECK: test_vpaddlq_s8
   5750 // CHECK: vpaddl.s8 q{{[0-9]+}}, q{{[0-9]+}}
   5751 int16x8_t test_vpaddlq_s8(int8x16_t a) {
   5752   return vpaddlq_s8(a);
   5753 }
   5754 
   5755 // CHECK: test_vpaddlq_s16
   5756 // CHECK: vpaddl.s16 q{{[0-9]+}}, q{{[0-9]+}}
   5757 int32x4_t test_vpaddlq_s16(int16x8_t a) {
   5758   return vpaddlq_s16(a);
   5759 }
   5760 
   5761 // CHECK: test_vpaddlq_s32
   5762 // CHECK: vpaddl.s32 q{{[0-9]+}}, q{{[0-9]+}}
   5763 int64x2_t test_vpaddlq_s32(int32x4_t a) {
   5764   return vpaddlq_s32(a);
   5765 }
   5766 
   5767 // CHECK: test_vpaddlq_u8
   5768 // CHECK: vpaddl.u8 q{{[0-9]+}}, q{{[0-9]+}}
   5769 uint16x8_t test_vpaddlq_u8(uint8x16_t a) {
   5770   return vpaddlq_u8(a);
   5771 }
   5772 
   5773 // CHECK: test_vpaddlq_u16
   5774 // CHECK: vpaddl.u16 q{{[0-9]+}}, q{{[0-9]+}}
   5775 uint32x4_t test_vpaddlq_u16(uint16x8_t a) {
   5776   return vpaddlq_u16(a);
   5777 }
   5778 
   5779 // CHECK: test_vpaddlq_u32
   5780 // CHECK: vpaddl.u32 q{{[0-9]+}}, q{{[0-9]+}}
   5781 uint64x2_t test_vpaddlq_u32(uint32x4_t a) {
   5782   return vpaddlq_u32(a);
   5783 }
   5784 
   5785 
   5786 // CHECK: test_vpmax_s8
   5787 // CHECK: vpmax.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5788 int8x8_t test_vpmax_s8(int8x8_t a, int8x8_t b) {
   5789   return vpmax_s8(a, b);
   5790 }
   5791 
   5792 // CHECK: test_vpmax_s16
   5793 // CHECK: vpmax.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5794 int16x4_t test_vpmax_s16(int16x4_t a, int16x4_t b) {
   5795   return vpmax_s16(a, b);
   5796 }
   5797 
   5798 // CHECK: test_vpmax_s32
   5799 // CHECK: vpmax.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5800 int32x2_t test_vpmax_s32(int32x2_t a, int32x2_t b) {
   5801   return vpmax_s32(a, b);
   5802 }
   5803 
   5804 // CHECK: test_vpmax_u8
   5805 // CHECK: vpmax.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5806 uint8x8_t test_vpmax_u8(uint8x8_t a, uint8x8_t b) {
   5807   return vpmax_u8(a, b);
   5808 }
   5809 
   5810 // CHECK: test_vpmax_u16
   5811 // CHECK: vpmax.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5812 uint16x4_t test_vpmax_u16(uint16x4_t a, uint16x4_t b) {
   5813   return vpmax_u16(a, b);
   5814 }
   5815 
   5816 // CHECK: test_vpmax_u32
   5817 // CHECK: vpmax.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5818 uint32x2_t test_vpmax_u32(uint32x2_t a, uint32x2_t b) {
   5819   return vpmax_u32(a, b);
   5820 }
   5821 
   5822 // CHECK: test_vpmax_f32
   5823 // CHECK: vpmax.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5824 float32x2_t test_vpmax_f32(float32x2_t a, float32x2_t b) {
   5825   return vpmax_f32(a, b);
   5826 }
   5827 
   5828 
   5829 // CHECK: test_vpmin_s8
   5830 // CHECK: vpmin.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5831 int8x8_t test_vpmin_s8(int8x8_t a, int8x8_t b) {
   5832   return vpmin_s8(a, b);
   5833 }
   5834 
   5835 // CHECK: test_vpmin_s16
   5836 // CHECK: vpmin.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5837 int16x4_t test_vpmin_s16(int16x4_t a, int16x4_t b) {
   5838   return vpmin_s16(a, b);
   5839 }
   5840 
   5841 // CHECK: test_vpmin_s32
   5842 // CHECK: vpmin.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5843 int32x2_t test_vpmin_s32(int32x2_t a, int32x2_t b) {
   5844   return vpmin_s32(a, b);
   5845 }
   5846 
   5847 // CHECK: test_vpmin_u8
   5848 // CHECK: vpmin.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5849 uint8x8_t test_vpmin_u8(uint8x8_t a, uint8x8_t b) {
   5850   return vpmin_u8(a, b);
   5851 }
   5852 
   5853 // CHECK: test_vpmin_u16
   5854 // CHECK: vpmin.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5855 uint16x4_t test_vpmin_u16(uint16x4_t a, uint16x4_t b) {
   5856   return vpmin_u16(a, b);
   5857 }
   5858 
   5859 // CHECK: test_vpmin_u32
   5860 // CHECK: vpmin.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5861 uint32x2_t test_vpmin_u32(uint32x2_t a, uint32x2_t b) {
   5862   return vpmin_u32(a, b);
   5863 }
   5864 
   5865 // CHECK: test_vpmin_f32
   5866 // CHECK: vpmin.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5867 float32x2_t test_vpmin_f32(float32x2_t a, float32x2_t b) {
   5868   return vpmin_f32(a, b);
   5869 }
   5870 
   5871 
   5872 // CHECK: test_vqabs_s8
   5873 // CHECK: vqabs.s8 d{{[0-9]+}}, d{{[0-9]+}}
   5874 int8x8_t test_vqabs_s8(int8x8_t a) {
   5875   return vqabs_s8(a);
   5876 }
   5877 
   5878 // CHECK: test_vqabs_s16
   5879 // CHECK: vqabs.s16 d{{[0-9]+}}, d{{[0-9]+}}
   5880 int16x4_t test_vqabs_s16(int16x4_t a) {
   5881   return vqabs_s16(a);
   5882 }
   5883 
   5884 // CHECK: test_vqabs_s32
   5885 // CHECK: vqabs.s32 d{{[0-9]+}}, d{{[0-9]+}}
   5886 int32x2_t test_vqabs_s32(int32x2_t a) {
   5887   return vqabs_s32(a);
   5888 }
   5889 
   5890 // CHECK: test_vqabsq_s8
   5891 // CHECK: vqabs.s8 q{{[0-9]+}}, q{{[0-9]+}}
   5892 int8x16_t test_vqabsq_s8(int8x16_t a) {
   5893   return vqabsq_s8(a);
   5894 }
   5895 
   5896 // CHECK: test_vqabsq_s16
   5897 // CHECK: vqabs.s16 q{{[0-9]+}}, q{{[0-9]+}}
   5898 int16x8_t test_vqabsq_s16(int16x8_t a) {
   5899   return vqabsq_s16(a);
   5900 }
   5901 
   5902 // CHECK: test_vqabsq_s32
   5903 // CHECK: vqabs.s32 q{{[0-9]+}}, q{{[0-9]+}}
   5904 int32x4_t test_vqabsq_s32(int32x4_t a) {
   5905   return vqabsq_s32(a);
   5906 }
   5907 
   5908 
   5909 // CHECK: test_vqadd_s8
   5910 // CHECK: vqadd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5911 int8x8_t test_vqadd_s8(int8x8_t a, int8x8_t b) {
   5912   return vqadd_s8(a, b);
   5913 }
   5914 
   5915 // CHECK: test_vqadd_s16
   5916 // CHECK: vqadd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5917 int16x4_t test_vqadd_s16(int16x4_t a, int16x4_t b) {
   5918   return vqadd_s16(a, b);
   5919 }
   5920 
   5921 // CHECK: test_vqadd_s32
   5922 // CHECK: vqadd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5923 int32x2_t test_vqadd_s32(int32x2_t a, int32x2_t b) {
   5924   return vqadd_s32(a, b);
   5925 }
   5926 
   5927 // CHECK: test_vqadd_s64
   5928 // CHECK: vqadd.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5929 int64x1_t test_vqadd_s64(int64x1_t a, int64x1_t b) {
   5930   return vqadd_s64(a, b);
   5931 }
   5932 
   5933 // CHECK: test_vqadd_u8
   5934 // CHECK: vqadd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5935 uint8x8_t test_vqadd_u8(uint8x8_t a, uint8x8_t b) {
   5936   return vqadd_u8(a, b);
   5937 }
   5938 
   5939 // CHECK: test_vqadd_u16
   5940 // CHECK: vqadd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5941 uint16x4_t test_vqadd_u16(uint16x4_t a, uint16x4_t b) {
   5942   return vqadd_u16(a, b);
   5943 }
   5944 
   5945 // CHECK: test_vqadd_u32
   5946 // CHECK: vqadd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5947 uint32x2_t test_vqadd_u32(uint32x2_t a, uint32x2_t b) {
   5948   return vqadd_u32(a, b);
   5949 }
   5950 
   5951 // CHECK: test_vqadd_u64
   5952 // CHECK: vqadd.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   5953 uint64x1_t test_vqadd_u64(uint64x1_t a, uint64x1_t b) {
   5954   return vqadd_u64(a, b);
   5955 }
   5956 
   5957 // CHECK: test_vqaddq_s8
   5958 // CHECK: vqadd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5959 int8x16_t test_vqaddq_s8(int8x16_t a, int8x16_t b) {
   5960   return vqaddq_s8(a, b);
   5961 }
   5962 
   5963 // CHECK: test_vqaddq_s16
   5964 // CHECK: vqadd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5965 int16x8_t test_vqaddq_s16(int16x8_t a, int16x8_t b) {
   5966   return vqaddq_s16(a, b);
   5967 }
   5968 
   5969 // CHECK: test_vqaddq_s32
   5970 // CHECK: vqadd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5971 int32x4_t test_vqaddq_s32(int32x4_t a, int32x4_t b) {
   5972   return vqaddq_s32(a, b);
   5973 }
   5974 
   5975 // CHECK: test_vqaddq_s64
   5976 // CHECK: vqadd.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5977 int64x2_t test_vqaddq_s64(int64x2_t a, int64x2_t b) {
   5978   return vqaddq_s64(a, b);
   5979 }
   5980 
   5981 // CHECK: test_vqaddq_u8
   5982 // CHECK: vqadd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5983 uint8x16_t test_vqaddq_u8(uint8x16_t a, uint8x16_t b) {
   5984   return vqaddq_u8(a, b);
   5985 }
   5986 
   5987 // CHECK: test_vqaddq_u16
   5988 // CHECK: vqadd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5989 uint16x8_t test_vqaddq_u16(uint16x8_t a, uint16x8_t b) {
   5990   return vqaddq_u16(a, b);
   5991 }
   5992 
   5993 // CHECK: test_vqaddq_u32
   5994 // CHECK: vqadd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   5995 uint32x4_t test_vqaddq_u32(uint32x4_t a, uint32x4_t b) {
   5996   return vqaddq_u32(a, b);
   5997 }
   5998 
   5999 // CHECK: test_vqaddq_u64
   6000 // CHECK: vqadd.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6001 uint64x2_t test_vqaddq_u64(uint64x2_t a, uint64x2_t b) {
   6002   return vqaddq_u64(a, b);
   6003 }
   6004 
   6005 
   6006 // CHECK: test_vqdmlal_s16
   6007 // CHECK: vqdmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6008 int32x4_t test_vqdmlal_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
   6009   return vqdmlal_s16(a, b, c);
   6010 }
   6011 
   6012 // CHECK: test_vqdmlal_s32
   6013 // CHECK: vqdmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6014 int64x2_t test_vqdmlal_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
   6015   return vqdmlal_s32(a, b, c);
   6016 }
   6017 
   6018 
   6019 // CHECK: test_vqdmlal_lane_s16
   6020 // CHECK: vqdmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   6021 int32x4_t test_vqdmlal_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
   6022   return vqdmlal_lane_s16(a, b, c, 3);
   6023 }
   6024 
   6025 // CHECK: test_vqdmlal_lane_s32
   6026 // CHECK: vqdmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   6027 int64x2_t test_vqdmlal_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
   6028   return vqdmlal_lane_s32(a, b, c, 1);
   6029 }
   6030 
   6031 
   6032 // CHECK: test_vqdmlal_n_s16
   6033 // CHECK: vqdmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6034 int32x4_t test_vqdmlal_n_s16(int32x4_t a, int16x4_t b, int16_t c) {
   6035   return vqdmlal_n_s16(a, b, c);
   6036 }
   6037 
   6038 // CHECK: test_vqdmlal_n_s32
   6039 // CHECK: vqdmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6040 int64x2_t test_vqdmlal_n_s32(int64x2_t a, int32x2_t b, int32_t c) {
   6041   return vqdmlal_n_s32(a, b, c);
   6042 }
   6043 
   6044 
   6045 // CHECK: test_vqdmlsl_s16
   6046 // CHECK: vqdmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6047 int32x4_t test_vqdmlsl_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
   6048   return vqdmlsl_s16(a, b, c);
   6049 }
   6050 
   6051 // CHECK: test_vqdmlsl_s32
   6052 // CHECK: vqdmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6053 int64x2_t test_vqdmlsl_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
   6054   return vqdmlsl_s32(a, b, c);
   6055 }
   6056 
   6057 
   6058 // CHECK: test_vqdmlsl_lane_s16
   6059 // CHECK: vqdmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   6060 int32x4_t test_vqdmlsl_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) {
   6061   return vqdmlsl_lane_s16(a, b, c, 3);
   6062 }
   6063 
   6064 // CHECK: test_vqdmlsl_lane_s32
   6065 // CHECK: vqdmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   6066 int64x2_t test_vqdmlsl_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) {
   6067   return vqdmlsl_lane_s32(a, b, c, 1);
   6068 }
   6069 
   6070 
   6071 // CHECK: test_vqdmlsl_n_s16
   6072 // CHECK: vqdmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6073 int32x4_t test_vqdmlsl_n_s16(int32x4_t a, int16x4_t b, int16_t c) {
   6074   return vqdmlsl_n_s16(a, b, c);
   6075 }
   6076 
   6077 // CHECK: test_vqdmlsl_n_s32
   6078 // CHECK: vqdmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6079 int64x2_t test_vqdmlsl_n_s32(int64x2_t a, int32x2_t b, int32_t c) {
   6080   return vqdmlsl_n_s32(a, b, c);
   6081 }
   6082 
   6083 
   6084 // CHECK: test_vqdmulh_s16
   6085 // CHECK: vqdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6086 int16x4_t test_vqdmulh_s16(int16x4_t a, int16x4_t b) {
   6087   return vqdmulh_s16(a, b);
   6088 }
   6089 
   6090 // CHECK: test_vqdmulh_s32
   6091 // CHECK: vqdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6092 int32x2_t test_vqdmulh_s32(int32x2_t a, int32x2_t b) {
   6093   return vqdmulh_s32(a, b);
   6094 }
   6095 
   6096 // CHECK: test_vqdmulhq_s16
   6097 // CHECK: vqdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6098 int16x8_t test_vqdmulhq_s16(int16x8_t a, int16x8_t b) {
   6099   return vqdmulhq_s16(a, b);
   6100 }
   6101 
   6102 // CHECK: test_vqdmulhq_s32
   6103 // CHECK: vqdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6104 int32x4_t test_vqdmulhq_s32(int32x4_t a, int32x4_t b) {
   6105   return vqdmulhq_s32(a, b);
   6106 }
   6107 
   6108 
   6109 // CHECK: test_vqdmulh_lane_s16
   6110 // CHECK: vqdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   6111 int16x4_t test_vqdmulh_lane_s16(int16x4_t a, int16x4_t b) {
   6112   return vqdmulh_lane_s16(a, b, 3);
   6113 }
   6114 
   6115 // CHECK: test_vqdmulh_lane_s32
   6116 // CHECK: vqdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   6117 int32x2_t test_vqdmulh_lane_s32(int32x2_t a, int32x2_t b) {
   6118   return vqdmulh_lane_s32(a, b, 1);
   6119 }
   6120 
   6121 // CHECK: test_vqdmulhq_lane_s16
   6122 // CHECK: vqdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   6123 int16x8_t test_vqdmulhq_lane_s16(int16x8_t a, int16x4_t b) {
   6124   return vqdmulhq_lane_s16(a, b, 3);
   6125 }
   6126 
   6127 // CHECK: test_vqdmulhq_lane_s32
   6128 // CHECK: vqdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   6129 int32x4_t test_vqdmulhq_lane_s32(int32x4_t a, int32x2_t b) {
   6130   return vqdmulhq_lane_s32(a, b, 1);
   6131 }
   6132 
   6133 
   6134 // CHECK: test_vqdmulh_n_s16
   6135 // CHECK: vqdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6136 int16x4_t test_vqdmulh_n_s16(int16x4_t a, int16_t b) {
   6137   return vqdmulh_n_s16(a, b);
   6138 }
   6139 
   6140 // CHECK: test_vqdmulh_n_s32
   6141 // CHECK: vqdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6142 int32x2_t test_vqdmulh_n_s32(int32x2_t a, int32_t b) {
   6143   return vqdmulh_n_s32(a, b);
   6144 }
   6145 
   6146 // CHECK: test_vqdmulhq_n_s16
   6147 // CHECK: vqdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6148 int16x8_t test_vqdmulhq_n_s16(int16x8_t a, int16_t b) {
   6149   return vqdmulhq_n_s16(a, b);
   6150 }
   6151 
   6152 // CHECK: test_vqdmulhq_n_s32
   6153 // CHECK: vqdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6154 int32x4_t test_vqdmulhq_n_s32(int32x4_t a, int32_t b) {
   6155   return vqdmulhq_n_s32(a, b);
   6156 }
   6157 
   6158 
   6159 // CHECK: test_vqdmull_s16
   6160 // CHECK: vqdmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6161 int32x4_t test_vqdmull_s16(int16x4_t a, int16x4_t b) {
   6162   return vqdmull_s16(a, b);
   6163 }
   6164 
   6165 // CHECK: test_vqdmull_s32
   6166 // CHECK: vqdmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6167 int64x2_t test_vqdmull_s32(int32x2_t a, int32x2_t b) {
   6168   return vqdmull_s32(a, b);
   6169 }
   6170 
   6171 
   6172 // CHECK: test_vqdmull_lane_s16
   6173 // CHECK: vqdmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   6174 int32x4_t test_vqdmull_lane_s16(int16x4_t a, int16x4_t b) {
   6175   return vqdmull_lane_s16(a, b, 3);
   6176 }
   6177 
   6178 // CHECK: test_vqdmull_lane_s32
   6179 // CHECK: vqdmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   6180 int64x2_t test_vqdmull_lane_s32(int32x2_t a, int32x2_t b) {
   6181   return vqdmull_lane_s32(a, b, 1);
   6182 }
   6183 
   6184 
   6185 // CHECK: test_vqdmull_n_s16
   6186 // CHECK: vqdmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6187 int32x4_t test_vqdmull_n_s16(int16x4_t a, int16_t b) {
   6188   return vqdmull_n_s16(a, b);
   6189 }
   6190 
   6191 // CHECK: test_vqdmull_n_s32
   6192 // CHECK: vqdmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6193 int64x2_t test_vqdmull_n_s32(int32x2_t a, int32_t b) {
   6194   return vqdmull_n_s32(a, b);
   6195 }
   6196 
   6197 
   6198 // CHECK: test_vqmovn_s16
   6199 // CHECK: vqmovn.s16 d{{[0-9]+}}, q{{[0-9]+}}
   6200 int8x8_t test_vqmovn_s16(int16x8_t a) {
   6201   return vqmovn_s16(a);
   6202 }
   6203 
   6204 // CHECK: test_vqmovn_s32
   6205 // CHECK: vqmovn.s32 d{{[0-9]+}}, q{{[0-9]+}}
   6206 int16x4_t test_vqmovn_s32(int32x4_t a) {
   6207   return vqmovn_s32(a);
   6208 }
   6209 
   6210 // CHECK: test_vqmovn_s64
   6211 // CHECK: vqmovn.s64 d{{[0-9]+}}, q{{[0-9]+}}
   6212 int32x2_t test_vqmovn_s64(int64x2_t a) {
   6213   return vqmovn_s64(a);
   6214 }
   6215 
   6216 // CHECK: test_vqmovn_u16
   6217 // CHECK: vqmovn.u16 d{{[0-9]+}}, q{{[0-9]+}}
   6218 uint8x8_t test_vqmovn_u16(uint16x8_t a) {
   6219   return vqmovn_u16(a);
   6220 }
   6221 
   6222 // CHECK: test_vqmovn_u32
   6223 // CHECK: vqmovn.u32 d{{[0-9]+}}, q{{[0-9]+}}
   6224 uint16x4_t test_vqmovn_u32(uint32x4_t a) {
   6225   return vqmovn_u32(a);
   6226 }
   6227 
   6228 // CHECK: test_vqmovn_u64
   6229 // CHECK: vqmovn.u64 d{{[0-9]+}}, q{{[0-9]+}}
   6230 uint32x2_t test_vqmovn_u64(uint64x2_t a) {
   6231   return vqmovn_u64(a);
   6232 }
   6233 
   6234 
   6235 // CHECK: test_vqmovun_s16
   6236 // CHECK: vqmovun.s16 d{{[0-9]+}}, q{{[0-9]+}}
   6237 uint8x8_t test_vqmovun_s16(int16x8_t a) {
   6238   return vqmovun_s16(a);
   6239 }
   6240 
   6241 // CHECK: test_vqmovun_s32
   6242 // CHECK: vqmovun.s32 d{{[0-9]+}}, q{{[0-9]+}}
   6243 uint16x4_t test_vqmovun_s32(int32x4_t a) {
   6244   return vqmovun_s32(a);
   6245 }
   6246 
   6247 // CHECK: test_vqmovun_s64
   6248 // CHECK: vqmovun.s64 d{{[0-9]+}}, q{{[0-9]+}}
   6249 uint32x2_t test_vqmovun_s64(int64x2_t a) {
   6250   return vqmovun_s64(a);
   6251 }
   6252 
   6253 
   6254 // CHECK: test_vqneg_s8
   6255 // CHECK: vqneg.s8 d{{[0-9]+}}, d{{[0-9]+}}
   6256 int8x8_t test_vqneg_s8(int8x8_t a) {
   6257   return vqneg_s8(a);
   6258 }
   6259 
   6260 // CHECK: test_vqneg_s16
   6261 // CHECK: vqneg.s16 d{{[0-9]+}}, d{{[0-9]+}}
   6262 int16x4_t test_vqneg_s16(int16x4_t a) {
   6263   return vqneg_s16(a);
   6264 }
   6265 
   6266 // CHECK: test_vqneg_s32
   6267 // CHECK: vqneg.s32 d{{[0-9]+}}, d{{[0-9]+}}
   6268 int32x2_t test_vqneg_s32(int32x2_t a) {
   6269   return vqneg_s32(a);
   6270 }
   6271 
   6272 // CHECK: test_vqnegq_s8
   6273 // CHECK: vqneg.s8 q{{[0-9]+}}, q{{[0-9]+}}
   6274 int8x16_t test_vqnegq_s8(int8x16_t a) {
   6275   return vqnegq_s8(a);
   6276 }
   6277 
   6278 // CHECK: test_vqnegq_s16
   6279 // CHECK: vqneg.s16 q{{[0-9]+}}, q{{[0-9]+}}
   6280 int16x8_t test_vqnegq_s16(int16x8_t a) {
   6281   return vqnegq_s16(a);
   6282 }
   6283 
   6284 // CHECK: test_vqnegq_s32
   6285 // CHECK: vqneg.s32 q{{[0-9]+}}, q{{[0-9]+}}
   6286 int32x4_t test_vqnegq_s32(int32x4_t a) {
   6287   return vqnegq_s32(a);
   6288 }
   6289 
   6290 
   6291 // CHECK: test_vqrdmulh_s16
   6292 // CHECK: vqrdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6293 int16x4_t test_vqrdmulh_s16(int16x4_t a, int16x4_t b) {
   6294   return vqrdmulh_s16(a, b);
   6295 }
   6296 
   6297 // CHECK: test_vqrdmulh_s32
   6298 // CHECK: vqrdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6299 int32x2_t test_vqrdmulh_s32(int32x2_t a, int32x2_t b) {
   6300   return vqrdmulh_s32(a, b);
   6301 }
   6302 
   6303 // CHECK: test_vqrdmulhq_s16
   6304 // CHECK: vqrdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6305 int16x8_t test_vqrdmulhq_s16(int16x8_t a, int16x8_t b) {
   6306   return vqrdmulhq_s16(a, b);
   6307 }
   6308 
   6309 // CHECK: test_vqrdmulhq_s32
   6310 // CHECK: vqrdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6311 int32x4_t test_vqrdmulhq_s32(int32x4_t a, int32x4_t b) {
   6312   return vqrdmulhq_s32(a, b);
   6313 }
   6314 
   6315 
   6316 // CHECK: test_vqrdmulh_lane_s16
   6317 // CHECK: vqrdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   6318 int16x4_t test_vqrdmulh_lane_s16(int16x4_t a, int16x4_t b) {
   6319   return vqrdmulh_lane_s16(a, b, 3);
   6320 }
   6321 
   6322 // CHECK: test_vqrdmulh_lane_s32
   6323 // CHECK: vqrdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   6324 int32x2_t test_vqrdmulh_lane_s32(int32x2_t a, int32x2_t b) {
   6325   return vqrdmulh_lane_s32(a, b, 1);
   6326 }
   6327 
   6328 // CHECK: test_vqrdmulhq_lane_s16
   6329 // CHECK: vqrdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   6330 int16x8_t test_vqrdmulhq_lane_s16(int16x8_t a, int16x4_t b) {
   6331   return vqrdmulhq_lane_s16(a, b, 3);
   6332 }
   6333 
   6334 // CHECK: test_vqrdmulhq_lane_s32
   6335 // CHECK: vqrdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}]
   6336 int32x4_t test_vqrdmulhq_lane_s32(int32x4_t a, int32x2_t b) {
   6337   return vqrdmulhq_lane_s32(a, b, 1);
   6338 }
   6339 
   6340 
   6341 // CHECK: test_vqrdmulh_n_s16
   6342 // CHECK: vqrdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6343 int16x4_t test_vqrdmulh_n_s16(int16x4_t a, int16_t b) {
   6344   return vqrdmulh_n_s16(a, b);
   6345 }
   6346 
   6347 // CHECK: test_vqrdmulh_n_s32
   6348 // CHECK: vqrdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6349 int32x2_t test_vqrdmulh_n_s32(int32x2_t a, int32_t b) {
   6350   return vqrdmulh_n_s32(a, b);
   6351 }
   6352 
   6353 // CHECK: test_vqrdmulhq_n_s16
   6354 // CHECK: vqrdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6355 int16x8_t test_vqrdmulhq_n_s16(int16x8_t a, int16_t b) {
   6356   return vqrdmulhq_n_s16(a, b);
   6357 }
   6358 
   6359 // CHECK: test_vqrdmulhq_n_s32
   6360 // CHECK: vqrdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6361 int32x4_t test_vqrdmulhq_n_s32(int32x4_t a, int32_t b) {
   6362   return vqrdmulhq_n_s32(a, b);
   6363 }
   6364 
   6365 
   6366 // CHECK: test_vqrshl_s8
   6367 // CHECK: vqrshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6368 int8x8_t test_vqrshl_s8(int8x8_t a, int8x8_t b) {
   6369   return vqrshl_s8(a, b);
   6370 }
   6371 
   6372 // CHECK: test_vqrshl_s16
   6373 // CHECK: vqrshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6374 int16x4_t test_vqrshl_s16(int16x4_t a, int16x4_t b) {
   6375   return vqrshl_s16(a, b);
   6376 }
   6377 
   6378 // CHECK: test_vqrshl_s32
   6379 // CHECK: vqrshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6380 int32x2_t test_vqrshl_s32(int32x2_t a, int32x2_t b) {
   6381   return vqrshl_s32(a, b);
   6382 }
   6383 
   6384 // CHECK: test_vqrshl_s64
   6385 // CHECK: vqrshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6386 int64x1_t test_vqrshl_s64(int64x1_t a, int64x1_t b) {
   6387   return vqrshl_s64(a, b);
   6388 }
   6389 
   6390 // CHECK: test_vqrshl_u8
   6391 // CHECK: vqrshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6392 uint8x8_t test_vqrshl_u8(uint8x8_t a, int8x8_t b) {
   6393   return vqrshl_u8(a, b);
   6394 }
   6395 
   6396 // CHECK: test_vqrshl_u16
   6397 // CHECK: vqrshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6398 uint16x4_t test_vqrshl_u16(uint16x4_t a, int16x4_t b) {
   6399   return vqrshl_u16(a, b);
   6400 }
   6401 
   6402 // CHECK: test_vqrshl_u32
   6403 // CHECK: vqrshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6404 uint32x2_t test_vqrshl_u32(uint32x2_t a, int32x2_t b) {
   6405   return vqrshl_u32(a, b);
   6406 }
   6407 
   6408 // CHECK: test_vqrshl_u64
   6409 // CHECK: vqrshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6410 uint64x1_t test_vqrshl_u64(uint64x1_t a, int64x1_t b) {
   6411   return vqrshl_u64(a, b);
   6412 }
   6413 
   6414 // CHECK: test_vqrshlq_s8
   6415 // CHECK: vqrshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6416 int8x16_t test_vqrshlq_s8(int8x16_t a, int8x16_t b) {
   6417   return vqrshlq_s8(a, b);
   6418 }
   6419 
   6420 // CHECK: test_vqrshlq_s16
   6421 // CHECK: vqrshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6422 int16x8_t test_vqrshlq_s16(int16x8_t a, int16x8_t b) {
   6423   return vqrshlq_s16(a, b);
   6424 }
   6425 
   6426 // CHECK: test_vqrshlq_s32
   6427 // CHECK: vqrshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6428 int32x4_t test_vqrshlq_s32(int32x4_t a, int32x4_t b) {
   6429   return vqrshlq_s32(a, b);
   6430 }
   6431 
   6432 // CHECK: test_vqrshlq_s64
   6433 // CHECK: vqrshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6434 int64x2_t test_vqrshlq_s64(int64x2_t a, int64x2_t b) {
   6435   return vqrshlq_s64(a, b);
   6436 }
   6437 
   6438 // CHECK: test_vqrshlq_u8
   6439 // CHECK: vqrshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6440 uint8x16_t test_vqrshlq_u8(uint8x16_t a, int8x16_t b) {
   6441   return vqrshlq_u8(a, b);
   6442 }
   6443 
   6444 // CHECK: test_vqrshlq_u16
   6445 // CHECK: vqrshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6446 uint16x8_t test_vqrshlq_u16(uint16x8_t a, int16x8_t b) {
   6447   return vqrshlq_u16(a, b);
   6448 }
   6449 
   6450 // CHECK: test_vqrshlq_u32
   6451 // CHECK: vqrshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6452 uint32x4_t test_vqrshlq_u32(uint32x4_t a, int32x4_t b) {
   6453   return vqrshlq_u32(a, b);
   6454 }
   6455 
   6456 // CHECK: test_vqrshlq_u64
   6457 // CHECK: vqrshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6458 uint64x2_t test_vqrshlq_u64(uint64x2_t a, int64x2_t b) {
   6459   return vqrshlq_u64(a, b);
   6460 }
   6461 
   6462 
   6463 // CHECK: test_vqrshrn_n_s16
   6464 // CHECK: vqrshrn.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6465 int8x8_t test_vqrshrn_n_s16(int16x8_t a) {
   6466   return vqrshrn_n_s16(a, 1);
   6467 }
   6468 
   6469 // CHECK: test_vqrshrn_n_s32
   6470 // CHECK: vqrshrn.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6471 int16x4_t test_vqrshrn_n_s32(int32x4_t a) {
   6472   return vqrshrn_n_s32(a, 1);
   6473 }
   6474 
   6475 // CHECK: test_vqrshrn_n_s64
   6476 // CHECK: vqrshrn.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6477 int32x2_t test_vqrshrn_n_s64(int64x2_t a) {
   6478   return vqrshrn_n_s64(a, 1);
   6479 }
   6480 
   6481 // CHECK: test_vqrshrn_n_u16
   6482 // CHECK: vqrshrn.u16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6483 uint8x8_t test_vqrshrn_n_u16(uint16x8_t a) {
   6484   return vqrshrn_n_u16(a, 1);
   6485 }
   6486 
   6487 // CHECK: test_vqrshrn_n_u32
   6488 // CHECK: vqrshrn.u32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6489 uint16x4_t test_vqrshrn_n_u32(uint32x4_t a) {
   6490   return vqrshrn_n_u32(a, 1);
   6491 }
   6492 
   6493 // CHECK: test_vqrshrn_n_u64
   6494 // CHECK: vqrshrn.u64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6495 uint32x2_t test_vqrshrn_n_u64(uint64x2_t a) {
   6496   return vqrshrn_n_u64(a, 1);
   6497 }
   6498 
   6499 
   6500 // CHECK: test_vqrshrun_n_s16
   6501 // CHECK: vqrshrun.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6502 uint8x8_t test_vqrshrun_n_s16(int16x8_t a) {
   6503   return vqrshrun_n_s16(a, 1);
   6504 }
   6505 
   6506 // CHECK: test_vqrshrun_n_s32
   6507 // CHECK: vqrshrun.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6508 uint16x4_t test_vqrshrun_n_s32(int32x4_t a) {
   6509   return vqrshrun_n_s32(a, 1);
   6510 }
   6511 
   6512 // CHECK: test_vqrshrun_n_s64
   6513 // CHECK: vqrshrun.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6514 uint32x2_t test_vqrshrun_n_s64(int64x2_t a) {
   6515   return vqrshrun_n_s64(a, 1);
   6516 }
   6517 
   6518 
   6519 // CHECK: test_vqshl_s8
   6520 // CHECK: vqshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6521 int8x8_t test_vqshl_s8(int8x8_t a, int8x8_t b) {
   6522   return vqshl_s8(a, b);
   6523 }
   6524 
   6525 // CHECK: test_vqshl_s16
   6526 // CHECK: vqshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6527 int16x4_t test_vqshl_s16(int16x4_t a, int16x4_t b) {
   6528   return vqshl_s16(a, b);
   6529 }
   6530 
   6531 // CHECK: test_vqshl_s32
   6532 // CHECK: vqshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6533 int32x2_t test_vqshl_s32(int32x2_t a, int32x2_t b) {
   6534   return vqshl_s32(a, b);
   6535 }
   6536 
   6537 // CHECK: test_vqshl_s64
   6538 // CHECK: vqshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6539 int64x1_t test_vqshl_s64(int64x1_t a, int64x1_t b) {
   6540   return vqshl_s64(a, b);
   6541 }
   6542 
   6543 // CHECK: test_vqshl_u8
   6544 // CHECK: vqshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6545 uint8x8_t test_vqshl_u8(uint8x8_t a, int8x8_t b) {
   6546   return vqshl_u8(a, b);
   6547 }
   6548 
   6549 // CHECK: test_vqshl_u16
   6550 // CHECK: vqshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6551 uint16x4_t test_vqshl_u16(uint16x4_t a, int16x4_t b) {
   6552   return vqshl_u16(a, b);
   6553 }
   6554 
   6555 // CHECK: test_vqshl_u32
   6556 // CHECK: vqshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6557 uint32x2_t test_vqshl_u32(uint32x2_t a, int32x2_t b) {
   6558   return vqshl_u32(a, b);
   6559 }
   6560 
   6561 // CHECK: test_vqshl_u64
   6562 // CHECK: vqshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6563 uint64x1_t test_vqshl_u64(uint64x1_t a, int64x1_t b) {
   6564   return vqshl_u64(a, b);
   6565 }
   6566 
   6567 // CHECK: test_vqshlq_s8
   6568 // CHECK: vqshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6569 int8x16_t test_vqshlq_s8(int8x16_t a, int8x16_t b) {
   6570   return vqshlq_s8(a, b);
   6571 }
   6572 
   6573 // CHECK: test_vqshlq_s16
   6574 // CHECK: vqshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6575 int16x8_t test_vqshlq_s16(int16x8_t a, int16x8_t b) {
   6576   return vqshlq_s16(a, b);
   6577 }
   6578 
   6579 // CHECK: test_vqshlq_s32
   6580 // CHECK: vqshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6581 int32x4_t test_vqshlq_s32(int32x4_t a, int32x4_t b) {
   6582   return vqshlq_s32(a, b);
   6583 }
   6584 
   6585 // CHECK: test_vqshlq_s64
   6586 // CHECK: vqshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6587 int64x2_t test_vqshlq_s64(int64x2_t a, int64x2_t b) {
   6588   return vqshlq_s64(a, b);
   6589 }
   6590 
   6591 // CHECK: test_vqshlq_u8
   6592 // CHECK: vqshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6593 uint8x16_t test_vqshlq_u8(uint8x16_t a, int8x16_t b) {
   6594   return vqshlq_u8(a, b);
   6595 }
   6596 
   6597 // CHECK: test_vqshlq_u16
   6598 // CHECK: vqshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6599 uint16x8_t test_vqshlq_u16(uint16x8_t a, int16x8_t b) {
   6600   return vqshlq_u16(a, b);
   6601 }
   6602 
   6603 // CHECK: test_vqshlq_u32
   6604 // CHECK: vqshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6605 uint32x4_t test_vqshlq_u32(uint32x4_t a, int32x4_t b) {
   6606   return vqshlq_u32(a, b);
   6607 }
   6608 
   6609 // CHECK: test_vqshlq_u64
   6610 // CHECK: vqshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6611 uint64x2_t test_vqshlq_u64(uint64x2_t a, int64x2_t b) {
   6612   return vqshlq_u64(a, b);
   6613 }
   6614 
   6615 
   6616 // CHECK: test_vqshlu_n_s8
   6617 // CHECK: vqshlu.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   6618 uint8x8_t test_vqshlu_n_s8(int8x8_t a) {
   6619   return vqshlu_n_s8(a, 1);
   6620 }
   6621 
   6622 // CHECK: test_vqshlu_n_s16
   6623 // CHECK: vqshlu.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   6624 uint16x4_t test_vqshlu_n_s16(int16x4_t a) {
   6625   return vqshlu_n_s16(a, 1);
   6626 }
   6627 
   6628 // CHECK: test_vqshlu_n_s32
   6629 // CHECK: vqshlu.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   6630 uint32x2_t test_vqshlu_n_s32(int32x2_t a) {
   6631   return vqshlu_n_s32(a, 1);
   6632 }
   6633 
   6634 // CHECK: test_vqshlu_n_s64
   6635 // CHECK: vqshlu.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   6636 uint64x1_t test_vqshlu_n_s64(int64x1_t a) {
   6637   return vqshlu_n_s64(a, 1);
   6638 }
   6639 
   6640 // CHECK: test_vqshluq_n_s8
   6641 // CHECK: vqshlu.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6642 uint8x16_t test_vqshluq_n_s8(int8x16_t a) {
   6643   return vqshluq_n_s8(a, 1);
   6644 }
   6645 
   6646 // CHECK: test_vqshluq_n_s16
   6647 // CHECK: vqshlu.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6648 uint16x8_t test_vqshluq_n_s16(int16x8_t a) {
   6649   return vqshluq_n_s16(a, 1);
   6650 }
   6651 
   6652 // CHECK: test_vqshluq_n_s32
   6653 // CHECK: vqshlu.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6654 uint32x4_t test_vqshluq_n_s32(int32x4_t a) {
   6655   return vqshluq_n_s32(a, 1);
   6656 }
   6657 
   6658 // CHECK: test_vqshluq_n_s64
   6659 // CHECK: vqshlu.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6660 uint64x2_t test_vqshluq_n_s64(int64x2_t a) {
   6661   return vqshluq_n_s64(a, 1);
   6662 }
   6663 
   6664 
   6665 // CHECK: test_vqshl_n_s8
   6666 // CHECK: vqshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   6667 int8x8_t test_vqshl_n_s8(int8x8_t a) {
   6668   return vqshl_n_s8(a, 1);
   6669 }
   6670 
   6671 // CHECK: test_vqshl_n_s16
   6672 // CHECK: vqshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   6673 int16x4_t test_vqshl_n_s16(int16x4_t a) {
   6674   return vqshl_n_s16(a, 1);
   6675 }
   6676 
   6677 // CHECK: test_vqshl_n_s32
   6678 // CHECK: vqshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   6679 int32x2_t test_vqshl_n_s32(int32x2_t a) {
   6680   return vqshl_n_s32(a, 1);
   6681 }
   6682 
   6683 // CHECK: test_vqshl_n_s64
   6684 // CHECK: vqshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   6685 int64x1_t test_vqshl_n_s64(int64x1_t a) {
   6686   return vqshl_n_s64(a, 1);
   6687 }
   6688 
   6689 // CHECK: test_vqshl_n_u8
   6690 // CHECK: vqshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   6691 uint8x8_t test_vqshl_n_u8(uint8x8_t a) {
   6692   return vqshl_n_u8(a, 1);
   6693 }
   6694 
   6695 // CHECK: test_vqshl_n_u16
   6696 // CHECK: vqshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   6697 uint16x4_t test_vqshl_n_u16(uint16x4_t a) {
   6698   return vqshl_n_u16(a, 1);
   6699 }
   6700 
   6701 // CHECK: test_vqshl_n_u32
   6702 // CHECK: vqshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   6703 uint32x2_t test_vqshl_n_u32(uint32x2_t a) {
   6704   return vqshl_n_u32(a, 1);
   6705 }
   6706 
   6707 // CHECK: test_vqshl_n_u64
   6708 // CHECK: vqshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   6709 uint64x1_t test_vqshl_n_u64(uint64x1_t a) {
   6710   return vqshl_n_u64(a, 1);
   6711 }
   6712 
   6713 // CHECK: test_vqshlq_n_s8
   6714 // CHECK: vqshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6715 int8x16_t test_vqshlq_n_s8(int8x16_t a) {
   6716   return vqshlq_n_s8(a, 1);
   6717 }
   6718 
   6719 // CHECK: test_vqshlq_n_s16
   6720 // CHECK: vqshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6721 int16x8_t test_vqshlq_n_s16(int16x8_t a) {
   6722   return vqshlq_n_s16(a, 1);
   6723 }
   6724 
   6725 // CHECK: test_vqshlq_n_s32
   6726 // CHECK: vqshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6727 int32x4_t test_vqshlq_n_s32(int32x4_t a) {
   6728   return vqshlq_n_s32(a, 1);
   6729 }
   6730 
   6731 // CHECK: test_vqshlq_n_s64
   6732 // CHECK: vqshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6733 int64x2_t test_vqshlq_n_s64(int64x2_t a) {
   6734   return vqshlq_n_s64(a, 1);
   6735 }
   6736 
   6737 // CHECK: test_vqshlq_n_u8
   6738 // CHECK: vqshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6739 uint8x16_t test_vqshlq_n_u8(uint8x16_t a) {
   6740   return vqshlq_n_u8(a, 1);
   6741 }
   6742 
   6743 // CHECK: test_vqshlq_n_u16
   6744 // CHECK: vqshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6745 uint16x8_t test_vqshlq_n_u16(uint16x8_t a) {
   6746   return vqshlq_n_u16(a, 1);
   6747 }
   6748 
   6749 // CHECK: test_vqshlq_n_u32
   6750 // CHECK: vqshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6751 uint32x4_t test_vqshlq_n_u32(uint32x4_t a) {
   6752   return vqshlq_n_u32(a, 1);
   6753 }
   6754 
   6755 // CHECK: test_vqshlq_n_u64
   6756 // CHECK: vqshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6757 uint64x2_t test_vqshlq_n_u64(uint64x2_t a) {
   6758   return vqshlq_n_u64(a, 1);
   6759 }
   6760 
   6761 
   6762 // CHECK: test_vqshrn_n_s16
   6763 // CHECK: vqshrn.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6764 int8x8_t test_vqshrn_n_s16(int16x8_t a) {
   6765   return vqshrn_n_s16(a, 1);
   6766 }
   6767 
   6768 // CHECK: test_vqshrn_n_s32
   6769 // CHECK: vqshrn.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6770 int16x4_t test_vqshrn_n_s32(int32x4_t a) {
   6771   return vqshrn_n_s32(a, 1);
   6772 }
   6773 
   6774 // CHECK: test_vqshrn_n_s64
   6775 // CHECK: vqshrn.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6776 int32x2_t test_vqshrn_n_s64(int64x2_t a) {
   6777   return vqshrn_n_s64(a, 1);
   6778 }
   6779 
   6780 // CHECK: test_vqshrn_n_u16
   6781 // CHECK: vqshrn.u16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6782 uint8x8_t test_vqshrn_n_u16(uint16x8_t a) {
   6783   return vqshrn_n_u16(a, 1);
   6784 }
   6785 
   6786 // CHECK: test_vqshrn_n_u32
   6787 // CHECK: vqshrn.u32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6788 uint16x4_t test_vqshrn_n_u32(uint32x4_t a) {
   6789   return vqshrn_n_u32(a, 1);
   6790 }
   6791 
   6792 // CHECK: test_vqshrn_n_u64
   6793 // CHECK: vqshrn.u64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6794 uint32x2_t test_vqshrn_n_u64(uint64x2_t a) {
   6795   return vqshrn_n_u64(a, 1);
   6796 }
   6797 
   6798 
   6799 // CHECK: test_vqshrun_n_s16
   6800 // CHECK: vqshrun.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6801 uint8x8_t test_vqshrun_n_s16(int16x8_t a) {
   6802   return vqshrun_n_s16(a, 1);
   6803 }
   6804 
   6805 // CHECK: test_vqshrun_n_s32
   6806 // CHECK: vqshrun.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6807 uint16x4_t test_vqshrun_n_s32(int32x4_t a) {
   6808   return vqshrun_n_s32(a, 1);
   6809 }
   6810 
   6811 // CHECK: test_vqshrun_n_s64
   6812 // CHECK: vqshrun.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   6813 uint32x2_t test_vqshrun_n_s64(int64x2_t a) {
   6814   return vqshrun_n_s64(a, 1);
   6815 }
   6816 
   6817 
   6818 // CHECK: test_vqsub_s8
   6819 // CHECK: vqsub.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6820 int8x8_t test_vqsub_s8(int8x8_t a, int8x8_t b) {
   6821   return vqsub_s8(a, b);
   6822 }
   6823 
   6824 // CHECK: test_vqsub_s16
   6825 // CHECK: vqsub.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6826 int16x4_t test_vqsub_s16(int16x4_t a, int16x4_t b) {
   6827   return vqsub_s16(a, b);
   6828 }
   6829 
   6830 // CHECK: test_vqsub_s32
   6831 // CHECK: vqsub.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6832 int32x2_t test_vqsub_s32(int32x2_t a, int32x2_t b) {
   6833   return vqsub_s32(a, b);
   6834 }
   6835 
   6836 // CHECK: test_vqsub_s64
   6837 // CHECK: vqsub.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6838 int64x1_t test_vqsub_s64(int64x1_t a, int64x1_t b) {
   6839   return vqsub_s64(a, b);
   6840 }
   6841 
   6842 // CHECK: test_vqsub_u8
   6843 // CHECK: vqsub.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6844 uint8x8_t test_vqsub_u8(uint8x8_t a, uint8x8_t b) {
   6845   return vqsub_u8(a, b);
   6846 }
   6847 
   6848 // CHECK: test_vqsub_u16
   6849 // CHECK: vqsub.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6850 uint16x4_t test_vqsub_u16(uint16x4_t a, uint16x4_t b) {
   6851   return vqsub_u16(a, b);
   6852 }
   6853 
   6854 // CHECK: test_vqsub_u32
   6855 // CHECK: vqsub.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6856 uint32x2_t test_vqsub_u32(uint32x2_t a, uint32x2_t b) {
   6857   return vqsub_u32(a, b);
   6858 }
   6859 
   6860 // CHECK: test_vqsub_u64
   6861 // CHECK: vqsub.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6862 uint64x1_t test_vqsub_u64(uint64x1_t a, uint64x1_t b) {
   6863   return vqsub_u64(a, b);
   6864 }
   6865 
   6866 // CHECK: test_vqsubq_s8
   6867 // CHECK: vqsub.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6868 int8x16_t test_vqsubq_s8(int8x16_t a, int8x16_t b) {
   6869   return vqsubq_s8(a, b);
   6870 }
   6871 
   6872 // CHECK: test_vqsubq_s16
   6873 // CHECK: vqsub.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6874 int16x8_t test_vqsubq_s16(int16x8_t a, int16x8_t b) {
   6875   return vqsubq_s16(a, b);
   6876 }
   6877 
   6878 // CHECK: test_vqsubq_s32
   6879 // CHECK: vqsub.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6880 int32x4_t test_vqsubq_s32(int32x4_t a, int32x4_t b) {
   6881   return vqsubq_s32(a, b);
   6882 }
   6883 
   6884 // CHECK: test_vqsubq_s64
   6885 // CHECK: vqsub.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6886 int64x2_t test_vqsubq_s64(int64x2_t a, int64x2_t b) {
   6887   return vqsubq_s64(a, b);
   6888 }
   6889 
   6890 // CHECK: test_vqsubq_u8
   6891 // CHECK: vqsub.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6892 uint8x16_t test_vqsubq_u8(uint8x16_t a, uint8x16_t b) {
   6893   return vqsubq_u8(a, b);
   6894 }
   6895 
   6896 // CHECK: test_vqsubq_u16
   6897 // CHECK: vqsub.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6898 uint16x8_t test_vqsubq_u16(uint16x8_t a, uint16x8_t b) {
   6899   return vqsubq_u16(a, b);
   6900 }
   6901 
   6902 // CHECK: test_vqsubq_u32
   6903 // CHECK: vqsub.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6904 uint32x4_t test_vqsubq_u32(uint32x4_t a, uint32x4_t b) {
   6905   return vqsubq_u32(a, b);
   6906 }
   6907 
   6908 // CHECK: test_vqsubq_u64
   6909 // CHECK: vqsub.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6910 uint64x2_t test_vqsubq_u64(uint64x2_t a, uint64x2_t b) {
   6911   return vqsubq_u64(a, b);
   6912 }
   6913 
   6914 
   6915 // CHECK: test_vraddhn_s16
   6916 // CHECK: vraddhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6917 int8x8_t test_vraddhn_s16(int16x8_t a, int16x8_t b) {
   6918   return vraddhn_s16(a, b);
   6919 }
   6920 
   6921 // CHECK: test_vraddhn_s32
   6922 // CHECK: vraddhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6923 int16x4_t test_vraddhn_s32(int32x4_t a, int32x4_t b) {
   6924   return vraddhn_s32(a, b);
   6925 }
   6926 
   6927 // CHECK: test_vraddhn_s64
   6928 // CHECK: vraddhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6929 int32x2_t test_vraddhn_s64(int64x2_t a, int64x2_t b) {
   6930   return vraddhn_s64(a, b);
   6931 }
   6932 
   6933 // CHECK: test_vraddhn_u16
   6934 // CHECK: vraddhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6935 uint8x8_t test_vraddhn_u16(uint16x8_t a, uint16x8_t b) {
   6936   return vraddhn_u16(a, b);
   6937 }
   6938 
   6939 // CHECK: test_vraddhn_u32
   6940 // CHECK: vraddhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6941 uint16x4_t test_vraddhn_u32(uint32x4_t a, uint32x4_t b) {
   6942   return vraddhn_u32(a, b);
   6943 }
   6944 
   6945 // CHECK: test_vraddhn_u64
   6946 // CHECK: vraddhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6947 uint32x2_t test_vraddhn_u64(uint64x2_t a, uint64x2_t b) {
   6948   return vraddhn_u64(a, b);
   6949 }
   6950 
   6951 
   6952 // CHECK: test_vrecpe_f32
   6953 // CHECK: vrecpe.f32 d{{[0-9]+}}, d{{[0-9]+}}
   6954 float32x2_t test_vrecpe_f32(float32x2_t a) {
   6955   return vrecpe_f32(a);
   6956 }
   6957 
   6958 // CHECK: test_vrecpe_u32
   6959 // CHECK: vrecpe.u32 d{{[0-9]+}}, d{{[0-9]+}}
   6960 uint32x2_t test_vrecpe_u32(uint32x2_t a) {
   6961   return vrecpe_u32(a);
   6962 }
   6963 
   6964 // CHECK: test_vrecpeq_f32
   6965 // CHECK: vrecpe.f32 q{{[0-9]+}}, q{{[0-9]+}}
   6966 float32x4_t test_vrecpeq_f32(float32x4_t a) {
   6967   return vrecpeq_f32(a);
   6968 }
   6969 
   6970 // CHECK: test_vrecpeq_u32
   6971 // CHECK: vrecpe.u32 q{{[0-9]+}}, q{{[0-9]+}}
   6972 uint32x4_t test_vrecpeq_u32(uint32x4_t a) {
   6973   return vrecpeq_u32(a);
   6974 }
   6975 
   6976 
   6977 // CHECK: test_vrecps_f32
   6978 // CHECK: vrecps.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   6979 float32x2_t test_vrecps_f32(float32x2_t a, float32x2_t b) {
   6980   return vrecps_f32(a, b);
   6981 }
   6982 
   6983 // CHECK: test_vrecpsq_f32
   6984 // CHECK: vrecps.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   6985 float32x4_t test_vrecpsq_f32(float32x4_t a, float32x4_t b) {
   6986   return vrecpsq_f32(a, b);
   6987 }
   6988 
   6989 
   6990 // CHECK: test_vreinterpret_s8_s16
   6991 int8x8_t test_vreinterpret_s8_s16(int16x4_t a) {
   6992   return vreinterpret_s8_s16(a);
   6993 }
   6994 
   6995 // CHECK: test_vreinterpret_s8_s32
   6996 int8x8_t test_vreinterpret_s8_s32(int32x2_t a) {
   6997   return vreinterpret_s8_s32(a);
   6998 }
   6999 
   7000 // CHECK: test_vreinterpret_s8_s64
   7001 int8x8_t test_vreinterpret_s8_s64(int64x1_t a) {
   7002   return vreinterpret_s8_s64(a);
   7003 }
   7004 
   7005 // CHECK: test_vreinterpret_s8_u8
   7006 int8x8_t test_vreinterpret_s8_u8(uint8x8_t a) {
   7007   return vreinterpret_s8_u8(a);
   7008 }
   7009 
   7010 // CHECK: test_vreinterpret_s8_u16
   7011 int8x8_t test_vreinterpret_s8_u16(uint16x4_t a) {
   7012   return vreinterpret_s8_u16(a);
   7013 }
   7014 
   7015 // CHECK: test_vreinterpret_s8_u32
   7016 int8x8_t test_vreinterpret_s8_u32(uint32x2_t a) {
   7017   return vreinterpret_s8_u32(a);
   7018 }
   7019 
   7020 // CHECK: test_vreinterpret_s8_u64
   7021 int8x8_t test_vreinterpret_s8_u64(uint64x1_t a) {
   7022   return vreinterpret_s8_u64(a);
   7023 }
   7024 
   7025 // CHECK: test_vreinterpret_s8_f16
   7026 int8x8_t test_vreinterpret_s8_f16(float16x4_t a) {
   7027   return vreinterpret_s8_f16(a);
   7028 }
   7029 
   7030 // CHECK: test_vreinterpret_s8_f32
   7031 int8x8_t test_vreinterpret_s8_f32(float32x2_t a) {
   7032   return vreinterpret_s8_f32(a);
   7033 }
   7034 
   7035 // CHECK: test_vreinterpret_s8_p8
   7036 int8x8_t test_vreinterpret_s8_p8(poly8x8_t a) {
   7037   return vreinterpret_s8_p8(a);
   7038 }
   7039 
   7040 // CHECK: test_vreinterpret_s8_p16
   7041 int8x8_t test_vreinterpret_s8_p16(poly16x4_t a) {
   7042   return vreinterpret_s8_p16(a);
   7043 }
   7044 
   7045 // CHECK: test_vreinterpret_s16_s8
   7046 int16x4_t test_vreinterpret_s16_s8(int8x8_t a) {
   7047   return vreinterpret_s16_s8(a);
   7048 }
   7049 
   7050 // CHECK: test_vreinterpret_s16_s32
   7051 int16x4_t test_vreinterpret_s16_s32(int32x2_t a) {
   7052   return vreinterpret_s16_s32(a);
   7053 }
   7054 
   7055 // CHECK: test_vreinterpret_s16_s64
   7056 int16x4_t test_vreinterpret_s16_s64(int64x1_t a) {
   7057   return vreinterpret_s16_s64(a);
   7058 }
   7059 
   7060 // CHECK: test_vreinterpret_s16_u8
   7061 int16x4_t test_vreinterpret_s16_u8(uint8x8_t a) {
   7062   return vreinterpret_s16_u8(a);
   7063 }
   7064 
   7065 // CHECK: test_vreinterpret_s16_u16
   7066 int16x4_t test_vreinterpret_s16_u16(uint16x4_t a) {
   7067   return vreinterpret_s16_u16(a);
   7068 }
   7069 
   7070 // CHECK: test_vreinterpret_s16_u32
   7071 int16x4_t test_vreinterpret_s16_u32(uint32x2_t a) {
   7072   return vreinterpret_s16_u32(a);
   7073 }
   7074 
   7075 // CHECK: test_vreinterpret_s16_u64
   7076 int16x4_t test_vreinterpret_s16_u64(uint64x1_t a) {
   7077   return vreinterpret_s16_u64(a);
   7078 }
   7079 
   7080 // CHECK: test_vreinterpret_s16_f16
   7081 int16x4_t test_vreinterpret_s16_f16(float16x4_t a) {
   7082   return vreinterpret_s16_f16(a);
   7083 }
   7084 
   7085 // CHECK: test_vreinterpret_s16_f32
   7086 int16x4_t test_vreinterpret_s16_f32(float32x2_t a) {
   7087   return vreinterpret_s16_f32(a);
   7088 }
   7089 
   7090 // CHECK: test_vreinterpret_s16_p8
   7091 int16x4_t test_vreinterpret_s16_p8(poly8x8_t a) {
   7092   return vreinterpret_s16_p8(a);
   7093 }
   7094 
   7095 // CHECK: test_vreinterpret_s16_p16
   7096 int16x4_t test_vreinterpret_s16_p16(poly16x4_t a) {
   7097   return vreinterpret_s16_p16(a);
   7098 }
   7099 
   7100 // CHECK: test_vreinterpret_s32_s8
   7101 int32x2_t test_vreinterpret_s32_s8(int8x8_t a) {
   7102   return vreinterpret_s32_s8(a);
   7103 }
   7104 
   7105 // CHECK: test_vreinterpret_s32_s16
   7106 int32x2_t test_vreinterpret_s32_s16(int16x4_t a) {
   7107   return vreinterpret_s32_s16(a);
   7108 }
   7109 
   7110 // CHECK: test_vreinterpret_s32_s64
   7111 int32x2_t test_vreinterpret_s32_s64(int64x1_t a) {
   7112   return vreinterpret_s32_s64(a);
   7113 }
   7114 
   7115 // CHECK: test_vreinterpret_s32_u8
   7116 int32x2_t test_vreinterpret_s32_u8(uint8x8_t a) {
   7117   return vreinterpret_s32_u8(a);
   7118 }
   7119 
   7120 // CHECK: test_vreinterpret_s32_u16
   7121 int32x2_t test_vreinterpret_s32_u16(uint16x4_t a) {
   7122   return vreinterpret_s32_u16(a);
   7123 }
   7124 
   7125 // CHECK: test_vreinterpret_s32_u32
   7126 int32x2_t test_vreinterpret_s32_u32(uint32x2_t a) {
   7127   return vreinterpret_s32_u32(a);
   7128 }
   7129 
   7130 // CHECK: test_vreinterpret_s32_u64
   7131 int32x2_t test_vreinterpret_s32_u64(uint64x1_t a) {
   7132   return vreinterpret_s32_u64(a);
   7133 }
   7134 
   7135 // CHECK: test_vreinterpret_s32_f16
   7136 int32x2_t test_vreinterpret_s32_f16(float16x4_t a) {
   7137   return vreinterpret_s32_f16(a);
   7138 }
   7139 
   7140 // CHECK: test_vreinterpret_s32_f32
   7141 int32x2_t test_vreinterpret_s32_f32(float32x2_t a) {
   7142   return vreinterpret_s32_f32(a);
   7143 }
   7144 
   7145 // CHECK: test_vreinterpret_s32_p8
   7146 int32x2_t test_vreinterpret_s32_p8(poly8x8_t a) {
   7147   return vreinterpret_s32_p8(a);
   7148 }
   7149 
   7150 // CHECK: test_vreinterpret_s32_p16
   7151 int32x2_t test_vreinterpret_s32_p16(poly16x4_t a) {
   7152   return vreinterpret_s32_p16(a);
   7153 }
   7154 
   7155 // CHECK: test_vreinterpret_s64_s8
   7156 int64x1_t test_vreinterpret_s64_s8(int8x8_t a) {
   7157   return vreinterpret_s64_s8(a);
   7158 }
   7159 
   7160 // CHECK: test_vreinterpret_s64_s16
   7161 int64x1_t test_vreinterpret_s64_s16(int16x4_t a) {
   7162   return vreinterpret_s64_s16(a);
   7163 }
   7164 
   7165 // CHECK: test_vreinterpret_s64_s32
   7166 int64x1_t test_vreinterpret_s64_s32(int32x2_t a) {
   7167   return vreinterpret_s64_s32(a);
   7168 }
   7169 
   7170 // CHECK: test_vreinterpret_s64_u8
   7171 int64x1_t test_vreinterpret_s64_u8(uint8x8_t a) {
   7172   return vreinterpret_s64_u8(a);
   7173 }
   7174 
   7175 // CHECK: test_vreinterpret_s64_u16
   7176 int64x1_t test_vreinterpret_s64_u16(uint16x4_t a) {
   7177   return vreinterpret_s64_u16(a);
   7178 }
   7179 
   7180 // CHECK: test_vreinterpret_s64_u32
   7181 int64x1_t test_vreinterpret_s64_u32(uint32x2_t a) {
   7182   return vreinterpret_s64_u32(a);
   7183 }
   7184 
   7185 // CHECK: test_vreinterpret_s64_u64
   7186 int64x1_t test_vreinterpret_s64_u64(uint64x1_t a) {
   7187   return vreinterpret_s64_u64(a);
   7188 }
   7189 
   7190 // CHECK: test_vreinterpret_s64_f16
   7191 int64x1_t test_vreinterpret_s64_f16(float16x4_t a) {
   7192   return vreinterpret_s64_f16(a);
   7193 }
   7194 
   7195 // CHECK: test_vreinterpret_s64_f32
   7196 int64x1_t test_vreinterpret_s64_f32(float32x2_t a) {
   7197   return vreinterpret_s64_f32(a);
   7198 }
   7199 
   7200 // CHECK: test_vreinterpret_s64_p8
   7201 int64x1_t test_vreinterpret_s64_p8(poly8x8_t a) {
   7202   return vreinterpret_s64_p8(a);
   7203 }
   7204 
   7205 // CHECK: test_vreinterpret_s64_p16
   7206 int64x1_t test_vreinterpret_s64_p16(poly16x4_t a) {
   7207   return vreinterpret_s64_p16(a);
   7208 }
   7209 
   7210 // CHECK: test_vreinterpret_u8_s8
   7211 uint8x8_t test_vreinterpret_u8_s8(int8x8_t a) {
   7212   return vreinterpret_u8_s8(a);
   7213 }
   7214 
   7215 // CHECK: test_vreinterpret_u8_s16
   7216 uint8x8_t test_vreinterpret_u8_s16(int16x4_t a) {
   7217   return vreinterpret_u8_s16(a);
   7218 }
   7219 
   7220 // CHECK: test_vreinterpret_u8_s32
   7221 uint8x8_t test_vreinterpret_u8_s32(int32x2_t a) {
   7222   return vreinterpret_u8_s32(a);
   7223 }
   7224 
   7225 // CHECK: test_vreinterpret_u8_s64
   7226 uint8x8_t test_vreinterpret_u8_s64(int64x1_t a) {
   7227   return vreinterpret_u8_s64(a);
   7228 }
   7229 
   7230 // CHECK: test_vreinterpret_u8_u16
   7231 uint8x8_t test_vreinterpret_u8_u16(uint16x4_t a) {
   7232   return vreinterpret_u8_u16(a);
   7233 }
   7234 
   7235 // CHECK: test_vreinterpret_u8_u32
   7236 uint8x8_t test_vreinterpret_u8_u32(uint32x2_t a) {
   7237   return vreinterpret_u8_u32(a);
   7238 }
   7239 
   7240 // CHECK: test_vreinterpret_u8_u64
   7241 uint8x8_t test_vreinterpret_u8_u64(uint64x1_t a) {
   7242   return vreinterpret_u8_u64(a);
   7243 }
   7244 
   7245 // CHECK: test_vreinterpret_u8_f16
   7246 uint8x8_t test_vreinterpret_u8_f16(float16x4_t a) {
   7247   return vreinterpret_u8_f16(a);
   7248 }
   7249 
   7250 // CHECK: test_vreinterpret_u8_f32
   7251 uint8x8_t test_vreinterpret_u8_f32(float32x2_t a) {
   7252   return vreinterpret_u8_f32(a);
   7253 }
   7254 
   7255 // CHECK: test_vreinterpret_u8_p8
   7256 uint8x8_t test_vreinterpret_u8_p8(poly8x8_t a) {
   7257   return vreinterpret_u8_p8(a);
   7258 }
   7259 
   7260 // CHECK: test_vreinterpret_u8_p16
   7261 uint8x8_t test_vreinterpret_u8_p16(poly16x4_t a) {
   7262   return vreinterpret_u8_p16(a);
   7263 }
   7264 
   7265 // CHECK: test_vreinterpret_u16_s8
   7266 uint16x4_t test_vreinterpret_u16_s8(int8x8_t a) {
   7267   return vreinterpret_u16_s8(a);
   7268 }
   7269 
   7270 // CHECK: test_vreinterpret_u16_s16
   7271 uint16x4_t test_vreinterpret_u16_s16(int16x4_t a) {
   7272   return vreinterpret_u16_s16(a);
   7273 }
   7274 
   7275 // CHECK: test_vreinterpret_u16_s32
   7276 uint16x4_t test_vreinterpret_u16_s32(int32x2_t a) {
   7277   return vreinterpret_u16_s32(a);
   7278 }
   7279 
   7280 // CHECK: test_vreinterpret_u16_s64
   7281 uint16x4_t test_vreinterpret_u16_s64(int64x1_t a) {
   7282   return vreinterpret_u16_s64(a);
   7283 }
   7284 
   7285 // CHECK: test_vreinterpret_u16_u8
   7286 uint16x4_t test_vreinterpret_u16_u8(uint8x8_t a) {
   7287   return vreinterpret_u16_u8(a);
   7288 }
   7289 
   7290 // CHECK: test_vreinterpret_u16_u32
   7291 uint16x4_t test_vreinterpret_u16_u32(uint32x2_t a) {
   7292   return vreinterpret_u16_u32(a);
   7293 }
   7294 
   7295 // CHECK: test_vreinterpret_u16_u64
   7296 uint16x4_t test_vreinterpret_u16_u64(uint64x1_t a) {
   7297   return vreinterpret_u16_u64(a);
   7298 }
   7299 
   7300 // CHECK: test_vreinterpret_u16_f16
   7301 uint16x4_t test_vreinterpret_u16_f16(float16x4_t a) {
   7302   return vreinterpret_u16_f16(a);
   7303 }
   7304 
   7305 // CHECK: test_vreinterpret_u16_f32
   7306 uint16x4_t test_vreinterpret_u16_f32(float32x2_t a) {
   7307   return vreinterpret_u16_f32(a);
   7308 }
   7309 
   7310 // CHECK: test_vreinterpret_u16_p8
   7311 uint16x4_t test_vreinterpret_u16_p8(poly8x8_t a) {
   7312   return vreinterpret_u16_p8(a);
   7313 }
   7314 
   7315 // CHECK: test_vreinterpret_u16_p16
   7316 uint16x4_t test_vreinterpret_u16_p16(poly16x4_t a) {
   7317   return vreinterpret_u16_p16(a);
   7318 }
   7319 
   7320 // CHECK: test_vreinterpret_u32_s8
   7321 uint32x2_t test_vreinterpret_u32_s8(int8x8_t a) {
   7322   return vreinterpret_u32_s8(a);
   7323 }
   7324 
   7325 // CHECK: test_vreinterpret_u32_s16
   7326 uint32x2_t test_vreinterpret_u32_s16(int16x4_t a) {
   7327   return vreinterpret_u32_s16(a);
   7328 }
   7329 
   7330 // CHECK: test_vreinterpret_u32_s32
   7331 uint32x2_t test_vreinterpret_u32_s32(int32x2_t a) {
   7332   return vreinterpret_u32_s32(a);
   7333 }
   7334 
   7335 // CHECK: test_vreinterpret_u32_s64
   7336 uint32x2_t test_vreinterpret_u32_s64(int64x1_t a) {
   7337   return vreinterpret_u32_s64(a);
   7338 }
   7339 
   7340 // CHECK: test_vreinterpret_u32_u8
   7341 uint32x2_t test_vreinterpret_u32_u8(uint8x8_t a) {
   7342   return vreinterpret_u32_u8(a);
   7343 }
   7344 
   7345 // CHECK: test_vreinterpret_u32_u16
   7346 uint32x2_t test_vreinterpret_u32_u16(uint16x4_t a) {
   7347   return vreinterpret_u32_u16(a);
   7348 }
   7349 
   7350 // CHECK: test_vreinterpret_u32_u64
   7351 uint32x2_t test_vreinterpret_u32_u64(uint64x1_t a) {
   7352   return vreinterpret_u32_u64(a);
   7353 }
   7354 
   7355 // CHECK: test_vreinterpret_u32_f16
   7356 uint32x2_t test_vreinterpret_u32_f16(float16x4_t a) {
   7357   return vreinterpret_u32_f16(a);
   7358 }
   7359 
   7360 // CHECK: test_vreinterpret_u32_f32
   7361 uint32x2_t test_vreinterpret_u32_f32(float32x2_t a) {
   7362   return vreinterpret_u32_f32(a);
   7363 }
   7364 
   7365 // CHECK: test_vreinterpret_u32_p8
   7366 uint32x2_t test_vreinterpret_u32_p8(poly8x8_t a) {
   7367   return vreinterpret_u32_p8(a);
   7368 }
   7369 
   7370 // CHECK: test_vreinterpret_u32_p16
   7371 uint32x2_t test_vreinterpret_u32_p16(poly16x4_t a) {
   7372   return vreinterpret_u32_p16(a);
   7373 }
   7374 
   7375 // CHECK: test_vreinterpret_u64_s8
   7376 uint64x1_t test_vreinterpret_u64_s8(int8x8_t a) {
   7377   return vreinterpret_u64_s8(a);
   7378 }
   7379 
   7380 // CHECK: test_vreinterpret_u64_s16
   7381 uint64x1_t test_vreinterpret_u64_s16(int16x4_t a) {
   7382   return vreinterpret_u64_s16(a);
   7383 }
   7384 
   7385 // CHECK: test_vreinterpret_u64_s32
   7386 uint64x1_t test_vreinterpret_u64_s32(int32x2_t a) {
   7387   return vreinterpret_u64_s32(a);
   7388 }
   7389 
   7390 // CHECK: test_vreinterpret_u64_s64
   7391 uint64x1_t test_vreinterpret_u64_s64(int64x1_t a) {
   7392   return vreinterpret_u64_s64(a);
   7393 }
   7394 
   7395 // CHECK: test_vreinterpret_u64_u8
   7396 uint64x1_t test_vreinterpret_u64_u8(uint8x8_t a) {
   7397   return vreinterpret_u64_u8(a);
   7398 }
   7399 
   7400 // CHECK: test_vreinterpret_u64_u16
   7401 uint64x1_t test_vreinterpret_u64_u16(uint16x4_t a) {
   7402   return vreinterpret_u64_u16(a);
   7403 }
   7404 
   7405 // CHECK: test_vreinterpret_u64_u32
   7406 uint64x1_t test_vreinterpret_u64_u32(uint32x2_t a) {
   7407   return vreinterpret_u64_u32(a);
   7408 }
   7409 
   7410 // CHECK: test_vreinterpret_u64_f16
   7411 uint64x1_t test_vreinterpret_u64_f16(float16x4_t a) {
   7412   return vreinterpret_u64_f16(a);
   7413 }
   7414 
   7415 // CHECK: test_vreinterpret_u64_f32
   7416 uint64x1_t test_vreinterpret_u64_f32(float32x2_t a) {
   7417   return vreinterpret_u64_f32(a);
   7418 }
   7419 
   7420 // CHECK: test_vreinterpret_u64_p8
   7421 uint64x1_t test_vreinterpret_u64_p8(poly8x8_t a) {
   7422   return vreinterpret_u64_p8(a);
   7423 }
   7424 
   7425 // CHECK: test_vreinterpret_u64_p16
   7426 uint64x1_t test_vreinterpret_u64_p16(poly16x4_t a) {
   7427   return vreinterpret_u64_p16(a);
   7428 }
   7429 
   7430 // CHECK: test_vreinterpret_f16_s8
   7431 float16x4_t test_vreinterpret_f16_s8(int8x8_t a) {
   7432   return vreinterpret_f16_s8(a);
   7433 }
   7434 
   7435 // CHECK: test_vreinterpret_f16_s16
   7436 float16x4_t test_vreinterpret_f16_s16(int16x4_t a) {
   7437   return vreinterpret_f16_s16(a);
   7438 }
   7439 
   7440 // CHECK: test_vreinterpret_f16_s32
   7441 float16x4_t test_vreinterpret_f16_s32(int32x2_t a) {
   7442   return vreinterpret_f16_s32(a);
   7443 }
   7444 
   7445 // CHECK: test_vreinterpret_f16_s64
   7446 float16x4_t test_vreinterpret_f16_s64(int64x1_t a) {
   7447   return vreinterpret_f16_s64(a);
   7448 }
   7449 
   7450 // CHECK: test_vreinterpret_f16_u8
   7451 float16x4_t test_vreinterpret_f16_u8(uint8x8_t a) {
   7452   return vreinterpret_f16_u8(a);
   7453 }
   7454 
   7455 // CHECK: test_vreinterpret_f16_u16
   7456 float16x4_t test_vreinterpret_f16_u16(uint16x4_t a) {
   7457   return vreinterpret_f16_u16(a);
   7458 }
   7459 
   7460 // CHECK: test_vreinterpret_f16_u32
   7461 float16x4_t test_vreinterpret_f16_u32(uint32x2_t a) {
   7462   return vreinterpret_f16_u32(a);
   7463 }
   7464 
   7465 // CHECK: test_vreinterpret_f16_u64
   7466 float16x4_t test_vreinterpret_f16_u64(uint64x1_t a) {
   7467   return vreinterpret_f16_u64(a);
   7468 }
   7469 
   7470 // CHECK: test_vreinterpret_f16_f32
   7471 float16x4_t test_vreinterpret_f16_f32(float32x2_t a) {
   7472   return vreinterpret_f16_f32(a);
   7473 }
   7474 
   7475 // CHECK: test_vreinterpret_f16_p8
   7476 float16x4_t test_vreinterpret_f16_p8(poly8x8_t a) {
   7477   return vreinterpret_f16_p8(a);
   7478 }
   7479 
   7480 // CHECK: test_vreinterpret_f16_p16
   7481 float16x4_t test_vreinterpret_f16_p16(poly16x4_t a) {
   7482   return vreinterpret_f16_p16(a);
   7483 }
   7484 
   7485 // CHECK: test_vreinterpret_f32_s8
   7486 float32x2_t test_vreinterpret_f32_s8(int8x8_t a) {
   7487   return vreinterpret_f32_s8(a);
   7488 }
   7489 
   7490 // CHECK: test_vreinterpret_f32_s16
   7491 float32x2_t test_vreinterpret_f32_s16(int16x4_t a) {
   7492   return vreinterpret_f32_s16(a);
   7493 }
   7494 
   7495 // CHECK: test_vreinterpret_f32_s32
   7496 float32x2_t test_vreinterpret_f32_s32(int32x2_t a) {
   7497   return vreinterpret_f32_s32(a);
   7498 }
   7499 
   7500 // CHECK: test_vreinterpret_f32_s64
   7501 float32x2_t test_vreinterpret_f32_s64(int64x1_t a) {
   7502   return vreinterpret_f32_s64(a);
   7503 }
   7504 
   7505 // CHECK: test_vreinterpret_f32_u8
   7506 float32x2_t test_vreinterpret_f32_u8(uint8x8_t a) {
   7507   return vreinterpret_f32_u8(a);
   7508 }
   7509 
   7510 // CHECK: test_vreinterpret_f32_u16
   7511 float32x2_t test_vreinterpret_f32_u16(uint16x4_t a) {
   7512   return vreinterpret_f32_u16(a);
   7513 }
   7514 
   7515 // CHECK: test_vreinterpret_f32_u32
   7516 float32x2_t test_vreinterpret_f32_u32(uint32x2_t a) {
   7517   return vreinterpret_f32_u32(a);
   7518 }
   7519 
   7520 // CHECK: test_vreinterpret_f32_u64
   7521 float32x2_t test_vreinterpret_f32_u64(uint64x1_t a) {
   7522   return vreinterpret_f32_u64(a);
   7523 }
   7524 
   7525 // CHECK: test_vreinterpret_f32_f16
   7526 float32x2_t test_vreinterpret_f32_f16(float16x4_t a) {
   7527   return vreinterpret_f32_f16(a);
   7528 }
   7529 
   7530 // CHECK: test_vreinterpret_f32_p8
   7531 float32x2_t test_vreinterpret_f32_p8(poly8x8_t a) {
   7532   return vreinterpret_f32_p8(a);
   7533 }
   7534 
   7535 // CHECK: test_vreinterpret_f32_p16
   7536 float32x2_t test_vreinterpret_f32_p16(poly16x4_t a) {
   7537   return vreinterpret_f32_p16(a);
   7538 }
   7539 
   7540 // CHECK: test_vreinterpret_p8_s8
   7541 poly8x8_t test_vreinterpret_p8_s8(int8x8_t a) {
   7542   return vreinterpret_p8_s8(a);
   7543 }
   7544 
   7545 // CHECK: test_vreinterpret_p8_s16
   7546 poly8x8_t test_vreinterpret_p8_s16(int16x4_t a) {
   7547   return vreinterpret_p8_s16(a);
   7548 }
   7549 
   7550 // CHECK: test_vreinterpret_p8_s32
   7551 poly8x8_t test_vreinterpret_p8_s32(int32x2_t a) {
   7552   return vreinterpret_p8_s32(a);
   7553 }
   7554 
   7555 // CHECK: test_vreinterpret_p8_s64
   7556 poly8x8_t test_vreinterpret_p8_s64(int64x1_t a) {
   7557   return vreinterpret_p8_s64(a);
   7558 }
   7559 
   7560 // CHECK: test_vreinterpret_p8_u8
   7561 poly8x8_t test_vreinterpret_p8_u8(uint8x8_t a) {
   7562   return vreinterpret_p8_u8(a);
   7563 }
   7564 
   7565 // CHECK: test_vreinterpret_p8_u16
   7566 poly8x8_t test_vreinterpret_p8_u16(uint16x4_t a) {
   7567   return vreinterpret_p8_u16(a);
   7568 }
   7569 
   7570 // CHECK: test_vreinterpret_p8_u32
   7571 poly8x8_t test_vreinterpret_p8_u32(uint32x2_t a) {
   7572   return vreinterpret_p8_u32(a);
   7573 }
   7574 
   7575 // CHECK: test_vreinterpret_p8_u64
   7576 poly8x8_t test_vreinterpret_p8_u64(uint64x1_t a) {
   7577   return vreinterpret_p8_u64(a);
   7578 }
   7579 
   7580 // CHECK: test_vreinterpret_p8_f16
   7581 poly8x8_t test_vreinterpret_p8_f16(float16x4_t a) {
   7582   return vreinterpret_p8_f16(a);
   7583 }
   7584 
   7585 // CHECK: test_vreinterpret_p8_f32
   7586 poly8x8_t test_vreinterpret_p8_f32(float32x2_t a) {
   7587   return vreinterpret_p8_f32(a);
   7588 }
   7589 
   7590 // CHECK: test_vreinterpret_p8_p16
   7591 poly8x8_t test_vreinterpret_p8_p16(poly16x4_t a) {
   7592   return vreinterpret_p8_p16(a);
   7593 }
   7594 
   7595 // CHECK: test_vreinterpret_p16_s8
   7596 poly16x4_t test_vreinterpret_p16_s8(int8x8_t a) {
   7597   return vreinterpret_p16_s8(a);
   7598 }
   7599 
   7600 // CHECK: test_vreinterpret_p16_s16
   7601 poly16x4_t test_vreinterpret_p16_s16(int16x4_t a) {
   7602   return vreinterpret_p16_s16(a);
   7603 }
   7604 
   7605 // CHECK: test_vreinterpret_p16_s32
   7606 poly16x4_t test_vreinterpret_p16_s32(int32x2_t a) {
   7607   return vreinterpret_p16_s32(a);
   7608 }
   7609 
   7610 // CHECK: test_vreinterpret_p16_s64
   7611 poly16x4_t test_vreinterpret_p16_s64(int64x1_t a) {
   7612   return vreinterpret_p16_s64(a);
   7613 }
   7614 
   7615 // CHECK: test_vreinterpret_p16_u8
   7616 poly16x4_t test_vreinterpret_p16_u8(uint8x8_t a) {
   7617   return vreinterpret_p16_u8(a);
   7618 }
   7619 
   7620 // CHECK: test_vreinterpret_p16_u16
   7621 poly16x4_t test_vreinterpret_p16_u16(uint16x4_t a) {
   7622   return vreinterpret_p16_u16(a);
   7623 }
   7624 
   7625 // CHECK: test_vreinterpret_p16_u32
   7626 poly16x4_t test_vreinterpret_p16_u32(uint32x2_t a) {
   7627   return vreinterpret_p16_u32(a);
   7628 }
   7629 
   7630 // CHECK: test_vreinterpret_p16_u64
   7631 poly16x4_t test_vreinterpret_p16_u64(uint64x1_t a) {
   7632   return vreinterpret_p16_u64(a);
   7633 }
   7634 
   7635 // CHECK: test_vreinterpret_p16_f16
   7636 poly16x4_t test_vreinterpret_p16_f16(float16x4_t a) {
   7637   return vreinterpret_p16_f16(a);
   7638 }
   7639 
   7640 // CHECK: test_vreinterpret_p16_f32
   7641 poly16x4_t test_vreinterpret_p16_f32(float32x2_t a) {
   7642   return vreinterpret_p16_f32(a);
   7643 }
   7644 
   7645 // CHECK: test_vreinterpret_p16_p8
   7646 poly16x4_t test_vreinterpret_p16_p8(poly8x8_t a) {
   7647   return vreinterpret_p16_p8(a);
   7648 }
   7649 
   7650 // CHECK: test_vreinterpretq_s8_s16
   7651 int8x16_t test_vreinterpretq_s8_s16(int16x8_t a) {
   7652   return vreinterpretq_s8_s16(a);
   7653 }
   7654 
   7655 // CHECK: test_vreinterpretq_s8_s32
   7656 int8x16_t test_vreinterpretq_s8_s32(int32x4_t a) {
   7657   return vreinterpretq_s8_s32(a);
   7658 }
   7659 
   7660 // CHECK: test_vreinterpretq_s8_s64
   7661 int8x16_t test_vreinterpretq_s8_s64(int64x2_t a) {
   7662   return vreinterpretq_s8_s64(a);
   7663 }
   7664 
   7665 // CHECK: test_vreinterpretq_s8_u8
   7666 int8x16_t test_vreinterpretq_s8_u8(uint8x16_t a) {
   7667   return vreinterpretq_s8_u8(a);
   7668 }
   7669 
   7670 // CHECK: test_vreinterpretq_s8_u16
   7671 int8x16_t test_vreinterpretq_s8_u16(uint16x8_t a) {
   7672   return vreinterpretq_s8_u16(a);
   7673 }
   7674 
   7675 // CHECK: test_vreinterpretq_s8_u32
   7676 int8x16_t test_vreinterpretq_s8_u32(uint32x4_t a) {
   7677   return vreinterpretq_s8_u32(a);
   7678 }
   7679 
   7680 // CHECK: test_vreinterpretq_s8_u64
   7681 int8x16_t test_vreinterpretq_s8_u64(uint64x2_t a) {
   7682   return vreinterpretq_s8_u64(a);
   7683 }
   7684 
   7685 // CHECK: test_vreinterpretq_s8_f16
   7686 int8x16_t test_vreinterpretq_s8_f16(float16x8_t a) {
   7687   return vreinterpretq_s8_f16(a);
   7688 }
   7689 
   7690 // CHECK: test_vreinterpretq_s8_f32
   7691 int8x16_t test_vreinterpretq_s8_f32(float32x4_t a) {
   7692   return vreinterpretq_s8_f32(a);
   7693 }
   7694 
   7695 // CHECK: test_vreinterpretq_s8_p8
   7696 int8x16_t test_vreinterpretq_s8_p8(poly8x16_t a) {
   7697   return vreinterpretq_s8_p8(a);
   7698 }
   7699 
   7700 // CHECK: test_vreinterpretq_s8_p16
   7701 int8x16_t test_vreinterpretq_s8_p16(poly16x8_t a) {
   7702   return vreinterpretq_s8_p16(a);
   7703 }
   7704 
   7705 // CHECK: test_vreinterpretq_s16_s8
   7706 int16x8_t test_vreinterpretq_s16_s8(int8x16_t a) {
   7707   return vreinterpretq_s16_s8(a);
   7708 }
   7709 
   7710 // CHECK: test_vreinterpretq_s16_s32
   7711 int16x8_t test_vreinterpretq_s16_s32(int32x4_t a) {
   7712   return vreinterpretq_s16_s32(a);
   7713 }
   7714 
   7715 // CHECK: test_vreinterpretq_s16_s64
   7716 int16x8_t test_vreinterpretq_s16_s64(int64x2_t a) {
   7717   return vreinterpretq_s16_s64(a);
   7718 }
   7719 
   7720 // CHECK: test_vreinterpretq_s16_u8
   7721 int16x8_t test_vreinterpretq_s16_u8(uint8x16_t a) {
   7722   return vreinterpretq_s16_u8(a);
   7723 }
   7724 
   7725 // CHECK: test_vreinterpretq_s16_u16
   7726 int16x8_t test_vreinterpretq_s16_u16(uint16x8_t a) {
   7727   return vreinterpretq_s16_u16(a);
   7728 }
   7729 
   7730 // CHECK: test_vreinterpretq_s16_u32
   7731 int16x8_t test_vreinterpretq_s16_u32(uint32x4_t a) {
   7732   return vreinterpretq_s16_u32(a);
   7733 }
   7734 
   7735 // CHECK: test_vreinterpretq_s16_u64
   7736 int16x8_t test_vreinterpretq_s16_u64(uint64x2_t a) {
   7737   return vreinterpretq_s16_u64(a);
   7738 }
   7739 
   7740 // CHECK: test_vreinterpretq_s16_f16
   7741 int16x8_t test_vreinterpretq_s16_f16(float16x8_t a) {
   7742   return vreinterpretq_s16_f16(a);
   7743 }
   7744 
   7745 // CHECK: test_vreinterpretq_s16_f32
   7746 int16x8_t test_vreinterpretq_s16_f32(float32x4_t a) {
   7747   return vreinterpretq_s16_f32(a);
   7748 }
   7749 
   7750 // CHECK: test_vreinterpretq_s16_p8
   7751 int16x8_t test_vreinterpretq_s16_p8(poly8x16_t a) {
   7752   return vreinterpretq_s16_p8(a);
   7753 }
   7754 
   7755 // CHECK: test_vreinterpretq_s16_p16
   7756 int16x8_t test_vreinterpretq_s16_p16(poly16x8_t a) {
   7757   return vreinterpretq_s16_p16(a);
   7758 }
   7759 
   7760 // CHECK: test_vreinterpretq_s32_s8
   7761 int32x4_t test_vreinterpretq_s32_s8(int8x16_t a) {
   7762   return vreinterpretq_s32_s8(a);
   7763 }
   7764 
   7765 // CHECK: test_vreinterpretq_s32_s16
   7766 int32x4_t test_vreinterpretq_s32_s16(int16x8_t a) {
   7767   return vreinterpretq_s32_s16(a);
   7768 }
   7769 
   7770 // CHECK: test_vreinterpretq_s32_s64
   7771 int32x4_t test_vreinterpretq_s32_s64(int64x2_t a) {
   7772   return vreinterpretq_s32_s64(a);
   7773 }
   7774 
   7775 // CHECK: test_vreinterpretq_s32_u8
   7776 int32x4_t test_vreinterpretq_s32_u8(uint8x16_t a) {
   7777   return vreinterpretq_s32_u8(a);
   7778 }
   7779 
   7780 // CHECK: test_vreinterpretq_s32_u16
   7781 int32x4_t test_vreinterpretq_s32_u16(uint16x8_t a) {
   7782   return vreinterpretq_s32_u16(a);
   7783 }
   7784 
   7785 // CHECK: test_vreinterpretq_s32_u32
   7786 int32x4_t test_vreinterpretq_s32_u32(uint32x4_t a) {
   7787   return vreinterpretq_s32_u32(a);
   7788 }
   7789 
   7790 // CHECK: test_vreinterpretq_s32_u64
   7791 int32x4_t test_vreinterpretq_s32_u64(uint64x2_t a) {
   7792   return vreinterpretq_s32_u64(a);
   7793 }
   7794 
   7795 // CHECK: test_vreinterpretq_s32_f16
   7796 int32x4_t test_vreinterpretq_s32_f16(float16x8_t a) {
   7797   return vreinterpretq_s32_f16(a);
   7798 }
   7799 
   7800 // CHECK: test_vreinterpretq_s32_f32
   7801 int32x4_t test_vreinterpretq_s32_f32(float32x4_t a) {
   7802   return vreinterpretq_s32_f32(a);
   7803 }
   7804 
   7805 // CHECK: test_vreinterpretq_s32_p8
   7806 int32x4_t test_vreinterpretq_s32_p8(poly8x16_t a) {
   7807   return vreinterpretq_s32_p8(a);
   7808 }
   7809 
   7810 // CHECK: test_vreinterpretq_s32_p16
   7811 int32x4_t test_vreinterpretq_s32_p16(poly16x8_t a) {
   7812   return vreinterpretq_s32_p16(a);
   7813 }
   7814 
   7815 // CHECK: test_vreinterpretq_s64_s8
   7816 int64x2_t test_vreinterpretq_s64_s8(int8x16_t a) {
   7817   return vreinterpretq_s64_s8(a);
   7818 }
   7819 
   7820 // CHECK: test_vreinterpretq_s64_s16
   7821 int64x2_t test_vreinterpretq_s64_s16(int16x8_t a) {
   7822   return vreinterpretq_s64_s16(a);
   7823 }
   7824 
   7825 // CHECK: test_vreinterpretq_s64_s32
   7826 int64x2_t test_vreinterpretq_s64_s32(int32x4_t a) {
   7827   return vreinterpretq_s64_s32(a);
   7828 }
   7829 
   7830 // CHECK: test_vreinterpretq_s64_u8
   7831 int64x2_t test_vreinterpretq_s64_u8(uint8x16_t a) {
   7832   return vreinterpretq_s64_u8(a);
   7833 }
   7834 
   7835 // CHECK: test_vreinterpretq_s64_u16
   7836 int64x2_t test_vreinterpretq_s64_u16(uint16x8_t a) {
   7837   return vreinterpretq_s64_u16(a);
   7838 }
   7839 
   7840 // CHECK: test_vreinterpretq_s64_u32
   7841 int64x2_t test_vreinterpretq_s64_u32(uint32x4_t a) {
   7842   return vreinterpretq_s64_u32(a);
   7843 }
   7844 
   7845 // CHECK: test_vreinterpretq_s64_u64
   7846 int64x2_t test_vreinterpretq_s64_u64(uint64x2_t a) {
   7847   return vreinterpretq_s64_u64(a);
   7848 }
   7849 
   7850 // CHECK: test_vreinterpretq_s64_f16
   7851 int64x2_t test_vreinterpretq_s64_f16(float16x8_t a) {
   7852   return vreinterpretq_s64_f16(a);
   7853 }
   7854 
   7855 // CHECK: test_vreinterpretq_s64_f32
   7856 int64x2_t test_vreinterpretq_s64_f32(float32x4_t a) {
   7857   return vreinterpretq_s64_f32(a);
   7858 }
   7859 
   7860 // CHECK: test_vreinterpretq_s64_p8
   7861 int64x2_t test_vreinterpretq_s64_p8(poly8x16_t a) {
   7862   return vreinterpretq_s64_p8(a);
   7863 }
   7864 
   7865 // CHECK: test_vreinterpretq_s64_p16
   7866 int64x2_t test_vreinterpretq_s64_p16(poly16x8_t a) {
   7867   return vreinterpretq_s64_p16(a);
   7868 }
   7869 
   7870 // CHECK: test_vreinterpretq_u8_s8
   7871 uint8x16_t test_vreinterpretq_u8_s8(int8x16_t a) {
   7872   return vreinterpretq_u8_s8(a);
   7873 }
   7874 
   7875 // CHECK: test_vreinterpretq_u8_s16
   7876 uint8x16_t test_vreinterpretq_u8_s16(int16x8_t a) {
   7877   return vreinterpretq_u8_s16(a);
   7878 }
   7879 
   7880 // CHECK: test_vreinterpretq_u8_s32
   7881 uint8x16_t test_vreinterpretq_u8_s32(int32x4_t a) {
   7882   return vreinterpretq_u8_s32(a);
   7883 }
   7884 
   7885 // CHECK: test_vreinterpretq_u8_s64
   7886 uint8x16_t test_vreinterpretq_u8_s64(int64x2_t a) {
   7887   return vreinterpretq_u8_s64(a);
   7888 }
   7889 
   7890 // CHECK: test_vreinterpretq_u8_u16
   7891 uint8x16_t test_vreinterpretq_u8_u16(uint16x8_t a) {
   7892   return vreinterpretq_u8_u16(a);
   7893 }
   7894 
   7895 // CHECK: test_vreinterpretq_u8_u32
   7896 uint8x16_t test_vreinterpretq_u8_u32(uint32x4_t a) {
   7897   return vreinterpretq_u8_u32(a);
   7898 }
   7899 
   7900 // CHECK: test_vreinterpretq_u8_u64
   7901 uint8x16_t test_vreinterpretq_u8_u64(uint64x2_t a) {
   7902   return vreinterpretq_u8_u64(a);
   7903 }
   7904 
   7905 // CHECK: test_vreinterpretq_u8_f16
   7906 uint8x16_t test_vreinterpretq_u8_f16(float16x8_t a) {
   7907   return vreinterpretq_u8_f16(a);
   7908 }
   7909 
   7910 // CHECK: test_vreinterpretq_u8_f32
   7911 uint8x16_t test_vreinterpretq_u8_f32(float32x4_t a) {
   7912   return vreinterpretq_u8_f32(a);
   7913 }
   7914 
   7915 // CHECK: test_vreinterpretq_u8_p8
   7916 uint8x16_t test_vreinterpretq_u8_p8(poly8x16_t a) {
   7917   return vreinterpretq_u8_p8(a);
   7918 }
   7919 
   7920 // CHECK: test_vreinterpretq_u8_p16
   7921 uint8x16_t test_vreinterpretq_u8_p16(poly16x8_t a) {
   7922   return vreinterpretq_u8_p16(a);
   7923 }
   7924 
   7925 // CHECK: test_vreinterpretq_u16_s8
   7926 uint16x8_t test_vreinterpretq_u16_s8(int8x16_t a) {
   7927   return vreinterpretq_u16_s8(a);
   7928 }
   7929 
   7930 // CHECK: test_vreinterpretq_u16_s16
   7931 uint16x8_t test_vreinterpretq_u16_s16(int16x8_t a) {
   7932   return vreinterpretq_u16_s16(a);
   7933 }
   7934 
   7935 // CHECK: test_vreinterpretq_u16_s32
   7936 uint16x8_t test_vreinterpretq_u16_s32(int32x4_t a) {
   7937   return vreinterpretq_u16_s32(a);
   7938 }
   7939 
   7940 // CHECK: test_vreinterpretq_u16_s64
   7941 uint16x8_t test_vreinterpretq_u16_s64(int64x2_t a) {
   7942   return vreinterpretq_u16_s64(a);
   7943 }
   7944 
   7945 // CHECK: test_vreinterpretq_u16_u8
   7946 uint16x8_t test_vreinterpretq_u16_u8(uint8x16_t a) {
   7947   return vreinterpretq_u16_u8(a);
   7948 }
   7949 
   7950 // CHECK: test_vreinterpretq_u16_u32
   7951 uint16x8_t test_vreinterpretq_u16_u32(uint32x4_t a) {
   7952   return vreinterpretq_u16_u32(a);
   7953 }
   7954 
   7955 // CHECK: test_vreinterpretq_u16_u64
   7956 uint16x8_t test_vreinterpretq_u16_u64(uint64x2_t a) {
   7957   return vreinterpretq_u16_u64(a);
   7958 }
   7959 
   7960 // CHECK: test_vreinterpretq_u16_f16
   7961 uint16x8_t test_vreinterpretq_u16_f16(float16x8_t a) {
   7962   return vreinterpretq_u16_f16(a);
   7963 }
   7964 
   7965 // CHECK: test_vreinterpretq_u16_f32
   7966 uint16x8_t test_vreinterpretq_u16_f32(float32x4_t a) {
   7967   return vreinterpretq_u16_f32(a);
   7968 }
   7969 
   7970 // CHECK: test_vreinterpretq_u16_p8
   7971 uint16x8_t test_vreinterpretq_u16_p8(poly8x16_t a) {
   7972   return vreinterpretq_u16_p8(a);
   7973 }
   7974 
   7975 // CHECK: test_vreinterpretq_u16_p16
   7976 uint16x8_t test_vreinterpretq_u16_p16(poly16x8_t a) {
   7977   return vreinterpretq_u16_p16(a);
   7978 }
   7979 
   7980 // CHECK: test_vreinterpretq_u32_s8
   7981 uint32x4_t test_vreinterpretq_u32_s8(int8x16_t a) {
   7982   return vreinterpretq_u32_s8(a);
   7983 }
   7984 
   7985 // CHECK: test_vreinterpretq_u32_s16
   7986 uint32x4_t test_vreinterpretq_u32_s16(int16x8_t a) {
   7987   return vreinterpretq_u32_s16(a);
   7988 }
   7989 
   7990 // CHECK: test_vreinterpretq_u32_s32
   7991 uint32x4_t test_vreinterpretq_u32_s32(int32x4_t a) {
   7992   return vreinterpretq_u32_s32(a);
   7993 }
   7994 
   7995 // CHECK: test_vreinterpretq_u32_s64
   7996 uint32x4_t test_vreinterpretq_u32_s64(int64x2_t a) {
   7997   return vreinterpretq_u32_s64(a);
   7998 }
   7999 
   8000 // CHECK: test_vreinterpretq_u32_u8
   8001 uint32x4_t test_vreinterpretq_u32_u8(uint8x16_t a) {
   8002   return vreinterpretq_u32_u8(a);
   8003 }
   8004 
   8005 // CHECK: test_vreinterpretq_u32_u16
   8006 uint32x4_t test_vreinterpretq_u32_u16(uint16x8_t a) {
   8007   return vreinterpretq_u32_u16(a);
   8008 }
   8009 
   8010 // CHECK: test_vreinterpretq_u32_u64
   8011 uint32x4_t test_vreinterpretq_u32_u64(uint64x2_t a) {
   8012   return vreinterpretq_u32_u64(a);
   8013 }
   8014 
   8015 // CHECK: test_vreinterpretq_u32_f16
   8016 uint32x4_t test_vreinterpretq_u32_f16(float16x8_t a) {
   8017   return vreinterpretq_u32_f16(a);
   8018 }
   8019 
   8020 // CHECK: test_vreinterpretq_u32_f32
   8021 uint32x4_t test_vreinterpretq_u32_f32(float32x4_t a) {
   8022   return vreinterpretq_u32_f32(a);
   8023 }
   8024 
   8025 // CHECK: test_vreinterpretq_u32_p8
   8026 uint32x4_t test_vreinterpretq_u32_p8(poly8x16_t a) {
   8027   return vreinterpretq_u32_p8(a);
   8028 }
   8029 
   8030 // CHECK: test_vreinterpretq_u32_p16
   8031 uint32x4_t test_vreinterpretq_u32_p16(poly16x8_t a) {
   8032   return vreinterpretq_u32_p16(a);
   8033 }
   8034 
   8035 // CHECK: test_vreinterpretq_u64_s8
   8036 uint64x2_t test_vreinterpretq_u64_s8(int8x16_t a) {
   8037   return vreinterpretq_u64_s8(a);
   8038 }
   8039 
   8040 // CHECK: test_vreinterpretq_u64_s16
   8041 uint64x2_t test_vreinterpretq_u64_s16(int16x8_t a) {
   8042   return vreinterpretq_u64_s16(a);
   8043 }
   8044 
   8045 // CHECK: test_vreinterpretq_u64_s32
   8046 uint64x2_t test_vreinterpretq_u64_s32(int32x4_t a) {
   8047   return vreinterpretq_u64_s32(a);
   8048 }
   8049 
   8050 // CHECK: test_vreinterpretq_u64_s64
   8051 uint64x2_t test_vreinterpretq_u64_s64(int64x2_t a) {
   8052   return vreinterpretq_u64_s64(a);
   8053 }
   8054 
   8055 // CHECK: test_vreinterpretq_u64_u8
   8056 uint64x2_t test_vreinterpretq_u64_u8(uint8x16_t a) {
   8057   return vreinterpretq_u64_u8(a);
   8058 }
   8059 
   8060 // CHECK: test_vreinterpretq_u64_u16
   8061 uint64x2_t test_vreinterpretq_u64_u16(uint16x8_t a) {
   8062   return vreinterpretq_u64_u16(a);
   8063 }
   8064 
   8065 // CHECK: test_vreinterpretq_u64_u32
   8066 uint64x2_t test_vreinterpretq_u64_u32(uint32x4_t a) {
   8067   return vreinterpretq_u64_u32(a);
   8068 }
   8069 
   8070 // CHECK: test_vreinterpretq_u64_f16
   8071 uint64x2_t test_vreinterpretq_u64_f16(float16x8_t a) {
   8072   return vreinterpretq_u64_f16(a);
   8073 }
   8074 
   8075 // CHECK: test_vreinterpretq_u64_f32
   8076 uint64x2_t test_vreinterpretq_u64_f32(float32x4_t a) {
   8077   return vreinterpretq_u64_f32(a);
   8078 }
   8079 
   8080 // CHECK: test_vreinterpretq_u64_p8
   8081 uint64x2_t test_vreinterpretq_u64_p8(poly8x16_t a) {
   8082   return vreinterpretq_u64_p8(a);
   8083 }
   8084 
   8085 // CHECK: test_vreinterpretq_u64_p16
   8086 uint64x2_t test_vreinterpretq_u64_p16(poly16x8_t a) {
   8087   return vreinterpretq_u64_p16(a);
   8088 }
   8089 
   8090 // CHECK: test_vreinterpretq_f16_s8
   8091 float16x8_t test_vreinterpretq_f16_s8(int8x16_t a) {
   8092   return vreinterpretq_f16_s8(a);
   8093 }
   8094 
   8095 // CHECK: test_vreinterpretq_f16_s16
   8096 float16x8_t test_vreinterpretq_f16_s16(int16x8_t a) {
   8097   return vreinterpretq_f16_s16(a);
   8098 }
   8099 
   8100 // CHECK: test_vreinterpretq_f16_s32
   8101 float16x8_t test_vreinterpretq_f16_s32(int32x4_t a) {
   8102   return vreinterpretq_f16_s32(a);
   8103 }
   8104 
   8105 // CHECK: test_vreinterpretq_f16_s64
   8106 float16x8_t test_vreinterpretq_f16_s64(int64x2_t a) {
   8107   return vreinterpretq_f16_s64(a);
   8108 }
   8109 
   8110 // CHECK: test_vreinterpretq_f16_u8
   8111 float16x8_t test_vreinterpretq_f16_u8(uint8x16_t a) {
   8112   return vreinterpretq_f16_u8(a);
   8113 }
   8114 
   8115 // CHECK: test_vreinterpretq_f16_u16
   8116 float16x8_t test_vreinterpretq_f16_u16(uint16x8_t a) {
   8117   return vreinterpretq_f16_u16(a);
   8118 }
   8119 
   8120 // CHECK: test_vreinterpretq_f16_u32
   8121 float16x8_t test_vreinterpretq_f16_u32(uint32x4_t a) {
   8122   return vreinterpretq_f16_u32(a);
   8123 }
   8124 
   8125 // CHECK: test_vreinterpretq_f16_u64
   8126 float16x8_t test_vreinterpretq_f16_u64(uint64x2_t a) {
   8127   return vreinterpretq_f16_u64(a);
   8128 }
   8129 
   8130 // CHECK: test_vreinterpretq_f16_f32
   8131 float16x8_t test_vreinterpretq_f16_f32(float32x4_t a) {
   8132   return vreinterpretq_f16_f32(a);
   8133 }
   8134 
   8135 // CHECK: test_vreinterpretq_f16_p8
   8136 float16x8_t test_vreinterpretq_f16_p8(poly8x16_t a) {
   8137   return vreinterpretq_f16_p8(a);
   8138 }
   8139 
   8140 // CHECK: test_vreinterpretq_f16_p16
   8141 float16x8_t test_vreinterpretq_f16_p16(poly16x8_t a) {
   8142   return vreinterpretq_f16_p16(a);
   8143 }
   8144 
   8145 // CHECK: test_vreinterpretq_f32_s8
   8146 float32x4_t test_vreinterpretq_f32_s8(int8x16_t a) {
   8147   return vreinterpretq_f32_s8(a);
   8148 }
   8149 
   8150 // CHECK: test_vreinterpretq_f32_s16
   8151 float32x4_t test_vreinterpretq_f32_s16(int16x8_t a) {
   8152   return vreinterpretq_f32_s16(a);
   8153 }
   8154 
   8155 // CHECK: test_vreinterpretq_f32_s32
   8156 float32x4_t test_vreinterpretq_f32_s32(int32x4_t a) {
   8157   return vreinterpretq_f32_s32(a);
   8158 }
   8159 
   8160 // CHECK: test_vreinterpretq_f32_s64
   8161 float32x4_t test_vreinterpretq_f32_s64(int64x2_t a) {
   8162   return vreinterpretq_f32_s64(a);
   8163 }
   8164 
   8165 // CHECK: test_vreinterpretq_f32_u8
   8166 float32x4_t test_vreinterpretq_f32_u8(uint8x16_t a) {
   8167   return vreinterpretq_f32_u8(a);
   8168 }
   8169 
   8170 // CHECK: test_vreinterpretq_f32_u16
   8171 float32x4_t test_vreinterpretq_f32_u16(uint16x8_t a) {
   8172   return vreinterpretq_f32_u16(a);
   8173 }
   8174 
   8175 // CHECK: test_vreinterpretq_f32_u32
   8176 float32x4_t test_vreinterpretq_f32_u32(uint32x4_t a) {
   8177   return vreinterpretq_f32_u32(a);
   8178 }
   8179 
   8180 // CHECK: test_vreinterpretq_f32_u64
   8181 float32x4_t test_vreinterpretq_f32_u64(uint64x2_t a) {
   8182   return vreinterpretq_f32_u64(a);
   8183 }
   8184 
   8185 // CHECK: test_vreinterpretq_f32_f16
   8186 float32x4_t test_vreinterpretq_f32_f16(float16x8_t a) {
   8187   return vreinterpretq_f32_f16(a);
   8188 }
   8189 
   8190 // CHECK: test_vreinterpretq_f32_p8
   8191 float32x4_t test_vreinterpretq_f32_p8(poly8x16_t a) {
   8192   return vreinterpretq_f32_p8(a);
   8193 }
   8194 
   8195 // CHECK: test_vreinterpretq_f32_p16
   8196 float32x4_t test_vreinterpretq_f32_p16(poly16x8_t a) {
   8197   return vreinterpretq_f32_p16(a);
   8198 }
   8199 
   8200 // CHECK: test_vreinterpretq_p8_s8
   8201 poly8x16_t test_vreinterpretq_p8_s8(int8x16_t a) {
   8202   return vreinterpretq_p8_s8(a);
   8203 }
   8204 
   8205 // CHECK: test_vreinterpretq_p8_s16
   8206 poly8x16_t test_vreinterpretq_p8_s16(int16x8_t a) {
   8207   return vreinterpretq_p8_s16(a);
   8208 }
   8209 
   8210 // CHECK: test_vreinterpretq_p8_s32
   8211 poly8x16_t test_vreinterpretq_p8_s32(int32x4_t a) {
   8212   return vreinterpretq_p8_s32(a);
   8213 }
   8214 
   8215 // CHECK: test_vreinterpretq_p8_s64
   8216 poly8x16_t test_vreinterpretq_p8_s64(int64x2_t a) {
   8217   return vreinterpretq_p8_s64(a);
   8218 }
   8219 
   8220 // CHECK: test_vreinterpretq_p8_u8
   8221 poly8x16_t test_vreinterpretq_p8_u8(uint8x16_t a) {
   8222   return vreinterpretq_p8_u8(a);
   8223 }
   8224 
   8225 // CHECK: test_vreinterpretq_p8_u16
   8226 poly8x16_t test_vreinterpretq_p8_u16(uint16x8_t a) {
   8227   return vreinterpretq_p8_u16(a);
   8228 }
   8229 
   8230 // CHECK: test_vreinterpretq_p8_u32
   8231 poly8x16_t test_vreinterpretq_p8_u32(uint32x4_t a) {
   8232   return vreinterpretq_p8_u32(a);
   8233 }
   8234 
   8235 // CHECK: test_vreinterpretq_p8_u64
   8236 poly8x16_t test_vreinterpretq_p8_u64(uint64x2_t a) {
   8237   return vreinterpretq_p8_u64(a);
   8238 }
   8239 
   8240 // CHECK: test_vreinterpretq_p8_f16
   8241 poly8x16_t test_vreinterpretq_p8_f16(float16x8_t a) {
   8242   return vreinterpretq_p8_f16(a);
   8243 }
   8244 
   8245 // CHECK: test_vreinterpretq_p8_f32
   8246 poly8x16_t test_vreinterpretq_p8_f32(float32x4_t a) {
   8247   return vreinterpretq_p8_f32(a);
   8248 }
   8249 
   8250 // CHECK: test_vreinterpretq_p8_p16
   8251 poly8x16_t test_vreinterpretq_p8_p16(poly16x8_t a) {
   8252   return vreinterpretq_p8_p16(a);
   8253 }
   8254 
   8255 // CHECK: test_vreinterpretq_p16_s8
   8256 poly16x8_t test_vreinterpretq_p16_s8(int8x16_t a) {
   8257   return vreinterpretq_p16_s8(a);
   8258 }
   8259 
   8260 // CHECK: test_vreinterpretq_p16_s16
   8261 poly16x8_t test_vreinterpretq_p16_s16(int16x8_t a) {
   8262   return vreinterpretq_p16_s16(a);
   8263 }
   8264 
   8265 // CHECK: test_vreinterpretq_p16_s32
   8266 poly16x8_t test_vreinterpretq_p16_s32(int32x4_t a) {
   8267   return vreinterpretq_p16_s32(a);
   8268 }
   8269 
   8270 // CHECK: test_vreinterpretq_p16_s64
   8271 poly16x8_t test_vreinterpretq_p16_s64(int64x2_t a) {
   8272   return vreinterpretq_p16_s64(a);
   8273 }
   8274 
   8275 // CHECK: test_vreinterpretq_p16_u8
   8276 poly16x8_t test_vreinterpretq_p16_u8(uint8x16_t a) {
   8277   return vreinterpretq_p16_u8(a);
   8278 }
   8279 
   8280 // CHECK: test_vreinterpretq_p16_u16
   8281 poly16x8_t test_vreinterpretq_p16_u16(uint16x8_t a) {
   8282   return vreinterpretq_p16_u16(a);
   8283 }
   8284 
   8285 // CHECK: test_vreinterpretq_p16_u32
   8286 poly16x8_t test_vreinterpretq_p16_u32(uint32x4_t a) {
   8287   return vreinterpretq_p16_u32(a);
   8288 }
   8289 
   8290 // CHECK: test_vreinterpretq_p16_u64
   8291 poly16x8_t test_vreinterpretq_p16_u64(uint64x2_t a) {
   8292   return vreinterpretq_p16_u64(a);
   8293 }
   8294 
   8295 // CHECK: test_vreinterpretq_p16_f16
   8296 poly16x8_t test_vreinterpretq_p16_f16(float16x8_t a) {
   8297   return vreinterpretq_p16_f16(a);
   8298 }
   8299 
   8300 // CHECK: test_vreinterpretq_p16_f32
   8301 poly16x8_t test_vreinterpretq_p16_f32(float32x4_t a) {
   8302   return vreinterpretq_p16_f32(a);
   8303 }
   8304 
   8305 // CHECK: test_vreinterpretq_p16_p8
   8306 poly16x8_t test_vreinterpretq_p16_p8(poly8x16_t a) {
   8307   return vreinterpretq_p16_p8(a);
   8308 }
   8309 
   8310 
   8311 // CHECK: test_vrev16_s8
   8312 // CHECK: vrev16.8 d{{[0-9]+}}, d{{[0-9]+}}
   8313 int8x8_t test_vrev16_s8(int8x8_t a) {
   8314   return vrev16_s8(a);
   8315 }
   8316 
   8317 // CHECK: test_vrev16_u8
   8318 // CHECK: vrev16.8 d{{[0-9]+}}, d{{[0-9]+}}
   8319 uint8x8_t test_vrev16_u8(uint8x8_t a) {
   8320   return vrev16_u8(a);
   8321 }
   8322 
   8323 // CHECK: test_vrev16_p8
   8324 // CHECK: vrev16.8 d{{[0-9]+}}, d{{[0-9]+}}
   8325 poly8x8_t test_vrev16_p8(poly8x8_t a) {
   8326   return vrev16_p8(a);
   8327 }
   8328 
   8329 // CHECK: test_vrev16q_s8
   8330 // CHECK: vrev16.8 q{{[0-9]+}}, q{{[0-9]+}}
   8331 int8x16_t test_vrev16q_s8(int8x16_t a) {
   8332   return vrev16q_s8(a);
   8333 }
   8334 
   8335 // CHECK: test_vrev16q_u8
   8336 // CHECK: vrev16.8 q{{[0-9]+}}, q{{[0-9]+}}
   8337 uint8x16_t test_vrev16q_u8(uint8x16_t a) {
   8338   return vrev16q_u8(a);
   8339 }
   8340 
   8341 // CHECK: test_vrev16q_p8
   8342 // CHECK: vrev16.8 q{{[0-9]+}}, q{{[0-9]+}}
   8343 poly8x16_t test_vrev16q_p8(poly8x16_t a) {
   8344   return vrev16q_p8(a);
   8345 }
   8346 
   8347 
   8348 // CHECK: test_vrev32_s8
   8349 // CHECK: vrev32.8 d{{[0-9]+}}, d{{[0-9]+}}
   8350 int8x8_t test_vrev32_s8(int8x8_t a) {
   8351   return vrev32_s8(a);
   8352 }
   8353 
   8354 // CHECK: test_vrev32_s16
   8355 // CHECK: vrev32.16 d{{[0-9]+}}, d{{[0-9]+}}
   8356 int16x4_t test_vrev32_s16(int16x4_t a) {
   8357   return vrev32_s16(a);
   8358 }
   8359 
   8360 // CHECK: test_vrev32_u8
   8361 // CHECK: vrev32.8 d{{[0-9]+}}, d{{[0-9]+}}
   8362 uint8x8_t test_vrev32_u8(uint8x8_t a) {
   8363   return vrev32_u8(a);
   8364 }
   8365 
   8366 // CHECK: test_vrev32_u16
   8367 // CHECK: vrev32.16 d{{[0-9]+}}, d{{[0-9]+}}
   8368 uint16x4_t test_vrev32_u16(uint16x4_t a) {
   8369   return vrev32_u16(a);
   8370 }
   8371 
   8372 // CHECK: test_vrev32_p8
   8373 // CHECK: vrev32.8 d{{[0-9]+}}, d{{[0-9]+}}
   8374 poly8x8_t test_vrev32_p8(poly8x8_t a) {
   8375   return vrev32_p8(a);
   8376 }
   8377 
   8378 // CHECK: test_vrev32_p16
   8379 // CHECK: vrev32.16 d{{[0-9]+}}, d{{[0-9]+}}
   8380 poly16x4_t test_vrev32_p16(poly16x4_t a) {
   8381   return vrev32_p16(a);
   8382 }
   8383 
   8384 // CHECK: test_vrev32q_s8
   8385 // CHECK: vrev32.8 q{{[0-9]+}}, q{{[0-9]+}}
   8386 int8x16_t test_vrev32q_s8(int8x16_t a) {
   8387   return vrev32q_s8(a);
   8388 }
   8389 
   8390 // CHECK: test_vrev32q_s16
   8391 // CHECK: vrev32.16 q{{[0-9]+}}, q{{[0-9]+}}
   8392 int16x8_t test_vrev32q_s16(int16x8_t a) {
   8393   return vrev32q_s16(a);
   8394 }
   8395 
   8396 // CHECK: test_vrev32q_u8
   8397 // CHECK: vrev32.8 q{{[0-9]+}}, q{{[0-9]+}}
   8398 uint8x16_t test_vrev32q_u8(uint8x16_t a) {
   8399   return vrev32q_u8(a);
   8400 }
   8401 
   8402 // CHECK: test_vrev32q_u16
   8403 // CHECK: vrev32.16 q{{[0-9]+}}, q{{[0-9]+}}
   8404 uint16x8_t test_vrev32q_u16(uint16x8_t a) {
   8405   return vrev32q_u16(a);
   8406 }
   8407 
   8408 // CHECK: test_vrev32q_p8
   8409 // CHECK: vrev32.8 q{{[0-9]+}}, q{{[0-9]+}}
   8410 poly8x16_t test_vrev32q_p8(poly8x16_t a) {
   8411   return vrev32q_p8(a);
   8412 }
   8413 
   8414 // CHECK: test_vrev32q_p16
   8415 // CHECK: vrev32.16 q{{[0-9]+}}, q{{[0-9]+}}
   8416 poly16x8_t test_vrev32q_p16(poly16x8_t a) {
   8417   return vrev32q_p16(a);
   8418 }
   8419 
   8420 
   8421 // CHECK: test_vrev64_s8
   8422 // CHECK: vrev64.8 d{{[0-9]+}}, d{{[0-9]+}}
   8423 int8x8_t test_vrev64_s8(int8x8_t a) {
   8424   return vrev64_s8(a);
   8425 }
   8426 
   8427 // CHECK: test_vrev64_s16
   8428 // CHECK: vrev64.16 d{{[0-9]+}}, d{{[0-9]+}}
   8429 int16x4_t test_vrev64_s16(int16x4_t a) {
   8430   return vrev64_s16(a);
   8431 }
   8432 
   8433 // CHECK: test_vrev64_s32
   8434 // CHECK: vrev64.32 d{{[0-9]+}}, d{{[0-9]+}}
   8435 int32x2_t test_vrev64_s32(int32x2_t a) {
   8436   return vrev64_s32(a);
   8437 }
   8438 
   8439 // CHECK: test_vrev64_u8
   8440 // CHECK: vrev64.8 d{{[0-9]+}}, d{{[0-9]+}}
   8441 uint8x8_t test_vrev64_u8(uint8x8_t a) {
   8442   return vrev64_u8(a);
   8443 }
   8444 
   8445 // CHECK: test_vrev64_u16
   8446 // CHECK: vrev64.16 d{{[0-9]+}}, d{{[0-9]+}}
   8447 uint16x4_t test_vrev64_u16(uint16x4_t a) {
   8448   return vrev64_u16(a);
   8449 }
   8450 
   8451 // CHECK: test_vrev64_u32
   8452 // CHECK: vrev64.32 d{{[0-9]+}}, d{{[0-9]+}}
   8453 uint32x2_t test_vrev64_u32(uint32x2_t a) {
   8454   return vrev64_u32(a);
   8455 }
   8456 
   8457 // CHECK: test_vrev64_p8
   8458 // CHECK: vrev64.8 d{{[0-9]+}}, d{{[0-9]+}}
   8459 poly8x8_t test_vrev64_p8(poly8x8_t a) {
   8460   return vrev64_p8(a);
   8461 }
   8462 
   8463 // CHECK: test_vrev64_p16
   8464 // CHECK: vrev64.16 d{{[0-9]+}}, d{{[0-9]+}}
   8465 poly16x4_t test_vrev64_p16(poly16x4_t a) {
   8466   return vrev64_p16(a);
   8467 }
   8468 
   8469 // CHECK: test_vrev64_f32
   8470 // CHECK: vrev64.32 d{{[0-9]+}}, d{{[0-9]+}}
   8471 float32x2_t test_vrev64_f32(float32x2_t a) {
   8472   return vrev64_f32(a);
   8473 }
   8474 
   8475 // CHECK: test_vrev64q_s8
   8476 // CHECK: vrev64.8 q{{[0-9]+}}, q{{[0-9]+}}
   8477 int8x16_t test_vrev64q_s8(int8x16_t a) {
   8478   return vrev64q_s8(a);
   8479 }
   8480 
   8481 // CHECK: test_vrev64q_s16
   8482 // CHECK: vrev64.16 q{{[0-9]+}}, q{{[0-9]+}}
   8483 int16x8_t test_vrev64q_s16(int16x8_t a) {
   8484   return vrev64q_s16(a);
   8485 }
   8486 
   8487 // CHECK: test_vrev64q_s32
   8488 // CHECK: vrev64.32 q{{[0-9]+}}, q{{[0-9]+}}
   8489 int32x4_t test_vrev64q_s32(int32x4_t a) {
   8490   return vrev64q_s32(a);
   8491 }
   8492 
   8493 // CHECK: test_vrev64q_u8
   8494 // CHECK: vrev64.8 q{{[0-9]+}}, q{{[0-9]+}}
   8495 uint8x16_t test_vrev64q_u8(uint8x16_t a) {
   8496   return vrev64q_u8(a);
   8497 }
   8498 
   8499 // CHECK: test_vrev64q_u16
   8500 // CHECK: vrev64.16 q{{[0-9]+}}, q{{[0-9]+}}
   8501 uint16x8_t test_vrev64q_u16(uint16x8_t a) {
   8502   return vrev64q_u16(a);
   8503 }
   8504 
   8505 // CHECK: test_vrev64q_u32
   8506 // CHECK: vrev64.32 q{{[0-9]+}}, q{{[0-9]+}}
   8507 uint32x4_t test_vrev64q_u32(uint32x4_t a) {
   8508   return vrev64q_u32(a);
   8509 }
   8510 
   8511 // CHECK: test_vrev64q_p8
   8512 // CHECK: vrev64.8 q{{[0-9]+}}, q{{[0-9]+}}
   8513 poly8x16_t test_vrev64q_p8(poly8x16_t a) {
   8514   return vrev64q_p8(a);
   8515 }
   8516 
   8517 // CHECK: test_vrev64q_p16
   8518 // CHECK: vrev64.16 q{{[0-9]+}}, q{{[0-9]+}}
   8519 poly16x8_t test_vrev64q_p16(poly16x8_t a) {
   8520   return vrev64q_p16(a);
   8521 }
   8522 
   8523 // CHECK: test_vrev64q_f32
   8524 // CHECK: vrev64.32 q{{[0-9]+}}, q{{[0-9]+}}
   8525 float32x4_t test_vrev64q_f32(float32x4_t a) {
   8526   return vrev64q_f32(a);
   8527 }
   8528 
   8529 
   8530 // CHECK: test_vrhadd_s8
   8531 // CHECK: vrhadd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   8532 int8x8_t test_vrhadd_s8(int8x8_t a, int8x8_t b) {
   8533   return vrhadd_s8(a, b);
   8534 }
   8535 
   8536 // CHECK: test_vrhadd_s16
   8537 // CHECK: vrhadd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   8538 int16x4_t test_vrhadd_s16(int16x4_t a, int16x4_t b) {
   8539   return vrhadd_s16(a, b);
   8540 }
   8541 
   8542 // CHECK: test_vrhadd_s32
   8543 // CHECK: vrhadd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   8544 int32x2_t test_vrhadd_s32(int32x2_t a, int32x2_t b) {
   8545   return vrhadd_s32(a, b);
   8546 }
   8547 
   8548 // CHECK: test_vrhadd_u8
   8549 // CHECK: vrhadd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   8550 uint8x8_t test_vrhadd_u8(uint8x8_t a, uint8x8_t b) {
   8551   return vrhadd_u8(a, b);
   8552 }
   8553 
   8554 // CHECK: test_vrhadd_u16
   8555 // CHECK: vrhadd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   8556 uint16x4_t test_vrhadd_u16(uint16x4_t a, uint16x4_t b) {
   8557   return vrhadd_u16(a, b);
   8558 }
   8559 
   8560 // CHECK: test_vrhadd_u32
   8561 // CHECK: vrhadd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   8562 uint32x2_t test_vrhadd_u32(uint32x2_t a, uint32x2_t b) {
   8563   return vrhadd_u32(a, b);
   8564 }
   8565 
   8566 // CHECK: test_vrhaddq_s8
   8567 // CHECK: vrhadd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   8568 int8x16_t test_vrhaddq_s8(int8x16_t a, int8x16_t b) {
   8569   return vrhaddq_s8(a, b);
   8570 }
   8571 
   8572 // CHECK: test_vrhaddq_s16
   8573 // CHECK: vrhadd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   8574 int16x8_t test_vrhaddq_s16(int16x8_t a, int16x8_t b) {
   8575   return vrhaddq_s16(a, b);
   8576 }
   8577 
   8578 // CHECK: test_vrhaddq_s32
   8579 // CHECK: vrhadd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   8580 int32x4_t test_vrhaddq_s32(int32x4_t a, int32x4_t b) {
   8581   return vrhaddq_s32(a, b);
   8582 }
   8583 
   8584 // CHECK: test_vrhaddq_u8
   8585 // CHECK: vrhadd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   8586 uint8x16_t test_vrhaddq_u8(uint8x16_t a, uint8x16_t b) {
   8587   return vrhaddq_u8(a, b);
   8588 }
   8589 
   8590 // CHECK: test_vrhaddq_u16
   8591 // CHECK: vrhadd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   8592 uint16x8_t test_vrhaddq_u16(uint16x8_t a, uint16x8_t b) {
   8593   return vrhaddq_u16(a, b);
   8594 }
   8595 
   8596 // CHECK: test_vrhaddq_u32
   8597 // CHECK: vrhadd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   8598 uint32x4_t test_vrhaddq_u32(uint32x4_t a, uint32x4_t b) {
   8599   return vrhaddq_u32(a, b);
   8600 }
   8601 
   8602 
   8603 // CHECK: test_vrshl_s8
   8604 // CHECK: vrshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   8605 int8x8_t test_vrshl_s8(int8x8_t a, int8x8_t b) {
   8606   return vrshl_s8(a, b);
   8607 }
   8608 
   8609 // CHECK: test_vrshl_s16
   8610 // CHECK: vrshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   8611 int16x4_t test_vrshl_s16(int16x4_t a, int16x4_t b) {
   8612   return vrshl_s16(a, b);
   8613 }
   8614 
   8615 // CHECK: test_vrshl_s32
   8616 // CHECK: vrshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   8617 int32x2_t test_vrshl_s32(int32x2_t a, int32x2_t b) {
   8618   return vrshl_s32(a, b);
   8619 }
   8620 
   8621 // CHECK: test_vrshl_s64
   8622 // CHECK: vrshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   8623 int64x1_t test_vrshl_s64(int64x1_t a, int64x1_t b) {
   8624   return vrshl_s64(a, b);
   8625 }
   8626 
   8627 // CHECK: test_vrshl_u8
   8628 // CHECK: vrshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   8629 uint8x8_t test_vrshl_u8(uint8x8_t a, int8x8_t b) {
   8630   return vrshl_u8(a, b);
   8631 }
   8632 
   8633 // CHECK: test_vrshl_u16
   8634 // CHECK: vrshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   8635 uint16x4_t test_vrshl_u16(uint16x4_t a, int16x4_t b) {
   8636   return vrshl_u16(a, b);
   8637 }
   8638 
   8639 // CHECK: test_vrshl_u32
   8640 // CHECK: vrshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   8641 uint32x2_t test_vrshl_u32(uint32x2_t a, int32x2_t b) {
   8642   return vrshl_u32(a, b);
   8643 }
   8644 
   8645 // CHECK: test_vrshl_u64
   8646 // CHECK: vrshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   8647 uint64x1_t test_vrshl_u64(uint64x1_t a, int64x1_t b) {
   8648   return vrshl_u64(a, b);
   8649 }
   8650 
   8651 // CHECK: test_vrshlq_s8
   8652 // CHECK: vrshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   8653 int8x16_t test_vrshlq_s8(int8x16_t a, int8x16_t b) {
   8654   return vrshlq_s8(a, b);
   8655 }
   8656 
   8657 // CHECK: test_vrshlq_s16
   8658 // CHECK: vrshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   8659 int16x8_t test_vrshlq_s16(int16x8_t a, int16x8_t b) {
   8660   return vrshlq_s16(a, b);
   8661 }
   8662 
   8663 // CHECK: test_vrshlq_s32
   8664 // CHECK: vrshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   8665 int32x4_t test_vrshlq_s32(int32x4_t a, int32x4_t b) {
   8666   return vrshlq_s32(a, b);
   8667 }
   8668 
   8669 // CHECK: test_vrshlq_s64
   8670 // CHECK: vrshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   8671 int64x2_t test_vrshlq_s64(int64x2_t a, int64x2_t b) {
   8672   return vrshlq_s64(a, b);
   8673 }
   8674 
   8675 // CHECK: test_vrshlq_u8
   8676 // CHECK: vrshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   8677 uint8x16_t test_vrshlq_u8(uint8x16_t a, int8x16_t b) {
   8678   return vrshlq_u8(a, b);
   8679 }
   8680 
   8681 // CHECK: test_vrshlq_u16
   8682 // CHECK: vrshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   8683 uint16x8_t test_vrshlq_u16(uint16x8_t a, int16x8_t b) {
   8684   return vrshlq_u16(a, b);
   8685 }
   8686 
   8687 // CHECK: test_vrshlq_u32
   8688 // CHECK: vrshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   8689 uint32x4_t test_vrshlq_u32(uint32x4_t a, int32x4_t b) {
   8690   return vrshlq_u32(a, b);
   8691 }
   8692 
   8693 // CHECK: test_vrshlq_u64
   8694 // CHECK: vrshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   8695 uint64x2_t test_vrshlq_u64(uint64x2_t a, int64x2_t b) {
   8696   return vrshlq_u64(a, b);
   8697 }
   8698 
   8699 
   8700 // CHECK: test_vrshrn_n_s16
   8701 // CHECK: vrshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   8702 int8x8_t test_vrshrn_n_s16(int16x8_t a) {
   8703   return vrshrn_n_s16(a, 1);
   8704 }
   8705 
   8706 // CHECK: test_vrshrn_n_s32
   8707 // CHECK: vrshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   8708 int16x4_t test_vrshrn_n_s32(int32x4_t a) {
   8709   return vrshrn_n_s32(a, 1);
   8710 }
   8711 
   8712 // CHECK: test_vrshrn_n_s64
   8713 // CHECK: vrshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   8714 int32x2_t test_vrshrn_n_s64(int64x2_t a) {
   8715   return vrshrn_n_s64(a, 1);
   8716 }
   8717 
   8718 // CHECK: test_vrshrn_n_u16
   8719 // CHECK: vrshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   8720 uint8x8_t test_vrshrn_n_u16(uint16x8_t a) {
   8721   return vrshrn_n_u16(a, 1);
   8722 }
   8723 
   8724 // CHECK: test_vrshrn_n_u32
   8725 // CHECK: vrshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   8726 uint16x4_t test_vrshrn_n_u32(uint32x4_t a) {
   8727   return vrshrn_n_u32(a, 1);
   8728 }
   8729 
   8730 // CHECK: test_vrshrn_n_u64
   8731 // CHECK: vrshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   8732 uint32x2_t test_vrshrn_n_u64(uint64x2_t a) {
   8733   return vrshrn_n_u64(a, 1);
   8734 }
   8735 
   8736 
   8737 // CHECK: test_vrshr_n_s8
   8738 // CHECK: vrshr.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   8739 int8x8_t test_vrshr_n_s8(int8x8_t a) {
   8740   return vrshr_n_s8(a, 1);
   8741 }
   8742 
   8743 // CHECK: test_vrshr_n_s16
   8744 // CHECK: vrshr.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   8745 int16x4_t test_vrshr_n_s16(int16x4_t a) {
   8746   return vrshr_n_s16(a, 1);
   8747 }
   8748 
   8749 // CHECK: test_vrshr_n_s32
   8750 // CHECK: vrshr.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   8751 int32x2_t test_vrshr_n_s32(int32x2_t a) {
   8752   return vrshr_n_s32(a, 1);
   8753 }
   8754 
   8755 // CHECK: test_vrshr_n_s64
   8756 // CHECK: vrshr.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   8757 int64x1_t test_vrshr_n_s64(int64x1_t a) {
   8758   return vrshr_n_s64(a, 1);
   8759 }
   8760 
   8761 // CHECK: test_vrshr_n_u8
   8762 // CHECK: vrshr.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   8763 uint8x8_t test_vrshr_n_u8(uint8x8_t a) {
   8764   return vrshr_n_u8(a, 1);
   8765 }
   8766 
   8767 // CHECK: test_vrshr_n_u16
   8768 // CHECK: vrshr.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   8769 uint16x4_t test_vrshr_n_u16(uint16x4_t a) {
   8770   return vrshr_n_u16(a, 1);
   8771 }
   8772 
   8773 // CHECK: test_vrshr_n_u32
   8774 // CHECK: vrshr.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   8775 uint32x2_t test_vrshr_n_u32(uint32x2_t a) {
   8776   return vrshr_n_u32(a, 1);
   8777 }
   8778 
   8779 // CHECK: test_vrshr_n_u64
   8780 // CHECK: vrshr.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   8781 uint64x1_t test_vrshr_n_u64(uint64x1_t a) {
   8782   return vrshr_n_u64(a, 1);
   8783 }
   8784 
   8785 // CHECK: test_vrshrq_n_s8
   8786 // CHECK: vrshr.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   8787 int8x16_t test_vrshrq_n_s8(int8x16_t a) {
   8788   return vrshrq_n_s8(a, 1);
   8789 }
   8790 
   8791 // CHECK: test_vrshrq_n_s16
   8792 // CHECK: vrshr.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   8793 int16x8_t test_vrshrq_n_s16(int16x8_t a) {
   8794   return vrshrq_n_s16(a, 1);
   8795 }
   8796 
   8797 // CHECK: test_vrshrq_n_s32
   8798 // CHECK: vrshr.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   8799 int32x4_t test_vrshrq_n_s32(int32x4_t a) {
   8800   return vrshrq_n_s32(a, 1);
   8801 }
   8802 
   8803 // CHECK: test_vrshrq_n_s64
   8804 // CHECK: vrshr.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   8805 int64x2_t test_vrshrq_n_s64(int64x2_t a) {
   8806   return vrshrq_n_s64(a, 1);
   8807 }
   8808 
   8809 // CHECK: test_vrshrq_n_u8
   8810 // CHECK: vrshr.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   8811 uint8x16_t test_vrshrq_n_u8(uint8x16_t a) {
   8812   return vrshrq_n_u8(a, 1);
   8813 }
   8814 
   8815 // CHECK: test_vrshrq_n_u16
   8816 // CHECK: vrshr.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   8817 uint16x8_t test_vrshrq_n_u16(uint16x8_t a) {
   8818   return vrshrq_n_u16(a, 1);
   8819 }
   8820 
   8821 // CHECK: test_vrshrq_n_u32
   8822 // CHECK: vrshr.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   8823 uint32x4_t test_vrshrq_n_u32(uint32x4_t a) {
   8824   return vrshrq_n_u32(a, 1);
   8825 }
   8826 
   8827 // CHECK: test_vrshrq_n_u64
   8828 // CHECK: vrshr.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   8829 uint64x2_t test_vrshrq_n_u64(uint64x2_t a) {
   8830   return vrshrq_n_u64(a, 1);
   8831 }
   8832 
   8833 
   8834 // CHECK: test_vrsqrte_f32
   8835 // CHECK: vrsqrte.f32 d{{[0-9]+}}, d{{[0-9]+}}
   8836 float32x2_t test_vrsqrte_f32(float32x2_t a) {
   8837   return vrsqrte_f32(a);
   8838 }
   8839 
   8840 // CHECK: test_vrsqrte_u32
   8841 // CHECK: vrsqrte.u32 d{{[0-9]+}}, d{{[0-9]+}}
   8842 uint32x2_t test_vrsqrte_u32(uint32x2_t a) {
   8843   return vrsqrte_u32(a);
   8844 }
   8845 
   8846 // CHECK: test_vrsqrteq_f32
   8847 // CHECK: vrsqrte.f32 q{{[0-9]+}}, q{{[0-9]+}}
   8848 float32x4_t test_vrsqrteq_f32(float32x4_t a) {
   8849   return vrsqrteq_f32(a);
   8850 }
   8851 
   8852 // CHECK: test_vrsqrteq_u32
   8853 // CHECK: vrsqrte.u32 q{{[0-9]+}}, q{{[0-9]+}}
   8854 uint32x4_t test_vrsqrteq_u32(uint32x4_t a) {
   8855   return vrsqrteq_u32(a);
   8856 }
   8857 
   8858 
   8859 // CHECK: test_vrsqrts_f32
   8860 // CHECK: vrsqrts.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   8861 float32x2_t test_vrsqrts_f32(float32x2_t a, float32x2_t b) {
   8862   return vrsqrts_f32(a, b);
   8863 }
   8864 
   8865 // CHECK: test_vrsqrtsq_f32
   8866 // CHECK: vrsqrts.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   8867 float32x4_t test_vrsqrtsq_f32(float32x4_t a, float32x4_t b) {
   8868   return vrsqrtsq_f32(a, b);
   8869 }
   8870 
   8871 
   8872 // CHECK: test_vrsra_n_s8
   8873 // CHECK: vrsra.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   8874 int8x8_t test_vrsra_n_s8(int8x8_t a, int8x8_t b) {
   8875   return vrsra_n_s8(a, b, 1);
   8876 }
   8877 
   8878 // CHECK: test_vrsra_n_s16
   8879 // CHECK: vrsra.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   8880 int16x4_t test_vrsra_n_s16(int16x4_t a, int16x4_t b) {
   8881   return vrsra_n_s16(a, b, 1);
   8882 }
   8883 
   8884 // CHECK: test_vrsra_n_s32
   8885 // CHECK: vrsra.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   8886 int32x2_t test_vrsra_n_s32(int32x2_t a, int32x2_t b) {
   8887   return vrsra_n_s32(a, b, 1);
   8888 }
   8889 
   8890 // CHECK: test_vrsra_n_s64
   8891 // CHECK: vrsra.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   8892 int64x1_t test_vrsra_n_s64(int64x1_t a, int64x1_t b) {
   8893   return vrsra_n_s64(a, b, 1);
   8894 }
   8895 
   8896 // CHECK: test_vrsra_n_u8
   8897 // CHECK: vrsra.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   8898 uint8x8_t test_vrsra_n_u8(uint8x8_t a, uint8x8_t b) {
   8899   return vrsra_n_u8(a, b, 1);
   8900 }
   8901 
   8902 // CHECK: test_vrsra_n_u16
   8903 // CHECK: vrsra.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   8904 uint16x4_t test_vrsra_n_u16(uint16x4_t a, uint16x4_t b) {
   8905   return vrsra_n_u16(a, b, 1);
   8906 }
   8907 
   8908 // CHECK: test_vrsra_n_u32
   8909 // CHECK: vrsra.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   8910 uint32x2_t test_vrsra_n_u32(uint32x2_t a, uint32x2_t b) {
   8911   return vrsra_n_u32(a, b, 1);
   8912 }
   8913 
   8914 // CHECK: test_vrsra_n_u64
   8915 // CHECK: vrsra.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   8916 uint64x1_t test_vrsra_n_u64(uint64x1_t a, uint64x1_t b) {
   8917   return vrsra_n_u64(a, b, 1);
   8918 }
   8919 
   8920 // CHECK: test_vrsraq_n_s8
   8921 // CHECK: vrsra.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   8922 int8x16_t test_vrsraq_n_s8(int8x16_t a, int8x16_t b) {
   8923   return vrsraq_n_s8(a, b, 1);
   8924 }
   8925 
   8926 // CHECK: test_vrsraq_n_s16
   8927 // CHECK: vrsra.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   8928 int16x8_t test_vrsraq_n_s16(int16x8_t a, int16x8_t b) {
   8929   return vrsraq_n_s16(a, b, 1);
   8930 }
   8931 
   8932 // CHECK: test_vrsraq_n_s32
   8933 // CHECK: vrsra.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   8934 int32x4_t test_vrsraq_n_s32(int32x4_t a, int32x4_t b) {
   8935   return vrsraq_n_s32(a, b, 1);
   8936 }
   8937 
   8938 // CHECK: test_vrsraq_n_s64
   8939 // CHECK: vrsra.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   8940 int64x2_t test_vrsraq_n_s64(int64x2_t a, int64x2_t b) {
   8941   return vrsraq_n_s64(a, b, 1);
   8942 }
   8943 
   8944 // CHECK: test_vrsraq_n_u8
   8945 // CHECK: vrsra.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   8946 uint8x16_t test_vrsraq_n_u8(uint8x16_t a, uint8x16_t b) {
   8947   return vrsraq_n_u8(a, b, 1);
   8948 }
   8949 
   8950 // CHECK: test_vrsraq_n_u16
   8951 // CHECK: vrsra.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   8952 uint16x8_t test_vrsraq_n_u16(uint16x8_t a, uint16x8_t b) {
   8953   return vrsraq_n_u16(a, b, 1);
   8954 }
   8955 
   8956 // CHECK: test_vrsraq_n_u32
   8957 // CHECK: vrsra.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   8958 uint32x4_t test_vrsraq_n_u32(uint32x4_t a, uint32x4_t b) {
   8959   return vrsraq_n_u32(a, b, 1);
   8960 }
   8961 
   8962 // CHECK: test_vrsraq_n_u64
   8963 // CHECK: vrsra.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   8964 uint64x2_t test_vrsraq_n_u64(uint64x2_t a, uint64x2_t b) {
   8965   return vrsraq_n_u64(a, b, 1);
   8966 }
   8967 
   8968 
   8969 // CHECK: test_vrsubhn_s16
   8970 // CHECK: vrsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   8971 int8x8_t test_vrsubhn_s16(int16x8_t a, int16x8_t b) {
   8972   return vrsubhn_s16(a, b);
   8973 }
   8974 
   8975 // CHECK: test_vrsubhn_s32
   8976 // CHECK: vrsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   8977 int16x4_t test_vrsubhn_s32(int32x4_t a, int32x4_t b) {
   8978   return vrsubhn_s32(a, b);
   8979 }
   8980 
   8981 // CHECK: test_vrsubhn_s64
   8982 // CHECK: vrsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   8983 int32x2_t test_vrsubhn_s64(int64x2_t a, int64x2_t b) {
   8984   return vrsubhn_s64(a, b);
   8985 }
   8986 
   8987 // CHECK: test_vrsubhn_u16
   8988 // CHECK: vrsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   8989 uint8x8_t test_vrsubhn_u16(uint16x8_t a, uint16x8_t b) {
   8990   return vrsubhn_u16(a, b);
   8991 }
   8992 
   8993 // CHECK: test_vrsubhn_u32
   8994 // CHECK: vrsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   8995 uint16x4_t test_vrsubhn_u32(uint32x4_t a, uint32x4_t b) {
   8996   return vrsubhn_u32(a, b);
   8997 }
   8998 
   8999 // CHECK: test_vrsubhn_u64
   9000 // CHECK: vrsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   9001 uint32x2_t test_vrsubhn_u64(uint64x2_t a, uint64x2_t b) {
   9002   return vrsubhn_u64(a, b);
   9003 }
   9004 
   9005 
   9006 // CHECK: test_vset_lane_u8
   9007 // CHECK: vmov
   9008 uint8x8_t test_vset_lane_u8(uint8_t a, uint8x8_t b) {
   9009   return vset_lane_u8(a, b, 7);
   9010 }
   9011 
   9012 // CHECK: test_vset_lane_u16
   9013 // CHECK: vmov
   9014 uint16x4_t test_vset_lane_u16(uint16_t a, uint16x4_t b) {
   9015   return vset_lane_u16(a, b, 3);
   9016 }
   9017 
   9018 // CHECK: test_vset_lane_u32
   9019 // CHECK: vmov
   9020 uint32x2_t test_vset_lane_u32(uint32_t a, uint32x2_t b) {
   9021   return vset_lane_u32(a, b, 1);
   9022 }
   9023 
   9024 // CHECK: test_vset_lane_s8
   9025 // CHECK: vmov
   9026 int8x8_t test_vset_lane_s8(int8_t a, int8x8_t b) {
   9027   return vset_lane_s8(a, b, 7);
   9028 }
   9029 
   9030 // CHECK: test_vset_lane_s16
   9031 // CHECK: vmov
   9032 int16x4_t test_vset_lane_s16(int16_t a, int16x4_t b) {
   9033   return vset_lane_s16(a, b, 3);
   9034 }
   9035 
   9036 // CHECK: test_vset_lane_s32
   9037 // CHECK: vmov
   9038 int32x2_t test_vset_lane_s32(int32_t a, int32x2_t b) {
   9039   return vset_lane_s32(a, b, 1);
   9040 }
   9041 
   9042 // CHECK: test_vset_lane_p8
   9043 // CHECK: vmov
   9044 poly8x8_t test_vset_lane_p8(poly8_t a, poly8x8_t b) {
   9045   return vset_lane_p8(a, b, 7);
   9046 }
   9047 
   9048 // CHECK: test_vset_lane_p16
   9049 // CHECK: vmov
   9050 poly16x4_t test_vset_lane_p16(poly16_t a, poly16x4_t b) {
   9051   return vset_lane_p16(a, b, 3);
   9052 }
   9053 
   9054 // CHECK: test_vset_lane_f32
   9055 // CHECK: vmov
   9056 float32x2_t test_vset_lane_f32(float32_t a, float32x2_t b) {
   9057   return vset_lane_f32(a, b, 1);
   9058 }
   9059 
   9060 // CHECK: test_vsetq_lane_u8
   9061 // CHECK: vmov
   9062 uint8x16_t test_vsetq_lane_u8(uint8_t a, uint8x16_t b) {
   9063   return vsetq_lane_u8(a, b, 15);
   9064 }
   9065 
   9066 // CHECK: test_vsetq_lane_u16
   9067 // CHECK: vmov
   9068 uint16x8_t test_vsetq_lane_u16(uint16_t a, uint16x8_t b) {
   9069   return vsetq_lane_u16(a, b, 7);
   9070 }
   9071 
   9072 // CHECK: test_vsetq_lane_u32
   9073 // CHECK: vmov
   9074 uint32x4_t test_vsetq_lane_u32(uint32_t a, uint32x4_t b) {
   9075   return vsetq_lane_u32(a, b, 3);
   9076 }
   9077 
   9078 // CHECK: test_vsetq_lane_s8
   9079 // CHECK: vmov
   9080 int8x16_t test_vsetq_lane_s8(int8_t a, int8x16_t b) {
   9081   return vsetq_lane_s8(a, b, 15);
   9082 }
   9083 
   9084 // CHECK: test_vsetq_lane_s16
   9085 // CHECK: vmov
   9086 int16x8_t test_vsetq_lane_s16(int16_t a, int16x8_t b) {
   9087   return vsetq_lane_s16(a, b, 7);
   9088 }
   9089 
   9090 // CHECK: test_vsetq_lane_s32
   9091 // CHECK: vmov
   9092 int32x4_t test_vsetq_lane_s32(int32_t a, int32x4_t b) {
   9093   return vsetq_lane_s32(a, b, 3);
   9094 }
   9095 
   9096 // CHECK: test_vsetq_lane_p8
   9097 // CHECK: vmov
   9098 poly8x16_t test_vsetq_lane_p8(poly8_t a, poly8x16_t b) {
   9099   return vsetq_lane_p8(a, b, 15);
   9100 }
   9101 
   9102 // CHECK: test_vsetq_lane_p16
   9103 // CHECK: vmov
   9104 poly16x8_t test_vsetq_lane_p16(poly16_t a, poly16x8_t b) {
   9105   return vsetq_lane_p16(a, b, 7);
   9106 }
   9107 
   9108 // CHECK: test_vsetq_lane_f32
   9109 // CHECK: vmov
   9110 float32x4_t test_vsetq_lane_f32(float32_t a, float32x4_t b) {
   9111   return vsetq_lane_f32(a, b, 3);
   9112 }
   9113 
   9114 // CHECK: test_vset_lane_s64
   9115 // CHECK: vmov
   9116 int64x1_t test_vset_lane_s64(int64_t a, int64x1_t b) {
   9117   return vset_lane_s64(a, b, 0);
   9118 }
   9119 
   9120 // CHECK: test_vset_lane_u64
   9121 // CHECK: vmov
   9122 uint64x1_t test_vset_lane_u64(uint64_t a, uint64x1_t b) {
   9123   return vset_lane_u64(a, b, 0);
   9124 }
   9125 
   9126 // CHECK: test_vsetq_lane_s64
   9127 // CHECK: vmov
   9128 int64x2_t test_vsetq_lane_s64(int64_t a, int64x2_t b) {
   9129   return vsetq_lane_s64(a, b, 1);
   9130 }
   9131 
   9132 // CHECK: test_vsetq_lane_u64
   9133 // CHECK: vmov
   9134 uint64x2_t test_vsetq_lane_u64(uint64_t a, uint64x2_t b) {
   9135   return vsetq_lane_u64(a, b, 1);
   9136 }
   9137 
   9138 
   9139 // CHECK: test_vshl_s8
   9140 // CHECK: vshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   9141 int8x8_t test_vshl_s8(int8x8_t a, int8x8_t b) {
   9142   return vshl_s8(a, b);
   9143 }
   9144 
   9145 // CHECK: test_vshl_s16
   9146 // CHECK: vshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   9147 int16x4_t test_vshl_s16(int16x4_t a, int16x4_t b) {
   9148   return vshl_s16(a, b);
   9149 }
   9150 
   9151 // CHECK: test_vshl_s32
   9152 // CHECK: vshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   9153 int32x2_t test_vshl_s32(int32x2_t a, int32x2_t b) {
   9154   return vshl_s32(a, b);
   9155 }
   9156 
   9157 // CHECK: test_vshl_s64
   9158 // CHECK: vshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   9159 int64x1_t test_vshl_s64(int64x1_t a, int64x1_t b) {
   9160   return vshl_s64(a, b);
   9161 }
   9162 
   9163 // CHECK: test_vshl_u8
   9164 // CHECK: vshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   9165 uint8x8_t test_vshl_u8(uint8x8_t a, int8x8_t b) {
   9166   return vshl_u8(a, b);
   9167 }
   9168 
   9169 // CHECK: test_vshl_u16
   9170 // CHECK: vshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   9171 uint16x4_t test_vshl_u16(uint16x4_t a, int16x4_t b) {
   9172   return vshl_u16(a, b);
   9173 }
   9174 
   9175 // CHECK: test_vshl_u32
   9176 // CHECK: vshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   9177 uint32x2_t test_vshl_u32(uint32x2_t a, int32x2_t b) {
   9178   return vshl_u32(a, b);
   9179 }
   9180 
   9181 // CHECK: test_vshl_u64
   9182 // CHECK: vshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   9183 uint64x1_t test_vshl_u64(uint64x1_t a, int64x1_t b) {
   9184   return vshl_u64(a, b);
   9185 }
   9186 
   9187 // CHECK: test_vshlq_s8
   9188 // CHECK: vshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   9189 int8x16_t test_vshlq_s8(int8x16_t a, int8x16_t b) {
   9190   return vshlq_s8(a, b);
   9191 }
   9192 
   9193 // CHECK: test_vshlq_s16
   9194 // CHECK: vshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   9195 int16x8_t test_vshlq_s16(int16x8_t a, int16x8_t b) {
   9196   return vshlq_s16(a, b);
   9197 }
   9198 
   9199 // CHECK: test_vshlq_s32
   9200 // CHECK: vshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   9201 int32x4_t test_vshlq_s32(int32x4_t a, int32x4_t b) {
   9202   return vshlq_s32(a, b);
   9203 }
   9204 
   9205 // CHECK: test_vshlq_s64
   9206 // CHECK: vshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   9207 int64x2_t test_vshlq_s64(int64x2_t a, int64x2_t b) {
   9208   return vshlq_s64(a, b);
   9209 }
   9210 
   9211 // CHECK: test_vshlq_u8
   9212 // CHECK: vshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   9213 uint8x16_t test_vshlq_u8(uint8x16_t a, int8x16_t b) {
   9214   return vshlq_u8(a, b);
   9215 }
   9216 
   9217 // CHECK: test_vshlq_u16
   9218 // CHECK: vshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   9219 uint16x8_t test_vshlq_u16(uint16x8_t a, int16x8_t b) {
   9220   return vshlq_u16(a, b);
   9221 }
   9222 
   9223 // CHECK: test_vshlq_u32
   9224 // CHECK: vshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   9225 uint32x4_t test_vshlq_u32(uint32x4_t a, int32x4_t b) {
   9226   return vshlq_u32(a, b);
   9227 }
   9228 
   9229 // CHECK: test_vshlq_u64
   9230 // CHECK: vshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   9231 uint64x2_t test_vshlq_u64(uint64x2_t a, int64x2_t b) {
   9232   return vshlq_u64(a, b);
   9233 }
   9234 
   9235 
   9236 // CHECK: test_vshll_n_s8
   9237 // CHECK: vshll.s8 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9238 int16x8_t test_vshll_n_s8(int8x8_t a) {
   9239   return vshll_n_s8(a, 1);
   9240 }
   9241 
   9242 // CHECK: test_vshll_n_s16
   9243 // CHECK: vshll.s16 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9244 int32x4_t test_vshll_n_s16(int16x4_t a) {
   9245   return vshll_n_s16(a, 1);
   9246 }
   9247 
   9248 // CHECK: test_vshll_n_s32
   9249 // CHECK: vshll.s32 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9250 int64x2_t test_vshll_n_s32(int32x2_t a) {
   9251   return vshll_n_s32(a, 1);
   9252 }
   9253 
   9254 // CHECK: test_vshll_n_u8
   9255 // CHECK: vshll.u8 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9256 uint16x8_t test_vshll_n_u8(uint8x8_t a) {
   9257   return vshll_n_u8(a, 1);
   9258 }
   9259 
   9260 // CHECK: test_vshll_n_u16
   9261 // CHECK: vshll.u16 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9262 uint32x4_t test_vshll_n_u16(uint16x4_t a) {
   9263   return vshll_n_u16(a, 1);
   9264 }
   9265 
   9266 // CHECK: test_vshll_n_u32
   9267 // CHECK: vshll.u32 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9268 uint64x2_t test_vshll_n_u32(uint32x2_t a) {
   9269   return vshll_n_u32(a, 1);
   9270 }
   9271 
   9272 
   9273 // CHECK: test_vshl_n_s8
   9274 // CHECK: vshl.i8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9275 int8x8_t test_vshl_n_s8(int8x8_t a) {
   9276   return vshl_n_s8(a, 1);
   9277 }
   9278 
   9279 // CHECK: test_vshl_n_s16
   9280 // CHECK: vshl.i16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9281 int16x4_t test_vshl_n_s16(int16x4_t a) {
   9282   return vshl_n_s16(a, 1);
   9283 }
   9284 
   9285 // CHECK: test_vshl_n_s32
   9286 // CHECK: vshl.i32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9287 int32x2_t test_vshl_n_s32(int32x2_t a) {
   9288   return vshl_n_s32(a, 1);
   9289 }
   9290 
   9291 // CHECK: test_vshl_n_s64
   9292 // CHECK: vshl.i64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9293 int64x1_t test_vshl_n_s64(int64x1_t a) {
   9294   return vshl_n_s64(a, 1);
   9295 }
   9296 
   9297 // CHECK: test_vshl_n_u8
   9298 // CHECK: vshl.i8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9299 uint8x8_t test_vshl_n_u8(uint8x8_t a) {
   9300   return vshl_n_u8(a, 1);
   9301 }
   9302 
   9303 // CHECK: test_vshl_n_u16
   9304 // CHECK: vshl.i16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9305 uint16x4_t test_vshl_n_u16(uint16x4_t a) {
   9306   return vshl_n_u16(a, 1);
   9307 }
   9308 
   9309 // CHECK: test_vshl_n_u32
   9310 // CHECK: vshl.i32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9311 uint32x2_t test_vshl_n_u32(uint32x2_t a) {
   9312   return vshl_n_u32(a, 1);
   9313 }
   9314 
   9315 // CHECK: test_vshl_n_u64
   9316 // CHECK: vshl.i64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9317 uint64x1_t test_vshl_n_u64(uint64x1_t a) {
   9318   return vshl_n_u64(a, 1);
   9319 }
   9320 
   9321 // CHECK: test_vshlq_n_s8
   9322 // CHECK: vshl.i8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9323 int8x16_t test_vshlq_n_s8(int8x16_t a) {
   9324   return vshlq_n_s8(a, 1);
   9325 }
   9326 
   9327 // CHECK: test_vshlq_n_s16
   9328 // CHECK: vshl.i16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9329 int16x8_t test_vshlq_n_s16(int16x8_t a) {
   9330   return vshlq_n_s16(a, 1);
   9331 }
   9332 
   9333 // CHECK: test_vshlq_n_s32
   9334 // CHECK: vshl.i32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9335 int32x4_t test_vshlq_n_s32(int32x4_t a) {
   9336   return vshlq_n_s32(a, 1);
   9337 }
   9338 
   9339 // CHECK: test_vshlq_n_s64
   9340 // CHECK: vshl.i64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9341 int64x2_t test_vshlq_n_s64(int64x2_t a) {
   9342   return vshlq_n_s64(a, 1);
   9343 }
   9344 
   9345 // CHECK: test_vshlq_n_u8
   9346 // CHECK: vshl.i8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9347 uint8x16_t test_vshlq_n_u8(uint8x16_t a) {
   9348   return vshlq_n_u8(a, 1);
   9349 }
   9350 
   9351 // CHECK: test_vshlq_n_u16
   9352 // CHECK: vshl.i16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9353 uint16x8_t test_vshlq_n_u16(uint16x8_t a) {
   9354   return vshlq_n_u16(a, 1);
   9355 }
   9356 
   9357 // CHECK: test_vshlq_n_u32
   9358 // CHECK: vshl.i32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9359 uint32x4_t test_vshlq_n_u32(uint32x4_t a) {
   9360   return vshlq_n_u32(a, 1);
   9361 }
   9362 
   9363 // CHECK: test_vshlq_n_u64
   9364 // CHECK: vshl.i64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9365 uint64x2_t test_vshlq_n_u64(uint64x2_t a) {
   9366   return vshlq_n_u64(a, 1);
   9367 }
   9368 
   9369 
   9370 // CHECK: test_vshrn_n_s16
   9371 // CHECK: vshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9372 int8x8_t test_vshrn_n_s16(int16x8_t a) {
   9373   return vshrn_n_s16(a, 1);
   9374 }
   9375 
   9376 // CHECK: test_vshrn_n_s32
   9377 // CHECK: vshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9378 int16x4_t test_vshrn_n_s32(int32x4_t a) {
   9379   return vshrn_n_s32(a, 1);
   9380 }
   9381 
   9382 // CHECK: test_vshrn_n_s64
   9383 // CHECK: vshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9384 int32x2_t test_vshrn_n_s64(int64x2_t a) {
   9385   return vshrn_n_s64(a, 1);
   9386 }
   9387 
   9388 // CHECK: test_vshrn_n_u16
   9389 // CHECK: vshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9390 uint8x8_t test_vshrn_n_u16(uint16x8_t a) {
   9391   return vshrn_n_u16(a, 1);
   9392 }
   9393 
   9394 // CHECK: test_vshrn_n_u32
   9395 // CHECK: vshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9396 uint16x4_t test_vshrn_n_u32(uint32x4_t a) {
   9397   return vshrn_n_u32(a, 1);
   9398 }
   9399 
   9400 // CHECK: test_vshrn_n_u64
   9401 // CHECK: vshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9402 uint32x2_t test_vshrn_n_u64(uint64x2_t a) {
   9403   return vshrn_n_u64(a, 1);
   9404 }
   9405 
   9406 
   9407 // CHECK: test_vshr_n_s8
   9408 // CHECK: vshr.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9409 int8x8_t test_vshr_n_s8(int8x8_t a) {
   9410   return vshr_n_s8(a, 1);
   9411 }
   9412 
   9413 // CHECK: test_vshr_n_s16
   9414 // CHECK: vshr.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9415 int16x4_t test_vshr_n_s16(int16x4_t a) {
   9416   return vshr_n_s16(a, 1);
   9417 }
   9418 
   9419 // CHECK: test_vshr_n_s32
   9420 // CHECK: vshr.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9421 int32x2_t test_vshr_n_s32(int32x2_t a) {
   9422   return vshr_n_s32(a, 1);
   9423 }
   9424 
   9425 // CHECK: test_vshr_n_s64
   9426 // CHECK: vshr.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9427 int64x1_t test_vshr_n_s64(int64x1_t a) {
   9428   return vshr_n_s64(a, 1);
   9429 }
   9430 
   9431 // CHECK: test_vshr_n_u8
   9432 // CHECK: vshr.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9433 uint8x8_t test_vshr_n_u8(uint8x8_t a) {
   9434   return vshr_n_u8(a, 1);
   9435 }
   9436 
   9437 // CHECK: test_vshr_n_u16
   9438 // CHECK: vshr.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9439 uint16x4_t test_vshr_n_u16(uint16x4_t a) {
   9440   return vshr_n_u16(a, 1);
   9441 }
   9442 
   9443 // CHECK: test_vshr_n_u32
   9444 // CHECK: vshr.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9445 uint32x2_t test_vshr_n_u32(uint32x2_t a) {
   9446   return vshr_n_u32(a, 1);
   9447 }
   9448 
   9449 // CHECK: test_vshr_n_u64
   9450 // CHECK: vshr.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9451 uint64x1_t test_vshr_n_u64(uint64x1_t a) {
   9452   return vshr_n_u64(a, 1);
   9453 }
   9454 
   9455 // CHECK: test_vshrq_n_s8
   9456 // CHECK: vshr.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9457 int8x16_t test_vshrq_n_s8(int8x16_t a) {
   9458   return vshrq_n_s8(a, 1);
   9459 }
   9460 
   9461 // CHECK: test_vshrq_n_s16
   9462 // CHECK: vshr.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9463 int16x8_t test_vshrq_n_s16(int16x8_t a) {
   9464   return vshrq_n_s16(a, 1);
   9465 }
   9466 
   9467 // CHECK: test_vshrq_n_s32
   9468 // CHECK: vshr.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9469 int32x4_t test_vshrq_n_s32(int32x4_t a) {
   9470   return vshrq_n_s32(a, 1);
   9471 }
   9472 
   9473 // CHECK: test_vshrq_n_s64
   9474 // CHECK: vshr.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9475 int64x2_t test_vshrq_n_s64(int64x2_t a) {
   9476   return vshrq_n_s64(a, 1);
   9477 }
   9478 
   9479 // CHECK: test_vshrq_n_u8
   9480 // CHECK: vshr.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9481 uint8x16_t test_vshrq_n_u8(uint8x16_t a) {
   9482   return vshrq_n_u8(a, 1);
   9483 }
   9484 
   9485 // CHECK: test_vshrq_n_u16
   9486 // CHECK: vshr.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9487 uint16x8_t test_vshrq_n_u16(uint16x8_t a) {
   9488   return vshrq_n_u16(a, 1);
   9489 }
   9490 
   9491 // CHECK: test_vshrq_n_u32
   9492 // CHECK: vshr.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9493 uint32x4_t test_vshrq_n_u32(uint32x4_t a) {
   9494   return vshrq_n_u32(a, 1);
   9495 }
   9496 
   9497 // CHECK: test_vshrq_n_u64
   9498 // CHECK: vshr.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9499 uint64x2_t test_vshrq_n_u64(uint64x2_t a) {
   9500   return vshrq_n_u64(a, 1);
   9501 }
   9502 
   9503 
   9504 // CHECK: test_vsli_n_s8
   9505 // CHECK: vsli.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9506 int8x8_t test_vsli_n_s8(int8x8_t a, int8x8_t b) {
   9507   return vsli_n_s8(a, b, 1);
   9508 }
   9509 
   9510 // CHECK: test_vsli_n_s16
   9511 // CHECK: vsli.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9512 int16x4_t test_vsli_n_s16(int16x4_t a, int16x4_t b) {
   9513   return vsli_n_s16(a, b, 1);
   9514 }
   9515 
   9516 // CHECK: test_vsli_n_s32
   9517 // CHECK: vsli.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9518 int32x2_t test_vsli_n_s32(int32x2_t a, int32x2_t b) {
   9519   return vsli_n_s32(a, b, 1);
   9520 }
   9521 
   9522 // CHECK: test_vsli_n_s64
   9523 // CHECK: vsli.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9524 int64x1_t test_vsli_n_s64(int64x1_t a, int64x1_t b) {
   9525   return vsli_n_s64(a, b, 1);
   9526 }
   9527 
   9528 // CHECK: test_vsli_n_u8
   9529 // CHECK: vsli.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9530 uint8x8_t test_vsli_n_u8(uint8x8_t a, uint8x8_t b) {
   9531   return vsli_n_u8(a, b, 1);
   9532 }
   9533 
   9534 // CHECK: test_vsli_n_u16
   9535 // CHECK: vsli.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9536 uint16x4_t test_vsli_n_u16(uint16x4_t a, uint16x4_t b) {
   9537   return vsli_n_u16(a, b, 1);
   9538 }
   9539 
   9540 // CHECK: test_vsli_n_u32
   9541 // CHECK: vsli.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9542 uint32x2_t test_vsli_n_u32(uint32x2_t a, uint32x2_t b) {
   9543   return vsli_n_u32(a, b, 1);
   9544 }
   9545 
   9546 // CHECK: test_vsli_n_u64
   9547 // CHECK: vsli.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9548 uint64x1_t test_vsli_n_u64(uint64x1_t a, uint64x1_t b) {
   9549   return vsli_n_u64(a, b, 1);
   9550 }
   9551 
   9552 // CHECK: test_vsli_n_p8
   9553 // CHECK: vsli.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9554 poly8x8_t test_vsli_n_p8(poly8x8_t a, poly8x8_t b) {
   9555   return vsli_n_p8(a, b, 1);
   9556 }
   9557 
   9558 // CHECK: test_vsli_n_p16
   9559 // CHECK: vsli.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9560 poly16x4_t test_vsli_n_p16(poly16x4_t a, poly16x4_t b) {
   9561   return vsli_n_p16(a, b, 1);
   9562 }
   9563 
   9564 // CHECK: test_vsliq_n_s8
   9565 // CHECK: vsli.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9566 int8x16_t test_vsliq_n_s8(int8x16_t a, int8x16_t b) {
   9567   return vsliq_n_s8(a, b, 1);
   9568 }
   9569 
   9570 // CHECK: test_vsliq_n_s16
   9571 // CHECK: vsli.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9572 int16x8_t test_vsliq_n_s16(int16x8_t a, int16x8_t b) {
   9573   return vsliq_n_s16(a, b, 1);
   9574 }
   9575 
   9576 // CHECK: test_vsliq_n_s32
   9577 // CHECK: vsli.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9578 int32x4_t test_vsliq_n_s32(int32x4_t a, int32x4_t b) {
   9579   return vsliq_n_s32(a, b, 1);
   9580 }
   9581 
   9582 // CHECK: test_vsliq_n_s64
   9583 // CHECK: vsli.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9584 int64x2_t test_vsliq_n_s64(int64x2_t a, int64x2_t b) {
   9585   return vsliq_n_s64(a, b, 1);
   9586 }
   9587 
   9588 // CHECK: test_vsliq_n_u8
   9589 // CHECK: vsli.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9590 uint8x16_t test_vsliq_n_u8(uint8x16_t a, uint8x16_t b) {
   9591   return vsliq_n_u8(a, b, 1);
   9592 }
   9593 
   9594 // CHECK: test_vsliq_n_u16
   9595 // CHECK: vsli.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9596 uint16x8_t test_vsliq_n_u16(uint16x8_t a, uint16x8_t b) {
   9597   return vsliq_n_u16(a, b, 1);
   9598 }
   9599 
   9600 // CHECK: test_vsliq_n_u32
   9601 // CHECK: vsli.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9602 uint32x4_t test_vsliq_n_u32(uint32x4_t a, uint32x4_t b) {
   9603   return vsliq_n_u32(a, b, 1);
   9604 }
   9605 
   9606 // CHECK: test_vsliq_n_u64
   9607 // CHECK: vsli.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9608 uint64x2_t test_vsliq_n_u64(uint64x2_t a, uint64x2_t b) {
   9609   return vsliq_n_u64(a, b, 1);
   9610 }
   9611 
   9612 // CHECK: test_vsliq_n_p8
   9613 // CHECK: vsli.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9614 poly8x16_t test_vsliq_n_p8(poly8x16_t a, poly8x16_t b) {
   9615   return vsliq_n_p8(a, b, 1);
   9616 }
   9617 
   9618 // CHECK: test_vsliq_n_p16
   9619 // CHECK: vsli.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9620 poly16x8_t test_vsliq_n_p16(poly16x8_t a, poly16x8_t b) {
   9621   return vsliq_n_p16(a, b, 1);
   9622 }
   9623 
   9624 
   9625 // CHECK: test_vsra_n_s8
   9626 // CHECK: vsra.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9627 int8x8_t test_vsra_n_s8(int8x8_t a, int8x8_t b) {
   9628   return vsra_n_s8(a, b, 1);
   9629 }
   9630 
   9631 // CHECK: test_vsra_n_s16
   9632 // CHECK: vsra.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9633 int16x4_t test_vsra_n_s16(int16x4_t a, int16x4_t b) {
   9634   return vsra_n_s16(a, b, 1);
   9635 }
   9636 
   9637 // CHECK: test_vsra_n_s32
   9638 // CHECK: vsra.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9639 int32x2_t test_vsra_n_s32(int32x2_t a, int32x2_t b) {
   9640   return vsra_n_s32(a, b, 1);
   9641 }
   9642 
   9643 // CHECK: test_vsra_n_s64
   9644 // CHECK: vsra.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9645 int64x1_t test_vsra_n_s64(int64x1_t a, int64x1_t b) {
   9646   return vsra_n_s64(a, b, 1);
   9647 }
   9648 
   9649 // CHECK: test_vsra_n_u8
   9650 // CHECK: vsra.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9651 uint8x8_t test_vsra_n_u8(uint8x8_t a, uint8x8_t b) {
   9652   return vsra_n_u8(a, b, 1);
   9653 }
   9654 
   9655 // CHECK: test_vsra_n_u16
   9656 // CHECK: vsra.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9657 uint16x4_t test_vsra_n_u16(uint16x4_t a, uint16x4_t b) {
   9658   return vsra_n_u16(a, b, 1);
   9659 }
   9660 
   9661 // CHECK: test_vsra_n_u32
   9662 // CHECK: vsra.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9663 uint32x2_t test_vsra_n_u32(uint32x2_t a, uint32x2_t b) {
   9664   return vsra_n_u32(a, b, 1);
   9665 }
   9666 
   9667 // CHECK: test_vsra_n_u64
   9668 // CHECK: vsra.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9669 uint64x1_t test_vsra_n_u64(uint64x1_t a, uint64x1_t b) {
   9670   return vsra_n_u64(a, b, 1);
   9671 }
   9672 
   9673 // CHECK: test_vsraq_n_s8
   9674 // CHECK: vsra.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9675 int8x16_t test_vsraq_n_s8(int8x16_t a, int8x16_t b) {
   9676   return vsraq_n_s8(a, b, 1);
   9677 }
   9678 
   9679 // CHECK: test_vsraq_n_s16
   9680 // CHECK: vsra.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9681 int16x8_t test_vsraq_n_s16(int16x8_t a, int16x8_t b) {
   9682   return vsraq_n_s16(a, b, 1);
   9683 }
   9684 
   9685 // CHECK: test_vsraq_n_s32
   9686 // CHECK: vsra.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9687 int32x4_t test_vsraq_n_s32(int32x4_t a, int32x4_t b) {
   9688   return vsraq_n_s32(a, b, 1);
   9689 }
   9690 
   9691 // CHECK: test_vsraq_n_s64
   9692 // CHECK: vsra.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9693 int64x2_t test_vsraq_n_s64(int64x2_t a, int64x2_t b) {
   9694   return vsraq_n_s64(a, b, 1);
   9695 }
   9696 
   9697 // CHECK: test_vsraq_n_u8
   9698 // CHECK: vsra.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9699 uint8x16_t test_vsraq_n_u8(uint8x16_t a, uint8x16_t b) {
   9700   return vsraq_n_u8(a, b, 1);
   9701 }
   9702 
   9703 // CHECK: test_vsraq_n_u16
   9704 // CHECK: vsra.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9705 uint16x8_t test_vsraq_n_u16(uint16x8_t a, uint16x8_t b) {
   9706   return vsraq_n_u16(a, b, 1);
   9707 }
   9708 
   9709 // CHECK: test_vsraq_n_u32
   9710 // CHECK: vsra.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9711 uint32x4_t test_vsraq_n_u32(uint32x4_t a, uint32x4_t b) {
   9712   return vsraq_n_u32(a, b, 1);
   9713 }
   9714 
   9715 // CHECK: test_vsraq_n_u64
   9716 // CHECK: vsra.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9717 uint64x2_t test_vsraq_n_u64(uint64x2_t a, uint64x2_t b) {
   9718   return vsraq_n_u64(a, b, 1);
   9719 }
   9720 
   9721 
   9722 // CHECK: test_vsri_n_s8
   9723 // CHECK: vsri.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9724 int8x8_t test_vsri_n_s8(int8x8_t a, int8x8_t b) {
   9725   return vsri_n_s8(a, b, 1);
   9726 }
   9727 
   9728 // CHECK: test_vsri_n_s16
   9729 // CHECK: vsri.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9730 int16x4_t test_vsri_n_s16(int16x4_t a, int16x4_t b) {
   9731   return vsri_n_s16(a, b, 1);
   9732 }
   9733 
   9734 // CHECK: test_vsri_n_s32
   9735 // CHECK: vsri.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9736 int32x2_t test_vsri_n_s32(int32x2_t a, int32x2_t b) {
   9737   return vsri_n_s32(a, b, 1);
   9738 }
   9739 
   9740 // CHECK: test_vsri_n_s64
   9741 // CHECK: vsri.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9742 int64x1_t test_vsri_n_s64(int64x1_t a, int64x1_t b) {
   9743   return vsri_n_s64(a, b, 1);
   9744 }
   9745 
   9746 // CHECK: test_vsri_n_u8
   9747 // CHECK: vsri.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9748 uint8x8_t test_vsri_n_u8(uint8x8_t a, uint8x8_t b) {
   9749   return vsri_n_u8(a, b, 1);
   9750 }
   9751 
   9752 // CHECK: test_vsri_n_u16
   9753 // CHECK: vsri.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9754 uint16x4_t test_vsri_n_u16(uint16x4_t a, uint16x4_t b) {
   9755   return vsri_n_u16(a, b, 1);
   9756 }
   9757 
   9758 // CHECK: test_vsri_n_u32
   9759 // CHECK: vsri.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9760 uint32x2_t test_vsri_n_u32(uint32x2_t a, uint32x2_t b) {
   9761   return vsri_n_u32(a, b, 1);
   9762 }
   9763 
   9764 // CHECK: test_vsri_n_u64
   9765 // CHECK: vsri.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9766 uint64x1_t test_vsri_n_u64(uint64x1_t a, uint64x1_t b) {
   9767   return vsri_n_u64(a, b, 1);
   9768 }
   9769 
   9770 // CHECK: test_vsri_n_p8
   9771 // CHECK: vsri.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9772 poly8x8_t test_vsri_n_p8(poly8x8_t a, poly8x8_t b) {
   9773   return vsri_n_p8(a, b, 1);
   9774 }
   9775 
   9776 // CHECK: test_vsri_n_p16
   9777 // CHECK: vsri.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}}
   9778 poly16x4_t test_vsri_n_p16(poly16x4_t a, poly16x4_t b) {
   9779   return vsri_n_p16(a, b, 1);
   9780 }
   9781 
   9782 // CHECK: test_vsriq_n_s8
   9783 // CHECK: vsri.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9784 int8x16_t test_vsriq_n_s8(int8x16_t a, int8x16_t b) {
   9785   return vsriq_n_s8(a, b, 1);
   9786 }
   9787 
   9788 // CHECK: test_vsriq_n_s16
   9789 // CHECK: vsri.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9790 int16x8_t test_vsriq_n_s16(int16x8_t a, int16x8_t b) {
   9791   return vsriq_n_s16(a, b, 1);
   9792 }
   9793 
   9794 // CHECK: test_vsriq_n_s32
   9795 // CHECK: vsri.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9796 int32x4_t test_vsriq_n_s32(int32x4_t a, int32x4_t b) {
   9797   return vsriq_n_s32(a, b, 1);
   9798 }
   9799 
   9800 // CHECK: test_vsriq_n_s64
   9801 // CHECK: vsri.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9802 int64x2_t test_vsriq_n_s64(int64x2_t a, int64x2_t b) {
   9803   return vsriq_n_s64(a, b, 1);
   9804 }
   9805 
   9806 // CHECK: test_vsriq_n_u8
   9807 // CHECK: vsri.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9808 uint8x16_t test_vsriq_n_u8(uint8x16_t a, uint8x16_t b) {
   9809   return vsriq_n_u8(a, b, 1);
   9810 }
   9811 
   9812 // CHECK: test_vsriq_n_u16
   9813 // CHECK: vsri.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9814 uint16x8_t test_vsriq_n_u16(uint16x8_t a, uint16x8_t b) {
   9815   return vsriq_n_u16(a, b, 1);
   9816 }
   9817 
   9818 // CHECK: test_vsriq_n_u32
   9819 // CHECK: vsri.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9820 uint32x4_t test_vsriq_n_u32(uint32x4_t a, uint32x4_t b) {
   9821   return vsriq_n_u32(a, b, 1);
   9822 }
   9823 
   9824 // CHECK: test_vsriq_n_u64
   9825 // CHECK: vsri.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9826 uint64x2_t test_vsriq_n_u64(uint64x2_t a, uint64x2_t b) {
   9827   return vsriq_n_u64(a, b, 1);
   9828 }
   9829 
   9830 // CHECK: test_vsriq_n_p8
   9831 // CHECK: vsri.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9832 poly8x16_t test_vsriq_n_p8(poly8x16_t a, poly8x16_t b) {
   9833   return vsriq_n_p8(a, b, 1);
   9834 }
   9835 
   9836 // CHECK: test_vsriq_n_p16
   9837 // CHECK: vsri.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}}
   9838 poly16x8_t test_vsriq_n_p16(poly16x8_t a, poly16x8_t b) {
   9839   return vsriq_n_p16(a, b, 1);
   9840 }
   9841 
   9842 
   9843 // CHECK: test_vst1q_u8
   9844 // CHECK: vst1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   9845 void test_vst1q_u8(uint8_t * a, uint8x16_t b) {
   9846   vst1q_u8(a, b);
   9847 }
   9848 
   9849 // CHECK: test_vst1q_u16
   9850 // CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   9851 void test_vst1q_u16(uint16_t * a, uint16x8_t b) {
   9852   vst1q_u16(a, b);
   9853 }
   9854 
   9855 // CHECK: test_vst1q_u32
   9856 // CHECK: vst1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   9857 void test_vst1q_u32(uint32_t * a, uint32x4_t b) {
   9858   vst1q_u32(a, b);
   9859 }
   9860 
   9861 // CHECK: test_vst1q_u64
   9862 // CHECK: vst1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   9863 void test_vst1q_u64(uint64_t * a, uint64x2_t b) {
   9864   vst1q_u64(a, b);
   9865 }
   9866 
   9867 // CHECK: test_vst1q_s8
   9868 // CHECK: vst1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   9869 void test_vst1q_s8(int8_t * a, int8x16_t b) {
   9870   vst1q_s8(a, b);
   9871 }
   9872 
   9873 // CHECK: test_vst1q_s16
   9874 // CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   9875 void test_vst1q_s16(int16_t * a, int16x8_t b) {
   9876   vst1q_s16(a, b);
   9877 }
   9878 
   9879 // CHECK: test_vst1q_s32
   9880 // CHECK: vst1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   9881 void test_vst1q_s32(int32_t * a, int32x4_t b) {
   9882   vst1q_s32(a, b);
   9883 }
   9884 
   9885 // CHECK: test_vst1q_s64
   9886 // CHECK: vst1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   9887 void test_vst1q_s64(int64_t * a, int64x2_t b) {
   9888   vst1q_s64(a, b);
   9889 }
   9890 
   9891 // CHECK: test_vst1q_f16
   9892 // CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   9893 void test_vst1q_f16(float16_t * a, float16x8_t b) {
   9894   vst1q_f16(a, b);
   9895 }
   9896 
   9897 // CHECK: test_vst1q_f32
   9898 // CHECK: vst1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   9899 void test_vst1q_f32(float32_t * a, float32x4_t b) {
   9900   vst1q_f32(a, b);
   9901 }
   9902 
   9903 // CHECK: test_vst1q_p8
   9904 // CHECK: vst1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   9905 void test_vst1q_p8(poly8_t * a, poly8x16_t b) {
   9906   vst1q_p8(a, b);
   9907 }
   9908 
   9909 // CHECK: test_vst1q_p16
   9910 // CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   9911 void test_vst1q_p16(poly16_t * a, poly16x8_t b) {
   9912   vst1q_p16(a, b);
   9913 }
   9914 
   9915 // CHECK: test_vst1_u8
   9916 // CHECK: vst1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
   9917 void test_vst1_u8(uint8_t * a, uint8x8_t b) {
   9918   vst1_u8(a, b);
   9919 }
   9920 
   9921 // CHECK: test_vst1_u16
   9922 // CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
   9923 void test_vst1_u16(uint16_t * a, uint16x4_t b) {
   9924   vst1_u16(a, b);
   9925 }
   9926 
   9927 // CHECK: test_vst1_u32
   9928 // CHECK: vst1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
   9929 void test_vst1_u32(uint32_t * a, uint32x2_t b) {
   9930   vst1_u32(a, b);
   9931 }
   9932 
   9933 // CHECK: test_vst1_u64
   9934 // CHECK: vst1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}]
   9935 void test_vst1_u64(uint64_t * a, uint64x1_t b) {
   9936   vst1_u64(a, b);
   9937 }
   9938 
   9939 // CHECK: test_vst1_s8
   9940 // CHECK: vst1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
   9941 void test_vst1_s8(int8_t * a, int8x8_t b) {
   9942   vst1_s8(a, b);
   9943 }
   9944 
   9945 // CHECK: test_vst1_s16
   9946 // CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
   9947 void test_vst1_s16(int16_t * a, int16x4_t b) {
   9948   vst1_s16(a, b);
   9949 }
   9950 
   9951 // CHECK: test_vst1_s32
   9952 // CHECK: vst1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
   9953 void test_vst1_s32(int32_t * a, int32x2_t b) {
   9954   vst1_s32(a, b);
   9955 }
   9956 
   9957 // CHECK: test_vst1_s64
   9958 // CHECK: vst1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}]
   9959 void test_vst1_s64(int64_t * a, int64x1_t b) {
   9960   vst1_s64(a, b);
   9961 }
   9962 
   9963 // CHECK: test_vst1_f16
   9964 // CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
   9965 void test_vst1_f16(float16_t * a, float16x4_t b) {
   9966   vst1_f16(a, b);
   9967 }
   9968 
   9969 // CHECK: test_vst1_f32
   9970 // CHECK: vst1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}]
   9971 void test_vst1_f32(float32_t * a, float32x2_t b) {
   9972   vst1_f32(a, b);
   9973 }
   9974 
   9975 // CHECK: test_vst1_p8
   9976 // CHECK: vst1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}]
   9977 void test_vst1_p8(poly8_t * a, poly8x8_t b) {
   9978   vst1_p8(a, b);
   9979 }
   9980 
   9981 // CHECK: test_vst1_p16
   9982 // CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}]
   9983 void test_vst1_p16(poly16_t * a, poly16x4_t b) {
   9984   vst1_p16(a, b);
   9985 }
   9986 
   9987 
   9988 // CHECK: test_vst1q_lane_u8
   9989 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   9990 void test_vst1q_lane_u8(uint8_t * a, uint8x16_t b) {
   9991   vst1q_lane_u8(a, b, 15);
   9992 }
   9993 
   9994 // CHECK: test_vst1q_lane_u16
   9995 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
   9996 void test_vst1q_lane_u16(uint16_t * a, uint16x8_t b) {
   9997   vst1q_lane_u16(a, b, 7);
   9998 }
   9999 
   10000 // CHECK: test_vst1q_lane_u32
   10001 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
   10002 void test_vst1q_lane_u32(uint32_t * a, uint32x4_t b) {
   10003   vst1q_lane_u32(a, b, 3);
   10004 }
   10005 
   10006 // CHECK: test_vst1q_lane_u64
   10007 // CHECK: {{str|vstr|vmov}}
   10008 void test_vst1q_lane_u64(uint64_t * a, uint64x2_t b) {
   10009   vst1q_lane_u64(a, b, 1);
   10010 }
   10011 
   10012 // CHECK: test_vst1q_lane_s8
   10013 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10014 void test_vst1q_lane_s8(int8_t * a, int8x16_t b) {
   10015   vst1q_lane_s8(a, b, 15);
   10016 }
   10017 
   10018 // CHECK: test_vst1q_lane_s16
   10019 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
   10020 void test_vst1q_lane_s16(int16_t * a, int16x8_t b) {
   10021   vst1q_lane_s16(a, b, 7);
   10022 }
   10023 
   10024 // CHECK: test_vst1q_lane_s32
   10025 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
   10026 void test_vst1q_lane_s32(int32_t * a, int32x4_t b) {
   10027   vst1q_lane_s32(a, b, 3);
   10028 }
   10029 
   10030 // CHECK: test_vst1q_lane_s64
   10031 // CHECK: {{str|vstr|vmov}}
   10032 void test_vst1q_lane_s64(int64_t * a, int64x2_t b) {
   10033   vst1q_lane_s64(a, b, 1);
   10034 }
   10035 
   10036 // CHECK: test_vst1q_lane_f16
   10037 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
   10038 void test_vst1q_lane_f16(float16_t * a, float16x8_t b) {
   10039   vst1q_lane_f16(a, b, 7);
   10040 }
   10041 
   10042 // CHECK: test_vst1q_lane_f32
   10043 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
   10044 void test_vst1q_lane_f32(float32_t * a, float32x4_t b) {
   10045   vst1q_lane_f32(a, b, 3);
   10046 }
   10047 
   10048 // CHECK: test_vst1q_lane_p8
   10049 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10050 void test_vst1q_lane_p8(poly8_t * a, poly8x16_t b) {
   10051   vst1q_lane_p8(a, b, 15);
   10052 }
   10053 
   10054 // CHECK: test_vst1q_lane_p16
   10055 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
   10056 void test_vst1q_lane_p16(poly16_t * a, poly16x8_t b) {
   10057   vst1q_lane_p16(a, b, 7);
   10058 }
   10059 
   10060 // CHECK: test_vst1_lane_u8
   10061 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10062 void test_vst1_lane_u8(uint8_t * a, uint8x8_t b) {
   10063   vst1_lane_u8(a, b, 7);
   10064 }
   10065 
   10066 // CHECK: test_vst1_lane_u16
   10067 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
   10068 void test_vst1_lane_u16(uint16_t * a, uint16x4_t b) {
   10069   vst1_lane_u16(a, b, 3);
   10070 }
   10071 
   10072 // CHECK: test_vst1_lane_u32
   10073 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
   10074 void test_vst1_lane_u32(uint32_t * a, uint32x2_t b) {
   10075   vst1_lane_u32(a, b, 1);
   10076 }
   10077 
   10078 // CHECK: test_vst1_lane_u64
   10079 // CHECK: {{str|vstr|vmov}}
   10080 void test_vst1_lane_u64(uint64_t * a, uint64x1_t b) {
   10081   vst1_lane_u64(a, b, 0);
   10082 }
   10083 
   10084 // CHECK: test_vst1_lane_s8
   10085 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10086 void test_vst1_lane_s8(int8_t * a, int8x8_t b) {
   10087   vst1_lane_s8(a, b, 7);
   10088 }
   10089 
   10090 // CHECK: test_vst1_lane_s16
   10091 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
   10092 void test_vst1_lane_s16(int16_t * a, int16x4_t b) {
   10093   vst1_lane_s16(a, b, 3);
   10094 }
   10095 
   10096 // CHECK: test_vst1_lane_s32
   10097 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
   10098 void test_vst1_lane_s32(int32_t * a, int32x2_t b) {
   10099   vst1_lane_s32(a, b, 1);
   10100 }
   10101 
   10102 // CHECK: test_vst1_lane_s64
   10103 // CHECK: {{str|vstr|vmov}}
   10104 void test_vst1_lane_s64(int64_t * a, int64x1_t b) {
   10105   vst1_lane_s64(a, b, 0);
   10106 }
   10107 
   10108 // CHECK: test_vst1_lane_f16
   10109 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
   10110 void test_vst1_lane_f16(float16_t * a, float16x4_t b) {
   10111   vst1_lane_f16(a, b, 3);
   10112 }
   10113 
   10114 // CHECK: test_vst1_lane_f32
   10115 // CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32]
   10116 void test_vst1_lane_f32(float32_t * a, float32x2_t b) {
   10117   vst1_lane_f32(a, b, 1);
   10118 }
   10119 
   10120 // CHECK: test_vst1_lane_p8
   10121 // CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10122 void test_vst1_lane_p8(poly8_t * a, poly8x8_t b) {
   10123   vst1_lane_p8(a, b, 7);
   10124 }
   10125 
   10126 // CHECK: test_vst1_lane_p16
   10127 // CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16]
   10128 void test_vst1_lane_p16(poly16_t * a, poly16x4_t b) {
   10129   vst1_lane_p16(a, b, 3);
   10130 }
   10131 
   10132 
   10133 // CHECK: test_vst2q_u8
   10134 // CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10135 void test_vst2q_u8(uint8_t * a, uint8x16x2_t b) {
   10136   vst2q_u8(a, b);
   10137 }
   10138 
   10139 // CHECK: test_vst2q_u16
   10140 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10141 void test_vst2q_u16(uint16_t * a, uint16x8x2_t b) {
   10142   vst2q_u16(a, b);
   10143 }
   10144 
   10145 // CHECK: test_vst2q_u32
   10146 // CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10147 void test_vst2q_u32(uint32_t * a, uint32x4x2_t b) {
   10148   vst2q_u32(a, b);
   10149 }
   10150 
   10151 // CHECK: test_vst2q_s8
   10152 // CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10153 void test_vst2q_s8(int8_t * a, int8x16x2_t b) {
   10154   vst2q_s8(a, b);
   10155 }
   10156 
   10157 // CHECK: test_vst2q_s16
   10158 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10159 void test_vst2q_s16(int16_t * a, int16x8x2_t b) {
   10160   vst2q_s16(a, b);
   10161 }
   10162 
   10163 // CHECK: test_vst2q_s32
   10164 // CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10165 void test_vst2q_s32(int32_t * a, int32x4x2_t b) {
   10166   vst2q_s32(a, b);
   10167 }
   10168 
   10169 // CHECK: test_vst2q_f16
   10170 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10171 void test_vst2q_f16(float16_t * a, float16x8x2_t b) {
   10172   vst2q_f16(a, b);
   10173 }
   10174 
   10175 // CHECK: test_vst2q_f32
   10176 // CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10177 void test_vst2q_f32(float32_t * a, float32x4x2_t b) {
   10178   vst2q_f32(a, b);
   10179 }
   10180 
   10181 // CHECK: test_vst2q_p8
   10182 // CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10183 void test_vst2q_p8(poly8_t * a, poly8x16x2_t b) {
   10184   vst2q_p8(a, b);
   10185 }
   10186 
   10187 // CHECK: test_vst2q_p16
   10188 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10189 void test_vst2q_p16(poly16_t * a, poly16x8x2_t b) {
   10190   vst2q_p16(a, b);
   10191 }
   10192 
   10193 // CHECK: test_vst2_u8
   10194 // CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10195 void test_vst2_u8(uint8_t * a, uint8x8x2_t b) {
   10196   vst2_u8(a, b);
   10197 }
   10198 
   10199 // CHECK: test_vst2_u16
   10200 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10201 void test_vst2_u16(uint16_t * a, uint16x4x2_t b) {
   10202   vst2_u16(a, b);
   10203 }
   10204 
   10205 // CHECK: test_vst2_u32
   10206 // CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10207 void test_vst2_u32(uint32_t * a, uint32x2x2_t b) {
   10208   vst2_u32(a, b);
   10209 }
   10210 
   10211 // CHECK: test_vst2_u64
   10212 // CHECK: vst1.64
   10213 void test_vst2_u64(uint64_t * a, uint64x1x2_t b) {
   10214   vst2_u64(a, b);
   10215 }
   10216 
   10217 // CHECK: test_vst2_s8
   10218 // CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10219 void test_vst2_s8(int8_t * a, int8x8x2_t b) {
   10220   vst2_s8(a, b);
   10221 }
   10222 
   10223 // CHECK: test_vst2_s16
   10224 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10225 void test_vst2_s16(int16_t * a, int16x4x2_t b) {
   10226   vst2_s16(a, b);
   10227 }
   10228 
   10229 // CHECK: test_vst2_s32
   10230 // CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10231 void test_vst2_s32(int32_t * a, int32x2x2_t b) {
   10232   vst2_s32(a, b);
   10233 }
   10234 
   10235 // CHECK: test_vst2_s64
   10236 // CHECK: vst1.64
   10237 void test_vst2_s64(int64_t * a, int64x1x2_t b) {
   10238   vst2_s64(a, b);
   10239 }
   10240 
   10241 // CHECK: test_vst2_f16
   10242 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10243 void test_vst2_f16(float16_t * a, float16x4x2_t b) {
   10244   vst2_f16(a, b);
   10245 }
   10246 
   10247 // CHECK: test_vst2_f32
   10248 // CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10249 void test_vst2_f32(float32_t * a, float32x2x2_t b) {
   10250   vst2_f32(a, b);
   10251 }
   10252 
   10253 // CHECK: test_vst2_p8
   10254 // CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10255 void test_vst2_p8(poly8_t * a, poly8x8x2_t b) {
   10256   vst2_p8(a, b);
   10257 }
   10258 
   10259 // CHECK: test_vst2_p16
   10260 // CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10261 void test_vst2_p16(poly16_t * a, poly16x4x2_t b) {
   10262   vst2_p16(a, b);
   10263 }
   10264 
   10265 
   10266 // CHECK: test_vst2q_lane_u16
   10267 // CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10268 void test_vst2q_lane_u16(uint16_t * a, uint16x8x2_t b) {
   10269   vst2q_lane_u16(a, b, 7);
   10270 }
   10271 
   10272 // CHECK: test_vst2q_lane_u32
   10273 // CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10274 void test_vst2q_lane_u32(uint32_t * a, uint32x4x2_t b) {
   10275   vst2q_lane_u32(a, b, 3);
   10276 }
   10277 
   10278 // CHECK: test_vst2q_lane_s16
   10279 // CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10280 void test_vst2q_lane_s16(int16_t * a, int16x8x2_t b) {
   10281   vst2q_lane_s16(a, b, 7);
   10282 }
   10283 
   10284 // CHECK: test_vst2q_lane_s32
   10285 // CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10286 void test_vst2q_lane_s32(int32_t * a, int32x4x2_t b) {
   10287   vst2q_lane_s32(a, b, 3);
   10288 }
   10289 
   10290 // CHECK: test_vst2q_lane_f16
   10291 // CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10292 void test_vst2q_lane_f16(float16_t * a, float16x8x2_t b) {
   10293   vst2q_lane_f16(a, b, 7);
   10294 }
   10295 
   10296 // CHECK: test_vst2q_lane_f32
   10297 // CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10298 void test_vst2q_lane_f32(float32_t * a, float32x4x2_t b) {
   10299   vst2q_lane_f32(a, b, 3);
   10300 }
   10301 
   10302 // CHECK: test_vst2q_lane_p16
   10303 // CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10304 void test_vst2q_lane_p16(poly16_t * a, poly16x8x2_t b) {
   10305   vst2q_lane_p16(a, b, 7);
   10306 }
   10307 
   10308 // CHECK: test_vst2_lane_u8
   10309 // CHECK: vst2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10310 void test_vst2_lane_u8(uint8_t * a, uint8x8x2_t b) {
   10311   vst2_lane_u8(a, b, 7);
   10312 }
   10313 
   10314 // CHECK: test_vst2_lane_u16
   10315 // CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10316 void test_vst2_lane_u16(uint16_t * a, uint16x4x2_t b) {
   10317   vst2_lane_u16(a, b, 3);
   10318 }
   10319 
   10320 // CHECK: test_vst2_lane_u32
   10321 // CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10322 void test_vst2_lane_u32(uint32_t * a, uint32x2x2_t b) {
   10323   vst2_lane_u32(a, b, 1);
   10324 }
   10325 
   10326 // CHECK: test_vst2_lane_s8
   10327 // CHECK: vst2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10328 void test_vst2_lane_s8(int8_t * a, int8x8x2_t b) {
   10329   vst2_lane_s8(a, b, 7);
   10330 }
   10331 
   10332 // CHECK: test_vst2_lane_s16
   10333 // CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10334 void test_vst2_lane_s16(int16_t * a, int16x4x2_t b) {
   10335   vst2_lane_s16(a, b, 3);
   10336 }
   10337 
   10338 // CHECK: test_vst2_lane_s32
   10339 // CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10340 void test_vst2_lane_s32(int32_t * a, int32x2x2_t b) {
   10341   vst2_lane_s32(a, b, 1);
   10342 }
   10343 
   10344 // CHECK: test_vst2_lane_f16
   10345 // CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10346 void test_vst2_lane_f16(float16_t * a, float16x4x2_t b) {
   10347   vst2_lane_f16(a, b, 3);
   10348 }
   10349 
   10350 // CHECK: test_vst2_lane_f32
   10351 // CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10352 void test_vst2_lane_f32(float32_t * a, float32x2x2_t b) {
   10353   vst2_lane_f32(a, b, 1);
   10354 }
   10355 
   10356 // CHECK: test_vst2_lane_p8
   10357 // CHECK: vst2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10358 void test_vst2_lane_p8(poly8_t * a, poly8x8x2_t b) {
   10359   vst2_lane_p8(a, b, 7);
   10360 }
   10361 
   10362 // CHECK: test_vst2_lane_p16
   10363 // CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10364 void test_vst2_lane_p16(poly16_t * a, poly16x4x2_t b) {
   10365   vst2_lane_p16(a, b, 3);
   10366 }
   10367 
   10368 
   10369 // CHECK: test_vst3q_u8
   10370 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   10371 void test_vst3q_u8(uint8_t * a, uint8x16x3_t b) {
   10372   vst3q_u8(a, b);
   10373 }
   10374 
   10375 // CHECK: test_vst3q_u16
   10376 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   10377 void test_vst3q_u16(uint16_t * a, uint16x8x3_t b) {
   10378   vst3q_u16(a, b);
   10379 }
   10380 
   10381 // CHECK: test_vst3q_u32
   10382 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   10383 void test_vst3q_u32(uint32_t * a, uint32x4x3_t b) {
   10384   vst3q_u32(a, b);
   10385 }
   10386 
   10387 // CHECK: test_vst3q_s8
   10388 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   10389 void test_vst3q_s8(int8_t * a, int8x16x3_t b) {
   10390   vst3q_s8(a, b);
   10391 }
   10392 
   10393 // CHECK: test_vst3q_s16
   10394 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   10395 void test_vst3q_s16(int16_t * a, int16x8x3_t b) {
   10396   vst3q_s16(a, b);
   10397 }
   10398 
   10399 // CHECK: test_vst3q_s32
   10400 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   10401 void test_vst3q_s32(int32_t * a, int32x4x3_t b) {
   10402   vst3q_s32(a, b);
   10403 }
   10404 
   10405 // CHECK: test_vst3q_f16
   10406 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   10407 void test_vst3q_f16(float16_t * a, float16x8x3_t b) {
   10408   vst3q_f16(a, b);
   10409 }
   10410 
   10411 // CHECK: test_vst3q_f32
   10412 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   10413 void test_vst3q_f32(float32_t * a, float32x4x3_t b) {
   10414   vst3q_f32(a, b);
   10415 }
   10416 
   10417 // CHECK: test_vst3q_p8
   10418 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   10419 void test_vst3q_p8(poly8_t * a, poly8x16x3_t b) {
   10420   vst3q_p8(a, b);
   10421 }
   10422 
   10423 // CHECK: test_vst3q_p16
   10424 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   10425 void test_vst3q_p16(poly16_t * a, poly16x8x3_t b) {
   10426   vst3q_p16(a, b);
   10427 }
   10428 
   10429 // CHECK: test_vst3_u8
   10430 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10431 void test_vst3_u8(uint8_t * a, uint8x8x3_t b) {
   10432   vst3_u8(a, b);
   10433 }
   10434 
   10435 // CHECK: test_vst3_u16
   10436 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10437 void test_vst3_u16(uint16_t * a, uint16x4x3_t b) {
   10438   vst3_u16(a, b);
   10439 }
   10440 
   10441 // CHECK: test_vst3_u32
   10442 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10443 void test_vst3_u32(uint32_t * a, uint32x2x3_t b) {
   10444   vst3_u32(a, b);
   10445 }
   10446 
   10447 // CHECK: test_vst3_u64
   10448 // CHECK: vst1.64
   10449 void test_vst3_u64(uint64_t * a, uint64x1x3_t b) {
   10450   vst3_u64(a, b);
   10451 }
   10452 
   10453 // CHECK: test_vst3_s8
   10454 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10455 void test_vst3_s8(int8_t * a, int8x8x3_t b) {
   10456   vst3_s8(a, b);
   10457 }
   10458 
   10459 // CHECK: test_vst3_s16
   10460 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10461 void test_vst3_s16(int16_t * a, int16x4x3_t b) {
   10462   vst3_s16(a, b);
   10463 }
   10464 
   10465 // CHECK: test_vst3_s32
   10466 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10467 void test_vst3_s32(int32_t * a, int32x2x3_t b) {
   10468   vst3_s32(a, b);
   10469 }
   10470 
   10471 // CHECK: test_vst3_s64
   10472 // CHECK: vst1.64
   10473 void test_vst3_s64(int64_t * a, int64x1x3_t b) {
   10474   vst3_s64(a, b);
   10475 }
   10476 
   10477 // CHECK: test_vst3_f16
   10478 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10479 void test_vst3_f16(float16_t * a, float16x4x3_t b) {
   10480   vst3_f16(a, b);
   10481 }
   10482 
   10483 // CHECK: test_vst3_f32
   10484 // CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10485 void test_vst3_f32(float32_t * a, float32x2x3_t b) {
   10486   vst3_f32(a, b);
   10487 }
   10488 
   10489 // CHECK: test_vst3_p8
   10490 // CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10491 void test_vst3_p8(poly8_t * a, poly8x8x3_t b) {
   10492   vst3_p8(a, b);
   10493 }
   10494 
   10495 // CHECK: test_vst3_p16
   10496 // CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10497 void test_vst3_p16(poly16_t * a, poly16x4x3_t b) {
   10498   vst3_p16(a, b);
   10499 }
   10500 
   10501 
   10502 // CHECK: test_vst3q_lane_u16
   10503 // CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   10504 void test_vst3q_lane_u16(uint16_t * a, uint16x8x3_t b) {
   10505   vst3q_lane_u16(a, b, 7);
   10506 }
   10507 
   10508 // CHECK: test_vst3q_lane_u32
   10509 // CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   10510 void test_vst3q_lane_u32(uint32_t * a, uint32x4x3_t b) {
   10511   vst3q_lane_u32(a, b, 3);
   10512 }
   10513 
   10514 // CHECK: test_vst3q_lane_s16
   10515 // CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   10516 void test_vst3q_lane_s16(int16_t * a, int16x8x3_t b) {
   10517   vst3q_lane_s16(a, b, 7);
   10518 }
   10519 
   10520 // CHECK: test_vst3q_lane_s32
   10521 // CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   10522 void test_vst3q_lane_s32(int32_t * a, int32x4x3_t b) {
   10523   vst3q_lane_s32(a, b, 3);
   10524 }
   10525 
   10526 // CHECK: test_vst3q_lane_f16
   10527 // CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   10528 void test_vst3q_lane_f16(float16_t * a, float16x8x3_t b) {
   10529   vst3q_lane_f16(a, b, 7);
   10530 }
   10531 
   10532 // CHECK: test_vst3q_lane_f32
   10533 // CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   10534 void test_vst3q_lane_f32(float32_t * a, float32x4x3_t b) {
   10535   vst3q_lane_f32(a, b, 3);
   10536 }
   10537 
   10538 // CHECK: test_vst3q_lane_p16
   10539 // CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   10540 void test_vst3q_lane_p16(poly16_t * a, poly16x8x3_t b) {
   10541   vst3q_lane_p16(a, b, 7);
   10542 }
   10543 
   10544 // CHECK: test_vst3_lane_u8
   10545 // CHECK: vst3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10546 void test_vst3_lane_u8(uint8_t * a, uint8x8x3_t b) {
   10547   vst3_lane_u8(a, b, 7);
   10548 }
   10549 
   10550 // CHECK: test_vst3_lane_u16
   10551 // CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10552 void test_vst3_lane_u16(uint16_t * a, uint16x4x3_t b) {
   10553   vst3_lane_u16(a, b, 3);
   10554 }
   10555 
   10556 // CHECK: test_vst3_lane_u32
   10557 // CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10558 void test_vst3_lane_u32(uint32_t * a, uint32x2x3_t b) {
   10559   vst3_lane_u32(a, b, 1);
   10560 }
   10561 
   10562 // CHECK: test_vst3_lane_s8
   10563 // CHECK: vst3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10564 void test_vst3_lane_s8(int8_t * a, int8x8x3_t b) {
   10565   vst3_lane_s8(a, b, 7);
   10566 }
   10567 
   10568 // CHECK: test_vst3_lane_s16
   10569 // CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10570 void test_vst3_lane_s16(int16_t * a, int16x4x3_t b) {
   10571   vst3_lane_s16(a, b, 3);
   10572 }
   10573 
   10574 // CHECK: test_vst3_lane_s32
   10575 // CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10576 void test_vst3_lane_s32(int32_t * a, int32x2x3_t b) {
   10577   vst3_lane_s32(a, b, 1);
   10578 }
   10579 
   10580 // CHECK: test_vst3_lane_f16
   10581 // CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10582 void test_vst3_lane_f16(float16_t * a, float16x4x3_t b) {
   10583   vst3_lane_f16(a, b, 3);
   10584 }
   10585 
   10586 // CHECK: test_vst3_lane_f32
   10587 // CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10588 void test_vst3_lane_f32(float32_t * a, float32x2x3_t b) {
   10589   vst3_lane_f32(a, b, 1);
   10590 }
   10591 
   10592 // CHECK: test_vst3_lane_p8
   10593 // CHECK: vst3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10594 void test_vst3_lane_p8(poly8_t * a, poly8x8x3_t b) {
   10595   vst3_lane_p8(a, b, 7);
   10596 }
   10597 
   10598 // CHECK: test_vst3_lane_p16
   10599 // CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10600 void test_vst3_lane_p16(poly16_t * a, poly16x4x3_t b) {
   10601   vst3_lane_p16(a, b, 3);
   10602 }
   10603 
   10604 
   10605 // CHECK: test_vst4q_u8
   10606 // CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   10607 void test_vst4q_u8(uint8_t * a, uint8x16x4_t b) {
   10608   vst4q_u8(a, b);
   10609 }
   10610 
   10611 // CHECK: test_vst4q_u16
   10612 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   10613 void test_vst4q_u16(uint16_t * a, uint16x8x4_t b) {
   10614   vst4q_u16(a, b);
   10615 }
   10616 
   10617 // CHECK: test_vst4q_u32
   10618 // CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   10619 void test_vst4q_u32(uint32_t * a, uint32x4x4_t b) {
   10620   vst4q_u32(a, b);
   10621 }
   10622 
   10623 // CHECK: test_vst4q_s8
   10624 // CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   10625 void test_vst4q_s8(int8_t * a, int8x16x4_t b) {
   10626   vst4q_s8(a, b);
   10627 }
   10628 
   10629 // CHECK: test_vst4q_s16
   10630 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   10631 void test_vst4q_s16(int16_t * a, int16x8x4_t b) {
   10632   vst4q_s16(a, b);
   10633 }
   10634 
   10635 // CHECK: test_vst4q_s32
   10636 // CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   10637 void test_vst4q_s32(int32_t * a, int32x4x4_t b) {
   10638   vst4q_s32(a, b);
   10639 }
   10640 
   10641 // CHECK: test_vst4q_f16
   10642 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   10643 void test_vst4q_f16(float16_t * a, float16x8x4_t b) {
   10644   vst4q_f16(a, b);
   10645 }
   10646 
   10647 // CHECK: test_vst4q_f32
   10648 // CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   10649 void test_vst4q_f32(float32_t * a, float32x4x4_t b) {
   10650   vst4q_f32(a, b);
   10651 }
   10652 
   10653 // CHECK: test_vst4q_p8
   10654 // CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   10655 void test_vst4q_p8(poly8_t * a, poly8x16x4_t b) {
   10656   vst4q_p8(a, b);
   10657 }
   10658 
   10659 // CHECK: test_vst4q_p16
   10660 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}
   10661 void test_vst4q_p16(poly16_t * a, poly16x8x4_t b) {
   10662   vst4q_p16(a, b);
   10663 }
   10664 
   10665 // CHECK: test_vst4_u8
   10666 // CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10667 void test_vst4_u8(uint8_t * a, uint8x8x4_t b) {
   10668   vst4_u8(a, b);
   10669 }
   10670 
   10671 // CHECK: test_vst4_u16
   10672 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10673 void test_vst4_u16(uint16_t * a, uint16x4x4_t b) {
   10674   vst4_u16(a, b);
   10675 }
   10676 
   10677 // CHECK: test_vst4_u32
   10678 // CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10679 void test_vst4_u32(uint32_t * a, uint32x2x4_t b) {
   10680   vst4_u32(a, b);
   10681 }
   10682 
   10683 // CHECK: test_vst4_u64
   10684 // CHECK: vst1.64
   10685 void test_vst4_u64(uint64_t * a, uint64x1x4_t b) {
   10686   vst4_u64(a, b);
   10687 }
   10688 
   10689 // CHECK: test_vst4_s8
   10690 // CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10691 void test_vst4_s8(int8_t * a, int8x8x4_t b) {
   10692   vst4_s8(a, b);
   10693 }
   10694 
   10695 // CHECK: test_vst4_s16
   10696 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10697 void test_vst4_s16(int16_t * a, int16x4x4_t b) {
   10698   vst4_s16(a, b);
   10699 }
   10700 
   10701 // CHECK: test_vst4_s32
   10702 // CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10703 void test_vst4_s32(int32_t * a, int32x2x4_t b) {
   10704   vst4_s32(a, b);
   10705 }
   10706 
   10707 // CHECK: test_vst4_s64
   10708 // CHECK: vst1.64
   10709 void test_vst4_s64(int64_t * a, int64x1x4_t b) {
   10710   vst4_s64(a, b);
   10711 }
   10712 
   10713 // CHECK: test_vst4_f16
   10714 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10715 void test_vst4_f16(float16_t * a, float16x4x4_t b) {
   10716   vst4_f16(a, b);
   10717 }
   10718 
   10719 // CHECK: test_vst4_f32
   10720 // CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10721 void test_vst4_f32(float32_t * a, float32x2x4_t b) {
   10722   vst4_f32(a, b);
   10723 }
   10724 
   10725 // CHECK: test_vst4_p8
   10726 // CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10727 void test_vst4_p8(poly8_t * a, poly8x8x4_t b) {
   10728   vst4_p8(a, b);
   10729 }
   10730 
   10731 // CHECK: test_vst4_p16
   10732 // CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}]
   10733 void test_vst4_p16(poly16_t * a, poly16x4x4_t b) {
   10734   vst4_p16(a, b);
   10735 }
   10736 
   10737 
   10738 // CHECK: test_vst4q_lane_u16
   10739 // CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   10740 void test_vst4q_lane_u16(uint16_t * a, uint16x8x4_t b) {
   10741   vst4q_lane_u16(a, b, 7);
   10742 }
   10743 
   10744 // CHECK: test_vst4q_lane_u32
   10745 // CHECK: vst4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   10746 void test_vst4q_lane_u32(uint32_t * a, uint32x4x4_t b) {
   10747   vst4q_lane_u32(a, b, 3);
   10748 }
   10749 
   10750 // CHECK: test_vst4q_lane_s16
   10751 // CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   10752 void test_vst4q_lane_s16(int16_t * a, int16x8x4_t b) {
   10753   vst4q_lane_s16(a, b, 7);
   10754 }
   10755 
   10756 // CHECK: test_vst4q_lane_s32
   10757 // CHECK: vst4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   10758 void test_vst4q_lane_s32(int32_t * a, int32x4x4_t b) {
   10759   vst4q_lane_s32(a, b, 3);
   10760 }
   10761 
   10762 // CHECK: test_vst4q_lane_f16
   10763 // CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   10764 void test_vst4q_lane_f16(float16_t * a, float16x8x4_t b) {
   10765   vst4q_lane_f16(a, b, 7);
   10766 }
   10767 
   10768 // CHECK: test_vst4q_lane_f32
   10769 // CHECK: vst4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   10770 void test_vst4q_lane_f32(float32_t * a, float32x4x4_t b) {
   10771   vst4q_lane_f32(a, b, 3);
   10772 }
   10773 
   10774 // CHECK: test_vst4q_lane_p16
   10775 // CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}
   10776 void test_vst4q_lane_p16(poly16_t * a, poly16x8x4_t b) {
   10777   vst4q_lane_p16(a, b, 7);
   10778 }
   10779 
   10780 // CHECK: test_vst4_lane_u8
   10781 // CHECK: vst4.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10782 void test_vst4_lane_u8(uint8_t * a, uint8x8x4_t b) {
   10783   vst4_lane_u8(a, b, 7);
   10784 }
   10785 
   10786 // CHECK: test_vst4_lane_u16
   10787 // CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10788 void test_vst4_lane_u16(uint16_t * a, uint16x4x4_t b) {
   10789   vst4_lane_u16(a, b, 3);
   10790 }
   10791 
   10792 // CHECK: test_vst4_lane_u32
   10793 // CHECK: vst4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10794 void test_vst4_lane_u32(uint32_t * a, uint32x2x4_t b) {
   10795   vst4_lane_u32(a, b, 1);
   10796 }
   10797 
   10798 // CHECK: test_vst4_lane_s8
   10799 // CHECK: vst4.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10800 void test_vst4_lane_s8(int8_t * a, int8x8x4_t b) {
   10801   vst4_lane_s8(a, b, 7);
   10802 }
   10803 
   10804 // CHECK: test_vst4_lane_s16
   10805 // CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10806 void test_vst4_lane_s16(int16_t * a, int16x4x4_t b) {
   10807   vst4_lane_s16(a, b, 3);
   10808 }
   10809 
   10810 // CHECK: test_vst4_lane_s32
   10811 // CHECK: vst4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10812 void test_vst4_lane_s32(int32_t * a, int32x2x4_t b) {
   10813   vst4_lane_s32(a, b, 1);
   10814 }
   10815 
   10816 // CHECK: test_vst4_lane_f16
   10817 // CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10818 void test_vst4_lane_f16(float16_t * a, float16x4x4_t b) {
   10819   vst4_lane_f16(a, b, 3);
   10820 }
   10821 
   10822 // CHECK: test_vst4_lane_f32
   10823 // CHECK: vst4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10824 void test_vst4_lane_f32(float32_t * a, float32x2x4_t b) {
   10825   vst4_lane_f32(a, b, 1);
   10826 }
   10827 
   10828 // CHECK: test_vst4_lane_p8
   10829 // CHECK: vst4.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10830 void test_vst4_lane_p8(poly8_t * a, poly8x8x4_t b) {
   10831   vst4_lane_p8(a, b, 7);
   10832 }
   10833 
   10834 // CHECK: test_vst4_lane_p16
   10835 // CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}]
   10836 void test_vst4_lane_p16(poly16_t * a, poly16x4x4_t b) {
   10837   vst4_lane_p16(a, b, 3);
   10838 }
   10839 
   10840 
   10841 // CHECK: test_vsub_s8
   10842 // CHECK: vsub.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   10843 int8x8_t test_vsub_s8(int8x8_t a, int8x8_t b) {
   10844   return vsub_s8(a, b);
   10845 }
   10846 
   10847 // CHECK: test_vsub_s16
   10848 // CHECK: vsub.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   10849 int16x4_t test_vsub_s16(int16x4_t a, int16x4_t b) {
   10850   return vsub_s16(a, b);
   10851 }
   10852 
   10853 // CHECK: test_vsub_s32
   10854 // CHECK: vsub.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   10855 int32x2_t test_vsub_s32(int32x2_t a, int32x2_t b) {
   10856   return vsub_s32(a, b);
   10857 }
   10858 
   10859 // CHECK: test_vsub_s64
   10860 // CHECK: vsub.i64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   10861 int64x1_t test_vsub_s64(int64x1_t a, int64x1_t b) {
   10862   return vsub_s64(a, b);
   10863 }
   10864 
   10865 // CHECK: test_vsub_f32
   10866 // CHECK: vsub.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   10867 float32x2_t test_vsub_f32(float32x2_t a, float32x2_t b) {
   10868   return vsub_f32(a, b);
   10869 }
   10870 
   10871 // CHECK: test_vsub_u8
   10872 // CHECK: vsub.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   10873 uint8x8_t test_vsub_u8(uint8x8_t a, uint8x8_t b) {
   10874   return vsub_u8(a, b);
   10875 }
   10876 
   10877 // CHECK: test_vsub_u16
   10878 // CHECK: vsub.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   10879 uint16x4_t test_vsub_u16(uint16x4_t a, uint16x4_t b) {
   10880   return vsub_u16(a, b);
   10881 }
   10882 
   10883 // CHECK: test_vsub_u32
   10884 // CHECK: vsub.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   10885 uint32x2_t test_vsub_u32(uint32x2_t a, uint32x2_t b) {
   10886   return vsub_u32(a, b);
   10887 }
   10888 
   10889 // CHECK: test_vsub_u64
   10890 // CHECK: vsub.i64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   10891 uint64x1_t test_vsub_u64(uint64x1_t a, uint64x1_t b) {
   10892   return vsub_u64(a, b);
   10893 }
   10894 
   10895 // CHECK: test_vsubq_s8
   10896 // CHECK: vsub.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   10897 int8x16_t test_vsubq_s8(int8x16_t a, int8x16_t b) {
   10898   return vsubq_s8(a, b);
   10899 }
   10900 
   10901 // CHECK: test_vsubq_s16
   10902 // CHECK: vsub.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   10903 int16x8_t test_vsubq_s16(int16x8_t a, int16x8_t b) {
   10904   return vsubq_s16(a, b);
   10905 }
   10906 
   10907 // CHECK: test_vsubq_s32
   10908 // CHECK: vsub.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   10909 int32x4_t test_vsubq_s32(int32x4_t a, int32x4_t b) {
   10910   return vsubq_s32(a, b);
   10911 }
   10912 
   10913 // CHECK: test_vsubq_s64
   10914 // CHECK: vsub.i64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   10915 int64x2_t test_vsubq_s64(int64x2_t a, int64x2_t b) {
   10916   return vsubq_s64(a, b);
   10917 }
   10918 
   10919 // CHECK: test_vsubq_f32
   10920 // CHECK: vsub.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   10921 float32x4_t test_vsubq_f32(float32x4_t a, float32x4_t b) {
   10922   return vsubq_f32(a, b);
   10923 }
   10924 
   10925 // CHECK: test_vsubq_u8
   10926 // CHECK: vsub.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   10927 uint8x16_t test_vsubq_u8(uint8x16_t a, uint8x16_t b) {
   10928   return vsubq_u8(a, b);
   10929 }
   10930 
   10931 // CHECK: test_vsubq_u16
   10932 // CHECK: vsub.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   10933 uint16x8_t test_vsubq_u16(uint16x8_t a, uint16x8_t b) {
   10934   return vsubq_u16(a, b);
   10935 }
   10936 
   10937 // CHECK: test_vsubq_u32
   10938 // CHECK: vsub.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   10939 uint32x4_t test_vsubq_u32(uint32x4_t a, uint32x4_t b) {
   10940   return vsubq_u32(a, b);
   10941 }
   10942 
   10943 // CHECK: test_vsubq_u64
   10944 // CHECK: vsub.i64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   10945 uint64x2_t test_vsubq_u64(uint64x2_t a, uint64x2_t b) {
   10946   return vsubq_u64(a, b);
   10947 }
   10948 
   10949 
   10950 // CHECK: test_vsubhn_s16
   10951 // CHECK: vsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   10952 int8x8_t test_vsubhn_s16(int16x8_t a, int16x8_t b) {
   10953   return vsubhn_s16(a, b);
   10954 }
   10955 
   10956 // CHECK: test_vsubhn_s32
   10957 // CHECK: vsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   10958 int16x4_t test_vsubhn_s32(int32x4_t a, int32x4_t b) {
   10959   return vsubhn_s32(a, b);
   10960 }
   10961 
   10962 // CHECK: test_vsubhn_s64
   10963 // CHECK: vsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   10964 int32x2_t test_vsubhn_s64(int64x2_t a, int64x2_t b) {
   10965   return vsubhn_s64(a, b);
   10966 }
   10967 
   10968 // CHECK: test_vsubhn_u16
   10969 // CHECK: vsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   10970 uint8x8_t test_vsubhn_u16(uint16x8_t a, uint16x8_t b) {
   10971   return vsubhn_u16(a, b);
   10972 }
   10973 
   10974 // CHECK: test_vsubhn_u32
   10975 // CHECK: vsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   10976 uint16x4_t test_vsubhn_u32(uint32x4_t a, uint32x4_t b) {
   10977   return vsubhn_u32(a, b);
   10978 }
   10979 
   10980 // CHECK: test_vsubhn_u64
   10981 // CHECK: vsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   10982 uint32x2_t test_vsubhn_u64(uint64x2_t a, uint64x2_t b) {
   10983   return vsubhn_u64(a, b);
   10984 }
   10985 
   10986 
   10987 // CHECK: test_vsubl_s8
   10988 // CHECK: vsubl.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   10989 int16x8_t test_vsubl_s8(int8x8_t a, int8x8_t b) {
   10990   return vsubl_s8(a, b);
   10991 }
   10992 
   10993 // CHECK: test_vsubl_s16
   10994 // CHECK: vsubl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   10995 int32x4_t test_vsubl_s16(int16x4_t a, int16x4_t b) {
   10996   return vsubl_s16(a, b);
   10997 }
   10998 
   10999 // CHECK: test_vsubl_s32
   11000 // CHECK: vsubl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   11001 int64x2_t test_vsubl_s32(int32x2_t a, int32x2_t b) {
   11002   return vsubl_s32(a, b);
   11003 }
   11004 
   11005 // CHECK: test_vsubl_u8
   11006 // CHECK: vsubl.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   11007 uint16x8_t test_vsubl_u8(uint8x8_t a, uint8x8_t b) {
   11008   return vsubl_u8(a, b);
   11009 }
   11010 
   11011 // CHECK: test_vsubl_u16
   11012 // CHECK: vsubl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   11013 uint32x4_t test_vsubl_u16(uint16x4_t a, uint16x4_t b) {
   11014   return vsubl_u16(a, b);
   11015 }
   11016 
   11017 // CHECK: test_vsubl_u32
   11018 // CHECK: vsubl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   11019 uint64x2_t test_vsubl_u32(uint32x2_t a, uint32x2_t b) {
   11020   return vsubl_u32(a, b);
   11021 }
   11022 
   11023 
   11024 // CHECK: test_vsubw_s8
   11025 // CHECK: vsubw.s8 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
   11026 int16x8_t test_vsubw_s8(int16x8_t a, int8x8_t b) {
   11027   return vsubw_s8(a, b);
   11028 }
   11029 
   11030 // CHECK: test_vsubw_s16
   11031 // CHECK: vsubw.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
   11032 int32x4_t test_vsubw_s16(int32x4_t a, int16x4_t b) {
   11033   return vsubw_s16(a, b);
   11034 }
   11035 
   11036 // CHECK: test_vsubw_s32
   11037 // CHECK: vsubw.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
   11038 int64x2_t test_vsubw_s32(int64x2_t a, int32x2_t b) {
   11039   return vsubw_s32(a, b);
   11040 }
   11041 
   11042 // CHECK: test_vsubw_u8
   11043 // CHECK: vsubw.u8 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
   11044 uint16x8_t test_vsubw_u8(uint16x8_t a, uint8x8_t b) {
   11045   return vsubw_u8(a, b);
   11046 }
   11047 
   11048 // CHECK: test_vsubw_u16
   11049 // CHECK: vsubw.u16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
   11050 uint32x4_t test_vsubw_u16(uint32x4_t a, uint16x4_t b) {
   11051   return vsubw_u16(a, b);
   11052 }
   11053 
   11054 // CHECK: test_vsubw_u32
   11055 // CHECK: vsubw.u32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}
   11056 uint64x2_t test_vsubw_u32(uint64x2_t a, uint32x2_t b) {
   11057   return vsubw_u32(a, b);
   11058 }
   11059 
   11060 
   11061 // CHECK: test_vtbl1_u8
   11062 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
   11063 uint8x8_t test_vtbl1_u8(uint8x8_t a, uint8x8_t b) {
   11064   return vtbl1_u8(a, b);
   11065 }
   11066 
   11067 // CHECK: test_vtbl1_s8
   11068 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
   11069 int8x8_t test_vtbl1_s8(int8x8_t a, int8x8_t b) {
   11070   return vtbl1_s8(a, b);
   11071 }
   11072 
   11073 // CHECK: test_vtbl1_p8
   11074 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
   11075 poly8x8_t test_vtbl1_p8(poly8x8_t a, uint8x8_t b) {
   11076   return vtbl1_p8(a, b);
   11077 }
   11078 
   11079 
   11080 // CHECK: test_vtbl2_u8
   11081 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
   11082 uint8x8_t test_vtbl2_u8(uint8x8x2_t a, uint8x8_t b) {
   11083   return vtbl2_u8(a, b);
   11084 }
   11085 
   11086 // CHECK: test_vtbl2_s8
   11087 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
   11088 int8x8_t test_vtbl2_s8(int8x8x2_t a, int8x8_t b) {
   11089   return vtbl2_s8(a, b);
   11090 }
   11091 
   11092 // CHECK: test_vtbl2_p8
   11093 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
   11094 poly8x8_t test_vtbl2_p8(poly8x8x2_t a, uint8x8_t b) {
   11095   return vtbl2_p8(a, b);
   11096 }
   11097 
   11098 
   11099 // CHECK: test_vtbl3_u8
   11100 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
   11101 uint8x8_t test_vtbl3_u8(uint8x8x3_t a, uint8x8_t b) {
   11102   return vtbl3_u8(a, b);
   11103 }
   11104 
   11105 // CHECK: test_vtbl3_s8
   11106 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
   11107 int8x8_t test_vtbl3_s8(int8x8x3_t a, int8x8_t b) {
   11108   return vtbl3_s8(a, b);
   11109 }
   11110 
   11111 // CHECK: test_vtbl3_p8
   11112 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
   11113 poly8x8_t test_vtbl3_p8(poly8x8x3_t a, uint8x8_t b) {
   11114   return vtbl3_p8(a, b);
   11115 }
   11116 
   11117 
   11118 // CHECK: test_vtbl4_u8
   11119 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
   11120 uint8x8_t test_vtbl4_u8(uint8x8x4_t a, uint8x8_t b) {
   11121   return vtbl4_u8(a, b);
   11122 }
   11123 
   11124 // CHECK: test_vtbl4_s8
   11125 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
   11126 int8x8_t test_vtbl4_s8(int8x8x4_t a, int8x8_t b) {
   11127   return vtbl4_s8(a, b);
   11128 }
   11129 
   11130 // CHECK: test_vtbl4_p8
   11131 // CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
   11132 poly8x8_t test_vtbl4_p8(poly8x8x4_t a, uint8x8_t b) {
   11133   return vtbl4_p8(a, b);
   11134 }
   11135 
   11136 
   11137 // CHECK: test_vtbx1_u8
   11138 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
   11139 uint8x8_t test_vtbx1_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) {
   11140   return vtbx1_u8(a, b, c);
   11141 }
   11142 
   11143 // CHECK: test_vtbx1_s8
   11144 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
   11145 int8x8_t test_vtbx1_s8(int8x8_t a, int8x8_t b, int8x8_t c) {
   11146   return vtbx1_s8(a, b, c);
   11147 }
   11148 
   11149 // CHECK: test_vtbx1_p8
   11150 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}}
   11151 poly8x8_t test_vtbx1_p8(poly8x8_t a, poly8x8_t b, uint8x8_t c) {
   11152   return vtbx1_p8(a, b, c);
   11153 }
   11154 
   11155 
   11156 // CHECK: test_vtbx2_u8
   11157 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
   11158 uint8x8_t test_vtbx2_u8(uint8x8_t a, uint8x8x2_t b, uint8x8_t c) {
   11159   return vtbx2_u8(a, b, c);
   11160 }
   11161 
   11162 // CHECK: test_vtbx2_s8
   11163 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
   11164 int8x8_t test_vtbx2_s8(int8x8_t a, int8x8x2_t b, int8x8_t c) {
   11165   return vtbx2_s8(a, b, c);
   11166 }
   11167 
   11168 // CHECK: test_vtbx2_p8
   11169 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
   11170 poly8x8_t test_vtbx2_p8(poly8x8_t a, poly8x8x2_t b, uint8x8_t c) {
   11171   return vtbx2_p8(a, b, c);
   11172 }
   11173 
   11174 
   11175 // CHECK: test_vtbx3_u8
   11176 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
   11177 uint8x8_t test_vtbx3_u8(uint8x8_t a, uint8x8x3_t b, uint8x8_t c) {
   11178   return vtbx3_u8(a, b, c);
   11179 }
   11180 
   11181 // CHECK: test_vtbx3_s8
   11182 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
   11183 int8x8_t test_vtbx3_s8(int8x8_t a, int8x8x3_t b, int8x8_t c) {
   11184   return vtbx3_s8(a, b, c);
   11185 }
   11186 
   11187 // CHECK: test_vtbx3_p8
   11188 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
   11189 poly8x8_t test_vtbx3_p8(poly8x8_t a, poly8x8x3_t b, uint8x8_t c) {
   11190   return vtbx3_p8(a, b, c);
   11191 }
   11192 
   11193 
   11194 // CHECK: test_vtbx4_u8
   11195 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
   11196 uint8x8_t test_vtbx4_u8(uint8x8_t a, uint8x8x4_t b, uint8x8_t c) {
   11197   return vtbx4_u8(a, b, c);
   11198 }
   11199 
   11200 // CHECK: test_vtbx4_s8
   11201 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
   11202 int8x8_t test_vtbx4_s8(int8x8_t a, int8x8x4_t b, int8x8_t c) {
   11203   return vtbx4_s8(a, b, c);
   11204 }
   11205 
   11206 // CHECK: test_vtbx4_p8
   11207 // CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}}
   11208 poly8x8_t test_vtbx4_p8(poly8x8_t a, poly8x8x4_t b, uint8x8_t c) {
   11209   return vtbx4_p8(a, b, c);
   11210 }
   11211 
   11212 
   11213 // CHECK: test_vtrn_s8
   11214 // CHECK: vtrn.8 d{{[0-9]+}}, d{{[0-9]+}}
   11215 int8x8x2_t test_vtrn_s8(int8x8_t a, int8x8_t b) {
   11216   return vtrn_s8(a, b);
   11217 }
   11218 
   11219 // CHECK: test_vtrn_s16
   11220 // CHECK: vtrn.16 d{{[0-9]+}}, d{{[0-9]+}}
   11221 int16x4x2_t test_vtrn_s16(int16x4_t a, int16x4_t b) {
   11222   return vtrn_s16(a, b);
   11223 }
   11224 
   11225 // CHECK: test_vtrn_s32
   11226 // CHECK: vtrn.32 d{{[0-9]+}}, d{{[0-9]+}}
   11227 int32x2x2_t test_vtrn_s32(int32x2_t a, int32x2_t b) {
   11228   return vtrn_s32(a, b);
   11229 }
   11230 
   11231 // CHECK: test_vtrn_u8
   11232 // CHECK: vtrn.8 d{{[0-9]+}}, d{{[0-9]+}}
   11233 uint8x8x2_t test_vtrn_u8(uint8x8_t a, uint8x8_t b) {
   11234   return vtrn_u8(a, b);
   11235 }
   11236 
   11237 // CHECK: test_vtrn_u16
   11238 // CHECK: vtrn.16 d{{[0-9]+}}, d{{[0-9]+}}
   11239 uint16x4x2_t test_vtrn_u16(uint16x4_t a, uint16x4_t b) {
   11240   return vtrn_u16(a, b);
   11241 }
   11242 
   11243 // CHECK: test_vtrn_u32
   11244 // CHECK: vtrn.32 d{{[0-9]+}}, d{{[0-9]+}}
   11245 uint32x2x2_t test_vtrn_u32(uint32x2_t a, uint32x2_t b) {
   11246   return vtrn_u32(a, b);
   11247 }
   11248 
   11249 // CHECK: test_vtrn_f32
   11250 // CHECK: vtrn.32 d{{[0-9]+}}, d{{[0-9]+}}
   11251 float32x2x2_t test_vtrn_f32(float32x2_t a, float32x2_t b) {
   11252   return vtrn_f32(a, b);
   11253 }
   11254 
   11255 // CHECK: test_vtrn_p8
   11256 // CHECK: vtrn.8 d{{[0-9]+}}, d{{[0-9]+}}
   11257 poly8x8x2_t test_vtrn_p8(poly8x8_t a, poly8x8_t b) {
   11258   return vtrn_p8(a, b);
   11259 }
   11260 
   11261 // CHECK: test_vtrn_p16
   11262 // CHECK: vtrn.16 d{{[0-9]+}}, d{{[0-9]+}}
   11263 poly16x4x2_t test_vtrn_p16(poly16x4_t a, poly16x4_t b) {
   11264   return vtrn_p16(a, b);
   11265 }
   11266 
   11267 // CHECK: test_vtrnq_s8
   11268 // CHECK: vtrn.8 q{{[0-9]+}}, q{{[0-9]+}}
   11269 int8x16x2_t test_vtrnq_s8(int8x16_t a, int8x16_t b) {
   11270   return vtrnq_s8(a, b);
   11271 }
   11272 
   11273 // CHECK: test_vtrnq_s16
   11274 // CHECK: vtrn.16 q{{[0-9]+}}, q{{[0-9]+}}
   11275 int16x8x2_t test_vtrnq_s16(int16x8_t a, int16x8_t b) {
   11276   return vtrnq_s16(a, b);
   11277 }
   11278 
   11279 // CHECK: test_vtrnq_s32
   11280 // CHECK: vtrn.32 q{{[0-9]+}}, q{{[0-9]+}}
   11281 int32x4x2_t test_vtrnq_s32(int32x4_t a, int32x4_t b) {
   11282   return vtrnq_s32(a, b);
   11283 }
   11284 
   11285 // CHECK: test_vtrnq_u8
   11286 // CHECK: vtrn.8 q{{[0-9]+}}, q{{[0-9]+}}
   11287 uint8x16x2_t test_vtrnq_u8(uint8x16_t a, uint8x16_t b) {
   11288   return vtrnq_u8(a, b);
   11289 }
   11290 
   11291 // CHECK: test_vtrnq_u16
   11292 // CHECK: vtrn.16 q{{[0-9]+}}, q{{[0-9]+}}
   11293 uint16x8x2_t test_vtrnq_u16(uint16x8_t a, uint16x8_t b) {
   11294   return vtrnq_u16(a, b);
   11295 }
   11296 
   11297 // CHECK: test_vtrnq_u32
   11298 // CHECK: vtrn.32 q{{[0-9]+}}, q{{[0-9]+}}
   11299 uint32x4x2_t test_vtrnq_u32(uint32x4_t a, uint32x4_t b) {
   11300   return vtrnq_u32(a, b);
   11301 }
   11302 
   11303 // CHECK: test_vtrnq_f32
   11304 // CHECK: vtrn.32 q{{[0-9]+}}, q{{[0-9]+}}
   11305 float32x4x2_t test_vtrnq_f32(float32x4_t a, float32x4_t b) {
   11306   return vtrnq_f32(a, b);
   11307 }
   11308 
   11309 // CHECK: test_vtrnq_p8
   11310 // CHECK: vtrn.8 q{{[0-9]+}}, q{{[0-9]+}}
   11311 poly8x16x2_t test_vtrnq_p8(poly8x16_t a, poly8x16_t b) {
   11312   return vtrnq_p8(a, b);
   11313 }
   11314 
   11315 // CHECK: test_vtrnq_p16
   11316 // CHECK: vtrn.16 q{{[0-9]+}}, q{{[0-9]+}}
   11317 poly16x8x2_t test_vtrnq_p16(poly16x8_t a, poly16x8_t b) {
   11318   return vtrnq_p16(a, b);
   11319 }
   11320 
   11321 
   11322 // CHECK: test_vtst_s8
   11323 // CHECK: vtst.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   11324 uint8x8_t test_vtst_s8(int8x8_t a, int8x8_t b) {
   11325   return vtst_s8(a, b);
   11326 }
   11327 
   11328 // CHECK: test_vtst_s16
   11329 // CHECK: vtst.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   11330 uint16x4_t test_vtst_s16(int16x4_t a, int16x4_t b) {
   11331   return vtst_s16(a, b);
   11332 }
   11333 
   11334 // CHECK: test_vtst_s32
   11335 // CHECK: vtst.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   11336 uint32x2_t test_vtst_s32(int32x2_t a, int32x2_t b) {
   11337   return vtst_s32(a, b);
   11338 }
   11339 
   11340 // CHECK: test_vtst_u8
   11341 // CHECK: vtst.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   11342 uint8x8_t test_vtst_u8(uint8x8_t a, uint8x8_t b) {
   11343   return vtst_u8(a, b);
   11344 }
   11345 
   11346 // CHECK: test_vtst_u16
   11347 // CHECK: vtst.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   11348 uint16x4_t test_vtst_u16(uint16x4_t a, uint16x4_t b) {
   11349   return vtst_u16(a, b);
   11350 }
   11351 
   11352 // CHECK: test_vtst_u32
   11353 // CHECK: vtst.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   11354 uint32x2_t test_vtst_u32(uint32x2_t a, uint32x2_t b) {
   11355   return vtst_u32(a, b);
   11356 }
   11357 
   11358 // CHECK: test_vtst_p8
   11359 // CHECK: vtst.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}
   11360 uint8x8_t test_vtst_p8(poly8x8_t a, poly8x8_t b) {
   11361   return vtst_p8(a, b);
   11362 }
   11363 
   11364 // CHECK: test_vtstq_s8
   11365 // CHECK: vtst.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   11366 uint8x16_t test_vtstq_s8(int8x16_t a, int8x16_t b) {
   11367   return vtstq_s8(a, b);
   11368 }
   11369 
   11370 // CHECK: test_vtstq_s16
   11371 // CHECK: vtst.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   11372 uint16x8_t test_vtstq_s16(int16x8_t a, int16x8_t b) {
   11373   return vtstq_s16(a, b);
   11374 }
   11375 
   11376 // CHECK: test_vtstq_s32
   11377 // CHECK: vtst.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   11378 uint32x4_t test_vtstq_s32(int32x4_t a, int32x4_t b) {
   11379   return vtstq_s32(a, b);
   11380 }
   11381 
   11382 // CHECK: test_vtstq_u8
   11383 // CHECK: vtst.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   11384 uint8x16_t test_vtstq_u8(uint8x16_t a, uint8x16_t b) {
   11385   return vtstq_u8(a, b);
   11386 }
   11387 
   11388 // CHECK: test_vtstq_u16
   11389 // CHECK: vtst.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   11390 uint16x8_t test_vtstq_u16(uint16x8_t a, uint16x8_t b) {
   11391   return vtstq_u16(a, b);
   11392 }
   11393 
   11394 // CHECK: test_vtstq_u32
   11395 // CHECK: vtst.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   11396 uint32x4_t test_vtstq_u32(uint32x4_t a, uint32x4_t b) {
   11397   return vtstq_u32(a, b);
   11398 }
   11399 
   11400 // CHECK: test_vtstq_p8
   11401 // CHECK: vtst.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}
   11402 uint8x16_t test_vtstq_p8(poly8x16_t a, poly8x16_t b) {
   11403   return vtstq_p8(a, b);
   11404 }
   11405 
   11406 
   11407 // CHECK: test_vuzp_s8
   11408 // CHECK: vuzp.8 d{{[0-9]+}}, d{{[0-9]+}}
   11409 int8x8x2_t test_vuzp_s8(int8x8_t a, int8x8_t b) {
   11410   return vuzp_s8(a, b);
   11411 }
   11412 
   11413 // CHECK: test_vuzp_s16
   11414 // CHECK: vuzp.16 d{{[0-9]+}}, d{{[0-9]+}}
   11415 int16x4x2_t test_vuzp_s16(int16x4_t a, int16x4_t b) {
   11416   return vuzp_s16(a, b);
   11417 }
   11418 
   11419 // CHECK: test_vuzp_s32
   11420 // CHECK: {{vtrn|vuzp}}.32 d{{[0-9]+}}, d{{[0-9]+}}
   11421 int32x2x2_t test_vuzp_s32(int32x2_t a, int32x2_t b) {
   11422   return vuzp_s32(a, b);
   11423 }
   11424 
   11425 // CHECK: test_vuzp_u8
   11426 // CHECK: vuzp.8 d{{[0-9]+}}, d{{[0-9]+}}
   11427 uint8x8x2_t test_vuzp_u8(uint8x8_t a, uint8x8_t b) {
   11428   return vuzp_u8(a, b);
   11429 }
   11430 
   11431 // CHECK: test_vuzp_u16
   11432 // CHECK: vuzp.16 d{{[0-9]+}}, d{{[0-9]+}}
   11433 uint16x4x2_t test_vuzp_u16(uint16x4_t a, uint16x4_t b) {
   11434   return vuzp_u16(a, b);
   11435 }
   11436 
   11437 // CHECK: test_vuzp_u32
   11438 // CHECK: {{vtrn|vuzp}}.32 d{{[0-9]+}}, d{{[0-9]+}}
   11439 uint32x2x2_t test_vuzp_u32(uint32x2_t a, uint32x2_t b) {
   11440   return vuzp_u32(a, b);
   11441 }
   11442 
   11443 // CHECK: test_vuzp_f32
   11444 // CHECK: {{vtrn|vuzp}}.32 d{{[0-9]+}}, d{{[0-9]+}}
   11445 float32x2x2_t test_vuzp_f32(float32x2_t a, float32x2_t b) {
   11446   return vuzp_f32(a, b);
   11447 }
   11448 
   11449 // CHECK: test_vuzp_p8
   11450 // CHECK: vuzp.8 d{{[0-9]+}}, d{{[0-9]+}}
   11451 poly8x8x2_t test_vuzp_p8(poly8x8_t a, poly8x8_t b) {
   11452   return vuzp_p8(a, b);
   11453 }
   11454 
   11455 // CHECK: test_vuzp_p16
   11456 // CHECK: vuzp.16 d{{[0-9]+}}, d{{[0-9]+}}
   11457 poly16x4x2_t test_vuzp_p16(poly16x4_t a, poly16x4_t b) {
   11458   return vuzp_p16(a, b);
   11459 }
   11460 
   11461 // CHECK: test_vuzpq_s8
   11462 // CHECK: vuzp.8 q{{[0-9]+}}, q{{[0-9]+}}
   11463 int8x16x2_t test_vuzpq_s8(int8x16_t a, int8x16_t b) {
   11464   return vuzpq_s8(a, b);
   11465 }
   11466 
   11467 // CHECK: test_vuzpq_s16
   11468 // CHECK: vuzp.16 q{{[0-9]+}}, q{{[0-9]+}}
   11469 int16x8x2_t test_vuzpq_s16(int16x8_t a, int16x8_t b) {
   11470   return vuzpq_s16(a, b);
   11471 }
   11472 
   11473 // CHECK: test_vuzpq_s32
   11474 // CHECK: {{vtrn|vuzp}}.32 q{{[0-9]+}}, q{{[0-9]+}}
   11475 int32x4x2_t test_vuzpq_s32(int32x4_t a, int32x4_t b) {
   11476   return vuzpq_s32(a, b);
   11477 }
   11478 
   11479 // CHECK: test_vuzpq_u8
   11480 // CHECK: vuzp.8 q{{[0-9]+}}, q{{[0-9]+}}
   11481 uint8x16x2_t test_vuzpq_u8(uint8x16_t a, uint8x16_t b) {
   11482   return vuzpq_u8(a, b);
   11483 }
   11484 
   11485 // CHECK: test_vuzpq_u16
   11486 // CHECK: vuzp.16 q{{[0-9]+}}, q{{[0-9]+}}
   11487 uint16x8x2_t test_vuzpq_u16(uint16x8_t a, uint16x8_t b) {
   11488   return vuzpq_u16(a, b);
   11489 }
   11490 
   11491 // CHECK: test_vuzpq_u32
   11492 // CHECK: {{vtrn|vuzp}}.32 q{{[0-9]+}}, q{{[0-9]+}}
   11493 uint32x4x2_t test_vuzpq_u32(uint32x4_t a, uint32x4_t b) {
   11494   return vuzpq_u32(a, b);
   11495 }
   11496 
   11497 // CHECK: test_vuzpq_f32
   11498 // CHECK: {{vtrn|vuzp}}.32 q{{[0-9]+}}, q{{[0-9]+}}
   11499 float32x4x2_t test_vuzpq_f32(float32x4_t a, float32x4_t b) {
   11500   return vuzpq_f32(a, b);
   11501 }
   11502 
   11503 // CHECK: test_vuzpq_p8
   11504 // CHECK: vuzp.8 q{{[0-9]+}}, q{{[0-9]+}}
   11505 poly8x16x2_t test_vuzpq_p8(poly8x16_t a, poly8x16_t b) {
   11506   return vuzpq_p8(a, b);
   11507 }
   11508 
   11509 // CHECK: test_vuzpq_p16
   11510 // CHECK: vuzp.16 q{{[0-9]+}}, q{{[0-9]+}}
   11511 poly16x8x2_t test_vuzpq_p16(poly16x8_t a, poly16x8_t b) {
   11512   return vuzpq_p16(a, b);
   11513 }
   11514 
   11515 
   11516 // CHECK: test_vzip_s8
   11517 // CHECK: vzip.8 d{{[0-9]+}}, d{{[0-9]+}}
   11518 int8x8x2_t test_vzip_s8(int8x8_t a, int8x8_t b) {
   11519   return vzip_s8(a, b);
   11520 }
   11521 
   11522 // CHECK: test_vzip_s16
   11523 // CHECK: vzip.16 d{{[0-9]+}}, d{{[0-9]+}}
   11524 int16x4x2_t test_vzip_s16(int16x4_t a, int16x4_t b) {
   11525   return vzip_s16(a, b);
   11526 }
   11527 
   11528 // CHECK: test_vzip_s32
   11529 // CHECK: {{vtrn|vzip}}.32 d{{[0-9]+}}, d{{[0-9]+}}
   11530 int32x2x2_t test_vzip_s32(int32x2_t a, int32x2_t b) {
   11531   return vzip_s32(a, b);
   11532 }
   11533 
   11534 // CHECK: test_vzip_u8
   11535 // CHECK: vzip.8 d{{[0-9]+}}, d{{[0-9]+}}
   11536 uint8x8x2_t test_vzip_u8(uint8x8_t a, uint8x8_t b) {
   11537   return vzip_u8(a, b);
   11538 }
   11539 
   11540 // CHECK: test_vzip_u16
   11541 // CHECK: vzip.16 d{{[0-9]+}}, d{{[0-9]+}}
   11542 uint16x4x2_t test_vzip_u16(uint16x4_t a, uint16x4_t b) {
   11543   return vzip_u16(a, b);
   11544 }
   11545 
   11546 // CHECK: test_vzip_u32
   11547 // CHECK: {{vtrn|vzip}}.32 d{{[0-9]+}}, d{{[0-9]+}}
   11548 uint32x2x2_t test_vzip_u32(uint32x2_t a, uint32x2_t b) {
   11549   return vzip_u32(a, b);
   11550 }
   11551 
   11552 // CHECK: test_vzip_f32
   11553 // CHECK: {{vtrn|vzip}}.32 d{{[0-9]+}}, d{{[0-9]+}}
   11554 float32x2x2_t test_vzip_f32(float32x2_t a, float32x2_t b) {
   11555   return vzip_f32(a, b);
   11556 }
   11557 
   11558 // CHECK: test_vzip_p8
   11559 // CHECK: vzip.8 d{{[0-9]+}}, d{{[0-9]+}}
   11560 poly8x8x2_t test_vzip_p8(poly8x8_t a, poly8x8_t b) {
   11561   return vzip_p8(a, b);
   11562 }
   11563 
   11564 // CHECK: test_vzip_p16
   11565 // CHECK: vzip.16 d{{[0-9]+}}, d{{[0-9]+}}
   11566 poly16x4x2_t test_vzip_p16(poly16x4_t a, poly16x4_t b) {
   11567   return vzip_p16(a, b);
   11568 }
   11569 
   11570 // CHECK: test_vzipq_s8
   11571 // CHECK: vzip.8 q{{[0-9]+}}, q{{[0-9]+}}
   11572 int8x16x2_t test_vzipq_s8(int8x16_t a, int8x16_t b) {
   11573   return vzipq_s8(a, b);
   11574 }
   11575 
   11576 // CHECK: test_vzipq_s16
   11577 // CHECK: vzip.16 q{{[0-9]+}}, q{{[0-9]+}}
   11578 int16x8x2_t test_vzipq_s16(int16x8_t a, int16x8_t b) {
   11579   return vzipq_s16(a, b);
   11580 }
   11581 
   11582 // CHECK: test_vzipq_s32
   11583 // CHECK: {{vtrn|vzip}}.32 q{{[0-9]+}}, q{{[0-9]+}}
   11584 int32x4x2_t test_vzipq_s32(int32x4_t a, int32x4_t b) {
   11585   return vzipq_s32(a, b);
   11586 }
   11587 
   11588 // CHECK: test_vzipq_u8
   11589 // CHECK: vzip.8 q{{[0-9]+}}, q{{[0-9]+}}
   11590 uint8x16x2_t test_vzipq_u8(uint8x16_t a, uint8x16_t b) {
   11591   return vzipq_u8(a, b);
   11592 }
   11593 
   11594 // CHECK: test_vzipq_u16
   11595 // CHECK: vzip.16 q{{[0-9]+}}, q{{[0-9]+}}
   11596 uint16x8x2_t test_vzipq_u16(uint16x8_t a, uint16x8_t b) {
   11597   return vzipq_u16(a, b);
   11598 }
   11599 
   11600 // CHECK: test_vzipq_u32
   11601 // CHECK: {{vtrn|vzip}}.32 q{{[0-9]+}}, q{{[0-9]+}}
   11602 uint32x4x2_t test_vzipq_u32(uint32x4_t a, uint32x4_t b) {
   11603   return vzipq_u32(a, b);
   11604 }
   11605 
   11606 // CHECK: test_vzipq_f32
   11607 // CHECK: {{vtrn|vzip}}.32 q{{[0-9]+}}, q{{[0-9]+}}
   11608 float32x4x2_t test_vzipq_f32(float32x4_t a, float32x4_t b) {
   11609   return vzipq_f32(a, b);
   11610 }
   11611 
   11612 // CHECK: test_vzipq_p8
   11613 // CHECK: vzip.8 q{{[0-9]+}}, q{{[0-9]+}}
   11614 poly8x16x2_t test_vzipq_p8(poly8x16_t a, poly8x16_t b) {
   11615   return vzipq_p8(a, b);
   11616 }
   11617 
   11618 // CHECK: test_vzipq_p16
   11619 // CHECK: vzip.16 q{{[0-9]+}}, q{{[0-9]+}}
   11620 poly16x8x2_t test_vzipq_p16(poly16x8_t a, poly16x8_t b) {
   11621   return vzipq_p16(a, b);
   11622 }
   11623 
   11624 
   11625