Home | History | Annotate | Download | only in CodeGen
      1 // REQUIRES: aarch64-registered-target
      2 // RUN: %clang_cc1 -triple arm64-none-linux-gnu -target-feature +neon -S -O3 -o - %s | FileCheck %s
      3 
      4 // Test new aarch64 intrinsics and types
      5 
      6 #include <arm_neon.h>
      7 
      8 int8x8_t test_vand_s8(int8x8_t a, int8x8_t b) {
      9   // CHECK-LABEL: test_vand_s8
     10   return vand_s8(a, b);
     11   // CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
     12 }
     13 
     14 int8x16_t test_vandq_s8(int8x16_t a, int8x16_t b) {
     15   // CHECK-LABEL: test_vandq_s8
     16   return vandq_s8(a, b);
     17   // CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
     18 }
     19 
     20 int16x4_t test_vand_s16(int16x4_t a, int16x4_t b) {
     21   // CHECK-LABEL: test_vand_s16
     22   return vand_s16(a, b);
     23   // CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
     24 }
     25 
     26 int16x8_t test_vandq_s16(int16x8_t a, int16x8_t b) {
     27   // CHECK-LABEL: test_vandq_s16
     28   return vandq_s16(a, b);
     29   // CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
     30 }
     31 
     32 int32x2_t test_vand_s32(int32x2_t a, int32x2_t b) {
     33   // CHECK-LABEL: test_vand_s32
     34   return vand_s32(a, b);
     35   // CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
     36 }
     37 
     38 int32x4_t test_vandq_s32(int32x4_t a, int32x4_t b) {
     39   // CHECK-LABEL: test_vandq_s32
     40   return vandq_s32(a, b);
     41   // CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
     42 }
     43 
     44 int64x1_t test_vand_s64(int64x1_t a, int64x1_t b) {
     45   // CHECK-LABEL: test_vand_s64
     46   return vand_s64(a, b);
     47   // CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
     48 }
     49 
     50 int64x2_t test_vandq_s64(int64x2_t a, int64x2_t b) {
     51   // CHECK-LABEL: test_vandq_s64
     52   return vandq_s64(a, b);
     53   // CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
     54 }
     55 
     56 uint8x8_t test_vand_u8(uint8x8_t a, uint8x8_t b) {
     57   // CHECK-LABEL: test_vand_u8
     58   return vand_u8(a, b);
     59   // CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
     60 }
     61 
     62 uint8x16_t test_vandq_u8(uint8x16_t a, uint8x16_t b) {
     63   // CHECK-LABEL: test_vandq_u8
     64   return vandq_u8(a, b);
     65   // CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
     66 }
     67 
     68 uint16x4_t test_vand_u16(uint16x4_t a, uint16x4_t b) {
     69   // CHECK-LABEL: test_vand_u16
     70   return vand_u16(a, b);
     71   // CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
     72 }
     73 
     74 uint16x8_t test_vandq_u16(uint16x8_t a, uint16x8_t b) {
     75   // CHECK-LABEL: test_vandq_u16
     76   return vandq_u16(a, b);
     77   // CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
     78 }
     79 
     80 uint32x2_t test_vand_u32(uint32x2_t a, uint32x2_t b) {
     81   // CHECK-LABEL: test_vand_u32
     82   return vand_u32(a, b);
     83   // CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
     84 }
     85 
     86 uint32x4_t test_vandq_u32(uint32x4_t a, uint32x4_t b) {
     87   // CHECK-LABEL: test_vandq_u32
     88   return vandq_u32(a, b);
     89   // CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
     90 }
     91 
     92 uint64x1_t test_vand_u64(uint64x1_t a, uint64x1_t b) {
     93   // CHECK-LABEL: test_vand_u64
     94   return vand_u64(a, b);
     95   // CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
     96 }
     97 
     98 uint64x2_t test_vandq_u64(uint64x2_t a, uint64x2_t b) {
     99   // CHECK-LABEL: test_vandq_u64
    100   return vandq_u64(a, b);
    101   // CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    102 }
    103 
    104 int8x8_t test_vorr_s8(int8x8_t a, int8x8_t b) {
    105   // CHECK-LABEL: test_vorr_s8
    106   return vorr_s8(a, b);
    107   // CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    108 }
    109 
    110 int8x16_t test_vorrq_s8(int8x16_t a, int8x16_t b) {
    111   // CHECK-LABEL: test_vorrq_s8
    112   return vorrq_s8(a, b);
    113   // CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    114 }
    115 
    116 int16x4_t test_vorr_s16(int16x4_t a, int16x4_t b) {
    117   // CHECK-LABEL: test_vorr_s16
    118   return vorr_s16(a, b);
    119   // CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    120 }
    121 
    122 int16x8_t test_vorrq_s16(int16x8_t a, int16x8_t b) {
    123   // CHECK-LABEL: test_vorrq_s16
    124   return vorrq_s16(a, b);
    125   // CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    126 }
    127 
    128 int32x2_t test_vorr_s32(int32x2_t a, int32x2_t b) {
    129   // CHECK-LABEL: test_vorr_s32
    130   return vorr_s32(a, b);
    131   // CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    132 }
    133 
    134 int32x4_t test_vorrq_s32(int32x4_t a, int32x4_t b) {
    135   // CHECK-LABEL: test_vorrq_s32
    136   return vorrq_s32(a, b);
    137   // CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    138 }
    139 
    140 int64x1_t test_vorr_s64(int64x1_t a, int64x1_t b) {
    141   // CHECK-LABEL: test_vorr_s64
    142   return vorr_s64(a, b);
    143   // CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    144 }
    145 
    146 int64x2_t test_vorrq_s64(int64x2_t a, int64x2_t b) {
    147   // CHECK-LABEL: test_vorrq_s64
    148   return vorrq_s64(a, b);
    149   // CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    150 }
    151 
    152 uint8x8_t test_vorr_u8(uint8x8_t a, uint8x8_t b) {
    153   // CHECK-LABEL: test_vorr_u8
    154   return vorr_u8(a, b);
    155   // CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    156 }
    157 
    158 uint8x16_t test_vorrq_u8(uint8x16_t a, uint8x16_t b) {
    159   // CHECK-LABEL: test_vorrq_u8
    160   return vorrq_u8(a, b);
    161   // CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    162 }
    163 
    164 uint16x4_t test_vorr_u16(uint16x4_t a, uint16x4_t b) {
    165   // CHECK-LABEL: test_vorr_u16
    166   return vorr_u16(a, b);
    167   // CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    168 }
    169 
    170 uint16x8_t test_vorrq_u16(uint16x8_t a, uint16x8_t b) {
    171   // CHECK-LABEL: test_vorrq_u16
    172   return vorrq_u16(a, b);
    173   // CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    174 }
    175 
    176 uint32x2_t test_vorr_u32(uint32x2_t a, uint32x2_t b) {
    177   // CHECK-LABEL: test_vorr_u32
    178   return vorr_u32(a, b);
    179   // CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    180 }
    181 
    182 uint32x4_t test_vorrq_u32(uint32x4_t a, uint32x4_t b) {
    183   // CHECK-LABEL: test_vorrq_u32
    184   return vorrq_u32(a, b);
    185   // CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    186 }
    187 
    188 uint64x1_t test_vorr_u64(uint64x1_t a, uint64x1_t b) {
    189   // CHECK-LABEL: test_vorr_u64
    190   return vorr_u64(a, b);
    191   // CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    192 }
    193 
    194 uint64x2_t test_vorrq_u64(uint64x2_t a, uint64x2_t b) {
    195   // CHECK-LABEL: test_vorrq_u64
    196   return vorrq_u64(a, b);
    197   // CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    198 }
    199 
    200 int8x8_t test_veor_s8(int8x8_t a, int8x8_t b) {
    201   // CHECK-LABEL: test_veor_s8
    202   return veor_s8(a, b);
    203   // CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    204 }
    205 
    206 int8x16_t test_veorq_s8(int8x16_t a, int8x16_t b) {
    207   // CHECK-LABEL: test_veorq_s8
    208   return veorq_s8(a, b);
    209   // CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    210 }
    211 
    212 int16x4_t test_veor_s16(int16x4_t a, int16x4_t b) {
    213   // CHECK-LABEL: test_veor_s16
    214   return veor_s16(a, b);
    215   // CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    216 }
    217 
    218 int16x8_t test_veorq_s16(int16x8_t a, int16x8_t b) {
    219   // CHECK-LABEL: test_veorq_s16
    220   return veorq_s16(a, b);
    221   // CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    222 }
    223 
    224 int32x2_t test_veor_s32(int32x2_t a, int32x2_t b) {
    225   // CHECK-LABEL: test_veor_s32
    226   return veor_s32(a, b);
    227   // CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    228 }
    229 
    230 int32x4_t test_veorq_s32(int32x4_t a, int32x4_t b) {
    231   // CHECK-LABEL: test_veorq_s32
    232   return veorq_s32(a, b);
    233   // CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    234 }
    235 
    236 int64x1_t test_veor_s64(int64x1_t a, int64x1_t b) {
    237   // CHECK-LABEL: test_veor_s64
    238   return veor_s64(a, b);
    239   // CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    240 }
    241 
    242 int64x2_t test_veorq_s64(int64x2_t a, int64x2_t b) {
    243   // CHECK-LABEL: test_veorq_s64
    244   return veorq_s64(a, b);
    245   // CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    246 }
    247 
    248 uint8x8_t test_veor_u8(uint8x8_t a, uint8x8_t b) {
    249   // CHECK-LABEL: test_veor_u8
    250   return veor_u8(a, b);
    251   // CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    252 }
    253 
    254 uint8x16_t test_veorq_u8(uint8x16_t a, uint8x16_t b) {
    255   // CHECK-LABEL: test_veorq_u8
    256   return veorq_u8(a, b);
    257   // CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    258 }
    259 
    260 uint16x4_t test_veor_u16(uint16x4_t a, uint16x4_t b) {
    261   // CHECK-LABEL: test_veor_u16
    262   return veor_u16(a, b);
    263   // CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    264 }
    265 
    266 uint16x8_t test_veorq_u16(uint16x8_t a, uint16x8_t b) {
    267   // CHECK-LABEL: test_veorq_u16
    268   return veorq_u16(a, b);
    269   // CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    270 }
    271 
    272 uint32x2_t test_veor_u32(uint32x2_t a, uint32x2_t b) {
    273   // CHECK-LABEL: test_veor_u32
    274   return veor_u32(a, b);
    275   // CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    276 }
    277 
    278 uint32x4_t test_veorq_u32(uint32x4_t a, uint32x4_t b) {
    279   // CHECK-LABEL: test_veorq_u32
    280   return veorq_u32(a, b);
    281   // CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    282 }
    283 
    284 uint64x1_t test_veor_u64(uint64x1_t a, uint64x1_t b) {
    285   // CHECK-LABEL: test_veor_u64
    286   return veor_u64(a, b);
    287   // CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    288 }
    289 
    290 uint64x2_t test_veorq_u64(uint64x2_t a, uint64x2_t b) {
    291   // CHECK-LABEL: test_veorq_u64
    292   return veorq_u64(a, b);
    293   // CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    294 }
    295 
    296 int8x8_t test_vbic_s8(int8x8_t a, int8x8_t b) {
    297   // CHECK-LABEL: test_vbic_s8
    298   return vbic_s8(a, b);
    299   // CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    300 }
    301 
    302 int8x16_t test_vbicq_s8(int8x16_t a, int8x16_t b) {
    303   // CHECK-LABEL: test_vbicq_s8
    304   return vbicq_s8(a, b);
    305   // CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    306 }
    307 
    308 int16x4_t test_vbic_s16(int16x4_t a, int16x4_t b) {
    309   // CHECK-LABEL: test_vbic_s16
    310   return vbic_s16(a, b);
    311   // CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    312 }
    313 
    314 int16x8_t test_vbicq_s16(int16x8_t a, int16x8_t b) {
    315   // CHECK-LABEL: test_vbicq_s16
    316   return vbicq_s16(a, b);
    317   // CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    318 }
    319 
    320 int32x2_t test_vbic_s32(int32x2_t a, int32x2_t b) {
    321   // CHECK-LABEL: test_vbic_s32
    322   return vbic_s32(a, b);
    323   // CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    324 }
    325 
    326 int32x4_t test_vbicq_s32(int32x4_t a, int32x4_t b) {
    327   // CHECK-LABEL: test_vbicq_s32
    328   return vbicq_s32(a, b);
    329   // CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    330 }
    331 
    332 int64x1_t test_vbic_s64(int64x1_t a, int64x1_t b) {
    333   // CHECK-LABEL: test_vbic_s64
    334   return vbic_s64(a, b);
    335   // CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    336 }
    337 
    338 int64x2_t test_vbicq_s64(int64x2_t a, int64x2_t b) {
    339   // CHECK-LABEL: test_vbicq_s64
    340   return vbicq_s64(a, b);
    341   // CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    342 }
    343 
    344 uint8x8_t test_vbic_u8(uint8x8_t a, uint8x8_t b) {
    345   // CHECK-LABEL: test_vbic_u8
    346   return vbic_u8(a, b);
    347   // CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    348 }
    349 
    350 uint8x16_t test_vbicq_u8(uint8x16_t a, uint8x16_t b) {
    351   // CHECK-LABEL: test_vbicq_u8
    352   return vbicq_u8(a, b);
    353   // CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    354 }
    355 
    356 uint16x4_t test_vbic_u16(uint16x4_t a, uint16x4_t b) {
    357   // CHECK-LABEL: test_vbic_u16
    358   return vbic_u16(a, b);
    359   // CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    360 }
    361 
    362 uint16x8_t test_vbicq_u16(uint16x8_t a, uint16x8_t b) {
    363   // CHECK-LABEL: test_vbicq_u16
    364   return vbicq_u16(a, b);
    365   // CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    366 }
    367 
    368 uint32x2_t test_vbic_u32(uint32x2_t a, uint32x2_t b) {
    369   // CHECK-LABEL: test_vbic_u32
    370   return vbic_u32(a, b);
    371   // CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    372 }
    373 
    374 uint32x4_t test_vbicq_u32(uint32x4_t a, uint32x4_t b) {
    375   // CHECK-LABEL: test_vbicq_u32
    376   return vbicq_u32(a, b);
    377   // CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    378 }
    379 
    380 uint64x1_t test_vbic_u64(uint64x1_t a, uint64x1_t b) {
    381   // CHECK-LABEL: test_vbic_u64
    382   return vbic_u64(a, b);
    383   // CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    384 }
    385 
    386 uint64x2_t test_vbicq_u64(uint64x2_t a, uint64x2_t b) {
    387   // CHECK-LABEL: test_vbicq_u64
    388   return vbicq_u64(a, b);
    389   // CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    390 }
    391 
    392 int8x8_t test_vorn_s8(int8x8_t a, int8x8_t b) {
    393   // CHECK-LABEL: test_vorn_s8
    394   return vorn_s8(a, b);
    395   // CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    396 }
    397 
    398 int8x16_t test_vornq_s8(int8x16_t a, int8x16_t b) {
    399   // CHECK-LABEL: test_vornq_s8
    400   return vornq_s8(a, b);
    401   // CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    402 }
    403 
    404 int16x4_t test_vorn_s16(int16x4_t a, int16x4_t b) {
    405   // CHECK-LABEL: test_vorn_s16
    406   return vorn_s16(a, b);
    407   // CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    408 }
    409 
    410 int16x8_t test_vornq_s16(int16x8_t a, int16x8_t b) {
    411   // CHECK-LABEL: test_vornq_s16
    412   return vornq_s16(a, b);
    413   // CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    414 }
    415 
    416 int32x2_t test_vorn_s32(int32x2_t a, int32x2_t b) {
    417   // CHECK-LABEL: test_vorn_s32
    418   return vorn_s32(a, b);
    419   // CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    420 }
    421 
    422 int32x4_t test_vornq_s32(int32x4_t a, int32x4_t b) {
    423   // CHECK-LABEL: test_vornq_s32
    424   return vornq_s32(a, b);
    425   // CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    426 }
    427 
    428 int64x1_t test_vorn_s64(int64x1_t a, int64x1_t b) {
    429   // CHECK-LABEL: test_vorn_s64
    430   return vorn_s64(a, b);
    431   // CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    432 }
    433 
    434 int64x2_t test_vornq_s64(int64x2_t a, int64x2_t b) {
    435   // CHECK-LABEL: test_vornq_s64
    436   return vornq_s64(a, b);
    437   // CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    438 }
    439 
    440 uint8x8_t test_vorn_u8(uint8x8_t a, uint8x8_t b) {
    441   // CHECK-LABEL: test_vorn_u8
    442   return vorn_u8(a, b);
    443   // CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    444 }
    445 
    446 uint8x16_t test_vornq_u8(uint8x16_t a, uint8x16_t b) {
    447   // CHECK-LABEL: test_vornq_u8
    448   return vornq_u8(a, b);
    449   // CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    450 }
    451 
    452 uint16x4_t test_vorn_u16(uint16x4_t a, uint16x4_t b) {
    453   // CHECK-LABEL: test_vorn_u16
    454   return vorn_u16(a, b);
    455   // CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    456 }
    457 
    458 uint16x8_t test_vornq_u16(uint16x8_t a, uint16x8_t b) {
    459   // CHECK-LABEL: test_vornq_u16
    460   return vornq_u16(a, b);
    461   // CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    462 }
    463 
    464 uint32x2_t test_vorn_u32(uint32x2_t a, uint32x2_t b) {
    465   // CHECK-LABEL: test_vorn_u32
    466   return vorn_u32(a, b);
    467   // CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    468 }
    469 
    470 uint32x4_t test_vornq_u32(uint32x4_t a, uint32x4_t b) {
    471   // CHECK-LABEL: test_vornq_u32
    472   return vornq_u32(a, b);
    473   // CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    474 }
    475 
    476 uint64x1_t test_vorn_u64(uint64x1_t a, uint64x1_t b) {
    477   // CHECK-LABEL: test_vorn_u64
    478   return vorn_u64(a, b);
    479   // CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b
    480 }
    481 
    482 uint64x2_t test_vornq_u64(uint64x2_t a, uint64x2_t b) {
    483   // CHECK-LABEL: test_vornq_u64
    484   return vornq_u64(a, b);
    485   // CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b
    486 }
    487