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 6int16x8_t test_vaddw_high_s8(int16x8_t lhs, int8x16_t rhs) { 7 // CHECK: saddw2.8h 8 return vaddw_high_s8(lhs, rhs); 9} 10 11int32x4_t test_vaddw_high_s16(int32x4_t lhs, int16x8_t rhs) { 12 // CHECK: saddw2.4s 13 return vaddw_high_s16(lhs, rhs); 14} 15 16int64x2_t test_vaddw_high_s32(int64x2_t lhs, int32x4_t rhs) { 17 // CHECK: saddw2.2d 18 return vaddw_high_s32(lhs, rhs); 19} 20 21uint16x8_t test_vaddw_high_u8(uint16x8_t lhs, uint8x16_t rhs) { 22 // CHECK: uaddw2.8h 23 return vaddw_high_u8(lhs, rhs); 24} 25 26uint32x4_t test_vaddw_high_u16(uint32x4_t lhs, uint16x8_t rhs) { 27 // CHECK: uaddw2.4s 28 return vaddw_high_u16(lhs, rhs); 29} 30 31uint64x2_t test_vaddw_high_u32(uint64x2_t lhs, uint32x4_t rhs) { 32 // CHECK: uaddw2.2d 33 return vaddw_high_u32(lhs, rhs); 34} 35 36int16x8_t test_vsubw_high_s8(int16x8_t lhs, int8x16_t rhs) { 37 // CHECK: ssubw2.8h 38 return vsubw_high_s8(lhs, rhs); 39} 40 41int32x4_t test_vsubw_high_s16(int32x4_t lhs, int16x8_t rhs) { 42 // CHECK: ssubw2.4s 43 return vsubw_high_s16(lhs, rhs); 44} 45 46int64x2_t test_vsubw_high_s32(int64x2_t lhs, int32x4_t rhs) { 47 // CHECK: ssubw2.2d 48 return vsubw_high_s32(lhs, rhs); 49} 50 51uint16x8_t test_vsubw_high_u8(uint16x8_t lhs, uint8x16_t rhs) { 52 // CHECK: usubw2.8h 53 return vsubw_high_u8(lhs, rhs); 54} 55 56uint32x4_t test_vsubw_high_u16(uint32x4_t lhs, uint16x8_t rhs) { 57 // CHECK: usubw2.4s 58 return vsubw_high_u16(lhs, rhs); 59} 60 61uint64x2_t test_vsubw_high_u32(uint64x2_t lhs, uint32x4_t rhs) { 62 // CHECK: usubw2.2d 63 return vsubw_high_u32(lhs, rhs); 64} 65 66int16x8_t test_vabdl_high_s8(int8x16_t lhs, int8x16_t rhs) { 67 // CHECK: sabdl2.8h 68 return vabdl_high_s8(lhs, rhs); 69} 70 71int32x4_t test_vabdl_high_s16(int16x8_t lhs, int16x8_t rhs) { 72 // CHECK: sabdl2.4s 73 return vabdl_high_s16(lhs, rhs); 74} 75 76int64x2_t test_vabdl_high_s32(int32x4_t lhs, int32x4_t rhs) { 77 // CHECK: sabdl2.2d 78 return vabdl_high_s32(lhs, rhs); 79} 80 81uint16x8_t test_vabdl_high_u8(uint8x16_t lhs, uint8x16_t rhs) { 82 // CHECK: uabdl2.8h 83 return vabdl_high_u8(lhs, rhs); 84} 85 86uint32x4_t test_vabdl_high_u16(uint16x8_t lhs, uint16x8_t rhs) { 87 // CHECK: uabdl2.4s 88 return vabdl_high_u16(lhs, rhs); 89} 90 91uint64x2_t test_vabdl_high_u32(uint32x4_t lhs, uint32x4_t rhs) { 92 // CHECK: uabdl2.2d 93 return vabdl_high_u32(lhs, rhs); 94} 95 96int16x8_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 101int32x4_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 106int64x2_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 111uint16x8_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 116uint32x4_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 121uint64x2_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 126int32x4_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 131int64x2_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 136int32x4_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 141int64x2_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 146int32x4_t test_vqdmull_high_s16(int16x8_t lhs, int16x8_t rhs) { 147 // CHECK: sqdmull2.4s 148 return vqdmull_high_s16(lhs, rhs); 149} 150 151int64x2_t test_vqdmull_high_s32(int32x4_t lhs, int32x4_t rhs) { 152 // CHECK: sqdmull2.2d 153 return vqdmull_high_s32(lhs, rhs); 154} 155 156int16x8_t test_vshll_high_n_s8(int8x16_t in) { 157 // CHECK: sshll2.8h 158 return vshll_high_n_s8(in, 7); 159} 160 161int32x4_t test_vshll_high_n_s16(int16x8_t in) { 162 // CHECK: sshll2.4s 163 return vshll_high_n_s16(in, 15); 164} 165 166int64x2_t test_vshll_high_n_s32(int32x4_t in) { 167 // CHECK: sshll2.2d 168 return vshll_high_n_s32(in, 31); 169} 170 171int16x8_t test_vshll_high_n_u8(int8x16_t in) { 172 // CHECK: ushll2.8h 173 return vshll_high_n_u8(in, 7); 174} 175 176int32x4_t test_vshll_high_n_u16(int16x8_t in) { 177 // CHECK: ushll2.4s 178 return vshll_high_n_u16(in, 15); 179} 180 181int64x2_t test_vshll_high_n_u32(int32x4_t in) { 182 // CHECK: ushll2.2d 183 return vshll_high_n_u32(in, 31); 184} 185 186int16x8_t test_vshll_high_n_s8_max(int8x16_t in) { 187 // CHECK: shll2.8h 188 return vshll_high_n_s8(in, 8); 189} 190 191int32x4_t test_vshll_high_n_s16_max(int16x8_t in) { 192 // CHECK: shll2.4s 193 return vshll_high_n_s16(in, 16); 194} 195 196int64x2_t test_vshll_high_n_s32_max(int32x4_t in) { 197 // CHECK: shll2.2d 198 return vshll_high_n_s32(in, 32); 199} 200 201int16x8_t test_vshll_high_n_u8_max(int8x16_t in) { 202 // CHECK: shll2.8h 203 return vshll_high_n_u8(in, 8); 204} 205 206int32x4_t test_vshll_high_n_u16_max(int16x8_t in) { 207 // CHECK: shll2.4s 208 return vshll_high_n_u16(in, 16); 209} 210 211int64x2_t test_vshll_high_n_u32_max(int32x4_t in) { 212 // CHECK: shll2.2d 213 return vshll_high_n_u32(in, 32); 214} 215 216int16x8_t test_vsubl_high_s8(int8x16_t lhs, int8x16_t rhs) { 217 // CHECK: ssubl2.8h 218 return vsubl_high_s8(lhs, rhs); 219} 220 221int32x4_t test_vsubl_high_s16(int16x8_t lhs, int16x8_t rhs) { 222 // CHECK: ssubl2.4s 223 return vsubl_high_s16(lhs, rhs); 224} 225 226int64x2_t test_vsubl_high_s32(int32x4_t lhs, int32x4_t rhs) { 227 // CHECK: ssubl2.2d 228 return vsubl_high_s32(lhs, rhs); 229} 230 231uint16x8_t test_vsubl_high_u8(uint8x16_t lhs, uint8x16_t rhs) { 232 // CHECK: usubl2.8h 233 return vsubl_high_u8(lhs, rhs); 234} 235 236uint32x4_t test_vsubl_high_u16(uint16x8_t lhs, uint16x8_t rhs) { 237 // CHECK: usubl2.4s 238 return vsubl_high_u16(lhs, rhs); 239} 240 241uint64x2_t test_vsubl_high_u32(uint32x4_t lhs, uint32x4_t rhs) { 242 // CHECK: usubl2.2d 243 return vsubl_high_u32(lhs, rhs); 244} 245 246int8x16_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 251int16x8_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 256int32x4_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 261uint8x16_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 266uint16x8_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 271uint32x4_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 276int8x16_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 281int16x8_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 286int32x4_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 291uint8x16_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 296uint16x8_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 301uint32x4_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 306uint8x16_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 311uint16x8_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 316uint32x4_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 321uint8x16_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 326uint16x8_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 331uint32x4_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 336int8x16_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 341int16x8_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 346int32x4_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 351uint8x16_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 356uint16x8_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 361uint32x4_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 366int8x16_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 371int16x8_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 376int32x4_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 381uint8x16_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 386uint16x8_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 391uint32x4_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 396int8x16_t test_vaddhn_high_s16(int8x8_t lowpart, int16x8_t lhs, int16x8_t rhs) { 397 // CHECK: addhn2.16b v0, {{v1, v2|v2, v1}} 398 return vaddhn_high_s16(lowpart, lhs, rhs); 399} 400 401int16x8_t test_vaddhn_high_s32(int16x4_t lowpart, int32x4_t lhs, int32x4_t rhs) { 402 // CHECK: addhn2.8h v0, {{v1, v2|v2, v1}} 403 return vaddhn_high_s32(lowpart, lhs, rhs); 404} 405 406int32x4_t test_vaddhn_high_s64(int32x2_t lowpart, int64x2_t lhs, int64x2_t rhs) { 407 // CHECK: addhn2.4s v0, {{v1, v2|v2, v1}} 408 return vaddhn_high_s64(lowpart, lhs, rhs); 409} 410 411uint8x16_t test_vaddhn_high_u16(uint8x8_t lowpart, uint16x8_t lhs, uint16x8_t rhs) { 412 // CHECK: addhn2.16b v0, {{v1, v2|v2, v1}} 413 return vaddhn_high_s16(lowpart, lhs, rhs); 414} 415 416uint16x8_t test_vaddhn_high_u32(uint16x4_t lowpart, uint32x4_t lhs, uint32x4_t rhs) { 417 // CHECK: addhn2.8h v0, {{v1, v2|v2, v1}} 418 return vaddhn_high_s32(lowpart, lhs, rhs); 419} 420 421uint32x4_t test_vaddhn_high_u64(uint32x2_t lowpart, uint64x2_t lhs, uint64x2_t rhs) { 422 // CHECK: addhn2.4s v0, {{v1, v2|v2, v1}} 423 return vaddhn_high_s64(lowpart, lhs, rhs); 424} 425 426int8x16_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 431int16x8_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 436int32x4_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 441uint8x16_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 446uint16x8_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 451uint32x4_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 456int8x16_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 461int16x8_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 466int32x4_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 471uint8x16_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 476uint16x8_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 481uint32x4_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 486int8x16_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 491int16x8_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 496int32x4_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 501uint8x16_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 506uint16x8_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 511uint32x4_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 516uint8x16_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 521uint16x8_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 526uint32x4_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 531float32x4_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 536float64x2_t test_vcvt_f64_f32(float32x2_t x) { 537 // CHECK: fcvtl v0.2d, v0.2s 538 return vcvt_f64_f32(x); 539} 540 541float64x2_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 546float32x2_t test_vcvt_f32_f64(float64x2_t v) { 547 // CHECK: fcvtn v0.2s, v0.2d 548 return vcvt_f32_f64(v); 549} 550 551float32x4_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 556float32x2_t test_vcvtx_f32_f64(float64x2_t v) { 557 // CHECK: fcvtxn v0.2s, v0.2d 558 return vcvtx_f32_f64(v); 559} 560