1// REQUIRES: aarch64-registered-target 2// RUN: %clang_cc1 -triple arm64-none-linux-gnu -target-feature +neon \ 3// RUN: -ffp-contract=fast -S -O3 -o - %s | FileCheck %s 4 5// Test new aarch64 intrinsics and types 6 7#include <arm_neon.h> 8 9// CHECK-LABEL: test_vceqz_s8 10// CHECK: cmeq {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #{{0x0|0}} 11uint8x8_t test_vceqz_s8(int8x8_t a) { 12 return vceqz_s8(a); 13} 14 15// CHECK-LABEL: test_vceqz_s16 16// CHECK: cmeq {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #{{0x0|0}} 17uint16x4_t test_vceqz_s16(int16x4_t a) { 18 return vceqz_s16(a); 19} 20 21// CHECK-LABEL: test_vceqz_s32 22// CHECK: cmeq {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #{{0x0|0}} 23uint32x2_t test_vceqz_s32(int32x2_t a) { 24 return vceqz_s32(a); 25} 26 27// CHECK-LABEL: test_vceqz_s64 28// CHECK: cmeq {{d[0-9]+}}, {{d[0-9]+}}, #{{0x0|0}} 29uint64x1_t test_vceqz_s64(int64x1_t a) { 30 return vceqz_s64(a); 31} 32 33// CHECK-LABEL: test_vceqz_u64 34// CHECK: cmeq {{d[0-9]+}}, {{d[0-9]+}}, #{{0x0|0}} 35uint64x1_t test_vceqz_u64(uint64x1_t a) { 36 return vceqz_u64(a); 37} 38 39// CHECK-LABEL: test_vceqz_p64 40// CHECK: cmeq {{d[0-9]+}}, {{d[0-9]+}}, #{{0x0|0}} 41uint64x1_t test_vceqz_p64(poly64x1_t a) { 42 return vceqz_p64(a); 43} 44 45// CHECK-LABEL: test_vceqzq_s8 46// CHECK: cmeq {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #{{0x0|0}} 47uint8x16_t test_vceqzq_s8(int8x16_t a) { 48 return vceqzq_s8(a); 49} 50 51// CHECK-LABEL: test_vceqzq_s16 52// CHECK: cmeq {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #{{0x0|0}} 53uint16x8_t test_vceqzq_s16(int16x8_t a) { 54 return vceqzq_s16(a); 55} 56 57// CHECK-LABEL: test_vceqzq_s32 58// CHECK: cmeq {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #{{0x0|0}} 59uint32x4_t test_vceqzq_s32(int32x4_t a) { 60 return vceqzq_s32(a); 61} 62 63// CHECK-LABEL: test_vceqzq_s64 64// CHECK: cmeq {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #{{0x0|0}} 65uint64x2_t test_vceqzq_s64(int64x2_t a) { 66 return vceqzq_s64(a); 67} 68 69// CHECK-LABEL: test_vceqz_u8 70// CHECK: cmeq {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #{{0x0|0}} 71uint8x8_t test_vceqz_u8(uint8x8_t a) { 72 return vceqz_u8(a); 73} 74 75// CHECK-LABEL: test_vceqz_u16 76// CHECK: cmeq {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #{{0x0|0}} 77uint16x4_t test_vceqz_u16(uint16x4_t a) { 78 return vceqz_u16(a); 79} 80 81// CHECK-LABEL: test_vceqz_u32 82// CHECK: cmeq {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #{{0x0|0}} 83uint32x2_t test_vceqz_u32(uint32x2_t a) { 84 return vceqz_u32(a); 85} 86 87// CHECK-LABEL: test_vceqzq_u8 88// CHECK: cmeq {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #{{0x0|0}} 89uint8x16_t test_vceqzq_u8(uint8x16_t a) { 90 return vceqzq_u8(a); 91} 92 93// CHECK-LABEL: test_vceqzq_u16 94// CHECK: cmeq {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #{{0x0|0}} 95uint16x8_t test_vceqzq_u16(uint16x8_t a) { 96 return vceqzq_u16(a); 97} 98 99// CHECK-LABEL: test_vceqzq_u32 100// CHECK: cmeq {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #{{0x0|0}} 101uint32x4_t test_vceqzq_u32(uint32x4_t a) { 102 return vceqzq_u32(a); 103} 104 105// CHECK-LABEL: test_vceqzq_u64 106// CHECK: cmeq {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #{{0x0|0}} 107uint64x2_t test_vceqzq_u64(uint64x2_t a) { 108 return vceqzq_u64(a); 109} 110 111// CHECK-LABEL: test_vceqz_f32 112// CHECK: fcmeq {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #0 113uint32x2_t test_vceqz_f32(float32x2_t a) { 114 return vceqz_f32(a); 115} 116 117// CHECK-LABEL: test_vceqz_f64 118// CHECK: fcmeq {{d[0-9]+}}, {{d[0-9]+}}, #0 119uint64x1_t test_vceqz_f64(float64x1_t a) { 120 return vceqz_f64(a); 121} 122 123// CHECK-LABEL: test_vceqzq_f32 124// CHECK: fcmeq {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #0 125uint32x4_t test_vceqzq_f32(float32x4_t a) { 126 return vceqzq_f32(a); 127} 128 129// CHECK-LABEL: test_vceqz_p8 130// CHECK: cmeq {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #{{0x0|0}} 131uint8x8_t test_vceqz_p8(poly8x8_t a) { 132 return vceqz_p8(a); 133} 134 135// CHECK-LABEL: test_vceqzq_p8 136// CHECK: cmeq {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #{{0x0|0}} 137uint8x16_t test_vceqzq_p8(poly8x16_t a) { 138 return vceqzq_p8(a); 139} 140 141// CHECK-LABEL: test_vceqz_p16 142// CHECK: cmeq {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #{{0x0|0}} 143uint16x4_t test_vceqz_p16(poly16x4_t a) { 144 return vceqz_p16(a); 145} 146 147// CHECK-LABEL: test_vceqzq_p16 148// CHECK: cmeq {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #{{0x0|0}} 149uint16x8_t test_vceqzq_p16(poly16x8_t a) { 150 return vceqzq_p16(a); 151} 152 153// CHECK-LABEL: test_vceqzq_f64 154// CHECK: fcmeq {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #0 155uint64x2_t test_vceqzq_f64(float64x2_t a) { 156 return vceqzq_f64(a); 157} 158 159// CHECK-LABEL: test_vceqzq_p64 160// CHECK: cmeq {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #0 161uint64x2_t test_vceqzq_p64(poly64x2_t a) { 162 return vceqzq_p64(a); 163} 164 165// CHECK-LABEL: test_vcgez_s8 166// CHECK: cmge {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #{{0x0|0}} 167uint8x8_t test_vcgez_s8(int8x8_t a) { 168 return vcgez_s8(a); 169} 170 171// CHECK-LABEL: test_vcgez_s16 172// CHECK: cmge {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #{{0x0|0}} 173uint16x4_t test_vcgez_s16(int16x4_t a) { 174 return vcgez_s16(a); 175} 176 177// CHECK-LABEL: test_vcgez_s32 178// CHECK: cmge {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #{{0x0|0}} 179uint32x2_t test_vcgez_s32(int32x2_t a) { 180 return vcgez_s32(a); 181} 182 183// CHECK-LABEL: test_vcgez_s64 184// CHECK: cmge {{d[0-9]+}}, {{d[0-9]+}}, #{{0x0|0}} 185uint64x1_t test_vcgez_s64(int64x1_t a) { 186 return vcgez_s64(a); 187} 188 189// CHECK-LABEL: test_vcgezq_s8 190// CHECK: cmge {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #{{0x0|0}} 191uint8x16_t test_vcgezq_s8(int8x16_t a) { 192 return vcgezq_s8(a); 193} 194 195// CHECK-LABEL: test_vcgezq_s16 196// CHECK: cmge {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #{{0x0|0}} 197uint16x8_t test_vcgezq_s16(int16x8_t a) { 198 return vcgezq_s16(a); 199} 200 201// CHECK-LABEL: test_vcgezq_s32 202// CHECK: cmge {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #{{0x0|0}} 203uint32x4_t test_vcgezq_s32(int32x4_t a) { 204 return vcgezq_s32(a); 205} 206 207// CHECK-LABEL: test_vcgezq_s64 208// CHECK: cmge {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #{{0x0|0}} 209uint64x2_t test_vcgezq_s64(int64x2_t a) { 210 return vcgezq_s64(a); 211} 212 213// CHECK-LABEL: test_vcgez_f32 214// CHECK: fcmge {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #0 215uint32x2_t test_vcgez_f32(float32x2_t a) { 216 return vcgez_f32(a); 217} 218 219// CHECK-LABEL: test_vcgez_f64 220// CHECK: fcmge {{d[0-9]+}}, {{d[0-9]+}}, #0 221uint64x1_t test_vcgez_f64(float64x1_t a) { 222 return vcgez_f64(a); 223} 224 225// CHECK-LABEL: test_vcgezq_f32 226// CHECK: fcmge {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #0 227uint32x4_t test_vcgezq_f32(float32x4_t a) { 228 return vcgezq_f32(a); 229} 230 231// CHECK-LABEL: test_vcgezq_f64 232// CHECK: fcmge {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #0 233uint64x2_t test_vcgezq_f64(float64x2_t a) { 234 return vcgezq_f64(a); 235} 236 237// CHECK-LABEL: test_vclez_s8 238// CHECK: cmle {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #{{0x0|0}} 239uint8x8_t test_vclez_s8(int8x8_t a) { 240 return vclez_s8(a); 241} 242 243// CHECK-LABEL: test_vclez_s16 244// CHECK: cmle {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #{{0x0|0}} 245uint16x4_t test_vclez_s16(int16x4_t a) { 246 return vclez_s16(a); 247} 248 249// CHECK-LABEL: test_vclez_s32 250// CHECK: cmle {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #{{0x0|0}} 251uint32x2_t test_vclez_s32(int32x2_t a) { 252 return vclez_s32(a); 253} 254 255// CHECK-LABEL: test_vclez_s64 256// CHECK: cmle {{d[0-9]+}}, {{d[0-9]+}}, #{{0x0|0}} 257uint64x1_t test_vclez_s64(int64x1_t a) { 258 return vclez_s64(a); 259} 260 261// CHECK-LABEL: test_vclezq_s8 262// CHECK: cmle {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #{{0x0|0}} 263uint8x16_t test_vclezq_s8(int8x16_t a) { 264 return vclezq_s8(a); 265} 266 267// CHECK-LABEL: test_vclezq_s16 268// CHECK: cmle {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #{{0x0|0}} 269uint16x8_t test_vclezq_s16(int16x8_t a) { 270 return vclezq_s16(a); 271} 272 273// CHECK-LABEL: test_vclezq_s32 274// CHECK: cmle {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #{{0x0|0}} 275uint32x4_t test_vclezq_s32(int32x4_t a) { 276 return vclezq_s32(a); 277} 278 279// CHECK-LABEL: test_vclezq_s64 280// CHECK: cmle {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #{{0x0|0}} 281uint64x2_t test_vclezq_s64(int64x2_t a) { 282 return vclezq_s64(a); 283} 284 285// CHECK-LABEL: test_vclez_f32 286// CHECK: fcmle {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #0 287uint32x2_t test_vclez_f32(float32x2_t a) { 288 return vclez_f32(a); 289} 290 291// CHECK-LABEL: test_vclez_f64 292// CHECK: fcmle {{d[0-9]+}}, {{d[0-9]+}}, #0 293uint64x1_t test_vclez_f64(float64x1_t a) { 294 return vclez_f64(a); 295} 296 297// CHECK-LABEL: test_vclezq_f32 298// CHECK: fcmle {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #0 299uint32x4_t test_vclezq_f32(float32x4_t a) { 300 return vclezq_f32(a); 301} 302 303// CHECK-LABEL: test_vclezq_f64 304// CHECK: fcmle {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #0 305uint64x2_t test_vclezq_f64(float64x2_t a) { 306 return vclezq_f64(a); 307} 308 309// CHECK-LABEL: test_vcgtz_s8 310// CHECK: cmgt {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #{{0x0|0}} 311uint8x8_t test_vcgtz_s8(int8x8_t a) { 312 return vcgtz_s8(a); 313} 314 315// CHECK-LABEL: test_vcgtz_s16 316// CHECK: cmgt {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #{{0x0|0}} 317uint16x4_t test_vcgtz_s16(int16x4_t a) { 318 return vcgtz_s16(a); 319} 320 321// CHECK-LABEL: test_vcgtz_s32 322// CHECK: cmgt {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #{{0x0|0}} 323uint32x2_t test_vcgtz_s32(int32x2_t a) { 324 return vcgtz_s32(a); 325} 326 327// CHECK-LABEL: test_vcgtz_s64 328// CHECK: cmgt {{d[0-9]+}}, {{d[0-9]+}}, #{{0x0|0}} 329uint64x1_t test_vcgtz_s64(int64x1_t a) { 330 return vcgtz_s64(a); 331} 332 333// CHECK-LABEL: test_vcgtzq_s8 334// CHECK: cmgt {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #{{0x0|0}} 335uint8x16_t test_vcgtzq_s8(int8x16_t a) { 336 return vcgtzq_s8(a); 337} 338 339// CHECK-LABEL: test_vcgtzq_s16 340// CHECK: cmgt {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #{{0x0|0}} 341uint16x8_t test_vcgtzq_s16(int16x8_t a) { 342 return vcgtzq_s16(a); 343} 344 345// CHECK-LABEL: test_vcgtzq_s32 346// CHECK: cmgt {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #{{0x0|0}} 347uint32x4_t test_vcgtzq_s32(int32x4_t a) { 348 return vcgtzq_s32(a); 349} 350 351// CHECK-LABEL: test_vcgtzq_s64 352// CHECK: cmgt {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #{{0x0|0}} 353uint64x2_t test_vcgtzq_s64(int64x2_t a) { 354 return vcgtzq_s64(a); 355} 356 357// CHECK-LABEL: test_vcgtz_f32 358// CHECK: fcmgt {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #0 359uint32x2_t test_vcgtz_f32(float32x2_t a) { 360 return vcgtz_f32(a); 361} 362 363// CHECK-LABEL: test_vcgtz_f64 364// CHECK: fcmgt {{d[0-9]+}}, {{d[0-9]+}}, #0 365uint64x1_t test_vcgtz_f64(float64x1_t a) { 366 return vcgtz_f64(a); 367} 368 369// CHECK-LABEL: test_vcgtzq_f32 370// CHECK: fcmgt {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #0 371uint32x4_t test_vcgtzq_f32(float32x4_t a) { 372 return vcgtzq_f32(a); 373} 374 375// CHECK-LABEL: test_vcgtzq_f64 376// CHECK: fcmgt {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #0 377uint64x2_t test_vcgtzq_f64(float64x2_t a) { 378 return vcgtzq_f64(a); 379} 380 381// CHECK-LABEL: test_vcltz_s8 382// CHECK: sshr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #7 383uint8x8_t test_vcltz_s8(int8x8_t a) { 384 return vcltz_s8(a); 385} 386 387// CHECK-LABEL: test_vcltz_s16 388// CHECK: sshr {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #15 389uint16x4_t test_vcltz_s16(int16x4_t a) { 390 return vcltz_s16(a); 391} 392 393// CHECK-LABEL: test_vcltz_s32 394// CHECK: sshr {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #31 395uint32x2_t test_vcltz_s32(int32x2_t a) { 396 return vcltz_s32(a); 397} 398 399// CHECK-LABEL: test_vcltz_s64 400// CHECK: sshr {{d[0-9]+}}, {{d[0-9]+}}, #63 401uint64x1_t test_vcltz_s64(int64x1_t a) { 402 return vcltz_s64(a); 403} 404 405// CHECK-LABEL: test_vcltzq_s8 406// CHECK: sshr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #7 407uint8x16_t test_vcltzq_s8(int8x16_t a) { 408 return vcltzq_s8(a); 409} 410 411// CHECK-LABEL: test_vcltzq_s16 412// CHECK: sshr {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #15 413uint16x8_t test_vcltzq_s16(int16x8_t a) { 414 return vcltzq_s16(a); 415} 416 417// CHECK-LABEL: test_vcltzq_s32 418// CHECK: sshr {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #31 419uint32x4_t test_vcltzq_s32(int32x4_t a) { 420 return vcltzq_s32(a); 421} 422 423// CHECK-LABEL: test_vcltzq_s64 424// CHECK: sshr {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #63 425uint64x2_t test_vcltzq_s64(int64x2_t a) { 426 return vcltzq_s64(a); 427} 428 429// CHECK-LABEL: test_vcltz_f32 430// CHECK: fcmlt {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #0 431uint32x2_t test_vcltz_f32(float32x2_t a) { 432 return vcltz_f32(a); 433} 434 435// CHECK-LABEL: test_vcltz_f64 436// CHECK: fcmlt {{d[0-9]+}}, {{d[0-9]+}}, #0 437uint64x1_t test_vcltz_f64(float64x1_t a) { 438 return vcltz_f64(a); 439} 440 441// CHECK-LABEL: test_vcltzq_f32 442// CHECK: fcmlt {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #0 443uint32x4_t test_vcltzq_f32(float32x4_t a) { 444 return vcltzq_f32(a); 445} 446 447// CHECK-LABEL: test_vcltzq_f64 448// CHECK: fcmlt {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #0 449uint64x2_t test_vcltzq_f64(float64x2_t a) { 450 return vcltzq_f64(a); 451} 452 453// CHECK-LABEL: test_vrev16_s8 454// CHECK: rev16 v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 455int8x8_t test_vrev16_s8(int8x8_t a) { 456 return vrev16_s8(a); 457} 458 459// CHECK-LABEL: test_vrev16_u8 460// CHECK: rev16 v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 461uint8x8_t test_vrev16_u8(uint8x8_t a) { 462 return vrev16_u8(a); 463} 464 465// CHECK-LABEL: test_vrev16_p8 466// CHECK: rev16 v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 467poly8x8_t test_vrev16_p8(poly8x8_t a) { 468 return vrev16_p8(a); 469} 470 471// CHECK-LABEL: test_vrev16q_s8 472// CHECK: rev16 v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 473int8x16_t test_vrev16q_s8(int8x16_t a) { 474 return vrev16q_s8(a); 475} 476 477// CHECK-LABEL: test_vrev16q_u8 478// CHECK: rev16 v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 479uint8x16_t test_vrev16q_u8(uint8x16_t a) { 480 return vrev16q_u8(a); 481} 482 483// CHECK-LABEL: test_vrev16q_p8 484// CHECK: rev16 v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 485poly8x16_t test_vrev16q_p8(poly8x16_t a) { 486 return vrev16q_p8(a); 487} 488 489// CHECK-LABEL: test_vrev32_s8 490// CHECK: rev32 v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 491int8x8_t test_vrev32_s8(int8x8_t a) { 492 return vrev32_s8(a); 493} 494 495// CHECK-LABEL: test_vrev32_s16 496// CHECK: rev32 v{{[0-9]+}}.4h, v{{[0-9]+}}.4h 497int16x4_t test_vrev32_s16(int16x4_t a) { 498 return vrev32_s16(a); 499} 500 501// CHECK-LABEL: test_vrev32_u8 502// CHECK: rev32 v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 503uint8x8_t test_vrev32_u8(uint8x8_t a) { 504 return vrev32_u8(a); 505} 506 507// CHECK-LABEL: test_vrev32_u16 508// CHECK: rev32 v{{[0-9]+}}.4h, v{{[0-9]+}}.4h 509uint16x4_t test_vrev32_u16(uint16x4_t a) { 510 return vrev32_u16(a); 511} 512 513// CHECK-LABEL: test_vrev32_p8 514// CHECK: rev32 v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 515poly8x8_t test_vrev32_p8(poly8x8_t a) { 516 return vrev32_p8(a); 517} 518 519// CHECK-LABEL: test_vrev32_p16 520// CHECK: rev32 v{{[0-9]+}}.4h, v{{[0-9]+}}.4h 521poly16x4_t test_vrev32_p16(poly16x4_t a) { 522 return vrev32_p16(a); 523} 524 525// CHECK-LABEL: test_vrev32q_s8 526// CHECK: rev32 v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 527int8x16_t test_vrev32q_s8(int8x16_t a) { 528 return vrev32q_s8(a); 529} 530 531// CHECK-LABEL: test_vrev32q_s16 532// CHECK: rev32 v{{[0-9]+}}.8h, v{{[0-9]+}}.8h 533int16x8_t test_vrev32q_s16(int16x8_t a) { 534 return vrev32q_s16(a); 535} 536 537// CHECK-LABEL: test_vrev32q_u8 538// CHECK: rev32 v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 539uint8x16_t test_vrev32q_u8(uint8x16_t a) { 540 return vrev32q_u8(a); 541} 542 543// CHECK-LABEL: test_vrev32q_u16 544// CHECK: rev32 v{{[0-9]+}}.8h, v{{[0-9]+}}.8h 545uint16x8_t test_vrev32q_u16(uint16x8_t a) { 546 return vrev32q_u16(a); 547} 548 549// CHECK-LABEL: test_vrev32q_p8 550// CHECK: rev32 v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 551poly8x16_t test_vrev32q_p8(poly8x16_t a) { 552 return vrev32q_p8(a); 553} 554 555// CHECK-LABEL: test_vrev32q_p16 556// CHECK: rev32 v{{[0-9]+}}.8h, v{{[0-9]+}}.8h 557poly16x8_t test_vrev32q_p16(poly16x8_t a) { 558 return vrev32q_p16(a); 559} 560 561// CHECK-LABEL: test_vrev64_s8 562// CHECK: rev64 v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 563int8x8_t test_vrev64_s8(int8x8_t a) { 564 return vrev64_s8(a); 565} 566 567// CHECK-LABEL: test_vrev64_s16 568// CHECK: rev64 v{{[0-9]+}}.4h, v{{[0-9]+}}.4h 569int16x4_t test_vrev64_s16(int16x4_t a) { 570 return vrev64_s16(a); 571} 572 573// CHECK-LABEL: test_vrev64_s32 574// CHECK: rev64 v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 575int32x2_t test_vrev64_s32(int32x2_t a) { 576 return vrev64_s32(a); 577} 578 579// CHECK-LABEL: test_vrev64_u8 580// CHECK: rev64 v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 581uint8x8_t test_vrev64_u8(uint8x8_t a) { 582 return vrev64_u8(a); 583} 584 585// CHECK-LABEL: test_vrev64_u16 586// CHECK: rev64 v{{[0-9]+}}.4h, v{{[0-9]+}}.4h 587uint16x4_t test_vrev64_u16(uint16x4_t a) { 588 return vrev64_u16(a); 589} 590 591// CHECK-LABEL: test_vrev64_u32 592// CHECK: rev64 v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 593uint32x2_t test_vrev64_u32(uint32x2_t a) { 594 return vrev64_u32(a); 595} 596 597// CHECK-LABEL: test_vrev64_p8 598// CHECK: rev64 v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 599poly8x8_t test_vrev64_p8(poly8x8_t a) { 600 return vrev64_p8(a); 601} 602 603// CHECK-LABEL: test_vrev64_p16 604// CHECK: rev64 v{{[0-9]+}}.4h, v{{[0-9]+}}.4h 605poly16x4_t test_vrev64_p16(poly16x4_t a) { 606 return vrev64_p16(a); 607} 608 609// CHECK-LABEL: test_vrev64_f32 610// CHECK: rev64 v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 611float32x2_t test_vrev64_f32(float32x2_t a) { 612 return vrev64_f32(a); 613} 614 615// CHECK-LABEL: test_vrev64q_s8 616// CHECK: rev64 v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 617int8x16_t test_vrev64q_s8(int8x16_t a) { 618 return vrev64q_s8(a); 619} 620 621// CHECK-LABEL: test_vrev64q_s16 622// CHECK: rev64 v{{[0-9]+}}.8h, v{{[0-9]+}}.8h 623int16x8_t test_vrev64q_s16(int16x8_t a) { 624 return vrev64q_s16(a); 625} 626 627// CHECK-LABEL: test_vrev64q_s32 628// CHECK: rev64 v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 629int32x4_t test_vrev64q_s32(int32x4_t a) { 630 return vrev64q_s32(a); 631} 632 633// CHECK-LABEL: test_vrev64q_u8 634// CHECK: rev64 v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 635uint8x16_t test_vrev64q_u8(uint8x16_t a) { 636 return vrev64q_u8(a); 637} 638 639// CHECK-LABEL: test_vrev64q_u16 640// CHECK: rev64 v{{[0-9]+}}.8h, v{{[0-9]+}}.8h 641uint16x8_t test_vrev64q_u16(uint16x8_t a) { 642 return vrev64q_u16(a); 643} 644 645// CHECK-LABEL: test_vrev64q_u32 646// CHECK: rev64 v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 647uint32x4_t test_vrev64q_u32(uint32x4_t a) { 648 return vrev64q_u32(a); 649} 650 651// CHECK-LABEL: test_vrev64q_p8 652// CHECK: rev64 v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 653poly8x16_t test_vrev64q_p8(poly8x16_t a) { 654 return vrev64q_p8(a); 655} 656 657// CHECK-LABEL: test_vrev64q_p16 658// CHECK: rev64 v{{[0-9]+}}.8h, v{{[0-9]+}}.8h 659poly16x8_t test_vrev64q_p16(poly16x8_t a) { 660 return vrev64q_p16(a); 661} 662 663// CHECK-LABEL: test_vrev64q_f32 664// CHECK: rev64 v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 665float32x4_t test_vrev64q_f32(float32x4_t a) { 666 return vrev64q_f32(a); 667} 668 669int16x4_t test_vpaddl_s8(int8x8_t a) { 670 // CHECK-LABEL: test_vpaddl_s8 671 return vpaddl_s8(a); 672 // CHECK: saddlp v{{[0-9]+}}.4h, v{{[0-9]+}}.8b 673} 674 675int32x2_t test_vpaddl_s16(int16x4_t a) { 676 // CHECK-LABEL: test_vpaddl_s16 677 return vpaddl_s16(a); 678 // CHECK: saddlp v{{[0-9]+}}.2s, v{{[0-9]+}}.4h 679} 680 681int64x1_t test_vpaddl_s32(int32x2_t a) { 682 // CHECK-LABEL: test_vpaddl_s32 683 return vpaddl_s32(a); 684 // CHECK: saddlp v{{[0-9]+}}.1d, v{{[0-9]+}}.2s 685} 686 687uint16x4_t test_vpaddl_u8(uint8x8_t a) { 688 // CHECK-LABEL: test_vpaddl_u8 689 return vpaddl_u8(a); 690 // CHECK: uaddlp v{{[0-9]+}}.4h, v{{[0-9]+}}.8b 691} 692 693uint32x2_t test_vpaddl_u16(uint16x4_t a) { 694 // CHECK-LABEL: test_vpaddl_u16 695 return vpaddl_u16(a); 696 // CHECK: uaddlp v{{[0-9]+}}.2s, v{{[0-9]+}}.4h 697} 698 699uint64x1_t test_vpaddl_u32(uint32x2_t a) { 700 // CHECK-LABEL: test_vpaddl_u32 701 return vpaddl_u32(a); 702 // CHECK: uaddlp v{{[0-9]+}}.1d, v{{[0-9]+}}.2s 703} 704 705int16x8_t test_vpaddlq_s8(int8x16_t a) { 706 // CHECK-LABEL: test_vpaddlq_s8 707 return vpaddlq_s8(a); 708 // CHECK: saddlp v{{[0-9]+}}.8h, v{{[0-9]+}}.16b 709} 710 711int32x4_t test_vpaddlq_s16(int16x8_t a) { 712 // CHECK-LABEL: test_vpaddlq_s16 713 return vpaddlq_s16(a); 714 // CHECK: saddlp v{{[0-9]+}}.4s, v{{[0-9]+}}.8h 715} 716 717int64x2_t test_vpaddlq_s32(int32x4_t a) { 718 // CHECK-LABEL: test_vpaddlq_s32 719 return vpaddlq_s32(a); 720 // CHECK: saddlp v{{[0-9]+}}.2d, v{{[0-9]+}}.4s 721} 722 723uint16x8_t test_vpaddlq_u8(uint8x16_t a) { 724 // CHECK-LABEL: test_vpaddlq_u8 725 return vpaddlq_u8(a); 726 // CHECK: uaddlp v{{[0-9]+}}.8h, v{{[0-9]+}}.16b 727} 728 729uint32x4_t test_vpaddlq_u16(uint16x8_t a) { 730 // CHECK-LABEL: test_vpaddlq_u16 731 return vpaddlq_u16(a); 732 // CHECK: uaddlp v{{[0-9]+}}.4s, v{{[0-9]+}}.8h 733} 734 735uint64x2_t test_vpaddlq_u32(uint32x4_t a) { 736 // CHECK-LABEL: test_vpaddlq_u32 737 return vpaddlq_u32(a); 738 // CHECK: uaddlp v{{[0-9]+}}.2d, v{{[0-9]+}}.4s 739} 740 741int16x4_t test_vpadal_s8(int16x4_t a, int8x8_t b) { 742 // CHECK-LABEL: test_vpadal_s8 743 return vpadal_s8(a, b); 744 // CHECK: sadalp v{{[0-9]+}}.4h, v{{[0-9]+}}.8b 745} 746 747int32x2_t test_vpadal_s16(int32x2_t a, int16x4_t b) { 748 // CHECK-LABEL: test_vpadal_s16 749 return vpadal_s16(a, b); 750 // CHECK: sadalp v{{[0-9]+}}.2s, v{{[0-9]+}}.4h 751} 752 753int64x1_t test_vpadal_s32(int64x1_t a, int32x2_t b) { 754 // CHECK-LABEL: test_vpadal_s32 755 return vpadal_s32(a, b); 756 // CHECK: sadalp v{{[0-9]+}}.1d, v{{[0-9]+}}.2s 757} 758 759uint16x4_t test_vpadal_u8(uint16x4_t a, uint8x8_t b) { 760 // CHECK-LABEL: test_vpadal_u8 761 return vpadal_u8(a, b); 762 // CHECK: uadalp v{{[0-9]+}}.4h, v{{[0-9]+}}.8b 763} 764 765uint32x2_t test_vpadal_u16(uint32x2_t a, uint16x4_t b) { 766 // CHECK-LABEL: test_vpadal_u16 767 return vpadal_u16(a, b); 768 // CHECK: uadalp v{{[0-9]+}}.2s, v{{[0-9]+}}.4h 769} 770 771uint64x1_t test_vpadal_u32(uint64x1_t a, uint32x2_t b) { 772 // CHECK-LABEL: test_vpadal_u32 773 return vpadal_u32(a, b); 774 // CHECK: uadalp v{{[0-9]+}}.1d, v{{[0-9]+}}.2s 775} 776 777int16x8_t test_vpadalq_s8(int16x8_t a, int8x16_t b) { 778 // CHECK-LABEL: test_vpadalq_s8 779 return vpadalq_s8(a, b); 780 // CHECK: sadalp v{{[0-9]+}}.8h, v{{[0-9]+}}.16b 781} 782 783int32x4_t test_vpadalq_s16(int32x4_t a, int16x8_t b) { 784 // CHECK-LABEL: test_vpadalq_s16 785 return vpadalq_s16(a, b); 786 // CHECK: sadalp v{{[0-9]+}}.4s, v{{[0-9]+}}.8h 787} 788 789int64x2_t test_vpadalq_s32(int64x2_t a, int32x4_t b) { 790 // CHECK-LABEL: test_vpadalq_s32 791 return vpadalq_s32(a, b); 792 // CHECK: sadalp v{{[0-9]+}}.2d, v{{[0-9]+}}.4s 793} 794 795uint16x8_t test_vpadalq_u8(uint16x8_t a, uint8x16_t b) { 796 // CHECK-LABEL: test_vpadalq_u8 797 return vpadalq_u8(a, b); 798 // CHECK: uadalp v{{[0-9]+}}.8h, v{{[0-9]+}}.16b 799} 800 801uint32x4_t test_vpadalq_u16(uint32x4_t a, uint16x8_t b) { 802 // CHECK-LABEL: test_vpadalq_u16 803 return vpadalq_u16(a, b); 804 // CHECK: uadalp v{{[0-9]+}}.4s, v{{[0-9]+}}.8h 805} 806 807uint64x2_t test_vpadalq_u32(uint64x2_t a, uint32x4_t b) { 808 // CHECK-LABEL: test_vpadalq_u32 809 return vpadalq_u32(a, b); 810 // CHECK: uadalp v{{[0-9]+}}.2d, v{{[0-9]+}}.4s 811} 812 813int8x8_t test_vqabs_s8(int8x8_t a) { 814 // CHECK-LABEL: test_vqabs_s8 815 return vqabs_s8(a); 816 // CHECK: sqabs v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 817} 818 819int8x16_t test_vqabsq_s8(int8x16_t a) { 820 // CHECK-LABEL: test_vqabsq_s8 821 return vqabsq_s8(a); 822 // CHECK: sqabs v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 823} 824 825int16x4_t test_vqabs_s16(int16x4_t a) { 826 // CHECK-LABEL: test_vqabs_s16 827 return vqabs_s16(a); 828 // CHECK: sqabs v{{[0-9]+}}.4h, v{{[0-9]+}}.4h 829} 830 831int16x8_t test_vqabsq_s16(int16x8_t a) { 832 // CHECK-LABEL: test_vqabsq_s16 833 return vqabsq_s16(a); 834 // CHECK: sqabs v{{[0-9]+}}.8h, v{{[0-9]+}}.8h 835} 836 837int32x2_t test_vqabs_s32(int32x2_t a) { 838 // CHECK-LABEL: test_vqabs_s32 839 return vqabs_s32(a); 840 // CHECK: sqabs v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 841} 842 843int32x4_t test_vqabsq_s32(int32x4_t a) { 844 // CHECK-LABEL: test_vqabsq_s32 845 return vqabsq_s32(a); 846 // CHECK: sqabs v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 847} 848 849int64x2_t test_vqabsq_s64(int64x2_t a) { 850 // CHECK-LABEL: test_vqabsq_s64 851 return vqabsq_s64(a); 852 // CHECK: sqabs v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 853} 854 855int8x8_t test_vqneg_s8(int8x8_t a) { 856 // CHECK-LABEL: test_vqneg_s8 857 return vqneg_s8(a); 858 // CHECK: sqneg v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 859} 860 861int8x16_t test_vqnegq_s8(int8x16_t a) { 862 // CHECK-LABEL: test_vqnegq_s8 863 return vqnegq_s8(a); 864 // CHECK: sqneg v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 865} 866 867int16x4_t test_vqneg_s16(int16x4_t a) { 868 // CHECK-LABEL: test_vqneg_s16 869 return vqneg_s16(a); 870 // CHECK: sqneg v{{[0-9]+}}.4h, v{{[0-9]+}}.4h 871} 872 873int16x8_t test_vqnegq_s16(int16x8_t a) { 874 // CHECK-LABEL: test_vqnegq_s16 875 return vqnegq_s16(a); 876 // CHECK: sqneg v{{[0-9]+}}.8h, v{{[0-9]+}}.8h 877} 878 879int32x2_t test_vqneg_s32(int32x2_t a) { 880 // CHECK-LABEL: test_vqneg_s32 881 return vqneg_s32(a); 882 // CHECK: sqneg v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 883} 884 885int32x4_t test_vqnegq_s32(int32x4_t a) { 886 // CHECK-LABEL: test_vqnegq_s32 887 return vqnegq_s32(a); 888 // CHECK: sqneg v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 889} 890 891int64x2_t test_vqnegq_s64(int64x2_t a) { 892 // CHECK-LABEL: test_vqnegq_s64 893 return vqnegq_s64(a); 894 // CHECK: sqneg v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 895} 896 897int8x8_t test_vneg_s8(int8x8_t a) { 898 // CHECK-LABEL: test_vneg_s8 899 return vneg_s8(a); 900 // CHECK: neg v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 901} 902 903int8x16_t test_vnegq_s8(int8x16_t a) { 904 // CHECK-LABEL: test_vnegq_s8 905 return vnegq_s8(a); 906 // CHECK: neg v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 907} 908 909int16x4_t test_vneg_s16(int16x4_t a) { 910 // CHECK-LABEL: test_vneg_s16 911 return vneg_s16(a); 912 // CHECK: neg v{{[0-9]+}}.4h, v{{[0-9]+}}.4h 913} 914 915int16x8_t test_vnegq_s16(int16x8_t a) { 916 // CHECK-LABEL: test_vnegq_s16 917 return vnegq_s16(a); 918 // CHECK: neg v{{[0-9]+}}.8h, v{{[0-9]+}}.8h 919} 920 921int32x2_t test_vneg_s32(int32x2_t a) { 922 // CHECK-LABEL: test_vneg_s32 923 return vneg_s32(a); 924 // CHECK: neg v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 925} 926 927int32x4_t test_vnegq_s32(int32x4_t a) { 928 // CHECK-LABEL: test_vnegq_s32 929 return vnegq_s32(a); 930 // CHECK: neg v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 931} 932 933int64x2_t test_vnegq_s64(int64x2_t a) { 934 // CHECK-LABEL: test_vnegq_s64 935 return vnegq_s64(a); 936 // CHECK: neg v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 937} 938 939float32x2_t test_vneg_f32(float32x2_t a) { 940 // CHECK-LABEL: test_vneg_f32 941 return vneg_f32(a); 942 // CHECK: fneg v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 943} 944 945float32x4_t test_vnegq_f32(float32x4_t a) { 946 // CHECK-LABEL: test_vnegq_f32 947 return vnegq_f32(a); 948 // CHECK: fneg v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 949} 950 951float64x2_t test_vnegq_f64(float64x2_t a) { 952 // CHECK-LABEL: test_vnegq_f64 953 return vnegq_f64(a); 954 // CHECK: fneg v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 955} 956 957int8x8_t test_vabs_s8(int8x8_t a) { 958 // CHECK-LABEL: test_vabs_s8 959 return vabs_s8(a); 960 // CHECK: abs v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 961} 962 963int8x16_t test_vabsq_s8(int8x16_t a) { 964 // CHECK-LABEL: test_vabsq_s8 965 return vabsq_s8(a); 966 // CHECK: abs v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 967} 968 969int16x4_t test_vabs_s16(int16x4_t a) { 970 // CHECK-LABEL: test_vabs_s16 971 return vabs_s16(a); 972 // CHECK: abs v{{[0-9]+}}.4h, v{{[0-9]+}}.4h 973} 974 975int16x8_t test_vabsq_s16(int16x8_t a) { 976 // CHECK-LABEL: test_vabsq_s16 977 return vabsq_s16(a); 978 // CHECK: abs v{{[0-9]+}}.8h, v{{[0-9]+}}.8h 979} 980 981int32x2_t test_vabs_s32(int32x2_t a) { 982 // CHECK-LABEL: test_vabs_s32 983 return vabs_s32(a); 984 // CHECK: abs v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 985} 986 987int32x4_t test_vabsq_s32(int32x4_t a) { 988 // CHECK-LABEL: test_vabsq_s32 989 return vabsq_s32(a); 990 // CHECK: abs v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 991} 992 993int64x2_t test_vabsq_s64(int64x2_t a) { 994 // CHECK-LABEL: test_vabsq_s64 995 return vabsq_s64(a); 996 // CHECK: abs v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 997} 998 999float32x2_t test_vabs_f32(float32x2_t a) { 1000 // CHECK-LABEL: test_vabs_f32 1001 return vabs_f32(a); 1002 // CHECK: fabs v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1003} 1004 1005float32x4_t test_vabsq_f32(float32x4_t a) { 1006 // CHECK-LABEL: test_vabsq_f32 1007 return vabsq_f32(a); 1008 // CHECK: fabs v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1009} 1010 1011float64x2_t test_vabsq_f64(float64x2_t a) { 1012 // CHECK-LABEL: test_vabsq_f64 1013 return vabsq_f64(a); 1014 // CHECK: fabs v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 1015} 1016 1017int8x8_t test_vuqadd_s8(int8x8_t a, int8x8_t b) { 1018 // CHECK-LABEL: test_vuqadd_s8 1019 return vuqadd_s8(a, b); 1020 // CHECK: suqadd v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 1021} 1022 1023int8x16_t test_vuqaddq_s8(int8x16_t a, int8x16_t b) { 1024 // CHECK-LABEL: test_vuqaddq_s8 1025 return vuqaddq_s8(a, b); 1026 // CHECK: suqadd v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 1027} 1028 1029int16x4_t test_vuqadd_s16(int16x4_t a, int16x4_t b) { 1030 // CHECK-LABEL: test_vuqadd_s16 1031 return vuqadd_s16(a, b); 1032 // CHECK: suqadd v{{[0-9]+}}.4h, v{{[0-9]+}}.4h 1033} 1034 1035int16x8_t test_vuqaddq_s16(int16x8_t a, int16x8_t b) { 1036 // CHECK-LABEL: test_vuqaddq_s16 1037 return vuqaddq_s16(a, b); 1038 // CHECK: suqadd v{{[0-9]+}}.8h, v{{[0-9]+}}.8h 1039} 1040 1041int32x2_t test_vuqadd_s32(int32x2_t a, int32x2_t b) { 1042 // CHECK-LABEL: test_vuqadd_s32 1043 return vuqadd_s32(a, b); 1044 // CHECK: suqadd v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1045} 1046 1047int32x4_t test_vuqaddq_s32(int32x4_t a, int32x4_t b) { 1048 // CHECK-LABEL: test_vuqaddq_s32 1049 return vuqaddq_s32(a, b); 1050 // CHECK: suqadd v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1051} 1052 1053int64x2_t test_vuqaddq_s64(int64x2_t a, int64x2_t b) { 1054 // CHECK-LABEL: test_vuqaddq_s64 1055 return vuqaddq_s64(a, b); 1056 // CHECK: suqadd v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 1057} 1058 1059int8x8_t test_vcls_s8(int8x8_t a) { 1060 // CHECK-LABEL: test_vcls_s8 1061 return vcls_s8(a); 1062 // CHECK: cls v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 1063} 1064 1065int8x16_t test_vclsq_s8(int8x16_t a) { 1066 // CHECK-LABEL: test_vclsq_s8 1067 return vclsq_s8(a); 1068 // CHECK: cls v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 1069} 1070 1071int16x4_t test_vcls_s16(int16x4_t a) { 1072 // CHECK-LABEL: test_vcls_s16 1073 return vcls_s16(a); 1074 // CHECK: cls v{{[0-9]+}}.4h, v{{[0-9]+}}.4h 1075} 1076 1077int16x8_t test_vclsq_s16(int16x8_t a) { 1078 // CHECK-LABEL: test_vclsq_s16 1079 return vclsq_s16(a); 1080 // CHECK: cls v{{[0-9]+}}.8h, v{{[0-9]+}}.8h 1081} 1082 1083int32x2_t test_vcls_s32(int32x2_t a) { 1084 // CHECK-LABEL: test_vcls_s32 1085 return vcls_s32(a); 1086 // CHECK: cls v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1087} 1088 1089int32x4_t test_vclsq_s32(int32x4_t a) { 1090 // CHECK-LABEL: test_vclsq_s32 1091 return vclsq_s32(a); 1092 // CHECK: cls v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1093} 1094 1095int8x8_t test_vclz_s8(int8x8_t a) { 1096 // CHECK-LABEL: test_vclz_s8 1097 return vclz_s8(a); 1098 // CHECK: clz v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 1099} 1100 1101int8x16_t test_vclzq_s8(int8x16_t a) { 1102 // CHECK-LABEL: test_vclzq_s8 1103 return vclzq_s8(a); 1104 // CHECK: clz v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 1105} 1106 1107int16x4_t test_vclz_s16(int16x4_t a) { 1108 // CHECK-LABEL: test_vclz_s16 1109 return vclz_s16(a); 1110 // CHECK: clz v{{[0-9]+}}.4h, v{{[0-9]+}}.4h 1111} 1112 1113int16x8_t test_vclzq_s16(int16x8_t a) { 1114 // CHECK-LABEL: test_vclzq_s16 1115 return vclzq_s16(a); 1116 // CHECK: clz v{{[0-9]+}}.8h, v{{[0-9]+}}.8h 1117} 1118 1119int32x2_t test_vclz_s32(int32x2_t a) { 1120 // CHECK-LABEL: test_vclz_s32 1121 return vclz_s32(a); 1122 // CHECK: clz v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1123} 1124 1125int32x4_t test_vclzq_s32(int32x4_t a) { 1126 // CHECK-LABEL: test_vclzq_s32 1127 return vclzq_s32(a); 1128 // CHECK: clz v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1129} 1130 1131uint8x8_t test_vclz_u8(uint8x8_t a) { 1132 // CHECK-LABEL: test_vclz_u8 1133 return vclz_u8(a); 1134 // CHECK: clz v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 1135} 1136 1137uint8x16_t test_vclzq_u8(uint8x16_t a) { 1138 // CHECK-LABEL: test_vclzq_u8 1139 return vclzq_u8(a); 1140 // CHECK: clz v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 1141} 1142 1143uint16x4_t test_vclz_u16(uint16x4_t a) { 1144 // CHECK-LABEL: test_vclz_u16 1145 return vclz_u16(a); 1146 // CHECK: clz v{{[0-9]+}}.4h, v{{[0-9]+}}.4h 1147} 1148 1149uint16x8_t test_vclzq_u16(uint16x8_t a) { 1150 // CHECK-LABEL: test_vclzq_u16 1151 return vclzq_u16(a); 1152 // CHECK: clz v{{[0-9]+}}.8h, v{{[0-9]+}}.8h 1153} 1154 1155uint32x2_t test_vclz_u32(uint32x2_t a) { 1156 // CHECK-LABEL: test_vclz_u32 1157 return vclz_u32(a); 1158 // CHECK: clz v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1159} 1160 1161uint32x4_t test_vclzq_u32(uint32x4_t a) { 1162 // CHECK-LABEL: test_vclzq_u32 1163 return vclzq_u32(a); 1164 // CHECK: clz v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1165} 1166 1167int8x8_t test_vcnt_s8(int8x8_t a) { 1168 // CHECK-LABEL: test_vcnt_s8 1169 return vcnt_s8(a); 1170 // CHECK: cnt v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 1171} 1172 1173int8x16_t test_vcntq_s8(int8x16_t a) { 1174 // CHECK-LABEL: test_vcntq_s8 1175 return vcntq_s8(a); 1176 // CHECK: cnt v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 1177} 1178 1179uint8x8_t test_vcnt_u8(uint8x8_t a) { 1180 // CHECK-LABEL: test_vcnt_u8 1181 return vcnt_u8(a); 1182 // CHECK: cnt v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 1183} 1184 1185uint8x16_t test_vcntq_u8(uint8x16_t a) { 1186 // CHECK-LABEL: test_vcntq_u8 1187 return vcntq_u8(a); 1188 // CHECK: cnt v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 1189} 1190 1191poly8x8_t test_vcnt_p8(poly8x8_t a) { 1192 // CHECK-LABEL: test_vcnt_p8 1193 return vcnt_p8(a); 1194 // CHECK: cnt v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 1195} 1196 1197poly8x16_t test_vcntq_p8(poly8x16_t a) { 1198 // CHECK-LABEL: test_vcntq_p8 1199 return vcntq_p8(a); 1200 // CHECK: cnt v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 1201} 1202 1203int8x8_t test_vmvn_s8(int8x8_t a) { 1204 // CHECK-LABEL: test_vmvn_s8 1205 return vmvn_s8(a); 1206 // CHECK: {{mvn|not}} v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 1207} 1208 1209int8x16_t test_vmvnq_s8(int8x16_t a) { 1210 // CHECK-LABEL: test_vmvnq_s8 1211 return vmvnq_s8(a); 1212 // CHECK: {{mvn|not}} v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 1213} 1214 1215int16x4_t test_vmvn_s16(int16x4_t a) { 1216 // CHECK-LABEL: test_vmvn_s16 1217 return vmvn_s16(a); 1218 // CHECK: {{mvn|not}} v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 1219} 1220 1221int16x8_t test_vmvnq_s16(int16x8_t a) { 1222 // CHECK-LABEL: test_vmvnq_s16 1223 return vmvnq_s16(a); 1224 // CHECK: {{mvn|not}} v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 1225} 1226 1227int32x2_t test_vmvn_s32(int32x2_t a) { 1228 // CHECK-LABEL: test_vmvn_s32 1229 return vmvn_s32(a); 1230 // CHECK: {{mvn|not}} v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 1231} 1232 1233int32x4_t test_vmvnq_s32(int32x4_t a) { 1234 // CHECK-LABEL: test_vmvnq_s32 1235 return vmvnq_s32(a); 1236 // CHECK: {{mvn|not}} v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 1237} 1238 1239uint8x8_t test_vmvn_u8(uint8x8_t a) { 1240 // CHECK-LABEL: test_vmvn_u8 1241 return vmvn_u8(a); 1242 // CHECK: {{mvn|not}} v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 1243} 1244 1245uint8x16_t test_vmvnq_u8(uint8x16_t a) { 1246 // CHECK-LABEL: test_vmvnq_u8 1247 return vmvnq_u8(a); 1248 // CHECK: {{mvn|not}} v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 1249} 1250 1251uint16x4_t test_vmvn_u16(uint16x4_t a) { 1252 // CHECK-LABEL: test_vmvn_u16 1253 return vmvn_u16(a); 1254 // CHECK: {{mvn|not}} v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 1255} 1256 1257uint16x8_t test_vmvnq_u16(uint16x8_t a) { 1258 // CHECK-LABEL: test_vmvnq_u16 1259 return vmvnq_u16(a); 1260 // CHECK: {{mvn|not}} v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 1261} 1262 1263uint32x2_t test_vmvn_u32(uint32x2_t a) { 1264 // CHECK-LABEL: test_vmvn_u32 1265 return vmvn_u32(a); 1266 // CHECK: {{mvn|not}} v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 1267} 1268 1269uint32x4_t test_vmvnq_u32(uint32x4_t a) { 1270 // CHECK-LABEL: test_vmvnq_u32 1271 return vmvnq_u32(a); 1272 // CHECK: {{mvn|not}} v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 1273} 1274 1275poly8x8_t test_vmvn_p8(poly8x8_t a) { 1276 // CHECK-LABEL: test_vmvn_p8 1277 return vmvn_p8(a); 1278 // CHECK: {{mvn|not}} v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 1279} 1280 1281poly8x16_t test_vmvnq_p8(poly8x16_t a) { 1282 // CHECK-LABEL: test_vmvnq_p8 1283 return vmvnq_p8(a); 1284 // CHECK: {{mvn|not}} v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 1285} 1286 1287int8x8_t test_vrbit_s8(int8x8_t a) { 1288 // CHECK-LABEL: test_vrbit_s8 1289 return vrbit_s8(a); 1290 // CHECK: rbit v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 1291} 1292 1293int8x16_t test_vrbitq_s8(int8x16_t a) { 1294 // CHECK-LABEL: test_vrbitq_s8 1295 return vrbitq_s8(a); 1296 // CHECK: rbit v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 1297} 1298 1299uint8x8_t test_vrbit_u8(uint8x8_t a) { 1300 // CHECK-LABEL: test_vrbit_u8 1301 return vrbit_u8(a); 1302 // CHECK: rbit v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 1303} 1304 1305uint8x16_t test_vrbitq_u8(uint8x16_t a) { 1306 // CHECK-LABEL: test_vrbitq_u8 1307 return vrbitq_u8(a); 1308 // CHECK: rbit v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 1309} 1310 1311poly8x8_t test_vrbit_p8(poly8x8_t a) { 1312 // CHECK-LABEL: test_vrbit_p8 1313 return vrbit_p8(a); 1314 // CHECK: rbit v{{[0-9]+}}.8b, v{{[0-9]+}}.8b 1315} 1316 1317poly8x16_t test_vrbitq_p8(poly8x16_t a) { 1318 // CHECK-LABEL: test_vrbitq_p8 1319 return vrbitq_p8(a); 1320 // CHECK: rbit v{{[0-9]+}}.16b, v{{[0-9]+}}.16b 1321} 1322 1323int8x8_t test_vmovn_s16(int16x8_t a) { 1324 // CHECK-LABEL: test_vmovn_s16 1325 return vmovn_s16(a); 1326 // CHECK: xtn v{{[0-9]+}}.8b, v{{[0-9]+}}.8h 1327} 1328 1329int16x4_t test_vmovn_s32(int32x4_t a) { 1330 // CHECK-LABEL: test_vmovn_s32 1331 return vmovn_s32(a); 1332 // CHECK: xtn v{{[0-9]+}}.4h, v{{[0-9]+}}.4s 1333} 1334 1335int32x2_t test_vmovn_s64(int64x2_t a) { 1336 // CHECK-LABEL: test_vmovn_s64 1337 return vmovn_s64(a); 1338 // CHECK: xtn v{{[0-9]+}}.2s, v{{[0-9]+}}.2d 1339} 1340 1341uint8x8_t test_vmovn_u16(uint16x8_t a) { 1342 // CHECK-LABEL: test_vmovn_u16 1343 return vmovn_u16(a); 1344 // CHECK: xtn v{{[0-9]+}}.8b, v{{[0-9]+}}.8h 1345} 1346 1347uint16x4_t test_vmovn_u32(uint32x4_t a) { 1348 // CHECK-LABEL: test_vmovn_u32 1349 return vmovn_u32(a); 1350 // CHECK: xtn v{{[0-9]+}}.4h, v{{[0-9]+}}.4s 1351} 1352 1353uint32x2_t test_vmovn_u64(uint64x2_t a) { 1354 // CHECK-LABEL: test_vmovn_u64 1355 return vmovn_u64(a); 1356 // CHECK: xtn v{{[0-9]+}}.2s, v{{[0-9]+}}.2d 1357} 1358 1359int8x16_t test_vmovn_high_s16(int8x8_t a, int16x8_t b) { 1360 // CHECK-LABEL: test_vmovn_high_s16 1361 return vmovn_high_s16(a, b); 1362 // CHECK: xtn2 v{{[0-9]+}}.16b, v{{[0-9]+}}.8h 1363} 1364 1365int16x8_t test_vmovn_high_s32(int16x4_t a, int32x4_t b) { 1366 // CHECK-LABEL: test_vmovn_high_s32 1367 return vmovn_high_s32(a, b); 1368 // CHECK: xtn2 v{{[0-9]+}}.8h, v{{[0-9]+}}.4s 1369} 1370 1371int32x4_t test_vmovn_high_s64(int32x2_t a, int64x2_t b) { 1372 // CHECK-LABEL: test_vmovn_high_s64 1373 return vmovn_high_s64(a, b); 1374 // CHECK: xtn2 v{{[0-9]+}}.4s, v{{[0-9]+}}.2d 1375} 1376 1377int8x16_t test_vmovn_high_u16(int8x8_t a, int16x8_t b) { 1378 // CHECK-LABEL: test_vmovn_high_u16 1379 return vmovn_high_u16(a, b); 1380 // CHECK: xtn2 v{{[0-9]+}}.16b, v{{[0-9]+}}.8h 1381} 1382 1383int16x8_t test_vmovn_high_u32(int16x4_t a, int32x4_t b) { 1384 // CHECK-LABEL: test_vmovn_high_u32 1385 return vmovn_high_u32(a, b); 1386 // CHECK: xtn2 v{{[0-9]+}}.8h, v{{[0-9]+}}.4s 1387} 1388 1389int32x4_t test_vmovn_high_u64(int32x2_t a, int64x2_t b) { 1390 // CHECK-LABEL: test_vmovn_high_u64 1391 return vmovn_high_u64(a, b); 1392 // CHECK: xtn2 v{{[0-9]+}}.4s, v{{[0-9]+}}.2d 1393} 1394 1395int8x8_t test_vqmovun_s16(int16x8_t a) { 1396 // CHECK-LABEL: test_vqmovun_s16 1397 return vqmovun_s16(a); 1398 // CHECK: sqxtun v{{[0-9]+}}.8b, v{{[0-9]+}}.8h 1399} 1400 1401int16x4_t test_vqmovun_s32(int32x4_t a) { 1402 // CHECK-LABEL: test_vqmovun_s32 1403 return vqmovun_s32(a); 1404 // CHECK: sqxtun v{{[0-9]+}}.4h, v{{[0-9]+}}.4s 1405} 1406 1407int32x2_t test_vqmovun_s64(int64x2_t a) { 1408 // CHECK-LABEL: test_vqmovun_s64 1409 return vqmovun_s64(a); 1410 // CHECK: sqxtun v{{[0-9]+}}.2s, v{{[0-9]+}}.2d 1411} 1412 1413int8x16_t test_vqmovun_high_s16(int8x8_t a, int16x8_t b) { 1414 // CHECK-LABEL: test_vqmovun_high_s16 1415 return vqmovun_high_s16(a, b); 1416 // CHECK: sqxtun2 v{{[0-9]+}}.16b, v{{[0-9]+}}.8h 1417} 1418 1419int16x8_t test_vqmovun_high_s32(int16x4_t a, int32x4_t b) { 1420 // CHECK-LABEL: test_vqmovun_high_s32 1421 return vqmovun_high_s32(a, b); 1422 // CHECK: sqxtun2 v{{[0-9]+}}.8h, v{{[0-9]+}}.4s 1423} 1424 1425int32x4_t test_vqmovun_high_s64(int32x2_t a, int64x2_t b) { 1426 // CHECK-LABEL: test_vqmovun_high_s64 1427 return vqmovun_high_s64(a, b); 1428 // CHECK: sqxtun2 v{{[0-9]+}}.4s, v{{[0-9]+}}.2d 1429} 1430 1431int8x8_t test_vqmovn_s16(int16x8_t a) { 1432 // CHECK-LABEL: test_vqmovn_s16 1433 return vqmovn_s16(a); 1434 // CHECK: sqxtn v{{[0-9]+}}.8b, v{{[0-9]+}}.8h 1435} 1436 1437int16x4_t test_vqmovn_s32(int32x4_t a) { 1438 // CHECK-LABEL: test_vqmovn_s32 1439 return vqmovn_s32(a); 1440 // CHECK: sqxtn v{{[0-9]+}}.4h, v{{[0-9]+}}.4s 1441} 1442 1443int32x2_t test_vqmovn_s64(int64x2_t a) { 1444 // CHECK-LABEL: test_vqmovn_s64 1445 return vqmovn_s64(a); 1446 // CHECK: sqxtn v{{[0-9]+}}.2s, v{{[0-9]+}}.2d 1447} 1448 1449int8x16_t test_vqmovn_high_s16(int8x8_t a, int16x8_t b) { 1450 // CHECK-LABEL: test_vqmovn_high_s16 1451 return vqmovn_high_s16(a, b); 1452 // CHECK: sqxtn2 v{{[0-9]+}}.16b, v{{[0-9]+}}.8h 1453} 1454 1455int16x8_t test_vqmovn_high_s32(int16x4_t a, int32x4_t b) { 1456 // CHECK-LABEL: test_vqmovn_high_s32 1457 return vqmovn_high_s32(a, b); 1458 // CHECK: sqxtn2 v{{[0-9]+}}.8h, v{{[0-9]+}}.4s 1459} 1460 1461int32x4_t test_vqmovn_high_s64(int32x2_t a, int64x2_t b) { 1462 // CHECK-LABEL: test_vqmovn_high_s64 1463 return vqmovn_high_s64(a, b); 1464 // CHECK: sqxtn2 v{{[0-9]+}}.4s, v{{[0-9]+}}.2d 1465} 1466 1467uint8x8_t test_vqmovn_u16(uint16x8_t a) { 1468 // CHECK-LABEL: test_vqmovn_u16 1469 return vqmovn_u16(a); 1470 // CHECK: uqxtn v{{[0-9]+}}.8b, v{{[0-9]+}}.8h 1471} 1472 1473uint16x4_t test_vqmovn_u32(uint32x4_t a) { 1474 // CHECK-LABEL: test_vqmovn_u32 1475 return vqmovn_u32(a); 1476 // CHECK: uqxtn v{{[0-9]+}}.4h, v{{[0-9]+}}.4s 1477} 1478 1479uint32x2_t test_vqmovn_u64(uint64x2_t a) { 1480 // CHECK-LABEL: test_vqmovn_u64 1481 return vqmovn_u64(a); 1482 // CHECK: uqxtn v{{[0-9]+}}.2s, v{{[0-9]+}}.2d 1483} 1484 1485uint8x16_t test_vqmovn_high_u16(uint8x8_t a, uint16x8_t b) { 1486 // CHECK-LABEL: test_vqmovn_high_u16 1487 return vqmovn_high_u16(a, b); 1488 // CHECK: uqxtn2 v{{[0-9]+}}.16b, v{{[0-9]+}}.8h 1489} 1490 1491uint16x8_t test_vqmovn_high_u32(uint16x4_t a, uint32x4_t b) { 1492 // CHECK-LABEL: test_vqmovn_high_u32 1493 return vqmovn_high_u32(a, b); 1494 // CHECK: uqxtn2 v{{[0-9]+}}.8h, v{{[0-9]+}}.4s 1495} 1496 1497uint32x4_t test_vqmovn_high_u64(uint32x2_t a, uint64x2_t b) { 1498 // CHECK-LABEL: test_vqmovn_high_u64 1499 return vqmovn_high_u64(a, b); 1500 // CHECK: uqxtn2 v{{[0-9]+}}.4s, v{{[0-9]+}}.2d 1501} 1502 1503int16x8_t test_vshll_n_s8(int8x8_t a) { 1504 // CHECK-LABEL: test_vshll_n_s8 1505 return vshll_n_s8(a, 8); 1506 // CHECK: shll {{v[0-9]+}}.8h, {{v[0-9]+}}.8b, #8 1507} 1508 1509int32x4_t test_vshll_n_s16(int16x4_t a) { 1510 // CHECK-LABEL: test_vshll_n_s16 1511 return vshll_n_s16(a, 16); 1512 // CHECK: shll {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, #16 1513} 1514 1515int64x2_t test_vshll_n_s32(int32x2_t a) { 1516 // CHECK-LABEL: test_vshll_n_s32 1517 return vshll_n_s32(a, 32); 1518 // CHECK: shll {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, #32 1519} 1520 1521uint16x8_t test_vshll_n_u8(uint8x8_t a) { 1522 // CHECK-LABEL: test_vshll_n_u8 1523 return vshll_n_u8(a, 8); 1524 // CHECK: shll {{v[0-9]+}}.8h, {{v[0-9]+}}.8b, #8 1525} 1526 1527uint32x4_t test_vshll_n_u16(uint16x4_t a) { 1528 // CHECK-LABEL: test_vshll_n_u16 1529 return vshll_n_u16(a, 16); 1530 // CHECK: shll {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, #16 1531} 1532 1533uint64x2_t test_vshll_n_u32(uint32x2_t a) { 1534 // CHECK-LABEL: test_vshll_n_u32 1535 return vshll_n_u32(a, 32); 1536 // CHECK: shll {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, #32 1537} 1538 1539int16x8_t test_vshll_high_n_s8(int8x16_t a) { 1540 // CHECK-LABEL: test_vshll_high_n_s8 1541 return vshll_high_n_s8(a, 8); 1542 // CHECK: shll2 {{v[0-9]+}}.8h, {{v[0-9]+}}.16b, #8 1543} 1544 1545int32x4_t test_vshll_high_n_s16(int16x8_t a) { 1546 // CHECK-LABEL: test_vshll_high_n_s16 1547 return vshll_high_n_s16(a, 16); 1548 // CHECK: shll2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, #16 1549} 1550 1551int64x2_t test_vshll_high_n_s32(int32x4_t a) { 1552 // CHECK-LABEL: test_vshll_high_n_s32 1553 return vshll_high_n_s32(a, 32); 1554 // CHECK: shll2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, #32 1555} 1556 1557uint16x8_t test_vshll_high_n_u8(uint8x16_t a) { 1558 // CHECK-LABEL: test_vshll_high_n_u8 1559 return vshll_high_n_u8(a, 8); 1560 // CHECK: shll2 {{v[0-9]+}}.8h, {{v[0-9]+}}.16b, #8 1561} 1562 1563uint32x4_t test_vshll_high_n_u16(uint16x8_t a) { 1564 // CHECK-LABEL: test_vshll_high_n_u16 1565 return vshll_high_n_u16(a, 16); 1566 // CHECK: shll2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, #16 1567} 1568 1569uint64x2_t test_vshll_high_n_u32(uint32x4_t a) { 1570 // CHECK-LABEL: test_vshll_high_n_u32 1571 return vshll_high_n_u32(a, 32); 1572 // CHECK: shll2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, #32 1573} 1574 1575float16x4_t test_vcvt_f16_f32(float32x4_t a) { 1576 //CHECK-LABEL: test_vcvt_f16_f32 1577 return vcvt_f16_f32(a); 1578 // CHECK: fcvtn v{{[0-9]+}}.4h, v{{[0-9]+}}.4s 1579} 1580 1581float16x8_t test_vcvt_high_f16_f32(float16x4_t a, float32x4_t b) { 1582 //CHECK-LABEL: test_vcvt_high_f16_f32 1583 return vcvt_high_f16_f32(a, b); 1584 // CHECK: fcvtn2 v{{[0-9]+}}.8h, v{{[0-9]+}}.4s 1585} 1586 1587float32x2_t test_vcvt_f32_f64(float64x2_t a) { 1588 //CHECK-LABEL: test_vcvt_f32_f64 1589 return vcvt_f32_f64(a); 1590 // CHECK: fcvtn v{{[0-9]+}}.2s, v{{[0-9]+}}.2d 1591} 1592 1593float32x4_t test_vcvt_high_f32_f64(float32x2_t a, float64x2_t b) { 1594 //CHECK-LABEL: test_vcvt_high_f32_f64 1595 return vcvt_high_f32_f64(a, b); 1596 // CHECK: fcvtn2 v{{[0-9]+}}.4s, v{{[0-9]+}}.2d 1597} 1598 1599float32x2_t test_vcvtx_f32_f64(float64x2_t a) { 1600 //CHECK-LABEL: test_vcvtx_f32_f64 1601 return vcvtx_f32_f64(a); 1602 // CHECK: fcvtxn v{{[0-9]+}}.2s, v{{[0-9]+}}.2d 1603} 1604 1605float32x4_t test_vcvtx_high_f32_f64(float32x2_t a, float64x2_t b) { 1606 //CHECK-LABEL: test_vcvtx_high_f32_f64 1607 return vcvtx_high_f32_f64(a, b); 1608 // CHECK: fcvtxn2 v{{[0-9]+}}.4s, v{{[0-9]+}}.2d 1609} 1610 1611float32x4_t test_vcvt_f32_f16(float16x4_t a) { 1612 //CHECK-LABEL: test_vcvt_f32_f16 1613 return vcvt_f32_f16(a); 1614 // CHECK: fcvtl v{{[0-9]+}}.4s, v{{[0-9]+}}.4h 1615} 1616 1617float32x4_t test_vcvt_high_f32_f16(float16x8_t a) { 1618 //CHECK-LABEL: test_vcvt_high_f32_f16 1619 return vcvt_high_f32_f16(a); 1620 // CHECK: fcvtl2 v{{[0-9]+}}.4s, v{{[0-9]+}}.8h 1621} 1622 1623float64x2_t test_vcvt_f64_f32(float32x2_t a) { 1624 //CHECK-LABEL: test_vcvt_f64_f32 1625 return vcvt_f64_f32(a); 1626 // CHECK: fcvtl v{{[0-9]+}}.2d, v{{[0-9]+}}.2s 1627} 1628 1629float64x2_t test_vcvt_high_f64_f32(float32x4_t a) { 1630 //CHECK-LABEL: test_vcvt_high_f64_f32 1631 return vcvt_high_f64_f32(a); 1632 // CHECK: fcvtl2 v{{[0-9]+}}.2d, v{{[0-9]+}}.4s 1633} 1634 1635float32x2_t test_vrndn_f32(float32x2_t a) { 1636 //CHECK-LABEL: test_vrndn_f32 1637 return vrndn_f32(a); 1638 // CHECK: frintn v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1639} 1640 1641float32x4_t test_vrndnq_f32(float32x4_t a) { 1642 //CHECK-LABEL: test_vrndnq_f32 1643 return vrndnq_f32(a); 1644 // CHECK: frintn v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1645} 1646 1647float64x2_t test_vrndnq_f64(float64x2_t a) { 1648 //CHECK-LABEL: test_vrndnq_f64 1649 return vrndnq_f64(a); 1650 // CHECK: frintn v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 1651} 1652 1653float32x2_t test_vrnda_f32(float32x2_t a) { 1654 //CHECK-LABEL: test_vrnda_f32 1655 return vrnda_f32(a); 1656 // CHECK: frinta v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1657} 1658 1659float32x4_t test_vrndaq_f32(float32x4_t a) { 1660 //CHECK-LABEL: test_vrndaq_f32 1661 return vrndaq_f32(a); 1662 // CHECK: frinta v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1663} 1664 1665float64x2_t test_vrndaq_f64(float64x2_t a) { 1666 //CHECK-LABEL: test_vrndaq_f64 1667 return vrndaq_f64(a); 1668 // CHECK: frinta v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 1669} 1670 1671float32x2_t test_vrndp_f32(float32x2_t a) { 1672 //CHECK-LABEL: test_vrndp_f32 1673 return vrndp_f32(a); 1674 // CHECK: frintp v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1675} 1676 1677float32x4_t test_vrndpq_f32(float32x4_t a) { 1678 //CHECK-LABEL: test_vrndpq_f32 1679 return vrndpq_f32(a); 1680 // CHECK: frintp v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1681} 1682 1683float64x2_t test_vrndpq_f64(float64x2_t a) { 1684 //CHECK-LABEL: test_vrndpq_f64 1685 return vrndpq_f64(a); 1686 // CHECK: frintp v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 1687} 1688 1689float32x2_t test_vrndm_f32(float32x2_t a) { 1690 //CHECK-LABEL: test_vrndm_f32 1691 return vrndm_f32(a); 1692 // CHECK: frintm v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1693} 1694 1695float32x4_t test_vrndmq_f32(float32x4_t a) { 1696 //CHECK-LABEL: test_vrndmq_f32 1697 return vrndmq_f32(a); 1698 // CHECK: frintm v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1699} 1700 1701float64x2_t test_vrndmq_f64(float64x2_t a) { 1702 //CHECK-LABEL: test_vrndmq_f64 1703 return vrndmq_f64(a); 1704 // CHECK: frintm v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 1705} 1706 1707float32x2_t test_vrndx_f32(float32x2_t a) { 1708 //CHECK-LABEL: test_vrndx_f32 1709 return vrndx_f32(a); 1710 // CHECK: frintx v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1711} 1712 1713float32x4_t test_vrndxq_f32(float32x4_t a) { 1714 //CHECK-LABEL: test_vrndxq_f32 1715 return vrndxq_f32(a); 1716 // CHECK: frintx v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1717} 1718 1719float64x2_t test_vrndxq_f64(float64x2_t a) { 1720 //CHECK-LABEL: test_vrndxq_f64 1721 return vrndxq_f64(a); 1722 // CHECK: frintx v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 1723} 1724 1725float32x2_t test_vrnd_f32(float32x2_t a) { 1726 //CHECK-LABEL: test_vrnd_f32 1727 return vrnd_f32(a); 1728 // CHECK: frintz v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1729} 1730 1731float32x4_t test_vrndq_f32(float32x4_t a) { 1732 //CHECK-LABEL: test_vrndq_f32 1733 return vrndq_f32(a); 1734 // CHECK: frintz v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1735} 1736 1737float64x2_t test_vrndq_f64(float64x2_t a) { 1738 //CHECK-LABEL: test_vrndq_f64 1739 return vrndq_f64(a); 1740 // CHECK: frintz v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 1741} 1742 1743float32x2_t test_vrndi_f32(float32x2_t a) { 1744 //CHECK-LABEL: test_vrndi_f32 1745 return vrndi_f32(a); 1746 // CHECK: frinti v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1747} 1748 1749float32x4_t test_vrndiq_f32(float32x4_t a) { 1750 //CHECK-LABEL: test_vrndiq_f32 1751 return vrndiq_f32(a); 1752 // CHECK: frinti v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1753} 1754 1755float64x2_t test_vrndiq_f64(float64x2_t a) { 1756 //CHECK-LABEL: test_vrndiq_f64 1757 return vrndiq_f64(a); 1758 // CHECK: frinti v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 1759} 1760 1761int32x2_t test_vcvt_s32_f32(float32x2_t a) { 1762 //CHECK-LABEL: test_vcvt_s32_f32 1763 return vcvt_s32_f32(a); 1764 // CHECK: fcvtzs v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1765} 1766 1767int32x4_t test_vcvtq_s32_f32(float32x4_t a) { 1768 //CHECK-LABEL: test_vcvtq_s32_f32 1769 return vcvtq_s32_f32(a); 1770 // CHECK: fcvtzs v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1771} 1772 1773int64x2_t test_vcvtq_s64_f64(float64x2_t a) { 1774 //CHECK-LABEL: test_vcvtq_s64_f64 1775 return vcvtq_s64_f64(a); 1776 // CHECK: fcvtzs v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 1777} 1778 1779uint32x2_t test_vcvt_u32_f32(float32x2_t a) { 1780 //CHECK-LABEL: test_vcvt_u32_f32 1781 return vcvt_u32_f32(a); 1782 // CHECK: fcvtzu v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1783} 1784 1785uint32x4_t test_vcvtq_u32_f32(float32x4_t a) { 1786 //CHECK-LABEL: test_vcvtq_u32_f32 1787 return vcvtq_u32_f32(a); 1788 // CHECK: fcvtzu v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1789} 1790 1791uint64x2_t test_vcvtq_u64_f64(float64x2_t a) { 1792 //CHECK-LABEL: test_vcvtq_u64_f64 1793 return vcvtq_u64_f64(a); 1794 // CHECK: fcvtzu v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 1795} 1796 1797int32x2_t test_vcvtn_s32_f32(float32x2_t a) { 1798 //CHECK-LABEL: test_vcvtn_s32_f32 1799 return vcvtn_s32_f32(a); 1800 // CHECK: fcvtns v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1801} 1802 1803int32x4_t test_vcvtnq_s32_f32(float32x4_t a) { 1804 //CHECK-LABEL: test_vcvtnq_s32_f32 1805 return vcvtnq_s32_f32(a); 1806 // CHECK: fcvtns v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1807} 1808 1809int64x2_t test_vcvtnq_s64_f64(float64x2_t a) { 1810 //CHECK-LABEL: test_vcvtnq_s64_f64 1811 return vcvtnq_s64_f64(a); 1812 // CHECK: fcvtns v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 1813} 1814 1815uint32x2_t test_vcvtn_u32_f32(float32x2_t a) { 1816 //CHECK-LABEL: test_vcvtn_u32_f32 1817 return vcvtn_u32_f32(a); 1818 // CHECK: fcvtnu v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1819} 1820 1821uint32x4_t test_vcvtnq_u32_f32(float32x4_t a) { 1822 //CHECK-LABEL: test_vcvtnq_u32_f32 1823 return vcvtnq_u32_f32(a); 1824 // CHECK: fcvtnu v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1825} 1826 1827uint64x2_t test_vcvtnq_u64_f64(float64x2_t a) { 1828 //CHECK-LABEL: test_vcvtnq_u64_f64 1829 return vcvtnq_u64_f64(a); 1830 // CHECK: fcvtnu v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 1831} 1832 1833int32x2_t test_vcvtp_s32_f32(float32x2_t a) { 1834 //CHECK-LABEL: test_vcvtp_s32_f32 1835 return vcvtp_s32_f32(a); 1836 // CHECK: fcvtps v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1837} 1838 1839int32x4_t test_vcvtpq_s32_f32(float32x4_t a) { 1840 //CHECK-LABEL: test_vcvtpq_s32_f32 1841 return vcvtpq_s32_f32(a); 1842 // CHECK: fcvtps v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1843} 1844 1845int64x2_t test_vcvtpq_s64_f64(float64x2_t a) { 1846 //CHECK-LABEL: test_vcvtpq_s64_f64 1847 return vcvtpq_s64_f64(a); 1848 // CHECK: fcvtps v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 1849} 1850 1851uint32x2_t test_vcvtp_u32_f32(float32x2_t a) { 1852 //CHECK-LABEL: test_vcvtp_u32_f32 1853 return vcvtp_u32_f32(a); 1854 // CHECK: fcvtpu v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1855} 1856 1857uint32x4_t test_vcvtpq_u32_f32(float32x4_t a) { 1858 //CHECK-LABEL: test_vcvtpq_u32_f32 1859 return vcvtpq_u32_f32(a); 1860 // CHECK: fcvtpu v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1861} 1862 1863uint64x2_t test_vcvtpq_u64_f64(float64x2_t a) { 1864 //CHECK-LABEL: test_vcvtpq_u64_f64 1865 return vcvtpq_u64_f64(a); 1866 // CHECK: fcvtpu v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 1867} 1868 1869int32x2_t test_vcvtm_s32_f32(float32x2_t a) { 1870 //CHECK-LABEL: test_vcvtm_s32_f32 1871 return vcvtm_s32_f32(a); 1872 // CHECK: fcvtms v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1873} 1874 1875int32x4_t test_vcvtmq_s32_f32(float32x4_t a) { 1876 //CHECK-LABEL: test_vcvtmq_s32_f32 1877 return vcvtmq_s32_f32(a); 1878 // CHECK: fcvtms v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1879} 1880 1881int64x2_t test_vcvtmq_s64_f64(float64x2_t a) { 1882 //CHECK-LABEL: test_vcvtmq_s64_f64 1883 return vcvtmq_s64_f64(a); 1884 // CHECK: fcvtms v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 1885} 1886 1887uint32x2_t test_vcvtm_u32_f32(float32x2_t a) { 1888 //CHECK-LABEL: test_vcvtm_u32_f32 1889 return vcvtm_u32_f32(a); 1890 // CHECK: fcvtmu v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1891} 1892 1893uint32x4_t test_vcvtmq_u32_f32(float32x4_t a) { 1894 //CHECK-LABEL: test_vcvtmq_u32_f32 1895 return vcvtmq_u32_f32(a); 1896 // CHECK: fcvtmu v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1897} 1898 1899uint64x2_t test_vcvtmq_u64_f64(float64x2_t a) { 1900 //CHECK-LABEL: test_vcvtmq_u64_f64 1901 return vcvtmq_u64_f64(a); 1902 // CHECK: fcvtmu v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 1903} 1904 1905int32x2_t test_vcvta_s32_f32(float32x2_t a) { 1906 //CHECK-LABEL: test_vcvta_s32_f32 1907 return vcvta_s32_f32(a); 1908 // CHECK: fcvtas v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1909} 1910 1911int32x4_t test_vcvtaq_s32_f32(float32x4_t a) { 1912 //CHECK-LABEL: test_vcvtaq_s32_f32 1913 return vcvtaq_s32_f32(a); 1914 // CHECK: fcvtas v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1915} 1916 1917int64x2_t test_vcvtaq_s64_f64(float64x2_t a) { 1918 //CHECK-LABEL: test_vcvtaq_s64_f64 1919 return vcvtaq_s64_f64(a); 1920 // CHECK: fcvtas v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 1921} 1922 1923uint32x2_t test_vcvta_u32_f32(float32x2_t a) { 1924 //CHECK-LABEL: test_vcvta_u32_f32 1925 return vcvta_u32_f32(a); 1926 // CHECK: fcvtau v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1927} 1928 1929uint32x4_t test_vcvtaq_u32_f32(float32x4_t a) { 1930 //CHECK-LABEL: test_vcvtaq_u32_f32 1931 return vcvtaq_u32_f32(a); 1932 // CHECK: fcvtau v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1933} 1934 1935uint64x2_t test_vcvtaq_u64_f64(float64x2_t a) { 1936 //CHECK-LABEL: test_vcvtaq_u64_f64 1937 return vcvtaq_u64_f64(a); 1938 // CHECK: fcvtau v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 1939} 1940 1941float32x2_t test_vrsqrte_f32(float32x2_t a) { 1942 //CHECK-LABEL: test_vrsqrte_f32 1943 return vrsqrte_f32(a); 1944 // CHECK: frsqrte v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1945} 1946 1947float32x4_t test_vrsqrteq_f32(float32x4_t a) { 1948 //CHECK-LABEL: test_vrsqrteq_f32 1949 return vrsqrteq_f32(a); 1950 // CHECK: frsqrte v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1951} 1952 1953float64x2_t test_vrsqrteq_f64(float64x2_t a) { 1954 //CHECK-LABEL: test_vrsqrteq_f64 1955 return vrsqrteq_f64(a); 1956 // CHECK: frsqrte v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 1957} 1958 1959float32x2_t test_vrecpe_f32(float32x2_t a) { 1960 //CHECK-LABEL: test_vrecpe_f32 1961 return vrecpe_f32(a); 1962 // CHECK: frecpe v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1963} 1964 1965float32x4_t test_vrecpeq_f32(float32x4_t a) { 1966 //CHECK-LABEL: test_vrecpeq_f32 1967 return vrecpeq_f32(a); 1968 // CHECK: frecpe v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1969} 1970 1971float64x2_t test_vrecpeq_f64(float64x2_t a) { 1972 //CHECK-LABEL: test_vrecpeq_f64 1973 return vrecpeq_f64(a); 1974 // CHECK: frecpe v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 1975} 1976 1977uint32x2_t test_vrecpe_u32(uint32x2_t a) { 1978 //CHECK-LABEL: test_vrecpe_u32 1979 return vrecpe_u32(a); 1980 // CHECK: urecpe v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1981} 1982 1983uint32x4_t test_vrecpeq_u32(uint32x4_t a) { 1984 //CHECK-LABEL: test_vrecpeq_u32 1985 return vrecpeq_u32(a); 1986 // CHECK: urecpe v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1987} 1988 1989float32x2_t test_vsqrt_f32(float32x2_t a) { 1990 //CHECK-LABEL: test_vsqrt_f32 1991 return vsqrt_f32(a); 1992 // CHECK: fsqrt v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 1993} 1994 1995float32x4_t test_vsqrtq_f32(float32x4_t a) { 1996 //CHECK-LABEL: test_vsqrtq_f32 1997 return vsqrtq_f32(a); 1998 // CHECK: fsqrt v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 1999} 2000 2001float64x2_t test_vsqrtq_f64(float64x2_t a) { 2002 //CHECK-LABEL: test_vsqrtq_f64 2003 return vsqrtq_f64(a); 2004 // CHECK: fsqrt v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 2005} 2006 2007float32x2_t test_vcvt_f32_s32(int32x2_t a) { 2008 //CHECK-LABEL: test_vcvt_f32_s32 2009 return vcvt_f32_s32(a); 2010 //CHECK: scvtf v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 2011} 2012 2013float32x2_t test_vcvt_f32_u32(uint32x2_t a) { 2014 //CHECK-LABEL: test_vcvt_f32_u32 2015 return vcvt_f32_u32(a); 2016 //CHECK: ucvtf v{{[0-9]+}}.2s, v{{[0-9]+}}.2s 2017} 2018 2019float32x4_t test_vcvtq_f32_s32(int32x4_t a) { 2020 //CHECK-LABEL: test_vcvtq_f32_s32 2021 return vcvtq_f32_s32(a); 2022 //CHECK: scvtf v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 2023} 2024 2025float32x4_t test_vcvtq_f32_u32(uint32x4_t a) { 2026 //CHECK-LABEL: test_vcvtq_f32_u32 2027 return vcvtq_f32_u32(a); 2028 //CHECK: ucvtf v{{[0-9]+}}.4s, v{{[0-9]+}}.4s 2029} 2030 2031float64x2_t test_vcvtq_f64_s64(int64x2_t a) { 2032 //CHECK-LABEL: test_vcvtq_f64_s64 2033 return vcvtq_f64_s64(a); 2034 //CHECK: scvtf v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 2035} 2036 2037float64x2_t test_vcvtq_f64_u64(uint64x2_t a) { 2038 //CHECK-LABEL: test_vcvtq_f64_u64 2039 return vcvtq_f64_u64(a); 2040 //CHECK: ucvtf v{{[0-9]+}}.2d, v{{[0-9]+}}.2d 2041} 2042