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}} 11 uint8x8_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}} 17 uint16x4_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}} 23 uint32x2_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}} 29 uint64x1_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}} 35 uint64x1_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}} 41 uint64x1_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}} 47 uint8x16_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}} 53 uint16x8_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}} 59 uint32x4_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}} 65 uint64x2_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}} 71 uint8x8_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}} 77 uint16x4_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}} 83 uint32x2_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}} 89 uint8x16_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}} 95 uint16x8_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}} 101 uint32x4_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}} 107 uint64x2_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 113 uint32x2_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 119 uint64x1_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 125 uint32x4_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}} 131 uint8x8_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}} 137 uint8x16_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}} 143 uint16x4_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}} 149 uint16x8_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 155 uint64x2_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 161 uint64x2_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}} 167 uint8x8_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}} 173 uint16x4_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}} 179 uint32x2_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}} 185 uint64x1_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}} 191 uint8x16_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}} 197 uint16x8_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}} 203 uint32x4_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}} 209 uint64x2_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 215 uint32x2_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 221 uint64x1_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 227 uint32x4_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 233 uint64x2_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}} 239 uint8x8_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}} 245 uint16x4_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}} 251 uint32x2_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}} 257 uint64x1_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}} 263 uint8x16_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}} 269 uint16x8_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}} 275 uint32x4_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}} 281 uint64x2_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 287 uint32x2_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 293 uint64x1_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 299 uint32x4_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 305 uint64x2_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}} 311 uint8x8_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}} 317 uint16x4_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}} 323 uint32x2_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}} 329 uint64x1_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}} 335 uint8x16_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}} 341 uint16x8_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}} 347 uint32x4_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}} 353 uint64x2_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 359 uint32x2_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 365 uint64x1_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 371 uint32x4_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 377 uint64x2_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 383 uint8x8_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 389 uint16x4_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 395 uint32x2_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 401 uint64x1_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 407 uint8x16_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 413 uint16x8_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 419 uint32x4_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 425 uint64x2_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 431 uint32x2_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 437 uint64x1_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 443 uint32x4_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 449 uint64x2_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 455 int8x8_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 461 uint8x8_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 467 poly8x8_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 473 int8x16_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 479 uint8x16_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 485 poly8x16_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 491 int8x8_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 497 int16x4_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 503 uint8x8_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 509 uint16x4_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 515 poly8x8_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 521 poly16x4_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 527 int8x16_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 533 int16x8_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 539 uint8x16_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 545 uint16x8_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 551 poly8x16_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 557 poly16x8_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 563 int8x8_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 569 int16x4_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 575 int32x2_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 581 uint8x8_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 587 uint16x4_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 593 uint32x2_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 599 poly8x8_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 605 poly16x4_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 611 float32x2_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 617 int8x16_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 623 int16x8_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 629 int32x4_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 635 uint8x16_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 641 uint16x8_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 647 uint32x4_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 653 poly8x16_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 659 poly16x8_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 665 float32x4_t test_vrev64q_f32(float32x4_t a) { 666 return vrev64q_f32(a); 667 } 668 669 int16x4_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 675 int32x2_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 681 int64x1_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 687 uint16x4_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 693 uint32x2_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 699 uint64x1_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 705 int16x8_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 711 int32x4_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 717 int64x2_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 723 uint16x8_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 729 uint32x4_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 735 uint64x2_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 741 int16x4_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 747 int32x2_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 753 int64x1_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 759 uint16x4_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 765 uint32x2_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 771 uint64x1_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 777 int16x8_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 783 int32x4_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 789 int64x2_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 795 uint16x8_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 801 uint32x4_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 807 uint64x2_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 813 int8x8_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 819 int8x16_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 825 int16x4_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 831 int16x8_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 837 int32x2_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 843 int32x4_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 849 int64x2_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 855 int8x8_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 861 int8x16_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 867 int16x4_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 873 int16x8_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 879 int32x2_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 885 int32x4_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 891 int64x2_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 897 int8x8_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 903 int8x16_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 909 int16x4_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 915 int16x8_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 921 int32x2_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 927 int32x4_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 933 int64x2_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 939 float32x2_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 945 float32x4_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 951 float64x2_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 957 int8x8_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 963 int8x16_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 969 int16x4_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 975 int16x8_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 981 int32x2_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 987 int32x4_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 993 int64x2_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 999 float32x2_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 1005 float32x4_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 1011 float64x2_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 1017 int8x8_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 1023 int8x16_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 1029 int16x4_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 1035 int16x8_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 1041 int32x2_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 1047 int32x4_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 1053 int64x2_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 1059 int8x8_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 1065 int8x16_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 1071 int16x4_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 1077 int16x8_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 1083 int32x2_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 1089 int32x4_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 1095 int8x8_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 1101 int8x16_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 1107 int16x4_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 1113 int16x8_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 1119 int32x2_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 1125 int32x4_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 1131 uint8x8_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 1137 uint8x16_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 1143 uint16x4_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 1149 uint16x8_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 1155 uint32x2_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 1161 uint32x4_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 1167 int8x8_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 1173 int8x16_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 1179 uint8x8_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 1185 uint8x16_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 1191 poly8x8_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 1197 poly8x16_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 1203 int8x8_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 1209 int8x16_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 1215 int16x4_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 1221 int16x8_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 1227 int32x2_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 1233 int32x4_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 1239 uint8x8_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 1245 uint8x16_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 1251 uint16x4_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 1257 uint16x8_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 1263 uint32x2_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 1269 uint32x4_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 1275 poly8x8_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 1281 poly8x16_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 1287 int8x8_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 1293 int8x16_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 1299 uint8x8_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 1305 uint8x16_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 1311 poly8x8_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 1317 poly8x16_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 1323 int8x8_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 1329 int16x4_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 1335 int32x2_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 1341 uint8x8_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 1347 uint16x4_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 1353 uint32x2_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 1359 int8x16_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 1365 int16x8_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 1371 int32x4_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 1377 int8x16_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 1383 int16x8_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 1389 int32x4_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 1395 int8x8_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 1401 int16x4_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 1407 int32x2_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 1413 int8x16_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 1419 int16x8_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 1425 int32x4_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 1431 int8x8_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 1437 int16x4_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 1443 int32x2_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 1449 int8x16_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 1455 int16x8_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 1461 int32x4_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 1467 uint8x8_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 1473 uint16x4_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 1479 uint32x2_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 1485 uint8x16_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 1491 uint16x8_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 1497 uint32x4_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 1503 int16x8_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 1509 int32x4_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 1515 int64x2_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 1521 uint16x8_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 1527 uint32x4_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 1533 uint64x2_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 1539 int16x8_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 1545 int32x4_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 1551 int64x2_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 1557 uint16x8_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 1563 uint32x4_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 1569 uint64x2_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 1575 float16x4_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 1581 float16x8_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 1587 float32x2_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 1593 float32x4_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 1599 float32x2_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 1605 float32x4_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 1611 float32x4_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 1617 float32x4_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 1623 float64x2_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 1629 float64x2_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 1635 float32x2_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 1641 float32x4_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 1647 float64x2_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 1653 float32x2_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 1659 float32x4_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 1665 float64x2_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 1671 float32x2_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 1677 float32x4_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 1683 float64x2_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 1689 float32x2_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 1695 float32x4_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 1701 float64x2_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 1707 float32x2_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 1713 float32x4_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 1719 float64x2_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 1725 float32x2_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 1731 float32x4_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 1737 float64x2_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 1743 float32x2_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 1749 float32x4_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 1755 float64x2_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 1761 int32x2_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 1767 int32x4_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 1773 int64x2_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 1779 uint32x2_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 1785 uint32x4_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 1791 uint64x2_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 1797 int32x2_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 1803 int32x4_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 1809 int64x2_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 1815 uint32x2_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 1821 uint32x4_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 1827 uint64x2_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 1833 int32x2_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 1839 int32x4_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 1845 int64x2_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 1851 uint32x2_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 1857 uint32x4_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 1863 uint64x2_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 1869 int32x2_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 1875 int32x4_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 1881 int64x2_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 1887 uint32x2_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 1893 uint32x4_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 1899 uint64x2_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 1905 int32x2_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 1911 int32x4_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 1917 int64x2_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 1923 uint32x2_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 1929 uint32x4_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 1935 uint64x2_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 1941 float32x2_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 1947 float32x4_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 1953 float64x2_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 1959 float32x2_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 1965 float32x4_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 1971 float64x2_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 1977 uint32x2_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 1983 uint32x4_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 1989 float32x2_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 1995 float32x4_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 2001 float64x2_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 2007 float32x2_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 2013 float32x2_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 2019 float32x4_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 2025 float32x4_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 2031 float64x2_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 2037 float64x2_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