1 // RUN: %clang_cc1 -triple arm64-apple-ios7.0 -target-feature +neon -ffreestanding -Os -S -o - %s | FileCheck %s 2 // REQUIRES: aarch64-registered-target 3 4 #include <arm_neon.h> 5 6 int16x8_t test_vaddw_high_s8(int16x8_t lhs, int8x16_t rhs) { 7 // CHECK: saddw2.8h 8 return vaddw_high_s8(lhs, rhs); 9 } 10 11 int32x4_t test_vaddw_high_s16(int32x4_t lhs, int16x8_t rhs) { 12 // CHECK: saddw2.4s 13 return vaddw_high_s16(lhs, rhs); 14 } 15 16 int64x2_t test_vaddw_high_s32(int64x2_t lhs, int32x4_t rhs) { 17 // CHECK: saddw2.2d 18 return vaddw_high_s32(lhs, rhs); 19 } 20 21 uint16x8_t test_vaddw_high_u8(uint16x8_t lhs, uint8x16_t rhs) { 22 // CHECK: uaddw2.8h 23 return vaddw_high_u8(lhs, rhs); 24 } 25 26 uint32x4_t test_vaddw_high_u16(uint32x4_t lhs, uint16x8_t rhs) { 27 // CHECK: uaddw2.4s 28 return vaddw_high_u16(lhs, rhs); 29 } 30 31 uint64x2_t test_vaddw_high_u32(uint64x2_t lhs, uint32x4_t rhs) { 32 // CHECK: uaddw2.2d 33 return vaddw_high_u32(lhs, rhs); 34 } 35 36 int16x8_t test_vsubw_high_s8(int16x8_t lhs, int8x16_t rhs) { 37 // CHECK: ssubw2.8h 38 return vsubw_high_s8(lhs, rhs); 39 } 40 41 int32x4_t test_vsubw_high_s16(int32x4_t lhs, int16x8_t rhs) { 42 // CHECK: ssubw2.4s 43 return vsubw_high_s16(lhs, rhs); 44 } 45 46 int64x2_t test_vsubw_high_s32(int64x2_t lhs, int32x4_t rhs) { 47 // CHECK: ssubw2.2d 48 return vsubw_high_s32(lhs, rhs); 49 } 50 51 uint16x8_t test_vsubw_high_u8(uint16x8_t lhs, uint8x16_t rhs) { 52 // CHECK: usubw2.8h 53 return vsubw_high_u8(lhs, rhs); 54 } 55 56 uint32x4_t test_vsubw_high_u16(uint32x4_t lhs, uint16x8_t rhs) { 57 // CHECK: usubw2.4s 58 return vsubw_high_u16(lhs, rhs); 59 } 60 61 uint64x2_t test_vsubw_high_u32(uint64x2_t lhs, uint32x4_t rhs) { 62 // CHECK: usubw2.2d 63 return vsubw_high_u32(lhs, rhs); 64 } 65 66 int16x8_t test_vabdl_high_s8(int8x16_t lhs, int8x16_t rhs) { 67 // CHECK: sabdl2.8h 68 return vabdl_high_s8(lhs, rhs); 69 } 70 71 int32x4_t test_vabdl_high_s16(int16x8_t lhs, int16x8_t rhs) { 72 // CHECK: sabdl2.4s 73 return vabdl_high_s16(lhs, rhs); 74 } 75 76 int64x2_t test_vabdl_high_s32(int32x4_t lhs, int32x4_t rhs) { 77 // CHECK: sabdl2.2d 78 return vabdl_high_s32(lhs, rhs); 79 } 80 81 uint16x8_t test_vabdl_high_u8(uint8x16_t lhs, uint8x16_t rhs) { 82 // CHECK: uabdl2.8h 83 return vabdl_high_u8(lhs, rhs); 84 } 85 86 uint32x4_t test_vabdl_high_u16(uint16x8_t lhs, uint16x8_t rhs) { 87 // CHECK: uabdl2.4s 88 return vabdl_high_u16(lhs, rhs); 89 } 90 91 uint64x2_t test_vabdl_high_u32(uint32x4_t lhs, uint32x4_t rhs) { 92 // CHECK: uabdl2.2d 93 return vabdl_high_u32(lhs, rhs); 94 } 95 96 int16x8_t test_vabal_high_s8(int16x8_t accum, int8x16_t lhs, int8x16_t rhs) { 97 // CHECK: sabal2.8h 98 return vabal_high_s8(accum, lhs, rhs); 99 } 100 101 int32x4_t test_vabal_high_s16(int32x4_t accum, int16x8_t lhs, int16x8_t rhs) { 102 // CHECK: sabal2.4s 103 return vabal_high_s16(accum, lhs, rhs); 104 } 105 106 int64x2_t test_vabal_high_s32(int64x2_t accum, int32x4_t lhs, int32x4_t rhs) { 107 // CHECK: sabal2.2d 108 return vabal_high_s32(accum, lhs, rhs); 109 } 110 111 uint16x8_t test_vabal_high_u8(uint16x8_t accum, uint8x16_t lhs, uint8x16_t rhs) { 112 // CHECK: uabal2.8h 113 return vabal_high_u8(accum, lhs, rhs); 114 } 115 116 uint32x4_t test_vabal_high_u16(uint32x4_t accum, uint16x8_t lhs, uint16x8_t rhs) { 117 // CHECK: uabal2.4s 118 return vabal_high_u16(accum, lhs, rhs); 119 } 120 121 uint64x2_t test_vabal_high_u32(uint64x2_t accum, uint32x4_t lhs, uint32x4_t rhs) { 122 // CHECK: uabal2.2d 123 return vabal_high_u32(accum, lhs, rhs); 124 } 125 126 int32x4_t test_vqdmlal_high_s16(int32x4_t accum, int16x8_t lhs, int16x8_t rhs) { 127 // CHECK: sqdmlal2.4s 128 return vqdmlal_high_s16(accum, lhs, rhs); 129 } 130 131 int64x2_t test_vqdmlal_high_s32(int64x2_t accum, int32x4_t lhs, int32x4_t rhs) { 132 // CHECK: sqdmlal2.2d 133 return vqdmlal_high_s32(accum, lhs, rhs); 134 } 135 136 int32x4_t test_vqdmlsl_high_s16(int32x4_t accum, int16x8_t lhs, int16x8_t rhs) { 137 // CHECK: sqdmlsl2.4s 138 return vqdmlsl_high_s16(accum, lhs, rhs); 139 } 140 141 int64x2_t test_vqdmlsl_high_s32(int64x2_t accum, int32x4_t lhs, int32x4_t rhs) { 142 // CHECK: sqdmlsl2.2d 143 return vqdmlsl_high_s32(accum, lhs, rhs); 144 } 145 146 int32x4_t test_vqdmull_high_s16(int16x8_t lhs, int16x8_t rhs) { 147 // CHECK: sqdmull2.4s 148 return vqdmull_high_s16(lhs, rhs); 149 } 150 151 int64x2_t test_vqdmull_high_s32(int32x4_t lhs, int32x4_t rhs) { 152 // CHECK: sqdmull2.2d 153 return vqdmull_high_s32(lhs, rhs); 154 } 155 156 int16x8_t test_vshll_high_n_s8(int8x16_t in) { 157 // CHECK: sshll2.8h 158 return vshll_high_n_s8(in, 7); 159 } 160 161 int32x4_t test_vshll_high_n_s16(int16x8_t in) { 162 // CHECK: sshll2.4s 163 return vshll_high_n_s16(in, 15); 164 } 165 166 int64x2_t test_vshll_high_n_s32(int32x4_t in) { 167 // CHECK: sshll2.2d 168 return vshll_high_n_s32(in, 31); 169 } 170 171 int16x8_t test_vshll_high_n_u8(int8x16_t in) { 172 // CHECK: ushll2.8h 173 return vshll_high_n_u8(in, 7); 174 } 175 176 int32x4_t test_vshll_high_n_u16(int16x8_t in) { 177 // CHECK: ushll2.4s 178 return vshll_high_n_u16(in, 15); 179 } 180 181 int64x2_t test_vshll_high_n_u32(int32x4_t in) { 182 // CHECK: ushll2.2d 183 return vshll_high_n_u32(in, 31); 184 } 185 186 int16x8_t test_vshll_high_n_s8_max(int8x16_t in) { 187 // CHECK: shll2.8h 188 return vshll_high_n_s8(in, 8); 189 } 190 191 int32x4_t test_vshll_high_n_s16_max(int16x8_t in) { 192 // CHECK: shll2.4s 193 return vshll_high_n_s16(in, 16); 194 } 195 196 int64x2_t test_vshll_high_n_s32_max(int32x4_t in) { 197 // CHECK: shll2.2d 198 return vshll_high_n_s32(in, 32); 199 } 200 201 int16x8_t test_vshll_high_n_u8_max(int8x16_t in) { 202 // CHECK: shll2.8h 203 return vshll_high_n_u8(in, 8); 204 } 205 206 int32x4_t test_vshll_high_n_u16_max(int16x8_t in) { 207 // CHECK: shll2.4s 208 return vshll_high_n_u16(in, 16); 209 } 210 211 int64x2_t test_vshll_high_n_u32_max(int32x4_t in) { 212 // CHECK: shll2.2d 213 return vshll_high_n_u32(in, 32); 214 } 215 216 int16x8_t test_vsubl_high_s8(int8x16_t lhs, int8x16_t rhs) { 217 // CHECK: ssubl2.8h 218 return vsubl_high_s8(lhs, rhs); 219 } 220 221 int32x4_t test_vsubl_high_s16(int16x8_t lhs, int16x8_t rhs) { 222 // CHECK: ssubl2.4s 223 return vsubl_high_s16(lhs, rhs); 224 } 225 226 int64x2_t test_vsubl_high_s32(int32x4_t lhs, int32x4_t rhs) { 227 // CHECK: ssubl2.2d 228 return vsubl_high_s32(lhs, rhs); 229 } 230 231 uint16x8_t test_vsubl_high_u8(uint8x16_t lhs, uint8x16_t rhs) { 232 // CHECK: usubl2.8h 233 return vsubl_high_u8(lhs, rhs); 234 } 235 236 uint32x4_t test_vsubl_high_u16(uint16x8_t lhs, uint16x8_t rhs) { 237 // CHECK: usubl2.4s 238 return vsubl_high_u16(lhs, rhs); 239 } 240 241 uint64x2_t test_vsubl_high_u32(uint32x4_t lhs, uint32x4_t rhs) { 242 // CHECK: usubl2.2d 243 return vsubl_high_u32(lhs, rhs); 244 } 245 246 int8x16_t test_vrshrn_high_n_s16(int8x8_t lowpart, int16x8_t input) { 247 // CHECK: rshrn2.16b 248 return vrshrn_high_n_s16(lowpart, input, 2); 249 } 250 251 int16x8_t test_vrshrn_high_n_s32(int16x4_t lowpart, int32x4_t input) { 252 // CHECK: rshrn2.8h 253 return vrshrn_high_n_s32(lowpart, input, 2); 254 } 255 256 int32x4_t test_vrshrn_high_n_s64(int32x2_t lowpart, int64x2_t input) { 257 // CHECK: shrn2.4s 258 return vrshrn_high_n_s64(lowpart, input, 2); 259 } 260 261 uint8x16_t test_vrshrn_high_n_u16(uint8x8_t lowpart, uint16x8_t input) { 262 // CHECK: rshrn2.16b 263 return vrshrn_high_n_u16(lowpart, input, 2); 264 } 265 266 uint16x8_t test_vrshrn_high_n_u32(uint16x4_t lowpart, uint32x4_t input) { 267 // CHECK: rshrn2.8h 268 return vrshrn_high_n_u32(lowpart, input, 2); 269 } 270 271 uint32x4_t test_vrshrn_high_n_u64(uint32x2_t lowpart, uint64x2_t input) { 272 // CHECK: rshrn2.4s 273 return vrshrn_high_n_u64(lowpart, input, 2); 274 } 275 276 int8x16_t test_vshrn_high_n_s16(int8x8_t lowpart, int16x8_t input) { 277 // CHECK: shrn2.16b 278 return vshrn_high_n_s16(lowpart, input, 2); 279 } 280 281 int16x8_t test_vshrn_high_n_s32(int16x4_t lowpart, int32x4_t input) { 282 // CHECK: shrn2.8h 283 return vshrn_high_n_s32(lowpart, input, 2); 284 } 285 286 int32x4_t test_vshrn_high_n_s64(int32x2_t lowpart, int64x2_t input) { 287 // CHECK: shrn2.4s 288 return vshrn_high_n_s64(lowpart, input, 2); 289 } 290 291 uint8x16_t test_vshrn_high_n_u16(uint8x8_t lowpart, uint16x8_t input) { 292 // CHECK: shrn2.16b 293 return vshrn_high_n_u16(lowpart, input, 2); 294 } 295 296 uint16x8_t test_vshrn_high_n_u32(uint16x4_t lowpart, uint32x4_t input) { 297 // CHECK: shrn2.8h 298 return vshrn_high_n_u32(lowpart, input, 2); 299 } 300 301 uint32x4_t test_vshrn_high_n_u64(uint32x2_t lowpart, uint64x2_t input) { 302 // CHECK: shrn2.4s 303 return vshrn_high_n_u64(lowpart, input, 2); 304 } 305 306 uint8x16_t test_vqshrun_high_n_s16(uint8x8_t lowpart, int16x8_t input) { 307 // CHECK: sqshrun2.16b 308 return vqshrun_high_n_s16(lowpart, input, 2); 309 } 310 311 uint16x8_t test_vqshrun_high_n_s32(uint16x4_t lowpart, int32x4_t input) { 312 // CHECK: sqshrun2.8h 313 return vqshrun_high_n_s32(lowpart, input, 2); 314 } 315 316 uint32x4_t test_vqshrun_high_n_s64(uint32x2_t lowpart, int64x2_t input) { 317 // CHECK: sqshrun2.4s 318 return vqshrun_high_n_s64(lowpart, input, 2); 319 } 320 321 uint8x16_t test_vqrshrun_high_n_s16(uint8x8_t lowpart, int16x8_t input) { 322 // CHECK: sqrshrun2.16b 323 return vqrshrun_high_n_s16(lowpart, input, 2); 324 } 325 326 uint16x8_t test_vqrshrun_high_n_s32(uint16x4_t lowpart, int32x4_t input) { 327 // CHECK: sqrshrun2.8h 328 return vqrshrun_high_n_s32(lowpart, input, 2); 329 } 330 331 uint32x4_t test_vqrshrun_high_n_s64(uint32x2_t lowpart, int64x2_t input) { 332 // CHECK: sqrshrun2.4s 333 return vqrshrun_high_n_s64(lowpart, input, 2); 334 } 335 336 int8x16_t test_vqshrn_high_n_s16(int8x8_t lowpart, int16x8_t input) { 337 // CHECK: sqshrn2.16b 338 return vqshrn_high_n_s16(lowpart, input, 2); 339 } 340 341 int16x8_t test_vqshrn_high_n_s32(int16x4_t lowpart, int32x4_t input) { 342 // CHECK: sqshrn2.8h 343 return vqshrn_high_n_s32(lowpart, input, 2); 344 } 345 346 int32x4_t test_vqshrn_high_n_s64(int32x2_t lowpart, int64x2_t input) { 347 // CHECK: sqshrn2.4s 348 return vqshrn_high_n_s64(lowpart, input, 2); 349 } 350 351 uint8x16_t test_vqshrn_high_n_u16(uint8x8_t lowpart, uint16x8_t input) { 352 // CHECK: uqshrn2.16b 353 return vqshrn_high_n_u16(lowpart, input, 2); 354 } 355 356 uint16x8_t test_vqshrn_high_n_u32(uint16x4_t lowpart, uint32x4_t input) { 357 // CHECK: uqshrn2.8h 358 return vqshrn_high_n_u32(lowpart, input, 2); 359 } 360 361 uint32x4_t test_vqshrn_high_n_u64(uint32x2_t lowpart, uint64x2_t input) { 362 // CHECK: uqshrn2.4s 363 return vqshrn_high_n_u64(lowpart, input, 2); 364 } 365 366 int8x16_t test_vqrshrn_high_n_s16(int8x8_t lowpart, int16x8_t input) { 367 // CHECK: sqrshrn2.16b 368 return vqrshrn_high_n_s16(lowpart, input, 2); 369 } 370 371 int16x8_t test_vqrshrn_high_n_s32(int16x4_t lowpart, int32x4_t input) { 372 // CHECK: sqrshrn2.8h 373 return vqrshrn_high_n_s32(lowpart, input, 2); 374 } 375 376 int32x4_t test_vqrshrn_high_n_s64(int32x2_t lowpart, int64x2_t input) { 377 // CHECK: sqrshrn2.4s 378 return vqrshrn_high_n_s64(lowpart, input, 2); 379 } 380 381 uint8x16_t test_vqrshrn_high_n_u16(uint8x8_t lowpart, uint16x8_t input) { 382 // CHECK: uqrshrn2.16b 383 return vqrshrn_high_n_u16(lowpart, input, 2); 384 } 385 386 uint16x8_t test_vqrshrn_high_n_u32(uint16x4_t lowpart, uint32x4_t input) { 387 // CHECK: uqrshrn2.8h 388 return vqrshrn_high_n_u32(lowpart, input, 2); 389 } 390 391 uint32x4_t test_vqrshrn_high_n_u64(uint32x2_t lowpart, uint64x2_t input) { 392 // CHECK: uqrshrn2.4s 393 return vqrshrn_high_n_u64(lowpart, input, 2); 394 } 395 396 int8x16_t test_vaddhn_high_s16(int8x8_t lowpart, int16x8_t lhs, int16x8_t rhs) { 397 // CHECK: addhn2.16b v0, v1, v2 398 return vaddhn_high_s16(lowpart, lhs, rhs); 399 } 400 401 int16x8_t test_vaddhn_high_s32(int16x4_t lowpart, int32x4_t lhs, int32x4_t rhs) { 402 // CHECK: addhn2.8h v0, v1, v2 403 return vaddhn_high_s32(lowpart, lhs, rhs); 404 } 405 406 int32x4_t test_vaddhn_high_s64(int32x2_t lowpart, int64x2_t lhs, int64x2_t rhs) { 407 // CHECK: addhn2.4s v0, v1, v2 408 return vaddhn_high_s64(lowpart, lhs, rhs); 409 } 410 411 uint8x16_t test_vaddhn_high_u16(uint8x8_t lowpart, uint16x8_t lhs, uint16x8_t rhs) { 412 // CHECK: addhn2.16b v0, v1, v2 413 return vaddhn_high_s16(lowpart, lhs, rhs); 414 } 415 416 uint16x8_t test_vaddhn_high_u32(uint16x4_t lowpart, uint32x4_t lhs, uint32x4_t rhs) { 417 // CHECK: addhn2.8h v0, v1, v2 418 return vaddhn_high_s32(lowpart, lhs, rhs); 419 } 420 421 uint32x4_t test_vaddhn_high_u64(uint32x2_t lowpart, uint64x2_t lhs, uint64x2_t rhs) { 422 // CHECK: addhn2.4s v0, v1, v2 423 return vaddhn_high_s64(lowpart, lhs, rhs); 424 } 425 426 int8x16_t test_vraddhn_high_s16(int8x8_t lowpart, int16x8_t lhs, int16x8_t rhs) { 427 // CHECK: raddhn2.16b v0, v1, v2 428 return vraddhn_high_s16(lowpart, lhs, rhs); 429 } 430 431 int16x8_t test_vraddhn_high_s32(int16x4_t lowpart, int32x4_t lhs, int32x4_t rhs) { 432 // CHECK: raddhn2.8h v0, v1, v2 433 return vraddhn_high_s32(lowpart, lhs, rhs); 434 } 435 436 int32x4_t test_vraddhn_high_s64(int32x2_t lowpart, int64x2_t lhs, int64x2_t rhs) { 437 // CHECK: raddhn2.4s v0, v1, v2 438 return vraddhn_high_s64(lowpart, lhs, rhs); 439 } 440 441 uint8x16_t test_vraddhn_high_u16(uint8x8_t lowpart, uint16x8_t lhs, uint16x8_t rhs) { 442 // CHECK: raddhn2.16b v0, v1, v2 443 return vraddhn_high_s16(lowpart, lhs, rhs); 444 } 445 446 uint16x8_t test_vraddhn_high_u32(uint16x4_t lowpart, uint32x4_t lhs, uint32x4_t rhs) { 447 // CHECK: raddhn2.8h v0, v1, v2 448 return vraddhn_high_s32(lowpart, lhs, rhs); 449 } 450 451 uint32x4_t test_vraddhn_high_u64(uint32x2_t lowpart, uint64x2_t lhs, uint64x2_t rhs) { 452 // CHECK: raddhn2.4s v0, v1, v2 453 return vraddhn_high_s64(lowpart, lhs, rhs); 454 } 455 456 int8x16_t test_vmovn_high_s16(int8x8_t lowpart, int16x8_t wide) { 457 // CHECK: xtn2.16b v0, v1 458 return vmovn_high_s16(lowpart, wide); 459 } 460 461 int16x8_t test_vmovn_high_s32(int16x4_t lowpart, int32x4_t wide) { 462 // CHECK: xtn2.8h v0, v1 463 return vmovn_high_s32(lowpart, wide); 464 } 465 466 int32x4_t test_vmovn_high_s64(int32x2_t lowpart, int64x2_t wide) { 467 // CHECK: xtn2.4s v0, v1 468 return vmovn_high_s64(lowpart, wide); 469 } 470 471 uint8x16_t test_vmovn_high_u16(uint8x8_t lowpart, uint16x8_t wide) { 472 // CHECK: xtn2.16b v0, v1 473 return vmovn_high_u16(lowpart, wide); 474 } 475 476 uint16x8_t test_vmovn_high_u32(uint16x4_t lowpart, uint32x4_t wide) { 477 // CHECK: xtn2.8h v0, v1 478 return vmovn_high_u32(lowpart, wide); 479 } 480 481 uint32x4_t test_vmovn_high_u64(uint32x2_t lowpart, uint64x2_t wide) { 482 // CHECK: xtn2.4s v0, v1 483 return vmovn_high_u64(lowpart, wide); 484 } 485 486 int8x16_t test_vqmovn_high_s16(int8x8_t lowpart, int16x8_t wide) { 487 // CHECK: sqxtn2.16b v0, v1 488 return vqmovn_high_s16(lowpart, wide); 489 } 490 491 int16x8_t test_vqmovn_high_s32(int16x4_t lowpart, int32x4_t wide) { 492 // CHECK: sqxtn2.8h v0, v1 493 return vqmovn_high_s32(lowpart, wide); 494 } 495 496 int32x4_t test_vqmovn_high_s64(int32x2_t lowpart, int64x2_t wide) { 497 // CHECK: sqxtn2.4s v0, v1 498 return vqmovn_high_s64(lowpart, wide); 499 } 500 501 uint8x16_t test_vqmovn_high_u16(uint8x8_t lowpart, int16x8_t wide) { 502 // CHECK: uqxtn2.16b v0, v1 503 return vqmovn_high_u16(lowpart, wide); 504 } 505 506 uint16x8_t test_vqmovn_high_u32(uint16x4_t lowpart, int32x4_t wide) { 507 // CHECK: uqxtn2.8h v0, v1 508 return vqmovn_high_u32(lowpart, wide); 509 } 510 511 uint32x4_t test_vqmovn_high_u64(uint32x2_t lowpart, int64x2_t wide) { 512 // CHECK: uqxtn2.4s v0, v1 513 return vqmovn_high_u64(lowpart, wide); 514 } 515 516 uint8x16_t test_vqmovun_high_s16(uint8x8_t lowpart, int16x8_t wide) { 517 // CHECK: sqxtun2.16b v0, v1 518 return vqmovun_high_s16(lowpart, wide); 519 } 520 521 uint16x8_t test_vqmovun_high_s32(uint16x4_t lowpart, int32x4_t wide) { 522 // CHECK: sqxtun2.8h v0, v1 523 return vqmovun_high_s32(lowpart, wide); 524 } 525 526 uint32x4_t test_vqmovun_high_s64(uint32x2_t lowpart, int64x2_t wide) { 527 // CHECK: sqxtun2.4s v0, v1 528 return vqmovun_high_s64(lowpart, wide); 529 } 530 531 float32x4_t test_vcvtx_high_f32_f64(float32x2_t lowpart, float64x2_t wide) { 532 // CHECK: fcvtxn2 v0.4s, v1.2d 533 return vcvtx_high_f32_f64(lowpart, wide); 534 } 535 536 float64x2_t test_vcvt_f64_f32(float32x2_t x) { 537 // CHECK: fcvtl v0.2d, v0.2s 538 return vcvt_f64_f32(x); 539 } 540 541 float64x2_t test_vcvt_high_f64_f32(float32x4_t x) { 542 // CHECK: fcvtl2 v0.2d, v0.4s 543 return vcvt_high_f64_f32(x); 544 } 545 546 float32x2_t test_vcvt_f32_f64(float64x2_t v) { 547 // CHECK: fcvtn v0.2s, v0.2d 548 return vcvt_f32_f64(v); 549 } 550 551 float32x4_t test_vcvt_high_f32_f64(float32x2_t x, float64x2_t v) { 552 // CHECK: fcvtn2 v0.4s, v1.2d 553 return vcvt_high_f32_f64(x, v); 554 } 555 556 float32x2_t test_vcvtx_f32_f64(float64x2_t v) { 557 // CHECK: fcvtxn v0.2s, v0.2d 558 return vcvtx_f32_f64(v); 559 } 560