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 1477// CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}} 1478// CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}} 1479int8x16_t test_vcombine_s8(int8x8_t a, int8x8_t b) { 1480 return vcombine_s8(a, b); 1481} 1482 1483// CHECK-LABEL: test_vcombine_s16 1484// CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}} 1485// CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}} 1486int16x8_t test_vcombine_s16(int16x4_t a, int16x4_t b) { 1487 return vcombine_s16(a, b); 1488} 1489 1490// CHECK-LABEL: test_vcombine_s32 1491// CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}} 1492// CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}} 1493int32x4_t test_vcombine_s32(int32x2_t a, int32x2_t b) { 1494 return vcombine_s32(a, b); 1495} 1496 1497// CHECK-LABEL: test_vcombine_s64 1498// CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}} 1499// CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}} 1500int64x2_t test_vcombine_s64(int64x1_t a, int64x1_t b) { 1501 return vcombine_s64(a, b); 1502} 1503 1504// CHECK-LABEL: test_vcombine_f16 1505// CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}} 1506// CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}} 1507float16x8_t test_vcombine_f16(float16x4_t a, float16x4_t b) { 1508 return vcombine_f16(a, b); 1509} 1510 1511// CHECK-LABEL: test_vcombine_f32 1512// CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}} 1513// CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}} 1514float32x4_t test_vcombine_f32(float32x2_t a, float32x2_t b) { 1515 return vcombine_f32(a, b); 1516} 1517 1518// CHECK-LABEL: test_vcombine_u8 1519// CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}} 1520// CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}} 1521uint8x16_t test_vcombine_u8(uint8x8_t a, uint8x8_t b) { 1522 return vcombine_u8(a, b); 1523} 1524 1525// CHECK-LABEL: test_vcombine_u16 1526// CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}} 1527// CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}} 1528uint16x8_t test_vcombine_u16(uint16x4_t a, uint16x4_t b) { 1529 return vcombine_u16(a, b); 1530} 1531 1532// CHECK-LABEL: test_vcombine_u32 1533// CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}} 1534// CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}} 1535uint32x4_t test_vcombine_u32(uint32x2_t a, uint32x2_t b) { 1536 return vcombine_u32(a, b); 1537} 1538 1539// CHECK-LABEL: test_vcombine_u64 1540// CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}} 1541// CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}} 1542uint64x2_t test_vcombine_u64(uint64x1_t a, uint64x1_t b) { 1543 return vcombine_u64(a, b); 1544} 1545 1546// CHECK-LABEL: test_vcombine_p8 1547// CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}} 1548// CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}} 1549poly8x16_t test_vcombine_p8(poly8x8_t a, poly8x8_t b) { 1550 return vcombine_p8(a, b); 1551} 1552 1553// CHECK-LABEL: test_vcombine_p16 1554// CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}} 1555// CHECK: vmov d{{[0-9]+}}, r{{[0-9]+}}, r{{[0-9]+}} 1556poly16x8_t test_vcombine_p16(poly16x4_t a, poly16x4_t b) { 1557 return vcombine_p16(a, b); 1558} 1559 1560 1561// CHECK-LABEL: test_vcreate_s8 1562// CHECK: vmov [[REG:d[0-9]+]], r0, r1 1563// CHECK: vclz.i8 d{{[0-9]+}}, [[REG]] 1564int8x8_t test_vcreate_s8(uint64_t a) { 1565 return vclz_s8(vcreate_s8(a)); 1566} 1567 1568// CHECK-LABEL: test_vcreate_s16 1569// CHECK: vmov [[REG:d[0-9]+]], r0, r1 1570// CHECK: vclz.i16 d{{[0-9]+}}, [[REG]] 1571int16x4_t test_vcreate_s16(uint64_t a) { 1572 return vclz_s16(vcreate_s16(a)); 1573} 1574 1575// CHECK-LABEL: test_vcreate_s32 1576// CHECK: vmov [[REG:d[0-9]+]], r0, r1 1577// CHECK: vclz.i32 d{{[0-9]+}}, [[REG]] 1578int32x2_t test_vcreate_s32(uint64_t a) { 1579 return vclz_s32(vcreate_s32(a)); 1580} 1581 1582// CHECK-LABEL: test_vcreate_f16 1583float16x4_t test_vcreate_f16(uint64_t a) { 1584 return vcreate_f16(a); 1585} 1586 1587// CHECK-LABEL: test_vcreate_f32 1588float32x2_t test_vcreate_f32(uint64_t a) { 1589 return vcreate_f32(a); 1590} 1591 1592// CHECK-LABEL: test_vcreate_u8 1593// CHECK: vmov [[REG:d[0-9]+]], r0, r1 1594// CHECK: vclz.i8 d{{[0-9]+}}, [[REG]] 1595uint8x8_t test_vcreate_u8(uint64_t a) { 1596 return vclz_s8(vcreate_u8(a)); 1597} 1598 1599// CHECK-LABEL: test_vcreate_u16 1600// CHECK: vmov [[REG:d[0-9]+]], r0, r1 1601// CHECK: vclz.i16 d{{[0-9]+}}, [[REG]] 1602uint16x4_t test_vcreate_u16(uint64_t a) { 1603 return vclz_s16(vcreate_u16(a)); 1604} 1605 1606// CHECK-LABEL: test_vcreate_u32 1607// CHECK: vmov [[REG:d[0-9]+]], r0, r1 1608// CHECK: vclz.i32 d{{[0-9]+}}, [[REG]] 1609uint32x2_t test_vcreate_u32(uint64_t a) { 1610 return vclz_s32(vcreate_u32(a)); 1611} 1612 1613 1614// We have two ways of lowering that. Either with one 'vmov d, r, r' or 1615// with two 'vmov d[],r'. LLVM does the latter. We may want to be less 1616// strict about the matching pattern if it starts causing problem. 1617// CHECK-LABEL: test_vcreate_u64 1618// CHECK: vmov.32 [[REG:d[0-9]+]][0], r0 1619// CHECK: vmov.32 [[REG]][1], r1 1620uint64x1_t test_vcreate_u64(uint64_t a) { 1621 uint64x1_t tmp = vcreate_u64(a); 1622 return vadd_u64(tmp, tmp); 1623 1624} 1625 1626// CHECK-LABEL: test_vcreate_p8 1627// CHECK: vmov [[REG:d[0-9]+]], r0, r1 1628// CHECK: vcnt.8 d{{[0-9]+}}, [[REG]] 1629poly8x8_t test_vcreate_p8(uint64_t a) { 1630 return vcnt_p8(vcreate_p8(a)); 1631} 1632 1633// CHECK-LABEL: test_vcreate_p16 1634// CHECK: vmov [[REG:d[0-9]+]], r0, r1 1635poly16x4_t test_vcreate_p16(uint64_t a) { 1636 poly16x4_t tmp = vcreate_p16(a); 1637 return vbsl_p16(tmp, tmp, tmp); 1638} 1639 1640// CHECK-LABEL: test_vcreate_s64 1641// CHECK: vmov.32 [[REG:d[0-9]+]][0], r0 1642// CHECK: vmov.32 [[REG]][1], r1 1643int64x1_t test_vcreate_s64(uint64_t a) { 1644 int64x1_t tmp = vcreate_s64(a); 1645 return vadd_s64(tmp, tmp); 1646} 1647 1648 1649// CHECK-LABEL: test_vcvt_f16_f32 1650// CHECK: vcvt.f16.f32 d{{[0-9]+}}, q{{[0-9]+}} 1651float16x4_t test_vcvt_f16_f32(float32x4_t a) { 1652 return vcvt_f16_f32(a); 1653} 1654 1655 1656// CHECK-LABEL: test_vcvt_f32_s32 1657// CHECK: vcvt.f32.s32 d{{[0-9]+}}, d{{[0-9]+}} 1658float32x2_t test_vcvt_f32_s32(int32x2_t a) { 1659 return vcvt_f32_s32(a); 1660} 1661 1662// CHECK-LABEL: test_vcvt_f32_u32 1663// CHECK: vcvt.f32.u32 d{{[0-9]+}}, d{{[0-9]+}} 1664float32x2_t test_vcvt_f32_u32(uint32x2_t a) { 1665 return vcvt_f32_u32(a); 1666} 1667 1668// CHECK-LABEL: test_vcvtq_f32_s32 1669// CHECK: vcvt.f32.s32 q{{[0-9]+}}, q{{[0-9]+}} 1670float32x4_t test_vcvtq_f32_s32(int32x4_t a) { 1671 return vcvtq_f32_s32(a); 1672} 1673 1674// CHECK-LABEL: test_vcvtq_f32_u32 1675// CHECK: vcvt.f32.u32 q{{[0-9]+}}, q{{[0-9]+}} 1676float32x4_t test_vcvtq_f32_u32(uint32x4_t a) { 1677 return vcvtq_f32_u32(a); 1678} 1679 1680 1681// CHECK-LABEL: test_vcvt_f32_f16 1682// CHECK: vcvt.f32.f16 1683float32x4_t test_vcvt_f32_f16(float16x4_t a) { 1684 return vcvt_f32_f16(a); 1685} 1686 1687 1688// CHECK-LABEL: test_vcvt_n_f32_s32 1689// CHECK: vcvt.f32.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 1690float32x2_t test_vcvt_n_f32_s32(int32x2_t a) { 1691 return vcvt_n_f32_s32(a, 1); 1692} 1693 1694// CHECK-LABEL: test_vcvt_n_f32_u32 1695// CHECK: vcvt.f32.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 1696float32x2_t test_vcvt_n_f32_u32(uint32x2_t a) { 1697 return vcvt_n_f32_u32(a, 1); 1698} 1699 1700// CHECK-LABEL: test_vcvtq_n_f32_s32 1701// CHECK: vcvt.f32.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 1702float32x4_t test_vcvtq_n_f32_s32(int32x4_t a) { 1703 return vcvtq_n_f32_s32(a, 3); 1704} 1705 1706// CHECK-LABEL: test_vcvtq_n_f32_u32 1707// CHECK: vcvt.f32.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 1708float32x4_t test_vcvtq_n_f32_u32(uint32x4_t a) { 1709 return vcvtq_n_f32_u32(a, 3); 1710} 1711 1712 1713// CHECK-LABEL: test_vcvt_n_s32_f32 1714// CHECK: vcvt.s32.f32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 1715int32x2_t test_vcvt_n_s32_f32(float32x2_t a) { 1716 return vcvt_n_s32_f32(a, 1); 1717} 1718 1719// CHECK-LABEL: test_vcvtq_n_s32_f32 1720// CHECK: vcvt.s32.f32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 1721int32x4_t test_vcvtq_n_s32_f32(float32x4_t a) { 1722 return vcvtq_n_s32_f32(a, 3); 1723} 1724 1725 1726// CHECK-LABEL: test_vcvt_n_u32_f32 1727// CHECK: vcvt.u32.f32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 1728uint32x2_t test_vcvt_n_u32_f32(float32x2_t a) { 1729 return vcvt_n_u32_f32(a, 1); 1730} 1731 1732// CHECK-LABEL: test_vcvtq_n_u32_f32 1733// CHECK: vcvt.u32.f32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 1734uint32x4_t test_vcvtq_n_u32_f32(float32x4_t a) { 1735 return vcvtq_n_u32_f32(a, 3); 1736} 1737 1738 1739// CHECK-LABEL: test_vcvt_s32_f32 1740// CHECK: vcvt.s32.f32 d{{[0-9]+}}, d{{[0-9]+}} 1741int32x2_t test_vcvt_s32_f32(float32x2_t a) { 1742 return vcvt_s32_f32(a); 1743} 1744 1745// CHECK-LABEL: test_vcvtq_s32_f32 1746// CHECK: vcvt.s32.f32 q{{[0-9]+}}, q{{[0-9]+}} 1747int32x4_t test_vcvtq_s32_f32(float32x4_t a) { 1748 return vcvtq_s32_f32(a); 1749} 1750 1751 1752// CHECK-LABEL: test_vcvt_u32_f32 1753// CHECK: vcvt.u32.f32 d{{[0-9]+}}, d{{[0-9]+}} 1754uint32x2_t test_vcvt_u32_f32(float32x2_t a) { 1755 return vcvt_u32_f32(a); 1756} 1757 1758// CHECK-LABEL: test_vcvtq_u32_f32 1759// CHECK: vcvt.u32.f32 q{{[0-9]+}}, q{{[0-9]+}} 1760uint32x4_t test_vcvtq_u32_f32(float32x4_t a) { 1761 return vcvtq_u32_f32(a); 1762} 1763 1764 1765// CHECK-LABEL: test_vdup_lane_u8 1766// CHECK: vdup.8 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1767uint8x8_t test_vdup_lane_u8(uint8x8_t a) { 1768 return vdup_lane_u8(a, 7); 1769} 1770 1771// CHECK-LABEL: test_vdup_lane_u16 1772// CHECK: vdup.16 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1773uint16x4_t test_vdup_lane_u16(uint16x4_t a) { 1774 return vdup_lane_u16(a, 3); 1775} 1776 1777// CHECK-LABEL: test_vdup_lane_u32 1778// CHECK: vdup.32 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1779uint32x2_t test_vdup_lane_u32(uint32x2_t a) { 1780 return vdup_lane_u32(a, 1); 1781} 1782 1783// CHECK-LABEL: test_vdup_lane_s8 1784// CHECK: vdup.8 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1785int8x8_t test_vdup_lane_s8(int8x8_t a) { 1786 return vdup_lane_s8(a, 7); 1787} 1788 1789// CHECK-LABEL: test_vdup_lane_s16 1790// CHECK: vdup.16 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1791int16x4_t test_vdup_lane_s16(int16x4_t a) { 1792 return vdup_lane_s16(a, 3); 1793} 1794 1795// CHECK-LABEL: test_vdup_lane_s32 1796// CHECK: vdup.32 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1797int32x2_t test_vdup_lane_s32(int32x2_t a) { 1798 return vdup_lane_s32(a, 1); 1799} 1800 1801// CHECK-LABEL: test_vdup_lane_p8 1802// CHECK: vdup.8 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1803poly8x8_t test_vdup_lane_p8(poly8x8_t a) { 1804 return vdup_lane_p8(a, 7); 1805} 1806 1807// CHECK-LABEL: test_vdup_lane_p16 1808// CHECK: vdup.16 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1809poly16x4_t test_vdup_lane_p16(poly16x4_t a) { 1810 return vdup_lane_p16(a, 3); 1811} 1812 1813// CHECK-LABEL: test_vdup_lane_f32 1814// CHECK: vdup.32 d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1815float32x2_t test_vdup_lane_f32(float32x2_t a) { 1816 return vdup_lane_f32(a, 1); 1817} 1818 1819// CHECK-LABEL: test_vdupq_lane_u8 1820// CHECK: vdup.8 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1821uint8x16_t test_vdupq_lane_u8(uint8x8_t a) { 1822 return vdupq_lane_u8(a, 7); 1823} 1824 1825// CHECK-LABEL: test_vdupq_lane_u16 1826// CHECK: vdup.16 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1827uint16x8_t test_vdupq_lane_u16(uint16x4_t a) { 1828 return vdupq_lane_u16(a, 3); 1829} 1830 1831// CHECK-LABEL: test_vdupq_lane_u32 1832// CHECK: vdup.32 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1833uint32x4_t test_vdupq_lane_u32(uint32x2_t a) { 1834 return vdupq_lane_u32(a, 1); 1835} 1836 1837// CHECK-LABEL: test_vdupq_lane_s8 1838// CHECK: vdup.8 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1839int8x16_t test_vdupq_lane_s8(int8x8_t a) { 1840 return vdupq_lane_s8(a, 7); 1841} 1842 1843// CHECK-LABEL: test_vdupq_lane_s16 1844// CHECK: vdup.16 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1845int16x8_t test_vdupq_lane_s16(int16x4_t a) { 1846 return vdupq_lane_s16(a, 3); 1847} 1848 1849// CHECK-LABEL: test_vdupq_lane_s32 1850// CHECK: vdup.32 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1851int32x4_t test_vdupq_lane_s32(int32x2_t a) { 1852 return vdupq_lane_s32(a, 1); 1853} 1854 1855// CHECK-LABEL: test_vdupq_lane_p8 1856// CHECK: vdup.8 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1857poly8x16_t test_vdupq_lane_p8(poly8x8_t a) { 1858 return vdupq_lane_p8(a, 7); 1859} 1860 1861// CHECK-LABEL: test_vdupq_lane_p16 1862// CHECK: vdup.16 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1863poly16x8_t test_vdupq_lane_p16(poly16x4_t a) { 1864 return vdupq_lane_p16(a, 3); 1865} 1866 1867// CHECK-LABEL: test_vdupq_lane_f32 1868// CHECK: vdup.32 q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 1869float32x4_t test_vdupq_lane_f32(float32x2_t a) { 1870 return vdupq_lane_f32(a, 1); 1871} 1872 1873// CHECK-LABEL: test_vdup_lane_s64 1874int64x1_t test_vdup_lane_s64(int64x1_t a) { 1875 return vdup_lane_s64(a, 0); 1876} 1877 1878// CHECK-LABEL: test_vdup_lane_u64 1879uint64x1_t test_vdup_lane_u64(uint64x1_t a) { 1880 return vdup_lane_u64(a, 0); 1881} 1882 1883// CHECK-LABEL: test_vdupq_lane_s64 1884// CHECK: {{vmov|vdup}} 1885int64x2_t test_vdupq_lane_s64(int64x1_t a) { 1886 return vdupq_lane_s64(a, 0); 1887} 1888 1889// CHECK-LABEL: test_vdupq_lane_u64 1890// CHECK: {{vmov|vdup}} 1891uint64x2_t test_vdupq_lane_u64(uint64x1_t a) { 1892 return vdupq_lane_u64(a, 0); 1893} 1894 1895 1896// CHECK-LABEL: test_vdup_n_u8 1897// CHECK: vmov 1898uint8x8_t test_vdup_n_u8(uint8_t a) { 1899 return vdup_n_u8(a); 1900} 1901 1902// CHECK-LABEL: test_vdup_n_u16 1903// CHECK: vmov 1904uint16x4_t test_vdup_n_u16(uint16_t a) { 1905 return vdup_n_u16(a); 1906} 1907 1908// CHECK-LABEL: test_vdup_n_u32 1909// CHECK: mov 1910uint32x2_t test_vdup_n_u32(uint32_t a) { 1911 return vdup_n_u32(a); 1912} 1913 1914// CHECK-LABEL: test_vdup_n_s8 1915// CHECK: vmov 1916int8x8_t test_vdup_n_s8(int8_t a) { 1917 return vdup_n_s8(a); 1918} 1919 1920// CHECK-LABEL: test_vdup_n_s16 1921// CHECK: vmov 1922int16x4_t test_vdup_n_s16(int16_t a) { 1923 return vdup_n_s16(a); 1924} 1925 1926// CHECK-LABEL: test_vdup_n_s32 1927// CHECK: mov 1928int32x2_t test_vdup_n_s32(int32_t a) { 1929 return vdup_n_s32(a); 1930} 1931 1932// CHECK-LABEL: test_vdup_n_p8 1933// CHECK: vmov 1934poly8x8_t test_vdup_n_p8(poly8_t a) { 1935 return vdup_n_p8(a); 1936} 1937 1938// CHECK-LABEL: test_vdup_n_p16 1939// CHECK: vmov 1940poly16x4_t test_vdup_n_p16(poly16_t a) { 1941 return vdup_n_p16(a); 1942} 1943 1944// CHECK-LABEL: test_vdup_n_f16 1945// CHECK: vld1.16 {{{d[0-9]+\[\]}}} 1946float16x4_t test_vdup_n_f16(float16_t *a) { 1947 return vdup_n_f16(*a); 1948} 1949 1950// CHECK-LABEL: test_vdup_n_f32 1951// CHECK: mov 1952float32x2_t test_vdup_n_f32(float32_t a) { 1953 return vdup_n_f32(a); 1954} 1955 1956// CHECK-LABEL: test_vdupq_n_u8 1957// CHECK: vmov 1958uint8x16_t test_vdupq_n_u8(uint8_t a) { 1959 return vdupq_n_u8(a); 1960} 1961 1962// CHECK-LABEL: test_vdupq_n_u16 1963// CHECK: vmov 1964uint16x8_t test_vdupq_n_u16(uint16_t a) { 1965 return vdupq_n_u16(a); 1966} 1967 1968// CHECK-LABEL: test_vdupq_n_u32 1969// CHECK: vmov 1970uint32x4_t test_vdupq_n_u32(uint32_t a) { 1971 return vdupq_n_u32(a); 1972} 1973 1974// CHECK-LABEL: test_vdupq_n_s8 1975// CHECK: vmov 1976int8x16_t test_vdupq_n_s8(int8_t a) { 1977 return vdupq_n_s8(a); 1978} 1979 1980// CHECK-LABEL: test_vdupq_n_s16 1981// CHECK: vmov 1982int16x8_t test_vdupq_n_s16(int16_t a) { 1983 return vdupq_n_s16(a); 1984} 1985 1986// CHECK-LABEL: test_vdupq_n_s32 1987// CHECK: vmov 1988int32x4_t test_vdupq_n_s32(int32_t a) { 1989 return vdupq_n_s32(a); 1990} 1991 1992// CHECK-LABEL: test_vdupq_n_p8 1993// CHECK: vmov 1994poly8x16_t test_vdupq_n_p8(poly8_t a) { 1995 return vdupq_n_p8(a); 1996} 1997 1998// CHECK-LABEL: test_vdupq_n_p16 1999// CHECK: vmov 2000poly16x8_t test_vdupq_n_p16(poly16_t a) { 2001 return vdupq_n_p16(a); 2002} 2003 2004// CHECK-LABEL: test_vdupq_n_f16 2005// CHECK: vld1.16 {{{d[0-9]+\[\], d[0-9]+\[\]}}} 2006float16x8_t test_vdupq_n_f16(float16_t *a) { 2007 return vdupq_n_f16(*a); 2008} 2009 2010// CHECK-LABEL: test_vdupq_n_f32 2011// CHECK: vmov 2012float32x4_t test_vdupq_n_f32(float32_t a) { 2013 return vdupq_n_f32(a); 2014} 2015 2016// CHECK-LABEL: test_vdup_n_s64 2017// CHECK: vmov 2018int64x1_t test_vdup_n_s64(int64_t a) { 2019 int64x1_t tmp = vdup_n_s64(a); 2020 return vadd_s64(tmp, tmp); 2021} 2022 2023// CHECK-LABEL: test_vdup_n_u64 2024// CHECK: vmov 2025uint64x1_t test_vdup_n_u64(uint64_t a) { 2026 int64x1_t tmp = vdup_n_u64(a); 2027 return vadd_s64(tmp, tmp); 2028 2029} 2030 2031// CHECK-LABEL: test_vdupq_n_s64 2032// CHECK: vmov 2033int64x2_t test_vdupq_n_s64(int64_t a) { 2034 int64x2_t tmp = vdupq_n_s64(a); 2035 return vaddq_s64(tmp, tmp); 2036} 2037 2038// CHECK-LABEL: test_vdupq_n_u64 2039// CHECK: vmov 2040uint64x2_t test_vdupq_n_u64(uint64_t a) { 2041 int64x2_t tmp = vdupq_n_u64(a); 2042 return vaddq_u64(tmp, tmp); 2043} 2044 2045 2046// CHECK-LABEL: test_veor_s8 2047// CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2048int8x8_t test_veor_s8(int8x8_t a, int8x8_t b) { 2049 return veor_s8(a, b); 2050} 2051 2052// CHECK-LABEL: test_veor_s16 2053// CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2054int16x4_t test_veor_s16(int16x4_t a, int16x4_t b) { 2055 return veor_s16(a, b); 2056} 2057 2058// CHECK-LABEL: test_veor_s32 2059// CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2060int32x2_t test_veor_s32(int32x2_t a, int32x2_t b) { 2061 return veor_s32(a, b); 2062} 2063 2064// CHECK-LABEL: test_veor_s64 2065// CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2066int64x1_t test_veor_s64(int64x1_t a, int64x1_t b) { 2067 return veor_s64(a, b); 2068} 2069 2070// CHECK-LABEL: test_veor_u8 2071// CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2072uint8x8_t test_veor_u8(uint8x8_t a, uint8x8_t b) { 2073 return veor_u8(a, b); 2074} 2075 2076// CHECK-LABEL: test_veor_u16 2077// CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2078uint16x4_t test_veor_u16(uint16x4_t a, uint16x4_t b) { 2079 return veor_u16(a, b); 2080} 2081 2082// CHECK-LABEL: test_veor_u32 2083// CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2084uint32x2_t test_veor_u32(uint32x2_t a, uint32x2_t b) { 2085 return veor_u32(a, b); 2086} 2087 2088// CHECK-LABEL: test_veor_u64 2089// CHECK: veor d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2090uint64x1_t test_veor_u64(uint64x1_t a, uint64x1_t b) { 2091 return veor_u64(a, b); 2092} 2093 2094// CHECK-LABEL: test_veorq_s8 2095// CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2096int8x16_t test_veorq_s8(int8x16_t a, int8x16_t b) { 2097 return veorq_s8(a, b); 2098} 2099 2100// CHECK-LABEL: test_veorq_s16 2101// CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2102int16x8_t test_veorq_s16(int16x8_t a, int16x8_t b) { 2103 return veorq_s16(a, b); 2104} 2105 2106// CHECK-LABEL: test_veorq_s32 2107// CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2108int32x4_t test_veorq_s32(int32x4_t a, int32x4_t b) { 2109 return veorq_s32(a, b); 2110} 2111 2112// CHECK-LABEL: test_veorq_s64 2113// CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2114int64x2_t test_veorq_s64(int64x2_t a, int64x2_t b) { 2115 return veorq_s64(a, b); 2116} 2117 2118// CHECK-LABEL: test_veorq_u8 2119// CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2120uint8x16_t test_veorq_u8(uint8x16_t a, uint8x16_t b) { 2121 return veorq_u8(a, b); 2122} 2123 2124// CHECK-LABEL: test_veorq_u16 2125// CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2126uint16x8_t test_veorq_u16(uint16x8_t a, uint16x8_t b) { 2127 return veorq_u16(a, b); 2128} 2129 2130// CHECK-LABEL: test_veorq_u32 2131// CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2132uint32x4_t test_veorq_u32(uint32x4_t a, uint32x4_t b) { 2133 return veorq_u32(a, b); 2134} 2135 2136// CHECK-LABEL: test_veorq_u64 2137// CHECK: veor q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2138uint64x2_t test_veorq_u64(uint64x2_t a, uint64x2_t b) { 2139 return veorq_u64(a, b); 2140} 2141 2142 2143// CHECK-LABEL: test_vext_s8 2144// CHECK: vext.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 2145int8x8_t test_vext_s8(int8x8_t a, int8x8_t b) { 2146 return vext_s8(a, b, 7); 2147} 2148 2149// CHECK-LABEL: test_vext_u8 2150// CHECK: vext.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 2151uint8x8_t test_vext_u8(uint8x8_t a, uint8x8_t b) { 2152 return vext_u8(a, b, 7); 2153} 2154 2155// CHECK-LABEL: test_vext_p8 2156// CHECK: vext.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 2157poly8x8_t test_vext_p8(poly8x8_t a, poly8x8_t b) { 2158 return vext_p8(a, b, 7); 2159} 2160 2161// CHECK-LABEL: test_vext_s16 2162// CHECK: vext.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 2163int16x4_t test_vext_s16(int16x4_t a, int16x4_t b) { 2164 return vext_s16(a, b, 3); 2165} 2166 2167// CHECK-LABEL: test_vext_u16 2168// CHECK: vext.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 2169uint16x4_t test_vext_u16(uint16x4_t a, uint16x4_t b) { 2170 return vext_u16(a, b, 3); 2171} 2172 2173// CHECK-LABEL: test_vext_p16 2174// CHECK: vext.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 2175poly16x4_t test_vext_p16(poly16x4_t a, poly16x4_t b) { 2176 return vext_p16(a, b, 3); 2177} 2178 2179// CHECK-LABEL: test_vext_s32 2180// CHECK: vext.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 2181int32x2_t test_vext_s32(int32x2_t a, int32x2_t b) { 2182 return vext_s32(a, b, 1); 2183} 2184 2185// CHECK-LABEL: test_vext_u32 2186// CHECK: vext.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 2187uint32x2_t test_vext_u32(uint32x2_t a, uint32x2_t b) { 2188 return vext_u32(a, b, 1); 2189} 2190 2191// CHECK-LABEL: test_vext_s64 2192int64x1_t test_vext_s64(int64x1_t a, int64x1_t b) { 2193 return vext_s64(a, b, 0); 2194} 2195 2196// CHECK-LABEL: test_vext_u64 2197uint64x1_t test_vext_u64(uint64x1_t a, uint64x1_t b) { 2198 return vext_u64(a, b, 0); 2199} 2200 2201// CHECK-LABEL: test_vext_f32 2202// CHECK: vext.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 2203float32x2_t test_vext_f32(float32x2_t a, float32x2_t b) { 2204 return vext_f32(a, b, 1); 2205} 2206 2207// CHECK-LABEL: test_vextq_s8 2208// CHECK: vext.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 2209int8x16_t test_vextq_s8(int8x16_t a, int8x16_t b) { 2210 return vextq_s8(a, b, 15); 2211} 2212 2213// CHECK-LABEL: test_vextq_u8 2214// CHECK: vext.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 2215uint8x16_t test_vextq_u8(uint8x16_t a, uint8x16_t b) { 2216 return vextq_u8(a, b, 15); 2217} 2218 2219// CHECK-LABEL: test_vextq_p8 2220// CHECK: vext.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 2221poly8x16_t test_vextq_p8(poly8x16_t a, poly8x16_t b) { 2222 return vextq_p8(a, b, 15); 2223} 2224 2225// CHECK-LABEL: test_vextq_s16 2226// CHECK: vext.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 2227int16x8_t test_vextq_s16(int16x8_t a, int16x8_t b) { 2228 return vextq_s16(a, b, 7); 2229} 2230 2231// CHECK-LABEL: test_vextq_u16 2232// CHECK: vext.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 2233uint16x8_t test_vextq_u16(uint16x8_t a, uint16x8_t b) { 2234 return vextq_u16(a, b, 7); 2235} 2236 2237// CHECK-LABEL: test_vextq_p16 2238// CHECK: vext.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 2239poly16x8_t test_vextq_p16(poly16x8_t a, poly16x8_t b) { 2240 return vextq_p16(a, b, 7); 2241} 2242 2243// CHECK-LABEL: test_vextq_s32 2244// CHECK: vext.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 2245int32x4_t test_vextq_s32(int32x4_t a, int32x4_t b) { 2246 return vextq_s32(a, b, 3); 2247} 2248 2249// CHECK-LABEL: test_vextq_u32 2250// CHECK: vext.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 2251uint32x4_t test_vextq_u32(uint32x4_t a, uint32x4_t b) { 2252 return vextq_u32(a, b, 3); 2253} 2254 2255// CHECK-LABEL: test_vextq_s64 2256// CHECK: {{vmov|vdup}} 2257int64x2_t test_vextq_s64(int64x2_t a, int64x2_t b) { 2258 return vextq_s64(a, b, 1); 2259} 2260 2261// CHECK-LABEL: test_vextq_u64 2262// CHECK: {{vmov|vdup}} 2263uint64x2_t test_vextq_u64(uint64x2_t a, uint64x2_t b) { 2264 return vextq_u64(a, b, 1); 2265} 2266 2267// CHECK-LABEL: test_vextq_f32 2268// CHECK: vext.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 2269float32x4_t test_vextq_f32(float32x4_t a, float32x4_t b) { 2270 return vextq_f32(a, b, 3); 2271} 2272 2273 2274// CHECK-LABEL: test_vfma_f32 2275// CHECK: vfma.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2276float32x2_t test_vfma_f32(float32x2_t a, float32x2_t b, float32x2_t c) { 2277 return vfma_f32(a, b, c); 2278} 2279 2280// CHECK-LABEL: test_vfmaq_f32 2281// CHECK: vfma.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2282float32x4_t test_vfmaq_f32(float32x4_t a, float32x4_t b, float32x4_t c) { 2283 return vfmaq_f32(a, b, c); 2284} 2285 2286 2287// CHECK-LABEL: test_vget_high_s8 2288int8x8_t test_vget_high_s8(int8x16_t a) { 2289 return vget_high_s8(a); 2290} 2291 2292// CHECK-LABEL: test_vget_high_s16 2293int16x4_t test_vget_high_s16(int16x8_t a) { 2294 return vget_high_s16(a); 2295} 2296 2297// CHECK-LABEL: test_vget_high_s32 2298int32x2_t test_vget_high_s32(int32x4_t a) { 2299 return vget_high_s32(a); 2300} 2301 2302// CHECK-LABEL: test_vget_high_s64 2303int64x1_t test_vget_high_s64(int64x2_t a) { 2304 return vget_high_s64(a); 2305} 2306 2307// CHECK-LABEL: test_vget_high_f16 2308float16x4_t test_vget_high_f16(float16x8_t a) { 2309 return vget_high_f16(a); 2310} 2311 2312// CHECK-LABEL: test_vget_high_f32 2313float32x2_t test_vget_high_f32(float32x4_t a) { 2314 return vget_high_f32(a); 2315} 2316 2317// CHECK-LABEL: test_vget_high_u8 2318uint8x8_t test_vget_high_u8(uint8x16_t a) { 2319 return vget_high_u8(a); 2320} 2321 2322// CHECK-LABEL: test_vget_high_u16 2323uint16x4_t test_vget_high_u16(uint16x8_t a) { 2324 return vget_high_u16(a); 2325} 2326 2327// CHECK-LABEL: test_vget_high_u32 2328uint32x2_t test_vget_high_u32(uint32x4_t a) { 2329 return vget_high_u32(a); 2330} 2331 2332// CHECK-LABEL: test_vget_high_u64 2333uint64x1_t test_vget_high_u64(uint64x2_t a) { 2334 return vget_high_u64(a); 2335} 2336 2337// CHECK-LABEL: test_vget_high_p8 2338poly8x8_t test_vget_high_p8(poly8x16_t a) { 2339 return vget_high_p8(a); 2340} 2341 2342// CHECK-LABEL: test_vget_high_p16 2343poly16x4_t test_vget_high_p16(poly16x8_t a) { 2344 return vget_high_p16(a); 2345} 2346 2347 2348// CHECK-LABEL: test_vget_lane_u8 2349// CHECK: vmov 2350uint8_t test_vget_lane_u8(uint8x8_t a) { 2351 return vget_lane_u8(a, 7); 2352} 2353 2354// CHECK-LABEL: test_vget_lane_u16 2355// CHECK: vmov 2356uint16_t test_vget_lane_u16(uint16x4_t a) { 2357 return vget_lane_u16(a, 3); 2358} 2359 2360// CHECK-LABEL: test_vget_lane_u32 2361// CHECK: mov 2362uint32_t test_vget_lane_u32(uint32x2_t a) { 2363 return vget_lane_u32(a, 1); 2364} 2365 2366// CHECK-LABEL: test_vget_lane_s8 2367// CHECK: vmov 2368int8_t test_vget_lane_s8(int8x8_t a) { 2369 return vget_lane_s8(a, 7); 2370} 2371 2372// CHECK-LABEL: test_vget_lane_s16 2373// CHECK: vmov 2374int16_t test_vget_lane_s16(int16x4_t a) { 2375 return vget_lane_s16(a, 3); 2376} 2377 2378// CHECK-LABEL: test_vget_lane_s32 2379// CHECK: mov 2380int32_t test_vget_lane_s32(int32x2_t a) { 2381 return vget_lane_s32(a, 1); 2382} 2383 2384// CHECK-LABEL: test_vget_lane_p8 2385// CHECK: vmov 2386poly8_t test_vget_lane_p8(poly8x8_t a) { 2387 return vget_lane_p8(a, 7); 2388} 2389 2390// CHECK-LABEL: test_vget_lane_p16 2391// CHECK: vmov 2392poly16_t test_vget_lane_p16(poly16x4_t a) { 2393 return vget_lane_p16(a, 3); 2394} 2395 2396// CHECK-LABEL: test_vget_lane_f32 2397// CHECK: vmov 2398float32_t test_vget_lane_f32(float32x2_t a) { 2399 return vget_lane_f32(a, 1); 2400} 2401 2402// CHECK-LABEL: test_vgetq_lane_u8 2403// CHECK: vmov 2404uint8_t test_vgetq_lane_u8(uint8x16_t a) { 2405 return vgetq_lane_u8(a, 15); 2406} 2407 2408// CHECK-LABEL: test_vgetq_lane_u16 2409// CHECK: vmov 2410uint16_t test_vgetq_lane_u16(uint16x8_t a) { 2411 return vgetq_lane_u16(a, 7); 2412} 2413 2414// CHECK-LABEL: test_vgetq_lane_u32 2415// CHECK: vmov 2416uint32_t test_vgetq_lane_u32(uint32x4_t a) { 2417 return vgetq_lane_u32(a, 3); 2418} 2419 2420// CHECK-LABEL: test_vgetq_lane_s8 2421// CHECK: vmov 2422int8_t test_vgetq_lane_s8(int8x16_t a) { 2423 return vgetq_lane_s8(a, 15); 2424} 2425 2426// CHECK-LABEL: test_vgetq_lane_s16 2427// CHECK: vmov 2428int16_t test_vgetq_lane_s16(int16x8_t a) { 2429 return vgetq_lane_s16(a, 7); 2430} 2431 2432// CHECK-LABEL: test_vgetq_lane_s32 2433// CHECK: vmov 2434int32_t test_vgetq_lane_s32(int32x4_t a) { 2435 return vgetq_lane_s32(a, 3); 2436} 2437 2438// CHECK-LABEL: test_vgetq_lane_p8 2439// CHECK: vmov 2440poly8_t test_vgetq_lane_p8(poly8x16_t a) { 2441 return vgetq_lane_p8(a, 15); 2442} 2443 2444// CHECK-LABEL: test_vgetq_lane_p16 2445// CHECK: vmov 2446poly16_t test_vgetq_lane_p16(poly16x8_t a) { 2447 return vgetq_lane_p16(a, 7); 2448} 2449 2450// CHECK-LABEL: test_vgetq_lane_f32 2451// CHECK: vmov 2452float32_t test_vgetq_lane_f32(float32x4_t a) { 2453 return vgetq_lane_f32(a, 3); 2454} 2455 2456// CHECK-LABEL: test_vget_lane_s64 2457// The optimizer is able to remove all moves now. 2458int64_t test_vget_lane_s64(int64x1_t a) { 2459 return vget_lane_s64(a, 0); 2460} 2461 2462// CHECK-LABEL: test_vget_lane_u64 2463// The optimizer is able to remove all moves now. 2464uint64_t test_vget_lane_u64(uint64x1_t a) { 2465 return vget_lane_u64(a, 0); 2466} 2467 2468// CHECK-LABEL: test_vgetq_lane_s64 2469// CHECK: vmov 2470int64_t test_vgetq_lane_s64(int64x2_t a) { 2471 return vgetq_lane_s64(a, 1); 2472} 2473 2474// CHECK-LABEL: test_vgetq_lane_u64 2475// CHECK: vmov 2476uint64_t test_vgetq_lane_u64(uint64x2_t a) { 2477 return vgetq_lane_u64(a, 1); 2478} 2479 2480 2481// CHECK-LABEL: test_vget_low_s8 2482int8x8_t test_vget_low_s8(int8x16_t a) { 2483 return vget_low_s8(a); 2484} 2485 2486// CHECK-LABEL: test_vget_low_s16 2487int16x4_t test_vget_low_s16(int16x8_t a) { 2488 return vget_low_s16(a); 2489} 2490 2491// CHECK-LABEL: test_vget_low_s32 2492int32x2_t test_vget_low_s32(int32x4_t a) { 2493 return vget_low_s32(a); 2494} 2495 2496// CHECK-LABEL: test_vget_low_s64 2497int64x1_t test_vget_low_s64(int64x2_t a) { 2498 return vget_low_s64(a); 2499} 2500 2501// CHECK-LABEL: test_vget_low_f16 2502float16x4_t test_vget_low_f16(float16x8_t a) { 2503 return vget_low_f16(a); 2504} 2505 2506// CHECK-LABEL: test_vget_low_f32 2507float32x2_t test_vget_low_f32(float32x4_t a) { 2508 return vget_low_f32(a); 2509} 2510 2511// CHECK-LABEL: test_vget_low_u8 2512uint8x8_t test_vget_low_u8(uint8x16_t a) { 2513 return vget_low_u8(a); 2514} 2515 2516// CHECK-LABEL: test_vget_low_u16 2517uint16x4_t test_vget_low_u16(uint16x8_t a) { 2518 return vget_low_u16(a); 2519} 2520 2521// CHECK-LABEL: test_vget_low_u32 2522uint32x2_t test_vget_low_u32(uint32x4_t a) { 2523 return vget_low_u32(a); 2524} 2525 2526// CHECK-LABEL: test_vget_low_u64 2527uint64x1_t test_vget_low_u64(uint64x2_t a) { 2528 return vget_low_u64(a); 2529} 2530 2531// CHECK-LABEL: test_vget_low_p8 2532poly8x8_t test_vget_low_p8(poly8x16_t a) { 2533 return vget_low_p8(a); 2534} 2535 2536// CHECK-LABEL: test_vget_low_p16 2537poly16x4_t test_vget_low_p16(poly16x8_t a) { 2538 return vget_low_p16(a); 2539} 2540 2541 2542// CHECK-LABEL: test_vhadd_s8 2543// CHECK: vhadd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2544int8x8_t test_vhadd_s8(int8x8_t a, int8x8_t b) { 2545 return vhadd_s8(a, b); 2546} 2547 2548// CHECK-LABEL: test_vhadd_s16 2549// CHECK: vhadd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2550int16x4_t test_vhadd_s16(int16x4_t a, int16x4_t b) { 2551 return vhadd_s16(a, b); 2552} 2553 2554// CHECK-LABEL: test_vhadd_s32 2555// CHECK: vhadd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2556int32x2_t test_vhadd_s32(int32x2_t a, int32x2_t b) { 2557 return vhadd_s32(a, b); 2558} 2559 2560// CHECK-LABEL: test_vhadd_u8 2561// CHECK: vhadd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2562uint8x8_t test_vhadd_u8(uint8x8_t a, uint8x8_t b) { 2563 return vhadd_u8(a, b); 2564} 2565 2566// CHECK-LABEL: test_vhadd_u16 2567// CHECK: vhadd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2568uint16x4_t test_vhadd_u16(uint16x4_t a, uint16x4_t b) { 2569 return vhadd_u16(a, b); 2570} 2571 2572// CHECK-LABEL: test_vhadd_u32 2573// CHECK: vhadd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2574uint32x2_t test_vhadd_u32(uint32x2_t a, uint32x2_t b) { 2575 return vhadd_u32(a, b); 2576} 2577 2578// CHECK-LABEL: test_vhaddq_s8 2579// CHECK: vhadd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2580int8x16_t test_vhaddq_s8(int8x16_t a, int8x16_t b) { 2581 return vhaddq_s8(a, b); 2582} 2583 2584// CHECK-LABEL: test_vhaddq_s16 2585// CHECK: vhadd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2586int16x8_t test_vhaddq_s16(int16x8_t a, int16x8_t b) { 2587 return vhaddq_s16(a, b); 2588} 2589 2590// CHECK-LABEL: test_vhaddq_s32 2591// CHECK: vhadd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2592int32x4_t test_vhaddq_s32(int32x4_t a, int32x4_t b) { 2593 return vhaddq_s32(a, b); 2594} 2595 2596// CHECK-LABEL: test_vhaddq_u8 2597// CHECK: vhadd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2598uint8x16_t test_vhaddq_u8(uint8x16_t a, uint8x16_t b) { 2599 return vhaddq_u8(a, b); 2600} 2601 2602// CHECK-LABEL: test_vhaddq_u16 2603// CHECK: vhadd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2604uint16x8_t test_vhaddq_u16(uint16x8_t a, uint16x8_t b) { 2605 return vhaddq_u16(a, b); 2606} 2607 2608// CHECK-LABEL: test_vhaddq_u32 2609// CHECK: vhadd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2610uint32x4_t test_vhaddq_u32(uint32x4_t a, uint32x4_t b) { 2611 return vhaddq_u32(a, b); 2612} 2613 2614 2615// CHECK-LABEL: test_vhsub_s8 2616// CHECK: vhsub.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2617int8x8_t test_vhsub_s8(int8x8_t a, int8x8_t b) { 2618 return vhsub_s8(a, b); 2619} 2620 2621// CHECK-LABEL: test_vhsub_s16 2622// CHECK: vhsub.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2623int16x4_t test_vhsub_s16(int16x4_t a, int16x4_t b) { 2624 return vhsub_s16(a, b); 2625} 2626 2627// CHECK-LABEL: test_vhsub_s32 2628// CHECK: vhsub.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2629int32x2_t test_vhsub_s32(int32x2_t a, int32x2_t b) { 2630 return vhsub_s32(a, b); 2631} 2632 2633// CHECK-LABEL: test_vhsub_u8 2634// CHECK: vhsub.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2635uint8x8_t test_vhsub_u8(uint8x8_t a, uint8x8_t b) { 2636 return vhsub_u8(a, b); 2637} 2638 2639// CHECK-LABEL: test_vhsub_u16 2640// CHECK: vhsub.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2641uint16x4_t test_vhsub_u16(uint16x4_t a, uint16x4_t b) { 2642 return vhsub_u16(a, b); 2643} 2644 2645// CHECK-LABEL: test_vhsub_u32 2646// CHECK: vhsub.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 2647uint32x2_t test_vhsub_u32(uint32x2_t a, uint32x2_t b) { 2648 return vhsub_u32(a, b); 2649} 2650 2651// CHECK-LABEL: test_vhsubq_s8 2652// CHECK: vhsub.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2653int8x16_t test_vhsubq_s8(int8x16_t a, int8x16_t b) { 2654 return vhsubq_s8(a, b); 2655} 2656 2657// CHECK-LABEL: test_vhsubq_s16 2658// CHECK: vhsub.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2659int16x8_t test_vhsubq_s16(int16x8_t a, int16x8_t b) { 2660 return vhsubq_s16(a, b); 2661} 2662 2663// CHECK-LABEL: test_vhsubq_s32 2664// CHECK: vhsub.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2665int32x4_t test_vhsubq_s32(int32x4_t a, int32x4_t b) { 2666 return vhsubq_s32(a, b); 2667} 2668 2669// CHECK-LABEL: test_vhsubq_u8 2670// CHECK: vhsub.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2671uint8x16_t test_vhsubq_u8(uint8x16_t a, uint8x16_t b) { 2672 return vhsubq_u8(a, b); 2673} 2674 2675// CHECK-LABEL: test_vhsubq_u16 2676// CHECK: vhsub.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2677uint16x8_t test_vhsubq_u16(uint16x8_t a, uint16x8_t b) { 2678 return vhsubq_u16(a, b); 2679} 2680 2681// CHECK-LABEL: test_vhsubq_u32 2682// CHECK: vhsub.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 2683uint32x4_t test_vhsubq_u32(uint32x4_t a, uint32x4_t b) { 2684 return vhsubq_u32(a, b); 2685} 2686 2687 2688// CHECK-LABEL: test_vld1q_u8 2689// CHECK: vld1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 2690uint8x16_t test_vld1q_u8(uint8_t const * a) { 2691 return vld1q_u8(a); 2692} 2693 2694// CHECK-LABEL: test_vld1q_u16 2695// CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 2696uint16x8_t test_vld1q_u16(uint16_t const * a) { 2697 return vld1q_u16(a); 2698} 2699 2700// CHECK-LABEL: test_vld1q_u32 2701// CHECK: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 2702uint32x4_t test_vld1q_u32(uint32_t const * a) { 2703 return vld1q_u32(a); 2704} 2705 2706// CHECK-LABEL: test_vld1q_u64 2707// CHECK: vld1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}] 2708uint64x2_t test_vld1q_u64(uint64_t const * a) { 2709 return vld1q_u64(a); 2710} 2711 2712// CHECK-LABEL: test_vld1q_s8 2713// CHECK: vld1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 2714int8x16_t test_vld1q_s8(int8_t const * a) { 2715 return vld1q_s8(a); 2716} 2717 2718// CHECK-LABEL: test_vld1q_s16 2719// CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 2720int16x8_t test_vld1q_s16(int16_t const * a) { 2721 return vld1q_s16(a); 2722} 2723 2724// CHECK-LABEL: test_vld1q_s32 2725// CHECK: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 2726int32x4_t test_vld1q_s32(int32_t const * a) { 2727 return vld1q_s32(a); 2728} 2729 2730// CHECK-LABEL: test_vld1q_s64 2731// CHECK: vld1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}] 2732int64x2_t test_vld1q_s64(int64_t const * a) { 2733 return vld1q_s64(a); 2734} 2735 2736// CHECK-LABEL: test_vld1q_f16 2737// CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 2738float16x8_t test_vld1q_f16(float16_t const * a) { 2739 return vld1q_f16(a); 2740} 2741 2742// CHECK-LABEL: test_vld1q_f32 2743// CHECK: vld1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 2744float32x4_t test_vld1q_f32(float32_t const * a) { 2745 return vld1q_f32(a); 2746} 2747 2748// CHECK-LABEL: test_vld1q_p8 2749// CHECK: vld1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 2750poly8x16_t test_vld1q_p8(poly8_t const * a) { 2751 return vld1q_p8(a); 2752} 2753 2754// CHECK-LABEL: test_vld1q_p16 2755// CHECK: vld1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 2756poly16x8_t test_vld1q_p16(poly16_t const * a) { 2757 return vld1q_p16(a); 2758} 2759 2760// CHECK-LABEL: test_vld1_u8 2761// CHECK: vld1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}] 2762uint8x8_t test_vld1_u8(uint8_t const * a) { 2763 return vld1_u8(a); 2764} 2765 2766// CHECK-LABEL: test_vld1_u16 2767// CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}] 2768uint16x4_t test_vld1_u16(uint16_t const * a) { 2769 return vld1_u16(a); 2770} 2771 2772// CHECK-LABEL: test_vld1_u32 2773// CHECK: vld1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}] 2774uint32x2_t test_vld1_u32(uint32_t const * a) { 2775 return vld1_u32(a); 2776} 2777 2778// CHECK-LABEL: test_vld1_u64 2779// CHECK: vld1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}] 2780uint64x1_t test_vld1_u64(uint64_t const * a) { 2781 return vld1_u64(a); 2782} 2783 2784// CHECK-LABEL: test_vld1_s8 2785// CHECK: vld1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}] 2786int8x8_t test_vld1_s8(int8_t const * a) { 2787 return vld1_s8(a); 2788} 2789 2790// CHECK-LABEL: test_vld1_s16 2791// CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}] 2792int16x4_t test_vld1_s16(int16_t const * a) { 2793 return vld1_s16(a); 2794} 2795 2796// CHECK-LABEL: test_vld1_s32 2797// CHECK: vld1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}] 2798int32x2_t test_vld1_s32(int32_t const * a) { 2799 return vld1_s32(a); 2800} 2801 2802// CHECK-LABEL: test_vld1_s64 2803// CHECK: vld1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}] 2804int64x1_t test_vld1_s64(int64_t const * a) { 2805 return vld1_s64(a); 2806} 2807 2808// CHECK-LABEL: test_vld1_f16 2809// CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}] 2810float16x4_t test_vld1_f16(float16_t const * a) { 2811 return vld1_f16(a); 2812} 2813 2814// CHECK-LABEL: test_vld1_f32 2815// CHECK: vld1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}] 2816float32x2_t test_vld1_f32(float32_t const * a) { 2817 return vld1_f32(a); 2818} 2819 2820// CHECK-LABEL: test_vld1_p8 2821// CHECK: vld1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}] 2822poly8x8_t test_vld1_p8(poly8_t const * a) { 2823 return vld1_p8(a); 2824} 2825 2826// CHECK-LABEL: test_vld1_p16 2827// CHECK: vld1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}] 2828poly16x4_t test_vld1_p16(poly16_t const * a) { 2829 return vld1_p16(a); 2830} 2831 2832 2833// CHECK-LABEL: test_vld1q_dup_u8 2834// CHECK: vld1.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 2835uint8x16_t test_vld1q_dup_u8(uint8_t const * a) { 2836 return vld1q_dup_u8(a); 2837} 2838 2839// CHECK-LABEL: test_vld1q_dup_u16 2840// CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16] 2841uint16x8_t test_vld1q_dup_u16(uint16_t const * a) { 2842 return vld1q_dup_u16(a); 2843} 2844 2845// CHECK-LABEL: test_vld1q_dup_u32 2846// CHECK: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:32] 2847uint32x4_t test_vld1q_dup_u32(uint32_t const * a) { 2848 return vld1q_dup_u32(a); 2849} 2850 2851// CHECK-LABEL: test_vld1q_dup_u64 2852// CHECK: {{ldr|vldr|vmov}} 2853uint64x2_t test_vld1q_dup_u64(uint64_t const * a) { 2854 return vld1q_dup_u64(a); 2855} 2856 2857// CHECK-LABEL: test_vld1q_dup_s8 2858// CHECK: vld1.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 2859int8x16_t test_vld1q_dup_s8(int8_t const * a) { 2860 return vld1q_dup_s8(a); 2861} 2862 2863// CHECK-LABEL: test_vld1q_dup_s16 2864// CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16] 2865int16x8_t test_vld1q_dup_s16(int16_t const * a) { 2866 return vld1q_dup_s16(a); 2867} 2868 2869// CHECK-LABEL: test_vld1q_dup_s32 2870// CHECK: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:32] 2871int32x4_t test_vld1q_dup_s32(int32_t const * a) { 2872 return vld1q_dup_s32(a); 2873} 2874 2875// CHECK-LABEL: test_vld1q_dup_s64 2876// CHECK: {{ldr|vldr|vmov}} 2877int64x2_t test_vld1q_dup_s64(int64_t const * a) { 2878 return vld1q_dup_s64(a); 2879} 2880 2881// CHECK-LABEL: test_vld1q_dup_f16 2882// CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16] 2883float16x8_t test_vld1q_dup_f16(float16_t const * a) { 2884 return vld1q_dup_f16(a); 2885} 2886 2887// CHECK-LABEL: test_vld1q_dup_f32 2888// CHECK: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:32] 2889float32x4_t test_vld1q_dup_f32(float32_t const * a) { 2890 return vld1q_dup_f32(a); 2891} 2892 2893// CHECK-LABEL: test_vld1q_dup_p8 2894// CHECK: vld1.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 2895poly8x16_t test_vld1q_dup_p8(poly8_t const * a) { 2896 return vld1q_dup_p8(a); 2897} 2898 2899// CHECK-LABEL: test_vld1q_dup_p16 2900// CHECK: vld1.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}:16] 2901poly16x8_t test_vld1q_dup_p16(poly16_t const * a) { 2902 return vld1q_dup_p16(a); 2903} 2904 2905// CHECK-LABEL: test_vld1_dup_u8 2906// CHECK: vld1.8 {d{{[0-9]+}}[]}, [r{{[0-9]+}}] 2907uint8x8_t test_vld1_dup_u8(uint8_t const * a) { 2908 return vld1_dup_u8(a); 2909} 2910 2911// CHECK-LABEL: test_vld1_dup_u16 2912// CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16] 2913uint16x4_t test_vld1_dup_u16(uint16_t const * a) { 2914 return vld1_dup_u16(a); 2915} 2916 2917// CHECK-LABEL: test_vld1_dup_u32 2918// CHECK: vld1.32 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:32] 2919uint32x2_t test_vld1_dup_u32(uint32_t const * a) { 2920 return vld1_dup_u32(a); 2921} 2922 2923// CHECK-LABEL: test_vld1_dup_u64 2924// CHECK: {{ldr|vldr|vmov}} 2925uint64x1_t test_vld1_dup_u64(uint64_t const * a) { 2926 return vld1_dup_u64(a); 2927} 2928 2929// CHECK-LABEL: test_vld1_dup_s8 2930// CHECK: vld1.8 {d{{[0-9]+}}[]}, [r{{[0-9]+}}] 2931int8x8_t test_vld1_dup_s8(int8_t const * a) { 2932 return vld1_dup_s8(a); 2933} 2934 2935// CHECK-LABEL: test_vld1_dup_s16 2936// CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16] 2937int16x4_t test_vld1_dup_s16(int16_t const * a) { 2938 return vld1_dup_s16(a); 2939} 2940 2941// CHECK-LABEL: test_vld1_dup_s32 2942// CHECK: vld1.32 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:32] 2943int32x2_t test_vld1_dup_s32(int32_t const * a) { 2944 return vld1_dup_s32(a); 2945} 2946 2947// CHECK-LABEL: test_vld1_dup_s64 2948// CHECK: {{ldr|vldr|vmov}} 2949int64x1_t test_vld1_dup_s64(int64_t const * a) { 2950 return vld1_dup_s64(a); 2951} 2952 2953// CHECK-LABEL: test_vld1_dup_f16 2954// CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16] 2955float16x4_t test_vld1_dup_f16(float16_t const * a) { 2956 return vld1_dup_f16(a); 2957} 2958 2959// CHECK-LABEL: test_vld1_dup_f32 2960// CHECK: vld1.32 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:32] 2961float32x2_t test_vld1_dup_f32(float32_t const * a) { 2962 return vld1_dup_f32(a); 2963} 2964 2965// CHECK-LABEL: test_vld1_dup_p8 2966// CHECK: vld1.8 {d{{[0-9]+}}[]}, [r{{[0-9]+}}] 2967poly8x8_t test_vld1_dup_p8(poly8_t const * a) { 2968 return vld1_dup_p8(a); 2969} 2970 2971// CHECK-LABEL: test_vld1_dup_p16 2972// CHECK: vld1.16 {d{{[0-9]+}}[]}, [r{{[0-9]+}}:16] 2973poly16x4_t test_vld1_dup_p16(poly16_t const * a) { 2974 return vld1_dup_p16(a); 2975} 2976 2977 2978// CHECK-LABEL: test_vld1q_lane_u8 2979// CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 2980uint8x16_t test_vld1q_lane_u8(uint8_t const * a, uint8x16_t b) { 2981 return vld1q_lane_u8(a, b, 15); 2982} 2983 2984// CHECK-LABEL: test_vld1q_lane_u16 2985// CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 2986uint16x8_t test_vld1q_lane_u16(uint16_t const * a, uint16x8_t b) { 2987 return vld1q_lane_u16(a, b, 7); 2988} 2989 2990// CHECK-LABEL: test_vld1q_lane_u32 2991// CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32] 2992uint32x4_t test_vld1q_lane_u32(uint32_t const * a, uint32x4_t b) { 2993 return vld1q_lane_u32(a, b, 3); 2994} 2995 2996// CHECK-LABEL: test_vld1q_lane_u64 2997// CHECK: {{ldr|vldr|vmov}} 2998uint64x2_t test_vld1q_lane_u64(uint64_t const * a, uint64x2_t b) { 2999 return vld1q_lane_u64(a, b, 1); 3000} 3001 3002// CHECK-LABEL: test_vld1q_lane_s8 3003// CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3004int8x16_t test_vld1q_lane_s8(int8_t const * a, int8x16_t b) { 3005 return vld1q_lane_s8(a, b, 15); 3006} 3007 3008// CHECK-LABEL: test_vld1q_lane_s16 3009// CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 3010int16x8_t test_vld1q_lane_s16(int16_t const * a, int16x8_t b) { 3011 return vld1q_lane_s16(a, b, 7); 3012} 3013 3014// CHECK-LABEL: test_vld1q_lane_s32 3015// CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32] 3016int32x4_t test_vld1q_lane_s32(int32_t const * a, int32x4_t b) { 3017 return vld1q_lane_s32(a, b, 3); 3018} 3019 3020// CHECK-LABEL: test_vld1q_lane_s64 3021// CHECK: {{ldr|vldr|vmov}} 3022int64x2_t test_vld1q_lane_s64(int64_t const * a, int64x2_t b) { 3023 return vld1q_lane_s64(a, b, 1); 3024} 3025 3026// CHECK-LABEL: test_vld1q_lane_f16 3027// CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 3028float16x8_t test_vld1q_lane_f16(float16_t const * a, float16x8_t b) { 3029 return vld1q_lane_f16(a, b, 7); 3030} 3031 3032// CHECK-LABEL: test_vld1q_lane_f32 3033// CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32] 3034float32x4_t test_vld1q_lane_f32(float32_t const * a, float32x4_t b) { 3035 return vld1q_lane_f32(a, b, 3); 3036} 3037 3038// CHECK-LABEL: test_vld1q_lane_p8 3039// CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3040poly8x16_t test_vld1q_lane_p8(poly8_t const * a, poly8x16_t b) { 3041 return vld1q_lane_p8(a, b, 15); 3042} 3043 3044// CHECK-LABEL: test_vld1q_lane_p16 3045// CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 3046poly16x8_t test_vld1q_lane_p16(poly16_t const * a, poly16x8_t b) { 3047 return vld1q_lane_p16(a, b, 7); 3048} 3049 3050// CHECK-LABEL: test_vld1_lane_u8 3051// CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3052uint8x8_t test_vld1_lane_u8(uint8_t const * a, uint8x8_t b) { 3053 return vld1_lane_u8(a, b, 7); 3054} 3055 3056// CHECK-LABEL: test_vld1_lane_u16 3057// CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 3058uint16x4_t test_vld1_lane_u16(uint16_t const * a, uint16x4_t b) { 3059 return vld1_lane_u16(a, b, 3); 3060} 3061 3062// CHECK-LABEL: test_vld1_lane_u32 3063// CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32] 3064uint32x2_t test_vld1_lane_u32(uint32_t const * a, uint32x2_t b) { 3065 return vld1_lane_u32(a, b, 1); 3066} 3067 3068// CHECK-LABEL: test_vld1_lane_u64 3069// CHECK: {{ldr|vldr|vmov}} 3070uint64x1_t test_vld1_lane_u64(uint64_t const * a, uint64x1_t b) { 3071 return vld1_lane_u64(a, b, 0); 3072} 3073 3074// CHECK-LABEL: test_vld1_lane_s8 3075// CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3076int8x8_t test_vld1_lane_s8(int8_t const * a, int8x8_t b) { 3077 return vld1_lane_s8(a, b, 7); 3078} 3079 3080// CHECK-LABEL: test_vld1_lane_s16 3081// CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 3082int16x4_t test_vld1_lane_s16(int16_t const * a, int16x4_t b) { 3083 return vld1_lane_s16(a, b, 3); 3084} 3085 3086// CHECK-LABEL: test_vld1_lane_s32 3087// CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32] 3088int32x2_t test_vld1_lane_s32(int32_t const * a, int32x2_t b) { 3089 return vld1_lane_s32(a, b, 1); 3090} 3091 3092// CHECK-LABEL: test_vld1_lane_s64 3093// CHECK: {{ldr|vldr|vmov}} 3094int64x1_t test_vld1_lane_s64(int64_t const * a, int64x1_t b) { 3095 return vld1_lane_s64(a, b, 0); 3096} 3097 3098// CHECK-LABEL: test_vld1_lane_f16 3099// CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 3100float16x4_t test_vld1_lane_f16(float16_t const * a, float16x4_t b) { 3101 return vld1_lane_f16(a, b, 3); 3102} 3103 3104// CHECK-LABEL: test_vld1_lane_f32 3105// CHECK: vld1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32] 3106float32x2_t test_vld1_lane_f32(float32_t const * a, float32x2_t b) { 3107 return vld1_lane_f32(a, b, 1); 3108} 3109 3110// CHECK-LABEL: test_vld1_lane_p8 3111// CHECK: vld1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3112poly8x8_t test_vld1_lane_p8(poly8_t const * a, poly8x8_t b) { 3113 return vld1_lane_p8(a, b, 7); 3114} 3115 3116// CHECK-LABEL: test_vld1_lane_p16 3117// CHECK: vld1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 3118poly16x4_t test_vld1_lane_p16(poly16_t const * a, poly16x4_t b) { 3119 return vld1_lane_p16(a, b, 3); 3120} 3121 3122 3123// CHECK-LABEL: test_vld2q_u8 3124// CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3125uint8x16x2_t test_vld2q_u8(uint8_t const * a) { 3126 return vld2q_u8(a); 3127} 3128 3129// CHECK-LABEL: test_vld2q_u16 3130// CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3131uint16x8x2_t test_vld2q_u16(uint16_t const * a) { 3132 return vld2q_u16(a); 3133} 3134 3135// CHECK-LABEL: test_vld2q_u32 3136// CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3137uint32x4x2_t test_vld2q_u32(uint32_t const * a) { 3138 return vld2q_u32(a); 3139} 3140 3141// CHECK-LABEL: test_vld2q_s8 3142// CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3143int8x16x2_t test_vld2q_s8(int8_t const * a) { 3144 return vld2q_s8(a); 3145} 3146 3147// CHECK-LABEL: test_vld2q_s16 3148// CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3149int16x8x2_t test_vld2q_s16(int16_t const * a) { 3150 return vld2q_s16(a); 3151} 3152 3153// CHECK-LABEL: test_vld2q_s32 3154// CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3155int32x4x2_t test_vld2q_s32(int32_t const * a) { 3156 return vld2q_s32(a); 3157} 3158 3159// CHECK-LABEL: test_vld2q_f16 3160// CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3161float16x8x2_t test_vld2q_f16(float16_t const * a) { 3162 return vld2q_f16(a); 3163} 3164 3165// CHECK-LABEL: test_vld2q_f32 3166// CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3167float32x4x2_t test_vld2q_f32(float32_t const * a) { 3168 return vld2q_f32(a); 3169} 3170 3171// CHECK-LABEL: test_vld2q_p8 3172// CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3173poly8x16x2_t test_vld2q_p8(poly8_t const * a) { 3174 return vld2q_p8(a); 3175} 3176 3177// CHECK-LABEL: test_vld2q_p16 3178// CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3179poly16x8x2_t test_vld2q_p16(poly16_t const * a) { 3180 return vld2q_p16(a); 3181} 3182 3183// CHECK-LABEL: test_vld2_u8 3184// CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3185uint8x8x2_t test_vld2_u8(uint8_t const * a) { 3186 return vld2_u8(a); 3187} 3188 3189// CHECK-LABEL: test_vld2_u16 3190// CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3191uint16x4x2_t test_vld2_u16(uint16_t const * a) { 3192 return vld2_u16(a); 3193} 3194 3195// CHECK-LABEL: test_vld2_u32 3196// CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3197uint32x2x2_t test_vld2_u32(uint32_t const * a) { 3198 return vld2_u32(a); 3199} 3200 3201// CHECK-LABEL: test_vld2_u64 3202// CHECK: vld1.64 3203uint64x1x2_t test_vld2_u64(uint64_t const * a) { 3204 return vld2_u64(a); 3205} 3206 3207// CHECK-LABEL: test_vld2_s8 3208// CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3209int8x8x2_t test_vld2_s8(int8_t const * a) { 3210 return vld2_s8(a); 3211} 3212 3213// CHECK-LABEL: test_vld2_s16 3214// CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3215int16x4x2_t test_vld2_s16(int16_t const * a) { 3216 return vld2_s16(a); 3217} 3218 3219// CHECK-LABEL: test_vld2_s32 3220// CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3221int32x2x2_t test_vld2_s32(int32_t const * a) { 3222 return vld2_s32(a); 3223} 3224 3225// CHECK-LABEL: test_vld2_s64 3226// CHECK: vld1.64 3227int64x1x2_t test_vld2_s64(int64_t const * a) { 3228 return vld2_s64(a); 3229} 3230 3231// CHECK-LABEL: test_vld2_f16 3232// CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3233float16x4x2_t test_vld2_f16(float16_t const * a) { 3234 return vld2_f16(a); 3235} 3236 3237// CHECK-LABEL: test_vld2_f32 3238// CHECK: vld2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3239float32x2x2_t test_vld2_f32(float32_t const * a) { 3240 return vld2_f32(a); 3241} 3242 3243// CHECK-LABEL: test_vld2_p8 3244// CHECK: vld2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3245poly8x8x2_t test_vld2_p8(poly8_t const * a) { 3246 return vld2_p8(a); 3247} 3248 3249// CHECK-LABEL: test_vld2_p16 3250// CHECK: vld2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3251poly16x4x2_t test_vld2_p16(poly16_t const * a) { 3252 return vld2_p16(a); 3253} 3254 3255 3256// CHECK-LABEL: test_vld2_dup_u8 3257// CHECK: vld2.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3258uint8x8x2_t test_vld2_dup_u8(uint8_t const * a) { 3259 return vld2_dup_u8(a); 3260} 3261 3262// CHECK-LABEL: test_vld2_dup_u16 3263// CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3264uint16x4x2_t test_vld2_dup_u16(uint16_t const * a) { 3265 return vld2_dup_u16(a); 3266} 3267 3268// CHECK-LABEL: test_vld2_dup_u32 3269// CHECK: vld2.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3270uint32x2x2_t test_vld2_dup_u32(uint32_t const * a) { 3271 return vld2_dup_u32(a); 3272} 3273 3274// CHECK-LABEL: test_vld2_dup_u64 3275// CHECK: vld1.64 3276uint64x1x2_t test_vld2_dup_u64(uint64_t const * a) { 3277 return vld2_dup_u64(a); 3278} 3279 3280// CHECK-LABEL: test_vld2_dup_s8 3281// CHECK: vld2.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3282int8x8x2_t test_vld2_dup_s8(int8_t const * a) { 3283 return vld2_dup_s8(a); 3284} 3285 3286// CHECK-LABEL: test_vld2_dup_s16 3287// CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3288int16x4x2_t test_vld2_dup_s16(int16_t const * a) { 3289 return vld2_dup_s16(a); 3290} 3291 3292// CHECK-LABEL: test_vld2_dup_s32 3293// CHECK: vld2.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3294int32x2x2_t test_vld2_dup_s32(int32_t const * a) { 3295 return vld2_dup_s32(a); 3296} 3297 3298// CHECK-LABEL: test_vld2_dup_s64 3299// CHECK: vld1.64 3300int64x1x2_t test_vld2_dup_s64(int64_t const * a) { 3301 return vld2_dup_s64(a); 3302} 3303 3304// CHECK-LABEL: test_vld2_dup_f16 3305// CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3306float16x4x2_t test_vld2_dup_f16(float16_t const * a) { 3307 return vld2_dup_f16(a); 3308} 3309 3310// CHECK-LABEL: test_vld2_dup_f32 3311// CHECK: vld2.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3312float32x2x2_t test_vld2_dup_f32(float32_t const * a) { 3313 return vld2_dup_f32(a); 3314} 3315 3316// CHECK-LABEL: test_vld2_dup_p8 3317// CHECK: vld2.8 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3318poly8x8x2_t test_vld2_dup_p8(poly8_t const * a) { 3319 return vld2_dup_p8(a); 3320} 3321 3322// CHECK-LABEL: test_vld2_dup_p16 3323// CHECK: vld2.16 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3324poly16x4x2_t test_vld2_dup_p16(poly16_t const * a) { 3325 return vld2_dup_p16(a); 3326} 3327 3328 3329// CHECK-LABEL: test_vld2q_lane_u16 3330// CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3331uint16x8x2_t test_vld2q_lane_u16(uint16_t const * a, uint16x8x2_t b) { 3332 return vld2q_lane_u16(a, b, 7); 3333} 3334 3335// CHECK-LABEL: test_vld2q_lane_u32 3336// CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3337uint32x4x2_t test_vld2q_lane_u32(uint32_t const * a, uint32x4x2_t b) { 3338 return vld2q_lane_u32(a, b, 3); 3339} 3340 3341// CHECK-LABEL: test_vld2q_lane_s16 3342// CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3343int16x8x2_t test_vld2q_lane_s16(int16_t const * a, int16x8x2_t b) { 3344 return vld2q_lane_s16(a, b, 7); 3345} 3346 3347// CHECK-LABEL: test_vld2q_lane_s32 3348// CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3349int32x4x2_t test_vld2q_lane_s32(int32_t const * a, int32x4x2_t b) { 3350 return vld2q_lane_s32(a, b, 3); 3351} 3352 3353// CHECK-LABEL: test_vld2q_lane_f16 3354// CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3355float16x8x2_t test_vld2q_lane_f16(float16_t const * a, float16x8x2_t b) { 3356 return vld2q_lane_f16(a, b, 7); 3357} 3358 3359// CHECK-LABEL: test_vld2q_lane_f32 3360// CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3361float32x4x2_t test_vld2q_lane_f32(float32_t const * a, float32x4x2_t b) { 3362 return vld2q_lane_f32(a, b, 3); 3363} 3364 3365// CHECK-LABEL: test_vld2q_lane_p16 3366// CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3367poly16x8x2_t test_vld2q_lane_p16(poly16_t const * a, poly16x8x2_t b) { 3368 return vld2q_lane_p16(a, b, 7); 3369} 3370 3371// CHECK-LABEL: test_vld2_lane_u8 3372// CHECK: vld2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3373uint8x8x2_t test_vld2_lane_u8(uint8_t const * a, uint8x8x2_t b) { 3374 return vld2_lane_u8(a, b, 7); 3375} 3376 3377// CHECK-LABEL: test_vld2_lane_u16 3378// CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3379uint16x4x2_t test_vld2_lane_u16(uint16_t const * a, uint16x4x2_t b) { 3380 return vld2_lane_u16(a, b, 3); 3381} 3382 3383// CHECK-LABEL: test_vld2_lane_u32 3384// CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3385uint32x2x2_t test_vld2_lane_u32(uint32_t const * a, uint32x2x2_t b) { 3386 return vld2_lane_u32(a, b, 1); 3387} 3388 3389// CHECK-LABEL: test_vld2_lane_s8 3390// CHECK: vld2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3391int8x8x2_t test_vld2_lane_s8(int8_t const * a, int8x8x2_t b) { 3392 return vld2_lane_s8(a, b, 7); 3393} 3394 3395// CHECK-LABEL: test_vld2_lane_s16 3396// CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3397int16x4x2_t test_vld2_lane_s16(int16_t const * a, int16x4x2_t b) { 3398 return vld2_lane_s16(a, b, 3); 3399} 3400 3401// CHECK-LABEL: test_vld2_lane_s32 3402// CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3403int32x2x2_t test_vld2_lane_s32(int32_t const * a, int32x2x2_t b) { 3404 return vld2_lane_s32(a, b, 1); 3405} 3406 3407// CHECK-LABEL: test_vld2_lane_f16 3408// CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3409float16x4x2_t test_vld2_lane_f16(float16_t const * a, float16x4x2_t b) { 3410 return vld2_lane_f16(a, b, 3); 3411} 3412 3413// CHECK-LABEL: test_vld2_lane_f32 3414// CHECK: vld2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3415float32x2x2_t test_vld2_lane_f32(float32_t const * a, float32x2x2_t b) { 3416 return vld2_lane_f32(a, b, 1); 3417} 3418 3419// CHECK-LABEL: test_vld2_lane_p8 3420// CHECK: vld2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3421poly8x8x2_t test_vld2_lane_p8(poly8_t const * a, poly8x8x2_t b) { 3422 return vld2_lane_p8(a, b, 7); 3423} 3424 3425// CHECK-LABEL: test_vld2_lane_p16 3426// CHECK: vld2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3427poly16x4x2_t test_vld2_lane_p16(poly16_t const * a, poly16x4x2_t b) { 3428 return vld2_lane_p16(a, b, 3); 3429} 3430 3431 3432// CHECK-LABEL: test_vld3q_u8 3433// CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3434uint8x16x3_t test_vld3q_u8(uint8_t const * a) { 3435 return vld3q_u8(a); 3436} 3437 3438// CHECK-LABEL: test_vld3q_u16 3439// CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3440uint16x8x3_t test_vld3q_u16(uint16_t const * a) { 3441 return vld3q_u16(a); 3442} 3443 3444// CHECK-LABEL: test_vld3q_u32 3445// CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3446uint32x4x3_t test_vld3q_u32(uint32_t const * a) { 3447 return vld3q_u32(a); 3448} 3449 3450// CHECK-LABEL: test_vld3q_s8 3451// CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3452int8x16x3_t test_vld3q_s8(int8_t const * a) { 3453 return vld3q_s8(a); 3454} 3455 3456// CHECK-LABEL: test_vld3q_s16 3457// CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3458int16x8x3_t test_vld3q_s16(int16_t const * a) { 3459 return vld3q_s16(a); 3460} 3461 3462// CHECK-LABEL: test_vld3q_s32 3463// CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3464int32x4x3_t test_vld3q_s32(int32_t const * a) { 3465 return vld3q_s32(a); 3466} 3467 3468// CHECK-LABEL: test_vld3q_f16 3469// CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3470float16x8x3_t test_vld3q_f16(float16_t const * a) { 3471 return vld3q_f16(a); 3472} 3473 3474// CHECK-LABEL: test_vld3q_f32 3475// CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3476float32x4x3_t test_vld3q_f32(float32_t const * a) { 3477 return vld3q_f32(a); 3478} 3479 3480// CHECK-LABEL: test_vld3q_p8 3481// CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3482poly8x16x3_t test_vld3q_p8(poly8_t const * a) { 3483 return vld3q_p8(a); 3484} 3485 3486// CHECK-LABEL: test_vld3q_p16 3487// CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3488poly16x8x3_t test_vld3q_p16(poly16_t const * a) { 3489 return vld3q_p16(a); 3490} 3491 3492// CHECK-LABEL: test_vld3_u8 3493// CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3494uint8x8x3_t test_vld3_u8(uint8_t const * a) { 3495 return vld3_u8(a); 3496} 3497 3498// CHECK-LABEL: test_vld3_u16 3499// CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3500uint16x4x3_t test_vld3_u16(uint16_t const * a) { 3501 return vld3_u16(a); 3502} 3503 3504// CHECK-LABEL: test_vld3_u32 3505// CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3506uint32x2x3_t test_vld3_u32(uint32_t const * a) { 3507 return vld3_u32(a); 3508} 3509 3510// CHECK-LABEL: test_vld3_u64 3511// CHECK: vld1.64 3512uint64x1x3_t test_vld3_u64(uint64_t const * a) { 3513 return vld3_u64(a); 3514} 3515 3516// CHECK-LABEL: test_vld3_s8 3517// CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3518int8x8x3_t test_vld3_s8(int8_t const * a) { 3519 return vld3_s8(a); 3520} 3521 3522// CHECK-LABEL: test_vld3_s16 3523// CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3524int16x4x3_t test_vld3_s16(int16_t const * a) { 3525 return vld3_s16(a); 3526} 3527 3528// CHECK-LABEL: test_vld3_s32 3529// CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3530int32x2x3_t test_vld3_s32(int32_t const * a) { 3531 return vld3_s32(a); 3532} 3533 3534// CHECK-LABEL: test_vld3_s64 3535// CHECK: vld1.64 3536int64x1x3_t test_vld3_s64(int64_t const * a) { 3537 return vld3_s64(a); 3538} 3539 3540// CHECK-LABEL: test_vld3_f16 3541// CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3542float16x4x3_t test_vld3_f16(float16_t const * a) { 3543 return vld3_f16(a); 3544} 3545 3546// CHECK-LABEL: test_vld3_f32 3547// CHECK: vld3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3548float32x2x3_t test_vld3_f32(float32_t const * a) { 3549 return vld3_f32(a); 3550} 3551 3552// CHECK-LABEL: test_vld3_p8 3553// CHECK: vld3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3554poly8x8x3_t test_vld3_p8(poly8_t const * a) { 3555 return vld3_p8(a); 3556} 3557 3558// CHECK-LABEL: test_vld3_p16 3559// CHECK: vld3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3560poly16x4x3_t test_vld3_p16(poly16_t const * a) { 3561 return vld3_p16(a); 3562} 3563 3564 3565// CHECK-LABEL: test_vld3_dup_u8 3566// CHECK: vld3.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3567uint8x8x3_t test_vld3_dup_u8(uint8_t const * a) { 3568 return vld3_dup_u8(a); 3569} 3570 3571// CHECK-LABEL: test_vld3_dup_u16 3572// CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3573uint16x4x3_t test_vld3_dup_u16(uint16_t const * a) { 3574 return vld3_dup_u16(a); 3575} 3576 3577// CHECK-LABEL: test_vld3_dup_u32 3578// CHECK: vld3.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3579uint32x2x3_t test_vld3_dup_u32(uint32_t const * a) { 3580 return vld3_dup_u32(a); 3581} 3582 3583// CHECK-LABEL: test_vld3_dup_u64 3584// CHECK: vld1.64 3585uint64x1x3_t test_vld3_dup_u64(uint64_t const * a) { 3586 return vld3_dup_u64(a); 3587} 3588 3589// CHECK-LABEL: test_vld3_dup_s8 3590// CHECK: vld3.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3591int8x8x3_t test_vld3_dup_s8(int8_t const * a) { 3592 return vld3_dup_s8(a); 3593} 3594 3595// CHECK-LABEL: test_vld3_dup_s16 3596// CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3597int16x4x3_t test_vld3_dup_s16(int16_t const * a) { 3598 return vld3_dup_s16(a); 3599} 3600 3601// CHECK-LABEL: test_vld3_dup_s32 3602// CHECK: vld3.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3603int32x2x3_t test_vld3_dup_s32(int32_t const * a) { 3604 return vld3_dup_s32(a); 3605} 3606 3607// CHECK-LABEL: test_vld3_dup_s64 3608// CHECK: vld1.64 3609int64x1x3_t test_vld3_dup_s64(int64_t const * a) { 3610 return vld3_dup_s64(a); 3611} 3612 3613// CHECK-LABEL: test_vld3_dup_f16 3614// CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3615float16x4x3_t test_vld3_dup_f16(float16_t const * a) { 3616 return vld3_dup_f16(a); 3617} 3618 3619// CHECK-LABEL: test_vld3_dup_f32 3620// CHECK: vld3.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3621float32x2x3_t test_vld3_dup_f32(float32_t const * a) { 3622 return vld3_dup_f32(a); 3623} 3624 3625// CHECK-LABEL: test_vld3_dup_p8 3626// CHECK: vld3.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3627poly8x8x3_t test_vld3_dup_p8(poly8_t const * a) { 3628 return vld3_dup_p8(a); 3629} 3630 3631// CHECK-LABEL: test_vld3_dup_p16 3632// CHECK: vld3.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3633poly16x4x3_t test_vld3_dup_p16(poly16_t const * a) { 3634 return vld3_dup_p16(a); 3635} 3636 3637 3638// CHECK-LABEL: test_vld3q_lane_u16 3639// CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3640uint16x8x3_t test_vld3q_lane_u16(uint16_t const * a, uint16x8x3_t b) { 3641 return vld3q_lane_u16(a, b, 7); 3642} 3643 3644// CHECK-LABEL: test_vld3q_lane_u32 3645// CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3646uint32x4x3_t test_vld3q_lane_u32(uint32_t const * a, uint32x4x3_t b) { 3647 return vld3q_lane_u32(a, b, 3); 3648} 3649 3650// CHECK-LABEL: test_vld3q_lane_s16 3651// CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3652int16x8x3_t test_vld3q_lane_s16(int16_t const * a, int16x8x3_t b) { 3653 return vld3q_lane_s16(a, b, 7); 3654} 3655 3656// CHECK-LABEL: test_vld3q_lane_s32 3657// CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3658int32x4x3_t test_vld3q_lane_s32(int32_t const * a, int32x4x3_t b) { 3659 return vld3q_lane_s32(a, b, 3); 3660} 3661 3662// CHECK-LABEL: test_vld3q_lane_f16 3663// CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3664float16x8x3_t test_vld3q_lane_f16(float16_t const * a, float16x8x3_t b) { 3665 return vld3q_lane_f16(a, b, 7); 3666} 3667 3668// CHECK-LABEL: test_vld3q_lane_f32 3669// CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3670float32x4x3_t test_vld3q_lane_f32(float32_t const * a, float32x4x3_t b) { 3671 return vld3q_lane_f32(a, b, 3); 3672} 3673 3674// CHECK-LABEL: test_vld3q_lane_p16 3675// CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3676poly16x8x3_t test_vld3q_lane_p16(poly16_t const * a, poly16x8x3_t b) { 3677 return vld3q_lane_p16(a, b, 7); 3678} 3679 3680// CHECK-LABEL: test_vld3_lane_u8 3681// CHECK: vld3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3682uint8x8x3_t test_vld3_lane_u8(uint8_t const * a, uint8x8x3_t b) { 3683 return vld3_lane_u8(a, b, 7); 3684} 3685 3686// CHECK-LABEL: test_vld3_lane_u16 3687// CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3688uint16x4x3_t test_vld3_lane_u16(uint16_t const * a, uint16x4x3_t b) { 3689 return vld3_lane_u16(a, b, 3); 3690} 3691 3692// CHECK-LABEL: test_vld3_lane_u32 3693// CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3694uint32x2x3_t test_vld3_lane_u32(uint32_t const * a, uint32x2x3_t b) { 3695 return vld3_lane_u32(a, b, 1); 3696} 3697 3698// CHECK-LABEL: test_vld3_lane_s8 3699// CHECK: vld3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3700int8x8x3_t test_vld3_lane_s8(int8_t const * a, int8x8x3_t b) { 3701 return vld3_lane_s8(a, b, 7); 3702} 3703 3704// CHECK-LABEL: test_vld3_lane_s16 3705// CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3706int16x4x3_t test_vld3_lane_s16(int16_t const * a, int16x4x3_t b) { 3707 return vld3_lane_s16(a, b, 3); 3708} 3709 3710// CHECK-LABEL: test_vld3_lane_s32 3711// CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3712int32x2x3_t test_vld3_lane_s32(int32_t const * a, int32x2x3_t b) { 3713 return vld3_lane_s32(a, b, 1); 3714} 3715 3716// CHECK-LABEL: test_vld3_lane_f16 3717// CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3718float16x4x3_t test_vld3_lane_f16(float16_t const * a, float16x4x3_t b) { 3719 return vld3_lane_f16(a, b, 3); 3720} 3721 3722// CHECK-LABEL: test_vld3_lane_f32 3723// CHECK: vld3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3724float32x2x3_t test_vld3_lane_f32(float32_t const * a, float32x2x3_t b) { 3725 return vld3_lane_f32(a, b, 1); 3726} 3727 3728// CHECK-LABEL: test_vld3_lane_p8 3729// CHECK: vld3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3730poly8x8x3_t test_vld3_lane_p8(poly8_t const * a, poly8x8x3_t b) { 3731 return vld3_lane_p8(a, b, 7); 3732} 3733 3734// CHECK-LABEL: test_vld3_lane_p16 3735// CHECK: vld3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 3736poly16x4x3_t test_vld3_lane_p16(poly16_t const * a, poly16x4x3_t b) { 3737 return vld3_lane_p16(a, b, 3); 3738} 3739 3740 3741// CHECK-LABEL: test_vld4q_u8 3742// CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3743uint8x16x4_t test_vld4q_u8(uint8_t const * a) { 3744 return vld4q_u8(a); 3745} 3746 3747// CHECK-LABEL: test_vld4q_u16 3748// CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3749uint16x8x4_t test_vld4q_u16(uint16_t const * a) { 3750 return vld4q_u16(a); 3751} 3752 3753// CHECK-LABEL: test_vld4q_u32 3754// CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3755uint32x4x4_t test_vld4q_u32(uint32_t const * a) { 3756 return vld4q_u32(a); 3757} 3758 3759// CHECK-LABEL: test_vld4q_s8 3760// CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3761int8x16x4_t test_vld4q_s8(int8_t const * a) { 3762 return vld4q_s8(a); 3763} 3764 3765// CHECK-LABEL: test_vld4q_s16 3766// CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3767int16x8x4_t test_vld4q_s16(int16_t const * a) { 3768 return vld4q_s16(a); 3769} 3770 3771// CHECK-LABEL: test_vld4q_s32 3772// CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3773int32x4x4_t test_vld4q_s32(int32_t const * a) { 3774 return vld4q_s32(a); 3775} 3776 3777// CHECK-LABEL: test_vld4q_f16 3778// CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3779float16x8x4_t test_vld4q_f16(float16_t const * a) { 3780 return vld4q_f16(a); 3781} 3782 3783// CHECK-LABEL: test_vld4q_f32 3784// CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3785float32x4x4_t test_vld4q_f32(float32_t const * a) { 3786 return vld4q_f32(a); 3787} 3788 3789// CHECK-LABEL: test_vld4q_p8 3790// CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3791poly8x16x4_t test_vld4q_p8(poly8_t const * a) { 3792 return vld4q_p8(a); 3793} 3794 3795// CHECK-LABEL: test_vld4q_p16 3796// CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 3797poly16x8x4_t test_vld4q_p16(poly16_t const * a) { 3798 return vld4q_p16(a); 3799} 3800 3801// CHECK-LABEL: test_vld4_u8 3802// CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3803uint8x8x4_t test_vld4_u8(uint8_t const * a) { 3804 return vld4_u8(a); 3805} 3806 3807// CHECK-LABEL: test_vld4_u16 3808// CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3809uint16x4x4_t test_vld4_u16(uint16_t const * a) { 3810 return vld4_u16(a); 3811} 3812 3813// CHECK-LABEL: test_vld4_u32 3814// CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3815uint32x2x4_t test_vld4_u32(uint32_t const * a) { 3816 return vld4_u32(a); 3817} 3818 3819// CHECK-LABEL: test_vld4_u64 3820// CHECK: vld1.64 3821uint64x1x4_t test_vld4_u64(uint64_t const * a) { 3822 return vld4_u64(a); 3823} 3824 3825// CHECK-LABEL: test_vld4_s8 3826// CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3827int8x8x4_t test_vld4_s8(int8_t const * a) { 3828 return vld4_s8(a); 3829} 3830 3831// CHECK-LABEL: test_vld4_s16 3832// CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3833int16x4x4_t test_vld4_s16(int16_t const * a) { 3834 return vld4_s16(a); 3835} 3836 3837// CHECK-LABEL: test_vld4_s32 3838// CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3839int32x2x4_t test_vld4_s32(int32_t const * a) { 3840 return vld4_s32(a); 3841} 3842 3843// CHECK-LABEL: test_vld4_s64 3844// CHECK: vld1.64 3845int64x1x4_t test_vld4_s64(int64_t const * a) { 3846 return vld4_s64(a); 3847} 3848 3849// CHECK-LABEL: test_vld4_f16 3850// CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3851float16x4x4_t test_vld4_f16(float16_t const * a) { 3852 return vld4_f16(a); 3853} 3854 3855// CHECK-LABEL: test_vld4_f32 3856// CHECK: vld4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3857float32x2x4_t test_vld4_f32(float32_t const * a) { 3858 return vld4_f32(a); 3859} 3860 3861// CHECK-LABEL: test_vld4_p8 3862// CHECK: vld4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3863poly8x8x4_t test_vld4_p8(poly8_t const * a) { 3864 return vld4_p8(a); 3865} 3866 3867// CHECK-LABEL: test_vld4_p16 3868// CHECK: vld4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 3869poly16x4x4_t test_vld4_p16(poly16_t const * a) { 3870 return vld4_p16(a); 3871} 3872 3873 3874// CHECK-LABEL: test_vld4_dup_u8 3875// CHECK: vld4.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3876uint8x8x4_t test_vld4_dup_u8(uint8_t const * a) { 3877 return vld4_dup_u8(a); 3878} 3879 3880// CHECK-LABEL: test_vld4_dup_u16 3881// CHECK: vld4.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3882uint16x4x4_t test_vld4_dup_u16(uint16_t const * a) { 3883 return vld4_dup_u16(a); 3884} 3885 3886// CHECK-LABEL: test_vld4_dup_u32 3887// CHECK: vld4.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3888uint32x2x4_t test_vld4_dup_u32(uint32_t const * a) { 3889 return vld4_dup_u32(a); 3890} 3891 3892// CHECK-LABEL: test_vld4_dup_u64 3893// CHECK: vld1.64 3894uint64x1x4_t test_vld4_dup_u64(uint64_t const * a) { 3895 return vld4_dup_u64(a); 3896} 3897 3898// CHECK-LABEL: test_vld4_dup_s8 3899// CHECK: vld4.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3900int8x8x4_t test_vld4_dup_s8(int8_t const * a) { 3901 return vld4_dup_s8(a); 3902} 3903 3904// CHECK-LABEL: test_vld4_dup_s16 3905// CHECK: vld4.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3906int16x4x4_t test_vld4_dup_s16(int16_t const * a) { 3907 return vld4_dup_s16(a); 3908} 3909 3910// CHECK-LABEL: test_vld4_dup_s32 3911// CHECK: vld4.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3912int32x2x4_t test_vld4_dup_s32(int32_t const * a) { 3913 return vld4_dup_s32(a); 3914} 3915 3916// CHECK-LABEL: test_vld4_dup_s64 3917// CHECK: vld1.64 3918int64x1x4_t test_vld4_dup_s64(int64_t const * a) { 3919 return vld4_dup_s64(a); 3920} 3921 3922// CHECK-LABEL: test_vld4_dup_f16 3923// CHECK: vld4.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3924float16x4x4_t test_vld4_dup_f16(float16_t const * a) { 3925 return vld4_dup_f16(a); 3926} 3927 3928// CHECK-LABEL: test_vld4_dup_f32 3929// CHECK: vld4.32 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3930float32x2x4_t test_vld4_dup_f32(float32_t const * a) { 3931 return vld4_dup_f32(a); 3932} 3933 3934// CHECK-LABEL: test_vld4_dup_p8 3935// CHECK: vld4.8 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3936poly8x8x4_t test_vld4_dup_p8(poly8_t const * a) { 3937 return vld4_dup_p8(a); 3938} 3939 3940// CHECK-LABEL: test_vld4_dup_p16 3941// CHECK: vld4.16 {d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[], d{{[0-9]+}}[]}, [r{{[0-9]+}}] 3942poly16x4x4_t test_vld4_dup_p16(poly16_t const * a) { 3943 return vld4_dup_p16(a); 3944} 3945 3946 3947// CHECK-LABEL: test_vld4q_lane_u16 3948// CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3949uint16x8x4_t test_vld4q_lane_u16(uint16_t const * a, uint16x8x4_t b) { 3950 return vld4q_lane_u16(a, b, 7); 3951} 3952 3953// CHECK-LABEL: test_vld4q_lane_u32 3954// CHECK: vld4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3955uint32x4x4_t test_vld4q_lane_u32(uint32_t const * a, uint32x4x4_t b) { 3956 return vld4q_lane_u32(a, b, 3); 3957} 3958 3959// CHECK-LABEL: test_vld4q_lane_s16 3960// CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3961int16x8x4_t test_vld4q_lane_s16(int16_t const * a, int16x8x4_t b) { 3962 return vld4q_lane_s16(a, b, 7); 3963} 3964 3965// CHECK-LABEL: test_vld4q_lane_s32 3966// CHECK: vld4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3967int32x4x4_t test_vld4q_lane_s32(int32_t const * a, int32x4x4_t b) { 3968 return vld4q_lane_s32(a, b, 3); 3969} 3970 3971// CHECK-LABEL: test_vld4q_lane_f16 3972// CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3973float16x8x4_t test_vld4q_lane_f16(float16_t const * a, float16x8x4_t b) { 3974 return vld4q_lane_f16(a, b, 7); 3975} 3976 3977// CHECK-LABEL: test_vld4q_lane_f32 3978// CHECK: vld4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3979float32x4x4_t test_vld4q_lane_f32(float32_t const * a, float32x4x4_t b) { 3980 return vld4q_lane_f32(a, b, 3); 3981} 3982 3983// CHECK-LABEL: test_vld4q_lane_p16 3984// CHECK: vld4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 3985poly16x8x4_t test_vld4q_lane_p16(poly16_t const * a, poly16x8x4_t b) { 3986 return vld4q_lane_p16(a, b, 7); 3987} 3988 3989// CHECK-LABEL: test_vld4_lane_u8 3990// 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]+}}] 3991uint8x8x4_t test_vld4_lane_u8(uint8_t const * a, uint8x8x4_t b) { 3992 return vld4_lane_u8(a, b, 7); 3993} 3994 3995// CHECK-LABEL: test_vld4_lane_u16 3996// 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]+}}] 3997uint16x4x4_t test_vld4_lane_u16(uint16_t const * a, uint16x4x4_t b) { 3998 return vld4_lane_u16(a, b, 3); 3999} 4000 4001// CHECK-LABEL: test_vld4_lane_u32 4002// 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]+}}] 4003uint32x2x4_t test_vld4_lane_u32(uint32_t const * a, uint32x2x4_t b) { 4004 return vld4_lane_u32(a, b, 1); 4005} 4006 4007// CHECK-LABEL: test_vld4_lane_s8 4008// 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]+}}] 4009int8x8x4_t test_vld4_lane_s8(int8_t const * a, int8x8x4_t b) { 4010 return vld4_lane_s8(a, b, 7); 4011} 4012 4013// CHECK-LABEL: test_vld4_lane_s16 4014// 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]+}}] 4015int16x4x4_t test_vld4_lane_s16(int16_t const * a, int16x4x4_t b) { 4016 return vld4_lane_s16(a, b, 3); 4017} 4018 4019// CHECK-LABEL: test_vld4_lane_s32 4020// 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]+}}] 4021int32x2x4_t test_vld4_lane_s32(int32_t const * a, int32x2x4_t b) { 4022 return vld4_lane_s32(a, b, 1); 4023} 4024 4025// CHECK-LABEL: test_vld4_lane_f16 4026// 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]+}}] 4027float16x4x4_t test_vld4_lane_f16(float16_t const * a, float16x4x4_t b) { 4028 return vld4_lane_f16(a, b, 3); 4029} 4030 4031// CHECK-LABEL: test_vld4_lane_f32 4032// 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]+}}] 4033float32x2x4_t test_vld4_lane_f32(float32_t const * a, float32x2x4_t b) { 4034 return vld4_lane_f32(a, b, 1); 4035} 4036 4037// CHECK-LABEL: test_vld4_lane_p8 4038// 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]+}}] 4039poly8x8x4_t test_vld4_lane_p8(poly8_t const * a, poly8x8x4_t b) { 4040 return vld4_lane_p8(a, b, 7); 4041} 4042 4043// CHECK-LABEL: test_vld4_lane_p16 4044// 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]+}}] 4045poly16x4x4_t test_vld4_lane_p16(poly16_t const * a, poly16x4x4_t b) { 4046 return vld4_lane_p16(a, b, 3); 4047} 4048 4049 4050// CHECK-LABEL: test_vmax_s8 4051// CHECK: vmax.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4052int8x8_t test_vmax_s8(int8x8_t a, int8x8_t b) { 4053 return vmax_s8(a, b); 4054} 4055 4056// CHECK-LABEL: test_vmax_s16 4057// CHECK: vmax.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4058int16x4_t test_vmax_s16(int16x4_t a, int16x4_t b) { 4059 return vmax_s16(a, b); 4060} 4061 4062// CHECK-LABEL: test_vmax_s32 4063// CHECK: vmax.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4064int32x2_t test_vmax_s32(int32x2_t a, int32x2_t b) { 4065 return vmax_s32(a, b); 4066} 4067 4068// CHECK-LABEL: test_vmax_u8 4069// CHECK: vmax.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4070uint8x8_t test_vmax_u8(uint8x8_t a, uint8x8_t b) { 4071 return vmax_u8(a, b); 4072} 4073 4074// CHECK-LABEL: test_vmax_u16 4075// CHECK: vmax.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4076uint16x4_t test_vmax_u16(uint16x4_t a, uint16x4_t b) { 4077 return vmax_u16(a, b); 4078} 4079 4080// CHECK-LABEL: test_vmax_u32 4081// CHECK: vmax.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4082uint32x2_t test_vmax_u32(uint32x2_t a, uint32x2_t b) { 4083 return vmax_u32(a, b); 4084} 4085 4086// CHECK-LABEL: test_vmax_f32 4087// CHECK: vmax.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4088float32x2_t test_vmax_f32(float32x2_t a, float32x2_t b) { 4089 return vmax_f32(a, b); 4090} 4091 4092// CHECK-LABEL: test_vmaxq_s8 4093// CHECK: vmax.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4094int8x16_t test_vmaxq_s8(int8x16_t a, int8x16_t b) { 4095 return vmaxq_s8(a, b); 4096} 4097 4098// CHECK-LABEL: test_vmaxq_s16 4099// CHECK: vmax.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4100int16x8_t test_vmaxq_s16(int16x8_t a, int16x8_t b) { 4101 return vmaxq_s16(a, b); 4102} 4103 4104// CHECK-LABEL: test_vmaxq_s32 4105// CHECK: vmax.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4106int32x4_t test_vmaxq_s32(int32x4_t a, int32x4_t b) { 4107 return vmaxq_s32(a, b); 4108} 4109 4110// CHECK-LABEL: test_vmaxq_u8 4111// CHECK: vmax.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4112uint8x16_t test_vmaxq_u8(uint8x16_t a, uint8x16_t b) { 4113 return vmaxq_u8(a, b); 4114} 4115 4116// CHECK-LABEL: test_vmaxq_u16 4117// CHECK: vmax.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4118uint16x8_t test_vmaxq_u16(uint16x8_t a, uint16x8_t b) { 4119 return vmaxq_u16(a, b); 4120} 4121 4122// CHECK-LABEL: test_vmaxq_u32 4123// CHECK: vmax.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4124uint32x4_t test_vmaxq_u32(uint32x4_t a, uint32x4_t b) { 4125 return vmaxq_u32(a, b); 4126} 4127 4128// CHECK-LABEL: test_vmaxq_f32 4129// CHECK: vmax.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4130float32x4_t test_vmaxq_f32(float32x4_t a, float32x4_t b) { 4131 return vmaxq_f32(a, b); 4132} 4133 4134 4135// CHECK-LABEL: test_vmin_s8 4136// CHECK: vmin.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4137int8x8_t test_vmin_s8(int8x8_t a, int8x8_t b) { 4138 return vmin_s8(a, b); 4139} 4140 4141// CHECK-LABEL: test_vmin_s16 4142// CHECK: vmin.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4143int16x4_t test_vmin_s16(int16x4_t a, int16x4_t b) { 4144 return vmin_s16(a, b); 4145} 4146 4147// CHECK-LABEL: test_vmin_s32 4148// CHECK: vmin.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4149int32x2_t test_vmin_s32(int32x2_t a, int32x2_t b) { 4150 return vmin_s32(a, b); 4151} 4152 4153// CHECK-LABEL: test_vmin_u8 4154// CHECK: vmin.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4155uint8x8_t test_vmin_u8(uint8x8_t a, uint8x8_t b) { 4156 return vmin_u8(a, b); 4157} 4158 4159// CHECK-LABEL: test_vmin_u16 4160// CHECK: vmin.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4161uint16x4_t test_vmin_u16(uint16x4_t a, uint16x4_t b) { 4162 return vmin_u16(a, b); 4163} 4164 4165// CHECK-LABEL: test_vmin_u32 4166// CHECK: vmin.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4167uint32x2_t test_vmin_u32(uint32x2_t a, uint32x2_t b) { 4168 return vmin_u32(a, b); 4169} 4170 4171// CHECK-LABEL: test_vmin_f32 4172// CHECK: vmin.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4173float32x2_t test_vmin_f32(float32x2_t a, float32x2_t b) { 4174 return vmin_f32(a, b); 4175} 4176 4177// CHECK-LABEL: test_vminq_s8 4178// CHECK: vmin.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4179int8x16_t test_vminq_s8(int8x16_t a, int8x16_t b) { 4180 return vminq_s8(a, b); 4181} 4182 4183// CHECK-LABEL: test_vminq_s16 4184// CHECK: vmin.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4185int16x8_t test_vminq_s16(int16x8_t a, int16x8_t b) { 4186 return vminq_s16(a, b); 4187} 4188 4189// CHECK-LABEL: test_vminq_s32 4190// CHECK: vmin.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4191int32x4_t test_vminq_s32(int32x4_t a, int32x4_t b) { 4192 return vminq_s32(a, b); 4193} 4194 4195// CHECK-LABEL: test_vminq_u8 4196// CHECK: vmin.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4197uint8x16_t test_vminq_u8(uint8x16_t a, uint8x16_t b) { 4198 return vminq_u8(a, b); 4199} 4200 4201// CHECK-LABEL: test_vminq_u16 4202// CHECK: vmin.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4203uint16x8_t test_vminq_u16(uint16x8_t a, uint16x8_t b) { 4204 return vminq_u16(a, b); 4205} 4206 4207// CHECK-LABEL: test_vminq_u32 4208// CHECK: vmin.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4209uint32x4_t test_vminq_u32(uint32x4_t a, uint32x4_t b) { 4210 return vminq_u32(a, b); 4211} 4212 4213// CHECK-LABEL: test_vminq_f32 4214// CHECK: vmin.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4215float32x4_t test_vminq_f32(float32x4_t a, float32x4_t b) { 4216 return vminq_f32(a, b); 4217} 4218 4219 4220// CHECK-LABEL: test_vmla_s8 4221// CHECK: vmla.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4222int8x8_t test_vmla_s8(int8x8_t a, int8x8_t b, int8x8_t c) { 4223 return vmla_s8(a, b, c); 4224} 4225 4226// CHECK-LABEL: test_vmla_s16 4227// CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4228int16x4_t test_vmla_s16(int16x4_t a, int16x4_t b, int16x4_t c) { 4229 return vmla_s16(a, b, c); 4230} 4231 4232// CHECK-LABEL: test_vmla_s32 4233// CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4234int32x2_t test_vmla_s32(int32x2_t a, int32x2_t b, int32x2_t c) { 4235 return vmla_s32(a, b, c); 4236} 4237 4238// CHECK-LABEL: test_vmla_f32 4239// CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4240// CHECK-SWIFT: vadd.f32 4241// CHECK-A57: vmla.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4242float32x2_t test_vmla_f32(float32x2_t a, float32x2_t b, float32x2_t c) { 4243 return vmla_f32(a, b, c); 4244} 4245 4246// CHECK-LABEL: test_vmla_u8 4247// CHECK: vmla.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4248uint8x8_t test_vmla_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) { 4249 return vmla_u8(a, b, c); 4250} 4251 4252// CHECK-LABEL: test_vmla_u16 4253// CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4254uint16x4_t test_vmla_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) { 4255 return vmla_u16(a, b, c); 4256} 4257 4258// CHECK-LABEL: test_vmla_u32 4259// CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4260uint32x2_t test_vmla_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) { 4261 return vmla_u32(a, b, c); 4262} 4263 4264// CHECK-LABEL: test_vmlaq_s8 4265// CHECK: vmla.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4266int8x16_t test_vmlaq_s8(int8x16_t a, int8x16_t b, int8x16_t c) { 4267 return vmlaq_s8(a, b, c); 4268} 4269 4270// CHECK-LABEL: test_vmlaq_s16 4271// CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4272int16x8_t test_vmlaq_s16(int16x8_t a, int16x8_t b, int16x8_t c) { 4273 return vmlaq_s16(a, b, c); 4274} 4275 4276// CHECK-LABEL: test_vmlaq_s32 4277// CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4278int32x4_t test_vmlaq_s32(int32x4_t a, int32x4_t b, int32x4_t c) { 4279 return vmlaq_s32(a, b, c); 4280} 4281 4282// CHECK-LABEL: test_vmlaq_f32 4283// CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4284// CHECK-SWIFT: vadd.f32 4285// CHECK-A57: vmla.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4286float32x4_t test_vmlaq_f32(float32x4_t a, float32x4_t b, float32x4_t c) { 4287 return vmlaq_f32(a, b, c); 4288} 4289 4290// CHECK-LABEL: test_vmlaq_u8 4291// CHECK: vmla.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4292uint8x16_t test_vmlaq_u8(uint8x16_t a, uint8x16_t b, uint8x16_t c) { 4293 return vmlaq_u8(a, b, c); 4294} 4295 4296// CHECK-LABEL: test_vmlaq_u16 4297// CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4298uint16x8_t test_vmlaq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t c) { 4299 return vmlaq_u16(a, b, c); 4300} 4301 4302// CHECK-LABEL: test_vmlaq_u32 4303// CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4304uint32x4_t test_vmlaq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t c) { 4305 return vmlaq_u32(a, b, c); 4306} 4307 4308 4309// CHECK-LABEL: test_vmlal_s8 4310// CHECK: vmlal.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4311int16x8_t test_vmlal_s8(int16x8_t a, int8x8_t b, int8x8_t c) { 4312 return vmlal_s8(a, b, c); 4313} 4314 4315// CHECK-LABEL: test_vmlal_s16 4316// CHECK: vmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4317int32x4_t test_vmlal_s16(int32x4_t a, int16x4_t b, int16x4_t c) { 4318 return vmlal_s16(a, b, c); 4319} 4320 4321// CHECK-LABEL: test_vmlal_s32 4322// CHECK: vmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4323int64x2_t test_vmlal_s32(int64x2_t a, int32x2_t b, int32x2_t c) { 4324 return vmlal_s32(a, b, c); 4325} 4326 4327// CHECK-LABEL: test_vmlal_u8 4328// CHECK: vmlal.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4329uint16x8_t test_vmlal_u8(uint16x8_t a, uint8x8_t b, uint8x8_t c) { 4330 return vmlal_u8(a, b, c); 4331} 4332 4333// CHECK-LABEL: test_vmlal_u16 4334// CHECK: vmlal.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4335uint32x4_t test_vmlal_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) { 4336 return vmlal_u16(a, b, c); 4337} 4338 4339// CHECK-LABEL: test_vmlal_u32 4340// CHECK: vmlal.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4341uint64x2_t test_vmlal_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) { 4342 return vmlal_u32(a, b, c); 4343} 4344 4345 4346// CHECK-LABEL: test_vmlal_lane_s16 4347// CHECK: vmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4348int32x4_t test_vmlal_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) { 4349 return vmlal_lane_s16(a, b, c, 3); 4350} 4351 4352// CHECK-LABEL: test_vmlal_lane_s32 4353// CHECK: vmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4354int64x2_t test_vmlal_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) { 4355 return vmlal_lane_s32(a, b, c, 1); 4356} 4357 4358// CHECK-LABEL: test_vmlal_lane_u16 4359// CHECK: vmlal.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4360uint32x4_t test_vmlal_lane_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) { 4361 return vmlal_lane_u16(a, b, c, 3); 4362} 4363 4364// CHECK-LABEL: test_vmlal_lane_u32 4365// CHECK: vmlal.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4366uint64x2_t test_vmlal_lane_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) { 4367 return vmlal_lane_u32(a, b, c, 1); 4368} 4369 4370 4371// CHECK-LABEL: test_vmlal_n_s16 4372// CHECK: vmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4373int32x4_t test_vmlal_n_s16(int32x4_t a, int16x4_t b, int16_t c) { 4374 return vmlal_n_s16(a, b, c); 4375} 4376 4377// CHECK-LABEL: test_vmlal_n_s32 4378// CHECK: vmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4379int64x2_t test_vmlal_n_s32(int64x2_t a, int32x2_t b, int32_t c) { 4380 return vmlal_n_s32(a, b, c); 4381} 4382 4383// CHECK-LABEL: test_vmlal_n_u16 4384// CHECK: vmlal.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4385uint32x4_t test_vmlal_n_u16(uint32x4_t a, uint16x4_t b, uint16_t c) { 4386 return vmlal_n_u16(a, b, c); 4387} 4388 4389// CHECK-LABEL: test_vmlal_n_u32 4390// CHECK: vmlal.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4391uint64x2_t test_vmlal_n_u32(uint64x2_t a, uint32x2_t b, uint32_t c) { 4392 return vmlal_n_u32(a, b, c); 4393} 4394 4395 4396// CHECK-LABEL: test_vmla_lane_s16 4397// CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4398int16x4_t test_vmla_lane_s16(int16x4_t a, int16x4_t b, int16x4_t c) { 4399 return vmla_lane_s16(a, b, c, 3); 4400} 4401 4402// CHECK-LABEL: test_vmla_lane_s32 4403// CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4404int32x2_t test_vmla_lane_s32(int32x2_t a, int32x2_t b, int32x2_t c) { 4405 return vmla_lane_s32(a, b, c, 1); 4406} 4407 4408// CHECK-LABEL: test_vmla_lane_u16 4409// CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4410uint16x4_t test_vmla_lane_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) { 4411 return vmla_lane_u16(a, b, c, 3); 4412} 4413 4414// CHECK-LABEL: test_vmla_lane_u32 4415// CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4416uint32x2_t test_vmla_lane_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) { 4417 return vmla_lane_u32(a, b, c, 1); 4418} 4419 4420// CHECK-LABEL: test_vmla_lane_f32 4421// CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4422// CHECK-SWIFT: vadd.f32 4423// CHECK-A57: vmla.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4424float32x2_t test_vmla_lane_f32(float32x2_t a, float32x2_t b, float32x2_t c) { 4425 return vmla_lane_f32(a, b, c, 1); 4426} 4427 4428// CHECK-LABEL: test_vmlaq_lane_s16 4429// CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4430int16x8_t test_vmlaq_lane_s16(int16x8_t a, int16x8_t b, int16x4_t c) { 4431 return vmlaq_lane_s16(a, b, c, 3); 4432} 4433 4434// CHECK-LABEL: test_vmlaq_lane_s32 4435// CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4436int32x4_t test_vmlaq_lane_s32(int32x4_t a, int32x4_t b, int32x2_t c) { 4437 return vmlaq_lane_s32(a, b, c, 1); 4438} 4439 4440// CHECK-LABEL: test_vmlaq_lane_u16 4441// CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4442uint16x8_t test_vmlaq_lane_u16(uint16x8_t a, uint16x8_t b, uint16x4_t c) { 4443 return vmlaq_lane_u16(a, b, c, 3); 4444} 4445 4446// CHECK-LABEL: test_vmlaq_lane_u32 4447// CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4448uint32x4_t test_vmlaq_lane_u32(uint32x4_t a, uint32x4_t b, uint32x2_t c) { 4449 return vmlaq_lane_u32(a, b, c, 1); 4450} 4451 4452// CHECK-LABEL: test_vmlaq_lane_f32 4453// CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4454// CHECK-SWIFT: vadd.f32 4455// CHECK-A57: vmla.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4456float32x4_t test_vmlaq_lane_f32(float32x4_t a, float32x4_t b, float32x2_t c) { 4457 return vmlaq_lane_f32(a, b, c, 1); 4458} 4459 4460 4461// CHECK-LABEL: test_vmla_n_s16 4462// CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4463int16x4_t test_vmla_n_s16(int16x4_t a, int16x4_t b, int16_t c) { 4464 return vmla_n_s16(a, b, c); 4465} 4466 4467// CHECK-LABEL: test_vmla_n_s32 4468// CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4469int32x2_t test_vmla_n_s32(int32x2_t a, int32x2_t b, int32_t c) { 4470 return vmla_n_s32(a, b, c); 4471} 4472 4473// CHECK-LABEL: test_vmla_n_u16 4474// CHECK: vmla.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4475uint16x4_t test_vmla_n_u16(uint16x4_t a, uint16x4_t b, uint16_t c) { 4476 return vmla_n_u16(a, b, c); 4477} 4478 4479// CHECK-LABEL: test_vmla_n_u32 4480// CHECK: vmla.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4481uint32x2_t test_vmla_n_u32(uint32x2_t a, uint32x2_t b, uint32_t c) { 4482 return vmla_n_u32(a, b, c); 4483} 4484 4485// CHECK-LABEL: test_vmla_n_f32 4486// CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4487// CHECK-SWIFT: vadd.f32 4488// CHECK-A57: vmla.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4489float32x2_t test_vmla_n_f32(float32x2_t a, float32x2_t b, float32_t c) { 4490 return vmla_n_f32(a, b, c); 4491} 4492 4493// CHECK-LABEL: test_vmlaq_n_s16 4494// CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4495int16x8_t test_vmlaq_n_s16(int16x8_t a, int16x8_t b, int16_t c) { 4496 return vmlaq_n_s16(a, b, c); 4497} 4498 4499// CHECK-LABEL: test_vmlaq_n_s32 4500// CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4501int32x4_t test_vmlaq_n_s32(int32x4_t a, int32x4_t b, int32_t c) { 4502 return vmlaq_n_s32(a, b, c); 4503} 4504 4505// CHECK-LABEL: test_vmlaq_n_u16 4506// CHECK: vmla.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4507uint16x8_t test_vmlaq_n_u16(uint16x8_t a, uint16x8_t b, uint16_t c) { 4508 return vmlaq_n_u16(a, b, c); 4509} 4510 4511// CHECK-LABEL: test_vmlaq_n_u32 4512// CHECK: vmla.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4513uint32x4_t test_vmlaq_n_u32(uint32x4_t a, uint32x4_t b, uint32_t c) { 4514 return vmlaq_n_u32(a, b, c); 4515} 4516 4517// CHECK-LABEL: test_vmlaq_n_f32 4518// CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[0] 4519// CHECK-SWIFT: vadd.f32 4520// CHECK-A57: vld1.32 {d{{[0-9]+}}[], d{{[0-9]+}}[]}, 4521// CHECK-A57: vmla.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4522float32x4_t test_vmlaq_n_f32(float32x4_t a, float32x4_t b, float32_t c) { 4523 return vmlaq_n_f32(a, b, c); 4524} 4525 4526 4527// CHECK-LABEL: test_vmls_s8 4528// CHECK: vmls.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4529int8x8_t test_vmls_s8(int8x8_t a, int8x8_t b, int8x8_t c) { 4530 return vmls_s8(a, b, c); 4531} 4532 4533// CHECK-LABEL: test_vmls_s16 4534// CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4535int16x4_t test_vmls_s16(int16x4_t a, int16x4_t b, int16x4_t c) { 4536 return vmls_s16(a, b, c); 4537} 4538 4539// CHECK-LABEL: test_vmls_s32 4540// CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4541int32x2_t test_vmls_s32(int32x2_t a, int32x2_t b, int32x2_t c) { 4542 return vmls_s32(a, b, c); 4543} 4544 4545// CHECK-LABEL: test_vmls_f32 4546// CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4547// CHECK-SWIFT: vsub.f32 4548// CHECK-A57: vmls.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4549float32x2_t test_vmls_f32(float32x2_t a, float32x2_t b, float32x2_t c) { 4550 return vmls_f32(a, b, c); 4551} 4552 4553// CHECK-LABEL: test_vmls_u8 4554// CHECK: vmls.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4555uint8x8_t test_vmls_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) { 4556 return vmls_u8(a, b, c); 4557} 4558 4559// CHECK-LABEL: test_vmls_u16 4560// CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4561uint16x4_t test_vmls_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) { 4562 return vmls_u16(a, b, c); 4563} 4564 4565// CHECK-LABEL: test_vmls_u32 4566// CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4567uint32x2_t test_vmls_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) { 4568 return vmls_u32(a, b, c); 4569} 4570 4571// CHECK-LABEL: test_vmlsq_s8 4572// CHECK: vmls.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4573int8x16_t test_vmlsq_s8(int8x16_t a, int8x16_t b, int8x16_t c) { 4574 return vmlsq_s8(a, b, c); 4575} 4576 4577// CHECK-LABEL: test_vmlsq_s16 4578// CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4579int16x8_t test_vmlsq_s16(int16x8_t a, int16x8_t b, int16x8_t c) { 4580 return vmlsq_s16(a, b, c); 4581} 4582 4583// CHECK-LABEL: test_vmlsq_s32 4584// CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4585int32x4_t test_vmlsq_s32(int32x4_t a, int32x4_t b, int32x4_t c) { 4586 return vmlsq_s32(a, b, c); 4587} 4588 4589// CHECK-LABEL: test_vmlsq_f32 4590// CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4591// CHECK-SWIFT: vsub.f32 4592// CHECK-A57: vmls.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4593float32x4_t test_vmlsq_f32(float32x4_t a, float32x4_t b, float32x4_t c) { 4594 return vmlsq_f32(a, b, c); 4595} 4596 4597// CHECK-LABEL: test_vmlsq_u8 4598// CHECK: vmls.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4599uint8x16_t test_vmlsq_u8(uint8x16_t a, uint8x16_t b, uint8x16_t c) { 4600 return vmlsq_u8(a, b, c); 4601} 4602 4603// CHECK-LABEL: test_vmlsq_u16 4604// CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4605uint16x8_t test_vmlsq_u16(uint16x8_t a, uint16x8_t b, uint16x8_t c) { 4606 return vmlsq_u16(a, b, c); 4607} 4608 4609// CHECK-LABEL: test_vmlsq_u32 4610// CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4611uint32x4_t test_vmlsq_u32(uint32x4_t a, uint32x4_t b, uint32x4_t c) { 4612 return vmlsq_u32(a, b, c); 4613} 4614 4615 4616// CHECK-LABEL: test_vmlsl_s8 4617// CHECK: vmlsl.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4618int16x8_t test_vmlsl_s8(int16x8_t a, int8x8_t b, int8x8_t c) { 4619 return vmlsl_s8(a, b, c); 4620} 4621 4622// CHECK-LABEL: test_vmlsl_s16 4623// CHECK: vmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4624int32x4_t test_vmlsl_s16(int32x4_t a, int16x4_t b, int16x4_t c) { 4625 return vmlsl_s16(a, b, c); 4626} 4627 4628// CHECK-LABEL: test_vmlsl_s32 4629// CHECK: vmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4630int64x2_t test_vmlsl_s32(int64x2_t a, int32x2_t b, int32x2_t c) { 4631 return vmlsl_s32(a, b, c); 4632} 4633 4634// CHECK-LABEL: test_vmlsl_u8 4635// CHECK: vmlsl.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4636uint16x8_t test_vmlsl_u8(uint16x8_t a, uint8x8_t b, uint8x8_t c) { 4637 return vmlsl_u8(a, b, c); 4638} 4639 4640// CHECK-LABEL: test_vmlsl_u16 4641// CHECK: vmlsl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4642uint32x4_t test_vmlsl_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) { 4643 return vmlsl_u16(a, b, c); 4644} 4645 4646// CHECK-LABEL: test_vmlsl_u32 4647// CHECK: vmlsl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4648uint64x2_t test_vmlsl_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) { 4649 return vmlsl_u32(a, b, c); 4650} 4651 4652 4653// CHECK-LABEL: test_vmlsl_lane_s16 4654// CHECK: vmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4655int32x4_t test_vmlsl_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) { 4656 return vmlsl_lane_s16(a, b, c, 3); 4657} 4658 4659// CHECK-LABEL: test_vmlsl_lane_s32 4660// CHECK: vmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4661int64x2_t test_vmlsl_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) { 4662 return vmlsl_lane_s32(a, b, c, 1); 4663} 4664 4665// CHECK-LABEL: test_vmlsl_lane_u16 4666// CHECK: vmlsl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4667uint32x4_t test_vmlsl_lane_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) { 4668 return vmlsl_lane_u16(a, b, c, 3); 4669} 4670 4671// CHECK-LABEL: test_vmlsl_lane_u32 4672// CHECK: vmlsl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4673uint64x2_t test_vmlsl_lane_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) { 4674 return vmlsl_lane_u32(a, b, c, 1); 4675} 4676 4677 4678// CHECK-LABEL: test_vmlsl_n_s16 4679// CHECK: vmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4680int32x4_t test_vmlsl_n_s16(int32x4_t a, int16x4_t b, int16_t c) { 4681 return vmlsl_n_s16(a, b, c); 4682} 4683 4684// CHECK-LABEL: test_vmlsl_n_s32 4685// CHECK: vmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4686int64x2_t test_vmlsl_n_s32(int64x2_t a, int32x2_t b, int32_t c) { 4687 return vmlsl_n_s32(a, b, c); 4688} 4689 4690// CHECK-LABEL: test_vmlsl_n_u16 4691// CHECK: vmlsl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4692uint32x4_t test_vmlsl_n_u16(uint32x4_t a, uint16x4_t b, uint16_t c) { 4693 return vmlsl_n_u16(a, b, c); 4694} 4695 4696// CHECK-LABEL: test_vmlsl_n_u32 4697// CHECK: vmlsl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4698uint64x2_t test_vmlsl_n_u32(uint64x2_t a, uint32x2_t b, uint32_t c) { 4699 return vmlsl_n_u32(a, b, c); 4700} 4701 4702 4703// CHECK-LABEL: test_vmls_lane_s16 4704// CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4705int16x4_t test_vmls_lane_s16(int16x4_t a, int16x4_t b, int16x4_t c) { 4706 return vmls_lane_s16(a, b, c, 3); 4707} 4708 4709// CHECK-LABEL: test_vmls_lane_s32 4710// CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4711int32x2_t test_vmls_lane_s32(int32x2_t a, int32x2_t b, int32x2_t c) { 4712 return vmls_lane_s32(a, b, c, 1); 4713} 4714 4715// CHECK-LABEL: test_vmls_lane_u16 4716// CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4717uint16x4_t test_vmls_lane_u16(uint16x4_t a, uint16x4_t b, uint16x4_t c) { 4718 return vmls_lane_u16(a, b, c, 3); 4719} 4720 4721// CHECK-LABEL: test_vmls_lane_u32 4722// CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4723uint32x2_t test_vmls_lane_u32(uint32x2_t a, uint32x2_t b, uint32x2_t c) { 4724 return vmls_lane_u32(a, b, c, 1); 4725} 4726 4727// CHECK-LABEL: test_vmls_lane_f32 4728// CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4729// CHECK-SWIFT: vsub.f32 4730// CHECK-A57: vmls.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4731float32x2_t test_vmls_lane_f32(float32x2_t a, float32x2_t b, float32x2_t c) { 4732 return vmls_lane_f32(a, b, c, 1); 4733} 4734 4735// CHECK-LABEL: test_vmlsq_lane_s16 4736// CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4737int16x8_t test_vmlsq_lane_s16(int16x8_t a, int16x8_t b, int16x4_t c) { 4738 return vmlsq_lane_s16(a, b, c, 3); 4739} 4740 4741// CHECK-LABEL: test_vmlsq_lane_s32 4742// CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4743int32x4_t test_vmlsq_lane_s32(int32x4_t a, int32x4_t b, int32x2_t c) { 4744 return vmlsq_lane_s32(a, b, c, 1); 4745} 4746 4747// CHECK-LABEL: test_vmlsq_lane_u16 4748// CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4749uint16x8_t test_vmlsq_lane_u16(uint16x8_t a, uint16x8_t b, uint16x4_t c) { 4750 return vmlsq_lane_u16(a, b, c, 3); 4751} 4752 4753// CHECK-LABEL: test_vmlsq_lane_u32 4754// CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4755uint32x4_t test_vmlsq_lane_u32(uint32x4_t a, uint32x4_t b, uint32x2_t c) { 4756 return vmlsq_lane_u32(a, b, c, 1); 4757} 4758 4759// CHECK-LABEL: test_vmlsq_lane_f32 4760// CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4761// CHECK-SWIFT: vsub.f32 4762// CHECK-A57: vmls.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 4763float32x4_t test_vmlsq_lane_f32(float32x4_t a, float32x4_t b, float32x2_t c) { 4764 return vmlsq_lane_f32(a, b, c, 1); 4765} 4766 4767 4768// CHECK-LABEL: test_vmls_n_s16 4769// CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4770int16x4_t test_vmls_n_s16(int16x4_t a, int16x4_t b, int16_t c) { 4771 return vmls_n_s16(a, b, c); 4772} 4773 4774// CHECK-LABEL: test_vmls_n_s32 4775// CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4776int32x2_t test_vmls_n_s32(int32x2_t a, int32x2_t b, int32_t c) { 4777 return vmls_n_s32(a, b, c); 4778} 4779 4780// CHECK-LABEL: test_vmls_n_u16 4781// CHECK: vmls.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4782uint16x4_t test_vmls_n_u16(uint16x4_t a, uint16x4_t b, uint16_t c) { 4783 return vmls_n_u16(a, b, c); 4784} 4785 4786// CHECK-LABEL: test_vmls_n_u32 4787// CHECK: vmls.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4788uint32x2_t test_vmls_n_u32(uint32x2_t a, uint32x2_t b, uint32_t c) { 4789 return vmls_n_u32(a, b, c); 4790} 4791 4792// CHECK-LABEL: test_vmls_n_f32 4793// CHECK-SWIFT: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4794// CHECK-SWIFT: vsub.f32 4795// CHECK-A57: vmls.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 4796float32x2_t test_vmls_n_f32(float32x2_t a, float32x2_t b, float32_t c) { 4797 return vmls_n_f32(a, b, c); 4798} 4799 4800// CHECK-LABEL: test_vmlsq_n_s16 4801// CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4802int16x8_t test_vmlsq_n_s16(int16x8_t a, int16x8_t b, int16_t c) { 4803 return vmlsq_n_s16(a, b, c); 4804} 4805 4806// CHECK-LABEL: test_vmlsq_n_s32 4807// CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4808int32x4_t test_vmlsq_n_s32(int32x4_t a, int32x4_t b, int32_t c) { 4809 return vmlsq_n_s32(a, b, c); 4810} 4811 4812// CHECK-LABEL: test_vmlsq_n_u16 4813// CHECK: vmls.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4814uint16x8_t test_vmlsq_n_u16(uint16x8_t a, uint16x8_t b, uint16_t c) { 4815 return vmlsq_n_u16(a, b, c); 4816} 4817 4818// CHECK-LABEL: test_vmlsq_n_u32 4819// CHECK: vmls.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4820uint32x4_t test_vmlsq_n_u32(uint32x4_t a, uint32x4_t b, uint32_t c) { 4821 return vmlsq_n_u32(a, b, c); 4822} 4823 4824// CHECK-LABEL: test_vmlsq_n_f32 4825// CHECK-SWIFT: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[0] 4826// CHECK-SWIFT: vsub.f32 4827// CHECK-A57: vmls.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 4828float32x4_t test_vmlsq_n_f32(float32x4_t a, float32x4_t b, float32_t c) { 4829 return vmlsq_n_f32(a, b, c); 4830} 4831 4832 4833// CHECK-LABEL: test_vmovl_s8 4834// CHECK: vmovl.s8 q{{[0-9]+}}, d{{[0-9]+}} 4835int16x8_t test_vmovl_s8(int8x8_t a) { 4836 return vmovl_s8(a); 4837} 4838 4839// CHECK-LABEL: test_vmovl_s16 4840// CHECK: vmovl.s16 q{{[0-9]+}}, d{{[0-9]+}} 4841int32x4_t test_vmovl_s16(int16x4_t a) { 4842 return vmovl_s16(a); 4843} 4844 4845// CHECK-LABEL: test_vmovl_s32 4846// CHECK: vmovl.s32 q{{[0-9]+}}, d{{[0-9]+}} 4847int64x2_t test_vmovl_s32(int32x2_t a) { 4848 return vmovl_s32(a); 4849} 4850 4851// CHECK-LABEL: test_vmovl_u8 4852// CHECK: vmovl.u8 q{{[0-9]+}}, d{{[0-9]+}} 4853uint16x8_t test_vmovl_u8(uint8x8_t a) { 4854 return vmovl_u8(a); 4855} 4856 4857// CHECK-LABEL: test_vmovl_u16 4858// CHECK: vmovl.u16 q{{[0-9]+}}, d{{[0-9]+}} 4859uint32x4_t test_vmovl_u16(uint16x4_t a) { 4860 return vmovl_u16(a); 4861} 4862 4863// CHECK-LABEL: test_vmovl_u32 4864// CHECK: vmovl.u32 q{{[0-9]+}}, d{{[0-9]+}} 4865uint64x2_t test_vmovl_u32(uint32x2_t a) { 4866 return vmovl_u32(a); 4867} 4868 4869 4870// CHECK-LABEL: test_vmovn_s16 4871// CHECK: vmovn.i16 d{{[0-9]+}}, q{{[0-9]+}} 4872int8x8_t test_vmovn_s16(int16x8_t a) { 4873 return vmovn_s16(a); 4874} 4875 4876// CHECK-LABEL: test_vmovn_s32 4877// CHECK: vmovn.i32 d{{[0-9]+}}, q{{[0-9]+}} 4878int16x4_t test_vmovn_s32(int32x4_t a) { 4879 return vmovn_s32(a); 4880} 4881 4882// CHECK-LABEL: test_vmovn_s64 4883// CHECK: vmovn.i64 d{{[0-9]+}}, q{{[0-9]+}} 4884int32x2_t test_vmovn_s64(int64x2_t a) { 4885 return vmovn_s64(a); 4886} 4887 4888// CHECK-LABEL: test_vmovn_u16 4889// CHECK: vmovn.i16 d{{[0-9]+}}, q{{[0-9]+}} 4890uint8x8_t test_vmovn_u16(uint16x8_t a) { 4891 return vmovn_u16(a); 4892} 4893 4894// CHECK-LABEL: test_vmovn_u32 4895// CHECK: vmovn.i32 d{{[0-9]+}}, q{{[0-9]+}} 4896uint16x4_t test_vmovn_u32(uint32x4_t a) { 4897 return vmovn_u32(a); 4898} 4899 4900// CHECK-LABEL: test_vmovn_u64 4901// CHECK: vmovn.i64 d{{[0-9]+}}, q{{[0-9]+}} 4902uint32x2_t test_vmovn_u64(uint64x2_t a) { 4903 return vmovn_u64(a); 4904} 4905 4906 4907// CHECK-LABEL: test_vmov_n_u8 4908// CHECK: vmov {{r[0-9]+}} 4909uint8x8_t test_vmov_n_u8(uint8_t a) { 4910 return vmov_n_u8(a); 4911} 4912 4913// CHECK-LABEL: test_vmov_n_u16 4914// CHECK: vmov {{r[0-9]+}} 4915uint16x4_t test_vmov_n_u16(uint16_t a) { 4916 return vmov_n_u16(a); 4917} 4918 4919// CHECK-LABEL: test_vmov_n_u32 4920// CHECK: mov {{r[0-9]+}} 4921uint32x2_t test_vmov_n_u32(uint32_t a) { 4922 return vmov_n_u32(a); 4923} 4924 4925// CHECK-LABEL: test_vmov_n_s8 4926// CHECK: vmov {{r[0-9]+}} 4927int8x8_t test_vmov_n_s8(int8_t a) { 4928 return vmov_n_s8(a); 4929} 4930 4931// CHECK-LABEL: test_vmov_n_s16 4932// CHECK: vmov {{r[0-9]+}} 4933int16x4_t test_vmov_n_s16(int16_t a) { 4934 return vmov_n_s16(a); 4935} 4936 4937// CHECK-LABEL: test_vmov_n_s32 4938// CHECK: mov {{r[0-9]+}} 4939int32x2_t test_vmov_n_s32(int32_t a) { 4940 return vmov_n_s32(a); 4941} 4942 4943// CHECK-LABEL: test_vmov_n_p8 4944// CHECK: vmov {{r[0-9]+}} 4945poly8x8_t test_vmov_n_p8(poly8_t a) { 4946 return vmov_n_p8(a); 4947} 4948 4949// CHECK-LABEL: test_vmov_n_p16 4950// CHECK: vmov {{r[0-9]+}} 4951poly16x4_t test_vmov_n_p16(poly16_t a) { 4952 return vmov_n_p16(a); 4953} 4954 4955// CHECK-LABEL: test_vmov_n_f16 4956// CHECK: vld1.16 {{{d[0-9]+\[\]}}} 4957float16x4_t test_vmov_n_f16(float16_t *a) { 4958 return vmov_n_f16(*a); 4959} 4960 4961// CHECK-LABEL: test_vmov_n_f32 4962// CHECK: mov {{r[0-9]+}} 4963float32x2_t test_vmov_n_f32(float32_t a) { 4964 return vmov_n_f32(a); 4965} 4966 4967// CHECK-LABEL: test_vmovq_n_u8 4968// CHECK: vmov {{r[0-9]+}} 4969uint8x16_t test_vmovq_n_u8(uint8_t a) { 4970 return vmovq_n_u8(a); 4971} 4972 4973// CHECK-LABEL: test_vmovq_n_u16 4974// CHECK: vmov {{r[0-9]+}} 4975uint16x8_t test_vmovq_n_u16(uint16_t a) { 4976 return vmovq_n_u16(a); 4977} 4978 4979// CHECK-LABEL: test_vmovq_n_u32 4980// CHECK: vmov {{r[0-9]+}} 4981uint32x4_t test_vmovq_n_u32(uint32_t a) { 4982 return vmovq_n_u32(a); 4983} 4984 4985// CHECK-LABEL: test_vmovq_n_s8 4986// CHECK: vmov {{r[0-9]+}} 4987int8x16_t test_vmovq_n_s8(int8_t a) { 4988 return vmovq_n_s8(a); 4989} 4990 4991// CHECK-LABEL: test_vmovq_n_s16 4992// CHECK: vmov {{r[0-9]+}} 4993int16x8_t test_vmovq_n_s16(int16_t a) { 4994 return vmovq_n_s16(a); 4995} 4996 4997// CHECK-LABEL: test_vmovq_n_s32 4998// CHECK: vmov {{r[0-9]+}} 4999int32x4_t test_vmovq_n_s32(int32_t a) { 5000 return vmovq_n_s32(a); 5001} 5002 5003// CHECK-LABEL: test_vmovq_n_p8 5004// CHECK: vmov {{r[0-9]+}} 5005poly8x16_t test_vmovq_n_p8(poly8_t a) { 5006 return vmovq_n_p8(a); 5007} 5008 5009// CHECK-LABEL: test_vmovq_n_p16 5010// CHECK: vmov {{r[0-9]+}} 5011poly16x8_t test_vmovq_n_p16(poly16_t a) { 5012 return vmovq_n_p16(a); 5013} 5014 5015// CHECK-LABEL: test_vmovq_n_f16 5016// CHECK: vld1.16 {{{d[0-9]+\[\], d[0-9]+\[\]}}} 5017float16x8_t test_vmovq_n_f16(float16_t *a) { 5018 return vmovq_n_f16(*a); 5019} 5020 5021// CHECK-LABEL: test_vmovq_n_f32 5022// CHECK: vmov {{r[0-9]+}} 5023float32x4_t test_vmovq_n_f32(float32_t a) { 5024 return vmovq_n_f32(a); 5025} 5026 5027// CHECK-LABEL: test_vmov_n_s64 5028// CHECK: vmov.32 [[REG:d[0-9]+]][0], r0 5029// CHECK: vmov.32 [[REG]][1], r1 5030int64x1_t test_vmov_n_s64(int64_t a) { 5031 int64x1_t tmp = vmov_n_s64(a); 5032 return vadd_s64(tmp, tmp); 5033} 5034 5035// CHECK-LABEL: test_vmov_n_u64 5036// CHECK: vmov.32 [[REG:d[0-9]+]][0], r0 5037// CHECK: vmov.32 [[REG]][1], r1 5038uint64x1_t test_vmov_n_u64(uint64_t a) { 5039 uint64x1_t tmp = vmov_n_u64(a); 5040 return vadd_u64(tmp, tmp); 5041} 5042 5043// CHECK-LABEL: test_vmovq_n_s64 5044// CHECK: vmov {{r[0-9]+}} 5045int64x2_t test_vmovq_n_s64(int64_t a) { 5046 return vmovq_n_s64(a); 5047} 5048 5049// CHECK-LABEL: test_vmovq_n_u64 5050// CHECK: vmov {{r[0-9]+}} 5051uint64x2_t test_vmovq_n_u64(uint64_t a) { 5052 return vmovq_n_u64(a); 5053} 5054 5055 5056// CHECK-LABEL: test_vmul_s8 5057// CHECK: vmul.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5058int8x8_t test_vmul_s8(int8x8_t a, int8x8_t b) { 5059 return vmul_s8(a, b); 5060} 5061 5062// CHECK-LABEL: test_vmul_s16 5063// CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5064int16x4_t test_vmul_s16(int16x4_t a, int16x4_t b) { 5065 return vmul_s16(a, b); 5066} 5067 5068// CHECK-LABEL: test_vmul_s32 5069// CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5070int32x2_t test_vmul_s32(int32x2_t a, int32x2_t b) { 5071 return vmul_s32(a, b); 5072} 5073 5074// CHECK-LABEL: test_vmul_f32 5075// CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5076float32x2_t test_vmul_f32(float32x2_t a, float32x2_t b) { 5077 return vmul_f32(a, b); 5078} 5079 5080// CHECK-LABEL: test_vmul_u8 5081// CHECK: vmul.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5082uint8x8_t test_vmul_u8(uint8x8_t a, uint8x8_t b) { 5083 return vmul_u8(a, b); 5084} 5085 5086// CHECK-LABEL: test_vmul_u16 5087// CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5088uint16x4_t test_vmul_u16(uint16x4_t a, uint16x4_t b) { 5089 return vmul_u16(a, b); 5090} 5091 5092// CHECK-LABEL: test_vmul_u32 5093// CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5094uint32x2_t test_vmul_u32(uint32x2_t a, uint32x2_t b) { 5095 return vmul_u32(a, b); 5096} 5097 5098// CHECK-LABEL: test_vmulq_s8 5099// CHECK: vmul.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5100int8x16_t test_vmulq_s8(int8x16_t a, int8x16_t b) { 5101 return vmulq_s8(a, b); 5102} 5103 5104// CHECK-LABEL: test_vmulq_s16 5105// CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5106int16x8_t test_vmulq_s16(int16x8_t a, int16x8_t b) { 5107 return vmulq_s16(a, b); 5108} 5109 5110// CHECK-LABEL: test_vmulq_s32 5111// CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5112int32x4_t test_vmulq_s32(int32x4_t a, int32x4_t b) { 5113 return vmulq_s32(a, b); 5114} 5115 5116// CHECK-LABEL: test_vmulq_f32 5117// CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5118float32x4_t test_vmulq_f32(float32x4_t a, float32x4_t b) { 5119 return vmulq_f32(a, b); 5120} 5121 5122// CHECK-LABEL: test_vmulq_u8 5123// CHECK: vmul.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5124uint8x16_t test_vmulq_u8(uint8x16_t a, uint8x16_t b) { 5125 return vmulq_u8(a, b); 5126} 5127 5128// CHECK-LABEL: test_vmulq_u16 5129// CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5130uint16x8_t test_vmulq_u16(uint16x8_t a, uint16x8_t b) { 5131 return vmulq_u16(a, b); 5132} 5133 5134// CHECK-LABEL: test_vmulq_u32 5135// CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5136uint32x4_t test_vmulq_u32(uint32x4_t a, uint32x4_t b) { 5137 return vmulq_u32(a, b); 5138} 5139 5140 5141// CHECK-LABEL: test_vmull_s8 5142// CHECK: vmull.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5143int16x8_t test_vmull_s8(int8x8_t a, int8x8_t b) { 5144 return vmull_s8(a, b); 5145} 5146 5147// CHECK-LABEL: test_vmull_s16 5148// CHECK: vmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5149int32x4_t test_vmull_s16(int16x4_t a, int16x4_t b) { 5150 return vmull_s16(a, b); 5151} 5152 5153// CHECK-LABEL: test_vmull_s32 5154// CHECK: vmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5155int64x2_t test_vmull_s32(int32x2_t a, int32x2_t b) { 5156 return vmull_s32(a, b); 5157} 5158 5159// CHECK-LABEL: test_vmull_u8 5160// CHECK: vmull.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5161uint16x8_t test_vmull_u8(uint8x8_t a, uint8x8_t b) { 5162 return vmull_u8(a, b); 5163} 5164 5165// CHECK-LABEL: test_vmull_u16 5166// CHECK: vmull.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5167uint32x4_t test_vmull_u16(uint16x4_t a, uint16x4_t b) { 5168 return vmull_u16(a, b); 5169} 5170 5171// CHECK-LABEL: test_vmull_u32 5172// CHECK: vmull.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5173uint64x2_t test_vmull_u32(uint32x2_t a, uint32x2_t b) { 5174 return vmull_u32(a, b); 5175} 5176 5177// CHECK-LABEL: test_vmull_p8 5178// CHECK: vmull.p8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5179poly16x8_t test_vmull_p8(poly8x8_t a, poly8x8_t b) { 5180 return vmull_p8(a, b); 5181} 5182 5183 5184// CHECK-LABEL: test_vmull_lane_s16 5185// CHECK: vmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5186int32x4_t test_vmull_lane_s16(int16x4_t a, int16x4_t b) { 5187 return vmull_lane_s16(a, b, 3); 5188} 5189 5190// CHECK-LABEL: test_vmull_lane_s32 5191// CHECK: vmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5192int64x2_t test_vmull_lane_s32(int32x2_t a, int32x2_t b) { 5193 return vmull_lane_s32(a, b, 1); 5194} 5195 5196// CHECK-LABEL: test_vmull_lane_u16 5197// CHECK: vmull.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5198uint32x4_t test_vmull_lane_u16(uint16x4_t a, uint16x4_t b) { 5199 return vmull_lane_u16(a, b, 3); 5200} 5201 5202// CHECK-LABEL: test_vmull_lane_u32 5203// CHECK: vmull.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5204uint64x2_t test_vmull_lane_u32(uint32x2_t a, uint32x2_t b) { 5205 return vmull_lane_u32(a, b, 1); 5206} 5207 5208 5209// CHECK-LABEL: test_vmull_n_s16 5210// CHECK: vmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5211int32x4_t test_vmull_n_s16(int16x4_t a, int16_t b) { 5212 return vmull_n_s16(a, b); 5213} 5214 5215// CHECK-LABEL: test_vmull_n_s32 5216// CHECK: vmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5217int64x2_t test_vmull_n_s32(int32x2_t a, int32_t b) { 5218 return vmull_n_s32(a, b); 5219} 5220 5221// CHECK-LABEL: test_vmull_n_u16 5222// CHECK: vmull.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5223uint32x4_t test_vmull_n_u16(uint16x4_t a, uint16_t b) { 5224 return vmull_n_u16(a, b); 5225} 5226 5227// CHECK-LABEL: test_vmull_n_u32 5228// CHECK: vmull.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5229uint64x2_t test_vmull_n_u32(uint32x2_t a, uint32_t b) { 5230 return vmull_n_u32(a, b); 5231} 5232 5233 5234// CHECK-LABEL: test_vmul_p8 5235// CHECK: vmul.p8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5236poly8x8_t test_vmul_p8(poly8x8_t a, poly8x8_t b) { 5237 return vmul_p8(a, b); 5238} 5239 5240// CHECK-LABEL: test_vmulq_p8 5241// CHECK: vmul.p8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5242poly8x16_t test_vmulq_p8(poly8x16_t a, poly8x16_t b) { 5243 return vmulq_p8(a, b); 5244} 5245 5246 5247// CHECK-LABEL: test_vmul_lane_s16 5248// CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5249int16x4_t test_vmul_lane_s16(int16x4_t a, int16x4_t b) { 5250 return vmul_lane_s16(a, b, 3); 5251} 5252 5253// CHECK-LABEL: test_vmul_lane_s32 5254// CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5255int32x2_t test_vmul_lane_s32(int32x2_t a, int32x2_t b) { 5256 return vmul_lane_s32(a, b, 1); 5257} 5258 5259// CHECK-LABEL: test_vmul_lane_f32 5260// CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5261float32x2_t test_vmul_lane_f32(float32x2_t a, float32x2_t b) { 5262 return vmul_lane_f32(a, b, 1); 5263} 5264 5265// CHECK-LABEL: test_vmul_lane_u16 5266// CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5267uint16x4_t test_vmul_lane_u16(uint16x4_t a, uint16x4_t b) { 5268 return vmul_lane_u16(a, b, 3); 5269} 5270 5271// CHECK-LABEL: test_vmul_lane_u32 5272// CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5273uint32x2_t test_vmul_lane_u32(uint32x2_t a, uint32x2_t b) { 5274 return vmul_lane_u32(a, b, 1); 5275} 5276 5277// CHECK-LABEL: test_vmulq_lane_s16 5278// CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5279int16x8_t test_vmulq_lane_s16(int16x8_t a, int16x4_t b) { 5280 return vmulq_lane_s16(a, b, 3); 5281} 5282 5283// CHECK-LABEL: test_vmulq_lane_s32 5284// CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5285int32x4_t test_vmulq_lane_s32(int32x4_t a, int32x2_t b) { 5286 return vmulq_lane_s32(a, b, 1); 5287} 5288 5289// CHECK-LABEL: test_vmulq_lane_f32 5290// CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5291float32x4_t test_vmulq_lane_f32(float32x4_t a, float32x2_t b) { 5292 return vmulq_lane_f32(a, b, 1); 5293} 5294 5295// CHECK-LABEL: test_vmulq_lane_u16 5296// CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5297uint16x8_t test_vmulq_lane_u16(uint16x8_t a, uint16x4_t b) { 5298 return vmulq_lane_u16(a, b, 3); 5299} 5300 5301// CHECK-LABEL: test_vmulq_lane_u32 5302// CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 5303uint32x4_t test_vmulq_lane_u32(uint32x4_t a, uint32x2_t b) { 5304 return vmulq_lane_u32(a, b, 1); 5305} 5306 5307 5308// CHECK-LABEL: test_vmul_n_s16 5309// CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5310int16x4_t test_vmul_n_s16(int16x4_t a, int16_t b) { 5311 return vmul_n_s16(a, b); 5312} 5313 5314// CHECK-LABEL: test_vmul_n_s32 5315// CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5316int32x2_t test_vmul_n_s32(int32x2_t a, int32_t b) { 5317 return vmul_n_s32(a, b); 5318} 5319 5320// CHECK-LABEL: test_vmul_n_f32 5321// CHECK: vmul.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5322float32x2_t test_vmul_n_f32(float32x2_t a, float32_t b) { 5323 return vmul_n_f32(a, b); 5324} 5325 5326// CHECK-LABEL: test_vmul_n_u16 5327// CHECK: vmul.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5328uint16x4_t test_vmul_n_u16(uint16x4_t a, uint16_t b) { 5329 return vmul_n_u16(a, b); 5330} 5331 5332// CHECK-LABEL: test_vmul_n_u32 5333// CHECK: vmul.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5334uint32x2_t test_vmul_n_u32(uint32x2_t a, uint32_t b) { 5335 return vmul_n_u32(a, b); 5336} 5337 5338// CHECK-LABEL: test_vmulq_n_s16 5339// CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5340int16x8_t test_vmulq_n_s16(int16x8_t a, int16_t b) { 5341 return vmulq_n_s16(a, b); 5342} 5343 5344// CHECK-LABEL: test_vmulq_n_s32 5345// CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5346int32x4_t test_vmulq_n_s32(int32x4_t a, int32_t b) { 5347 return vmulq_n_s32(a, b); 5348} 5349 5350// CHECK-LABEL: test_vmulq_n_f32 5351// CHECK: vmul.f32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[0] 5352float32x4_t test_vmulq_n_f32(float32x4_t a, float32_t b) { 5353 return vmulq_n_f32(a, b); 5354} 5355 5356// CHECK-LABEL: test_vmulq_n_u16 5357// CHECK: vmul.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5358uint16x8_t test_vmulq_n_u16(uint16x8_t a, uint16_t b) { 5359 return vmulq_n_u16(a, b); 5360} 5361 5362// CHECK-LABEL: test_vmulq_n_u32 5363// CHECK: vmul.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5364uint32x4_t test_vmulq_n_u32(uint32x4_t a, uint32_t b) { 5365 return vmulq_n_u32(a, b); 5366} 5367 5368 5369// CHECK-LABEL: test_vmvn_s8 5370// CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}} 5371int8x8_t test_vmvn_s8(int8x8_t a) { 5372 return vmvn_s8(a); 5373} 5374 5375// CHECK-LABEL: test_vmvn_s16 5376// CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}} 5377int16x4_t test_vmvn_s16(int16x4_t a) { 5378 return vmvn_s16(a); 5379} 5380 5381// CHECK-LABEL: test_vmvn_s32 5382// CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}} 5383int32x2_t test_vmvn_s32(int32x2_t a) { 5384 return vmvn_s32(a); 5385} 5386 5387// CHECK-LABEL: test_vmvn_u8 5388// CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}} 5389uint8x8_t test_vmvn_u8(uint8x8_t a) { 5390 return vmvn_u8(a); 5391} 5392 5393// CHECK-LABEL: test_vmvn_u16 5394// CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}} 5395uint16x4_t test_vmvn_u16(uint16x4_t a) { 5396 return vmvn_u16(a); 5397} 5398 5399// CHECK-LABEL: test_vmvn_u32 5400// CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}} 5401uint32x2_t test_vmvn_u32(uint32x2_t a) { 5402 return vmvn_u32(a); 5403} 5404 5405// CHECK-LABEL: test_vmvn_p8 5406// CHECK: vmvn d{{[0-9]+}}, d{{[0-9]+}} 5407poly8x8_t test_vmvn_p8(poly8x8_t a) { 5408 return vmvn_p8(a); 5409} 5410 5411// CHECK-LABEL: test_vmvnq_s8 5412// CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}} 5413int8x16_t test_vmvnq_s8(int8x16_t a) { 5414 return vmvnq_s8(a); 5415} 5416 5417// CHECK-LABEL: test_vmvnq_s16 5418// CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}} 5419int16x8_t test_vmvnq_s16(int16x8_t a) { 5420 return vmvnq_s16(a); 5421} 5422 5423// CHECK-LABEL: test_vmvnq_s32 5424// CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}} 5425int32x4_t test_vmvnq_s32(int32x4_t a) { 5426 return vmvnq_s32(a); 5427} 5428 5429// CHECK-LABEL: test_vmvnq_u8 5430// CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}} 5431uint8x16_t test_vmvnq_u8(uint8x16_t a) { 5432 return vmvnq_u8(a); 5433} 5434 5435// CHECK-LABEL: test_vmvnq_u16 5436// CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}} 5437uint16x8_t test_vmvnq_u16(uint16x8_t a) { 5438 return vmvnq_u16(a); 5439} 5440 5441// CHECK-LABEL: test_vmvnq_u32 5442// CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}} 5443uint32x4_t test_vmvnq_u32(uint32x4_t a) { 5444 return vmvnq_u32(a); 5445} 5446 5447// CHECK-LABEL: test_vmvnq_p8 5448// CHECK: vmvn q{{[0-9]+}}, q{{[0-9]+}} 5449poly8x16_t test_vmvnq_p8(poly8x16_t a) { 5450 return vmvnq_p8(a); 5451} 5452 5453 5454// CHECK-LABEL: test_vneg_s8 5455// CHECK: vneg.s8 d{{[0-9]+}}, d{{[0-9]+}} 5456int8x8_t test_vneg_s8(int8x8_t a) { 5457 return vneg_s8(a); 5458} 5459 5460// CHECK-LABEL: test_vneg_s16 5461// CHECK: vneg.s16 d{{[0-9]+}}, d{{[0-9]+}} 5462int16x4_t test_vneg_s16(int16x4_t a) { 5463 return vneg_s16(a); 5464} 5465 5466// CHECK-LABEL: test_vneg_s32 5467// CHECK: vneg.s32 d{{[0-9]+}}, d{{[0-9]+}} 5468int32x2_t test_vneg_s32(int32x2_t a) { 5469 return vneg_s32(a); 5470} 5471 5472// CHECK-LABEL: test_vneg_f32 5473// CHECK: vneg.f32 d{{[0-9]+}}, d{{[0-9]+}} 5474float32x2_t test_vneg_f32(float32x2_t a) { 5475 return vneg_f32(a); 5476} 5477 5478// CHECK-LABEL: test_vnegq_s8 5479// CHECK: vneg.s8 q{{[0-9]+}}, q{{[0-9]+}} 5480int8x16_t test_vnegq_s8(int8x16_t a) { 5481 return vnegq_s8(a); 5482} 5483 5484// CHECK-LABEL: test_vnegq_s16 5485// CHECK: vneg.s16 q{{[0-9]+}}, q{{[0-9]+}} 5486int16x8_t test_vnegq_s16(int16x8_t a) { 5487 return vnegq_s16(a); 5488} 5489 5490// CHECK-LABEL: test_vnegq_s32 5491// CHECK: vneg.s32 q{{[0-9]+}}, q{{[0-9]+}} 5492int32x4_t test_vnegq_s32(int32x4_t a) { 5493 return vnegq_s32(a); 5494} 5495 5496// CHECK-LABEL: test_vnegq_f32 5497// CHECK: vneg.f32 q{{[0-9]+}}, q{{[0-9]+}} 5498float32x4_t test_vnegq_f32(float32x4_t a) { 5499 return vnegq_f32(a); 5500} 5501 5502 5503// CHECK-LABEL: test_vorn_s8 5504// CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5505int8x8_t test_vorn_s8(int8x8_t a, int8x8_t b) { 5506 return vorn_s8(a, b); 5507} 5508 5509// CHECK-LABEL: test_vorn_s16 5510// CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5511int16x4_t test_vorn_s16(int16x4_t a, int16x4_t b) { 5512 return vorn_s16(a, b); 5513} 5514 5515// CHECK-LABEL: test_vorn_s32 5516// CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5517int32x2_t test_vorn_s32(int32x2_t a, int32x2_t b) { 5518 return vorn_s32(a, b); 5519} 5520 5521// CHECK-LABEL: test_vorn_s64 5522// CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5523int64x1_t test_vorn_s64(int64x1_t a, int64x1_t b) { 5524 return vorn_s64(a, b); 5525} 5526 5527// CHECK-LABEL: test_vorn_u8 5528// CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5529uint8x8_t test_vorn_u8(uint8x8_t a, uint8x8_t b) { 5530 return vorn_u8(a, b); 5531} 5532 5533// CHECK-LABEL: test_vorn_u16 5534// CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5535uint16x4_t test_vorn_u16(uint16x4_t a, uint16x4_t b) { 5536 return vorn_u16(a, b); 5537} 5538 5539// CHECK-LABEL: test_vorn_u32 5540// CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5541uint32x2_t test_vorn_u32(uint32x2_t a, uint32x2_t b) { 5542 return vorn_u32(a, b); 5543} 5544 5545// CHECK-LABEL: test_vorn_u64 5546// CHECK: vorn d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5547uint64x1_t test_vorn_u64(uint64x1_t a, uint64x1_t b) { 5548 return vorn_u64(a, b); 5549} 5550 5551// CHECK-LABEL: test_vornq_s8 5552// CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5553int8x16_t test_vornq_s8(int8x16_t a, int8x16_t b) { 5554 return vornq_s8(a, b); 5555} 5556 5557// CHECK-LABEL: test_vornq_s16 5558// CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5559int16x8_t test_vornq_s16(int16x8_t a, int16x8_t b) { 5560 return vornq_s16(a, b); 5561} 5562 5563// CHECK-LABEL: test_vornq_s32 5564// CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5565int32x4_t test_vornq_s32(int32x4_t a, int32x4_t b) { 5566 return vornq_s32(a, b); 5567} 5568 5569// CHECK-LABEL: test_vornq_s64 5570// CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5571int64x2_t test_vornq_s64(int64x2_t a, int64x2_t b) { 5572 return vornq_s64(a, b); 5573} 5574 5575// CHECK-LABEL: test_vornq_u8 5576// CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5577uint8x16_t test_vornq_u8(uint8x16_t a, uint8x16_t b) { 5578 return vornq_u8(a, b); 5579} 5580 5581// CHECK-LABEL: test_vornq_u16 5582// CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5583uint16x8_t test_vornq_u16(uint16x8_t a, uint16x8_t b) { 5584 return vornq_u16(a, b); 5585} 5586 5587// CHECK-LABEL: test_vornq_u32 5588// CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5589uint32x4_t test_vornq_u32(uint32x4_t a, uint32x4_t b) { 5590 return vornq_u32(a, b); 5591} 5592 5593// CHECK-LABEL: test_vornq_u64 5594// CHECK: vorn q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5595uint64x2_t test_vornq_u64(uint64x2_t a, uint64x2_t b) { 5596 return vornq_u64(a, b); 5597} 5598 5599 5600// CHECK-LABEL: test_vorr_s8 5601// CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5602int8x8_t test_vorr_s8(int8x8_t a, int8x8_t b) { 5603 return vorr_s8(a, b); 5604} 5605 5606// CHECK-LABEL: test_vorr_s16 5607// CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5608int16x4_t test_vorr_s16(int16x4_t a, int16x4_t b) { 5609 return vorr_s16(a, b); 5610} 5611 5612// CHECK-LABEL: test_vorr_s32 5613// CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5614int32x2_t test_vorr_s32(int32x2_t a, int32x2_t b) { 5615 return vorr_s32(a, b); 5616} 5617 5618// CHECK-LABEL: test_vorr_s64 5619// CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5620int64x1_t test_vorr_s64(int64x1_t a, int64x1_t b) { 5621 return vorr_s64(a, b); 5622} 5623 5624// CHECK-LABEL: test_vorr_u8 5625// CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5626uint8x8_t test_vorr_u8(uint8x8_t a, uint8x8_t b) { 5627 return vorr_u8(a, b); 5628} 5629 5630// CHECK-LABEL: test_vorr_u16 5631// CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5632uint16x4_t test_vorr_u16(uint16x4_t a, uint16x4_t b) { 5633 return vorr_u16(a, b); 5634} 5635 5636// CHECK-LABEL: test_vorr_u32 5637// CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5638uint32x2_t test_vorr_u32(uint32x2_t a, uint32x2_t b) { 5639 return vorr_u32(a, b); 5640} 5641 5642// CHECK-LABEL: test_vorr_u64 5643// CHECK: vorr d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5644uint64x1_t test_vorr_u64(uint64x1_t a, uint64x1_t b) { 5645 return vorr_u64(a, b); 5646} 5647 5648// CHECK-LABEL: test_vorrq_s8 5649// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5650int8x16_t test_vorrq_s8(int8x16_t a, int8x16_t b) { 5651 return vorrq_s8(a, b); 5652} 5653 5654// CHECK-LABEL: test_vorrq_s16 5655// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5656int16x8_t test_vorrq_s16(int16x8_t a, int16x8_t b) { 5657 return vorrq_s16(a, b); 5658} 5659 5660// CHECK-LABEL: test_vorrq_s32 5661// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5662int32x4_t test_vorrq_s32(int32x4_t a, int32x4_t b) { 5663 return vorrq_s32(a, b); 5664} 5665 5666// CHECK-LABEL: test_vorrq_s64 5667// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5668int64x2_t test_vorrq_s64(int64x2_t a, int64x2_t b) { 5669 return vorrq_s64(a, b); 5670} 5671 5672// CHECK-LABEL: test_vorrq_u8 5673// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5674uint8x16_t test_vorrq_u8(uint8x16_t a, uint8x16_t b) { 5675 return vorrq_u8(a, b); 5676} 5677 5678// CHECK-LABEL: test_vorrq_u16 5679// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5680uint16x8_t test_vorrq_u16(uint16x8_t a, uint16x8_t b) { 5681 return vorrq_u16(a, b); 5682} 5683 5684// CHECK-LABEL: test_vorrq_u32 5685// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5686uint32x4_t test_vorrq_u32(uint32x4_t a, uint32x4_t b) { 5687 return vorrq_u32(a, b); 5688} 5689 5690// CHECK-LABEL: test_vorrq_u64 5691// CHECK: vorr q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 5692uint64x2_t test_vorrq_u64(uint64x2_t a, uint64x2_t b) { 5693 return vorrq_u64(a, b); 5694} 5695 5696 5697// CHECK-LABEL: test_vpadal_s8 5698// CHECK: vpadal.s8 d{{[0-9]+}}, d{{[0-9]+}} 5699int16x4_t test_vpadal_s8(int16x4_t a, int8x8_t b) { 5700 return vpadal_s8(a, b); 5701} 5702 5703// CHECK-LABEL: test_vpadal_s16 5704// CHECK: vpadal.s16 d{{[0-9]+}}, d{{[0-9]+}} 5705int32x2_t test_vpadal_s16(int32x2_t a, int16x4_t b) { 5706 return vpadal_s16(a, b); 5707} 5708 5709// CHECK-LABEL: test_vpadal_s32 5710// CHECK: vpadal.s32 d{{[0-9]+}}, d{{[0-9]+}} 5711int64x1_t test_vpadal_s32(int64x1_t a, int32x2_t b) { 5712 return vpadal_s32(a, b); 5713} 5714 5715// CHECK-LABEL: test_vpadal_u8 5716// CHECK: vpadal.u8 d{{[0-9]+}}, d{{[0-9]+}} 5717uint16x4_t test_vpadal_u8(uint16x4_t a, uint8x8_t b) { 5718 return vpadal_u8(a, b); 5719} 5720 5721// CHECK-LABEL: test_vpadal_u16 5722// CHECK: vpadal.u16 d{{[0-9]+}}, d{{[0-9]+}} 5723uint32x2_t test_vpadal_u16(uint32x2_t a, uint16x4_t b) { 5724 return vpadal_u16(a, b); 5725} 5726 5727// CHECK-LABEL: test_vpadal_u32 5728// CHECK: vpadal.u32 d{{[0-9]+}}, d{{[0-9]+}} 5729uint64x1_t test_vpadal_u32(uint64x1_t a, uint32x2_t b) { 5730 return vpadal_u32(a, b); 5731} 5732 5733// CHECK-LABEL: test_vpadalq_s8 5734// CHECK: vpadal.s8 q{{[0-9]+}}, q{{[0-9]+}} 5735int16x8_t test_vpadalq_s8(int16x8_t a, int8x16_t b) { 5736 return vpadalq_s8(a, b); 5737} 5738 5739// CHECK-LABEL: test_vpadalq_s16 5740// CHECK: vpadal.s16 q{{[0-9]+}}, q{{[0-9]+}} 5741int32x4_t test_vpadalq_s16(int32x4_t a, int16x8_t b) { 5742 return vpadalq_s16(a, b); 5743} 5744 5745// CHECK-LABEL: test_vpadalq_s32 5746// CHECK: vpadal.s32 q{{[0-9]+}}, q{{[0-9]+}} 5747int64x2_t test_vpadalq_s32(int64x2_t a, int32x4_t b) { 5748 return vpadalq_s32(a, b); 5749} 5750 5751// CHECK-LABEL: test_vpadalq_u8 5752// CHECK: vpadal.u8 q{{[0-9]+}}, q{{[0-9]+}} 5753uint16x8_t test_vpadalq_u8(uint16x8_t a, uint8x16_t b) { 5754 return vpadalq_u8(a, b); 5755} 5756 5757// CHECK-LABEL: test_vpadalq_u16 5758// CHECK: vpadal.u16 q{{[0-9]+}}, q{{[0-9]+}} 5759uint32x4_t test_vpadalq_u16(uint32x4_t a, uint16x8_t b) { 5760 return vpadalq_u16(a, b); 5761} 5762 5763// CHECK-LABEL: test_vpadalq_u32 5764// CHECK: vpadal.u32 q{{[0-9]+}}, q{{[0-9]+}} 5765uint64x2_t test_vpadalq_u32(uint64x2_t a, uint32x4_t b) { 5766 return vpadalq_u32(a, b); 5767} 5768 5769 5770// CHECK-LABEL: test_vpadd_s8 5771// CHECK: vpadd.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5772int8x8_t test_vpadd_s8(int8x8_t a, int8x8_t b) { 5773 return vpadd_s8(a, b); 5774} 5775 5776// CHECK-LABEL: test_vpadd_s16 5777// CHECK: vpadd.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5778int16x4_t test_vpadd_s16(int16x4_t a, int16x4_t b) { 5779 return vpadd_s16(a, b); 5780} 5781 5782// CHECK-LABEL: test_vpadd_s32 5783// CHECK: vpadd.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5784int32x2_t test_vpadd_s32(int32x2_t a, int32x2_t b) { 5785 return vpadd_s32(a, b); 5786} 5787 5788// CHECK-LABEL: test_vpadd_u8 5789// CHECK: vpadd.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5790uint8x8_t test_vpadd_u8(uint8x8_t a, uint8x8_t b) { 5791 return vpadd_u8(a, b); 5792} 5793 5794// CHECK-LABEL: test_vpadd_u16 5795// CHECK: vpadd.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5796uint16x4_t test_vpadd_u16(uint16x4_t a, uint16x4_t b) { 5797 return vpadd_u16(a, b); 5798} 5799 5800// CHECK-LABEL: test_vpadd_u32 5801// CHECK: vpadd.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5802uint32x2_t test_vpadd_u32(uint32x2_t a, uint32x2_t b) { 5803 return vpadd_u32(a, b); 5804} 5805 5806// CHECK-LABEL: test_vpadd_f32 5807// CHECK: vpadd.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5808float32x2_t test_vpadd_f32(float32x2_t a, float32x2_t b) { 5809 return vpadd_f32(a, b); 5810} 5811 5812 5813// CHECK-LABEL: test_vpaddl_s8 5814// CHECK: vpaddl.s8 d{{[0-9]+}}, d{{[0-9]+}} 5815int16x4_t test_vpaddl_s8(int8x8_t a) { 5816 return vpaddl_s8(a); 5817} 5818 5819// CHECK-LABEL: test_vpaddl_s16 5820// CHECK: vpaddl.s16 d{{[0-9]+}}, d{{[0-9]+}} 5821int32x2_t test_vpaddl_s16(int16x4_t a) { 5822 return vpaddl_s16(a); 5823} 5824 5825// CHECK-LABEL: test_vpaddl_s32 5826// CHECK: vpaddl.s32 d{{[0-9]+}}, d{{[0-9]+}} 5827int64x1_t test_vpaddl_s32(int32x2_t a) { 5828 return vpaddl_s32(a); 5829} 5830 5831// CHECK-LABEL: test_vpaddl_u8 5832// CHECK: vpaddl.u8 d{{[0-9]+}}, d{{[0-9]+}} 5833uint16x4_t test_vpaddl_u8(uint8x8_t a) { 5834 return vpaddl_u8(a); 5835} 5836 5837// CHECK-LABEL: test_vpaddl_u16 5838// CHECK: vpaddl.u16 d{{[0-9]+}}, d{{[0-9]+}} 5839uint32x2_t test_vpaddl_u16(uint16x4_t a) { 5840 return vpaddl_u16(a); 5841} 5842 5843// CHECK-LABEL: test_vpaddl_u32 5844// CHECK: vpaddl.u32 d{{[0-9]+}}, d{{[0-9]+}} 5845uint64x1_t test_vpaddl_u32(uint32x2_t a) { 5846 return vpaddl_u32(a); 5847} 5848 5849// CHECK-LABEL: test_vpaddlq_s8 5850// CHECK: vpaddl.s8 q{{[0-9]+}}, q{{[0-9]+}} 5851int16x8_t test_vpaddlq_s8(int8x16_t a) { 5852 return vpaddlq_s8(a); 5853} 5854 5855// CHECK-LABEL: test_vpaddlq_s16 5856// CHECK: vpaddl.s16 q{{[0-9]+}}, q{{[0-9]+}} 5857int32x4_t test_vpaddlq_s16(int16x8_t a) { 5858 return vpaddlq_s16(a); 5859} 5860 5861// CHECK-LABEL: test_vpaddlq_s32 5862// CHECK: vpaddl.s32 q{{[0-9]+}}, q{{[0-9]+}} 5863int64x2_t test_vpaddlq_s32(int32x4_t a) { 5864 return vpaddlq_s32(a); 5865} 5866 5867// CHECK-LABEL: test_vpaddlq_u8 5868// CHECK: vpaddl.u8 q{{[0-9]+}}, q{{[0-9]+}} 5869uint16x8_t test_vpaddlq_u8(uint8x16_t a) { 5870 return vpaddlq_u8(a); 5871} 5872 5873// CHECK-LABEL: test_vpaddlq_u16 5874// CHECK: vpaddl.u16 q{{[0-9]+}}, q{{[0-9]+}} 5875uint32x4_t test_vpaddlq_u16(uint16x8_t a) { 5876 return vpaddlq_u16(a); 5877} 5878 5879// CHECK-LABEL: test_vpaddlq_u32 5880// CHECK: vpaddl.u32 q{{[0-9]+}}, q{{[0-9]+}} 5881uint64x2_t test_vpaddlq_u32(uint32x4_t a) { 5882 return vpaddlq_u32(a); 5883} 5884 5885 5886// CHECK-LABEL: test_vpmax_s8 5887// CHECK: vpmax.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5888int8x8_t test_vpmax_s8(int8x8_t a, int8x8_t b) { 5889 return vpmax_s8(a, b); 5890} 5891 5892// CHECK-LABEL: test_vpmax_s16 5893// CHECK: vpmax.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5894int16x4_t test_vpmax_s16(int16x4_t a, int16x4_t b) { 5895 return vpmax_s16(a, b); 5896} 5897 5898// CHECK-LABEL: test_vpmax_s32 5899// CHECK: vpmax.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5900int32x2_t test_vpmax_s32(int32x2_t a, int32x2_t b) { 5901 return vpmax_s32(a, b); 5902} 5903 5904// CHECK-LABEL: test_vpmax_u8 5905// CHECK: vpmax.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5906uint8x8_t test_vpmax_u8(uint8x8_t a, uint8x8_t b) { 5907 return vpmax_u8(a, b); 5908} 5909 5910// CHECK-LABEL: test_vpmax_u16 5911// CHECK: vpmax.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5912uint16x4_t test_vpmax_u16(uint16x4_t a, uint16x4_t b) { 5913 return vpmax_u16(a, b); 5914} 5915 5916// CHECK-LABEL: test_vpmax_u32 5917// CHECK: vpmax.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5918uint32x2_t test_vpmax_u32(uint32x2_t a, uint32x2_t b) { 5919 return vpmax_u32(a, b); 5920} 5921 5922// CHECK-LABEL: test_vpmax_f32 5923// CHECK: vpmax.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5924float32x2_t test_vpmax_f32(float32x2_t a, float32x2_t b) { 5925 return vpmax_f32(a, b); 5926} 5927 5928 5929// CHECK-LABEL: test_vpmin_s8 5930// CHECK: vpmin.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5931int8x8_t test_vpmin_s8(int8x8_t a, int8x8_t b) { 5932 return vpmin_s8(a, b); 5933} 5934 5935// CHECK-LABEL: test_vpmin_s16 5936// CHECK: vpmin.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5937int16x4_t test_vpmin_s16(int16x4_t a, int16x4_t b) { 5938 return vpmin_s16(a, b); 5939} 5940 5941// CHECK-LABEL: test_vpmin_s32 5942// CHECK: vpmin.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5943int32x2_t test_vpmin_s32(int32x2_t a, int32x2_t b) { 5944 return vpmin_s32(a, b); 5945} 5946 5947// CHECK-LABEL: test_vpmin_u8 5948// CHECK: vpmin.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5949uint8x8_t test_vpmin_u8(uint8x8_t a, uint8x8_t b) { 5950 return vpmin_u8(a, b); 5951} 5952 5953// CHECK-LABEL: test_vpmin_u16 5954// CHECK: vpmin.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5955uint16x4_t test_vpmin_u16(uint16x4_t a, uint16x4_t b) { 5956 return vpmin_u16(a, b); 5957} 5958 5959// CHECK-LABEL: test_vpmin_u32 5960// CHECK: vpmin.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5961uint32x2_t test_vpmin_u32(uint32x2_t a, uint32x2_t b) { 5962 return vpmin_u32(a, b); 5963} 5964 5965// CHECK-LABEL: test_vpmin_f32 5966// CHECK: vpmin.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 5967float32x2_t test_vpmin_f32(float32x2_t a, float32x2_t b) { 5968 return vpmin_f32(a, b); 5969} 5970 5971 5972// CHECK-LABEL: test_vqabs_s8 5973// CHECK: vqabs.s8 d{{[0-9]+}}, d{{[0-9]+}} 5974int8x8_t test_vqabs_s8(int8x8_t a) { 5975 return vqabs_s8(a); 5976} 5977 5978// CHECK-LABEL: test_vqabs_s16 5979// CHECK: vqabs.s16 d{{[0-9]+}}, d{{[0-9]+}} 5980int16x4_t test_vqabs_s16(int16x4_t a) { 5981 return vqabs_s16(a); 5982} 5983 5984// CHECK-LABEL: test_vqabs_s32 5985// CHECK: vqabs.s32 d{{[0-9]+}}, d{{[0-9]+}} 5986int32x2_t test_vqabs_s32(int32x2_t a) { 5987 return vqabs_s32(a); 5988} 5989 5990// CHECK-LABEL: test_vqabsq_s8 5991// CHECK: vqabs.s8 q{{[0-9]+}}, q{{[0-9]+}} 5992int8x16_t test_vqabsq_s8(int8x16_t a) { 5993 return vqabsq_s8(a); 5994} 5995 5996// CHECK-LABEL: test_vqabsq_s16 5997// CHECK: vqabs.s16 q{{[0-9]+}}, q{{[0-9]+}} 5998int16x8_t test_vqabsq_s16(int16x8_t a) { 5999 return vqabsq_s16(a); 6000} 6001 6002// CHECK-LABEL: test_vqabsq_s32 6003// CHECK: vqabs.s32 q{{[0-9]+}}, q{{[0-9]+}} 6004int32x4_t test_vqabsq_s32(int32x4_t a) { 6005 return vqabsq_s32(a); 6006} 6007 6008 6009// CHECK-LABEL: test_vqadd_s8 6010// CHECK: vqadd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6011int8x8_t test_vqadd_s8(int8x8_t a, int8x8_t b) { 6012 return vqadd_s8(a, b); 6013} 6014 6015// CHECK-LABEL: test_vqadd_s16 6016// CHECK: vqadd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6017int16x4_t test_vqadd_s16(int16x4_t a, int16x4_t b) { 6018 return vqadd_s16(a, b); 6019} 6020 6021// CHECK-LABEL: test_vqadd_s32 6022// CHECK: vqadd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6023int32x2_t test_vqadd_s32(int32x2_t a, int32x2_t b) { 6024 return vqadd_s32(a, b); 6025} 6026 6027// CHECK-LABEL: test_vqadd_s64 6028// CHECK: vqadd.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6029int64x1_t test_vqadd_s64(int64x1_t a, int64x1_t b) { 6030 return vqadd_s64(a, b); 6031} 6032 6033// CHECK-LABEL: test_vqadd_u8 6034// CHECK: vqadd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6035uint8x8_t test_vqadd_u8(uint8x8_t a, uint8x8_t b) { 6036 return vqadd_u8(a, b); 6037} 6038 6039// CHECK-LABEL: test_vqadd_u16 6040// CHECK: vqadd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6041uint16x4_t test_vqadd_u16(uint16x4_t a, uint16x4_t b) { 6042 return vqadd_u16(a, b); 6043} 6044 6045// CHECK-LABEL: test_vqadd_u32 6046// CHECK: vqadd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6047uint32x2_t test_vqadd_u32(uint32x2_t a, uint32x2_t b) { 6048 return vqadd_u32(a, b); 6049} 6050 6051// CHECK-LABEL: test_vqadd_u64 6052// CHECK: vqadd.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6053uint64x1_t test_vqadd_u64(uint64x1_t a, uint64x1_t b) { 6054 return vqadd_u64(a, b); 6055} 6056 6057// CHECK-LABEL: test_vqaddq_s8 6058// CHECK: vqadd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6059int8x16_t test_vqaddq_s8(int8x16_t a, int8x16_t b) { 6060 return vqaddq_s8(a, b); 6061} 6062 6063// CHECK-LABEL: test_vqaddq_s16 6064// CHECK: vqadd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6065int16x8_t test_vqaddq_s16(int16x8_t a, int16x8_t b) { 6066 return vqaddq_s16(a, b); 6067} 6068 6069// CHECK-LABEL: test_vqaddq_s32 6070// CHECK: vqadd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6071int32x4_t test_vqaddq_s32(int32x4_t a, int32x4_t b) { 6072 return vqaddq_s32(a, b); 6073} 6074 6075// CHECK-LABEL: test_vqaddq_s64 6076// CHECK: vqadd.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6077int64x2_t test_vqaddq_s64(int64x2_t a, int64x2_t b) { 6078 return vqaddq_s64(a, b); 6079} 6080 6081// CHECK-LABEL: test_vqaddq_u8 6082// CHECK: vqadd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6083uint8x16_t test_vqaddq_u8(uint8x16_t a, uint8x16_t b) { 6084 return vqaddq_u8(a, b); 6085} 6086 6087// CHECK-LABEL: test_vqaddq_u16 6088// CHECK: vqadd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6089uint16x8_t test_vqaddq_u16(uint16x8_t a, uint16x8_t b) { 6090 return vqaddq_u16(a, b); 6091} 6092 6093// CHECK-LABEL: test_vqaddq_u32 6094// CHECK: vqadd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6095uint32x4_t test_vqaddq_u32(uint32x4_t a, uint32x4_t b) { 6096 return vqaddq_u32(a, b); 6097} 6098 6099// CHECK-LABEL: test_vqaddq_u64 6100// CHECK: vqadd.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6101uint64x2_t test_vqaddq_u64(uint64x2_t a, uint64x2_t b) { 6102 return vqaddq_u64(a, b); 6103} 6104 6105 6106// CHECK-LABEL: test_vqdmlal_s16 6107// CHECK: vqdmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6108int32x4_t test_vqdmlal_s16(int32x4_t a, int16x4_t b, int16x4_t c) { 6109 return vqdmlal_s16(a, b, c); 6110} 6111 6112// CHECK-LABEL: test_vqdmlal_s32 6113// CHECK: vqdmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6114int64x2_t test_vqdmlal_s32(int64x2_t a, int32x2_t b, int32x2_t c) { 6115 return vqdmlal_s32(a, b, c); 6116} 6117 6118 6119// CHECK-LABEL: test_vqdmlal_lane_s16 6120// CHECK: vqdmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6121int32x4_t test_vqdmlal_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) { 6122 return vqdmlal_lane_s16(a, b, c, 3); 6123} 6124 6125// CHECK-LABEL: test_vqdmlal_lane_s32 6126// CHECK: vqdmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6127int64x2_t test_vqdmlal_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) { 6128 return vqdmlal_lane_s32(a, b, c, 1); 6129} 6130 6131 6132// CHECK-LABEL: test_vqdmlal_n_s16 6133// CHECK: vqdmlal.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6134int32x4_t test_vqdmlal_n_s16(int32x4_t a, int16x4_t b, int16_t c) { 6135 return vqdmlal_n_s16(a, b, c); 6136} 6137 6138// CHECK-LABEL: test_vqdmlal_n_s32 6139// CHECK: vqdmlal.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6140int64x2_t test_vqdmlal_n_s32(int64x2_t a, int32x2_t b, int32_t c) { 6141 return vqdmlal_n_s32(a, b, c); 6142} 6143 6144 6145// CHECK-LABEL: test_vqdmlsl_s16 6146// CHECK: vqdmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6147int32x4_t test_vqdmlsl_s16(int32x4_t a, int16x4_t b, int16x4_t c) { 6148 return vqdmlsl_s16(a, b, c); 6149} 6150 6151// CHECK-LABEL: test_vqdmlsl_s32 6152// CHECK: vqdmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6153int64x2_t test_vqdmlsl_s32(int64x2_t a, int32x2_t b, int32x2_t c) { 6154 return vqdmlsl_s32(a, b, c); 6155} 6156 6157 6158// CHECK-LABEL: test_vqdmlsl_lane_s16 6159// CHECK: vqdmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6160int32x4_t test_vqdmlsl_lane_s16(int32x4_t a, int16x4_t b, int16x4_t c) { 6161 return vqdmlsl_lane_s16(a, b, c, 3); 6162} 6163 6164// CHECK-LABEL: test_vqdmlsl_lane_s32 6165// CHECK: vqdmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6166int64x2_t test_vqdmlsl_lane_s32(int64x2_t a, int32x2_t b, int32x2_t c) { 6167 return vqdmlsl_lane_s32(a, b, c, 1); 6168} 6169 6170 6171// CHECK-LABEL: test_vqdmlsl_n_s16 6172// CHECK: vqdmlsl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6173int32x4_t test_vqdmlsl_n_s16(int32x4_t a, int16x4_t b, int16_t c) { 6174 return vqdmlsl_n_s16(a, b, c); 6175} 6176 6177// CHECK-LABEL: test_vqdmlsl_n_s32 6178// CHECK: vqdmlsl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6179int64x2_t test_vqdmlsl_n_s32(int64x2_t a, int32x2_t b, int32_t c) { 6180 return vqdmlsl_n_s32(a, b, c); 6181} 6182 6183 6184// CHECK-LABEL: test_vqdmulh_s16 6185// CHECK: vqdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6186int16x4_t test_vqdmulh_s16(int16x4_t a, int16x4_t b) { 6187 return vqdmulh_s16(a, b); 6188} 6189 6190// CHECK-LABEL: test_vqdmulh_s32 6191// CHECK: vqdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6192int32x2_t test_vqdmulh_s32(int32x2_t a, int32x2_t b) { 6193 return vqdmulh_s32(a, b); 6194} 6195 6196// CHECK-LABEL: test_vqdmulhq_s16 6197// CHECK: vqdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6198int16x8_t test_vqdmulhq_s16(int16x8_t a, int16x8_t b) { 6199 return vqdmulhq_s16(a, b); 6200} 6201 6202// CHECK-LABEL: test_vqdmulhq_s32 6203// CHECK: vqdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6204int32x4_t test_vqdmulhq_s32(int32x4_t a, int32x4_t b) { 6205 return vqdmulhq_s32(a, b); 6206} 6207 6208 6209// CHECK-LABEL: test_vqdmulh_lane_s16 6210// CHECK: vqdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6211int16x4_t test_vqdmulh_lane_s16(int16x4_t a, int16x4_t b) { 6212 return vqdmulh_lane_s16(a, b, 3); 6213} 6214 6215// CHECK-LABEL: test_vqdmulh_lane_s32 6216// CHECK: vqdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6217int32x2_t test_vqdmulh_lane_s32(int32x2_t a, int32x2_t b) { 6218 return vqdmulh_lane_s32(a, b, 1); 6219} 6220 6221// CHECK-LABEL: test_vqdmulhq_lane_s16 6222// CHECK: vqdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6223int16x8_t test_vqdmulhq_lane_s16(int16x8_t a, int16x4_t b) { 6224 return vqdmulhq_lane_s16(a, b, 3); 6225} 6226 6227// CHECK-LABEL: test_vqdmulhq_lane_s32 6228// CHECK: vqdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6229int32x4_t test_vqdmulhq_lane_s32(int32x4_t a, int32x2_t b) { 6230 return vqdmulhq_lane_s32(a, b, 1); 6231} 6232 6233 6234// CHECK-LABEL: test_vqdmulh_n_s16 6235// CHECK: vqdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6236int16x4_t test_vqdmulh_n_s16(int16x4_t a, int16_t b) { 6237 return vqdmulh_n_s16(a, b); 6238} 6239 6240// CHECK-LABEL: test_vqdmulh_n_s32 6241// CHECK: vqdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6242int32x2_t test_vqdmulh_n_s32(int32x2_t a, int32_t b) { 6243 return vqdmulh_n_s32(a, b); 6244} 6245 6246// CHECK-LABEL: test_vqdmulhq_n_s16 6247// CHECK: vqdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6248int16x8_t test_vqdmulhq_n_s16(int16x8_t a, int16_t b) { 6249 return vqdmulhq_n_s16(a, b); 6250} 6251 6252// CHECK-LABEL: test_vqdmulhq_n_s32 6253// CHECK: vqdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6254int32x4_t test_vqdmulhq_n_s32(int32x4_t a, int32_t b) { 6255 return vqdmulhq_n_s32(a, b); 6256} 6257 6258 6259// CHECK-LABEL: test_vqdmull_s16 6260// CHECK: vqdmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6261int32x4_t test_vqdmull_s16(int16x4_t a, int16x4_t b) { 6262 return vqdmull_s16(a, b); 6263} 6264 6265// CHECK-LABEL: test_vqdmull_s32 6266// CHECK: vqdmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6267int64x2_t test_vqdmull_s32(int32x2_t a, int32x2_t b) { 6268 return vqdmull_s32(a, b); 6269} 6270 6271 6272// CHECK-LABEL: test_vqdmull_lane_s16 6273// CHECK: vqdmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6274int32x4_t test_vqdmull_lane_s16(int16x4_t a, int16x4_t b) { 6275 return vqdmull_lane_s16(a, b, 3); 6276} 6277 6278// CHECK-LABEL: test_vqdmull_lane_s32 6279// CHECK: vqdmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6280int64x2_t test_vqdmull_lane_s32(int32x2_t a, int32x2_t b) { 6281 return vqdmull_lane_s32(a, b, 1); 6282} 6283 6284 6285// CHECK-LABEL: test_vqdmull_n_s16 6286// CHECK: vqdmull.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6287int32x4_t test_vqdmull_n_s16(int16x4_t a, int16_t b) { 6288 return vqdmull_n_s16(a, b); 6289} 6290 6291// CHECK-LABEL: test_vqdmull_n_s32 6292// CHECK: vqdmull.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6293int64x2_t test_vqdmull_n_s32(int32x2_t a, int32_t b) { 6294 return vqdmull_n_s32(a, b); 6295} 6296 6297 6298// CHECK-LABEL: test_vqmovn_s16 6299// CHECK: vqmovn.s16 d{{[0-9]+}}, q{{[0-9]+}} 6300int8x8_t test_vqmovn_s16(int16x8_t a) { 6301 return vqmovn_s16(a); 6302} 6303 6304// CHECK-LABEL: test_vqmovn_s32 6305// CHECK: vqmovn.s32 d{{[0-9]+}}, q{{[0-9]+}} 6306int16x4_t test_vqmovn_s32(int32x4_t a) { 6307 return vqmovn_s32(a); 6308} 6309 6310// CHECK-LABEL: test_vqmovn_s64 6311// CHECK: vqmovn.s64 d{{[0-9]+}}, q{{[0-9]+}} 6312int32x2_t test_vqmovn_s64(int64x2_t a) { 6313 return vqmovn_s64(a); 6314} 6315 6316// CHECK-LABEL: test_vqmovn_u16 6317// CHECK: vqmovn.u16 d{{[0-9]+}}, q{{[0-9]+}} 6318uint8x8_t test_vqmovn_u16(uint16x8_t a) { 6319 return vqmovn_u16(a); 6320} 6321 6322// CHECK-LABEL: test_vqmovn_u32 6323// CHECK: vqmovn.u32 d{{[0-9]+}}, q{{[0-9]+}} 6324uint16x4_t test_vqmovn_u32(uint32x4_t a) { 6325 return vqmovn_u32(a); 6326} 6327 6328// CHECK-LABEL: test_vqmovn_u64 6329// CHECK: vqmovn.u64 d{{[0-9]+}}, q{{[0-9]+}} 6330uint32x2_t test_vqmovn_u64(uint64x2_t a) { 6331 return vqmovn_u64(a); 6332} 6333 6334 6335// CHECK-LABEL: test_vqmovun_s16 6336// CHECK: vqmovun.s16 d{{[0-9]+}}, q{{[0-9]+}} 6337uint8x8_t test_vqmovun_s16(int16x8_t a) { 6338 return vqmovun_s16(a); 6339} 6340 6341// CHECK-LABEL: test_vqmovun_s32 6342// CHECK: vqmovun.s32 d{{[0-9]+}}, q{{[0-9]+}} 6343uint16x4_t test_vqmovun_s32(int32x4_t a) { 6344 return vqmovun_s32(a); 6345} 6346 6347// CHECK-LABEL: test_vqmovun_s64 6348// CHECK: vqmovun.s64 d{{[0-9]+}}, q{{[0-9]+}} 6349uint32x2_t test_vqmovun_s64(int64x2_t a) { 6350 return vqmovun_s64(a); 6351} 6352 6353 6354// CHECK-LABEL: test_vqneg_s8 6355// CHECK: vqneg.s8 d{{[0-9]+}}, d{{[0-9]+}} 6356int8x8_t test_vqneg_s8(int8x8_t a) { 6357 return vqneg_s8(a); 6358} 6359 6360// CHECK-LABEL: test_vqneg_s16 6361// CHECK: vqneg.s16 d{{[0-9]+}}, d{{[0-9]+}} 6362int16x4_t test_vqneg_s16(int16x4_t a) { 6363 return vqneg_s16(a); 6364} 6365 6366// CHECK-LABEL: test_vqneg_s32 6367// CHECK: vqneg.s32 d{{[0-9]+}}, d{{[0-9]+}} 6368int32x2_t test_vqneg_s32(int32x2_t a) { 6369 return vqneg_s32(a); 6370} 6371 6372// CHECK-LABEL: test_vqnegq_s8 6373// CHECK: vqneg.s8 q{{[0-9]+}}, q{{[0-9]+}} 6374int8x16_t test_vqnegq_s8(int8x16_t a) { 6375 return vqnegq_s8(a); 6376} 6377 6378// CHECK-LABEL: test_vqnegq_s16 6379// CHECK: vqneg.s16 q{{[0-9]+}}, q{{[0-9]+}} 6380int16x8_t test_vqnegq_s16(int16x8_t a) { 6381 return vqnegq_s16(a); 6382} 6383 6384// CHECK-LABEL: test_vqnegq_s32 6385// CHECK: vqneg.s32 q{{[0-9]+}}, q{{[0-9]+}} 6386int32x4_t test_vqnegq_s32(int32x4_t a) { 6387 return vqnegq_s32(a); 6388} 6389 6390 6391// CHECK-LABEL: test_vqrdmulh_s16 6392// CHECK: vqrdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6393int16x4_t test_vqrdmulh_s16(int16x4_t a, int16x4_t b) { 6394 return vqrdmulh_s16(a, b); 6395} 6396 6397// CHECK-LABEL: test_vqrdmulh_s32 6398// CHECK: vqrdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6399int32x2_t test_vqrdmulh_s32(int32x2_t a, int32x2_t b) { 6400 return vqrdmulh_s32(a, b); 6401} 6402 6403// CHECK-LABEL: test_vqrdmulhq_s16 6404// CHECK: vqrdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6405int16x8_t test_vqrdmulhq_s16(int16x8_t a, int16x8_t b) { 6406 return vqrdmulhq_s16(a, b); 6407} 6408 6409// CHECK-LABEL: test_vqrdmulhq_s32 6410// CHECK: vqrdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6411int32x4_t test_vqrdmulhq_s32(int32x4_t a, int32x4_t b) { 6412 return vqrdmulhq_s32(a, b); 6413} 6414 6415 6416// CHECK-LABEL: test_vqrdmulh_lane_s16 6417// CHECK: vqrdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6418int16x4_t test_vqrdmulh_lane_s16(int16x4_t a, int16x4_t b) { 6419 return vqrdmulh_lane_s16(a, b, 3); 6420} 6421 6422// CHECK-LABEL: test_vqrdmulh_lane_s32 6423// CHECK: vqrdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6424int32x2_t test_vqrdmulh_lane_s32(int32x2_t a, int32x2_t b) { 6425 return vqrdmulh_lane_s32(a, b, 1); 6426} 6427 6428// CHECK-LABEL: test_vqrdmulhq_lane_s16 6429// CHECK: vqrdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6430int16x8_t test_vqrdmulhq_lane_s16(int16x8_t a, int16x4_t b) { 6431 return vqrdmulhq_lane_s16(a, b, 3); 6432} 6433 6434// CHECK-LABEL: test_vqrdmulhq_lane_s32 6435// CHECK: vqrdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}}[{{[0-9]}}] 6436int32x4_t test_vqrdmulhq_lane_s32(int32x4_t a, int32x2_t b) { 6437 return vqrdmulhq_lane_s32(a, b, 1); 6438} 6439 6440 6441// CHECK-LABEL: test_vqrdmulh_n_s16 6442// CHECK: vqrdmulh.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6443int16x4_t test_vqrdmulh_n_s16(int16x4_t a, int16_t b) { 6444 return vqrdmulh_n_s16(a, b); 6445} 6446 6447// CHECK-LABEL: test_vqrdmulh_n_s32 6448// CHECK: vqrdmulh.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6449int32x2_t test_vqrdmulh_n_s32(int32x2_t a, int32_t b) { 6450 return vqrdmulh_n_s32(a, b); 6451} 6452 6453// CHECK-LABEL: test_vqrdmulhq_n_s16 6454// CHECK: vqrdmulh.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6455int16x8_t test_vqrdmulhq_n_s16(int16x8_t a, int16_t b) { 6456 return vqrdmulhq_n_s16(a, b); 6457} 6458 6459// CHECK-LABEL: test_vqrdmulhq_n_s32 6460// CHECK: vqrdmulh.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6461int32x4_t test_vqrdmulhq_n_s32(int32x4_t a, int32_t b) { 6462 return vqrdmulhq_n_s32(a, b); 6463} 6464 6465 6466// CHECK-LABEL: test_vqrshl_s8 6467// CHECK: vqrshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6468int8x8_t test_vqrshl_s8(int8x8_t a, int8x8_t b) { 6469 return vqrshl_s8(a, b); 6470} 6471 6472// CHECK-LABEL: test_vqrshl_s16 6473// CHECK: vqrshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6474int16x4_t test_vqrshl_s16(int16x4_t a, int16x4_t b) { 6475 return vqrshl_s16(a, b); 6476} 6477 6478// CHECK-LABEL: test_vqrshl_s32 6479// CHECK: vqrshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6480int32x2_t test_vqrshl_s32(int32x2_t a, int32x2_t b) { 6481 return vqrshl_s32(a, b); 6482} 6483 6484// CHECK-LABEL: test_vqrshl_s64 6485// CHECK: vqrshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6486int64x1_t test_vqrshl_s64(int64x1_t a, int64x1_t b) { 6487 return vqrshl_s64(a, b); 6488} 6489 6490// CHECK-LABEL: test_vqrshl_u8 6491// CHECK: vqrshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6492uint8x8_t test_vqrshl_u8(uint8x8_t a, int8x8_t b) { 6493 return vqrshl_u8(a, b); 6494} 6495 6496// CHECK-LABEL: test_vqrshl_u16 6497// CHECK: vqrshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6498uint16x4_t test_vqrshl_u16(uint16x4_t a, int16x4_t b) { 6499 return vqrshl_u16(a, b); 6500} 6501 6502// CHECK-LABEL: test_vqrshl_u32 6503// CHECK: vqrshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6504uint32x2_t test_vqrshl_u32(uint32x2_t a, int32x2_t b) { 6505 return vqrshl_u32(a, b); 6506} 6507 6508// CHECK-LABEL: test_vqrshl_u64 6509// CHECK: vqrshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6510uint64x1_t test_vqrshl_u64(uint64x1_t a, int64x1_t b) { 6511 return vqrshl_u64(a, b); 6512} 6513 6514// CHECK-LABEL: test_vqrshlq_s8 6515// CHECK: vqrshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6516int8x16_t test_vqrshlq_s8(int8x16_t a, int8x16_t b) { 6517 return vqrshlq_s8(a, b); 6518} 6519 6520// CHECK-LABEL: test_vqrshlq_s16 6521// CHECK: vqrshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6522int16x8_t test_vqrshlq_s16(int16x8_t a, int16x8_t b) { 6523 return vqrshlq_s16(a, b); 6524} 6525 6526// CHECK-LABEL: test_vqrshlq_s32 6527// CHECK: vqrshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6528int32x4_t test_vqrshlq_s32(int32x4_t a, int32x4_t b) { 6529 return vqrshlq_s32(a, b); 6530} 6531 6532// CHECK-LABEL: test_vqrshlq_s64 6533// CHECK: vqrshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6534int64x2_t test_vqrshlq_s64(int64x2_t a, int64x2_t b) { 6535 return vqrshlq_s64(a, b); 6536} 6537 6538// CHECK-LABEL: test_vqrshlq_u8 6539// CHECK: vqrshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6540uint8x16_t test_vqrshlq_u8(uint8x16_t a, int8x16_t b) { 6541 return vqrshlq_u8(a, b); 6542} 6543 6544// CHECK-LABEL: test_vqrshlq_u16 6545// CHECK: vqrshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6546uint16x8_t test_vqrshlq_u16(uint16x8_t a, int16x8_t b) { 6547 return vqrshlq_u16(a, b); 6548} 6549 6550// CHECK-LABEL: test_vqrshlq_u32 6551// CHECK: vqrshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6552uint32x4_t test_vqrshlq_u32(uint32x4_t a, int32x4_t b) { 6553 return vqrshlq_u32(a, b); 6554} 6555 6556// CHECK-LABEL: test_vqrshlq_u64 6557// CHECK: vqrshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6558uint64x2_t test_vqrshlq_u64(uint64x2_t a, int64x2_t b) { 6559 return vqrshlq_u64(a, b); 6560} 6561 6562 6563// CHECK-LABEL: test_vqrshrn_n_s16 6564// CHECK: vqrshrn.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6565int8x8_t test_vqrshrn_n_s16(int16x8_t a) { 6566 return vqrshrn_n_s16(a, 1); 6567} 6568 6569// CHECK-LABEL: test_vqrshrn_n_s32 6570// CHECK: vqrshrn.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6571int16x4_t test_vqrshrn_n_s32(int32x4_t a) { 6572 return vqrshrn_n_s32(a, 1); 6573} 6574 6575// CHECK-LABEL: test_vqrshrn_n_s64 6576// CHECK: vqrshrn.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6577int32x2_t test_vqrshrn_n_s64(int64x2_t a) { 6578 return vqrshrn_n_s64(a, 1); 6579} 6580 6581// CHECK-LABEL: test_vqrshrn_n_u16 6582// CHECK: vqrshrn.u16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6583uint8x8_t test_vqrshrn_n_u16(uint16x8_t a) { 6584 return vqrshrn_n_u16(a, 1); 6585} 6586 6587// CHECK-LABEL: test_vqrshrn_n_u32 6588// CHECK: vqrshrn.u32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6589uint16x4_t test_vqrshrn_n_u32(uint32x4_t a) { 6590 return vqrshrn_n_u32(a, 1); 6591} 6592 6593// CHECK-LABEL: test_vqrshrn_n_u64 6594// CHECK: vqrshrn.u64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6595uint32x2_t test_vqrshrn_n_u64(uint64x2_t a) { 6596 return vqrshrn_n_u64(a, 1); 6597} 6598 6599 6600// CHECK-LABEL: test_vqrshrun_n_s16 6601// CHECK: vqrshrun.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6602uint8x8_t test_vqrshrun_n_s16(int16x8_t a) { 6603 return vqrshrun_n_s16(a, 1); 6604} 6605 6606// CHECK-LABEL: test_vqrshrun_n_s32 6607// CHECK: vqrshrun.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6608uint16x4_t test_vqrshrun_n_s32(int32x4_t a) { 6609 return vqrshrun_n_s32(a, 1); 6610} 6611 6612// CHECK-LABEL: test_vqrshrun_n_s64 6613// CHECK: vqrshrun.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6614uint32x2_t test_vqrshrun_n_s64(int64x2_t a) { 6615 return vqrshrun_n_s64(a, 1); 6616} 6617 6618 6619// CHECK-LABEL: test_vqshl_s8 6620// CHECK: vqshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6621int8x8_t test_vqshl_s8(int8x8_t a, int8x8_t b) { 6622 return vqshl_s8(a, b); 6623} 6624 6625// CHECK-LABEL: test_vqshl_s16 6626// CHECK: vqshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6627int16x4_t test_vqshl_s16(int16x4_t a, int16x4_t b) { 6628 return vqshl_s16(a, b); 6629} 6630 6631// CHECK-LABEL: test_vqshl_s32 6632// CHECK: vqshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6633int32x2_t test_vqshl_s32(int32x2_t a, int32x2_t b) { 6634 return vqshl_s32(a, b); 6635} 6636 6637// CHECK-LABEL: test_vqshl_s64 6638// CHECK: vqshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6639int64x1_t test_vqshl_s64(int64x1_t a, int64x1_t b) { 6640 return vqshl_s64(a, b); 6641} 6642 6643// CHECK-LABEL: test_vqshl_u8 6644// CHECK: vqshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6645uint8x8_t test_vqshl_u8(uint8x8_t a, int8x8_t b) { 6646 return vqshl_u8(a, b); 6647} 6648 6649// CHECK-LABEL: test_vqshl_u16 6650// CHECK: vqshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6651uint16x4_t test_vqshl_u16(uint16x4_t a, int16x4_t b) { 6652 return vqshl_u16(a, b); 6653} 6654 6655// CHECK-LABEL: test_vqshl_u32 6656// CHECK: vqshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6657uint32x2_t test_vqshl_u32(uint32x2_t a, int32x2_t b) { 6658 return vqshl_u32(a, b); 6659} 6660 6661// CHECK-LABEL: test_vqshl_u64 6662// CHECK: vqshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6663uint64x1_t test_vqshl_u64(uint64x1_t a, int64x1_t b) { 6664 return vqshl_u64(a, b); 6665} 6666 6667// CHECK-LABEL: test_vqshlq_s8 6668// CHECK: vqshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6669int8x16_t test_vqshlq_s8(int8x16_t a, int8x16_t b) { 6670 return vqshlq_s8(a, b); 6671} 6672 6673// CHECK-LABEL: test_vqshlq_s16 6674// CHECK: vqshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6675int16x8_t test_vqshlq_s16(int16x8_t a, int16x8_t b) { 6676 return vqshlq_s16(a, b); 6677} 6678 6679// CHECK-LABEL: test_vqshlq_s32 6680// CHECK: vqshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6681int32x4_t test_vqshlq_s32(int32x4_t a, int32x4_t b) { 6682 return vqshlq_s32(a, b); 6683} 6684 6685// CHECK-LABEL: test_vqshlq_s64 6686// CHECK: vqshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6687int64x2_t test_vqshlq_s64(int64x2_t a, int64x2_t b) { 6688 return vqshlq_s64(a, b); 6689} 6690 6691// CHECK-LABEL: test_vqshlq_u8 6692// CHECK: vqshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6693uint8x16_t test_vqshlq_u8(uint8x16_t a, int8x16_t b) { 6694 return vqshlq_u8(a, b); 6695} 6696 6697// CHECK-LABEL: test_vqshlq_u16 6698// CHECK: vqshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6699uint16x8_t test_vqshlq_u16(uint16x8_t a, int16x8_t b) { 6700 return vqshlq_u16(a, b); 6701} 6702 6703// CHECK-LABEL: test_vqshlq_u32 6704// CHECK: vqshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6705uint32x4_t test_vqshlq_u32(uint32x4_t a, int32x4_t b) { 6706 return vqshlq_u32(a, b); 6707} 6708 6709// CHECK-LABEL: test_vqshlq_u64 6710// CHECK: vqshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6711uint64x2_t test_vqshlq_u64(uint64x2_t a, int64x2_t b) { 6712 return vqshlq_u64(a, b); 6713} 6714 6715 6716// CHECK-LABEL: test_vqshlu_n_s8 6717// CHECK: vqshlu.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 6718uint8x8_t test_vqshlu_n_s8(int8x8_t a) { 6719 return vqshlu_n_s8(a, 1); 6720} 6721 6722// CHECK-LABEL: test_vqshlu_n_s16 6723// CHECK: vqshlu.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 6724uint16x4_t test_vqshlu_n_s16(int16x4_t a) { 6725 return vqshlu_n_s16(a, 1); 6726} 6727 6728// CHECK-LABEL: test_vqshlu_n_s32 6729// CHECK: vqshlu.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 6730uint32x2_t test_vqshlu_n_s32(int32x2_t a) { 6731 return vqshlu_n_s32(a, 1); 6732} 6733 6734// CHECK-LABEL: test_vqshlu_n_s64 6735// CHECK: vqshlu.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 6736uint64x1_t test_vqshlu_n_s64(int64x1_t a) { 6737 return vqshlu_n_s64(a, 1); 6738} 6739 6740// CHECK-LABEL: test_vqshluq_n_s8 6741// CHECK: vqshlu.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6742uint8x16_t test_vqshluq_n_s8(int8x16_t a) { 6743 return vqshluq_n_s8(a, 1); 6744} 6745 6746// CHECK-LABEL: test_vqshluq_n_s16 6747// CHECK: vqshlu.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6748uint16x8_t test_vqshluq_n_s16(int16x8_t a) { 6749 return vqshluq_n_s16(a, 1); 6750} 6751 6752// CHECK-LABEL: test_vqshluq_n_s32 6753// CHECK: vqshlu.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6754uint32x4_t test_vqshluq_n_s32(int32x4_t a) { 6755 return vqshluq_n_s32(a, 1); 6756} 6757 6758// CHECK-LABEL: test_vqshluq_n_s64 6759// CHECK: vqshlu.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6760uint64x2_t test_vqshluq_n_s64(int64x2_t a) { 6761 return vqshluq_n_s64(a, 1); 6762} 6763 6764 6765// CHECK-LABEL: test_vqshl_n_s8 6766// CHECK: vqshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 6767int8x8_t test_vqshl_n_s8(int8x8_t a) { 6768 return vqshl_n_s8(a, 1); 6769} 6770 6771// CHECK-LABEL: test_vqshl_n_s16 6772// CHECK: vqshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 6773int16x4_t test_vqshl_n_s16(int16x4_t a) { 6774 return vqshl_n_s16(a, 1); 6775} 6776 6777// CHECK-LABEL: test_vqshl_n_s32 6778// CHECK: vqshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 6779int32x2_t test_vqshl_n_s32(int32x2_t a) { 6780 return vqshl_n_s32(a, 1); 6781} 6782 6783// CHECK-LABEL: test_vqshl_n_s64 6784// CHECK: vqshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 6785int64x1_t test_vqshl_n_s64(int64x1_t a) { 6786 return vqshl_n_s64(a, 1); 6787} 6788 6789// CHECK-LABEL: test_vqshl_n_u8 6790// CHECK: vqshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 6791uint8x8_t test_vqshl_n_u8(uint8x8_t a) { 6792 return vqshl_n_u8(a, 1); 6793} 6794 6795// CHECK-LABEL: test_vqshl_n_u16 6796// CHECK: vqshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 6797uint16x4_t test_vqshl_n_u16(uint16x4_t a) { 6798 return vqshl_n_u16(a, 1); 6799} 6800 6801// CHECK-LABEL: test_vqshl_n_u32 6802// CHECK: vqshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 6803uint32x2_t test_vqshl_n_u32(uint32x2_t a) { 6804 return vqshl_n_u32(a, 1); 6805} 6806 6807// CHECK-LABEL: test_vqshl_n_u64 6808// CHECK: vqshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 6809uint64x1_t test_vqshl_n_u64(uint64x1_t a) { 6810 return vqshl_n_u64(a, 1); 6811} 6812 6813// CHECK-LABEL: test_vqshlq_n_s8 6814// CHECK: vqshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6815int8x16_t test_vqshlq_n_s8(int8x16_t a) { 6816 return vqshlq_n_s8(a, 1); 6817} 6818 6819// CHECK-LABEL: test_vqshlq_n_s16 6820// CHECK: vqshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6821int16x8_t test_vqshlq_n_s16(int16x8_t a) { 6822 return vqshlq_n_s16(a, 1); 6823} 6824 6825// CHECK-LABEL: test_vqshlq_n_s32 6826// CHECK: vqshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6827int32x4_t test_vqshlq_n_s32(int32x4_t a) { 6828 return vqshlq_n_s32(a, 1); 6829} 6830 6831// CHECK-LABEL: test_vqshlq_n_s64 6832// CHECK: vqshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6833int64x2_t test_vqshlq_n_s64(int64x2_t a) { 6834 return vqshlq_n_s64(a, 1); 6835} 6836 6837// CHECK-LABEL: test_vqshlq_n_u8 6838// CHECK: vqshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6839uint8x16_t test_vqshlq_n_u8(uint8x16_t a) { 6840 return vqshlq_n_u8(a, 1); 6841} 6842 6843// CHECK-LABEL: test_vqshlq_n_u16 6844// CHECK: vqshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6845uint16x8_t test_vqshlq_n_u16(uint16x8_t a) { 6846 return vqshlq_n_u16(a, 1); 6847} 6848 6849// CHECK-LABEL: test_vqshlq_n_u32 6850// CHECK: vqshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6851uint32x4_t test_vqshlq_n_u32(uint32x4_t a) { 6852 return vqshlq_n_u32(a, 1); 6853} 6854 6855// CHECK-LABEL: test_vqshlq_n_u64 6856// CHECK: vqshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6857uint64x2_t test_vqshlq_n_u64(uint64x2_t a) { 6858 return vqshlq_n_u64(a, 1); 6859} 6860 6861 6862// CHECK-LABEL: test_vqshrn_n_s16 6863// CHECK: vqshrn.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6864int8x8_t test_vqshrn_n_s16(int16x8_t a) { 6865 return vqshrn_n_s16(a, 1); 6866} 6867 6868// CHECK-LABEL: test_vqshrn_n_s32 6869// CHECK: vqshrn.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6870int16x4_t test_vqshrn_n_s32(int32x4_t a) { 6871 return vqshrn_n_s32(a, 1); 6872} 6873 6874// CHECK-LABEL: test_vqshrn_n_s64 6875// CHECK: vqshrn.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6876int32x2_t test_vqshrn_n_s64(int64x2_t a) { 6877 return vqshrn_n_s64(a, 1); 6878} 6879 6880// CHECK-LABEL: test_vqshrn_n_u16 6881// CHECK: vqshrn.u16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6882uint8x8_t test_vqshrn_n_u16(uint16x8_t a) { 6883 return vqshrn_n_u16(a, 1); 6884} 6885 6886// CHECK-LABEL: test_vqshrn_n_u32 6887// CHECK: vqshrn.u32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6888uint16x4_t test_vqshrn_n_u32(uint32x4_t a) { 6889 return vqshrn_n_u32(a, 1); 6890} 6891 6892// CHECK-LABEL: test_vqshrn_n_u64 6893// CHECK: vqshrn.u64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6894uint32x2_t test_vqshrn_n_u64(uint64x2_t a) { 6895 return vqshrn_n_u64(a, 1); 6896} 6897 6898 6899// CHECK-LABEL: test_vqshrun_n_s16 6900// CHECK: vqshrun.s16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6901uint8x8_t test_vqshrun_n_s16(int16x8_t a) { 6902 return vqshrun_n_s16(a, 1); 6903} 6904 6905// CHECK-LABEL: test_vqshrun_n_s32 6906// CHECK: vqshrun.s32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6907uint16x4_t test_vqshrun_n_s32(int32x4_t a) { 6908 return vqshrun_n_s32(a, 1); 6909} 6910 6911// CHECK-LABEL: test_vqshrun_n_s64 6912// CHECK: vqshrun.s64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 6913uint32x2_t test_vqshrun_n_s64(int64x2_t a) { 6914 return vqshrun_n_s64(a, 1); 6915} 6916 6917 6918// CHECK-LABEL: test_vqsub_s8 6919// CHECK: vqsub.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6920int8x8_t test_vqsub_s8(int8x8_t a, int8x8_t b) { 6921 return vqsub_s8(a, b); 6922} 6923 6924// CHECK-LABEL: test_vqsub_s16 6925// CHECK: vqsub.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6926int16x4_t test_vqsub_s16(int16x4_t a, int16x4_t b) { 6927 return vqsub_s16(a, b); 6928} 6929 6930// CHECK-LABEL: test_vqsub_s32 6931// CHECK: vqsub.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6932int32x2_t test_vqsub_s32(int32x2_t a, int32x2_t b) { 6933 return vqsub_s32(a, b); 6934} 6935 6936// CHECK-LABEL: test_vqsub_s64 6937// CHECK: vqsub.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6938int64x1_t test_vqsub_s64(int64x1_t a, int64x1_t b) { 6939 return vqsub_s64(a, b); 6940} 6941 6942// CHECK-LABEL: test_vqsub_u8 6943// CHECK: vqsub.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6944uint8x8_t test_vqsub_u8(uint8x8_t a, uint8x8_t b) { 6945 return vqsub_u8(a, b); 6946} 6947 6948// CHECK-LABEL: test_vqsub_u16 6949// CHECK: vqsub.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6950uint16x4_t test_vqsub_u16(uint16x4_t a, uint16x4_t b) { 6951 return vqsub_u16(a, b); 6952} 6953 6954// CHECK-LABEL: test_vqsub_u32 6955// CHECK: vqsub.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6956uint32x2_t test_vqsub_u32(uint32x2_t a, uint32x2_t b) { 6957 return vqsub_u32(a, b); 6958} 6959 6960// CHECK-LABEL: test_vqsub_u64 6961// CHECK: vqsub.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 6962uint64x1_t test_vqsub_u64(uint64x1_t a, uint64x1_t b) { 6963 return vqsub_u64(a, b); 6964} 6965 6966// CHECK-LABEL: test_vqsubq_s8 6967// CHECK: vqsub.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6968int8x16_t test_vqsubq_s8(int8x16_t a, int8x16_t b) { 6969 return vqsubq_s8(a, b); 6970} 6971 6972// CHECK-LABEL: test_vqsubq_s16 6973// CHECK: vqsub.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6974int16x8_t test_vqsubq_s16(int16x8_t a, int16x8_t b) { 6975 return vqsubq_s16(a, b); 6976} 6977 6978// CHECK-LABEL: test_vqsubq_s32 6979// CHECK: vqsub.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6980int32x4_t test_vqsubq_s32(int32x4_t a, int32x4_t b) { 6981 return vqsubq_s32(a, b); 6982} 6983 6984// CHECK-LABEL: test_vqsubq_s64 6985// CHECK: vqsub.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6986int64x2_t test_vqsubq_s64(int64x2_t a, int64x2_t b) { 6987 return vqsubq_s64(a, b); 6988} 6989 6990// CHECK-LABEL: test_vqsubq_u8 6991// CHECK: vqsub.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6992uint8x16_t test_vqsubq_u8(uint8x16_t a, uint8x16_t b) { 6993 return vqsubq_u8(a, b); 6994} 6995 6996// CHECK-LABEL: test_vqsubq_u16 6997// CHECK: vqsub.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 6998uint16x8_t test_vqsubq_u16(uint16x8_t a, uint16x8_t b) { 6999 return vqsubq_u16(a, b); 7000} 7001 7002// CHECK-LABEL: test_vqsubq_u32 7003// CHECK: vqsub.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 7004uint32x4_t test_vqsubq_u32(uint32x4_t a, uint32x4_t b) { 7005 return vqsubq_u32(a, b); 7006} 7007 7008// CHECK-LABEL: test_vqsubq_u64 7009// CHECK: vqsub.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 7010uint64x2_t test_vqsubq_u64(uint64x2_t a, uint64x2_t b) { 7011 return vqsubq_u64(a, b); 7012} 7013 7014 7015// CHECK-LABEL: test_vraddhn_s16 7016// CHECK: vraddhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 7017int8x8_t test_vraddhn_s16(int16x8_t a, int16x8_t b) { 7018 return vraddhn_s16(a, b); 7019} 7020 7021// CHECK-LABEL: test_vraddhn_s32 7022// CHECK: vraddhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 7023int16x4_t test_vraddhn_s32(int32x4_t a, int32x4_t b) { 7024 return vraddhn_s32(a, b); 7025} 7026 7027// CHECK-LABEL: test_vraddhn_s64 7028// CHECK: vraddhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 7029int32x2_t test_vraddhn_s64(int64x2_t a, int64x2_t b) { 7030 return vraddhn_s64(a, b); 7031} 7032 7033// CHECK-LABEL: test_vraddhn_u16 7034// CHECK: vraddhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 7035uint8x8_t test_vraddhn_u16(uint16x8_t a, uint16x8_t b) { 7036 return vraddhn_u16(a, b); 7037} 7038 7039// CHECK-LABEL: test_vraddhn_u32 7040// CHECK: vraddhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 7041uint16x4_t test_vraddhn_u32(uint32x4_t a, uint32x4_t b) { 7042 return vraddhn_u32(a, b); 7043} 7044 7045// CHECK-LABEL: test_vraddhn_u64 7046// CHECK: vraddhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 7047uint32x2_t test_vraddhn_u64(uint64x2_t a, uint64x2_t b) { 7048 return vraddhn_u64(a, b); 7049} 7050 7051 7052// CHECK-LABEL: test_vrecpe_f32 7053// CHECK: vrecpe.f32 d{{[0-9]+}}, d{{[0-9]+}} 7054float32x2_t test_vrecpe_f32(float32x2_t a) { 7055 return vrecpe_f32(a); 7056} 7057 7058// CHECK-LABEL: test_vrecpe_u32 7059// CHECK: vrecpe.u32 d{{[0-9]+}}, d{{[0-9]+}} 7060uint32x2_t test_vrecpe_u32(uint32x2_t a) { 7061 return vrecpe_u32(a); 7062} 7063 7064// CHECK-LABEL: test_vrecpeq_f32 7065// CHECK: vrecpe.f32 q{{[0-9]+}}, q{{[0-9]+}} 7066float32x4_t test_vrecpeq_f32(float32x4_t a) { 7067 return vrecpeq_f32(a); 7068} 7069 7070// CHECK-LABEL: test_vrecpeq_u32 7071// CHECK: vrecpe.u32 q{{[0-9]+}}, q{{[0-9]+}} 7072uint32x4_t test_vrecpeq_u32(uint32x4_t a) { 7073 return vrecpeq_u32(a); 7074} 7075 7076 7077// CHECK-LABEL: test_vrecps_f32 7078// CHECK: vrecps.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 7079float32x2_t test_vrecps_f32(float32x2_t a, float32x2_t b) { 7080 return vrecps_f32(a, b); 7081} 7082 7083// CHECK-LABEL: test_vrecpsq_f32 7084// CHECK: vrecps.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 7085float32x4_t test_vrecpsq_f32(float32x4_t a, float32x4_t b) { 7086 return vrecpsq_f32(a, b); 7087} 7088 7089 7090// CHECK-LABEL: test_vreinterpret_s8_s16 7091int8x8_t test_vreinterpret_s8_s16(int16x4_t a) { 7092 return vreinterpret_s8_s16(a); 7093} 7094 7095// CHECK-LABEL: test_vreinterpret_s8_s32 7096int8x8_t test_vreinterpret_s8_s32(int32x2_t a) { 7097 return vreinterpret_s8_s32(a); 7098} 7099 7100// CHECK-LABEL: test_vreinterpret_s8_s64 7101int8x8_t test_vreinterpret_s8_s64(int64x1_t a) { 7102 return vreinterpret_s8_s64(a); 7103} 7104 7105// CHECK-LABEL: test_vreinterpret_s8_u8 7106int8x8_t test_vreinterpret_s8_u8(uint8x8_t a) { 7107 return vreinterpret_s8_u8(a); 7108} 7109 7110// CHECK-LABEL: test_vreinterpret_s8_u16 7111int8x8_t test_vreinterpret_s8_u16(uint16x4_t a) { 7112 return vreinterpret_s8_u16(a); 7113} 7114 7115// CHECK-LABEL: test_vreinterpret_s8_u32 7116int8x8_t test_vreinterpret_s8_u32(uint32x2_t a) { 7117 return vreinterpret_s8_u32(a); 7118} 7119 7120// CHECK-LABEL: test_vreinterpret_s8_u64 7121int8x8_t test_vreinterpret_s8_u64(uint64x1_t a) { 7122 return vreinterpret_s8_u64(a); 7123} 7124 7125// CHECK-LABEL: test_vreinterpret_s8_f16 7126int8x8_t test_vreinterpret_s8_f16(float16x4_t a) { 7127 return vreinterpret_s8_f16(a); 7128} 7129 7130// CHECK-LABEL: test_vreinterpret_s8_f32 7131int8x8_t test_vreinterpret_s8_f32(float32x2_t a) { 7132 return vreinterpret_s8_f32(a); 7133} 7134 7135// CHECK-LABEL: test_vreinterpret_s8_p8 7136int8x8_t test_vreinterpret_s8_p8(poly8x8_t a) { 7137 return vreinterpret_s8_p8(a); 7138} 7139 7140// CHECK-LABEL: test_vreinterpret_s8_p16 7141int8x8_t test_vreinterpret_s8_p16(poly16x4_t a) { 7142 return vreinterpret_s8_p16(a); 7143} 7144 7145// CHECK-LABEL: test_vreinterpret_s16_s8 7146int16x4_t test_vreinterpret_s16_s8(int8x8_t a) { 7147 return vreinterpret_s16_s8(a); 7148} 7149 7150// CHECK-LABEL: test_vreinterpret_s16_s32 7151int16x4_t test_vreinterpret_s16_s32(int32x2_t a) { 7152 return vreinterpret_s16_s32(a); 7153} 7154 7155// CHECK-LABEL: test_vreinterpret_s16_s64 7156int16x4_t test_vreinterpret_s16_s64(int64x1_t a) { 7157 return vreinterpret_s16_s64(a); 7158} 7159 7160// CHECK-LABEL: test_vreinterpret_s16_u8 7161int16x4_t test_vreinterpret_s16_u8(uint8x8_t a) { 7162 return vreinterpret_s16_u8(a); 7163} 7164 7165// CHECK-LABEL: test_vreinterpret_s16_u16 7166int16x4_t test_vreinterpret_s16_u16(uint16x4_t a) { 7167 return vreinterpret_s16_u16(a); 7168} 7169 7170// CHECK-LABEL: test_vreinterpret_s16_u32 7171int16x4_t test_vreinterpret_s16_u32(uint32x2_t a) { 7172 return vreinterpret_s16_u32(a); 7173} 7174 7175// CHECK-LABEL: test_vreinterpret_s16_u64 7176int16x4_t test_vreinterpret_s16_u64(uint64x1_t a) { 7177 return vreinterpret_s16_u64(a); 7178} 7179 7180// CHECK-LABEL: test_vreinterpret_s16_f16 7181int16x4_t test_vreinterpret_s16_f16(float16x4_t a) { 7182 return vreinterpret_s16_f16(a); 7183} 7184 7185// CHECK-LABEL: test_vreinterpret_s16_f32 7186int16x4_t test_vreinterpret_s16_f32(float32x2_t a) { 7187 return vreinterpret_s16_f32(a); 7188} 7189 7190// CHECK-LABEL: test_vreinterpret_s16_p8 7191int16x4_t test_vreinterpret_s16_p8(poly8x8_t a) { 7192 return vreinterpret_s16_p8(a); 7193} 7194 7195// CHECK-LABEL: test_vreinterpret_s16_p16 7196int16x4_t test_vreinterpret_s16_p16(poly16x4_t a) { 7197 return vreinterpret_s16_p16(a); 7198} 7199 7200// CHECK-LABEL: test_vreinterpret_s32_s8 7201int32x2_t test_vreinterpret_s32_s8(int8x8_t a) { 7202 return vreinterpret_s32_s8(a); 7203} 7204 7205// CHECK-LABEL: test_vreinterpret_s32_s16 7206int32x2_t test_vreinterpret_s32_s16(int16x4_t a) { 7207 return vreinterpret_s32_s16(a); 7208} 7209 7210// CHECK-LABEL: test_vreinterpret_s32_s64 7211int32x2_t test_vreinterpret_s32_s64(int64x1_t a) { 7212 return vreinterpret_s32_s64(a); 7213} 7214 7215// CHECK-LABEL: test_vreinterpret_s32_u8 7216int32x2_t test_vreinterpret_s32_u8(uint8x8_t a) { 7217 return vreinterpret_s32_u8(a); 7218} 7219 7220// CHECK-LABEL: test_vreinterpret_s32_u16 7221int32x2_t test_vreinterpret_s32_u16(uint16x4_t a) { 7222 return vreinterpret_s32_u16(a); 7223} 7224 7225// CHECK-LABEL: test_vreinterpret_s32_u32 7226int32x2_t test_vreinterpret_s32_u32(uint32x2_t a) { 7227 return vreinterpret_s32_u32(a); 7228} 7229 7230// CHECK-LABEL: test_vreinterpret_s32_u64 7231int32x2_t test_vreinterpret_s32_u64(uint64x1_t a) { 7232 return vreinterpret_s32_u64(a); 7233} 7234 7235// CHECK-LABEL: test_vreinterpret_s32_f16 7236int32x2_t test_vreinterpret_s32_f16(float16x4_t a) { 7237 return vreinterpret_s32_f16(a); 7238} 7239 7240// CHECK-LABEL: test_vreinterpret_s32_f32 7241int32x2_t test_vreinterpret_s32_f32(float32x2_t a) { 7242 return vreinterpret_s32_f32(a); 7243} 7244 7245// CHECK-LABEL: test_vreinterpret_s32_p8 7246int32x2_t test_vreinterpret_s32_p8(poly8x8_t a) { 7247 return vreinterpret_s32_p8(a); 7248} 7249 7250// CHECK-LABEL: test_vreinterpret_s32_p16 7251int32x2_t test_vreinterpret_s32_p16(poly16x4_t a) { 7252 return vreinterpret_s32_p16(a); 7253} 7254 7255// CHECK-LABEL: test_vreinterpret_s64_s8 7256int64x1_t test_vreinterpret_s64_s8(int8x8_t a) { 7257 return vreinterpret_s64_s8(a); 7258} 7259 7260// CHECK-LABEL: test_vreinterpret_s64_s16 7261int64x1_t test_vreinterpret_s64_s16(int16x4_t a) { 7262 return vreinterpret_s64_s16(a); 7263} 7264 7265// CHECK-LABEL: test_vreinterpret_s64_s32 7266int64x1_t test_vreinterpret_s64_s32(int32x2_t a) { 7267 return vreinterpret_s64_s32(a); 7268} 7269 7270// CHECK-LABEL: test_vreinterpret_s64_u8 7271int64x1_t test_vreinterpret_s64_u8(uint8x8_t a) { 7272 return vreinterpret_s64_u8(a); 7273} 7274 7275// CHECK-LABEL: test_vreinterpret_s64_u16 7276int64x1_t test_vreinterpret_s64_u16(uint16x4_t a) { 7277 return vreinterpret_s64_u16(a); 7278} 7279 7280// CHECK-LABEL: test_vreinterpret_s64_u32 7281int64x1_t test_vreinterpret_s64_u32(uint32x2_t a) { 7282 return vreinterpret_s64_u32(a); 7283} 7284 7285// CHECK-LABEL: test_vreinterpret_s64_u64 7286int64x1_t test_vreinterpret_s64_u64(uint64x1_t a) { 7287 return vreinterpret_s64_u64(a); 7288} 7289 7290// CHECK-LABEL: test_vreinterpret_s64_f16 7291int64x1_t test_vreinterpret_s64_f16(float16x4_t a) { 7292 return vreinterpret_s64_f16(a); 7293} 7294 7295// CHECK-LABEL: test_vreinterpret_s64_f32 7296int64x1_t test_vreinterpret_s64_f32(float32x2_t a) { 7297 return vreinterpret_s64_f32(a); 7298} 7299 7300// CHECK-LABEL: test_vreinterpret_s64_p8 7301int64x1_t test_vreinterpret_s64_p8(poly8x8_t a) { 7302 return vreinterpret_s64_p8(a); 7303} 7304 7305// CHECK-LABEL: test_vreinterpret_s64_p16 7306int64x1_t test_vreinterpret_s64_p16(poly16x4_t a) { 7307 return vreinterpret_s64_p16(a); 7308} 7309 7310// CHECK-LABEL: test_vreinterpret_u8_s8 7311uint8x8_t test_vreinterpret_u8_s8(int8x8_t a) { 7312 return vreinterpret_u8_s8(a); 7313} 7314 7315// CHECK-LABEL: test_vreinterpret_u8_s16 7316uint8x8_t test_vreinterpret_u8_s16(int16x4_t a) { 7317 return vreinterpret_u8_s16(a); 7318} 7319 7320// CHECK-LABEL: test_vreinterpret_u8_s32 7321uint8x8_t test_vreinterpret_u8_s32(int32x2_t a) { 7322 return vreinterpret_u8_s32(a); 7323} 7324 7325// CHECK-LABEL: test_vreinterpret_u8_s64 7326uint8x8_t test_vreinterpret_u8_s64(int64x1_t a) { 7327 return vreinterpret_u8_s64(a); 7328} 7329 7330// CHECK-LABEL: test_vreinterpret_u8_u16 7331uint8x8_t test_vreinterpret_u8_u16(uint16x4_t a) { 7332 return vreinterpret_u8_u16(a); 7333} 7334 7335// CHECK-LABEL: test_vreinterpret_u8_u32 7336uint8x8_t test_vreinterpret_u8_u32(uint32x2_t a) { 7337 return vreinterpret_u8_u32(a); 7338} 7339 7340// CHECK-LABEL: test_vreinterpret_u8_u64 7341uint8x8_t test_vreinterpret_u8_u64(uint64x1_t a) { 7342 return vreinterpret_u8_u64(a); 7343} 7344 7345// CHECK-LABEL: test_vreinterpret_u8_f16 7346uint8x8_t test_vreinterpret_u8_f16(float16x4_t a) { 7347 return vreinterpret_u8_f16(a); 7348} 7349 7350// CHECK-LABEL: test_vreinterpret_u8_f32 7351uint8x8_t test_vreinterpret_u8_f32(float32x2_t a) { 7352 return vreinterpret_u8_f32(a); 7353} 7354 7355// CHECK-LABEL: test_vreinterpret_u8_p8 7356uint8x8_t test_vreinterpret_u8_p8(poly8x8_t a) { 7357 return vreinterpret_u8_p8(a); 7358} 7359 7360// CHECK-LABEL: test_vreinterpret_u8_p16 7361uint8x8_t test_vreinterpret_u8_p16(poly16x4_t a) { 7362 return vreinterpret_u8_p16(a); 7363} 7364 7365// CHECK-LABEL: test_vreinterpret_u16_s8 7366uint16x4_t test_vreinterpret_u16_s8(int8x8_t a) { 7367 return vreinterpret_u16_s8(a); 7368} 7369 7370// CHECK-LABEL: test_vreinterpret_u16_s16 7371uint16x4_t test_vreinterpret_u16_s16(int16x4_t a) { 7372 return vreinterpret_u16_s16(a); 7373} 7374 7375// CHECK-LABEL: test_vreinterpret_u16_s32 7376uint16x4_t test_vreinterpret_u16_s32(int32x2_t a) { 7377 return vreinterpret_u16_s32(a); 7378} 7379 7380// CHECK-LABEL: test_vreinterpret_u16_s64 7381uint16x4_t test_vreinterpret_u16_s64(int64x1_t a) { 7382 return vreinterpret_u16_s64(a); 7383} 7384 7385// CHECK-LABEL: test_vreinterpret_u16_u8 7386uint16x4_t test_vreinterpret_u16_u8(uint8x8_t a) { 7387 return vreinterpret_u16_u8(a); 7388} 7389 7390// CHECK-LABEL: test_vreinterpret_u16_u32 7391uint16x4_t test_vreinterpret_u16_u32(uint32x2_t a) { 7392 return vreinterpret_u16_u32(a); 7393} 7394 7395// CHECK-LABEL: test_vreinterpret_u16_u64 7396uint16x4_t test_vreinterpret_u16_u64(uint64x1_t a) { 7397 return vreinterpret_u16_u64(a); 7398} 7399 7400// CHECK-LABEL: test_vreinterpret_u16_f16 7401uint16x4_t test_vreinterpret_u16_f16(float16x4_t a) { 7402 return vreinterpret_u16_f16(a); 7403} 7404 7405// CHECK-LABEL: test_vreinterpret_u16_f32 7406uint16x4_t test_vreinterpret_u16_f32(float32x2_t a) { 7407 return vreinterpret_u16_f32(a); 7408} 7409 7410// CHECK-LABEL: test_vreinterpret_u16_p8 7411uint16x4_t test_vreinterpret_u16_p8(poly8x8_t a) { 7412 return vreinterpret_u16_p8(a); 7413} 7414 7415// CHECK-LABEL: test_vreinterpret_u16_p16 7416uint16x4_t test_vreinterpret_u16_p16(poly16x4_t a) { 7417 return vreinterpret_u16_p16(a); 7418} 7419 7420// CHECK-LABEL: test_vreinterpret_u32_s8 7421uint32x2_t test_vreinterpret_u32_s8(int8x8_t a) { 7422 return vreinterpret_u32_s8(a); 7423} 7424 7425// CHECK-LABEL: test_vreinterpret_u32_s16 7426uint32x2_t test_vreinterpret_u32_s16(int16x4_t a) { 7427 return vreinterpret_u32_s16(a); 7428} 7429 7430// CHECK-LABEL: test_vreinterpret_u32_s32 7431uint32x2_t test_vreinterpret_u32_s32(int32x2_t a) { 7432 return vreinterpret_u32_s32(a); 7433} 7434 7435// CHECK-LABEL: test_vreinterpret_u32_s64 7436uint32x2_t test_vreinterpret_u32_s64(int64x1_t a) { 7437 return vreinterpret_u32_s64(a); 7438} 7439 7440// CHECK-LABEL: test_vreinterpret_u32_u8 7441uint32x2_t test_vreinterpret_u32_u8(uint8x8_t a) { 7442 return vreinterpret_u32_u8(a); 7443} 7444 7445// CHECK-LABEL: test_vreinterpret_u32_u16 7446uint32x2_t test_vreinterpret_u32_u16(uint16x4_t a) { 7447 return vreinterpret_u32_u16(a); 7448} 7449 7450// CHECK-LABEL: test_vreinterpret_u32_u64 7451uint32x2_t test_vreinterpret_u32_u64(uint64x1_t a) { 7452 return vreinterpret_u32_u64(a); 7453} 7454 7455// CHECK-LABEL: test_vreinterpret_u32_f16 7456uint32x2_t test_vreinterpret_u32_f16(float16x4_t a) { 7457 return vreinterpret_u32_f16(a); 7458} 7459 7460// CHECK-LABEL: test_vreinterpret_u32_f32 7461uint32x2_t test_vreinterpret_u32_f32(float32x2_t a) { 7462 return vreinterpret_u32_f32(a); 7463} 7464 7465// CHECK-LABEL: test_vreinterpret_u32_p8 7466uint32x2_t test_vreinterpret_u32_p8(poly8x8_t a) { 7467 return vreinterpret_u32_p8(a); 7468} 7469 7470// CHECK-LABEL: test_vreinterpret_u32_p16 7471uint32x2_t test_vreinterpret_u32_p16(poly16x4_t a) { 7472 return vreinterpret_u32_p16(a); 7473} 7474 7475// CHECK-LABEL: test_vreinterpret_u64_s8 7476uint64x1_t test_vreinterpret_u64_s8(int8x8_t a) { 7477 return vreinterpret_u64_s8(a); 7478} 7479 7480// CHECK-LABEL: test_vreinterpret_u64_s16 7481uint64x1_t test_vreinterpret_u64_s16(int16x4_t a) { 7482 return vreinterpret_u64_s16(a); 7483} 7484 7485// CHECK-LABEL: test_vreinterpret_u64_s32 7486uint64x1_t test_vreinterpret_u64_s32(int32x2_t a) { 7487 return vreinterpret_u64_s32(a); 7488} 7489 7490// CHECK-LABEL: test_vreinterpret_u64_s64 7491uint64x1_t test_vreinterpret_u64_s64(int64x1_t a) { 7492 return vreinterpret_u64_s64(a); 7493} 7494 7495// CHECK-LABEL: test_vreinterpret_u64_u8 7496uint64x1_t test_vreinterpret_u64_u8(uint8x8_t a) { 7497 return vreinterpret_u64_u8(a); 7498} 7499 7500// CHECK-LABEL: test_vreinterpret_u64_u16 7501uint64x1_t test_vreinterpret_u64_u16(uint16x4_t a) { 7502 return vreinterpret_u64_u16(a); 7503} 7504 7505// CHECK-LABEL: test_vreinterpret_u64_u32 7506uint64x1_t test_vreinterpret_u64_u32(uint32x2_t a) { 7507 return vreinterpret_u64_u32(a); 7508} 7509 7510// CHECK-LABEL: test_vreinterpret_u64_f16 7511uint64x1_t test_vreinterpret_u64_f16(float16x4_t a) { 7512 return vreinterpret_u64_f16(a); 7513} 7514 7515// CHECK-LABEL: test_vreinterpret_u64_f32 7516uint64x1_t test_vreinterpret_u64_f32(float32x2_t a) { 7517 return vreinterpret_u64_f32(a); 7518} 7519 7520// CHECK-LABEL: test_vreinterpret_u64_p8 7521uint64x1_t test_vreinterpret_u64_p8(poly8x8_t a) { 7522 return vreinterpret_u64_p8(a); 7523} 7524 7525// CHECK-LABEL: test_vreinterpret_u64_p16 7526uint64x1_t test_vreinterpret_u64_p16(poly16x4_t a) { 7527 return vreinterpret_u64_p16(a); 7528} 7529 7530// CHECK-LABEL: test_vreinterpret_f16_s8 7531float16x4_t test_vreinterpret_f16_s8(int8x8_t a) { 7532 return vreinterpret_f16_s8(a); 7533} 7534 7535// CHECK-LABEL: test_vreinterpret_f16_s16 7536float16x4_t test_vreinterpret_f16_s16(int16x4_t a) { 7537 return vreinterpret_f16_s16(a); 7538} 7539 7540// CHECK-LABEL: test_vreinterpret_f16_s32 7541float16x4_t test_vreinterpret_f16_s32(int32x2_t a) { 7542 return vreinterpret_f16_s32(a); 7543} 7544 7545// CHECK-LABEL: test_vreinterpret_f16_s64 7546float16x4_t test_vreinterpret_f16_s64(int64x1_t a) { 7547 return vreinterpret_f16_s64(a); 7548} 7549 7550// CHECK-LABEL: test_vreinterpret_f16_u8 7551float16x4_t test_vreinterpret_f16_u8(uint8x8_t a) { 7552 return vreinterpret_f16_u8(a); 7553} 7554 7555// CHECK-LABEL: test_vreinterpret_f16_u16 7556float16x4_t test_vreinterpret_f16_u16(uint16x4_t a) { 7557 return vreinterpret_f16_u16(a); 7558} 7559 7560// CHECK-LABEL: test_vreinterpret_f16_u32 7561float16x4_t test_vreinterpret_f16_u32(uint32x2_t a) { 7562 return vreinterpret_f16_u32(a); 7563} 7564 7565// CHECK-LABEL: test_vreinterpret_f16_u64 7566float16x4_t test_vreinterpret_f16_u64(uint64x1_t a) { 7567 return vreinterpret_f16_u64(a); 7568} 7569 7570// CHECK-LABEL: test_vreinterpret_f16_f32 7571float16x4_t test_vreinterpret_f16_f32(float32x2_t a) { 7572 return vreinterpret_f16_f32(a); 7573} 7574 7575// CHECK-LABEL: test_vreinterpret_f16_p8 7576float16x4_t test_vreinterpret_f16_p8(poly8x8_t a) { 7577 return vreinterpret_f16_p8(a); 7578} 7579 7580// CHECK-LABEL: test_vreinterpret_f16_p16 7581float16x4_t test_vreinterpret_f16_p16(poly16x4_t a) { 7582 return vreinterpret_f16_p16(a); 7583} 7584 7585// CHECK-LABEL: test_vreinterpret_f32_s8 7586float32x2_t test_vreinterpret_f32_s8(int8x8_t a) { 7587 return vreinterpret_f32_s8(a); 7588} 7589 7590// CHECK-LABEL: test_vreinterpret_f32_s16 7591float32x2_t test_vreinterpret_f32_s16(int16x4_t a) { 7592 return vreinterpret_f32_s16(a); 7593} 7594 7595// CHECK-LABEL: test_vreinterpret_f32_s32 7596float32x2_t test_vreinterpret_f32_s32(int32x2_t a) { 7597 return vreinterpret_f32_s32(a); 7598} 7599 7600// CHECK-LABEL: test_vreinterpret_f32_s64 7601float32x2_t test_vreinterpret_f32_s64(int64x1_t a) { 7602 return vreinterpret_f32_s64(a); 7603} 7604 7605// CHECK-LABEL: test_vreinterpret_f32_u8 7606float32x2_t test_vreinterpret_f32_u8(uint8x8_t a) { 7607 return vreinterpret_f32_u8(a); 7608} 7609 7610// CHECK-LABEL: test_vreinterpret_f32_u16 7611float32x2_t test_vreinterpret_f32_u16(uint16x4_t a) { 7612 return vreinterpret_f32_u16(a); 7613} 7614 7615// CHECK-LABEL: test_vreinterpret_f32_u32 7616float32x2_t test_vreinterpret_f32_u32(uint32x2_t a) { 7617 return vreinterpret_f32_u32(a); 7618} 7619 7620// CHECK-LABEL: test_vreinterpret_f32_u64 7621float32x2_t test_vreinterpret_f32_u64(uint64x1_t a) { 7622 return vreinterpret_f32_u64(a); 7623} 7624 7625// CHECK-LABEL: test_vreinterpret_f32_f16 7626float32x2_t test_vreinterpret_f32_f16(float16x4_t a) { 7627 return vreinterpret_f32_f16(a); 7628} 7629 7630// CHECK-LABEL: test_vreinterpret_f32_p8 7631float32x2_t test_vreinterpret_f32_p8(poly8x8_t a) { 7632 return vreinterpret_f32_p8(a); 7633} 7634 7635// CHECK-LABEL: test_vreinterpret_f32_p16 7636float32x2_t test_vreinterpret_f32_p16(poly16x4_t a) { 7637 return vreinterpret_f32_p16(a); 7638} 7639 7640// CHECK-LABEL: test_vreinterpret_p8_s8 7641poly8x8_t test_vreinterpret_p8_s8(int8x8_t a) { 7642 return vreinterpret_p8_s8(a); 7643} 7644 7645// CHECK-LABEL: test_vreinterpret_p8_s16 7646poly8x8_t test_vreinterpret_p8_s16(int16x4_t a) { 7647 return vreinterpret_p8_s16(a); 7648} 7649 7650// CHECK-LABEL: test_vreinterpret_p8_s32 7651poly8x8_t test_vreinterpret_p8_s32(int32x2_t a) { 7652 return vreinterpret_p8_s32(a); 7653} 7654 7655// CHECK-LABEL: test_vreinterpret_p8_s64 7656poly8x8_t test_vreinterpret_p8_s64(int64x1_t a) { 7657 return vreinterpret_p8_s64(a); 7658} 7659 7660// CHECK-LABEL: test_vreinterpret_p8_u8 7661poly8x8_t test_vreinterpret_p8_u8(uint8x8_t a) { 7662 return vreinterpret_p8_u8(a); 7663} 7664 7665// CHECK-LABEL: test_vreinterpret_p8_u16 7666poly8x8_t test_vreinterpret_p8_u16(uint16x4_t a) { 7667 return vreinterpret_p8_u16(a); 7668} 7669 7670// CHECK-LABEL: test_vreinterpret_p8_u32 7671poly8x8_t test_vreinterpret_p8_u32(uint32x2_t a) { 7672 return vreinterpret_p8_u32(a); 7673} 7674 7675// CHECK-LABEL: test_vreinterpret_p8_u64 7676poly8x8_t test_vreinterpret_p8_u64(uint64x1_t a) { 7677 return vreinterpret_p8_u64(a); 7678} 7679 7680// CHECK-LABEL: test_vreinterpret_p8_f16 7681poly8x8_t test_vreinterpret_p8_f16(float16x4_t a) { 7682 return vreinterpret_p8_f16(a); 7683} 7684 7685// CHECK-LABEL: test_vreinterpret_p8_f32 7686poly8x8_t test_vreinterpret_p8_f32(float32x2_t a) { 7687 return vreinterpret_p8_f32(a); 7688} 7689 7690// CHECK-LABEL: test_vreinterpret_p8_p16 7691poly8x8_t test_vreinterpret_p8_p16(poly16x4_t a) { 7692 return vreinterpret_p8_p16(a); 7693} 7694 7695// CHECK-LABEL: test_vreinterpret_p16_s8 7696poly16x4_t test_vreinterpret_p16_s8(int8x8_t a) { 7697 return vreinterpret_p16_s8(a); 7698} 7699 7700// CHECK-LABEL: test_vreinterpret_p16_s16 7701poly16x4_t test_vreinterpret_p16_s16(int16x4_t a) { 7702 return vreinterpret_p16_s16(a); 7703} 7704 7705// CHECK-LABEL: test_vreinterpret_p16_s32 7706poly16x4_t test_vreinterpret_p16_s32(int32x2_t a) { 7707 return vreinterpret_p16_s32(a); 7708} 7709 7710// CHECK-LABEL: test_vreinterpret_p16_s64 7711poly16x4_t test_vreinterpret_p16_s64(int64x1_t a) { 7712 return vreinterpret_p16_s64(a); 7713} 7714 7715// CHECK-LABEL: test_vreinterpret_p16_u8 7716poly16x4_t test_vreinterpret_p16_u8(uint8x8_t a) { 7717 return vreinterpret_p16_u8(a); 7718} 7719 7720// CHECK-LABEL: test_vreinterpret_p16_u16 7721poly16x4_t test_vreinterpret_p16_u16(uint16x4_t a) { 7722 return vreinterpret_p16_u16(a); 7723} 7724 7725// CHECK-LABEL: test_vreinterpret_p16_u32 7726poly16x4_t test_vreinterpret_p16_u32(uint32x2_t a) { 7727 return vreinterpret_p16_u32(a); 7728} 7729 7730// CHECK-LABEL: test_vreinterpret_p16_u64 7731poly16x4_t test_vreinterpret_p16_u64(uint64x1_t a) { 7732 return vreinterpret_p16_u64(a); 7733} 7734 7735// CHECK-LABEL: test_vreinterpret_p16_f16 7736poly16x4_t test_vreinterpret_p16_f16(float16x4_t a) { 7737 return vreinterpret_p16_f16(a); 7738} 7739 7740// CHECK-LABEL: test_vreinterpret_p16_f32 7741poly16x4_t test_vreinterpret_p16_f32(float32x2_t a) { 7742 return vreinterpret_p16_f32(a); 7743} 7744 7745// CHECK-LABEL: test_vreinterpret_p16_p8 7746poly16x4_t test_vreinterpret_p16_p8(poly8x8_t a) { 7747 return vreinterpret_p16_p8(a); 7748} 7749 7750// CHECK-LABEL: test_vreinterpretq_s8_s16 7751int8x16_t test_vreinterpretq_s8_s16(int16x8_t a) { 7752 return vreinterpretq_s8_s16(a); 7753} 7754 7755// CHECK-LABEL: test_vreinterpretq_s8_s32 7756int8x16_t test_vreinterpretq_s8_s32(int32x4_t a) { 7757 return vreinterpretq_s8_s32(a); 7758} 7759 7760// CHECK-LABEL: test_vreinterpretq_s8_s64 7761int8x16_t test_vreinterpretq_s8_s64(int64x2_t a) { 7762 return vreinterpretq_s8_s64(a); 7763} 7764 7765// CHECK-LABEL: test_vreinterpretq_s8_u8 7766int8x16_t test_vreinterpretq_s8_u8(uint8x16_t a) { 7767 return vreinterpretq_s8_u8(a); 7768} 7769 7770// CHECK-LABEL: test_vreinterpretq_s8_u16 7771int8x16_t test_vreinterpretq_s8_u16(uint16x8_t a) { 7772 return vreinterpretq_s8_u16(a); 7773} 7774 7775// CHECK-LABEL: test_vreinterpretq_s8_u32 7776int8x16_t test_vreinterpretq_s8_u32(uint32x4_t a) { 7777 return vreinterpretq_s8_u32(a); 7778} 7779 7780// CHECK-LABEL: test_vreinterpretq_s8_u64 7781int8x16_t test_vreinterpretq_s8_u64(uint64x2_t a) { 7782 return vreinterpretq_s8_u64(a); 7783} 7784 7785// CHECK-LABEL: test_vreinterpretq_s8_f16 7786int8x16_t test_vreinterpretq_s8_f16(float16x8_t a) { 7787 return vreinterpretq_s8_f16(a); 7788} 7789 7790// CHECK-LABEL: test_vreinterpretq_s8_f32 7791int8x16_t test_vreinterpretq_s8_f32(float32x4_t a) { 7792 return vreinterpretq_s8_f32(a); 7793} 7794 7795// CHECK-LABEL: test_vreinterpretq_s8_p8 7796int8x16_t test_vreinterpretq_s8_p8(poly8x16_t a) { 7797 return vreinterpretq_s8_p8(a); 7798} 7799 7800// CHECK-LABEL: test_vreinterpretq_s8_p16 7801int8x16_t test_vreinterpretq_s8_p16(poly16x8_t a) { 7802 return vreinterpretq_s8_p16(a); 7803} 7804 7805// CHECK-LABEL: test_vreinterpretq_s16_s8 7806int16x8_t test_vreinterpretq_s16_s8(int8x16_t a) { 7807 return vreinterpretq_s16_s8(a); 7808} 7809 7810// CHECK-LABEL: test_vreinterpretq_s16_s32 7811int16x8_t test_vreinterpretq_s16_s32(int32x4_t a) { 7812 return vreinterpretq_s16_s32(a); 7813} 7814 7815// CHECK-LABEL: test_vreinterpretq_s16_s64 7816int16x8_t test_vreinterpretq_s16_s64(int64x2_t a) { 7817 return vreinterpretq_s16_s64(a); 7818} 7819 7820// CHECK-LABEL: test_vreinterpretq_s16_u8 7821int16x8_t test_vreinterpretq_s16_u8(uint8x16_t a) { 7822 return vreinterpretq_s16_u8(a); 7823} 7824 7825// CHECK-LABEL: test_vreinterpretq_s16_u16 7826int16x8_t test_vreinterpretq_s16_u16(uint16x8_t a) { 7827 return vreinterpretq_s16_u16(a); 7828} 7829 7830// CHECK-LABEL: test_vreinterpretq_s16_u32 7831int16x8_t test_vreinterpretq_s16_u32(uint32x4_t a) { 7832 return vreinterpretq_s16_u32(a); 7833} 7834 7835// CHECK-LABEL: test_vreinterpretq_s16_u64 7836int16x8_t test_vreinterpretq_s16_u64(uint64x2_t a) { 7837 return vreinterpretq_s16_u64(a); 7838} 7839 7840// CHECK-LABEL: test_vreinterpretq_s16_f16 7841int16x8_t test_vreinterpretq_s16_f16(float16x8_t a) { 7842 return vreinterpretq_s16_f16(a); 7843} 7844 7845// CHECK-LABEL: test_vreinterpretq_s16_f32 7846int16x8_t test_vreinterpretq_s16_f32(float32x4_t a) { 7847 return vreinterpretq_s16_f32(a); 7848} 7849 7850// CHECK-LABEL: test_vreinterpretq_s16_p8 7851int16x8_t test_vreinterpretq_s16_p8(poly8x16_t a) { 7852 return vreinterpretq_s16_p8(a); 7853} 7854 7855// CHECK-LABEL: test_vreinterpretq_s16_p16 7856int16x8_t test_vreinterpretq_s16_p16(poly16x8_t a) { 7857 return vreinterpretq_s16_p16(a); 7858} 7859 7860// CHECK-LABEL: test_vreinterpretq_s32_s8 7861int32x4_t test_vreinterpretq_s32_s8(int8x16_t a) { 7862 return vreinterpretq_s32_s8(a); 7863} 7864 7865// CHECK-LABEL: test_vreinterpretq_s32_s16 7866int32x4_t test_vreinterpretq_s32_s16(int16x8_t a) { 7867 return vreinterpretq_s32_s16(a); 7868} 7869 7870// CHECK-LABEL: test_vreinterpretq_s32_s64 7871int32x4_t test_vreinterpretq_s32_s64(int64x2_t a) { 7872 return vreinterpretq_s32_s64(a); 7873} 7874 7875// CHECK-LABEL: test_vreinterpretq_s32_u8 7876int32x4_t test_vreinterpretq_s32_u8(uint8x16_t a) { 7877 return vreinterpretq_s32_u8(a); 7878} 7879 7880// CHECK-LABEL: test_vreinterpretq_s32_u16 7881int32x4_t test_vreinterpretq_s32_u16(uint16x8_t a) { 7882 return vreinterpretq_s32_u16(a); 7883} 7884 7885// CHECK-LABEL: test_vreinterpretq_s32_u32 7886int32x4_t test_vreinterpretq_s32_u32(uint32x4_t a) { 7887 return vreinterpretq_s32_u32(a); 7888} 7889 7890// CHECK-LABEL: test_vreinterpretq_s32_u64 7891int32x4_t test_vreinterpretq_s32_u64(uint64x2_t a) { 7892 return vreinterpretq_s32_u64(a); 7893} 7894 7895// CHECK-LABEL: test_vreinterpretq_s32_f16 7896int32x4_t test_vreinterpretq_s32_f16(float16x8_t a) { 7897 return vreinterpretq_s32_f16(a); 7898} 7899 7900// CHECK-LABEL: test_vreinterpretq_s32_f32 7901int32x4_t test_vreinterpretq_s32_f32(float32x4_t a) { 7902 return vreinterpretq_s32_f32(a); 7903} 7904 7905// CHECK-LABEL: test_vreinterpretq_s32_p8 7906int32x4_t test_vreinterpretq_s32_p8(poly8x16_t a) { 7907 return vreinterpretq_s32_p8(a); 7908} 7909 7910// CHECK-LABEL: test_vreinterpretq_s32_p16 7911int32x4_t test_vreinterpretq_s32_p16(poly16x8_t a) { 7912 return vreinterpretq_s32_p16(a); 7913} 7914 7915// CHECK-LABEL: test_vreinterpretq_s64_s8 7916int64x2_t test_vreinterpretq_s64_s8(int8x16_t a) { 7917 return vreinterpretq_s64_s8(a); 7918} 7919 7920// CHECK-LABEL: test_vreinterpretq_s64_s16 7921int64x2_t test_vreinterpretq_s64_s16(int16x8_t a) { 7922 return vreinterpretq_s64_s16(a); 7923} 7924 7925// CHECK-LABEL: test_vreinterpretq_s64_s32 7926int64x2_t test_vreinterpretq_s64_s32(int32x4_t a) { 7927 return vreinterpretq_s64_s32(a); 7928} 7929 7930// CHECK-LABEL: test_vreinterpretq_s64_u8 7931int64x2_t test_vreinterpretq_s64_u8(uint8x16_t a) { 7932 return vreinterpretq_s64_u8(a); 7933} 7934 7935// CHECK-LABEL: test_vreinterpretq_s64_u16 7936int64x2_t test_vreinterpretq_s64_u16(uint16x8_t a) { 7937 return vreinterpretq_s64_u16(a); 7938} 7939 7940// CHECK-LABEL: test_vreinterpretq_s64_u32 7941int64x2_t test_vreinterpretq_s64_u32(uint32x4_t a) { 7942 return vreinterpretq_s64_u32(a); 7943} 7944 7945// CHECK-LABEL: test_vreinterpretq_s64_u64 7946int64x2_t test_vreinterpretq_s64_u64(uint64x2_t a) { 7947 return vreinterpretq_s64_u64(a); 7948} 7949 7950// CHECK-LABEL: test_vreinterpretq_s64_f16 7951int64x2_t test_vreinterpretq_s64_f16(float16x8_t a) { 7952 return vreinterpretq_s64_f16(a); 7953} 7954 7955// CHECK-LABEL: test_vreinterpretq_s64_f32 7956int64x2_t test_vreinterpretq_s64_f32(float32x4_t a) { 7957 return vreinterpretq_s64_f32(a); 7958} 7959 7960// CHECK-LABEL: test_vreinterpretq_s64_p8 7961int64x2_t test_vreinterpretq_s64_p8(poly8x16_t a) { 7962 return vreinterpretq_s64_p8(a); 7963} 7964 7965// CHECK-LABEL: test_vreinterpretq_s64_p16 7966int64x2_t test_vreinterpretq_s64_p16(poly16x8_t a) { 7967 return vreinterpretq_s64_p16(a); 7968} 7969 7970// CHECK-LABEL: test_vreinterpretq_u8_s8 7971uint8x16_t test_vreinterpretq_u8_s8(int8x16_t a) { 7972 return vreinterpretq_u8_s8(a); 7973} 7974 7975// CHECK-LABEL: test_vreinterpretq_u8_s16 7976uint8x16_t test_vreinterpretq_u8_s16(int16x8_t a) { 7977 return vreinterpretq_u8_s16(a); 7978} 7979 7980// CHECK-LABEL: test_vreinterpretq_u8_s32 7981uint8x16_t test_vreinterpretq_u8_s32(int32x4_t a) { 7982 return vreinterpretq_u8_s32(a); 7983} 7984 7985// CHECK-LABEL: test_vreinterpretq_u8_s64 7986uint8x16_t test_vreinterpretq_u8_s64(int64x2_t a) { 7987 return vreinterpretq_u8_s64(a); 7988} 7989 7990// CHECK-LABEL: test_vreinterpretq_u8_u16 7991uint8x16_t test_vreinterpretq_u8_u16(uint16x8_t a) { 7992 return vreinterpretq_u8_u16(a); 7993} 7994 7995// CHECK-LABEL: test_vreinterpretq_u8_u32 7996uint8x16_t test_vreinterpretq_u8_u32(uint32x4_t a) { 7997 return vreinterpretq_u8_u32(a); 7998} 7999 8000// CHECK-LABEL: test_vreinterpretq_u8_u64 8001uint8x16_t test_vreinterpretq_u8_u64(uint64x2_t a) { 8002 return vreinterpretq_u8_u64(a); 8003} 8004 8005// CHECK-LABEL: test_vreinterpretq_u8_f16 8006uint8x16_t test_vreinterpretq_u8_f16(float16x8_t a) { 8007 return vreinterpretq_u8_f16(a); 8008} 8009 8010// CHECK-LABEL: test_vreinterpretq_u8_f32 8011uint8x16_t test_vreinterpretq_u8_f32(float32x4_t a) { 8012 return vreinterpretq_u8_f32(a); 8013} 8014 8015// CHECK-LABEL: test_vreinterpretq_u8_p8 8016uint8x16_t test_vreinterpretq_u8_p8(poly8x16_t a) { 8017 return vreinterpretq_u8_p8(a); 8018} 8019 8020// CHECK-LABEL: test_vreinterpretq_u8_p16 8021uint8x16_t test_vreinterpretq_u8_p16(poly16x8_t a) { 8022 return vreinterpretq_u8_p16(a); 8023} 8024 8025// CHECK-LABEL: test_vreinterpretq_u16_s8 8026uint16x8_t test_vreinterpretq_u16_s8(int8x16_t a) { 8027 return vreinterpretq_u16_s8(a); 8028} 8029 8030// CHECK-LABEL: test_vreinterpretq_u16_s16 8031uint16x8_t test_vreinterpretq_u16_s16(int16x8_t a) { 8032 return vreinterpretq_u16_s16(a); 8033} 8034 8035// CHECK-LABEL: test_vreinterpretq_u16_s32 8036uint16x8_t test_vreinterpretq_u16_s32(int32x4_t a) { 8037 return vreinterpretq_u16_s32(a); 8038} 8039 8040// CHECK-LABEL: test_vreinterpretq_u16_s64 8041uint16x8_t test_vreinterpretq_u16_s64(int64x2_t a) { 8042 return vreinterpretq_u16_s64(a); 8043} 8044 8045// CHECK-LABEL: test_vreinterpretq_u16_u8 8046uint16x8_t test_vreinterpretq_u16_u8(uint8x16_t a) { 8047 return vreinterpretq_u16_u8(a); 8048} 8049 8050// CHECK-LABEL: test_vreinterpretq_u16_u32 8051uint16x8_t test_vreinterpretq_u16_u32(uint32x4_t a) { 8052 return vreinterpretq_u16_u32(a); 8053} 8054 8055// CHECK-LABEL: test_vreinterpretq_u16_u64 8056uint16x8_t test_vreinterpretq_u16_u64(uint64x2_t a) { 8057 return vreinterpretq_u16_u64(a); 8058} 8059 8060// CHECK-LABEL: test_vreinterpretq_u16_f16 8061uint16x8_t test_vreinterpretq_u16_f16(float16x8_t a) { 8062 return vreinterpretq_u16_f16(a); 8063} 8064 8065// CHECK-LABEL: test_vreinterpretq_u16_f32 8066uint16x8_t test_vreinterpretq_u16_f32(float32x4_t a) { 8067 return vreinterpretq_u16_f32(a); 8068} 8069 8070// CHECK-LABEL: test_vreinterpretq_u16_p8 8071uint16x8_t test_vreinterpretq_u16_p8(poly8x16_t a) { 8072 return vreinterpretq_u16_p8(a); 8073} 8074 8075// CHECK-LABEL: test_vreinterpretq_u16_p16 8076uint16x8_t test_vreinterpretq_u16_p16(poly16x8_t a) { 8077 return vreinterpretq_u16_p16(a); 8078} 8079 8080// CHECK-LABEL: test_vreinterpretq_u32_s8 8081uint32x4_t test_vreinterpretq_u32_s8(int8x16_t a) { 8082 return vreinterpretq_u32_s8(a); 8083} 8084 8085// CHECK-LABEL: test_vreinterpretq_u32_s16 8086uint32x4_t test_vreinterpretq_u32_s16(int16x8_t a) { 8087 return vreinterpretq_u32_s16(a); 8088} 8089 8090// CHECK-LABEL: test_vreinterpretq_u32_s32 8091uint32x4_t test_vreinterpretq_u32_s32(int32x4_t a) { 8092 return vreinterpretq_u32_s32(a); 8093} 8094 8095// CHECK-LABEL: test_vreinterpretq_u32_s64 8096uint32x4_t test_vreinterpretq_u32_s64(int64x2_t a) { 8097 return vreinterpretq_u32_s64(a); 8098} 8099 8100// CHECK-LABEL: test_vreinterpretq_u32_u8 8101uint32x4_t test_vreinterpretq_u32_u8(uint8x16_t a) { 8102 return vreinterpretq_u32_u8(a); 8103} 8104 8105// CHECK-LABEL: test_vreinterpretq_u32_u16 8106uint32x4_t test_vreinterpretq_u32_u16(uint16x8_t a) { 8107 return vreinterpretq_u32_u16(a); 8108} 8109 8110// CHECK-LABEL: test_vreinterpretq_u32_u64 8111uint32x4_t test_vreinterpretq_u32_u64(uint64x2_t a) { 8112 return vreinterpretq_u32_u64(a); 8113} 8114 8115// CHECK-LABEL: test_vreinterpretq_u32_f16 8116uint32x4_t test_vreinterpretq_u32_f16(float16x8_t a) { 8117 return vreinterpretq_u32_f16(a); 8118} 8119 8120// CHECK-LABEL: test_vreinterpretq_u32_f32 8121uint32x4_t test_vreinterpretq_u32_f32(float32x4_t a) { 8122 return vreinterpretq_u32_f32(a); 8123} 8124 8125// CHECK-LABEL: test_vreinterpretq_u32_p8 8126uint32x4_t test_vreinterpretq_u32_p8(poly8x16_t a) { 8127 return vreinterpretq_u32_p8(a); 8128} 8129 8130// CHECK-LABEL: test_vreinterpretq_u32_p16 8131uint32x4_t test_vreinterpretq_u32_p16(poly16x8_t a) { 8132 return vreinterpretq_u32_p16(a); 8133} 8134 8135// CHECK-LABEL: test_vreinterpretq_u64_s8 8136uint64x2_t test_vreinterpretq_u64_s8(int8x16_t a) { 8137 return vreinterpretq_u64_s8(a); 8138} 8139 8140// CHECK-LABEL: test_vreinterpretq_u64_s16 8141uint64x2_t test_vreinterpretq_u64_s16(int16x8_t a) { 8142 return vreinterpretq_u64_s16(a); 8143} 8144 8145// CHECK-LABEL: test_vreinterpretq_u64_s32 8146uint64x2_t test_vreinterpretq_u64_s32(int32x4_t a) { 8147 return vreinterpretq_u64_s32(a); 8148} 8149 8150// CHECK-LABEL: test_vreinterpretq_u64_s64 8151uint64x2_t test_vreinterpretq_u64_s64(int64x2_t a) { 8152 return vreinterpretq_u64_s64(a); 8153} 8154 8155// CHECK-LABEL: test_vreinterpretq_u64_u8 8156uint64x2_t test_vreinterpretq_u64_u8(uint8x16_t a) { 8157 return vreinterpretq_u64_u8(a); 8158} 8159 8160// CHECK-LABEL: test_vreinterpretq_u64_u16 8161uint64x2_t test_vreinterpretq_u64_u16(uint16x8_t a) { 8162 return vreinterpretq_u64_u16(a); 8163} 8164 8165// CHECK-LABEL: test_vreinterpretq_u64_u32 8166uint64x2_t test_vreinterpretq_u64_u32(uint32x4_t a) { 8167 return vreinterpretq_u64_u32(a); 8168} 8169 8170// CHECK-LABEL: test_vreinterpretq_u64_f16 8171uint64x2_t test_vreinterpretq_u64_f16(float16x8_t a) { 8172 return vreinterpretq_u64_f16(a); 8173} 8174 8175// CHECK-LABEL: test_vreinterpretq_u64_f32 8176uint64x2_t test_vreinterpretq_u64_f32(float32x4_t a) { 8177 return vreinterpretq_u64_f32(a); 8178} 8179 8180// CHECK-LABEL: test_vreinterpretq_u64_p8 8181uint64x2_t test_vreinterpretq_u64_p8(poly8x16_t a) { 8182 return vreinterpretq_u64_p8(a); 8183} 8184 8185// CHECK-LABEL: test_vreinterpretq_u64_p16 8186uint64x2_t test_vreinterpretq_u64_p16(poly16x8_t a) { 8187 return vreinterpretq_u64_p16(a); 8188} 8189 8190// CHECK-LABEL: test_vreinterpretq_f16_s8 8191float16x8_t test_vreinterpretq_f16_s8(int8x16_t a) { 8192 return vreinterpretq_f16_s8(a); 8193} 8194 8195// CHECK-LABEL: test_vreinterpretq_f16_s16 8196float16x8_t test_vreinterpretq_f16_s16(int16x8_t a) { 8197 return vreinterpretq_f16_s16(a); 8198} 8199 8200// CHECK-LABEL: test_vreinterpretq_f16_s32 8201float16x8_t test_vreinterpretq_f16_s32(int32x4_t a) { 8202 return vreinterpretq_f16_s32(a); 8203} 8204 8205// CHECK-LABEL: test_vreinterpretq_f16_s64 8206float16x8_t test_vreinterpretq_f16_s64(int64x2_t a) { 8207 return vreinterpretq_f16_s64(a); 8208} 8209 8210// CHECK-LABEL: test_vreinterpretq_f16_u8 8211float16x8_t test_vreinterpretq_f16_u8(uint8x16_t a) { 8212 return vreinterpretq_f16_u8(a); 8213} 8214 8215// CHECK-LABEL: test_vreinterpretq_f16_u16 8216float16x8_t test_vreinterpretq_f16_u16(uint16x8_t a) { 8217 return vreinterpretq_f16_u16(a); 8218} 8219 8220// CHECK-LABEL: test_vreinterpretq_f16_u32 8221float16x8_t test_vreinterpretq_f16_u32(uint32x4_t a) { 8222 return vreinterpretq_f16_u32(a); 8223} 8224 8225// CHECK-LABEL: test_vreinterpretq_f16_u64 8226float16x8_t test_vreinterpretq_f16_u64(uint64x2_t a) { 8227 return vreinterpretq_f16_u64(a); 8228} 8229 8230// CHECK-LABEL: test_vreinterpretq_f16_f32 8231float16x8_t test_vreinterpretq_f16_f32(float32x4_t a) { 8232 return vreinterpretq_f16_f32(a); 8233} 8234 8235// CHECK-LABEL: test_vreinterpretq_f16_p8 8236float16x8_t test_vreinterpretq_f16_p8(poly8x16_t a) { 8237 return vreinterpretq_f16_p8(a); 8238} 8239 8240// CHECK-LABEL: test_vreinterpretq_f16_p16 8241float16x8_t test_vreinterpretq_f16_p16(poly16x8_t a) { 8242 return vreinterpretq_f16_p16(a); 8243} 8244 8245// CHECK-LABEL: test_vreinterpretq_f32_s8 8246float32x4_t test_vreinterpretq_f32_s8(int8x16_t a) { 8247 return vreinterpretq_f32_s8(a); 8248} 8249 8250// CHECK-LABEL: test_vreinterpretq_f32_s16 8251float32x4_t test_vreinterpretq_f32_s16(int16x8_t a) { 8252 return vreinterpretq_f32_s16(a); 8253} 8254 8255// CHECK-LABEL: test_vreinterpretq_f32_s32 8256float32x4_t test_vreinterpretq_f32_s32(int32x4_t a) { 8257 return vreinterpretq_f32_s32(a); 8258} 8259 8260// CHECK-LABEL: test_vreinterpretq_f32_s64 8261float32x4_t test_vreinterpretq_f32_s64(int64x2_t a) { 8262 return vreinterpretq_f32_s64(a); 8263} 8264 8265// CHECK-LABEL: test_vreinterpretq_f32_u8 8266float32x4_t test_vreinterpretq_f32_u8(uint8x16_t a) { 8267 return vreinterpretq_f32_u8(a); 8268} 8269 8270// CHECK-LABEL: test_vreinterpretq_f32_u16 8271float32x4_t test_vreinterpretq_f32_u16(uint16x8_t a) { 8272 return vreinterpretq_f32_u16(a); 8273} 8274 8275// CHECK-LABEL: test_vreinterpretq_f32_u32 8276float32x4_t test_vreinterpretq_f32_u32(uint32x4_t a) { 8277 return vreinterpretq_f32_u32(a); 8278} 8279 8280// CHECK-LABEL: test_vreinterpretq_f32_u64 8281float32x4_t test_vreinterpretq_f32_u64(uint64x2_t a) { 8282 return vreinterpretq_f32_u64(a); 8283} 8284 8285// CHECK-LABEL: test_vreinterpretq_f32_f16 8286float32x4_t test_vreinterpretq_f32_f16(float16x8_t a) { 8287 return vreinterpretq_f32_f16(a); 8288} 8289 8290// CHECK-LABEL: test_vreinterpretq_f32_p8 8291float32x4_t test_vreinterpretq_f32_p8(poly8x16_t a) { 8292 return vreinterpretq_f32_p8(a); 8293} 8294 8295// CHECK-LABEL: test_vreinterpretq_f32_p16 8296float32x4_t test_vreinterpretq_f32_p16(poly16x8_t a) { 8297 return vreinterpretq_f32_p16(a); 8298} 8299 8300// CHECK-LABEL: test_vreinterpretq_p8_s8 8301poly8x16_t test_vreinterpretq_p8_s8(int8x16_t a) { 8302 return vreinterpretq_p8_s8(a); 8303} 8304 8305// CHECK-LABEL: test_vreinterpretq_p8_s16 8306poly8x16_t test_vreinterpretq_p8_s16(int16x8_t a) { 8307 return vreinterpretq_p8_s16(a); 8308} 8309 8310// CHECK-LABEL: test_vreinterpretq_p8_s32 8311poly8x16_t test_vreinterpretq_p8_s32(int32x4_t a) { 8312 return vreinterpretq_p8_s32(a); 8313} 8314 8315// CHECK-LABEL: test_vreinterpretq_p8_s64 8316poly8x16_t test_vreinterpretq_p8_s64(int64x2_t a) { 8317 return vreinterpretq_p8_s64(a); 8318} 8319 8320// CHECK-LABEL: test_vreinterpretq_p8_u8 8321poly8x16_t test_vreinterpretq_p8_u8(uint8x16_t a) { 8322 return vreinterpretq_p8_u8(a); 8323} 8324 8325// CHECK-LABEL: test_vreinterpretq_p8_u16 8326poly8x16_t test_vreinterpretq_p8_u16(uint16x8_t a) { 8327 return vreinterpretq_p8_u16(a); 8328} 8329 8330// CHECK-LABEL: test_vreinterpretq_p8_u32 8331poly8x16_t test_vreinterpretq_p8_u32(uint32x4_t a) { 8332 return vreinterpretq_p8_u32(a); 8333} 8334 8335// CHECK-LABEL: test_vreinterpretq_p8_u64 8336poly8x16_t test_vreinterpretq_p8_u64(uint64x2_t a) { 8337 return vreinterpretq_p8_u64(a); 8338} 8339 8340// CHECK-LABEL: test_vreinterpretq_p8_f16 8341poly8x16_t test_vreinterpretq_p8_f16(float16x8_t a) { 8342 return vreinterpretq_p8_f16(a); 8343} 8344 8345// CHECK-LABEL: test_vreinterpretq_p8_f32 8346poly8x16_t test_vreinterpretq_p8_f32(float32x4_t a) { 8347 return vreinterpretq_p8_f32(a); 8348} 8349 8350// CHECK-LABEL: test_vreinterpretq_p8_p16 8351poly8x16_t test_vreinterpretq_p8_p16(poly16x8_t a) { 8352 return vreinterpretq_p8_p16(a); 8353} 8354 8355// CHECK-LABEL: test_vreinterpretq_p16_s8 8356poly16x8_t test_vreinterpretq_p16_s8(int8x16_t a) { 8357 return vreinterpretq_p16_s8(a); 8358} 8359 8360// CHECK-LABEL: test_vreinterpretq_p16_s16 8361poly16x8_t test_vreinterpretq_p16_s16(int16x8_t a) { 8362 return vreinterpretq_p16_s16(a); 8363} 8364 8365// CHECK-LABEL: test_vreinterpretq_p16_s32 8366poly16x8_t test_vreinterpretq_p16_s32(int32x4_t a) { 8367 return vreinterpretq_p16_s32(a); 8368} 8369 8370// CHECK-LABEL: test_vreinterpretq_p16_s64 8371poly16x8_t test_vreinterpretq_p16_s64(int64x2_t a) { 8372 return vreinterpretq_p16_s64(a); 8373} 8374 8375// CHECK-LABEL: test_vreinterpretq_p16_u8 8376poly16x8_t test_vreinterpretq_p16_u8(uint8x16_t a) { 8377 return vreinterpretq_p16_u8(a); 8378} 8379 8380// CHECK-LABEL: test_vreinterpretq_p16_u16 8381poly16x8_t test_vreinterpretq_p16_u16(uint16x8_t a) { 8382 return vreinterpretq_p16_u16(a); 8383} 8384 8385// CHECK-LABEL: test_vreinterpretq_p16_u32 8386poly16x8_t test_vreinterpretq_p16_u32(uint32x4_t a) { 8387 return vreinterpretq_p16_u32(a); 8388} 8389 8390// CHECK-LABEL: test_vreinterpretq_p16_u64 8391poly16x8_t test_vreinterpretq_p16_u64(uint64x2_t a) { 8392 return vreinterpretq_p16_u64(a); 8393} 8394 8395// CHECK-LABEL: test_vreinterpretq_p16_f16 8396poly16x8_t test_vreinterpretq_p16_f16(float16x8_t a) { 8397 return vreinterpretq_p16_f16(a); 8398} 8399 8400// CHECK-LABEL: test_vreinterpretq_p16_f32 8401poly16x8_t test_vreinterpretq_p16_f32(float32x4_t a) { 8402 return vreinterpretq_p16_f32(a); 8403} 8404 8405// CHECK-LABEL: test_vreinterpretq_p16_p8 8406poly16x8_t test_vreinterpretq_p16_p8(poly8x16_t a) { 8407 return vreinterpretq_p16_p8(a); 8408} 8409 8410 8411// CHECK-LABEL: test_vrev16_s8 8412// CHECK: vrev16.8 d{{[0-9]+}}, d{{[0-9]+}} 8413int8x8_t test_vrev16_s8(int8x8_t a) { 8414 return vrev16_s8(a); 8415} 8416 8417// CHECK-LABEL: test_vrev16_u8 8418// CHECK: vrev16.8 d{{[0-9]+}}, d{{[0-9]+}} 8419uint8x8_t test_vrev16_u8(uint8x8_t a) { 8420 return vrev16_u8(a); 8421} 8422 8423// CHECK-LABEL: test_vrev16_p8 8424// CHECK: vrev16.8 d{{[0-9]+}}, d{{[0-9]+}} 8425poly8x8_t test_vrev16_p8(poly8x8_t a) { 8426 return vrev16_p8(a); 8427} 8428 8429// CHECK-LABEL: test_vrev16q_s8 8430// CHECK: vrev16.8 q{{[0-9]+}}, q{{[0-9]+}} 8431int8x16_t test_vrev16q_s8(int8x16_t a) { 8432 return vrev16q_s8(a); 8433} 8434 8435// CHECK-LABEL: test_vrev16q_u8 8436// CHECK: vrev16.8 q{{[0-9]+}}, q{{[0-9]+}} 8437uint8x16_t test_vrev16q_u8(uint8x16_t a) { 8438 return vrev16q_u8(a); 8439} 8440 8441// CHECK-LABEL: test_vrev16q_p8 8442// CHECK: vrev16.8 q{{[0-9]+}}, q{{[0-9]+}} 8443poly8x16_t test_vrev16q_p8(poly8x16_t a) { 8444 return vrev16q_p8(a); 8445} 8446 8447 8448// CHECK-LABEL: test_vrev32_s8 8449// CHECK: vrev32.8 d{{[0-9]+}}, d{{[0-9]+}} 8450int8x8_t test_vrev32_s8(int8x8_t a) { 8451 return vrev32_s8(a); 8452} 8453 8454// CHECK-LABEL: test_vrev32_s16 8455// CHECK: vrev32.16 d{{[0-9]+}}, d{{[0-9]+}} 8456int16x4_t test_vrev32_s16(int16x4_t a) { 8457 return vrev32_s16(a); 8458} 8459 8460// CHECK-LABEL: test_vrev32_u8 8461// CHECK: vrev32.8 d{{[0-9]+}}, d{{[0-9]+}} 8462uint8x8_t test_vrev32_u8(uint8x8_t a) { 8463 return vrev32_u8(a); 8464} 8465 8466// CHECK-LABEL: test_vrev32_u16 8467// CHECK: vrev32.16 d{{[0-9]+}}, d{{[0-9]+}} 8468uint16x4_t test_vrev32_u16(uint16x4_t a) { 8469 return vrev32_u16(a); 8470} 8471 8472// CHECK-LABEL: test_vrev32_p8 8473// CHECK: vrev32.8 d{{[0-9]+}}, d{{[0-9]+}} 8474poly8x8_t test_vrev32_p8(poly8x8_t a) { 8475 return vrev32_p8(a); 8476} 8477 8478// CHECK-LABEL: test_vrev32_p16 8479// CHECK: vrev32.16 d{{[0-9]+}}, d{{[0-9]+}} 8480poly16x4_t test_vrev32_p16(poly16x4_t a) { 8481 return vrev32_p16(a); 8482} 8483 8484// CHECK-LABEL: test_vrev32q_s8 8485// CHECK: vrev32.8 q{{[0-9]+}}, q{{[0-9]+}} 8486int8x16_t test_vrev32q_s8(int8x16_t a) { 8487 return vrev32q_s8(a); 8488} 8489 8490// CHECK-LABEL: test_vrev32q_s16 8491// CHECK: vrev32.16 q{{[0-9]+}}, q{{[0-9]+}} 8492int16x8_t test_vrev32q_s16(int16x8_t a) { 8493 return vrev32q_s16(a); 8494} 8495 8496// CHECK-LABEL: test_vrev32q_u8 8497// CHECK: vrev32.8 q{{[0-9]+}}, q{{[0-9]+}} 8498uint8x16_t test_vrev32q_u8(uint8x16_t a) { 8499 return vrev32q_u8(a); 8500} 8501 8502// CHECK-LABEL: test_vrev32q_u16 8503// CHECK: vrev32.16 q{{[0-9]+}}, q{{[0-9]+}} 8504uint16x8_t test_vrev32q_u16(uint16x8_t a) { 8505 return vrev32q_u16(a); 8506} 8507 8508// CHECK-LABEL: test_vrev32q_p8 8509// CHECK: vrev32.8 q{{[0-9]+}}, q{{[0-9]+}} 8510poly8x16_t test_vrev32q_p8(poly8x16_t a) { 8511 return vrev32q_p8(a); 8512} 8513 8514// CHECK-LABEL: test_vrev32q_p16 8515// CHECK: vrev32.16 q{{[0-9]+}}, q{{[0-9]+}} 8516poly16x8_t test_vrev32q_p16(poly16x8_t a) { 8517 return vrev32q_p16(a); 8518} 8519 8520 8521// CHECK-LABEL: test_vrev64_s8 8522// CHECK: vrev64.8 d{{[0-9]+}}, d{{[0-9]+}} 8523int8x8_t test_vrev64_s8(int8x8_t a) { 8524 return vrev64_s8(a); 8525} 8526 8527// CHECK-LABEL: test_vrev64_s16 8528// CHECK: vrev64.16 d{{[0-9]+}}, d{{[0-9]+}} 8529int16x4_t test_vrev64_s16(int16x4_t a) { 8530 return vrev64_s16(a); 8531} 8532 8533// CHECK-LABEL: test_vrev64_s32 8534// CHECK: vrev64.32 d{{[0-9]+}}, d{{[0-9]+}} 8535int32x2_t test_vrev64_s32(int32x2_t a) { 8536 return vrev64_s32(a); 8537} 8538 8539// CHECK-LABEL: test_vrev64_u8 8540// CHECK: vrev64.8 d{{[0-9]+}}, d{{[0-9]+}} 8541uint8x8_t test_vrev64_u8(uint8x8_t a) { 8542 return vrev64_u8(a); 8543} 8544 8545// CHECK-LABEL: test_vrev64_u16 8546// CHECK: vrev64.16 d{{[0-9]+}}, d{{[0-9]+}} 8547uint16x4_t test_vrev64_u16(uint16x4_t a) { 8548 return vrev64_u16(a); 8549} 8550 8551// CHECK-LABEL: test_vrev64_u32 8552// CHECK: vrev64.32 d{{[0-9]+}}, d{{[0-9]+}} 8553uint32x2_t test_vrev64_u32(uint32x2_t a) { 8554 return vrev64_u32(a); 8555} 8556 8557// CHECK-LABEL: test_vrev64_p8 8558// CHECK: vrev64.8 d{{[0-9]+}}, d{{[0-9]+}} 8559poly8x8_t test_vrev64_p8(poly8x8_t a) { 8560 return vrev64_p8(a); 8561} 8562 8563// CHECK-LABEL: test_vrev64_p16 8564// CHECK: vrev64.16 d{{[0-9]+}}, d{{[0-9]+}} 8565poly16x4_t test_vrev64_p16(poly16x4_t a) { 8566 return vrev64_p16(a); 8567} 8568 8569// CHECK-LABEL: test_vrev64_f32 8570// CHECK: vrev64.32 d{{[0-9]+}}, d{{[0-9]+}} 8571float32x2_t test_vrev64_f32(float32x2_t a) { 8572 return vrev64_f32(a); 8573} 8574 8575// CHECK-LABEL: test_vrev64q_s8 8576// CHECK: vrev64.8 q{{[0-9]+}}, q{{[0-9]+}} 8577int8x16_t test_vrev64q_s8(int8x16_t a) { 8578 return vrev64q_s8(a); 8579} 8580 8581// CHECK-LABEL: test_vrev64q_s16 8582// CHECK: vrev64.16 q{{[0-9]+}}, q{{[0-9]+}} 8583int16x8_t test_vrev64q_s16(int16x8_t a) { 8584 return vrev64q_s16(a); 8585} 8586 8587// CHECK-LABEL: test_vrev64q_s32 8588// CHECK: vrev64.32 q{{[0-9]+}}, q{{[0-9]+}} 8589int32x4_t test_vrev64q_s32(int32x4_t a) { 8590 return vrev64q_s32(a); 8591} 8592 8593// CHECK-LABEL: test_vrev64q_u8 8594// CHECK: vrev64.8 q{{[0-9]+}}, q{{[0-9]+}} 8595uint8x16_t test_vrev64q_u8(uint8x16_t a) { 8596 return vrev64q_u8(a); 8597} 8598 8599// CHECK-LABEL: test_vrev64q_u16 8600// CHECK: vrev64.16 q{{[0-9]+}}, q{{[0-9]+}} 8601uint16x8_t test_vrev64q_u16(uint16x8_t a) { 8602 return vrev64q_u16(a); 8603} 8604 8605// CHECK-LABEL: test_vrev64q_u32 8606// CHECK: vrev64.32 q{{[0-9]+}}, q{{[0-9]+}} 8607uint32x4_t test_vrev64q_u32(uint32x4_t a) { 8608 return vrev64q_u32(a); 8609} 8610 8611// CHECK-LABEL: test_vrev64q_p8 8612// CHECK: vrev64.8 q{{[0-9]+}}, q{{[0-9]+}} 8613poly8x16_t test_vrev64q_p8(poly8x16_t a) { 8614 return vrev64q_p8(a); 8615} 8616 8617// CHECK-LABEL: test_vrev64q_p16 8618// CHECK: vrev64.16 q{{[0-9]+}}, q{{[0-9]+}} 8619poly16x8_t test_vrev64q_p16(poly16x8_t a) { 8620 return vrev64q_p16(a); 8621} 8622 8623// CHECK-LABEL: test_vrev64q_f32 8624// CHECK: vrev64.32 q{{[0-9]+}}, q{{[0-9]+}} 8625float32x4_t test_vrev64q_f32(float32x4_t a) { 8626 return vrev64q_f32(a); 8627} 8628 8629 8630// CHECK-LABEL: test_vrhadd_s8 8631// CHECK: vrhadd.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8632int8x8_t test_vrhadd_s8(int8x8_t a, int8x8_t b) { 8633 return vrhadd_s8(a, b); 8634} 8635 8636// CHECK-LABEL: test_vrhadd_s16 8637// CHECK: vrhadd.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8638int16x4_t test_vrhadd_s16(int16x4_t a, int16x4_t b) { 8639 return vrhadd_s16(a, b); 8640} 8641 8642// CHECK-LABEL: test_vrhadd_s32 8643// CHECK: vrhadd.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8644int32x2_t test_vrhadd_s32(int32x2_t a, int32x2_t b) { 8645 return vrhadd_s32(a, b); 8646} 8647 8648// CHECK-LABEL: test_vrhadd_u8 8649// CHECK: vrhadd.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8650uint8x8_t test_vrhadd_u8(uint8x8_t a, uint8x8_t b) { 8651 return vrhadd_u8(a, b); 8652} 8653 8654// CHECK-LABEL: test_vrhadd_u16 8655// CHECK: vrhadd.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8656uint16x4_t test_vrhadd_u16(uint16x4_t a, uint16x4_t b) { 8657 return vrhadd_u16(a, b); 8658} 8659 8660// CHECK-LABEL: test_vrhadd_u32 8661// CHECK: vrhadd.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8662uint32x2_t test_vrhadd_u32(uint32x2_t a, uint32x2_t b) { 8663 return vrhadd_u32(a, b); 8664} 8665 8666// CHECK-LABEL: test_vrhaddq_s8 8667// CHECK: vrhadd.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8668int8x16_t test_vrhaddq_s8(int8x16_t a, int8x16_t b) { 8669 return vrhaddq_s8(a, b); 8670} 8671 8672// CHECK-LABEL: test_vrhaddq_s16 8673// CHECK: vrhadd.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8674int16x8_t test_vrhaddq_s16(int16x8_t a, int16x8_t b) { 8675 return vrhaddq_s16(a, b); 8676} 8677 8678// CHECK-LABEL: test_vrhaddq_s32 8679// CHECK: vrhadd.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8680int32x4_t test_vrhaddq_s32(int32x4_t a, int32x4_t b) { 8681 return vrhaddq_s32(a, b); 8682} 8683 8684// CHECK-LABEL: test_vrhaddq_u8 8685// CHECK: vrhadd.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8686uint8x16_t test_vrhaddq_u8(uint8x16_t a, uint8x16_t b) { 8687 return vrhaddq_u8(a, b); 8688} 8689 8690// CHECK-LABEL: test_vrhaddq_u16 8691// CHECK: vrhadd.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8692uint16x8_t test_vrhaddq_u16(uint16x8_t a, uint16x8_t b) { 8693 return vrhaddq_u16(a, b); 8694} 8695 8696// CHECK-LABEL: test_vrhaddq_u32 8697// CHECK: vrhadd.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8698uint32x4_t test_vrhaddq_u32(uint32x4_t a, uint32x4_t b) { 8699 return vrhaddq_u32(a, b); 8700} 8701 8702 8703// CHECK-LABEL: test_vrshl_s8 8704// CHECK: vrshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8705int8x8_t test_vrshl_s8(int8x8_t a, int8x8_t b) { 8706 return vrshl_s8(a, b); 8707} 8708 8709// CHECK-LABEL: test_vrshl_s16 8710// CHECK: vrshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8711int16x4_t test_vrshl_s16(int16x4_t a, int16x4_t b) { 8712 return vrshl_s16(a, b); 8713} 8714 8715// CHECK-LABEL: test_vrshl_s32 8716// CHECK: vrshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8717int32x2_t test_vrshl_s32(int32x2_t a, int32x2_t b) { 8718 return vrshl_s32(a, b); 8719} 8720 8721// CHECK-LABEL: test_vrshl_s64 8722// CHECK: vrshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8723int64x1_t test_vrshl_s64(int64x1_t a, int64x1_t b) { 8724 return vrshl_s64(a, b); 8725} 8726 8727// CHECK-LABEL: test_vrshl_u8 8728// CHECK: vrshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8729uint8x8_t test_vrshl_u8(uint8x8_t a, int8x8_t b) { 8730 return vrshl_u8(a, b); 8731} 8732 8733// CHECK-LABEL: test_vrshl_u16 8734// CHECK: vrshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8735uint16x4_t test_vrshl_u16(uint16x4_t a, int16x4_t b) { 8736 return vrshl_u16(a, b); 8737} 8738 8739// CHECK-LABEL: test_vrshl_u32 8740// CHECK: vrshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8741uint32x2_t test_vrshl_u32(uint32x2_t a, int32x2_t b) { 8742 return vrshl_u32(a, b); 8743} 8744 8745// CHECK-LABEL: test_vrshl_u64 8746// CHECK: vrshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8747uint64x1_t test_vrshl_u64(uint64x1_t a, int64x1_t b) { 8748 return vrshl_u64(a, b); 8749} 8750 8751// CHECK-LABEL: test_vrshlq_s8 8752// CHECK: vrshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8753int8x16_t test_vrshlq_s8(int8x16_t a, int8x16_t b) { 8754 return vrshlq_s8(a, b); 8755} 8756 8757// CHECK-LABEL: test_vrshlq_s16 8758// CHECK: vrshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8759int16x8_t test_vrshlq_s16(int16x8_t a, int16x8_t b) { 8760 return vrshlq_s16(a, b); 8761} 8762 8763// CHECK-LABEL: test_vrshlq_s32 8764// CHECK: vrshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8765int32x4_t test_vrshlq_s32(int32x4_t a, int32x4_t b) { 8766 return vrshlq_s32(a, b); 8767} 8768 8769// CHECK-LABEL: test_vrshlq_s64 8770// CHECK: vrshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8771int64x2_t test_vrshlq_s64(int64x2_t a, int64x2_t b) { 8772 return vrshlq_s64(a, b); 8773} 8774 8775// CHECK-LABEL: test_vrshlq_u8 8776// CHECK: vrshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8777uint8x16_t test_vrshlq_u8(uint8x16_t a, int8x16_t b) { 8778 return vrshlq_u8(a, b); 8779} 8780 8781// CHECK-LABEL: test_vrshlq_u16 8782// CHECK: vrshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8783uint16x8_t test_vrshlq_u16(uint16x8_t a, int16x8_t b) { 8784 return vrshlq_u16(a, b); 8785} 8786 8787// CHECK-LABEL: test_vrshlq_u32 8788// CHECK: vrshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8789uint32x4_t test_vrshlq_u32(uint32x4_t a, int32x4_t b) { 8790 return vrshlq_u32(a, b); 8791} 8792 8793// CHECK-LABEL: test_vrshlq_u64 8794// CHECK: vrshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8795uint64x2_t test_vrshlq_u64(uint64x2_t a, int64x2_t b) { 8796 return vrshlq_u64(a, b); 8797} 8798 8799 8800// CHECK-LABEL: test_vrshrn_n_s16 8801// CHECK: vrshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8802int8x8_t test_vrshrn_n_s16(int16x8_t a) { 8803 return vrshrn_n_s16(a, 1); 8804} 8805 8806// CHECK-LABEL: test_vrshrn_n_s32 8807// CHECK: vrshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8808int16x4_t test_vrshrn_n_s32(int32x4_t a) { 8809 return vrshrn_n_s32(a, 1); 8810} 8811 8812// CHECK-LABEL: test_vrshrn_n_s64 8813// CHECK: vrshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8814int32x2_t test_vrshrn_n_s64(int64x2_t a) { 8815 return vrshrn_n_s64(a, 1); 8816} 8817 8818// CHECK-LABEL: test_vrshrn_n_u16 8819// CHECK: vrshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8820uint8x8_t test_vrshrn_n_u16(uint16x8_t a) { 8821 return vrshrn_n_u16(a, 1); 8822} 8823 8824// CHECK-LABEL: test_vrshrn_n_u32 8825// CHECK: vrshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8826uint16x4_t test_vrshrn_n_u32(uint32x4_t a) { 8827 return vrshrn_n_u32(a, 1); 8828} 8829 8830// CHECK-LABEL: test_vrshrn_n_u64 8831// CHECK: vrshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8832uint32x2_t test_vrshrn_n_u64(uint64x2_t a) { 8833 return vrshrn_n_u64(a, 1); 8834} 8835 8836 8837// CHECK-LABEL: test_vrshr_n_s8 8838// CHECK: vrshr.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8839int8x8_t test_vrshr_n_s8(int8x8_t a) { 8840 return vrshr_n_s8(a, 1); 8841} 8842 8843// CHECK-LABEL: test_vrshr_n_s16 8844// CHECK: vrshr.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8845int16x4_t test_vrshr_n_s16(int16x4_t a) { 8846 return vrshr_n_s16(a, 1); 8847} 8848 8849// CHECK-LABEL: test_vrshr_n_s32 8850// CHECK: vrshr.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8851int32x2_t test_vrshr_n_s32(int32x2_t a) { 8852 return vrshr_n_s32(a, 1); 8853} 8854 8855// CHECK-LABEL: test_vrshr_n_s64 8856// CHECK: vrshr.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8857int64x1_t test_vrshr_n_s64(int64x1_t a) { 8858 return vrshr_n_s64(a, 1); 8859} 8860 8861// CHECK-LABEL: test_vrshr_n_u8 8862// CHECK: vrshr.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8863uint8x8_t test_vrshr_n_u8(uint8x8_t a) { 8864 return vrshr_n_u8(a, 1); 8865} 8866 8867// CHECK-LABEL: test_vrshr_n_u16 8868// CHECK: vrshr.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8869uint16x4_t test_vrshr_n_u16(uint16x4_t a) { 8870 return vrshr_n_u16(a, 1); 8871} 8872 8873// CHECK-LABEL: test_vrshr_n_u32 8874// CHECK: vrshr.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8875uint32x2_t test_vrshr_n_u32(uint32x2_t a) { 8876 return vrshr_n_u32(a, 1); 8877} 8878 8879// CHECK-LABEL: test_vrshr_n_u64 8880// CHECK: vrshr.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8881uint64x1_t test_vrshr_n_u64(uint64x1_t a) { 8882 return vrshr_n_u64(a, 1); 8883} 8884 8885// CHECK-LABEL: test_vrshrq_n_s8 8886// CHECK: vrshr.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8887int8x16_t test_vrshrq_n_s8(int8x16_t a) { 8888 return vrshrq_n_s8(a, 1); 8889} 8890 8891// CHECK-LABEL: test_vrshrq_n_s16 8892// CHECK: vrshr.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8893int16x8_t test_vrshrq_n_s16(int16x8_t a) { 8894 return vrshrq_n_s16(a, 1); 8895} 8896 8897// CHECK-LABEL: test_vrshrq_n_s32 8898// CHECK: vrshr.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8899int32x4_t test_vrshrq_n_s32(int32x4_t a) { 8900 return vrshrq_n_s32(a, 1); 8901} 8902 8903// CHECK-LABEL: test_vrshrq_n_s64 8904// CHECK: vrshr.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8905int64x2_t test_vrshrq_n_s64(int64x2_t a) { 8906 return vrshrq_n_s64(a, 1); 8907} 8908 8909// CHECK-LABEL: test_vrshrq_n_u8 8910// CHECK: vrshr.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8911uint8x16_t test_vrshrq_n_u8(uint8x16_t a) { 8912 return vrshrq_n_u8(a, 1); 8913} 8914 8915// CHECK-LABEL: test_vrshrq_n_u16 8916// CHECK: vrshr.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8917uint16x8_t test_vrshrq_n_u16(uint16x8_t a) { 8918 return vrshrq_n_u16(a, 1); 8919} 8920 8921// CHECK-LABEL: test_vrshrq_n_u32 8922// CHECK: vrshr.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8923uint32x4_t test_vrshrq_n_u32(uint32x4_t a) { 8924 return vrshrq_n_u32(a, 1); 8925} 8926 8927// CHECK-LABEL: test_vrshrq_n_u64 8928// CHECK: vrshr.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 8929uint64x2_t test_vrshrq_n_u64(uint64x2_t a) { 8930 return vrshrq_n_u64(a, 1); 8931} 8932 8933 8934// CHECK-LABEL: test_vrsqrte_f32 8935// CHECK: vrsqrte.f32 d{{[0-9]+}}, d{{[0-9]+}} 8936float32x2_t test_vrsqrte_f32(float32x2_t a) { 8937 return vrsqrte_f32(a); 8938} 8939 8940// CHECK-LABEL: test_vrsqrte_u32 8941// CHECK: vrsqrte.u32 d{{[0-9]+}}, d{{[0-9]+}} 8942uint32x2_t test_vrsqrte_u32(uint32x2_t a) { 8943 return vrsqrte_u32(a); 8944} 8945 8946// CHECK-LABEL: test_vrsqrteq_f32 8947// CHECK: vrsqrte.f32 q{{[0-9]+}}, q{{[0-9]+}} 8948float32x4_t test_vrsqrteq_f32(float32x4_t a) { 8949 return vrsqrteq_f32(a); 8950} 8951 8952// CHECK-LABEL: test_vrsqrteq_u32 8953// CHECK: vrsqrte.u32 q{{[0-9]+}}, q{{[0-9]+}} 8954uint32x4_t test_vrsqrteq_u32(uint32x4_t a) { 8955 return vrsqrteq_u32(a); 8956} 8957 8958 8959// CHECK-LABEL: test_vrsqrts_f32 8960// CHECK: vrsqrts.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 8961float32x2_t test_vrsqrts_f32(float32x2_t a, float32x2_t b) { 8962 return vrsqrts_f32(a, b); 8963} 8964 8965// CHECK-LABEL: test_vrsqrtsq_f32 8966// CHECK: vrsqrts.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 8967float32x4_t test_vrsqrtsq_f32(float32x4_t a, float32x4_t b) { 8968 return vrsqrtsq_f32(a, b); 8969} 8970 8971 8972// CHECK-LABEL: test_vrsra_n_s8 8973// CHECK: vrsra.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8974int8x8_t test_vrsra_n_s8(int8x8_t a, int8x8_t b) { 8975 return vrsra_n_s8(a, b, 1); 8976} 8977 8978// CHECK-LABEL: test_vrsra_n_s16 8979// CHECK: vrsra.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8980int16x4_t test_vrsra_n_s16(int16x4_t a, int16x4_t b) { 8981 return vrsra_n_s16(a, b, 1); 8982} 8983 8984// CHECK-LABEL: test_vrsra_n_s32 8985// CHECK: vrsra.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8986int32x2_t test_vrsra_n_s32(int32x2_t a, int32x2_t b) { 8987 return vrsra_n_s32(a, b, 1); 8988} 8989 8990// CHECK-LABEL: test_vrsra_n_s64 8991// CHECK: vrsra.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8992int64x1_t test_vrsra_n_s64(int64x1_t a, int64x1_t b) { 8993 return vrsra_n_s64(a, b, 1); 8994} 8995 8996// CHECK-LABEL: test_vrsra_n_u8 8997// CHECK: vrsra.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 8998uint8x8_t test_vrsra_n_u8(uint8x8_t a, uint8x8_t b) { 8999 return vrsra_n_u8(a, b, 1); 9000} 9001 9002// CHECK-LABEL: test_vrsra_n_u16 9003// CHECK: vrsra.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9004uint16x4_t test_vrsra_n_u16(uint16x4_t a, uint16x4_t b) { 9005 return vrsra_n_u16(a, b, 1); 9006} 9007 9008// CHECK-LABEL: test_vrsra_n_u32 9009// CHECK: vrsra.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9010uint32x2_t test_vrsra_n_u32(uint32x2_t a, uint32x2_t b) { 9011 return vrsra_n_u32(a, b, 1); 9012} 9013 9014// CHECK-LABEL: test_vrsra_n_u64 9015// CHECK: vrsra.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9016uint64x1_t test_vrsra_n_u64(uint64x1_t a, uint64x1_t b) { 9017 return vrsra_n_u64(a, b, 1); 9018} 9019 9020// CHECK-LABEL: test_vrsraq_n_s8 9021// CHECK: vrsra.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9022int8x16_t test_vrsraq_n_s8(int8x16_t a, int8x16_t b) { 9023 return vrsraq_n_s8(a, b, 1); 9024} 9025 9026// CHECK-LABEL: test_vrsraq_n_s16 9027// CHECK: vrsra.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9028int16x8_t test_vrsraq_n_s16(int16x8_t a, int16x8_t b) { 9029 return vrsraq_n_s16(a, b, 1); 9030} 9031 9032// CHECK-LABEL: test_vrsraq_n_s32 9033// CHECK: vrsra.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9034int32x4_t test_vrsraq_n_s32(int32x4_t a, int32x4_t b) { 9035 return vrsraq_n_s32(a, b, 1); 9036} 9037 9038// CHECK-LABEL: test_vrsraq_n_s64 9039// CHECK: vrsra.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9040int64x2_t test_vrsraq_n_s64(int64x2_t a, int64x2_t b) { 9041 return vrsraq_n_s64(a, b, 1); 9042} 9043 9044// CHECK-LABEL: test_vrsraq_n_u8 9045// CHECK: vrsra.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9046uint8x16_t test_vrsraq_n_u8(uint8x16_t a, uint8x16_t b) { 9047 return vrsraq_n_u8(a, b, 1); 9048} 9049 9050// CHECK-LABEL: test_vrsraq_n_u16 9051// CHECK: vrsra.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9052uint16x8_t test_vrsraq_n_u16(uint16x8_t a, uint16x8_t b) { 9053 return vrsraq_n_u16(a, b, 1); 9054} 9055 9056// CHECK-LABEL: test_vrsraq_n_u32 9057// CHECK: vrsra.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9058uint32x4_t test_vrsraq_n_u32(uint32x4_t a, uint32x4_t b) { 9059 return vrsraq_n_u32(a, b, 1); 9060} 9061 9062// CHECK-LABEL: test_vrsraq_n_u64 9063// CHECK: vrsra.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9064uint64x2_t test_vrsraq_n_u64(uint64x2_t a, uint64x2_t b) { 9065 return vrsraq_n_u64(a, b, 1); 9066} 9067 9068 9069// CHECK-LABEL: test_vrsubhn_s16 9070// CHECK: vrsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9071int8x8_t test_vrsubhn_s16(int16x8_t a, int16x8_t b) { 9072 return vrsubhn_s16(a, b); 9073} 9074 9075// CHECK-LABEL: test_vrsubhn_s32 9076// CHECK: vrsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9077int16x4_t test_vrsubhn_s32(int32x4_t a, int32x4_t b) { 9078 return vrsubhn_s32(a, b); 9079} 9080 9081// CHECK-LABEL: test_vrsubhn_s64 9082// CHECK: vrsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9083int32x2_t test_vrsubhn_s64(int64x2_t a, int64x2_t b) { 9084 return vrsubhn_s64(a, b); 9085} 9086 9087// CHECK-LABEL: test_vrsubhn_u16 9088// CHECK: vrsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9089uint8x8_t test_vrsubhn_u16(uint16x8_t a, uint16x8_t b) { 9090 return vrsubhn_u16(a, b); 9091} 9092 9093// CHECK-LABEL: test_vrsubhn_u32 9094// CHECK: vrsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9095uint16x4_t test_vrsubhn_u32(uint32x4_t a, uint32x4_t b) { 9096 return vrsubhn_u32(a, b); 9097} 9098 9099// CHECK-LABEL: test_vrsubhn_u64 9100// CHECK: vrsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9101uint32x2_t test_vrsubhn_u64(uint64x2_t a, uint64x2_t b) { 9102 return vrsubhn_u64(a, b); 9103} 9104 9105 9106// CHECK-LABEL: test_vset_lane_u8 9107// CHECK: vmov 9108uint8x8_t test_vset_lane_u8(uint8_t a, uint8x8_t b) { 9109 return vset_lane_u8(a, b, 7); 9110} 9111 9112// CHECK-LABEL: test_vset_lane_u16 9113// CHECK: vmov 9114uint16x4_t test_vset_lane_u16(uint16_t a, uint16x4_t b) { 9115 return vset_lane_u16(a, b, 3); 9116} 9117 9118// CHECK-LABEL: test_vset_lane_u32 9119// CHECK: mov 9120uint32x2_t test_vset_lane_u32(uint32_t a, uint32x2_t b) { 9121 return vset_lane_u32(a, b, 1); 9122} 9123 9124// CHECK-LABEL: test_vset_lane_s8 9125// CHECK: vmov 9126int8x8_t test_vset_lane_s8(int8_t a, int8x8_t b) { 9127 return vset_lane_s8(a, b, 7); 9128} 9129 9130// CHECK-LABEL: test_vset_lane_s16 9131// CHECK: vmov 9132int16x4_t test_vset_lane_s16(int16_t a, int16x4_t b) { 9133 return vset_lane_s16(a, b, 3); 9134} 9135 9136// CHECK-LABEL: test_vset_lane_s32 9137// CHECK: mov 9138int32x2_t test_vset_lane_s32(int32_t a, int32x2_t b) { 9139 return vset_lane_s32(a, b, 1); 9140} 9141 9142// CHECK-LABEL: test_vset_lane_p8 9143// CHECK: vmov 9144poly8x8_t test_vset_lane_p8(poly8_t a, poly8x8_t b) { 9145 return vset_lane_p8(a, b, 7); 9146} 9147 9148// CHECK-LABEL: test_vset_lane_p16 9149// CHECK: vmov 9150poly16x4_t test_vset_lane_p16(poly16_t a, poly16x4_t b) { 9151 return vset_lane_p16(a, b, 3); 9152} 9153 9154// CHECK-LABEL: test_vset_lane_f32 9155// CHECK: mov 9156float32x2_t test_vset_lane_f32(float32_t a, float32x2_t b) { 9157 return vset_lane_f32(a, b, 1); 9158} 9159 9160// CHECK-LABEL: test_vsetq_lane_u8 9161// CHECK: vmov 9162uint8x16_t test_vsetq_lane_u8(uint8_t a, uint8x16_t b) { 9163 return vsetq_lane_u8(a, b, 15); 9164} 9165 9166// CHECK-LABEL: test_vsetq_lane_u16 9167// CHECK: vmov 9168uint16x8_t test_vsetq_lane_u16(uint16_t a, uint16x8_t b) { 9169 return vsetq_lane_u16(a, b, 7); 9170} 9171 9172// CHECK-LABEL: test_vsetq_lane_u32 9173// CHECK: vmov 9174uint32x4_t test_vsetq_lane_u32(uint32_t a, uint32x4_t b) { 9175 return vsetq_lane_u32(a, b, 3); 9176} 9177 9178// CHECK-LABEL: test_vsetq_lane_s8 9179// CHECK: vmov 9180int8x16_t test_vsetq_lane_s8(int8_t a, int8x16_t b) { 9181 return vsetq_lane_s8(a, b, 15); 9182} 9183 9184// CHECK-LABEL: test_vsetq_lane_s16 9185// CHECK: vmov 9186int16x8_t test_vsetq_lane_s16(int16_t a, int16x8_t b) { 9187 return vsetq_lane_s16(a, b, 7); 9188} 9189 9190// CHECK-LABEL: test_vsetq_lane_s32 9191// CHECK: vmov 9192int32x4_t test_vsetq_lane_s32(int32_t a, int32x4_t b) { 9193 return vsetq_lane_s32(a, b, 3); 9194} 9195 9196// CHECK-LABEL: test_vsetq_lane_p8 9197// CHECK: vmov 9198poly8x16_t test_vsetq_lane_p8(poly8_t a, poly8x16_t b) { 9199 return vsetq_lane_p8(a, b, 15); 9200} 9201 9202// CHECK-LABEL: test_vsetq_lane_p16 9203// CHECK: vmov 9204poly16x8_t test_vsetq_lane_p16(poly16_t a, poly16x8_t b) { 9205 return vsetq_lane_p16(a, b, 7); 9206} 9207 9208// CHECK-LABEL: test_vsetq_lane_f32 9209// CHECK: vmov 9210float32x4_t test_vsetq_lane_f32(float32_t a, float32x4_t b) { 9211 return vsetq_lane_f32(a, b, 3); 9212} 9213 9214// CHECK-LABEL: test_vset_lane_s64 9215// The optimizer is able to get rid of all moves now. 9216int64x1_t test_vset_lane_s64(int64_t a, int64x1_t b) { 9217 return vset_lane_s64(a, b, 0); 9218} 9219 9220// CHECK-LABEL: test_vset_lane_u64 9221// The optimizer is able to get rid of all moves now. 9222uint64x1_t test_vset_lane_u64(uint64_t a, uint64x1_t b) { 9223 return vset_lane_u64(a, b, 0); 9224} 9225 9226// CHECK-LABEL: test_vsetq_lane_s64 9227// CHECK: vmov 9228int64x2_t test_vsetq_lane_s64(int64_t a, int64x2_t b) { 9229 return vsetq_lane_s64(a, b, 1); 9230} 9231 9232// CHECK-LABEL: test_vsetq_lane_u64 9233// CHECK: vmov 9234uint64x2_t test_vsetq_lane_u64(uint64_t a, uint64x2_t b) { 9235 return vsetq_lane_u64(a, b, 1); 9236} 9237 9238 9239// CHECK-LABEL: test_vshl_s8 9240// CHECK: vshl.s8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 9241int8x8_t test_vshl_s8(int8x8_t a, int8x8_t b) { 9242 return vshl_s8(a, b); 9243} 9244 9245// CHECK-LABEL: test_vshl_s16 9246// CHECK: vshl.s16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 9247int16x4_t test_vshl_s16(int16x4_t a, int16x4_t b) { 9248 return vshl_s16(a, b); 9249} 9250 9251// CHECK-LABEL: test_vshl_s32 9252// CHECK: vshl.s32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 9253int32x2_t test_vshl_s32(int32x2_t a, int32x2_t b) { 9254 return vshl_s32(a, b); 9255} 9256 9257// CHECK-LABEL: test_vshl_s64 9258// CHECK: vshl.s64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 9259int64x1_t test_vshl_s64(int64x1_t a, int64x1_t b) { 9260 return vshl_s64(a, b); 9261} 9262 9263// CHECK-LABEL: test_vshl_u8 9264// CHECK: vshl.u8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 9265uint8x8_t test_vshl_u8(uint8x8_t a, int8x8_t b) { 9266 return vshl_u8(a, b); 9267} 9268 9269// CHECK-LABEL: test_vshl_u16 9270// CHECK: vshl.u16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 9271uint16x4_t test_vshl_u16(uint16x4_t a, int16x4_t b) { 9272 return vshl_u16(a, b); 9273} 9274 9275// CHECK-LABEL: test_vshl_u32 9276// CHECK: vshl.u32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 9277uint32x2_t test_vshl_u32(uint32x2_t a, int32x2_t b) { 9278 return vshl_u32(a, b); 9279} 9280 9281// CHECK-LABEL: test_vshl_u64 9282// CHECK: vshl.u64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 9283uint64x1_t test_vshl_u64(uint64x1_t a, int64x1_t b) { 9284 return vshl_u64(a, b); 9285} 9286 9287// CHECK-LABEL: test_vshlq_s8 9288// CHECK: vshl.s8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9289int8x16_t test_vshlq_s8(int8x16_t a, int8x16_t b) { 9290 return vshlq_s8(a, b); 9291} 9292 9293// CHECK-LABEL: test_vshlq_s16 9294// CHECK: vshl.s16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9295int16x8_t test_vshlq_s16(int16x8_t a, int16x8_t b) { 9296 return vshlq_s16(a, b); 9297} 9298 9299// CHECK-LABEL: test_vshlq_s32 9300// CHECK: vshl.s32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9301int32x4_t test_vshlq_s32(int32x4_t a, int32x4_t b) { 9302 return vshlq_s32(a, b); 9303} 9304 9305// CHECK-LABEL: test_vshlq_s64 9306// CHECK: vshl.s64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9307int64x2_t test_vshlq_s64(int64x2_t a, int64x2_t b) { 9308 return vshlq_s64(a, b); 9309} 9310 9311// CHECK-LABEL: test_vshlq_u8 9312// CHECK: vshl.u8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9313uint8x16_t test_vshlq_u8(uint8x16_t a, int8x16_t b) { 9314 return vshlq_u8(a, b); 9315} 9316 9317// CHECK-LABEL: test_vshlq_u16 9318// CHECK: vshl.u16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9319uint16x8_t test_vshlq_u16(uint16x8_t a, int16x8_t b) { 9320 return vshlq_u16(a, b); 9321} 9322 9323// CHECK-LABEL: test_vshlq_u32 9324// CHECK: vshl.u32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9325uint32x4_t test_vshlq_u32(uint32x4_t a, int32x4_t b) { 9326 return vshlq_u32(a, b); 9327} 9328 9329// CHECK-LABEL: test_vshlq_u64 9330// CHECK: vshl.u64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 9331uint64x2_t test_vshlq_u64(uint64x2_t a, int64x2_t b) { 9332 return vshlq_u64(a, b); 9333} 9334 9335 9336// CHECK-LABEL: test_vshll_n_s8 9337// CHECK: vshll.s8 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9338int16x8_t test_vshll_n_s8(int8x8_t a) { 9339 return vshll_n_s8(a, 1); 9340} 9341 9342// CHECK-LABEL: test_vshll_n_s16 9343// CHECK: vshll.s16 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9344int32x4_t test_vshll_n_s16(int16x4_t a) { 9345 return vshll_n_s16(a, 1); 9346} 9347 9348// CHECK-LABEL: test_vshll_n_s32 9349// CHECK: vshll.s32 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9350int64x2_t test_vshll_n_s32(int32x2_t a) { 9351 return vshll_n_s32(a, 1); 9352} 9353 9354// CHECK-LABEL: test_vshll_n_u8 9355// CHECK: vshll.u8 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9356uint16x8_t test_vshll_n_u8(uint8x8_t a) { 9357 return vshll_n_u8(a, 1); 9358} 9359 9360// CHECK-LABEL: test_vshll_n_u16 9361// CHECK: vshll.u16 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9362uint32x4_t test_vshll_n_u16(uint16x4_t a) { 9363 return vshll_n_u16(a, 1); 9364} 9365 9366// CHECK-LABEL: test_vshll_n_u32 9367// CHECK: vshll.u32 q{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9368uint64x2_t test_vshll_n_u32(uint32x2_t a) { 9369 return vshll_n_u32(a, 1); 9370} 9371 9372 9373// CHECK-LABEL: test_vshl_n_s8 9374// CHECK: vshl.i8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9375int8x8_t test_vshl_n_s8(int8x8_t a) { 9376 return vshl_n_s8(a, 1); 9377} 9378 9379// CHECK-LABEL: test_vshl_n_s16 9380// CHECK: vshl.i16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9381int16x4_t test_vshl_n_s16(int16x4_t a) { 9382 return vshl_n_s16(a, 1); 9383} 9384 9385// CHECK-LABEL: test_vshl_n_s32 9386// CHECK: vshl.i32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9387int32x2_t test_vshl_n_s32(int32x2_t a) { 9388 return vshl_n_s32(a, 1); 9389} 9390 9391// CHECK-LABEL: test_vshl_n_s64 9392// CHECK: vshl.i64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9393int64x1_t test_vshl_n_s64(int64x1_t a) { 9394 return vshl_n_s64(a, 1); 9395} 9396 9397// CHECK-LABEL: test_vshl_n_u8 9398// CHECK: vshl.i8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9399uint8x8_t test_vshl_n_u8(uint8x8_t a) { 9400 return vshl_n_u8(a, 1); 9401} 9402 9403// CHECK-LABEL: test_vshl_n_u16 9404// CHECK: vshl.i16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9405uint16x4_t test_vshl_n_u16(uint16x4_t a) { 9406 return vshl_n_u16(a, 1); 9407} 9408 9409// CHECK-LABEL: test_vshl_n_u32 9410// CHECK: vshl.i32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9411uint32x2_t test_vshl_n_u32(uint32x2_t a) { 9412 return vshl_n_u32(a, 1); 9413} 9414 9415// CHECK-LABEL: test_vshl_n_u64 9416// CHECK: vshl.i64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9417uint64x1_t test_vshl_n_u64(uint64x1_t a) { 9418 return vshl_n_u64(a, 1); 9419} 9420 9421// CHECK-LABEL: test_vshlq_n_s8 9422// CHECK: vshl.i8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9423int8x16_t test_vshlq_n_s8(int8x16_t a) { 9424 return vshlq_n_s8(a, 1); 9425} 9426 9427// CHECK-LABEL: test_vshlq_n_s16 9428// CHECK: vshl.i16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9429int16x8_t test_vshlq_n_s16(int16x8_t a) { 9430 return vshlq_n_s16(a, 1); 9431} 9432 9433// CHECK-LABEL: test_vshlq_n_s32 9434// CHECK: vshl.i32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9435int32x4_t test_vshlq_n_s32(int32x4_t a) { 9436 return vshlq_n_s32(a, 1); 9437} 9438 9439// CHECK-LABEL: test_vshlq_n_s64 9440// CHECK: vshl.i64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9441int64x2_t test_vshlq_n_s64(int64x2_t a) { 9442 return vshlq_n_s64(a, 1); 9443} 9444 9445// CHECK-LABEL: test_vshlq_n_u8 9446// CHECK: vshl.i8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9447uint8x16_t test_vshlq_n_u8(uint8x16_t a) { 9448 return vshlq_n_u8(a, 1); 9449} 9450 9451// CHECK-LABEL: test_vshlq_n_u16 9452// CHECK: vshl.i16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9453uint16x8_t test_vshlq_n_u16(uint16x8_t a) { 9454 return vshlq_n_u16(a, 1); 9455} 9456 9457// CHECK-LABEL: test_vshlq_n_u32 9458// CHECK: vshl.i32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9459uint32x4_t test_vshlq_n_u32(uint32x4_t a) { 9460 return vshlq_n_u32(a, 1); 9461} 9462 9463// CHECK-LABEL: test_vshlq_n_u64 9464// CHECK: vshl.i64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9465uint64x2_t test_vshlq_n_u64(uint64x2_t a) { 9466 return vshlq_n_u64(a, 1); 9467} 9468 9469 9470// CHECK-LABEL: test_vshrn_n_s16 9471// CHECK: vshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9472int8x8_t test_vshrn_n_s16(int16x8_t a) { 9473 return vshrn_n_s16(a, 1); 9474} 9475 9476// CHECK-LABEL: test_vshrn_n_s32 9477// CHECK: vshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9478int16x4_t test_vshrn_n_s32(int32x4_t a) { 9479 return vshrn_n_s32(a, 1); 9480} 9481 9482// CHECK-LABEL: test_vshrn_n_s64 9483// CHECK: vshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9484int32x2_t test_vshrn_n_s64(int64x2_t a) { 9485 return vshrn_n_s64(a, 1); 9486} 9487 9488// CHECK-LABEL: test_vshrn_n_u16 9489// CHECK: vshrn.i16 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9490uint8x8_t test_vshrn_n_u16(uint16x8_t a) { 9491 return vshrn_n_u16(a, 1); 9492} 9493 9494// CHECK-LABEL: test_vshrn_n_u32 9495// CHECK: vshrn.i32 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9496uint16x4_t test_vshrn_n_u32(uint32x4_t a) { 9497 return vshrn_n_u32(a, 1); 9498} 9499 9500// CHECK-LABEL: test_vshrn_n_u64 9501// CHECK: vshrn.i64 d{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9502uint32x2_t test_vshrn_n_u64(uint64x2_t a) { 9503 return vshrn_n_u64(a, 1); 9504} 9505 9506 9507// CHECK-LABEL: test_vshr_n_s8 9508// CHECK: vshr.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9509int8x8_t test_vshr_n_s8(int8x8_t a) { 9510 return vshr_n_s8(a, 1); 9511} 9512 9513// CHECK-LABEL: test_vshr_n_s16 9514// CHECK: vshr.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9515int16x4_t test_vshr_n_s16(int16x4_t a) { 9516 return vshr_n_s16(a, 1); 9517} 9518 9519// CHECK-LABEL: test_vshr_n_s32 9520// CHECK: vshr.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9521int32x2_t test_vshr_n_s32(int32x2_t a) { 9522 return vshr_n_s32(a, 1); 9523} 9524 9525// CHECK-LABEL: test_vshr_n_s64 9526// CHECK: vshr.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9527int64x1_t test_vshr_n_s64(int64x1_t a) { 9528 return vshr_n_s64(a, 1); 9529} 9530 9531// CHECK-LABEL: test_vshr_n_u8 9532// CHECK: vshr.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9533uint8x8_t test_vshr_n_u8(uint8x8_t a) { 9534 return vshr_n_u8(a, 1); 9535} 9536 9537// CHECK-LABEL: test_vshr_n_u16 9538// CHECK: vshr.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9539uint16x4_t test_vshr_n_u16(uint16x4_t a) { 9540 return vshr_n_u16(a, 1); 9541} 9542 9543// CHECK-LABEL: test_vshr_n_u32 9544// CHECK: vshr.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9545uint32x2_t test_vshr_n_u32(uint32x2_t a) { 9546 return vshr_n_u32(a, 1); 9547} 9548 9549// CHECK-LABEL: test_vshr_n_u64 9550// CHECK: vshr.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9551uint64x1_t test_vshr_n_u64(uint64x1_t a) { 9552 return vshr_n_u64(a, 1); 9553} 9554 9555// CHECK-LABEL: test_vshrq_n_s8 9556// CHECK: vshr.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9557int8x16_t test_vshrq_n_s8(int8x16_t a) { 9558 return vshrq_n_s8(a, 1); 9559} 9560 9561// CHECK-LABEL: test_vshrq_n_s16 9562// CHECK: vshr.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9563int16x8_t test_vshrq_n_s16(int16x8_t a) { 9564 return vshrq_n_s16(a, 1); 9565} 9566 9567// CHECK-LABEL: test_vshrq_n_s32 9568// CHECK: vshr.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9569int32x4_t test_vshrq_n_s32(int32x4_t a) { 9570 return vshrq_n_s32(a, 1); 9571} 9572 9573// CHECK-LABEL: test_vshrq_n_s64 9574// CHECK: vshr.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9575int64x2_t test_vshrq_n_s64(int64x2_t a) { 9576 return vshrq_n_s64(a, 1); 9577} 9578 9579// CHECK-LABEL: test_vshrq_n_u8 9580// CHECK: vshr.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9581uint8x16_t test_vshrq_n_u8(uint8x16_t a) { 9582 return vshrq_n_u8(a, 1); 9583} 9584 9585// CHECK-LABEL: test_vshrq_n_u16 9586// CHECK: vshr.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9587uint16x8_t test_vshrq_n_u16(uint16x8_t a) { 9588 return vshrq_n_u16(a, 1); 9589} 9590 9591// CHECK-LABEL: test_vshrq_n_u32 9592// CHECK: vshr.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9593uint32x4_t test_vshrq_n_u32(uint32x4_t a) { 9594 return vshrq_n_u32(a, 1); 9595} 9596 9597// CHECK-LABEL: test_vshrq_n_u64 9598// CHECK: vshr.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9599uint64x2_t test_vshrq_n_u64(uint64x2_t a) { 9600 return vshrq_n_u64(a, 1); 9601} 9602 9603 9604// CHECK-LABEL: test_vsli_n_s8 9605// CHECK: vsli.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9606int8x8_t test_vsli_n_s8(int8x8_t a, int8x8_t b) { 9607 return vsli_n_s8(a, b, 1); 9608} 9609 9610// CHECK-LABEL: test_vsli_n_s16 9611// CHECK: vsli.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9612int16x4_t test_vsli_n_s16(int16x4_t a, int16x4_t b) { 9613 return vsli_n_s16(a, b, 1); 9614} 9615 9616// CHECK-LABEL: test_vsli_n_s32 9617// CHECK: vsli.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9618int32x2_t test_vsli_n_s32(int32x2_t a, int32x2_t b) { 9619 return vsli_n_s32(a, b, 1); 9620} 9621 9622// CHECK-LABEL: test_vsli_n_s64 9623// CHECK: vsli.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9624int64x1_t test_vsli_n_s64(int64x1_t a, int64x1_t b) { 9625 return vsli_n_s64(a, b, 1); 9626} 9627 9628// CHECK-LABEL: test_vsli_n_u8 9629// CHECK: vsli.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9630uint8x8_t test_vsli_n_u8(uint8x8_t a, uint8x8_t b) { 9631 return vsli_n_u8(a, b, 1); 9632} 9633 9634// CHECK-LABEL: test_vsli_n_u16 9635// CHECK: vsli.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9636uint16x4_t test_vsli_n_u16(uint16x4_t a, uint16x4_t b) { 9637 return vsli_n_u16(a, b, 1); 9638} 9639 9640// CHECK-LABEL: test_vsli_n_u32 9641// CHECK: vsli.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9642uint32x2_t test_vsli_n_u32(uint32x2_t a, uint32x2_t b) { 9643 return vsli_n_u32(a, b, 1); 9644} 9645 9646// CHECK-LABEL: test_vsli_n_u64 9647// CHECK: vsli.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9648uint64x1_t test_vsli_n_u64(uint64x1_t a, uint64x1_t b) { 9649 return vsli_n_u64(a, b, 1); 9650} 9651 9652// CHECK-LABEL: test_vsli_n_p8 9653// CHECK: vsli.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9654poly8x8_t test_vsli_n_p8(poly8x8_t a, poly8x8_t b) { 9655 return vsli_n_p8(a, b, 1); 9656} 9657 9658// CHECK-LABEL: test_vsli_n_p16 9659// CHECK: vsli.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9660poly16x4_t test_vsli_n_p16(poly16x4_t a, poly16x4_t b) { 9661 return vsli_n_p16(a, b, 1); 9662} 9663 9664// CHECK-LABEL: test_vsliq_n_s8 9665// CHECK: vsli.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9666int8x16_t test_vsliq_n_s8(int8x16_t a, int8x16_t b) { 9667 return vsliq_n_s8(a, b, 1); 9668} 9669 9670// CHECK-LABEL: test_vsliq_n_s16 9671// CHECK: vsli.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9672int16x8_t test_vsliq_n_s16(int16x8_t a, int16x8_t b) { 9673 return vsliq_n_s16(a, b, 1); 9674} 9675 9676// CHECK-LABEL: test_vsliq_n_s32 9677// CHECK: vsli.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9678int32x4_t test_vsliq_n_s32(int32x4_t a, int32x4_t b) { 9679 return vsliq_n_s32(a, b, 1); 9680} 9681 9682// CHECK-LABEL: test_vsliq_n_s64 9683// CHECK: vsli.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9684int64x2_t test_vsliq_n_s64(int64x2_t a, int64x2_t b) { 9685 return vsliq_n_s64(a, b, 1); 9686} 9687 9688// CHECK-LABEL: test_vsliq_n_u8 9689// CHECK: vsli.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9690uint8x16_t test_vsliq_n_u8(uint8x16_t a, uint8x16_t b) { 9691 return vsliq_n_u8(a, b, 1); 9692} 9693 9694// CHECK-LABEL: test_vsliq_n_u16 9695// CHECK: vsli.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9696uint16x8_t test_vsliq_n_u16(uint16x8_t a, uint16x8_t b) { 9697 return vsliq_n_u16(a, b, 1); 9698} 9699 9700// CHECK-LABEL: test_vsliq_n_u32 9701// CHECK: vsli.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9702uint32x4_t test_vsliq_n_u32(uint32x4_t a, uint32x4_t b) { 9703 return vsliq_n_u32(a, b, 1); 9704} 9705 9706// CHECK-LABEL: test_vsliq_n_u64 9707// CHECK: vsli.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9708uint64x2_t test_vsliq_n_u64(uint64x2_t a, uint64x2_t b) { 9709 return vsliq_n_u64(a, b, 1); 9710} 9711 9712// CHECK-LABEL: test_vsliq_n_p8 9713// CHECK: vsli.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9714poly8x16_t test_vsliq_n_p8(poly8x16_t a, poly8x16_t b) { 9715 return vsliq_n_p8(a, b, 1); 9716} 9717 9718// CHECK-LABEL: test_vsliq_n_p16 9719// CHECK: vsli.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9720poly16x8_t test_vsliq_n_p16(poly16x8_t a, poly16x8_t b) { 9721 return vsliq_n_p16(a, b, 1); 9722} 9723 9724 9725// CHECK-LABEL: test_vsra_n_s8 9726// CHECK: vsra.s8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9727int8x8_t test_vsra_n_s8(int8x8_t a, int8x8_t b) { 9728 return vsra_n_s8(a, b, 1); 9729} 9730 9731// CHECK-LABEL: test_vsra_n_s16 9732// CHECK: vsra.s16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9733int16x4_t test_vsra_n_s16(int16x4_t a, int16x4_t b) { 9734 return vsra_n_s16(a, b, 1); 9735} 9736 9737// CHECK-LABEL: test_vsra_n_s32 9738// CHECK: vsra.s32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9739int32x2_t test_vsra_n_s32(int32x2_t a, int32x2_t b) { 9740 return vsra_n_s32(a, b, 1); 9741} 9742 9743// CHECK-LABEL: test_vsra_n_s64 9744// CHECK: vsra.s64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9745int64x1_t test_vsra_n_s64(int64x1_t a, int64x1_t b) { 9746 return vsra_n_s64(a, b, 1); 9747} 9748 9749// CHECK-LABEL: test_vsra_n_u8 9750// CHECK: vsra.u8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9751uint8x8_t test_vsra_n_u8(uint8x8_t a, uint8x8_t b) { 9752 return vsra_n_u8(a, b, 1); 9753} 9754 9755// CHECK-LABEL: test_vsra_n_u16 9756// CHECK: vsra.u16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9757uint16x4_t test_vsra_n_u16(uint16x4_t a, uint16x4_t b) { 9758 return vsra_n_u16(a, b, 1); 9759} 9760 9761// CHECK-LABEL: test_vsra_n_u32 9762// CHECK: vsra.u32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9763uint32x2_t test_vsra_n_u32(uint32x2_t a, uint32x2_t b) { 9764 return vsra_n_u32(a, b, 1); 9765} 9766 9767// CHECK-LABEL: test_vsra_n_u64 9768// CHECK: vsra.u64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9769uint64x1_t test_vsra_n_u64(uint64x1_t a, uint64x1_t b) { 9770 return vsra_n_u64(a, b, 1); 9771} 9772 9773// CHECK-LABEL: test_vsraq_n_s8 9774// CHECK: vsra.s8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9775int8x16_t test_vsraq_n_s8(int8x16_t a, int8x16_t b) { 9776 return vsraq_n_s8(a, b, 1); 9777} 9778 9779// CHECK-LABEL: test_vsraq_n_s16 9780// CHECK: vsra.s16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9781int16x8_t test_vsraq_n_s16(int16x8_t a, int16x8_t b) { 9782 return vsraq_n_s16(a, b, 1); 9783} 9784 9785// CHECK-LABEL: test_vsraq_n_s32 9786// CHECK: vsra.s32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9787int32x4_t test_vsraq_n_s32(int32x4_t a, int32x4_t b) { 9788 return vsraq_n_s32(a, b, 1); 9789} 9790 9791// CHECK-LABEL: test_vsraq_n_s64 9792// CHECK: vsra.s64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9793int64x2_t test_vsraq_n_s64(int64x2_t a, int64x2_t b) { 9794 return vsraq_n_s64(a, b, 1); 9795} 9796 9797// CHECK-LABEL: test_vsraq_n_u8 9798// CHECK: vsra.u8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9799uint8x16_t test_vsraq_n_u8(uint8x16_t a, uint8x16_t b) { 9800 return vsraq_n_u8(a, b, 1); 9801} 9802 9803// CHECK-LABEL: test_vsraq_n_u16 9804// CHECK: vsra.u16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9805uint16x8_t test_vsraq_n_u16(uint16x8_t a, uint16x8_t b) { 9806 return vsraq_n_u16(a, b, 1); 9807} 9808 9809// CHECK-LABEL: test_vsraq_n_u32 9810// CHECK: vsra.u32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9811uint32x4_t test_vsraq_n_u32(uint32x4_t a, uint32x4_t b) { 9812 return vsraq_n_u32(a, b, 1); 9813} 9814 9815// CHECK-LABEL: test_vsraq_n_u64 9816// CHECK: vsra.u64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9817uint64x2_t test_vsraq_n_u64(uint64x2_t a, uint64x2_t b) { 9818 return vsraq_n_u64(a, b, 1); 9819} 9820 9821 9822// CHECK-LABEL: test_vsri_n_s8 9823// CHECK: vsri.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9824int8x8_t test_vsri_n_s8(int8x8_t a, int8x8_t b) { 9825 return vsri_n_s8(a, b, 1); 9826} 9827 9828// CHECK-LABEL: test_vsri_n_s16 9829// CHECK: vsri.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9830int16x4_t test_vsri_n_s16(int16x4_t a, int16x4_t b) { 9831 return vsri_n_s16(a, b, 1); 9832} 9833 9834// CHECK-LABEL: test_vsri_n_s32 9835// CHECK: vsri.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9836int32x2_t test_vsri_n_s32(int32x2_t a, int32x2_t b) { 9837 return vsri_n_s32(a, b, 1); 9838} 9839 9840// CHECK-LABEL: test_vsri_n_s64 9841// CHECK: vsri.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9842int64x1_t test_vsri_n_s64(int64x1_t a, int64x1_t b) { 9843 return vsri_n_s64(a, b, 1); 9844} 9845 9846// CHECK-LABEL: test_vsri_n_u8 9847// CHECK: vsri.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9848uint8x8_t test_vsri_n_u8(uint8x8_t a, uint8x8_t b) { 9849 return vsri_n_u8(a, b, 1); 9850} 9851 9852// CHECK-LABEL: test_vsri_n_u16 9853// CHECK: vsri.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9854uint16x4_t test_vsri_n_u16(uint16x4_t a, uint16x4_t b) { 9855 return vsri_n_u16(a, b, 1); 9856} 9857 9858// CHECK-LABEL: test_vsri_n_u32 9859// CHECK: vsri.32 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9860uint32x2_t test_vsri_n_u32(uint32x2_t a, uint32x2_t b) { 9861 return vsri_n_u32(a, b, 1); 9862} 9863 9864// CHECK-LABEL: test_vsri_n_u64 9865// CHECK: vsri.64 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9866uint64x1_t test_vsri_n_u64(uint64x1_t a, uint64x1_t b) { 9867 return vsri_n_u64(a, b, 1); 9868} 9869 9870// CHECK-LABEL: test_vsri_n_p8 9871// CHECK: vsri.8 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9872poly8x8_t test_vsri_n_p8(poly8x8_t a, poly8x8_t b) { 9873 return vsri_n_p8(a, b, 1); 9874} 9875 9876// CHECK-LABEL: test_vsri_n_p16 9877// CHECK: vsri.16 d{{[0-9]+}}, d{{[0-9]+}}, #{{[0-9]+}} 9878poly16x4_t test_vsri_n_p16(poly16x4_t a, poly16x4_t b) { 9879 return vsri_n_p16(a, b, 1); 9880} 9881 9882// CHECK-LABEL: test_vsriq_n_s8 9883// CHECK: vsri.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9884int8x16_t test_vsriq_n_s8(int8x16_t a, int8x16_t b) { 9885 return vsriq_n_s8(a, b, 1); 9886} 9887 9888// CHECK-LABEL: test_vsriq_n_s16 9889// CHECK: vsri.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9890int16x8_t test_vsriq_n_s16(int16x8_t a, int16x8_t b) { 9891 return vsriq_n_s16(a, b, 1); 9892} 9893 9894// CHECK-LABEL: test_vsriq_n_s32 9895// CHECK: vsri.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9896int32x4_t test_vsriq_n_s32(int32x4_t a, int32x4_t b) { 9897 return vsriq_n_s32(a, b, 1); 9898} 9899 9900// CHECK-LABEL: test_vsriq_n_s64 9901// CHECK: vsri.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9902int64x2_t test_vsriq_n_s64(int64x2_t a, int64x2_t b) { 9903 return vsriq_n_s64(a, b, 1); 9904} 9905 9906// CHECK-LABEL: test_vsriq_n_u8 9907// CHECK: vsri.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9908uint8x16_t test_vsriq_n_u8(uint8x16_t a, uint8x16_t b) { 9909 return vsriq_n_u8(a, b, 1); 9910} 9911 9912// CHECK-LABEL: test_vsriq_n_u16 9913// CHECK: vsri.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9914uint16x8_t test_vsriq_n_u16(uint16x8_t a, uint16x8_t b) { 9915 return vsriq_n_u16(a, b, 1); 9916} 9917 9918// CHECK-LABEL: test_vsriq_n_u32 9919// CHECK: vsri.32 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9920uint32x4_t test_vsriq_n_u32(uint32x4_t a, uint32x4_t b) { 9921 return vsriq_n_u32(a, b, 1); 9922} 9923 9924// CHECK-LABEL: test_vsriq_n_u64 9925// CHECK: vsri.64 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9926uint64x2_t test_vsriq_n_u64(uint64x2_t a, uint64x2_t b) { 9927 return vsriq_n_u64(a, b, 1); 9928} 9929 9930// CHECK-LABEL: test_vsriq_n_p8 9931// CHECK: vsri.8 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9932poly8x16_t test_vsriq_n_p8(poly8x16_t a, poly8x16_t b) { 9933 return vsriq_n_p8(a, b, 1); 9934} 9935 9936// CHECK-LABEL: test_vsriq_n_p16 9937// CHECK: vsri.16 q{{[0-9]+}}, q{{[0-9]+}}, #{{[0-9]+}} 9938poly16x8_t test_vsriq_n_p16(poly16x8_t a, poly16x8_t b) { 9939 return vsriq_n_p16(a, b, 1); 9940} 9941 9942 9943// CHECK-LABEL: test_vst1q_u8 9944// CHECK: vst1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 9945void test_vst1q_u8(uint8_t * a, uint8x16_t b) { 9946 vst1q_u8(a, b); 9947} 9948 9949// CHECK-LABEL: test_vst1q_u16 9950// CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 9951void test_vst1q_u16(uint16_t * a, uint16x8_t b) { 9952 vst1q_u16(a, b); 9953} 9954 9955// CHECK-LABEL: test_vst1q_u32 9956// CHECK: vst1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 9957void test_vst1q_u32(uint32_t * a, uint32x4_t b) { 9958 vst1q_u32(a, b); 9959} 9960 9961// CHECK-LABEL: test_vst1q_u64 9962// CHECK: vst1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}] 9963void test_vst1q_u64(uint64_t * a, uint64x2_t b) { 9964 vst1q_u64(a, b); 9965} 9966 9967// CHECK-LABEL: test_vst1q_s8 9968// CHECK: vst1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 9969void test_vst1q_s8(int8_t * a, int8x16_t b) { 9970 vst1q_s8(a, b); 9971} 9972 9973// CHECK-LABEL: test_vst1q_s16 9974// CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 9975void test_vst1q_s16(int16_t * a, int16x8_t b) { 9976 vst1q_s16(a, b); 9977} 9978 9979// CHECK-LABEL: test_vst1q_s32 9980// CHECK: vst1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 9981void test_vst1q_s32(int32_t * a, int32x4_t b) { 9982 vst1q_s32(a, b); 9983} 9984 9985// CHECK-LABEL: test_vst1q_s64 9986// CHECK: vst1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}] 9987void test_vst1q_s64(int64_t * a, int64x2_t b) { 9988 vst1q_s64(a, b); 9989} 9990 9991// CHECK-LABEL: test_vst1q_f16 9992// CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 9993void test_vst1q_f16(float16_t * a, float16x8_t b) { 9994 vst1q_f16(a, b); 9995} 9996 9997// CHECK-LABEL: test_vst1q_f32 9998// CHECK: vst1.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 9999void test_vst1q_f32(float32_t * a, float32x4_t b) { 10000 vst1q_f32(a, b); 10001} 10002 10003// CHECK-LABEL: test_vst1q_p8 10004// CHECK: vst1.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10005void test_vst1q_p8(poly8_t * a, poly8x16_t b) { 10006 vst1q_p8(a, b); 10007} 10008 10009// CHECK-LABEL: test_vst1q_p16 10010// CHECK: vst1.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10011void test_vst1q_p16(poly16_t * a, poly16x8_t b) { 10012 vst1q_p16(a, b); 10013} 10014 10015// CHECK-LABEL: test_vst1_u8 10016// CHECK: vst1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}] 10017void test_vst1_u8(uint8_t * a, uint8x8_t b) { 10018 vst1_u8(a, b); 10019} 10020 10021// CHECK-LABEL: test_vst1_u16 10022// CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}] 10023void test_vst1_u16(uint16_t * a, uint16x4_t b) { 10024 vst1_u16(a, b); 10025} 10026 10027// CHECK-LABEL: test_vst1_u32 10028// CHECK: vst1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}] 10029void test_vst1_u32(uint32_t * a, uint32x2_t b) { 10030 vst1_u32(a, b); 10031} 10032 10033// CHECK-LABEL: test_vst1_u64 10034// CHECK: vst1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}] 10035void test_vst1_u64(uint64_t * a, uint64x1_t b) { 10036 vst1_u64(a, b); 10037} 10038 10039// CHECK-LABEL: test_vst1_s8 10040// CHECK: vst1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}] 10041void test_vst1_s8(int8_t * a, int8x8_t b) { 10042 vst1_s8(a, b); 10043} 10044 10045// CHECK-LABEL: test_vst1_s16 10046// CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}] 10047void test_vst1_s16(int16_t * a, int16x4_t b) { 10048 vst1_s16(a, b); 10049} 10050 10051// CHECK-LABEL: test_vst1_s32 10052// CHECK: vst1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}] 10053void test_vst1_s32(int32_t * a, int32x2_t b) { 10054 vst1_s32(a, b); 10055} 10056 10057// CHECK-LABEL: test_vst1_s64 10058// CHECK: vst1.64 {d{{[0-9]+}}}, [r{{[0-9]+}}{{(:64)?}}] 10059void test_vst1_s64(int64_t * a, int64x1_t b) { 10060 vst1_s64(a, b); 10061} 10062 10063// CHECK-LABEL: test_vst1_f16 10064// CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}] 10065void test_vst1_f16(float16_t * a, float16x4_t b) { 10066 vst1_f16(a, b); 10067} 10068 10069// CHECK-LABEL: test_vst1_f32 10070// CHECK: vst1.32 {d{{[0-9]+}}}, [r{{[0-9]+}}] 10071void test_vst1_f32(float32_t * a, float32x2_t b) { 10072 vst1_f32(a, b); 10073} 10074 10075// CHECK-LABEL: test_vst1_p8 10076// CHECK: vst1.8 {d{{[0-9]+}}}, [r{{[0-9]+}}] 10077void test_vst1_p8(poly8_t * a, poly8x8_t b) { 10078 vst1_p8(a, b); 10079} 10080 10081// CHECK-LABEL: test_vst1_p16 10082// CHECK: vst1.16 {d{{[0-9]+}}}, [r{{[0-9]+}}] 10083void test_vst1_p16(poly16_t * a, poly16x4_t b) { 10084 vst1_p16(a, b); 10085} 10086 10087 10088// CHECK-LABEL: test_vst1q_lane_u8 10089// CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10090void test_vst1q_lane_u8(uint8_t * a, uint8x16_t b) { 10091 vst1q_lane_u8(a, b, 15); 10092} 10093 10094// CHECK-LABEL: test_vst1q_lane_u16 10095// CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 10096void test_vst1q_lane_u16(uint16_t * a, uint16x8_t b) { 10097 vst1q_lane_u16(a, b, 7); 10098} 10099 10100// CHECK-LABEL: test_vst1q_lane_u32 10101// CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32] 10102void test_vst1q_lane_u32(uint32_t * a, uint32x4_t b) { 10103 vst1q_lane_u32(a, b, 3); 10104} 10105 10106// CHECK-LABEL: test_vst1q_lane_u64 10107// CHECK: {{str|vstr|vmov}} 10108void test_vst1q_lane_u64(uint64_t * a, uint64x2_t b) { 10109 vst1q_lane_u64(a, b, 1); 10110} 10111 10112// CHECK-LABEL: test_vst1q_lane_s8 10113// CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10114void test_vst1q_lane_s8(int8_t * a, int8x16_t b) { 10115 vst1q_lane_s8(a, b, 15); 10116} 10117 10118// CHECK-LABEL: test_vst1q_lane_s16 10119// CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 10120void test_vst1q_lane_s16(int16_t * a, int16x8_t b) { 10121 vst1q_lane_s16(a, b, 7); 10122} 10123 10124// CHECK-LABEL: test_vst1q_lane_s32 10125// CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32] 10126void test_vst1q_lane_s32(int32_t * a, int32x4_t b) { 10127 vst1q_lane_s32(a, b, 3); 10128} 10129 10130// CHECK-LABEL: test_vst1q_lane_s64 10131// CHECK: {{str|vstr|vmov}} 10132void test_vst1q_lane_s64(int64_t * a, int64x2_t b) { 10133 vst1q_lane_s64(a, b, 1); 10134} 10135 10136// CHECK-LABEL: test_vst1q_lane_f16 10137// CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 10138void test_vst1q_lane_f16(float16_t * a, float16x8_t b) { 10139 vst1q_lane_f16(a, b, 7); 10140} 10141 10142// CHECK-LABEL: test_vst1q_lane_f32 10143// CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32] 10144void test_vst1q_lane_f32(float32_t * a, float32x4_t b) { 10145 vst1q_lane_f32(a, b, 3); 10146} 10147 10148// CHECK-LABEL: test_vst1q_lane_p8 10149// CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10150void test_vst1q_lane_p8(poly8_t * a, poly8x16_t b) { 10151 vst1q_lane_p8(a, b, 15); 10152} 10153 10154// CHECK-LABEL: test_vst1q_lane_p16 10155// CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 10156void test_vst1q_lane_p16(poly16_t * a, poly16x8_t b) { 10157 vst1q_lane_p16(a, b, 7); 10158} 10159 10160// CHECK-LABEL: test_vst1_lane_u8 10161// CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10162void test_vst1_lane_u8(uint8_t * a, uint8x8_t b) { 10163 vst1_lane_u8(a, b, 7); 10164} 10165 10166// CHECK-LABEL: test_vst1_lane_u16 10167// CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 10168void test_vst1_lane_u16(uint16_t * a, uint16x4_t b) { 10169 vst1_lane_u16(a, b, 3); 10170} 10171 10172// CHECK-LABEL: test_vst1_lane_u32 10173// CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32] 10174void test_vst1_lane_u32(uint32_t * a, uint32x2_t b) { 10175 vst1_lane_u32(a, b, 1); 10176} 10177 10178// CHECK-LABEL: test_vst1_lane_u64 10179// CHECK: {{str|vstr|vmov}} 10180void test_vst1_lane_u64(uint64_t * a, uint64x1_t b) { 10181 vst1_lane_u64(a, b, 0); 10182} 10183 10184// CHECK-LABEL: test_vst1_lane_s8 10185// CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10186void test_vst1_lane_s8(int8_t * a, int8x8_t b) { 10187 vst1_lane_s8(a, b, 7); 10188} 10189 10190// CHECK-LABEL: test_vst1_lane_s16 10191// CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 10192void test_vst1_lane_s16(int16_t * a, int16x4_t b) { 10193 vst1_lane_s16(a, b, 3); 10194} 10195 10196// CHECK-LABEL: test_vst1_lane_s32 10197// CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32] 10198void test_vst1_lane_s32(int32_t * a, int32x2_t b) { 10199 vst1_lane_s32(a, b, 1); 10200} 10201 10202// CHECK-LABEL: test_vst1_lane_s64 10203// CHECK: {{str|vstr|vmov}} 10204void test_vst1_lane_s64(int64_t * a, int64x1_t b) { 10205 vst1_lane_s64(a, b, 0); 10206} 10207 10208// CHECK-LABEL: test_vst1_lane_f16 10209// CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 10210void test_vst1_lane_f16(float16_t * a, float16x4_t b) { 10211 vst1_lane_f16(a, b, 3); 10212} 10213 10214// CHECK-LABEL: test_vst1_lane_f32 10215// CHECK: vst1.32 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:32] 10216void test_vst1_lane_f32(float32_t * a, float32x2_t b) { 10217 vst1_lane_f32(a, b, 1); 10218} 10219 10220// CHECK-LABEL: test_vst1_lane_p8 10221// CHECK: vst1.8 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10222void test_vst1_lane_p8(poly8_t * a, poly8x8_t b) { 10223 vst1_lane_p8(a, b, 7); 10224} 10225 10226// CHECK-LABEL: test_vst1_lane_p16 10227// CHECK: vst1.16 {d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}:16] 10228void test_vst1_lane_p16(poly16_t * a, poly16x4_t b) { 10229 vst1_lane_p16(a, b, 3); 10230} 10231 10232 10233// CHECK-LABEL: test_vst2q_u8 10234// CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10235void test_vst2q_u8(uint8_t * a, uint8x16x2_t b) { 10236 vst2q_u8(a, b); 10237} 10238 10239// CHECK-LABEL: test_vst2q_u16 10240// CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10241void test_vst2q_u16(uint16_t * a, uint16x8x2_t b) { 10242 vst2q_u16(a, b); 10243} 10244 10245// CHECK-LABEL: test_vst2q_u32 10246// CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10247void test_vst2q_u32(uint32_t * a, uint32x4x2_t b) { 10248 vst2q_u32(a, b); 10249} 10250 10251// CHECK-LABEL: test_vst2q_s8 10252// CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10253void test_vst2q_s8(int8_t * a, int8x16x2_t b) { 10254 vst2q_s8(a, b); 10255} 10256 10257// CHECK-LABEL: test_vst2q_s16 10258// CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10259void test_vst2q_s16(int16_t * a, int16x8x2_t b) { 10260 vst2q_s16(a, b); 10261} 10262 10263// CHECK-LABEL: test_vst2q_s32 10264// CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10265void test_vst2q_s32(int32_t * a, int32x4x2_t b) { 10266 vst2q_s32(a, b); 10267} 10268 10269// CHECK-LABEL: test_vst2q_f16 10270// CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10271void test_vst2q_f16(float16_t * a, float16x8x2_t b) { 10272 vst2q_f16(a, b); 10273} 10274 10275// CHECK-LABEL: test_vst2q_f32 10276// CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10277void test_vst2q_f32(float32_t * a, float32x4x2_t b) { 10278 vst2q_f32(a, b); 10279} 10280 10281// CHECK-LABEL: test_vst2q_p8 10282// CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10283void test_vst2q_p8(poly8_t * a, poly8x16x2_t b) { 10284 vst2q_p8(a, b); 10285} 10286 10287// CHECK-LABEL: test_vst2q_p16 10288// CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10289void test_vst2q_p16(poly16_t * a, poly16x8x2_t b) { 10290 vst2q_p16(a, b); 10291} 10292 10293// CHECK-LABEL: test_vst2_u8 10294// CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10295void test_vst2_u8(uint8_t * a, uint8x8x2_t b) { 10296 vst2_u8(a, b); 10297} 10298 10299// CHECK-LABEL: test_vst2_u16 10300// CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10301void test_vst2_u16(uint16_t * a, uint16x4x2_t b) { 10302 vst2_u16(a, b); 10303} 10304 10305// CHECK-LABEL: test_vst2_u32 10306// CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10307void test_vst2_u32(uint32_t * a, uint32x2x2_t b) { 10308 vst2_u32(a, b); 10309} 10310 10311// CHECK-LABEL: test_vst2_u64 10312// CHECK: vst1.64 10313void test_vst2_u64(uint64_t * a, uint64x1x2_t b) { 10314 vst2_u64(a, b); 10315} 10316 10317// CHECK-LABEL: test_vst2_s8 10318// CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10319void test_vst2_s8(int8_t * a, int8x8x2_t b) { 10320 vst2_s8(a, b); 10321} 10322 10323// CHECK-LABEL: test_vst2_s16 10324// CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10325void test_vst2_s16(int16_t * a, int16x4x2_t b) { 10326 vst2_s16(a, b); 10327} 10328 10329// CHECK-LABEL: test_vst2_s32 10330// CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10331void test_vst2_s32(int32_t * a, int32x2x2_t b) { 10332 vst2_s32(a, b); 10333} 10334 10335// CHECK-LABEL: test_vst2_s64 10336// CHECK: vst1.64 10337void test_vst2_s64(int64_t * a, int64x1x2_t b) { 10338 vst2_s64(a, b); 10339} 10340 10341// CHECK-LABEL: test_vst2_f16 10342// CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10343void test_vst2_f16(float16_t * a, float16x4x2_t b) { 10344 vst2_f16(a, b); 10345} 10346 10347// CHECK-LABEL: test_vst2_f32 10348// CHECK: vst2.32 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10349void test_vst2_f32(float32_t * a, float32x2x2_t b) { 10350 vst2_f32(a, b); 10351} 10352 10353// CHECK-LABEL: test_vst2_p8 10354// CHECK: vst2.8 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10355void test_vst2_p8(poly8_t * a, poly8x8x2_t b) { 10356 vst2_p8(a, b); 10357} 10358 10359// CHECK-LABEL: test_vst2_p16 10360// CHECK: vst2.16 {d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10361void test_vst2_p16(poly16_t * a, poly16x4x2_t b) { 10362 vst2_p16(a, b); 10363} 10364 10365 10366// CHECK-LABEL: test_vst2q_lane_u16 10367// CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10368void test_vst2q_lane_u16(uint16_t * a, uint16x8x2_t b) { 10369 vst2q_lane_u16(a, b, 7); 10370} 10371 10372// CHECK-LABEL: test_vst2q_lane_u32 10373// CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10374void test_vst2q_lane_u32(uint32_t * a, uint32x4x2_t b) { 10375 vst2q_lane_u32(a, b, 3); 10376} 10377 10378// CHECK-LABEL: test_vst2q_lane_s16 10379// CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10380void test_vst2q_lane_s16(int16_t * a, int16x8x2_t b) { 10381 vst2q_lane_s16(a, b, 7); 10382} 10383 10384// CHECK-LABEL: test_vst2q_lane_s32 10385// CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10386void test_vst2q_lane_s32(int32_t * a, int32x4x2_t b) { 10387 vst2q_lane_s32(a, b, 3); 10388} 10389 10390// CHECK-LABEL: test_vst2q_lane_f16 10391// CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10392void test_vst2q_lane_f16(float16_t * a, float16x8x2_t b) { 10393 vst2q_lane_f16(a, b, 7); 10394} 10395 10396// CHECK-LABEL: test_vst2q_lane_f32 10397// CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10398void test_vst2q_lane_f32(float32_t * a, float32x4x2_t b) { 10399 vst2q_lane_f32(a, b, 3); 10400} 10401 10402// CHECK-LABEL: test_vst2q_lane_p16 10403// CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10404void test_vst2q_lane_p16(poly16_t * a, poly16x8x2_t b) { 10405 vst2q_lane_p16(a, b, 7); 10406} 10407 10408// CHECK-LABEL: test_vst2_lane_u8 10409// CHECK: vst2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10410void test_vst2_lane_u8(uint8_t * a, uint8x8x2_t b) { 10411 vst2_lane_u8(a, b, 7); 10412} 10413 10414// CHECK-LABEL: test_vst2_lane_u16 10415// CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10416void test_vst2_lane_u16(uint16_t * a, uint16x4x2_t b) { 10417 vst2_lane_u16(a, b, 3); 10418} 10419 10420// CHECK-LABEL: test_vst2_lane_u32 10421// CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10422void test_vst2_lane_u32(uint32_t * a, uint32x2x2_t b) { 10423 vst2_lane_u32(a, b, 1); 10424} 10425 10426// CHECK-LABEL: test_vst2_lane_s8 10427// CHECK: vst2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10428void test_vst2_lane_s8(int8_t * a, int8x8x2_t b) { 10429 vst2_lane_s8(a, b, 7); 10430} 10431 10432// CHECK-LABEL: test_vst2_lane_s16 10433// CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10434void test_vst2_lane_s16(int16_t * a, int16x4x2_t b) { 10435 vst2_lane_s16(a, b, 3); 10436} 10437 10438// CHECK-LABEL: test_vst2_lane_s32 10439// CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10440void test_vst2_lane_s32(int32_t * a, int32x2x2_t b) { 10441 vst2_lane_s32(a, b, 1); 10442} 10443 10444// CHECK-LABEL: test_vst2_lane_f16 10445// CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10446void test_vst2_lane_f16(float16_t * a, float16x4x2_t b) { 10447 vst2_lane_f16(a, b, 3); 10448} 10449 10450// CHECK-LABEL: test_vst2_lane_f32 10451// CHECK: vst2.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10452void test_vst2_lane_f32(float32_t * a, float32x2x2_t b) { 10453 vst2_lane_f32(a, b, 1); 10454} 10455 10456// CHECK-LABEL: test_vst2_lane_p8 10457// CHECK: vst2.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10458void test_vst2_lane_p8(poly8_t * a, poly8x8x2_t b) { 10459 vst2_lane_p8(a, b, 7); 10460} 10461 10462// CHECK-LABEL: test_vst2_lane_p16 10463// CHECK: vst2.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10464void test_vst2_lane_p16(poly16_t * a, poly16x4x2_t b) { 10465 vst2_lane_p16(a, b, 3); 10466} 10467 10468 10469// CHECK-LABEL: test_vst3q_u8 10470// CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10471void test_vst3q_u8(uint8_t * a, uint8x16x3_t b) { 10472 vst3q_u8(a, b); 10473} 10474 10475// CHECK-LABEL: test_vst3q_u16 10476// CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10477void test_vst3q_u16(uint16_t * a, uint16x8x3_t b) { 10478 vst3q_u16(a, b); 10479} 10480 10481// CHECK-LABEL: test_vst3q_u32 10482// CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10483void test_vst3q_u32(uint32_t * a, uint32x4x3_t b) { 10484 vst3q_u32(a, b); 10485} 10486 10487// CHECK-LABEL: test_vst3q_s8 10488// CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10489void test_vst3q_s8(int8_t * a, int8x16x3_t b) { 10490 vst3q_s8(a, b); 10491} 10492 10493// CHECK-LABEL: test_vst3q_s16 10494// CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10495void test_vst3q_s16(int16_t * a, int16x8x3_t b) { 10496 vst3q_s16(a, b); 10497} 10498 10499// CHECK-LABEL: test_vst3q_s32 10500// CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10501void test_vst3q_s32(int32_t * a, int32x4x3_t b) { 10502 vst3q_s32(a, b); 10503} 10504 10505// CHECK-LABEL: test_vst3q_f16 10506// CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10507void test_vst3q_f16(float16_t * a, float16x8x3_t b) { 10508 vst3q_f16(a, b); 10509} 10510 10511// CHECK-LABEL: test_vst3q_f32 10512// CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10513void test_vst3q_f32(float32_t * a, float32x4x3_t b) { 10514 vst3q_f32(a, b); 10515} 10516 10517// CHECK-LABEL: test_vst3q_p8 10518// CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10519void test_vst3q_p8(poly8_t * a, poly8x16x3_t b) { 10520 vst3q_p8(a, b); 10521} 10522 10523// CHECK-LABEL: test_vst3q_p16 10524// CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10525void test_vst3q_p16(poly16_t * a, poly16x8x3_t b) { 10526 vst3q_p16(a, b); 10527} 10528 10529// CHECK-LABEL: test_vst3_u8 10530// CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10531void test_vst3_u8(uint8_t * a, uint8x8x3_t b) { 10532 vst3_u8(a, b); 10533} 10534 10535// CHECK-LABEL: test_vst3_u16 10536// CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10537void test_vst3_u16(uint16_t * a, uint16x4x3_t b) { 10538 vst3_u16(a, b); 10539} 10540 10541// CHECK-LABEL: test_vst3_u32 10542// CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10543void test_vst3_u32(uint32_t * a, uint32x2x3_t b) { 10544 vst3_u32(a, b); 10545} 10546 10547// CHECK-LABEL: test_vst3_u64 10548// CHECK: vst1.64 10549void test_vst3_u64(uint64_t * a, uint64x1x3_t b) { 10550 vst3_u64(a, b); 10551} 10552 10553// CHECK-LABEL: test_vst3_s8 10554// CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10555void test_vst3_s8(int8_t * a, int8x8x3_t b) { 10556 vst3_s8(a, b); 10557} 10558 10559// CHECK-LABEL: test_vst3_s16 10560// CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10561void test_vst3_s16(int16_t * a, int16x4x3_t b) { 10562 vst3_s16(a, b); 10563} 10564 10565// CHECK-LABEL: test_vst3_s32 10566// CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10567void test_vst3_s32(int32_t * a, int32x2x3_t b) { 10568 vst3_s32(a, b); 10569} 10570 10571// CHECK-LABEL: test_vst3_s64 10572// CHECK: vst1.64 10573void test_vst3_s64(int64_t * a, int64x1x3_t b) { 10574 vst3_s64(a, b); 10575} 10576 10577// CHECK-LABEL: test_vst3_f16 10578// CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10579void test_vst3_f16(float16_t * a, float16x4x3_t b) { 10580 vst3_f16(a, b); 10581} 10582 10583// CHECK-LABEL: test_vst3_f32 10584// CHECK: vst3.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10585void test_vst3_f32(float32_t * a, float32x2x3_t b) { 10586 vst3_f32(a, b); 10587} 10588 10589// CHECK-LABEL: test_vst3_p8 10590// CHECK: vst3.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10591void test_vst3_p8(poly8_t * a, poly8x8x3_t b) { 10592 vst3_p8(a, b); 10593} 10594 10595// CHECK-LABEL: test_vst3_p16 10596// CHECK: vst3.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10597void test_vst3_p16(poly16_t * a, poly16x4x3_t b) { 10598 vst3_p16(a, b); 10599} 10600 10601 10602// CHECK-LABEL: test_vst3q_lane_u16 10603// CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10604void test_vst3q_lane_u16(uint16_t * a, uint16x8x3_t b) { 10605 vst3q_lane_u16(a, b, 7); 10606} 10607 10608// CHECK-LABEL: test_vst3q_lane_u32 10609// CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10610void test_vst3q_lane_u32(uint32_t * a, uint32x4x3_t b) { 10611 vst3q_lane_u32(a, b, 3); 10612} 10613 10614// CHECK-LABEL: test_vst3q_lane_s16 10615// CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10616void test_vst3q_lane_s16(int16_t * a, int16x8x3_t b) { 10617 vst3q_lane_s16(a, b, 7); 10618} 10619 10620// CHECK-LABEL: test_vst3q_lane_s32 10621// CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10622void test_vst3q_lane_s32(int32_t * a, int32x4x3_t b) { 10623 vst3q_lane_s32(a, b, 3); 10624} 10625 10626// CHECK-LABEL: test_vst3q_lane_f16 10627// CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10628void test_vst3q_lane_f16(float16_t * a, float16x8x3_t b) { 10629 vst3q_lane_f16(a, b, 7); 10630} 10631 10632// CHECK-LABEL: test_vst3q_lane_f32 10633// CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10634void test_vst3q_lane_f32(float32_t * a, float32x4x3_t b) { 10635 vst3q_lane_f32(a, b, 3); 10636} 10637 10638// CHECK-LABEL: test_vst3q_lane_p16 10639// CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10640void test_vst3q_lane_p16(poly16_t * a, poly16x8x3_t b) { 10641 vst3q_lane_p16(a, b, 7); 10642} 10643 10644// CHECK-LABEL: test_vst3_lane_u8 10645// CHECK: vst3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10646void test_vst3_lane_u8(uint8_t * a, uint8x8x3_t b) { 10647 vst3_lane_u8(a, b, 7); 10648} 10649 10650// CHECK-LABEL: test_vst3_lane_u16 10651// CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10652void test_vst3_lane_u16(uint16_t * a, uint16x4x3_t b) { 10653 vst3_lane_u16(a, b, 3); 10654} 10655 10656// CHECK-LABEL: test_vst3_lane_u32 10657// CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10658void test_vst3_lane_u32(uint32_t * a, uint32x2x3_t b) { 10659 vst3_lane_u32(a, b, 1); 10660} 10661 10662// CHECK-LABEL: test_vst3_lane_s8 10663// CHECK: vst3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10664void test_vst3_lane_s8(int8_t * a, int8x8x3_t b) { 10665 vst3_lane_s8(a, b, 7); 10666} 10667 10668// CHECK-LABEL: test_vst3_lane_s16 10669// CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10670void test_vst3_lane_s16(int16_t * a, int16x4x3_t b) { 10671 vst3_lane_s16(a, b, 3); 10672} 10673 10674// CHECK-LABEL: test_vst3_lane_s32 10675// CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10676void test_vst3_lane_s32(int32_t * a, int32x2x3_t b) { 10677 vst3_lane_s32(a, b, 1); 10678} 10679 10680// CHECK-LABEL: test_vst3_lane_f16 10681// CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10682void test_vst3_lane_f16(float16_t * a, float16x4x3_t b) { 10683 vst3_lane_f16(a, b, 3); 10684} 10685 10686// CHECK-LABEL: test_vst3_lane_f32 10687// CHECK: vst3.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10688void test_vst3_lane_f32(float32_t * a, float32x2x3_t b) { 10689 vst3_lane_f32(a, b, 1); 10690} 10691 10692// CHECK-LABEL: test_vst3_lane_p8 10693// CHECK: vst3.8 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10694void test_vst3_lane_p8(poly8_t * a, poly8x8x3_t b) { 10695 vst3_lane_p8(a, b, 7); 10696} 10697 10698// CHECK-LABEL: test_vst3_lane_p16 10699// CHECK: vst3.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]}, [r{{[0-9]+}}] 10700void test_vst3_lane_p16(poly16_t * a, poly16x4x3_t b) { 10701 vst3_lane_p16(a, b, 3); 10702} 10703 10704 10705// CHECK-LABEL: test_vst4q_u8 10706// CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10707void test_vst4q_u8(uint8_t * a, uint8x16x4_t b) { 10708 vst4q_u8(a, b); 10709} 10710 10711// CHECK-LABEL: test_vst4q_u16 10712// CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10713void test_vst4q_u16(uint16_t * a, uint16x8x4_t b) { 10714 vst4q_u16(a, b); 10715} 10716 10717// CHECK-LABEL: test_vst4q_u32 10718// CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10719void test_vst4q_u32(uint32_t * a, uint32x4x4_t b) { 10720 vst4q_u32(a, b); 10721} 10722 10723// CHECK-LABEL: test_vst4q_s8 10724// CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10725void test_vst4q_s8(int8_t * a, int8x16x4_t b) { 10726 vst4q_s8(a, b); 10727} 10728 10729// CHECK-LABEL: test_vst4q_s16 10730// CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10731void test_vst4q_s16(int16_t * a, int16x8x4_t b) { 10732 vst4q_s16(a, b); 10733} 10734 10735// CHECK-LABEL: test_vst4q_s32 10736// CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10737void test_vst4q_s32(int32_t * a, int32x4x4_t b) { 10738 vst4q_s32(a, b); 10739} 10740 10741// CHECK-LABEL: test_vst4q_f16 10742// CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10743void test_vst4q_f16(float16_t * a, float16x8x4_t b) { 10744 vst4q_f16(a, b); 10745} 10746 10747// CHECK-LABEL: test_vst4q_f32 10748// CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10749void test_vst4q_f32(float32_t * a, float32x4x4_t b) { 10750 vst4q_f32(a, b); 10751} 10752 10753// CHECK-LABEL: test_vst4q_p8 10754// CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10755void test_vst4q_p8(poly8_t * a, poly8x16x4_t b) { 10756 vst4q_p8(a, b); 10757} 10758 10759// CHECK-LABEL: test_vst4q_p16 10760// CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}} 10761void test_vst4q_p16(poly16_t * a, poly16x8x4_t b) { 10762 vst4q_p16(a, b); 10763} 10764 10765// CHECK-LABEL: test_vst4_u8 10766// CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10767void test_vst4_u8(uint8_t * a, uint8x8x4_t b) { 10768 vst4_u8(a, b); 10769} 10770 10771// CHECK-LABEL: test_vst4_u16 10772// CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10773void test_vst4_u16(uint16_t * a, uint16x4x4_t b) { 10774 vst4_u16(a, b); 10775} 10776 10777// CHECK-LABEL: test_vst4_u32 10778// CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10779void test_vst4_u32(uint32_t * a, uint32x2x4_t b) { 10780 vst4_u32(a, b); 10781} 10782 10783// CHECK-LABEL: test_vst4_u64 10784// CHECK: vst1.64 10785void test_vst4_u64(uint64_t * a, uint64x1x4_t b) { 10786 vst4_u64(a, b); 10787} 10788 10789// CHECK-LABEL: test_vst4_s8 10790// CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10791void test_vst4_s8(int8_t * a, int8x8x4_t b) { 10792 vst4_s8(a, b); 10793} 10794 10795// CHECK-LABEL: test_vst4_s16 10796// CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10797void test_vst4_s16(int16_t * a, int16x4x4_t b) { 10798 vst4_s16(a, b); 10799} 10800 10801// CHECK-LABEL: test_vst4_s32 10802// CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10803void test_vst4_s32(int32_t * a, int32x2x4_t b) { 10804 vst4_s32(a, b); 10805} 10806 10807// CHECK-LABEL: test_vst4_s64 10808// CHECK: vst1.64 10809void test_vst4_s64(int64_t * a, int64x1x4_t b) { 10810 vst4_s64(a, b); 10811} 10812 10813// CHECK-LABEL: test_vst4_f16 10814// CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10815void test_vst4_f16(float16_t * a, float16x4x4_t b) { 10816 vst4_f16(a, b); 10817} 10818 10819// CHECK-LABEL: test_vst4_f32 10820// CHECK: vst4.32 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10821void test_vst4_f32(float32_t * a, float32x2x4_t b) { 10822 vst4_f32(a, b); 10823} 10824 10825// CHECK-LABEL: test_vst4_p8 10826// CHECK: vst4.8 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10827void test_vst4_p8(poly8_t * a, poly8x8x4_t b) { 10828 vst4_p8(a, b); 10829} 10830 10831// CHECK-LABEL: test_vst4_p16 10832// CHECK: vst4.16 {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, [r{{[0-9]+}}] 10833void test_vst4_p16(poly16_t * a, poly16x4x4_t b) { 10834 vst4_p16(a, b); 10835} 10836 10837 10838// CHECK-LABEL: test_vst4q_lane_u16 10839// CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10840void test_vst4q_lane_u16(uint16_t * a, uint16x8x4_t b) { 10841 vst4q_lane_u16(a, b, 7); 10842} 10843 10844// CHECK-LABEL: test_vst4q_lane_u32 10845// CHECK: vst4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10846void test_vst4q_lane_u32(uint32_t * a, uint32x4x4_t b) { 10847 vst4q_lane_u32(a, b, 3); 10848} 10849 10850// CHECK-LABEL: test_vst4q_lane_s16 10851// CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10852void test_vst4q_lane_s16(int16_t * a, int16x8x4_t b) { 10853 vst4q_lane_s16(a, b, 7); 10854} 10855 10856// CHECK-LABEL: test_vst4q_lane_s32 10857// CHECK: vst4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10858void test_vst4q_lane_s32(int32_t * a, int32x4x4_t b) { 10859 vst4q_lane_s32(a, b, 3); 10860} 10861 10862// CHECK-LABEL: test_vst4q_lane_f16 10863// CHECK: vst4.16 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10864void test_vst4q_lane_f16(float16_t * a, float16x8x4_t b) { 10865 vst4q_lane_f16(a, b, 7); 10866} 10867 10868// CHECK-LABEL: test_vst4q_lane_f32 10869// CHECK: vst4.32 {d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}], d{{[0-9]+}}[{{[0-9]+}}]} 10870void test_vst4q_lane_f32(float32_t * a, float32x4x4_t b) { 10871 vst4q_lane_f32(a, b, 3); 10872} 10873 10874// CHECK-LABEL: test_vst4q_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]+}}]} 10876void test_vst4q_lane_p16(poly16_t * a, poly16x8x4_t b) { 10877 vst4q_lane_p16(a, b, 7); 10878} 10879 10880// CHECK-LABEL: test_vst4_lane_u8 10881// 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]+}}] 10882void test_vst4_lane_u8(uint8_t * a, uint8x8x4_t b) { 10883 vst4_lane_u8(a, b, 7); 10884} 10885 10886// CHECK-LABEL: test_vst4_lane_u16 10887// 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]+}}] 10888void test_vst4_lane_u16(uint16_t * a, uint16x4x4_t b) { 10889 vst4_lane_u16(a, b, 3); 10890} 10891 10892// CHECK-LABEL: test_vst4_lane_u32 10893// 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]+}}] 10894void test_vst4_lane_u32(uint32_t * a, uint32x2x4_t b) { 10895 vst4_lane_u32(a, b, 1); 10896} 10897 10898// CHECK-LABEL: test_vst4_lane_s8 10899// 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]+}}] 10900void test_vst4_lane_s8(int8_t * a, int8x8x4_t b) { 10901 vst4_lane_s8(a, b, 7); 10902} 10903 10904// CHECK-LABEL: test_vst4_lane_s16 10905// 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]+}}] 10906void test_vst4_lane_s16(int16_t * a, int16x4x4_t b) { 10907 vst4_lane_s16(a, b, 3); 10908} 10909 10910// CHECK-LABEL: test_vst4_lane_s32 10911// 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]+}}] 10912void test_vst4_lane_s32(int32_t * a, int32x2x4_t b) { 10913 vst4_lane_s32(a, b, 1); 10914} 10915 10916// CHECK-LABEL: test_vst4_lane_f16 10917// 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]+}}] 10918void test_vst4_lane_f16(float16_t * a, float16x4x4_t b) { 10919 vst4_lane_f16(a, b, 3); 10920} 10921 10922// CHECK-LABEL: test_vst4_lane_f32 10923// 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]+}}] 10924void test_vst4_lane_f32(float32_t * a, float32x2x4_t b) { 10925 vst4_lane_f32(a, b, 1); 10926} 10927 10928// CHECK-LABEL: test_vst4_lane_p8 10929// 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]+}}] 10930void test_vst4_lane_p8(poly8_t * a, poly8x8x4_t b) { 10931 vst4_lane_p8(a, b, 7); 10932} 10933 10934// CHECK-LABEL: test_vst4_lane_p16 10935// 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]+}}] 10936void test_vst4_lane_p16(poly16_t * a, poly16x4x4_t b) { 10937 vst4_lane_p16(a, b, 3); 10938} 10939 10940 10941// CHECK-LABEL: test_vsub_s8 10942// CHECK: vsub.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 10943int8x8_t test_vsub_s8(int8x8_t a, int8x8_t b) { 10944 return vsub_s8(a, b); 10945} 10946 10947// CHECK-LABEL: test_vsub_s16 10948// CHECK: vsub.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 10949int16x4_t test_vsub_s16(int16x4_t a, int16x4_t b) { 10950 return vsub_s16(a, b); 10951} 10952 10953// CHECK-LABEL: test_vsub_s32 10954// CHECK: vsub.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 10955int32x2_t test_vsub_s32(int32x2_t a, int32x2_t b) { 10956 return vsub_s32(a, b); 10957} 10958 10959// CHECK-LABEL: test_vsub_s64 10960// CHECK: vsub.i64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 10961int64x1_t test_vsub_s64(int64x1_t a, int64x1_t b) { 10962 return vsub_s64(a, b); 10963} 10964 10965// CHECK-LABEL: test_vsub_f32 10966// CHECK: vsub.f32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 10967float32x2_t test_vsub_f32(float32x2_t a, float32x2_t b) { 10968 return vsub_f32(a, b); 10969} 10970 10971// CHECK-LABEL: test_vsub_u8 10972// CHECK: vsub.i8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 10973uint8x8_t test_vsub_u8(uint8x8_t a, uint8x8_t b) { 10974 return vsub_u8(a, b); 10975} 10976 10977// CHECK-LABEL: test_vsub_u16 10978// CHECK: vsub.i16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 10979uint16x4_t test_vsub_u16(uint16x4_t a, uint16x4_t b) { 10980 return vsub_u16(a, b); 10981} 10982 10983// CHECK-LABEL: test_vsub_u32 10984// CHECK: vsub.i32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 10985uint32x2_t test_vsub_u32(uint32x2_t a, uint32x2_t b) { 10986 return vsub_u32(a, b); 10987} 10988 10989// CHECK-LABEL: test_vsub_u64 10990// CHECK: vsub.i64 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 10991uint64x1_t test_vsub_u64(uint64x1_t a, uint64x1_t b) { 10992 return vsub_u64(a, b); 10993} 10994 10995// CHECK-LABEL: test_vsubq_s8 10996// CHECK: vsub.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 10997int8x16_t test_vsubq_s8(int8x16_t a, int8x16_t b) { 10998 return vsubq_s8(a, b); 10999} 11000 11001// CHECK-LABEL: test_vsubq_s16 11002// CHECK: vsub.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11003int16x8_t test_vsubq_s16(int16x8_t a, int16x8_t b) { 11004 return vsubq_s16(a, b); 11005} 11006 11007// CHECK-LABEL: test_vsubq_s32 11008// CHECK: vsub.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11009int32x4_t test_vsubq_s32(int32x4_t a, int32x4_t b) { 11010 return vsubq_s32(a, b); 11011} 11012 11013// CHECK-LABEL: test_vsubq_s64 11014// CHECK: vsub.i64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11015int64x2_t test_vsubq_s64(int64x2_t a, int64x2_t b) { 11016 return vsubq_s64(a, b); 11017} 11018 11019// CHECK-LABEL: test_vsubq_f32 11020// CHECK: vsub.f32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11021float32x4_t test_vsubq_f32(float32x4_t a, float32x4_t b) { 11022 return vsubq_f32(a, b); 11023} 11024 11025// CHECK-LABEL: test_vsubq_u8 11026// CHECK: vsub.i8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11027uint8x16_t test_vsubq_u8(uint8x16_t a, uint8x16_t b) { 11028 return vsubq_u8(a, b); 11029} 11030 11031// CHECK-LABEL: test_vsubq_u16 11032// CHECK: vsub.i16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11033uint16x8_t test_vsubq_u16(uint16x8_t a, uint16x8_t b) { 11034 return vsubq_u16(a, b); 11035} 11036 11037// CHECK-LABEL: test_vsubq_u32 11038// CHECK: vsub.i32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11039uint32x4_t test_vsubq_u32(uint32x4_t a, uint32x4_t b) { 11040 return vsubq_u32(a, b); 11041} 11042 11043// CHECK-LABEL: test_vsubq_u64 11044// CHECK: vsub.i64 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11045uint64x2_t test_vsubq_u64(uint64x2_t a, uint64x2_t b) { 11046 return vsubq_u64(a, b); 11047} 11048 11049 11050// CHECK-LABEL: test_vsubhn_s16 11051// CHECK: vsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11052int8x8_t test_vsubhn_s16(int16x8_t a, int16x8_t b) { 11053 return vsubhn_s16(a, b); 11054} 11055 11056// CHECK-LABEL: test_vsubhn_s32 11057// CHECK: vsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11058int16x4_t test_vsubhn_s32(int32x4_t a, int32x4_t b) { 11059 return vsubhn_s32(a, b); 11060} 11061 11062// CHECK-LABEL: test_vsubhn_s64 11063// CHECK: vsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11064int32x2_t test_vsubhn_s64(int64x2_t a, int64x2_t b) { 11065 return vsubhn_s64(a, b); 11066} 11067 11068// CHECK-LABEL: test_vsubhn_u16 11069// CHECK: vsubhn.i16 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11070uint8x8_t test_vsubhn_u16(uint16x8_t a, uint16x8_t b) { 11071 return vsubhn_u16(a, b); 11072} 11073 11074// CHECK-LABEL: test_vsubhn_u32 11075// CHECK: vsubhn.i32 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11076uint16x4_t test_vsubhn_u32(uint32x4_t a, uint32x4_t b) { 11077 return vsubhn_u32(a, b); 11078} 11079 11080// CHECK-LABEL: test_vsubhn_u64 11081// CHECK: vsubhn.i64 d{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11082uint32x2_t test_vsubhn_u64(uint64x2_t a, uint64x2_t b) { 11083 return vsubhn_u64(a, b); 11084} 11085 11086 11087// CHECK-LABEL: test_vsubl_s8 11088// CHECK: vsubl.s8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11089int16x8_t test_vsubl_s8(int8x8_t a, int8x8_t b) { 11090 return vsubl_s8(a, b); 11091} 11092 11093// CHECK-LABEL: test_vsubl_s16 11094// CHECK: vsubl.s16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11095int32x4_t test_vsubl_s16(int16x4_t a, int16x4_t b) { 11096 return vsubl_s16(a, b); 11097} 11098 11099// CHECK-LABEL: test_vsubl_s32 11100// CHECK: vsubl.s32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11101int64x2_t test_vsubl_s32(int32x2_t a, int32x2_t b) { 11102 return vsubl_s32(a, b); 11103} 11104 11105// CHECK-LABEL: test_vsubl_u8 11106// CHECK: vsubl.u8 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11107uint16x8_t test_vsubl_u8(uint8x8_t a, uint8x8_t b) { 11108 return vsubl_u8(a, b); 11109} 11110 11111// CHECK-LABEL: test_vsubl_u16 11112// CHECK: vsubl.u16 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11113uint32x4_t test_vsubl_u16(uint16x4_t a, uint16x4_t b) { 11114 return vsubl_u16(a, b); 11115} 11116 11117// CHECK-LABEL: test_vsubl_u32 11118// CHECK: vsubl.u32 q{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11119uint64x2_t test_vsubl_u32(uint32x2_t a, uint32x2_t b) { 11120 return vsubl_u32(a, b); 11121} 11122 11123 11124// CHECK-LABEL: test_vsubw_s8 11125// CHECK: vsubw.s8 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}} 11126int16x8_t test_vsubw_s8(int16x8_t a, int8x8_t b) { 11127 return vsubw_s8(a, b); 11128} 11129 11130// CHECK-LABEL: test_vsubw_s16 11131// CHECK: vsubw.s16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}} 11132int32x4_t test_vsubw_s16(int32x4_t a, int16x4_t b) { 11133 return vsubw_s16(a, b); 11134} 11135 11136// CHECK-LABEL: test_vsubw_s32 11137// CHECK: vsubw.s32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}} 11138int64x2_t test_vsubw_s32(int64x2_t a, int32x2_t b) { 11139 return vsubw_s32(a, b); 11140} 11141 11142// CHECK-LABEL: test_vsubw_u8 11143// CHECK: vsubw.u8 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}} 11144uint16x8_t test_vsubw_u8(uint16x8_t a, uint8x8_t b) { 11145 return vsubw_u8(a, b); 11146} 11147 11148// CHECK-LABEL: test_vsubw_u16 11149// CHECK: vsubw.u16 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}} 11150uint32x4_t test_vsubw_u16(uint32x4_t a, uint16x4_t b) { 11151 return vsubw_u16(a, b); 11152} 11153 11154// CHECK-LABEL: test_vsubw_u32 11155// CHECK: vsubw.u32 q{{[0-9]+}}, q{{[0-9]+}}, d{{[0-9]+}} 11156uint64x2_t test_vsubw_u32(uint64x2_t a, uint32x2_t b) { 11157 return vsubw_u32(a, b); 11158} 11159 11160 11161// CHECK-LABEL: test_vtbl1_u8 11162// CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}} 11163uint8x8_t test_vtbl1_u8(uint8x8_t a, uint8x8_t b) { 11164 return vtbl1_u8(a, b); 11165} 11166 11167// CHECK-LABEL: test_vtbl1_s8 11168// CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}} 11169int8x8_t test_vtbl1_s8(int8x8_t a, int8x8_t b) { 11170 return vtbl1_s8(a, b); 11171} 11172 11173// CHECK-LABEL: test_vtbl1_p8 11174// CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}} 11175poly8x8_t test_vtbl1_p8(poly8x8_t a, uint8x8_t b) { 11176 return vtbl1_p8(a, b); 11177} 11178 11179 11180// CHECK-LABEL: test_vtbl2_u8 11181// CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11182uint8x8_t test_vtbl2_u8(uint8x8x2_t a, uint8x8_t b) { 11183 return vtbl2_u8(a, b); 11184} 11185 11186// CHECK-LABEL: test_vtbl2_s8 11187// CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11188int8x8_t test_vtbl2_s8(int8x8x2_t a, int8x8_t b) { 11189 return vtbl2_s8(a, b); 11190} 11191 11192// CHECK-LABEL: test_vtbl2_p8 11193// CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11194poly8x8_t test_vtbl2_p8(poly8x8x2_t a, uint8x8_t b) { 11195 return vtbl2_p8(a, b); 11196} 11197 11198 11199// CHECK-LABEL: test_vtbl3_u8 11200// CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11201uint8x8_t test_vtbl3_u8(uint8x8x3_t a, uint8x8_t b) { 11202 return vtbl3_u8(a, b); 11203} 11204 11205// CHECK-LABEL: test_vtbl3_s8 11206// CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11207int8x8_t test_vtbl3_s8(int8x8x3_t a, int8x8_t b) { 11208 return vtbl3_s8(a, b); 11209} 11210 11211// CHECK-LABEL: test_vtbl3_p8 11212// CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11213poly8x8_t test_vtbl3_p8(poly8x8x3_t a, uint8x8_t b) { 11214 return vtbl3_p8(a, b); 11215} 11216 11217 11218// CHECK-LABEL: test_vtbl4_u8 11219// CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11220uint8x8_t test_vtbl4_u8(uint8x8x4_t a, uint8x8_t b) { 11221 return vtbl4_u8(a, b); 11222} 11223 11224// CHECK-LABEL: test_vtbl4_s8 11225// CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11226int8x8_t test_vtbl4_s8(int8x8x4_t a, int8x8_t b) { 11227 return vtbl4_s8(a, b); 11228} 11229 11230// CHECK-LABEL: test_vtbl4_p8 11231// CHECK: vtbl.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11232poly8x8_t test_vtbl4_p8(poly8x8x4_t a, uint8x8_t b) { 11233 return vtbl4_p8(a, b); 11234} 11235 11236 11237// CHECK-LABEL: test_vtbx1_u8 11238// CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}} 11239uint8x8_t test_vtbx1_u8(uint8x8_t a, uint8x8_t b, uint8x8_t c) { 11240 return vtbx1_u8(a, b, c); 11241} 11242 11243// CHECK-LABEL: test_vtbx1_s8 11244// CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}} 11245int8x8_t test_vtbx1_s8(int8x8_t a, int8x8_t b, int8x8_t c) { 11246 return vtbx1_s8(a, b, c); 11247} 11248 11249// CHECK-LABEL: test_vtbx1_p8 11250// CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}}, d{{[0-9]+}} 11251poly8x8_t test_vtbx1_p8(poly8x8_t a, poly8x8_t b, uint8x8_t c) { 11252 return vtbx1_p8(a, b, c); 11253} 11254 11255 11256// CHECK-LABEL: test_vtbx2_u8 11257// CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11258uint8x8_t test_vtbx2_u8(uint8x8_t a, uint8x8x2_t b, uint8x8_t c) { 11259 return vtbx2_u8(a, b, c); 11260} 11261 11262// CHECK-LABEL: test_vtbx2_s8 11263// CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11264int8x8_t test_vtbx2_s8(int8x8_t a, int8x8x2_t b, int8x8_t c) { 11265 return vtbx2_s8(a, b, c); 11266} 11267 11268// CHECK-LABEL: test_vtbx2_p8 11269// CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11270poly8x8_t test_vtbx2_p8(poly8x8_t a, poly8x8x2_t b, uint8x8_t c) { 11271 return vtbx2_p8(a, b, c); 11272} 11273 11274 11275// CHECK-LABEL: test_vtbx3_u8 11276// CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11277uint8x8_t test_vtbx3_u8(uint8x8_t a, uint8x8x3_t b, uint8x8_t c) { 11278 return vtbx3_u8(a, b, c); 11279} 11280 11281// CHECK-LABEL: test_vtbx3_s8 11282// CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11283int8x8_t test_vtbx3_s8(int8x8_t a, int8x8x3_t b, int8x8_t c) { 11284 return vtbx3_s8(a, b, c); 11285} 11286 11287// CHECK-LABEL: test_vtbx3_p8 11288// CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11289poly8x8_t test_vtbx3_p8(poly8x8_t a, poly8x8x3_t b, uint8x8_t c) { 11290 return vtbx3_p8(a, b, c); 11291} 11292 11293 11294// CHECK-LABEL: test_vtbx4_u8 11295// CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11296uint8x8_t test_vtbx4_u8(uint8x8_t a, uint8x8x4_t b, uint8x8_t c) { 11297 return vtbx4_u8(a, b, c); 11298} 11299 11300// CHECK-LABEL: test_vtbx4_s8 11301// CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11302int8x8_t test_vtbx4_s8(int8x8_t a, int8x8x4_t b, int8x8_t c) { 11303 return vtbx4_s8(a, b, c); 11304} 11305 11306// CHECK-LABEL: test_vtbx4_p8 11307// CHECK: vtbx.8 d{{[0-9]+}}, {d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}}, d{{[0-9]+}} 11308poly8x8_t test_vtbx4_p8(poly8x8_t a, poly8x8x4_t b, uint8x8_t c) { 11309 return vtbx4_p8(a, b, c); 11310} 11311 11312 11313// CHECK-LABEL: test_vtrn_s8 11314// CHECK: vtrn.8 d{{[0-9]+}}, d{{[0-9]+}} 11315int8x8x2_t test_vtrn_s8(int8x8_t a, int8x8_t b) { 11316 return vtrn_s8(a, b); 11317} 11318 11319// CHECK-LABEL: test_vtrn_s16 11320// CHECK: vtrn.16 d{{[0-9]+}}, d{{[0-9]+}} 11321int16x4x2_t test_vtrn_s16(int16x4_t a, int16x4_t b) { 11322 return vtrn_s16(a, b); 11323} 11324 11325// CHECK-LABEL: test_vtrn_s32 11326// CHECK: vtrn.32 d{{[0-9]+}}, d{{[0-9]+}} 11327int32x2x2_t test_vtrn_s32(int32x2_t a, int32x2_t b) { 11328 return vtrn_s32(a, b); 11329} 11330 11331// CHECK-LABEL: test_vtrn_u8 11332// CHECK: vtrn.8 d{{[0-9]+}}, d{{[0-9]+}} 11333uint8x8x2_t test_vtrn_u8(uint8x8_t a, uint8x8_t b) { 11334 return vtrn_u8(a, b); 11335} 11336 11337// CHECK-LABEL: test_vtrn_u16 11338// CHECK: vtrn.16 d{{[0-9]+}}, d{{[0-9]+}} 11339uint16x4x2_t test_vtrn_u16(uint16x4_t a, uint16x4_t b) { 11340 return vtrn_u16(a, b); 11341} 11342 11343// CHECK-LABEL: test_vtrn_u32 11344// CHECK: vtrn.32 d{{[0-9]+}}, d{{[0-9]+}} 11345uint32x2x2_t test_vtrn_u32(uint32x2_t a, uint32x2_t b) { 11346 return vtrn_u32(a, b); 11347} 11348 11349// CHECK-LABEL: test_vtrn_f32 11350// CHECK: vtrn.32 d{{[0-9]+}}, d{{[0-9]+}} 11351float32x2x2_t test_vtrn_f32(float32x2_t a, float32x2_t b) { 11352 return vtrn_f32(a, b); 11353} 11354 11355// CHECK-LABEL: test_vtrn_p8 11356// CHECK: vtrn.8 d{{[0-9]+}}, d{{[0-9]+}} 11357poly8x8x2_t test_vtrn_p8(poly8x8_t a, poly8x8_t b) { 11358 return vtrn_p8(a, b); 11359} 11360 11361// CHECK-LABEL: test_vtrn_p16 11362// CHECK: vtrn.16 d{{[0-9]+}}, d{{[0-9]+}} 11363poly16x4x2_t test_vtrn_p16(poly16x4_t a, poly16x4_t b) { 11364 return vtrn_p16(a, b); 11365} 11366 11367// CHECK-LABEL: test_vtrnq_s8 11368// CHECK: vtrn.8 q{{[0-9]+}}, q{{[0-9]+}} 11369int8x16x2_t test_vtrnq_s8(int8x16_t a, int8x16_t b) { 11370 return vtrnq_s8(a, b); 11371} 11372 11373// CHECK-LABEL: test_vtrnq_s16 11374// CHECK: vtrn.16 q{{[0-9]+}}, q{{[0-9]+}} 11375int16x8x2_t test_vtrnq_s16(int16x8_t a, int16x8_t b) { 11376 return vtrnq_s16(a, b); 11377} 11378 11379// CHECK-LABEL: test_vtrnq_s32 11380// CHECK: vtrn.32 q{{[0-9]+}}, q{{[0-9]+}} 11381int32x4x2_t test_vtrnq_s32(int32x4_t a, int32x4_t b) { 11382 return vtrnq_s32(a, b); 11383} 11384 11385// CHECK-LABEL: test_vtrnq_u8 11386// CHECK: vtrn.8 q{{[0-9]+}}, q{{[0-9]+}} 11387uint8x16x2_t test_vtrnq_u8(uint8x16_t a, uint8x16_t b) { 11388 return vtrnq_u8(a, b); 11389} 11390 11391// CHECK-LABEL: test_vtrnq_u16 11392// CHECK: vtrn.16 q{{[0-9]+}}, q{{[0-9]+}} 11393uint16x8x2_t test_vtrnq_u16(uint16x8_t a, uint16x8_t b) { 11394 return vtrnq_u16(a, b); 11395} 11396 11397// CHECK-LABEL: test_vtrnq_u32 11398// CHECK: vtrn.32 q{{[0-9]+}}, q{{[0-9]+}} 11399uint32x4x2_t test_vtrnq_u32(uint32x4_t a, uint32x4_t b) { 11400 return vtrnq_u32(a, b); 11401} 11402 11403// CHECK-LABEL: test_vtrnq_f32 11404// CHECK: vtrn.32 q{{[0-9]+}}, q{{[0-9]+}} 11405float32x4x2_t test_vtrnq_f32(float32x4_t a, float32x4_t b) { 11406 return vtrnq_f32(a, b); 11407} 11408 11409// CHECK-LABEL: test_vtrnq_p8 11410// CHECK: vtrn.8 q{{[0-9]+}}, q{{[0-9]+}} 11411poly8x16x2_t test_vtrnq_p8(poly8x16_t a, poly8x16_t b) { 11412 return vtrnq_p8(a, b); 11413} 11414 11415// CHECK-LABEL: test_vtrnq_p16 11416// CHECK: vtrn.16 q{{[0-9]+}}, q{{[0-9]+}} 11417poly16x8x2_t test_vtrnq_p16(poly16x8_t a, poly16x8_t b) { 11418 return vtrnq_p16(a, b); 11419} 11420 11421 11422// CHECK-LABEL: test_vtst_s8 11423// CHECK: vtst.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11424uint8x8_t test_vtst_s8(int8x8_t a, int8x8_t b) { 11425 return vtst_s8(a, b); 11426} 11427 11428// CHECK-LABEL: test_vtst_s16 11429// CHECK: vtst.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11430uint16x4_t test_vtst_s16(int16x4_t a, int16x4_t b) { 11431 return vtst_s16(a, b); 11432} 11433 11434// CHECK-LABEL: test_vtst_s32 11435// CHECK: vtst.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11436uint32x2_t test_vtst_s32(int32x2_t a, int32x2_t b) { 11437 return vtst_s32(a, b); 11438} 11439 11440// CHECK-LABEL: test_vtst_u8 11441// CHECK: vtst.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11442uint8x8_t test_vtst_u8(uint8x8_t a, uint8x8_t b) { 11443 return vtst_u8(a, b); 11444} 11445 11446// CHECK-LABEL: test_vtst_u16 11447// CHECK: vtst.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11448uint16x4_t test_vtst_u16(uint16x4_t a, uint16x4_t b) { 11449 return vtst_u16(a, b); 11450} 11451 11452// CHECK-LABEL: test_vtst_u32 11453// CHECK: vtst.32 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11454uint32x2_t test_vtst_u32(uint32x2_t a, uint32x2_t b) { 11455 return vtst_u32(a, b); 11456} 11457 11458// CHECK-LABEL: test_vtst_p8 11459// CHECK: vtst.8 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11460uint8x8_t test_vtst_p8(poly8x8_t a, poly8x8_t b) { 11461 return vtst_p8(a, b); 11462} 11463 11464// CHECK-LABEL: test_vtst_p16 11465// CHECK: vtst.16 d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11466uint16x4_t test_vtst_p16(poly16x4_t a, poly16x4_t b) { 11467 return vtst_p16(a, b); 11468} 11469 11470// CHECK-LABEL: test_vtstq_s8 11471// CHECK: vtst.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11472uint8x16_t test_vtstq_s8(int8x16_t a, int8x16_t b) { 11473 return vtstq_s8(a, b); 11474} 11475 11476// CHECK-LABEL: test_vtstq_s16 11477// CHECK: vtst.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11478uint16x8_t test_vtstq_s16(int16x8_t a, int16x8_t b) { 11479 return vtstq_s16(a, b); 11480} 11481 11482// CHECK-LABEL: test_vtstq_s32 11483// CHECK: vtst.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11484uint32x4_t test_vtstq_s32(int32x4_t a, int32x4_t b) { 11485 return vtstq_s32(a, b); 11486} 11487 11488// CHECK-LABEL: test_vtstq_u8 11489// CHECK: vtst.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11490uint8x16_t test_vtstq_u8(uint8x16_t a, uint8x16_t b) { 11491 return vtstq_u8(a, b); 11492} 11493 11494// CHECK-LABEL: test_vtstq_u16 11495// CHECK: vtst.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11496uint16x8_t test_vtstq_u16(uint16x8_t a, uint16x8_t b) { 11497 return vtstq_u16(a, b); 11498} 11499 11500// CHECK-LABEL: test_vtstq_u32 11501// CHECK: vtst.32 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11502uint32x4_t test_vtstq_u32(uint32x4_t a, uint32x4_t b) { 11503 return vtstq_u32(a, b); 11504} 11505 11506// CHECK-LABEL: test_vtstq_p8 11507// CHECK: vtst.8 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11508uint8x16_t test_vtstq_p8(poly8x16_t a, poly8x16_t b) { 11509 return vtstq_p8(a, b); 11510} 11511 11512// CHECK-LABEL: test_vtstq_p16 11513// CHECK: vtst.16 q{{[0-9]+}}, q{{[0-9]+}}, q{{[0-9]+}} 11514uint16x8_t test_vtstq_p16(poly16x8_t a, poly16x8_t b) { 11515 return vtstq_p16(a, b); 11516} 11517 11518 11519// CHECK-LABEL: test_vuzp_s8 11520// CHECK: vuzp.8 d{{[0-9]+}}, d{{[0-9]+}} 11521int8x8x2_t test_vuzp_s8(int8x8_t a, int8x8_t b) { 11522 return vuzp_s8(a, b); 11523} 11524 11525// CHECK-LABEL: test_vuzp_s16 11526// CHECK: vuzp.16 d{{[0-9]+}}, d{{[0-9]+}} 11527int16x4x2_t test_vuzp_s16(int16x4_t a, int16x4_t b) { 11528 return vuzp_s16(a, b); 11529} 11530 11531// CHECK-LABEL: test_vuzp_s32 11532// CHECK: {{vtrn|vuzp}}.32 d{{[0-9]+}}, d{{[0-9]+}} 11533int32x2x2_t test_vuzp_s32(int32x2_t a, int32x2_t b) { 11534 return vuzp_s32(a, b); 11535} 11536 11537// CHECK-LABEL: test_vuzp_u8 11538// CHECK: vuzp.8 d{{[0-9]+}}, d{{[0-9]+}} 11539uint8x8x2_t test_vuzp_u8(uint8x8_t a, uint8x8_t b) { 11540 return vuzp_u8(a, b); 11541} 11542 11543// CHECK-LABEL: test_vuzp_u16 11544// CHECK: vuzp.16 d{{[0-9]+}}, d{{[0-9]+}} 11545uint16x4x2_t test_vuzp_u16(uint16x4_t a, uint16x4_t b) { 11546 return vuzp_u16(a, b); 11547} 11548 11549// CHECK-LABEL: test_vuzp_u32 11550// CHECK: {{vtrn|vuzp}}.32 d{{[0-9]+}}, d{{[0-9]+}} 11551uint32x2x2_t test_vuzp_u32(uint32x2_t a, uint32x2_t b) { 11552 return vuzp_u32(a, b); 11553} 11554 11555// CHECK-LABEL: test_vuzp_f32 11556// CHECK: {{vtrn|vuzp}}.32 d{{[0-9]+}}, d{{[0-9]+}} 11557float32x2x2_t test_vuzp_f32(float32x2_t a, float32x2_t b) { 11558 return vuzp_f32(a, b); 11559} 11560 11561// CHECK-LABEL: test_vuzp_p8 11562// CHECK: vuzp.8 d{{[0-9]+}}, d{{[0-9]+}} 11563poly8x8x2_t test_vuzp_p8(poly8x8_t a, poly8x8_t b) { 11564 return vuzp_p8(a, b); 11565} 11566 11567// CHECK-LABEL: test_vuzp_p16 11568// CHECK: vuzp.16 d{{[0-9]+}}, d{{[0-9]+}} 11569poly16x4x2_t test_vuzp_p16(poly16x4_t a, poly16x4_t b) { 11570 return vuzp_p16(a, b); 11571} 11572 11573// CHECK-LABEL: test_vuzpq_s8 11574// CHECK: vuzp.8 q{{[0-9]+}}, q{{[0-9]+}} 11575int8x16x2_t test_vuzpq_s8(int8x16_t a, int8x16_t b) { 11576 return vuzpq_s8(a, b); 11577} 11578 11579// CHECK-LABEL: test_vuzpq_s16 11580// CHECK: vuzp.16 q{{[0-9]+}}, q{{[0-9]+}} 11581int16x8x2_t test_vuzpq_s16(int16x8_t a, int16x8_t b) { 11582 return vuzpq_s16(a, b); 11583} 11584 11585// CHECK-LABEL: test_vuzpq_s32 11586// CHECK: {{vtrn|vuzp}}.32 q{{[0-9]+}}, q{{[0-9]+}} 11587int32x4x2_t test_vuzpq_s32(int32x4_t a, int32x4_t b) { 11588 return vuzpq_s32(a, b); 11589} 11590 11591// CHECK-LABEL: test_vuzpq_u8 11592// CHECK: vuzp.8 q{{[0-9]+}}, q{{[0-9]+}} 11593uint8x16x2_t test_vuzpq_u8(uint8x16_t a, uint8x16_t b) { 11594 return vuzpq_u8(a, b); 11595} 11596 11597// CHECK-LABEL: test_vuzpq_u16 11598// CHECK: vuzp.16 q{{[0-9]+}}, q{{[0-9]+}} 11599uint16x8x2_t test_vuzpq_u16(uint16x8_t a, uint16x8_t b) { 11600 return vuzpq_u16(a, b); 11601} 11602 11603// CHECK-LABEL: test_vuzpq_u32 11604// CHECK: {{vtrn|vuzp}}.32 q{{[0-9]+}}, q{{[0-9]+}} 11605uint32x4x2_t test_vuzpq_u32(uint32x4_t a, uint32x4_t b) { 11606 return vuzpq_u32(a, b); 11607} 11608 11609// CHECK-LABEL: test_vuzpq_f32 11610// CHECK: {{vtrn|vuzp}}.32 q{{[0-9]+}}, q{{[0-9]+}} 11611float32x4x2_t test_vuzpq_f32(float32x4_t a, float32x4_t b) { 11612 return vuzpq_f32(a, b); 11613} 11614 11615// CHECK-LABEL: test_vuzpq_p8 11616// CHECK: vuzp.8 q{{[0-9]+}}, q{{[0-9]+}} 11617poly8x16x2_t test_vuzpq_p8(poly8x16_t a, poly8x16_t b) { 11618 return vuzpq_p8(a, b); 11619} 11620 11621// CHECK-LABEL: test_vuzpq_p16 11622// CHECK: vuzp.16 q{{[0-9]+}}, q{{[0-9]+}} 11623poly16x8x2_t test_vuzpq_p16(poly16x8_t a, poly16x8_t b) { 11624 return vuzpq_p16(a, b); 11625} 11626 11627 11628// CHECK-LABEL: test_vzip_s8 11629// CHECK: vzip.8 d{{[0-9]+}}, d{{[0-9]+}} 11630int8x8x2_t test_vzip_s8(int8x8_t a, int8x8_t b) { 11631 return vzip_s8(a, b); 11632} 11633 11634// CHECK-LABEL: test_vzip_s16 11635// CHECK: vzip.16 d{{[0-9]+}}, d{{[0-9]+}} 11636int16x4x2_t test_vzip_s16(int16x4_t a, int16x4_t b) { 11637 return vzip_s16(a, b); 11638} 11639 11640// CHECK-LABEL: test_vzip_s32 11641// CHECK: {{vtrn|vzip}}.32 d{{[0-9]+}}, d{{[0-9]+}} 11642int32x2x2_t test_vzip_s32(int32x2_t a, int32x2_t b) { 11643 return vzip_s32(a, b); 11644} 11645 11646// CHECK-LABEL: test_vzip_u8 11647// CHECK: vzip.8 d{{[0-9]+}}, d{{[0-9]+}} 11648uint8x8x2_t test_vzip_u8(uint8x8_t a, uint8x8_t b) { 11649 return vzip_u8(a, b); 11650} 11651 11652// CHECK-LABEL: test_vzip_u16 11653// CHECK: vzip.16 d{{[0-9]+}}, d{{[0-9]+}} 11654uint16x4x2_t test_vzip_u16(uint16x4_t a, uint16x4_t b) { 11655 return vzip_u16(a, b); 11656} 11657 11658// CHECK-LABEL: test_vzip_u32 11659// CHECK: {{vtrn|vzip}}.32 d{{[0-9]+}}, d{{[0-9]+}} 11660uint32x2x2_t test_vzip_u32(uint32x2_t a, uint32x2_t b) { 11661 return vzip_u32(a, b); 11662} 11663 11664// CHECK-LABEL: test_vzip_f32 11665// CHECK: {{vtrn|vzip}}.32 d{{[0-9]+}}, d{{[0-9]+}} 11666float32x2x2_t test_vzip_f32(float32x2_t a, float32x2_t b) { 11667 return vzip_f32(a, b); 11668} 11669 11670// CHECK-LABEL: test_vzip_p8 11671// CHECK: vzip.8 d{{[0-9]+}}, d{{[0-9]+}} 11672poly8x8x2_t test_vzip_p8(poly8x8_t a, poly8x8_t b) { 11673 return vzip_p8(a, b); 11674} 11675 11676// CHECK-LABEL: test_vzip_p16 11677// CHECK: vzip.16 d{{[0-9]+}}, d{{[0-9]+}} 11678poly16x4x2_t test_vzip_p16(poly16x4_t a, poly16x4_t b) { 11679 return vzip_p16(a, b); 11680} 11681 11682// CHECK-LABEL: test_vzipq_s8 11683// CHECK: vzip.8 q{{[0-9]+}}, q{{[0-9]+}} 11684int8x16x2_t test_vzipq_s8(int8x16_t a, int8x16_t b) { 11685 return vzipq_s8(a, b); 11686} 11687 11688// CHECK-LABEL: test_vzipq_s16 11689// CHECK: vzip.16 q{{[0-9]+}}, q{{[0-9]+}} 11690int16x8x2_t test_vzipq_s16(int16x8_t a, int16x8_t b) { 11691 return vzipq_s16(a, b); 11692} 11693 11694// CHECK-LABEL: test_vzipq_s32 11695// CHECK: {{vtrn|vzip}}.32 q{{[0-9]+}}, q{{[0-9]+}} 11696int32x4x2_t test_vzipq_s32(int32x4_t a, int32x4_t b) { 11697 return vzipq_s32(a, b); 11698} 11699 11700// CHECK-LABEL: test_vzipq_u8 11701// CHECK: vzip.8 q{{[0-9]+}}, q{{[0-9]+}} 11702uint8x16x2_t test_vzipq_u8(uint8x16_t a, uint8x16_t b) { 11703 return vzipq_u8(a, b); 11704} 11705 11706// CHECK-LABEL: test_vzipq_u16 11707// CHECK: vzip.16 q{{[0-9]+}}, q{{[0-9]+}} 11708uint16x8x2_t test_vzipq_u16(uint16x8_t a, uint16x8_t b) { 11709 return vzipq_u16(a, b); 11710} 11711 11712// CHECK-LABEL: test_vzipq_u32 11713// CHECK: {{vtrn|vzip}}.32 q{{[0-9]+}}, q{{[0-9]+}} 11714uint32x4x2_t test_vzipq_u32(uint32x4_t a, uint32x4_t b) { 11715 return vzipq_u32(a, b); 11716} 11717 11718// CHECK-LABEL: test_vzipq_f32 11719// CHECK: {{vtrn|vzip}}.32 q{{[0-9]+}}, q{{[0-9]+}} 11720float32x4x2_t test_vzipq_f32(float32x4_t a, float32x4_t b) { 11721 return vzipq_f32(a, b); 11722} 11723 11724// CHECK-LABEL: test_vzipq_p8 11725// CHECK: vzip.8 q{{[0-9]+}}, q{{[0-9]+}} 11726poly8x16x2_t test_vzipq_p8(poly8x16_t a, poly8x16_t b) { 11727 return vzipq_p8(a, b); 11728} 11729 11730// CHECK-LABEL: test_vzipq_p16 11731// CHECK: vzip.16 q{{[0-9]+}}, q{{[0-9]+}} 11732poly16x8x2_t test_vzipq_p16(poly16x8_t a, poly16x8_t b) { 11733 return vzipq_p16(a, b); 11734} 11735 11736 11737