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 --check-prefix=CHECK --check-prefix=CHECK-SWIFT 4// RUN: %clang_cc1 -triple armv8-linux-gnu \ 5// RUN: -target-cpu cortex-a57 -mfloat-abi soft -ffreestanding -Os -S -o - %s\ 6// RUN: | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-A57 7 8// REQUIRES: long_tests 9 10#include <arm_neon.h> 11 12// CHECK-LABEL: test_vaba_s8 13// CHECK: vaba.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 14int8x8_t test_vaba_s8(int8x8_t a, int8x8_t b, int8x8_t c) { 15 return vaba_s8(a, b, c); 16} 17 18// CHECK-LABEL: test_vaba_s16 19// CHECK: vaba.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 20int16x4_t test_vaba_s16(int16x4_t a, int16x4_t b, int16x4_t c) { 21 return vaba_s16(a, b, c); 22} 23 24// CHECK-LABEL: test_vaba_s32 25// CHECK: vaba.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 26int32x2_t test_vaba_s32(int32x2_t a, int32x2_t b, int32x2_t c) { 27 return vaba_s32(a, b, c); 28} 29 30// CHECK-LABEL: test_vaba_u8 31// CHECK: vaba.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 32uint8x8_t test_vaba_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) { 33 return vaba_u8(a, b, c); 34} 35 36// CHECK-LABEL: test_vaba_u16 37// CHECK: vaba.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 38uint16x4_t test_vaba_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) { 39 return vaba_u16(a, b, c); 40} 41 42// CHECK-LABEL: test_vaba_u32 43// CHECK: vaba.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 44uint32x2_t test_vaba_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) { 45 return vaba_u32(a, b, c); 46} 47 48// CHECK-LABEL: test_vabaq_s8 49// CHECK: vaba.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 50int8x16_t test_vabaq_s8(int8x16_t a, int8x16_t b, int8x16_t c) { 51 return vabaq_s8(a, b, c); 52} 53 54// CHECK-LABEL: test_vabaq_s16 55// CHECK: vaba.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 56int16x8_t test_vabaq_s16(int16x8_t a, int16x8_t b, int16x8_t c) { 57 return vabaq_s16(a, b, c); 58} 59 60// CHECK-LABEL: test_vabaq_s32 61// CHECK: vaba.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 62int32x4_t test_vabaq_s32(int32x4_t a, int32x4_t b, int32x4_t c) { 63 return vabaq_s32(a, b, c); 64} 65 66// CHECK-LABEL: test_vabaq_u8 67// CHECK: vaba.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 68uint8x16_t test_vabaq_u8(uint8x16_t a, uint8x16_t b, uint8x16_t c) { 69 return vabaq_u8(a, b, c); 70} 71 72// CHECK-LABEL: test_vabaq_u16 73// CHECK: vaba.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 74uint16x8_t test_vabaq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t c) { 75 return vabaq_u16(a, b, c); 76} 77 78// CHECK-LABEL: test_vabaq_u32 79// CHECK: vaba.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 80uint32x4_t test_vabaq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t c) { 81 return vabaq_u32(a, b, c); 82} 83 84 85// CHECK-LABEL: test_vabal_s8 86// CHECK: vabal.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 87int16x8_t test_vabal_s8(int16x8_t a, int8x8_t b, int8x8_t c) { 88 return vabal_s8(a, b, c); 89} 90 91// CHECK-LABEL: test_vabal_s16 92// CHECK: vabal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 93int32x4_t test_vabal_s16(int32x4_t a, int16x4_t b, int16x4_t c) { 94 return vabal_s16(a, b, c); 95} 96 97// CHECK-LABEL: test_vabal_s32 98// CHECK: vabal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 99int64x2_t test_vabal_s32(int64x2_t a, int32x2_t b, int32x2_t c) { 100 return vabal_s32(a, b, c); 101} 102 103// CHECK-LABEL: test_vabal_u8 104// CHECK: vabal.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 105uint16x8_t test_vabal_u8(uint16x8_t a, uint8x8_t b, uint8x8_t c) { 106 return vabal_u8(a, b, c); 107} 108 109// CHECK-LABEL: test_vabal_u16 110// CHECK: vabal.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 111uint32x4_t test_vabal_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) { 112 return vabal_u16(a, b, c); 113} 114 115// CHECK-LABEL: test_vabal_u32 116// CHECK: vabal.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 117uint64x2_t test_vabal_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) { 118 return vabal_u32(a, b, c); 119} 120 121 122// CHECK-LABEL: test_vabd_s8 123// CHECK: vabd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 124int8x8_t test_vabd_s8(int8x8_t a, int8x8_t b) { 125 return vabd_s8(a, b); 126} 127 128// CHECK-LABEL: test_vabd_s16 129// CHECK: vabd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 130int16x4_t test_vabd_s16(int16x4_t a, int16x4_t b) { 131 return vabd_s16(a, b); 132} 133 134// CHECK-LABEL: test_vabd_s32 135// CHECK: vabd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 136int32x2_t test_vabd_s32(int32x2_t a, int32x2_t b) { 137 return vabd_s32(a, b); 138} 139 140// CHECK-LABEL: test_vabd_u8 141// CHECK: vabd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 142uint8x8_t test_vabd_u8(uint8x8_t a, uint8x8_t b) { 143 return vabd_u8(a, b); 144} 145 146// CHECK-LABEL: test_vabd_u16 147// CHECK: vabd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 148uint16x4_t test_vabd_u16(uint16x4_t a, uint16x4_t b) { 149 return vabd_u16(a, b); 150} 151 152// CHECK-LABEL: test_vabd_u32 153// CHECK: vabd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 154uint32x2_t test_vabd_u32(uint32x2_t a, uint32x2_t b) { 155 return vabd_u32(a, b); 156} 157 158// CHECK-LABEL: test_vabd_f32 159// CHECK: vabd.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 160float32x2_t test_vabd_f32(float32x2_t a, float32x2_t b) { 161 return vabd_f32(a, b); 162} 163 164// CHECK-LABEL: test_vabdq_s8 165// CHECK: vabd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 166int8x16_t test_vabdq_s8(int8x16_t a, int8x16_t b) { 167 return vabdq_s8(a, b); 168} 169 170// CHECK-LABEL: test_vabdq_s16 171// CHECK: vabd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 172int16x8_t test_vabdq_s16(int16x8_t a, int16x8_t b) { 173 return vabdq_s16(a, b); 174} 175 176// CHECK-LABEL: test_vabdq_s32 177// CHECK: vabd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 178int32x4_t test_vabdq_s32(int32x4_t a, int32x4_t b) { 179 return vabdq_s32(a, b); 180} 181 182// CHECK-LABEL: test_vabdq_u8 183// CHECK: vabd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 184uint8x16_t test_vabdq_u8(uint8x16_t a, uint8x16_t b) { 185 return vabdq_u8(a, b); 186} 187 188// CHECK-LABEL: test_vabdq_u16 189// CHECK: vabd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 190uint16x8_t test_vabdq_u16(uint16x8_t a, uint16x8_t b) { 191 return vabdq_u16(a, b); 192} 193 194// CHECK-LABEL: test_vabdq_u32 195// CHECK: vabd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 196uint32x4_t test_vabdq_u32(uint32x4_t a, uint32x4_t b) { 197 return vabdq_u32(a, b); 198} 199 200// CHECK-LABEL: test_vabdq_f32 201// CHECK: vabd.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 202float32x4_t test_vabdq_f32(float32x4_t a, float32x4_t b) { 203 return vabdq_f32(a, b); 204} 205 206 207// CHECK-LABEL: test_vabdl_s8 208// CHECK: vabdl.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 209int16x8_t test_vabdl_s8(int8x8_t a, int8x8_t b) { 210 return vabdl_s8(a, b); 211} 212 213// CHECK-LABEL: test_vabdl_s16 214// CHECK: vabdl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 215int32x4_t test_vabdl_s16(int16x4_t a, int16x4_t b) { 216 return vabdl_s16(a, b); 217} 218 219// CHECK-LABEL: test_vabdl_s32 220// CHECK: vabdl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 221int64x2_t test_vabdl_s32(int32x2_t a, int32x2_t b) { 222 return vabdl_s32(a, b); 223} 224 225// CHECK-LABEL: test_vabdl_u8 226// CHECK: vabdl.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 227uint16x8_t test_vabdl_u8(uint8x8_t a, uint8x8_t b) { 228 return vabdl_u8(a, b); 229} 230 231// CHECK-LABEL: test_vabdl_u16 232// CHECK: vabdl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 233uint32x4_t test_vabdl_u16(uint16x4_t a, uint16x4_t b) { 234 return vabdl_u16(a, b); 235} 236 237// CHECK-LABEL: test_vabdl_u32 238// CHECK: vabdl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 239uint64x2_t test_vabdl_u32(uint32x2_t a, uint32x2_t b) { 240 return vabdl_u32(a, b); 241} 242 243 244// CHECK-LABEL: test_vabs_s8 245// CHECK: vabs.s8 d{{[0-9]+}}, d{{[0-9]+}} 246int8x8_t test_vabs_s8(int8x8_t a) { 247 return vabs_s8(a); 248} 249 250// CHECK-LABEL: test_vabs_s16 251// CHECK: vabs.s16 d{{[0-9]+}}, d{{[0-9]+}} 252int16x4_t test_vabs_s16(int16x4_t a) { 253 return vabs_s16(a); 254} 255 256// CHECK-LABEL: test_vabs_s32 257// CHECK: vabs.s32 d{{[0-9]+}}, d{{[0-9]+}} 258int32x2_t test_vabs_s32(int32x2_t a) { 259 return vabs_s32(a); 260} 261 262// CHECK-LABEL: test_vabs_f32 263// CHECK: vabs.f32 d{{[0-9]+}}, d{{[0-9]+}} 264float32x2_t test_vabs_f32(float32x2_t a) { 265 return vabs_f32(a); 266} 267 268// CHECK-LABEL: test_vabsq_s8 269// CHECK: vabs.s8 q{{[0-9]+}}, q{{[0-9]+}} 270int8x16_t test_vabsq_s8(int8x16_t a) { 271 return vabsq_s8(a); 272} 273 274// CHECK-LABEL: test_vabsq_s16 275// CHECK: vabs.s16 q{{[0-9]+}}, q{{[0-9]+}} 276int16x8_t test_vabsq_s16(int16x8_t a) { 277 return vabsq_s16(a); 278} 279 280// CHECK-LABEL: test_vabsq_s32 281// CHECK: vabs.s32 q{{[0-9]+}}, q{{[0-9]+}} 282int32x4_t test_vabsq_s32(int32x4_t a) { 283 return vabsq_s32(a); 284} 285 286// CHECK-LABEL: test_vabsq_f32 287// CHECK: vabs.f32 q{{[0-9]+}}, q{{[0-9]+}} 288float32x4_t test_vabsq_f32(float32x4_t a) { 289 return vabsq_f32(a); 290} 291 292 293// CHECK-LABEL: test_vadd_s8 294// CHECK: vadd.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 295int8x8_t test_vadd_s8(int8x8_t a, int8x8_t b) { 296 return vadd_s8(a, b); 297} 298 299// CHECK-LABEL: test_vadd_s16 300// CHECK: vadd.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 301int16x4_t test_vadd_s16(int16x4_t a, int16x4_t b) { 302 return vadd_s16(a, b); 303} 304 305// CHECK-LABEL: test_vadd_s32 306// CHECK: vadd.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 307int32x2_t test_vadd_s32(int32x2_t a, int32x2_t b) { 308 return vadd_s32(a, b); 309} 310 311// CHECK-LABEL: test_vadd_s64 312// CHECK: vadd.i64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 313int64x1_t test_vadd_s64(int64x1_t a, int64x1_t b) { 314 return vadd_s64(a, b); 315} 316 317// CHECK-LABEL: test_vadd_f32 318// CHECK: vadd.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 319float32x2_t test_vadd_f32(float32x2_t a, float32x2_t b) { 320 return vadd_f32(a, b); 321} 322 323// CHECK-LABEL: test_vadd_u8 324// CHECK: vadd.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 325uint8x8_t test_vadd_u8(uint8x8_t a, uint8x8_t b) { 326 return vadd_u8(a, b); 327} 328 329// CHECK-LABEL: test_vadd_u16 330// CHECK: vadd.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 331uint16x4_t test_vadd_u16(uint16x4_t a, uint16x4_t b) { 332 return vadd_u16(a, b); 333} 334 335// CHECK-LABEL: test_vadd_u32 336// CHECK: vadd.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 337uint32x2_t test_vadd_u32(uint32x2_t a, uint32x2_t b) { 338 return vadd_u32(a, b); 339} 340 341// CHECK-LABEL: test_vadd_u64 342// CHECK: vadd.i64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 343uint64x1_t test_vadd_u64(uint64x1_t a, uint64x1_t b) { 344 return vadd_u64(a, b); 345} 346 347// CHECK-LABEL: test_vaddq_s8 348// CHECK: vadd.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 349int8x16_t test_vaddq_s8(int8x16_t a, int8x16_t b) { 350 return vaddq_s8(a, b); 351} 352 353// CHECK-LABEL: test_vaddq_s16 354// CHECK: vadd.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 355int16x8_t test_vaddq_s16(int16x8_t a, int16x8_t b) { 356 return vaddq_s16(a, b); 357} 358 359// CHECK-LABEL: test_vaddq_s32 360// CHECK: vadd.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 361int32x4_t test_vaddq_s32(int32x4_t a, int32x4_t b) { 362 return vaddq_s32(a, b); 363} 364 365// CHECK-LABEL: test_vaddq_s64 366// CHECK: vadd.i64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 367int64x2_t test_vaddq_s64(int64x2_t a, int64x2_t b) { 368 return vaddq_s64(a, b); 369} 370 371// CHECK-LABEL: test_vaddq_f32 372// CHECK: vadd.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 373float32x4_t test_vaddq_f32(float32x4_t a, float32x4_t b) { 374 return vaddq_f32(a, b); 375} 376 377// CHECK-LABEL: test_vaddq_u8 378// CHECK: vadd.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 379uint8x16_t test_vaddq_u8(uint8x16_t a, uint8x16_t b) { 380 return vaddq_u8(a, b); 381} 382 383// CHECK-LABEL: test_vaddq_u16 384// CHECK: vadd.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 385uint16x8_t test_vaddq_u16(uint16x8_t a, uint16x8_t b) { 386 return vaddq_u16(a, b); 387} 388 389// CHECK-LABEL: test_vaddq_u32 390// CHECK: vadd.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 391uint32x4_t test_vaddq_u32(uint32x4_t a, uint32x4_t b) { 392 return vaddq_u32(a, b); 393} 394 395// CHECK-LABEL: test_vaddq_u64 396// CHECK: vadd.i64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 397uint64x2_t test_vaddq_u64(uint64x2_t a, uint64x2_t b) { 398 return vaddq_u64(a, b); 399} 400 401 402// CHECK-LABEL: test_vaddhn_s16 403// CHECK: vaddhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 404int8x8_t test_vaddhn_s16(int16x8_t a, int16x8_t b) { 405 return vaddhn_s16(a, b); 406} 407 408// CHECK-LABEL: test_vaddhn_s32 409// CHECK: vaddhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 410int16x4_t test_vaddhn_s32(int32x4_t a, int32x4_t b) { 411 return vaddhn_s32(a, b); 412} 413 414// CHECK-LABEL: test_vaddhn_s64 415// CHECK: vaddhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 416int32x2_t test_vaddhn_s64(int64x2_t a, int64x2_t b) { 417 return vaddhn_s64(a, b); 418} 419 420// CHECK-LABEL: test_vaddhn_u16 421// CHECK: vaddhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 422uint8x8_t test_vaddhn_u16(uint16x8_t a, uint16x8_t b) { 423 return vaddhn_u16(a, b); 424} 425 426// CHECK-LABEL: test_vaddhn_u32 427// CHECK: vaddhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 428uint16x4_t test_vaddhn_u32(uint32x4_t a, uint32x4_t b) { 429 return vaddhn_u32(a, b); 430} 431 432// CHECK-LABEL: test_vaddhn_u64 433// CHECK: vaddhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 434uint32x2_t test_vaddhn_u64(uint64x2_t a, uint64x2_t b) { 435 return vaddhn_u64(a, b); 436} 437 438 439// CHECK-LABEL: test_vaddl_s8 440// CHECK: vaddl.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 441int16x8_t test_vaddl_s8(int8x8_t a, int8x8_t b) { 442 return vaddl_s8(a, b); 443} 444 445// CHECK-LABEL: test_vaddl_s16 446// CHECK: vaddl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 447int32x4_t test_vaddl_s16(int16x4_t a, int16x4_t b) { 448 return vaddl_s16(a, b); 449} 450 451// CHECK-LABEL: test_vaddl_s32 452// CHECK: vaddl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 453int64x2_t test_vaddl_s32(int32x2_t a, int32x2_t b) { 454 return vaddl_s32(a, b); 455} 456 457// CHECK-LABEL: test_vaddl_u8 458// CHECK: vaddl.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 459uint16x8_t test_vaddl_u8(uint8x8_t a, uint8x8_t b) { 460 return vaddl_u8(a, b); 461} 462 463// CHECK-LABEL: test_vaddl_u16 464// CHECK: vaddl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 465uint32x4_t test_vaddl_u16(uint16x4_t a, uint16x4_t b) { 466 return vaddl_u16(a, b); 467} 468 469// CHECK-LABEL: test_vaddl_u32 470// CHECK: vaddl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 471uint64x2_t test_vaddl_u32(uint32x2_t a, uint32x2_t b) { 472 return vaddl_u32(a, b); 473} 474 475 476// CHECK-LABEL: test_vaddw_s8 477// CHECK: vaddw.s8 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}} 478int16x8_t test_vaddw_s8(int16x8_t a, int8x8_t b) { 479 return vaddw_s8(a, b); 480} 481 482// CHECK-LABEL: test_vaddw_s16 483// CHECK: vaddw.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}} 484int32x4_t test_vaddw_s16(int32x4_t a, int16x4_t b) { 485 return vaddw_s16(a, b); 486} 487 488// CHECK-LABEL: test_vaddw_s32 489// CHECK: vaddw.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}} 490int64x2_t test_vaddw_s32(int64x2_t a, int32x2_t b) { 491 return vaddw_s32(a, b); 492} 493 494// CHECK-LABEL: test_vaddw_u8 495// CHECK: vaddw.u8 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}} 496uint16x8_t test_vaddw_u8(uint16x8_t a, uint8x8_t b) { 497 return vaddw_u8(a, b); 498} 499 500// CHECK-LABEL: test_vaddw_u16 501// CHECK: vaddw.u16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}} 502uint32x4_t test_vaddw_u16(uint32x4_t a, uint16x4_t b) { 503 return vaddw_u16(a, b); 504} 505 506// CHECK-LABEL: test_vaddw_u32 507// CHECK: vaddw.u32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}} 508uint64x2_t test_vaddw_u32(uint64x2_t a, uint32x2_t b) { 509 return vaddw_u32(a, b); 510} 511 512 513// CHECK-LABEL: test_vand_s8 514// CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 515int8x8_t test_vand_s8(int8x8_t a, int8x8_t b) { 516 return vand_s8(a, b); 517} 518 519// CHECK-LABEL: test_vand_s16 520// CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 521int16x4_t test_vand_s16(int16x4_t a, int16x4_t b) { 522 return vand_s16(a, b); 523} 524 525// CHECK-LABEL: test_vand_s32 526// CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 527int32x2_t test_vand_s32(int32x2_t a, int32x2_t b) { 528 return vand_s32(a, b); 529} 530 531// CHECK-LABEL: test_vand_s64 532// CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 533int64x1_t test_vand_s64(int64x1_t a, int64x1_t b) { 534 return vand_s64(a, b); 535} 536 537// CHECK-LABEL: test_vand_u8 538// CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 539uint8x8_t test_vand_u8(uint8x8_t a, uint8x8_t b) { 540 return vand_u8(a, b); 541} 542 543// CHECK-LABEL: test_vand_u16 544// CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 545uint16x4_t test_vand_u16(uint16x4_t a, uint16x4_t b) { 546 return vand_u16(a, b); 547} 548 549// CHECK-LABEL: test_vand_u32 550// CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 551uint32x2_t test_vand_u32(uint32x2_t a, uint32x2_t b) { 552 return vand_u32(a, b); 553} 554 555// CHECK-LABEL: test_vand_u64 556// CHECK: vand d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 557uint64x1_t test_vand_u64(uint64x1_t a, uint64x1_t b) { 558 return vand_u64(a, b); 559} 560 561// CHECK-LABEL: test_vandq_s8 562// CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 563int8x16_t test_vandq_s8(int8x16_t a, int8x16_t b) { 564 return vandq_s8(a, b); 565} 566 567// CHECK-LABEL: test_vandq_s16 568// CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 569int16x8_t test_vandq_s16(int16x8_t a, int16x8_t b) { 570 return vandq_s16(a, b); 571} 572 573// CHECK-LABEL: test_vandq_s32 574// CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 575int32x4_t test_vandq_s32(int32x4_t a, int32x4_t b) { 576 return vandq_s32(a, b); 577} 578 579// CHECK-LABEL: test_vandq_s64 580// CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 581int64x2_t test_vandq_s64(int64x2_t a, int64x2_t b) { 582 return vandq_s64(a, b); 583} 584 585// CHECK-LABEL: test_vandq_u8 586// CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 587uint8x16_t test_vandq_u8(uint8x16_t a, uint8x16_t b) { 588 return vandq_u8(a, b); 589} 590 591// CHECK-LABEL: test_vandq_u16 592// CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 593uint16x8_t test_vandq_u16(uint16x8_t a, uint16x8_t b) { 594 return vandq_u16(a, b); 595} 596 597// CHECK-LABEL: test_vandq_u32 598// CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 599uint32x4_t test_vandq_u32(uint32x4_t a, uint32x4_t b) { 600 return vandq_u32(a, b); 601} 602 603// CHECK-LABEL: test_vandq_u64 604// CHECK: vand q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 605uint64x2_t test_vandq_u64(uint64x2_t a, uint64x2_t b) { 606 return vandq_u64(a, b); 607} 608 609 610// CHECK-LABEL: test_vbic_s8 611// CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 612int8x8_t test_vbic_s8(int8x8_t a, int8x8_t b) { 613 return vbic_s8(a, b); 614} 615 616// CHECK-LABEL: test_vbic_s16 617// CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 618int16x4_t test_vbic_s16(int16x4_t a, int16x4_t b) { 619 return vbic_s16(a, b); 620} 621 622// CHECK-LABEL: test_vbic_s32 623// CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 624int32x2_t test_vbic_s32(int32x2_t a, int32x2_t b) { 625 return vbic_s32(a, b); 626} 627 628// CHECK-LABEL: test_vbic_s64 629// CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 630int64x1_t test_vbic_s64(int64x1_t a, int64x1_t b) { 631 return vbic_s64(a, b); 632} 633 634// CHECK-LABEL: test_vbic_u8 635// CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 636uint8x8_t test_vbic_u8(uint8x8_t a, uint8x8_t b) { 637 return vbic_u8(a, b); 638} 639 640// CHECK-LABEL: test_vbic_u16 641// CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 642uint16x4_t test_vbic_u16(uint16x4_t a, uint16x4_t b) { 643 return vbic_u16(a, b); 644} 645 646// CHECK-LABEL: test_vbic_u32 647// CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 648uint32x2_t test_vbic_u32(uint32x2_t a, uint32x2_t b) { 649 return vbic_u32(a, b); 650} 651 652// CHECK-LABEL: test_vbic_u64 653// CHECK: vbic d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 654uint64x1_t test_vbic_u64(uint64x1_t a, uint64x1_t b) { 655 return vbic_u64(a, b); 656} 657 658// CHECK-LABEL: test_vbicq_s8 659// CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 660int8x16_t test_vbicq_s8(int8x16_t a, int8x16_t b) { 661 return vbicq_s8(a, b); 662} 663 664// CHECK-LABEL: test_vbicq_s16 665// CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 666int16x8_t test_vbicq_s16(int16x8_t a, int16x8_t b) { 667 return vbicq_s16(a, b); 668} 669 670// CHECK-LABEL: test_vbicq_s32 671// CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 672int32x4_t test_vbicq_s32(int32x4_t a, int32x4_t b) { 673 return vbicq_s32(a, b); 674} 675 676// CHECK-LABEL: test_vbicq_s64 677// CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 678int64x2_t test_vbicq_s64(int64x2_t a, int64x2_t b) { 679 return vbicq_s64(a, b); 680} 681 682// CHECK-LABEL: test_vbicq_u8 683// CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 684uint8x16_t test_vbicq_u8(uint8x16_t a, uint8x16_t b) { 685 return vbicq_u8(a, b); 686} 687 688// CHECK-LABEL: test_vbicq_u16 689// CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 690uint16x8_t test_vbicq_u16(uint16x8_t a, uint16x8_t b) { 691 return vbicq_u16(a, b); 692} 693 694// CHECK-LABEL: test_vbicq_u32 695// CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 696uint32x4_t test_vbicq_u32(uint32x4_t a, uint32x4_t b) { 697 return vbicq_u32(a, b); 698} 699 700// CHECK-LABEL: test_vbicq_u64 701// CHECK: vbic q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 702uint64x2_t test_vbicq_u64(uint64x2_t a, uint64x2_t b) { 703 return vbicq_u64(a, b); 704} 705 706 707// CHECK-LABEL: test_vbsl_s8 708// CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 709int8x8_t test_vbsl_s8(uint8x8_t a, int8x8_t b, int8x8_t c) { 710 return vbsl_s8(a, b, c); 711} 712 713// CHECK-LABEL: test_vbsl_s16 714// CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 715int16x4_t test_vbsl_s16(uint16x4_t a, int16x4_t b, int16x4_t c) { 716 return vbsl_s16(a, b, c); 717} 718 719// CHECK-LABEL: test_vbsl_s32 720// CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 721int32x2_t test_vbsl_s32(uint32x2_t a, int32x2_t b, int32x2_t c) { 722 return vbsl_s32(a, b, c); 723} 724 725// CHECK-LABEL: test_vbsl_s64 726// CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 727int64x1_t test_vbsl_s64(uint64x1_t a, int64x1_t b, int64x1_t c) { 728 return vbsl_s64(a, b, c); 729} 730 731// CHECK-LABEL: test_vbsl_u8 732// CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 733uint8x8_t test_vbsl_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) { 734 return vbsl_u8(a, b, c); 735} 736 737// CHECK-LABEL: test_vbsl_u16 738// CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 739uint16x4_t test_vbsl_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) { 740 return vbsl_u16(a, b, c); 741} 742 743// CHECK-LABEL: test_vbsl_u32 744// CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 745uint32x2_t test_vbsl_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) { 746 return vbsl_u32(a, b, c); 747} 748 749// CHECK-LABEL: test_vbsl_u64 750// CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 751uint64x1_t test_vbsl_u64(uint64x1_t a, uint64x1_t b, uint64x1_t c) { 752 return vbsl_u64(a, b, c); 753} 754 755// CHECK-LABEL: test_vbsl_f32 756// CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 757float32x2_t test_vbsl_f32(uint32x2_t a, float32x2_t b, float32x2_t c) { 758 return vbsl_f32(a, b, c); 759} 760 761// CHECK-LABEL: test_vbsl_p8 762// CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 763poly8x8_t test_vbsl_p8(uint8x8_t a, poly8x8_t b, poly8x8_t c) { 764 return vbsl_p8(a, b, c); 765} 766 767// CHECK-LABEL: test_vbsl_p16 768// CHECK: vbsl d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 769poly16x4_t test_vbsl_p16(uint16x4_t a, poly16x4_t b, poly16x4_t c) { 770 return vbsl_p16(a, b, c); 771} 772 773// CHECK-LABEL: test_vbslq_s8 774// CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 775int8x16_t test_vbslq_s8(uint8x16_t a, int8x16_t b, int8x16_t c) { 776 return vbslq_s8(a, b, c); 777} 778 779// CHECK-LABEL: test_vbslq_s16 780// CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 781int16x8_t test_vbslq_s16(uint16x8_t a, int16x8_t b, int16x8_t c) { 782 return vbslq_s16(a, b, c); 783} 784 785// CHECK-LABEL: test_vbslq_s32 786// CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 787int32x4_t test_vbslq_s32(uint32x4_t a, int32x4_t b, int32x4_t c) { 788 return vbslq_s32(a, b, c); 789} 790 791// CHECK-LABEL: test_vbslq_s64 792// CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 793int64x2_t test_vbslq_s64(uint64x2_t a, int64x2_t b, int64x2_t c) { 794 return vbslq_s64(a, b, c); 795} 796 797// CHECK-LABEL: test_vbslq_u8 798// CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 799uint8x16_t test_vbslq_u8(uint8x16_t a, uint8x16_t b, uint8x16_t c) { 800 return vbslq_u8(a, b, c); 801} 802 803// CHECK-LABEL: test_vbslq_u16 804// CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 805uint16x8_t test_vbslq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t c) { 806 return vbslq_u16(a, b, c); 807} 808 809// CHECK-LABEL: test_vbslq_u32 810// CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 811uint32x4_t test_vbslq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t c) { 812 return vbslq_u32(a, b, c); 813} 814 815// CHECK-LABEL: test_vbslq_u64 816// CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 817uint64x2_t test_vbslq_u64(uint64x2_t a, uint64x2_t b, uint64x2_t c) { 818 return vbslq_u64(a, b, c); 819} 820 821// CHECK-LABEL: test_vbslq_f32 822// CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 823float32x4_t test_vbslq_f32(uint32x4_t a, float32x4_t b, float32x4_t c) { 824 return vbslq_f32(a, b, c); 825} 826 827// CHECK-LABEL: test_vbslq_p8 828// CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 829poly8x16_t test_vbslq_p8(uint8x16_t a, poly8x16_t b, poly8x16_t c) { 830 return vbslq_p8(a, b, c); 831} 832 833// CHECK-LABEL: test_vbslq_p16 834// CHECK: vbsl q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 835poly16x8_t test_vbslq_p16(uint16x8_t a, poly16x8_t b, poly16x8_t c) { 836 return vbslq_p16(a, b, c); 837} 838 839 840// CHECK-LABEL: test_vcage_f32 841// CHECK: vacge.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 842uint32x2_t test_vcage_f32(float32x2_t a, float32x2_t b) { 843 return vcage_f32(a, b); 844} 845 846// CHECK-LABEL: test_vcageq_f32 847// CHECK: vacge.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 848uint32x4_t test_vcageq_f32(float32x4_t a, float32x4_t b) { 849 return vcageq_f32(a, b); 850} 851 852 853// CHECK-LABEL: test_vcagt_f32 854// CHECK: vacgt.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 855uint32x2_t test_vcagt_f32(float32x2_t a, float32x2_t b) { 856 return vcagt_f32(a, b); 857} 858 859// CHECK-LABEL: test_vcagtq_f32 860// CHECK: vacgt.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 861uint32x4_t test_vcagtq_f32(float32x4_t a, float32x4_t b) { 862 return vcagtq_f32(a, b); 863} 864 865 866// CHECK-LABEL: test_vcale_f32 867// CHECK: vacge.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 868uint32x2_t test_vcale_f32(float32x2_t a, float32x2_t b) { 869 return vcale_f32(a, b); 870} 871 872// CHECK-LABEL: test_vcaleq_f32 873// CHECK: vacge.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 874uint32x4_t test_vcaleq_f32(float32x4_t a, float32x4_t b) { 875 return vcaleq_f32(a, b); 876} 877 878 879// CHECK-LABEL: test_vcalt_f32 880// CHECK: vacgt.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 881uint32x2_t test_vcalt_f32(float32x2_t a, float32x2_t b) { 882 return vcalt_f32(a, b); 883} 884 885// CHECK-LABEL: test_vcaltq_f32 886// CHECK: vacgt.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 887uint32x4_t test_vcaltq_f32(float32x4_t a, float32x4_t b) { 888 return vcaltq_f32(a, b); 889} 890 891 892// CHECK-LABEL: test_vceq_s8 893// CHECK: vceq.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 894uint8x8_t test_vceq_s8(int8x8_t a, int8x8_t b) { 895 return vceq_s8(a, b); 896} 897 898// CHECK-LABEL: test_vceq_s16 899// CHECK: vceq.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 900uint16x4_t test_vceq_s16(int16x4_t a, int16x4_t b) { 901 return vceq_s16(a, b); 902} 903 904// CHECK-LABEL: test_vceq_s32 905// CHECK: vceq.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 906uint32x2_t test_vceq_s32(int32x2_t a, int32x2_t b) { 907 return vceq_s32(a, b); 908} 909 910// CHECK-LABEL: test_vceq_f32 911// CHECK: vceq.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 912uint32x2_t test_vceq_f32(float32x2_t a, float32x2_t b) { 913 return vceq_f32(a, b); 914} 915 916// CHECK-LABEL: test_vceq_u8 917// CHECK: vceq.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 918uint8x8_t test_vceq_u8(uint8x8_t a, uint8x8_t b) { 919 return vceq_u8(a, b); 920} 921 922// CHECK-LABEL: test_vceq_u16 923// CHECK: vceq.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 924uint16x4_t test_vceq_u16(uint16x4_t a, uint16x4_t b) { 925 return vceq_u16(a, b); 926} 927 928// CHECK-LABEL: test_vceq_u32 929// CHECK: vceq.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 930uint32x2_t test_vceq_u32(uint32x2_t a, uint32x2_t b) { 931 return vceq_u32(a, b); 932} 933 934// CHECK-LABEL: test_vceq_p8 935// CHECK: vceq.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 936uint8x8_t test_vceq_p8(poly8x8_t a, poly8x8_t b) { 937 return vceq_p8(a, b); 938} 939 940// CHECK-LABEL: test_vceqq_s8 941// CHECK: vceq.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 942uint8x16_t test_vceqq_s8(int8x16_t a, int8x16_t b) { 943 return vceqq_s8(a, b); 944} 945 946// CHECK-LABEL: test_vceqq_s16 947// CHECK: vceq.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 948uint16x8_t test_vceqq_s16(int16x8_t a, int16x8_t b) { 949 return vceqq_s16(a, b); 950} 951 952// CHECK-LABEL: test_vceqq_s32 953// CHECK: vceq.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 954uint32x4_t test_vceqq_s32(int32x4_t a, int32x4_t b) { 955 return vceqq_s32(a, b); 956} 957 958// CHECK-LABEL: test_vceqq_f32 959// CHECK: vceq.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 960uint32x4_t test_vceqq_f32(float32x4_t a, float32x4_t b) { 961 return vceqq_f32(a, b); 962} 963 964// CHECK-LABEL: test_vceqq_u8 965// CHECK: vceq.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 966uint8x16_t test_vceqq_u8(uint8x16_t a, uint8x16_t b) { 967 return vceqq_u8(a, b); 968} 969 970// CHECK-LABEL: test_vceqq_u16 971// CHECK: vceq.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 972uint16x8_t test_vceqq_u16(uint16x8_t a, uint16x8_t b) { 973 return vceqq_u16(a, b); 974} 975 976// CHECK-LABEL: test_vceqq_u32 977// CHECK: vceq.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 978uint32x4_t test_vceqq_u32(uint32x4_t a, uint32x4_t b) { 979 return vceqq_u32(a, b); 980} 981 982// CHECK-LABEL: test_vceqq_p8 983// CHECK: vceq.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 984uint8x16_t test_vceqq_p8(poly8x16_t a, poly8x16_t b) { 985 return vceqq_p8(a, b); 986} 987 988 989// CHECK-LABEL: test_vcge_s8 990// CHECK: vcge.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 991uint8x8_t test_vcge_s8(int8x8_t a, int8x8_t b) { 992 return vcge_s8(a, b); 993} 994 995// CHECK-LABEL: test_vcge_s16 996// CHECK: vcge.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 997uint16x4_t test_vcge_s16(int16x4_t a, int16x4_t b) { 998 return vcge_s16(a, b); 999} 1000 1001// CHECK-LABEL: test_vcge_s32 1002// CHECK: vcge.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1003uint32x2_t test_vcge_s32(int32x2_t a, int32x2_t b) { 1004 return vcge_s32(a, b); 1005} 1006 1007// CHECK-LABEL: test_vcge_f32 1008// CHECK: vcge.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1009uint32x2_t test_vcge_f32(float32x2_t a, float32x2_t b) { 1010 return vcge_f32(a, b); 1011} 1012 1013// CHECK-LABEL: test_vcge_u8 1014// CHECK: vcge.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1015uint8x8_t test_vcge_u8(uint8x8_t a, uint8x8_t b) { 1016 return vcge_u8(a, b); 1017} 1018 1019// CHECK-LABEL: test_vcge_u16 1020// CHECK: vcge.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1021uint16x4_t test_vcge_u16(uint16x4_t a, uint16x4_t b) { 1022 return vcge_u16(a, b); 1023} 1024 1025// CHECK-LABEL: test_vcge_u32 1026// CHECK: vcge.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1027uint32x2_t test_vcge_u32(uint32x2_t a, uint32x2_t b) { 1028 return vcge_u32(a, b); 1029} 1030 1031// CHECK-LABEL: test_vcgeq_s8 1032// CHECK: vcge.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1033uint8x16_t test_vcgeq_s8(int8x16_t a, int8x16_t b) { 1034 return vcgeq_s8(a, b); 1035} 1036 1037// CHECK-LABEL: test_vcgeq_s16 1038// CHECK: vcge.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1039uint16x8_t test_vcgeq_s16(int16x8_t a, int16x8_t b) { 1040 return vcgeq_s16(a, b); 1041} 1042 1043// CHECK-LABEL: test_vcgeq_s32 1044// CHECK: vcge.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1045uint32x4_t test_vcgeq_s32(int32x4_t a, int32x4_t b) { 1046 return vcgeq_s32(a, b); 1047} 1048 1049// CHECK-LABEL: test_vcgeq_f32 1050// CHECK: vcge.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1051uint32x4_t test_vcgeq_f32(float32x4_t a, float32x4_t b) { 1052 return vcgeq_f32(a, b); 1053} 1054 1055// CHECK-LABEL: test_vcgeq_u8 1056// CHECK: vcge.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1057uint8x16_t test_vcgeq_u8(uint8x16_t a, uint8x16_t b) { 1058 return vcgeq_u8(a, b); 1059} 1060 1061// CHECK-LABEL: test_vcgeq_u16 1062// CHECK: vcge.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1063uint16x8_t test_vcgeq_u16(uint16x8_t a, uint16x8_t b) { 1064 return vcgeq_u16(a, b); 1065} 1066 1067// CHECK-LABEL: test_vcgeq_u32 1068// CHECK: vcge.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1069uint32x4_t test_vcgeq_u32(uint32x4_t a, uint32x4_t b) { 1070 return vcgeq_u32(a, b); 1071} 1072 1073 1074// CHECK-LABEL: test_vcgt_s8 1075// CHECK: vcgt.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1076uint8x8_t test_vcgt_s8(int8x8_t a, int8x8_t b) { 1077 return vcgt_s8(a, b); 1078} 1079 1080// CHECK-LABEL: test_vcgt_s16 1081// CHECK: vcgt.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1082uint16x4_t test_vcgt_s16(int16x4_t a, int16x4_t b) { 1083 return vcgt_s16(a, b); 1084} 1085 1086// CHECK-LABEL: test_vcgt_s32 1087// CHECK: vcgt.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1088uint32x2_t test_vcgt_s32(int32x2_t a, int32x2_t b) { 1089 return vcgt_s32(a, b); 1090} 1091 1092// CHECK-LABEL: test_vcgt_f32 1093// CHECK: vcgt.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1094uint32x2_t test_vcgt_f32(float32x2_t a, float32x2_t b) { 1095 return vcgt_f32(a, b); 1096} 1097 1098// CHECK-LABEL: test_vcgt_u8 1099// CHECK: vcgt.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1100uint8x8_t test_vcgt_u8(uint8x8_t a, uint8x8_t b) { 1101 return vcgt_u8(a, b); 1102} 1103 1104// CHECK-LABEL: test_vcgt_u16 1105// CHECK: vcgt.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1106uint16x4_t test_vcgt_u16(uint16x4_t a, uint16x4_t b) { 1107 return vcgt_u16(a, b); 1108} 1109 1110// CHECK-LABEL: test_vcgt_u32 1111// CHECK: vcgt.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1112uint32x2_t test_vcgt_u32(uint32x2_t a, uint32x2_t b) { 1113 return vcgt_u32(a, b); 1114} 1115 1116// CHECK-LABEL: test_vcgtq_s8 1117// CHECK: vcgt.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1118uint8x16_t test_vcgtq_s8(int8x16_t a, int8x16_t b) { 1119 return vcgtq_s8(a, b); 1120} 1121 1122// CHECK-LABEL: test_vcgtq_s16 1123// CHECK: vcgt.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1124uint16x8_t test_vcgtq_s16(int16x8_t a, int16x8_t b) { 1125 return vcgtq_s16(a, b); 1126} 1127 1128// CHECK-LABEL: test_vcgtq_s32 1129// CHECK: vcgt.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1130uint32x4_t test_vcgtq_s32(int32x4_t a, int32x4_t b) { 1131 return vcgtq_s32(a, b); 1132} 1133 1134// CHECK-LABEL: test_vcgtq_f32 1135// CHECK: vcgt.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1136uint32x4_t test_vcgtq_f32(float32x4_t a, float32x4_t b) { 1137 return vcgtq_f32(a, b); 1138} 1139 1140// CHECK-LABEL: test_vcgtq_u8 1141// CHECK: vcgt.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1142uint8x16_t test_vcgtq_u8(uint8x16_t a, uint8x16_t b) { 1143 return vcgtq_u8(a, b); 1144} 1145 1146// CHECK-LABEL: test_vcgtq_u16 1147// CHECK: vcgt.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1148uint16x8_t test_vcgtq_u16(uint16x8_t a, uint16x8_t b) { 1149 return vcgtq_u16(a, b); 1150} 1151 1152// CHECK-LABEL: test_vcgtq_u32 1153// CHECK: vcgt.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1154uint32x4_t test_vcgtq_u32(uint32x4_t a, uint32x4_t b) { 1155 return vcgtq_u32(a, b); 1156} 1157 1158 1159// CHECK-LABEL: test_vcle_s8 1160// CHECK: vcge.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1161uint8x8_t test_vcle_s8(int8x8_t a, int8x8_t b) { 1162 return vcle_s8(a, b); 1163} 1164 1165// CHECK-LABEL: test_vcle_s16 1166// CHECK: vcge.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1167uint16x4_t test_vcle_s16(int16x4_t a, int16x4_t b) { 1168 return vcle_s16(a, b); 1169} 1170 1171// CHECK-LABEL: test_vcle_s32 1172// CHECK: vcge.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1173uint32x2_t test_vcle_s32(int32x2_t a, int32x2_t b) { 1174 return vcle_s32(a, b); 1175} 1176 1177// CHECK-LABEL: test_vcle_f32 1178// CHECK: vcge.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1179uint32x2_t test_vcle_f32(float32x2_t a, float32x2_t b) { 1180 return vcle_f32(a, b); 1181} 1182 1183// CHECK-LABEL: test_vcle_u8 1184// CHECK: vcge.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1185uint8x8_t test_vcle_u8(uint8x8_t a, uint8x8_t b) { 1186 return vcle_u8(a, b); 1187} 1188 1189// CHECK-LABEL: test_vcle_u16 1190// CHECK: vcge.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1191uint16x4_t test_vcle_u16(uint16x4_t a, uint16x4_t b) { 1192 return vcle_u16(a, b); 1193} 1194 1195// CHECK-LABEL: test_vcle_u32 1196// CHECK: vcge.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1197uint32x2_t test_vcle_u32(uint32x2_t a, uint32x2_t b) { 1198 return vcle_u32(a, b); 1199} 1200 1201// CHECK-LABEL: test_vcleq_s8 1202// CHECK: vcge.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1203uint8x16_t test_vcleq_s8(int8x16_t a, int8x16_t b) { 1204 return vcleq_s8(a, b); 1205} 1206 1207// CHECK-LABEL: test_vcleq_s16 1208// CHECK: vcge.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1209uint16x8_t test_vcleq_s16(int16x8_t a, int16x8_t b) { 1210 return vcleq_s16(a, b); 1211} 1212 1213// CHECK-LABEL: test_vcleq_s32 1214// CHECK: vcge.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1215uint32x4_t test_vcleq_s32(int32x4_t a, int32x4_t b) { 1216 return vcleq_s32(a, b); 1217} 1218 1219// CHECK-LABEL: test_vcleq_f32 1220// CHECK: vcge.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1221uint32x4_t test_vcleq_f32(float32x4_t a, float32x4_t b) { 1222 return vcleq_f32(a, b); 1223} 1224 1225// CHECK-LABEL: test_vcleq_u8 1226// CHECK: vcge.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1227uint8x16_t test_vcleq_u8(uint8x16_t a, uint8x16_t b) { 1228 return vcleq_u8(a, b); 1229} 1230 1231// CHECK-LABEL: test_vcleq_u16 1232// CHECK: vcge.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1233uint16x8_t test_vcleq_u16(uint16x8_t a, uint16x8_t b) { 1234 return vcleq_u16(a, b); 1235} 1236 1237// CHECK-LABEL: test_vcleq_u32 1238// CHECK: vcge.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1239uint32x4_t test_vcleq_u32(uint32x4_t a, uint32x4_t b) { 1240 return vcleq_u32(a, b); 1241} 1242 1243 1244// CHECK-LABEL: test_vcls_s8 1245// CHECK: vcls.s8 d{{[0-9]+}}, d{{[0-9]+}} 1246int8x8_t test_vcls_s8(int8x8_t a) { 1247 return vcls_s8(a); 1248} 1249 1250// CHECK-LABEL: test_vcls_s16 1251// CHECK: vcls.s16 d{{[0-9]+}}, d{{[0-9]+}} 1252int16x4_t test_vcls_s16(int16x4_t a) { 1253 return vcls_s16(a); 1254} 1255 1256// CHECK-LABEL: test_vcls_s32 1257// CHECK: vcls.s32 d{{[0-9]+}}, d{{[0-9]+}} 1258int32x2_t test_vcls_s32(int32x2_t a) { 1259 return vcls_s32(a); 1260} 1261 1262// CHECK-LABEL: test_vclsq_s8 1263// CHECK: vcls.s8 q{{[0-9]+}}, q{{[0-9]+}} 1264int8x16_t test_vclsq_s8(int8x16_t a) { 1265 return vclsq_s8(a); 1266} 1267 1268// CHECK-LABEL: test_vclsq_s16 1269// CHECK: vcls.s16 q{{[0-9]+}}, q{{[0-9]+}} 1270int16x8_t test_vclsq_s16(int16x8_t a) { 1271 return vclsq_s16(a); 1272} 1273 1274// CHECK-LABEL: test_vclsq_s32 1275// CHECK: vcls.s32 q{{[0-9]+}}, q{{[0-9]+}} 1276int32x4_t test_vclsq_s32(int32x4_t a) { 1277 return vclsq_s32(a); 1278} 1279 1280 1281// CHECK-LABEL: test_vclt_s8 1282// CHECK: vcgt.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1283uint8x8_t test_vclt_s8(int8x8_t a, int8x8_t b) { 1284 return vclt_s8(a, b); 1285} 1286 1287// CHECK-LABEL: test_vclt_s16 1288// CHECK: vcgt.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1289uint16x4_t test_vclt_s16(int16x4_t a, int16x4_t b) { 1290 return vclt_s16(a, b); 1291} 1292 1293// CHECK-LABEL: test_vclt_s32 1294// CHECK: vcgt.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1295uint32x2_t test_vclt_s32(int32x2_t a, int32x2_t b) { 1296 return vclt_s32(a, b); 1297} 1298 1299// CHECK-LABEL: test_vclt_f32 1300// CHECK: vcgt.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1301uint32x2_t test_vclt_f32(float32x2_t a, float32x2_t b) { 1302 return vclt_f32(a, b); 1303} 1304 1305// CHECK-LABEL: test_vclt_u8 1306// CHECK: vcgt.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1307uint8x8_t test_vclt_u8(uint8x8_t a, uint8x8_t b) { 1308 return vclt_u8(a, b); 1309} 1310 1311// CHECK-LABEL: test_vclt_u16 1312// CHECK: vcgt.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1313uint16x4_t test_vclt_u16(uint16x4_t a, uint16x4_t b) { 1314 return vclt_u16(a, b); 1315} 1316 1317// CHECK-LABEL: test_vclt_u32 1318// CHECK: vcgt.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1319uint32x2_t test_vclt_u32(uint32x2_t a, uint32x2_t b) { 1320 return vclt_u32(a, b); 1321} 1322 1323// CHECK-LABEL: test_vcltq_s8 1324// CHECK: vcgt.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1325uint8x16_t test_vcltq_s8(int8x16_t a, int8x16_t b) { 1326 return vcltq_s8(a, b); 1327} 1328 1329// CHECK-LABEL: test_vcltq_s16 1330// CHECK: vcgt.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1331uint16x8_t test_vcltq_s16(int16x8_t a, int16x8_t b) { 1332 return vcltq_s16(a, b); 1333} 1334 1335// CHECK-LABEL: test_vcltq_s32 1336// CHECK: vcgt.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1337uint32x4_t test_vcltq_s32(int32x4_t a, int32x4_t b) { 1338 return vcltq_s32(a, b); 1339} 1340 1341// CHECK-LABEL: test_vcltq_f32 1342// CHECK: vcgt.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1343uint32x4_t test_vcltq_f32(float32x4_t a, float32x4_t b) { 1344 return vcltq_f32(a, b); 1345} 1346 1347// CHECK-LABEL: test_vcltq_u8 1348// CHECK: vcgt.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1349uint8x16_t test_vcltq_u8(uint8x16_t a, uint8x16_t b) { 1350 return vcltq_u8(a, b); 1351} 1352 1353// CHECK-LABEL: test_vcltq_u16 1354// CHECK: vcgt.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1355uint16x8_t test_vcltq_u16(uint16x8_t a, uint16x8_t b) { 1356 return vcltq_u16(a, b); 1357} 1358 1359// CHECK-LABEL: test_vcltq_u32 1360// CHECK: vcgt.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 1361uint32x4_t test_vcltq_u32(uint32x4_t a, uint32x4_t b) { 1362 return vcltq_u32(a, b); 1363} 1364 1365 1366// CHECK-LABEL: test_vclz_s8 1367// CHECK: vclz.i8 d{{[0-9]+}}, d{{[0-9]+}} 1368int8x8_t test_vclz_s8(int8x8_t a) { 1369 return vclz_s8(a); 1370} 1371 1372// CHECK-LABEL: test_vclz_s16 1373// CHECK: vclz.i16 d{{[0-9]+}}, d{{[0-9]+}} 1374int16x4_t test_vclz_s16(int16x4_t a) { 1375 return vclz_s16(a); 1376} 1377 1378// CHECK-LABEL: test_vclz_s32 1379// CHECK: vclz.i32 d{{[0-9]+}}, d{{[0-9]+}} 1380int32x2_t test_vclz_s32(int32x2_t a) { 1381 return vclz_s32(a); 1382} 1383 1384// CHECK-LABEL: test_vclz_u8 1385// CHECK: vclz.i8 d{{[0-9]+}}, d{{[0-9]+}} 1386uint8x8_t test_vclz_u8(uint8x8_t a) { 1387 return vclz_u8(a); 1388} 1389 1390// CHECK-LABEL: test_vclz_u16 1391// CHECK: vclz.i16 d{{[0-9]+}}, d{{[0-9]+}} 1392uint16x4_t test_vclz_u16(uint16x4_t a) { 1393 return vclz_u16(a); 1394} 1395 1396// CHECK-LABEL: test_vclz_u32 1397// CHECK: vclz.i32 d{{[0-9]+}}, d{{[0-9]+}} 1398uint32x2_t test_vclz_u32(uint32x2_t a) { 1399 return vclz_u32(a); 1400} 1401 1402// CHECK-LABEL: test_vclzq_s8 1403// CHECK: vclz.i8 q{{[0-9]+}}, q{{[0-9]+}} 1404int8x16_t test_vclzq_s8(int8x16_t a) { 1405 return vclzq_s8(a); 1406} 1407 1408// CHECK-LABEL: test_vclzq_s16 1409// CHECK: vclz.i16 q{{[0-9]+}}, q{{[0-9]+}} 1410int16x8_t test_vclzq_s16(int16x8_t a) { 1411 return vclzq_s16(a); 1412} 1413 1414// CHECK-LABEL: test_vclzq_s32 1415// CHECK: vclz.i32 q{{[0-9]+}}, q{{[0-9]+}} 1416int32x4_t test_vclzq_s32(int32x4_t a) { 1417 return vclzq_s32(a); 1418} 1419 1420// CHECK-LABEL: test_vclzq_u8 1421// CHECK: vclz.i8 q{{[0-9]+}}, q{{[0-9]+}} 1422uint8x16_t test_vclzq_u8(uint8x16_t a) { 1423 return vclzq_u8(a); 1424} 1425 1426// CHECK-LABEL: test_vclzq_u16 1427// CHECK: vclz.i16 q{{[0-9]+}}, q{{[0-9]+}} 1428uint16x8_t test_vclzq_u16(uint16x8_t a) { 1429 return vclzq_u16(a); 1430} 1431 1432// CHECK-LABEL: test_vclzq_u32 1433// CHECK: vclz.i32 q{{[0-9]+}}, q{{[0-9]+}} 1434uint32x4_t test_vclzq_u32(uint32x4_t a) { 1435 return vclzq_u32(a); 1436} 1437 1438 1439// CHECK-LABEL: test_vcnt_u8 1440// CHECK: vcnt.8 d{{[0-9]+}}, d{{[0-9]+}} 1441uint8x8_t test_vcnt_u8(uint8x8_t a) { 1442 return vcnt_u8(a); 1443} 1444 1445// CHECK-LABEL: test_vcnt_s8 1446// CHECK: vcnt.8 d{{[0-9]+}}, d{{[0-9]+}} 1447int8x8_t test_vcnt_s8(int8x8_t a) { 1448 return vcnt_s8(a); 1449} 1450 1451// CHECK-LABEL: test_vcnt_p8 1452// CHECK: vcnt.8 d{{[0-9]+}}, d{{[0-9]+}} 1453poly8x8_t test_vcnt_p8(poly8x8_t a) { 1454 return vcnt_p8(a); 1455} 1456 1457// CHECK-LABEL: test_vcntq_u8 1458// CHECK: vcnt.8 q{{[0-9]+}}, q{{[0-9]+}} 1459uint8x16_t test_vcntq_u8(uint8x16_t a) { 1460 return vcntq_u8(a); 1461} 1462 1463// CHECK-LABEL: test_vcntq_s8 1464// CHECK: vcnt.8 q{{[0-9]+}}, q{{[0-9]+}} 1465int8x16_t test_vcntq_s8(int8x16_t a) { 1466 return vcntq_s8(a); 1467} 1468 1469// CHECK-LABEL: test_vcntq_p8 1470// CHECK: vcnt.8 q{{[0-9]+}}, q{{[0-9]+}} 1471poly8x16_t test_vcntq_p8(poly8x16_t a) { 1472 return vcntq_p8(a); 1473} 1474 1475 1476// CHECK-LABEL: test_vcombine_s8 1477int8x16_t test_vcombine_s8(int8x8_t a, int8x8_t b) { 1478 return vcombine_s8(a, b); 1479} 1480 1481// CHECK-LABEL: test_vcombine_s16 1482int16x8_t test_vcombine_s16(int16x4_t a, int16x4_t b) { 1483 return vcombine_s16(a, b); 1484} 1485 1486// CHECK-LABEL: test_vcombine_s32 1487int32x4_t test_vcombine_s32(int32x2_t a, int32x2_t b) { 1488 return vcombine_s32(a, b); 1489} 1490 1491// CHECK-LABEL: test_vcombine_s64 1492int64x2_t test_vcombine_s64(int64x1_t a, int64x1_t b) { 1493 return vcombine_s64(a, b); 1494} 1495 1496// CHECK-LABEL: test_vcombine_f16 1497float16x8_t test_vcombine_f16(float16x4_t a, float16x4_t b) { 1498 return vcombine_f16(a, b); 1499} 1500 1501// CHECK-LABEL: test_vcombine_f32 1502float32x4_t test_vcombine_f32(float32x2_t a, float32x2_t b) { 1503 return vcombine_f32(a, b); 1504} 1505 1506// CHECK-LABEL: test_vcombine_u8 1507uint8x16_t test_vcombine_u8(uint8x8_t a, uint8x8_t b) { 1508 return vcombine_u8(a, b); 1509} 1510 1511// CHECK-LABEL: test_vcombine_u16 1512uint16x8_t test_vcombine_u16(uint16x4_t a, uint16x4_t b) { 1513 return vcombine_u16(a, b); 1514} 1515 1516// CHECK-LABEL: test_vcombine_u32 1517uint32x4_t test_vcombine_u32(uint32x2_t a, uint32x2_t b) { 1518 return vcombine_u32(a, b); 1519} 1520 1521// CHECK-LABEL: test_vcombine_u64 1522uint64x2_t test_vcombine_u64(uint64x1_t a, uint64x1_t b) { 1523 return vcombine_u64(a, b); 1524} 1525 1526// CHECK-LABEL: test_vcombine_p8 1527poly8x16_t test_vcombine_p8(poly8x8_t a, poly8x8_t b) { 1528 return vcombine_p8(a, b); 1529} 1530 1531// CHECK-LABEL: test_vcombine_p16 1532poly16x8_t test_vcombine_p16(poly16x4_t a, poly16x4_t b) { 1533 return vcombine_p16(a, b); 1534} 1535 1536 1537// CHECK-LABEL: test_vcreate_s8 1538int8x8_t test_vcreate_s8(uint64_t a) { 1539 return vcreate_s8(a); 1540} 1541 1542// CHECK-LABEL: test_vcreate_s16 1543int16x4_t test_vcreate_s16(uint64_t a) { 1544 return vcreate_s16(a); 1545} 1546 1547// CHECK-LABEL: test_vcreate_s32 1548int32x2_t test_vcreate_s32(uint64_t a) { 1549 return vcreate_s32(a); 1550} 1551 1552// CHECK-LABEL: test_vcreate_f16 1553float16x4_t test_vcreate_f16(uint64_t a) { 1554 return vcreate_f16(a); 1555} 1556 1557// CHECK-LABEL: test_vcreate_f32 1558float32x2_t test_vcreate_f32(uint64_t a) { 1559 return vcreate_f32(a); 1560} 1561 1562// CHECK-LABEL: test_vcreate_u8 1563uint8x8_t test_vcreate_u8(uint64_t a) { 1564 return vcreate_u8(a); 1565} 1566 1567// CHECK-LABEL: test_vcreate_u16 1568uint16x4_t test_vcreate_u16(uint64_t a) { 1569 return vcreate_u16(a); 1570} 1571 1572// CHECK-LABEL: test_vcreate_u32 1573uint32x2_t test_vcreate_u32(uint64_t a) { 1574 return vcreate_u32(a); 1575} 1576 1577// CHECK-LABEL: test_vcreate_u64 1578uint64x1_t test_vcreate_u64(uint64_t a) { 1579 return vcreate_u64(a); 1580} 1581 1582// CHECK-LABEL: test_vcreate_p8 1583poly8x8_t test_vcreate_p8(uint64_t a) { 1584 return vcreate_p8(a); 1585} 1586 1587// CHECK-LABEL: test_vcreate_p16 1588poly16x4_t test_vcreate_p16(uint64_t a) { 1589 return vcreate_p16(a); 1590} 1591 1592// CHECK-LABEL: test_vcreate_s64 1593int64x1_t test_vcreate_s64(uint64_t a) { 1594 return vcreate_s64(a); 1595} 1596 1597 1598// CHECK-LABEL: test_vcvt_f16_f32 1599// CHECK: vcvt.f16.f32 d{{[0-9]+}}, q{{[0-9]+}} 1600float16x4_t test_vcvt_f16_f32(float32x4_t a) { 1601 return vcvt_f16_f32(a); 1602} 1603 1604 1605// CHECK-LABEL: test_vcvt_f32_s32 1606// CHECK: vcvt.f32.s32 d{{[0-9]+}}, d{{[0-9]+}} 1607float32x2_t test_vcvt_f32_s32(int32x2_t a) { 1608 return vcvt_f32_s32(a); 1609} 1610 1611// CHECK-LABEL: test_vcvt_f32_u32 1612// CHECK: vcvt.f32.u32 d{{[0-9]+}}, d{{[0-9]+}} 1613float32x2_t test_vcvt_f32_u32(uint32x2_t a) { 1614 return vcvt_f32_u32(a); 1615} 1616 1617// CHECK-LABEL: test_vcvtq_f32_s32 1618// CHECK: vcvt.f32.s32 q{{[0-9]+}}, q{{[0-9]+}} 1619float32x4_t test_vcvtq_f32_s32(int32x4_t a) { 1620 return vcvtq_f32_s32(a); 1621} 1622 1623// CHECK-LABEL: test_vcvtq_f32_u32 1624// CHECK: vcvt.f32.u32 q{{[0-9]+}}, q{{[0-9]+}} 1625float32x4_t test_vcvtq_f32_u32(uint32x4_t a) { 1626 return vcvtq_f32_u32(a); 1627} 1628 1629 1630// CHECK-LABEL: test_vcvt_f32_f16 1631// CHECK: vcvt.f32.f16 1632float32x4_t test_vcvt_f32_f16(float16x4_t a) { 1633 return vcvt_f32_f16(a); 1634} 1635 1636 1637// CHECK-LABEL: test_vcvt_n_f32_s32 1638// CHECK: vcvt.f32.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 1639float32x2_t test_vcvt_n_f32_s32(int32x2_t a) { 1640 return vcvt_n_f32_s32(a, 1); 1641} 1642 1643// CHECK-LABEL: test_vcvt_n_f32_u32 1644// CHECK: vcvt.f32.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 1645float32x2_t test_vcvt_n_f32_u32(uint32x2_t a) { 1646 return vcvt_n_f32_u32(a, 1); 1647} 1648 1649// CHECK-LABEL: test_vcvtq_n_f32_s32 1650// CHECK: vcvt.f32.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 1651float32x4_t test_vcvtq_n_f32_s32(int32x4_t a) { 1652 return vcvtq_n_f32_s32(a, 3); 1653} 1654 1655// CHECK-LABEL: test_vcvtq_n_f32_u32 1656// CHECK: vcvt.f32.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 1657float32x4_t test_vcvtq_n_f32_u32(uint32x4_t a) { 1658 return vcvtq_n_f32_u32(a, 3); 1659} 1660 1661 1662// CHECK-LABEL: test_vcvt_n_s32_f32 1663// CHECK: vcvt.s32.f32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 1664int32x2_t test_vcvt_n_s32_f32(float32x2_t a) { 1665 return vcvt_n_s32_f32(a, 1); 1666} 1667 1668// CHECK-LABEL: test_vcvtq_n_s32_f32 1669// CHECK: vcvt.s32.f32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 1670int32x4_t test_vcvtq_n_s32_f32(float32x4_t a) { 1671 return vcvtq_n_s32_f32(a, 3); 1672} 1673 1674 1675// CHECK-LABEL: test_vcvt_n_u32_f32 1676// CHECK: vcvt.u32.f32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 1677uint32x2_t test_vcvt_n_u32_f32(float32x2_t a) { 1678 return vcvt_n_u32_f32(a, 1); 1679} 1680 1681// CHECK-LABEL: test_vcvtq_n_u32_f32 1682// CHECK: vcvt.u32.f32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 1683uint32x4_t test_vcvtq_n_u32_f32(float32x4_t a) { 1684 return vcvtq_n_u32_f32(a, 3); 1685} 1686 1687 1688// CHECK-LABEL: test_vcvt_s32_f32 1689// CHECK: vcvt.s32.f32 d{{[0-9]+}}, d{{[0-9]+}} 1690int32x2_t test_vcvt_s32_f32(float32x2_t a) { 1691 return vcvt_s32_f32(a); 1692} 1693 1694// CHECK-LABEL: test_vcvtq_s32_f32 1695// CHECK: vcvt.s32.f32 q{{[0-9]+}}, q{{[0-9]+}} 1696int32x4_t test_vcvtq_s32_f32(float32x4_t a) { 1697 return vcvtq_s32_f32(a); 1698} 1699 1700 1701// CHECK-LABEL: test_vcvt_u32_f32 1702// CHECK: vcvt.u32.f32 d{{[0-9]+}}, d{{[0-9]+}} 1703uint32x2_t test_vcvt_u32_f32(float32x2_t a) { 1704 return vcvt_u32_f32(a); 1705} 1706 1707// CHECK-LABEL: test_vcvtq_u32_f32 1708// CHECK: vcvt.u32.f32 q{{[0-9]+}}, q{{[0-9]+}} 1709uint32x4_t test_vcvtq_u32_f32(float32x4_t a) { 1710 return vcvtq_u32_f32(a); 1711} 1712 1713 1714// CHECK-LABEL: test_vdup_lane_u8 1715// CHECK: vdup.8 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1716uint8x8_t test_vdup_lane_u8(uint8x8_t a) { 1717 return vdup_lane_u8(a, 7); 1718} 1719 1720// CHECK-LABEL: test_vdup_lane_u16 1721// CHECK: vdup.16 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1722uint16x4_t test_vdup_lane_u16(uint16x4_t a) { 1723 return vdup_lane_u16(a, 3); 1724} 1725 1726// CHECK-LABEL: test_vdup_lane_u32 1727// CHECK: vdup.32 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1728uint32x2_t test_vdup_lane_u32(uint32x2_t a) { 1729 return vdup_lane_u32(a, 1); 1730} 1731 1732// CHECK-LABEL: test_vdup_lane_s8 1733// CHECK: vdup.8 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1734int8x8_t test_vdup_lane_s8(int8x8_t a) { 1735 return vdup_lane_s8(a, 7); 1736} 1737 1738// CHECK-LABEL: test_vdup_lane_s16 1739// CHECK: vdup.16 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1740int16x4_t test_vdup_lane_s16(int16x4_t a) { 1741 return vdup_lane_s16(a, 3); 1742} 1743 1744// CHECK-LABEL: test_vdup_lane_s32 1745// CHECK: vdup.32 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1746int32x2_t test_vdup_lane_s32(int32x2_t a) { 1747 return vdup_lane_s32(a, 1); 1748} 1749 1750// CHECK-LABEL: test_vdup_lane_p8 1751// CHECK: vdup.8 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1752poly8x8_t test_vdup_lane_p8(poly8x8_t a) { 1753 return vdup_lane_p8(a, 7); 1754} 1755 1756// CHECK-LABEL: test_vdup_lane_p16 1757// CHECK: vdup.16 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1758poly16x4_t test_vdup_lane_p16(poly16x4_t a) { 1759 return vdup_lane_p16(a, 3); 1760} 1761 1762// CHECK-LABEL: test_vdup_lane_f32 1763// CHECK: vdup.32 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1764float32x2_t test_vdup_lane_f32(float32x2_t a) { 1765 return vdup_lane_f32(a, 1); 1766} 1767 1768// CHECK-LABEL: test_vdupq_lane_u8 1769// CHECK: vdup.8 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1770uint8x16_t test_vdupq_lane_u8(uint8x8_t a) { 1771 return vdupq_lane_u8(a, 7); 1772} 1773 1774// CHECK-LABEL: test_vdupq_lane_u16 1775// CHECK: vdup.16 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1776uint16x8_t test_vdupq_lane_u16(uint16x4_t a) { 1777 return vdupq_lane_u16(a, 3); 1778} 1779 1780// CHECK-LABEL: test_vdupq_lane_u32 1781// CHECK: vdup.32 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1782uint32x4_t test_vdupq_lane_u32(uint32x2_t a) { 1783 return vdupq_lane_u32(a, 1); 1784} 1785 1786// CHECK-LABEL: test_vdupq_lane_s8 1787// CHECK: vdup.8 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1788int8x16_t test_vdupq_lane_s8(int8x8_t a) { 1789 return vdupq_lane_s8(a, 7); 1790} 1791 1792// CHECK-LABEL: test_vdupq_lane_s16 1793// CHECK: vdup.16 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1794int16x8_t test_vdupq_lane_s16(int16x4_t a) { 1795 return vdupq_lane_s16(a, 3); 1796} 1797 1798// CHECK-LABEL: test_vdupq_lane_s32 1799// CHECK: vdup.32 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1800int32x4_t test_vdupq_lane_s32(int32x2_t a) { 1801 return vdupq_lane_s32(a, 1); 1802} 1803 1804// CHECK-LABEL: test_vdupq_lane_p8 1805// CHECK: vdup.8 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1806poly8x16_t test_vdupq_lane_p8(poly8x8_t a) { 1807 return vdupq_lane_p8(a, 7); 1808} 1809 1810// CHECK-LABEL: test_vdupq_lane_p16 1811// CHECK: vdup.16 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1812poly16x8_t test_vdupq_lane_p16(poly16x4_t a) { 1813 return vdupq_lane_p16(a, 3); 1814} 1815 1816// CHECK-LABEL: test_vdupq_lane_f32 1817// CHECK: vdup.32 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1818float32x4_t test_vdupq_lane_f32(float32x2_t a) { 1819 return vdupq_lane_f32(a, 1); 1820} 1821 1822// CHECK-LABEL: test_vdup_lane_s64 1823int64x1_t test_vdup_lane_s64(int64x1_t a) { 1824 return vdup_lane_s64(a, 0); 1825} 1826 1827// CHECK-LABEL: test_vdup_lane_u64 1828uint64x1_t test_vdup_lane_u64(uint64x1_t a) { 1829 return vdup_lane_u64(a, 0); 1830} 1831 1832// CHECK-LABEL: test_vdupq_lane_s64 1833// CHECK: {{vmov|vdup}} 1834int64x2_t test_vdupq_lane_s64(int64x1_t a) { 1835 return vdupq_lane_s64(a, 0); 1836} 1837 1838// CHECK-LABEL: test_vdupq_lane_u64 1839// CHECK: {{vmov|vdup}} 1840uint64x2_t test_vdupq_lane_u64(uint64x1_t a) { 1841 return vdupq_lane_u64(a, 0); 1842} 1843 1844 1845// CHECK-LABEL: test_vdup_n_u8 1846// CHECK: vmov 1847uint8x8_t test_vdup_n_u8(uint8_t a) { 1848 return vdup_n_u8(a); 1849} 1850 1851// CHECK-LABEL: test_vdup_n_u16 1852// CHECK: vmov 1853uint16x4_t test_vdup_n_u16(uint16_t a) { 1854 return vdup_n_u16(a); 1855} 1856 1857// CHECK-LABEL: test_vdup_n_u32 1858// CHECK: vmov 1859uint32x2_t test_vdup_n_u32(uint32_t a) { 1860 return vdup_n_u32(a); 1861} 1862 1863// CHECK-LABEL: test_vdup_n_s8 1864// CHECK: vmov 1865int8x8_t test_vdup_n_s8(int8_t a) { 1866 return vdup_n_s8(a); 1867} 1868 1869// CHECK-LABEL: test_vdup_n_s16 1870// CHECK: vmov 1871int16x4_t test_vdup_n_s16(int16_t a) { 1872 return vdup_n_s16(a); 1873} 1874 1875// CHECK-LABEL: test_vdup_n_s32 1876// CHECK: vmov 1877int32x2_t test_vdup_n_s32(int32_t a) { 1878 return vdup_n_s32(a); 1879} 1880 1881// CHECK-LABEL: test_vdup_n_p8 1882// CHECK: vmov 1883poly8x8_t test_vdup_n_p8(poly8_t a) { 1884 return vdup_n_p8(a); 1885} 1886 1887// CHECK-LABEL: test_vdup_n_p16 1888// CHECK: vmov 1889poly16x4_t test_vdup_n_p16(poly16_t a) { 1890 return vdup_n_p16(a); 1891} 1892 1893// CHECK-LABEL: test_vdup_n_f16 1894// CHECK: vld1.16 {{{d[0-9]+\[\]}}} 1895float16x4_t test_vdup_n_f16(float16_t *a) { 1896 return vdup_n_f16(*a); 1897} 1898 1899// CHECK-LABEL: test_vdup_n_f32 1900// CHECK: vmov 1901float32x2_t test_vdup_n_f32(float32_t a) { 1902 return vdup_n_f32(a); 1903} 1904 1905// CHECK-LABEL: test_vdupq_n_u8 1906// CHECK: vmov 1907uint8x16_t test_vdupq_n_u8(uint8_t a) { 1908 return vdupq_n_u8(a); 1909} 1910 1911// CHECK-LABEL: test_vdupq_n_u16 1912// CHECK: vmov 1913uint16x8_t test_vdupq_n_u16(uint16_t a) { 1914 return vdupq_n_u16(a); 1915} 1916 1917// CHECK-LABEL: test_vdupq_n_u32 1918// CHECK: vmov 1919uint32x4_t test_vdupq_n_u32(uint32_t a) { 1920 return vdupq_n_u32(a); 1921} 1922 1923// CHECK-LABEL: test_vdupq_n_s8 1924// CHECK: vmov 1925int8x16_t test_vdupq_n_s8(int8_t a) { 1926 return vdupq_n_s8(a); 1927} 1928 1929// CHECK-LABEL: test_vdupq_n_s16 1930// CHECK: vmov 1931int16x8_t test_vdupq_n_s16(int16_t a) { 1932 return vdupq_n_s16(a); 1933} 1934 1935// CHECK-LABEL: test_vdupq_n_s32 1936// CHECK: vmov 1937int32x4_t test_vdupq_n_s32(int32_t a) { 1938 return vdupq_n_s32(a); 1939} 1940 1941// CHECK-LABEL: test_vdupq_n_p8 1942// CHECK: vmov 1943poly8x16_t test_vdupq_n_p8(poly8_t a) { 1944 return vdupq_n_p8(a); 1945} 1946 1947// CHECK-LABEL: test_vdupq_n_p16 1948// CHECK: vmov 1949poly16x8_t test_vdupq_n_p16(poly16_t a) { 1950 return vdupq_n_p16(a); 1951} 1952 1953// CHECK-LABEL: test_vdupq_n_f16 1954// CHECK: vld1.16 {{{d[0-9]+\[\], d[0-9]+\[\]}}} 1955float16x8_t test_vdupq_n_f16(float16_t *a) { 1956 return vdupq_n_f16(*a); 1957} 1958 1959// CHECK-LABEL: test_vdupq_n_f32 1960// CHECK: vmov 1961float32x4_t test_vdupq_n_f32(float32_t a) { 1962 return vdupq_n_f32(a); 1963} 1964 1965// CHECK-LABEL: test_vdup_n_s64 1966// CHECK: vmov 1967int64x1_t test_vdup_n_s64(int64_t a) { 1968 return vdup_n_s64(a); 1969} 1970 1971// CHECK-LABEL: test_vdup_n_u64 1972// CHECK: vmov 1973uint64x1_t test_vdup_n_u64(uint64_t a) { 1974 return vdup_n_u64(a); 1975} 1976 1977// CHECK-LABEL: test_vdupq_n_s64 1978// CHECK: vmov 1979int64x2_t test_vdupq_n_s64(int64_t a) { 1980 return vdupq_n_s64(a); 1981} 1982 1983// CHECK-LABEL: test_vdupq_n_u64 1984// CHECK: vmov 1985uint64x2_t test_vdupq_n_u64(uint64_t a) { 1986 return vdupq_n_u64(a); 1987} 1988 1989 1990// CHECK-LABEL: test_veor_s8 1991// CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1992int8x8_t test_veor_s8(int8x8_t a, int8x8_t b) { 1993 return veor_s8(a, b); 1994} 1995 1996// CHECK-LABEL: test_veor_s16 1997// CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 1998int16x4_t test_veor_s16(int16x4_t a, int16x4_t b) { 1999 return veor_s16(a, b); 2000} 2001 2002// CHECK-LABEL: test_veor_s32 2003// CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2004int32x2_t test_veor_s32(int32x2_t a, int32x2_t b) { 2005 return veor_s32(a, b); 2006} 2007 2008// CHECK-LABEL: test_veor_s64 2009// CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2010int64x1_t test_veor_s64(int64x1_t a, int64x1_t b) { 2011 return veor_s64(a, b); 2012} 2013 2014// CHECK-LABEL: test_veor_u8 2015// CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2016uint8x8_t test_veor_u8(uint8x8_t a, uint8x8_t b) { 2017 return veor_u8(a, b); 2018} 2019 2020// CHECK-LABEL: test_veor_u16 2021// CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2022uint16x4_t test_veor_u16(uint16x4_t a, uint16x4_t b) { 2023 return veor_u16(a, b); 2024} 2025 2026// CHECK-LABEL: test_veor_u32 2027// CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2028uint32x2_t test_veor_u32(uint32x2_t a, uint32x2_t b) { 2029 return veor_u32(a, b); 2030} 2031 2032// CHECK-LABEL: test_veor_u64 2033// CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2034uint64x1_t test_veor_u64(uint64x1_t a, uint64x1_t b) { 2035 return veor_u64(a, b); 2036} 2037 2038// CHECK-LABEL: test_veorq_s8 2039// CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2040int8x16_t test_veorq_s8(int8x16_t a, int8x16_t b) { 2041 return veorq_s8(a, b); 2042} 2043 2044// CHECK-LABEL: test_veorq_s16 2045// CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2046int16x8_t test_veorq_s16(int16x8_t a, int16x8_t b) { 2047 return veorq_s16(a, b); 2048} 2049 2050// CHECK-LABEL: test_veorq_s32 2051// CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2052int32x4_t test_veorq_s32(int32x4_t a, int32x4_t b) { 2053 return veorq_s32(a, b); 2054} 2055 2056// CHECK-LABEL: test_veorq_s64 2057// CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2058int64x2_t test_veorq_s64(int64x2_t a, int64x2_t b) { 2059 return veorq_s64(a, b); 2060} 2061 2062// CHECK-LABEL: test_veorq_u8 2063// CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2064uint8x16_t test_veorq_u8(uint8x16_t a, uint8x16_t b) { 2065 return veorq_u8(a, b); 2066} 2067 2068// CHECK-LABEL: test_veorq_u16 2069// CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2070uint16x8_t test_veorq_u16(uint16x8_t a, uint16x8_t b) { 2071 return veorq_u16(a, b); 2072} 2073 2074// CHECK-LABEL: test_veorq_u32 2075// CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2076uint32x4_t test_veorq_u32(uint32x4_t a, uint32x4_t b) { 2077 return veorq_u32(a, b); 2078} 2079 2080// CHECK-LABEL: test_veorq_u64 2081// CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2082uint64x2_t test_veorq_u64(uint64x2_t a, uint64x2_t b) { 2083 return veorq_u64(a, b); 2084} 2085 2086 2087// CHECK-LABEL: test_vext_s8 2088// CHECK: vext.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 2089int8x8_t test_vext_s8(int8x8_t a, int8x8_t b) { 2090 return vext_s8(a, b, 7); 2091} 2092 2093// CHECK-LABEL: test_vext_u8 2094// CHECK: vext.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 2095uint8x8_t test_vext_u8(uint8x8_t a, uint8x8_t b) { 2096 return vext_u8(a, b, 7); 2097} 2098 2099// CHECK-LABEL: test_vext_p8 2100// CHECK: vext.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 2101poly8x8_t test_vext_p8(poly8x8_t a, poly8x8_t b) { 2102 return vext_p8(a, b, 7); 2103} 2104 2105// CHECK-LABEL: test_vext_s16 2106// CHECK: vext.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 2107int16x4_t test_vext_s16(int16x4_t a, int16x4_t b) { 2108 return vext_s16(a, b, 3); 2109} 2110 2111// CHECK-LABEL: test_vext_u16 2112// CHECK: vext.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 2113uint16x4_t test_vext_u16(uint16x4_t a, uint16x4_t b) { 2114 return vext_u16(a, b, 3); 2115} 2116 2117// CHECK-LABEL: test_vext_p16 2118// CHECK: vext.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 2119poly16x4_t test_vext_p16(poly16x4_t a, poly16x4_t b) { 2120 return vext_p16(a, b, 3); 2121} 2122 2123// CHECK-LABEL: test_vext_s32 2124// CHECK: vext.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 2125int32x2_t test_vext_s32(int32x2_t a, int32x2_t b) { 2126 return vext_s32(a, b, 1); 2127} 2128 2129// CHECK-LABEL: test_vext_u32 2130// CHECK: vext.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 2131uint32x2_t test_vext_u32(uint32x2_t a, uint32x2_t b) { 2132 return vext_u32(a, b, 1); 2133} 2134 2135// CHECK-LABEL: test_vext_s64 2136int64x1_t test_vext_s64(int64x1_t a, int64x1_t b) { 2137 return vext_s64(a, b, 0); 2138} 2139 2140// CHECK-LABEL: test_vext_u64 2141uint64x1_t test_vext_u64(uint64x1_t a, uint64x1_t b) { 2142 return vext_u64(a, b, 0); 2143} 2144 2145// CHECK-LABEL: test_vext_f32 2146// CHECK: vext.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 2147float32x2_t test_vext_f32(float32x2_t a, float32x2_t b) { 2148 return vext_f32(a, b, 1); 2149} 2150 2151// CHECK-LABEL: test_vextq_s8 2152// CHECK: vext.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 2153int8x16_t test_vextq_s8(int8x16_t a, int8x16_t b) { 2154 return vextq_s8(a, b, 15); 2155} 2156 2157// CHECK-LABEL: test_vextq_u8 2158// CHECK: vext.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 2159uint8x16_t test_vextq_u8(uint8x16_t a, uint8x16_t b) { 2160 return vextq_u8(a, b, 15); 2161} 2162 2163// CHECK-LABEL: test_vextq_p8 2164// CHECK: vext.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 2165poly8x16_t test_vextq_p8(poly8x16_t a, poly8x16_t b) { 2166 return vextq_p8(a, b, 15); 2167} 2168 2169// CHECK-LABEL: test_vextq_s16 2170// CHECK: vext.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 2171int16x8_t test_vextq_s16(int16x8_t a, int16x8_t b) { 2172 return vextq_s16(a, b, 7); 2173} 2174 2175// CHECK-LABEL: test_vextq_u16 2176// CHECK: vext.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 2177uint16x8_t test_vextq_u16(uint16x8_t a, uint16x8_t b) { 2178 return vextq_u16(a, b, 7); 2179} 2180 2181// CHECK-LABEL: test_vextq_p16 2182// CHECK: vext.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 2183poly16x8_t test_vextq_p16(poly16x8_t a, poly16x8_t b) { 2184 return vextq_p16(a, b, 7); 2185} 2186 2187// CHECK-LABEL: test_vextq_s32 2188// CHECK: vext.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 2189int32x4_t test_vextq_s32(int32x4_t a, int32x4_t b) { 2190 return vextq_s32(a, b, 3); 2191} 2192 2193// CHECK-LABEL: test_vextq_u32 2194// CHECK: vext.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 2195uint32x4_t test_vextq_u32(uint32x4_t a, uint32x4_t b) { 2196 return vextq_u32(a, b, 3); 2197} 2198 2199// CHECK-LABEL: test_vextq_s64 2200// CHECK: {{vmov|vdup}} 2201int64x2_t test_vextq_s64(int64x2_t a, int64x2_t b) { 2202 return vextq_s64(a, b, 1); 2203} 2204 2205// CHECK-LABEL: test_vextq_u64 2206// CHECK: {{vmov|vdup}} 2207uint64x2_t test_vextq_u64(uint64x2_t a, uint64x2_t b) { 2208 return vextq_u64(a, b, 1); 2209} 2210 2211// CHECK-LABEL: test_vextq_f32 2212// CHECK: vext.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 2213float32x4_t test_vextq_f32(float32x4_t a, float32x4_t b) { 2214 return vextq_f32(a, b, 3); 2215} 2216 2217 2218// CHECK-LABEL: test_vfma_f32 2219// CHECK: vfma.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2220float32x2_t test_vfma_f32(float32x2_t a, float32x2_t b, float32x2_t c) { 2221 return vfma_f32(a, b, c); 2222} 2223 2224// CHECK-LABEL: test_vfmaq_f32 2225// CHECK: vfma.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2226float32x4_t test_vfmaq_f32(float32x4_t a, float32x4_t b, float32x4_t c) { 2227 return vfmaq_f32(a, b, c); 2228} 2229 2230 2231// CHECK-LABEL: test_vget_high_s8 2232int8x8_t test_vget_high_s8(int8x16_t a) { 2233 return vget_high_s8(a); 2234} 2235 2236// CHECK-LABEL: test_vget_high_s16 2237int16x4_t test_vget_high_s16(int16x8_t a) { 2238 return vget_high_s16(a); 2239} 2240 2241// CHECK-LABEL: test_vget_high_s32 2242int32x2_t test_vget_high_s32(int32x4_t a) { 2243 return vget_high_s32(a); 2244} 2245 2246// CHECK-LABEL: test_vget_high_s64 2247int64x1_t test_vget_high_s64(int64x2_t a) { 2248 return vget_high_s64(a); 2249} 2250 2251// CHECK-LABEL: test_vget_high_f16 2252float16x4_t test_vget_high_f16(float16x8_t a) { 2253 return vget_high_f16(a); 2254} 2255 2256// CHECK-LABEL: test_vget_high_f32 2257float32x2_t test_vget_high_f32(float32x4_t a) { 2258 return vget_high_f32(a); 2259} 2260 2261// CHECK-LABEL: test_vget_high_u8 2262uint8x8_t test_vget_high_u8(uint8x16_t a) { 2263 return vget_high_u8(a); 2264} 2265 2266// CHECK-LABEL: test_vget_high_u16 2267uint16x4_t test_vget_high_u16(uint16x8_t a) { 2268 return vget_high_u16(a); 2269} 2270 2271// CHECK-LABEL: test_vget_high_u32 2272uint32x2_t test_vget_high_u32(uint32x4_t a) { 2273 return vget_high_u32(a); 2274} 2275 2276// CHECK-LABEL: test_vget_high_u64 2277uint64x1_t test_vget_high_u64(uint64x2_t a) { 2278 return vget_high_u64(a); 2279} 2280 2281// CHECK-LABEL: test_vget_high_p8 2282poly8x8_t test_vget_high_p8(poly8x16_t a) { 2283 return vget_high_p8(a); 2284} 2285 2286// CHECK-LABEL: test_vget_high_p16 2287poly16x4_t test_vget_high_p16(poly16x8_t a) { 2288 return vget_high_p16(a); 2289} 2290 2291 2292// CHECK-LABEL: test_vget_lane_u8 2293// CHECK: vmov 2294uint8_t test_vget_lane_u8(uint8x8_t a) { 2295 return vget_lane_u8(a, 7); 2296} 2297 2298// CHECK-LABEL: test_vget_lane_u16 2299// CHECK: vmov 2300uint16_t test_vget_lane_u16(uint16x4_t a) { 2301 return vget_lane_u16(a, 3); 2302} 2303 2304// CHECK-LABEL: test_vget_lane_u32 2305// CHECK: vmov 2306uint32_t test_vget_lane_u32(uint32x2_t a) { 2307 return vget_lane_u32(a, 1); 2308} 2309 2310// CHECK-LABEL: test_vget_lane_s8 2311// CHECK: vmov 2312int8_t test_vget_lane_s8(int8x8_t a) { 2313 return vget_lane_s8(a, 7); 2314} 2315 2316// CHECK-LABEL: test_vget_lane_s16 2317// CHECK: vmov 2318int16_t test_vget_lane_s16(int16x4_t a) { 2319 return vget_lane_s16(a, 3); 2320} 2321 2322// CHECK-LABEL: test_vget_lane_s32 2323// CHECK: vmov 2324int32_t test_vget_lane_s32(int32x2_t a) { 2325 return vget_lane_s32(a, 1); 2326} 2327 2328// CHECK-LABEL: test_vget_lane_p8 2329// CHECK: vmov 2330poly8_t test_vget_lane_p8(poly8x8_t a) { 2331 return vget_lane_p8(a, 7); 2332} 2333 2334// CHECK-LABEL: test_vget_lane_p16 2335// CHECK: vmov 2336poly16_t test_vget_lane_p16(poly16x4_t a) { 2337 return vget_lane_p16(a, 3); 2338} 2339 2340// CHECK-LABEL: test_vget_lane_f32 2341// CHECK: vmov 2342float32_t test_vget_lane_f32(float32x2_t a) { 2343 return vget_lane_f32(a, 1); 2344} 2345 2346// CHECK-LABEL: test_vgetq_lane_u8 2347// CHECK: vmov 2348uint8_t test_vgetq_lane_u8(uint8x16_t a) { 2349 return vgetq_lane_u8(a, 15); 2350} 2351 2352// CHECK-LABEL: test_vgetq_lane_u16 2353// CHECK: vmov 2354uint16_t test_vgetq_lane_u16(uint16x8_t a) { 2355 return vgetq_lane_u16(a, 7); 2356} 2357 2358// CHECK-LABEL: test_vgetq_lane_u32 2359// CHECK: vmov 2360uint32_t test_vgetq_lane_u32(uint32x4_t a) { 2361 return vgetq_lane_u32(a, 3); 2362} 2363 2364// CHECK-LABEL: test_vgetq_lane_s8 2365// CHECK: vmov 2366int8_t test_vgetq_lane_s8(int8x16_t a) { 2367 return vgetq_lane_s8(a, 15); 2368} 2369 2370// CHECK-LABEL: test_vgetq_lane_s16 2371// CHECK: vmov 2372int16_t test_vgetq_lane_s16(int16x8_t a) { 2373 return vgetq_lane_s16(a, 7); 2374} 2375 2376// CHECK-LABEL: test_vgetq_lane_s32 2377// CHECK: vmov 2378int32_t test_vgetq_lane_s32(int32x4_t a) { 2379 return vgetq_lane_s32(a, 3); 2380} 2381 2382// CHECK-LABEL: test_vgetq_lane_p8 2383// CHECK: vmov 2384poly8_t test_vgetq_lane_p8(poly8x16_t a) { 2385 return vgetq_lane_p8(a, 15); 2386} 2387 2388// CHECK-LABEL: test_vgetq_lane_p16 2389// CHECK: vmov 2390poly16_t test_vgetq_lane_p16(poly16x8_t a) { 2391 return vgetq_lane_p16(a, 7); 2392} 2393 2394// CHECK-LABEL: test_vgetq_lane_f32 2395// CHECK: vmov 2396float32_t test_vgetq_lane_f32(float32x4_t a) { 2397 return vgetq_lane_f32(a, 3); 2398} 2399 2400// CHECK-LABEL: test_vget_lane_s64 2401// CHECK: vmov 2402int64_t test_vget_lane_s64(int64x1_t a) { 2403 return vget_lane_s64(a, 0); 2404} 2405 2406// CHECK-LABEL: test_vget_lane_u64 2407// CHECK: vmov 2408uint64_t test_vget_lane_u64(uint64x1_t a) { 2409 return vget_lane_u64(a, 0); 2410} 2411 2412// CHECK-LABEL: test_vgetq_lane_s64 2413// CHECK: vmov 2414int64_t test_vgetq_lane_s64(int64x2_t a) { 2415 return vgetq_lane_s64(a, 1); 2416} 2417 2418// CHECK-LABEL: test_vgetq_lane_u64 2419// CHECK: vmov 2420uint64_t test_vgetq_lane_u64(uint64x2_t a) { 2421 return vgetq_lane_u64(a, 1); 2422} 2423 2424 2425// CHECK-LABEL: test_vget_low_s8 2426int8x8_t test_vget_low_s8(int8x16_t a) { 2427 return vget_low_s8(a); 2428} 2429 2430// CHECK-LABEL: test_vget_low_s16 2431int16x4_t test_vget_low_s16(int16x8_t a) { 2432 return vget_low_s16(a); 2433} 2434 2435// CHECK-LABEL: test_vget_low_s32 2436int32x2_t test_vget_low_s32(int32x4_t a) { 2437 return vget_low_s32(a); 2438} 2439 2440// CHECK-LABEL: test_vget_low_s64 2441int64x1_t test_vget_low_s64(int64x2_t a) { 2442 return vget_low_s64(a); 2443} 2444 2445// CHECK-LABEL: test_vget_low_f16 2446float16x4_t test_vget_low_f16(float16x8_t a) { 2447 return vget_low_f16(a); 2448} 2449 2450// CHECK-LABEL: test_vget_low_f32 2451float32x2_t test_vget_low_f32(float32x4_t a) { 2452 return vget_low_f32(a); 2453} 2454 2455// CHECK-LABEL: test_vget_low_u8 2456uint8x8_t test_vget_low_u8(uint8x16_t a) { 2457 return vget_low_u8(a); 2458} 2459 2460// CHECK-LABEL: test_vget_low_u16 2461uint16x4_t test_vget_low_u16(uint16x8_t a) { 2462 return vget_low_u16(a); 2463} 2464 2465// CHECK-LABEL: test_vget_low_u32 2466uint32x2_t test_vget_low_u32(uint32x4_t a) { 2467 return vget_low_u32(a); 2468} 2469 2470// CHECK-LABEL: test_vget_low_u64 2471uint64x1_t test_vget_low_u64(uint64x2_t a) { 2472 return vget_low_u64(a); 2473} 2474 2475// CHECK-LABEL: test_vget_low_p8 2476poly8x8_t test_vget_low_p8(poly8x16_t a) { 2477 return vget_low_p8(a); 2478} 2479 2480// CHECK-LABEL: test_vget_low_p16 2481poly16x4_t test_vget_low_p16(poly16x8_t a) { 2482 return vget_low_p16(a); 2483} 2484 2485 2486// CHECK-LABEL: test_vhadd_s8 2487// CHECK: vhadd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2488int8x8_t test_vhadd_s8(int8x8_t a, int8x8_t b) { 2489 return vhadd_s8(a, b); 2490} 2491 2492// CHECK-LABEL: test_vhadd_s16 2493// CHECK: vhadd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2494int16x4_t test_vhadd_s16(int16x4_t a, int16x4_t b) { 2495 return vhadd_s16(a, b); 2496} 2497 2498// CHECK-LABEL: test_vhadd_s32 2499// CHECK: vhadd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2500int32x2_t test_vhadd_s32(int32x2_t a, int32x2_t b) { 2501 return vhadd_s32(a, b); 2502} 2503 2504// CHECK-LABEL: test_vhadd_u8 2505// CHECK: vhadd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2506uint8x8_t test_vhadd_u8(uint8x8_t a, uint8x8_t b) { 2507 return vhadd_u8(a, b); 2508} 2509 2510// CHECK-LABEL: test_vhadd_u16 2511// CHECK: vhadd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2512uint16x4_t test_vhadd_u16(uint16x4_t a, uint16x4_t b) { 2513 return vhadd_u16(a, b); 2514} 2515 2516// CHECK-LABEL: test_vhadd_u32 2517// CHECK: vhadd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2518uint32x2_t test_vhadd_u32(uint32x2_t a, uint32x2_t b) { 2519 return vhadd_u32(a, b); 2520} 2521 2522// CHECK-LABEL: test_vhaddq_s8 2523// CHECK: vhadd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2524int8x16_t test_vhaddq_s8(int8x16_t a, int8x16_t b) { 2525 return vhaddq_s8(a, b); 2526} 2527 2528// CHECK-LABEL: test_vhaddq_s16 2529// CHECK: vhadd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2530int16x8_t test_vhaddq_s16(int16x8_t a, int16x8_t b) { 2531 return vhaddq_s16(a, b); 2532} 2533 2534// CHECK-LABEL: test_vhaddq_s32 2535// CHECK: vhadd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2536int32x4_t test_vhaddq_s32(int32x4_t a, int32x4_t b) { 2537 return vhaddq_s32(a, b); 2538} 2539 2540// CHECK-LABEL: test_vhaddq_u8 2541// CHECK: vhadd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2542uint8x16_t test_vhaddq_u8(uint8x16_t a, uint8x16_t b) { 2543 return vhaddq_u8(a, b); 2544} 2545 2546// CHECK-LABEL: test_vhaddq_u16 2547// CHECK: vhadd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2548uint16x8_t test_vhaddq_u16(uint16x8_t a, uint16x8_t b) { 2549 return vhaddq_u16(a, b); 2550} 2551 2552// CHECK-LABEL: test_vhaddq_u32 2553// CHECK: vhadd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2554uint32x4_t test_vhaddq_u32(uint32x4_t a, uint32x4_t b) { 2555 return vhaddq_u32(a, b); 2556} 2557 2558 2559// CHECK-LABEL: test_vhsub_s8 2560// CHECK: vhsub.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2561int8x8_t test_vhsub_s8(int8x8_t a, int8x8_t b) { 2562 return vhsub_s8(a, b); 2563} 2564 2565// CHECK-LABEL: test_vhsub_s16 2566// CHECK: vhsub.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2567int16x4_t test_vhsub_s16(int16x4_t a, int16x4_t b) { 2568 return vhsub_s16(a, b); 2569} 2570 2571// CHECK-LABEL: test_vhsub_s32 2572// CHECK: vhsub.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2573int32x2_t test_vhsub_s32(int32x2_t a, int32x2_t b) { 2574 return vhsub_s32(a, b); 2575} 2576 2577// CHECK-LABEL: test_vhsub_u8 2578// CHECK: vhsub.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2579uint8x8_t test_vhsub_u8(uint8x8_t a, uint8x8_t b) { 2580 return vhsub_u8(a, b); 2581} 2582 2583// CHECK-LABEL: test_vhsub_u16 2584// CHECK: vhsub.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2585uint16x4_t test_vhsub_u16(uint16x4_t a, uint16x4_t b) { 2586 return vhsub_u16(a, b); 2587} 2588 2589// CHECK-LABEL: test_vhsub_u32 2590// CHECK: vhsub.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2591uint32x2_t test_vhsub_u32(uint32x2_t a, uint32x2_t b) { 2592 return vhsub_u32(a, b); 2593} 2594 2595// CHECK-LABEL: test_vhsubq_s8 2596// CHECK: vhsub.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2597int8x16_t test_vhsubq_s8(int8x16_t a, int8x16_t b) { 2598 return vhsubq_s8(a, b); 2599} 2600 2601// CHECK-LABEL: test_vhsubq_s16 2602// CHECK: vhsub.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2603int16x8_t test_vhsubq_s16(int16x8_t a, int16x8_t b) { 2604 return vhsubq_s16(a, b); 2605} 2606 2607// CHECK-LABEL: test_vhsubq_s32 2608// CHECK: vhsub.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2609int32x4_t test_vhsubq_s32(int32x4_t a, int32x4_t b) { 2610 return vhsubq_s32(a, b); 2611} 2612 2613// CHECK-LABEL: test_vhsubq_u8 2614// CHECK: vhsub.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2615uint8x16_t test_vhsubq_u8(uint8x16_t a, uint8x16_t b) { 2616 return vhsubq_u8(a, b); 2617} 2618 2619// CHECK-LABEL: test_vhsubq_u16 2620// CHECK: vhsub.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2621uint16x8_t test_vhsubq_u16(uint16x8_t a, uint16x8_t b) { 2622 return vhsubq_u16(a, b); 2623} 2624 2625// CHECK-LABEL: test_vhsubq_u32 2626// CHECK: vhsub.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2627uint32x4_t test_vhsubq_u32(uint32x4_t a, uint32x4_t b) { 2628 return vhsubq_u32(a, b); 2629} 2630 2631 2632// CHECK-LABEL: test_vld1q_u8 2633// CHECK: vld1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 2634uint8x16_t test_vld1q_u8(uint8_t const * a) { 2635 return vld1q_u8(a); 2636} 2637 2638// CHECK-LABEL: test_vld1q_u16 2639// CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 2640uint16x8_t test_vld1q_u16(uint16_t const * a) { 2641 return vld1q_u16(a); 2642} 2643 2644// CHECK-LABEL: test_vld1q_u32 2645// CHECK: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 2646uint32x4_t test_vld1q_u32(uint32_t const * a) { 2647 return vld1q_u32(a); 2648} 2649 2650// CHECK-LABEL: test_vld1q_u64 2651// CHECK: vld1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}] 2652uint64x2_t test_vld1q_u64(uint64_t const * a) { 2653 return vld1q_u64(a); 2654} 2655 2656// CHECK-LABEL: test_vld1q_s8 2657// CHECK: vld1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 2658int8x16_t test_vld1q_s8(int8_t const * a) { 2659 return vld1q_s8(a); 2660} 2661 2662// CHECK-LABEL: test_vld1q_s16 2663// CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 2664int16x8_t test_vld1q_s16(int16_t const * a) { 2665 return vld1q_s16(a); 2666} 2667 2668// CHECK-LABEL: test_vld1q_s32 2669// CHECK: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 2670int32x4_t test_vld1q_s32(int32_t const * a) { 2671 return vld1q_s32(a); 2672} 2673 2674// CHECK-LABEL: test_vld1q_s64 2675// CHECK: vld1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}] 2676int64x2_t test_vld1q_s64(int64_t const * a) { 2677 return vld1q_s64(a); 2678} 2679 2680// CHECK-LABEL: test_vld1q_f16 2681// CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 2682float16x8_t test_vld1q_f16(float16_t const * a) { 2683 return vld1q_f16(a); 2684} 2685 2686// CHECK-LABEL: test_vld1q_f32 2687// CHECK: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 2688float32x4_t test_vld1q_f32(float32_t const * a) { 2689 return vld1q_f32(a); 2690} 2691 2692// CHECK-LABEL: test_vld1q_p8 2693// CHECK: vld1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 2694poly8x16_t test_vld1q_p8(poly8_t const * a) { 2695 return vld1q_p8(a); 2696} 2697 2698// CHECK-LABEL: test_vld1q_p16 2699// CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 2700poly16x8_t test_vld1q_p16(poly16_t const * a) { 2701 return vld1q_p16(a); 2702} 2703 2704// CHECK-LABEL: test_vld1_u8 2705// CHECK: vld1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}] 2706uint8x8_t test_vld1_u8(uint8_t const * a) { 2707 return vld1_u8(a); 2708} 2709 2710// CHECK-LABEL: test_vld1_u16 2711// CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}] 2712uint16x4_t test_vld1_u16(uint16_t const * a) { 2713 return vld1_u16(a); 2714} 2715 2716// CHECK-LABEL: test_vld1_u32 2717// CHECK: vld1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}] 2718uint32x2_t test_vld1_u32(uint32_t const * a) { 2719 return vld1_u32(a); 2720} 2721 2722// CHECK-LABEL: test_vld1_u64 2723// CHECK: vld1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}] 2724uint64x1_t test_vld1_u64(uint64_t const * a) { 2725 return vld1_u64(a); 2726} 2727 2728// CHECK-LABEL: test_vld1_s8 2729// CHECK: vld1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}] 2730int8x8_t test_vld1_s8(int8_t const * a) { 2731 return vld1_s8(a); 2732} 2733 2734// CHECK-LABEL: test_vld1_s16 2735// CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}] 2736int16x4_t test_vld1_s16(int16_t const * a) { 2737 return vld1_s16(a); 2738} 2739 2740// CHECK-LABEL: test_vld1_s32 2741// CHECK: vld1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}] 2742int32x2_t test_vld1_s32(int32_t const * a) { 2743 return vld1_s32(a); 2744} 2745 2746// CHECK-LABEL: test_vld1_s64 2747// CHECK: vld1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}] 2748int64x1_t test_vld1_s64(int64_t const * a) { 2749 return vld1_s64(a); 2750} 2751 2752// CHECK-LABEL: test_vld1_f16 2753// CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}] 2754float16x4_t test_vld1_f16(float16_t const * a) { 2755 return vld1_f16(a); 2756} 2757 2758// CHECK-LABEL: test_vld1_f32 2759// CHECK: vld1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}] 2760float32x2_t test_vld1_f32(float32_t const * a) { 2761 return vld1_f32(a); 2762} 2763 2764// CHECK-LABEL: test_vld1_p8 2765// CHECK: vld1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}] 2766poly8x8_t test_vld1_p8(poly8_t const * a) { 2767 return vld1_p8(a); 2768} 2769 2770// CHECK-LABEL: test_vld1_p16 2771// CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}] 2772poly16x4_t test_vld1_p16(poly16_t const * a) { 2773 return vld1_p16(a); 2774} 2775 2776 2777// CHECK-LABEL: test_vld1q_dup_u8 2778// CHECK: vld1.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 2779uint8x16_t test_vld1q_dup_u8(uint8_t const * a) { 2780 return vld1q_dup_u8(a); 2781} 2782 2783// CHECK-LABEL: test_vld1q_dup_u16 2784// CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16] 2785uint16x8_t test_vld1q_dup_u16(uint16_t const * a) { 2786 return vld1q_dup_u16(a); 2787} 2788 2789// CHECK-LABEL: test_vld1q_dup_u32 2790// CHECK: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:32] 2791uint32x4_t test_vld1q_dup_u32(uint32_t const * a) { 2792 return vld1q_dup_u32(a); 2793} 2794 2795// CHECK-LABEL: test_vld1q_dup_u64 2796// CHECK: {{ldr|vldr|vmov}} 2797uint64x2_t test_vld1q_dup_u64(uint64_t const * a) { 2798 return vld1q_dup_u64(a); 2799} 2800 2801// CHECK-LABEL: test_vld1q_dup_s8 2802// CHECK: vld1.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 2803int8x16_t test_vld1q_dup_s8(int8_t const * a) { 2804 return vld1q_dup_s8(a); 2805} 2806 2807// CHECK-LABEL: test_vld1q_dup_s16 2808// CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16] 2809int16x8_t test_vld1q_dup_s16(int16_t const * a) { 2810 return vld1q_dup_s16(a); 2811} 2812 2813// CHECK-LABEL: test_vld1q_dup_s32 2814// CHECK: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:32] 2815int32x4_t test_vld1q_dup_s32(int32_t const * a) { 2816 return vld1q_dup_s32(a); 2817} 2818 2819// CHECK-LABEL: test_vld1q_dup_s64 2820// CHECK: {{ldr|vldr|vmov}} 2821int64x2_t test_vld1q_dup_s64(int64_t const * a) { 2822 return vld1q_dup_s64(a); 2823} 2824 2825// CHECK-LABEL: test_vld1q_dup_f16 2826// CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16] 2827float16x8_t test_vld1q_dup_f16(float16_t const * a) { 2828 return vld1q_dup_f16(a); 2829} 2830 2831// CHECK-LABEL: test_vld1q_dup_f32 2832// CHECK: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:32] 2833float32x4_t test_vld1q_dup_f32(float32_t const * a) { 2834 return vld1q_dup_f32(a); 2835} 2836 2837// CHECK-LABEL: test_vld1q_dup_p8 2838// CHECK: vld1.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 2839poly8x16_t test_vld1q_dup_p8(poly8_t const * a) { 2840 return vld1q_dup_p8(a); 2841} 2842 2843// CHECK-LABEL: test_vld1q_dup_p16 2844// CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16] 2845poly16x8_t test_vld1q_dup_p16(poly16_t const * a) { 2846 return vld1q_dup_p16(a); 2847} 2848 2849// CHECK-LABEL: test_vld1_dup_u8 2850// CHECK: vld1.8 {d{{[0-9]+}}[]}, [r{{[0-9]+}}] 2851uint8x8_t test_vld1_dup_u8(uint8_t const * a) { 2852 return vld1_dup_u8(a); 2853} 2854 2855// CHECK-LABEL: test_vld1_dup_u16 2856// CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16] 2857uint16x4_t test_vld1_dup_u16(uint16_t const * a) { 2858 return vld1_dup_u16(a); 2859} 2860 2861// CHECK-LABEL: test_vld1_dup_u32 2862// CHECK: vld1.32 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:32] 2863uint32x2_t test_vld1_dup_u32(uint32_t const * a) { 2864 return vld1_dup_u32(a); 2865} 2866 2867// CHECK-LABEL: test_vld1_dup_u64 2868// CHECK: {{ldr|vldr|vmov}} 2869uint64x1_t test_vld1_dup_u64(uint64_t const * a) { 2870 return vld1_dup_u64(a); 2871} 2872 2873// CHECK-LABEL: test_vld1_dup_s8 2874// CHECK: vld1.8 {d{{[0-9]+}}[]}, [r{{[0-9]+}}] 2875int8x8_t test_vld1_dup_s8(int8_t const * a) { 2876 return vld1_dup_s8(a); 2877} 2878 2879// CHECK-LABEL: test_vld1_dup_s16 2880// CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16] 2881int16x4_t test_vld1_dup_s16(int16_t const * a) { 2882 return vld1_dup_s16(a); 2883} 2884 2885// CHECK-LABEL: test_vld1_dup_s32 2886// CHECK: vld1.32 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:32] 2887int32x2_t test_vld1_dup_s32(int32_t const * a) { 2888 return vld1_dup_s32(a); 2889} 2890 2891// CHECK-LABEL: test_vld1_dup_s64 2892// CHECK: {{ldr|vldr|vmov}} 2893int64x1_t test_vld1_dup_s64(int64_t const * a) { 2894 return vld1_dup_s64(a); 2895} 2896 2897// CHECK-LABEL: test_vld1_dup_f16 2898// CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16] 2899float16x4_t test_vld1_dup_f16(float16_t const * a) { 2900 return vld1_dup_f16(a); 2901} 2902 2903// CHECK-LABEL: test_vld1_dup_f32 2904// CHECK: vld1.32 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:32] 2905float32x2_t test_vld1_dup_f32(float32_t const * a) { 2906 return vld1_dup_f32(a); 2907} 2908 2909// CHECK-LABEL: test_vld1_dup_p8 2910// CHECK: vld1.8 {d{{[0-9]+}}[]}, [r{{[0-9]+}}] 2911poly8x8_t test_vld1_dup_p8(poly8_t const * a) { 2912 return vld1_dup_p8(a); 2913} 2914 2915// CHECK-LABEL: test_vld1_dup_p16 2916// CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16] 2917poly16x4_t test_vld1_dup_p16(poly16_t const * a) { 2918 return vld1_dup_p16(a); 2919} 2920 2921 2922// CHECK-LABEL: test_vld1q_lane_u8 2923// CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 2924uint8x16_t test_vld1q_lane_u8(uint8_t const * a, uint8x16_t b) { 2925 return vld1q_lane_u8(a, b, 15); 2926} 2927 2928// CHECK-LABEL: test_vld1q_lane_u16 2929// CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 2930uint16x8_t test_vld1q_lane_u16(uint16_t const * a, uint16x8_t b) { 2931 return vld1q_lane_u16(a, b, 7); 2932} 2933 2934// CHECK-LABEL: test_vld1q_lane_u32 2935// CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32] 2936uint32x4_t test_vld1q_lane_u32(uint32_t const * a, uint32x4_t b) { 2937 return vld1q_lane_u32(a, b, 3); 2938} 2939 2940// CHECK-LABEL: test_vld1q_lane_u64 2941// CHECK: {{ldr|vldr|vmov}} 2942uint64x2_t test_vld1q_lane_u64(uint64_t const * a, uint64x2_t b) { 2943 return vld1q_lane_u64(a, b, 1); 2944} 2945 2946// CHECK-LABEL: test_vld1q_lane_s8 2947// CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 2948int8x16_t test_vld1q_lane_s8(int8_t const * a, int8x16_t b) { 2949 return vld1q_lane_s8(a, b, 15); 2950} 2951 2952// CHECK-LABEL: test_vld1q_lane_s16 2953// CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 2954int16x8_t test_vld1q_lane_s16(int16_t const * a, int16x8_t b) { 2955 return vld1q_lane_s16(a, b, 7); 2956} 2957 2958// CHECK-LABEL: test_vld1q_lane_s32 2959// CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32] 2960int32x4_t test_vld1q_lane_s32(int32_t const * a, int32x4_t b) { 2961 return vld1q_lane_s32(a, b, 3); 2962} 2963 2964// CHECK-LABEL: test_vld1q_lane_s64 2965// CHECK: {{ldr|vldr|vmov}} 2966int64x2_t test_vld1q_lane_s64(int64_t const * a, int64x2_t b) { 2967 return vld1q_lane_s64(a, b, 1); 2968} 2969 2970// CHECK-LABEL: test_vld1q_lane_f16 2971// CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 2972float16x8_t test_vld1q_lane_f16(float16_t const * a, float16x8_t b) { 2973 return vld1q_lane_f16(a, b, 7); 2974} 2975 2976// CHECK-LABEL: test_vld1q_lane_f32 2977// CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32] 2978float32x4_t test_vld1q_lane_f32(float32_t const * a, float32x4_t b) { 2979 return vld1q_lane_f32(a, b, 3); 2980} 2981 2982// CHECK-LABEL: test_vld1q_lane_p8 2983// CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 2984poly8x16_t test_vld1q_lane_p8(poly8_t const * a, poly8x16_t b) { 2985 return vld1q_lane_p8(a, b, 15); 2986} 2987 2988// CHECK-LABEL: test_vld1q_lane_p16 2989// CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 2990poly16x8_t test_vld1q_lane_p16(poly16_t const * a, poly16x8_t b) { 2991 return vld1q_lane_p16(a, b, 7); 2992} 2993 2994// CHECK-LABEL: test_vld1_lane_u8 2995// CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 2996uint8x8_t test_vld1_lane_u8(uint8_t const * a, uint8x8_t b) { 2997 return vld1_lane_u8(a, b, 7); 2998} 2999 3000// CHECK-LABEL: test_vld1_lane_u16 3001// CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 3002uint16x4_t test_vld1_lane_u16(uint16_t const * a, uint16x4_t b) { 3003 return vld1_lane_u16(a, b, 3); 3004} 3005 3006// CHECK-LABEL: test_vld1_lane_u32 3007// CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32] 3008uint32x2_t test_vld1_lane_u32(uint32_t const * a, uint32x2_t b) { 3009 return vld1_lane_u32(a, b, 1); 3010} 3011 3012// CHECK-LABEL: test_vld1_lane_u64 3013// CHECK: {{ldr|vldr|vmov}} 3014uint64x1_t test_vld1_lane_u64(uint64_t const * a, uint64x1_t b) { 3015 return vld1_lane_u64(a, b, 0); 3016} 3017 3018// CHECK-LABEL: test_vld1_lane_s8 3019// CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3020int8x8_t test_vld1_lane_s8(int8_t const * a, int8x8_t b) { 3021 return vld1_lane_s8(a, b, 7); 3022} 3023 3024// CHECK-LABEL: test_vld1_lane_s16 3025// CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 3026int16x4_t test_vld1_lane_s16(int16_t const * a, int16x4_t b) { 3027 return vld1_lane_s16(a, b, 3); 3028} 3029 3030// CHECK-LABEL: test_vld1_lane_s32 3031// CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32] 3032int32x2_t test_vld1_lane_s32(int32_t const * a, int32x2_t b) { 3033 return vld1_lane_s32(a, b, 1); 3034} 3035 3036// CHECK-LABEL: test_vld1_lane_s64 3037// CHECK: {{ldr|vldr|vmov}} 3038int64x1_t test_vld1_lane_s64(int64_t const * a, int64x1_t b) { 3039 return vld1_lane_s64(a, b, 0); 3040} 3041 3042// CHECK-LABEL: test_vld1_lane_f16 3043// CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 3044float16x4_t test_vld1_lane_f16(float16_t const * a, float16x4_t b) { 3045 return vld1_lane_f16(a, b, 3); 3046} 3047 3048// CHECK-LABEL: test_vld1_lane_f32 3049// CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32] 3050float32x2_t test_vld1_lane_f32(float32_t const * a, float32x2_t b) { 3051 return vld1_lane_f32(a, b, 1); 3052} 3053 3054// CHECK-LABEL: test_vld1_lane_p8 3055// CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3056poly8x8_t test_vld1_lane_p8(poly8_t const * a, poly8x8_t b) { 3057 return vld1_lane_p8(a, b, 7); 3058} 3059 3060// CHECK-LABEL: test_vld1_lane_p16 3061// CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 3062poly16x4_t test_vld1_lane_p16(poly16_t const * a, poly16x4_t b) { 3063 return vld1_lane_p16(a, b, 3); 3064} 3065 3066 3067// CHECK-LABEL: test_vld2q_u8 3068// CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3069uint8x16x2_t test_vld2q_u8(uint8_t const * a) { 3070 return vld2q_u8(a); 3071} 3072 3073// CHECK-LABEL: test_vld2q_u16 3074// CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3075uint16x8x2_t test_vld2q_u16(uint16_t const * a) { 3076 return vld2q_u16(a); 3077} 3078 3079// CHECK-LABEL: test_vld2q_u32 3080// CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3081uint32x4x2_t test_vld2q_u32(uint32_t const * a) { 3082 return vld2q_u32(a); 3083} 3084 3085// CHECK-LABEL: test_vld2q_s8 3086// CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3087int8x16x2_t test_vld2q_s8(int8_t const * a) { 3088 return vld2q_s8(a); 3089} 3090 3091// CHECK-LABEL: test_vld2q_s16 3092// CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3093int16x8x2_t test_vld2q_s16(int16_t const * a) { 3094 return vld2q_s16(a); 3095} 3096 3097// CHECK-LABEL: test_vld2q_s32 3098// CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3099int32x4x2_t test_vld2q_s32(int32_t const * a) { 3100 return vld2q_s32(a); 3101} 3102 3103// CHECK-LABEL: test_vld2q_f16 3104// CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3105float16x8x2_t test_vld2q_f16(float16_t const * a) { 3106 return vld2q_f16(a); 3107} 3108 3109// CHECK-LABEL: test_vld2q_f32 3110// CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3111float32x4x2_t test_vld2q_f32(float32_t const * a) { 3112 return vld2q_f32(a); 3113} 3114 3115// CHECK-LABEL: test_vld2q_p8 3116// CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3117poly8x16x2_t test_vld2q_p8(poly8_t const * a) { 3118 return vld2q_p8(a); 3119} 3120 3121// CHECK-LABEL: test_vld2q_p16 3122// CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3123poly16x8x2_t test_vld2q_p16(poly16_t const * a) { 3124 return vld2q_p16(a); 3125} 3126 3127// CHECK-LABEL: test_vld2_u8 3128// CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3129uint8x8x2_t test_vld2_u8(uint8_t const * a) { 3130 return vld2_u8(a); 3131} 3132 3133// CHECK-LABEL: test_vld2_u16 3134// CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3135uint16x4x2_t test_vld2_u16(uint16_t const * a) { 3136 return vld2_u16(a); 3137} 3138 3139// CHECK-LABEL: test_vld2_u32 3140// CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3141uint32x2x2_t test_vld2_u32(uint32_t const * a) { 3142 return vld2_u32(a); 3143} 3144 3145// CHECK-LABEL: test_vld2_u64 3146// CHECK: vld1.64 3147uint64x1x2_t test_vld2_u64(uint64_t const * a) { 3148 return vld2_u64(a); 3149} 3150 3151// CHECK-LABEL: test_vld2_s8 3152// CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3153int8x8x2_t test_vld2_s8(int8_t const * a) { 3154 return vld2_s8(a); 3155} 3156 3157// CHECK-LABEL: test_vld2_s16 3158// CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3159int16x4x2_t test_vld2_s16(int16_t const * a) { 3160 return vld2_s16(a); 3161} 3162 3163// CHECK-LABEL: test_vld2_s32 3164// CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3165int32x2x2_t test_vld2_s32(int32_t const * a) { 3166 return vld2_s32(a); 3167} 3168 3169// CHECK-LABEL: test_vld2_s64 3170// CHECK: vld1.64 3171int64x1x2_t test_vld2_s64(int64_t const * a) { 3172 return vld2_s64(a); 3173} 3174 3175// CHECK-LABEL: test_vld2_f16 3176// CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3177float16x4x2_t test_vld2_f16(float16_t const * a) { 3178 return vld2_f16(a); 3179} 3180 3181// CHECK-LABEL: test_vld2_f32 3182// CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3183float32x2x2_t test_vld2_f32(float32_t const * a) { 3184 return vld2_f32(a); 3185} 3186 3187// CHECK-LABEL: test_vld2_p8 3188// CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3189poly8x8x2_t test_vld2_p8(poly8_t const * a) { 3190 return vld2_p8(a); 3191} 3192 3193// CHECK-LABEL: test_vld2_p16 3194// CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3195poly16x4x2_t test_vld2_p16(poly16_t const * a) { 3196 return vld2_p16(a); 3197} 3198 3199 3200// CHECK-LABEL: test_vld2_dup_u8 3201// CHECK: vld2.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3202uint8x8x2_t test_vld2_dup_u8(uint8_t const * a) { 3203 return vld2_dup_u8(a); 3204} 3205 3206// CHECK-LABEL: test_vld2_dup_u16 3207// CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3208uint16x4x2_t test_vld2_dup_u16(uint16_t const * a) { 3209 return vld2_dup_u16(a); 3210} 3211 3212// CHECK-LABEL: test_vld2_dup_u32 3213// CHECK: vld2.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3214uint32x2x2_t test_vld2_dup_u32(uint32_t const * a) { 3215 return vld2_dup_u32(a); 3216} 3217 3218// CHECK-LABEL: test_vld2_dup_u64 3219// CHECK: vld1.64 3220uint64x1x2_t test_vld2_dup_u64(uint64_t const * a) { 3221 return vld2_dup_u64(a); 3222} 3223 3224// CHECK-LABEL: test_vld2_dup_s8 3225// CHECK: vld2.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3226int8x8x2_t test_vld2_dup_s8(int8_t const * a) { 3227 return vld2_dup_s8(a); 3228} 3229 3230// CHECK-LABEL: test_vld2_dup_s16 3231// CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3232int16x4x2_t test_vld2_dup_s16(int16_t const * a) { 3233 return vld2_dup_s16(a); 3234} 3235 3236// CHECK-LABEL: test_vld2_dup_s32 3237// CHECK: vld2.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3238int32x2x2_t test_vld2_dup_s32(int32_t const * a) { 3239 return vld2_dup_s32(a); 3240} 3241 3242// CHECK-LABEL: test_vld2_dup_s64 3243// CHECK: vld1.64 3244int64x1x2_t test_vld2_dup_s64(int64_t const * a) { 3245 return vld2_dup_s64(a); 3246} 3247 3248// CHECK-LABEL: test_vld2_dup_f16 3249// CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3250float16x4x2_t test_vld2_dup_f16(float16_t const * a) { 3251 return vld2_dup_f16(a); 3252} 3253 3254// CHECK-LABEL: test_vld2_dup_f32 3255// CHECK: vld2.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3256float32x2x2_t test_vld2_dup_f32(float32_t const * a) { 3257 return vld2_dup_f32(a); 3258} 3259 3260// CHECK-LABEL: test_vld2_dup_p8 3261// CHECK: vld2.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3262poly8x8x2_t test_vld2_dup_p8(poly8_t const * a) { 3263 return vld2_dup_p8(a); 3264} 3265 3266// CHECK-LABEL: test_vld2_dup_p16 3267// CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3268poly16x4x2_t test_vld2_dup_p16(poly16_t const * a) { 3269 return vld2_dup_p16(a); 3270} 3271 3272 3273// CHECK-LABEL: test_vld2q_lane_u16 3274// CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3275uint16x8x2_t test_vld2q_lane_u16(uint16_t const * a, uint16x8x2_t b) { 3276 return vld2q_lane_u16(a, b, 7); 3277} 3278 3279// CHECK-LABEL: test_vld2q_lane_u32 3280// CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3281uint32x4x2_t test_vld2q_lane_u32(uint32_t const * a, uint32x4x2_t b) { 3282 return vld2q_lane_u32(a, b, 3); 3283} 3284 3285// CHECK-LABEL: test_vld2q_lane_s16 3286// CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3287int16x8x2_t test_vld2q_lane_s16(int16_t const * a, int16x8x2_t b) { 3288 return vld2q_lane_s16(a, b, 7); 3289} 3290 3291// CHECK-LABEL: test_vld2q_lane_s32 3292// CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3293int32x4x2_t test_vld2q_lane_s32(int32_t const * a, int32x4x2_t b) { 3294 return vld2q_lane_s32(a, b, 3); 3295} 3296 3297// CHECK-LABEL: test_vld2q_lane_f16 3298// CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3299float16x8x2_t test_vld2q_lane_f16(float16_t const * a, float16x8x2_t b) { 3300 return vld2q_lane_f16(a, b, 7); 3301} 3302 3303// CHECK-LABEL: test_vld2q_lane_f32 3304// CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3305float32x4x2_t test_vld2q_lane_f32(float32_t const * a, float32x4x2_t b) { 3306 return vld2q_lane_f32(a, b, 3); 3307} 3308 3309// CHECK-LABEL: test_vld2q_lane_p16 3310// CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3311poly16x8x2_t test_vld2q_lane_p16(poly16_t const * a, poly16x8x2_t b) { 3312 return vld2q_lane_p16(a, b, 7); 3313} 3314 3315// CHECK-LABEL: test_vld2_lane_u8 3316// CHECK: vld2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3317uint8x8x2_t test_vld2_lane_u8(uint8_t const * a, uint8x8x2_t b) { 3318 return vld2_lane_u8(a, b, 7); 3319} 3320 3321// CHECK-LABEL: test_vld2_lane_u16 3322// CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3323uint16x4x2_t test_vld2_lane_u16(uint16_t const * a, uint16x4x2_t b) { 3324 return vld2_lane_u16(a, b, 3); 3325} 3326 3327// CHECK-LABEL: test_vld2_lane_u32 3328// CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3329uint32x2x2_t test_vld2_lane_u32(uint32_t const * a, uint32x2x2_t b) { 3330 return vld2_lane_u32(a, b, 1); 3331} 3332 3333// CHECK-LABEL: test_vld2_lane_s8 3334// CHECK: vld2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3335int8x8x2_t test_vld2_lane_s8(int8_t const * a, int8x8x2_t b) { 3336 return vld2_lane_s8(a, b, 7); 3337} 3338 3339// CHECK-LABEL: test_vld2_lane_s16 3340// CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3341int16x4x2_t test_vld2_lane_s16(int16_t const * a, int16x4x2_t b) { 3342 return vld2_lane_s16(a, b, 3); 3343} 3344 3345// CHECK-LABEL: test_vld2_lane_s32 3346// CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3347int32x2x2_t test_vld2_lane_s32(int32_t const * a, int32x2x2_t b) { 3348 return vld2_lane_s32(a, b, 1); 3349} 3350 3351// CHECK-LABEL: test_vld2_lane_f16 3352// CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3353float16x4x2_t test_vld2_lane_f16(float16_t const * a, float16x4x2_t b) { 3354 return vld2_lane_f16(a, b, 3); 3355} 3356 3357// CHECK-LABEL: test_vld2_lane_f32 3358// CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3359float32x2x2_t test_vld2_lane_f32(float32_t const * a, float32x2x2_t b) { 3360 return vld2_lane_f32(a, b, 1); 3361} 3362 3363// CHECK-LABEL: test_vld2_lane_p8 3364// CHECK: vld2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3365poly8x8x2_t test_vld2_lane_p8(poly8_t const * a, poly8x8x2_t b) { 3366 return vld2_lane_p8(a, b, 7); 3367} 3368 3369// CHECK-LABEL: test_vld2_lane_p16 3370// CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3371poly16x4x2_t test_vld2_lane_p16(poly16_t const * a, poly16x4x2_t b) { 3372 return vld2_lane_p16(a, b, 3); 3373} 3374 3375 3376// CHECK-LABEL: test_vld3q_u8 3377// CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3378uint8x16x3_t test_vld3q_u8(uint8_t const * a) { 3379 return vld3q_u8(a); 3380} 3381 3382// CHECK-LABEL: test_vld3q_u16 3383// CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3384uint16x8x3_t test_vld3q_u16(uint16_t const * a) { 3385 return vld3q_u16(a); 3386} 3387 3388// CHECK-LABEL: test_vld3q_u32 3389// CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3390uint32x4x3_t test_vld3q_u32(uint32_t const * a) { 3391 return vld3q_u32(a); 3392} 3393 3394// CHECK-LABEL: test_vld3q_s8 3395// CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3396int8x16x3_t test_vld3q_s8(int8_t const * a) { 3397 return vld3q_s8(a); 3398} 3399 3400// CHECK-LABEL: test_vld3q_s16 3401// CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3402int16x8x3_t test_vld3q_s16(int16_t const * a) { 3403 return vld3q_s16(a); 3404} 3405 3406// CHECK-LABEL: test_vld3q_s32 3407// CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3408int32x4x3_t test_vld3q_s32(int32_t const * a) { 3409 return vld3q_s32(a); 3410} 3411 3412// CHECK-LABEL: test_vld3q_f16 3413// CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3414float16x8x3_t test_vld3q_f16(float16_t const * a) { 3415 return vld3q_f16(a); 3416} 3417 3418// CHECK-LABEL: test_vld3q_f32 3419// CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3420float32x4x3_t test_vld3q_f32(float32_t const * a) { 3421 return vld3q_f32(a); 3422} 3423 3424// CHECK-LABEL: test_vld3q_p8 3425// CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3426poly8x16x3_t test_vld3q_p8(poly8_t const * a) { 3427 return vld3q_p8(a); 3428} 3429 3430// CHECK-LABEL: test_vld3q_p16 3431// CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3432poly16x8x3_t test_vld3q_p16(poly16_t const * a) { 3433 return vld3q_p16(a); 3434} 3435 3436// CHECK-LABEL: test_vld3_u8 3437// CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3438uint8x8x3_t test_vld3_u8(uint8_t const * a) { 3439 return vld3_u8(a); 3440} 3441 3442// CHECK-LABEL: test_vld3_u16 3443// CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3444uint16x4x3_t test_vld3_u16(uint16_t const * a) { 3445 return vld3_u16(a); 3446} 3447 3448// CHECK-LABEL: test_vld3_u32 3449// CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3450uint32x2x3_t test_vld3_u32(uint32_t const * a) { 3451 return vld3_u32(a); 3452} 3453 3454// CHECK-LABEL: test_vld3_u64 3455// CHECK: vld1.64 3456uint64x1x3_t test_vld3_u64(uint64_t const * a) { 3457 return vld3_u64(a); 3458} 3459 3460// CHECK-LABEL: test_vld3_s8 3461// CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3462int8x8x3_t test_vld3_s8(int8_t const * a) { 3463 return vld3_s8(a); 3464} 3465 3466// CHECK-LABEL: test_vld3_s16 3467// CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3468int16x4x3_t test_vld3_s16(int16_t const * a) { 3469 return vld3_s16(a); 3470} 3471 3472// CHECK-LABEL: test_vld3_s32 3473// CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3474int32x2x3_t test_vld3_s32(int32_t const * a) { 3475 return vld3_s32(a); 3476} 3477 3478// CHECK-LABEL: test_vld3_s64 3479// CHECK: vld1.64 3480int64x1x3_t test_vld3_s64(int64_t const * a) { 3481 return vld3_s64(a); 3482} 3483 3484// CHECK-LABEL: test_vld3_f16 3485// CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3486float16x4x3_t test_vld3_f16(float16_t const * a) { 3487 return vld3_f16(a); 3488} 3489 3490// CHECK-LABEL: test_vld3_f32 3491// CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3492float32x2x3_t test_vld3_f32(float32_t const * a) { 3493 return vld3_f32(a); 3494} 3495 3496// CHECK-LABEL: test_vld3_p8 3497// CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3498poly8x8x3_t test_vld3_p8(poly8_t const * a) { 3499 return vld3_p8(a); 3500} 3501 3502// CHECK-LABEL: test_vld3_p16 3503// CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3504poly16x4x3_t test_vld3_p16(poly16_t const * a) { 3505 return vld3_p16(a); 3506} 3507 3508 3509// CHECK-LABEL: test_vld3_dup_u8 3510// CHECK: vld3.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3511uint8x8x3_t test_vld3_dup_u8(uint8_t const * a) { 3512 return vld3_dup_u8(a); 3513} 3514 3515// CHECK-LABEL: test_vld3_dup_u16 3516// CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3517uint16x4x3_t test_vld3_dup_u16(uint16_t const * a) { 3518 return vld3_dup_u16(a); 3519} 3520 3521// CHECK-LABEL: test_vld3_dup_u32 3522// CHECK: vld3.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3523uint32x2x3_t test_vld3_dup_u32(uint32_t const * a) { 3524 return vld3_dup_u32(a); 3525} 3526 3527// CHECK-LABEL: test_vld3_dup_u64 3528// CHECK: vld1.64 3529uint64x1x3_t test_vld3_dup_u64(uint64_t const * a) { 3530 return vld3_dup_u64(a); 3531} 3532 3533// CHECK-LABEL: test_vld3_dup_s8 3534// CHECK: vld3.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3535int8x8x3_t test_vld3_dup_s8(int8_t const * a) { 3536 return vld3_dup_s8(a); 3537} 3538 3539// CHECK-LABEL: test_vld3_dup_s16 3540// CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3541int16x4x3_t test_vld3_dup_s16(int16_t const * a) { 3542 return vld3_dup_s16(a); 3543} 3544 3545// CHECK-LABEL: test_vld3_dup_s32 3546// CHECK: vld3.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3547int32x2x3_t test_vld3_dup_s32(int32_t const * a) { 3548 return vld3_dup_s32(a); 3549} 3550 3551// CHECK-LABEL: test_vld3_dup_s64 3552// CHECK: vld1.64 3553int64x1x3_t test_vld3_dup_s64(int64_t const * a) { 3554 return vld3_dup_s64(a); 3555} 3556 3557// CHECK-LABEL: test_vld3_dup_f16 3558// CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3559float16x4x3_t test_vld3_dup_f16(float16_t const * a) { 3560 return vld3_dup_f16(a); 3561} 3562 3563// CHECK-LABEL: test_vld3_dup_f32 3564// CHECK: vld3.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3565float32x2x3_t test_vld3_dup_f32(float32_t const * a) { 3566 return vld3_dup_f32(a); 3567} 3568 3569// CHECK-LABEL: test_vld3_dup_p8 3570// CHECK: vld3.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3571poly8x8x3_t test_vld3_dup_p8(poly8_t const * a) { 3572 return vld3_dup_p8(a); 3573} 3574 3575// CHECK-LABEL: test_vld3_dup_p16 3576// CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3577poly16x4x3_t test_vld3_dup_p16(poly16_t const * a) { 3578 return vld3_dup_p16(a); 3579} 3580 3581 3582// CHECK-LABEL: test_vld3q_lane_u16 3583// CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3584uint16x8x3_t test_vld3q_lane_u16(uint16_t const * a, uint16x8x3_t b) { 3585 return vld3q_lane_u16(a, b, 7); 3586} 3587 3588// CHECK-LABEL: test_vld3q_lane_u32 3589// CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3590uint32x4x3_t test_vld3q_lane_u32(uint32_t const * a, uint32x4x3_t b) { 3591 return vld3q_lane_u32(a, b, 3); 3592} 3593 3594// CHECK-LABEL: test_vld3q_lane_s16 3595// CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3596int16x8x3_t test_vld3q_lane_s16(int16_t const * a, int16x8x3_t b) { 3597 return vld3q_lane_s16(a, b, 7); 3598} 3599 3600// CHECK-LABEL: test_vld3q_lane_s32 3601// CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3602int32x4x3_t test_vld3q_lane_s32(int32_t const * a, int32x4x3_t b) { 3603 return vld3q_lane_s32(a, b, 3); 3604} 3605 3606// CHECK-LABEL: test_vld3q_lane_f16 3607// CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3608float16x8x3_t test_vld3q_lane_f16(float16_t const * a, float16x8x3_t b) { 3609 return vld3q_lane_f16(a, b, 7); 3610} 3611 3612// CHECK-LABEL: test_vld3q_lane_f32 3613// CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3614float32x4x3_t test_vld3q_lane_f32(float32_t const * a, float32x4x3_t b) { 3615 return vld3q_lane_f32(a, b, 3); 3616} 3617 3618// CHECK-LABEL: test_vld3q_lane_p16 3619// CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3620poly16x8x3_t test_vld3q_lane_p16(poly16_t const * a, poly16x8x3_t b) { 3621 return vld3q_lane_p16(a, b, 7); 3622} 3623 3624// CHECK-LABEL: test_vld3_lane_u8 3625// CHECK: vld3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3626uint8x8x3_t test_vld3_lane_u8(uint8_t const * a, uint8x8x3_t b) { 3627 return vld3_lane_u8(a, b, 7); 3628} 3629 3630// CHECK-LABEL: test_vld3_lane_u16 3631// CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3632uint16x4x3_t test_vld3_lane_u16(uint16_t const * a, uint16x4x3_t b) { 3633 return vld3_lane_u16(a, b, 3); 3634} 3635 3636// CHECK-LABEL: test_vld3_lane_u32 3637// CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3638uint32x2x3_t test_vld3_lane_u32(uint32_t const * a, uint32x2x3_t b) { 3639 return vld3_lane_u32(a, b, 1); 3640} 3641 3642// CHECK-LABEL: test_vld3_lane_s8 3643// CHECK: vld3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3644int8x8x3_t test_vld3_lane_s8(int8_t const * a, int8x8x3_t b) { 3645 return vld3_lane_s8(a, b, 7); 3646} 3647 3648// CHECK-LABEL: test_vld3_lane_s16 3649// CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3650int16x4x3_t test_vld3_lane_s16(int16_t const * a, int16x4x3_t b) { 3651 return vld3_lane_s16(a, b, 3); 3652} 3653 3654// CHECK-LABEL: test_vld3_lane_s32 3655// CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3656int32x2x3_t test_vld3_lane_s32(int32_t const * a, int32x2x3_t b) { 3657 return vld3_lane_s32(a, b, 1); 3658} 3659 3660// CHECK-LABEL: test_vld3_lane_f16 3661// CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3662float16x4x3_t test_vld3_lane_f16(float16_t const * a, float16x4x3_t b) { 3663 return vld3_lane_f16(a, b, 3); 3664} 3665 3666// CHECK-LABEL: test_vld3_lane_f32 3667// CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3668float32x2x3_t test_vld3_lane_f32(float32_t const * a, float32x2x3_t b) { 3669 return vld3_lane_f32(a, b, 1); 3670} 3671 3672// CHECK-LABEL: test_vld3_lane_p8 3673// CHECK: vld3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3674poly8x8x3_t test_vld3_lane_p8(poly8_t const * a, poly8x8x3_t b) { 3675 return vld3_lane_p8(a, b, 7); 3676} 3677 3678// CHECK-LABEL: test_vld3_lane_p16 3679// CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3680poly16x4x3_t test_vld3_lane_p16(poly16_t const * a, poly16x4x3_t b) { 3681 return vld3_lane_p16(a, b, 3); 3682} 3683 3684 3685// CHECK-LABEL: test_vld4q_u8 3686// CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3687uint8x16x4_t test_vld4q_u8(uint8_t const * a) { 3688 return vld4q_u8(a); 3689} 3690 3691// CHECK-LABEL: test_vld4q_u16 3692// CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3693uint16x8x4_t test_vld4q_u16(uint16_t const * a) { 3694 return vld4q_u16(a); 3695} 3696 3697// CHECK-LABEL: test_vld4q_u32 3698// CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3699uint32x4x4_t test_vld4q_u32(uint32_t const * a) { 3700 return vld4q_u32(a); 3701} 3702 3703// CHECK-LABEL: test_vld4q_s8 3704// CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3705int8x16x4_t test_vld4q_s8(int8_t const * a) { 3706 return vld4q_s8(a); 3707} 3708 3709// CHECK-LABEL: test_vld4q_s16 3710// CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3711int16x8x4_t test_vld4q_s16(int16_t const * a) { 3712 return vld4q_s16(a); 3713} 3714 3715// CHECK-LABEL: test_vld4q_s32 3716// CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3717int32x4x4_t test_vld4q_s32(int32_t const * a) { 3718 return vld4q_s32(a); 3719} 3720 3721// CHECK-LABEL: test_vld4q_f16 3722// CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3723float16x8x4_t test_vld4q_f16(float16_t const * a) { 3724 return vld4q_f16(a); 3725} 3726 3727// CHECK-LABEL: test_vld4q_f32 3728// CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3729float32x4x4_t test_vld4q_f32(float32_t const * a) { 3730 return vld4q_f32(a); 3731} 3732 3733// CHECK-LABEL: test_vld4q_p8 3734// CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3735poly8x16x4_t test_vld4q_p8(poly8_t const * a) { 3736 return vld4q_p8(a); 3737} 3738 3739// CHECK-LABEL: test_vld4q_p16 3740// CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3741poly16x8x4_t test_vld4q_p16(poly16_t const * a) { 3742 return vld4q_p16(a); 3743} 3744 3745// CHECK-LABEL: test_vld4_u8 3746// CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3747uint8x8x4_t test_vld4_u8(uint8_t const * a) { 3748 return vld4_u8(a); 3749} 3750 3751// CHECK-LABEL: test_vld4_u16 3752// CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3753uint16x4x4_t test_vld4_u16(uint16_t const * a) { 3754 return vld4_u16(a); 3755} 3756 3757// CHECK-LABEL: test_vld4_u32 3758// CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3759uint32x2x4_t test_vld4_u32(uint32_t const * a) { 3760 return vld4_u32(a); 3761} 3762 3763// CHECK-LABEL: test_vld4_u64 3764// CHECK: vld1.64 3765uint64x1x4_t test_vld4_u64(uint64_t const * a) { 3766 return vld4_u64(a); 3767} 3768 3769// CHECK-LABEL: test_vld4_s8 3770// CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3771int8x8x4_t test_vld4_s8(int8_t const * a) { 3772 return vld4_s8(a); 3773} 3774 3775// CHECK-LABEL: test_vld4_s16 3776// CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3777int16x4x4_t test_vld4_s16(int16_t const * a) { 3778 return vld4_s16(a); 3779} 3780 3781// CHECK-LABEL: test_vld4_s32 3782// CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3783int32x2x4_t test_vld4_s32(int32_t const * a) { 3784 return vld4_s32(a); 3785} 3786 3787// CHECK-LABEL: test_vld4_s64 3788// CHECK: vld1.64 3789int64x1x4_t test_vld4_s64(int64_t const * a) { 3790 return vld4_s64(a); 3791} 3792 3793// CHECK-LABEL: test_vld4_f16 3794// CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3795float16x4x4_t test_vld4_f16(float16_t const * a) { 3796 return vld4_f16(a); 3797} 3798 3799// CHECK-LABEL: test_vld4_f32 3800// CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3801float32x2x4_t test_vld4_f32(float32_t const * a) { 3802 return vld4_f32(a); 3803} 3804 3805// CHECK-LABEL: test_vld4_p8 3806// CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3807poly8x8x4_t test_vld4_p8(poly8_t const * a) { 3808 return vld4_p8(a); 3809} 3810 3811// CHECK-LABEL: test_vld4_p16 3812// CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3813poly16x4x4_t test_vld4_p16(poly16_t const * a) { 3814 return vld4_p16(a); 3815} 3816 3817 3818// CHECK-LABEL: test_vld4_dup_u8 3819// CHECK: vld4.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3820uint8x8x4_t test_vld4_dup_u8(uint8_t const * a) { 3821 return vld4_dup_u8(a); 3822} 3823 3824// CHECK-LABEL: test_vld4_dup_u16 3825// CHECK: vld4.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3826uint16x4x4_t test_vld4_dup_u16(uint16_t const * a) { 3827 return vld4_dup_u16(a); 3828} 3829 3830// CHECK-LABEL: test_vld4_dup_u32 3831// CHECK: vld4.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3832uint32x2x4_t test_vld4_dup_u32(uint32_t const * a) { 3833 return vld4_dup_u32(a); 3834} 3835 3836// CHECK-LABEL: test_vld4_dup_u64 3837// CHECK: vld1.64 3838uint64x1x4_t test_vld4_dup_u64(uint64_t const * a) { 3839 return vld4_dup_u64(a); 3840} 3841 3842// CHECK-LABEL: test_vld4_dup_s8 3843// CHECK: vld4.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3844int8x8x4_t test_vld4_dup_s8(int8_t const * a) { 3845 return vld4_dup_s8(a); 3846} 3847 3848// CHECK-LABEL: test_vld4_dup_s16 3849// CHECK: vld4.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3850int16x4x4_t test_vld4_dup_s16(int16_t const * a) { 3851 return vld4_dup_s16(a); 3852} 3853 3854// CHECK-LABEL: test_vld4_dup_s32 3855// CHECK: vld4.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3856int32x2x4_t test_vld4_dup_s32(int32_t const * a) { 3857 return vld4_dup_s32(a); 3858} 3859 3860// CHECK-LABEL: test_vld4_dup_s64 3861// CHECK: vld1.64 3862int64x1x4_t test_vld4_dup_s64(int64_t const * a) { 3863 return vld4_dup_s64(a); 3864} 3865 3866// CHECK-LABEL: test_vld4_dup_f16 3867// CHECK: vld4.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3868float16x4x4_t test_vld4_dup_f16(float16_t const * a) { 3869 return vld4_dup_f16(a); 3870} 3871 3872// CHECK-LABEL: test_vld4_dup_f32 3873// CHECK: vld4.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3874float32x2x4_t test_vld4_dup_f32(float32_t const * a) { 3875 return vld4_dup_f32(a); 3876} 3877 3878// CHECK-LABEL: test_vld4_dup_p8 3879// CHECK: vld4.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3880poly8x8x4_t test_vld4_dup_p8(poly8_t const * a) { 3881 return vld4_dup_p8(a); 3882} 3883 3884// CHECK-LABEL: test_vld4_dup_p16 3885// CHECK: vld4.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3886poly16x4x4_t test_vld4_dup_p16(poly16_t const * a) { 3887 return vld4_dup_p16(a); 3888} 3889 3890 3891// CHECK-LABEL: test_vld4q_lane_u16 3892// CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3893uint16x8x4_t test_vld4q_lane_u16(uint16_t const * a, uint16x8x4_t b) { 3894 return vld4q_lane_u16(a, b, 7); 3895} 3896 3897// CHECK-LABEL: test_vld4q_lane_u32 3898// CHECK: vld4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3899uint32x4x4_t test_vld4q_lane_u32(uint32_t const * a, uint32x4x4_t b) { 3900 return vld4q_lane_u32(a, b, 3); 3901} 3902 3903// CHECK-LABEL: test_vld4q_lane_s16 3904// CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3905int16x8x4_t test_vld4q_lane_s16(int16_t const * a, int16x8x4_t b) { 3906 return vld4q_lane_s16(a, b, 7); 3907} 3908 3909// CHECK-LABEL: test_vld4q_lane_s32 3910// CHECK: vld4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3911int32x4x4_t test_vld4q_lane_s32(int32_t const * a, int32x4x4_t b) { 3912 return vld4q_lane_s32(a, b, 3); 3913} 3914 3915// CHECK-LABEL: test_vld4q_lane_f16 3916// CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3917float16x8x4_t test_vld4q_lane_f16(float16_t const * a, float16x8x4_t b) { 3918 return vld4q_lane_f16(a, b, 7); 3919} 3920 3921// CHECK-LABEL: test_vld4q_lane_f32 3922// CHECK: vld4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3923float32x4x4_t test_vld4q_lane_f32(float32_t const * a, float32x4x4_t b) { 3924 return vld4q_lane_f32(a, b, 3); 3925} 3926 3927// CHECK-LABEL: test_vld4q_lane_p16 3928// CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3929poly16x8x4_t test_vld4q_lane_p16(poly16_t const * a, poly16x8x4_t b) { 3930 return vld4q_lane_p16(a, b, 7); 3931} 3932 3933// CHECK-LABEL: test_vld4_lane_u8 3934// 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]+}}] 3935uint8x8x4_t test_vld4_lane_u8(uint8_t const * a, uint8x8x4_t b) { 3936 return vld4_lane_u8(a, b, 7); 3937} 3938 3939// CHECK-LABEL: test_vld4_lane_u16 3940// 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]+}}] 3941uint16x4x4_t test_vld4_lane_u16(uint16_t const * a, uint16x4x4_t b) { 3942 return vld4_lane_u16(a, b, 3); 3943} 3944 3945// CHECK-LABEL: test_vld4_lane_u32 3946// 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]+}}] 3947uint32x2x4_t test_vld4_lane_u32(uint32_t const * a, uint32x2x4_t b) { 3948 return vld4_lane_u32(a, b, 1); 3949} 3950 3951// CHECK-LABEL: test_vld4_lane_s8 3952// 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]+}}] 3953int8x8x4_t test_vld4_lane_s8(int8_t const * a, int8x8x4_t b) { 3954 return vld4_lane_s8(a, b, 7); 3955} 3956 3957// CHECK-LABEL: test_vld4_lane_s16 3958// 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]+}}] 3959int16x4x4_t test_vld4_lane_s16(int16_t const * a, int16x4x4_t b) { 3960 return vld4_lane_s16(a, b, 3); 3961} 3962 3963// CHECK-LABEL: test_vld4_lane_s32 3964// 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]+}}] 3965int32x2x4_t test_vld4_lane_s32(int32_t const * a, int32x2x4_t b) { 3966 return vld4_lane_s32(a, b, 1); 3967} 3968 3969// CHECK-LABEL: test_vld4_lane_f16 3970// 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]+}}] 3971float16x4x4_t test_vld4_lane_f16(float16_t const * a, float16x4x4_t b) { 3972 return vld4_lane_f16(a, b, 3); 3973} 3974 3975// CHECK-LABEL: test_vld4_lane_f32 3976// 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]+}}] 3977float32x2x4_t test_vld4_lane_f32(float32_t const * a, float32x2x4_t b) { 3978 return vld4_lane_f32(a, b, 1); 3979} 3980 3981// CHECK-LABEL: test_vld4_lane_p8 3982// 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]+}}] 3983poly8x8x4_t test_vld4_lane_p8(poly8_t const * a, poly8x8x4_t b) { 3984 return vld4_lane_p8(a, b, 7); 3985} 3986 3987// CHECK-LABEL: test_vld4_lane_p16 3988// 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]+}}] 3989poly16x4x4_t test_vld4_lane_p16(poly16_t const * a, poly16x4x4_t b) { 3990 return vld4_lane_p16(a, b, 3); 3991} 3992 3993 3994// CHECK-LABEL: test_vmax_s8 3995// CHECK: vmax.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 3996int8x8_t test_vmax_s8(int8x8_t a, int8x8_t b) { 3997 return vmax_s8(a, b); 3998} 3999 4000// CHECK-LABEL: test_vmax_s16 4001// CHECK: vmax.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4002int16x4_t test_vmax_s16(int16x4_t a, int16x4_t b) { 4003 return vmax_s16(a, b); 4004} 4005 4006// CHECK-LABEL: test_vmax_s32 4007// CHECK: vmax.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4008int32x2_t test_vmax_s32(int32x2_t a, int32x2_t b) { 4009 return vmax_s32(a, b); 4010} 4011 4012// CHECK-LABEL: test_vmax_u8 4013// CHECK: vmax.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4014uint8x8_t test_vmax_u8(uint8x8_t a, uint8x8_t b) { 4015 return vmax_u8(a, b); 4016} 4017 4018// CHECK-LABEL: test_vmax_u16 4019// CHECK: vmax.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4020uint16x4_t test_vmax_u16(uint16x4_t a, uint16x4_t b) { 4021 return vmax_u16(a, b); 4022} 4023 4024// CHECK-LABEL: test_vmax_u32 4025// CHECK: vmax.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4026uint32x2_t test_vmax_u32(uint32x2_t a, uint32x2_t b) { 4027 return vmax_u32(a, b); 4028} 4029 4030// CHECK-LABEL: test_vmax_f32 4031// CHECK: vmax.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4032float32x2_t test_vmax_f32(float32x2_t a, float32x2_t b) { 4033 return vmax_f32(a, b); 4034} 4035 4036// CHECK-LABEL: test_vmaxq_s8 4037// CHECK: vmax.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4038int8x16_t test_vmaxq_s8(int8x16_t a, int8x16_t b) { 4039 return vmaxq_s8(a, b); 4040} 4041 4042// CHECK-LABEL: test_vmaxq_s16 4043// CHECK: vmax.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4044int16x8_t test_vmaxq_s16(int16x8_t a, int16x8_t b) { 4045 return vmaxq_s16(a, b); 4046} 4047 4048// CHECK-LABEL: test_vmaxq_s32 4049// CHECK: vmax.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4050int32x4_t test_vmaxq_s32(int32x4_t a, int32x4_t b) { 4051 return vmaxq_s32(a, b); 4052} 4053 4054// CHECK-LABEL: test_vmaxq_u8 4055// CHECK: vmax.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4056uint8x16_t test_vmaxq_u8(uint8x16_t a, uint8x16_t b) { 4057 return vmaxq_u8(a, b); 4058} 4059 4060// CHECK-LABEL: test_vmaxq_u16 4061// CHECK: vmax.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4062uint16x8_t test_vmaxq_u16(uint16x8_t a, uint16x8_t b) { 4063 return vmaxq_u16(a, b); 4064} 4065 4066// CHECK-LABEL: test_vmaxq_u32 4067// CHECK: vmax.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4068uint32x4_t test_vmaxq_u32(uint32x4_t a, uint32x4_t b) { 4069 return vmaxq_u32(a, b); 4070} 4071 4072// CHECK-LABEL: test_vmaxq_f32 4073// CHECK: vmax.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4074float32x4_t test_vmaxq_f32(float32x4_t a, float32x4_t b) { 4075 return vmaxq_f32(a, b); 4076} 4077 4078 4079// CHECK-LABEL: test_vmin_s8 4080// CHECK: vmin.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4081int8x8_t test_vmin_s8(int8x8_t a, int8x8_t b) { 4082 return vmin_s8(a, b); 4083} 4084 4085// CHECK-LABEL: test_vmin_s16 4086// CHECK: vmin.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4087int16x4_t test_vmin_s16(int16x4_t a, int16x4_t b) { 4088 return vmin_s16(a, b); 4089} 4090 4091// CHECK-LABEL: test_vmin_s32 4092// CHECK: vmin.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4093int32x2_t test_vmin_s32(int32x2_t a, int32x2_t b) { 4094 return vmin_s32(a, b); 4095} 4096 4097// CHECK-LABEL: test_vmin_u8 4098// CHECK: vmin.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4099uint8x8_t test_vmin_u8(uint8x8_t a, uint8x8_t b) { 4100 return vmin_u8(a, b); 4101} 4102 4103// CHECK-LABEL: test_vmin_u16 4104// CHECK: vmin.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4105uint16x4_t test_vmin_u16(uint16x4_t a, uint16x4_t b) { 4106 return vmin_u16(a, b); 4107} 4108 4109// CHECK-LABEL: test_vmin_u32 4110// CHECK: vmin.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4111uint32x2_t test_vmin_u32(uint32x2_t a, uint32x2_t b) { 4112 return vmin_u32(a, b); 4113} 4114 4115// CHECK-LABEL: test_vmin_f32 4116// CHECK: vmin.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4117float32x2_t test_vmin_f32(float32x2_t a, float32x2_t b) { 4118 return vmin_f32(a, b); 4119} 4120 4121// CHECK-LABEL: test_vminq_s8 4122// CHECK: vmin.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4123int8x16_t test_vminq_s8(int8x16_t a, int8x16_t b) { 4124 return vminq_s8(a, b); 4125} 4126 4127// CHECK-LABEL: test_vminq_s16 4128// CHECK: vmin.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4129int16x8_t test_vminq_s16(int16x8_t a, int16x8_t b) { 4130 return vminq_s16(a, b); 4131} 4132 4133// CHECK-LABEL: test_vminq_s32 4134// CHECK: vmin.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4135int32x4_t test_vminq_s32(int32x4_t a, int32x4_t b) { 4136 return vminq_s32(a, b); 4137} 4138 4139// CHECK-LABEL: test_vminq_u8 4140// CHECK: vmin.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4141uint8x16_t test_vminq_u8(uint8x16_t a, uint8x16_t b) { 4142 return vminq_u8(a, b); 4143} 4144 4145// CHECK-LABEL: test_vminq_u16 4146// CHECK: vmin.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4147uint16x8_t test_vminq_u16(uint16x8_t a, uint16x8_t b) { 4148 return vminq_u16(a, b); 4149} 4150 4151// CHECK-LABEL: test_vminq_u32 4152// CHECK: vmin.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4153uint32x4_t test_vminq_u32(uint32x4_t a, uint32x4_t b) { 4154 return vminq_u32(a, b); 4155} 4156 4157// CHECK-LABEL: test_vminq_f32 4158// CHECK: vmin.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4159float32x4_t test_vminq_f32(float32x4_t a, float32x4_t b) { 4160 return vminq_f32(a, b); 4161} 4162 4163 4164// CHECK-LABEL: test_vmla_s8 4165// CHECK: vmla.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4166int8x8_t test_vmla_s8(int8x8_t a, int8x8_t b, int8x8_t c) { 4167 return vmla_s8(a, b, c); 4168} 4169 4170// CHECK-LABEL: test_vmla_s16 4171// CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4172int16x4_t test_vmla_s16(int16x4_t a, int16x4_t b, int16x4_t c) { 4173 return vmla_s16(a, b, c); 4174} 4175 4176// CHECK-LABEL: test_vmla_s32 4177// CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4178int32x2_t test_vmla_s32(int32x2_t a, int32x2_t b, int32x2_t c) { 4179 return vmla_s32(a, b, c); 4180} 4181 4182// CHECK-LABEL: test_vmla_f32 4183// CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4184// CHECK-SWIFT: vadd.f32 4185// CHECK-A57: vmla.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4186float32x2_t test_vmla_f32(float32x2_t a, float32x2_t b, float32x2_t c) { 4187 return vmla_f32(a, b, c); 4188} 4189 4190// CHECK-LABEL: test_vmla_u8 4191// CHECK: vmla.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4192uint8x8_t test_vmla_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) { 4193 return vmla_u8(a, b, c); 4194} 4195 4196// CHECK-LABEL: test_vmla_u16 4197// CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4198uint16x4_t test_vmla_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) { 4199 return vmla_u16(a, b, c); 4200} 4201 4202// CHECK-LABEL: test_vmla_u32 4203// CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4204uint32x2_t test_vmla_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) { 4205 return vmla_u32(a, b, c); 4206} 4207 4208// CHECK-LABEL: test_vmlaq_s8 4209// CHECK: vmla.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4210int8x16_t test_vmlaq_s8(int8x16_t a, int8x16_t b, int8x16_t c) { 4211 return vmlaq_s8(a, b, c); 4212} 4213 4214// CHECK-LABEL: test_vmlaq_s16 4215// CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4216int16x8_t test_vmlaq_s16(int16x8_t a, int16x8_t b, int16x8_t c) { 4217 return vmlaq_s16(a, b, c); 4218} 4219 4220// CHECK-LABEL: test_vmlaq_s32 4221// CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4222int32x4_t test_vmlaq_s32(int32x4_t a, int32x4_t b, int32x4_t c) { 4223 return vmlaq_s32(a, b, c); 4224} 4225 4226// CHECK-LABEL: test_vmlaq_f32 4227// CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4228// CHECK-SWIFT: vadd.f32 4229// CHECK-A57: vmla.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4230float32x4_t test_vmlaq_f32(float32x4_t a, float32x4_t b, float32x4_t c) { 4231 return vmlaq_f32(a, b, c); 4232} 4233 4234// CHECK-LABEL: test_vmlaq_u8 4235// CHECK: vmla.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4236uint8x16_t test_vmlaq_u8(uint8x16_t a, uint8x16_t b, uint8x16_t c) { 4237 return vmlaq_u8(a, b, c); 4238} 4239 4240// CHECK-LABEL: test_vmlaq_u16 4241// CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4242uint16x8_t test_vmlaq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t c) { 4243 return vmlaq_u16(a, b, c); 4244} 4245 4246// CHECK-LABEL: test_vmlaq_u32 4247// CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4248uint32x4_t test_vmlaq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t c) { 4249 return vmlaq_u32(a, b, c); 4250} 4251 4252 4253// CHECK-LABEL: test_vmlal_s8 4254// CHECK: vmlal.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4255int16x8_t test_vmlal_s8(int16x8_t a, int8x8_t b, int8x8_t c) { 4256 return vmlal_s8(a, b, c); 4257} 4258 4259// CHECK-LABEL: test_vmlal_s16 4260// CHECK: vmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4261int32x4_t test_vmlal_s16(int32x4_t a, int16x4_t b, int16x4_t c) { 4262 return vmlal_s16(a, b, c); 4263} 4264 4265// CHECK-LABEL: test_vmlal_s32 4266// CHECK: vmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4267int64x2_t test_vmlal_s32(int64x2_t a, int32x2_t b, int32x2_t c) { 4268 return vmlal_s32(a, b, c); 4269} 4270 4271// CHECK-LABEL: test_vmlal_u8 4272// CHECK: vmlal.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4273uint16x8_t test_vmlal_u8(uint16x8_t a, uint8x8_t b, uint8x8_t c) { 4274 return vmlal_u8(a, b, c); 4275} 4276 4277// CHECK-LABEL: test_vmlal_u16 4278// CHECK: vmlal.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4279uint32x4_t test_vmlal_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) { 4280 return vmlal_u16(a, b, c); 4281} 4282 4283// CHECK-LABEL: test_vmlal_u32 4284// CHECK: vmlal.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4285uint64x2_t test_vmlal_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) { 4286 return vmlal_u32(a, b, c); 4287} 4288 4289 4290// CHECK-LABEL: test_vmlal_lane_s16 4291// CHECK: vmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4292int32x4_t test_vmlal_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) { 4293 return vmlal_lane_s16(a, b, c, 3); 4294} 4295 4296// CHECK-LABEL: test_vmlal_lane_s32 4297// CHECK: vmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4298int64x2_t test_vmlal_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) { 4299 return vmlal_lane_s32(a, b, c, 1); 4300} 4301 4302// CHECK-LABEL: test_vmlal_lane_u16 4303// CHECK: vmlal.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4304uint32x4_t test_vmlal_lane_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) { 4305 return vmlal_lane_u16(a, b, c, 3); 4306} 4307 4308// CHECK-LABEL: test_vmlal_lane_u32 4309// CHECK: vmlal.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4310uint64x2_t test_vmlal_lane_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) { 4311 return vmlal_lane_u32(a, b, c, 1); 4312} 4313 4314 4315// CHECK-LABEL: test_vmlal_n_s16 4316// CHECK: vmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4317int32x4_t test_vmlal_n_s16(int32x4_t a, int16x4_t b, int16_t c) { 4318 return vmlal_n_s16(a, b, c); 4319} 4320 4321// CHECK-LABEL: test_vmlal_n_s32 4322// CHECK: vmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4323int64x2_t test_vmlal_n_s32(int64x2_t a, int32x2_t b, int32_t c) { 4324 return vmlal_n_s32(a, b, c); 4325} 4326 4327// CHECK-LABEL: test_vmlal_n_u16 4328// CHECK: vmlal.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4329uint32x4_t test_vmlal_n_u16(uint32x4_t a, uint16x4_t b, uint16_t c) { 4330 return vmlal_n_u16(a, b, c); 4331} 4332 4333// CHECK-LABEL: test_vmlal_n_u32 4334// CHECK: vmlal.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4335uint64x2_t test_vmlal_n_u32(uint64x2_t a, uint32x2_t b, uint32_t c) { 4336 return vmlal_n_u32(a, b, c); 4337} 4338 4339 4340// CHECK-LABEL: test_vmla_lane_s16 4341// CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4342int16x4_t test_vmla_lane_s16(int16x4_t a, int16x4_t b, int16x4_t c) { 4343 return vmla_lane_s16(a, b, c, 3); 4344} 4345 4346// CHECK-LABEL: test_vmla_lane_s32 4347// CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4348int32x2_t test_vmla_lane_s32(int32x2_t a, int32x2_t b, int32x2_t c) { 4349 return vmla_lane_s32(a, b, c, 1); 4350} 4351 4352// CHECK-LABEL: test_vmla_lane_u16 4353// CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4354uint16x4_t test_vmla_lane_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) { 4355 return vmla_lane_u16(a, b, c, 3); 4356} 4357 4358// CHECK-LABEL: test_vmla_lane_u32 4359// CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4360uint32x2_t test_vmla_lane_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) { 4361 return vmla_lane_u32(a, b, c, 1); 4362} 4363 4364// CHECK-LABEL: test_vmla_lane_f32 4365// CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4366// CHECK-SWIFT: vadd.f32 4367// CHECK-A57: vmla.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4368float32x2_t test_vmla_lane_f32(float32x2_t a, float32x2_t b, float32x2_t c) { 4369 return vmla_lane_f32(a, b, c, 1); 4370} 4371 4372// CHECK-LABEL: test_vmlaq_lane_s16 4373// CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4374int16x8_t test_vmlaq_lane_s16(int16x8_t a, int16x8_t b, int16x4_t c) { 4375 return vmlaq_lane_s16(a, b, c, 3); 4376} 4377 4378// CHECK-LABEL: test_vmlaq_lane_s32 4379// CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4380int32x4_t test_vmlaq_lane_s32(int32x4_t a, int32x4_t b, int32x2_t c) { 4381 return vmlaq_lane_s32(a, b, c, 1); 4382} 4383 4384// CHECK-LABEL: test_vmlaq_lane_u16 4385// CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4386uint16x8_t test_vmlaq_lane_u16(uint16x8_t a, uint16x8_t b, uint16x4_t c) { 4387 return vmlaq_lane_u16(a, b, c, 3); 4388} 4389 4390// CHECK-LABEL: test_vmlaq_lane_u32 4391// CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4392uint32x4_t test_vmlaq_lane_u32(uint32x4_t a, uint32x4_t b, uint32x2_t c) { 4393 return vmlaq_lane_u32(a, b, c, 1); 4394} 4395 4396// CHECK-LABEL: test_vmlaq_lane_f32 4397// CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4398// CHECK-SWIFT: vadd.f32 4399// CHECK-A57: vmla.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4400float32x4_t test_vmlaq_lane_f32(float32x4_t a, float32x4_t b, float32x2_t c) { 4401 return vmlaq_lane_f32(a, b, c, 1); 4402} 4403 4404 4405// CHECK-LABEL: test_vmla_n_s16 4406// CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4407int16x4_t test_vmla_n_s16(int16x4_t a, int16x4_t b, int16_t c) { 4408 return vmla_n_s16(a, b, c); 4409} 4410 4411// CHECK-LABEL: test_vmla_n_s32 4412// CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4413int32x2_t test_vmla_n_s32(int32x2_t a, int32x2_t b, int32_t c) { 4414 return vmla_n_s32(a, b, c); 4415} 4416 4417// CHECK-LABEL: test_vmla_n_u16 4418// CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4419uint16x4_t test_vmla_n_u16(uint16x4_t a, uint16x4_t b, uint16_t c) { 4420 return vmla_n_u16(a, b, c); 4421} 4422 4423// CHECK-LABEL: test_vmla_n_u32 4424// CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4425uint32x2_t test_vmla_n_u32(uint32x2_t a, uint32x2_t b, uint32_t c) { 4426 return vmla_n_u32(a, b, c); 4427} 4428 4429// CHECK-LABEL: test_vmla_n_f32 4430// CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4431// CHECK-SWIFT: vadd.f32 4432// CHECK-A57: vmla.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4433float32x2_t test_vmla_n_f32(float32x2_t a, float32x2_t b, float32_t c) { 4434 return vmla_n_f32(a, b, c); 4435} 4436 4437// CHECK-LABEL: test_vmlaq_n_s16 4438// CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4439int16x8_t test_vmlaq_n_s16(int16x8_t a, int16x8_t b, int16_t c) { 4440 return vmlaq_n_s16(a, b, c); 4441} 4442 4443// CHECK-LABEL: test_vmlaq_n_s32 4444// CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4445int32x4_t test_vmlaq_n_s32(int32x4_t a, int32x4_t b, int32_t c) { 4446 return vmlaq_n_s32(a, b, c); 4447} 4448 4449// CHECK-LABEL: test_vmlaq_n_u16 4450// CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4451uint16x8_t test_vmlaq_n_u16(uint16x8_t a, uint16x8_t b, uint16_t c) { 4452 return vmlaq_n_u16(a, b, c); 4453} 4454 4455// CHECK-LABEL: test_vmlaq_n_u32 4456// CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4457uint32x4_t test_vmlaq_n_u32(uint32x4_t a, uint32x4_t b, uint32_t c) { 4458 return vmlaq_n_u32(a, b, c); 4459} 4460 4461// CHECK-LABEL: test_vmlaq_n_f32 4462// CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[0] 4463// CHECK-SWIFT: vadd.f32 4464// CHECK-A57: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, 4465// CHECK-A57: vmla.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4466float32x4_t test_vmlaq_n_f32(float32x4_t a, float32x4_t b, float32_t c) { 4467 return vmlaq_n_f32(a, b, c); 4468} 4469 4470 4471// CHECK-LABEL: test_vmls_s8 4472// CHECK: vmls.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4473int8x8_t test_vmls_s8(int8x8_t a, int8x8_t b, int8x8_t c) { 4474 return vmls_s8(a, b, c); 4475} 4476 4477// CHECK-LABEL: test_vmls_s16 4478// CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4479int16x4_t test_vmls_s16(int16x4_t a, int16x4_t b, int16x4_t c) { 4480 return vmls_s16(a, b, c); 4481} 4482 4483// CHECK-LABEL: test_vmls_s32 4484// CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4485int32x2_t test_vmls_s32(int32x2_t a, int32x2_t b, int32x2_t c) { 4486 return vmls_s32(a, b, c); 4487} 4488 4489// CHECK-LABEL: test_vmls_f32 4490// CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4491// CHECK-SWIFT: vsub.f32 4492// CHECK-A57: vmls.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4493float32x2_t test_vmls_f32(float32x2_t a, float32x2_t b, float32x2_t c) { 4494 return vmls_f32(a, b, c); 4495} 4496 4497// CHECK-LABEL: test_vmls_u8 4498// CHECK: vmls.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4499uint8x8_t test_vmls_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) { 4500 return vmls_u8(a, b, c); 4501} 4502 4503// CHECK-LABEL: test_vmls_u16 4504// CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4505uint16x4_t test_vmls_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) { 4506 return vmls_u16(a, b, c); 4507} 4508 4509// CHECK-LABEL: test_vmls_u32 4510// CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4511uint32x2_t test_vmls_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) { 4512 return vmls_u32(a, b, c); 4513} 4514 4515// CHECK-LABEL: test_vmlsq_s8 4516// CHECK: vmls.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4517int8x16_t test_vmlsq_s8(int8x16_t a, int8x16_t b, int8x16_t c) { 4518 return vmlsq_s8(a, b, c); 4519} 4520 4521// CHECK-LABEL: test_vmlsq_s16 4522// CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4523int16x8_t test_vmlsq_s16(int16x8_t a, int16x8_t b, int16x8_t c) { 4524 return vmlsq_s16(a, b, c); 4525} 4526 4527// CHECK-LABEL: test_vmlsq_s32 4528// CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4529int32x4_t test_vmlsq_s32(int32x4_t a, int32x4_t b, int32x4_t c) { 4530 return vmlsq_s32(a, b, c); 4531} 4532 4533// CHECK-LABEL: test_vmlsq_f32 4534// CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4535// CHECK-SWIFT: vsub.f32 4536// CHECK-A57: vmls.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4537float32x4_t test_vmlsq_f32(float32x4_t a, float32x4_t b, float32x4_t c) { 4538 return vmlsq_f32(a, b, c); 4539} 4540 4541// CHECK-LABEL: test_vmlsq_u8 4542// CHECK: vmls.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4543uint8x16_t test_vmlsq_u8(uint8x16_t a, uint8x16_t b, uint8x16_t c) { 4544 return vmlsq_u8(a, b, c); 4545} 4546 4547// CHECK-LABEL: test_vmlsq_u16 4548// CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4549uint16x8_t test_vmlsq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t c) { 4550 return vmlsq_u16(a, b, c); 4551} 4552 4553// CHECK-LABEL: test_vmlsq_u32 4554// CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4555uint32x4_t test_vmlsq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t c) { 4556 return vmlsq_u32(a, b, c); 4557} 4558 4559 4560// CHECK-LABEL: test_vmlsl_s8 4561// CHECK: vmlsl.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4562int16x8_t test_vmlsl_s8(int16x8_t a, int8x8_t b, int8x8_t c) { 4563 return vmlsl_s8(a, b, c); 4564} 4565 4566// CHECK-LABEL: test_vmlsl_s16 4567// CHECK: vmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4568int32x4_t test_vmlsl_s16(int32x4_t a, int16x4_t b, int16x4_t c) { 4569 return vmlsl_s16(a, b, c); 4570} 4571 4572// CHECK-LABEL: test_vmlsl_s32 4573// CHECK: vmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4574int64x2_t test_vmlsl_s32(int64x2_t a, int32x2_t b, int32x2_t c) { 4575 return vmlsl_s32(a, b, c); 4576} 4577 4578// CHECK-LABEL: test_vmlsl_u8 4579// CHECK: vmlsl.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4580uint16x8_t test_vmlsl_u8(uint16x8_t a, uint8x8_t b, uint8x8_t c) { 4581 return vmlsl_u8(a, b, c); 4582} 4583 4584// CHECK-LABEL: test_vmlsl_u16 4585// CHECK: vmlsl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4586uint32x4_t test_vmlsl_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) { 4587 return vmlsl_u16(a, b, c); 4588} 4589 4590// CHECK-LABEL: test_vmlsl_u32 4591// CHECK: vmlsl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4592uint64x2_t test_vmlsl_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) { 4593 return vmlsl_u32(a, b, c); 4594} 4595 4596 4597// CHECK-LABEL: test_vmlsl_lane_s16 4598// CHECK: vmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4599int32x4_t test_vmlsl_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) { 4600 return vmlsl_lane_s16(a, b, c, 3); 4601} 4602 4603// CHECK-LABEL: test_vmlsl_lane_s32 4604// CHECK: vmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4605int64x2_t test_vmlsl_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) { 4606 return vmlsl_lane_s32(a, b, c, 1); 4607} 4608 4609// CHECK-LABEL: test_vmlsl_lane_u16 4610// CHECK: vmlsl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4611uint32x4_t test_vmlsl_lane_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) { 4612 return vmlsl_lane_u16(a, b, c, 3); 4613} 4614 4615// CHECK-LABEL: test_vmlsl_lane_u32 4616// CHECK: vmlsl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4617uint64x2_t test_vmlsl_lane_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) { 4618 return vmlsl_lane_u32(a, b, c, 1); 4619} 4620 4621 4622// CHECK-LABEL: test_vmlsl_n_s16 4623// CHECK: vmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4624int32x4_t test_vmlsl_n_s16(int32x4_t a, int16x4_t b, int16_t c) { 4625 return vmlsl_n_s16(a, b, c); 4626} 4627 4628// CHECK-LABEL: test_vmlsl_n_s32 4629// CHECK: vmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4630int64x2_t test_vmlsl_n_s32(int64x2_t a, int32x2_t b, int32_t c) { 4631 return vmlsl_n_s32(a, b, c); 4632} 4633 4634// CHECK-LABEL: test_vmlsl_n_u16 4635// CHECK: vmlsl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4636uint32x4_t test_vmlsl_n_u16(uint32x4_t a, uint16x4_t b, uint16_t c) { 4637 return vmlsl_n_u16(a, b, c); 4638} 4639 4640// CHECK-LABEL: test_vmlsl_n_u32 4641// CHECK: vmlsl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4642uint64x2_t test_vmlsl_n_u32(uint64x2_t a, uint32x2_t b, uint32_t c) { 4643 return vmlsl_n_u32(a, b, c); 4644} 4645 4646 4647// CHECK-LABEL: test_vmls_lane_s16 4648// CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4649int16x4_t test_vmls_lane_s16(int16x4_t a, int16x4_t b, int16x4_t c) { 4650 return vmls_lane_s16(a, b, c, 3); 4651} 4652 4653// CHECK-LABEL: test_vmls_lane_s32 4654// CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4655int32x2_t test_vmls_lane_s32(int32x2_t a, int32x2_t b, int32x2_t c) { 4656 return vmls_lane_s32(a, b, c, 1); 4657} 4658 4659// CHECK-LABEL: test_vmls_lane_u16 4660// CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4661uint16x4_t test_vmls_lane_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) { 4662 return vmls_lane_u16(a, b, c, 3); 4663} 4664 4665// CHECK-LABEL: test_vmls_lane_u32 4666// CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4667uint32x2_t test_vmls_lane_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) { 4668 return vmls_lane_u32(a, b, c, 1); 4669} 4670 4671// CHECK-LABEL: test_vmls_lane_f32 4672// CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4673// CHECK-SWIFT: vsub.f32 4674// CHECK-A57: vmls.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4675float32x2_t test_vmls_lane_f32(float32x2_t a, float32x2_t b, float32x2_t c) { 4676 return vmls_lane_f32(a, b, c, 1); 4677} 4678 4679// CHECK-LABEL: test_vmlsq_lane_s16 4680// CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4681int16x8_t test_vmlsq_lane_s16(int16x8_t a, int16x8_t b, int16x4_t c) { 4682 return vmlsq_lane_s16(a, b, c, 3); 4683} 4684 4685// CHECK-LABEL: test_vmlsq_lane_s32 4686// CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4687int32x4_t test_vmlsq_lane_s32(int32x4_t a, int32x4_t b, int32x2_t c) { 4688 return vmlsq_lane_s32(a, b, c, 1); 4689} 4690 4691// CHECK-LABEL: test_vmlsq_lane_u16 4692// CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4693uint16x8_t test_vmlsq_lane_u16(uint16x8_t a, uint16x8_t b, uint16x4_t c) { 4694 return vmlsq_lane_u16(a, b, c, 3); 4695} 4696 4697// CHECK-LABEL: test_vmlsq_lane_u32 4698// CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4699uint32x4_t test_vmlsq_lane_u32(uint32x4_t a, uint32x4_t b, uint32x2_t c) { 4700 return vmlsq_lane_u32(a, b, c, 1); 4701} 4702 4703// CHECK-LABEL: test_vmlsq_lane_f32 4704// CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4705// CHECK-SWIFT: vsub.f32 4706// CHECK-A57: vmls.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4707float32x4_t test_vmlsq_lane_f32(float32x4_t a, float32x4_t b, float32x2_t c) { 4708 return vmlsq_lane_f32(a, b, c, 1); 4709} 4710 4711 4712// CHECK-LABEL: test_vmls_n_s16 4713// CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4714int16x4_t test_vmls_n_s16(int16x4_t a, int16x4_t b, int16_t c) { 4715 return vmls_n_s16(a, b, c); 4716} 4717 4718// CHECK-LABEL: test_vmls_n_s32 4719// CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4720int32x2_t test_vmls_n_s32(int32x2_t a, int32x2_t b, int32_t c) { 4721 return vmls_n_s32(a, b, c); 4722} 4723 4724// CHECK-LABEL: test_vmls_n_u16 4725// CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4726uint16x4_t test_vmls_n_u16(uint16x4_t a, uint16x4_t b, uint16_t c) { 4727 return vmls_n_u16(a, b, c); 4728} 4729 4730// CHECK-LABEL: test_vmls_n_u32 4731// CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4732uint32x2_t test_vmls_n_u32(uint32x2_t a, uint32x2_t b, uint32_t c) { 4733 return vmls_n_u32(a, b, c); 4734} 4735 4736// CHECK-LABEL: test_vmls_n_f32 4737// CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4738// CHECK-SWIFT: vsub.f32 4739// CHECK-A57: vmls.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4740float32x2_t test_vmls_n_f32(float32x2_t a, float32x2_t b, float32_t c) { 4741 return vmls_n_f32(a, b, c); 4742} 4743 4744// CHECK-LABEL: test_vmlsq_n_s16 4745// CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4746int16x8_t test_vmlsq_n_s16(int16x8_t a, int16x8_t b, int16_t c) { 4747 return vmlsq_n_s16(a, b, c); 4748} 4749 4750// CHECK-LABEL: test_vmlsq_n_s32 4751// CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4752int32x4_t test_vmlsq_n_s32(int32x4_t a, int32x4_t b, int32_t c) { 4753 return vmlsq_n_s32(a, b, c); 4754} 4755 4756// CHECK-LABEL: test_vmlsq_n_u16 4757// CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4758uint16x8_t test_vmlsq_n_u16(uint16x8_t a, uint16x8_t b, uint16_t c) { 4759 return vmlsq_n_u16(a, b, c); 4760} 4761 4762// CHECK-LABEL: test_vmlsq_n_u32 4763// CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4764uint32x4_t test_vmlsq_n_u32(uint32x4_t a, uint32x4_t b, uint32_t c) { 4765 return vmlsq_n_u32(a, b, c); 4766} 4767 4768// CHECK-LABEL: test_vmlsq_n_f32 4769// CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[0] 4770// CHECK-SWIFT: vsub.f32 4771// CHECK-A57: vmls.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4772float32x4_t test_vmlsq_n_f32(float32x4_t a, float32x4_t b, float32_t c) { 4773 return vmlsq_n_f32(a, b, c); 4774} 4775 4776 4777// CHECK-LABEL: test_vmovl_s8 4778// CHECK: vmovl.s8 q{{[0-9]+}}, d{{[0-9]+}} 4779int16x8_t test_vmovl_s8(int8x8_t a) { 4780 return vmovl_s8(a); 4781} 4782 4783// CHECK-LABEL: test_vmovl_s16 4784// CHECK: vmovl.s16 q{{[0-9]+}}, d{{[0-9]+}} 4785int32x4_t test_vmovl_s16(int16x4_t a) { 4786 return vmovl_s16(a); 4787} 4788 4789// CHECK-LABEL: test_vmovl_s32 4790// CHECK: vmovl.s32 q{{[0-9]+}}, d{{[0-9]+}} 4791int64x2_t test_vmovl_s32(int32x2_t a) { 4792 return vmovl_s32(a); 4793} 4794 4795// CHECK-LABEL: test_vmovl_u8 4796// CHECK: vmovl.u8 q{{[0-9]+}}, d{{[0-9]+}} 4797uint16x8_t test_vmovl_u8(uint8x8_t a) { 4798 return vmovl_u8(a); 4799} 4800 4801// CHECK-LABEL: test_vmovl_u16 4802// CHECK: vmovl.u16 q{{[0-9]+}}, d{{[0-9]+}} 4803uint32x4_t test_vmovl_u16(uint16x4_t a) { 4804 return vmovl_u16(a); 4805} 4806 4807// CHECK-LABEL: test_vmovl_u32 4808// CHECK: vmovl.u32 q{{[0-9]+}}, d{{[0-9]+}} 4809uint64x2_t test_vmovl_u32(uint32x2_t a) { 4810 return vmovl_u32(a); 4811} 4812 4813 4814// CHECK-LABEL: test_vmovn_s16 4815// CHECK: vmovn.i16 d{{[0-9]+}}, q{{[0-9]+}} 4816int8x8_t test_vmovn_s16(int16x8_t a) { 4817 return vmovn_s16(a); 4818} 4819 4820// CHECK-LABEL: test_vmovn_s32 4821// CHECK: vmovn.i32 d{{[0-9]+}}, q{{[0-9]+}} 4822int16x4_t test_vmovn_s32(int32x4_t a) { 4823 return vmovn_s32(a); 4824} 4825 4826// CHECK-LABEL: test_vmovn_s64 4827// CHECK: vmovn.i64 d{{[0-9]+}}, q{{[0-9]+}} 4828int32x2_t test_vmovn_s64(int64x2_t a) { 4829 return vmovn_s64(a); 4830} 4831 4832// CHECK-LABEL: test_vmovn_u16 4833// CHECK: vmovn.i16 d{{[0-9]+}}, q{{[0-9]+}} 4834uint8x8_t test_vmovn_u16(uint16x8_t a) { 4835 return vmovn_u16(a); 4836} 4837 4838// CHECK-LABEL: test_vmovn_u32 4839// CHECK: vmovn.i32 d{{[0-9]+}}, q{{[0-9]+}} 4840uint16x4_t test_vmovn_u32(uint32x4_t a) { 4841 return vmovn_u32(a); 4842} 4843 4844// CHECK-LABEL: test_vmovn_u64 4845// CHECK: vmovn.i64 d{{[0-9]+}}, q{{[0-9]+}} 4846uint32x2_t test_vmovn_u64(uint64x2_t a) { 4847 return vmovn_u64(a); 4848} 4849 4850 4851// CHECK-LABEL: test_vmov_n_u8 4852// CHECK: vmov 4853uint8x8_t test_vmov_n_u8(uint8_t a) { 4854 return vmov_n_u8(a); 4855} 4856 4857// CHECK-LABEL: test_vmov_n_u16 4858// CHECK: vmov 4859uint16x4_t test_vmov_n_u16(uint16_t a) { 4860 return vmov_n_u16(a); 4861} 4862 4863// CHECK-LABEL: test_vmov_n_u32 4864// CHECK: vmov 4865uint32x2_t test_vmov_n_u32(uint32_t a) { 4866 return vmov_n_u32(a); 4867} 4868 4869// CHECK-LABEL: test_vmov_n_s8 4870// CHECK: vmov 4871int8x8_t test_vmov_n_s8(int8_t a) { 4872 return vmov_n_s8(a); 4873} 4874 4875// CHECK-LABEL: test_vmov_n_s16 4876// CHECK: vmov 4877int16x4_t test_vmov_n_s16(int16_t a) { 4878 return vmov_n_s16(a); 4879} 4880 4881// CHECK-LABEL: test_vmov_n_s32 4882// CHECK: vmov 4883int32x2_t test_vmov_n_s32(int32_t a) { 4884 return vmov_n_s32(a); 4885} 4886 4887// CHECK-LABEL: test_vmov_n_p8 4888// CHECK: vmov 4889poly8x8_t test_vmov_n_p8(poly8_t a) { 4890 return vmov_n_p8(a); 4891} 4892 4893// CHECK-LABEL: test_vmov_n_p16 4894// CHECK: vmov 4895poly16x4_t test_vmov_n_p16(poly16_t a) { 4896 return vmov_n_p16(a); 4897} 4898 4899// CHECK-LABEL: test_vmov_n_f16 4900// CHECK: vld1.16 {{{d[0-9]+\[\]}}} 4901float16x4_t test_vmov_n_f16(float16_t *a) { 4902 return vmov_n_f16(*a); 4903} 4904 4905// CHECK-LABEL: test_vmov_n_f32 4906// CHECK: vmov 4907float32x2_t test_vmov_n_f32(float32_t a) { 4908 return vmov_n_f32(a); 4909} 4910 4911// CHECK-LABEL: test_vmovq_n_u8 4912// CHECK: vmov 4913uint8x16_t test_vmovq_n_u8(uint8_t a) { 4914 return vmovq_n_u8(a); 4915} 4916 4917// CHECK-LABEL: test_vmovq_n_u16 4918// CHECK: vmov 4919uint16x8_t test_vmovq_n_u16(uint16_t a) { 4920 return vmovq_n_u16(a); 4921} 4922 4923// CHECK-LABEL: test_vmovq_n_u32 4924// CHECK: vmov 4925uint32x4_t test_vmovq_n_u32(uint32_t a) { 4926 return vmovq_n_u32(a); 4927} 4928 4929// CHECK-LABEL: test_vmovq_n_s8 4930// CHECK: vmov 4931int8x16_t test_vmovq_n_s8(int8_t a) { 4932 return vmovq_n_s8(a); 4933} 4934 4935// CHECK-LABEL: test_vmovq_n_s16 4936// CHECK: vmov 4937int16x8_t test_vmovq_n_s16(int16_t a) { 4938 return vmovq_n_s16(a); 4939} 4940 4941// CHECK-LABEL: test_vmovq_n_s32 4942// CHECK: vmov 4943int32x4_t test_vmovq_n_s32(int32_t a) { 4944 return vmovq_n_s32(a); 4945} 4946 4947// CHECK-LABEL: test_vmovq_n_p8 4948// CHECK: vmov 4949poly8x16_t test_vmovq_n_p8(poly8_t a) { 4950 return vmovq_n_p8(a); 4951} 4952 4953// CHECK-LABEL: test_vmovq_n_p16 4954// CHECK: vmov 4955poly16x8_t test_vmovq_n_p16(poly16_t a) { 4956 return vmovq_n_p16(a); 4957} 4958 4959// CHECK-LABEL: test_vmovq_n_f16 4960// CHECK: vld1.16 {{{d[0-9]+\[\], d[0-9]+\[\]}}} 4961float16x8_t test_vmovq_n_f16(float16_t *a) { 4962 return vmovq_n_f16(*a); 4963} 4964 4965// CHECK-LABEL: test_vmovq_n_f32 4966// CHECK: vmov 4967float32x4_t test_vmovq_n_f32(float32_t a) { 4968 return vmovq_n_f32(a); 4969} 4970 4971// CHECK-LABEL: test_vmov_n_s64 4972// CHECK: vmov 4973int64x1_t test_vmov_n_s64(int64_t a) { 4974 return vmov_n_s64(a); 4975} 4976 4977// CHECK-LABEL: test_vmov_n_u64 4978// CHECK: vmov 4979uint64x1_t test_vmov_n_u64(uint64_t a) { 4980 return vmov_n_u64(a); 4981} 4982 4983// CHECK-LABEL: test_vmovq_n_s64 4984// CHECK: vmov 4985int64x2_t test_vmovq_n_s64(int64_t a) { 4986 return vmovq_n_s64(a); 4987} 4988 4989// CHECK-LABEL: test_vmovq_n_u64 4990// CHECK: vmov 4991uint64x2_t test_vmovq_n_u64(uint64_t a) { 4992 return vmovq_n_u64(a); 4993} 4994 4995 4996// CHECK-LABEL: test_vmul_s8 4997// CHECK: vmul.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4998int8x8_t test_vmul_s8(int8x8_t a, int8x8_t b) { 4999 return vmul_s8(a, b); 5000} 5001 5002// CHECK-LABEL: test_vmul_s16 5003// CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5004int16x4_t test_vmul_s16(int16x4_t a, int16x4_t b) { 5005 return vmul_s16(a, b); 5006} 5007 5008// CHECK-LABEL: test_vmul_s32 5009// CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5010int32x2_t test_vmul_s32(int32x2_t a, int32x2_t b) { 5011 return vmul_s32(a, b); 5012} 5013 5014// CHECK-LABEL: test_vmul_f32 5015// CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5016float32x2_t test_vmul_f32(float32x2_t a, float32x2_t b) { 5017 return vmul_f32(a, b); 5018} 5019 5020// CHECK-LABEL: test_vmul_u8 5021// CHECK: vmul.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5022uint8x8_t test_vmul_u8(uint8x8_t a, uint8x8_t b) { 5023 return vmul_u8(a, b); 5024} 5025 5026// CHECK-LABEL: test_vmul_u16 5027// CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5028uint16x4_t test_vmul_u16(uint16x4_t a, uint16x4_t b) { 5029 return vmul_u16(a, b); 5030} 5031 5032// CHECK-LABEL: test_vmul_u32 5033// CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5034uint32x2_t test_vmul_u32(uint32x2_t a, uint32x2_t b) { 5035 return vmul_u32(a, b); 5036} 5037 5038// CHECK-LABEL: test_vmulq_s8 5039// CHECK: vmul.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5040int8x16_t test_vmulq_s8(int8x16_t a, int8x16_t b) { 5041 return vmulq_s8(a, b); 5042} 5043 5044// CHECK-LABEL: test_vmulq_s16 5045// CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5046int16x8_t test_vmulq_s16(int16x8_t a, int16x8_t b) { 5047 return vmulq_s16(a, b); 5048} 5049 5050// CHECK-LABEL: test_vmulq_s32 5051// CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5052int32x4_t test_vmulq_s32(int32x4_t a, int32x4_t b) { 5053 return vmulq_s32(a, b); 5054} 5055 5056// CHECK-LABEL: test_vmulq_f32 5057// CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5058float32x4_t test_vmulq_f32(float32x4_t a, float32x4_t b) { 5059 return vmulq_f32(a, b); 5060} 5061 5062// CHECK-LABEL: test_vmulq_u8 5063// CHECK: vmul.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5064uint8x16_t test_vmulq_u8(uint8x16_t a, uint8x16_t b) { 5065 return vmulq_u8(a, b); 5066} 5067 5068// CHECK-LABEL: test_vmulq_u16 5069// CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5070uint16x8_t test_vmulq_u16(uint16x8_t a, uint16x8_t b) { 5071 return vmulq_u16(a, b); 5072} 5073 5074// CHECK-LABEL: test_vmulq_u32 5075// CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5076uint32x4_t test_vmulq_u32(uint32x4_t a, uint32x4_t b) { 5077 return vmulq_u32(a, b); 5078} 5079 5080 5081// CHECK-LABEL: test_vmull_s8 5082// CHECK: vmull.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5083int16x8_t test_vmull_s8(int8x8_t a, int8x8_t b) { 5084 return vmull_s8(a, b); 5085} 5086 5087// CHECK-LABEL: test_vmull_s16 5088// CHECK: vmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5089int32x4_t test_vmull_s16(int16x4_t a, int16x4_t b) { 5090 return vmull_s16(a, b); 5091} 5092 5093// CHECK-LABEL: test_vmull_s32 5094// CHECK: vmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5095int64x2_t test_vmull_s32(int32x2_t a, int32x2_t b) { 5096 return vmull_s32(a, b); 5097} 5098 5099// CHECK-LABEL: test_vmull_u8 5100// CHECK: vmull.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5101uint16x8_t test_vmull_u8(uint8x8_t a, uint8x8_t b) { 5102 return vmull_u8(a, b); 5103} 5104 5105// CHECK-LABEL: test_vmull_u16 5106// CHECK: vmull.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5107uint32x4_t test_vmull_u16(uint16x4_t a, uint16x4_t b) { 5108 return vmull_u16(a, b); 5109} 5110 5111// CHECK-LABEL: test_vmull_u32 5112// CHECK: vmull.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5113uint64x2_t test_vmull_u32(uint32x2_t a, uint32x2_t b) { 5114 return vmull_u32(a, b); 5115} 5116 5117// CHECK-LABEL: test_vmull_p8 5118// CHECK: vmull.p8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5119poly16x8_t test_vmull_p8(poly8x8_t a, poly8x8_t b) { 5120 return vmull_p8(a, b); 5121} 5122 5123 5124// CHECK-LABEL: test_vmull_lane_s16 5125// CHECK: vmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5126int32x4_t test_vmull_lane_s16(int16x4_t a, int16x4_t b) { 5127 return vmull_lane_s16(a, b, 3); 5128} 5129 5130// CHECK-LABEL: test_vmull_lane_s32 5131// CHECK: vmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5132int64x2_t test_vmull_lane_s32(int32x2_t a, int32x2_t b) { 5133 return vmull_lane_s32(a, b, 1); 5134} 5135 5136// CHECK-LABEL: test_vmull_lane_u16 5137// CHECK: vmull.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5138uint32x4_t test_vmull_lane_u16(uint16x4_t a, uint16x4_t b) { 5139 return vmull_lane_u16(a, b, 3); 5140} 5141 5142// CHECK-LABEL: test_vmull_lane_u32 5143// CHECK: vmull.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5144uint64x2_t test_vmull_lane_u32(uint32x2_t a, uint32x2_t b) { 5145 return vmull_lane_u32(a, b, 1); 5146} 5147 5148 5149// CHECK-LABEL: test_vmull_n_s16 5150// CHECK: vmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5151int32x4_t test_vmull_n_s16(int16x4_t a, int16_t b) { 5152 return vmull_n_s16(a, b); 5153} 5154 5155// CHECK-LABEL: test_vmull_n_s32 5156// CHECK: vmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5157int64x2_t test_vmull_n_s32(int32x2_t a, int32_t b) { 5158 return vmull_n_s32(a, b); 5159} 5160 5161// CHECK-LABEL: test_vmull_n_u16 5162// CHECK: vmull.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5163uint32x4_t test_vmull_n_u16(uint16x4_t a, uint16_t b) { 5164 return vmull_n_u16(a, b); 5165} 5166 5167// CHECK-LABEL: test_vmull_n_u32 5168// CHECK: vmull.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5169uint64x2_t test_vmull_n_u32(uint32x2_t a, uint32_t b) { 5170 return vmull_n_u32(a, b); 5171} 5172 5173 5174// CHECK-LABEL: test_vmul_p8 5175// CHECK: vmul.p8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5176poly8x8_t test_vmul_p8(poly8x8_t a, poly8x8_t b) { 5177 return vmul_p8(a, b); 5178} 5179 5180// CHECK-LABEL: test_vmulq_p8 5181// CHECK: vmul.p8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5182poly8x16_t test_vmulq_p8(poly8x16_t a, poly8x16_t b) { 5183 return vmulq_p8(a, b); 5184} 5185 5186 5187// CHECK-LABEL: test_vmul_lane_s16 5188// CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5189int16x4_t test_vmul_lane_s16(int16x4_t a, int16x4_t b) { 5190 return vmul_lane_s16(a, b, 3); 5191} 5192 5193// CHECK-LABEL: test_vmul_lane_s32 5194// CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5195int32x2_t test_vmul_lane_s32(int32x2_t a, int32x2_t b) { 5196 return vmul_lane_s32(a, b, 1); 5197} 5198 5199// CHECK-LABEL: test_vmul_lane_f32 5200// CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5201float32x2_t test_vmul_lane_f32(float32x2_t a, float32x2_t b) { 5202 return vmul_lane_f32(a, b, 1); 5203} 5204 5205// CHECK-LABEL: test_vmul_lane_u16 5206// CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5207uint16x4_t test_vmul_lane_u16(uint16x4_t a, uint16x4_t b) { 5208 return vmul_lane_u16(a, b, 3); 5209} 5210 5211// CHECK-LABEL: test_vmul_lane_u32 5212// CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5213uint32x2_t test_vmul_lane_u32(uint32x2_t a, uint32x2_t b) { 5214 return vmul_lane_u32(a, b, 1); 5215} 5216 5217// CHECK-LABEL: test_vmulq_lane_s16 5218// CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5219int16x8_t test_vmulq_lane_s16(int16x8_t a, int16x4_t b) { 5220 return vmulq_lane_s16(a, b, 3); 5221} 5222 5223// CHECK-LABEL: test_vmulq_lane_s32 5224// CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5225int32x4_t test_vmulq_lane_s32(int32x4_t a, int32x2_t b) { 5226 return vmulq_lane_s32(a, b, 1); 5227} 5228 5229// CHECK-LABEL: test_vmulq_lane_f32 5230// CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5231float32x4_t test_vmulq_lane_f32(float32x4_t a, float32x2_t b) { 5232 return vmulq_lane_f32(a, b, 1); 5233} 5234 5235// CHECK-LABEL: test_vmulq_lane_u16 5236// CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5237uint16x8_t test_vmulq_lane_u16(uint16x8_t a, uint16x4_t b) { 5238 return vmulq_lane_u16(a, b, 3); 5239} 5240 5241// CHECK-LABEL: test_vmulq_lane_u32 5242// CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5243uint32x4_t test_vmulq_lane_u32(uint32x4_t a, uint32x2_t b) { 5244 return vmulq_lane_u32(a, b, 1); 5245} 5246 5247 5248// CHECK-LABEL: test_vmul_n_s16 5249// CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5250int16x4_t test_vmul_n_s16(int16x4_t a, int16_t b) { 5251 return vmul_n_s16(a, b); 5252} 5253 5254// CHECK-LABEL: test_vmul_n_s32 5255// CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5256int32x2_t test_vmul_n_s32(int32x2_t a, int32_t b) { 5257 return vmul_n_s32(a, b); 5258} 5259 5260// CHECK-LABEL: test_vmul_n_f32 5261// CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5262float32x2_t test_vmul_n_f32(float32x2_t a, float32_t b) { 5263 return vmul_n_f32(a, b); 5264} 5265 5266// CHECK-LABEL: test_vmul_n_u16 5267// CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5268uint16x4_t test_vmul_n_u16(uint16x4_t a, uint16_t b) { 5269 return vmul_n_u16(a, b); 5270} 5271 5272// CHECK-LABEL: test_vmul_n_u32 5273// CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5274uint32x2_t test_vmul_n_u32(uint32x2_t a, uint32_t b) { 5275 return vmul_n_u32(a, b); 5276} 5277 5278// CHECK-LABEL: test_vmulq_n_s16 5279// CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5280int16x8_t test_vmulq_n_s16(int16x8_t a, int16_t b) { 5281 return vmulq_n_s16(a, b); 5282} 5283 5284// CHECK-LABEL: test_vmulq_n_s32 5285// CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5286int32x4_t test_vmulq_n_s32(int32x4_t a, int32_t b) { 5287 return vmulq_n_s32(a, b); 5288} 5289 5290// CHECK-LABEL: test_vmulq_n_f32 5291// CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[0] 5292float32x4_t test_vmulq_n_f32(float32x4_t a, float32_t b) { 5293 return vmulq_n_f32(a, b); 5294} 5295 5296// CHECK-LABEL: test_vmulq_n_u16 5297// CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5298uint16x8_t test_vmulq_n_u16(uint16x8_t a, uint16_t b) { 5299 return vmulq_n_u16(a, b); 5300} 5301 5302// CHECK-LABEL: test_vmulq_n_u32 5303// CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5304uint32x4_t test_vmulq_n_u32(uint32x4_t a, uint32_t b) { 5305 return vmulq_n_u32(a, b); 5306} 5307 5308 5309// CHECK-LABEL: test_vmvn_s8 5310// CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}} 5311int8x8_t test_vmvn_s8(int8x8_t a) { 5312 return vmvn_s8(a); 5313} 5314 5315// CHECK-LABEL: test_vmvn_s16 5316// CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}} 5317int16x4_t test_vmvn_s16(int16x4_t a) { 5318 return vmvn_s16(a); 5319} 5320 5321// CHECK-LABEL: test_vmvn_s32 5322// CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}} 5323int32x2_t test_vmvn_s32(int32x2_t a) { 5324 return vmvn_s32(a); 5325} 5326 5327// CHECK-LABEL: test_vmvn_u8 5328// CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}} 5329uint8x8_t test_vmvn_u8(uint8x8_t a) { 5330 return vmvn_u8(a); 5331} 5332 5333// CHECK-LABEL: test_vmvn_u16 5334// CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}} 5335uint16x4_t test_vmvn_u16(uint16x4_t a) { 5336 return vmvn_u16(a); 5337} 5338 5339// CHECK-LABEL: test_vmvn_u32 5340// CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}} 5341uint32x2_t test_vmvn_u32(uint32x2_t a) { 5342 return vmvn_u32(a); 5343} 5344 5345// CHECK-LABEL: test_vmvn_p8 5346// CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}} 5347poly8x8_t test_vmvn_p8(poly8x8_t a) { 5348 return vmvn_p8(a); 5349} 5350 5351// CHECK-LABEL: test_vmvnq_s8 5352// CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}} 5353int8x16_t test_vmvnq_s8(int8x16_t a) { 5354 return vmvnq_s8(a); 5355} 5356 5357// CHECK-LABEL: test_vmvnq_s16 5358// CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}} 5359int16x8_t test_vmvnq_s16(int16x8_t a) { 5360 return vmvnq_s16(a); 5361} 5362 5363// CHECK-LABEL: test_vmvnq_s32 5364// CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}} 5365int32x4_t test_vmvnq_s32(int32x4_t a) { 5366 return vmvnq_s32(a); 5367} 5368 5369// CHECK-LABEL: test_vmvnq_u8 5370// CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}} 5371uint8x16_t test_vmvnq_u8(uint8x16_t a) { 5372 return vmvnq_u8(a); 5373} 5374 5375// CHECK-LABEL: test_vmvnq_u16 5376// CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}} 5377uint16x8_t test_vmvnq_u16(uint16x8_t a) { 5378 return vmvnq_u16(a); 5379} 5380 5381// CHECK-LABEL: test_vmvnq_u32 5382// CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}} 5383uint32x4_t test_vmvnq_u32(uint32x4_t a) { 5384 return vmvnq_u32(a); 5385} 5386 5387// CHECK-LABEL: test_vmvnq_p8 5388// CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}} 5389poly8x16_t test_vmvnq_p8(poly8x16_t a) { 5390 return vmvnq_p8(a); 5391} 5392 5393 5394// CHECK-LABEL: test_vneg_s8 5395// CHECK: vneg.s8 d{{[0-9]+}}, d{{[0-9]+}} 5396int8x8_t test_vneg_s8(int8x8_t a) { 5397 return vneg_s8(a); 5398} 5399 5400// CHECK-LABEL: test_vneg_s16 5401// CHECK: vneg.s16 d{{[0-9]+}}, d{{[0-9]+}} 5402int16x4_t test_vneg_s16(int16x4_t a) { 5403 return vneg_s16(a); 5404} 5405 5406// CHECK-LABEL: test_vneg_s32 5407// CHECK: vneg.s32 d{{[0-9]+}}, d{{[0-9]+}} 5408int32x2_t test_vneg_s32(int32x2_t a) { 5409 return vneg_s32(a); 5410} 5411 5412// CHECK-LABEL: test_vneg_f32 5413// CHECK: vneg.f32 d{{[0-9]+}}, d{{[0-9]+}} 5414float32x2_t test_vneg_f32(float32x2_t a) { 5415 return vneg_f32(a); 5416} 5417 5418// CHECK-LABEL: test_vnegq_s8 5419// CHECK: vneg.s8 q{{[0-9]+}}, q{{[0-9]+}} 5420int8x16_t test_vnegq_s8(int8x16_t a) { 5421 return vnegq_s8(a); 5422} 5423 5424// CHECK-LABEL: test_vnegq_s16 5425// CHECK: vneg.s16 q{{[0-9]+}}, q{{[0-9]+}} 5426int16x8_t test_vnegq_s16(int16x8_t a) { 5427 return vnegq_s16(a); 5428} 5429 5430// CHECK-LABEL: test_vnegq_s32 5431// CHECK: vneg.s32 q{{[0-9]+}}, q{{[0-9]+}} 5432int32x4_t test_vnegq_s32(int32x4_t a) { 5433 return vnegq_s32(a); 5434} 5435 5436// CHECK-LABEL: test_vnegq_f32 5437// CHECK: vneg.f32 q{{[0-9]+}}, q{{[0-9]+}} 5438float32x4_t test_vnegq_f32(float32x4_t a) { 5439 return vnegq_f32(a); 5440} 5441 5442 5443// CHECK-LABEL: test_vorn_s8 5444// CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5445int8x8_t test_vorn_s8(int8x8_t a, int8x8_t b) { 5446 return vorn_s8(a, b); 5447} 5448 5449// CHECK-LABEL: test_vorn_s16 5450// CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5451int16x4_t test_vorn_s16(int16x4_t a, int16x4_t b) { 5452 return vorn_s16(a, b); 5453} 5454 5455// CHECK-LABEL: test_vorn_s32 5456// CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5457int32x2_t test_vorn_s32(int32x2_t a, int32x2_t b) { 5458 return vorn_s32(a, b); 5459} 5460 5461// CHECK-LABEL: test_vorn_s64 5462// CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5463int64x1_t test_vorn_s64(int64x1_t a, int64x1_t b) { 5464 return vorn_s64(a, b); 5465} 5466 5467// CHECK-LABEL: test_vorn_u8 5468// CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5469uint8x8_t test_vorn_u8(uint8x8_t a, uint8x8_t b) { 5470 return vorn_u8(a, b); 5471} 5472 5473// CHECK-LABEL: test_vorn_u16 5474// CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5475uint16x4_t test_vorn_u16(uint16x4_t a, uint16x4_t b) { 5476 return vorn_u16(a, b); 5477} 5478 5479// CHECK-LABEL: test_vorn_u32 5480// CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5481uint32x2_t test_vorn_u32(uint32x2_t a, uint32x2_t b) { 5482 return vorn_u32(a, b); 5483} 5484 5485// CHECK-LABEL: test_vorn_u64 5486// CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5487uint64x1_t test_vorn_u64(uint64x1_t a, uint64x1_t b) { 5488 return vorn_u64(a, b); 5489} 5490 5491// CHECK-LABEL: test_vornq_s8 5492// CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5493int8x16_t test_vornq_s8(int8x16_t a, int8x16_t b) { 5494 return vornq_s8(a, b); 5495} 5496 5497// CHECK-LABEL: test_vornq_s16 5498// CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5499int16x8_t test_vornq_s16(int16x8_t a, int16x8_t b) { 5500 return vornq_s16(a, b); 5501} 5502 5503// CHECK-LABEL: test_vornq_s32 5504// CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5505int32x4_t test_vornq_s32(int32x4_t a, int32x4_t b) { 5506 return vornq_s32(a, b); 5507} 5508 5509// CHECK-LABEL: test_vornq_s64 5510// CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5511int64x2_t test_vornq_s64(int64x2_t a, int64x2_t b) { 5512 return vornq_s64(a, b); 5513} 5514 5515// CHECK-LABEL: test_vornq_u8 5516// CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5517uint8x16_t test_vornq_u8(uint8x16_t a, uint8x16_t b) { 5518 return vornq_u8(a, b); 5519} 5520 5521// CHECK-LABEL: test_vornq_u16 5522// CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5523uint16x8_t test_vornq_u16(uint16x8_t a, uint16x8_t b) { 5524 return vornq_u16(a, b); 5525} 5526 5527// CHECK-LABEL: test_vornq_u32 5528// CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5529uint32x4_t test_vornq_u32(uint32x4_t a, uint32x4_t b) { 5530 return vornq_u32(a, b); 5531} 5532 5533// CHECK-LABEL: test_vornq_u64 5534// CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5535uint64x2_t test_vornq_u64(uint64x2_t a, uint64x2_t b) { 5536 return vornq_u64(a, b); 5537} 5538 5539 5540// CHECK-LABEL: test_vorr_s8 5541// CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5542int8x8_t test_vorr_s8(int8x8_t a, int8x8_t b) { 5543 return vorr_s8(a, b); 5544} 5545 5546// CHECK-LABEL: test_vorr_s16 5547// CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5548int16x4_t test_vorr_s16(int16x4_t a, int16x4_t b) { 5549 return vorr_s16(a, b); 5550} 5551 5552// CHECK-LABEL: test_vorr_s32 5553// CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5554int32x2_t test_vorr_s32(int32x2_t a, int32x2_t b) { 5555 return vorr_s32(a, b); 5556} 5557 5558// CHECK-LABEL: test_vorr_s64 5559// CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5560int64x1_t test_vorr_s64(int64x1_t a, int64x1_t b) { 5561 return vorr_s64(a, b); 5562} 5563 5564// CHECK-LABEL: test_vorr_u8 5565// CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5566uint8x8_t test_vorr_u8(uint8x8_t a, uint8x8_t b) { 5567 return vorr_u8(a, b); 5568} 5569 5570// CHECK-LABEL: test_vorr_u16 5571// CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5572uint16x4_t test_vorr_u16(uint16x4_t a, uint16x4_t b) { 5573 return vorr_u16(a, b); 5574} 5575 5576// CHECK-LABEL: test_vorr_u32 5577// CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5578uint32x2_t test_vorr_u32(uint32x2_t a, uint32x2_t b) { 5579 return vorr_u32(a, b); 5580} 5581 5582// CHECK-LABEL: test_vorr_u64 5583// CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5584uint64x1_t test_vorr_u64(uint64x1_t a, uint64x1_t b) { 5585 return vorr_u64(a, b); 5586} 5587 5588// CHECK-LABEL: test_vorrq_s8 5589// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5590int8x16_t test_vorrq_s8(int8x16_t a, int8x16_t b) { 5591 return vorrq_s8(a, b); 5592} 5593 5594// CHECK-LABEL: test_vorrq_s16 5595// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5596int16x8_t test_vorrq_s16(int16x8_t a, int16x8_t b) { 5597 return vorrq_s16(a, b); 5598} 5599 5600// CHECK-LABEL: test_vorrq_s32 5601// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5602int32x4_t test_vorrq_s32(int32x4_t a, int32x4_t b) { 5603 return vorrq_s32(a, b); 5604} 5605 5606// CHECK-LABEL: test_vorrq_s64 5607// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5608int64x2_t test_vorrq_s64(int64x2_t a, int64x2_t b) { 5609 return vorrq_s64(a, b); 5610} 5611 5612// CHECK-LABEL: test_vorrq_u8 5613// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5614uint8x16_t test_vorrq_u8(uint8x16_t a, uint8x16_t b) { 5615 return vorrq_u8(a, b); 5616} 5617 5618// CHECK-LABEL: test_vorrq_u16 5619// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5620uint16x8_t test_vorrq_u16(uint16x8_t a, uint16x8_t b) { 5621 return vorrq_u16(a, b); 5622} 5623 5624// CHECK-LABEL: test_vorrq_u32 5625// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5626uint32x4_t test_vorrq_u32(uint32x4_t a, uint32x4_t b) { 5627 return vorrq_u32(a, b); 5628} 5629 5630// CHECK-LABEL: test_vorrq_u64 5631// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5632uint64x2_t test_vorrq_u64(uint64x2_t a, uint64x2_t b) { 5633 return vorrq_u64(a, b); 5634} 5635 5636 5637// CHECK-LABEL: test_vpadal_s8 5638// CHECK: vpadal.s8 d{{[0-9]+}}, d{{[0-9]+}} 5639int16x4_t test_vpadal_s8(int16x4_t a, int8x8_t b) { 5640 return vpadal_s8(a, b); 5641} 5642 5643// CHECK-LABEL: test_vpadal_s16 5644// CHECK: vpadal.s16 d{{[0-9]+}}, d{{[0-9]+}} 5645int32x2_t test_vpadal_s16(int32x2_t a, int16x4_t b) { 5646 return vpadal_s16(a, b); 5647} 5648 5649// CHECK-LABEL: test_vpadal_s32 5650// CHECK: vpadal.s32 d{{[0-9]+}}, d{{[0-9]+}} 5651int64x1_t test_vpadal_s32(int64x1_t a, int32x2_t b) { 5652 return vpadal_s32(a, b); 5653} 5654 5655// CHECK-LABEL: test_vpadal_u8 5656// CHECK: vpadal.u8 d{{[0-9]+}}, d{{[0-9]+}} 5657uint16x4_t test_vpadal_u8(uint16x4_t a, uint8x8_t b) { 5658 return vpadal_u8(a, b); 5659} 5660 5661// CHECK-LABEL: test_vpadal_u16 5662// CHECK: vpadal.u16 d{{[0-9]+}}, d{{[0-9]+}} 5663uint32x2_t test_vpadal_u16(uint32x2_t a, uint16x4_t b) { 5664 return vpadal_u16(a, b); 5665} 5666 5667// CHECK-LABEL: test_vpadal_u32 5668// CHECK: vpadal.u32 d{{[0-9]+}}, d{{[0-9]+}} 5669uint64x1_t test_vpadal_u32(uint64x1_t a, uint32x2_t b) { 5670 return vpadal_u32(a, b); 5671} 5672 5673// CHECK-LABEL: test_vpadalq_s8 5674// CHECK: vpadal.s8 q{{[0-9]+}}, q{{[0-9]+}} 5675int16x8_t test_vpadalq_s8(int16x8_t a, int8x16_t b) { 5676 return vpadalq_s8(a, b); 5677} 5678 5679// CHECK-LABEL: test_vpadalq_s16 5680// CHECK: vpadal.s16 q{{[0-9]+}}, q{{[0-9]+}} 5681int32x4_t test_vpadalq_s16(int32x4_t a, int16x8_t b) { 5682 return vpadalq_s16(a, b); 5683} 5684 5685// CHECK-LABEL: test_vpadalq_s32 5686// CHECK: vpadal.s32 q{{[0-9]+}}, q{{[0-9]+}} 5687int64x2_t test_vpadalq_s32(int64x2_t a, int32x4_t b) { 5688 return vpadalq_s32(a, b); 5689} 5690 5691// CHECK-LABEL: test_vpadalq_u8 5692// CHECK: vpadal.u8 q{{[0-9]+}}, q{{[0-9]+}} 5693uint16x8_t test_vpadalq_u8(uint16x8_t a, uint8x16_t b) { 5694 return vpadalq_u8(a, b); 5695} 5696 5697// CHECK-LABEL: test_vpadalq_u16 5698// CHECK: vpadal.u16 q{{[0-9]+}}, q{{[0-9]+}} 5699uint32x4_t test_vpadalq_u16(uint32x4_t a, uint16x8_t b) { 5700 return vpadalq_u16(a, b); 5701} 5702 5703// CHECK-LABEL: test_vpadalq_u32 5704// CHECK: vpadal.u32 q{{[0-9]+}}, q{{[0-9]+}} 5705uint64x2_t test_vpadalq_u32(uint64x2_t a, uint32x4_t b) { 5706 return vpadalq_u32(a, b); 5707} 5708 5709 5710// CHECK-LABEL: test_vpadd_s8 5711// CHECK: vpadd.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5712int8x8_t test_vpadd_s8(int8x8_t a, int8x8_t b) { 5713 return vpadd_s8(a, b); 5714} 5715 5716// CHECK-LABEL: test_vpadd_s16 5717// CHECK: vpadd.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5718int16x4_t test_vpadd_s16(int16x4_t a, int16x4_t b) { 5719 return vpadd_s16(a, b); 5720} 5721 5722// CHECK-LABEL: test_vpadd_s32 5723// CHECK: vpadd.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5724int32x2_t test_vpadd_s32(int32x2_t a, int32x2_t b) { 5725 return vpadd_s32(a, b); 5726} 5727 5728// CHECK-LABEL: test_vpadd_u8 5729// CHECK: vpadd.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5730uint8x8_t test_vpadd_u8(uint8x8_t a, uint8x8_t b) { 5731 return vpadd_u8(a, b); 5732} 5733 5734// CHECK-LABEL: test_vpadd_u16 5735// CHECK: vpadd.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5736uint16x4_t test_vpadd_u16(uint16x4_t a, uint16x4_t b) { 5737 return vpadd_u16(a, b); 5738} 5739 5740// CHECK-LABEL: test_vpadd_u32 5741// CHECK: vpadd.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5742uint32x2_t test_vpadd_u32(uint32x2_t a, uint32x2_t b) { 5743 return vpadd_u32(a, b); 5744} 5745 5746// CHECK-LABEL: test_vpadd_f32 5747// CHECK: vpadd.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5748float32x2_t test_vpadd_f32(float32x2_t a, float32x2_t b) { 5749 return vpadd_f32(a, b); 5750} 5751 5752 5753// CHECK-LABEL: test_vpaddl_s8 5754// CHECK: vpaddl.s8 d{{[0-9]+}}, d{{[0-9]+}} 5755int16x4_t test_vpaddl_s8(int8x8_t a) { 5756 return vpaddl_s8(a); 5757} 5758 5759// CHECK-LABEL: test_vpaddl_s16 5760// CHECK: vpaddl.s16 d{{[0-9]+}}, d{{[0-9]+}} 5761int32x2_t test_vpaddl_s16(int16x4_t a) { 5762 return vpaddl_s16(a); 5763} 5764 5765// CHECK-LABEL: test_vpaddl_s32 5766// CHECK: vpaddl.s32 d{{[0-9]+}}, d{{[0-9]+}} 5767int64x1_t test_vpaddl_s32(int32x2_t a) { 5768 return vpaddl_s32(a); 5769} 5770 5771// CHECK-LABEL: test_vpaddl_u8 5772// CHECK: vpaddl.u8 d{{[0-9]+}}, d{{[0-9]+}} 5773uint16x4_t test_vpaddl_u8(uint8x8_t a) { 5774 return vpaddl_u8(a); 5775} 5776 5777// CHECK-LABEL: test_vpaddl_u16 5778// CHECK: vpaddl.u16 d{{[0-9]+}}, d{{[0-9]+}} 5779uint32x2_t test_vpaddl_u16(uint16x4_t a) { 5780 return vpaddl_u16(a); 5781} 5782 5783// CHECK-LABEL: test_vpaddl_u32 5784// CHECK: vpaddl.u32 d{{[0-9]+}}, d{{[0-9]+}} 5785uint64x1_t test_vpaddl_u32(uint32x2_t a) { 5786 return vpaddl_u32(a); 5787} 5788 5789// CHECK-LABEL: test_vpaddlq_s8 5790// CHECK: vpaddl.s8 q{{[0-9]+}}, q{{[0-9]+}} 5791int16x8_t test_vpaddlq_s8(int8x16_t a) { 5792 return vpaddlq_s8(a); 5793} 5794 5795// CHECK-LABEL: test_vpaddlq_s16 5796// CHECK: vpaddl.s16 q{{[0-9]+}}, q{{[0-9]+}} 5797int32x4_t test_vpaddlq_s16(int16x8_t a) { 5798 return vpaddlq_s16(a); 5799} 5800 5801// CHECK-LABEL: test_vpaddlq_s32 5802// CHECK: vpaddl.s32 q{{[0-9]+}}, q{{[0-9]+}} 5803int64x2_t test_vpaddlq_s32(int32x4_t a) { 5804 return vpaddlq_s32(a); 5805} 5806 5807// CHECK-LABEL: test_vpaddlq_u8 5808// CHECK: vpaddl.u8 q{{[0-9]+}}, q{{[0-9]+}} 5809uint16x8_t test_vpaddlq_u8(uint8x16_t a) { 5810 return vpaddlq_u8(a); 5811} 5812 5813// CHECK-LABEL: test_vpaddlq_u16 5814// CHECK: vpaddl.u16 q{{[0-9]+}}, q{{[0-9]+}} 5815uint32x4_t test_vpaddlq_u16(uint16x8_t a) { 5816 return vpaddlq_u16(a); 5817} 5818 5819// CHECK-LABEL: test_vpaddlq_u32 5820// CHECK: vpaddl.u32 q{{[0-9]+}}, q{{[0-9]+}} 5821uint64x2_t test_vpaddlq_u32(uint32x4_t a) { 5822 return vpaddlq_u32(a); 5823} 5824 5825 5826// CHECK-LABEL: test_vpmax_s8 5827// CHECK: vpmax.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5828int8x8_t test_vpmax_s8(int8x8_t a, int8x8_t b) { 5829 return vpmax_s8(a, b); 5830} 5831 5832// CHECK-LABEL: test_vpmax_s16 5833// CHECK: vpmax.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5834int16x4_t test_vpmax_s16(int16x4_t a, int16x4_t b) { 5835 return vpmax_s16(a, b); 5836} 5837 5838// CHECK-LABEL: test_vpmax_s32 5839// CHECK: vpmax.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5840int32x2_t test_vpmax_s32(int32x2_t a, int32x2_t b) { 5841 return vpmax_s32(a, b); 5842} 5843 5844// CHECK-LABEL: test_vpmax_u8 5845// CHECK: vpmax.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5846uint8x8_t test_vpmax_u8(uint8x8_t a, uint8x8_t b) { 5847 return vpmax_u8(a, b); 5848} 5849 5850// CHECK-LABEL: test_vpmax_u16 5851// CHECK: vpmax.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5852uint16x4_t test_vpmax_u16(uint16x4_t a, uint16x4_t b) { 5853 return vpmax_u16(a, b); 5854} 5855 5856// CHECK-LABEL: test_vpmax_u32 5857// CHECK: vpmax.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5858uint32x2_t test_vpmax_u32(uint32x2_t a, uint32x2_t b) { 5859 return vpmax_u32(a, b); 5860} 5861 5862// CHECK-LABEL: test_vpmax_f32 5863// CHECK: vpmax.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5864float32x2_t test_vpmax_f32(float32x2_t a, float32x2_t b) { 5865 return vpmax_f32(a, b); 5866} 5867 5868 5869// CHECK-LABEL: test_vpmin_s8 5870// CHECK: vpmin.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5871int8x8_t test_vpmin_s8(int8x8_t a, int8x8_t b) { 5872 return vpmin_s8(a, b); 5873} 5874 5875// CHECK-LABEL: test_vpmin_s16 5876// CHECK: vpmin.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5877int16x4_t test_vpmin_s16(int16x4_t a, int16x4_t b) { 5878 return vpmin_s16(a, b); 5879} 5880 5881// CHECK-LABEL: test_vpmin_s32 5882// CHECK: vpmin.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5883int32x2_t test_vpmin_s32(int32x2_t a, int32x2_t b) { 5884 return vpmin_s32(a, b); 5885} 5886 5887// CHECK-LABEL: test_vpmin_u8 5888// CHECK: vpmin.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5889uint8x8_t test_vpmin_u8(uint8x8_t a, uint8x8_t b) { 5890 return vpmin_u8(a, b); 5891} 5892 5893// CHECK-LABEL: test_vpmin_u16 5894// CHECK: vpmin.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5895uint16x4_t test_vpmin_u16(uint16x4_t a, uint16x4_t b) { 5896 return vpmin_u16(a, b); 5897} 5898 5899// CHECK-LABEL: test_vpmin_u32 5900// CHECK: vpmin.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5901uint32x2_t test_vpmin_u32(uint32x2_t a, uint32x2_t b) { 5902 return vpmin_u32(a, b); 5903} 5904 5905// CHECK-LABEL: test_vpmin_f32 5906// CHECK: vpmin.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5907float32x2_t test_vpmin_f32(float32x2_t a, float32x2_t b) { 5908 return vpmin_f32(a, b); 5909} 5910 5911 5912// CHECK-LABEL: test_vqabs_s8 5913// CHECK: vqabs.s8 d{{[0-9]+}}, d{{[0-9]+}} 5914int8x8_t test_vqabs_s8(int8x8_t a) { 5915 return vqabs_s8(a); 5916} 5917 5918// CHECK-LABEL: test_vqabs_s16 5919// CHECK: vqabs.s16 d{{[0-9]+}}, d{{[0-9]+}} 5920int16x4_t test_vqabs_s16(int16x4_t a) { 5921 return vqabs_s16(a); 5922} 5923 5924// CHECK-LABEL: test_vqabs_s32 5925// CHECK: vqabs.s32 d{{[0-9]+}}, d{{[0-9]+}} 5926int32x2_t test_vqabs_s32(int32x2_t a) { 5927 return vqabs_s32(a); 5928} 5929 5930// CHECK-LABEL: test_vqabsq_s8 5931// CHECK: vqabs.s8 q{{[0-9]+}}, q{{[0-9]+}} 5932int8x16_t test_vqabsq_s8(int8x16_t a) { 5933 return vqabsq_s8(a); 5934} 5935 5936// CHECK-LABEL: test_vqabsq_s16 5937// CHECK: vqabs.s16 q{{[0-9]+}}, q{{[0-9]+}} 5938int16x8_t test_vqabsq_s16(int16x8_t a) { 5939 return vqabsq_s16(a); 5940} 5941 5942// CHECK-LABEL: test_vqabsq_s32 5943// CHECK: vqabs.s32 q{{[0-9]+}}, q{{[0-9]+}} 5944int32x4_t test_vqabsq_s32(int32x4_t a) { 5945 return vqabsq_s32(a); 5946} 5947 5948 5949// CHECK-LABEL: test_vqadd_s8 5950// CHECK: vqadd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5951int8x8_t test_vqadd_s8(int8x8_t a, int8x8_t b) { 5952 return vqadd_s8(a, b); 5953} 5954 5955// CHECK-LABEL: test_vqadd_s16 5956// CHECK: vqadd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5957int16x4_t test_vqadd_s16(int16x4_t a, int16x4_t b) { 5958 return vqadd_s16(a, b); 5959} 5960 5961// CHECK-LABEL: test_vqadd_s32 5962// CHECK: vqadd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5963int32x2_t test_vqadd_s32(int32x2_t a, int32x2_t b) { 5964 return vqadd_s32(a, b); 5965} 5966 5967// CHECK-LABEL: test_vqadd_s64 5968// CHECK: vqadd.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5969int64x1_t test_vqadd_s64(int64x1_t a, int64x1_t b) { 5970 return vqadd_s64(a, b); 5971} 5972 5973// CHECK-LABEL: test_vqadd_u8 5974// CHECK: vqadd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5975uint8x8_t test_vqadd_u8(uint8x8_t a, uint8x8_t b) { 5976 return vqadd_u8(a, b); 5977} 5978 5979// CHECK-LABEL: test_vqadd_u16 5980// CHECK: vqadd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5981uint16x4_t test_vqadd_u16(uint16x4_t a, uint16x4_t b) { 5982 return vqadd_u16(a, b); 5983} 5984 5985// CHECK-LABEL: test_vqadd_u32 5986// CHECK: vqadd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5987uint32x2_t test_vqadd_u32(uint32x2_t a, uint32x2_t b) { 5988 return vqadd_u32(a, b); 5989} 5990 5991// CHECK-LABEL: test_vqadd_u64 5992// CHECK: vqadd.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5993uint64x1_t test_vqadd_u64(uint64x1_t a, uint64x1_t b) { 5994 return vqadd_u64(a, b); 5995} 5996 5997// CHECK-LABEL: test_vqaddq_s8 5998// CHECK: vqadd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5999int8x16_t test_vqaddq_s8(int8x16_t a, int8x16_t b) { 6000 return vqaddq_s8(a, b); 6001} 6002 6003// CHECK-LABEL: test_vqaddq_s16 6004// CHECK: vqadd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6005int16x8_t test_vqaddq_s16(int16x8_t a, int16x8_t b) { 6006 return vqaddq_s16(a, b); 6007} 6008 6009// CHECK-LABEL: test_vqaddq_s32 6010// CHECK: vqadd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6011int32x4_t test_vqaddq_s32(int32x4_t a, int32x4_t b) { 6012 return vqaddq_s32(a, b); 6013} 6014 6015// CHECK-LABEL: test_vqaddq_s64 6016// CHECK: vqadd.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6017int64x2_t test_vqaddq_s64(int64x2_t a, int64x2_t b) { 6018 return vqaddq_s64(a, b); 6019} 6020 6021// CHECK-LABEL: test_vqaddq_u8 6022// CHECK: vqadd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6023uint8x16_t test_vqaddq_u8(uint8x16_t a, uint8x16_t b) { 6024 return vqaddq_u8(a, b); 6025} 6026 6027// CHECK-LABEL: test_vqaddq_u16 6028// CHECK: vqadd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6029uint16x8_t test_vqaddq_u16(uint16x8_t a, uint16x8_t b) { 6030 return vqaddq_u16(a, b); 6031} 6032 6033// CHECK-LABEL: test_vqaddq_u32 6034// CHECK: vqadd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6035uint32x4_t test_vqaddq_u32(uint32x4_t a, uint32x4_t b) { 6036 return vqaddq_u32(a, b); 6037} 6038 6039// CHECK-LABEL: test_vqaddq_u64 6040// CHECK: vqadd.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6041uint64x2_t test_vqaddq_u64(uint64x2_t a, uint64x2_t b) { 6042 return vqaddq_u64(a, b); 6043} 6044 6045 6046// CHECK-LABEL: test_vqdmlal_s16 6047// CHECK: vqdmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6048int32x4_t test_vqdmlal_s16(int32x4_t a, int16x4_t b, int16x4_t c) { 6049 return vqdmlal_s16(a, b, c); 6050} 6051 6052// CHECK-LABEL: test_vqdmlal_s32 6053// CHECK: vqdmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6054int64x2_t test_vqdmlal_s32(int64x2_t a, int32x2_t b, int32x2_t c) { 6055 return vqdmlal_s32(a, b, c); 6056} 6057 6058 6059// CHECK-LABEL: test_vqdmlal_lane_s16 6060// CHECK: vqdmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6061int32x4_t test_vqdmlal_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) { 6062 return vqdmlal_lane_s16(a, b, c, 3); 6063} 6064 6065// CHECK-LABEL: test_vqdmlal_lane_s32 6066// CHECK: vqdmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6067int64x2_t test_vqdmlal_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) { 6068 return vqdmlal_lane_s32(a, b, c, 1); 6069} 6070 6071 6072// CHECK-LABEL: test_vqdmlal_n_s16 6073// CHECK: vqdmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6074int32x4_t test_vqdmlal_n_s16(int32x4_t a, int16x4_t b, int16_t c) { 6075 return vqdmlal_n_s16(a, b, c); 6076} 6077 6078// CHECK-LABEL: test_vqdmlal_n_s32 6079// CHECK: vqdmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6080int64x2_t test_vqdmlal_n_s32(int64x2_t a, int32x2_t b, int32_t c) { 6081 return vqdmlal_n_s32(a, b, c); 6082} 6083 6084 6085// CHECK-LABEL: test_vqdmlsl_s16 6086// CHECK: vqdmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6087int32x4_t test_vqdmlsl_s16(int32x4_t a, int16x4_t b, int16x4_t c) { 6088 return vqdmlsl_s16(a, b, c); 6089} 6090 6091// CHECK-LABEL: test_vqdmlsl_s32 6092// CHECK: vqdmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6093int64x2_t test_vqdmlsl_s32(int64x2_t a, int32x2_t b, int32x2_t c) { 6094 return vqdmlsl_s32(a, b, c); 6095} 6096 6097 6098// CHECK-LABEL: test_vqdmlsl_lane_s16 6099// CHECK: vqdmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6100int32x4_t test_vqdmlsl_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) { 6101 return vqdmlsl_lane_s16(a, b, c, 3); 6102} 6103 6104// CHECK-LABEL: test_vqdmlsl_lane_s32 6105// CHECK: vqdmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6106int64x2_t test_vqdmlsl_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) { 6107 return vqdmlsl_lane_s32(a, b, c, 1); 6108} 6109 6110 6111// CHECK-LABEL: test_vqdmlsl_n_s16 6112// CHECK: vqdmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6113int32x4_t test_vqdmlsl_n_s16(int32x4_t a, int16x4_t b, int16_t c) { 6114 return vqdmlsl_n_s16(a, b, c); 6115} 6116 6117// CHECK-LABEL: test_vqdmlsl_n_s32 6118// CHECK: vqdmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6119int64x2_t test_vqdmlsl_n_s32(int64x2_t a, int32x2_t b, int32_t c) { 6120 return vqdmlsl_n_s32(a, b, c); 6121} 6122 6123 6124// CHECK-LABEL: test_vqdmulh_s16 6125// CHECK: vqdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6126int16x4_t test_vqdmulh_s16(int16x4_t a, int16x4_t b) { 6127 return vqdmulh_s16(a, b); 6128} 6129 6130// CHECK-LABEL: test_vqdmulh_s32 6131// CHECK: vqdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6132int32x2_t test_vqdmulh_s32(int32x2_t a, int32x2_t b) { 6133 return vqdmulh_s32(a, b); 6134} 6135 6136// CHECK-LABEL: test_vqdmulhq_s16 6137// CHECK: vqdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6138int16x8_t test_vqdmulhq_s16(int16x8_t a, int16x8_t b) { 6139 return vqdmulhq_s16(a, b); 6140} 6141 6142// CHECK-LABEL: test_vqdmulhq_s32 6143// CHECK: vqdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6144int32x4_t test_vqdmulhq_s32(int32x4_t a, int32x4_t b) { 6145 return vqdmulhq_s32(a, b); 6146} 6147 6148 6149// CHECK-LABEL: test_vqdmulh_lane_s16 6150// CHECK: vqdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6151int16x4_t test_vqdmulh_lane_s16(int16x4_t a, int16x4_t b) { 6152 return vqdmulh_lane_s16(a, b, 3); 6153} 6154 6155// CHECK-LABEL: test_vqdmulh_lane_s32 6156// CHECK: vqdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6157int32x2_t test_vqdmulh_lane_s32(int32x2_t a, int32x2_t b) { 6158 return vqdmulh_lane_s32(a, b, 1); 6159} 6160 6161// CHECK-LABEL: test_vqdmulhq_lane_s16 6162// CHECK: vqdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6163int16x8_t test_vqdmulhq_lane_s16(int16x8_t a, int16x4_t b) { 6164 return vqdmulhq_lane_s16(a, b, 3); 6165} 6166 6167// CHECK-LABEL: test_vqdmulhq_lane_s32 6168// CHECK: vqdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6169int32x4_t test_vqdmulhq_lane_s32(int32x4_t a, int32x2_t b) { 6170 return vqdmulhq_lane_s32(a, b, 1); 6171} 6172 6173 6174// CHECK-LABEL: test_vqdmulh_n_s16 6175// CHECK: vqdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6176int16x4_t test_vqdmulh_n_s16(int16x4_t a, int16_t b) { 6177 return vqdmulh_n_s16(a, b); 6178} 6179 6180// CHECK-LABEL: test_vqdmulh_n_s32 6181// CHECK: vqdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6182int32x2_t test_vqdmulh_n_s32(int32x2_t a, int32_t b) { 6183 return vqdmulh_n_s32(a, b); 6184} 6185 6186// CHECK-LABEL: test_vqdmulhq_n_s16 6187// CHECK: vqdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6188int16x8_t test_vqdmulhq_n_s16(int16x8_t a, int16_t b) { 6189 return vqdmulhq_n_s16(a, b); 6190} 6191 6192// CHECK-LABEL: test_vqdmulhq_n_s32 6193// CHECK: vqdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6194int32x4_t test_vqdmulhq_n_s32(int32x4_t a, int32_t b) { 6195 return vqdmulhq_n_s32(a, b); 6196} 6197 6198 6199// CHECK-LABEL: test_vqdmull_s16 6200// CHECK: vqdmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6201int32x4_t test_vqdmull_s16(int16x4_t a, int16x4_t b) { 6202 return vqdmull_s16(a, b); 6203} 6204 6205// CHECK-LABEL: test_vqdmull_s32 6206// CHECK: vqdmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6207int64x2_t test_vqdmull_s32(int32x2_t a, int32x2_t b) { 6208 return vqdmull_s32(a, b); 6209} 6210 6211 6212// CHECK-LABEL: test_vqdmull_lane_s16 6213// CHECK: vqdmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6214int32x4_t test_vqdmull_lane_s16(int16x4_t a, int16x4_t b) { 6215 return vqdmull_lane_s16(a, b, 3); 6216} 6217 6218// CHECK-LABEL: test_vqdmull_lane_s32 6219// CHECK: vqdmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6220int64x2_t test_vqdmull_lane_s32(int32x2_t a, int32x2_t b) { 6221 return vqdmull_lane_s32(a, b, 1); 6222} 6223 6224 6225// CHECK-LABEL: test_vqdmull_n_s16 6226// CHECK: vqdmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6227int32x4_t test_vqdmull_n_s16(int16x4_t a, int16_t b) { 6228 return vqdmull_n_s16(a, b); 6229} 6230 6231// CHECK-LABEL: test_vqdmull_n_s32 6232// CHECK: vqdmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6233int64x2_t test_vqdmull_n_s32(int32x2_t a, int32_t b) { 6234 return vqdmull_n_s32(a, b); 6235} 6236 6237 6238// CHECK-LABEL: test_vqmovn_s16 6239// CHECK: vqmovn.s16 d{{[0-9]+}}, q{{[0-9]+}} 6240int8x8_t test_vqmovn_s16(int16x8_t a) { 6241 return vqmovn_s16(a); 6242} 6243 6244// CHECK-LABEL: test_vqmovn_s32 6245// CHECK: vqmovn.s32 d{{[0-9]+}}, q{{[0-9]+}} 6246int16x4_t test_vqmovn_s32(int32x4_t a) { 6247 return vqmovn_s32(a); 6248} 6249 6250// CHECK-LABEL: test_vqmovn_s64 6251// CHECK: vqmovn.s64 d{{[0-9]+}}, q{{[0-9]+}} 6252int32x2_t test_vqmovn_s64(int64x2_t a) { 6253 return vqmovn_s64(a); 6254} 6255 6256// CHECK-LABEL: test_vqmovn_u16 6257// CHECK: vqmovn.u16 d{{[0-9]+}}, q{{[0-9]+}} 6258uint8x8_t test_vqmovn_u16(uint16x8_t a) { 6259 return vqmovn_u16(a); 6260} 6261 6262// CHECK-LABEL: test_vqmovn_u32 6263// CHECK: vqmovn.u32 d{{[0-9]+}}, q{{[0-9]+}} 6264uint16x4_t test_vqmovn_u32(uint32x4_t a) { 6265 return vqmovn_u32(a); 6266} 6267 6268// CHECK-LABEL: test_vqmovn_u64 6269// CHECK: vqmovn.u64 d{{[0-9]+}}, q{{[0-9]+}} 6270uint32x2_t test_vqmovn_u64(uint64x2_t a) { 6271 return vqmovn_u64(a); 6272} 6273 6274 6275// CHECK-LABEL: test_vqmovun_s16 6276// CHECK: vqmovun.s16 d{{[0-9]+}}, q{{[0-9]+}} 6277uint8x8_t test_vqmovun_s16(int16x8_t a) { 6278 return vqmovun_s16(a); 6279} 6280 6281// CHECK-LABEL: test_vqmovun_s32 6282// CHECK: vqmovun.s32 d{{[0-9]+}}, q{{[0-9]+}} 6283uint16x4_t test_vqmovun_s32(int32x4_t a) { 6284 return vqmovun_s32(a); 6285} 6286 6287// CHECK-LABEL: test_vqmovun_s64 6288// CHECK: vqmovun.s64 d{{[0-9]+}}, q{{[0-9]+}} 6289uint32x2_t test_vqmovun_s64(int64x2_t a) { 6290 return vqmovun_s64(a); 6291} 6292 6293 6294// CHECK-LABEL: test_vqneg_s8 6295// CHECK: vqneg.s8 d{{[0-9]+}}, d{{[0-9]+}} 6296int8x8_t test_vqneg_s8(int8x8_t a) { 6297 return vqneg_s8(a); 6298} 6299 6300// CHECK-LABEL: test_vqneg_s16 6301// CHECK: vqneg.s16 d{{[0-9]+}}, d{{[0-9]+}} 6302int16x4_t test_vqneg_s16(int16x4_t a) { 6303 return vqneg_s16(a); 6304} 6305 6306// CHECK-LABEL: test_vqneg_s32 6307// CHECK: vqneg.s32 d{{[0-9]+}}, d{{[0-9]+}} 6308int32x2_t test_vqneg_s32(int32x2_t a) { 6309 return vqneg_s32(a); 6310} 6311 6312// CHECK-LABEL: test_vqnegq_s8 6313// CHECK: vqneg.s8 q{{[0-9]+}}, q{{[0-9]+}} 6314int8x16_t test_vqnegq_s8(int8x16_t a) { 6315 return vqnegq_s8(a); 6316} 6317 6318// CHECK-LABEL: test_vqnegq_s16 6319// CHECK: vqneg.s16 q{{[0-9]+}}, q{{[0-9]+}} 6320int16x8_t test_vqnegq_s16(int16x8_t a) { 6321 return vqnegq_s16(a); 6322} 6323 6324// CHECK-LABEL: test_vqnegq_s32 6325// CHECK: vqneg.s32 q{{[0-9]+}}, q{{[0-9]+}} 6326int32x4_t test_vqnegq_s32(int32x4_t a) { 6327 return vqnegq_s32(a); 6328} 6329 6330 6331// CHECK-LABEL: test_vqrdmulh_s16 6332// CHECK: vqrdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6333int16x4_t test_vqrdmulh_s16(int16x4_t a, int16x4_t b) { 6334 return vqrdmulh_s16(a, b); 6335} 6336 6337// CHECK-LABEL: test_vqrdmulh_s32 6338// CHECK: vqrdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6339int32x2_t test_vqrdmulh_s32(int32x2_t a, int32x2_t b) { 6340 return vqrdmulh_s32(a, b); 6341} 6342 6343// CHECK-LABEL: test_vqrdmulhq_s16 6344// CHECK: vqrdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6345int16x8_t test_vqrdmulhq_s16(int16x8_t a, int16x8_t b) { 6346 return vqrdmulhq_s16(a, b); 6347} 6348 6349// CHECK-LABEL: test_vqrdmulhq_s32 6350// CHECK: vqrdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6351int32x4_t test_vqrdmulhq_s32(int32x4_t a, int32x4_t b) { 6352 return vqrdmulhq_s32(a, b); 6353} 6354 6355 6356// CHECK-LABEL: test_vqrdmulh_lane_s16 6357// CHECK: vqrdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6358int16x4_t test_vqrdmulh_lane_s16(int16x4_t a, int16x4_t b) { 6359 return vqrdmulh_lane_s16(a, b, 3); 6360} 6361 6362// CHECK-LABEL: test_vqrdmulh_lane_s32 6363// CHECK: vqrdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6364int32x2_t test_vqrdmulh_lane_s32(int32x2_t a, int32x2_t b) { 6365 return vqrdmulh_lane_s32(a, b, 1); 6366} 6367 6368// CHECK-LABEL: test_vqrdmulhq_lane_s16 6369// CHECK: vqrdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6370int16x8_t test_vqrdmulhq_lane_s16(int16x8_t a, int16x4_t b) { 6371 return vqrdmulhq_lane_s16(a, b, 3); 6372} 6373 6374// CHECK-LABEL: test_vqrdmulhq_lane_s32 6375// CHECK: vqrdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6376int32x4_t test_vqrdmulhq_lane_s32(int32x4_t a, int32x2_t b) { 6377 return vqrdmulhq_lane_s32(a, b, 1); 6378} 6379 6380 6381// CHECK-LABEL: test_vqrdmulh_n_s16 6382// CHECK: vqrdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6383int16x4_t test_vqrdmulh_n_s16(int16x4_t a, int16_t b) { 6384 return vqrdmulh_n_s16(a, b); 6385} 6386 6387// CHECK-LABEL: test_vqrdmulh_n_s32 6388// CHECK: vqrdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6389int32x2_t test_vqrdmulh_n_s32(int32x2_t a, int32_t b) { 6390 return vqrdmulh_n_s32(a, b); 6391} 6392 6393// CHECK-LABEL: test_vqrdmulhq_n_s16 6394// CHECK: vqrdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6395int16x8_t test_vqrdmulhq_n_s16(int16x8_t a, int16_t b) { 6396 return vqrdmulhq_n_s16(a, b); 6397} 6398 6399// CHECK-LABEL: test_vqrdmulhq_n_s32 6400// CHECK: vqrdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6401int32x4_t test_vqrdmulhq_n_s32(int32x4_t a, int32_t b) { 6402 return vqrdmulhq_n_s32(a, b); 6403} 6404 6405 6406// CHECK-LABEL: test_vqrshl_s8 6407// CHECK: vqrshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6408int8x8_t test_vqrshl_s8(int8x8_t a, int8x8_t b) { 6409 return vqrshl_s8(a, b); 6410} 6411 6412// CHECK-LABEL: test_vqrshl_s16 6413// CHECK: vqrshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6414int16x4_t test_vqrshl_s16(int16x4_t a, int16x4_t b) { 6415 return vqrshl_s16(a, b); 6416} 6417 6418// CHECK-LABEL: test_vqrshl_s32 6419// CHECK: vqrshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6420int32x2_t test_vqrshl_s32(int32x2_t a, int32x2_t b) { 6421 return vqrshl_s32(a, b); 6422} 6423 6424// CHECK-LABEL: test_vqrshl_s64 6425// CHECK: vqrshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6426int64x1_t test_vqrshl_s64(int64x1_t a, int64x1_t b) { 6427 return vqrshl_s64(a, b); 6428} 6429 6430// CHECK-LABEL: test_vqrshl_u8 6431// CHECK: vqrshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6432uint8x8_t test_vqrshl_u8(uint8x8_t a, int8x8_t b) { 6433 return vqrshl_u8(a, b); 6434} 6435 6436// CHECK-LABEL: test_vqrshl_u16 6437// CHECK: vqrshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6438uint16x4_t test_vqrshl_u16(uint16x4_t a, int16x4_t b) { 6439 return vqrshl_u16(a, b); 6440} 6441 6442// CHECK-LABEL: test_vqrshl_u32 6443// CHECK: vqrshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6444uint32x2_t test_vqrshl_u32(uint32x2_t a, int32x2_t b) { 6445 return vqrshl_u32(a, b); 6446} 6447 6448// CHECK-LABEL: test_vqrshl_u64 6449// CHECK: vqrshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6450uint64x1_t test_vqrshl_u64(uint64x1_t a, int64x1_t b) { 6451 return vqrshl_u64(a, b); 6452} 6453 6454// CHECK-LABEL: test_vqrshlq_s8 6455// CHECK: vqrshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6456int8x16_t test_vqrshlq_s8(int8x16_t a, int8x16_t b) { 6457 return vqrshlq_s8(a, b); 6458} 6459 6460// CHECK-LABEL: test_vqrshlq_s16 6461// CHECK: vqrshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6462int16x8_t test_vqrshlq_s16(int16x8_t a, int16x8_t b) { 6463 return vqrshlq_s16(a, b); 6464} 6465 6466// CHECK-LABEL: test_vqrshlq_s32 6467// CHECK: vqrshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6468int32x4_t test_vqrshlq_s32(int32x4_t a, int32x4_t b) { 6469 return vqrshlq_s32(a, b); 6470} 6471 6472// CHECK-LABEL: test_vqrshlq_s64 6473// CHECK: vqrshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6474int64x2_t test_vqrshlq_s64(int64x2_t a, int64x2_t b) { 6475 return vqrshlq_s64(a, b); 6476} 6477 6478// CHECK-LABEL: test_vqrshlq_u8 6479// CHECK: vqrshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6480uint8x16_t test_vqrshlq_u8(uint8x16_t a, int8x16_t b) { 6481 return vqrshlq_u8(a, b); 6482} 6483 6484// CHECK-LABEL: test_vqrshlq_u16 6485// CHECK: vqrshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6486uint16x8_t test_vqrshlq_u16(uint16x8_t a, int16x8_t b) { 6487 return vqrshlq_u16(a, b); 6488} 6489 6490// CHECK-LABEL: test_vqrshlq_u32 6491// CHECK: vqrshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6492uint32x4_t test_vqrshlq_u32(uint32x4_t a, int32x4_t b) { 6493 return vqrshlq_u32(a, b); 6494} 6495 6496// CHECK-LABEL: test_vqrshlq_u64 6497// CHECK: vqrshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6498uint64x2_t test_vqrshlq_u64(uint64x2_t a, int64x2_t b) { 6499 return vqrshlq_u64(a, b); 6500} 6501 6502 6503// CHECK-LABEL: test_vqrshrn_n_s16 6504// CHECK: vqrshrn.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6505int8x8_t test_vqrshrn_n_s16(int16x8_t a) { 6506 return vqrshrn_n_s16(a, 1); 6507} 6508 6509// CHECK-LABEL: test_vqrshrn_n_s32 6510// CHECK: vqrshrn.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6511int16x4_t test_vqrshrn_n_s32(int32x4_t a) { 6512 return vqrshrn_n_s32(a, 1); 6513} 6514 6515// CHECK-LABEL: test_vqrshrn_n_s64 6516// CHECK: vqrshrn.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6517int32x2_t test_vqrshrn_n_s64(int64x2_t a) { 6518 return vqrshrn_n_s64(a, 1); 6519} 6520 6521// CHECK-LABEL: test_vqrshrn_n_u16 6522// CHECK: vqrshrn.u16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6523uint8x8_t test_vqrshrn_n_u16(uint16x8_t a) { 6524 return vqrshrn_n_u16(a, 1); 6525} 6526 6527// CHECK-LABEL: test_vqrshrn_n_u32 6528// CHECK: vqrshrn.u32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6529uint16x4_t test_vqrshrn_n_u32(uint32x4_t a) { 6530 return vqrshrn_n_u32(a, 1); 6531} 6532 6533// CHECK-LABEL: test_vqrshrn_n_u64 6534// CHECK: vqrshrn.u64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6535uint32x2_t test_vqrshrn_n_u64(uint64x2_t a) { 6536 return vqrshrn_n_u64(a, 1); 6537} 6538 6539 6540// CHECK-LABEL: test_vqrshrun_n_s16 6541// CHECK: vqrshrun.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6542uint8x8_t test_vqrshrun_n_s16(int16x8_t a) { 6543 return vqrshrun_n_s16(a, 1); 6544} 6545 6546// CHECK-LABEL: test_vqrshrun_n_s32 6547// CHECK: vqrshrun.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6548uint16x4_t test_vqrshrun_n_s32(int32x4_t a) { 6549 return vqrshrun_n_s32(a, 1); 6550} 6551 6552// CHECK-LABEL: test_vqrshrun_n_s64 6553// CHECK: vqrshrun.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6554uint32x2_t test_vqrshrun_n_s64(int64x2_t a) { 6555 return vqrshrun_n_s64(a, 1); 6556} 6557 6558 6559// CHECK-LABEL: test_vqshl_s8 6560// CHECK: vqshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6561int8x8_t test_vqshl_s8(int8x8_t a, int8x8_t b) { 6562 return vqshl_s8(a, b); 6563} 6564 6565// CHECK-LABEL: test_vqshl_s16 6566// CHECK: vqshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6567int16x4_t test_vqshl_s16(int16x4_t a, int16x4_t b) { 6568 return vqshl_s16(a, b); 6569} 6570 6571// CHECK-LABEL: test_vqshl_s32 6572// CHECK: vqshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6573int32x2_t test_vqshl_s32(int32x2_t a, int32x2_t b) { 6574 return vqshl_s32(a, b); 6575} 6576 6577// CHECK-LABEL: test_vqshl_s64 6578// CHECK: vqshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6579int64x1_t test_vqshl_s64(int64x1_t a, int64x1_t b) { 6580 return vqshl_s64(a, b); 6581} 6582 6583// CHECK-LABEL: test_vqshl_u8 6584// CHECK: vqshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6585uint8x8_t test_vqshl_u8(uint8x8_t a, int8x8_t b) { 6586 return vqshl_u8(a, b); 6587} 6588 6589// CHECK-LABEL: test_vqshl_u16 6590// CHECK: vqshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6591uint16x4_t test_vqshl_u16(uint16x4_t a, int16x4_t b) { 6592 return vqshl_u16(a, b); 6593} 6594 6595// CHECK-LABEL: test_vqshl_u32 6596// CHECK: vqshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6597uint32x2_t test_vqshl_u32(uint32x2_t a, int32x2_t b) { 6598 return vqshl_u32(a, b); 6599} 6600 6601// CHECK-LABEL: test_vqshl_u64 6602// CHECK: vqshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6603uint64x1_t test_vqshl_u64(uint64x1_t a, int64x1_t b) { 6604 return vqshl_u64(a, b); 6605} 6606 6607// CHECK-LABEL: test_vqshlq_s8 6608// CHECK: vqshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6609int8x16_t test_vqshlq_s8(int8x16_t a, int8x16_t b) { 6610 return vqshlq_s8(a, b); 6611} 6612 6613// CHECK-LABEL: test_vqshlq_s16 6614// CHECK: vqshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6615int16x8_t test_vqshlq_s16(int16x8_t a, int16x8_t b) { 6616 return vqshlq_s16(a, b); 6617} 6618 6619// CHECK-LABEL: test_vqshlq_s32 6620// CHECK: vqshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6621int32x4_t test_vqshlq_s32(int32x4_t a, int32x4_t b) { 6622 return vqshlq_s32(a, b); 6623} 6624 6625// CHECK-LABEL: test_vqshlq_s64 6626// CHECK: vqshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6627int64x2_t test_vqshlq_s64(int64x2_t a, int64x2_t b) { 6628 return vqshlq_s64(a, b); 6629} 6630 6631// CHECK-LABEL: test_vqshlq_u8 6632// CHECK: vqshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6633uint8x16_t test_vqshlq_u8(uint8x16_t a, int8x16_t b) { 6634 return vqshlq_u8(a, b); 6635} 6636 6637// CHECK-LABEL: test_vqshlq_u16 6638// CHECK: vqshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6639uint16x8_t test_vqshlq_u16(uint16x8_t a, int16x8_t b) { 6640 return vqshlq_u16(a, b); 6641} 6642 6643// CHECK-LABEL: test_vqshlq_u32 6644// CHECK: vqshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6645uint32x4_t test_vqshlq_u32(uint32x4_t a, int32x4_t b) { 6646 return vqshlq_u32(a, b); 6647} 6648 6649// CHECK-LABEL: test_vqshlq_u64 6650// CHECK: vqshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6651uint64x2_t test_vqshlq_u64(uint64x2_t a, int64x2_t b) { 6652 return vqshlq_u64(a, b); 6653} 6654 6655 6656// CHECK-LABEL: test_vqshlu_n_s8 6657// CHECK: vqshlu.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 6658uint8x8_t test_vqshlu_n_s8(int8x8_t a) { 6659 return vqshlu_n_s8(a, 1); 6660} 6661 6662// CHECK-LABEL: test_vqshlu_n_s16 6663// CHECK: vqshlu.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 6664uint16x4_t test_vqshlu_n_s16(int16x4_t a) { 6665 return vqshlu_n_s16(a, 1); 6666} 6667 6668// CHECK-LABEL: test_vqshlu_n_s32 6669// CHECK: vqshlu.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 6670uint32x2_t test_vqshlu_n_s32(int32x2_t a) { 6671 return vqshlu_n_s32(a, 1); 6672} 6673 6674// CHECK-LABEL: test_vqshlu_n_s64 6675// CHECK: vqshlu.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 6676uint64x1_t test_vqshlu_n_s64(int64x1_t a) { 6677 return vqshlu_n_s64(a, 1); 6678} 6679 6680// CHECK-LABEL: test_vqshluq_n_s8 6681// CHECK: vqshlu.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6682uint8x16_t test_vqshluq_n_s8(int8x16_t a) { 6683 return vqshluq_n_s8(a, 1); 6684} 6685 6686// CHECK-LABEL: test_vqshluq_n_s16 6687// CHECK: vqshlu.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6688uint16x8_t test_vqshluq_n_s16(int16x8_t a) { 6689 return vqshluq_n_s16(a, 1); 6690} 6691 6692// CHECK-LABEL: test_vqshluq_n_s32 6693// CHECK: vqshlu.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6694uint32x4_t test_vqshluq_n_s32(int32x4_t a) { 6695 return vqshluq_n_s32(a, 1); 6696} 6697 6698// CHECK-LABEL: test_vqshluq_n_s64 6699// CHECK: vqshlu.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6700uint64x2_t test_vqshluq_n_s64(int64x2_t a) { 6701 return vqshluq_n_s64(a, 1); 6702} 6703 6704 6705// CHECK-LABEL: test_vqshl_n_s8 6706// CHECK: vqshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 6707int8x8_t test_vqshl_n_s8(int8x8_t a) { 6708 return vqshl_n_s8(a, 1); 6709} 6710 6711// CHECK-LABEL: test_vqshl_n_s16 6712// CHECK: vqshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 6713int16x4_t test_vqshl_n_s16(int16x4_t a) { 6714 return vqshl_n_s16(a, 1); 6715} 6716 6717// CHECK-LABEL: test_vqshl_n_s32 6718// CHECK: vqshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 6719int32x2_t test_vqshl_n_s32(int32x2_t a) { 6720 return vqshl_n_s32(a, 1); 6721} 6722 6723// CHECK-LABEL: test_vqshl_n_s64 6724// CHECK: vqshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 6725int64x1_t test_vqshl_n_s64(int64x1_t a) { 6726 return vqshl_n_s64(a, 1); 6727} 6728 6729// CHECK-LABEL: test_vqshl_n_u8 6730// CHECK: vqshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 6731uint8x8_t test_vqshl_n_u8(uint8x8_t a) { 6732 return vqshl_n_u8(a, 1); 6733} 6734 6735// CHECK-LABEL: test_vqshl_n_u16 6736// CHECK: vqshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 6737uint16x4_t test_vqshl_n_u16(uint16x4_t a) { 6738 return vqshl_n_u16(a, 1); 6739} 6740 6741// CHECK-LABEL: test_vqshl_n_u32 6742// CHECK: vqshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 6743uint32x2_t test_vqshl_n_u32(uint32x2_t a) { 6744 return vqshl_n_u32(a, 1); 6745} 6746 6747// CHECK-LABEL: test_vqshl_n_u64 6748// CHECK: vqshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 6749uint64x1_t test_vqshl_n_u64(uint64x1_t a) { 6750 return vqshl_n_u64(a, 1); 6751} 6752 6753// CHECK-LABEL: test_vqshlq_n_s8 6754// CHECK: vqshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6755int8x16_t test_vqshlq_n_s8(int8x16_t a) { 6756 return vqshlq_n_s8(a, 1); 6757} 6758 6759// CHECK-LABEL: test_vqshlq_n_s16 6760// CHECK: vqshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6761int16x8_t test_vqshlq_n_s16(int16x8_t a) { 6762 return vqshlq_n_s16(a, 1); 6763} 6764 6765// CHECK-LABEL: test_vqshlq_n_s32 6766// CHECK: vqshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6767int32x4_t test_vqshlq_n_s32(int32x4_t a) { 6768 return vqshlq_n_s32(a, 1); 6769} 6770 6771// CHECK-LABEL: test_vqshlq_n_s64 6772// CHECK: vqshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6773int64x2_t test_vqshlq_n_s64(int64x2_t a) { 6774 return vqshlq_n_s64(a, 1); 6775} 6776 6777// CHECK-LABEL: test_vqshlq_n_u8 6778// CHECK: vqshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6779uint8x16_t test_vqshlq_n_u8(uint8x16_t a) { 6780 return vqshlq_n_u8(a, 1); 6781} 6782 6783// CHECK-LABEL: test_vqshlq_n_u16 6784// CHECK: vqshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6785uint16x8_t test_vqshlq_n_u16(uint16x8_t a) { 6786 return vqshlq_n_u16(a, 1); 6787} 6788 6789// CHECK-LABEL: test_vqshlq_n_u32 6790// CHECK: vqshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6791uint32x4_t test_vqshlq_n_u32(uint32x4_t a) { 6792 return vqshlq_n_u32(a, 1); 6793} 6794 6795// CHECK-LABEL: test_vqshlq_n_u64 6796// CHECK: vqshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6797uint64x2_t test_vqshlq_n_u64(uint64x2_t a) { 6798 return vqshlq_n_u64(a, 1); 6799} 6800 6801 6802// CHECK-LABEL: test_vqshrn_n_s16 6803// CHECK: vqshrn.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6804int8x8_t test_vqshrn_n_s16(int16x8_t a) { 6805 return vqshrn_n_s16(a, 1); 6806} 6807 6808// CHECK-LABEL: test_vqshrn_n_s32 6809// CHECK: vqshrn.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6810int16x4_t test_vqshrn_n_s32(int32x4_t a) { 6811 return vqshrn_n_s32(a, 1); 6812} 6813 6814// CHECK-LABEL: test_vqshrn_n_s64 6815// CHECK: vqshrn.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6816int32x2_t test_vqshrn_n_s64(int64x2_t a) { 6817 return vqshrn_n_s64(a, 1); 6818} 6819 6820// CHECK-LABEL: test_vqshrn_n_u16 6821// CHECK: vqshrn.u16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6822uint8x8_t test_vqshrn_n_u16(uint16x8_t a) { 6823 return vqshrn_n_u16(a, 1); 6824} 6825 6826// CHECK-LABEL: test_vqshrn_n_u32 6827// CHECK: vqshrn.u32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6828uint16x4_t test_vqshrn_n_u32(uint32x4_t a) { 6829 return vqshrn_n_u32(a, 1); 6830} 6831 6832// CHECK-LABEL: test_vqshrn_n_u64 6833// CHECK: vqshrn.u64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6834uint32x2_t test_vqshrn_n_u64(uint64x2_t a) { 6835 return vqshrn_n_u64(a, 1); 6836} 6837 6838 6839// CHECK-LABEL: test_vqshrun_n_s16 6840// CHECK: vqshrun.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6841uint8x8_t test_vqshrun_n_s16(int16x8_t a) { 6842 return vqshrun_n_s16(a, 1); 6843} 6844 6845// CHECK-LABEL: test_vqshrun_n_s32 6846// CHECK: vqshrun.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6847uint16x4_t test_vqshrun_n_s32(int32x4_t a) { 6848 return vqshrun_n_s32(a, 1); 6849} 6850 6851// CHECK-LABEL: test_vqshrun_n_s64 6852// CHECK: vqshrun.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6853uint32x2_t test_vqshrun_n_s64(int64x2_t a) { 6854 return vqshrun_n_s64(a, 1); 6855} 6856 6857 6858// CHECK-LABEL: test_vqsub_s8 6859// CHECK: vqsub.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6860int8x8_t test_vqsub_s8(int8x8_t a, int8x8_t b) { 6861 return vqsub_s8(a, b); 6862} 6863 6864// CHECK-LABEL: test_vqsub_s16 6865// CHECK: vqsub.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6866int16x4_t test_vqsub_s16(int16x4_t a, int16x4_t b) { 6867 return vqsub_s16(a, b); 6868} 6869 6870// CHECK-LABEL: test_vqsub_s32 6871// CHECK: vqsub.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6872int32x2_t test_vqsub_s32(int32x2_t a, int32x2_t b) { 6873 return vqsub_s32(a, b); 6874} 6875 6876// CHECK-LABEL: test_vqsub_s64 6877// CHECK: vqsub.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6878int64x1_t test_vqsub_s64(int64x1_t a, int64x1_t b) { 6879 return vqsub_s64(a, b); 6880} 6881 6882// CHECK-LABEL: test_vqsub_u8 6883// CHECK: vqsub.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6884uint8x8_t test_vqsub_u8(uint8x8_t a, uint8x8_t b) { 6885 return vqsub_u8(a, b); 6886} 6887 6888// CHECK-LABEL: test_vqsub_u16 6889// CHECK: vqsub.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6890uint16x4_t test_vqsub_u16(uint16x4_t a, uint16x4_t b) { 6891 return vqsub_u16(a, b); 6892} 6893 6894// CHECK-LABEL: test_vqsub_u32 6895// CHECK: vqsub.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6896uint32x2_t test_vqsub_u32(uint32x2_t a, uint32x2_t b) { 6897 return vqsub_u32(a, b); 6898} 6899 6900// CHECK-LABEL: test_vqsub_u64 6901// CHECK: vqsub.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6902uint64x1_t test_vqsub_u64(uint64x1_t a, uint64x1_t b) { 6903 return vqsub_u64(a, b); 6904} 6905 6906// CHECK-LABEL: test_vqsubq_s8 6907// CHECK: vqsub.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6908int8x16_t test_vqsubq_s8(int8x16_t a, int8x16_t b) { 6909 return vqsubq_s8(a, b); 6910} 6911 6912// CHECK-LABEL: test_vqsubq_s16 6913// CHECK: vqsub.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6914int16x8_t test_vqsubq_s16(int16x8_t a, int16x8_t b) { 6915 return vqsubq_s16(a, b); 6916} 6917 6918// CHECK-LABEL: test_vqsubq_s32 6919// CHECK: vqsub.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6920int32x4_t test_vqsubq_s32(int32x4_t a, int32x4_t b) { 6921 return vqsubq_s32(a, b); 6922} 6923 6924// CHECK-LABEL: test_vqsubq_s64 6925// CHECK: vqsub.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6926int64x2_t test_vqsubq_s64(int64x2_t a, int64x2_t b) { 6927 return vqsubq_s64(a, b); 6928} 6929 6930// CHECK-LABEL: test_vqsubq_u8 6931// CHECK: vqsub.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6932uint8x16_t test_vqsubq_u8(uint8x16_t a, uint8x16_t b) { 6933 return vqsubq_u8(a, b); 6934} 6935 6936// CHECK-LABEL: test_vqsubq_u16 6937// CHECK: vqsub.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6938uint16x8_t test_vqsubq_u16(uint16x8_t a, uint16x8_t b) { 6939 return vqsubq_u16(a, b); 6940} 6941 6942// CHECK-LABEL: test_vqsubq_u32 6943// CHECK: vqsub.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6944uint32x4_t test_vqsubq_u32(uint32x4_t a, uint32x4_t b) { 6945 return vqsubq_u32(a, b); 6946} 6947 6948// CHECK-LABEL: test_vqsubq_u64 6949// CHECK: vqsub.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6950uint64x2_t test_vqsubq_u64(uint64x2_t a, uint64x2_t b) { 6951 return vqsubq_u64(a, b); 6952} 6953 6954 6955// CHECK-LABEL: test_vraddhn_s16 6956// CHECK: vraddhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6957int8x8_t test_vraddhn_s16(int16x8_t a, int16x8_t b) { 6958 return vraddhn_s16(a, b); 6959} 6960 6961// CHECK-LABEL: test_vraddhn_s32 6962// CHECK: vraddhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6963int16x4_t test_vraddhn_s32(int32x4_t a, int32x4_t b) { 6964 return vraddhn_s32(a, b); 6965} 6966 6967// CHECK-LABEL: test_vraddhn_s64 6968// CHECK: vraddhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6969int32x2_t test_vraddhn_s64(int64x2_t a, int64x2_t b) { 6970 return vraddhn_s64(a, b); 6971} 6972 6973// CHECK-LABEL: test_vraddhn_u16 6974// CHECK: vraddhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6975uint8x8_t test_vraddhn_u16(uint16x8_t a, uint16x8_t b) { 6976 return vraddhn_u16(a, b); 6977} 6978 6979// CHECK-LABEL: test_vraddhn_u32 6980// CHECK: vraddhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6981uint16x4_t test_vraddhn_u32(uint32x4_t a, uint32x4_t b) { 6982 return vraddhn_u32(a, b); 6983} 6984 6985// CHECK-LABEL: test_vraddhn_u64 6986// CHECK: vraddhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6987uint32x2_t test_vraddhn_u64(uint64x2_t a, uint64x2_t b) { 6988 return vraddhn_u64(a, b); 6989} 6990 6991 6992// CHECK-LABEL: test_vrecpe_f32 6993// CHECK: vrecpe.f32 d{{[0-9]+}}, d{{[0-9]+}} 6994float32x2_t test_vrecpe_f32(float32x2_t a) { 6995 return vrecpe_f32(a); 6996} 6997 6998// CHECK-LABEL: test_vrecpe_u32 6999// CHECK: vrecpe.u32 d{{[0-9]+}}, d{{[0-9]+}} 7000uint32x2_t test_vrecpe_u32(uint32x2_t a) { 7001 return vrecpe_u32(a); 7002} 7003 7004// CHECK-LABEL: test_vrecpeq_f32 7005// CHECK: vrecpe.f32 q{{[0-9]+}}, q{{[0-9]+}} 7006float32x4_t test_vrecpeq_f32(float32x4_t a) { 7007 return vrecpeq_f32(a); 7008} 7009 7010// CHECK-LABEL: test_vrecpeq_u32 7011// CHECK: vrecpe.u32 q{{[0-9]+}}, q{{[0-9]+}} 7012uint32x4_t test_vrecpeq_u32(uint32x4_t a) { 7013 return vrecpeq_u32(a); 7014} 7015 7016 7017// CHECK-LABEL: test_vrecps_f32 7018// CHECK: vrecps.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 7019float32x2_t test_vrecps_f32(float32x2_t a, float32x2_t b) { 7020 return vrecps_f32(a, b); 7021} 7022 7023// CHECK-LABEL: test_vrecpsq_f32 7024// CHECK: vrecps.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 7025float32x4_t test_vrecpsq_f32(float32x4_t a, float32x4_t b) { 7026 return vrecpsq_f32(a, b); 7027} 7028 7029 7030// CHECK-LABEL: test_vreinterpret_s8_s16 7031int8x8_t test_vreinterpret_s8_s16(int16x4_t a) { 7032 return vreinterpret_s8_s16(a); 7033} 7034 7035// CHECK-LABEL: test_vreinterpret_s8_s32 7036int8x8_t test_vreinterpret_s8_s32(int32x2_t a) { 7037 return vreinterpret_s8_s32(a); 7038} 7039 7040// CHECK-LABEL: test_vreinterpret_s8_s64 7041int8x8_t test_vreinterpret_s8_s64(int64x1_t a) { 7042 return vreinterpret_s8_s64(a); 7043} 7044 7045// CHECK-LABEL: test_vreinterpret_s8_u8 7046int8x8_t test_vreinterpret_s8_u8(uint8x8_t a) { 7047 return vreinterpret_s8_u8(a); 7048} 7049 7050// CHECK-LABEL: test_vreinterpret_s8_u16 7051int8x8_t test_vreinterpret_s8_u16(uint16x4_t a) { 7052 return vreinterpret_s8_u16(a); 7053} 7054 7055// CHECK-LABEL: test_vreinterpret_s8_u32 7056int8x8_t test_vreinterpret_s8_u32(uint32x2_t a) { 7057 return vreinterpret_s8_u32(a); 7058} 7059 7060// CHECK-LABEL: test_vreinterpret_s8_u64 7061int8x8_t test_vreinterpret_s8_u64(uint64x1_t a) { 7062 return vreinterpret_s8_u64(a); 7063} 7064 7065// CHECK-LABEL: test_vreinterpret_s8_f16 7066int8x8_t test_vreinterpret_s8_f16(float16x4_t a) { 7067 return vreinterpret_s8_f16(a); 7068} 7069 7070// CHECK-LABEL: test_vreinterpret_s8_f32 7071int8x8_t test_vreinterpret_s8_f32(float32x2_t a) { 7072 return vreinterpret_s8_f32(a); 7073} 7074 7075// CHECK-LABEL: test_vreinterpret_s8_p8 7076int8x8_t test_vreinterpret_s8_p8(poly8x8_t a) { 7077 return vreinterpret_s8_p8(a); 7078} 7079 7080// CHECK-LABEL: test_vreinterpret_s8_p16 7081int8x8_t test_vreinterpret_s8_p16(poly16x4_t a) { 7082 return vreinterpret_s8_p16(a); 7083} 7084 7085// CHECK-LABEL: test_vreinterpret_s16_s8 7086int16x4_t test_vreinterpret_s16_s8(int8x8_t a) { 7087 return vreinterpret_s16_s8(a); 7088} 7089 7090// CHECK-LABEL: test_vreinterpret_s16_s32 7091int16x4_t test_vreinterpret_s16_s32(int32x2_t a) { 7092 return vreinterpret_s16_s32(a); 7093} 7094 7095// CHECK-LABEL: test_vreinterpret_s16_s64 7096int16x4_t test_vreinterpret_s16_s64(int64x1_t a) { 7097 return vreinterpret_s16_s64(a); 7098} 7099 7100// CHECK-LABEL: test_vreinterpret_s16_u8 7101int16x4_t test_vreinterpret_s16_u8(uint8x8_t a) { 7102 return vreinterpret_s16_u8(a); 7103} 7104 7105// CHECK-LABEL: test_vreinterpret_s16_u16 7106int16x4_t test_vreinterpret_s16_u16(uint16x4_t a) { 7107 return vreinterpret_s16_u16(a); 7108} 7109 7110// CHECK-LABEL: test_vreinterpret_s16_u32 7111int16x4_t test_vreinterpret_s16_u32(uint32x2_t a) { 7112 return vreinterpret_s16_u32(a); 7113} 7114 7115// CHECK-LABEL: test_vreinterpret_s16_u64 7116int16x4_t test_vreinterpret_s16_u64(uint64x1_t a) { 7117 return vreinterpret_s16_u64(a); 7118} 7119 7120// CHECK-LABEL: test_vreinterpret_s16_f16 7121int16x4_t test_vreinterpret_s16_f16(float16x4_t a) { 7122 return vreinterpret_s16_f16(a); 7123} 7124 7125// CHECK-LABEL: test_vreinterpret_s16_f32 7126int16x4_t test_vreinterpret_s16_f32(float32x2_t a) { 7127 return vreinterpret_s16_f32(a); 7128} 7129 7130// CHECK-LABEL: test_vreinterpret_s16_p8 7131int16x4_t test_vreinterpret_s16_p8(poly8x8_t a) { 7132 return vreinterpret_s16_p8(a); 7133} 7134 7135// CHECK-LABEL: test_vreinterpret_s16_p16 7136int16x4_t test_vreinterpret_s16_p16(poly16x4_t a) { 7137 return vreinterpret_s16_p16(a); 7138} 7139 7140// CHECK-LABEL: test_vreinterpret_s32_s8 7141int32x2_t test_vreinterpret_s32_s8(int8x8_t a) { 7142 return vreinterpret_s32_s8(a); 7143} 7144 7145// CHECK-LABEL: test_vreinterpret_s32_s16 7146int32x2_t test_vreinterpret_s32_s16(int16x4_t a) { 7147 return vreinterpret_s32_s16(a); 7148} 7149 7150// CHECK-LABEL: test_vreinterpret_s32_s64 7151int32x2_t test_vreinterpret_s32_s64(int64x1_t a) { 7152 return vreinterpret_s32_s64(a); 7153} 7154 7155// CHECK-LABEL: test_vreinterpret_s32_u8 7156int32x2_t test_vreinterpret_s32_u8(uint8x8_t a) { 7157 return vreinterpret_s32_u8(a); 7158} 7159 7160// CHECK-LABEL: test_vreinterpret_s32_u16 7161int32x2_t test_vreinterpret_s32_u16(uint16x4_t a) { 7162 return vreinterpret_s32_u16(a); 7163} 7164 7165// CHECK-LABEL: test_vreinterpret_s32_u32 7166int32x2_t test_vreinterpret_s32_u32(uint32x2_t a) { 7167 return vreinterpret_s32_u32(a); 7168} 7169 7170// CHECK-LABEL: test_vreinterpret_s32_u64 7171int32x2_t test_vreinterpret_s32_u64(uint64x1_t a) { 7172 return vreinterpret_s32_u64(a); 7173} 7174 7175// CHECK-LABEL: test_vreinterpret_s32_f16 7176int32x2_t test_vreinterpret_s32_f16(float16x4_t a) { 7177 return vreinterpret_s32_f16(a); 7178} 7179 7180// CHECK-LABEL: test_vreinterpret_s32_f32 7181int32x2_t test_vreinterpret_s32_f32(float32x2_t a) { 7182 return vreinterpret_s32_f32(a); 7183} 7184 7185// CHECK-LABEL: test_vreinterpret_s32_p8 7186int32x2_t test_vreinterpret_s32_p8(poly8x8_t a) { 7187 return vreinterpret_s32_p8(a); 7188} 7189 7190// CHECK-LABEL: test_vreinterpret_s32_p16 7191int32x2_t test_vreinterpret_s32_p16(poly16x4_t a) { 7192 return vreinterpret_s32_p16(a); 7193} 7194 7195// CHECK-LABEL: test_vreinterpret_s64_s8 7196int64x1_t test_vreinterpret_s64_s8(int8x8_t a) { 7197 return vreinterpret_s64_s8(a); 7198} 7199 7200// CHECK-LABEL: test_vreinterpret_s64_s16 7201int64x1_t test_vreinterpret_s64_s16(int16x4_t a) { 7202 return vreinterpret_s64_s16(a); 7203} 7204 7205// CHECK-LABEL: test_vreinterpret_s64_s32 7206int64x1_t test_vreinterpret_s64_s32(int32x2_t a) { 7207 return vreinterpret_s64_s32(a); 7208} 7209 7210// CHECK-LABEL: test_vreinterpret_s64_u8 7211int64x1_t test_vreinterpret_s64_u8(uint8x8_t a) { 7212 return vreinterpret_s64_u8(a); 7213} 7214 7215// CHECK-LABEL: test_vreinterpret_s64_u16 7216int64x1_t test_vreinterpret_s64_u16(uint16x4_t a) { 7217 return vreinterpret_s64_u16(a); 7218} 7219 7220// CHECK-LABEL: test_vreinterpret_s64_u32 7221int64x1_t test_vreinterpret_s64_u32(uint32x2_t a) { 7222 return vreinterpret_s64_u32(a); 7223} 7224 7225// CHECK-LABEL: test_vreinterpret_s64_u64 7226int64x1_t test_vreinterpret_s64_u64(uint64x1_t a) { 7227 return vreinterpret_s64_u64(a); 7228} 7229 7230// CHECK-LABEL: test_vreinterpret_s64_f16 7231int64x1_t test_vreinterpret_s64_f16(float16x4_t a) { 7232 return vreinterpret_s64_f16(a); 7233} 7234 7235// CHECK-LABEL: test_vreinterpret_s64_f32 7236int64x1_t test_vreinterpret_s64_f32(float32x2_t a) { 7237 return vreinterpret_s64_f32(a); 7238} 7239 7240// CHECK-LABEL: test_vreinterpret_s64_p8 7241int64x1_t test_vreinterpret_s64_p8(poly8x8_t a) { 7242 return vreinterpret_s64_p8(a); 7243} 7244 7245// CHECK-LABEL: test_vreinterpret_s64_p16 7246int64x1_t test_vreinterpret_s64_p16(poly16x4_t a) { 7247 return vreinterpret_s64_p16(a); 7248} 7249 7250// CHECK-LABEL: test_vreinterpret_u8_s8 7251uint8x8_t test_vreinterpret_u8_s8(int8x8_t a) { 7252 return vreinterpret_u8_s8(a); 7253} 7254 7255// CHECK-LABEL: test_vreinterpret_u8_s16 7256uint8x8_t test_vreinterpret_u8_s16(int16x4_t a) { 7257 return vreinterpret_u8_s16(a); 7258} 7259 7260// CHECK-LABEL: test_vreinterpret_u8_s32 7261uint8x8_t test_vreinterpret_u8_s32(int32x2_t a) { 7262 return vreinterpret_u8_s32(a); 7263} 7264 7265// CHECK-LABEL: test_vreinterpret_u8_s64 7266uint8x8_t test_vreinterpret_u8_s64(int64x1_t a) { 7267 return vreinterpret_u8_s64(a); 7268} 7269 7270// CHECK-LABEL: test_vreinterpret_u8_u16 7271uint8x8_t test_vreinterpret_u8_u16(uint16x4_t a) { 7272 return vreinterpret_u8_u16(a); 7273} 7274 7275// CHECK-LABEL: test_vreinterpret_u8_u32 7276uint8x8_t test_vreinterpret_u8_u32(uint32x2_t a) { 7277 return vreinterpret_u8_u32(a); 7278} 7279 7280// CHECK-LABEL: test_vreinterpret_u8_u64 7281uint8x8_t test_vreinterpret_u8_u64(uint64x1_t a) { 7282 return vreinterpret_u8_u64(a); 7283} 7284 7285// CHECK-LABEL: test_vreinterpret_u8_f16 7286uint8x8_t test_vreinterpret_u8_f16(float16x4_t a) { 7287 return vreinterpret_u8_f16(a); 7288} 7289 7290// CHECK-LABEL: test_vreinterpret_u8_f32 7291uint8x8_t test_vreinterpret_u8_f32(float32x2_t a) { 7292 return vreinterpret_u8_f32(a); 7293} 7294 7295// CHECK-LABEL: test_vreinterpret_u8_p8 7296uint8x8_t test_vreinterpret_u8_p8(poly8x8_t a) { 7297 return vreinterpret_u8_p8(a); 7298} 7299 7300// CHECK-LABEL: test_vreinterpret_u8_p16 7301uint8x8_t test_vreinterpret_u8_p16(poly16x4_t a) { 7302 return vreinterpret_u8_p16(a); 7303} 7304 7305// CHECK-LABEL: test_vreinterpret_u16_s8 7306uint16x4_t test_vreinterpret_u16_s8(int8x8_t a) { 7307 return vreinterpret_u16_s8(a); 7308} 7309 7310// CHECK-LABEL: test_vreinterpret_u16_s16 7311uint16x4_t test_vreinterpret_u16_s16(int16x4_t a) { 7312 return vreinterpret_u16_s16(a); 7313} 7314 7315// CHECK-LABEL: test_vreinterpret_u16_s32 7316uint16x4_t test_vreinterpret_u16_s32(int32x2_t a) { 7317 return vreinterpret_u16_s32(a); 7318} 7319 7320// CHECK-LABEL: test_vreinterpret_u16_s64 7321uint16x4_t test_vreinterpret_u16_s64(int64x1_t a) { 7322 return vreinterpret_u16_s64(a); 7323} 7324 7325// CHECK-LABEL: test_vreinterpret_u16_u8 7326uint16x4_t test_vreinterpret_u16_u8(uint8x8_t a) { 7327 return vreinterpret_u16_u8(a); 7328} 7329 7330// CHECK-LABEL: test_vreinterpret_u16_u32 7331uint16x4_t test_vreinterpret_u16_u32(uint32x2_t a) { 7332 return vreinterpret_u16_u32(a); 7333} 7334 7335// CHECK-LABEL: test_vreinterpret_u16_u64 7336uint16x4_t test_vreinterpret_u16_u64(uint64x1_t a) { 7337 return vreinterpret_u16_u64(a); 7338} 7339 7340// CHECK-LABEL: test_vreinterpret_u16_f16 7341uint16x4_t test_vreinterpret_u16_f16(float16x4_t a) { 7342 return vreinterpret_u16_f16(a); 7343} 7344 7345// CHECK-LABEL: test_vreinterpret_u16_f32 7346uint16x4_t test_vreinterpret_u16_f32(float32x2_t a) { 7347 return vreinterpret_u16_f32(a); 7348} 7349 7350// CHECK-LABEL: test_vreinterpret_u16_p8 7351uint16x4_t test_vreinterpret_u16_p8(poly8x8_t a) { 7352 return vreinterpret_u16_p8(a); 7353} 7354 7355// CHECK-LABEL: test_vreinterpret_u16_p16 7356uint16x4_t test_vreinterpret_u16_p16(poly16x4_t a) { 7357 return vreinterpret_u16_p16(a); 7358} 7359 7360// CHECK-LABEL: test_vreinterpret_u32_s8 7361uint32x2_t test_vreinterpret_u32_s8(int8x8_t a) { 7362 return vreinterpret_u32_s8(a); 7363} 7364 7365// CHECK-LABEL: test_vreinterpret_u32_s16 7366uint32x2_t test_vreinterpret_u32_s16(int16x4_t a) { 7367 return vreinterpret_u32_s16(a); 7368} 7369 7370// CHECK-LABEL: test_vreinterpret_u32_s32 7371uint32x2_t test_vreinterpret_u32_s32(int32x2_t a) { 7372 return vreinterpret_u32_s32(a); 7373} 7374 7375// CHECK-LABEL: test_vreinterpret_u32_s64 7376uint32x2_t test_vreinterpret_u32_s64(int64x1_t a) { 7377 return vreinterpret_u32_s64(a); 7378} 7379 7380// CHECK-LABEL: test_vreinterpret_u32_u8 7381uint32x2_t test_vreinterpret_u32_u8(uint8x8_t a) { 7382 return vreinterpret_u32_u8(a); 7383} 7384 7385// CHECK-LABEL: test_vreinterpret_u32_u16 7386uint32x2_t test_vreinterpret_u32_u16(uint16x4_t a) { 7387 return vreinterpret_u32_u16(a); 7388} 7389 7390// CHECK-LABEL: test_vreinterpret_u32_u64 7391uint32x2_t test_vreinterpret_u32_u64(uint64x1_t a) { 7392 return vreinterpret_u32_u64(a); 7393} 7394 7395// CHECK-LABEL: test_vreinterpret_u32_f16 7396uint32x2_t test_vreinterpret_u32_f16(float16x4_t a) { 7397 return vreinterpret_u32_f16(a); 7398} 7399 7400// CHECK-LABEL: test_vreinterpret_u32_f32 7401uint32x2_t test_vreinterpret_u32_f32(float32x2_t a) { 7402 return vreinterpret_u32_f32(a); 7403} 7404 7405// CHECK-LABEL: test_vreinterpret_u32_p8 7406uint32x2_t test_vreinterpret_u32_p8(poly8x8_t a) { 7407 return vreinterpret_u32_p8(a); 7408} 7409 7410// CHECK-LABEL: test_vreinterpret_u32_p16 7411uint32x2_t test_vreinterpret_u32_p16(poly16x4_t a) { 7412 return vreinterpret_u32_p16(a); 7413} 7414 7415// CHECK-LABEL: test_vreinterpret_u64_s8 7416uint64x1_t test_vreinterpret_u64_s8(int8x8_t a) { 7417 return vreinterpret_u64_s8(a); 7418} 7419 7420// CHECK-LABEL: test_vreinterpret_u64_s16 7421uint64x1_t test_vreinterpret_u64_s16(int16x4_t a) { 7422 return vreinterpret_u64_s16(a); 7423} 7424 7425// CHECK-LABEL: test_vreinterpret_u64_s32 7426uint64x1_t test_vreinterpret_u64_s32(int32x2_t a) { 7427 return vreinterpret_u64_s32(a); 7428} 7429 7430// CHECK-LABEL: test_vreinterpret_u64_s64 7431uint64x1_t test_vreinterpret_u64_s64(int64x1_t a) { 7432 return vreinterpret_u64_s64(a); 7433} 7434 7435// CHECK-LABEL: test_vreinterpret_u64_u8 7436uint64x1_t test_vreinterpret_u64_u8(uint8x8_t a) { 7437 return vreinterpret_u64_u8(a); 7438} 7439 7440// CHECK-LABEL: test_vreinterpret_u64_u16 7441uint64x1_t test_vreinterpret_u64_u16(uint16x4_t a) { 7442 return vreinterpret_u64_u16(a); 7443} 7444 7445// CHECK-LABEL: test_vreinterpret_u64_u32 7446uint64x1_t test_vreinterpret_u64_u32(uint32x2_t a) { 7447 return vreinterpret_u64_u32(a); 7448} 7449 7450// CHECK-LABEL: test_vreinterpret_u64_f16 7451uint64x1_t test_vreinterpret_u64_f16(float16x4_t a) { 7452 return vreinterpret_u64_f16(a); 7453} 7454 7455// CHECK-LABEL: test_vreinterpret_u64_f32 7456uint64x1_t test_vreinterpret_u64_f32(float32x2_t a) { 7457 return vreinterpret_u64_f32(a); 7458} 7459 7460// CHECK-LABEL: test_vreinterpret_u64_p8 7461uint64x1_t test_vreinterpret_u64_p8(poly8x8_t a) { 7462 return vreinterpret_u64_p8(a); 7463} 7464 7465// CHECK-LABEL: test_vreinterpret_u64_p16 7466uint64x1_t test_vreinterpret_u64_p16(poly16x4_t a) { 7467 return vreinterpret_u64_p16(a); 7468} 7469 7470// CHECK-LABEL: test_vreinterpret_f16_s8 7471float16x4_t test_vreinterpret_f16_s8(int8x8_t a) { 7472 return vreinterpret_f16_s8(a); 7473} 7474 7475// CHECK-LABEL: test_vreinterpret_f16_s16 7476float16x4_t test_vreinterpret_f16_s16(int16x4_t a) { 7477 return vreinterpret_f16_s16(a); 7478} 7479 7480// CHECK-LABEL: test_vreinterpret_f16_s32 7481float16x4_t test_vreinterpret_f16_s32(int32x2_t a) { 7482 return vreinterpret_f16_s32(a); 7483} 7484 7485// CHECK-LABEL: test_vreinterpret_f16_s64 7486float16x4_t test_vreinterpret_f16_s64(int64x1_t a) { 7487 return vreinterpret_f16_s64(a); 7488} 7489 7490// CHECK-LABEL: test_vreinterpret_f16_u8 7491float16x4_t test_vreinterpret_f16_u8(uint8x8_t a) { 7492 return vreinterpret_f16_u8(a); 7493} 7494 7495// CHECK-LABEL: test_vreinterpret_f16_u16 7496float16x4_t test_vreinterpret_f16_u16(uint16x4_t a) { 7497 return vreinterpret_f16_u16(a); 7498} 7499 7500// CHECK-LABEL: test_vreinterpret_f16_u32 7501float16x4_t test_vreinterpret_f16_u32(uint32x2_t a) { 7502 return vreinterpret_f16_u32(a); 7503} 7504 7505// CHECK-LABEL: test_vreinterpret_f16_u64 7506float16x4_t test_vreinterpret_f16_u64(uint64x1_t a) { 7507 return vreinterpret_f16_u64(a); 7508} 7509 7510// CHECK-LABEL: test_vreinterpret_f16_f32 7511float16x4_t test_vreinterpret_f16_f32(float32x2_t a) { 7512 return vreinterpret_f16_f32(a); 7513} 7514 7515// CHECK-LABEL: test_vreinterpret_f16_p8 7516float16x4_t test_vreinterpret_f16_p8(poly8x8_t a) { 7517 return vreinterpret_f16_p8(a); 7518} 7519 7520// CHECK-LABEL: test_vreinterpret_f16_p16 7521float16x4_t test_vreinterpret_f16_p16(poly16x4_t a) { 7522 return vreinterpret_f16_p16(a); 7523} 7524 7525// CHECK-LABEL: test_vreinterpret_f32_s8 7526float32x2_t test_vreinterpret_f32_s8(int8x8_t a) { 7527 return vreinterpret_f32_s8(a); 7528} 7529 7530// CHECK-LABEL: test_vreinterpret_f32_s16 7531float32x2_t test_vreinterpret_f32_s16(int16x4_t a) { 7532 return vreinterpret_f32_s16(a); 7533} 7534 7535// CHECK-LABEL: test_vreinterpret_f32_s32 7536float32x2_t test_vreinterpret_f32_s32(int32x2_t a) { 7537 return vreinterpret_f32_s32(a); 7538} 7539 7540// CHECK-LABEL: test_vreinterpret_f32_s64 7541float32x2_t test_vreinterpret_f32_s64(int64x1_t a) { 7542 return vreinterpret_f32_s64(a); 7543} 7544 7545// CHECK-LABEL: test_vreinterpret_f32_u8 7546float32x2_t test_vreinterpret_f32_u8(uint8x8_t a) { 7547 return vreinterpret_f32_u8(a); 7548} 7549 7550// CHECK-LABEL: test_vreinterpret_f32_u16 7551float32x2_t test_vreinterpret_f32_u16(uint16x4_t a) { 7552 return vreinterpret_f32_u16(a); 7553} 7554 7555// CHECK-LABEL: test_vreinterpret_f32_u32 7556float32x2_t test_vreinterpret_f32_u32(uint32x2_t a) { 7557 return vreinterpret_f32_u32(a); 7558} 7559 7560// CHECK-LABEL: test_vreinterpret_f32_u64 7561float32x2_t test_vreinterpret_f32_u64(uint64x1_t a) { 7562 return vreinterpret_f32_u64(a); 7563} 7564 7565// CHECK-LABEL: test_vreinterpret_f32_f16 7566float32x2_t test_vreinterpret_f32_f16(float16x4_t a) { 7567 return vreinterpret_f32_f16(a); 7568} 7569 7570// CHECK-LABEL: test_vreinterpret_f32_p8 7571float32x2_t test_vreinterpret_f32_p8(poly8x8_t a) { 7572 return vreinterpret_f32_p8(a); 7573} 7574 7575// CHECK-LABEL: test_vreinterpret_f32_p16 7576float32x2_t test_vreinterpret_f32_p16(poly16x4_t a) { 7577 return vreinterpret_f32_p16(a); 7578} 7579 7580// CHECK-LABEL: test_vreinterpret_p8_s8 7581poly8x8_t test_vreinterpret_p8_s8(int8x8_t a) { 7582 return vreinterpret_p8_s8(a); 7583} 7584 7585// CHECK-LABEL: test_vreinterpret_p8_s16 7586poly8x8_t test_vreinterpret_p8_s16(int16x4_t a) { 7587 return vreinterpret_p8_s16(a); 7588} 7589 7590// CHECK-LABEL: test_vreinterpret_p8_s32 7591poly8x8_t test_vreinterpret_p8_s32(int32x2_t a) { 7592 return vreinterpret_p8_s32(a); 7593} 7594 7595// CHECK-LABEL: test_vreinterpret_p8_s64 7596poly8x8_t test_vreinterpret_p8_s64(int64x1_t a) { 7597 return vreinterpret_p8_s64(a); 7598} 7599 7600// CHECK-LABEL: test_vreinterpret_p8_u8 7601poly8x8_t test_vreinterpret_p8_u8(uint8x8_t a) { 7602 return vreinterpret_p8_u8(a); 7603} 7604 7605// CHECK-LABEL: test_vreinterpret_p8_u16 7606poly8x8_t test_vreinterpret_p8_u16(uint16x4_t a) { 7607 return vreinterpret_p8_u16(a); 7608} 7609 7610// CHECK-LABEL: test_vreinterpret_p8_u32 7611poly8x8_t test_vreinterpret_p8_u32(uint32x2_t a) { 7612 return vreinterpret_p8_u32(a); 7613} 7614 7615// CHECK-LABEL: test_vreinterpret_p8_u64 7616poly8x8_t test_vreinterpret_p8_u64(uint64x1_t a) { 7617 return vreinterpret_p8_u64(a); 7618} 7619 7620// CHECK-LABEL: test_vreinterpret_p8_f16 7621poly8x8_t test_vreinterpret_p8_f16(float16x4_t a) { 7622 return vreinterpret_p8_f16(a); 7623} 7624 7625// CHECK-LABEL: test_vreinterpret_p8_f32 7626poly8x8_t test_vreinterpret_p8_f32(float32x2_t a) { 7627 return vreinterpret_p8_f32(a); 7628} 7629 7630// CHECK-LABEL: test_vreinterpret_p8_p16 7631poly8x8_t test_vreinterpret_p8_p16(poly16x4_t a) { 7632 return vreinterpret_p8_p16(a); 7633} 7634 7635// CHECK-LABEL: test_vreinterpret_p16_s8 7636poly16x4_t test_vreinterpret_p16_s8(int8x8_t a) { 7637 return vreinterpret_p16_s8(a); 7638} 7639 7640// CHECK-LABEL: test_vreinterpret_p16_s16 7641poly16x4_t test_vreinterpret_p16_s16(int16x4_t a) { 7642 return vreinterpret_p16_s16(a); 7643} 7644 7645// CHECK-LABEL: test_vreinterpret_p16_s32 7646poly16x4_t test_vreinterpret_p16_s32(int32x2_t a) { 7647 return vreinterpret_p16_s32(a); 7648} 7649 7650// CHECK-LABEL: test_vreinterpret_p16_s64 7651poly16x4_t test_vreinterpret_p16_s64(int64x1_t a) { 7652 return vreinterpret_p16_s64(a); 7653} 7654 7655// CHECK-LABEL: test_vreinterpret_p16_u8 7656poly16x4_t test_vreinterpret_p16_u8(uint8x8_t a) { 7657 return vreinterpret_p16_u8(a); 7658} 7659 7660// CHECK-LABEL: test_vreinterpret_p16_u16 7661poly16x4_t test_vreinterpret_p16_u16(uint16x4_t a) { 7662 return vreinterpret_p16_u16(a); 7663} 7664 7665// CHECK-LABEL: test_vreinterpret_p16_u32 7666poly16x4_t test_vreinterpret_p16_u32(uint32x2_t a) { 7667 return vreinterpret_p16_u32(a); 7668} 7669 7670// CHECK-LABEL: test_vreinterpret_p16_u64 7671poly16x4_t test_vreinterpret_p16_u64(uint64x1_t a) { 7672 return vreinterpret_p16_u64(a); 7673} 7674 7675// CHECK-LABEL: test_vreinterpret_p16_f16 7676poly16x4_t test_vreinterpret_p16_f16(float16x4_t a) { 7677 return vreinterpret_p16_f16(a); 7678} 7679 7680// CHECK-LABEL: test_vreinterpret_p16_f32 7681poly16x4_t test_vreinterpret_p16_f32(float32x2_t a) { 7682 return vreinterpret_p16_f32(a); 7683} 7684 7685// CHECK-LABEL: test_vreinterpret_p16_p8 7686poly16x4_t test_vreinterpret_p16_p8(poly8x8_t a) { 7687 return vreinterpret_p16_p8(a); 7688} 7689 7690// CHECK-LABEL: test_vreinterpretq_s8_s16 7691int8x16_t test_vreinterpretq_s8_s16(int16x8_t a) { 7692 return vreinterpretq_s8_s16(a); 7693} 7694 7695// CHECK-LABEL: test_vreinterpretq_s8_s32 7696int8x16_t test_vreinterpretq_s8_s32(int32x4_t a) { 7697 return vreinterpretq_s8_s32(a); 7698} 7699 7700// CHECK-LABEL: test_vreinterpretq_s8_s64 7701int8x16_t test_vreinterpretq_s8_s64(int64x2_t a) { 7702 return vreinterpretq_s8_s64(a); 7703} 7704 7705// CHECK-LABEL: test_vreinterpretq_s8_u8 7706int8x16_t test_vreinterpretq_s8_u8(uint8x16_t a) { 7707 return vreinterpretq_s8_u8(a); 7708} 7709 7710// CHECK-LABEL: test_vreinterpretq_s8_u16 7711int8x16_t test_vreinterpretq_s8_u16(uint16x8_t a) { 7712 return vreinterpretq_s8_u16(a); 7713} 7714 7715// CHECK-LABEL: test_vreinterpretq_s8_u32 7716int8x16_t test_vreinterpretq_s8_u32(uint32x4_t a) { 7717 return vreinterpretq_s8_u32(a); 7718} 7719 7720// CHECK-LABEL: test_vreinterpretq_s8_u64 7721int8x16_t test_vreinterpretq_s8_u64(uint64x2_t a) { 7722 return vreinterpretq_s8_u64(a); 7723} 7724 7725// CHECK-LABEL: test_vreinterpretq_s8_f16 7726int8x16_t test_vreinterpretq_s8_f16(float16x8_t a) { 7727 return vreinterpretq_s8_f16(a); 7728} 7729 7730// CHECK-LABEL: test_vreinterpretq_s8_f32 7731int8x16_t test_vreinterpretq_s8_f32(float32x4_t a) { 7732 return vreinterpretq_s8_f32(a); 7733} 7734 7735// CHECK-LABEL: test_vreinterpretq_s8_p8 7736int8x16_t test_vreinterpretq_s8_p8(poly8x16_t a) { 7737 return vreinterpretq_s8_p8(a); 7738} 7739 7740// CHECK-LABEL: test_vreinterpretq_s8_p16 7741int8x16_t test_vreinterpretq_s8_p16(poly16x8_t a) { 7742 return vreinterpretq_s8_p16(a); 7743} 7744 7745// CHECK-LABEL: test_vreinterpretq_s16_s8 7746int16x8_t test_vreinterpretq_s16_s8(int8x16_t a) { 7747 return vreinterpretq_s16_s8(a); 7748} 7749 7750// CHECK-LABEL: test_vreinterpretq_s16_s32 7751int16x8_t test_vreinterpretq_s16_s32(int32x4_t a) { 7752 return vreinterpretq_s16_s32(a); 7753} 7754 7755// CHECK-LABEL: test_vreinterpretq_s16_s64 7756int16x8_t test_vreinterpretq_s16_s64(int64x2_t a) { 7757 return vreinterpretq_s16_s64(a); 7758} 7759 7760// CHECK-LABEL: test_vreinterpretq_s16_u8 7761int16x8_t test_vreinterpretq_s16_u8(uint8x16_t a) { 7762 return vreinterpretq_s16_u8(a); 7763} 7764 7765// CHECK-LABEL: test_vreinterpretq_s16_u16 7766int16x8_t test_vreinterpretq_s16_u16(uint16x8_t a) { 7767 return vreinterpretq_s16_u16(a); 7768} 7769 7770// CHECK-LABEL: test_vreinterpretq_s16_u32 7771int16x8_t test_vreinterpretq_s16_u32(uint32x4_t a) { 7772 return vreinterpretq_s16_u32(a); 7773} 7774 7775// CHECK-LABEL: test_vreinterpretq_s16_u64 7776int16x8_t test_vreinterpretq_s16_u64(uint64x2_t a) { 7777 return vreinterpretq_s16_u64(a); 7778} 7779 7780// CHECK-LABEL: test_vreinterpretq_s16_f16 7781int16x8_t test_vreinterpretq_s16_f16(float16x8_t a) { 7782 return vreinterpretq_s16_f16(a); 7783} 7784 7785// CHECK-LABEL: test_vreinterpretq_s16_f32 7786int16x8_t test_vreinterpretq_s16_f32(float32x4_t a) { 7787 return vreinterpretq_s16_f32(a); 7788} 7789 7790// CHECK-LABEL: test_vreinterpretq_s16_p8 7791int16x8_t test_vreinterpretq_s16_p8(poly8x16_t a) { 7792 return vreinterpretq_s16_p8(a); 7793} 7794 7795// CHECK-LABEL: test_vreinterpretq_s16_p16 7796int16x8_t test_vreinterpretq_s16_p16(poly16x8_t a) { 7797 return vreinterpretq_s16_p16(a); 7798} 7799 7800// CHECK-LABEL: test_vreinterpretq_s32_s8 7801int32x4_t test_vreinterpretq_s32_s8(int8x16_t a) { 7802 return vreinterpretq_s32_s8(a); 7803} 7804 7805// CHECK-LABEL: test_vreinterpretq_s32_s16 7806int32x4_t test_vreinterpretq_s32_s16(int16x8_t a) { 7807 return vreinterpretq_s32_s16(a); 7808} 7809 7810// CHECK-LABEL: test_vreinterpretq_s32_s64 7811int32x4_t test_vreinterpretq_s32_s64(int64x2_t a) { 7812 return vreinterpretq_s32_s64(a); 7813} 7814 7815// CHECK-LABEL: test_vreinterpretq_s32_u8 7816int32x4_t test_vreinterpretq_s32_u8(uint8x16_t a) { 7817 return vreinterpretq_s32_u8(a); 7818} 7819 7820// CHECK-LABEL: test_vreinterpretq_s32_u16 7821int32x4_t test_vreinterpretq_s32_u16(uint16x8_t a) { 7822 return vreinterpretq_s32_u16(a); 7823} 7824 7825// CHECK-LABEL: test_vreinterpretq_s32_u32 7826int32x4_t test_vreinterpretq_s32_u32(uint32x4_t a) { 7827 return vreinterpretq_s32_u32(a); 7828} 7829 7830// CHECK-LABEL: test_vreinterpretq_s32_u64 7831int32x4_t test_vreinterpretq_s32_u64(uint64x2_t a) { 7832 return vreinterpretq_s32_u64(a); 7833} 7834 7835// CHECK-LABEL: test_vreinterpretq_s32_f16 7836int32x4_t test_vreinterpretq_s32_f16(float16x8_t a) { 7837 return vreinterpretq_s32_f16(a); 7838} 7839 7840// CHECK-LABEL: test_vreinterpretq_s32_f32 7841int32x4_t test_vreinterpretq_s32_f32(float32x4_t a) { 7842 return vreinterpretq_s32_f32(a); 7843} 7844 7845// CHECK-LABEL: test_vreinterpretq_s32_p8 7846int32x4_t test_vreinterpretq_s32_p8(poly8x16_t a) { 7847 return vreinterpretq_s32_p8(a); 7848} 7849 7850// CHECK-LABEL: test_vreinterpretq_s32_p16 7851int32x4_t test_vreinterpretq_s32_p16(poly16x8_t a) { 7852 return vreinterpretq_s32_p16(a); 7853} 7854 7855// CHECK-LABEL: test_vreinterpretq_s64_s8 7856int64x2_t test_vreinterpretq_s64_s8(int8x16_t a) { 7857 return vreinterpretq_s64_s8(a); 7858} 7859 7860// CHECK-LABEL: test_vreinterpretq_s64_s16 7861int64x2_t test_vreinterpretq_s64_s16(int16x8_t a) { 7862 return vreinterpretq_s64_s16(a); 7863} 7864 7865// CHECK-LABEL: test_vreinterpretq_s64_s32 7866int64x2_t test_vreinterpretq_s64_s32(int32x4_t a) { 7867 return vreinterpretq_s64_s32(a); 7868} 7869 7870// CHECK-LABEL: test_vreinterpretq_s64_u8 7871int64x2_t test_vreinterpretq_s64_u8(uint8x16_t a) { 7872 return vreinterpretq_s64_u8(a); 7873} 7874 7875// CHECK-LABEL: test_vreinterpretq_s64_u16 7876int64x2_t test_vreinterpretq_s64_u16(uint16x8_t a) { 7877 return vreinterpretq_s64_u16(a); 7878} 7879 7880// CHECK-LABEL: test_vreinterpretq_s64_u32 7881int64x2_t test_vreinterpretq_s64_u32(uint32x4_t a) { 7882 return vreinterpretq_s64_u32(a); 7883} 7884 7885// CHECK-LABEL: test_vreinterpretq_s64_u64 7886int64x2_t test_vreinterpretq_s64_u64(uint64x2_t a) { 7887 return vreinterpretq_s64_u64(a); 7888} 7889 7890// CHECK-LABEL: test_vreinterpretq_s64_f16 7891int64x2_t test_vreinterpretq_s64_f16(float16x8_t a) { 7892 return vreinterpretq_s64_f16(a); 7893} 7894 7895// CHECK-LABEL: test_vreinterpretq_s64_f32 7896int64x2_t test_vreinterpretq_s64_f32(float32x4_t a) { 7897 return vreinterpretq_s64_f32(a); 7898} 7899 7900// CHECK-LABEL: test_vreinterpretq_s64_p8 7901int64x2_t test_vreinterpretq_s64_p8(poly8x16_t a) { 7902 return vreinterpretq_s64_p8(a); 7903} 7904 7905// CHECK-LABEL: test_vreinterpretq_s64_p16 7906int64x2_t test_vreinterpretq_s64_p16(poly16x8_t a) { 7907 return vreinterpretq_s64_p16(a); 7908} 7909 7910// CHECK-LABEL: test_vreinterpretq_u8_s8 7911uint8x16_t test_vreinterpretq_u8_s8(int8x16_t a) { 7912 return vreinterpretq_u8_s8(a); 7913} 7914 7915// CHECK-LABEL: test_vreinterpretq_u8_s16 7916uint8x16_t test_vreinterpretq_u8_s16(int16x8_t a) { 7917 return vreinterpretq_u8_s16(a); 7918} 7919 7920// CHECK-LABEL: test_vreinterpretq_u8_s32 7921uint8x16_t test_vreinterpretq_u8_s32(int32x4_t a) { 7922 return vreinterpretq_u8_s32(a); 7923} 7924 7925// CHECK-LABEL: test_vreinterpretq_u8_s64 7926uint8x16_t test_vreinterpretq_u8_s64(int64x2_t a) { 7927 return vreinterpretq_u8_s64(a); 7928} 7929 7930// CHECK-LABEL: test_vreinterpretq_u8_u16 7931uint8x16_t test_vreinterpretq_u8_u16(uint16x8_t a) { 7932 return vreinterpretq_u8_u16(a); 7933} 7934 7935// CHECK-LABEL: test_vreinterpretq_u8_u32 7936uint8x16_t test_vreinterpretq_u8_u32(uint32x4_t a) { 7937 return vreinterpretq_u8_u32(a); 7938} 7939 7940// CHECK-LABEL: test_vreinterpretq_u8_u64 7941uint8x16_t test_vreinterpretq_u8_u64(uint64x2_t a) { 7942 return vreinterpretq_u8_u64(a); 7943} 7944 7945// CHECK-LABEL: test_vreinterpretq_u8_f16 7946uint8x16_t test_vreinterpretq_u8_f16(float16x8_t a) { 7947 return vreinterpretq_u8_f16(a); 7948} 7949 7950// CHECK-LABEL: test_vreinterpretq_u8_f32 7951uint8x16_t test_vreinterpretq_u8_f32(float32x4_t a) { 7952 return vreinterpretq_u8_f32(a); 7953} 7954 7955// CHECK-LABEL: test_vreinterpretq_u8_p8 7956uint8x16_t test_vreinterpretq_u8_p8(poly8x16_t a) { 7957 return vreinterpretq_u8_p8(a); 7958} 7959 7960// CHECK-LABEL: test_vreinterpretq_u8_p16 7961uint8x16_t test_vreinterpretq_u8_p16(poly16x8_t a) { 7962 return vreinterpretq_u8_p16(a); 7963} 7964 7965// CHECK-LABEL: test_vreinterpretq_u16_s8 7966uint16x8_t test_vreinterpretq_u16_s8(int8x16_t a) { 7967 return vreinterpretq_u16_s8(a); 7968} 7969 7970// CHECK-LABEL: test_vreinterpretq_u16_s16 7971uint16x8_t test_vreinterpretq_u16_s16(int16x8_t a) { 7972 return vreinterpretq_u16_s16(a); 7973} 7974 7975// CHECK-LABEL: test_vreinterpretq_u16_s32 7976uint16x8_t test_vreinterpretq_u16_s32(int32x4_t a) { 7977 return vreinterpretq_u16_s32(a); 7978} 7979 7980// CHECK-LABEL: test_vreinterpretq_u16_s64 7981uint16x8_t test_vreinterpretq_u16_s64(int64x2_t a) { 7982 return vreinterpretq_u16_s64(a); 7983} 7984 7985// CHECK-LABEL: test_vreinterpretq_u16_u8 7986uint16x8_t test_vreinterpretq_u16_u8(uint8x16_t a) { 7987 return vreinterpretq_u16_u8(a); 7988} 7989 7990// CHECK-LABEL: test_vreinterpretq_u16_u32 7991uint16x8_t test_vreinterpretq_u16_u32(uint32x4_t a) { 7992 return vreinterpretq_u16_u32(a); 7993} 7994 7995// CHECK-LABEL: test_vreinterpretq_u16_u64 7996uint16x8_t test_vreinterpretq_u16_u64(uint64x2_t a) { 7997 return vreinterpretq_u16_u64(a); 7998} 7999 8000// CHECK-LABEL: test_vreinterpretq_u16_f16 8001uint16x8_t test_vreinterpretq_u16_f16(float16x8_t a) { 8002 return vreinterpretq_u16_f16(a); 8003} 8004 8005// CHECK-LABEL: test_vreinterpretq_u16_f32 8006uint16x8_t test_vreinterpretq_u16_f32(float32x4_t a) { 8007 return vreinterpretq_u16_f32(a); 8008} 8009 8010// CHECK-LABEL: test_vreinterpretq_u16_p8 8011uint16x8_t test_vreinterpretq_u16_p8(poly8x16_t a) { 8012 return vreinterpretq_u16_p8(a); 8013} 8014 8015// CHECK-LABEL: test_vreinterpretq_u16_p16 8016uint16x8_t test_vreinterpretq_u16_p16(poly16x8_t a) { 8017 return vreinterpretq_u16_p16(a); 8018} 8019 8020// CHECK-LABEL: test_vreinterpretq_u32_s8 8021uint32x4_t test_vreinterpretq_u32_s8(int8x16_t a) { 8022 return vreinterpretq_u32_s8(a); 8023} 8024 8025// CHECK-LABEL: test_vreinterpretq_u32_s16 8026uint32x4_t test_vreinterpretq_u32_s16(int16x8_t a) { 8027 return vreinterpretq_u32_s16(a); 8028} 8029 8030// CHECK-LABEL: test_vreinterpretq_u32_s32 8031uint32x4_t test_vreinterpretq_u32_s32(int32x4_t a) { 8032 return vreinterpretq_u32_s32(a); 8033} 8034 8035// CHECK-LABEL: test_vreinterpretq_u32_s64 8036uint32x4_t test_vreinterpretq_u32_s64(int64x2_t a) { 8037 return vreinterpretq_u32_s64(a); 8038} 8039 8040// CHECK-LABEL: test_vreinterpretq_u32_u8 8041uint32x4_t test_vreinterpretq_u32_u8(uint8x16_t a) { 8042 return vreinterpretq_u32_u8(a); 8043} 8044 8045// CHECK-LABEL: test_vreinterpretq_u32_u16 8046uint32x4_t test_vreinterpretq_u32_u16(uint16x8_t a) { 8047 return vreinterpretq_u32_u16(a); 8048} 8049 8050// CHECK-LABEL: test_vreinterpretq_u32_u64 8051uint32x4_t test_vreinterpretq_u32_u64(uint64x2_t a) { 8052 return vreinterpretq_u32_u64(a); 8053} 8054 8055// CHECK-LABEL: test_vreinterpretq_u32_f16 8056uint32x4_t test_vreinterpretq_u32_f16(float16x8_t a) { 8057 return vreinterpretq_u32_f16(a); 8058} 8059 8060// CHECK-LABEL: test_vreinterpretq_u32_f32 8061uint32x4_t test_vreinterpretq_u32_f32(float32x4_t a) { 8062 return vreinterpretq_u32_f32(a); 8063} 8064 8065// CHECK-LABEL: test_vreinterpretq_u32_p8 8066uint32x4_t test_vreinterpretq_u32_p8(poly8x16_t a) { 8067 return vreinterpretq_u32_p8(a); 8068} 8069 8070// CHECK-LABEL: test_vreinterpretq_u32_p16 8071uint32x4_t test_vreinterpretq_u32_p16(poly16x8_t a) { 8072 return vreinterpretq_u32_p16(a); 8073} 8074 8075// CHECK-LABEL: test_vreinterpretq_u64_s8 8076uint64x2_t test_vreinterpretq_u64_s8(int8x16_t a) { 8077 return vreinterpretq_u64_s8(a); 8078} 8079 8080// CHECK-LABEL: test_vreinterpretq_u64_s16 8081uint64x2_t test_vreinterpretq_u64_s16(int16x8_t a) { 8082 return vreinterpretq_u64_s16(a); 8083} 8084 8085// CHECK-LABEL: test_vreinterpretq_u64_s32 8086uint64x2_t test_vreinterpretq_u64_s32(int32x4_t a) { 8087 return vreinterpretq_u64_s32(a); 8088} 8089 8090// CHECK-LABEL: test_vreinterpretq_u64_s64 8091uint64x2_t test_vreinterpretq_u64_s64(int64x2_t a) { 8092 return vreinterpretq_u64_s64(a); 8093} 8094 8095// CHECK-LABEL: test_vreinterpretq_u64_u8 8096uint64x2_t test_vreinterpretq_u64_u8(uint8x16_t a) { 8097 return vreinterpretq_u64_u8(a); 8098} 8099 8100// CHECK-LABEL: test_vreinterpretq_u64_u16 8101uint64x2_t test_vreinterpretq_u64_u16(uint16x8_t a) { 8102 return vreinterpretq_u64_u16(a); 8103} 8104 8105// CHECK-LABEL: test_vreinterpretq_u64_u32 8106uint64x2_t test_vreinterpretq_u64_u32(uint32x4_t a) { 8107 return vreinterpretq_u64_u32(a); 8108} 8109 8110// CHECK-LABEL: test_vreinterpretq_u64_f16 8111uint64x2_t test_vreinterpretq_u64_f16(float16x8_t a) { 8112 return vreinterpretq_u64_f16(a); 8113} 8114 8115// CHECK-LABEL: test_vreinterpretq_u64_f32 8116uint64x2_t test_vreinterpretq_u64_f32(float32x4_t a) { 8117 return vreinterpretq_u64_f32(a); 8118} 8119 8120// CHECK-LABEL: test_vreinterpretq_u64_p8 8121uint64x2_t test_vreinterpretq_u64_p8(poly8x16_t a) { 8122 return vreinterpretq_u64_p8(a); 8123} 8124 8125// CHECK-LABEL: test_vreinterpretq_u64_p16 8126uint64x2_t test_vreinterpretq_u64_p16(poly16x8_t a) { 8127 return vreinterpretq_u64_p16(a); 8128} 8129 8130// CHECK-LABEL: test_vreinterpretq_f16_s8 8131float16x8_t test_vreinterpretq_f16_s8(int8x16_t a) { 8132 return vreinterpretq_f16_s8(a); 8133} 8134 8135// CHECK-LABEL: test_vreinterpretq_f16_s16 8136float16x8_t test_vreinterpretq_f16_s16(int16x8_t a) { 8137 return vreinterpretq_f16_s16(a); 8138} 8139 8140// CHECK-LABEL: test_vreinterpretq_f16_s32 8141float16x8_t test_vreinterpretq_f16_s32(int32x4_t a) { 8142 return vreinterpretq_f16_s32(a); 8143} 8144 8145// CHECK-LABEL: test_vreinterpretq_f16_s64 8146float16x8_t test_vreinterpretq_f16_s64(int64x2_t a) { 8147 return vreinterpretq_f16_s64(a); 8148} 8149 8150// CHECK-LABEL: test_vreinterpretq_f16_u8 8151float16x8_t test_vreinterpretq_f16_u8(uint8x16_t a) { 8152 return vreinterpretq_f16_u8(a); 8153} 8154 8155// CHECK-LABEL: test_vreinterpretq_f16_u16 8156float16x8_t test_vreinterpretq_f16_u16(uint16x8_t a) { 8157 return vreinterpretq_f16_u16(a); 8158} 8159 8160// CHECK-LABEL: test_vreinterpretq_f16_u32 8161float16x8_t test_vreinterpretq_f16_u32(uint32x4_t a) { 8162 return vreinterpretq_f16_u32(a); 8163} 8164 8165// CHECK-LABEL: test_vreinterpretq_f16_u64 8166float16x8_t test_vreinterpretq_f16_u64(uint64x2_t a) { 8167 return vreinterpretq_f16_u64(a); 8168} 8169 8170// CHECK-LABEL: test_vreinterpretq_f16_f32 8171float16x8_t test_vreinterpretq_f16_f32(float32x4_t a) { 8172 return vreinterpretq_f16_f32(a); 8173} 8174 8175// CHECK-LABEL: test_vreinterpretq_f16_p8 8176float16x8_t test_vreinterpretq_f16_p8(poly8x16_t a) { 8177 return vreinterpretq_f16_p8(a); 8178} 8179 8180// CHECK-LABEL: test_vreinterpretq_f16_p16 8181float16x8_t test_vreinterpretq_f16_p16(poly16x8_t a) { 8182 return vreinterpretq_f16_p16(a); 8183} 8184 8185// CHECK-LABEL: test_vreinterpretq_f32_s8 8186float32x4_t test_vreinterpretq_f32_s8(int8x16_t a) { 8187 return vreinterpretq_f32_s8(a); 8188} 8189 8190// CHECK-LABEL: test_vreinterpretq_f32_s16 8191float32x4_t test_vreinterpretq_f32_s16(int16x8_t a) { 8192 return vreinterpretq_f32_s16(a); 8193} 8194 8195// CHECK-LABEL: test_vreinterpretq_f32_s32 8196float32x4_t test_vreinterpretq_f32_s32(int32x4_t a) { 8197 return vreinterpretq_f32_s32(a); 8198} 8199 8200// CHECK-LABEL: test_vreinterpretq_f32_s64 8201float32x4_t test_vreinterpretq_f32_s64(int64x2_t a) { 8202 return vreinterpretq_f32_s64(a); 8203} 8204 8205// CHECK-LABEL: test_vreinterpretq_f32_u8 8206float32x4_t test_vreinterpretq_f32_u8(uint8x16_t a) { 8207 return vreinterpretq_f32_u8(a); 8208} 8209 8210// CHECK-LABEL: test_vreinterpretq_f32_u16 8211float32x4_t test_vreinterpretq_f32_u16(uint16x8_t a) { 8212 return vreinterpretq_f32_u16(a); 8213} 8214 8215// CHECK-LABEL: test_vreinterpretq_f32_u32 8216float32x4_t test_vreinterpretq_f32_u32(uint32x4_t a) { 8217 return vreinterpretq_f32_u32(a); 8218} 8219 8220// CHECK-LABEL: test_vreinterpretq_f32_u64 8221float32x4_t test_vreinterpretq_f32_u64(uint64x2_t a) { 8222 return vreinterpretq_f32_u64(a); 8223} 8224 8225// CHECK-LABEL: test_vreinterpretq_f32_f16 8226float32x4_t test_vreinterpretq_f32_f16(float16x8_t a) { 8227 return vreinterpretq_f32_f16(a); 8228} 8229 8230// CHECK-LABEL: test_vreinterpretq_f32_p8 8231float32x4_t test_vreinterpretq_f32_p8(poly8x16_t a) { 8232 return vreinterpretq_f32_p8(a); 8233} 8234 8235// CHECK-LABEL: test_vreinterpretq_f32_p16 8236float32x4_t test_vreinterpretq_f32_p16(poly16x8_t a) { 8237 return vreinterpretq_f32_p16(a); 8238} 8239 8240// CHECK-LABEL: test_vreinterpretq_p8_s8 8241poly8x16_t test_vreinterpretq_p8_s8(int8x16_t a) { 8242 return vreinterpretq_p8_s8(a); 8243} 8244 8245// CHECK-LABEL: test_vreinterpretq_p8_s16 8246poly8x16_t test_vreinterpretq_p8_s16(int16x8_t a) { 8247 return vreinterpretq_p8_s16(a); 8248} 8249 8250// CHECK-LABEL: test_vreinterpretq_p8_s32 8251poly8x16_t test_vreinterpretq_p8_s32(int32x4_t a) { 8252 return vreinterpretq_p8_s32(a); 8253} 8254 8255// CHECK-LABEL: test_vreinterpretq_p8_s64 8256poly8x16_t test_vreinterpretq_p8_s64(int64x2_t a) { 8257 return vreinterpretq_p8_s64(a); 8258} 8259 8260// CHECK-LABEL: test_vreinterpretq_p8_u8 8261poly8x16_t test_vreinterpretq_p8_u8(uint8x16_t a) { 8262 return vreinterpretq_p8_u8(a); 8263} 8264 8265// CHECK-LABEL: test_vreinterpretq_p8_u16 8266poly8x16_t test_vreinterpretq_p8_u16(uint16x8_t a) { 8267 return vreinterpretq_p8_u16(a); 8268} 8269 8270// CHECK-LABEL: test_vreinterpretq_p8_u32 8271poly8x16_t test_vreinterpretq_p8_u32(uint32x4_t a) { 8272 return vreinterpretq_p8_u32(a); 8273} 8274 8275// CHECK-LABEL: test_vreinterpretq_p8_u64 8276poly8x16_t test_vreinterpretq_p8_u64(uint64x2_t a) { 8277 return vreinterpretq_p8_u64(a); 8278} 8279 8280// CHECK-LABEL: test_vreinterpretq_p8_f16 8281poly8x16_t test_vreinterpretq_p8_f16(float16x8_t a) { 8282 return vreinterpretq_p8_f16(a); 8283} 8284 8285// CHECK-LABEL: test_vreinterpretq_p8_f32 8286poly8x16_t test_vreinterpretq_p8_f32(float32x4_t a) { 8287 return vreinterpretq_p8_f32(a); 8288} 8289 8290// CHECK-LABEL: test_vreinterpretq_p8_p16 8291poly8x16_t test_vreinterpretq_p8_p16(poly16x8_t a) { 8292 return vreinterpretq_p8_p16(a); 8293} 8294 8295// CHECK-LABEL: test_vreinterpretq_p16_s8 8296poly16x8_t test_vreinterpretq_p16_s8(int8x16_t a) { 8297 return vreinterpretq_p16_s8(a); 8298} 8299 8300// CHECK-LABEL: test_vreinterpretq_p16_s16 8301poly16x8_t test_vreinterpretq_p16_s16(int16x8_t a) { 8302 return vreinterpretq_p16_s16(a); 8303} 8304 8305// CHECK-LABEL: test_vreinterpretq_p16_s32 8306poly16x8_t test_vreinterpretq_p16_s32(int32x4_t a) { 8307 return vreinterpretq_p16_s32(a); 8308} 8309 8310// CHECK-LABEL: test_vreinterpretq_p16_s64 8311poly16x8_t test_vreinterpretq_p16_s64(int64x2_t a) { 8312 return vreinterpretq_p16_s64(a); 8313} 8314 8315// CHECK-LABEL: test_vreinterpretq_p16_u8 8316poly16x8_t test_vreinterpretq_p16_u8(uint8x16_t a) { 8317 return vreinterpretq_p16_u8(a); 8318} 8319 8320// CHECK-LABEL: test_vreinterpretq_p16_u16 8321poly16x8_t test_vreinterpretq_p16_u16(uint16x8_t a) { 8322 return vreinterpretq_p16_u16(a); 8323} 8324 8325// CHECK-LABEL: test_vreinterpretq_p16_u32 8326poly16x8_t test_vreinterpretq_p16_u32(uint32x4_t a) { 8327 return vreinterpretq_p16_u32(a); 8328} 8329 8330// CHECK-LABEL: test_vreinterpretq_p16_u64 8331poly16x8_t test_vreinterpretq_p16_u64(uint64x2_t a) { 8332 return vreinterpretq_p16_u64(a); 8333} 8334 8335// CHECK-LABEL: test_vreinterpretq_p16_f16 8336poly16x8_t test_vreinterpretq_p16_f16(float16x8_t a) { 8337 return vreinterpretq_p16_f16(a); 8338} 8339 8340// CHECK-LABEL: test_vreinterpretq_p16_f32 8341poly16x8_t test_vreinterpretq_p16_f32(float32x4_t a) { 8342 return vreinterpretq_p16_f32(a); 8343} 8344 8345// CHECK-LABEL: test_vreinterpretq_p16_p8 8346poly16x8_t test_vreinterpretq_p16_p8(poly8x16_t a) { 8347 return vreinterpretq_p16_p8(a); 8348} 8349 8350 8351// CHECK-LABEL: test_vrev16_s8 8352// CHECK: vrev16.8 d{{[0-9]+}}, d{{[0-9]+}} 8353int8x8_t test_vrev16_s8(int8x8_t a) { 8354 return vrev16_s8(a); 8355} 8356 8357// CHECK-LABEL: test_vrev16_u8 8358// CHECK: vrev16.8 d{{[0-9]+}}, d{{[0-9]+}} 8359uint8x8_t test_vrev16_u8(uint8x8_t a) { 8360 return vrev16_u8(a); 8361} 8362 8363// CHECK-LABEL: test_vrev16_p8 8364// CHECK: vrev16.8 d{{[0-9]+}}, d{{[0-9]+}} 8365poly8x8_t test_vrev16_p8(poly8x8_t a) { 8366 return vrev16_p8(a); 8367} 8368 8369// CHECK-LABEL: test_vrev16q_s8 8370// CHECK: vrev16.8 q{{[0-9]+}}, q{{[0-9]+}} 8371int8x16_t test_vrev16q_s8(int8x16_t a) { 8372 return vrev16q_s8(a); 8373} 8374 8375// CHECK-LABEL: test_vrev16q_u8 8376// CHECK: vrev16.8 q{{[0-9]+}}, q{{[0-9]+}} 8377uint8x16_t test_vrev16q_u8(uint8x16_t a) { 8378 return vrev16q_u8(a); 8379} 8380 8381// CHECK-LABEL: test_vrev16q_p8 8382// CHECK: vrev16.8 q{{[0-9]+}}, q{{[0-9]+}} 8383poly8x16_t test_vrev16q_p8(poly8x16_t a) { 8384 return vrev16q_p8(a); 8385} 8386 8387 8388// CHECK-LABEL: test_vrev32_s8 8389// CHECK: vrev32.8 d{{[0-9]+}}, d{{[0-9]+}} 8390int8x8_t test_vrev32_s8(int8x8_t a) { 8391 return vrev32_s8(a); 8392} 8393 8394// CHECK-LABEL: test_vrev32_s16 8395// CHECK: vrev32.16 d{{[0-9]+}}, d{{[0-9]+}} 8396int16x4_t test_vrev32_s16(int16x4_t a) { 8397 return vrev32_s16(a); 8398} 8399 8400// CHECK-LABEL: test_vrev32_u8 8401// CHECK: vrev32.8 d{{[0-9]+}}, d{{[0-9]+}} 8402uint8x8_t test_vrev32_u8(uint8x8_t a) { 8403 return vrev32_u8(a); 8404} 8405 8406// CHECK-LABEL: test_vrev32_u16 8407// CHECK: vrev32.16 d{{[0-9]+}}, d{{[0-9]+}} 8408uint16x4_t test_vrev32_u16(uint16x4_t a) { 8409 return vrev32_u16(a); 8410} 8411 8412// CHECK-LABEL: test_vrev32_p8 8413// CHECK: vrev32.8 d{{[0-9]+}}, d{{[0-9]+}} 8414poly8x8_t test_vrev32_p8(poly8x8_t a) { 8415 return vrev32_p8(a); 8416} 8417 8418// CHECK-LABEL: test_vrev32_p16 8419// CHECK: vrev32.16 d{{[0-9]+}}, d{{[0-9]+}} 8420poly16x4_t test_vrev32_p16(poly16x4_t a) { 8421 return vrev32_p16(a); 8422} 8423 8424// CHECK-LABEL: test_vrev32q_s8 8425// CHECK: vrev32.8 q{{[0-9]+}}, q{{[0-9]+}} 8426int8x16_t test_vrev32q_s8(int8x16_t a) { 8427 return vrev32q_s8(a); 8428} 8429 8430// CHECK-LABEL: test_vrev32q_s16 8431// CHECK: vrev32.16 q{{[0-9]+}}, q{{[0-9]+}} 8432int16x8_t test_vrev32q_s16(int16x8_t a) { 8433 return vrev32q_s16(a); 8434} 8435 8436// CHECK-LABEL: test_vrev32q_u8 8437// CHECK: vrev32.8 q{{[0-9]+}}, q{{[0-9]+}} 8438uint8x16_t test_vrev32q_u8(uint8x16_t a) { 8439 return vrev32q_u8(a); 8440} 8441 8442// CHECK-LABEL: test_vrev32q_u16 8443// CHECK: vrev32.16 q{{[0-9]+}}, q{{[0-9]+}} 8444uint16x8_t test_vrev32q_u16(uint16x8_t a) { 8445 return vrev32q_u16(a); 8446} 8447 8448// CHECK-LABEL: test_vrev32q_p8 8449// CHECK: vrev32.8 q{{[0-9]+}}, q{{[0-9]+}} 8450poly8x16_t test_vrev32q_p8(poly8x16_t a) { 8451 return vrev32q_p8(a); 8452} 8453 8454// CHECK-LABEL: test_vrev32q_p16 8455// CHECK: vrev32.16 q{{[0-9]+}}, q{{[0-9]+}} 8456poly16x8_t test_vrev32q_p16(poly16x8_t a) { 8457 return vrev32q_p16(a); 8458} 8459 8460 8461// CHECK-LABEL: test_vrev64_s8 8462// CHECK: vrev64.8 d{{[0-9]+}}, d{{[0-9]+}} 8463int8x8_t test_vrev64_s8(int8x8_t a) { 8464 return vrev64_s8(a); 8465} 8466 8467// CHECK-LABEL: test_vrev64_s16 8468// CHECK: vrev64.16 d{{[0-9]+}}, d{{[0-9]+}} 8469int16x4_t test_vrev64_s16(int16x4_t a) { 8470 return vrev64_s16(a); 8471} 8472 8473// CHECK-LABEL: test_vrev64_s32 8474// CHECK: vrev64.32 d{{[0-9]+}}, d{{[0-9]+}} 8475int32x2_t test_vrev64_s32(int32x2_t a) { 8476 return vrev64_s32(a); 8477} 8478 8479// CHECK-LABEL: test_vrev64_u8 8480// CHECK: vrev64.8 d{{[0-9]+}}, d{{[0-9]+}} 8481uint8x8_t test_vrev64_u8(uint8x8_t a) { 8482 return vrev64_u8(a); 8483} 8484 8485// CHECK-LABEL: test_vrev64_u16 8486// CHECK: vrev64.16 d{{[0-9]+}}, d{{[0-9]+}} 8487uint16x4_t test_vrev64_u16(uint16x4_t a) { 8488 return vrev64_u16(a); 8489} 8490 8491// CHECK-LABEL: test_vrev64_u32 8492// CHECK: vrev64.32 d{{[0-9]+}}, d{{[0-9]+}} 8493uint32x2_t test_vrev64_u32(uint32x2_t a) { 8494 return vrev64_u32(a); 8495} 8496 8497// CHECK-LABEL: test_vrev64_p8 8498// CHECK: vrev64.8 d{{[0-9]+}}, d{{[0-9]+}} 8499poly8x8_t test_vrev64_p8(poly8x8_t a) { 8500 return vrev64_p8(a); 8501} 8502 8503// CHECK-LABEL: test_vrev64_p16 8504// CHECK: vrev64.16 d{{[0-9]+}}, d{{[0-9]+}} 8505poly16x4_t test_vrev64_p16(poly16x4_t a) { 8506 return vrev64_p16(a); 8507} 8508 8509// CHECK-LABEL: test_vrev64_f32 8510// CHECK: vrev64.32 d{{[0-9]+}}, d{{[0-9]+}} 8511float32x2_t test_vrev64_f32(float32x2_t a) { 8512 return vrev64_f32(a); 8513} 8514 8515// CHECK-LABEL: test_vrev64q_s8 8516// CHECK: vrev64.8 q{{[0-9]+}}, q{{[0-9]+}} 8517int8x16_t test_vrev64q_s8(int8x16_t a) { 8518 return vrev64q_s8(a); 8519} 8520 8521// CHECK-LABEL: test_vrev64q_s16 8522// CHECK: vrev64.16 q{{[0-9]+}}, q{{[0-9]+}} 8523int16x8_t test_vrev64q_s16(int16x8_t a) { 8524 return vrev64q_s16(a); 8525} 8526 8527// CHECK-LABEL: test_vrev64q_s32 8528// CHECK: vrev64.32 q{{[0-9]+}}, q{{[0-9]+}} 8529int32x4_t test_vrev64q_s32(int32x4_t a) { 8530 return vrev64q_s32(a); 8531} 8532 8533// CHECK-LABEL: test_vrev64q_u8 8534// CHECK: vrev64.8 q{{[0-9]+}}, q{{[0-9]+}} 8535uint8x16_t test_vrev64q_u8(uint8x16_t a) { 8536 return vrev64q_u8(a); 8537} 8538 8539// CHECK-LABEL: test_vrev64q_u16 8540// CHECK: vrev64.16 q{{[0-9]+}}, q{{[0-9]+}} 8541uint16x8_t test_vrev64q_u16(uint16x8_t a) { 8542 return vrev64q_u16(a); 8543} 8544 8545// CHECK-LABEL: test_vrev64q_u32 8546// CHECK: vrev64.32 q{{[0-9]+}}, q{{[0-9]+}} 8547uint32x4_t test_vrev64q_u32(uint32x4_t a) { 8548 return vrev64q_u32(a); 8549} 8550 8551// CHECK-LABEL: test_vrev64q_p8 8552// CHECK: vrev64.8 q{{[0-9]+}}, q{{[0-9]+}} 8553poly8x16_t test_vrev64q_p8(poly8x16_t a) { 8554 return vrev64q_p8(a); 8555} 8556 8557// CHECK-LABEL: test_vrev64q_p16 8558// CHECK: vrev64.16 q{{[0-9]+}}, q{{[0-9]+}} 8559poly16x8_t test_vrev64q_p16(poly16x8_t a) { 8560 return vrev64q_p16(a); 8561} 8562 8563// CHECK-LABEL: test_vrev64q_f32 8564// CHECK: vrev64.32 q{{[0-9]+}}, q{{[0-9]+}} 8565float32x4_t test_vrev64q_f32(float32x4_t a) { 8566 return vrev64q_f32(a); 8567} 8568 8569 8570// CHECK-LABEL: test_vrhadd_s8 8571// CHECK: vrhadd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8572int8x8_t test_vrhadd_s8(int8x8_t a, int8x8_t b) { 8573 return vrhadd_s8(a, b); 8574} 8575 8576// CHECK-LABEL: test_vrhadd_s16 8577// CHECK: vrhadd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8578int16x4_t test_vrhadd_s16(int16x4_t a, int16x4_t b) { 8579 return vrhadd_s16(a, b); 8580} 8581 8582// CHECK-LABEL: test_vrhadd_s32 8583// CHECK: vrhadd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8584int32x2_t test_vrhadd_s32(int32x2_t a, int32x2_t b) { 8585 return vrhadd_s32(a, b); 8586} 8587 8588// CHECK-LABEL: test_vrhadd_u8 8589// CHECK: vrhadd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8590uint8x8_t test_vrhadd_u8(uint8x8_t a, uint8x8_t b) { 8591 return vrhadd_u8(a, b); 8592} 8593 8594// CHECK-LABEL: test_vrhadd_u16 8595// CHECK: vrhadd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8596uint16x4_t test_vrhadd_u16(uint16x4_t a, uint16x4_t b) { 8597 return vrhadd_u16(a, b); 8598} 8599 8600// CHECK-LABEL: test_vrhadd_u32 8601// CHECK: vrhadd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8602uint32x2_t test_vrhadd_u32(uint32x2_t a, uint32x2_t b) { 8603 return vrhadd_u32(a, b); 8604} 8605 8606// CHECK-LABEL: test_vrhaddq_s8 8607// CHECK: vrhadd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8608int8x16_t test_vrhaddq_s8(int8x16_t a, int8x16_t b) { 8609 return vrhaddq_s8(a, b); 8610} 8611 8612// CHECK-LABEL: test_vrhaddq_s16 8613// CHECK: vrhadd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8614int16x8_t test_vrhaddq_s16(int16x8_t a, int16x8_t b) { 8615 return vrhaddq_s16(a, b); 8616} 8617 8618// CHECK-LABEL: test_vrhaddq_s32 8619// CHECK: vrhadd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8620int32x4_t test_vrhaddq_s32(int32x4_t a, int32x4_t b) { 8621 return vrhaddq_s32(a, b); 8622} 8623 8624// CHECK-LABEL: test_vrhaddq_u8 8625// CHECK: vrhadd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8626uint8x16_t test_vrhaddq_u8(uint8x16_t a, uint8x16_t b) { 8627 return vrhaddq_u8(a, b); 8628} 8629 8630// CHECK-LABEL: test_vrhaddq_u16 8631// CHECK: vrhadd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8632uint16x8_t test_vrhaddq_u16(uint16x8_t a, uint16x8_t b) { 8633 return vrhaddq_u16(a, b); 8634} 8635 8636// CHECK-LABEL: test_vrhaddq_u32 8637// CHECK: vrhadd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8638uint32x4_t test_vrhaddq_u32(uint32x4_t a, uint32x4_t b) { 8639 return vrhaddq_u32(a, b); 8640} 8641 8642 8643// CHECK-LABEL: test_vrshl_s8 8644// CHECK: vrshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8645int8x8_t test_vrshl_s8(int8x8_t a, int8x8_t b) { 8646 return vrshl_s8(a, b); 8647} 8648 8649// CHECK-LABEL: test_vrshl_s16 8650// CHECK: vrshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8651int16x4_t test_vrshl_s16(int16x4_t a, int16x4_t b) { 8652 return vrshl_s16(a, b); 8653} 8654 8655// CHECK-LABEL: test_vrshl_s32 8656// CHECK: vrshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8657int32x2_t test_vrshl_s32(int32x2_t a, int32x2_t b) { 8658 return vrshl_s32(a, b); 8659} 8660 8661// CHECK-LABEL: test_vrshl_s64 8662// CHECK: vrshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8663int64x1_t test_vrshl_s64(int64x1_t a, int64x1_t b) { 8664 return vrshl_s64(a, b); 8665} 8666 8667// CHECK-LABEL: test_vrshl_u8 8668// CHECK: vrshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8669uint8x8_t test_vrshl_u8(uint8x8_t a, int8x8_t b) { 8670 return vrshl_u8(a, b); 8671} 8672 8673// CHECK-LABEL: test_vrshl_u16 8674// CHECK: vrshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8675uint16x4_t test_vrshl_u16(uint16x4_t a, int16x4_t b) { 8676 return vrshl_u16(a, b); 8677} 8678 8679// CHECK-LABEL: test_vrshl_u32 8680// CHECK: vrshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8681uint32x2_t test_vrshl_u32(uint32x2_t a, int32x2_t b) { 8682 return vrshl_u32(a, b); 8683} 8684 8685// CHECK-LABEL: test_vrshl_u64 8686// CHECK: vrshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8687uint64x1_t test_vrshl_u64(uint64x1_t a, int64x1_t b) { 8688 return vrshl_u64(a, b); 8689} 8690 8691// CHECK-LABEL: test_vrshlq_s8 8692// CHECK: vrshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8693int8x16_t test_vrshlq_s8(int8x16_t a, int8x16_t b) { 8694 return vrshlq_s8(a, b); 8695} 8696 8697// CHECK-LABEL: test_vrshlq_s16 8698// CHECK: vrshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8699int16x8_t test_vrshlq_s16(int16x8_t a, int16x8_t b) { 8700 return vrshlq_s16(a, b); 8701} 8702 8703// CHECK-LABEL: test_vrshlq_s32 8704// CHECK: vrshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8705int32x4_t test_vrshlq_s32(int32x4_t a, int32x4_t b) { 8706 return vrshlq_s32(a, b); 8707} 8708 8709// CHECK-LABEL: test_vrshlq_s64 8710// CHECK: vrshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8711int64x2_t test_vrshlq_s64(int64x2_t a, int64x2_t b) { 8712 return vrshlq_s64(a, b); 8713} 8714 8715// CHECK-LABEL: test_vrshlq_u8 8716// CHECK: vrshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8717uint8x16_t test_vrshlq_u8(uint8x16_t a, int8x16_t b) { 8718 return vrshlq_u8(a, b); 8719} 8720 8721// CHECK-LABEL: test_vrshlq_u16 8722// CHECK: vrshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8723uint16x8_t test_vrshlq_u16(uint16x8_t a, int16x8_t b) { 8724 return vrshlq_u16(a, b); 8725} 8726 8727// CHECK-LABEL: test_vrshlq_u32 8728// CHECK: vrshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8729uint32x4_t test_vrshlq_u32(uint32x4_t a, int32x4_t b) { 8730 return vrshlq_u32(a, b); 8731} 8732 8733// CHECK-LABEL: test_vrshlq_u64 8734// CHECK: vrshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8735uint64x2_t test_vrshlq_u64(uint64x2_t a, int64x2_t b) { 8736 return vrshlq_u64(a, b); 8737} 8738 8739 8740// CHECK-LABEL: test_vrshrn_n_s16 8741// CHECK: vrshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8742int8x8_t test_vrshrn_n_s16(int16x8_t a) { 8743 return vrshrn_n_s16(a, 1); 8744} 8745 8746// CHECK-LABEL: test_vrshrn_n_s32 8747// CHECK: vrshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8748int16x4_t test_vrshrn_n_s32(int32x4_t a) { 8749 return vrshrn_n_s32(a, 1); 8750} 8751 8752// CHECK-LABEL: test_vrshrn_n_s64 8753// CHECK: vrshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8754int32x2_t test_vrshrn_n_s64(int64x2_t a) { 8755 return vrshrn_n_s64(a, 1); 8756} 8757 8758// CHECK-LABEL: test_vrshrn_n_u16 8759// CHECK: vrshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8760uint8x8_t test_vrshrn_n_u16(uint16x8_t a) { 8761 return vrshrn_n_u16(a, 1); 8762} 8763 8764// CHECK-LABEL: test_vrshrn_n_u32 8765// CHECK: vrshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8766uint16x4_t test_vrshrn_n_u32(uint32x4_t a) { 8767 return vrshrn_n_u32(a, 1); 8768} 8769 8770// CHECK-LABEL: test_vrshrn_n_u64 8771// CHECK: vrshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8772uint32x2_t test_vrshrn_n_u64(uint64x2_t a) { 8773 return vrshrn_n_u64(a, 1); 8774} 8775 8776 8777// CHECK-LABEL: test_vrshr_n_s8 8778// CHECK: vrshr.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8779int8x8_t test_vrshr_n_s8(int8x8_t a) { 8780 return vrshr_n_s8(a, 1); 8781} 8782 8783// CHECK-LABEL: test_vrshr_n_s16 8784// CHECK: vrshr.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8785int16x4_t test_vrshr_n_s16(int16x4_t a) { 8786 return vrshr_n_s16(a, 1); 8787} 8788 8789// CHECK-LABEL: test_vrshr_n_s32 8790// CHECK: vrshr.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8791int32x2_t test_vrshr_n_s32(int32x2_t a) { 8792 return vrshr_n_s32(a, 1); 8793} 8794 8795// CHECK-LABEL: test_vrshr_n_s64 8796// CHECK: vrshr.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8797int64x1_t test_vrshr_n_s64(int64x1_t a) { 8798 return vrshr_n_s64(a, 1); 8799} 8800 8801// CHECK-LABEL: test_vrshr_n_u8 8802// CHECK: vrshr.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8803uint8x8_t test_vrshr_n_u8(uint8x8_t a) { 8804 return vrshr_n_u8(a, 1); 8805} 8806 8807// CHECK-LABEL: test_vrshr_n_u16 8808// CHECK: vrshr.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8809uint16x4_t test_vrshr_n_u16(uint16x4_t a) { 8810 return vrshr_n_u16(a, 1); 8811} 8812 8813// CHECK-LABEL: test_vrshr_n_u32 8814// CHECK: vrshr.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8815uint32x2_t test_vrshr_n_u32(uint32x2_t a) { 8816 return vrshr_n_u32(a, 1); 8817} 8818 8819// CHECK-LABEL: test_vrshr_n_u64 8820// CHECK: vrshr.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8821uint64x1_t test_vrshr_n_u64(uint64x1_t a) { 8822 return vrshr_n_u64(a, 1); 8823} 8824 8825// CHECK-LABEL: test_vrshrq_n_s8 8826// CHECK: vrshr.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8827int8x16_t test_vrshrq_n_s8(int8x16_t a) { 8828 return vrshrq_n_s8(a, 1); 8829} 8830 8831// CHECK-LABEL: test_vrshrq_n_s16 8832// CHECK: vrshr.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8833int16x8_t test_vrshrq_n_s16(int16x8_t a) { 8834 return vrshrq_n_s16(a, 1); 8835} 8836 8837// CHECK-LABEL: test_vrshrq_n_s32 8838// CHECK: vrshr.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8839int32x4_t test_vrshrq_n_s32(int32x4_t a) { 8840 return vrshrq_n_s32(a, 1); 8841} 8842 8843// CHECK-LABEL: test_vrshrq_n_s64 8844// CHECK: vrshr.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8845int64x2_t test_vrshrq_n_s64(int64x2_t a) { 8846 return vrshrq_n_s64(a, 1); 8847} 8848 8849// CHECK-LABEL: test_vrshrq_n_u8 8850// CHECK: vrshr.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8851uint8x16_t test_vrshrq_n_u8(uint8x16_t a) { 8852 return vrshrq_n_u8(a, 1); 8853} 8854 8855// CHECK-LABEL: test_vrshrq_n_u16 8856// CHECK: vrshr.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8857uint16x8_t test_vrshrq_n_u16(uint16x8_t a) { 8858 return vrshrq_n_u16(a, 1); 8859} 8860 8861// CHECK-LABEL: test_vrshrq_n_u32 8862// CHECK: vrshr.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8863uint32x4_t test_vrshrq_n_u32(uint32x4_t a) { 8864 return vrshrq_n_u32(a, 1); 8865} 8866 8867// CHECK-LABEL: test_vrshrq_n_u64 8868// CHECK: vrshr.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8869uint64x2_t test_vrshrq_n_u64(uint64x2_t a) { 8870 return vrshrq_n_u64(a, 1); 8871} 8872 8873 8874// CHECK-LABEL: test_vrsqrte_f32 8875// CHECK: vrsqrte.f32 d{{[0-9]+}}, d{{[0-9]+}} 8876float32x2_t test_vrsqrte_f32(float32x2_t a) { 8877 return vrsqrte_f32(a); 8878} 8879 8880// CHECK-LABEL: test_vrsqrte_u32 8881// CHECK: vrsqrte.u32 d{{[0-9]+}}, d{{[0-9]+}} 8882uint32x2_t test_vrsqrte_u32(uint32x2_t a) { 8883 return vrsqrte_u32(a); 8884} 8885 8886// CHECK-LABEL: test_vrsqrteq_f32 8887// CHECK: vrsqrte.f32 q{{[0-9]+}}, q{{[0-9]+}} 8888float32x4_t test_vrsqrteq_f32(float32x4_t a) { 8889 return vrsqrteq_f32(a); 8890} 8891 8892// CHECK-LABEL: test_vrsqrteq_u32 8893// CHECK: vrsqrte.u32 q{{[0-9]+}}, q{{[0-9]+}} 8894uint32x4_t test_vrsqrteq_u32(uint32x4_t a) { 8895 return vrsqrteq_u32(a); 8896} 8897 8898 8899// CHECK-LABEL: test_vrsqrts_f32 8900// CHECK: vrsqrts.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8901float32x2_t test_vrsqrts_f32(float32x2_t a, float32x2_t b) { 8902 return vrsqrts_f32(a, b); 8903} 8904 8905// CHECK-LABEL: test_vrsqrtsq_f32 8906// CHECK: vrsqrts.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8907float32x4_t test_vrsqrtsq_f32(float32x4_t a, float32x4_t b) { 8908 return vrsqrtsq_f32(a, b); 8909} 8910 8911 8912// CHECK-LABEL: test_vrsra_n_s8 8913// CHECK: vrsra.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8914int8x8_t test_vrsra_n_s8(int8x8_t a, int8x8_t b) { 8915 return vrsra_n_s8(a, b, 1); 8916} 8917 8918// CHECK-LABEL: test_vrsra_n_s16 8919// CHECK: vrsra.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8920int16x4_t test_vrsra_n_s16(int16x4_t a, int16x4_t b) { 8921 return vrsra_n_s16(a, b, 1); 8922} 8923 8924// CHECK-LABEL: test_vrsra_n_s32 8925// CHECK: vrsra.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8926int32x2_t test_vrsra_n_s32(int32x2_t a, int32x2_t b) { 8927 return vrsra_n_s32(a, b, 1); 8928} 8929 8930// CHECK-LABEL: test_vrsra_n_s64 8931// CHECK: vrsra.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8932int64x1_t test_vrsra_n_s64(int64x1_t a, int64x1_t b) { 8933 return vrsra_n_s64(a, b, 1); 8934} 8935 8936// CHECK-LABEL: test_vrsra_n_u8 8937// CHECK: vrsra.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8938uint8x8_t test_vrsra_n_u8(uint8x8_t a, uint8x8_t b) { 8939 return vrsra_n_u8(a, b, 1); 8940} 8941 8942// CHECK-LABEL: test_vrsra_n_u16 8943// CHECK: vrsra.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8944uint16x4_t test_vrsra_n_u16(uint16x4_t a, uint16x4_t b) { 8945 return vrsra_n_u16(a, b, 1); 8946} 8947 8948// CHECK-LABEL: test_vrsra_n_u32 8949// CHECK: vrsra.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8950uint32x2_t test_vrsra_n_u32(uint32x2_t a, uint32x2_t b) { 8951 return vrsra_n_u32(a, b, 1); 8952} 8953 8954// CHECK-LABEL: test_vrsra_n_u64 8955// CHECK: vrsra.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8956uint64x1_t test_vrsra_n_u64(uint64x1_t a, uint64x1_t b) { 8957 return vrsra_n_u64(a, b, 1); 8958} 8959 8960// CHECK-LABEL: test_vrsraq_n_s8 8961// CHECK: vrsra.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8962int8x16_t test_vrsraq_n_s8(int8x16_t a, int8x16_t b) { 8963 return vrsraq_n_s8(a, b, 1); 8964} 8965 8966// CHECK-LABEL: test_vrsraq_n_s16 8967// CHECK: vrsra.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8968int16x8_t test_vrsraq_n_s16(int16x8_t a, int16x8_t b) { 8969 return vrsraq_n_s16(a, b, 1); 8970} 8971 8972// CHECK-LABEL: test_vrsraq_n_s32 8973// CHECK: vrsra.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8974int32x4_t test_vrsraq_n_s32(int32x4_t a, int32x4_t b) { 8975 return vrsraq_n_s32(a, b, 1); 8976} 8977 8978// CHECK-LABEL: test_vrsraq_n_s64 8979// CHECK: vrsra.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8980int64x2_t test_vrsraq_n_s64(int64x2_t a, int64x2_t b) { 8981 return vrsraq_n_s64(a, b, 1); 8982} 8983 8984// CHECK-LABEL: test_vrsraq_n_u8 8985// CHECK: vrsra.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8986uint8x16_t test_vrsraq_n_u8(uint8x16_t a, uint8x16_t b) { 8987 return vrsraq_n_u8(a, b, 1); 8988} 8989 8990// CHECK-LABEL: test_vrsraq_n_u16 8991// CHECK: vrsra.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8992uint16x8_t test_vrsraq_n_u16(uint16x8_t a, uint16x8_t b) { 8993 return vrsraq_n_u16(a, b, 1); 8994} 8995 8996// CHECK-LABEL: test_vrsraq_n_u32 8997// CHECK: vrsra.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8998uint32x4_t test_vrsraq_n_u32(uint32x4_t a, uint32x4_t b) { 8999 return vrsraq_n_u32(a, b, 1); 9000} 9001 9002// CHECK-LABEL: test_vrsraq_n_u64 9003// CHECK: vrsra.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9004uint64x2_t test_vrsraq_n_u64(uint64x2_t a, uint64x2_t b) { 9005 return vrsraq_n_u64(a, b, 1); 9006} 9007 9008 9009// CHECK-LABEL: test_vrsubhn_s16 9010// CHECK: vrsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9011int8x8_t test_vrsubhn_s16(int16x8_t a, int16x8_t b) { 9012 return vrsubhn_s16(a, b); 9013} 9014 9015// CHECK-LABEL: test_vrsubhn_s32 9016// CHECK: vrsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9017int16x4_t test_vrsubhn_s32(int32x4_t a, int32x4_t b) { 9018 return vrsubhn_s32(a, b); 9019} 9020 9021// CHECK-LABEL: test_vrsubhn_s64 9022// CHECK: vrsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9023int32x2_t test_vrsubhn_s64(int64x2_t a, int64x2_t b) { 9024 return vrsubhn_s64(a, b); 9025} 9026 9027// CHECK-LABEL: test_vrsubhn_u16 9028// CHECK: vrsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9029uint8x8_t test_vrsubhn_u16(uint16x8_t a, uint16x8_t b) { 9030 return vrsubhn_u16(a, b); 9031} 9032 9033// CHECK-LABEL: test_vrsubhn_u32 9034// CHECK: vrsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9035uint16x4_t test_vrsubhn_u32(uint32x4_t a, uint32x4_t b) { 9036 return vrsubhn_u32(a, b); 9037} 9038 9039// CHECK-LABEL: test_vrsubhn_u64 9040// CHECK: vrsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9041uint32x2_t test_vrsubhn_u64(uint64x2_t a, uint64x2_t b) { 9042 return vrsubhn_u64(a, b); 9043} 9044 9045 9046// CHECK-LABEL: test_vset_lane_u8 9047// CHECK: vmov 9048uint8x8_t test_vset_lane_u8(uint8_t a, uint8x8_t b) { 9049 return vset_lane_u8(a, b, 7); 9050} 9051 9052// CHECK-LABEL: test_vset_lane_u16 9053// CHECK: vmov 9054uint16x4_t test_vset_lane_u16(uint16_t a, uint16x4_t b) { 9055 return vset_lane_u16(a, b, 3); 9056} 9057 9058// CHECK-LABEL: test_vset_lane_u32 9059// CHECK: vmov 9060uint32x2_t test_vset_lane_u32(uint32_t a, uint32x2_t b) { 9061 return vset_lane_u32(a, b, 1); 9062} 9063 9064// CHECK-LABEL: test_vset_lane_s8 9065// CHECK: vmov 9066int8x8_t test_vset_lane_s8(int8_t a, int8x8_t b) { 9067 return vset_lane_s8(a, b, 7); 9068} 9069 9070// CHECK-LABEL: test_vset_lane_s16 9071// CHECK: vmov 9072int16x4_t test_vset_lane_s16(int16_t a, int16x4_t b) { 9073 return vset_lane_s16(a, b, 3); 9074} 9075 9076// CHECK-LABEL: test_vset_lane_s32 9077// CHECK: vmov 9078int32x2_t test_vset_lane_s32(int32_t a, int32x2_t b) { 9079 return vset_lane_s32(a, b, 1); 9080} 9081 9082// CHECK-LABEL: test_vset_lane_p8 9083// CHECK: vmov 9084poly8x8_t test_vset_lane_p8(poly8_t a, poly8x8_t b) { 9085 return vset_lane_p8(a, b, 7); 9086} 9087 9088// CHECK-LABEL: test_vset_lane_p16 9089// CHECK: vmov 9090poly16x4_t test_vset_lane_p16(poly16_t a, poly16x4_t b) { 9091 return vset_lane_p16(a, b, 3); 9092} 9093 9094// CHECK-LABEL: test_vset_lane_f32 9095// CHECK: vmov 9096float32x2_t test_vset_lane_f32(float32_t a, float32x2_t b) { 9097 return vset_lane_f32(a, b, 1); 9098} 9099 9100// CHECK-LABEL: test_vsetq_lane_u8 9101// CHECK: vmov 9102uint8x16_t test_vsetq_lane_u8(uint8_t a, uint8x16_t b) { 9103 return vsetq_lane_u8(a, b, 15); 9104} 9105 9106// CHECK-LABEL: test_vsetq_lane_u16 9107// CHECK: vmov 9108uint16x8_t test_vsetq_lane_u16(uint16_t a, uint16x8_t b) { 9109 return vsetq_lane_u16(a, b, 7); 9110} 9111 9112// CHECK-LABEL: test_vsetq_lane_u32 9113// CHECK: vmov 9114uint32x4_t test_vsetq_lane_u32(uint32_t a, uint32x4_t b) { 9115 return vsetq_lane_u32(a, b, 3); 9116} 9117 9118// CHECK-LABEL: test_vsetq_lane_s8 9119// CHECK: vmov 9120int8x16_t test_vsetq_lane_s8(int8_t a, int8x16_t b) { 9121 return vsetq_lane_s8(a, b, 15); 9122} 9123 9124// CHECK-LABEL: test_vsetq_lane_s16 9125// CHECK: vmov 9126int16x8_t test_vsetq_lane_s16(int16_t a, int16x8_t b) { 9127 return vsetq_lane_s16(a, b, 7); 9128} 9129 9130// CHECK-LABEL: test_vsetq_lane_s32 9131// CHECK: vmov 9132int32x4_t test_vsetq_lane_s32(int32_t a, int32x4_t b) { 9133 return vsetq_lane_s32(a, b, 3); 9134} 9135 9136// CHECK-LABEL: test_vsetq_lane_p8 9137// CHECK: vmov 9138poly8x16_t test_vsetq_lane_p8(poly8_t a, poly8x16_t b) { 9139 return vsetq_lane_p8(a, b, 15); 9140} 9141 9142// CHECK-LABEL: test_vsetq_lane_p16 9143// CHECK: vmov 9144poly16x8_t test_vsetq_lane_p16(poly16_t a, poly16x8_t b) { 9145 return vsetq_lane_p16(a, b, 7); 9146} 9147 9148// CHECK-LABEL: test_vsetq_lane_f32 9149// CHECK: vmov 9150float32x4_t test_vsetq_lane_f32(float32_t a, float32x4_t b) { 9151 return vsetq_lane_f32(a, b, 3); 9152} 9153 9154// CHECK-LABEL: test_vset_lane_s64 9155// CHECK: vmov 9156int64x1_t test_vset_lane_s64(int64_t a, int64x1_t b) { 9157 return vset_lane_s64(a, b, 0); 9158} 9159 9160// CHECK-LABEL: test_vset_lane_u64 9161// CHECK: vmov 9162uint64x1_t test_vset_lane_u64(uint64_t a, uint64x1_t b) { 9163 return vset_lane_u64(a, b, 0); 9164} 9165 9166// CHECK-LABEL: test_vsetq_lane_s64 9167// CHECK: vmov 9168int64x2_t test_vsetq_lane_s64(int64_t a, int64x2_t b) { 9169 return vsetq_lane_s64(a, b, 1); 9170} 9171 9172// CHECK-LABEL: test_vsetq_lane_u64 9173// CHECK: vmov 9174uint64x2_t test_vsetq_lane_u64(uint64_t a, uint64x2_t b) { 9175 return vsetq_lane_u64(a, b, 1); 9176} 9177 9178 9179// CHECK-LABEL: test_vshl_s8 9180// CHECK: vshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 9181int8x8_t test_vshl_s8(int8x8_t a, int8x8_t b) { 9182 return vshl_s8(a, b); 9183} 9184 9185// CHECK-LABEL: test_vshl_s16 9186// CHECK: vshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 9187int16x4_t test_vshl_s16(int16x4_t a, int16x4_t b) { 9188 return vshl_s16(a, b); 9189} 9190 9191// CHECK-LABEL: test_vshl_s32 9192// CHECK: vshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 9193int32x2_t test_vshl_s32(int32x2_t a, int32x2_t b) { 9194 return vshl_s32(a, b); 9195} 9196 9197// CHECK-LABEL: test_vshl_s64 9198// CHECK: vshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 9199int64x1_t test_vshl_s64(int64x1_t a, int64x1_t b) { 9200 return vshl_s64(a, b); 9201} 9202 9203// CHECK-LABEL: test_vshl_u8 9204// CHECK: vshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 9205uint8x8_t test_vshl_u8(uint8x8_t a, int8x8_t b) { 9206 return vshl_u8(a, b); 9207} 9208 9209// CHECK-LABEL: test_vshl_u16 9210// CHECK: vshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 9211uint16x4_t test_vshl_u16(uint16x4_t a, int16x4_t b) { 9212 return vshl_u16(a, b); 9213} 9214 9215// CHECK-LABEL: test_vshl_u32 9216// CHECK: vshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 9217uint32x2_t test_vshl_u32(uint32x2_t a, int32x2_t b) { 9218 return vshl_u32(a, b); 9219} 9220 9221// CHECK-LABEL: test_vshl_u64 9222// CHECK: vshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 9223uint64x1_t test_vshl_u64(uint64x1_t a, int64x1_t b) { 9224 return vshl_u64(a, b); 9225} 9226 9227// CHECK-LABEL: test_vshlq_s8 9228// CHECK: vshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9229int8x16_t test_vshlq_s8(int8x16_t a, int8x16_t b) { 9230 return vshlq_s8(a, b); 9231} 9232 9233// CHECK-LABEL: test_vshlq_s16 9234// CHECK: vshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9235int16x8_t test_vshlq_s16(int16x8_t a, int16x8_t b) { 9236 return vshlq_s16(a, b); 9237} 9238 9239// CHECK-LABEL: test_vshlq_s32 9240// CHECK: vshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9241int32x4_t test_vshlq_s32(int32x4_t a, int32x4_t b) { 9242 return vshlq_s32(a, b); 9243} 9244 9245// CHECK-LABEL: test_vshlq_s64 9246// CHECK: vshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9247int64x2_t test_vshlq_s64(int64x2_t a, int64x2_t b) { 9248 return vshlq_s64(a, b); 9249} 9250 9251// CHECK-LABEL: test_vshlq_u8 9252// CHECK: vshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9253uint8x16_t test_vshlq_u8(uint8x16_t a, int8x16_t b) { 9254 return vshlq_u8(a, b); 9255} 9256 9257// CHECK-LABEL: test_vshlq_u16 9258// CHECK: vshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9259uint16x8_t test_vshlq_u16(uint16x8_t a, int16x8_t b) { 9260 return vshlq_u16(a, b); 9261} 9262 9263// CHECK-LABEL: test_vshlq_u32 9264// CHECK: vshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9265uint32x4_t test_vshlq_u32(uint32x4_t a, int32x4_t b) { 9266 return vshlq_u32(a, b); 9267} 9268 9269// CHECK-LABEL: test_vshlq_u64 9270// CHECK: vshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9271uint64x2_t test_vshlq_u64(uint64x2_t a, int64x2_t b) { 9272 return vshlq_u64(a, b); 9273} 9274 9275 9276// CHECK-LABEL: test_vshll_n_s8 9277// CHECK: vshll.s8 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9278int16x8_t test_vshll_n_s8(int8x8_t a) { 9279 return vshll_n_s8(a, 1); 9280} 9281 9282// CHECK-LABEL: test_vshll_n_s16 9283// CHECK: vshll.s16 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9284int32x4_t test_vshll_n_s16(int16x4_t a) { 9285 return vshll_n_s16(a, 1); 9286} 9287 9288// CHECK-LABEL: test_vshll_n_s32 9289// CHECK: vshll.s32 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9290int64x2_t test_vshll_n_s32(int32x2_t a) { 9291 return vshll_n_s32(a, 1); 9292} 9293 9294// CHECK-LABEL: test_vshll_n_u8 9295// CHECK: vshll.u8 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9296uint16x8_t test_vshll_n_u8(uint8x8_t a) { 9297 return vshll_n_u8(a, 1); 9298} 9299 9300// CHECK-LABEL: test_vshll_n_u16 9301// CHECK: vshll.u16 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9302uint32x4_t test_vshll_n_u16(uint16x4_t a) { 9303 return vshll_n_u16(a, 1); 9304} 9305 9306// CHECK-LABEL: test_vshll_n_u32 9307// CHECK: vshll.u32 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9308uint64x2_t test_vshll_n_u32(uint32x2_t a) { 9309 return vshll_n_u32(a, 1); 9310} 9311 9312 9313// CHECK-LABEL: test_vshl_n_s8 9314// CHECK: vshl.i8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9315int8x8_t test_vshl_n_s8(int8x8_t a) { 9316 return vshl_n_s8(a, 1); 9317} 9318 9319// CHECK-LABEL: test_vshl_n_s16 9320// CHECK: vshl.i16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9321int16x4_t test_vshl_n_s16(int16x4_t a) { 9322 return vshl_n_s16(a, 1); 9323} 9324 9325// CHECK-LABEL: test_vshl_n_s32 9326// CHECK: vshl.i32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9327int32x2_t test_vshl_n_s32(int32x2_t a) { 9328 return vshl_n_s32(a, 1); 9329} 9330 9331// CHECK-LABEL: test_vshl_n_s64 9332// CHECK: vshl.i64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9333int64x1_t test_vshl_n_s64(int64x1_t a) { 9334 return vshl_n_s64(a, 1); 9335} 9336 9337// CHECK-LABEL: test_vshl_n_u8 9338// CHECK: vshl.i8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9339uint8x8_t test_vshl_n_u8(uint8x8_t a) { 9340 return vshl_n_u8(a, 1); 9341} 9342 9343// CHECK-LABEL: test_vshl_n_u16 9344// CHECK: vshl.i16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9345uint16x4_t test_vshl_n_u16(uint16x4_t a) { 9346 return vshl_n_u16(a, 1); 9347} 9348 9349// CHECK-LABEL: test_vshl_n_u32 9350// CHECK: vshl.i32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9351uint32x2_t test_vshl_n_u32(uint32x2_t a) { 9352 return vshl_n_u32(a, 1); 9353} 9354 9355// CHECK-LABEL: test_vshl_n_u64 9356// CHECK: vshl.i64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9357uint64x1_t test_vshl_n_u64(uint64x1_t a) { 9358 return vshl_n_u64(a, 1); 9359} 9360 9361// CHECK-LABEL: test_vshlq_n_s8 9362// CHECK: vshl.i8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9363int8x16_t test_vshlq_n_s8(int8x16_t a) { 9364 return vshlq_n_s8(a, 1); 9365} 9366 9367// CHECK-LABEL: test_vshlq_n_s16 9368// CHECK: vshl.i16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9369int16x8_t test_vshlq_n_s16(int16x8_t a) { 9370 return vshlq_n_s16(a, 1); 9371} 9372 9373// CHECK-LABEL: test_vshlq_n_s32 9374// CHECK: vshl.i32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9375int32x4_t test_vshlq_n_s32(int32x4_t a) { 9376 return vshlq_n_s32(a, 1); 9377} 9378 9379// CHECK-LABEL: test_vshlq_n_s64 9380// CHECK: vshl.i64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9381int64x2_t test_vshlq_n_s64(int64x2_t a) { 9382 return vshlq_n_s64(a, 1); 9383} 9384 9385// CHECK-LABEL: test_vshlq_n_u8 9386// CHECK: vshl.i8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9387uint8x16_t test_vshlq_n_u8(uint8x16_t a) { 9388 return vshlq_n_u8(a, 1); 9389} 9390 9391// CHECK-LABEL: test_vshlq_n_u16 9392// CHECK: vshl.i16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9393uint16x8_t test_vshlq_n_u16(uint16x8_t a) { 9394 return vshlq_n_u16(a, 1); 9395} 9396 9397// CHECK-LABEL: test_vshlq_n_u32 9398// CHECK: vshl.i32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9399uint32x4_t test_vshlq_n_u32(uint32x4_t a) { 9400 return vshlq_n_u32(a, 1); 9401} 9402 9403// CHECK-LABEL: test_vshlq_n_u64 9404// CHECK: vshl.i64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9405uint64x2_t test_vshlq_n_u64(uint64x2_t a) { 9406 return vshlq_n_u64(a, 1); 9407} 9408 9409 9410// CHECK-LABEL: test_vshrn_n_s16 9411// CHECK: vshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9412int8x8_t test_vshrn_n_s16(int16x8_t a) { 9413 return vshrn_n_s16(a, 1); 9414} 9415 9416// CHECK-LABEL: test_vshrn_n_s32 9417// CHECK: vshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9418int16x4_t test_vshrn_n_s32(int32x4_t a) { 9419 return vshrn_n_s32(a, 1); 9420} 9421 9422// CHECK-LABEL: test_vshrn_n_s64 9423// CHECK: vshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9424int32x2_t test_vshrn_n_s64(int64x2_t a) { 9425 return vshrn_n_s64(a, 1); 9426} 9427 9428// CHECK-LABEL: test_vshrn_n_u16 9429// CHECK: vshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9430uint8x8_t test_vshrn_n_u16(uint16x8_t a) { 9431 return vshrn_n_u16(a, 1); 9432} 9433 9434// CHECK-LABEL: test_vshrn_n_u32 9435// CHECK: vshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9436uint16x4_t test_vshrn_n_u32(uint32x4_t a) { 9437 return vshrn_n_u32(a, 1); 9438} 9439 9440// CHECK-LABEL: test_vshrn_n_u64 9441// CHECK: vshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9442uint32x2_t test_vshrn_n_u64(uint64x2_t a) { 9443 return vshrn_n_u64(a, 1); 9444} 9445 9446 9447// CHECK-LABEL: test_vshr_n_s8 9448// CHECK: vshr.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9449int8x8_t test_vshr_n_s8(int8x8_t a) { 9450 return vshr_n_s8(a, 1); 9451} 9452 9453// CHECK-LABEL: test_vshr_n_s16 9454// CHECK: vshr.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9455int16x4_t test_vshr_n_s16(int16x4_t a) { 9456 return vshr_n_s16(a, 1); 9457} 9458 9459// CHECK-LABEL: test_vshr_n_s32 9460// CHECK: vshr.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9461int32x2_t test_vshr_n_s32(int32x2_t a) { 9462 return vshr_n_s32(a, 1); 9463} 9464 9465// CHECK-LABEL: test_vshr_n_s64 9466// CHECK: vshr.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9467int64x1_t test_vshr_n_s64(int64x1_t a) { 9468 return vshr_n_s64(a, 1); 9469} 9470 9471// CHECK-LABEL: test_vshr_n_u8 9472// CHECK: vshr.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9473uint8x8_t test_vshr_n_u8(uint8x8_t a) { 9474 return vshr_n_u8(a, 1); 9475} 9476 9477// CHECK-LABEL: test_vshr_n_u16 9478// CHECK: vshr.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9479uint16x4_t test_vshr_n_u16(uint16x4_t a) { 9480 return vshr_n_u16(a, 1); 9481} 9482 9483// CHECK-LABEL: test_vshr_n_u32 9484// CHECK: vshr.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9485uint32x2_t test_vshr_n_u32(uint32x2_t a) { 9486 return vshr_n_u32(a, 1); 9487} 9488 9489// CHECK-LABEL: test_vshr_n_u64 9490// CHECK: vshr.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9491uint64x1_t test_vshr_n_u64(uint64x1_t a) { 9492 return vshr_n_u64(a, 1); 9493} 9494 9495// CHECK-LABEL: test_vshrq_n_s8 9496// CHECK: vshr.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9497int8x16_t test_vshrq_n_s8(int8x16_t a) { 9498 return vshrq_n_s8(a, 1); 9499} 9500 9501// CHECK-LABEL: test_vshrq_n_s16 9502// CHECK: vshr.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9503int16x8_t test_vshrq_n_s16(int16x8_t a) { 9504 return vshrq_n_s16(a, 1); 9505} 9506 9507// CHECK-LABEL: test_vshrq_n_s32 9508// CHECK: vshr.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9509int32x4_t test_vshrq_n_s32(int32x4_t a) { 9510 return vshrq_n_s32(a, 1); 9511} 9512 9513// CHECK-LABEL: test_vshrq_n_s64 9514// CHECK: vshr.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9515int64x2_t test_vshrq_n_s64(int64x2_t a) { 9516 return vshrq_n_s64(a, 1); 9517} 9518 9519// CHECK-LABEL: test_vshrq_n_u8 9520// CHECK: vshr.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9521uint8x16_t test_vshrq_n_u8(uint8x16_t a) { 9522 return vshrq_n_u8(a, 1); 9523} 9524 9525// CHECK-LABEL: test_vshrq_n_u16 9526// CHECK: vshr.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9527uint16x8_t test_vshrq_n_u16(uint16x8_t a) { 9528 return vshrq_n_u16(a, 1); 9529} 9530 9531// CHECK-LABEL: test_vshrq_n_u32 9532// CHECK: vshr.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9533uint32x4_t test_vshrq_n_u32(uint32x4_t a) { 9534 return vshrq_n_u32(a, 1); 9535} 9536 9537// CHECK-LABEL: test_vshrq_n_u64 9538// CHECK: vshr.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9539uint64x2_t test_vshrq_n_u64(uint64x2_t a) { 9540 return vshrq_n_u64(a, 1); 9541} 9542 9543 9544// CHECK-LABEL: test_vsli_n_s8 9545// CHECK: vsli.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9546int8x8_t test_vsli_n_s8(int8x8_t a, int8x8_t b) { 9547 return vsli_n_s8(a, b, 1); 9548} 9549 9550// CHECK-LABEL: test_vsli_n_s16 9551// CHECK: vsli.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9552int16x4_t test_vsli_n_s16(int16x4_t a, int16x4_t b) { 9553 return vsli_n_s16(a, b, 1); 9554} 9555 9556// CHECK-LABEL: test_vsli_n_s32 9557// CHECK: vsli.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9558int32x2_t test_vsli_n_s32(int32x2_t a, int32x2_t b) { 9559 return vsli_n_s32(a, b, 1); 9560} 9561 9562// CHECK-LABEL: test_vsli_n_s64 9563// CHECK: vsli.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9564int64x1_t test_vsli_n_s64(int64x1_t a, int64x1_t b) { 9565 return vsli_n_s64(a, b, 1); 9566} 9567 9568// CHECK-LABEL: test_vsli_n_u8 9569// CHECK: vsli.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9570uint8x8_t test_vsli_n_u8(uint8x8_t a, uint8x8_t b) { 9571 return vsli_n_u8(a, b, 1); 9572} 9573 9574// CHECK-LABEL: test_vsli_n_u16 9575// CHECK: vsli.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9576uint16x4_t test_vsli_n_u16(uint16x4_t a, uint16x4_t b) { 9577 return vsli_n_u16(a, b, 1); 9578} 9579 9580// CHECK-LABEL: test_vsli_n_u32 9581// CHECK: vsli.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9582uint32x2_t test_vsli_n_u32(uint32x2_t a, uint32x2_t b) { 9583 return vsli_n_u32(a, b, 1); 9584} 9585 9586// CHECK-LABEL: test_vsli_n_u64 9587// CHECK: vsli.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9588uint64x1_t test_vsli_n_u64(uint64x1_t a, uint64x1_t b) { 9589 return vsli_n_u64(a, b, 1); 9590} 9591 9592// CHECK-LABEL: test_vsli_n_p8 9593// CHECK: vsli.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9594poly8x8_t test_vsli_n_p8(poly8x8_t a, poly8x8_t b) { 9595 return vsli_n_p8(a, b, 1); 9596} 9597 9598// CHECK-LABEL: test_vsli_n_p16 9599// CHECK: vsli.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9600poly16x4_t test_vsli_n_p16(poly16x4_t a, poly16x4_t b) { 9601 return vsli_n_p16(a, b, 1); 9602} 9603 9604// CHECK-LABEL: test_vsliq_n_s8 9605// CHECK: vsli.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9606int8x16_t test_vsliq_n_s8(int8x16_t a, int8x16_t b) { 9607 return vsliq_n_s8(a, b, 1); 9608} 9609 9610// CHECK-LABEL: test_vsliq_n_s16 9611// CHECK: vsli.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9612int16x8_t test_vsliq_n_s16(int16x8_t a, int16x8_t b) { 9613 return vsliq_n_s16(a, b, 1); 9614} 9615 9616// CHECK-LABEL: test_vsliq_n_s32 9617// CHECK: vsli.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9618int32x4_t test_vsliq_n_s32(int32x4_t a, int32x4_t b) { 9619 return vsliq_n_s32(a, b, 1); 9620} 9621 9622// CHECK-LABEL: test_vsliq_n_s64 9623// CHECK: vsli.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9624int64x2_t test_vsliq_n_s64(int64x2_t a, int64x2_t b) { 9625 return vsliq_n_s64(a, b, 1); 9626} 9627 9628// CHECK-LABEL: test_vsliq_n_u8 9629// CHECK: vsli.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9630uint8x16_t test_vsliq_n_u8(uint8x16_t a, uint8x16_t b) { 9631 return vsliq_n_u8(a, b, 1); 9632} 9633 9634// CHECK-LABEL: test_vsliq_n_u16 9635// CHECK: vsli.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9636uint16x8_t test_vsliq_n_u16(uint16x8_t a, uint16x8_t b) { 9637 return vsliq_n_u16(a, b, 1); 9638} 9639 9640// CHECK-LABEL: test_vsliq_n_u32 9641// CHECK: vsli.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9642uint32x4_t test_vsliq_n_u32(uint32x4_t a, uint32x4_t b) { 9643 return vsliq_n_u32(a, b, 1); 9644} 9645 9646// CHECK-LABEL: test_vsliq_n_u64 9647// CHECK: vsli.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9648uint64x2_t test_vsliq_n_u64(uint64x2_t a, uint64x2_t b) { 9649 return vsliq_n_u64(a, b, 1); 9650} 9651 9652// CHECK-LABEL: test_vsliq_n_p8 9653// CHECK: vsli.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9654poly8x16_t test_vsliq_n_p8(poly8x16_t a, poly8x16_t b) { 9655 return vsliq_n_p8(a, b, 1); 9656} 9657 9658// CHECK-LABEL: test_vsliq_n_p16 9659// CHECK: vsli.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9660poly16x8_t test_vsliq_n_p16(poly16x8_t a, poly16x8_t b) { 9661 return vsliq_n_p16(a, b, 1); 9662} 9663 9664 9665// CHECK-LABEL: test_vsra_n_s8 9666// CHECK: vsra.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9667int8x8_t test_vsra_n_s8(int8x8_t a, int8x8_t b) { 9668 return vsra_n_s8(a, b, 1); 9669} 9670 9671// CHECK-LABEL: test_vsra_n_s16 9672// CHECK: vsra.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9673int16x4_t test_vsra_n_s16(int16x4_t a, int16x4_t b) { 9674 return vsra_n_s16(a, b, 1); 9675} 9676 9677// CHECK-LABEL: test_vsra_n_s32 9678// CHECK: vsra.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9679int32x2_t test_vsra_n_s32(int32x2_t a, int32x2_t b) { 9680 return vsra_n_s32(a, b, 1); 9681} 9682 9683// CHECK-LABEL: test_vsra_n_s64 9684// CHECK: vsra.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9685int64x1_t test_vsra_n_s64(int64x1_t a, int64x1_t b) { 9686 return vsra_n_s64(a, b, 1); 9687} 9688 9689// CHECK-LABEL: test_vsra_n_u8 9690// CHECK: vsra.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9691uint8x8_t test_vsra_n_u8(uint8x8_t a, uint8x8_t b) { 9692 return vsra_n_u8(a, b, 1); 9693} 9694 9695// CHECK-LABEL: test_vsra_n_u16 9696// CHECK: vsra.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9697uint16x4_t test_vsra_n_u16(uint16x4_t a, uint16x4_t b) { 9698 return vsra_n_u16(a, b, 1); 9699} 9700 9701// CHECK-LABEL: test_vsra_n_u32 9702// CHECK: vsra.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9703uint32x2_t test_vsra_n_u32(uint32x2_t a, uint32x2_t b) { 9704 return vsra_n_u32(a, b, 1); 9705} 9706 9707// CHECK-LABEL: test_vsra_n_u64 9708// CHECK: vsra.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9709uint64x1_t test_vsra_n_u64(uint64x1_t a, uint64x1_t b) { 9710 return vsra_n_u64(a, b, 1); 9711} 9712 9713// CHECK-LABEL: test_vsraq_n_s8 9714// CHECK: vsra.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9715int8x16_t test_vsraq_n_s8(int8x16_t a, int8x16_t b) { 9716 return vsraq_n_s8(a, b, 1); 9717} 9718 9719// CHECK-LABEL: test_vsraq_n_s16 9720// CHECK: vsra.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9721int16x8_t test_vsraq_n_s16(int16x8_t a, int16x8_t b) { 9722 return vsraq_n_s16(a, b, 1); 9723} 9724 9725// CHECK-LABEL: test_vsraq_n_s32 9726// CHECK: vsra.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9727int32x4_t test_vsraq_n_s32(int32x4_t a, int32x4_t b) { 9728 return vsraq_n_s32(a, b, 1); 9729} 9730 9731// CHECK-LABEL: test_vsraq_n_s64 9732// CHECK: vsra.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9733int64x2_t test_vsraq_n_s64(int64x2_t a, int64x2_t b) { 9734 return vsraq_n_s64(a, b, 1); 9735} 9736 9737// CHECK-LABEL: test_vsraq_n_u8 9738// CHECK: vsra.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9739uint8x16_t test_vsraq_n_u8(uint8x16_t a, uint8x16_t b) { 9740 return vsraq_n_u8(a, b, 1); 9741} 9742 9743// CHECK-LABEL: test_vsraq_n_u16 9744// CHECK: vsra.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9745uint16x8_t test_vsraq_n_u16(uint16x8_t a, uint16x8_t b) { 9746 return vsraq_n_u16(a, b, 1); 9747} 9748 9749// CHECK-LABEL: test_vsraq_n_u32 9750// CHECK: vsra.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9751uint32x4_t test_vsraq_n_u32(uint32x4_t a, uint32x4_t b) { 9752 return vsraq_n_u32(a, b, 1); 9753} 9754 9755// CHECK-LABEL: test_vsraq_n_u64 9756// CHECK: vsra.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9757uint64x2_t test_vsraq_n_u64(uint64x2_t a, uint64x2_t b) { 9758 return vsraq_n_u64(a, b, 1); 9759} 9760 9761 9762// CHECK-LABEL: test_vsri_n_s8 9763// CHECK: vsri.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9764int8x8_t test_vsri_n_s8(int8x8_t a, int8x8_t b) { 9765 return vsri_n_s8(a, b, 1); 9766} 9767 9768// CHECK-LABEL: test_vsri_n_s16 9769// CHECK: vsri.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9770int16x4_t test_vsri_n_s16(int16x4_t a, int16x4_t b) { 9771 return vsri_n_s16(a, b, 1); 9772} 9773 9774// CHECK-LABEL: test_vsri_n_s32 9775// CHECK: vsri.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9776int32x2_t test_vsri_n_s32(int32x2_t a, int32x2_t b) { 9777 return vsri_n_s32(a, b, 1); 9778} 9779 9780// CHECK-LABEL: test_vsri_n_s64 9781// CHECK: vsri.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9782int64x1_t test_vsri_n_s64(int64x1_t a, int64x1_t b) { 9783 return vsri_n_s64(a, b, 1); 9784} 9785 9786// CHECK-LABEL: test_vsri_n_u8 9787// CHECK: vsri.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9788uint8x8_t test_vsri_n_u8(uint8x8_t a, uint8x8_t b) { 9789 return vsri_n_u8(a, b, 1); 9790} 9791 9792// CHECK-LABEL: test_vsri_n_u16 9793// CHECK: vsri.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9794uint16x4_t test_vsri_n_u16(uint16x4_t a, uint16x4_t b) { 9795 return vsri_n_u16(a, b, 1); 9796} 9797 9798// CHECK-LABEL: test_vsri_n_u32 9799// CHECK: vsri.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9800uint32x2_t test_vsri_n_u32(uint32x2_t a, uint32x2_t b) { 9801 return vsri_n_u32(a, b, 1); 9802} 9803 9804// CHECK-LABEL: test_vsri_n_u64 9805// CHECK: vsri.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9806uint64x1_t test_vsri_n_u64(uint64x1_t a, uint64x1_t b) { 9807 return vsri_n_u64(a, b, 1); 9808} 9809 9810// CHECK-LABEL: test_vsri_n_p8 9811// CHECK: vsri.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9812poly8x8_t test_vsri_n_p8(poly8x8_t a, poly8x8_t b) { 9813 return vsri_n_p8(a, b, 1); 9814} 9815 9816// CHECK-LABEL: test_vsri_n_p16 9817// CHECK: vsri.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9818poly16x4_t test_vsri_n_p16(poly16x4_t a, poly16x4_t b) { 9819 return vsri_n_p16(a, b, 1); 9820} 9821 9822// CHECK-LABEL: test_vsriq_n_s8 9823// CHECK: vsri.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9824int8x16_t test_vsriq_n_s8(int8x16_t a, int8x16_t b) { 9825 return vsriq_n_s8(a, b, 1); 9826} 9827 9828// CHECK-LABEL: test_vsriq_n_s16 9829// CHECK: vsri.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9830int16x8_t test_vsriq_n_s16(int16x8_t a, int16x8_t b) { 9831 return vsriq_n_s16(a, b, 1); 9832} 9833 9834// CHECK-LABEL: test_vsriq_n_s32 9835// CHECK: vsri.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9836int32x4_t test_vsriq_n_s32(int32x4_t a, int32x4_t b) { 9837 return vsriq_n_s32(a, b, 1); 9838} 9839 9840// CHECK-LABEL: test_vsriq_n_s64 9841// CHECK: vsri.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9842int64x2_t test_vsriq_n_s64(int64x2_t a, int64x2_t b) { 9843 return vsriq_n_s64(a, b, 1); 9844} 9845 9846// CHECK-LABEL: test_vsriq_n_u8 9847// CHECK: vsri.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9848uint8x16_t test_vsriq_n_u8(uint8x16_t a, uint8x16_t b) { 9849 return vsriq_n_u8(a, b, 1); 9850} 9851 9852// CHECK-LABEL: test_vsriq_n_u16 9853// CHECK: vsri.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9854uint16x8_t test_vsriq_n_u16(uint16x8_t a, uint16x8_t b) { 9855 return vsriq_n_u16(a, b, 1); 9856} 9857 9858// CHECK-LABEL: test_vsriq_n_u32 9859// CHECK: vsri.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9860uint32x4_t test_vsriq_n_u32(uint32x4_t a, uint32x4_t b) { 9861 return vsriq_n_u32(a, b, 1); 9862} 9863 9864// CHECK-LABEL: test_vsriq_n_u64 9865// CHECK: vsri.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9866uint64x2_t test_vsriq_n_u64(uint64x2_t a, uint64x2_t b) { 9867 return vsriq_n_u64(a, b, 1); 9868} 9869 9870// CHECK-LABEL: test_vsriq_n_p8 9871// CHECK: vsri.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9872poly8x16_t test_vsriq_n_p8(poly8x16_t a, poly8x16_t b) { 9873 return vsriq_n_p8(a, b, 1); 9874} 9875 9876// CHECK-LABEL: test_vsriq_n_p16 9877// CHECK: vsri.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9878poly16x8_t test_vsriq_n_p16(poly16x8_t a, poly16x8_t b) { 9879 return vsriq_n_p16(a, b, 1); 9880} 9881 9882 9883// CHECK-LABEL: test_vst1q_u8 9884// CHECK: vst1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 9885void test_vst1q_u8(uint8_t * a, uint8x16_t b) { 9886 vst1q_u8(a, b); 9887} 9888 9889// CHECK-LABEL: test_vst1q_u16 9890// CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 9891void test_vst1q_u16(uint16_t * a, uint16x8_t b) { 9892 vst1q_u16(a, b); 9893} 9894 9895// CHECK-LABEL: test_vst1q_u32 9896// CHECK: vst1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 9897void test_vst1q_u32(uint32_t * a, uint32x4_t b) { 9898 vst1q_u32(a, b); 9899} 9900 9901// CHECK-LABEL: test_vst1q_u64 9902// CHECK: vst1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}] 9903void test_vst1q_u64(uint64_t * a, uint64x2_t b) { 9904 vst1q_u64(a, b); 9905} 9906 9907// CHECK-LABEL: test_vst1q_s8 9908// CHECK: vst1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 9909void test_vst1q_s8(int8_t * a, int8x16_t b) { 9910 vst1q_s8(a, b); 9911} 9912 9913// CHECK-LABEL: test_vst1q_s16 9914// CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 9915void test_vst1q_s16(int16_t * a, int16x8_t b) { 9916 vst1q_s16(a, b); 9917} 9918 9919// CHECK-LABEL: test_vst1q_s32 9920// CHECK: vst1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 9921void test_vst1q_s32(int32_t * a, int32x4_t b) { 9922 vst1q_s32(a, b); 9923} 9924 9925// CHECK-LABEL: test_vst1q_s64 9926// CHECK: vst1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}] 9927void test_vst1q_s64(int64_t * a, int64x2_t b) { 9928 vst1q_s64(a, b); 9929} 9930 9931// CHECK-LABEL: test_vst1q_f16 9932// CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 9933void test_vst1q_f16(float16_t * a, float16x8_t b) { 9934 vst1q_f16(a, b); 9935} 9936 9937// CHECK-LABEL: test_vst1q_f32 9938// CHECK: vst1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 9939void test_vst1q_f32(float32_t * a, float32x4_t b) { 9940 vst1q_f32(a, b); 9941} 9942 9943// CHECK-LABEL: test_vst1q_p8 9944// CHECK: vst1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 9945void test_vst1q_p8(poly8_t * a, poly8x16_t b) { 9946 vst1q_p8(a, b); 9947} 9948 9949// CHECK-LABEL: test_vst1q_p16 9950// CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 9951void test_vst1q_p16(poly16_t * a, poly16x8_t b) { 9952 vst1q_p16(a, b); 9953} 9954 9955// CHECK-LABEL: test_vst1_u8 9956// CHECK: vst1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}] 9957void test_vst1_u8(uint8_t * a, uint8x8_t b) { 9958 vst1_u8(a, b); 9959} 9960 9961// CHECK-LABEL: test_vst1_u16 9962// CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}] 9963void test_vst1_u16(uint16_t * a, uint16x4_t b) { 9964 vst1_u16(a, b); 9965} 9966 9967// CHECK-LABEL: test_vst1_u32 9968// CHECK: vst1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}] 9969void test_vst1_u32(uint32_t * a, uint32x2_t b) { 9970 vst1_u32(a, b); 9971} 9972 9973// CHECK-LABEL: test_vst1_u64 9974// CHECK: vst1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}] 9975void test_vst1_u64(uint64_t * a, uint64x1_t b) { 9976 vst1_u64(a, b); 9977} 9978 9979// CHECK-LABEL: test_vst1_s8 9980// CHECK: vst1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}] 9981void test_vst1_s8(int8_t * a, int8x8_t b) { 9982 vst1_s8(a, b); 9983} 9984 9985// CHECK-LABEL: test_vst1_s16 9986// CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}] 9987void test_vst1_s16(int16_t * a, int16x4_t b) { 9988 vst1_s16(a, b); 9989} 9990 9991// CHECK-LABEL: test_vst1_s32 9992// CHECK: vst1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}] 9993void test_vst1_s32(int32_t * a, int32x2_t b) { 9994 vst1_s32(a, b); 9995} 9996 9997// CHECK-LABEL: test_vst1_s64 9998// CHECK: vst1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}] 9999void test_vst1_s64(int64_t * a, int64x1_t b) { 10000 vst1_s64(a, b); 10001} 10002 10003// CHECK-LABEL: test_vst1_f16 10004// CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}] 10005void test_vst1_f16(float16_t * a, float16x4_t b) { 10006 vst1_f16(a, b); 10007} 10008 10009// CHECK-LABEL: test_vst1_f32 10010// CHECK: vst1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}] 10011void test_vst1_f32(float32_t * a, float32x2_t b) { 10012 vst1_f32(a, b); 10013} 10014 10015// CHECK-LABEL: test_vst1_p8 10016// CHECK: vst1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}] 10017void test_vst1_p8(poly8_t * a, poly8x8_t b) { 10018 vst1_p8(a, b); 10019} 10020 10021// CHECK-LABEL: test_vst1_p16 10022// CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}] 10023void test_vst1_p16(poly16_t * a, poly16x4_t b) { 10024 vst1_p16(a, b); 10025} 10026 10027 10028// CHECK-LABEL: test_vst1q_lane_u8 10029// CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10030void test_vst1q_lane_u8(uint8_t * a, uint8x16_t b) { 10031 vst1q_lane_u8(a, b, 15); 10032} 10033 10034// CHECK-LABEL: test_vst1q_lane_u16 10035// CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 10036void test_vst1q_lane_u16(uint16_t * a, uint16x8_t b) { 10037 vst1q_lane_u16(a, b, 7); 10038} 10039 10040// CHECK-LABEL: test_vst1q_lane_u32 10041// CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32] 10042void test_vst1q_lane_u32(uint32_t * a, uint32x4_t b) { 10043 vst1q_lane_u32(a, b, 3); 10044} 10045 10046// CHECK-LABEL: test_vst1q_lane_u64 10047// CHECK: {{str|vstr|vmov}} 10048void test_vst1q_lane_u64(uint64_t * a, uint64x2_t b) { 10049 vst1q_lane_u64(a, b, 1); 10050} 10051 10052// CHECK-LABEL: test_vst1q_lane_s8 10053// CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10054void test_vst1q_lane_s8(int8_t * a, int8x16_t b) { 10055 vst1q_lane_s8(a, b, 15); 10056} 10057 10058// CHECK-LABEL: test_vst1q_lane_s16 10059// CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 10060void test_vst1q_lane_s16(int16_t * a, int16x8_t b) { 10061 vst1q_lane_s16(a, b, 7); 10062} 10063 10064// CHECK-LABEL: test_vst1q_lane_s32 10065// CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32] 10066void test_vst1q_lane_s32(int32_t * a, int32x4_t b) { 10067 vst1q_lane_s32(a, b, 3); 10068} 10069 10070// CHECK-LABEL: test_vst1q_lane_s64 10071// CHECK: {{str|vstr|vmov}} 10072void test_vst1q_lane_s64(int64_t * a, int64x2_t b) { 10073 vst1q_lane_s64(a, b, 1); 10074} 10075 10076// CHECK-LABEL: test_vst1q_lane_f16 10077// CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 10078void test_vst1q_lane_f16(float16_t * a, float16x8_t b) { 10079 vst1q_lane_f16(a, b, 7); 10080} 10081 10082// CHECK-LABEL: test_vst1q_lane_f32 10083// CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32] 10084void test_vst1q_lane_f32(float32_t * a, float32x4_t b) { 10085 vst1q_lane_f32(a, b, 3); 10086} 10087 10088// CHECK-LABEL: test_vst1q_lane_p8 10089// CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10090void test_vst1q_lane_p8(poly8_t * a, poly8x16_t b) { 10091 vst1q_lane_p8(a, b, 15); 10092} 10093 10094// CHECK-LABEL: test_vst1q_lane_p16 10095// CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 10096void test_vst1q_lane_p16(poly16_t * a, poly16x8_t b) { 10097 vst1q_lane_p16(a, b, 7); 10098} 10099 10100// CHECK-LABEL: test_vst1_lane_u8 10101// CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10102void test_vst1_lane_u8(uint8_t * a, uint8x8_t b) { 10103 vst1_lane_u8(a, b, 7); 10104} 10105 10106// CHECK-LABEL: test_vst1_lane_u16 10107// CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 10108void test_vst1_lane_u16(uint16_t * a, uint16x4_t b) { 10109 vst1_lane_u16(a, b, 3); 10110} 10111 10112// CHECK-LABEL: test_vst1_lane_u32 10113// CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32] 10114void test_vst1_lane_u32(uint32_t * a, uint32x2_t b) { 10115 vst1_lane_u32(a, b, 1); 10116} 10117 10118// CHECK-LABEL: test_vst1_lane_u64 10119// CHECK: {{str|vstr|vmov}} 10120void test_vst1_lane_u64(uint64_t * a, uint64x1_t b) { 10121 vst1_lane_u64(a, b, 0); 10122} 10123 10124// CHECK-LABEL: test_vst1_lane_s8 10125// CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10126void test_vst1_lane_s8(int8_t * a, int8x8_t b) { 10127 vst1_lane_s8(a, b, 7); 10128} 10129 10130// CHECK-LABEL: test_vst1_lane_s16 10131// CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 10132void test_vst1_lane_s16(int16_t * a, int16x4_t b) { 10133 vst1_lane_s16(a, b, 3); 10134} 10135 10136// CHECK-LABEL: test_vst1_lane_s32 10137// CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32] 10138void test_vst1_lane_s32(int32_t * a, int32x2_t b) { 10139 vst1_lane_s32(a, b, 1); 10140} 10141 10142// CHECK-LABEL: test_vst1_lane_s64 10143// CHECK: {{str|vstr|vmov}} 10144void test_vst1_lane_s64(int64_t * a, int64x1_t b) { 10145 vst1_lane_s64(a, b, 0); 10146} 10147 10148// CHECK-LABEL: test_vst1_lane_f16 10149// CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 10150void test_vst1_lane_f16(float16_t * a, float16x4_t b) { 10151 vst1_lane_f16(a, b, 3); 10152} 10153 10154// CHECK-LABEL: test_vst1_lane_f32 10155// CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32] 10156void test_vst1_lane_f32(float32_t * a, float32x2_t b) { 10157 vst1_lane_f32(a, b, 1); 10158} 10159 10160// CHECK-LABEL: test_vst1_lane_p8 10161// CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10162void test_vst1_lane_p8(poly8_t * a, poly8x8_t b) { 10163 vst1_lane_p8(a, b, 7); 10164} 10165 10166// CHECK-LABEL: test_vst1_lane_p16 10167// CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 10168void test_vst1_lane_p16(poly16_t * a, poly16x4_t b) { 10169 vst1_lane_p16(a, b, 3); 10170} 10171 10172 10173// CHECK-LABEL: test_vst2q_u8 10174// CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10175void test_vst2q_u8(uint8_t * a, uint8x16x2_t b) { 10176 vst2q_u8(a, b); 10177} 10178 10179// CHECK-LABEL: test_vst2q_u16 10180// CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10181void test_vst2q_u16(uint16_t * a, uint16x8x2_t b) { 10182 vst2q_u16(a, b); 10183} 10184 10185// CHECK-LABEL: test_vst2q_u32 10186// CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10187void test_vst2q_u32(uint32_t * a, uint32x4x2_t b) { 10188 vst2q_u32(a, b); 10189} 10190 10191// CHECK-LABEL: test_vst2q_s8 10192// CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10193void test_vst2q_s8(int8_t * a, int8x16x2_t b) { 10194 vst2q_s8(a, b); 10195} 10196 10197// CHECK-LABEL: test_vst2q_s16 10198// CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10199void test_vst2q_s16(int16_t * a, int16x8x2_t b) { 10200 vst2q_s16(a, b); 10201} 10202 10203// CHECK-LABEL: test_vst2q_s32 10204// CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10205void test_vst2q_s32(int32_t * a, int32x4x2_t b) { 10206 vst2q_s32(a, b); 10207} 10208 10209// CHECK-LABEL: test_vst2q_f16 10210// CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10211void test_vst2q_f16(float16_t * a, float16x8x2_t b) { 10212 vst2q_f16(a, b); 10213} 10214 10215// CHECK-LABEL: test_vst2q_f32 10216// CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10217void test_vst2q_f32(float32_t * a, float32x4x2_t b) { 10218 vst2q_f32(a, b); 10219} 10220 10221// CHECK-LABEL: test_vst2q_p8 10222// CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10223void test_vst2q_p8(poly8_t * a, poly8x16x2_t b) { 10224 vst2q_p8(a, b); 10225} 10226 10227// CHECK-LABEL: test_vst2q_p16 10228// CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10229void test_vst2q_p16(poly16_t * a, poly16x8x2_t b) { 10230 vst2q_p16(a, b); 10231} 10232 10233// CHECK-LABEL: test_vst2_u8 10234// CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10235void test_vst2_u8(uint8_t * a, uint8x8x2_t b) { 10236 vst2_u8(a, b); 10237} 10238 10239// CHECK-LABEL: test_vst2_u16 10240// CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10241void test_vst2_u16(uint16_t * a, uint16x4x2_t b) { 10242 vst2_u16(a, b); 10243} 10244 10245// CHECK-LABEL: test_vst2_u32 10246// CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10247void test_vst2_u32(uint32_t * a, uint32x2x2_t b) { 10248 vst2_u32(a, b); 10249} 10250 10251// CHECK-LABEL: test_vst2_u64 10252// CHECK: vst1.64 10253void test_vst2_u64(uint64_t * a, uint64x1x2_t b) { 10254 vst2_u64(a, b); 10255} 10256 10257// CHECK-LABEL: test_vst2_s8 10258// CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10259void test_vst2_s8(int8_t * a, int8x8x2_t b) { 10260 vst2_s8(a, b); 10261} 10262 10263// CHECK-LABEL: test_vst2_s16 10264// CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10265void test_vst2_s16(int16_t * a, int16x4x2_t b) { 10266 vst2_s16(a, b); 10267} 10268 10269// CHECK-LABEL: test_vst2_s32 10270// CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10271void test_vst2_s32(int32_t * a, int32x2x2_t b) { 10272 vst2_s32(a, b); 10273} 10274 10275// CHECK-LABEL: test_vst2_s64 10276// CHECK: vst1.64 10277void test_vst2_s64(int64_t * a, int64x1x2_t b) { 10278 vst2_s64(a, b); 10279} 10280 10281// CHECK-LABEL: test_vst2_f16 10282// CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10283void test_vst2_f16(float16_t * a, float16x4x2_t b) { 10284 vst2_f16(a, b); 10285} 10286 10287// CHECK-LABEL: test_vst2_f32 10288// CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10289void test_vst2_f32(float32_t * a, float32x2x2_t b) { 10290 vst2_f32(a, b); 10291} 10292 10293// CHECK-LABEL: test_vst2_p8 10294// CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10295void test_vst2_p8(poly8_t * a, poly8x8x2_t b) { 10296 vst2_p8(a, b); 10297} 10298 10299// CHECK-LABEL: test_vst2_p16 10300// CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10301void test_vst2_p16(poly16_t * a, poly16x4x2_t b) { 10302 vst2_p16(a, b); 10303} 10304 10305 10306// CHECK-LABEL: test_vst2q_lane_u16 10307// CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10308void test_vst2q_lane_u16(uint16_t * a, uint16x8x2_t b) { 10309 vst2q_lane_u16(a, b, 7); 10310} 10311 10312// CHECK-LABEL: test_vst2q_lane_u32 10313// CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10314void test_vst2q_lane_u32(uint32_t * a, uint32x4x2_t b) { 10315 vst2q_lane_u32(a, b, 3); 10316} 10317 10318// CHECK-LABEL: test_vst2q_lane_s16 10319// CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10320void test_vst2q_lane_s16(int16_t * a, int16x8x2_t b) { 10321 vst2q_lane_s16(a, b, 7); 10322} 10323 10324// CHECK-LABEL: test_vst2q_lane_s32 10325// CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10326void test_vst2q_lane_s32(int32_t * a, int32x4x2_t b) { 10327 vst2q_lane_s32(a, b, 3); 10328} 10329 10330// CHECK-LABEL: test_vst2q_lane_f16 10331// CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10332void test_vst2q_lane_f16(float16_t * a, float16x8x2_t b) { 10333 vst2q_lane_f16(a, b, 7); 10334} 10335 10336// CHECK-LABEL: test_vst2q_lane_f32 10337// CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10338void test_vst2q_lane_f32(float32_t * a, float32x4x2_t b) { 10339 vst2q_lane_f32(a, b, 3); 10340} 10341 10342// CHECK-LABEL: test_vst2q_lane_p16 10343// CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10344void test_vst2q_lane_p16(poly16_t * a, poly16x8x2_t b) { 10345 vst2q_lane_p16(a, b, 7); 10346} 10347 10348// CHECK-LABEL: test_vst2_lane_u8 10349// CHECK: vst2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10350void test_vst2_lane_u8(uint8_t * a, uint8x8x2_t b) { 10351 vst2_lane_u8(a, b, 7); 10352} 10353 10354// CHECK-LABEL: test_vst2_lane_u16 10355// CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10356void test_vst2_lane_u16(uint16_t * a, uint16x4x2_t b) { 10357 vst2_lane_u16(a, b, 3); 10358} 10359 10360// CHECK-LABEL: test_vst2_lane_u32 10361// CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10362void test_vst2_lane_u32(uint32_t * a, uint32x2x2_t b) { 10363 vst2_lane_u32(a, b, 1); 10364} 10365 10366// CHECK-LABEL: test_vst2_lane_s8 10367// CHECK: vst2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10368void test_vst2_lane_s8(int8_t * a, int8x8x2_t b) { 10369 vst2_lane_s8(a, b, 7); 10370} 10371 10372// CHECK-LABEL: test_vst2_lane_s16 10373// CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10374void test_vst2_lane_s16(int16_t * a, int16x4x2_t b) { 10375 vst2_lane_s16(a, b, 3); 10376} 10377 10378// CHECK-LABEL: test_vst2_lane_s32 10379// CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10380void test_vst2_lane_s32(int32_t * a, int32x2x2_t b) { 10381 vst2_lane_s32(a, b, 1); 10382} 10383 10384// CHECK-LABEL: test_vst2_lane_f16 10385// CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10386void test_vst2_lane_f16(float16_t * a, float16x4x2_t b) { 10387 vst2_lane_f16(a, b, 3); 10388} 10389 10390// CHECK-LABEL: test_vst2_lane_f32 10391// CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10392void test_vst2_lane_f32(float32_t * a, float32x2x2_t b) { 10393 vst2_lane_f32(a, b, 1); 10394} 10395 10396// CHECK-LABEL: test_vst2_lane_p8 10397// CHECK: vst2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10398void test_vst2_lane_p8(poly8_t * a, poly8x8x2_t b) { 10399 vst2_lane_p8(a, b, 7); 10400} 10401 10402// CHECK-LABEL: test_vst2_lane_p16 10403// CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10404void test_vst2_lane_p16(poly16_t * a, poly16x4x2_t b) { 10405 vst2_lane_p16(a, b, 3); 10406} 10407 10408 10409// CHECK-LABEL: test_vst3q_u8 10410// CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10411void test_vst3q_u8(uint8_t * a, uint8x16x3_t b) { 10412 vst3q_u8(a, b); 10413} 10414 10415// CHECK-LABEL: test_vst3q_u16 10416// CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10417void test_vst3q_u16(uint16_t * a, uint16x8x3_t b) { 10418 vst3q_u16(a, b); 10419} 10420 10421// CHECK-LABEL: test_vst3q_u32 10422// CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10423void test_vst3q_u32(uint32_t * a, uint32x4x3_t b) { 10424 vst3q_u32(a, b); 10425} 10426 10427// CHECK-LABEL: test_vst3q_s8 10428// CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10429void test_vst3q_s8(int8_t * a, int8x16x3_t b) { 10430 vst3q_s8(a, b); 10431} 10432 10433// CHECK-LABEL: test_vst3q_s16 10434// CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10435void test_vst3q_s16(int16_t * a, int16x8x3_t b) { 10436 vst3q_s16(a, b); 10437} 10438 10439// CHECK-LABEL: test_vst3q_s32 10440// CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10441void test_vst3q_s32(int32_t * a, int32x4x3_t b) { 10442 vst3q_s32(a, b); 10443} 10444 10445// CHECK-LABEL: test_vst3q_f16 10446// CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10447void test_vst3q_f16(float16_t * a, float16x8x3_t b) { 10448 vst3q_f16(a, b); 10449} 10450 10451// CHECK-LABEL: test_vst3q_f32 10452// CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10453void test_vst3q_f32(float32_t * a, float32x4x3_t b) { 10454 vst3q_f32(a, b); 10455} 10456 10457// CHECK-LABEL: test_vst3q_p8 10458// CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10459void test_vst3q_p8(poly8_t * a, poly8x16x3_t b) { 10460 vst3q_p8(a, b); 10461} 10462 10463// CHECK-LABEL: test_vst3q_p16 10464// CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10465void test_vst3q_p16(poly16_t * a, poly16x8x3_t b) { 10466 vst3q_p16(a, b); 10467} 10468 10469// CHECK-LABEL: test_vst3_u8 10470// CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10471void test_vst3_u8(uint8_t * a, uint8x8x3_t b) { 10472 vst3_u8(a, b); 10473} 10474 10475// CHECK-LABEL: test_vst3_u16 10476// CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10477void test_vst3_u16(uint16_t * a, uint16x4x3_t b) { 10478 vst3_u16(a, b); 10479} 10480 10481// CHECK-LABEL: test_vst3_u32 10482// CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10483void test_vst3_u32(uint32_t * a, uint32x2x3_t b) { 10484 vst3_u32(a, b); 10485} 10486 10487// CHECK-LABEL: test_vst3_u64 10488// CHECK: vst1.64 10489void test_vst3_u64(uint64_t * a, uint64x1x3_t b) { 10490 vst3_u64(a, b); 10491} 10492 10493// CHECK-LABEL: test_vst3_s8 10494// CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10495void test_vst3_s8(int8_t * a, int8x8x3_t b) { 10496 vst3_s8(a, b); 10497} 10498 10499// CHECK-LABEL: test_vst3_s16 10500// CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10501void test_vst3_s16(int16_t * a, int16x4x3_t b) { 10502 vst3_s16(a, b); 10503} 10504 10505// CHECK-LABEL: test_vst3_s32 10506// CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10507void test_vst3_s32(int32_t * a, int32x2x3_t b) { 10508 vst3_s32(a, b); 10509} 10510 10511// CHECK-LABEL: test_vst3_s64 10512// CHECK: vst1.64 10513void test_vst3_s64(int64_t * a, int64x1x3_t b) { 10514 vst3_s64(a, b); 10515} 10516 10517// CHECK-LABEL: test_vst3_f16 10518// CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10519void test_vst3_f16(float16_t * a, float16x4x3_t b) { 10520 vst3_f16(a, b); 10521} 10522 10523// CHECK-LABEL: test_vst3_f32 10524// CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10525void test_vst3_f32(float32_t * a, float32x2x3_t b) { 10526 vst3_f32(a, b); 10527} 10528 10529// CHECK-LABEL: test_vst3_p8 10530// CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10531void test_vst3_p8(poly8_t * a, poly8x8x3_t b) { 10532 vst3_p8(a, b); 10533} 10534 10535// CHECK-LABEL: test_vst3_p16 10536// CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10537void test_vst3_p16(poly16_t * a, poly16x4x3_t b) { 10538 vst3_p16(a, b); 10539} 10540 10541 10542// CHECK-LABEL: test_vst3q_lane_u16 10543// CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10544void test_vst3q_lane_u16(uint16_t * a, uint16x8x3_t b) { 10545 vst3q_lane_u16(a, b, 7); 10546} 10547 10548// CHECK-LABEL: test_vst3q_lane_u32 10549// CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10550void test_vst3q_lane_u32(uint32_t * a, uint32x4x3_t b) { 10551 vst3q_lane_u32(a, b, 3); 10552} 10553 10554// CHECK-LABEL: test_vst3q_lane_s16 10555// CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10556void test_vst3q_lane_s16(int16_t * a, int16x8x3_t b) { 10557 vst3q_lane_s16(a, b, 7); 10558} 10559 10560// CHECK-LABEL: test_vst3q_lane_s32 10561// CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10562void test_vst3q_lane_s32(int32_t * a, int32x4x3_t b) { 10563 vst3q_lane_s32(a, b, 3); 10564} 10565 10566// CHECK-LABEL: test_vst3q_lane_f16 10567// CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10568void test_vst3q_lane_f16(float16_t * a, float16x8x3_t b) { 10569 vst3q_lane_f16(a, b, 7); 10570} 10571 10572// CHECK-LABEL: test_vst3q_lane_f32 10573// CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10574void test_vst3q_lane_f32(float32_t * a, float32x4x3_t b) { 10575 vst3q_lane_f32(a, b, 3); 10576} 10577 10578// CHECK-LABEL: test_vst3q_lane_p16 10579// CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10580void test_vst3q_lane_p16(poly16_t * a, poly16x8x3_t b) { 10581 vst3q_lane_p16(a, b, 7); 10582} 10583 10584// CHECK-LABEL: test_vst3_lane_u8 10585// CHECK: vst3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10586void test_vst3_lane_u8(uint8_t * a, uint8x8x3_t b) { 10587 vst3_lane_u8(a, b, 7); 10588} 10589 10590// CHECK-LABEL: test_vst3_lane_u16 10591// CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10592void test_vst3_lane_u16(uint16_t * a, uint16x4x3_t b) { 10593 vst3_lane_u16(a, b, 3); 10594} 10595 10596// CHECK-LABEL: test_vst3_lane_u32 10597// CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10598void test_vst3_lane_u32(uint32_t * a, uint32x2x3_t b) { 10599 vst3_lane_u32(a, b, 1); 10600} 10601 10602// CHECK-LABEL: test_vst3_lane_s8 10603// CHECK: vst3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10604void test_vst3_lane_s8(int8_t * a, int8x8x3_t b) { 10605 vst3_lane_s8(a, b, 7); 10606} 10607 10608// CHECK-LABEL: test_vst3_lane_s16 10609// CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10610void test_vst3_lane_s16(int16_t * a, int16x4x3_t b) { 10611 vst3_lane_s16(a, b, 3); 10612} 10613 10614// CHECK-LABEL: test_vst3_lane_s32 10615// CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10616void test_vst3_lane_s32(int32_t * a, int32x2x3_t b) { 10617 vst3_lane_s32(a, b, 1); 10618} 10619 10620// CHECK-LABEL: test_vst3_lane_f16 10621// CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10622void test_vst3_lane_f16(float16_t * a, float16x4x3_t b) { 10623 vst3_lane_f16(a, b, 3); 10624} 10625 10626// CHECK-LABEL: test_vst3_lane_f32 10627// CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10628void test_vst3_lane_f32(float32_t * a, float32x2x3_t b) { 10629 vst3_lane_f32(a, b, 1); 10630} 10631 10632// CHECK-LABEL: test_vst3_lane_p8 10633// CHECK: vst3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10634void test_vst3_lane_p8(poly8_t * a, poly8x8x3_t b) { 10635 vst3_lane_p8(a, b, 7); 10636} 10637 10638// CHECK-LABEL: test_vst3_lane_p16 10639// CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10640void test_vst3_lane_p16(poly16_t * a, poly16x4x3_t b) { 10641 vst3_lane_p16(a, b, 3); 10642} 10643 10644 10645// CHECK-LABEL: test_vst4q_u8 10646// CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10647void test_vst4q_u8(uint8_t * a, uint8x16x4_t b) { 10648 vst4q_u8(a, b); 10649} 10650 10651// CHECK-LABEL: test_vst4q_u16 10652// CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10653void test_vst4q_u16(uint16_t * a, uint16x8x4_t b) { 10654 vst4q_u16(a, b); 10655} 10656 10657// CHECK-LABEL: test_vst4q_u32 10658// CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10659void test_vst4q_u32(uint32_t * a, uint32x4x4_t b) { 10660 vst4q_u32(a, b); 10661} 10662 10663// CHECK-LABEL: test_vst4q_s8 10664// CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10665void test_vst4q_s8(int8_t * a, int8x16x4_t b) { 10666 vst4q_s8(a, b); 10667} 10668 10669// CHECK-LABEL: test_vst4q_s16 10670// CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10671void test_vst4q_s16(int16_t * a, int16x8x4_t b) { 10672 vst4q_s16(a, b); 10673} 10674 10675// CHECK-LABEL: test_vst4q_s32 10676// CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10677void test_vst4q_s32(int32_t * a, int32x4x4_t b) { 10678 vst4q_s32(a, b); 10679} 10680 10681// CHECK-LABEL: test_vst4q_f16 10682// CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10683void test_vst4q_f16(float16_t * a, float16x8x4_t b) { 10684 vst4q_f16(a, b); 10685} 10686 10687// CHECK-LABEL: test_vst4q_f32 10688// CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10689void test_vst4q_f32(float32_t * a, float32x4x4_t b) { 10690 vst4q_f32(a, b); 10691} 10692 10693// CHECK-LABEL: test_vst4q_p8 10694// CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10695void test_vst4q_p8(poly8_t * a, poly8x16x4_t b) { 10696 vst4q_p8(a, b); 10697} 10698 10699// CHECK-LABEL: test_vst4q_p16 10700// CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10701void test_vst4q_p16(poly16_t * a, poly16x8x4_t b) { 10702 vst4q_p16(a, b); 10703} 10704 10705// CHECK-LABEL: test_vst4_u8 10706// CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10707void test_vst4_u8(uint8_t * a, uint8x8x4_t b) { 10708 vst4_u8(a, b); 10709} 10710 10711// CHECK-LABEL: test_vst4_u16 10712// CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10713void test_vst4_u16(uint16_t * a, uint16x4x4_t b) { 10714 vst4_u16(a, b); 10715} 10716 10717// CHECK-LABEL: test_vst4_u32 10718// CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10719void test_vst4_u32(uint32_t * a, uint32x2x4_t b) { 10720 vst4_u32(a, b); 10721} 10722 10723// CHECK-LABEL: test_vst4_u64 10724// CHECK: vst1.64 10725void test_vst4_u64(uint64_t * a, uint64x1x4_t b) { 10726 vst4_u64(a, b); 10727} 10728 10729// CHECK-LABEL: test_vst4_s8 10730// CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10731void test_vst4_s8(int8_t * a, int8x8x4_t b) { 10732 vst4_s8(a, b); 10733} 10734 10735// CHECK-LABEL: test_vst4_s16 10736// CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10737void test_vst4_s16(int16_t * a, int16x4x4_t b) { 10738 vst4_s16(a, b); 10739} 10740 10741// CHECK-LABEL: test_vst4_s32 10742// CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10743void test_vst4_s32(int32_t * a, int32x2x4_t b) { 10744 vst4_s32(a, b); 10745} 10746 10747// CHECK-LABEL: test_vst4_s64 10748// CHECK: vst1.64 10749void test_vst4_s64(int64_t * a, int64x1x4_t b) { 10750 vst4_s64(a, b); 10751} 10752 10753// CHECK-LABEL: test_vst4_f16 10754// CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10755void test_vst4_f16(float16_t * a, float16x4x4_t b) { 10756 vst4_f16(a, b); 10757} 10758 10759// CHECK-LABEL: test_vst4_f32 10760// CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10761void test_vst4_f32(float32_t * a, float32x2x4_t b) { 10762 vst4_f32(a, b); 10763} 10764 10765// CHECK-LABEL: test_vst4_p8 10766// CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10767void test_vst4_p8(poly8_t * a, poly8x8x4_t b) { 10768 vst4_p8(a, b); 10769} 10770 10771// CHECK-LABEL: test_vst4_p16 10772// CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10773void test_vst4_p16(poly16_t * a, poly16x4x4_t b) { 10774 vst4_p16(a, b); 10775} 10776 10777 10778// CHECK-LABEL: test_vst4q_lane_u16 10779// CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10780void test_vst4q_lane_u16(uint16_t * a, uint16x8x4_t b) { 10781 vst4q_lane_u16(a, b, 7); 10782} 10783 10784// CHECK-LABEL: test_vst4q_lane_u32 10785// CHECK: vst4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10786void test_vst4q_lane_u32(uint32_t * a, uint32x4x4_t b) { 10787 vst4q_lane_u32(a, b, 3); 10788} 10789 10790// CHECK-LABEL: test_vst4q_lane_s16 10791// CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10792void test_vst4q_lane_s16(int16_t * a, int16x8x4_t b) { 10793 vst4q_lane_s16(a, b, 7); 10794} 10795 10796// CHECK-LABEL: test_vst4q_lane_s32 10797// CHECK: vst4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10798void test_vst4q_lane_s32(int32_t * a, int32x4x4_t b) { 10799 vst4q_lane_s32(a, b, 3); 10800} 10801 10802// CHECK-LABEL: test_vst4q_lane_f16 10803// CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10804void test_vst4q_lane_f16(float16_t * a, float16x8x4_t b) { 10805 vst4q_lane_f16(a, b, 7); 10806} 10807 10808// CHECK-LABEL: test_vst4q_lane_f32 10809// CHECK: vst4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10810void test_vst4q_lane_f32(float32_t * a, float32x4x4_t b) { 10811 vst4q_lane_f32(a, b, 3); 10812} 10813 10814// CHECK-LABEL: test_vst4q_lane_p16 10815// CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10816void test_vst4q_lane_p16(poly16_t * a, poly16x8x4_t b) { 10817 vst4q_lane_p16(a, b, 7); 10818} 10819 10820// CHECK-LABEL: test_vst4_lane_u8 10821// 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]+}}] 10822void test_vst4_lane_u8(uint8_t * a, uint8x8x4_t b) { 10823 vst4_lane_u8(a, b, 7); 10824} 10825 10826// CHECK-LABEL: test_vst4_lane_u16 10827// 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]+}}] 10828void test_vst4_lane_u16(uint16_t * a, uint16x4x4_t b) { 10829 vst4_lane_u16(a, b, 3); 10830} 10831 10832// CHECK-LABEL: test_vst4_lane_u32 10833// 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]+}}] 10834void test_vst4_lane_u32(uint32_t * a, uint32x2x4_t b) { 10835 vst4_lane_u32(a, b, 1); 10836} 10837 10838// CHECK-LABEL: test_vst4_lane_s8 10839// 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]+}}] 10840void test_vst4_lane_s8(int8_t * a, int8x8x4_t b) { 10841 vst4_lane_s8(a, b, 7); 10842} 10843 10844// CHECK-LABEL: test_vst4_lane_s16 10845// 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]+}}] 10846void test_vst4_lane_s16(int16_t * a, int16x4x4_t b) { 10847 vst4_lane_s16(a, b, 3); 10848} 10849 10850// CHECK-LABEL: test_vst4_lane_s32 10851// 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]+}}] 10852void test_vst4_lane_s32(int32_t * a, int32x2x4_t b) { 10853 vst4_lane_s32(a, b, 1); 10854} 10855 10856// CHECK-LABEL: test_vst4_lane_f16 10857// 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]+}}] 10858void test_vst4_lane_f16(float16_t * a, float16x4x4_t b) { 10859 vst4_lane_f16(a, b, 3); 10860} 10861 10862// CHECK-LABEL: test_vst4_lane_f32 10863// 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]+}}] 10864void test_vst4_lane_f32(float32_t * a, float32x2x4_t b) { 10865 vst4_lane_f32(a, b, 1); 10866} 10867 10868// CHECK-LABEL: test_vst4_lane_p8 10869// 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]+}}] 10870void test_vst4_lane_p8(poly8_t * a, poly8x8x4_t b) { 10871 vst4_lane_p8(a, b, 7); 10872} 10873 10874// CHECK-LABEL: test_vst4_lane_p16 10875// 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]+}}] 10876void test_vst4_lane_p16(poly16_t * a, poly16x4x4_t b) { 10877 vst4_lane_p16(a, b, 3); 10878} 10879 10880 10881// CHECK-LABEL: test_vsub_s8 10882// CHECK: vsub.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 10883int8x8_t test_vsub_s8(int8x8_t a, int8x8_t b) { 10884 return vsub_s8(a, b); 10885} 10886 10887// CHECK-LABEL: test_vsub_s16 10888// CHECK: vsub.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 10889int16x4_t test_vsub_s16(int16x4_t a, int16x4_t b) { 10890 return vsub_s16(a, b); 10891} 10892 10893// CHECK-LABEL: test_vsub_s32 10894// CHECK: vsub.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 10895int32x2_t test_vsub_s32(int32x2_t a, int32x2_t b) { 10896 return vsub_s32(a, b); 10897} 10898 10899// CHECK-LABEL: test_vsub_s64 10900// CHECK: vsub.i64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 10901int64x1_t test_vsub_s64(int64x1_t a, int64x1_t b) { 10902 return vsub_s64(a, b); 10903} 10904 10905// CHECK-LABEL: test_vsub_f32 10906// CHECK: vsub.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 10907float32x2_t test_vsub_f32(float32x2_t a, float32x2_t b) { 10908 return vsub_f32(a, b); 10909} 10910 10911// CHECK-LABEL: test_vsub_u8 10912// CHECK: vsub.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 10913uint8x8_t test_vsub_u8(uint8x8_t a, uint8x8_t b) { 10914 return vsub_u8(a, b); 10915} 10916 10917// CHECK-LABEL: test_vsub_u16 10918// CHECK: vsub.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 10919uint16x4_t test_vsub_u16(uint16x4_t a, uint16x4_t b) { 10920 return vsub_u16(a, b); 10921} 10922 10923// CHECK-LABEL: test_vsub_u32 10924// CHECK: vsub.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 10925uint32x2_t test_vsub_u32(uint32x2_t a, uint32x2_t b) { 10926 return vsub_u32(a, b); 10927} 10928 10929// CHECK-LABEL: test_vsub_u64 10930// CHECK: vsub.i64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 10931uint64x1_t test_vsub_u64(uint64x1_t a, uint64x1_t b) { 10932 return vsub_u64(a, b); 10933} 10934 10935// CHECK-LABEL: test_vsubq_s8 10936// CHECK: vsub.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 10937int8x16_t test_vsubq_s8(int8x16_t a, int8x16_t b) { 10938 return vsubq_s8(a, b); 10939} 10940 10941// CHECK-LABEL: test_vsubq_s16 10942// CHECK: vsub.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 10943int16x8_t test_vsubq_s16(int16x8_t a, int16x8_t b) { 10944 return vsubq_s16(a, b); 10945} 10946 10947// CHECK-LABEL: test_vsubq_s32 10948// CHECK: vsub.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 10949int32x4_t test_vsubq_s32(int32x4_t a, int32x4_t b) { 10950 return vsubq_s32(a, b); 10951} 10952 10953// CHECK-LABEL: test_vsubq_s64 10954// CHECK: vsub.i64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 10955int64x2_t test_vsubq_s64(int64x2_t a, int64x2_t b) { 10956 return vsubq_s64(a, b); 10957} 10958 10959// CHECK-LABEL: test_vsubq_f32 10960// CHECK: vsub.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 10961float32x4_t test_vsubq_f32(float32x4_t a, float32x4_t b) { 10962 return vsubq_f32(a, b); 10963} 10964 10965// CHECK-LABEL: test_vsubq_u8 10966// CHECK: vsub.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 10967uint8x16_t test_vsubq_u8(uint8x16_t a, uint8x16_t b) { 10968 return vsubq_u8(a, b); 10969} 10970 10971// CHECK-LABEL: test_vsubq_u16 10972// CHECK: vsub.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 10973uint16x8_t test_vsubq_u16(uint16x8_t a, uint16x8_t b) { 10974 return vsubq_u16(a, b); 10975} 10976 10977// CHECK-LABEL: test_vsubq_u32 10978// CHECK: vsub.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 10979uint32x4_t test_vsubq_u32(uint32x4_t a, uint32x4_t b) { 10980 return vsubq_u32(a, b); 10981} 10982 10983// CHECK-LABEL: test_vsubq_u64 10984// CHECK: vsub.i64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 10985uint64x2_t test_vsubq_u64(uint64x2_t a, uint64x2_t b) { 10986 return vsubq_u64(a, b); 10987} 10988 10989 10990// CHECK-LABEL: test_vsubhn_s16 10991// CHECK: vsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 10992int8x8_t test_vsubhn_s16(int16x8_t a, int16x8_t b) { 10993 return vsubhn_s16(a, b); 10994} 10995 10996// CHECK-LABEL: test_vsubhn_s32 10997// CHECK: vsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 10998int16x4_t test_vsubhn_s32(int32x4_t a, int32x4_t b) { 10999 return vsubhn_s32(a, b); 11000} 11001 11002// CHECK-LABEL: test_vsubhn_s64 11003// CHECK: vsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11004int32x2_t test_vsubhn_s64(int64x2_t a, int64x2_t b) { 11005 return vsubhn_s64(a, b); 11006} 11007 11008// CHECK-LABEL: test_vsubhn_u16 11009// CHECK: vsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11010uint8x8_t test_vsubhn_u16(uint16x8_t a, uint16x8_t b) { 11011 return vsubhn_u16(a, b); 11012} 11013 11014// CHECK-LABEL: test_vsubhn_u32 11015// CHECK: vsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11016uint16x4_t test_vsubhn_u32(uint32x4_t a, uint32x4_t b) { 11017 return vsubhn_u32(a, b); 11018} 11019 11020// CHECK-LABEL: test_vsubhn_u64 11021// CHECK: vsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11022uint32x2_t test_vsubhn_u64(uint64x2_t a, uint64x2_t b) { 11023 return vsubhn_u64(a, b); 11024} 11025 11026 11027// CHECK-LABEL: test_vsubl_s8 11028// CHECK: vsubl.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11029int16x8_t test_vsubl_s8(int8x8_t a, int8x8_t b) { 11030 return vsubl_s8(a, b); 11031} 11032 11033// CHECK-LABEL: test_vsubl_s16 11034// CHECK: vsubl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11035int32x4_t test_vsubl_s16(int16x4_t a, int16x4_t b) { 11036 return vsubl_s16(a, b); 11037} 11038 11039// CHECK-LABEL: test_vsubl_s32 11040// CHECK: vsubl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11041int64x2_t test_vsubl_s32(int32x2_t a, int32x2_t b) { 11042 return vsubl_s32(a, b); 11043} 11044 11045// CHECK-LABEL: test_vsubl_u8 11046// CHECK: vsubl.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11047uint16x8_t test_vsubl_u8(uint8x8_t a, uint8x8_t b) { 11048 return vsubl_u8(a, b); 11049} 11050 11051// CHECK-LABEL: test_vsubl_u16 11052// CHECK: vsubl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11053uint32x4_t test_vsubl_u16(uint16x4_t a, uint16x4_t b) { 11054 return vsubl_u16(a, b); 11055} 11056 11057// CHECK-LABEL: test_vsubl_u32 11058// CHECK: vsubl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11059uint64x2_t test_vsubl_u32(uint32x2_t a, uint32x2_t b) { 11060 return vsubl_u32(a, b); 11061} 11062 11063 11064// CHECK-LABEL: test_vsubw_s8 11065// CHECK: vsubw.s8 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}} 11066int16x8_t test_vsubw_s8(int16x8_t a, int8x8_t b) { 11067 return vsubw_s8(a, b); 11068} 11069 11070// CHECK-LABEL: test_vsubw_s16 11071// CHECK: vsubw.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}} 11072int32x4_t test_vsubw_s16(int32x4_t a, int16x4_t b) { 11073 return vsubw_s16(a, b); 11074} 11075 11076// CHECK-LABEL: test_vsubw_s32 11077// CHECK: vsubw.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}} 11078int64x2_t test_vsubw_s32(int64x2_t a, int32x2_t b) { 11079 return vsubw_s32(a, b); 11080} 11081 11082// CHECK-LABEL: test_vsubw_u8 11083// CHECK: vsubw.u8 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}} 11084uint16x8_t test_vsubw_u8(uint16x8_t a, uint8x8_t b) { 11085 return vsubw_u8(a, b); 11086} 11087 11088// CHECK-LABEL: test_vsubw_u16 11089// CHECK: vsubw.u16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}} 11090uint32x4_t test_vsubw_u16(uint32x4_t a, uint16x4_t b) { 11091 return vsubw_u16(a, b); 11092} 11093 11094// CHECK-LABEL: test_vsubw_u32 11095// CHECK: vsubw.u32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}} 11096uint64x2_t test_vsubw_u32(uint64x2_t a, uint32x2_t b) { 11097 return vsubw_u32(a, b); 11098} 11099 11100 11101// CHECK-LABEL: test_vtbl1_u8 11102// CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}} 11103uint8x8_t test_vtbl1_u8(uint8x8_t a, uint8x8_t b) { 11104 return vtbl1_u8(a, b); 11105} 11106 11107// CHECK-LABEL: test_vtbl1_s8 11108// CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}} 11109int8x8_t test_vtbl1_s8(int8x8_t a, int8x8_t b) { 11110 return vtbl1_s8(a, b); 11111} 11112 11113// CHECK-LABEL: test_vtbl1_p8 11114// CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}} 11115poly8x8_t test_vtbl1_p8(poly8x8_t a, uint8x8_t b) { 11116 return vtbl1_p8(a, b); 11117} 11118 11119 11120// CHECK-LABEL: test_vtbl2_u8 11121// CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11122uint8x8_t test_vtbl2_u8(uint8x8x2_t a, uint8x8_t b) { 11123 return vtbl2_u8(a, b); 11124} 11125 11126// CHECK-LABEL: test_vtbl2_s8 11127// CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11128int8x8_t test_vtbl2_s8(int8x8x2_t a, int8x8_t b) { 11129 return vtbl2_s8(a, b); 11130} 11131 11132// CHECK-LABEL: test_vtbl2_p8 11133// CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11134poly8x8_t test_vtbl2_p8(poly8x8x2_t a, uint8x8_t b) { 11135 return vtbl2_p8(a, b); 11136} 11137 11138 11139// CHECK-LABEL: test_vtbl3_u8 11140// CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11141uint8x8_t test_vtbl3_u8(uint8x8x3_t a, uint8x8_t b) { 11142 return vtbl3_u8(a, b); 11143} 11144 11145// CHECK-LABEL: test_vtbl3_s8 11146// CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11147int8x8_t test_vtbl3_s8(int8x8x3_t a, int8x8_t b) { 11148 return vtbl3_s8(a, b); 11149} 11150 11151// CHECK-LABEL: test_vtbl3_p8 11152// CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11153poly8x8_t test_vtbl3_p8(poly8x8x3_t a, uint8x8_t b) { 11154 return vtbl3_p8(a, b); 11155} 11156 11157 11158// CHECK-LABEL: test_vtbl4_u8 11159// CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11160uint8x8_t test_vtbl4_u8(uint8x8x4_t a, uint8x8_t b) { 11161 return vtbl4_u8(a, b); 11162} 11163 11164// CHECK-LABEL: test_vtbl4_s8 11165// CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11166int8x8_t test_vtbl4_s8(int8x8x4_t a, int8x8_t b) { 11167 return vtbl4_s8(a, b); 11168} 11169 11170// CHECK-LABEL: test_vtbl4_p8 11171// CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11172poly8x8_t test_vtbl4_p8(poly8x8x4_t a, uint8x8_t b) { 11173 return vtbl4_p8(a, b); 11174} 11175 11176 11177// CHECK-LABEL: test_vtbx1_u8 11178// CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}} 11179uint8x8_t test_vtbx1_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) { 11180 return vtbx1_u8(a, b, c); 11181} 11182 11183// CHECK-LABEL: test_vtbx1_s8 11184// CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}} 11185int8x8_t test_vtbx1_s8(int8x8_t a, int8x8_t b, int8x8_t c) { 11186 return vtbx1_s8(a, b, c); 11187} 11188 11189// CHECK-LABEL: test_vtbx1_p8 11190// CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}} 11191poly8x8_t test_vtbx1_p8(poly8x8_t a, poly8x8_t b, uint8x8_t c) { 11192 return vtbx1_p8(a, b, c); 11193} 11194 11195 11196// CHECK-LABEL: test_vtbx2_u8 11197// CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11198uint8x8_t test_vtbx2_u8(uint8x8_t a, uint8x8x2_t b, uint8x8_t c) { 11199 return vtbx2_u8(a, b, c); 11200} 11201 11202// CHECK-LABEL: test_vtbx2_s8 11203// CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11204int8x8_t test_vtbx2_s8(int8x8_t a, int8x8x2_t b, int8x8_t c) { 11205 return vtbx2_s8(a, b, c); 11206} 11207 11208// CHECK-LABEL: test_vtbx2_p8 11209// CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11210poly8x8_t test_vtbx2_p8(poly8x8_t a, poly8x8x2_t b, uint8x8_t c) { 11211 return vtbx2_p8(a, b, c); 11212} 11213 11214 11215// CHECK-LABEL: test_vtbx3_u8 11216// CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11217uint8x8_t test_vtbx3_u8(uint8x8_t a, uint8x8x3_t b, uint8x8_t c) { 11218 return vtbx3_u8(a, b, c); 11219} 11220 11221// CHECK-LABEL: test_vtbx3_s8 11222// CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11223int8x8_t test_vtbx3_s8(int8x8_t a, int8x8x3_t b, int8x8_t c) { 11224 return vtbx3_s8(a, b, c); 11225} 11226 11227// CHECK-LABEL: test_vtbx3_p8 11228// CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11229poly8x8_t test_vtbx3_p8(poly8x8_t a, poly8x8x3_t b, uint8x8_t c) { 11230 return vtbx3_p8(a, b, c); 11231} 11232 11233 11234// CHECK-LABEL: test_vtbx4_u8 11235// CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11236uint8x8_t test_vtbx4_u8(uint8x8_t a, uint8x8x4_t b, uint8x8_t c) { 11237 return vtbx4_u8(a, b, c); 11238} 11239 11240// CHECK-LABEL: test_vtbx4_s8 11241// CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11242int8x8_t test_vtbx4_s8(int8x8_t a, int8x8x4_t b, int8x8_t c) { 11243 return vtbx4_s8(a, b, c); 11244} 11245 11246// CHECK-LABEL: test_vtbx4_p8 11247// CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11248poly8x8_t test_vtbx4_p8(poly8x8_t a, poly8x8x4_t b, uint8x8_t c) { 11249 return vtbx4_p8(a, b, c); 11250} 11251 11252 11253// CHECK-LABEL: test_vtrn_s8 11254// CHECK: vtrn.8 d{{[0-9]+}}, d{{[0-9]+}} 11255int8x8x2_t test_vtrn_s8(int8x8_t a, int8x8_t b) { 11256 return vtrn_s8(a, b); 11257} 11258 11259// CHECK-LABEL: test_vtrn_s16 11260// CHECK: vtrn.16 d{{[0-9]+}}, d{{[0-9]+}} 11261int16x4x2_t test_vtrn_s16(int16x4_t a, int16x4_t b) { 11262 return vtrn_s16(a, b); 11263} 11264 11265// CHECK-LABEL: test_vtrn_s32 11266// CHECK: vtrn.32 d{{[0-9]+}}, d{{[0-9]+}} 11267int32x2x2_t test_vtrn_s32(int32x2_t a, int32x2_t b) { 11268 return vtrn_s32(a, b); 11269} 11270 11271// CHECK-LABEL: test_vtrn_u8 11272// CHECK: vtrn.8 d{{[0-9]+}}, d{{[0-9]+}} 11273uint8x8x2_t test_vtrn_u8(uint8x8_t a, uint8x8_t b) { 11274 return vtrn_u8(a, b); 11275} 11276 11277// CHECK-LABEL: test_vtrn_u16 11278// CHECK: vtrn.16 d{{[0-9]+}}, d{{[0-9]+}} 11279uint16x4x2_t test_vtrn_u16(uint16x4_t a, uint16x4_t b) { 11280 return vtrn_u16(a, b); 11281} 11282 11283// CHECK-LABEL: test_vtrn_u32 11284// CHECK: vtrn.32 d{{[0-9]+}}, d{{[0-9]+}} 11285uint32x2x2_t test_vtrn_u32(uint32x2_t a, uint32x2_t b) { 11286 return vtrn_u32(a, b); 11287} 11288 11289// CHECK-LABEL: test_vtrn_f32 11290// CHECK: vtrn.32 d{{[0-9]+}}, d{{[0-9]+}} 11291float32x2x2_t test_vtrn_f32(float32x2_t a, float32x2_t b) { 11292 return vtrn_f32(a, b); 11293} 11294 11295// CHECK-LABEL: test_vtrn_p8 11296// CHECK: vtrn.8 d{{[0-9]+}}, d{{[0-9]+}} 11297poly8x8x2_t test_vtrn_p8(poly8x8_t a, poly8x8_t b) { 11298 return vtrn_p8(a, b); 11299} 11300 11301// CHECK-LABEL: test_vtrn_p16 11302// CHECK: vtrn.16 d{{[0-9]+}}, d{{[0-9]+}} 11303poly16x4x2_t test_vtrn_p16(poly16x4_t a, poly16x4_t b) { 11304 return vtrn_p16(a, b); 11305} 11306 11307// CHECK-LABEL: test_vtrnq_s8 11308// CHECK: vtrn.8 q{{[0-9]+}}, q{{[0-9]+}} 11309int8x16x2_t test_vtrnq_s8(int8x16_t a, int8x16_t b) { 11310 return vtrnq_s8(a, b); 11311} 11312 11313// CHECK-LABEL: test_vtrnq_s16 11314// CHECK: vtrn.16 q{{[0-9]+}}, q{{[0-9]+}} 11315int16x8x2_t test_vtrnq_s16(int16x8_t a, int16x8_t b) { 11316 return vtrnq_s16(a, b); 11317} 11318 11319// CHECK-LABEL: test_vtrnq_s32 11320// CHECK: vtrn.32 q{{[0-9]+}}, q{{[0-9]+}} 11321int32x4x2_t test_vtrnq_s32(int32x4_t a, int32x4_t b) { 11322 return vtrnq_s32(a, b); 11323} 11324 11325// CHECK-LABEL: test_vtrnq_u8 11326// CHECK: vtrn.8 q{{[0-9]+}}, q{{[0-9]+}} 11327uint8x16x2_t test_vtrnq_u8(uint8x16_t a, uint8x16_t b) { 11328 return vtrnq_u8(a, b); 11329} 11330 11331// CHECK-LABEL: test_vtrnq_u16 11332// CHECK: vtrn.16 q{{[0-9]+}}, q{{[0-9]+}} 11333uint16x8x2_t test_vtrnq_u16(uint16x8_t a, uint16x8_t b) { 11334 return vtrnq_u16(a, b); 11335} 11336 11337// CHECK-LABEL: test_vtrnq_u32 11338// CHECK: vtrn.32 q{{[0-9]+}}, q{{[0-9]+}} 11339uint32x4x2_t test_vtrnq_u32(uint32x4_t a, uint32x4_t b) { 11340 return vtrnq_u32(a, b); 11341} 11342 11343// CHECK-LABEL: test_vtrnq_f32 11344// CHECK: vtrn.32 q{{[0-9]+}}, q{{[0-9]+}} 11345float32x4x2_t test_vtrnq_f32(float32x4_t a, float32x4_t b) { 11346 return vtrnq_f32(a, b); 11347} 11348 11349// CHECK-LABEL: test_vtrnq_p8 11350// CHECK: vtrn.8 q{{[0-9]+}}, q{{[0-9]+}} 11351poly8x16x2_t test_vtrnq_p8(poly8x16_t a, poly8x16_t b) { 11352 return vtrnq_p8(a, b); 11353} 11354 11355// CHECK-LABEL: test_vtrnq_p16 11356// CHECK: vtrn.16 q{{[0-9]+}}, q{{[0-9]+}} 11357poly16x8x2_t test_vtrnq_p16(poly16x8_t a, poly16x8_t b) { 11358 return vtrnq_p16(a, b); 11359} 11360 11361 11362// CHECK-LABEL: test_vtst_s8 11363// CHECK: vtst.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11364uint8x8_t test_vtst_s8(int8x8_t a, int8x8_t b) { 11365 return vtst_s8(a, b); 11366} 11367 11368// CHECK-LABEL: test_vtst_s16 11369// CHECK: vtst.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11370uint16x4_t test_vtst_s16(int16x4_t a, int16x4_t b) { 11371 return vtst_s16(a, b); 11372} 11373 11374// CHECK-LABEL: test_vtst_s32 11375// CHECK: vtst.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11376uint32x2_t test_vtst_s32(int32x2_t a, int32x2_t b) { 11377 return vtst_s32(a, b); 11378} 11379 11380// CHECK-LABEL: test_vtst_u8 11381// CHECK: vtst.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11382uint8x8_t test_vtst_u8(uint8x8_t a, uint8x8_t b) { 11383 return vtst_u8(a, b); 11384} 11385 11386// CHECK-LABEL: test_vtst_u16 11387// CHECK: vtst.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11388uint16x4_t test_vtst_u16(uint16x4_t a, uint16x4_t b) { 11389 return vtst_u16(a, b); 11390} 11391 11392// CHECK-LABEL: test_vtst_u32 11393// CHECK: vtst.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11394uint32x2_t test_vtst_u32(uint32x2_t a, uint32x2_t b) { 11395 return vtst_u32(a, b); 11396} 11397 11398// CHECK-LABEL: test_vtst_p8 11399// CHECK: vtst.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11400uint8x8_t test_vtst_p8(poly8x8_t a, poly8x8_t b) { 11401 return vtst_p8(a, b); 11402} 11403 11404// CHECK-LABEL: test_vtst_p16 11405// CHECK: vtst.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11406uint16x4_t test_vtst_p16(poly16x4_t a, poly16x4_t b) { 11407 return vtst_p16(a, b); 11408} 11409 11410// CHECK-LABEL: test_vtstq_s8 11411// CHECK: vtst.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11412uint8x16_t test_vtstq_s8(int8x16_t a, int8x16_t b) { 11413 return vtstq_s8(a, b); 11414} 11415 11416// CHECK-LABEL: test_vtstq_s16 11417// CHECK: vtst.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11418uint16x8_t test_vtstq_s16(int16x8_t a, int16x8_t b) { 11419 return vtstq_s16(a, b); 11420} 11421 11422// CHECK-LABEL: test_vtstq_s32 11423// CHECK: vtst.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11424uint32x4_t test_vtstq_s32(int32x4_t a, int32x4_t b) { 11425 return vtstq_s32(a, b); 11426} 11427 11428// CHECK-LABEL: test_vtstq_u8 11429// CHECK: vtst.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11430uint8x16_t test_vtstq_u8(uint8x16_t a, uint8x16_t b) { 11431 return vtstq_u8(a, b); 11432} 11433 11434// CHECK-LABEL: test_vtstq_u16 11435// CHECK: vtst.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11436uint16x8_t test_vtstq_u16(uint16x8_t a, uint16x8_t b) { 11437 return vtstq_u16(a, b); 11438} 11439 11440// CHECK-LABEL: test_vtstq_u32 11441// CHECK: vtst.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11442uint32x4_t test_vtstq_u32(uint32x4_t a, uint32x4_t b) { 11443 return vtstq_u32(a, b); 11444} 11445 11446// CHECK-LABEL: test_vtstq_p8 11447// CHECK: vtst.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11448uint8x16_t test_vtstq_p8(poly8x16_t a, poly8x16_t b) { 11449 return vtstq_p8(a, b); 11450} 11451 11452// CHECK-LABEL: test_vtstq_p16 11453// CHECK: vtst.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11454uint16x8_t test_vtstq_p16(poly16x8_t a, poly16x8_t b) { 11455 return vtstq_p16(a, b); 11456} 11457 11458 11459// CHECK-LABEL: test_vuzp_s8 11460// CHECK: vuzp.8 d{{[0-9]+}}, d{{[0-9]+}} 11461int8x8x2_t test_vuzp_s8(int8x8_t a, int8x8_t b) { 11462 return vuzp_s8(a, b); 11463} 11464 11465// CHECK-LABEL: test_vuzp_s16 11466// CHECK: vuzp.16 d{{[0-9]+}}, d{{[0-9]+}} 11467int16x4x2_t test_vuzp_s16(int16x4_t a, int16x4_t b) { 11468 return vuzp_s16(a, b); 11469} 11470 11471// CHECK-LABEL: test_vuzp_s32 11472// CHECK: {{vtrn|vuzp}}.32 d{{[0-9]+}}, d{{[0-9]+}} 11473int32x2x2_t test_vuzp_s32(int32x2_t a, int32x2_t b) { 11474 return vuzp_s32(a, b); 11475} 11476 11477// CHECK-LABEL: test_vuzp_u8 11478// CHECK: vuzp.8 d{{[0-9]+}}, d{{[0-9]+}} 11479uint8x8x2_t test_vuzp_u8(uint8x8_t a, uint8x8_t b) { 11480 return vuzp_u8(a, b); 11481} 11482 11483// CHECK-LABEL: test_vuzp_u16 11484// CHECK: vuzp.16 d{{[0-9]+}}, d{{[0-9]+}} 11485uint16x4x2_t test_vuzp_u16(uint16x4_t a, uint16x4_t b) { 11486 return vuzp_u16(a, b); 11487} 11488 11489// CHECK-LABEL: test_vuzp_u32 11490// CHECK: {{vtrn|vuzp}}.32 d{{[0-9]+}}, d{{[0-9]+}} 11491uint32x2x2_t test_vuzp_u32(uint32x2_t a, uint32x2_t b) { 11492 return vuzp_u32(a, b); 11493} 11494 11495// CHECK-LABEL: test_vuzp_f32 11496// CHECK: {{vtrn|vuzp}}.32 d{{[0-9]+}}, d{{[0-9]+}} 11497float32x2x2_t test_vuzp_f32(float32x2_t a, float32x2_t b) { 11498 return vuzp_f32(a, b); 11499} 11500 11501// CHECK-LABEL: test_vuzp_p8 11502// CHECK: vuzp.8 d{{[0-9]+}}, d{{[0-9]+}} 11503poly8x8x2_t test_vuzp_p8(poly8x8_t a, poly8x8_t b) { 11504 return vuzp_p8(a, b); 11505} 11506 11507// CHECK-LABEL: test_vuzp_p16 11508// CHECK: vuzp.16 d{{[0-9]+}}, d{{[0-9]+}} 11509poly16x4x2_t test_vuzp_p16(poly16x4_t a, poly16x4_t b) { 11510 return vuzp_p16(a, b); 11511} 11512 11513// CHECK-LABEL: test_vuzpq_s8 11514// CHECK: vuzp.8 q{{[0-9]+}}, q{{[0-9]+}} 11515int8x16x2_t test_vuzpq_s8(int8x16_t a, int8x16_t b) { 11516 return vuzpq_s8(a, b); 11517} 11518 11519// CHECK-LABEL: test_vuzpq_s16 11520// CHECK: vuzp.16 q{{[0-9]+}}, q{{[0-9]+}} 11521int16x8x2_t test_vuzpq_s16(int16x8_t a, int16x8_t b) { 11522 return vuzpq_s16(a, b); 11523} 11524 11525// CHECK-LABEL: test_vuzpq_s32 11526// CHECK: {{vtrn|vuzp}}.32 q{{[0-9]+}}, q{{[0-9]+}} 11527int32x4x2_t test_vuzpq_s32(int32x4_t a, int32x4_t b) { 11528 return vuzpq_s32(a, b); 11529} 11530 11531// CHECK-LABEL: test_vuzpq_u8 11532// CHECK: vuzp.8 q{{[0-9]+}}, q{{[0-9]+}} 11533uint8x16x2_t test_vuzpq_u8(uint8x16_t a, uint8x16_t b) { 11534 return vuzpq_u8(a, b); 11535} 11536 11537// CHECK-LABEL: test_vuzpq_u16 11538// CHECK: vuzp.16 q{{[0-9]+}}, q{{[0-9]+}} 11539uint16x8x2_t test_vuzpq_u16(uint16x8_t a, uint16x8_t b) { 11540 return vuzpq_u16(a, b); 11541} 11542 11543// CHECK-LABEL: test_vuzpq_u32 11544// CHECK: {{vtrn|vuzp}}.32 q{{[0-9]+}}, q{{[0-9]+}} 11545uint32x4x2_t test_vuzpq_u32(uint32x4_t a, uint32x4_t b) { 11546 return vuzpq_u32(a, b); 11547} 11548 11549// CHECK-LABEL: test_vuzpq_f32 11550// CHECK: {{vtrn|vuzp}}.32 q{{[0-9]+}}, q{{[0-9]+}} 11551float32x4x2_t test_vuzpq_f32(float32x4_t a, float32x4_t b) { 11552 return vuzpq_f32(a, b); 11553} 11554 11555// CHECK-LABEL: test_vuzpq_p8 11556// CHECK: vuzp.8 q{{[0-9]+}}, q{{[0-9]+}} 11557poly8x16x2_t test_vuzpq_p8(poly8x16_t a, poly8x16_t b) { 11558 return vuzpq_p8(a, b); 11559} 11560 11561// CHECK-LABEL: test_vuzpq_p16 11562// CHECK: vuzp.16 q{{[0-9]+}}, q{{[0-9]+}} 11563poly16x8x2_t test_vuzpq_p16(poly16x8_t a, poly16x8_t b) { 11564 return vuzpq_p16(a, b); 11565} 11566 11567 11568// CHECK-LABEL: test_vzip_s8 11569// CHECK: vzip.8 d{{[0-9]+}}, d{{[0-9]+}} 11570int8x8x2_t test_vzip_s8(int8x8_t a, int8x8_t b) { 11571 return vzip_s8(a, b); 11572} 11573 11574// CHECK-LABEL: test_vzip_s16 11575// CHECK: vzip.16 d{{[0-9]+}}, d{{[0-9]+}} 11576int16x4x2_t test_vzip_s16(int16x4_t a, int16x4_t b) { 11577 return vzip_s16(a, b); 11578} 11579 11580// CHECK-LABEL: test_vzip_s32 11581// CHECK: {{vtrn|vzip}}.32 d{{[0-9]+}}, d{{[0-9]+}} 11582int32x2x2_t test_vzip_s32(int32x2_t a, int32x2_t b) { 11583 return vzip_s32(a, b); 11584} 11585 11586// CHECK-LABEL: test_vzip_u8 11587// CHECK: vzip.8 d{{[0-9]+}}, d{{[0-9]+}} 11588uint8x8x2_t test_vzip_u8(uint8x8_t a, uint8x8_t b) { 11589 return vzip_u8(a, b); 11590} 11591 11592// CHECK-LABEL: test_vzip_u16 11593// CHECK: vzip.16 d{{[0-9]+}}, d{{[0-9]+}} 11594uint16x4x2_t test_vzip_u16(uint16x4_t a, uint16x4_t b) { 11595 return vzip_u16(a, b); 11596} 11597 11598// CHECK-LABEL: test_vzip_u32 11599// CHECK: {{vtrn|vzip}}.32 d{{[0-9]+}}, d{{[0-9]+}} 11600uint32x2x2_t test_vzip_u32(uint32x2_t a, uint32x2_t b) { 11601 return vzip_u32(a, b); 11602} 11603 11604// CHECK-LABEL: test_vzip_f32 11605// CHECK: {{vtrn|vzip}}.32 d{{[0-9]+}}, d{{[0-9]+}} 11606float32x2x2_t test_vzip_f32(float32x2_t a, float32x2_t b) { 11607 return vzip_f32(a, b); 11608} 11609 11610// CHECK-LABEL: test_vzip_p8 11611// CHECK: vzip.8 d{{[0-9]+}}, d{{[0-9]+}} 11612poly8x8x2_t test_vzip_p8(poly8x8_t a, poly8x8_t b) { 11613 return vzip_p8(a, b); 11614} 11615 11616// CHECK-LABEL: test_vzip_p16 11617// CHECK: vzip.16 d{{[0-9]+}}, d{{[0-9]+}} 11618poly16x4x2_t test_vzip_p16(poly16x4_t a, poly16x4_t b) { 11619 return vzip_p16(a, b); 11620} 11621 11622// CHECK-LABEL: test_vzipq_s8 11623// CHECK: vzip.8 q{{[0-9]+}}, q{{[0-9]+}} 11624int8x16x2_t test_vzipq_s8(int8x16_t a, int8x16_t b) { 11625 return vzipq_s8(a, b); 11626} 11627 11628// CHECK-LABEL: test_vzipq_s16 11629// CHECK: vzip.16 q{{[0-9]+}}, q{{[0-9]+}} 11630int16x8x2_t test_vzipq_s16(int16x8_t a, int16x8_t b) { 11631 return vzipq_s16(a, b); 11632} 11633 11634// CHECK-LABEL: test_vzipq_s32 11635// CHECK: {{vtrn|vzip}}.32 q{{[0-9]+}}, q{{[0-9]+}} 11636int32x4x2_t test_vzipq_s32(int32x4_t a, int32x4_t b) { 11637 return vzipq_s32(a, b); 11638} 11639 11640// CHECK-LABEL: test_vzipq_u8 11641// CHECK: vzip.8 q{{[0-9]+}}, q{{[0-9]+}} 11642uint8x16x2_t test_vzipq_u8(uint8x16_t a, uint8x16_t b) { 11643 return vzipq_u8(a, b); 11644} 11645 11646// CHECK-LABEL: test_vzipq_u16 11647// CHECK: vzip.16 q{{[0-9]+}}, q{{[0-9]+}} 11648uint16x8x2_t test_vzipq_u16(uint16x8_t a, uint16x8_t b) { 11649 return vzipq_u16(a, b); 11650} 11651 11652// CHECK-LABEL: test_vzipq_u32 11653// CHECK: {{vtrn|vzip}}.32 q{{[0-9]+}}, q{{[0-9]+}} 11654uint32x4x2_t test_vzipq_u32(uint32x4_t a, uint32x4_t b) { 11655 return vzipq_u32(a, b); 11656} 11657 11658// CHECK-LABEL: test_vzipq_f32 11659// CHECK: {{vtrn|vzip}}.32 q{{[0-9]+}}, q{{[0-9]+}} 11660float32x4x2_t test_vzipq_f32(float32x4_t a, float32x4_t b) { 11661 return vzipq_f32(a, b); 11662} 11663 11664// CHECK-LABEL: test_vzipq_p8 11665// CHECK: vzip.8 q{{[0-9]+}}, q{{[0-9]+}} 11666poly8x16x2_t test_vzipq_p8(poly8x16_t a, poly8x16_t b) { 11667 return vzipq_p8(a, b); 11668} 11669 11670// CHECK-LABEL: test_vzipq_p16 11671// CHECK: vzip.16 q{{[0-9]+}}, q{{[0-9]+}} 11672poly16x8x2_t test_vzipq_p16(poly16x8_t a, poly16x8_t b) { 11673 return vzipq_p16(a, b); 11674} 11675 11676 11677