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