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 --check-prefix=CHECK --check-prefix=CHECK-ARM64 4 5// Test new aarch64 intrinsics and types 6 7#include <arm_neon.h> 8 9int8x8_t test_vadd_s8(int8x8_t v1, int8x8_t v2) { 10 // CHECK-LABEL: test_vadd_s8 11 return vadd_s8(v1, v2); 12 // CHECK: add {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 13} 14 15int16x4_t test_vadd_s16(int16x4_t v1, int16x4_t v2) { 16 // CHECK-LABEL: test_vadd_s16 17 return vadd_s16(v1, v2); 18 // CHECK: add {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 19} 20 21int32x2_t test_vadd_s32(int32x2_t v1, int32x2_t v2) { 22 // CHECK-LABEL: test_vadd_s32 23 return vadd_s32(v1, v2); 24 // CHECK: add {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 25} 26 27int64x1_t test_vadd_s64(int64x1_t v1, int64x1_t v2) { 28 // CHECK-LABEL: test_vadd_s64 29 return vadd_s64(v1, v2); 30 // CHECK: add {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 31} 32 33float32x2_t test_vadd_f32(float32x2_t v1, float32x2_t v2) { 34 // CHECK-LABEL: test_vadd_f32 35 return vadd_f32(v1, v2); 36 // CHECK: fadd {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 37} 38 39uint8x8_t test_vadd_u8(uint8x8_t v1, uint8x8_t v2) { 40 // CHECK-LABEL: test_vadd_u8 41 return vadd_u8(v1, v2); 42 // CHECK: add {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 43} 44 45uint16x4_t test_vadd_u16(uint16x4_t v1, uint16x4_t v2) { 46 // CHECK-LABEL: test_vadd_u16 47 return vadd_u16(v1, v2); 48 // CHECK: add {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 49} 50 51uint32x2_t test_vadd_u32(uint32x2_t v1, uint32x2_t v2) { 52 // CHECK-LABEL: test_vadd_u32 53 return vadd_u32(v1, v2); 54 // CHECK: add {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 55} 56 57uint64x1_t test_vadd_u64(uint64x1_t v1, uint64x1_t v2) { 58 // CHECK-LABEL: test_vadd_u64 59 return vadd_u64(v1, v2); 60 // CHECK: add {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 61} 62 63int8x16_t test_vaddq_s8(int8x16_t v1, int8x16_t v2) { 64 // CHECK-LABEL: test_vaddq_s8 65 return vaddq_s8(v1, v2); 66 // CHECK: add {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 67} 68 69int16x8_t test_vaddq_s16(int16x8_t v1, int16x8_t v2) { 70 // CHECK-LABEL: test_vaddq_s16 71 return vaddq_s16(v1, v2); 72 // CHECK: add {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 73} 74 75int32x4_t test_vaddq_s32(int32x4_t v1,int32x4_t v2) { 76 // CHECK-LABEL: test_vaddq_s32 77 return vaddq_s32(v1, v2); 78 // CHECK: add {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 79} 80 81int64x2_t test_vaddq_s64(int64x2_t v1, int64x2_t v2) { 82 // CHECK-LABEL: test_vaddq_s64 83 return vaddq_s64(v1, v2); 84 // CHECK: add {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 85} 86 87float32x4_t test_vaddq_f32(float32x4_t v1, float32x4_t v2) { 88 // CHECK-LABEL: test_vaddq_f32 89 return vaddq_f32(v1, v2); 90 // CHECK: fadd {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 91} 92 93float64x2_t test_vaddq_f64(float64x2_t v1, float64x2_t v2) { 94 // CHECK-LABEL: test_vaddq_f64 95 return vaddq_f64(v1, v2); 96 // CHECK: fadd {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 97} 98 99uint8x16_t test_vaddq_u8(uint8x16_t v1, uint8x16_t v2) { 100 // CHECK-LABEL: test_vaddq_u8 101 return vaddq_u8(v1, v2); 102 // CHECK: add {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 103} 104 105uint16x8_t test_vaddq_u16(uint16x8_t v1, uint16x8_t v2) { 106 // CHECK-LABEL: test_vaddq_u16 107 return vaddq_u16(v1, v2); 108 // CHECK: add {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 109} 110 111uint32x4_t test_vaddq_u32(uint32x4_t v1, uint32x4_t v2) { 112 // CHECK: vaddq_u32 113 return vaddq_u32(v1, v2); 114 // CHECK: add {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 115} 116 117uint64x2_t test_vaddq_u64(uint64x2_t v1, uint64x2_t v2) { 118 // CHECK-LABEL: test_vaddq_u64 119 return vaddq_u64(v1, v2); 120 // CHECK: add {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 121} 122 123int8x8_t test_vsub_s8(int8x8_t v1, int8x8_t v2) { 124 // CHECK-LABEL: test_vsub_s8 125 return vsub_s8(v1, v2); 126 // CHECK: sub {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 127} 128int16x4_t test_vsub_s16(int16x4_t v1, int16x4_t v2) { 129 // CHECK-LABEL: test_vsub_s16 130 return vsub_s16(v1, v2); 131 // CHECK: sub {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 132} 133int32x2_t test_vsub_s32(int32x2_t v1, int32x2_t v2) { 134 // CHECK-LABEL: test_vsub_s32 135 return vsub_s32(v1, v2); 136 // CHECK: sub {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 137} 138 139int64x1_t test_vsub_s64(int64x1_t v1, int64x1_t v2) { 140 // CHECK-LABEL: test_vsub_s64 141 return vsub_s64(v1, v2); 142 // CHECK: sub {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 143} 144 145float32x2_t test_vsub_f32(float32x2_t v1, float32x2_t v2) { 146 // CHECK-LABEL: test_vsub_f32 147 return vsub_f32(v1, v2); 148 // CHECK: fsub {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 149} 150 151uint8x8_t test_vsub_u8(uint8x8_t v1, uint8x8_t v2) { 152 // CHECK-LABEL: test_vsub_u8 153 return vsub_u8(v1, v2); 154 // CHECK: sub {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 155} 156 157uint16x4_t test_vsub_u16(uint16x4_t v1, uint16x4_t v2) { 158 // CHECK-LABEL: test_vsub_u16 159 return vsub_u16(v1, v2); 160 // CHECK: sub {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 161} 162 163uint32x2_t test_vsub_u32(uint32x2_t v1, uint32x2_t v2) { 164 // CHECK-LABEL: test_vsub_u32 165 return vsub_u32(v1, v2); 166 // CHECK: sub {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 167} 168 169uint64x1_t test_vsub_u64(uint64x1_t v1, uint64x1_t v2) { 170 // CHECK-LABEL: test_vsub_u64 171 return vsub_u64(v1, v2); 172 // CHECK: sub {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 173} 174 175int8x16_t test_vsubq_s8(int8x16_t v1, int8x16_t v2) { 176 // CHECK-LABEL: test_vsubq_s8 177 return vsubq_s8(v1, v2); 178 // CHECK: sub {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 179} 180 181int16x8_t test_vsubq_s16(int16x8_t v1, int16x8_t v2) { 182 // CHECK-LABEL: test_vsubq_s16 183 return vsubq_s16(v1, v2); 184 // CHECK: sub {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 185} 186 187int32x4_t test_vsubq_s32(int32x4_t v1,int32x4_t v2) { 188 // CHECK-LABEL: test_vsubq_s32 189 return vsubq_s32(v1, v2); 190 // CHECK: sub {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 191} 192 193int64x2_t test_vsubq_s64(int64x2_t v1, int64x2_t v2) { 194 // CHECK-LABEL: test_vsubq_s64 195 return vsubq_s64(v1, v2); 196 // CHECK: sub {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 197} 198 199float32x4_t test_vsubq_f32(float32x4_t v1, float32x4_t v2) { 200 // CHECK-LABEL: test_vsubq_f32 201 return vsubq_f32(v1, v2); 202 // CHECK: fsub {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 203} 204 205float64x2_t test_vsubq_f64(float64x2_t v1, float64x2_t v2) { 206 // CHECK-LABEL: test_vsubq_f64 207 return vsubq_f64(v1, v2); 208 // CHECK: fsub {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 209} 210 211uint8x16_t test_vsubq_u8(uint8x16_t v1, uint8x16_t v2) { 212 // CHECK-LABEL: test_vsubq_u8 213 return vsubq_u8(v1, v2); 214 // CHECK: sub {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 215} 216 217uint16x8_t test_vsubq_u16(uint16x8_t v1, uint16x8_t v2) { 218 // CHECK-LABEL: test_vsubq_u16 219 return vsubq_u16(v1, v2); 220 // CHECK: sub {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 221} 222 223uint32x4_t test_vsubq_u32(uint32x4_t v1, uint32x4_t v2) { 224 // CHECK: vsubq_u32 225 return vsubq_u32(v1, v2); 226 // CHECK: sub {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 227} 228 229uint64x2_t test_vsubq_u64(uint64x2_t v1, uint64x2_t v2) { 230 // CHECK-LABEL: test_vsubq_u64 231 return vsubq_u64(v1, v2); 232 // CHECK: sub {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 233} 234 235int8x8_t test_vmul_s8(int8x8_t v1, int8x8_t v2) { 236 // CHECK-LABEL: test_vmul_s8 237 return vmul_s8(v1, v2); 238 // CHECK: mul {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 239} 240 241int16x4_t test_vmul_s16(int16x4_t v1, int16x4_t v2) { 242 // CHECK-LABEL: test_vmul_s16 243 return vmul_s16(v1, v2); 244 // CHECK: mul {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 245} 246 247int32x2_t test_vmul_s32(int32x2_t v1, int32x2_t v2) { 248 // CHECK-LABEL: test_vmul_s32 249 return vmul_s32(v1, v2); 250 // CHECK: mul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 251} 252 253float32x2_t test_vmul_f32(float32x2_t v1, float32x2_t v2) { 254 // CHECK-LABEL: test_vmul_f32 255 return vmul_f32(v1, v2); 256 // CHECK: fmul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 257} 258 259 260uint8x8_t test_vmul_u8(uint8x8_t v1, uint8x8_t v2) { 261 // CHECK-LABEL: test_vmul_u8 262 return vmul_u8(v1, v2); 263 // CHECK: mul {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 264} 265 266uint16x4_t test_vmul_u16(uint16x4_t v1, uint16x4_t v2) { 267 // CHECK-LABEL: test_vmul_u16 268 return vmul_u16(v1, v2); 269 // CHECK: mul {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 270} 271 272uint32x2_t test_vmul_u32(uint32x2_t v1, uint32x2_t v2) { 273 // CHECK-LABEL: test_vmul_u32 274 return vmul_u32(v1, v2); 275 // CHECK: mul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 276} 277 278int8x16_t test_vmulq_s8(int8x16_t v1, int8x16_t v2) { 279 // CHECK-LABEL: test_vmulq_s8 280 return vmulq_s8(v1, v2); 281 // CHECK: mul {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 282} 283 284int16x8_t test_vmulq_s16(int16x8_t v1, int16x8_t v2) { 285 // CHECK-LABEL: test_vmulq_s16 286 return vmulq_s16(v1, v2); 287 // CHECK: mul {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 288} 289 290int32x4_t test_vmulq_s32(int32x4_t v1, int32x4_t v2) { 291 // CHECK-LABEL: test_vmulq_s32 292 return vmulq_s32(v1, v2); 293 // CHECK: mul {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 294} 295 296uint8x16_t test_vmulq_u8(uint8x16_t v1, uint8x16_t v2) { 297 // CHECK-LABEL: test_vmulq_u8 298 return vmulq_u8(v1, v2); 299 // CHECK: mul {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 300} 301 302uint16x8_t test_vmulq_u16(uint16x8_t v1, uint16x8_t v2) { 303 // CHECK-LABEL: test_vmulq_u16 304 return vmulq_u16(v1, v2); 305 // CHECK: mul {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 306} 307 308uint32x4_t test_vmulq_u32(uint32x4_t v1, uint32x4_t v2) { 309 // CHECK-LABEL: test_vmulq_u32 310 return vmulq_u32(v1, v2); 311 // CHECK: mul {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 312} 313 314float32x4_t test_vmulq_f32(float32x4_t v1, float32x4_t v2) { 315 // CHECK-LABEL: test_vmulq_f32 316 return vmulq_f32(v1, v2); 317 // CHECK: fmul {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 318} 319 320float64x2_t test_vmulq_f64(float64x2_t v1, float64x2_t v2) { 321 // CHECK-LABEL: test_vmulq_f64 322 return vmulq_f64(v1, v2); 323 // CHECK: fmul {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 324} 325 326poly8x8_t test_vmul_p8(poly8x8_t v1, poly8x8_t v2) { 327 // test_vmul_p8 328 return vmul_p8(v1, v2); 329 // pmul {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 330} 331 332poly8x16_t test_vmulq_p8(poly8x16_t v1, poly8x16_t v2) { 333 // test_vmulq_p8 334 return vmulq_p8(v1, v2); 335 // pmul {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 336} 337 338 339int8x8_t test_vmla_s8(int8x8_t v1, int8x8_t v2, int8x8_t v3) { 340 // CHECK-LABEL: test_vmla_s8 341 return vmla_s8(v1, v2, v3); 342 // CHECK: mla {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 343} 344 345int8x8_t test_vmla_s16(int16x4_t v1, int16x4_t v2, int16x4_t v3) { 346 // CHECK-LABEL: test_vmla_s16 347 return vmla_s16(v1, v2, v3); 348 // CHECK: mla {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 349} 350 351int32x2_t test_vmla_s32(int32x2_t v1, int32x2_t v2, int32x2_t v3) { 352 // CHECK-LABEL: test_vmla_s32 353 return vmla_s32(v1, v2, v3); 354 // CHECK: mla {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 355} 356 357float32x2_t test_vmla_f32(float32x2_t v1, float32x2_t v2, float32x2_t v3) { 358 // CHECK-LABEL: test_vmla_f32 359 return vmla_f32(v1, v2, v3); 360 // CHECK: fmla {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 361} 362 363uint8x8_t test_vmla_u8(uint8x8_t v1, uint8x8_t v2, uint8x8_t v3) { 364 // CHECK-LABEL: test_vmla_u8 365 return vmla_u8(v1, v2, v3); 366 // CHECK: mla {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 367} 368 369uint16x4_t test_vmla_u16(uint16x4_t v1, uint16x4_t v2, uint16x4_t v3) { 370 // CHECK-LABEL: test_vmla_u16 371 return vmla_u16(v1, v2, v3); 372 // CHECK: mla {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 373} 374 375uint32x2_t test_vmla_u32(uint32x2_t v1, uint32x2_t v2, uint32x2_t v3) { 376 // CHECK-LABEL: test_vmla_u32 377 return vmla_u32(v1, v2, v3); 378 // CHECK: mla {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 379} 380 381int8x16_t test_vmlaq_s8(int8x16_t v1, int8x16_t v2, int8x16_t v3) { 382 // CHECK-LABEL: test_vmlaq_s8 383 return vmlaq_s8(v1, v2, v3); 384 // CHECK: mla {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 385} 386 387int16x8_t test_vmlaq_s16(int16x8_t v1, int16x8_t v2, int16x8_t v3) { 388 // CHECK-LABEL: test_vmlaq_s16 389 return vmlaq_s16(v1, v2, v3); 390 // CHECK: mla {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 391} 392 393int32x4_t test_vmlaq_s32(int32x4_t v1, int32x4_t v2, int32x4_t v3) { 394 // CHECK-LABEL: test_vmlaq_s32 395 return vmlaq_s32(v1, v2, v3); 396 // CHECK: mla {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 397} 398 399float32x4_t test_vmlaq_f32(float32x4_t v1, float32x4_t v2, float32x4_t v3) { 400 // CHECK-LABEL: test_vmlaq_f32 401 return vmlaq_f32(v1, v2, v3); 402 // CHECK: fmla {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 403} 404 405uint8x16_t test_vmlaq_u8(uint8x16_t v1, uint8x16_t v2, uint8x16_t v3) { 406 // CHECK-LABEL: test_vmlaq_u8 407 return vmlaq_u8(v1, v2, v3); 408 // CHECK: mla {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 409} 410 411uint16x8_t test_vmlaq_u16(uint16x8_t v1, uint16x8_t v2, uint16x8_t v3) { 412 // CHECK-LABEL: test_vmlaq_u16 413 return vmlaq_u16(v1, v2, v3); 414 // CHECK: mla {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 415} 416 417uint32x4_t test_vmlaq_u32(uint32x4_t v1, uint32x4_t v2, uint32x4_t v3) { 418 // CHECK-LABEL: test_vmlaq_u32 419 return vmlaq_u32(v1, v2, v3); 420 // CHECK: mla {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 421} 422 423float64x2_t test_vmlaq_f64(float64x2_t v1, float64x2_t v2, float64x2_t v3) { 424 // CHECK-LABEL: test_vmlaq_f64 425 return vmlaq_f64(v1, v2, v3); 426 // CHECK: fmla {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 427} 428 429int8x8_t test_vmls_s8(int8x8_t v1, int8x8_t v2, int8x8_t v3) { 430 // CHECK-LABEL: test_vmls_s8 431 return vmls_s8(v1, v2, v3); 432 // CHECK: mls {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 433} 434 435int8x8_t test_vmls_s16(int16x4_t v1, int16x4_t v2, int16x4_t v3) { 436 // CHECK-LABEL: test_vmls_s16 437 return vmls_s16(v1, v2, v3); 438 // CHECK: mls {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 439} 440 441int32x2_t test_vmls_s32(int32x2_t v1, int32x2_t v2, int32x2_t v3) { 442 // CHECK-LABEL: test_vmls_s32 443 return vmls_s32(v1, v2, v3); 444 // CHECK: mls {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 445} 446 447float32x2_t test_vmls_f32(float32x2_t v1, float32x2_t v2, float32x2_t v3) { 448 // CHECK-LABEL: test_vmls_f32 449 return vmls_f32(v1, v2, v3); 450 // CHECK: fmls {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 451} 452 453uint8x8_t test_vmls_u8(uint8x8_t v1, uint8x8_t v2, uint8x8_t v3) { 454 // CHECK-LABEL: test_vmls_u8 455 return vmls_u8(v1, v2, v3); 456 // CHECK: mls {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 457} 458 459uint16x4_t test_vmls_u16(uint16x4_t v1, uint16x4_t v2, uint16x4_t v3) { 460 // CHECK-LABEL: test_vmls_u16 461 return vmls_u16(v1, v2, v3); 462 // CHECK: mls {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 463} 464 465uint32x2_t test_vmls_u32(uint32x2_t v1, uint32x2_t v2, uint32x2_t v3) { 466 // CHECK-LABEL: test_vmls_u32 467 return vmls_u32(v1, v2, v3); 468 // CHECK: mls {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 469} 470int8x16_t test_vmlsq_s8(int8x16_t v1, int8x16_t v2, int8x16_t v3) { 471 // CHECK-LABEL: test_vmlsq_s8 472 return vmlsq_s8(v1, v2, v3); 473 // CHECK: mls {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 474} 475 476int16x8_t test_vmlsq_s16(int16x8_t v1, int16x8_t v2, int16x8_t v3) { 477 // CHECK-LABEL: test_vmlsq_s16 478 return vmlsq_s16(v1, v2, v3); 479 // CHECK: mls {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 480} 481 482int32x4_t test_vmlsq_s32(int32x4_t v1, int32x4_t v2, int32x4_t v3) { 483 // CHECK-LABEL: test_vmlsq_s32 484 return vmlsq_s32(v1, v2, v3); 485 // CHECK: mls {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 486} 487 488float32x4_t test_vmlsq_f32(float32x4_t v1, float32x4_t v2, float32x4_t v3) { 489 // CHECK-LABEL: test_vmlsq_f32 490 return vmlsq_f32(v1, v2, v3); 491 // CHECK: fmls {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 492} 493uint8x16_t test_vmlsq_u8(uint8x16_t v1, uint8x16_t v2, uint8x16_t v3) { 494 // CHECK-LABEL: test_vmlsq_u8 495 return vmlsq_u8(v1, v2, v3); 496 // CHECK: mls {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 497} 498 499uint16x8_t test_vmlsq_u16(uint16x8_t v1, uint16x8_t v2, uint16x8_t v3) { 500 // CHECK-LABEL: test_vmlsq_u16 501 return vmlsq_u16(v1, v2, v3); 502 // CHECK: mls {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 503} 504 505uint32x4_t test_vmlsq_u32(uint32x4_t v1, uint32x4_t v2, uint32x4_t v3) { 506 // CHECK-LABEL: test_vmlsq_u32 507 return vmlsq_u32(v1, v2, v3); 508 // CHECK: mls {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 509} 510 511float64x2_t test_vmlsq_f64(float64x2_t v1, float64x2_t v2, float64x2_t v3) { 512 // CHECK-LABEL: test_vmlsq_f64 513 return vmlsq_f64(v1, v2, v3); 514 // CHECK: fmls {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 515} 516float32x2_t test_vfma_f32(float32x2_t v1, float32x2_t v2, float32x2_t v3) { 517 // CHECK-LABEL: test_vfma_f32 518 return vfma_f32(v1, v2, v3); 519 // CHECK: fmla {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 520} 521 522float32x4_t test_vfmaq_f32(float32x4_t v1, float32x4_t v2, float32x4_t v3) { 523 // CHECK-LABEL: test_vfmaq_f32 524 return vfmaq_f32(v1, v2, v3); 525 // CHECK: fmla {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 526} 527 528float64x2_t test_vfmaq_f64(float64x2_t v1, float64x2_t v2, float64x2_t v3) { 529 // CHECK-LABEL: test_vfmaq_f64 530 return vfmaq_f64(v1, v2, v3); 531 // CHECK: fmla {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 532} 533float32x2_t test_vfms_f32(float32x2_t v1, float32x2_t v2, float32x2_t v3) { 534 // CHECK-LABEL: test_vfms_f32 535 return vfms_f32(v1, v2, v3); 536 // CHECK: fmls v0.2s, {{v1.2s, v2.2s|v2.2s, v1.2s}} 537} 538 539float32x4_t test_vfmsq_f32(float32x4_t v1, float32x4_t v2, float32x4_t v3) { 540 // CHECK-LABEL: test_vfmsq_f32 541 return vfmsq_f32(v1, v2, v3); 542 // CHECK: fmls v0.4s, {{v1.4s, v2.4s|v2.4s, v1.4s}} 543} 544 545float64x2_t test_vfmsq_f64(float64x2_t v1, float64x2_t v2, float64x2_t v3) { 546 // CHECK: vfmsq_f64 547 return vfmsq_f64(v1, v2, v3); 548 // CHECK: fmls v0.2d, {{v1.2d, v2.2d|v2.2d, v1.2d}} 549} 550 551float64x2_t test_vdivq_f64(float64x2_t v1, float64x2_t v2) { 552 // CHECK-LABEL: test_vdivq_f64 553 return vdivq_f64(v1, v2); 554 // CHECK: fdiv {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 555} 556 557float32x4_t test_vdivq_f32(float32x4_t v1, float32x4_t v2) { 558 // CHECK-LABEL: test_vdivq_f32 559 return vdivq_f32(v1, v2); 560 // CHECK: fdiv {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 561} 562 563float32x2_t test_vdiv_f32(float32x2_t v1, float32x2_t v2) { 564 // CHECK-LABEL: test_vdiv_f32 565 return vdiv_f32(v1, v2); 566 // CHECK: fdiv {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 567} 568 569int8x8_t test_vaba_s8(int8x8_t v1, int8x8_t v2, int8x8_t v3) { 570 // CHECK-LABEL: test_vaba_s8 571 return vaba_s8(v1, v2, v3); 572 // CHECK: saba {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 573} 574 575int16x4_t test_vaba_s16(int16x4_t v1, int16x4_t v2, int16x4_t v3) { 576 // CHECK-LABEL: test_vaba_s16 577 return vaba_s16(v1, v2, v3); 578 // CHECK: saba {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 579} 580 581int32x2_t test_vaba_s32(int32x2_t v1, int32x2_t v2, int32x2_t v3) { 582 // CHECK-LABEL: test_vaba_s32 583 return vaba_s32(v1, v2, v3); 584 // CHECK: saba {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 585} 586 587uint8x8_t test_vaba_u8(uint8x8_t v1, uint8x8_t v2, uint8x8_t v3) { 588 // CHECK-LABEL: test_vaba_u8 589 return vaba_u8(v1, v2, v3); 590 // CHECK: uaba {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 591} 592 593uint16x4_t test_vaba_u16(uint16x4_t v1, uint16x4_t v2, uint16x4_t v3) { 594 // CHECK-LABEL: test_vaba_u16 595 return vaba_u16(v1, v2, v3); 596 // CHECK: uaba {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 597} 598 599uint32x2_t test_vaba_u32(uint32x2_t v1, uint32x2_t v2, uint32x2_t v3) { 600 // CHECK-LABEL: test_vaba_u32 601 return vaba_u32(v1, v2, v3); 602 // CHECK: uaba {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 603} 604 605int8x16_t test_vabaq_s8(int8x16_t v1, int8x16_t v2, int8x16_t v3) { 606 // CHECK-LABEL: test_vabaq_s8 607 return vabaq_s8(v1, v2, v3); 608 // CHECK: saba {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 609} 610 611int16x8_t test_vabaq_s16(int16x8_t v1, int16x8_t v2, int16x8_t v3) { 612 // CHECK-LABEL: test_vabaq_s16 613 return vabaq_s16(v1, v2, v3); 614 // CHECK: saba {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 615} 616 617int32x4_t test_vabaq_s32(int32x4_t v1, int32x4_t v2, int32x4_t v3) { 618 // CHECK-LABEL: test_vabaq_s32 619 return vabaq_s32(v1, v2, v3); 620 // CHECK: saba {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 621} 622 623uint8x16_t test_vabaq_u8(uint8x16_t v1, uint8x16_t v2, uint8x16_t v3) { 624 // CHECK-LABEL: test_vabaq_u8 625 return vabaq_u8(v1, v2, v3); 626 // CHECK: uaba {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 627} 628 629uint16x8_t test_vabaq_u16(uint16x8_t v1, uint16x8_t v2, uint16x8_t v3) { 630 // CHECK-LABEL: test_vabaq_u16 631 return vabaq_u16(v1, v2, v3); 632 // CHECK: uaba {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 633} 634 635uint32x4_t test_vabaq_u32(uint32x4_t v1, uint32x4_t v2, uint32x4_t v3) { 636 // CHECK-LABEL: test_vabaq_u32 637 return vabaq_u32(v1, v2, v3); 638 // CHECK: uaba {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 639} 640 641int8x8_t test_vabd_s8(int8x8_t v1, int8x8_t v2) { 642 // CHECK-LABEL: test_vabd_s8 643 return vabd_s8(v1, v2); 644 // CHECK: sabd {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 645} 646 647int16x4_t test_vabd_s16(int16x4_t v1, int16x4_t v2) { 648 // CHECK-LABEL: test_vabd_s16 649 return vabd_s16(v1, v2); 650 // CHECK: sabd {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 651} 652 653int32x2_t test_vabd_s32(int32x2_t v1, int32x2_t v2) { 654 // CHECK-LABEL: test_vabd_s32 655 return vabd_s32(v1, v2); 656 // CHECK: sabd {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 657} 658 659uint8x8_t test_vabd_u8(uint8x8_t v1, uint8x8_t v2) { 660 // CHECK-LABEL: test_vabd_u8 661 return vabd_u8(v1, v2); 662 // CHECK: uabd {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 663} 664 665uint16x4_t test_vabd_u16(uint16x4_t v1, uint16x4_t v2) { 666 // CHECK-LABEL: test_vabd_u16 667 return vabd_u16(v1, v2); 668 // CHECK: uabd {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 669} 670 671uint32x2_t test_vabd_u32(uint32x2_t v1, uint32x2_t v2) { 672 // CHECK-LABEL: test_vabd_u32 673 return vabd_u32(v1, v2); 674 // CHECK: uabd {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 675} 676 677float32x2_t test_vabd_f32(float32x2_t v1, float32x2_t v2) { 678 // CHECK-LABEL: test_vabd_f32 679 return vabd_f32(v1, v2); 680 // CHECK: fabd {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 681} 682 683int8x16_t test_vabdq_s8(int8x16_t v1, int8x16_t v2) { 684 // CHECK-LABEL: test_vabdq_s8 685 return vabdq_s8(v1, v2); 686 // CHECK: sabd {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 687} 688 689int16x8_t test_vabdq_s16(int16x8_t v1, int16x8_t v2) { 690 // CHECK-LABEL: test_vabdq_s16 691 return vabdq_s16(v1, v2); 692 // CHECK: sabd {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 693} 694 695int32x4_t test_vabdq_s32(int32x4_t v1, int32x4_t v2) { 696 // CHECK-LABEL: test_vabdq_s32 697 return vabdq_s32(v1, v2); 698 // CHECK: sabd {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 699} 700 701uint8x16_t test_vabdq_u8(uint8x16_t v1, uint8x16_t v2) { 702 // CHECK-LABEL: test_vabdq_u8 703 return vabdq_u8(v1, v2); 704 // CHECK: uabd {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 705} 706 707uint16x8_t test_vabdq_u16(uint16x8_t v1, uint16x8_t v2) { 708 // CHECK-LABEL: test_vabdq_u16 709 return vabdq_u16(v1, v2); 710 // CHECK: uabd {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 711} 712 713uint32x4_t test_vabdq_u32(uint32x4_t v1, uint32x4_t v2) { 714 // CHECK-LABEL: test_vabdq_u32 715 return vabdq_u32(v1, v2); 716 // CHECK: uabd {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 717} 718 719float32x4_t test_vabdq_f32(float32x4_t v1, float32x4_t v2) { 720 // CHECK-LABEL: test_vabdq_f32 721 return vabdq_f32(v1, v2); 722 // CHECK: fabd {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 723} 724 725float64x2_t test_vabdq_f64(float64x2_t v1, float64x2_t v2) { 726 // CHECK-LABEL: test_vabdq_f64 727 return vabdq_f64(v1, v2); 728 // CHECK: fabd {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 729} 730 731 732int8x8_t test_vbsl_s8(uint8x8_t v1, int8x8_t v2, int8x8_t v3) { 733 // CHECK-LABEL: test_vbsl_s8 734 return vbsl_s8(v1, v2, v3); 735 // CHECK: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 736} 737 738int8x8_t test_vbsl_s16(uint16x4_t v1, int16x4_t v2, int16x4_t v3) { 739 // CHECK-LABEL: test_vbsl_s16 740 return vbsl_s16(v1, v2, v3); 741 // CHECK: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 742} 743 744int32x2_t test_vbsl_s32(uint32x2_t v1, int32x2_t v2, int32x2_t v3) { 745 // CHECK-LABEL: test_vbsl_s32 746 return vbsl_s32(v1, v2, v3); 747 // CHECK: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 748} 749 750uint64x1_t test_vbsl_s64(uint64x1_t v1, uint64x1_t v2, uint64x1_t v3) { 751 // CHECK-LABEL: test_vbsl_s64 752 return vbsl_s64(v1, v2, v3); 753 // CHECK: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 754} 755 756uint8x8_t test_vbsl_u8(uint8x8_t v1, uint8x8_t v2, uint8x8_t v3) { 757 // CHECK-LABEL: test_vbsl_u8 758 return vbsl_u8(v1, v2, v3); 759 // CHECK: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 760} 761 762uint16x4_t test_vbsl_u16(uint16x4_t v1, uint16x4_t v2, uint16x4_t v3) { 763 // CHECK-LABEL: test_vbsl_u16 764 return vbsl_u16(v1, v2, v3); 765 // CHECK: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 766} 767 768uint32x2_t test_vbsl_u32(uint32x2_t v1, uint32x2_t v2, uint32x2_t v3) { 769 // CHECK-LABEL: test_vbsl_u32 770 return vbsl_u32(v1, v2, v3); 771 // CHECK: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 772} 773 774uint64x1_t test_vbsl_u64(uint64x1_t v1, uint64x1_t v2, uint64x1_t v3) { 775 // CHECK-LABEL: test_vbsl_u64 776 return vbsl_u64(v1, v2, v3); 777 // CHECK: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 778} 779 780float32x2_t test_vbsl_f32(float32x2_t v1, float32x2_t v2, float32x2_t v3) { 781 // CHECK-LABEL: test_vbsl_f32 782 return vbsl_f32(v1, v2, v3); 783 // CHECK: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 784} 785 786float64x1_t test_vbsl_f64(uint64x1_t v1, float64x1_t v2, float64x1_t v3) { 787 // CHECK-LABEL: test_vbsl_f64 788 return vbsl_f64(v1, v2, v3); 789 // CHECK: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 790} 791 792poly8x8_t test_vbsl_p8(uint8x8_t v1, poly8x8_t v2, poly8x8_t v3) { 793 // CHECK-LABEL: test_vbsl_p8 794 return vbsl_p8(v1, v2, v3); 795 // CHECK: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 796} 797 798poly16x4_t test_vbsl_p16(uint16x4_t v1, poly16x4_t v2, poly16x4_t v3) { 799 // CHECK-LABEL: test_vbsl_p16 800 return vbsl_p16(v1, v2, v3); 801 // CHECK: bsl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 802} 803 804int8x16_t test_vbslq_s8(uint8x16_t v1, int8x16_t v2, int8x16_t v3) { 805 // CHECK-LABEL: test_vbslq_s8 806 return vbslq_s8(v1, v2, v3); 807 // CHECK: bsl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 808} 809 810int16x8_t test_vbslq_s16(uint16x8_t v1, int16x8_t v2, int16x8_t v3) { 811 // CHECK-LABEL: test_vbslq_s16 812 return vbslq_s16(v1, v2, v3); 813 // CHECK: bsl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 814} 815 816int32x4_t test_vbslq_s32(uint32x4_t v1, int32x4_t v2, int32x4_t v3) { 817 // CHECK-LABEL: test_vbslq_s32 818 return vbslq_s32(v1, v2, v3); 819 // CHECK: bsl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 820} 821 822int64x2_t test_vbslq_s64(uint64x2_t v1, int64x2_t v2, int64x2_t v3) { 823 // CHECK-LABEL: test_vbslq_s64 824 return vbslq_s64(v1, v2, v3); 825 // CHECK: bsl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 826} 827 828uint8x16_t test_vbslq_u8(uint8x16_t v1, uint8x16_t v2, uint8x16_t v3) { 829 // CHECK-LABEL: test_vbslq_u8 830 return vbslq_u8(v1, v2, v3); 831 // CHECK: bsl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 832} 833 834uint16x8_t test_vbslq_u16(uint16x8_t v1, uint16x8_t v2, uint16x8_t v3) { 835 // CHECK-LABEL: test_vbslq_u16 836 return vbslq_u16(v1, v2, v3); 837 // CHECK: bsl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 838} 839 840int32x4_t test_vbslq_u32(uint32x4_t v1, int32x4_t v2, int32x4_t v3) { 841 // CHECK-LABEL: test_vbslq_u32 842 return vbslq_s32(v1, v2, v3); 843 // CHECK: bsl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 844} 845 846uint64x2_t test_vbslq_u64(uint64x2_t v1, uint64x2_t v2, uint64x2_t v3) { 847 // CHECK-LABEL: test_vbslq_u64 848 return vbslq_u64(v1, v2, v3); 849 // CHECK: bsl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 850} 851 852float32x4_t test_vbslq_f32(uint32x4_t v1, float32x4_t v2, float32x4_t v3) { 853 // CHECK-LABEL: test_vbslq_f32 854 return vbslq_f32(v1, v2, v3); 855 // CHECK: bsl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 856} 857 858poly8x16_t test_vbslq_p8(uint8x16_t v1, poly8x16_t v2, poly8x16_t v3) { 859 // CHECK-LABEL: test_vbslq_p8 860 return vbslq_p8(v1, v2, v3); 861 // CHECK: bsl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 862} 863 864poly16x8_t test_vbslq_p16(uint16x8_t v1, poly16x8_t v2, poly16x8_t v3) { 865 // CHECK-LABEL: test_vbslq_p16 866 return vbslq_p16(v1, v2, v3); 867 // CHECK: bsl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 868} 869 870float64x2_t test_vbslq_f64(uint64x2_t v1, float64x2_t v2, float64x2_t v3) { 871 // CHECK-LABEL: test_vbslq_f64 872 return vbslq_f64(v1, v2, v3); 873 // CHECK: bsl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 874} 875 876float32x2_t test_vrecps_f32(float32x2_t v1, float32x2_t v2) { 877 // CHECK-LABEL: test_vrecps_f32 878 return vrecps_f32(v1, v2); 879 // CHECK: frecps {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 880} 881 882float32x4_t test_vrecpsq_f32(float32x4_t v1, float32x4_t v2) { 883 // CHECK-LABEL: test_vrecpsq_f32 884 return vrecpsq_f32(v1, v2); 885 // CHECK: frecps {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 886} 887 888float64x2_t test_vrecpsq_f64(float64x2_t v1, float64x2_t v2) { 889 // CHECK-LABEL: test_vrecpsq_f64 890 return vrecpsq_f64(v1, v2); 891 // CHECK: frecps {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 892} 893 894float32x2_t test_vrsqrts_f32(float32x2_t v1, float32x2_t v2) { 895 // CHECK-LABEL: test_vrsqrts_f32 896 return vrsqrts_f32(v1, v2); 897 // CHECK: frsqrts {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 898} 899 900float32x4_t test_vrsqrtsq_f32(float32x4_t v1, float32x4_t v2) { 901 // CHECK-LABEL: test_vrsqrtsq_f32 902 return vrsqrtsq_f32(v1, v2); 903 // CHECK: frsqrts {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 904} 905 906float64x2_t test_vrsqrtsq_f64(float64x2_t v1, float64x2_t v2) { 907 // CHECK-LABEL: test_vrsqrtsq_f64 908 return vrsqrtsq_f64(v1, v2); 909 // CHECK: frsqrts {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 910} 911 912uint32x2_t test_vcage_f32(float32x2_t v1, float32x2_t v2) { 913 // CHECK-LABEL: test_vcage_f32 914 return vcage_f32(v1, v2); 915 // CHECK: facge {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 916} 917 918uint64x1_t test_vcage_f64(float64x1_t a, float64x1_t b) { 919 // CHECK-LABEL: test_vcage_f64 920 return vcage_f64(a, b); 921 // CHECK: facge {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 922} 923 924uint32x4_t test_vcageq_f32(float32x4_t v1, float32x4_t v2) { 925 // CHECK-LABEL: test_vcageq_f32 926 return vcageq_f32(v1, v2); 927 // CHECK: facge {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 928} 929 930uint64x2_t test_vcageq_f64(float64x2_t v1, float64x2_t v2) { 931 // CHECK-LABEL: test_vcageq_f64 932 return vcageq_f64(v1, v2); 933 // CHECK: facge {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 934} 935 936uint32x2_t test_vcagt_f32(float32x2_t v1, float32x2_t v2) { 937 // CHECK-LABEL: test_vcagt_f32 938 return vcagt_f32(v1, v2); 939 // CHECK: facgt {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 940} 941 942uint64x1_t test_vcagt_f64(float64x1_t a, float64x1_t b) { 943 // CHECK-LABEL: test_vcagt_f64 944 return vcagt_f64(a, b); 945 // CHECK: facgt {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 946} 947 948uint32x4_t test_vcagtq_f32(float32x4_t v1, float32x4_t v2) { 949 // CHECK-LABEL: test_vcagtq_f32 950 return vcagtq_f32(v1, v2); 951 // CHECK: facgt {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 952} 953 954uint64x2_t test_vcagtq_f64(float64x2_t v1, float64x2_t v2) { 955 // CHECK-LABEL: test_vcagtq_f64 956 return vcagtq_f64(v1, v2); 957 // CHECK: facgt {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 958} 959 960uint32x2_t test_vcale_f32(float32x2_t v1, float32x2_t v2) { 961 // CHECK-LABEL: test_vcale_f32 962 return vcale_f32(v1, v2); 963 // Using registers other than v0, v1 are possible, but would be odd. 964 // CHECK: facge {{v[0-9]+}}.2s, v1.2s, v0.2s 965} 966 967uint64x1_t test_vcale_f64(float64x1_t a, float64x1_t b) { 968 // CHECK-LABEL: test_vcale_f64 969 return vcale_f64(a, b); 970 // CHECK: facge {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 971} 972 973uint32x4_t test_vcaleq_f32(float32x4_t v1, float32x4_t v2) { 974 // CHECK-LABEL: test_vcaleq_f32 975 return vcaleq_f32(v1, v2); 976 // Using registers other than v0, v1 are possible, but would be odd. 977 // CHECK: facge {{v[0-9]+}}.4s, v1.4s, v0.4s 978} 979 980uint64x2_t test_vcaleq_f64(float64x2_t v1, float64x2_t v2) { 981 // CHECK-LABEL: test_vcaleq_f64 982 return vcaleq_f64(v1, v2); 983 // Using registers other than v0, v1 are possible, but would be odd. 984 // CHECK: facge {{v[0-9]+}}.2d, v1.2d, v0.2d 985} 986 987uint32x2_t test_vcalt_f32(float32x2_t v1, float32x2_t v2) { 988 // CHECK-LABEL: test_vcalt_f32 989 return vcalt_f32(v1, v2); 990 // Using registers other than v0, v1 are possible, but would be odd. 991 // CHECK: facgt {{v[0-9]+}}.2s, v1.2s, v0.2s 992} 993 994uint64x1_t test_vcalt_f64(float64x1_t a, float64x1_t b) { 995 // CHECK-LABEL: test_vcalt_f64 996 return vcalt_f64(a, b); 997 // CHECK: facgt {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 998} 999 1000uint32x4_t test_vcaltq_f32(float32x4_t v1, float32x4_t v2) { 1001 // CHECK-LABEL: test_vcaltq_f32 1002 return vcaltq_f32(v1, v2); 1003 // Using registers other than v0, v1 are possible, but would be odd. 1004 // CHECK: facgt {{v[0-9]+}}.4s, v1.4s, v0.4s 1005} 1006 1007uint64x2_t test_vcaltq_f64(float64x2_t v1, float64x2_t v2) { 1008 // CHECK-LABEL: test_vcaltq_f64 1009 return vcaltq_f64(v1, v2); 1010 // Using registers other than v0, v1 are possible, but would be odd. 1011 // CHECK: facgt {{v[0-9]+}}.2d, v1.2d, v0.2d 1012} 1013 1014uint8x8_t test_vtst_s8(int8x8_t v1, int8x8_t v2) { 1015 // CHECK-LABEL: test_vtst_s8 1016 return vtst_s8(v1, v2); 1017 // CHECK: cmtst {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1018} 1019 1020uint16x4_t test_vtst_s16(int16x4_t v1, int16x4_t v2) { 1021 // CHECK-LABEL: test_vtst_s16 1022 return vtst_s16(v1, v2); 1023 // CHECK: cmtst {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1024} 1025 1026uint32x2_t test_vtst_s32(int32x2_t v1, int32x2_t v2) { 1027 // CHECK-LABEL: test_vtst_s32 1028 return vtst_s32(v1, v2); 1029 // CHECK: cmtst {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 1030} 1031 1032uint8x8_t test_vtst_u8(uint8x8_t v1, uint8x8_t v2) { 1033 // CHECK-LABEL: test_vtst_u8 1034 return vtst_u8(v1, v2); 1035 // CHECK: cmtst {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1036} 1037 1038uint16x4_t test_vtst_u16(uint16x4_t v1, uint16x4_t v2) { 1039 // CHECK-LABEL: test_vtst_u16 1040 return vtst_u16(v1, v2); 1041 // CHECK: cmtst {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1042} 1043 1044uint32x2_t test_vtst_u32(uint32x2_t v1, uint32x2_t v2) { 1045 // CHECK-LABEL: test_vtst_u32 1046 return vtst_u32(v1, v2); 1047 // CHECK: cmtst {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 1048} 1049 1050uint8x16_t test_vtstq_s8(int8x16_t v1, int8x16_t v2) { 1051 // CHECK-LABEL: test_vtstq_s8 1052 return vtstq_s8(v1, v2); 1053 // CHECK: cmtst {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1054} 1055 1056uint16x8_t test_vtstq_s16(int16x8_t v1, int16x8_t v2) { 1057 // CHECK-LABEL: test_vtstq_s16 1058 return vtstq_s16(v1, v2); 1059 // CHECK: cmtst {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1060} 1061 1062uint32x4_t test_vtstq_s32(int32x4_t v1, int32x4_t v2) { 1063 // CHECK-LABEL: test_vtstq_s32 1064 return vtstq_s32(v1, v2); 1065 // CHECK: cmtst {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1066} 1067 1068uint8x16_t test_vtstq_u8(uint8x16_t v1, uint8x16_t v2) { 1069 // CHECK-LABEL: test_vtstq_u8 1070 return vtstq_u8(v1, v2); 1071 // CHECK: cmtst {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1072} 1073 1074uint16x8_t test_vtstq_u16(uint16x8_t v1, uint16x8_t v2) { 1075 // CHECK-LABEL: test_vtstq_u16 1076 return vtstq_u16(v1, v2); 1077 // CHECK: cmtst {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1078} 1079 1080uint32x4_t test_vtstq_u32(uint32x4_t v1, uint32x4_t v2) { 1081 // CHECK-LABEL: test_vtstq_u32 1082 return vtstq_u32(v1, v2); 1083 // CHECK: cmtst {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1084} 1085 1086uint64x2_t test_vtstq_s64(int64x2_t v1, int64x2_t v2) { 1087 // CHECK-LABEL: test_vtstq_s64 1088 return vtstq_s64(v1, v2); 1089 // CHECK: cmtst {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 1090} 1091 1092uint64x2_t test_vtstq_u64(uint64x2_t v1, uint64x2_t v2) { 1093 // CHECK-LABEL: test_vtstq_u64 1094 return vtstq_u64(v1, v2); 1095 // CHECK: cmtst {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 1096} 1097 1098uint8x8_t test_vtst_p8(poly8x8_t v1, poly8x8_t v2) { 1099 // CHECK-LABEL: test_vtst_p8 1100 return vtst_p8(v1, v2); 1101 // CHECK: cmtst {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1102} 1103 1104uint16x4_t test_vtst_p16(poly16x4_t v1, poly16x4_t v2) { 1105 // CHECK-LABEL: test_vtst_p16 1106 return vtst_p16(v1, v2); 1107 // CHECK: cmtst {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1108} 1109 1110uint8x16_t test_vtstq_p8(poly8x16_t v1, poly8x16_t v2) { 1111 // CHECK-LABEL: test_vtstq_p8 1112 return vtstq_p8(v1, v2); 1113 // CHECK: cmtst {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1114} 1115 1116uint16x8_t test_vtstq_p16(poly16x8_t v1, poly16x8_t v2) { 1117 // CHECK-LABEL: test_vtstq_p16 1118 return vtstq_p16(v1, v2); 1119 // CHECK: cmtst {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1120} 1121 1122uint64x1_t test_vtst_s64(int64x1_t a, int64x1_t b) { 1123 // CHECK-LABEL: test_vtst_s64 1124 return vtst_s64(a, b); 1125 // CHECK: cmtst {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 1126} 1127 1128uint64x1_t test_vtst_u64(uint64x1_t a, uint64x1_t b) { 1129 // CHECK-LABEL: test_vtst_u64 1130 return vtst_u64(a, b); 1131 // CHECK: cmtst {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 1132} 1133 1134uint8x8_t test_vceq_s8(int8x8_t v1, int8x8_t v2) { 1135 // CHECK-LABEL: test_vceq_s8 1136 return vceq_s8(v1, v2); 1137 // CHECK: cmeq {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1138} 1139 1140uint16x4_t test_vceq_s16(int16x4_t v1, int16x4_t v2) { 1141 // CHECK-LABEL: test_vceq_s16 1142 return vceq_s16(v1, v2); 1143 // CHECK: cmeq {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1144} 1145 1146uint32x2_t test_vceq_s32(int32x2_t v1, int32x2_t v2) { 1147 // CHECK-LABEL: test_vceq_s32 1148 return vceq_s32(v1, v2); 1149 // CHECK: cmeq {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 1150} 1151 1152uint64x1_t test_vceq_s64(int64x1_t a, int64x1_t b) { 1153 // CHECK-LABEL: test_vceq_s64 1154 return vceq_s64(a, b); 1155 // CHECK: cmeq {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 1156} 1157 1158uint64x1_t test_vceq_u64(uint64x1_t a, uint64x1_t b) { 1159 // CHECK-LABEL: test_vceq_u64 1160 return vceq_u64(a, b); 1161 // CHECK: cmeq {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 1162} 1163 1164uint32x2_t test_vceq_f32(float32x2_t v1, float32x2_t v2) { 1165 // CHECK-LABEL: test_vceq_f32 1166 return vceq_f32(v1, v2); 1167 // CHECK: fcmeq {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 1168} 1169 1170uint64x1_t test_vceq_f64(float64x1_t a, float64x1_t b) { 1171 // CHECK-LABEL: test_vceq_f64 1172 return vceq_f64(a, b); 1173 // CHECK: fcmeq {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 1174} 1175 1176uint8x8_t test_vceq_u8(uint8x8_t v1, uint8x8_t v2) { 1177 // CHECK-LABEL: test_vceq_u8 1178 return vceq_u8(v1, v2); 1179 // CHECK: cmeq {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1180} 1181 1182uint16x4_t test_vceq_u16(uint16x4_t v1, uint16x4_t v2) { 1183 // CHECK-LABEL: test_vceq_u16 1184 return vceq_u16(v1, v2); 1185 // CHECK: cmeq {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1186} 1187 1188uint32x2_t test_vceq_u32(uint32x2_t v1, uint32x2_t v2) { 1189 // CHECK-LABEL: test_vceq_u32 1190 return vceq_u32(v1, v2); 1191 // CHECK: cmeq {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 1192} 1193 1194uint8x8_t test_vceq_p8(poly8x8_t v1, poly8x8_t v2) { 1195 // CHECK-LABEL: test_vceq_p8 1196 return vceq_p8(v1, v2); 1197 // CHECK: cmeq {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1198} 1199 1200uint8x16_t test_vceqq_s8(int8x16_t v1, int8x16_t v2) { 1201 // CHECK-LABEL: test_vceqq_s8 1202 return vceqq_s8(v1, v2); 1203 // CHECK: cmeq {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1204} 1205 1206uint16x8_t test_vceqq_s16(int16x8_t v1, int16x8_t v2) { 1207 // CHECK-LABEL: test_vceqq_s16 1208 return vceqq_s16(v1, v2); 1209 // CHECK: cmeq {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1210} 1211 1212uint32x4_t test_vceqq_s32(int32x4_t v1, int32x4_t v2) { 1213 // CHECK-LABEL: test_vceqq_s32 1214 return vceqq_s32(v1, v2); 1215 // CHECK: cmeq {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1216} 1217 1218uint32x4_t test_vceqq_f32(float32x4_t v1, float32x4_t v2) { 1219 // CHECK-LABEL: test_vceqq_f32 1220 return vceqq_f32(v1, v2); 1221 // CHECK: fcmeq {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1222} 1223 1224uint8x16_t test_vceqq_u8(uint8x16_t v1, uint8x16_t v2) { 1225 // CHECK-LABEL: test_vceqq_u8 1226 return vceqq_u8(v1, v2); 1227 // CHECK: cmeq {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1228} 1229 1230uint16x8_t test_vceqq_u16(uint16x8_t v1, uint16x8_t v2) { 1231 // CHECK-LABEL: test_vceqq_u16 1232 return vceqq_u16(v1, v2); 1233 // CHECK: cmeq {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1234} 1235 1236uint32x4_t test_vceqq_u32(uint32x4_t v1, uint32x4_t v2) { 1237 // CHECK-LABEL: test_vceqq_u32 1238 return vceqq_u32(v1, v2); 1239 // CHECK: cmeq {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1240} 1241 1242uint8x16_t test_vceqq_p8(poly8x16_t v1, poly8x16_t v2) { 1243 // CHECK-LABEL: test_vceqq_p8 1244 return vceqq_p8(v1, v2); 1245 // CHECK: cmeq {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1246} 1247 1248 1249uint64x2_t test_vceqq_s64(int64x2_t v1, int64x2_t v2) { 1250 // CHECK-LABEL: test_vceqq_s64 1251 return vceqq_s64(v1, v2); 1252 // CHECK: cmeq {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 1253} 1254 1255uint64x2_t test_vceqq_u64(uint64x2_t v1, uint64x2_t v2) { 1256 // CHECK-LABEL: test_vceqq_u64 1257 return vceqq_u64(v1, v2); 1258 // CHECK: cmeq {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 1259} 1260 1261uint64x2_t test_vceqq_f64(float64x2_t v1, float64x2_t v2) { 1262 // CHECK-LABEL: test_vceqq_f64 1263 return vceqq_f64(v1, v2); 1264 // CHECK: fcmeq {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 1265} 1266uint8x8_t test_vcge_s8(int8x8_t v1, int8x8_t v2) { 1267// CHECK-LABEL: test_vcge_s8 1268 return vcge_s8(v1, v2); 1269// CHECK: cmge {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1270} 1271 1272uint16x4_t test_vcge_s16(int16x4_t v1, int16x4_t v2) { 1273// CHECK-LABEL: test_vcge_s16 1274 return vcge_s16(v1, v2); 1275// CHECK: cmge {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1276} 1277 1278uint32x2_t test_vcge_s32(int32x2_t v1, int32x2_t v2) { 1279// CHECK-LABEL: test_vcge_s32 1280 return vcge_s32(v1, v2); 1281// CHECK: cmge {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 1282} 1283 1284uint64x1_t test_vcge_s64(int64x1_t a, int64x1_t b) { 1285 // CHECK-LABEL: test_vcge_s64 1286 return vcge_s64(a, b); 1287 // CHECK: cmge {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 1288} 1289 1290uint64x1_t test_vcge_u64(uint64x1_t a, uint64x1_t b) { 1291 // CHECK-LABEL: test_vcge_u64 1292 return vcge_u64(a, b); 1293 // CHECK: cmhs {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 1294} 1295 1296uint32x2_t test_vcge_f32(float32x2_t v1, float32x2_t v2) { 1297// CHECK-LABEL: test_vcge_f32 1298 return vcge_f32(v1, v2); 1299// CHECK: fcmge {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 1300} 1301 1302uint64x1_t test_vcge_f64(float64x1_t a, float64x1_t b) { 1303 // CHECK-LABEL: test_vcge_f64 1304 return vcge_f64(a, b); 1305 // CHECK: fcmge {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 1306} 1307 1308uint8x8_t test_vcge_u8(uint8x8_t v1, uint8x8_t v2) { 1309// CHECK-LABEL: test_vcge_u8 1310 return vcge_u8(v1, v2); 1311// CHECK: cmhs {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1312} 1313 1314uint16x4_t test_vcge_u16(uint16x4_t v1, uint16x4_t v2) { 1315// CHECK-LABEL: test_vcge_u16 1316 return vcge_u16(v1, v2); 1317// CHECK: cmhs {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1318} 1319 1320uint32x2_t test_vcge_u32(uint32x2_t v1, uint32x2_t v2) { 1321// CHECK-LABEL: test_vcge_u32 1322 return vcge_u32(v1, v2); 1323// CHECK: cmhs {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 1324} 1325 1326uint8x16_t test_vcgeq_s8(int8x16_t v1, int8x16_t v2) { 1327// CHECK-LABEL: test_vcgeq_s8 1328 return vcgeq_s8(v1, v2); 1329// CHECK: cmge {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1330} 1331 1332uint16x8_t test_vcgeq_s16(int16x8_t v1, int16x8_t v2) { 1333// CHECK-LABEL: test_vcgeq_s16 1334 return vcgeq_s16(v1, v2); 1335// CHECK: cmge {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1336} 1337 1338uint32x4_t test_vcgeq_s32(int32x4_t v1, int32x4_t v2) { 1339// CHECK-LABEL: test_vcgeq_s32 1340 return vcgeq_s32(v1, v2); 1341// CHECK: cmge {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1342} 1343 1344uint32x4_t test_vcgeq_f32(float32x4_t v1, float32x4_t v2) { 1345// CHECK-LABEL: test_vcgeq_f32 1346 return vcgeq_f32(v1, v2); 1347// CHECK: fcmge {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1348} 1349 1350uint8x16_t test_vcgeq_u8(uint8x16_t v1, uint8x16_t v2) { 1351// CHECK-LABEL: test_vcgeq_u8 1352 return vcgeq_u8(v1, v2); 1353// CHECK: cmhs {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1354} 1355 1356uint16x8_t test_vcgeq_u16(uint16x8_t v1, uint16x8_t v2) { 1357// CHECK-LABEL: test_vcgeq_u16 1358 return vcgeq_u16(v1, v2); 1359// CHECK: cmhs {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1360} 1361 1362uint32x4_t test_vcgeq_u32(uint32x4_t v1, uint32x4_t v2) { 1363// CHECK-LABEL: test_vcgeq_u32 1364 return vcgeq_u32(v1, v2); 1365// CHECK: cmhs {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1366} 1367 1368uint64x2_t test_vcgeq_s64(int64x2_t v1, int64x2_t v2) { 1369// CHECK-LABEL: test_vcgeq_s64 1370 return vcgeq_s64(v1, v2); 1371// CHECK: cmge {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 1372} 1373 1374uint64x2_t test_vcgeq_u64(uint64x2_t v1, uint64x2_t v2) { 1375// CHECK-LABEL: test_vcgeq_u64 1376 return vcgeq_u64(v1, v2); 1377// CHECK: cmhs {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 1378} 1379 1380uint64x2_t test_vcgeq_f64(float64x2_t v1, float64x2_t v2) { 1381// CHECK-LABEL: test_vcgeq_f64 1382 return vcgeq_f64(v1, v2); 1383// CHECK: fcmge {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 1384} 1385 1386// Notes about vcle: 1387// LE condition predicate implemented as GE, so check reversed operands. 1388// Using registers other than v0, v1 are possible, but would be odd. 1389uint8x8_t test_vcle_s8(int8x8_t v1, int8x8_t v2) { 1390 // CHECK-LABEL: test_vcle_s8 1391 return vcle_s8(v1, v2); 1392 // CHECK: cmge {{v[0-9]+}}.8b, v1.8b, v0.8b 1393} 1394 1395uint16x4_t test_vcle_s16(int16x4_t v1, int16x4_t v2) { 1396 // CHECK-LABEL: test_vcle_s16 1397 return vcle_s16(v1, v2); 1398 // CHECK: cmge {{v[0-9]+}}.4h, v1.4h, v0.4h 1399} 1400 1401uint32x2_t test_vcle_s32(int32x2_t v1, int32x2_t v2) { 1402 // CHECK-LABEL: test_vcle_s32 1403 return vcle_s32(v1, v2); 1404 // CHECK: cmge {{v[0-9]+}}.2s, v1.2s, v0.2s 1405} 1406 1407uint64x1_t test_vcle_s64(int64x1_t a, int64x1_t b) { 1408 // CHECK-LABEL: test_vcle_s64 1409 return vcle_s64(a, b); 1410 // CHECK: cmge {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 1411} 1412 1413uint64x1_t test_vcle_u64(uint64x1_t a, uint64x1_t b) { 1414 // CHECK-LABEL: test_vcle_u64 1415 return vcle_u64(a, b); 1416 // CHECK: cmhs {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 1417} 1418 1419uint32x2_t test_vcle_f32(float32x2_t v1, float32x2_t v2) { 1420 // CHECK-LABEL: test_vcle_f32 1421 return vcle_f32(v1, v2); 1422 // CHECK: fcmge {{v[0-9]+}}.2s, v1.2s, v0.2s 1423} 1424 1425uint64x1_t test_vcle_f64(float64x1_t a, float64x1_t b) { 1426 // CHECK-LABEL: test_vcle_f64 1427 return vcle_f64(a, b); 1428 // CHECK: fcmge {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 1429} 1430 1431uint8x8_t test_vcle_u8(uint8x8_t v1, uint8x8_t v2) { 1432 // CHECK-LABEL: test_vcle_u8 1433 return vcle_u8(v1, v2); 1434 // CHECK: cmhs {{v[0-9]+}}.8b, v1.8b, v0.8b 1435} 1436 1437uint16x4_t test_vcle_u16(uint16x4_t v1, uint16x4_t v2) { 1438 // CHECK-LABEL: test_vcle_u16 1439 return vcle_u16(v1, v2); 1440 // CHECK: cmhs {{v[0-9]+}}.4h, v1.4h, v0.4h 1441} 1442 1443uint32x2_t test_vcle_u32(uint32x2_t v1, uint32x2_t v2) { 1444 // CHECK-LABEL: test_vcle_u32 1445 return vcle_u32(v1, v2); 1446 // CHECK: cmhs {{v[0-9]+}}.2s, v1.2s, v0.2s 1447} 1448 1449uint8x16_t test_vcleq_s8(int8x16_t v1, int8x16_t v2) { 1450 // CHECK-LABEL: test_vcleq_s8 1451 return vcleq_s8(v1, v2); 1452 // CHECK: cmge {{v[0-9]+}}.16b, v1.16b, v0.16b 1453} 1454 1455uint16x8_t test_vcleq_s16(int16x8_t v1, int16x8_t v2) { 1456 // CHECK-LABEL: test_vcleq_s16 1457 return vcleq_s16(v1, v2); 1458 // CHECK: cmge {{v[0-9]+}}.8h, v1.8h, v0.8h 1459} 1460 1461uint32x4_t test_vcleq_s32(int32x4_t v1, int32x4_t v2) { 1462 // CHECK-LABEL: test_vcleq_s32 1463 return vcleq_s32(v1, v2); 1464 // CHECK: cmge {{v[0-9]+}}.4s, v1.4s, v0.4s 1465} 1466 1467uint32x4_t test_vcleq_f32(float32x4_t v1, float32x4_t v2) { 1468 // CHECK-LABEL: test_vcleq_f32 1469 return vcleq_f32(v1, v2); 1470 // CHECK: fcmge {{v[0-9]+}}.4s, v1.4s, v0.4s 1471} 1472 1473uint8x16_t test_vcleq_u8(uint8x16_t v1, uint8x16_t v2) { 1474 // CHECK-LABEL: test_vcleq_u8 1475 return vcleq_u8(v1, v2); 1476 // CHECK: cmhs {{v[0-9]+}}.16b, v1.16b, v0.16b 1477} 1478 1479uint16x8_t test_vcleq_u16(uint16x8_t v1, uint16x8_t v2) { 1480 // CHECK-LABEL: test_vcleq_u16 1481 return vcleq_u16(v1, v2); 1482 // CHECK: cmhs {{v[0-9]+}}.8h, v1.8h, v0.8h 1483} 1484 1485uint32x4_t test_vcleq_u32(uint32x4_t v1, uint32x4_t v2) { 1486 // CHECK-LABEL: test_vcleq_u32 1487 return vcleq_u32(v1, v2); 1488 // CHECK: cmhs {{v[0-9]+}}.4s, v1.4s, v0.4s 1489} 1490 1491uint64x2_t test_vcleq_s64(int64x2_t v1, int64x2_t v2) { 1492 // CHECK-LABEL: test_vcleq_s64 1493 return vcleq_s64(v1, v2); 1494 // CHECK: cmge {{v[0-9]+}}.2d, v1.2d, v0.2d 1495} 1496 1497uint64x2_t test_vcleq_u64(uint64x2_t v1, uint64x2_t v2) { 1498 // CHECK-LABEL: test_vcleq_u64 1499 return vcleq_u64(v1, v2); 1500 // CHECK: cmhs {{v[0-9]+}}.2d, v1.2d, v0.2d 1501} 1502 1503uint64x2_t test_vcleq_f64(float64x2_t v1, float64x2_t v2) { 1504 // CHECK-LABEL: test_vcleq_f64 1505 return vcleq_f64(v1, v2); 1506 // CHECK: fcmge {{v[0-9]+}}.2d, v1.2d, v0.2d 1507} 1508 1509 1510uint8x8_t test_vcgt_s8(int8x8_t v1, int8x8_t v2) { 1511 // CHECK-LABEL: test_vcgt_s8 1512 return vcgt_s8(v1, v2); 1513 // CHECK: cmgt {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1514} 1515 1516uint16x4_t test_vcgt_s16(int16x4_t v1, int16x4_t v2) { 1517 // CHECK-LABEL: test_vcgt_s16 1518 return vcgt_s16(v1, v2); 1519 // CHECK: cmgt {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1520} 1521 1522uint32x2_t test_vcgt_s32(int32x2_t v1, int32x2_t v2) { 1523 // CHECK-LABEL: test_vcgt_s32 1524 return vcgt_s32(v1, v2); 1525 // CHECK: cmgt {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 1526} 1527 1528uint64x1_t test_vcgt_s64(int64x1_t a, int64x1_t b) { 1529 // CHECK-LABEL: test_vcgt_s64 1530 return vcgt_s64(a, b); 1531 // CHECK: cmgt {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 1532} 1533 1534uint64x1_t test_vcgt_u64(uint64x1_t a, uint64x1_t b) { 1535 // CHECK-LABEL: test_vcgt_u64 1536 return vcgt_u64(a, b); 1537 // CHECK: cmhi {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 1538} 1539 1540uint32x2_t test_vcgt_f32(float32x2_t v1, float32x2_t v2) { 1541 // CHECK-LABEL: test_vcgt_f32 1542 return vcgt_f32(v1, v2); 1543 // CHECK: fcmgt {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 1544} 1545 1546uint64x1_t test_vcgt_f64(float64x1_t a, float64x1_t b) { 1547 // CHECK-LABEL: test_vcgt_f64 1548 return vcgt_f64(a, b); 1549 // CHECK: fcmgt {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 1550} 1551 1552uint8x8_t test_vcgt_u8(uint8x8_t v1, uint8x8_t v2) { 1553 // CHECK-LABEL: test_vcgt_u8 1554 return vcgt_u8(v1, v2); 1555 // CHECK: cmhi {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1556} 1557 1558uint16x4_t test_vcgt_u16(uint16x4_t v1, uint16x4_t v2) { 1559 // CHECK-LABEL: test_vcgt_u16 1560 return vcgt_u16(v1, v2); 1561 // CHECK: cmhi {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1562} 1563 1564uint32x2_t test_vcgt_u32(uint32x2_t v1, uint32x2_t v2) { 1565 // CHECK-LABEL: test_vcgt_u32 1566 return vcgt_u32(v1, v2); 1567 // CHECK: cmhi {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 1568} 1569 1570uint8x16_t test_vcgtq_s8(int8x16_t v1, int8x16_t v2) { 1571 // CHECK-LABEL: test_vcgtq_s8 1572 return vcgtq_s8(v1, v2); 1573 // CHECK: cmgt {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1574} 1575 1576uint16x8_t test_vcgtq_s16(int16x8_t v1, int16x8_t v2) { 1577 // CHECK-LABEL: test_vcgtq_s16 1578 return vcgtq_s16(v1, v2); 1579 // CHECK: cmgt {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1580} 1581 1582uint32x4_t test_vcgtq_s32(int32x4_t v1, int32x4_t v2) { 1583 // CHECK-LABEL: test_vcgtq_s32 1584 return vcgtq_s32(v1, v2); 1585 // CHECK: cmgt {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1586} 1587 1588uint32x4_t test_vcgtq_f32(float32x4_t v1, float32x4_t v2) { 1589 // CHECK-LABEL: test_vcgtq_f32 1590 return vcgtq_f32(v1, v2); 1591 // CHECK: fcmgt {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1592} 1593 1594uint8x16_t test_vcgtq_u8(uint8x16_t v1, uint8x16_t v2) { 1595 // CHECK-LABEL: test_vcgtq_u8 1596 return vcgtq_u8(v1, v2); 1597 // CHECK: cmhi {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1598} 1599 1600uint16x8_t test_vcgtq_u16(uint16x8_t v1, uint16x8_t v2) { 1601 // CHECK-LABEL: test_vcgtq_u16 1602 return vcgtq_u16(v1, v2); 1603 // CHECK: cmhi {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1604} 1605 1606uint32x4_t test_vcgtq_u32(uint32x4_t v1, uint32x4_t v2) { 1607 // CHECK-LABEL: test_vcgtq_u32 1608 return vcgtq_u32(v1, v2); 1609 // CHECK: cmhi {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1610} 1611 1612uint64x2_t test_vcgtq_s64(int64x2_t v1, int64x2_t v2) { 1613 // CHECK-LABEL: test_vcgtq_s64 1614 return vcgtq_s64(v1, v2); 1615 // CHECK: cmgt {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 1616} 1617 1618uint64x2_t test_vcgtq_u64(uint64x2_t v1, uint64x2_t v2) { 1619 // CHECK-LABEL: test_vcgtq_u64 1620 return vcgtq_u64(v1, v2); 1621 // CHECK: cmhi {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 1622} 1623 1624uint64x2_t test_vcgtq_f64(float64x2_t v1, float64x2_t v2) { 1625 // CHECK-LABEL: test_vcgtq_f64 1626 return vcgtq_f64(v1, v2); 1627 // CHECK: fcmgt {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 1628} 1629 1630 1631// Notes about vclt: 1632// LT condition predicate implemented as GT, so check reversed operands. 1633// Using registers other than v0, v1 are possible, but would be odd. 1634 1635uint8x8_t test_vclt_s8(int8x8_t v1, int8x8_t v2) { 1636 // CHECK-LABEL: test_vclt_s8 1637 return vclt_s8(v1, v2); 1638 // CHECK: cmgt {{v[0-9]+}}.8b, v1.8b, v0.8b 1639} 1640 1641uint16x4_t test_vclt_s16(int16x4_t v1, int16x4_t v2) { 1642 // CHECK-LABEL: test_vclt_s16 1643 return vclt_s16(v1, v2); 1644 // CHECK: cmgt {{v[0-9]+}}.4h, v1.4h, v0.4h 1645} 1646 1647uint32x2_t test_vclt_s32(int32x2_t v1, int32x2_t v2) { 1648 // CHECK-LABEL: test_vclt_s32 1649 return vclt_s32(v1, v2); 1650 // CHECK: cmgt {{v[0-9]+}}.2s, v1.2s, v0.2s 1651} 1652 1653uint64x1_t test_vclt_s64(int64x1_t a, int64x1_t b) { 1654 // CHECK-LABEL: test_vclt_s64 1655 return vclt_s64(a, b); 1656 // CHECK: cmgt {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 1657} 1658 1659uint64x1_t test_vclt_u64(uint64x1_t a, uint64x1_t b) { 1660 // CHECK-LABEL: test_vclt_u64 1661 return vclt_u64(a, b); 1662 // CHECK: cmhi {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 1663} 1664 1665uint32x2_t test_vclt_f32(float32x2_t v1, float32x2_t v2) { 1666 // CHECK-LABEL: test_vclt_f32 1667 return vclt_f32(v1, v2); 1668 // CHECK: fcmgt {{v[0-9]+}}.2s, v1.2s, v0.2s 1669} 1670 1671uint64x1_t test_vclt_f64(float64x1_t a, float64x1_t b) { 1672 // CHECK-LABEL: test_vclt_f64 1673 return vclt_f64(a, b); 1674 // CHECK: fcmgt {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 1675} 1676 1677uint8x8_t test_vclt_u8(uint8x8_t v1, uint8x8_t v2) { 1678 // CHECK-LABEL: test_vclt_u8 1679 return vclt_u8(v1, v2); 1680 // CHECK: cmhi {{v[0-9]+}}.8b, v1.8b, v0.8b 1681} 1682 1683uint16x4_t test_vclt_u16(uint16x4_t v1, uint16x4_t v2) { 1684 // CHECK-LABEL: test_vclt_u16 1685 return vclt_u16(v1, v2); 1686 // CHECK: cmhi {{v[0-9]+}}.4h, v1.4h, v0.4h 1687} 1688 1689uint32x2_t test_vclt_u32(uint32x2_t v1, uint32x2_t v2) { 1690 // CHECK-LABEL: test_vclt_u32 1691 return vclt_u32(v1, v2); 1692 // CHECK: cmhi {{v[0-9]+}}.2s, v1.2s, v0.2s 1693} 1694 1695uint8x16_t test_vcltq_s8(int8x16_t v1, int8x16_t v2) { 1696 // CHECK-LABEL: test_vcltq_s8 1697 return vcltq_s8(v1, v2); 1698 // CHECK: cmgt {{v[0-9]+}}.16b, v1.16b, v0.16b 1699} 1700 1701uint16x8_t test_vcltq_s16(int16x8_t v1, int16x8_t v2) { 1702 // CHECK-LABEL: test_vcltq_s16 1703 return vcltq_s16(v1, v2); 1704 // CHECK: cmgt {{v[0-9]+}}.8h, v1.8h, v0.8h 1705} 1706 1707uint32x4_t test_vcltq_s32(int32x4_t v1, int32x4_t v2) { 1708 // CHECK-LABEL: test_vcltq_s32 1709 return vcltq_s32(v1, v2); 1710 // CHECK: cmgt {{v[0-9]+}}.4s, v1.4s, v0.4s 1711} 1712 1713uint32x4_t test_vcltq_f32(float32x4_t v1, float32x4_t v2) { 1714 // CHECK-LABEL: test_vcltq_f32 1715 return vcltq_f32(v1, v2); 1716 // CHECK: fcmgt {{v[0-9]+}}.4s, v1.4s, v0.4s 1717} 1718 1719uint8x16_t test_vcltq_u8(uint8x16_t v1, uint8x16_t v2) { 1720 // CHECK-LABEL: test_vcltq_u8 1721 return vcltq_u8(v1, v2); 1722 // CHECK: cmhi {{v[0-9]+}}.16b, v1.16b, v0.16b 1723} 1724 1725uint16x8_t test_vcltq_u16(uint16x8_t v1, uint16x8_t v2) { 1726 // CHECK-LABEL: test_vcltq_u16 1727 return vcltq_u16(v1, v2); 1728 // CHECK: cmhi {{v[0-9]+}}.8h, v1.8h, v0.8h 1729} 1730 1731uint32x4_t test_vcltq_u32(uint32x4_t v1, uint32x4_t v2) { 1732 // CHECK-LABEL: test_vcltq_u32 1733 return vcltq_u32(v1, v2); 1734 // CHECK: cmhi {{v[0-9]+}}.4s, v1.4s, v0.4s 1735} 1736 1737uint64x2_t test_vcltq_s64(int64x2_t v1, int64x2_t v2) { 1738 // CHECK-LABEL: test_vcltq_s64 1739 return vcltq_s64(v1, v2); 1740 // CHECK: cmgt {{v[0-9]+}}.2d, v1.2d, v0.2d 1741} 1742 1743uint64x2_t test_vcltq_u64(uint64x2_t v1, uint64x2_t v2) { 1744 // CHECK-LABEL: test_vcltq_u64 1745 return vcltq_u64(v1, v2); 1746 // CHECK: cmhi {{v[0-9]+}}.2d, v1.2d, v0.2d 1747} 1748 1749uint64x2_t test_vcltq_f64(float64x2_t v1, float64x2_t v2) { 1750 // CHECK-LABEL: test_vcltq_f64 1751 return vcltq_f64(v1, v2); 1752 // CHECK: fcmgt {{v[0-9]+}}.2d, v1.2d, v0.2d 1753} 1754 1755 1756int8x8_t test_vhadd_s8(int8x8_t v1, int8x8_t v2) { 1757// CHECK-LABEL: test_vhadd_s8 1758 return vhadd_s8(v1, v2); 1759 // CHECK: shadd {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1760} 1761 1762int16x4_t test_vhadd_s16(int16x4_t v1, int16x4_t v2) { 1763// CHECK-LABEL: test_vhadd_s16 1764 return vhadd_s16(v1, v2); 1765 // CHECK: shadd {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1766} 1767 1768int32x2_t test_vhadd_s32(int32x2_t v1, int32x2_t v2) { 1769// CHECK-LABEL: test_vhadd_s32 1770 return vhadd_s32(v1, v2); 1771 // CHECK: shadd {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 1772} 1773 1774uint8x8_t test_vhadd_u8(uint8x8_t v1, uint8x8_t v2) { 1775// CHECK-LABEL: test_vhadd_u8 1776 return vhadd_u8(v1, v2); 1777 // CHECK: uhadd {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1778} 1779 1780uint16x4_t test_vhadd_u16(uint16x4_t v1, uint16x4_t v2) { 1781// CHECK-LABEL: test_vhadd_u16 1782 return vhadd_u16(v1, v2); 1783 // CHECK: uhadd {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1784} 1785 1786uint32x2_t test_vhadd_u32(uint32x2_t v1, uint32x2_t v2) { 1787// CHECK-LABEL: test_vhadd_u32 1788 return vhadd_u32(v1, v2); 1789 // CHECK: uhadd {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 1790} 1791 1792int8x16_t test_vhaddq_s8(int8x16_t v1, int8x16_t v2) { 1793// CHECK-LABEL: test_vhaddq_s8 1794 return vhaddq_s8(v1, v2); 1795 // CHECK: shadd {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1796} 1797 1798int16x8_t test_vhaddq_s16(int16x8_t v1, int16x8_t v2) { 1799// CHECK-LABEL: test_vhaddq_s16 1800 return vhaddq_s16(v1, v2); 1801 // CHECK: shadd {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1802} 1803 1804int32x4_t test_vhaddq_s32(int32x4_t v1, int32x4_t v2) { 1805// CHECK-LABEL: test_vhaddq_s32 1806 return vhaddq_s32(v1, v2); 1807 // CHECK: shadd {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1808} 1809 1810uint8x16_t test_vhaddq_u8(uint8x16_t v1, uint8x16_t v2) { 1811// CHECK-LABEL: test_vhaddq_u8 1812 return vhaddq_u8(v1, v2); 1813 // CHECK: uhadd {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1814} 1815 1816uint16x8_t test_vhaddq_u16(uint16x8_t v1, uint16x8_t v2) { 1817// CHECK-LABEL: test_vhaddq_u16 1818 return vhaddq_u16(v1, v2); 1819 // CHECK: uhadd {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1820} 1821 1822uint32x4_t test_vhaddq_u32(uint32x4_t v1, uint32x4_t v2) { 1823// CHECK-LABEL: test_vhaddq_u32 1824 return vhaddq_u32(v1, v2); 1825 // CHECK: uhadd {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1826} 1827 1828 1829int8x8_t test_vhsub_s8(int8x8_t v1, int8x8_t v2) { 1830// CHECK-LABEL: test_vhsub_s8 1831 return vhsub_s8(v1, v2); 1832 // CHECK: shsub {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1833} 1834 1835int16x4_t test_vhsub_s16(int16x4_t v1, int16x4_t v2) { 1836// CHECK-LABEL: test_vhsub_s16 1837 return vhsub_s16(v1, v2); 1838 // CHECK: shsub {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1839} 1840 1841int32x2_t test_vhsub_s32(int32x2_t v1, int32x2_t v2) { 1842// CHECK-LABEL: test_vhsub_s32 1843 return vhsub_s32(v1, v2); 1844 // CHECK: shsub {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 1845} 1846 1847uint8x8_t test_vhsub_u8(uint8x8_t v1, uint8x8_t v2) { 1848// CHECK-LABEL: test_vhsub_u8 1849 return vhsub_u8(v1, v2); 1850 // CHECK: uhsub {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1851} 1852 1853uint16x4_t test_vhsub_u16(uint16x4_t v1, uint16x4_t v2) { 1854// CHECK-LABEL: test_vhsub_u16 1855 return vhsub_u16(v1, v2); 1856 // CHECK: uhsub {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1857} 1858 1859uint32x2_t test_vhsub_u32(uint32x2_t v1, uint32x2_t v2) { 1860// CHECK-LABEL: test_vhsub_u32 1861 return vhsub_u32(v1, v2); 1862 // CHECK: uhsub {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 1863} 1864 1865int8x16_t test_vhsubq_s8(int8x16_t v1, int8x16_t v2) { 1866// CHECK-LABEL: test_vhsubq_s8 1867 return vhsubq_s8(v1, v2); 1868 // CHECK: shsub {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1869} 1870 1871int16x8_t test_vhsubq_s16(int16x8_t v1, int16x8_t v2) { 1872// CHECK-LABEL: test_vhsubq_s16 1873 return vhsubq_s16(v1, v2); 1874 // CHECK: shsub {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1875} 1876 1877int32x4_t test_vhsubq_s32(int32x4_t v1, int32x4_t v2) { 1878// CHECK-LABEL: test_vhsubq_s32 1879 return vhsubq_s32(v1, v2); 1880 // CHECK: shsub {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1881} 1882 1883uint8x16_t test_vhsubq_u8(uint8x16_t v1, uint8x16_t v2) { 1884// CHECK-LABEL: test_vhsubq_u8 1885 return vhsubq_u8(v1, v2); 1886 // CHECK: uhsub {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1887} 1888 1889uint16x8_t test_vhsubq_u16(uint16x8_t v1, uint16x8_t v2) { 1890// CHECK-LABEL: test_vhsubq_u16 1891 return vhsubq_u16(v1, v2); 1892 // CHECK: uhsub {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1893} 1894 1895uint32x4_t test_vhsubq_u32(uint32x4_t v1, uint32x4_t v2) { 1896// CHECK-LABEL: test_vhsubq_u32 1897 return vhsubq_u32(v1, v2); 1898 // CHECK: uhsub {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1899} 1900 1901 1902int8x8_t test_vrhadd_s8(int8x8_t v1, int8x8_t v2) { 1903// CHECK-LABEL: test_vrhadd_s8 1904 return vrhadd_s8(v1, v2); 1905// CHECK: srhadd {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1906} 1907 1908int16x4_t test_vrhadd_s16(int16x4_t v1, int16x4_t v2) { 1909// CHECK-LABEL: test_vrhadd_s16 1910 return vrhadd_s16(v1, v2); 1911// CHECK: srhadd {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1912} 1913 1914int32x2_t test_vrhadd_s32(int32x2_t v1, int32x2_t v2) { 1915// CHECK-LABEL: test_vrhadd_s32 1916 return vrhadd_s32(v1, v2); 1917// CHECK: srhadd {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 1918} 1919 1920uint8x8_t test_vrhadd_u8(uint8x8_t v1, uint8x8_t v2) { 1921// CHECK-LABEL: test_vrhadd_u8 1922 return vrhadd_u8(v1, v2); 1923// CHECK: urhadd {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1924} 1925 1926uint16x4_t test_vrhadd_u16(uint16x4_t v1, uint16x4_t v2) { 1927// CHECK-LABEL: test_vrhadd_u16 1928 return vrhadd_u16(v1, v2); 1929// CHECK: urhadd {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1930} 1931 1932uint32x2_t test_vrhadd_u32(uint32x2_t v1, uint32x2_t v2) { 1933// CHECK-LABEL: test_vrhadd_u32 1934 return vrhadd_u32(v1, v2); 1935// CHECK: urhadd {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 1936} 1937 1938int8x16_t test_vrhaddq_s8(int8x16_t v1, int8x16_t v2) { 1939// CHECK-LABEL: test_vrhaddq_s8 1940 return vrhaddq_s8(v1, v2); 1941// CHECK: srhadd {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1942} 1943 1944int16x8_t test_vrhaddq_s16(int16x8_t v1, int16x8_t v2) { 1945// CHECK-LABEL: test_vrhaddq_s16 1946 return vrhaddq_s16(v1, v2); 1947// CHECK: srhadd {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1948} 1949 1950int32x4_t test_vrhaddq_s32(int32x4_t v1, int32x4_t v2) { 1951// CHECK-LABEL: test_vrhaddq_s32 1952 return vrhaddq_s32(v1, v2); 1953// CHECK: srhadd {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1954} 1955 1956uint8x16_t test_vrhaddq_u8(uint8x16_t v1, uint8x16_t v2) { 1957// CHECK-LABEL: test_vrhaddq_u8 1958 return vrhaddq_u8(v1, v2); 1959// CHECK: urhadd {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 1960} 1961 1962uint16x8_t test_vrhaddq_u16(uint16x8_t v1, uint16x8_t v2) { 1963// CHECK-LABEL: test_vrhaddq_u16 1964 return vrhaddq_u16(v1, v2); 1965// CHECK: urhadd {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 1966} 1967 1968uint32x4_t test_vrhaddq_u32(uint32x4_t v1, uint32x4_t v2) { 1969// CHECK-LABEL: test_vrhaddq_u32 1970 return vrhaddq_u32(v1, v2); 1971// CHECK: urhadd {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 1972} 1973int8x8_t test_vqadd_s8(int8x8_t a, int8x8_t b) { 1974// CHECK-LABEL: test_vqadd_s8 1975 return vqadd_s8(a, b); 1976 // CHECK: sqadd {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 1977} 1978 1979int16x4_t test_vqadd_s16(int16x4_t a, int16x4_t b) { 1980// CHECK-LABEL: test_vqadd_s16 1981 return vqadd_s16(a, b); 1982 // CHECK: sqadd {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 1983} 1984 1985int32x2_t test_vqadd_s32(int32x2_t a, int32x2_t b) { 1986// CHECK-LABEL: test_vqadd_s32 1987 return vqadd_s32(a, b); 1988 // CHECK: sqadd {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 1989} 1990 1991int64x1_t test_vqadd_s64(int64x1_t a, int64x1_t b) { 1992// CHECK-LABEL: test_vqadd_s64 1993 return vqadd_s64(a, b); 1994// CHECK: sqadd {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 1995} 1996 1997uint8x8_t test_vqadd_u8(uint8x8_t a, uint8x8_t b) { 1998// CHECK-LABEL: test_vqadd_u8 1999 return vqadd_u8(a, b); 2000 // CHECK: uqadd {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2001} 2002 2003uint16x4_t test_vqadd_u16(uint16x4_t a, uint16x4_t b) { 2004// CHECK-LABEL: test_vqadd_u16 2005 return vqadd_u16(a, b); 2006 // CHECK: uqadd {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2007} 2008 2009uint32x2_t test_vqadd_u32(uint32x2_t a, uint32x2_t b) { 2010// CHECK-LABEL: test_vqadd_u32 2011 return vqadd_u32(a, b); 2012 // CHECK: uqadd {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2013} 2014 2015uint64x1_t test_vqadd_u64(uint64x1_t a, uint64x1_t b) { 2016// CHECK: test_vqadd_u64 2017 return vqadd_u64(a, b); 2018// CHECK: uqadd {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 2019} 2020 2021int8x16_t test_vqaddq_s8(int8x16_t a, int8x16_t b) { 2022// CHECK-LABEL: test_vqaddq_s8 2023 return vqaddq_s8(a, b); 2024 // CHECK: sqadd {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2025} 2026 2027int16x8_t test_vqaddq_s16(int16x8_t a, int16x8_t b) { 2028// CHECK-LABEL: test_vqaddq_s16 2029 return vqaddq_s16(a, b); 2030 // CHECK: sqadd {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2031} 2032 2033int32x4_t test_vqaddq_s32(int32x4_t a, int32x4_t b) { 2034// CHECK-LABEL: test_vqaddq_s32 2035 return vqaddq_s32(a, b); 2036 // CHECK: sqadd {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2037} 2038 2039int64x2_t test_vqaddq_s64(int64x2_t a, int64x2_t b) { 2040// CHECK-LABEL: test_vqaddq_s64 2041 return vqaddq_s64(a, b); 2042// CHECK: sqadd {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 2043} 2044 2045uint8x16_t test_vqaddq_u8(uint8x16_t a, uint8x16_t b) { 2046// CHECK-LABEL: test_vqaddq_u8 2047 return vqaddq_u8(a, b); 2048 // CHECK: uqadd {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2049} 2050 2051uint16x8_t test_vqaddq_u16(uint16x8_t a, uint16x8_t b) { 2052// CHECK-LABEL: test_vqaddq_u16 2053 return vqaddq_u16(a, b); 2054 // CHECK: uqadd {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2055} 2056 2057uint32x4_t test_vqaddq_u32(uint32x4_t a, uint32x4_t b) { 2058// CHECK-LABEL: test_vqaddq_u32 2059 return vqaddq_u32(a, b); 2060 // CHECK: uqadd {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2061} 2062 2063uint64x2_t test_vqaddq_u64(uint64x2_t a, uint64x2_t b) { 2064// CHECK-LABEL: test_vqaddq_u64 2065 return vqaddq_u64(a, b); 2066// CHECK: uqadd {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 2067} 2068 2069 2070int8x8_t test_vqsub_s8(int8x8_t a, int8x8_t b) { 2071// CHECK-LABEL: test_vqsub_s8 2072 return vqsub_s8(a, b); 2073 // CHECK: sqsub {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2074} 2075 2076int16x4_t test_vqsub_s16(int16x4_t a, int16x4_t b) { 2077// CHECK-LABEL: test_vqsub_s16 2078 return vqsub_s16(a, b); 2079 // CHECK: sqsub {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2080} 2081 2082int32x2_t test_vqsub_s32(int32x2_t a, int32x2_t b) { 2083// CHECK-LABEL: test_vqsub_s32 2084 return vqsub_s32(a, b); 2085 // CHECK: sqsub {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2086} 2087 2088int64x1_t test_vqsub_s64(int64x1_t a, int64x1_t b) { 2089// CHECK-LABEL: test_vqsub_s64 2090 return vqsub_s64(a, b); 2091// CHECK: sqsub {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 2092} 2093 2094uint8x8_t test_vqsub_u8(uint8x8_t a, uint8x8_t b) { 2095// CHECK-LABEL: test_vqsub_u8 2096 return vqsub_u8(a, b); 2097 // CHECK: uqsub {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2098} 2099 2100uint16x4_t test_vqsub_u16(uint16x4_t a, uint16x4_t b) { 2101// CHECK-LABEL: test_vqsub_u16 2102 return vqsub_u16(a, b); 2103 // CHECK: uqsub {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2104} 2105 2106uint32x2_t test_vqsub_u32(uint32x2_t a, uint32x2_t b) { 2107// CHECK-LABEL: test_vqsub_u32 2108 return vqsub_u32(a, b); 2109 // CHECK: uqsub {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2110} 2111 2112uint64x1_t test_vqsub_u64(uint64x1_t a, uint64x1_t b) { 2113// CHECK-LABEL: test_vqsub_u64 2114 return vqsub_u64(a, b); 2115// CHECK: uqsub {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 2116} 2117 2118int8x16_t test_vqsubq_s8(int8x16_t a, int8x16_t b) { 2119// CHECK-LABEL: test_vqsubq_s8 2120 return vqsubq_s8(a, b); 2121 // CHECK: sqsub {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2122} 2123 2124int16x8_t test_vqsubq_s16(int16x8_t a, int16x8_t b) { 2125// CHECK-LABEL: test_vqsubq_s16 2126 return vqsubq_s16(a, b); 2127 // CHECK: sqsub {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2128} 2129 2130int32x4_t test_vqsubq_s32(int32x4_t a, int32x4_t b) { 2131// CHECK-LABEL: test_vqsubq_s32 2132 return vqsubq_s32(a, b); 2133 // CHECK: sqsub {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2134} 2135 2136int64x2_t test_vqsubq_s64(int64x2_t a, int64x2_t b) { 2137// CHECK-LABEL: test_vqsubq_s64 2138 return vqsubq_s64(a, b); 2139// CHECK: sqsub {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 2140} 2141 2142uint8x16_t test_vqsubq_u8(uint8x16_t a, uint8x16_t b) { 2143// CHECK-LABEL: test_vqsubq_u8 2144 return vqsubq_u8(a, b); 2145 // CHECK: uqsub {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2146} 2147 2148uint16x8_t test_vqsubq_u16(uint16x8_t a, uint16x8_t b) { 2149// CHECK-LABEL: test_vqsubq_u16 2150 return vqsubq_u16(a, b); 2151 // CHECK: uqsub {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2152} 2153 2154uint32x4_t test_vqsubq_u32(uint32x4_t a, uint32x4_t b) { 2155// CHECK-LABEL: test_vqsubq_u32 2156 return vqsubq_u32(a, b); 2157 // CHECK: uqsub {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2158} 2159 2160uint64x2_t test_vqsubq_u64(uint64x2_t a, uint64x2_t b) { 2161// CHECK-LABEL: test_vqsubq_u64 2162 return vqsubq_u64(a, b); 2163 // CHECK: uqsub {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 2164} 2165 2166 2167int8x8_t test_vshl_s8(int8x8_t a, int8x8_t b) { 2168// CHECK-LABEL: test_vshl_s8 2169 return vshl_s8(a, b); 2170// CHECK: sshl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2171} 2172 2173int16x4_t test_vshl_s16(int16x4_t a, int16x4_t b) { 2174// CHECK-LABEL: test_vshl_s16 2175 return vshl_s16(a, b); 2176// CHECK: sshl {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2177} 2178 2179int32x2_t test_vshl_s32(int32x2_t a, int32x2_t b) { 2180// CHECK-LABEL: test_vshl_s32 2181 return vshl_s32(a, b); 2182// CHECK: sshl {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2183} 2184 2185int64x1_t test_vshl_s64(int64x1_t a, int64x1_t b) { 2186// CHECK-LABEL: test_vshl_s64 2187 return vshl_s64(a, b); 2188// CHECK: sshl {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 2189} 2190 2191uint8x8_t test_vshl_u8(uint8x8_t a, int8x8_t b) { 2192// CHECK-LABEL: test_vshl_u8 2193 return vshl_u8(a, b); 2194// CHECK: ushl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2195} 2196 2197uint16x4_t test_vshl_u16(uint16x4_t a, int16x4_t b) { 2198// CHECK-LABEL: test_vshl_u16 2199 return vshl_u16(a, b); 2200// CHECK: ushl {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2201} 2202 2203uint32x2_t test_vshl_u32(uint32x2_t a, int32x2_t b) { 2204// CHECK-LABEL: test_vshl_u32 2205 return vshl_u32(a, b); 2206// CHECK: ushl {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2207} 2208 2209uint64x1_t test_vshl_u64(uint64x1_t a, int64x1_t b) { 2210// CHECK-LABEL: test_vshl_u64 2211 return vshl_u64(a, b); 2212// CHECK: ushl {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 2213} 2214 2215int8x16_t test_vshlq_s8(int8x16_t a, int8x16_t b) { 2216// CHECK-LABEL: test_vshlq_s8 2217 return vshlq_s8(a, b); 2218// CHECK: sshl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2219} 2220 2221int16x8_t test_vshlq_s16(int16x8_t a, int16x8_t b) { 2222// CHECK-LABEL: test_vshlq_s16 2223 return vshlq_s16(a, b); 2224// CHECK: sshl {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2225} 2226 2227int32x4_t test_vshlq_s32(int32x4_t a, int32x4_t b) { 2228// CHECK-LABEL: test_vshlq_s32 2229 return vshlq_s32(a, b); 2230// CHECK: sshl {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2231} 2232 2233int64x2_t test_vshlq_s64(int64x2_t a, int64x2_t b) { 2234// CHECK-LABEL: test_vshlq_s64 2235 return vshlq_s64(a, b); 2236// CHECK: sshl {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 2237} 2238 2239uint8x16_t test_vshlq_u8(uint8x16_t a, int8x16_t b) { 2240// CHECK-LABEL: test_vshlq_u8 2241 return vshlq_u8(a, b); 2242// CHECK: ushl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2243} 2244 2245uint16x8_t test_vshlq_u16(uint16x8_t a, int16x8_t b) { 2246// CHECK-LABEL: test_vshlq_u16 2247 return vshlq_u16(a, b); 2248// CHECK: ushl {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2249} 2250 2251uint32x4_t test_vshlq_u32(uint32x4_t a, int32x4_t b) { 2252// CHECK-LABEL: test_vshlq_u32 2253 return vshlq_u32(a, b); 2254// CHECK: ushl {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2255} 2256 2257uint64x2_t test_vshlq_u64(uint64x2_t a, int64x2_t b) { 2258// CHECK-LABEL: test_vshlq_u64 2259 return vshlq_u64(a, b); 2260// CHECK: ushl {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 2261} 2262 2263 2264int8x8_t test_vqshl_s8(int8x8_t a, int8x8_t b) { 2265// CHECK-LABEL: test_vqshl_s8 2266 return vqshl_s8(a, b); 2267// CHECK: sqshl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2268} 2269 2270int16x4_t test_vqshl_s16(int16x4_t a, int16x4_t b) { 2271// CHECK-LABEL: test_vqshl_s16 2272 return vqshl_s16(a, b); 2273// CHECK: sqshl {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2274} 2275 2276int32x2_t test_vqshl_s32(int32x2_t a, int32x2_t b) { 2277// CHECK-LABEL: test_vqshl_s32 2278 return vqshl_s32(a, b); 2279// CHECK: sqshl {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2280} 2281 2282int64x1_t test_vqshl_s64(int64x1_t a, int64x1_t b) { 2283// CHECK-LABEL: test_vqshl_s64 2284 return vqshl_s64(a, b); 2285// CHECK: sqshl {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 2286} 2287 2288uint8x8_t test_vqshl_u8(uint8x8_t a, int8x8_t b) { 2289// CHECK-LABEL: test_vqshl_u8 2290 return vqshl_u8(a, b); 2291// CHECK: uqshl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2292} 2293 2294uint16x4_t test_vqshl_u16(uint16x4_t a, int16x4_t b) { 2295// CHECK-LABEL: test_vqshl_u16 2296 return vqshl_u16(a, b); 2297// CHECK: uqshl {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2298} 2299 2300uint32x2_t test_vqshl_u32(uint32x2_t a, int32x2_t b) { 2301// CHECK-LABEL: test_vqshl_u32 2302 return vqshl_u32(a, b); 2303// CHECK: uqshl {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2304} 2305 2306uint64x1_t test_vqshl_u64(uint64x1_t a, int64x1_t b) { 2307// CHECK-LABEL: test_vqshl_u64 2308 return vqshl_u64(a, b); 2309// CHECK: uqshl {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 2310} 2311 2312int8x16_t test_vqshlq_s8(int8x16_t a, int8x16_t b) { 2313// CHECK-LABEL: test_vqshlq_s8 2314 return vqshlq_s8(a, b); 2315// CHECK: sqshl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2316} 2317 2318int16x8_t test_vqshlq_s16(int16x8_t a, int16x8_t b) { 2319// CHECK-LABEL: test_vqshlq_s16 2320 return vqshlq_s16(a, b); 2321// CHECK: sqshl {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2322} 2323 2324int32x4_t test_vqshlq_s32(int32x4_t a, int32x4_t b) { 2325// CHECK-LABEL: test_vqshlq_s32 2326 return vqshlq_s32(a, b); 2327// CHECK: sqshl {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2328} 2329 2330int64x2_t test_vqshlq_s64(int64x2_t a, int64x2_t b) { 2331// CHECK-LABEL: test_vqshlq_s64 2332 return vqshlq_s64(a, b); 2333// CHECK: sqshl {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 2334} 2335 2336uint8x16_t test_vqshlq_u8(uint8x16_t a, int8x16_t b) { 2337// CHECK-LABEL: test_vqshlq_u8 2338 return vqshlq_u8(a, b); 2339// CHECK: uqshl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2340} 2341 2342uint16x8_t test_vqshlq_u16(uint16x8_t a, int16x8_t b) { 2343// CHECK-LABEL: test_vqshlq_u16 2344 return vqshlq_u16(a, b); 2345// CHECK: uqshl {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2346} 2347 2348uint32x4_t test_vqshlq_u32(uint32x4_t a, int32x4_t b) { 2349// CHECK-LABEL: test_vqshlq_u32 2350 return vqshlq_u32(a, b); 2351// CHECK: uqshl {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2352} 2353 2354uint64x2_t test_vqshlq_u64(uint64x2_t a, int64x2_t b) { 2355// CHECK-LABEL: test_vqshlq_u64 2356 return vqshlq_u64(a, b); 2357// CHECK: uqshl {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 2358} 2359 2360int8x8_t test_vrshl_s8(int8x8_t a, int8x8_t b) { 2361// CHECK-LABEL: test_vrshl_s8 2362 return vrshl_s8(a, b); 2363// CHECK: srshl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2364} 2365 2366int16x4_t test_vrshl_s16(int16x4_t a, int16x4_t b) { 2367// CHECK-LABEL: test_vrshl_s16 2368 return vrshl_s16(a, b); 2369// CHECK: srshl {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2370} 2371 2372int32x2_t test_vrshl_s32(int32x2_t a, int32x2_t b) { 2373// CHECK-LABEL: test_vrshl_s32 2374 return vrshl_s32(a, b); 2375// CHECK: srshl {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2376} 2377 2378int64x1_t test_vrshl_s64(int64x1_t a, int64x1_t b) { 2379// CHECK-LABEL: test_vrshl_s64 2380 return vrshl_s64(a, b); 2381// CHECK: srshl {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 2382} 2383 2384uint8x8_t test_vrshl_u8(uint8x8_t a, int8x8_t b) { 2385// CHECK-LABEL: test_vrshl_u8 2386 return vrshl_u8(a, b); 2387// CHECK: urshl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2388} 2389 2390uint16x4_t test_vrshl_u16(uint16x4_t a, int16x4_t b) { 2391// CHECK-LABEL: test_vrshl_u16 2392 return vrshl_u16(a, b); 2393// CHECK: urshl {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2394} 2395 2396uint32x2_t test_vrshl_u32(uint32x2_t a, int32x2_t b) { 2397// CHECK-LABEL: test_vrshl_u32 2398 return vrshl_u32(a, b); 2399// CHECK: urshl {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2400} 2401 2402uint64x1_t test_vrshl_u64(uint64x1_t a, int64x1_t b) { 2403// CHECK-LABEL: test_vrshl_u64 2404 return vrshl_u64(a, b); 2405// CHECK: urshl {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 2406} 2407 2408int8x16_t test_vrshlq_s8(int8x16_t a, int8x16_t b) { 2409// CHECK-LABEL: test_vrshlq_s8 2410 return vrshlq_s8(a, b); 2411// CHECK: srshl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2412} 2413 2414int16x8_t test_vrshlq_s16(int16x8_t a, int16x8_t b) { 2415// CHECK-LABEL: test_vrshlq_s16 2416 return vrshlq_s16(a, b); 2417// CHECK: srshl {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2418} 2419 2420int32x4_t test_vrshlq_s32(int32x4_t a, int32x4_t b) { 2421// CHECK-LABEL: test_vrshlq_s32 2422 return vrshlq_s32(a, b); 2423// CHECK: srshl {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2424} 2425 2426int64x2_t test_vrshlq_s64(int64x2_t a, int64x2_t b) { 2427// CHECK-LABEL: test_vrshlq_s64 2428 return vrshlq_s64(a, b); 2429// CHECK: srshl {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 2430} 2431 2432uint8x16_t test_vrshlq_u8(uint8x16_t a, int8x16_t b) { 2433// CHECK-LABEL: test_vrshlq_u8 2434 return vrshlq_u8(a, b); 2435// CHECK: urshl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2436} 2437 2438uint16x8_t test_vrshlq_u16(uint16x8_t a, int16x8_t b) { 2439// CHECK-LABEL: test_vrshlq_u16 2440 return vrshlq_u16(a, b); 2441// CHECK: urshl {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2442} 2443 2444uint32x4_t test_vrshlq_u32(uint32x4_t a, int32x4_t b) { 2445// CHECK-LABEL: test_vrshlq_u32 2446 return vrshlq_u32(a, b); 2447// CHECK: urshl {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2448} 2449 2450uint64x2_t test_vrshlq_u64(uint64x2_t a, int64x2_t b) { 2451// CHECK-LABEL: test_vrshlq_u64 2452 return vrshlq_u64(a, b); 2453// CHECK: urshl {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 2454} 2455 2456 2457int8x8_t test_vqrshl_s8(int8x8_t a, int8x8_t b) { 2458// CHECK-LABEL: test_vqrshl_s8 2459 return vqrshl_s8(a, b); 2460// CHECK: sqrshl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2461} 2462 2463int16x4_t test_vqrshl_s16(int16x4_t a, int16x4_t b) { 2464// CHECK-LABEL: test_vqrshl_s16 2465 return vqrshl_s16(a, b); 2466// CHECK: sqrshl {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2467} 2468 2469int32x2_t test_vqrshl_s32(int32x2_t a, int32x2_t b) { 2470// CHECK-LABEL: test_vqrshl_s32 2471 return vqrshl_s32(a, b); 2472// CHECK: sqrshl {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2473} 2474 2475int64x1_t test_vqrshl_s64(int64x1_t a, int64x1_t b) { 2476// CHECK-LABEL: test_vqrshl_s64 2477 return vqrshl_s64(a, b); 2478// CHECK: sqrshl {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 2479} 2480 2481uint8x8_t test_vqrshl_u8(uint8x8_t a, int8x8_t b) { 2482// CHECK-LABEL: test_vqrshl_u8 2483 return vqrshl_u8(a, b); 2484// CHECK: uqrshl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2485} 2486 2487uint16x4_t test_vqrshl_u16(uint16x4_t a, int16x4_t b) { 2488// CHECK-LABEL: test_vqrshl_u16 2489 return vqrshl_u16(a, b); 2490// CHECK: uqrshl {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2491} 2492 2493uint32x2_t test_vqrshl_u32(uint32x2_t a, int32x2_t b) { 2494// CHECK-LABEL: test_vqrshl_u32 2495 return vqrshl_u32(a, b); 2496// CHECK: uqrshl {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2497} 2498 2499uint64x1_t test_vqrshl_u64(uint64x1_t a, int64x1_t b) { 2500// CHECK-LABEL: test_vqrshl_u64 2501 return vqrshl_u64(a, b); 2502// CHECK: uqrshl {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 2503} 2504 2505int8x16_t test_vqrshlq_s8(int8x16_t a, int8x16_t b) { 2506// CHECK-LABEL: test_vqrshlq_s8 2507 return vqrshlq_s8(a, b); 2508// CHECK: sqrshl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2509} 2510 2511int16x8_t test_vqrshlq_s16(int16x8_t a, int16x8_t b) { 2512// CHECK-LABEL: test_vqrshlq_s16 2513 return vqrshlq_s16(a, b); 2514// CHECK: sqrshl {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2515} 2516 2517int32x4_t test_vqrshlq_s32(int32x4_t a, int32x4_t b) { 2518// CHECK-LABEL: test_vqrshlq_s32 2519 return vqrshlq_s32(a, b); 2520// CHECK: sqrshl {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2521} 2522 2523int64x2_t test_vqrshlq_s64(int64x2_t a, int64x2_t b) { 2524// CHECK-LABEL: test_vqrshlq_s64 2525 return vqrshlq_s64(a, b); 2526// CHECK: sqrshl {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 2527} 2528 2529// CHECK-LABEL: test_vqrshlq_u8 2530uint8x16_t test_vqrshlq_u8(uint8x16_t a, int8x16_t b) { 2531 return vqrshlq_u8(a, b); 2532// CHECK: uqrshl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2533} 2534 2535uint16x8_t test_vqrshlq_u16(uint16x8_t a, int16x8_t b) { 2536// CHECK-LABEL: test_vqrshlq_u16 2537 return vqrshlq_u16(a, b); 2538// CHECK: uqrshl {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2539} 2540 2541uint32x4_t test_vqrshlq_u32(uint32x4_t a, int32x4_t b) { 2542// CHECK-LABEL: test_vqrshlq_u32 2543 return vqrshlq_u32(a, b); 2544// CHECK: uqrshl {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2545} 2546 2547uint64x2_t test_vqrshlq_u64(uint64x2_t a, int64x2_t b) { 2548// CHECK-LABEL: test_vqrshlq_u64 2549 return vqrshlq_u64(a, b); 2550// CHECK: uqrshl {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 2551} 2552 2553poly64x1_t test_vsli_n_p64(poly64x1_t a, poly64x1_t b) { 2554// CHECK-LABEL: test_vsli_n_p64 2555 return vsli_n_p64(a, b, 0); 2556// CHECK: sli {{d[0-9]+}}, {{d[0-9]+}}, #0 2557} 2558 2559poly64x2_t test_vsliq_n_p64(poly64x2_t a, poly64x2_t b) { 2560// CHECK-LABEL: test_vsliq_n_p64 2561 return vsliq_n_p64(a, b, 0); 2562// CHECK: sli {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #0 2563} 2564 2565int8x8_t test_vmax_s8(int8x8_t a, int8x8_t b) { 2566// CHECK-LABEL: test_vmax_s8 2567 return vmax_s8(a, b); 2568// CHECK: smax {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2569} 2570 2571int16x4_t test_vmax_s16(int16x4_t a, int16x4_t b) { 2572// CHECK-LABEL: test_vmax_s16 2573 return vmax_s16(a, b); 2574// CHECK: smax {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2575} 2576 2577int32x2_t test_vmax_s32(int32x2_t a, int32x2_t b) { 2578// CHECK-LABEL: test_vmax_s32 2579 return vmax_s32(a, b); 2580// CHECK: smax {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2581} 2582 2583uint8x8_t test_vmax_u8(uint8x8_t a, uint8x8_t b) { 2584// CHECK-LABEL: test_vmax_u8 2585 return vmax_u8(a, b); 2586// CHECK: umax {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2587} 2588 2589uint16x4_t test_vmax_u16(uint16x4_t a, uint16x4_t b) { 2590// CHECK-LABEL: test_vmax_u16 2591 return vmax_u16(a, b); 2592// CHECK: umax {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2593} 2594 2595uint32x2_t test_vmax_u32(uint32x2_t a, uint32x2_t b) { 2596// CHECK-LABEL: test_vmax_u32 2597 return vmax_u32(a, b); 2598// CHECK: umax {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2599} 2600 2601float32x2_t test_vmax_f32(float32x2_t a, float32x2_t b) { 2602// CHECK-LABEL: test_vmax_f32 2603 return vmax_f32(a, b); 2604// CHECK: fmax {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2605} 2606 2607int8x16_t test_vmaxq_s8(int8x16_t a, int8x16_t b) { 2608// CHECK-LABEL: test_vmaxq_s8 2609 return vmaxq_s8(a, b); 2610// CHECK: smax {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2611} 2612 2613int16x8_t test_vmaxq_s16(int16x8_t a, int16x8_t b) { 2614// CHECK-LABEL: test_vmaxq_s16 2615 return vmaxq_s16(a, b); 2616// CHECK: smax {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2617} 2618 2619int32x4_t test_vmaxq_s32(int32x4_t a, int32x4_t b) { 2620// CHECK-LABEL: test_vmaxq_s32 2621 return vmaxq_s32(a, b); 2622// CHECK: smax {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2623} 2624 2625uint8x16_t test_vmaxq_u8(uint8x16_t a, uint8x16_t b) { 2626// CHECK-LABEL: test_vmaxq_u8 2627 return vmaxq_u8(a, b); 2628// CHECK: umax {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2629} 2630 2631uint16x8_t test_vmaxq_u16(uint16x8_t a, uint16x8_t b) { 2632// CHECK-LABEL: test_vmaxq_u16 2633 return vmaxq_u16(a, b); 2634// CHECK: umax {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2635} 2636 2637uint32x4_t test_vmaxq_u32(uint32x4_t a, uint32x4_t b) { 2638// CHECK-LABEL: test_vmaxq_u32 2639 return vmaxq_u32(a, b); 2640// CHECK: umax {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2641} 2642 2643float32x4_t test_vmaxq_f32(float32x4_t a, float32x4_t b) { 2644// CHECK-LABEL: test_vmaxq_f32 2645 return vmaxq_f32(a, b); 2646// CHECK: fmax {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2647} 2648 2649float64x2_t test_vmaxq_f64(float64x2_t a, float64x2_t b) { 2650// CHECK-LABEL: test_vmaxq_f64 2651 return vmaxq_f64(a, b); 2652// CHECK: fmax {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 2653} 2654 2655 2656int8x8_t test_vmin_s8(int8x8_t a, int8x8_t b) { 2657// CHECK-LABEL: test_vmin_s8 2658 return vmin_s8(a, b); 2659// CHECK: smin {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2660} 2661 2662int16x4_t test_vmin_s16(int16x4_t a, int16x4_t b) { 2663// CHECK-LABEL: test_vmin_s16 2664 return vmin_s16(a, b); 2665// CHECK: smin {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2666} 2667 2668int32x2_t test_vmin_s32(int32x2_t a, int32x2_t b) { 2669// CHECK-LABEL: test_vmin_s32 2670 return vmin_s32(a, b); 2671// CHECK: smin {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2672} 2673 2674uint8x8_t test_vmin_u8(uint8x8_t a, uint8x8_t b) { 2675// CHECK-LABEL: test_vmin_u8 2676 return vmin_u8(a, b); 2677// CHECK: umin {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2678} 2679 2680uint16x4_t test_vmin_u16(uint16x4_t a, uint16x4_t b) { 2681// CHECK-LABEL: test_vmin_u16 2682 return vmin_u16(a, b); 2683// CHECK: umin {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2684} 2685 2686uint32x2_t test_vmin_u32(uint32x2_t a, uint32x2_t b) { 2687// CHECK-LABEL: test_vmin_u32 2688 return vmin_u32(a, b); 2689// CHECK: umin {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2690} 2691 2692float32x2_t test_vmin_f32(float32x2_t a, float32x2_t b) { 2693// CHECK-LABEL: test_vmin_f32 2694 return vmin_f32(a, b); 2695// CHECK: fmin {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2696} 2697 2698int8x16_t test_vminq_s8(int8x16_t a, int8x16_t b) { 2699// CHECK-LABEL: test_vminq_s8 2700 return vminq_s8(a, b); 2701// CHECK: smin {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2702} 2703 2704int16x8_t test_vminq_s16(int16x8_t a, int16x8_t b) { 2705// CHECK-LABEL: test_vminq_s16 2706 return vminq_s16(a, b); 2707// CHECK: smin {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2708} 2709 2710int32x4_t test_vminq_s32(int32x4_t a, int32x4_t b) { 2711// CHECK-LABEL: test_vminq_s32 2712 return vminq_s32(a, b); 2713// CHECK: smin {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2714} 2715 2716uint8x16_t test_vminq_u8(uint8x16_t a, uint8x16_t b) { 2717// CHECK-LABEL: test_vminq_u8 2718 return vminq_u8(a, b); 2719// CHECK: umin {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2720} 2721 2722uint16x8_t test_vminq_u16(uint16x8_t a, uint16x8_t b) { 2723// CHECK-LABEL: test_vminq_u16 2724 return vminq_u16(a, b); 2725// CHECK: umin {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2726} 2727 2728uint32x4_t test_vminq_u32(uint32x4_t a, uint32x4_t b) { 2729// CHECK-LABEL: test_vminq_u32 2730 return vminq_u32(a, b); 2731// CHECK: umin {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2732} 2733 2734float32x4_t test_vminq_f32(float32x4_t a, float32x4_t b) { 2735// CHECK-LABEL: test_vminq_f32 2736 return vminq_f32(a, b); 2737// CHECK: fmin {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2738} 2739 2740float64x2_t test_vminq_f64(float64x2_t a, float64x2_t b) { 2741// CHECK-LABEL: test_vminq_f64 2742 return vminq_f64(a, b); 2743// CHECK: fmin {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 2744} 2745 2746float32x2_t test_vmaxnm_f32(float32x2_t a, float32x2_t b) { 2747// CHECK-LABEL: test_vmaxnm_f32 2748 return vmaxnm_f32(a, b); 2749// CHECK: fmaxnm {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2750} 2751 2752float32x4_t test_vmaxnmq_f32(float32x4_t a, float32x4_t b) { 2753// CHECK-LABEL: test_vmaxnmq_f32 2754 return vmaxnmq_f32(a, b); 2755// CHECK: fmaxnm {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2756} 2757 2758float64x2_t test_vmaxnmq_f64(float64x2_t a, float64x2_t b) { 2759// CHECK-LABEL: test_vmaxnmq_f64 2760 return vmaxnmq_f64(a, b); 2761// CHECK: fmaxnm {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 2762} 2763 2764float32x2_t test_vminnm_f32(float32x2_t a, float32x2_t b) { 2765// CHECK-LABEL: test_vminnm_f32 2766 return vminnm_f32(a, b); 2767// CHECK: fminnm {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2768} 2769 2770float32x4_t test_vminnmq_f32(float32x4_t a, float32x4_t b) { 2771// CHECK-LABEL: test_vminnmq_f32 2772 return vminnmq_f32(a, b); 2773// CHECK: fminnm {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2774} 2775 2776float64x2_t test_vminnmq_f64(float64x2_t a, float64x2_t b) { 2777// CHECK-LABEL: test_vminnmq_f64 2778 return vminnmq_f64(a, b); 2779// CHECK: fminnm {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 2780} 2781 2782int8x8_t test_vpmax_s8(int8x8_t a, int8x8_t b) { 2783// CHECK-LABEL: test_vpmax_s8 2784 return vpmax_s8(a, b); 2785// CHECK: smaxp {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2786} 2787 2788int16x4_t test_vpmax_s16(int16x4_t a, int16x4_t b) { 2789// CHECK-LABEL: test_vpmax_s16 2790 return vpmax_s16(a, b); 2791// CHECK: smaxp {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2792} 2793 2794int32x2_t test_vpmax_s32(int32x2_t a, int32x2_t b) { 2795// CHECK-LABEL: test_vpmax_s32 2796 return vpmax_s32(a, b); 2797// CHECK: smaxp {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2798} 2799 2800uint8x8_t test_vpmax_u8(uint8x8_t a, uint8x8_t b) { 2801// CHECK-LABEL: test_vpmax_u8 2802 return vpmax_u8(a, b); 2803// CHECK: umaxp {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2804} 2805 2806uint16x4_t test_vpmax_u16(uint16x4_t a, uint16x4_t b) { 2807// CHECK-LABEL: test_vpmax_u16 2808 return vpmax_u16(a, b); 2809// CHECK: umaxp {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2810} 2811 2812uint32x2_t test_vpmax_u32(uint32x2_t a, uint32x2_t b) { 2813// CHECK-LABEL: test_vpmax_u32 2814 return vpmax_u32(a, b); 2815// CHECK: umaxp {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2816} 2817 2818float32x2_t test_vpmax_f32(float32x2_t a, float32x2_t b) { 2819// CHECK-LABEL: test_vpmax_f32 2820 return vpmax_f32(a, b); 2821// CHECK: fmaxp {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2822} 2823 2824int8x16_t test_vpmaxq_s8(int8x16_t a, int8x16_t b) { 2825// CHECK-LABEL: test_vpmaxq_s8 2826 return vpmaxq_s8(a, b); 2827// CHECK: smaxp {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2828} 2829 2830int16x8_t test_vpmaxq_s16(int16x8_t a, int16x8_t b) { 2831// CHECK-LABEL: test_vpmaxq_s16 2832 return vpmaxq_s16(a, b); 2833// CHECK: smaxp {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2834} 2835 2836int32x4_t test_vpmaxq_s32(int32x4_t a, int32x4_t b) { 2837// CHECK-LABEL: test_vpmaxq_s32 2838 return vpmaxq_s32(a, b); 2839// CHECK: smaxp {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2840} 2841 2842uint8x16_t test_vpmaxq_u8(uint8x16_t a, uint8x16_t b) { 2843// CHECK-LABEL: test_vpmaxq_u8 2844 return vpmaxq_u8(a, b); 2845// CHECK: umaxp {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2846} 2847 2848uint16x8_t test_vpmaxq_u16(uint16x8_t a, uint16x8_t b) { 2849// CHECK-LABEL: test_vpmaxq_u16 2850 return vpmaxq_u16(a, b); 2851// CHECK: umaxp {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2852} 2853 2854uint32x4_t test_vpmaxq_u32(uint32x4_t a, uint32x4_t b) { 2855// CHECK-LABEL: test_vpmaxq_u32 2856 return vpmaxq_u32(a, b); 2857// CHECK: umaxp {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2858} 2859 2860float32x4_t test_vpmaxq_f32(float32x4_t a, float32x4_t b) { 2861// CHECK-LABEL: test_vpmaxq_f32 2862 return vpmaxq_f32(a, b); 2863// CHECK: fmaxp {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2864} 2865 2866float64x2_t test_vpmaxq_f64(float64x2_t a, float64x2_t b) { 2867// CHECK-LABEL: test_vpmaxq_f64 2868 return vpmaxq_f64(a, b); 2869// CHECK: fmaxp {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 2870} 2871 2872int8x8_t test_vpmin_s8(int8x8_t a, int8x8_t b) { 2873// CHECK-LABEL: test_vpmin_s8 2874 return vpmin_s8(a, b); 2875// CHECK: sminp {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2876} 2877 2878int16x4_t test_vpmin_s16(int16x4_t a, int16x4_t b) { 2879// CHECK-LABEL: test_vpmin_s16 2880 return vpmin_s16(a, b); 2881// CHECK: sminp {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2882} 2883 2884int32x2_t test_vpmin_s32(int32x2_t a, int32x2_t b) { 2885// CHECK-LABEL: test_vpmin_s32 2886 return vpmin_s32(a, b); 2887// CHECK: sminp {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2888} 2889 2890uint8x8_t test_vpmin_u8(uint8x8_t a, uint8x8_t b) { 2891// CHECK-LABEL: test_vpmin_u8 2892 return vpmin_u8(a, b); 2893// CHECK: uminp {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 2894} 2895 2896uint16x4_t test_vpmin_u16(uint16x4_t a, uint16x4_t b) { 2897// CHECK-LABEL: test_vpmin_u16 2898 return vpmin_u16(a, b); 2899// CHECK: uminp {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 2900} 2901 2902uint32x2_t test_vpmin_u32(uint32x2_t a, uint32x2_t b) { 2903// CHECK-LABEL: test_vpmin_u32 2904 return vpmin_u32(a, b); 2905// CHECK: uminp {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2906} 2907 2908float32x2_t test_vpmin_f32(float32x2_t a, float32x2_t b) { 2909// CHECK-LABEL: test_vpmin_f32 2910 return vpmin_f32(a, b); 2911// CHECK: fminp {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2912} 2913 2914int8x16_t test_vpminq_s8(int8x16_t a, int8x16_t b) { 2915// CHECK-LABEL: test_vpminq_s8 2916 return vpminq_s8(a, b); 2917// CHECK: sminp {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2918} 2919 2920int16x8_t test_vpminq_s16(int16x8_t a, int16x8_t b) { 2921// CHECK-LABEL: test_vpminq_s16 2922 return vpminq_s16(a, b); 2923// CHECK: sminp {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2924} 2925 2926int32x4_t test_vpminq_s32(int32x4_t a, int32x4_t b) { 2927// CHECK-LABEL: test_vpminq_s32 2928 return vpminq_s32(a, b); 2929// CHECK: sminp {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2930} 2931 2932uint8x16_t test_vpminq_u8(uint8x16_t a, uint8x16_t b) { 2933// CHECK-LABEL: test_vpminq_u8 2934 return vpminq_u8(a, b); 2935// CHECK: uminp {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 2936} 2937 2938uint16x8_t test_vpminq_u16(uint16x8_t a, uint16x8_t b) { 2939// CHECK-LABEL: test_vpminq_u16 2940 return vpminq_u16(a, b); 2941// CHECK: uminp {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 2942} 2943 2944uint32x4_t test_vpminq_u32(uint32x4_t a, uint32x4_t b) { 2945// CHECK-LABEL: test_vpminq_u32 2946 return vpminq_u32(a, b); 2947// CHECK: uminp {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2948} 2949 2950float32x4_t test_vpminq_f32(float32x4_t a, float32x4_t b) { 2951// CHECK-LABEL: test_vpminq_f32 2952 return vpminq_f32(a, b); 2953// CHECK: fminp {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2954} 2955 2956float64x2_t test_vpminq_f64(float64x2_t a, float64x2_t b) { 2957// CHECK-LABEL: test_vpminq_f64 2958 return vpminq_f64(a, b); 2959// CHECK: fminp {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 2960} 2961 2962float32x2_t test_vpmaxnm_f32(float32x2_t a, float32x2_t b) { 2963// CHECK-LABEL: test_vpmaxnm_f32 2964 return vpmaxnm_f32(a, b); 2965// CHECK: fmaxnmp {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2966} 2967 2968float32x4_t test_vpmaxnmq_f32(float32x4_t a, float32x4_t b) { 2969// CHECK-LABEL: test_vpmaxnmq_f32 2970 return vpmaxnmq_f32(a, b); 2971// CHECK: fmaxnmp {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2972} 2973 2974float64x2_t test_vpmaxnmq_f64(float64x2_t a, float64x2_t b) { 2975// CHECK-LABEL: test_vpmaxnmq_f64 2976 return vpmaxnmq_f64(a, b); 2977// CHECK: fmaxnmp {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 2978} 2979 2980float32x2_t test_vpminnm_f32(float32x2_t a, float32x2_t b) { 2981// CHECK-LABEL: test_vpminnm_f32 2982 return vpminnm_f32(a, b); 2983// CHECK: fminnmp {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 2984} 2985 2986float32x4_t test_vpminnmq_f32(float32x4_t a, float32x4_t b) { 2987// CHECK-LABEL: test_vpminnmq_f32 2988 return vpminnmq_f32(a, b); 2989// CHECK: fminnmp {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 2990} 2991 2992float64x2_t test_vpminnmq_f64(float64x2_t a, float64x2_t b) { 2993// CHECK-LABEL: test_vpminnmq_f64 2994 return vpminnmq_f64(a, b); 2995// CHECK: fminnmp {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 2996} 2997 2998int8x8_t test_vpadd_s8(int8x8_t a, int8x8_t b) { 2999// CHECK-LABEL: test_vpadd_s8 3000 return vpadd_s8(a, b); 3001// CHECK: addp {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 3002} 3003 3004int16x4_t test_vpadd_s16(int16x4_t a, int16x4_t b) { 3005// CHECK-LABEL: test_vpadd_s16 3006 return vpadd_s16(a, b); 3007// CHECK: addp {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 3008} 3009 3010int32x2_t test_vpadd_s32(int32x2_t a, int32x2_t b) { 3011// CHECK-LABEL: test_vpadd_s32 3012 return vpadd_s32(a, b); 3013// CHECK: addp {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 3014} 3015 3016uint8x8_t test_vpadd_u8(uint8x8_t a, uint8x8_t b) { 3017// CHECK-LABEL: test_vpadd_u8 3018 return vpadd_u8(a, b); 3019// CHECK: addp {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 3020} 3021 3022uint16x4_t test_vpadd_u16(uint16x4_t a, uint16x4_t b) { 3023// CHECK-LABEL: test_vpadd_u16 3024 return vpadd_u16(a, b); 3025// CHECK: addp {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 3026} 3027 3028uint32x2_t test_vpadd_u32(uint32x2_t a, uint32x2_t b) { 3029// CHECK-LABEL: test_vpadd_u32 3030 return vpadd_u32(a, b); 3031// CHECK: addp {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 3032} 3033 3034float32x2_t test_vpadd_f32(float32x2_t a, float32x2_t b) { 3035// CHECK-LABEL: test_vpadd_f32 3036 return vpadd_f32(a, b); 3037// CHECK: faddp {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 3038} 3039 3040int8x16_t test_vpaddq_s8(int8x16_t a, int8x16_t b) { 3041// CHECK-LABEL: test_vpaddq_s8 3042 return vpaddq_s8(a, b); 3043// CHECK: addp {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 3044} 3045 3046int16x8_t test_vpaddq_s16(int16x8_t a, int16x8_t b) { 3047// CHECK-LABEL: test_vpaddq_s16 3048 return vpaddq_s16(a, b); 3049// CHECK: addp {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 3050} 3051 3052int32x4_t test_vpaddq_s32(int32x4_t a, int32x4_t b) { 3053// CHECK-LABEL: test_vpaddq_s32 3054 return vpaddq_s32(a, b); 3055// CHECK: addp {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 3056} 3057 3058uint8x16_t test_vpaddq_u8(uint8x16_t a, uint8x16_t b) { 3059// CHECK-LABEL: test_vpaddq_u8 3060 return vpaddq_u8(a, b); 3061// CHECK: addp {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 3062} 3063 3064uint16x8_t test_vpaddq_u16(uint16x8_t a, uint16x8_t b) { 3065// CHECK-LABEL: test_vpaddq_u16 3066 return vpaddq_u16(a, b); 3067// CHECK: addp {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 3068} 3069 3070uint32x4_t test_vpaddq_u32(uint32x4_t a, uint32x4_t b) { 3071// CHECK-LABEL: test_vpaddq_u32 3072 return vpaddq_u32(a, b); 3073// CHECK: addp {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 3074} 3075 3076float32x4_t test_vpaddq_f32(float32x4_t a, float32x4_t b) { 3077// CHECK-LABEL: test_vpaddq_f32 3078 return vpaddq_f32(a, b); 3079// CHECK: faddp {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 3080} 3081 3082float64x2_t test_vpaddq_f64(float64x2_t a, float64x2_t b) { 3083// CHECK-LABEL: test_vpaddq_f64 3084 return vpaddq_f64(a, b); 3085// CHECK: faddp {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 3086} 3087 3088int16x4_t test_vqdmulh_s16(int16x4_t a, int16x4_t b) { 3089// CHECK-LABEL: test_vqdmulh_s16 3090 return vqdmulh_s16(a, b); 3091// CHECK: sqdmulh {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 3092} 3093 3094int32x2_t test_vqdmulh_s32(int32x2_t a, int32x2_t b) { 3095// CHECK-LABEL: test_vqdmulh_s32 3096 return vqdmulh_s32(a, b); 3097// CHECK: sqdmulh {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 3098} 3099 3100int16x8_t test_vqdmulhq_s16(int16x8_t a, int16x8_t b) { 3101// CHECK-LABEL: test_vqdmulhq_s16 3102 return vqdmulhq_s16(a, b); 3103// CHECK: sqdmulh {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 3104} 3105 3106int32x4_t test_vqdmulhq_s32(int32x4_t a, int32x4_t b) { 3107// CHECK-LABEL: test_vqdmulhq_s32 3108 return vqdmulhq_s32(a, b); 3109// CHECK: sqdmulh {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 3110} 3111 3112int16x4_t test_vqrdmulh_s16(int16x4_t a, int16x4_t b) { 3113// CHECK-LABEL: test_vqrdmulh_s16 3114 return vqrdmulh_s16(a, b); 3115// CHECK: sqrdmulh {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 3116} 3117 3118int32x2_t test_vqrdmulh_s32(int32x2_t a, int32x2_t b) { 3119// CHECK-LABEL: test_vqrdmulh_s32 3120 return vqrdmulh_s32(a, b); 3121// CHECK: sqrdmulh {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 3122} 3123 3124int16x8_t test_vqrdmulhq_s16(int16x8_t a, int16x8_t b) { 3125// CHECK-LABEL: test_vqrdmulhq_s16 3126 return vqrdmulhq_s16(a, b); 3127// CHECK: sqrdmulh {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 3128} 3129 3130int32x4_t test_vqrdmulhq_s32(int32x4_t a, int32x4_t b) { 3131// CHECK-LABEL: test_vqrdmulhq_s32 3132 return vqrdmulhq_s32(a, b); 3133// CHECK: sqrdmulh {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 3134} 3135 3136float32x2_t test_vmulx_f32(float32x2_t a, float32x2_t b) { 3137// CHECK-LABEL: test_vmulx_f32 3138 return vmulx_f32(a, b); 3139// CHECK: fmulx {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 3140} 3141 3142float32x4_t test_vmulxq_f32(float32x4_t a, float32x4_t b) { 3143// CHECK-LABEL: test_vmulxq_f32 3144 return vmulxq_f32(a, b); 3145// CHECK: fmulx {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 3146} 3147 3148float64x2_t test_vmulxq_f64(float64x2_t a, float64x2_t b) { 3149// CHECK-LABEL: test_vmulxq_f64 3150 return vmulxq_f64(a, b); 3151// CHECK: fmulx {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 3152} 3153 3154int8x8_t test_vshl_n_s8(int8x8_t a) { 3155// CHECK-LABEL: test_vshl_n_s8 3156 return vshl_n_s8(a, 3); 3157// CHECK: shl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #3 3158} 3159 3160int16x4_t test_vshl_n_s16(int16x4_t a) { 3161// CHECK-LABEL: test_vshl_n_s16 3162 return vshl_n_s16(a, 3); 3163// CHECK: shl {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #3 3164} 3165 3166int32x2_t test_vshl_n_s32(int32x2_t a) { 3167// CHECK-LABEL: test_vshl_n_s32 3168 return vshl_n_s32(a, 3); 3169// CHECK: shl {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #3 3170} 3171 3172int8x16_t test_vshlq_n_s8(int8x16_t a) { 3173// CHECK-LABEL: test_vshlq_n_s8 3174 return vshlq_n_s8(a, 3); 3175// CHECK: shl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #3 3176} 3177 3178int16x8_t test_vshlq_n_s16(int16x8_t a) { 3179// CHECK-LABEL: test_vshlq_n_s16 3180 return vshlq_n_s16(a, 3); 3181// CHECK: shl {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #3 3182} 3183 3184int32x4_t test_vshlq_n_s32(int32x4_t a) { 3185// CHECK-LABEL: test_vshlq_n_s32 3186 return vshlq_n_s32(a, 3); 3187// CHECK: shl {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #3 3188} 3189 3190int64x2_t test_vshlq_n_s64(int64x2_t a) { 3191// CHECK-LABEL: test_vshlq_n_s64 3192 return vshlq_n_s64(a, 3); 3193// CHECK: shl {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #3 3194} 3195 3196int8x8_t test_vshl_n_u8(int8x8_t a) { 3197// CHECK-LABEL: test_vshl_n_u8 3198 return vshl_n_u8(a, 3); 3199// CHECK: shl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #3 3200} 3201 3202int16x4_t test_vshl_n_u16(int16x4_t a) { 3203// CHECK-LABEL: test_vshl_n_u16 3204 return vshl_n_u16(a, 3); 3205// CHECK: shl {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #3 3206} 3207 3208int32x2_t test_vshl_n_u32(int32x2_t a) { 3209// CHECK-LABEL: test_vshl_n_u32 3210 return vshl_n_u32(a, 3); 3211// CHECK: shl {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #3 3212} 3213 3214int8x16_t test_vshlq_n_u8(int8x16_t a) { 3215// CHECK-LABEL: test_vshlq_n_u8 3216 return vshlq_n_u8(a, 3); 3217// CHECK: shl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #3 3218} 3219 3220int16x8_t test_vshlq_n_u16(int16x8_t a) { 3221// CHECK-LABEL: test_vshlq_n_u16 3222 return vshlq_n_u16(a, 3); 3223// CHECK: shl {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #3 3224} 3225 3226int32x4_t test_vshlq_n_u32(int32x4_t a) { 3227// CHECK-LABEL: test_vshlq_n_u32 3228 return vshlq_n_u32(a, 3); 3229// CHECK: shl {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #3 3230} 3231 3232int64x2_t test_vshlq_n_u64(int64x2_t a) { 3233// CHECK-LABEL: test_vshlq_n_u64 3234 return vshlq_n_u64(a, 3); 3235// CHECK: shl {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #3 3236} 3237 3238int8x8_t test_vshr_n_s8(int8x8_t a) { 3239 // CHECK-LABEL: test_vshr_n_s8 3240 return vshr_n_s8(a, 3); 3241 // CHECK: sshr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #3 3242} 3243 3244int16x4_t test_vshr_n_s16(int16x4_t a) { 3245 // CHECK-LABEL: test_vshr_n_s16 3246 return vshr_n_s16(a, 3); 3247 // CHECK: sshr {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #3 3248} 3249 3250int32x2_t test_vshr_n_s32(int32x2_t a) { 3251 // CHECK-LABEL: test_vshr_n_s32 3252 return vshr_n_s32(a, 3); 3253 // CHECK: sshr {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #3 3254} 3255 3256int8x16_t test_vshrq_n_s8(int8x16_t a) { 3257 // CHECK-LABEL: test_vshrq_n_s8 3258 return vshrq_n_s8(a, 3); 3259 // CHECK: sshr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #3 3260} 3261 3262int16x8_t test_vshrq_n_s16(int16x8_t a) { 3263 // CHECK-LABEL: test_vshrq_n_s16 3264 return vshrq_n_s16(a, 3); 3265 // CHECK: sshr {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #3 3266} 3267 3268int32x4_t test_vshrq_n_s32(int32x4_t a) { 3269 // CHECK-LABEL: test_vshrq_n_s32 3270 return vshrq_n_s32(a, 3); 3271 // CHECK: sshr {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #3 3272} 3273 3274int64x2_t test_vshrq_n_s64(int64x2_t a) { 3275 // CHECK-LABEL: test_vshrq_n_s64 3276 return vshrq_n_s64(a, 3); 3277 // CHECK: sshr {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #3 3278} 3279 3280int8x8_t test_vshr_n_u8(int8x8_t a) { 3281 // CHECK-LABEL: test_vshr_n_u8 3282 return vshr_n_u8(a, 3); 3283 // CHECK: ushr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #3 3284} 3285 3286int16x4_t test_vshr_n_u16(int16x4_t a) { 3287 // CHECK-LABEL: test_vshr_n_u16 3288 return vshr_n_u16(a, 3); 3289 // CHECK: ushr {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #3 3290} 3291 3292int32x2_t test_vshr_n_u32(int32x2_t a) { 3293 // CHECK-LABEL: test_vshr_n_u32 3294 return vshr_n_u32(a, 3); 3295 // CHECK: ushr {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #3 3296} 3297 3298int8x16_t test_vshrq_n_u8(int8x16_t a) { 3299 // CHECK-LABEL: test_vshrq_n_u8 3300 return vshrq_n_u8(a, 3); 3301 // CHECK: ushr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #3 3302} 3303 3304int16x8_t test_vshrq_n_u16(int16x8_t a) { 3305 // CHECK-LABEL: test_vshrq_n_u16 3306 return vshrq_n_u16(a, 3); 3307 // CHECK: ushr {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #3 3308} 3309 3310int32x4_t test_vshrq_n_u32(int32x4_t a) { 3311 // CHECK-LABEL: test_vshrq_n_u32 3312 return vshrq_n_u32(a, 3); 3313 // CHECK: ushr {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #3 3314} 3315 3316int64x2_t test_vshrq_n_u64(int64x2_t a) { 3317 // CHECK-LABEL: test_vshrq_n_u64 3318 return vshrq_n_u64(a, 3); 3319 // CHECK: ushr {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #3 3320} 3321 3322int8x8_t test_vsra_n_s8(int8x8_t a, int8x8_t b) { 3323 // CHECK-LABEL: test_vsra_n_s8 3324 return vsra_n_s8(a, b, 3); 3325 // CHECK: ssra {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #3 3326} 3327 3328int16x4_t test_vsra_n_s16(int16x4_t a, int16x4_t b) { 3329 // CHECK-LABEL: test_vsra_n_s16 3330 return vsra_n_s16(a, b, 3); 3331 // CHECK: ssra {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #3 3332} 3333 3334int32x2_t test_vsra_n_s32(int32x2_t a, int32x2_t b) { 3335 // CHECK-LABEL: test_vsra_n_s32 3336 return vsra_n_s32(a, b, 3); 3337 // CHECK: ssra {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #3 3338} 3339 3340int8x16_t test_vsraq_n_s8(int8x16_t a, int8x16_t b) { 3341 // CHECK-LABEL: test_vsraq_n_s8 3342 return vsraq_n_s8(a, b, 3); 3343 // CHECK: ssra {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #3 3344} 3345 3346int16x8_t test_vsraq_n_s16(int16x8_t a, int16x8_t b) { 3347 // CHECK-LABEL: test_vsraq_n_s16 3348 return vsraq_n_s16(a, b, 3); 3349 // CHECK: ssra {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #3 3350} 3351 3352int32x4_t test_vsraq_n_s32(int32x4_t a, int32x4_t b) { 3353 // CHECK-LABEL: test_vsraq_n_s32 3354 return vsraq_n_s32(a, b, 3); 3355 // CHECK: ssra {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #3 3356} 3357 3358int64x2_t test_vsraq_n_s64(int64x2_t a, int64x2_t b) { 3359 // CHECK-LABEL: test_vsraq_n_s64 3360 return vsraq_n_s64(a, b, 3); 3361 // CHECK: ssra {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #3 3362} 3363 3364int8x8_t test_vsra_n_u8(int8x8_t a, int8x8_t b) { 3365 // CHECK-LABEL: test_vsra_n_u8 3366 return vsra_n_u8(a, b, 3); 3367 // CHECK: usra {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #3 3368} 3369 3370int16x4_t test_vsra_n_u16(int16x4_t a, int16x4_t b) { 3371 // CHECK-LABEL: test_vsra_n_u16 3372 return vsra_n_u16(a, b, 3); 3373 // CHECK: usra {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #3 3374} 3375 3376int32x2_t test_vsra_n_u32(int32x2_t a, int32x2_t b) { 3377 // CHECK-LABEL: test_vsra_n_u32 3378 return vsra_n_u32(a, b, 3); 3379 // CHECK: usra {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #3 3380} 3381 3382int8x16_t test_vsraq_n_u8(int8x16_t a, int8x16_t b) { 3383 // CHECK-LABEL: test_vsraq_n_u8 3384 return vsraq_n_u8(a, b, 3); 3385 // CHECK: usra {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #3 3386} 3387 3388int16x8_t test_vsraq_n_u16(int16x8_t a, int16x8_t b) { 3389 // CHECK-LABEL: test_vsraq_n_u16 3390 return vsraq_n_u16(a, b, 3); 3391 // CHECK: usra {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #3 3392} 3393 3394int32x4_t test_vsraq_n_u32(int32x4_t a, int32x4_t b) { 3395 // CHECK-LABEL: test_vsraq_n_u32 3396 return vsraq_n_u32(a, b, 3); 3397 // CHECK: usra {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #3 3398} 3399 3400int64x2_t test_vsraq_n_u64(int64x2_t a, int64x2_t b) { 3401 // CHECK-LABEL: test_vsraq_n_u64 3402 return vsraq_n_u64(a, b, 3); 3403 // CHECK: usra {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #3 3404} 3405 3406int8x8_t test_vrshr_n_s8(int8x8_t a) { 3407 // CHECK-LABEL: test_vrshr_n_s8 3408 return vrshr_n_s8(a, 3); 3409 // CHECK: srshr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #3 3410} 3411 3412int16x4_t test_vrshr_n_s16(int16x4_t a) { 3413 // CHECK-LABEL: test_vrshr_n_s16 3414 return vrshr_n_s16(a, 3); 3415 // CHECK: srshr {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #3 3416} 3417 3418int32x2_t test_vrshr_n_s32(int32x2_t a) { 3419 // CHECK-LABEL: test_vrshr_n_s32 3420 return vrshr_n_s32(a, 3); 3421 // CHECK: srshr {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #3 3422} 3423 3424int8x16_t test_vrshrq_n_s8(int8x16_t a) { 3425 // CHECK-LABEL: test_vrshrq_n_s8 3426 return vrshrq_n_s8(a, 3); 3427 // CHECK: srshr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #3 3428} 3429 3430int16x8_t test_vrshrq_n_s16(int16x8_t a) { 3431 // CHECK-LABEL: test_vrshrq_n_s16 3432 return vrshrq_n_s16(a, 3); 3433 // CHECK: srshr {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #3 3434} 3435 3436int32x4_t test_vrshrq_n_s32(int32x4_t a) { 3437 // CHECK-LABEL: test_vrshrq_n_s32 3438 return vrshrq_n_s32(a, 3); 3439 // CHECK: srshr {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #3 3440} 3441 3442int64x2_t test_vrshrq_n_s64(int64x2_t a) { 3443 // CHECK-LABEL: test_vrshrq_n_s64 3444 return vrshrq_n_s64(a, 3); 3445 // CHECK: srshr {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #3 3446} 3447 3448int8x8_t test_vrshr_n_u8(int8x8_t a) { 3449 // CHECK-LABEL: test_vrshr_n_u8 3450 return vrshr_n_u8(a, 3); 3451 // CHECK: urshr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #3 3452} 3453 3454int16x4_t test_vrshr_n_u16(int16x4_t a) { 3455 // CHECK-LABEL: test_vrshr_n_u16 3456 return vrshr_n_u16(a, 3); 3457 // CHECK: urshr {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #3 3458} 3459 3460int32x2_t test_vrshr_n_u32(int32x2_t a) { 3461 // CHECK-LABEL: test_vrshr_n_u32 3462 return vrshr_n_u32(a, 3); 3463 // CHECK: urshr {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #3 3464} 3465 3466int8x16_t test_vrshrq_n_u8(int8x16_t a) { 3467 // CHECK-LABEL: test_vrshrq_n_u8 3468 return vrshrq_n_u8(a, 3); 3469 // CHECK: urshr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #3 3470} 3471 3472int16x8_t test_vrshrq_n_u16(int16x8_t a) { 3473 // CHECK-LABEL: test_vrshrq_n_u16 3474 return vrshrq_n_u16(a, 3); 3475 // CHECK: urshr {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #3 3476} 3477 3478int32x4_t test_vrshrq_n_u32(int32x4_t a) { 3479 // CHECK-LABEL: test_vrshrq_n_u32 3480 return vrshrq_n_u32(a, 3); 3481 // CHECK: urshr {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #3 3482} 3483 3484int64x2_t test_vrshrq_n_u64(int64x2_t a) { 3485 // CHECK-LABEL: test_vrshrq_n_u64 3486 return vrshrq_n_u64(a, 3); 3487 // CHECK: urshr {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #3 3488} 3489 3490int8x8_t test_vrsra_n_s8(int8x8_t a, int8x8_t b) { 3491 // CHECK-LABEL: test_vrsra_n_s8 3492 return vrsra_n_s8(a, b, 3); 3493 // CHECK: srsra {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #3 3494} 3495 3496int16x4_t test_vrsra_n_s16(int16x4_t a, int16x4_t b) { 3497 // CHECK-LABEL: test_vrsra_n_s16 3498 return vrsra_n_s16(a, b, 3); 3499 // CHECK: srsra {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #3 3500} 3501 3502int32x2_t test_vrsra_n_s32(int32x2_t a, int32x2_t b) { 3503 // CHECK-LABEL: test_vrsra_n_s32 3504 return vrsra_n_s32(a, b, 3); 3505 // CHECK: srsra {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #3 3506} 3507 3508int8x16_t test_vrsraq_n_s8(int8x16_t a, int8x16_t b) { 3509 // CHECK-LABEL: test_vrsraq_n_s8 3510 return vrsraq_n_s8(a, b, 3); 3511 // CHECK: srsra {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #3 3512} 3513 3514int16x8_t test_vrsraq_n_s16(int16x8_t a, int16x8_t b) { 3515 // CHECK-LABEL: test_vrsraq_n_s16 3516 return vrsraq_n_s16(a, b, 3); 3517 // CHECK: srsra {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #3 3518} 3519 3520int32x4_t test_vrsraq_n_s32(int32x4_t a, int32x4_t b) { 3521 // CHECK-LABEL: test_vrsraq_n_s32 3522 return vrsraq_n_s32(a, b, 3); 3523 // CHECK: srsra {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #3 3524} 3525 3526int64x2_t test_vrsraq_n_s64(int64x2_t a, int64x2_t b) { 3527 // CHECK-LABEL: test_vrsraq_n_s64 3528 return vrsraq_n_s64(a, b, 3); 3529 // CHECK: srsra {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #3 3530} 3531 3532int8x8_t test_vrsra_n_u8(int8x8_t a, int8x8_t b) { 3533 // CHECK-LABEL: test_vrsra_n_u8 3534 return vrsra_n_u8(a, b, 3); 3535 // CHECK: ursra {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #3 3536} 3537 3538int16x4_t test_vrsra_n_u16(int16x4_t a, int16x4_t b) { 3539 // CHECK-LABEL: test_vrsra_n_u16 3540 return vrsra_n_u16(a, b, 3); 3541 // CHECK: ursra {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #3 3542} 3543 3544int32x2_t test_vrsra_n_u32(int32x2_t a, int32x2_t b) { 3545 // CHECK-LABEL: test_vrsra_n_u32 3546 return vrsra_n_u32(a, b, 3); 3547 // CHECK: ursra {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #3 3548} 3549 3550int8x16_t test_vrsraq_n_u8(int8x16_t a, int8x16_t b) { 3551 // CHECK-LABEL: test_vrsraq_n_u8 3552 return vrsraq_n_u8(a, b, 3); 3553 // CHECK: ursra {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #3 3554} 3555 3556int16x8_t test_vrsraq_n_u16(int16x8_t a, int16x8_t b) { 3557 // CHECK-LABEL: test_vrsraq_n_u16 3558 return vrsraq_n_u16(a, b, 3); 3559 // CHECK: ursra {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #3 3560} 3561 3562int32x4_t test_vrsraq_n_u32(int32x4_t a, int32x4_t b) { 3563 // CHECK-LABEL: test_vrsraq_n_u32 3564 return vrsraq_n_u32(a, b, 3); 3565 // CHECK: ursra {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #3 3566} 3567 3568int64x2_t test_vrsraq_n_u64(int64x2_t a, int64x2_t b) { 3569 // CHECK-LABEL: test_vrsraq_n_u64 3570 return vrsraq_n_u64(a, b, 3); 3571 // CHECK: ursra {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #3 3572} 3573 3574int8x8_t test_vsri_n_s8(int8x8_t a, int8x8_t b) { 3575 // CHECK-LABEL: test_vsri_n_s8 3576 return vsri_n_s8(a, b, 3); 3577 // CHECK: sri {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #3 3578} 3579 3580int16x4_t test_vsri_n_s16(int16x4_t a, int16x4_t b) { 3581 // CHECK-LABEL: test_vsri_n_s16 3582 return vsri_n_s16(a, b, 3); 3583 // CHECK: sri {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #3 3584} 3585 3586int32x2_t test_vsri_n_s32(int32x2_t a, int32x2_t b) { 3587 // CHECK-LABEL: test_vsri_n_s32 3588 return vsri_n_s32(a, b, 3); 3589 // CHECK: sri {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #3 3590} 3591 3592int8x16_t test_vsriq_n_s8(int8x16_t a, int8x16_t b) { 3593 // CHECK-LABEL: test_vsriq_n_s8 3594 return vsriq_n_s8(a, b, 3); 3595 // CHECK: sri {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #3 3596} 3597 3598int16x8_t test_vsriq_n_s16(int16x8_t a, int16x8_t b) { 3599 // CHECK-LABEL: test_vsriq_n_s16 3600 return vsriq_n_s16(a, b, 3); 3601 // CHECK: sri {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #3 3602} 3603 3604int32x4_t test_vsriq_n_s32(int32x4_t a, int32x4_t b) { 3605 // CHECK-LABEL: test_vsriq_n_s32 3606 return vsriq_n_s32(a, b, 3); 3607 // CHECK: sri {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #3 3608} 3609 3610int64x2_t test_vsriq_n_s64(int64x2_t a, int64x2_t b) { 3611 // CHECK-LABEL: test_vsriq_n_s64 3612 return vsriq_n_s64(a, b, 3); 3613 // CHECK: sri {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #3 3614} 3615 3616int8x8_t test_vsri_n_u8(int8x8_t a, int8x8_t b) { 3617 // CHECK-LABEL: test_vsri_n_u8 3618 return vsri_n_u8(a, b, 3); 3619 // CHECK: sri {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #3 3620} 3621 3622int16x4_t test_vsri_n_u16(int16x4_t a, int16x4_t b) { 3623 // CHECK-LABEL: test_vsri_n_u16 3624 return vsri_n_u16(a, b, 3); 3625 // CHECK: sri {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #3 3626} 3627 3628int32x2_t test_vsri_n_u32(int32x2_t a, int32x2_t b) { 3629 // CHECK-LABEL: test_vsri_n_u32 3630 return vsri_n_u32(a, b, 3); 3631 // CHECK: sri {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #3 3632} 3633 3634int8x16_t test_vsriq_n_u8(int8x16_t a, int8x16_t b) { 3635 // CHECK-LABEL: test_vsriq_n_u8 3636 return vsriq_n_u8(a, b, 3); 3637 // CHECK: sri {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #3 3638} 3639 3640int16x8_t test_vsriq_n_u16(int16x8_t a, int16x8_t b) { 3641 // CHECK-LABEL: test_vsriq_n_u16 3642 return vsriq_n_u16(a, b, 3); 3643 // CHECK: sri {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #3 3644} 3645 3646int32x4_t test_vsriq_n_u32(int32x4_t a, int32x4_t b) { 3647 // CHECK-LABEL: test_vsriq_n_u32 3648 return vsriq_n_u32(a, b, 3); 3649 // CHECK: sri {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #3 3650} 3651 3652int64x2_t test_vsriq_n_u64(int64x2_t a, int64x2_t b) { 3653 // CHECK-LABEL: test_vsriq_n_u64 3654 return vsriq_n_u64(a, b, 3); 3655 // CHECK: sri {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #3 3656} 3657 3658poly8x8_t test_vsri_n_p8(poly8x8_t a, poly8x8_t b) { 3659 // CHECK-LABEL: test_vsri_n_p8 3660 return vsri_n_p8(a, b, 3); 3661 // CHECK: sri {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #3 3662} 3663 3664poly16x4_t test_vsri_n_p16(poly16x4_t a, poly16x4_t b) { 3665 // CHECK-LABEL: test_vsri_n_p16 3666 return vsri_n_p16(a, b, 15); 3667 // CHECK: sri {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #15 3668} 3669 3670poly8x16_t test_vsriq_n_p8(poly8x16_t a, poly8x16_t b) { 3671 // CHECK-LABEL: test_vsriq_n_p8 3672 return vsriq_n_p8(a, b, 3); 3673 // CHECK: sri {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #3 3674} 3675 3676poly16x8_t test_vsriq_n_p16(poly16x8_t a, poly16x8_t b) { 3677 // CHECK-LABEL: test_vsriq_n_p16 3678 return vsriq_n_p16(a, b, 15); 3679 // CHECK: sri {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #15 3680} 3681 3682int8x8_t test_vsli_n_s8(int8x8_t a, int8x8_t b) { 3683 // CHECK-LABEL: test_vsli_n_s8 3684 return vsli_n_s8(a, b, 3); 3685 // CHECK: sli {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #3 3686} 3687 3688int16x4_t test_vsli_n_s16(int16x4_t a, int16x4_t b) { 3689 // CHECK-LABEL: test_vsli_n_s16 3690 return vsli_n_s16(a, b, 3); 3691 // CHECK: sli {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #3 3692} 3693 3694int32x2_t test_vsli_n_s32(int32x2_t a, int32x2_t b) { 3695 // CHECK-LABEL: test_vsli_n_s32 3696 return vsli_n_s32(a, b, 3); 3697 // CHECK: sli {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #3 3698} 3699 3700int8x16_t test_vsliq_n_s8(int8x16_t a, int8x16_t b) { 3701 // CHECK-LABEL: test_vsliq_n_s8 3702 return vsliq_n_s8(a, b, 3); 3703 // CHECK: sli {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #3 3704} 3705 3706int16x8_t test_vsliq_n_s16(int16x8_t a, int16x8_t b) { 3707 // CHECK-LABEL: test_vsliq_n_s16 3708 return vsliq_n_s16(a, b, 3); 3709 // CHECK: sli {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #3 3710} 3711 3712int32x4_t test_vsliq_n_s32(int32x4_t a, int32x4_t b) { 3713 // CHECK-LABEL: test_vsliq_n_s32 3714 return vsliq_n_s32(a, b, 3); 3715 // CHECK: sli {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #3 3716} 3717 3718int64x2_t test_vsliq_n_s64(int64x2_t a, int64x2_t b) { 3719 // CHECK-LABEL: test_vsliq_n_s64 3720 return vsliq_n_s64(a, b, 3); 3721 // CHECK: sli {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #3 3722} 3723 3724uint8x8_t test_vsli_n_u8(uint8x8_t a, uint8x8_t b) { 3725 // CHECK-LABEL: test_vsli_n_u8 3726 return vsli_n_u8(a, b, 3); 3727 // CHECK: sli {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #3 3728} 3729 3730uint16x4_t test_vsli_n_u16(uint16x4_t a, uint16x4_t b) { 3731 // CHECK-LABEL: test_vsli_n_u16 3732 return vsli_n_u16(a, b, 3); 3733 // CHECK: sli {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #3 3734} 3735 3736uint32x2_t test_vsli_n_u32(uint32x2_t a, uint32x2_t b) { 3737 // CHECK-LABEL: test_vsli_n_u32 3738 return vsli_n_u32(a, b, 3); 3739 // CHECK: sli {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #3 3740} 3741 3742uint8x16_t test_vsliq_n_u8(uint8x16_t a, uint8x16_t b) { 3743 // CHECK-LABEL: test_vsliq_n_u8 3744 return vsliq_n_u8(a, b, 3); 3745 // CHECK: sli {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #3 3746} 3747 3748uint16x8_t test_vsliq_n_u16(uint16x8_t a, uint16x8_t b) { 3749 // CHECK-LABEL: test_vsliq_n_u16 3750 return vsliq_n_u16(a, b, 3); 3751 // CHECK: sli {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #3 3752} 3753 3754uint32x4_t test_vsliq_n_u32(uint32x4_t a, uint32x4_t b) { 3755 // CHECK-LABEL: test_vsliq_n_u32 3756 return vsliq_n_u32(a, b, 3); 3757 // CHECK: sli {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #3 3758} 3759 3760uint64x2_t test_vsliq_n_u64(uint64x2_t a, uint64x2_t b) { 3761 // CHECK-LABEL: test_vsliq_n_u64 3762 return vsliq_n_u64(a, b, 3); 3763 // CHECK: sli {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #3 3764} 3765 3766poly8x8_t test_vsli_n_p8(poly8x8_t a, poly8x8_t b) { 3767 // CHECK-LABEL: test_vsli_n_p8 3768 return vsli_n_p8(a, b, 3); 3769 // CHECK: sli {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #3 3770} 3771 3772poly16x4_t test_vsli_n_p16(poly16x4_t a, poly16x4_t b) { 3773 // CHECK-LABEL: test_vsli_n_p16 3774 return vsli_n_p16(a, b, 15); 3775 // CHECK: sli {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #15 3776} 3777 3778poly8x16_t test_vsliq_n_p8(poly8x16_t a, poly8x16_t b) { 3779 // CHECK-LABEL: test_vsliq_n_p8 3780 return vsliq_n_p8(a, b, 3); 3781 // CHECK: sli {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #3 3782} 3783 3784poly16x8_t test_vsliq_n_p16(poly16x8_t a, poly16x8_t b) { 3785 // CHECK-LABEL: test_vsliq_n_p16 3786 return vsliq_n_p16(a, b, 15); 3787 // CHECK: sli {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #15 3788} 3789 3790int8x8_t test_vqshlu_n_s8(int8x8_t a) { 3791 // CHECK-LABEL: test_vqshlu_n_s8 3792 return vqshlu_n_s8(a, 3); 3793 // CHECK: sqshlu {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #3 3794} 3795 3796int16x4_t test_vqshlu_n_s16(int16x4_t a) { 3797 // CHECK-LABEL: test_vqshlu_n_s16 3798 return vqshlu_n_s16(a, 3); 3799 // CHECK: sqshlu {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #3 3800} 3801 3802int32x2_t test_vqshlu_n_s32(int32x2_t a) { 3803 // CHECK-LABEL: test_vqshlu_n_s32 3804 return vqshlu_n_s32(a, 3); 3805 // CHECK: sqshlu {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #3 3806} 3807 3808int8x16_t test_vqshluq_n_s8(int8x16_t a) { 3809 // CHECK-LABEL: test_vqshluq_n_s8 3810 return vqshluq_n_s8(a, 3); 3811 // CHECK: sqshlu {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #3 3812} 3813 3814int16x8_t test_vqshluq_n_s16(int16x8_t a) { 3815 // CHECK-LABEL: test_vqshluq_n_s16 3816 return vqshluq_n_s16(a, 3); 3817 // CHECK: sqshlu {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #3 3818} 3819 3820int32x4_t test_vqshluq_n_s32(int32x4_t a) { 3821 // CHECK-LABEL: test_vqshluq_n_s32 3822 return vqshluq_n_s32(a, 3); 3823 // CHECK: sqshlu {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #3 3824} 3825 3826int64x2_t test_vqshluq_n_s64(int64x2_t a) { 3827 // CHECK-LABEL: test_vqshluq_n_s64 3828 return vqshluq_n_s64(a, 3); 3829 // CHECK: sqshlu {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #3 3830} 3831 3832int8x8_t test_vshrn_n_s16(int16x8_t a) { 3833 // CHECK-LABEL: test_vshrn_n_s16 3834 return vshrn_n_s16(a, 3); 3835 // CHECK: shrn {{v[0-9]+}}.8b, {{v[0-9]+}}.8h, #3 3836} 3837 3838int16x4_t test_vshrn_n_s32(int32x4_t a) { 3839 // CHECK-LABEL: test_vshrn_n_s32 3840 return vshrn_n_s32(a, 9); 3841 // CHECK: shrn {{v[0-9]+}}.4h, {{v[0-9]+}}.4s, #9 3842} 3843 3844int32x2_t test_vshrn_n_s64(int64x2_t a) { 3845 // CHECK-LABEL: test_vshrn_n_s64 3846 return vshrn_n_s64(a, 19); 3847 // CHECK: shrn {{v[0-9]+}}.2s, {{v[0-9]+}}.2d, #19 3848} 3849 3850uint8x8_t test_vshrn_n_u16(uint16x8_t a) { 3851 // CHECK-LABEL: test_vshrn_n_u16 3852 return vshrn_n_u16(a, 3); 3853 // CHECK: shrn {{v[0-9]+}}.8b, {{v[0-9]+}}.8h, #3 3854} 3855 3856uint16x4_t test_vshrn_n_u32(uint32x4_t a) { 3857 // CHECK-LABEL: test_vshrn_n_u32 3858 return vshrn_n_u32(a, 9); 3859 // CHECK: shrn {{v[0-9]+}}.4h, {{v[0-9]+}}.4s, #9 3860} 3861 3862uint32x2_t test_vshrn_n_u64(uint64x2_t a) { 3863 // CHECK-LABEL: test_vshrn_n_u64 3864 return vshrn_n_u64(a, 19); 3865 // CHECK: shrn {{v[0-9]+}}.2s, {{v[0-9]+}}.2d, #19 3866} 3867 3868int8x16_t test_vshrn_high_n_s16(int8x8_t a, int16x8_t b) { 3869 // CHECK-LABEL: test_vshrn_high_n_s16 3870 return vshrn_high_n_s16(a, b, 3); 3871 // CHECK: shrn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.8h, #3 3872} 3873 3874int16x8_t test_vshrn_high_n_s32(int16x4_t a, int32x4_t b) { 3875 // CHECK-LABEL: test_vshrn_high_n_s32 3876 return vshrn_high_n_s32(a, b, 9); 3877 // CHECK: shrn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.4s, #9 3878} 3879 3880int32x4_t test_vshrn_high_n_s64(int32x2_t a, int64x2_t b) { 3881 // CHECK-LABEL: test_vshrn_high_n_s64 3882 return vshrn_high_n_s64(a, b, 19); 3883 // CHECK: shrn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.2d, #19 3884} 3885 3886uint8x16_t test_vshrn_high_n_u16(uint8x8_t a, uint16x8_t b) { 3887 // CHECK-LABEL: test_vshrn_high_n_u16 3888 return vshrn_high_n_u16(a, b, 3); 3889 // CHECK: shrn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.8h, #3 3890} 3891 3892uint16x8_t test_vshrn_high_n_u32(uint16x4_t a, uint32x4_t b) { 3893 // CHECK-LABEL: test_vshrn_high_n_u32 3894 return vshrn_high_n_u32(a, b, 9); 3895 // CHECK: shrn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.4s, #9 3896} 3897 3898uint32x4_t test_vshrn_high_n_u64(uint32x2_t a, uint64x2_t b) { 3899 // CHECK-LABEL: test_vshrn_high_n_u64 3900 return vshrn_high_n_u64(a, b, 19); 3901 // CHECK: shrn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.2d, #19 3902} 3903 3904int8x8_t test_vqshrun_n_s16(int16x8_t a) { 3905 // CHECK-LABEL: test_vqshrun_n_s16 3906 return vqshrun_n_s16(a, 3); 3907 // CHECK: sqshrun {{v[0-9]+}}.8b, {{v[0-9]+}}.8h, #3 3908} 3909 3910int16x4_t test_vqshrun_n_s32(int32x4_t a) { 3911 // CHECK-LABEL: test_vqshrun_n_s32 3912 return vqshrun_n_s32(a, 9); 3913 // CHECK: sqshrun {{v[0-9]+}}.4h, {{v[0-9]+}}.4s, #9 3914} 3915 3916int32x2_t test_vqshrun_n_s64(int64x2_t a) { 3917 // CHECK-LABEL: test_vqshrun_n_s64 3918 return vqshrun_n_s64(a, 19); 3919 // CHECK: sqshrun {{v[0-9]+}}.2s, {{v[0-9]+}}.2d, #19 3920} 3921 3922int8x16_t test_vqshrun_high_n_s16(int8x8_t a, int16x8_t b) { 3923 // CHECK-LABEL: test_vqshrun_high_n_s16 3924 return vqshrun_high_n_s16(a, b, 3); 3925 // CHECK: sqshrun2 {{v[0-9]+}}.16b, {{v[0-9]+}}.8h, #3 3926} 3927 3928int16x8_t test_vqshrun_high_n_s32(int16x4_t a, int32x4_t b) { 3929 // CHECK-LABEL: test_vqshrun_high_n_s32 3930 return vqshrun_high_n_s32(a, b, 9); 3931 // CHECK: sqshrun2 {{v[0-9]+}}.8h, {{v[0-9]+}}.4s, #9 3932} 3933 3934int32x4_t test_vqshrun_high_n_s64(int32x2_t a, int64x2_t b) { 3935 // CHECK-LABEL: test_vqshrun_high_n_s64 3936 return vqshrun_high_n_s64(a, b, 19); 3937 // CHECK: sqshrun2 {{v[0-9]+}}.4s, {{v[0-9]+}}.2d, #19 3938} 3939 3940int8x8_t test_vrshrn_n_s16(int16x8_t a) { 3941 // CHECK-LABEL: test_vrshrn_n_s16 3942 return vrshrn_n_s16(a, 3); 3943 // CHECK: rshrn {{v[0-9]+}}.8b, {{v[0-9]+}}.8h, #3 3944} 3945 3946int16x4_t test_vrshrn_n_s32(int32x4_t a) { 3947 // CHECK-LABEL: test_vrshrn_n_s32 3948 return vrshrn_n_s32(a, 9); 3949 // CHECK: rshrn {{v[0-9]+}}.4h, {{v[0-9]+}}.4s, #9 3950} 3951 3952int32x2_t test_vrshrn_n_s64(int64x2_t a) { 3953 // CHECK-LABEL: test_vrshrn_n_s64 3954 return vrshrn_n_s64(a, 19); 3955 // CHECK: rshrn {{v[0-9]+}}.2s, {{v[0-9]+}}.2d, #19 3956} 3957 3958uint8x8_t test_vrshrn_n_u16(uint16x8_t a) { 3959 // CHECK-LABEL: test_vrshrn_n_u16 3960 return vrshrn_n_u16(a, 3); 3961 // CHECK: rshrn {{v[0-9]+}}.8b, {{v[0-9]+}}.8h, #3 3962} 3963 3964uint16x4_t test_vrshrn_n_u32(uint32x4_t a) { 3965 // CHECK-LABEL: test_vrshrn_n_u32 3966 return vrshrn_n_u32(a, 9); 3967 // CHECK: rshrn {{v[0-9]+}}.4h, {{v[0-9]+}}.4s, #9 3968} 3969 3970uint32x2_t test_vrshrn_n_u64(uint64x2_t a) { 3971 // CHECK-LABEL: test_vrshrn_n_u64 3972 return vrshrn_n_u64(a, 19); 3973 // CHECK: rshrn {{v[0-9]+}}.2s, {{v[0-9]+}}.2d, #19 3974} 3975 3976int8x16_t test_vrshrn_high_n_s16(int8x8_t a, int16x8_t b) { 3977 // CHECK-LABEL: test_vrshrn_high_n_s16 3978 return vrshrn_high_n_s16(a, b, 3); 3979 // CHECK: rshrn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.8h, #3 3980} 3981 3982int16x8_t test_vrshrn_high_n_s32(int16x4_t a, int32x4_t b) { 3983 // CHECK-LABEL: test_vrshrn_high_n_s32 3984 return vrshrn_high_n_s32(a, b, 9); 3985 // CHECK: rshrn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.4s, #9 3986} 3987 3988int32x4_t test_vrshrn_high_n_s64(int32x2_t a, int64x2_t b) { 3989 // CHECK-LABEL: test_vrshrn_high_n_s64 3990 return vrshrn_high_n_s64(a, b, 19); 3991 // CHECK: rshrn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.2d, #19 3992} 3993 3994uint8x16_t test_vrshrn_high_n_u16(uint8x8_t a, uint16x8_t b) { 3995 // CHECK-LABEL: test_vrshrn_high_n_u16 3996 return vrshrn_high_n_u16(a, b, 3); 3997 // CHECK: rshrn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.8h, #3 3998} 3999 4000uint16x8_t test_vrshrn_high_n_u32(uint16x4_t a, uint32x4_t b) { 4001 // CHECK-LABEL: test_vrshrn_high_n_u32 4002 return vrshrn_high_n_u32(a, b, 9); 4003 // CHECK: rshrn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.4s, #9 4004} 4005 4006uint32x4_t test_vrshrn_high_n_u64(uint32x2_t a, uint64x2_t b) { 4007 // CHECK-LABEL: test_vrshrn_high_n_u64 4008 return vrshrn_high_n_u64(a, b, 19); 4009 // CHECK: rshrn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.2d, #19 4010} 4011 4012int8x8_t test_vqrshrun_n_s16(int16x8_t a) { 4013 // CHECK-LABEL: test_vqrshrun_n_s16 4014 return vqrshrun_n_s16(a, 3); 4015 // CHECK: sqrshrun {{v[0-9]+}}.8b, {{v[0-9]+}}.8h, #3 4016} 4017 4018int16x4_t test_vqrshrun_n_s32(int32x4_t a) { 4019 // CHECK-LABEL: test_vqrshrun_n_s32 4020 return vqrshrun_n_s32(a, 9); 4021 // CHECK: sqrshrun {{v[0-9]+}}.4h, {{v[0-9]+}}.4s, #9 4022} 4023 4024int32x2_t test_vqrshrun_n_s64(int64x2_t a) { 4025 // CHECK-LABEL: test_vqrshrun_n_s64 4026 return vqrshrun_n_s64(a, 19); 4027 // CHECK: sqrshrun {{v[0-9]+}}.2s, {{v[0-9]+}}.2d, #19 4028} 4029 4030int8x16_t test_vqrshrun_high_n_s16(int8x8_t a, int16x8_t b) { 4031 // CHECK-LABEL: test_vqrshrun_high_n_s16 4032 return vqrshrun_high_n_s16(a, b, 3); 4033 // CHECK: sqrshrun2 {{v[0-9]+}}.16b, {{v[0-9]+}}.8h, #3 4034} 4035 4036int16x8_t test_vqrshrun_high_n_s32(int16x4_t a, int32x4_t b) { 4037 // CHECK-LABEL: test_vqrshrun_high_n_s32 4038 return vqrshrun_high_n_s32(a, b, 9); 4039 // CHECK: sqrshrun2 {{v[0-9]+}}.8h, {{v[0-9]+}}.4s, #9 4040} 4041 4042int32x4_t test_vqrshrun_high_n_s64(int32x2_t a, int64x2_t b) { 4043 // CHECK-LABEL: test_vqrshrun_high_n_s64 4044 return vqrshrun_high_n_s64(a, b, 19); 4045 // CHECK: sqrshrun2 {{v[0-9]+}}.4s, {{v[0-9]+}}.2d, #19 4046} 4047 4048int8x8_t test_vqshrn_n_s16(int16x8_t a) { 4049 // CHECK-LABEL: test_vqshrn_n_s16 4050 return vqshrn_n_s16(a, 3); 4051 // CHECK: sqshrn {{v[0-9]+}}.8b, {{v[0-9]+}}.8h, #3 4052} 4053 4054int16x4_t test_vqshrn_n_s32(int32x4_t a) { 4055 // CHECK-LABEL: test_vqshrn_n_s32 4056 return vqshrn_n_s32(a, 9); 4057 // CHECK: sqshrn {{v[0-9]+}}.4h, {{v[0-9]+}}.4s, #9 4058} 4059 4060int32x2_t test_vqshrn_n_s64(int64x2_t a) { 4061 // CHECK-LABEL: test_vqshrn_n_s64 4062 return vqshrn_n_s64(a, 19); 4063 // CHECK: sqshrn {{v[0-9]+}}.2s, {{v[0-9]+}}.2d, #19 4064} 4065 4066uint8x8_t test_vqshrn_n_u16(uint16x8_t a) { 4067 // CHECK-LABEL: test_vqshrn_n_u16 4068 return vqshrn_n_u16(a, 3); 4069 // CHECK: uqshrn {{v[0-9]+}}.8b, {{v[0-9]+}}.8h, #3 4070} 4071 4072uint16x4_t test_vqshrn_n_u32(uint32x4_t a) { 4073 // CHECK-LABEL: test_vqshrn_n_u32 4074 return vqshrn_n_u32(a, 9); 4075 // CHECK: uqshrn {{v[0-9]+}}.4h, {{v[0-9]+}}.4s, #9 4076} 4077 4078uint32x2_t test_vqshrn_n_u64(uint64x2_t a) { 4079 // CHECK-LABEL: test_vqshrn_n_u64 4080 return vqshrn_n_u64(a, 19); 4081 // CHECK: uqshrn {{v[0-9]+}}.2s, {{v[0-9]+}}.2d, #19 4082} 4083 4084int8x16_t test_vqshrn_high_n_s16(int8x8_t a, int16x8_t b) { 4085 // CHECK-LABEL: test_vqshrn_high_n_s16 4086 return vqshrn_high_n_s16(a, b, 3); 4087 // CHECK: sqshrn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.8h, #3 4088} 4089 4090int16x8_t test_vqshrn_high_n_s32(int16x4_t a, int32x4_t b) { 4091 // CHECK-LABEL: test_vqshrn_high_n_s32 4092 return vqshrn_high_n_s32(a, b, 9); 4093 // CHECK: sqshrn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.4s, #9 4094} 4095 4096int32x4_t test_vqshrn_high_n_s64(int32x2_t a, int64x2_t b) { 4097 // CHECK-LABEL: test_vqshrn_high_n_s64 4098 return vqshrn_high_n_s64(a, b, 19); 4099 // CHECK: sqshrn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.2d, #19 4100} 4101 4102uint8x16_t test_vqshrn_high_n_u16(uint8x8_t a, uint16x8_t b) { 4103 // CHECK-LABEL: test_vqshrn_high_n_u16 4104 return vqshrn_high_n_u16(a, b, 3); 4105 // CHECK: uqshrn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.8h, #3 4106} 4107 4108uint16x8_t test_vqshrn_high_n_u32(uint16x4_t a, uint32x4_t b) { 4109 // CHECK-LABEL: test_vqshrn_high_n_u32 4110 return vqshrn_high_n_u32(a, b, 9); 4111 // CHECK: uqshrn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.4s, #9 4112} 4113 4114uint32x4_t test_vqshrn_high_n_u64(uint32x2_t a, uint64x2_t b) { 4115 // CHECK-LABEL: test_vqshrn_high_n_u64 4116 return vqshrn_high_n_u64(a, b, 19); 4117 // CHECK: uqshrn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.2d, #19 4118} 4119 4120int8x8_t test_vqrshrn_n_s16(int16x8_t a) { 4121 // CHECK-LABEL: test_vqrshrn_n_s16 4122 return vqrshrn_n_s16(a, 3); 4123 // CHECK: sqrshrn {{v[0-9]+}}.8b, {{v[0-9]+}}.8h, #3 4124} 4125 4126int16x4_t test_vqrshrn_n_s32(int32x4_t a) { 4127 // CHECK-LABEL: test_vqrshrn_n_s32 4128 return vqrshrn_n_s32(a, 9); 4129 // CHECK: sqrshrn {{v[0-9]+}}.4h, {{v[0-9]+}}.4s, #9 4130} 4131 4132int32x2_t test_vqrshrn_n_s64(int64x2_t a) { 4133 // CHECK-LABEL: test_vqrshrn_n_s64 4134 return vqrshrn_n_s64(a, 19); 4135 // CHECK: sqrshrn {{v[0-9]+}}.2s, {{v[0-9]+}}.2d, #19 4136} 4137 4138uint8x8_t test_vqrshrn_n_u16(uint16x8_t a) { 4139 // CHECK-LABEL: test_vqrshrn_n_u16 4140 return vqrshrn_n_u16(a, 3); 4141 // CHECK: uqrshrn {{v[0-9]+}}.8b, {{v[0-9]+}}.8h, #3 4142} 4143 4144uint16x4_t test_vqrshrn_n_u32(uint32x4_t a) { 4145 // CHECK-LABEL: test_vqrshrn_n_u32 4146 return vqrshrn_n_u32(a, 9); 4147 // CHECK: uqrshrn {{v[0-9]+}}.4h, {{v[0-9]+}}.4s, #9 4148} 4149 4150uint32x2_t test_vqrshrn_n_u64(uint64x2_t a) { 4151 // CHECK-LABEL: test_vqrshrn_n_u64 4152 return vqrshrn_n_u64(a, 19); 4153 // CHECK: uqrshrn {{v[0-9]+}}.2s, {{v[0-9]+}}.2d, #19 4154} 4155 4156int8x16_t test_vqrshrn_high_n_s16(int8x8_t a, int16x8_t b) { 4157 // CHECK-LABEL: test_vqrshrn_high_n_s16 4158 return vqrshrn_high_n_s16(a, b, 3); 4159 // CHECK: sqrshrn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.8h, #3 4160} 4161 4162int16x8_t test_vqrshrn_high_n_s32(int16x4_t a, int32x4_t b) { 4163 // CHECK-LABEL: test_vqrshrn_high_n_s32 4164 return vqrshrn_high_n_s32(a, b, 9); 4165 // CHECK: sqrshrn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.4s, #9 4166} 4167 4168int32x4_t test_vqrshrn_high_n_s64(int32x2_t a, int64x2_t b) { 4169 // CHECK-LABEL: test_vqrshrn_high_n_s64 4170 return vqrshrn_high_n_s64(a, b, 19); 4171 // CHECK: sqrshrn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.2d, #19 4172} 4173 4174uint8x16_t test_vqrshrn_high_n_u16(uint8x8_t a, uint16x8_t b) { 4175 // CHECK-LABEL: test_vqrshrn_high_n_u16 4176 return vqrshrn_high_n_u16(a, b, 3); 4177 // CHECK: uqrshrn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.8h, #3 4178} 4179 4180uint16x8_t test_vqrshrn_high_n_u32(uint16x4_t a, uint32x4_t b) { 4181 // CHECK-LABEL: test_vqrshrn_high_n_u32 4182 return vqrshrn_high_n_u32(a, b, 9); 4183 // CHECK: uqrshrn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.4s, #9 4184} 4185 4186uint32x4_t test_vqrshrn_high_n_u64(uint32x2_t a, uint64x2_t b) { 4187 // CHECK-LABEL: test_vqrshrn_high_n_u64 4188 return vqrshrn_high_n_u64(a, b, 19); 4189 // CHECK: uqrshrn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.2d, #19 4190} 4191 4192int16x8_t test_vshll_n_s8(int8x8_t a) { 4193// CHECK-LABEL: test_vshll_n_s8 4194 return vshll_n_s8(a, 3); 4195// CHECK: sshll {{v[0-9]+}}.8h, {{v[0-9]+}}.8b, #3 4196} 4197 4198int32x4_t test_vshll_n_s16(int16x4_t a) { 4199// CHECK-LABEL: test_vshll_n_s16 4200 return vshll_n_s16(a, 9); 4201// CHECK: sshll {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, #9 4202} 4203 4204int64x2_t test_vshll_n_s32(int32x2_t a) { 4205// CHECK-LABEL: test_vshll_n_s32 4206 return vshll_n_s32(a, 19); 4207// CHECK: sshll {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, #19 4208} 4209 4210uint16x8_t test_vshll_n_u8(uint8x8_t a) { 4211// CHECK-LABEL: test_vshll_n_u8 4212 return vshll_n_u8(a, 3); 4213// CHECK: ushll {{v[0-9]+}}.8h, {{v[0-9]+}}.8b, #3 4214} 4215 4216uint32x4_t test_vshll_n_u16(uint16x4_t a) { 4217// CHECK-LABEL: test_vshll_n_u16 4218 return vshll_n_u16(a, 9); 4219// CHECK: ushll {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, #9 4220} 4221 4222uint64x2_t test_vshll_n_u32(uint32x2_t a) { 4223// CHECK-LABEL: test_vshll_n_u32 4224 return vshll_n_u32(a, 19); 4225// CHECK: ushll {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, #19 4226} 4227 4228int16x8_t test_vshll_high_n_s8(int8x16_t a) { 4229// CHECK-LABEL: test_vshll_high_n_s8 4230 return vshll_high_n_s8(a, 3); 4231// CHECK: sshll2 {{v[0-9]+}}.8h, {{v[0-9]+}}.16b, #3 4232} 4233 4234int32x4_t test_vshll_high_n_s16(int16x8_t a) { 4235// CHECK-LABEL: test_vshll_high_n_s16 4236 return vshll_high_n_s16(a, 9); 4237// CHECK: sshll2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, #9 4238} 4239 4240int64x2_t test_vshll_high_n_s32(int32x4_t a) { 4241// CHECK-LABEL: test_vshll_high_n_s32 4242 return vshll_high_n_s32(a, 19); 4243// CHECK: sshll2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, #19 4244} 4245 4246uint16x8_t test_vshll_high_n_u8(uint8x16_t a) { 4247// CHECK-LABEL: test_vshll_high_n_u8 4248 return vshll_high_n_u8(a, 3); 4249// CHECK: ushll2 {{v[0-9]+}}.8h, {{v[0-9]+}}.16b, #3 4250} 4251 4252uint32x4_t test_vshll_high_n_u16(uint16x8_t a) { 4253// CHECK-LABEL: test_vshll_high_n_u16 4254 return vshll_high_n_u16(a, 9); 4255// CHECK: ushll2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, #9 4256} 4257 4258uint64x2_t test_vshll_high_n_u32(uint32x4_t a) { 4259// CHECK-LABEL: test_vshll_high_n_u32 4260 return vshll_high_n_u32(a, 19); 4261// CHECK: ushll2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, #19 4262} 4263 4264int16x8_t test_vmovl_s8(int8x8_t a) { 4265// CHECK-LABEL: test_vmovl_s8 4266 return vmovl_s8(a); 4267// CHECK: sshll {{v[0-9]+}}.8h, {{v[0-9]+}}.8b, #0 4268} 4269 4270int32x4_t test_vmovl_s16(int16x4_t a) { 4271// CHECK-LABEL: test_vmovl_s16 4272 return vmovl_s16(a); 4273// CHECK: sshll {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, #0 4274} 4275 4276int64x2_t test_vmovl_s32(int32x2_t a) { 4277// CHECK-LABEL: test_vmovl_s32 4278 return vmovl_s32(a); 4279// CHECK: sshll {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, #0 4280} 4281 4282uint16x8_t test_vmovl_u8(uint8x8_t a) { 4283// CHECK-LABEL: test_vmovl_u8 4284 return vmovl_u8(a); 4285// CHECK: ushll {{v[0-9]+}}.8h, {{v[0-9]+}}.8b, #0 4286} 4287 4288uint32x4_t test_vmovl_u16(uint16x4_t a) { 4289// CHECK-LABEL: test_vmovl_u16 4290 return vmovl_u16(a); 4291// CHECK: ushll {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, #0 4292} 4293 4294uint64x2_t test_vmovl_u32(uint32x2_t a) { 4295// CHECK-LABEL: test_vmovl_u32 4296 return vmovl_u32(a); 4297// CHECK: ushll {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, #0 4298} 4299 4300int16x8_t test_vmovl_high_s8(int8x16_t a) { 4301// CHECK-LABEL: test_vmovl_high_s8 4302 return vmovl_high_s8(a); 4303// CHECK: sshll2 {{v[0-9]+}}.8h, {{v[0-9]+}}.16b, #0 4304} 4305 4306int32x4_t test_vmovl_high_s16(int16x8_t a) { 4307// CHECK-LABEL: test_vmovl_high_s16 4308 return vmovl_high_s16(a); 4309// CHECK: sshll2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, #0 4310} 4311 4312int64x2_t test_vmovl_high_s32(int32x4_t a) { 4313// CHECK-LABEL: test_vmovl_high_s32 4314 return vmovl_high_s32(a); 4315// CHECK: sshll2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, #0 4316} 4317 4318uint16x8_t test_vmovl_high_u8(uint8x16_t a) { 4319// CHECK-LABEL: test_vmovl_high_u8 4320 return vmovl_high_u8(a); 4321// CHECK: ushll2 {{v[0-9]+}}.8h, {{v[0-9]+}}.16b, #0 4322} 4323 4324uint32x4_t test_vmovl_high_u16(uint16x8_t a) { 4325// CHECK-LABEL: test_vmovl_high_u16 4326 return vmovl_high_u16(a); 4327// CHECK: ushll2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, #0 4328} 4329 4330uint64x2_t test_vmovl_high_u32(uint32x4_t a) { 4331// CHECK-LABEL: test_vmovl_high_u32 4332 return vmovl_high_u32(a); 4333// CHECK: ushll2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, #0 4334} 4335 4336float32x2_t test_vcvt_n_f32_s32(int32x2_t a) { 4337 // CHECK-LABEL: test_vcvt_n_f32_s32 4338 return vcvt_n_f32_s32(a, 31); 4339 // CHECK: scvtf {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #31 4340} 4341 4342float32x4_t test_vcvtq_n_f32_s32(int32x4_t a) { 4343 // CHECK-LABEL: test_vcvtq_n_f32_s32 4344 return vcvtq_n_f32_s32(a, 31); 4345 // CHECK: scvtf {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #31 4346} 4347 4348float64x2_t test_vcvtq_n_f64_s64(int64x2_t a) { 4349 // CHECK-LABEL: test_vcvtq_n_f64_s64 4350 return vcvtq_n_f64_s64(a, 50); 4351 // CHECK: scvtf {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #50 4352} 4353 4354float32x2_t test_vcvt_n_f32_u32(uint32x2_t a) { 4355 // CHECK-LABEL: test_vcvt_n_f32_u32 4356 return vcvt_n_f32_u32(a, 31); 4357 // CHECK: ucvtf {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #31 4358} 4359 4360float32x4_t test_vcvtq_n_f32_u32(uint32x4_t a) { 4361 // CHECK-LABEL: test_vcvtq_n_f32_u32 4362 return vcvtq_n_f32_u32(a, 31); 4363 // CHECK: ucvtf {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #31 4364} 4365 4366float64x2_t test_vcvtq_n_f64_u64(uint64x2_t a) { 4367 // CHECK-LABEL: test_vcvtq_n_f64_u64 4368 return vcvtq_n_f64_u64(a, 50); 4369 // CHECK: ucvtf {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #50 4370} 4371 4372int32x2_t test_vcvt_n_s32_f32(float32x2_t a) { 4373 // CHECK-LABEL: test_vcvt_n_s32_f32 4374 return vcvt_n_s32_f32(a, 31); 4375 // CHECK: fcvtzs {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #31 4376} 4377 4378int32x4_t test_vcvtq_n_s32_f32(float32x4_t a) { 4379 // CHECK-LABEL: test_vcvtq_n_s32_f32 4380 return vcvtq_n_s32_f32(a, 31); 4381 // CHECK: fcvtzs {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #31 4382} 4383 4384int64x2_t test_vcvtq_n_s64_f64(float64x2_t a) { 4385 // CHECK-LABEL: test_vcvtq_n_s64_f64 4386 return vcvtq_n_s64_f64(a, 50); 4387 // CHECK: fcvtzs {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #50 4388} 4389 4390uint32x2_t test_vcvt_n_u32_f32(float32x2_t a) { 4391 // CHECK-LABEL: test_vcvt_n_u32_f32 4392 return vcvt_n_u32_f32(a, 31); 4393 // CHECK: fcvtzu {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #31 4394} 4395 4396uint32x4_t test_vcvtq_n_u32_f32(float32x4_t a) { 4397 // CHECK-LABEL: test_vcvtq_n_u32_f32 4398 return vcvtq_n_u32_f32(a, 31); 4399 // CHECK: fcvtzu {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #31 4400} 4401 4402uint64x2_t test_vcvtq_n_u64_f64(float64x2_t a) { 4403 // CHECK-LABEL: test_vcvtq_n_u64_f64 4404 return vcvtq_n_u64_f64(a, 50); 4405 // CHECK: fcvtzu {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #50 4406} 4407 4408int16x8_t test_vaddl_s8(int8x8_t a, int8x8_t b) { 4409 // CHECK-LABEL: test_vaddl_s8 4410 return vaddl_s8(a, b); 4411 // CHECK: saddl {{v[0-9]+}}.8h, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 4412} 4413 4414int32x4_t test_vaddl_s16(int16x4_t a, int16x4_t b) { 4415 // CHECK-LABEL: test_vaddl_s16 4416 return vaddl_s16(a, b); 4417 // CHECK: saddl {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 4418} 4419 4420int64x2_t test_vaddl_s32(int32x2_t a, int32x2_t b) { 4421 // CHECK-LABEL: test_vaddl_s32 4422 return vaddl_s32(a, b); 4423 // CHECK: saddl {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 4424} 4425 4426uint16x8_t test_vaddl_u8(uint8x8_t a, uint8x8_t b) { 4427 // CHECK-LABEL: test_vaddl_u8 4428 return vaddl_u8(a, b); 4429 // CHECK: uaddl {{v[0-9]+}}.8h, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 4430} 4431 4432uint32x4_t test_vaddl_u16(uint16x4_t a, uint16x4_t b) { 4433 // CHECK-LABEL: test_vaddl_u16 4434 return vaddl_u16(a, b); 4435 // CHECK: uaddl {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 4436} 4437 4438uint64x2_t test_vaddl_u32(uint32x2_t a, uint32x2_t b) { 4439 // CHECK-LABEL: test_vaddl_u32 4440 return vaddl_u32(a, b); 4441 // CHECK: uaddl {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 4442} 4443 4444int16x8_t test_vaddl_high_s8(int8x16_t a, int8x16_t b) { 4445 // CHECK-LABEL: test_vaddl_high_s8 4446 return vaddl_high_s8(a, b); 4447 // CHECK: saddl2 {{v[0-9]+}}.8h, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 4448} 4449 4450int32x4_t test_vaddl_high_s16(int16x8_t a, int16x8_t b) { 4451 // CHECK-LABEL: test_vaddl_high_s16 4452 return vaddl_high_s16(a, b); 4453 // CHECK: saddl2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 4454} 4455 4456int64x2_t test_vaddl_high_s32(int32x4_t a, int32x4_t b) { 4457 // CHECK-LABEL: test_vaddl_high_s32 4458 return vaddl_high_s32(a, b); 4459 // CHECK: saddl2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 4460} 4461 4462uint16x8_t test_vaddl_high_u8(uint8x16_t a, uint8x16_t b) { 4463 // CHECK-LABEL: test_vaddl_high_u8 4464 return vaddl_high_u8(a, b); 4465 // CHECK: uaddl2 {{v[0-9]+}}.8h, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 4466} 4467 4468uint32x4_t test_vaddl_high_u16(uint16x8_t a, uint16x8_t b) { 4469 // CHECK-LABEL: test_vaddl_high_u16 4470 return vaddl_high_u16(a, b); 4471 // CHECK: uaddl2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 4472} 4473 4474uint64x2_t test_vaddl_high_u32(uint32x4_t a, uint32x4_t b) { 4475 // CHECK-LABEL: test_vaddl_high_u32 4476 return vaddl_high_u32(a, b); 4477 // CHECK: uaddl2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 4478} 4479 4480int16x8_t test_vaddw_s8(int16x8_t a, int8x8_t b) { 4481 // CHECK-LABEL: test_vaddw_s8 4482 return vaddw_s8(a, b); 4483 // CHECK: saddw {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8b 4484} 4485 4486int32x4_t test_vaddw_s16(int32x4_t a, int16x4_t b) { 4487 // CHECK-LABEL: test_vaddw_s16 4488 return vaddw_s16(a, b); 4489 // CHECK: saddw {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4h 4490} 4491 4492int64x2_t test_vaddw_s32(int64x2_t a, int32x2_t b) { 4493 // CHECK-LABEL: test_vaddw_s32 4494 return vaddw_s32(a, b); 4495 // CHECK: saddw {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2s 4496} 4497 4498uint16x8_t test_vaddw_u8(uint16x8_t a, uint8x8_t b) { 4499 // CHECK-LABEL: test_vaddw_u8 4500 return vaddw_u8(a, b); 4501 // CHECK: uaddw {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8b 4502} 4503 4504uint32x4_t test_vaddw_u16(uint32x4_t a, uint16x4_t b) { 4505 // CHECK-LABEL: test_vaddw_u16 4506 return vaddw_u16(a, b); 4507 // CHECK: uaddw {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4h 4508} 4509 4510uint64x2_t test_vaddw_u32(uint64x2_t a, uint32x2_t b) { 4511 // CHECK-LABEL: test_vaddw_u32 4512 return vaddw_u32(a, b); 4513 // CHECK: uaddw {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2s 4514} 4515 4516int16x8_t test_vaddw_high_s8(int16x8_t a, int8x16_t b) { 4517 // CHECK-LABEL: test_vaddw_high_s8 4518 return vaddw_high_s8(a, b); 4519 // CHECK: saddw2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.16b 4520} 4521 4522int32x4_t test_vaddw_high_s16(int32x4_t a, int16x8_t b) { 4523 // CHECK-LABEL: test_vaddw_high_s16 4524 return vaddw_high_s16(a, b); 4525 // CHECK: saddw2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.8h 4526} 4527 4528int64x2_t test_vaddw_high_s32(int64x2_t a, int32x4_t b) { 4529 // CHECK-LABEL: test_vaddw_high_s32 4530 return vaddw_high_s32(a, b); 4531 // CHECK: saddw2 {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.4s 4532} 4533 4534uint16x8_t test_vaddw_high_u8(uint16x8_t a, uint8x16_t b) { 4535 // CHECK-LABEL: test_vaddw_high_u8 4536 return vaddw_high_u8(a, b); 4537 // CHECK: uaddw2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.16b 4538} 4539 4540uint32x4_t test_vaddw_high_u16(uint32x4_t a, uint16x8_t b) { 4541 // CHECK-LABEL: test_vaddw_high_u16 4542 return vaddw_high_u16(a, b); 4543 // CHECK: uaddw2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.8h 4544} 4545 4546uint64x2_t test_vaddw_high_u32(uint64x2_t a, uint32x4_t b) { 4547 // CHECK-LABEL: test_vaddw_high_u32 4548 return vaddw_high_u32(a, b); 4549 // CHECK: uaddw2 {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.4s 4550} 4551 4552int16x8_t test_vsubl_s8(int8x8_t a, int8x8_t b) { 4553 // CHECK-LABEL: test_vsubl_s8 4554 return vsubl_s8(a, b); 4555 // CHECK: ssubl {{v[0-9]+}}.8h, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 4556} 4557 4558int32x4_t test_vsubl_s16(int16x4_t a, int16x4_t b) { 4559 // CHECK-LABEL: test_vsubl_s16 4560 return vsubl_s16(a, b); 4561 // CHECK: ssubl {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 4562} 4563 4564int64x2_t test_vsubl_s32(int32x2_t a, int32x2_t b) { 4565 // CHECK-LABEL: test_vsubl_s32 4566 return vsubl_s32(a, b); 4567 // CHECK: ssubl {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 4568} 4569 4570uint16x8_t test_vsubl_u8(uint8x8_t a, uint8x8_t b) { 4571 // CHECK-LABEL: test_vsubl_u8 4572 return vsubl_u8(a, b); 4573 // CHECK: usubl {{v[0-9]+}}.8h, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 4574} 4575 4576uint32x4_t test_vsubl_u16(uint16x4_t a, uint16x4_t b) { 4577 // CHECK-LABEL: test_vsubl_u16 4578 return vsubl_u16(a, b); 4579 // CHECK: usubl {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 4580} 4581 4582uint64x2_t test_vsubl_u32(uint32x2_t a, uint32x2_t b) { 4583 // CHECK-LABEL: test_vsubl_u32 4584 return vsubl_u32(a, b); 4585 // CHECK: usubl {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 4586} 4587 4588int16x8_t test_vsubl_high_s8(int8x16_t a, int8x16_t b) { 4589 // CHECK-LABEL: test_vsubl_high_s8 4590 return vsubl_high_s8(a, b); 4591 // CHECK: ssubl2 {{v[0-9]+}}.8h, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 4592} 4593 4594int32x4_t test_vsubl_high_s16(int16x8_t a, int16x8_t b) { 4595 // CHECK-LABEL: test_vsubl_high_s16 4596 return vsubl_high_s16(a, b); 4597 // CHECK: ssubl2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 4598} 4599 4600int64x2_t test_vsubl_high_s32(int32x4_t a, int32x4_t b) { 4601 // CHECK-LABEL: test_vsubl_high_s32 4602 return vsubl_high_s32(a, b); 4603 // CHECK: ssubl2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 4604} 4605 4606uint16x8_t test_vsubl_high_u8(uint8x16_t a, uint8x16_t b) { 4607 // CHECK-LABEL: test_vsubl_high_u8 4608 return vsubl_high_u8(a, b); 4609 // CHECK: usubl2 {{v[0-9]+}}.8h, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 4610} 4611 4612uint32x4_t test_vsubl_high_u16(uint16x8_t a, uint16x8_t b) { 4613 // CHECK-LABEL: test_vsubl_high_u16 4614 return vsubl_high_u16(a, b); 4615 // CHECK: usubl2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 4616} 4617 4618uint64x2_t test_vsubl_high_u32(uint32x4_t a, uint32x4_t b) { 4619 // CHECK-LABEL: test_vsubl_high_u32 4620 return vsubl_high_u32(a, b); 4621 // CHECK: usubl2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 4622} 4623 4624int16x8_t test_vsubw_s8(int16x8_t a, int8x8_t b) { 4625 // CHECK-LABEL: test_vsubw_s8 4626 return vsubw_s8(a, b); 4627 // CHECK: ssubw {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8b 4628} 4629 4630int32x4_t test_vsubw_s16(int32x4_t a, int16x4_t b) { 4631 // CHECK-LABEL: test_vsubw_s16 4632 return vsubw_s16(a, b); 4633 // CHECK: ssubw {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4h 4634} 4635 4636int64x2_t test_vsubw_s32(int64x2_t a, int32x2_t b) { 4637 // CHECK-LABEL: test_vsubw_s32 4638 return vsubw_s32(a, b); 4639 // CHECK: ssubw {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2s 4640} 4641 4642uint16x8_t test_vsubw_u8(uint16x8_t a, uint8x8_t b) { 4643 // CHECK-LABEL: test_vsubw_u8 4644 return vsubw_u8(a, b); 4645 // CHECK: usubw {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.8b 4646} 4647 4648uint32x4_t test_vsubw_u16(uint32x4_t a, uint16x4_t b) { 4649 // CHECK-LABEL: test_vsubw_u16 4650 return vsubw_u16(a, b); 4651 // CHECK: usubw {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4h 4652} 4653 4654uint64x2_t test_vsubw_u32(uint64x2_t a, uint32x2_t b) { 4655 // CHECK-LABEL: test_vsubw_u32 4656 return vsubw_u32(a, b); 4657 // CHECK: usubw {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2s 4658} 4659 4660int16x8_t test_vsubw_high_s8(int16x8_t a, int8x16_t b) { 4661 // CHECK-LABEL: test_vsubw_high_s8 4662 return vsubw_high_s8(a, b); 4663 // CHECK: ssubw2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.16b 4664} 4665 4666int32x4_t test_vsubw_high_s16(int32x4_t a, int16x8_t b) { 4667 // CHECK-LABEL: test_vsubw_high_s16 4668 return vsubw_high_s16(a, b); 4669 // CHECK: ssubw2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.8h 4670} 4671 4672int64x2_t test_vsubw_high_s32(int64x2_t a, int32x4_t b) { 4673 // CHECK-LABEL: test_vsubw_high_s32 4674 return vsubw_high_s32(a, b); 4675 // CHECK: ssubw2 {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.4s 4676} 4677 4678uint16x8_t test_vsubw_high_u8(uint16x8_t a, uint8x16_t b) { 4679 // CHECK-LABEL: test_vsubw_high_u8 4680 return vsubw_high_u8(a, b); 4681 // CHECK: usubw2 {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, {{v[0-9]+}}.16b 4682} 4683 4684uint32x4_t test_vsubw_high_u16(uint32x4_t a, uint16x8_t b) { 4685 // CHECK-LABEL: test_vsubw_high_u16 4686 return vsubw_high_u16(a, b); 4687 // CHECK: usubw2 {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.8h 4688} 4689 4690uint64x2_t test_vsubw_high_u32(uint64x2_t a, uint32x4_t b) { 4691 // CHECK-LABEL: test_vsubw_high_u32 4692 return vsubw_high_u32(a, b); 4693 // CHECK: usubw2 {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.4s 4694} 4695 4696int8x8_t test_vaddhn_s16(int16x8_t a, int16x8_t b) { 4697 // CHECK-LABEL: test_vaddhn_s16 4698 return vaddhn_s16(a, b); 4699 // CHECK: addhn {{v[0-9]+}}.8b, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 4700} 4701 4702int16x4_t test_vaddhn_s32(int32x4_t a, int32x4_t b) { 4703 // CHECK-LABEL: test_vaddhn_s32 4704 return vaddhn_s32(a, b); 4705 // CHECK: addhn {{v[0-9]+}}.4h, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 4706} 4707 4708int32x2_t test_vaddhn_s64(int64x2_t a, int64x2_t b) { 4709 // CHECK-LABEL: test_vaddhn_s64 4710 return vaddhn_s64(a, b); 4711 // CHECK: addhn {{v[0-9]+}}.2s, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 4712} 4713 4714uint8x8_t test_vaddhn_u16(uint16x8_t a, uint16x8_t b) { 4715 // CHECK-LABEL: test_vaddhn_u16 4716 return vaddhn_u16(a, b); 4717 // CHECK: addhn {{v[0-9]+}}.8b, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 4718} 4719 4720uint16x4_t test_vaddhn_u32(uint32x4_t a, uint32x4_t b) { 4721 // CHECK-LABEL: test_vaddhn_u32 4722 return vaddhn_u32(a, b); 4723 // CHECK: addhn {{v[0-9]+}}.4h, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 4724} 4725 4726uint32x2_t test_vaddhn_u64(uint64x2_t a, uint64x2_t b) { 4727 // CHECK-LABEL: test_vaddhn_u64 4728 return vaddhn_u64(a, b); 4729 // CHECK: addhn {{v[0-9]+}}.2s, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 4730} 4731 4732int8x16_t test_vaddhn_high_s16(int8x8_t r, int16x8_t a, int16x8_t b) { 4733 // CHECK-LABEL: test_vaddhn_high_s16 4734 return vaddhn_high_s16(r, a, b); 4735 // CHECK: addhn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 4736} 4737 4738int16x8_t test_vaddhn_high_s32(int16x4_t r, int32x4_t a, int32x4_t b) { 4739 // CHECK-LABEL: test_vaddhn_high_s32 4740 return vaddhn_high_s32(r, a, b); 4741 // CHECK: addhn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 4742} 4743 4744int32x4_t test_vaddhn_high_s64(int32x2_t r, int64x2_t a, int64x2_t b) { 4745 // CHECK-LABEL: test_vaddhn_high_s64 4746 return vaddhn_high_s64(r, a, b); 4747 // CHECK: addhn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 4748} 4749 4750uint8x16_t test_vaddhn_high_u16(uint8x8_t r, uint16x8_t a, uint16x8_t b) { 4751 // CHECK-LABEL: test_vaddhn_high_u16 4752 return vaddhn_high_u16(r, a, b); 4753 // CHECK: addhn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 4754} 4755 4756uint16x8_t test_vaddhn_high_u32(uint16x4_t r, uint32x4_t a, uint32x4_t b) { 4757 // CHECK-LABEL: test_vaddhn_high_u32 4758 return vaddhn_high_u32(r, a, b); 4759 // CHECK: addhn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 4760} 4761 4762uint32x4_t test_vaddhn_high_u64(uint32x2_t r, uint64x2_t a, uint64x2_t b) { 4763 // CHECK-LABEL: test_vaddhn_high_u64 4764 return vaddhn_high_u64(r, a, b); 4765 // CHECK: addhn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 4766} 4767 4768int8x8_t test_vraddhn_s16(int16x8_t a, int16x8_t b) { 4769 // CHECK-LABEL: test_vraddhn_s16 4770 return vraddhn_s16(a, b); 4771 // CHECK: raddhn {{v[0-9]+}}.8b, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 4772} 4773 4774int16x4_t test_vraddhn_s32(int32x4_t a, int32x4_t b) { 4775 // CHECK-LABEL: test_vraddhn_s32 4776 return vraddhn_s32(a, b); 4777 // CHECK: raddhn {{v[0-9]+}}.4h, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 4778} 4779 4780int32x2_t test_vraddhn_s64(int64x2_t a, int64x2_t b) { 4781 // CHECK-LABEL: test_vraddhn_s64 4782 return vraddhn_s64(a, b); 4783 // CHECK: raddhn {{v[0-9]+}}.2s, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 4784} 4785 4786uint8x8_t test_vraddhn_u16(uint16x8_t a, uint16x8_t b) { 4787 // CHECK-LABEL: test_vraddhn_u16 4788 return vraddhn_u16(a, b); 4789 // CHECK: raddhn {{v[0-9]+}}.8b, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 4790} 4791 4792uint16x4_t test_vraddhn_u32(uint32x4_t a, uint32x4_t b) { 4793 // CHECK-LABEL: test_vraddhn_u32 4794 return vraddhn_u32(a, b); 4795 // CHECK: raddhn {{v[0-9]+}}.4h, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 4796} 4797 4798uint32x2_t test_vraddhn_u64(uint64x2_t a, uint64x2_t b) { 4799 // CHECK-LABEL: test_vraddhn_u64 4800 return vraddhn_u64(a, b); 4801 // CHECK: raddhn {{v[0-9]+}}.2s, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 4802} 4803 4804int8x16_t test_vraddhn_high_s16(int8x8_t r, int16x8_t a, int16x8_t b) { 4805 // CHECK-LABEL: test_vraddhn_high_s16 4806 return vraddhn_high_s16(r, a, b); 4807 // CHECK: raddhn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 4808} 4809 4810int16x8_t test_vraddhn_high_s32(int16x4_t r, int32x4_t a, int32x4_t b) { 4811 // CHECK-LABEL: test_vraddhn_high_s32 4812 return vraddhn_high_s32(r, a, b); 4813 // CHECK: raddhn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 4814} 4815 4816int32x4_t test_vraddhn_high_s64(int32x2_t r, int64x2_t a, int64x2_t b) { 4817 // CHECK-LABEL: test_vraddhn_high_s64 4818 return vraddhn_high_s64(r, a, b); 4819 // CHECK: raddhn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 4820} 4821 4822uint8x16_t test_vraddhn_high_u16(uint8x8_t r, uint16x8_t a, uint16x8_t b) { 4823 // CHECK-LABEL: test_vraddhn_high_u16 4824 return vraddhn_high_u16(r, a, b); 4825 // CHECK: raddhn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 4826} 4827 4828uint16x8_t test_vraddhn_high_u32(uint16x4_t r, uint32x4_t a, uint32x4_t b) { 4829 // CHECK-LABEL: test_vraddhn_high_u32 4830 return vraddhn_high_u32(r, a, b); 4831 // CHECK: raddhn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 4832} 4833 4834uint32x4_t test_vraddhn_high_u64(uint32x2_t r, uint64x2_t a, uint64x2_t b) { 4835 // CHECK-LABEL: test_vraddhn_high_u64 4836 return vraddhn_high_u64(r, a, b); 4837 // CHECK: raddhn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 4838} 4839 4840int8x8_t test_vsubhn_s16(int16x8_t a, int16x8_t b) { 4841 // CHECK-LABEL: test_vsubhn_s16 4842 return vsubhn_s16(a, b); 4843 // CHECK: subhn {{v[0-9]+}}.8b, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 4844} 4845 4846int16x4_t test_vsubhn_s32(int32x4_t a, int32x4_t b) { 4847 // CHECK-LABEL: test_vsubhn_s32 4848 return vsubhn_s32(a, b); 4849 // CHECK: subhn {{v[0-9]+}}.4h, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 4850} 4851 4852int32x2_t test_vsubhn_s64(int64x2_t a, int64x2_t b) { 4853 // CHECK-LABEL: test_vsubhn_s64 4854 return vsubhn_s64(a, b); 4855 // CHECK: subhn {{v[0-9]+}}.2s, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 4856} 4857 4858uint8x8_t test_vsubhn_u16(uint16x8_t a, uint16x8_t b) { 4859 // CHECK-LABEL: test_vsubhn_u16 4860 return vsubhn_u16(a, b); 4861 // CHECK: subhn {{v[0-9]+}}.8b, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 4862} 4863 4864uint16x4_t test_vsubhn_u32(uint32x4_t a, uint32x4_t b) { 4865 // CHECK-LABEL: test_vsubhn_u32 4866 return vsubhn_u32(a, b); 4867 // CHECK: subhn {{v[0-9]+}}.4h, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 4868} 4869 4870uint32x2_t test_vsubhn_u64(uint64x2_t a, uint64x2_t b) { 4871 // CHECK-LABEL: test_vsubhn_u64 4872 return vsubhn_u64(a, b); 4873 // CHECK: subhn {{v[0-9]+}}.2s, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 4874} 4875 4876int8x16_t test_vsubhn_high_s16(int8x8_t r, int16x8_t a, int16x8_t b) { 4877 // CHECK-LABEL: test_vsubhn_high_s16 4878 return vsubhn_high_s16(r, a, b); 4879 // CHECK: subhn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 4880} 4881 4882int16x8_t test_vsubhn_high_s32(int16x4_t r, int32x4_t a, int32x4_t b) { 4883 // CHECK-LABEL: test_vsubhn_high_s32 4884 return vsubhn_high_s32(r, a, b); 4885 // CHECK: subhn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 4886} 4887 4888int32x4_t test_vsubhn_high_s64(int32x2_t r, int64x2_t a, int64x2_t b) { 4889 // CHECK-LABEL: test_vsubhn_high_s64 4890 return vsubhn_high_s64(r, a, b); 4891 // CHECK: subhn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 4892} 4893 4894uint8x16_t test_vsubhn_high_u16(uint8x8_t r, uint16x8_t a, uint16x8_t b) { 4895 // CHECK-LABEL: test_vsubhn_high_u16 4896 return vsubhn_high_u16(r, a, b); 4897 // CHECK: subhn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 4898} 4899 4900uint16x8_t test_vsubhn_high_u32(uint16x4_t r, uint32x4_t a, uint32x4_t b) { 4901 // CHECK-LABEL: test_vsubhn_high_u32 4902 return vsubhn_high_u32(r, a, b); 4903 // CHECK: subhn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 4904} 4905 4906uint32x4_t test_vsubhn_high_u64(uint32x2_t r, uint64x2_t a, uint64x2_t b) { 4907 // CHECK-LABEL: test_vsubhn_high_u64 4908 return vsubhn_high_u64(r, a, b); 4909 // CHECK: subhn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 4910} 4911 4912int8x8_t test_vrsubhn_s16(int16x8_t a, int16x8_t b) { 4913 // CHECK-LABEL: test_vrsubhn_s16 4914 return vrsubhn_s16(a, b); 4915 // CHECK: rsubhn {{v[0-9]+}}.8b, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 4916} 4917 4918int16x4_t test_vrsubhn_s32(int32x4_t a, int32x4_t b) { 4919 // CHECK-LABEL: test_vrsubhn_s32 4920 return vrsubhn_s32(a, b); 4921 // CHECK: rsubhn {{v[0-9]+}}.4h, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 4922} 4923 4924int32x2_t test_vrsubhn_s64(int64x2_t a, int64x2_t b) { 4925 // CHECK-LABEL: test_vrsubhn_s64 4926 return vrsubhn_s64(a, b); 4927 // CHECK: rsubhn {{v[0-9]+}}.2s, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 4928} 4929 4930uint8x8_t test_vrsubhn_u16(uint16x8_t a, uint16x8_t b) { 4931 // CHECK-LABEL: test_vrsubhn_u16 4932 return vrsubhn_u16(a, b); 4933 // CHECK: rsubhn {{v[0-9]+}}.8b, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 4934} 4935 4936uint16x4_t test_vrsubhn_u32(uint32x4_t a, uint32x4_t b) { 4937 // CHECK-LABEL: test_vrsubhn_u32 4938 return vrsubhn_u32(a, b); 4939 // CHECK: rsubhn {{v[0-9]+}}.4h, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 4940} 4941 4942uint32x2_t test_vrsubhn_u64(uint64x2_t a, uint64x2_t b) { 4943 // CHECK-LABEL: test_vrsubhn_u64 4944 return vrsubhn_u64(a, b); 4945 // CHECK: rsubhn {{v[0-9]+}}.2s, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 4946} 4947 4948int8x16_t test_vrsubhn_high_s16(int8x8_t r, int16x8_t a, int16x8_t b) { 4949 // CHECK-LABEL: test_vrsubhn_high_s16 4950 return vrsubhn_high_s16(r, a, b); 4951 // CHECK: rsubhn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 4952} 4953 4954int16x8_t test_vrsubhn_high_s32(int16x4_t r, int32x4_t a, int32x4_t b) { 4955 // CHECK-LABEL: test_vrsubhn_high_s32 4956 return vrsubhn_high_s32(r, a, b); 4957 // CHECK: rsubhn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 4958} 4959 4960int32x4_t test_vrsubhn_high_s64(int32x2_t r, int64x2_t a, int64x2_t b) { 4961 // CHECK-LABEL: test_vrsubhn_high_s64 4962 return vrsubhn_high_s64(r, a, b); 4963 // CHECK: rsubhn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 4964} 4965 4966uint8x16_t test_vrsubhn_high_u16(uint8x8_t r, uint16x8_t a, uint16x8_t b) { 4967 // CHECK-LABEL: test_vrsubhn_high_u16 4968 return vrsubhn_high_u16(r, a, b); 4969 // CHECK: rsubhn2 {{v[0-9]+}}.16b, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 4970} 4971 4972uint16x8_t test_vrsubhn_high_u32(uint16x4_t r, uint32x4_t a, uint32x4_t b) { 4973 // CHECK-LABEL: test_vrsubhn_high_u32 4974 return vrsubhn_high_u32(r, a, b); 4975 // CHECK: rsubhn2 {{v[0-9]+}}.8h, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 4976} 4977 4978uint32x4_t test_vrsubhn_high_u64(uint32x2_t r, uint64x2_t a, uint64x2_t b) { 4979 // CHECK-LABEL: test_vrsubhn_high_u64 4980 return vrsubhn_high_u64(r, a, b); 4981 // CHECK: rsubhn2 {{v[0-9]+}}.4s, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 4982} 4983 4984int16x8_t test_vabdl_s8(int8x8_t a, int8x8_t b) { 4985 // CHECK-LABEL: test_vabdl_s8 4986 return vabdl_s8(a, b); 4987 // CHECK: sabdl {{v[0-9]+}}.8h, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 4988} 4989int32x4_t test_vabdl_s16(int16x4_t a, int16x4_t b) { 4990 // CHECK-LABEL: test_vabdl_s16 4991 return vabdl_s16(a, b); 4992 // CHECK: sabdl {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 4993} 4994int64x2_t test_vabdl_s32(int32x2_t a, int32x2_t b) { 4995 // CHECK-LABEL: test_vabdl_s32 4996 return vabdl_s32(a, b); 4997 // CHECK: sabdl {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 4998} 4999uint16x8_t test_vabdl_u8(uint8x8_t a, uint8x8_t b) { 5000 // CHECK-LABEL: test_vabdl_u8 5001 return vabdl_u8(a, b); 5002 // CHECK: uabdl {{v[0-9]+}}.8h, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 5003} 5004uint32x4_t test_vabdl_u16(uint16x4_t a, uint16x4_t b) { 5005 // CHECK-LABEL: test_vabdl_u16 5006 return vabdl_u16(a, b); 5007 // CHECK: uabdl {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 5008} 5009uint64x2_t test_vabdl_u32(uint32x2_t a, uint32x2_t b) { 5010 // CHECK-LABEL: test_vabdl_u32 5011 return vabdl_u32(a, b); 5012 // CHECK: uabdl {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 5013} 5014 5015int16x8_t test_vabal_s8(int16x8_t a, int8x8_t b, int8x8_t c) { 5016 // CHECK-LABEL: test_vabal_s8 5017 return vabal_s8(a, b, c); 5018 // CHECK: sabal {{v[0-9]+}}.8h, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 5019} 5020int32x4_t test_vabal_s16(int32x4_t a, int16x4_t b, int16x4_t c) { 5021 // CHECK-LABEL: test_vabal_s16 5022 return vabal_s16(a, b, c); 5023 // CHECK: sabal {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 5024} 5025int64x2_t test_vabal_s32(int64x2_t a, int32x2_t b, int32x2_t c) { 5026 // CHECK-LABEL: test_vabal_s32 5027 return vabal_s32(a, b, c); 5028 // CHECK: sabal {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 5029} 5030uint16x8_t test_vabal_u8(uint16x8_t a, uint8x8_t b, uint8x8_t c) { 5031 // CHECK-LABEL: test_vabal_u8 5032 return vabal_u8(a, b, c); 5033 // CHECK: uabal {{v[0-9]+}}.8h, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 5034} 5035uint32x4_t test_vabal_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) { 5036 // CHECK-LABEL: test_vabal_u16 5037 return vabal_u16(a, b, c); 5038 // CHECK: uabal {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 5039} 5040uint64x2_t test_vabal_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) { 5041 // CHECK-LABEL: test_vabal_u32 5042 return vabal_u32(a, b, c); 5043 // CHECK: uabal {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 5044} 5045 5046int16x8_t test_vabdl_high_s8(int8x16_t a, int8x16_t b) { 5047 // CHECK-LABEL: test_vabdl_high_s8 5048 return vabdl_high_s8(a, b); 5049 // CHECK: sabdl2 {{v[0-9]+}}.8h, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 5050} 5051int32x4_t test_vabdl_high_s16(int16x8_t a, int16x8_t b) { 5052 // CHECK-LABEL: test_vabdl_high_s16 5053 return vabdl_high_s16(a, b); 5054 // CHECK: sabdl2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 5055} 5056int64x2_t test_vabdl_high_s32(int32x4_t a, int32x4_t b) { 5057 // CHECK-LABEL: test_vabdl_high_s32 5058 return vabdl_high_s32(a, b); 5059 // CHECK: sabdl2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 5060} 5061uint16x8_t test_vabdl_high_u8(uint8x16_t a, uint8x16_t b) { 5062 // CHECK-LABEL: test_vabdl_high_u8 5063 return vabdl_high_u8(a, b); 5064 // CHECK: uabdl2 {{v[0-9]+}}.8h, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 5065} 5066uint32x4_t test_vabdl_high_u16(uint16x8_t a, uint16x8_t b) { 5067 // CHECK-LABEL: test_vabdl_high_u16 5068 return vabdl_high_u16(a, b); 5069 // CHECK: uabdl2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 5070} 5071uint64x2_t test_vabdl_high_u32(uint32x4_t a, uint32x4_t b) { 5072 // CHECK-LABEL: test_vabdl_high_u32 5073 return vabdl_high_u32(a, b); 5074 // CHECK: uabdl2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 5075} 5076 5077int16x8_t test_vabal_high_s8(int16x8_t a, int8x16_t b, int8x16_t c) { 5078 // CHECK-LABEL: test_vabal_high_s8 5079 return vabal_high_s8(a, b, c); 5080 // CHECK: sabal2 {{v[0-9]+}}.8h, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 5081} 5082int32x4_t test_vabal_high_s16(int32x4_t a, int16x8_t b, int16x8_t c) { 5083 // CHECK-LABEL: test_vabal_high_s16 5084 return vabal_high_s16(a, b, c); 5085 // CHECK: sabal2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 5086} 5087int64x2_t test_vabal_high_s32(int64x2_t a, int32x4_t b, int32x4_t c) { 5088 // CHECK-LABEL: test_vabal_high_s32 5089 return vabal_high_s32(a, b, c); 5090 // CHECK: sabal2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 5091} 5092uint16x8_t test_vabal_high_u8(uint16x8_t a, uint8x16_t b, uint8x16_t c) { 5093 // CHECK-LABEL: test_vabal_high_u8 5094 return vabal_high_u8(a, b, c); 5095 // CHECK: uabal2 {{v[0-9]+}}.8h, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 5096} 5097uint32x4_t test_vabal_high_u16(uint32x4_t a, uint16x8_t b, uint16x8_t c) { 5098 // CHECK-LABEL: test_vabal_high_u16 5099 return vabal_high_u16(a, b, c); 5100 // CHECK: uabal2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 5101} 5102uint64x2_t test_vabal_high_u32(uint64x2_t a, uint32x4_t b, uint32x4_t c) { 5103 // CHECK-LABEL: test_vabal_high_u32 5104 return vabal_high_u32(a, b, c); 5105 // CHECK: uabal2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 5106} 5107 5108int16x8_t test_vmull_s8(int8x8_t a, int8x8_t b) { 5109 // CHECK-LABEL: test_vmull_s8 5110 return vmull_s8(a, b); 5111 // CHECK: smull {{v[0-9]+}}.8h, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 5112} 5113int32x4_t test_vmull_s16(int16x4_t a, int16x4_t b) { 5114 // CHECK-LABEL: test_vmull_s16 5115 return vmull_s16(a, b); 5116 // CHECK: smull {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 5117} 5118int64x2_t test_vmull_s32(int32x2_t a, int32x2_t b) { 5119 // CHECK-LABEL: test_vmull_s32 5120 return vmull_s32(a, b); 5121 // CHECK: smull {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 5122} 5123uint16x8_t test_vmull_u8(uint8x8_t a, uint8x8_t b) { 5124 // CHECK-LABEL: test_vmull_u8 5125 return vmull_u8(a, b); 5126 // CHECK: umull {{v[0-9]+}}.8h, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 5127} 5128uint32x4_t test_vmull_u16(uint16x4_t a, uint16x4_t b) { 5129 // CHECK-LABEL: test_vmull_u16 5130 return vmull_u16(a, b); 5131 // CHECK: umull {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 5132} 5133uint64x2_t test_vmull_u32(uint32x2_t a, uint32x2_t b) { 5134 // CHECK-LABEL: test_vmull_u32 5135 return vmull_u32(a, b); 5136 // CHECK: umull {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 5137} 5138 5139int16x8_t test_vmull_high_s8(int8x16_t a, int8x16_t b) { 5140 // CHECK-LABEL: test_vmull_high_s8 5141 return vmull_high_s8(a, b); 5142 // CHECK: smull2 {{v[0-9]+}}.8h, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 5143} 5144int32x4_t test_vmull_high_s16(int16x8_t a, int16x8_t b) { 5145 // CHECK-LABEL: test_vmull_high_s16 5146 return vmull_high_s16(a, b); 5147 // CHECK: smull2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 5148} 5149int64x2_t test_vmull_high_s32(int32x4_t a, int32x4_t b) { 5150 // CHECK-LABEL: test_vmull_high_s32 5151 return vmull_high_s32(a, b); 5152 // CHECK: smull2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 5153} 5154uint16x8_t test_vmull_high_u8(uint8x16_t a, uint8x16_t b) { 5155 // CHECK-LABEL: test_vmull_high_u8 5156 return vmull_high_u8(a, b); 5157 // CHECK: umull2 {{v[0-9]+}}.8h, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 5158} 5159uint32x4_t test_vmull_high_u16(uint16x8_t a, uint16x8_t b) { 5160 // CHECK-LABEL: test_vmull_high_u16 5161 return vmull_high_u16(a, b); 5162 // CHECK: umull2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 5163} 5164uint64x2_t test_vmull_high_u32(uint32x4_t a, uint32x4_t b) { 5165 // CHECK-LABEL: test_vmull_high_u32 5166 return vmull_high_u32(a, b); 5167 // CHECK: umull2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 5168} 5169 5170int16x8_t test_vmlal_s8(int16x8_t a, int8x8_t b, int8x8_t c) { 5171 // CHECK-LABEL: test_vmlal_s8 5172 return vmlal_s8(a, b, c); 5173 // CHECK: smlal {{v[0-9]+}}.8h, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 5174} 5175int32x4_t test_vmlal_s16(int32x4_t a, int16x4_t b, int16x4_t c) { 5176 // CHECK-LABEL: test_vmlal_s16 5177 return vmlal_s16(a, b, c); 5178 // CHECK: smlal {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 5179} 5180int64x2_t test_vmlal_s32(int64x2_t a, int32x2_t b, int32x2_t c) { 5181 // CHECK-LABEL: test_vmlal_s32 5182 return vmlal_s32(a, b, c); 5183 // CHECK: smlal {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 5184} 5185uint16x8_t test_vmlal_u8(uint16x8_t a, uint8x8_t b, uint8x8_t c) { 5186 // CHECK-LABEL: test_vmlal_u8 5187 return vmlal_u8(a, b, c); 5188 // CHECK: umlal {{v[0-9]+}}.8h, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 5189} 5190uint32x4_t test_vmlal_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) { 5191 // CHECK-LABEL: test_vmlal_u16 5192 return vmlal_u16(a, b, c); 5193 // CHECK: umlal {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 5194} 5195uint64x2_t test_vmlal_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) { 5196 // CHECK-LABEL: test_vmlal_u32 5197 return vmlal_u32(a, b, c); 5198 // CHECK: umlal {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 5199} 5200 5201int16x8_t test_vmlal_high_s8(int16x8_t a, int8x16_t b, int8x16_t c) { 5202 // CHECK-LABEL: test_vmlal_high_s8 5203 return vmlal_high_s8(a, b, c); 5204 // CHECK: smlal2 {{v[0-9]+}}.8h, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 5205} 5206int32x4_t test_vmlal_high_s16(int32x4_t a, int16x8_t b, int16x8_t c) { 5207 // CHECK-LABEL: test_vmlal_high_s16 5208 return vmlal_high_s16(a, b, c); 5209 // CHECK: smlal2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 5210} 5211int64x2_t test_vmlal_high_s32(int64x2_t a, int32x4_t b, int32x4_t c) { 5212 // CHECK-LABEL: test_vmlal_high_s32 5213 return vmlal_high_s32(a, b, c); 5214 // CHECK: smlal2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 5215} 5216uint16x8_t test_vmlal_high_u8(uint16x8_t a, uint8x16_t b, uint8x16_t c) { 5217 // CHECK-LABEL: test_vmlal_high_u8 5218 return vmlal_high_u8(a, b, c); 5219 // CHECK: umlal2 {{v[0-9]+}}.8h, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 5220} 5221uint32x4_t test_vmlal_high_u16(uint32x4_t a, uint16x8_t b, uint16x8_t c) { 5222 // CHECK-LABEL: test_vmlal_high_u16 5223 return vmlal_high_u16(a, b, c); 5224 // CHECK: umlal2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 5225} 5226uint64x2_t test_vmlal_high_u32(uint64x2_t a, uint32x4_t b, uint32x4_t c) { 5227 // CHECK-LABEL: test_vmlal_high_u32 5228 return vmlal_high_u32(a, b, c); 5229 // CHECK: umlal2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 5230} 5231 5232int16x8_t test_vmlsl_s8(int16x8_t a, int8x8_t b, int8x8_t c) { 5233 // CHECK-LABEL: test_vmlsl_s8 5234 return vmlsl_s8(a, b, c); 5235 // CHECK: smlsl {{v[0-9]+}}.8h, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 5236} 5237int32x4_t test_vmlsl_s16(int32x4_t a, int16x4_t b, int16x4_t c) { 5238 // CHECK-LABEL: test_vmlsl_s16 5239 return vmlsl_s16(a, b, c); 5240 // CHECK: smlsl {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 5241} 5242int64x2_t test_vmlsl_s32(int64x2_t a, int32x2_t b, int32x2_t c) { 5243 // CHECK-LABEL: test_vmlsl_s32 5244 return vmlsl_s32(a, b, c); 5245 // CHECK: smlsl {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 5246} 5247uint16x8_t test_vmlsl_u8(uint16x8_t a, uint8x8_t b, uint8x8_t c) { 5248 // CHECK-LABEL: test_vmlsl_u8 5249 return vmlsl_u8(a, b, c); 5250 // CHECK: umlsl {{v[0-9]+}}.8h, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 5251} 5252uint32x4_t test_vmlsl_u16(uint32x4_t a, uint16x4_t b, uint16x4_t c) { 5253 // CHECK-LABEL: test_vmlsl_u16 5254 return vmlsl_u16(a, b, c); 5255 // CHECK: umlsl {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 5256} 5257uint64x2_t test_vmlsl_u32(uint64x2_t a, uint32x2_t b, uint32x2_t c) { 5258 // CHECK-LABEL: test_vmlsl_u32 5259 return vmlsl_u32(a, b, c); 5260 // CHECK: umlsl {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 5261} 5262 5263int16x8_t test_vmlsl_high_s8(int16x8_t a, int8x16_t b, int8x16_t c) { 5264 // CHECK-LABEL: test_vmlsl_high_s8 5265 return vmlsl_high_s8(a, b, c); 5266 // CHECK: smlsl2 {{v[0-9]+}}.8h, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 5267} 5268int32x4_t test_vmlsl_high_s16(int32x4_t a, int16x8_t b, int16x8_t c) { 5269 // CHECK-LABEL: test_vmlsl_high_s16 5270 return vmlsl_high_s16(a, b, c); 5271 // CHECK: smlsl2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 5272} 5273int64x2_t test_vmlsl_high_s32(int64x2_t a, int32x4_t b, int32x4_t c) { 5274 // CHECK-LABEL: test_vmlsl_high_s32 5275 return vmlsl_high_s32(a, b, c); 5276 // CHECK: smlsl2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 5277} 5278uint16x8_t test_vmlsl_high_u8(uint16x8_t a, uint8x16_t b, uint8x16_t c) { 5279 // CHECK-LABEL: test_vmlsl_high_u8 5280 return vmlsl_high_u8(a, b, c); 5281 // CHECK: umlsl2 {{v[0-9]+}}.8h, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 5282} 5283uint32x4_t test_vmlsl_high_u16(uint32x4_t a, uint16x8_t b, uint16x8_t c) { 5284 // CHECK-LABEL: test_vmlsl_high_u16 5285 return vmlsl_high_u16(a, b, c); 5286 // CHECK: umlsl2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 5287} 5288uint64x2_t test_vmlsl_high_u32(uint64x2_t a, uint32x4_t b, uint32x4_t c) { 5289 // CHECK-LABEL: test_vmlsl_high_u32 5290 return vmlsl_high_u32(a, b, c); 5291 // CHECK: umlsl2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 5292} 5293 5294int32x4_t test_vqdmull_s16(int16x4_t a, int16x4_t b) { 5295 // CHECK-LABEL: test_vqdmull_s16 5296 return vqdmull_s16(a, b); 5297 // CHECK: sqdmull {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 5298} 5299int64x2_t test_vqdmull_s32(int32x2_t a, int32x2_t b) { 5300 // CHECK-LABEL: test_vqdmull_s32 5301 return vqdmull_s32(a, b); 5302 // CHECK: sqdmull {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 5303} 5304 5305int32x4_t test_vqdmlal_s16(int32x4_t a, int16x4_t b, int16x4_t c) { 5306 // CHECK-LABEL: test_vqdmlal_s16 5307 return vqdmlal_s16(a, b, c); 5308 // CHECK: sqdmlal {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 5309} 5310 5311int64x2_t test_vqdmlal_s32(int64x2_t a, int32x2_t b, int32x2_t c) { 5312 // CHECK-LABEL: test_vqdmlal_s32 5313 return vqdmlal_s32(a, b, c); 5314 // CHECK: sqdmlal {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 5315} 5316 5317int32x4_t test_vqdmlsl_s16(int32x4_t a, int16x4_t b, int16x4_t c) { 5318 // CHECK-LABEL: test_vqdmlsl_s16 5319 return vqdmlsl_s16(a, b, c); 5320 // CHECK: sqdmlsl {{v[0-9]+}}.4s, {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 5321} 5322 5323int64x2_t test_vqdmlsl_s32(int64x2_t a, int32x2_t b, int32x2_t c) { 5324 // CHECK-LABEL: test_vqdmlsl_s32 5325 return vqdmlsl_s32(a, b, c); 5326 // CHECK: sqdmlsl {{v[0-9]+}}.2d, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 5327} 5328 5329int32x4_t test_vqdmull_high_s16(int16x8_t a, int16x8_t b) { 5330 // CHECK-LABEL: test_vqdmull_high_s16 5331 return vqdmull_high_s16(a, b); 5332 // CHECK: sqdmull2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 5333} 5334int64x2_t test_vqdmull_high_s32(int32x4_t a, int32x4_t b) { 5335 // CHECK-LABEL: test_vqdmull_high_s32 5336 return vqdmull_high_s32(a, b); 5337 // CHECK: sqdmull2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 5338} 5339 5340int32x4_t test_vqdmlal_high_s16(int32x4_t a, int16x8_t b, int16x8_t c) { 5341 // CHECK-LABEL: test_vqdmlal_high_s16 5342 return vqdmlal_high_s16(a, b, c); 5343 // CHECK: sqdmlal2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 5344} 5345 5346int64x2_t test_vqdmlal_high_s32(int64x2_t a, int32x4_t b, int32x4_t c) { 5347 // CHECK-LABEL: test_vqdmlal_high_s32 5348 return vqdmlal_high_s32(a, b, c); 5349 // CHECK: sqdmlal2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 5350} 5351 5352int32x4_t test_vqdmlsl_high_s16(int32x4_t a, int16x8_t b, int16x8_t c) { 5353 // CHECK-LABEL: test_vqdmlsl_high_s16 5354 return vqdmlsl_high_s16(a, b, c); 5355 // CHECK: sqdmlsl2 {{v[0-9]+}}.4s, {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 5356} 5357 5358int64x2_t test_vqdmlsl_high_s32(int64x2_t a, int32x4_t b, int32x4_t c) { 5359 // CHECK-LABEL: test_vqdmlsl_high_s32 5360 return vqdmlsl_high_s32(a, b, c); 5361 // CHECK: sqdmlsl2 {{v[0-9]+}}.2d, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 5362} 5363 5364poly16x8_t test_vmull_p8(poly8x8_t a, poly8x8_t b) { 5365 // CHECK-LABEL: test_vmull_p8 5366 return vmull_p8(a, b); 5367 // CHECK: pmull {{v[0-9]+}}.8h, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 5368} 5369 5370poly16x8_t test_vmull_high_p8(poly8x16_t a, poly8x16_t b) { 5371 // CHECK-LABEL: test_vmull_high_p8 5372 return vmull_high_p8(a, b); 5373 // CHECK: pmull2 {{v[0-9]+}}.8h, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 5374} 5375 5376int64_t test_vaddd_s64(int64_t a, int64_t b) { 5377// CHECK-LABEL: test_vaddd_s64 5378 return vaddd_s64(a, b); 5379// CHECK: add {{[xd][0-9]+}}, {{[xd][0-9]+}}, {{[xd][0-9]+}} 5380} 5381 5382uint64_t test_vaddd_u64(uint64_t a, uint64_t b) { 5383// CHECK-LABEL: test_vaddd_u64 5384 return vaddd_u64(a, b); 5385// CHECK: add {{[xd][0-9]+}}, {{[xd][0-9]+}}, {{[xd][0-9]+}} 5386} 5387 5388int64_t test_vsubd_s64(int64_t a, int64_t b) { 5389// CHECK-LABEL: test_vsubd_s64 5390 return vsubd_s64(a, b); 5391// CHECK: sub {{[xd][0-9]+}}, {{[xd][0-9]+}}, {{[xd][0-9]+}} 5392} 5393 5394uint64_t test_vsubd_u64(uint64_t a, uint64_t b) { 5395// CHECK-LABEL: test_vsubd_u64 5396 return vsubd_u64(a, b); 5397// CHECK: sub {{[xd][0-9]+}}, {{[xd][0-9]+}}, {{[xd][0-9]+}} 5398} 5399 5400int8_t test_vqaddb_s8(int8_t a, int8_t b) { 5401// CHECK-LABEL: test_vqaddb_s8 5402 return vqaddb_s8(a, b); 5403// CHECK: sqadd {{b[0-9]+|v[0-9]+.8b}}, {{b[0-9]+|v[0-9]+.8b}}, {{b[0-9]+|v[0-9]+.8b}} 5404} 5405 5406int16_t test_vqaddh_s16(int16_t a, int16_t b) { 5407// CHECK-LABEL: test_vqaddh_s16 5408 return vqaddh_s16(a, b); 5409// CHECK: sqadd {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}} 5410} 5411 5412int32_t test_vqadds_s32(int32_t a, int32_t b) { 5413// CHECK-LABEL: test_vqadds_s32 5414 return vqadds_s32(a, b); 5415// CHECK: sqadd {{s[0-9]+}}, {{s[0-9]+}}, {{s[0-9]+}} 5416} 5417 5418int64_t test_vqaddd_s64(int64_t a, int64_t b) { 5419// CHECK-LABEL: test_vqaddd_s64 5420 return vqaddd_s64(a, b); 5421// CHECK: sqadd {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 5422} 5423 5424uint8_t test_vqaddb_u8(uint8_t a, uint8_t b) { 5425// CHECK-LABEL: test_vqaddb_u8 5426 return vqaddb_u8(a, b); 5427// CHECK: uqadd {{b[0-9]+|v[0-9]+.8b}}, {{b[0-9]+|v[0-9]+.8b}}, {{b[0-9]+|v[0-9]+.8b}} 5428} 5429 5430uint16_t test_vqaddh_u16(uint16_t a, uint16_t b) { 5431// CHECK-LABEL: test_vqaddh_u16 5432 return vqaddh_u16(a, b); 5433// CHECK: uqadd {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}} 5434} 5435 5436uint32_t test_vqadds_u32(uint32_t a, uint32_t b) { 5437// CHECK-LABEL: test_vqadds_u32 5438 return vqadds_u32(a, b); 5439// CHECK: uqadd {{s[0-9]+}}, {{s[0-9]+}}, {{s[0-9]+}} 5440} 5441 5442uint64_t test_vqaddd_u64(uint64_t a, uint64_t b) { 5443// CHECK-LABEL: test_vqaddd_u64 5444 return vqaddd_u64(a, b); 5445// CHECK: uqadd {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 5446} 5447 5448int8_t test_vqsubb_s8(int8_t a, int8_t b) { 5449// CHECK-LABEL: test_vqsubb_s8 5450 return vqsubb_s8(a, b); 5451// CHECK: sqsub {{b[0-9]+|v[0-9]+.8b}}, {{b[0-9]+|v[0-9]+.8b}}, {{b[0-9]+|v[0-9]+.8b}} 5452} 5453 5454int16_t test_vqsubh_s16(int16_t a, int16_t b) { 5455// CHECK-LABEL: test_vqsubh_s16 5456 return vqsubh_s16(a, b); 5457// CHECK: sqsub {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}} 5458} 5459 5460int32_t test_vqsubs_s32(int32_t a, int32_t b) { 5461 // CHECK-LABEL: test_vqsubs_s32 5462 return vqsubs_s32(a, b); 5463// CHECK: sqsub {{s[0-9]+}}, {{s[0-9]+}}, {{s[0-9]+}} 5464} 5465 5466int64_t test_vqsubd_s64(int64_t a, int64_t b) { 5467// CHECK-LABEL: test_vqsubd_s64 5468 return vqsubd_s64(a, b); 5469// CHECK: sqsub {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 5470} 5471 5472uint8_t test_vqsubb_u8(uint8_t a, uint8_t b) { 5473// CHECK-LABEL: test_vqsubb_u8 5474 return vqsubb_u8(a, b); 5475// CHECK: uqsub {{b[0-9]+|v[0-9]+.8b}}, {{b[0-9]+|v[0-9]+.8b}}, {{b[0-9]+|v[0-9]+.8b}} 5476} 5477 5478uint16_t test_vqsubh_u16(uint16_t a, uint16_t b) { 5479// CHECK-LABEL: test_vqsubh_u16 5480 return vqsubh_u16(a, b); 5481// CHECK: uqsub {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}} 5482} 5483 5484uint32_t test_vqsubs_u32(uint32_t a, uint32_t b) { 5485// CHECK-LABEL: test_vqsubs_u32 5486 return vqsubs_u32(a, b); 5487// CHECK: uqsub {{s[0-9]+}}, {{s[0-9]+}}, {{s[0-9]+}} 5488} 5489 5490uint64_t test_vqsubd_u64(uint64_t a, uint64_t b) { 5491// CHECK-LABEL: test_vqsubd_u64 5492 return vqsubd_u64(a, b); 5493// CHECK: uqsub {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 5494} 5495 5496int64_t test_vshld_s64(int64_t a, int64_t b) { 5497// CHECK-LABEL: test_vshld_s64 5498 return vshld_s64(a, b); 5499// CHECK: sshl {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 5500} 5501 5502uint64_t test_vshld_u64(uint64_t a, uint64_t b) { 5503// CHECK-LABEL: test_vshld_u64 5504 return vshld_u64(a, b); 5505// CHECK: ushl {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 5506} 5507 5508// CHECK-LABEL: test_vqshlb_s8 5509int8_t test_vqshlb_s8(int8_t a, int8_t b) { 5510 return vqshlb_s8(a, b); 5511// CHECK: sqshl {{b[0-9]+|v[0-9]+.8b}}, {{b[0-9]+|v[0-9]+.8b}}, {{b[0-9]+|v[0-9]+.8b}} 5512} 5513 5514// CHECK-LABEL: test_vqshlh_s16 5515int16_t test_vqshlh_s16(int16_t a, int16_t b) { 5516 return vqshlh_s16(a, b); 5517// CHECK: sqshl {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}} 5518} 5519 5520// CHECK-LABEL: test_vqshls_s32 5521int32_t test_vqshls_s32(int32_t a, int32_t b) { 5522 return vqshls_s32(a, b); 5523// CHECK: sqshl {{s[0-9]+}}, {{s[0-9]+}}, {{s[0-9]+}} 5524} 5525 5526// CHECK-LABEL: test_vqshld_s64 5527int64_t test_vqshld_s64(int64_t a, int64_t b) { 5528 return vqshld_s64(a, b); 5529// CHECK: sqshl {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 5530} 5531 5532// CHECK-LABEL: test_vqshlb_u8 5533uint8_t test_vqshlb_u8(uint8_t a, uint8_t b) { 5534 return vqshlb_u8(a, b); 5535// CHECK: uqshl {{b[0-9]+|v[0-9]+.8b}}, {{b[0-9]+|v[0-9]+.8b}}, {{b[0-9]+|v[0-9]+.8b}} 5536} 5537 5538// CHECK-LABEL: test_vqshlh_u16 5539uint16_t test_vqshlh_u16(uint16_t a, uint16_t b) { 5540 return vqshlh_u16(a, b); 5541// CHECK: uqshl {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}} 5542} 5543 5544// CHECK-LABEL: test_vqshls_u32 5545uint32_t test_vqshls_u32(uint32_t a, uint32_t b) { 5546 return vqshls_u32(a, b); 5547// CHECK: uqshl {{s[0-9]+}}, {{s[0-9]+}}, {{s[0-9]+}} 5548} 5549 5550// CHECK-LABEL: test_vqshld_u64 5551uint64_t test_vqshld_u64(uint64_t a, uint64_t b) { 5552 return vqshld_u64(a, b); 5553// CHECK: uqshl {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 5554} 5555 5556// CHECK-LABEL: test_vrshld_s64 5557int64_t test_vrshld_s64(int64_t a, int64_t b) { 5558 return vrshld_s64(a, b); 5559// CHECK: srshl {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 5560} 5561 5562 5563// CHECK-LABEL: test_vrshld_u64 5564uint64_t test_vrshld_u64(uint64_t a, uint64_t b) { 5565 return vrshld_u64(a, b); 5566// CHECK: urshl {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 5567} 5568 5569// CHECK-LABEL: test_vqrshlb_s8 5570int8_t test_vqrshlb_s8(int8_t a, int8_t b) { 5571 return vqrshlb_s8(a, b); 5572// CHECK: sqrshl {{b[0-9]+|v[0-9]+.8b}}, {{b[0-9]+|v[0-9]+.8b}}, {{b[0-9]+|v[0-9]+.8b}} 5573} 5574 5575// CHECK-LABEL: test_vqrshlh_s16 5576int16_t test_vqrshlh_s16(int16_t a, int16_t b) { 5577 return vqrshlh_s16(a, b); 5578// CHECK: sqrshl {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}} 5579} 5580 5581// CHECK-LABEL: test_vqrshls_s32 5582int32_t test_vqrshls_s32(int32_t a, int32_t b) { 5583 return vqrshls_s32(a, b); 5584// CHECK: sqrshl {{s[0-9]+}}, {{s[0-9]+}}, {{s[0-9]+}} 5585} 5586 5587// CHECK-LABEL: test_vqrshld_s64 5588int64_t test_vqrshld_s64(int64_t a, int64_t b) { 5589 return vqrshld_s64(a, b); 5590// CHECK: sqrshl {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 5591} 5592 5593// CHECK-LABEL: test_vqrshlb_u8 5594uint8_t test_vqrshlb_u8(uint8_t a, uint8_t b) { 5595 return vqrshlb_u8(a, b); 5596// CHECK: uqrshl {{b[0-9]+|v[0-9]+.8b}}, {{b[0-9]+|v[0-9]+.8b}}, {{b[0-9]+|v[0-9]+.8b}} 5597} 5598 5599// CHECK-LABEL: test_vqrshlh_u16 5600uint16_t test_vqrshlh_u16(uint16_t a, uint16_t b) { 5601 return vqrshlh_u16(a, b); 5602// CHECK: uqrshl {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}} 5603} 5604 5605// CHECK-LABEL: test_vqrshls_u32 5606uint32_t test_vqrshls_u32(uint32_t a, uint32_t b) { 5607 return vqrshls_u32(a, b); 5608// CHECK: uqrshl {{s[0-9]+}}, {{s[0-9]+}}, {{s[0-9]+}} 5609} 5610 5611// CHECK-LABEL: test_vqrshld_u64 5612uint64_t test_vqrshld_u64(uint64_t a, uint64_t b) { 5613 return vqrshld_u64(a, b); 5614// CHECK: uqrshl {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 5615} 5616 5617// CHECK-LABEL: test_vpaddd_s64 5618int64_t test_vpaddd_s64(int64x2_t a) { 5619 return vpaddd_s64(a); 5620// CHECK: addp {{d[0-9]+}}, {{v[0-9]+}}.2d 5621} 5622 5623// CHECK-LABEL: test_vpadds_f32 5624float32_t test_vpadds_f32(float32x2_t a) { 5625 return vpadds_f32(a); 5626// CHECK: faddp {{s[0-9]+}}, {{v[0-9]+}}.2s 5627} 5628 5629// CHECK-LABEL: test_vpaddd_f64 5630float64_t test_vpaddd_f64(float64x2_t a) { 5631 return vpaddd_f64(a); 5632// CHECK: faddp {{d[0-9]+}}, {{v[0-9]+}}.2d 5633} 5634 5635// CHECK-LABEL: test_vpmaxnms_f32 5636float32_t test_vpmaxnms_f32(float32x2_t a) { 5637 return vpmaxnms_f32(a); 5638// CHECK: fmaxnmp {{s[0-9]+}}, {{v[0-9]+}}.2s 5639} 5640 5641// CHECK-LABEL: test_vpmaxnmqd_f64 5642float64_t test_vpmaxnmqd_f64(float64x2_t a) { 5643 return vpmaxnmqd_f64(a); 5644// CHECK: fmaxnmp {{d[0-9]+}}, {{v[0-9]+}}.2d 5645} 5646 5647// CHECK-LABEL: test_vpmaxs_f32 5648float32_t test_vpmaxs_f32(float32x2_t a) { 5649 return vpmaxs_f32(a); 5650// CHECK: fmaxp {{s[0-9]+}}, {{v[0-9]+}}.2s 5651} 5652 5653// CHECK-LABEL: test_vpmaxqd_f64 5654float64_t test_vpmaxqd_f64(float64x2_t a) { 5655 return vpmaxqd_f64(a); 5656// CHECK: fmaxp {{d[0-9]+}}, {{v[0-9]+}}.2d 5657} 5658 5659// CHECK-LABEL: test_vpminnms_f32 5660float32_t test_vpminnms_f32(float32x2_t a) { 5661 return vpminnms_f32(a); 5662// CHECK: fminnmp {{s[0-9]+}}, {{v[0-9]+}}.2s 5663} 5664 5665// CHECK-LABEL: test_vpminnmqd_f64 5666float64_t test_vpminnmqd_f64(float64x2_t a) { 5667 return vpminnmqd_f64(a); 5668// CHECK: fminnmp {{d[0-9]+}}, {{v[0-9]+}}.2d 5669} 5670 5671// CHECK-LABEL: test_vpmins_f32 5672float32_t test_vpmins_f32(float32x2_t a) { 5673 return vpmins_f32(a); 5674// CHECK: fminp {{s[0-9]+}}, {{v[0-9]+}}.2s 5675} 5676 5677// CHECK-LABEL: test_vpminqd_f64 5678float64_t test_vpminqd_f64(float64x2_t a) { 5679 return vpminqd_f64(a); 5680// CHECK: fminp {{d[0-9]+}}, {{v[0-9]+}}.2d 5681} 5682 5683int16_t test_vqdmulhh_s16(int16_t a, int16_t b) { 5684// CHECK-LABEL: test_vqdmulhh_s16 5685 return vqdmulhh_s16(a, b); 5686// CHECK: sqdmulh {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}} 5687} 5688 5689int32_t test_vqdmulhs_s32(int32_t a, int32_t b) { 5690// CHECK-LABEL: test_vqdmulhs_s32 5691 return vqdmulhs_s32(a, b); 5692// CHECK: sqdmulh {{s[0-9]+}}, {{s[0-9]+}}, {{s[0-9]+}} 5693} 5694 5695int16_t test_vqrdmulhh_s16(int16_t a, int16_t b) { 5696// CHECK-LABEL: test_vqrdmulhh_s16 5697 return vqrdmulhh_s16(a, b); 5698// CHECK: sqrdmulh {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}} 5699} 5700 5701int32_t test_vqrdmulhs_s32(int32_t a, int32_t b) { 5702// CHECK-LABEL: test_vqrdmulhs_s32 5703 return vqrdmulhs_s32(a, b); 5704// CHECK: sqrdmulh {{s[0-9]+}}, {{s[0-9]+}}, {{s[0-9]+}} 5705} 5706 5707float32_t test_vmulxs_f32(float32_t a, float32_t b) { 5708// CHECK-LABEL: test_vmulxs_f32 5709 return vmulxs_f32(a, b); 5710// CHECK: fmulx {{s[0-9]+}}, {{s[0-9]+}}, {{s[0-9]+}} 5711} 5712 5713float64_t test_vmulxd_f64(float64_t a, float64_t b) { 5714// CHECK-LABEL: test_vmulxd_f64 5715 return vmulxd_f64(a, b); 5716// CHECK: fmulx {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 5717} 5718 5719float64x1_t test_vmulx_f64(float64x1_t a, float64x1_t b) { 5720// CHECK-LABEL: test_vmulx_f64 5721 return vmulx_f64(a, b); 5722// CHECK: fmulx {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 5723} 5724 5725float32_t test_vrecpss_f32(float32_t a, float32_t b) { 5726// CHECK-LABEL: test_vrecpss_f32 5727 return vrecpss_f32(a, b); 5728// CHECK: frecps {{s[0-9]+}}, {{s[0-9]+}}, {{s[0-9]+}} 5729} 5730 5731float64_t test_vrecpsd_f64(float64_t a, float64_t b) { 5732// CHECK-LABEL: test_vrecpsd_f64 5733 return vrecpsd_f64(a, b); 5734// CHECK: frecps {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 5735} 5736 5737float32_t test_vrsqrtss_f32(float32_t a, float32_t b) { 5738// CHECK-LABEL: test_vrsqrtss_f32 5739 return vrsqrtss_f32(a, b); 5740// CHECK: frsqrts {{s[0-9]+}}, {{s[0-9]+}}, {{s[0-9]+}} 5741} 5742 5743float64_t test_vrsqrtsd_f64(float64_t a, float64_t b) { 5744// CHECK-LABEL: test_vrsqrtsd_f64 5745 return vrsqrtsd_f64(a, b); 5746// CHECK: frsqrts {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 5747} 5748 5749float32_t test_vcvts_f32_s32(int32_t a) { 5750// CHECK-LABEL: test_vcvts_f32_s32 5751// CHECK: scvtf {{s[0-9]+}}, {{[ws][0-9]+}} 5752 return vcvts_f32_s32(a); 5753} 5754 5755float64_t test_vcvtd_f64_s64(int64_t a) { 5756// CHECK-LABEL: test_vcvtd_f64_s64 5757// CHECK: scvtf {{d[0-9]+}}, {{[dx][0-9]+}} 5758 return vcvtd_f64_s64(a); 5759} 5760 5761float32_t test_vcvts_f32_u32(uint32_t a) { 5762// CHECK-LABEL: test_vcvts_f32_u32 5763// CHECK: ucvtf {{s[0-9]+}}, {{[ws][0-9]+}} 5764 return vcvts_f32_u32(a); 5765} 5766 5767float64_t test_vcvtd_f64_u64(uint64_t a) { 5768// CHECK-LABEL: test_vcvtd_f64_u64 5769// CHECK: ucvtf {{d[0-9]+}}, {{[xd][0-9]+}} 5770 return vcvtd_f64_u64(a); 5771} 5772 5773float32_t test_vrecpes_f32(float32_t a) { 5774// CHECK-LABEL: test_vrecpes_f32 5775// CHECK: frecpe {{s[0-9]+}}, {{s[0-9]+}} 5776 return vrecpes_f32(a); 5777} 5778 5779float64_t test_vrecped_f64(float64_t a) { 5780// CHECK-LABEL: test_vrecped_f64 5781// CHECK: frecpe {{d[0-9]+}}, {{d[0-9]+}} 5782 return vrecped_f64(a); 5783} 5784 5785float32_t test_vrecpxs_f32(float32_t a) { 5786// CHECK-LABEL: test_vrecpxs_f32 5787// CHECK: frecpx {{s[0-9]+}}, {{s[0-9]+}} 5788 return vrecpxs_f32(a); 5789 } 5790 5791float64_t test_vrecpxd_f64(float64_t a) { 5792// CHECK-LABEL: test_vrecpxd_f64 5793// CHECK: frecpx {{d[0-9]+}}, {{d[0-9]+}} 5794 return vrecpxd_f64(a); 5795} 5796 5797uint32x2_t test_vrsqrte_u32(uint32x2_t a) { 5798// CHECK-LABEL: test_vrsqrte_u32 5799// CHECK: ursqrte {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 5800 return vrsqrte_u32(a); 5801} 5802 5803uint32x4_t test_vrsqrteq_u32(uint32x4_t a) { 5804// CHECK-LABEL: test_vrsqrteq_u32 5805// CHECK: ursqrte {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 5806 return vrsqrteq_u32(a); 5807} 5808 5809float32_t test_vrsqrtes_f32(float32_t a) { 5810// CHECK: vrsqrtes_f32 5811// CHECK: frsqrte {{s[0-9]+}}, {{s[0-9]+}} 5812 return vrsqrtes_f32(a); 5813} 5814 5815float64_t test_vrsqrted_f64(float64_t a) { 5816// CHECK: vrsqrted_f64 5817// CHECK: frsqrte {{d[0-9]+}}, {{d[0-9]+}} 5818 return vrsqrted_f64(a); 5819} 5820 5821uint8x16_t test_vld1q_u8(uint8_t const *a) { 5822 // CHECK-LABEL: test_vld1q_u8 5823 return vld1q_u8(a); 5824 // CHECK: {{ld1 { v[0-9]+.16b }|ldr q[0-9]+}}, [{{x[0-9]+|sp}}] 5825} 5826 5827uint16x8_t test_vld1q_u16(uint16_t const *a) { 5828 // CHECK-LABEL: test_vld1q_u16 5829 return vld1q_u16(a); 5830 // CHECK: {{ld1 { v[0-9]+.8h }|ldr q[0-9]+}}, [{{x[0-9]+|sp}}] 5831} 5832 5833uint32x4_t test_vld1q_u32(uint32_t const *a) { 5834 // CHECK-LABEL: test_vld1q_u32 5835 return vld1q_u32(a); 5836 // CHECK: {{ld1 { v[0-9]+.4s }|ldr q[0-9]+}}, [{{x[0-9]+|sp}}] 5837} 5838 5839uint64x2_t test_vld1q_u64(uint64_t const *a) { 5840 // CHECK-LABEL: test_vld1q_u64 5841 return vld1q_u64(a); 5842 // CHECK: {{ld1 { v[0-9]+.2d }|ldr q[0-9]+}}, [{{x[0-9]+|sp}}] 5843} 5844 5845int8x16_t test_vld1q_s8(int8_t const *a) { 5846 // CHECK-LABEL: test_vld1q_s8 5847 return vld1q_s8(a); 5848 // CHECK: {{ld1 { v[0-9]+.16b }|ldr q[0-9]+}}, [{{x[0-9]+|sp}}] 5849} 5850 5851int16x8_t test_vld1q_s16(int16_t const *a) { 5852 // CHECK-LABEL: test_vld1q_s16 5853 return vld1q_s16(a); 5854 // CHECK: {{ld1 { v[0-9]+.8h }|ldr q[0-9]+}}, [{{x[0-9]+|sp}}] 5855} 5856 5857int32x4_t test_vld1q_s32(int32_t const *a) { 5858 // CHECK-LABEL: test_vld1q_s32 5859 return vld1q_s32(a); 5860 // CHECK: {{ld1 { v[0-9]+.4s }|ldr q[0-9]+}}, [{{x[0-9]+|sp}}] 5861} 5862 5863int64x2_t test_vld1q_s64(int64_t const *a) { 5864 // CHECK-LABEL: test_vld1q_s64 5865 return vld1q_s64(a); 5866 // CHECK: {{ld1 { v[0-9]+.2d }|ldr q[0-9]+}}, [{{x[0-9]+|sp}}] 5867} 5868 5869float16x8_t test_vld1q_f16(float16_t const *a) { 5870 // CHECK-LABEL: test_vld1q_f16 5871 return vld1q_f16(a); 5872 // CHECK: {{ld1 { v[0-9]+.8h }|ldr q[0-9]+}}, [{{x[0-9]+|sp}}] 5873} 5874 5875float32x4_t test_vld1q_f32(float32_t const *a) { 5876 // CHECK-LABEL: test_vld1q_f32 5877 return vld1q_f32(a); 5878 // CHECK: {{ld1 { v[0-9]+.4s }|ldr q[0-9]+}}, [{{x[0-9]+|sp}}] 5879} 5880 5881float64x2_t test_vld1q_f64(float64_t const *a) { 5882 // CHECK-LABEL: test_vld1q_f64 5883 return vld1q_f64(a); 5884 // CHECK: {{ld1 { v[0-9]+.2d }|ldr q[0-9]+}}, [{{x[0-9]+|sp}}] 5885} 5886 5887poly8x16_t test_vld1q_p8(poly8_t const *a) { 5888 // CHECK-LABEL: test_vld1q_p8 5889 return vld1q_p8(a); 5890 // CHECK: {{ld1 { v[0-9]+.16b }|ldr q[0-9]+}}, [{{x[0-9]+|sp}}] 5891} 5892 5893poly16x8_t test_vld1q_p16(poly16_t const *a) { 5894 // CHECK-LABEL: test_vld1q_p16 5895 return vld1q_p16(a); 5896 // CHECK: {{ld1 { v[0-9]+.8h }|ldr q[0-9]+}}, [{{x[0-9]+|sp}}] 5897} 5898 5899uint8x8_t test_vld1_u8(uint8_t const *a) { 5900 // CHECK-LABEL: test_vld1_u8 5901 return vld1_u8(a); 5902 // CHECK: {{ld1 { v[0-9]+.8b }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}] 5903} 5904 5905uint16x4_t test_vld1_u16(uint16_t const *a) { 5906 // CHECK-LABEL: test_vld1_u16 5907 return vld1_u16(a); 5908 // CHECK: {{ld1 { v[0-9]+.4h }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}] 5909} 5910 5911uint32x2_t test_vld1_u32(uint32_t const *a) { 5912 // CHECK-LABEL: test_vld1_u32 5913 return vld1_u32(a); 5914 // CHECK: {{ld1 { v[0-9]+.2s }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}] 5915} 5916 5917uint64x1_t test_vld1_u64(uint64_t const *a) { 5918 // CHECK-LABEL: test_vld1_u64 5919 return vld1_u64(a); 5920 // CHECK: {{ld1 { v[0-9]+.1d }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}] 5921} 5922 5923int8x8_t test_vld1_s8(int8_t const *a) { 5924 // CHECK-LABEL: test_vld1_s8 5925 return vld1_s8(a); 5926 // CHECK: {{ld1 { v[0-9]+.8b }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}] 5927} 5928 5929int16x4_t test_vld1_s16(int16_t const *a) { 5930 // CHECK-LABEL: test_vld1_s16 5931 return vld1_s16(a); 5932 // CHECK: {{ld1 { v[0-9]+.4h }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}] 5933} 5934 5935int32x2_t test_vld1_s32(int32_t const *a) { 5936 // CHECK-LABEL: test_vld1_s32 5937 return vld1_s32(a); 5938 // CHECK: {{ld1 { v[0-9]+.2s }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}] 5939} 5940 5941int64x1_t test_vld1_s64(int64_t const *a) { 5942 // CHECK-LABEL: test_vld1_s64 5943 return vld1_s64(a); 5944 // CHECK: {{ld1 { v[0-9]+.1d }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}] 5945} 5946 5947float16x4_t test_vld1_f16(float16_t const *a) { 5948 // CHECK-LABEL: test_vld1_f16 5949 return vld1_f16(a); 5950 // CHECK: {{ld1 { v[0-9]+.4h }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}] 5951} 5952 5953float32x2_t test_vld1_f32(float32_t const *a) { 5954 // CHECK-LABEL: test_vld1_f32 5955 return vld1_f32(a); 5956 // CHECK: {{ld1 { v[0-9]+.2s }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}] 5957} 5958 5959float64x1_t test_vld1_f64(float64_t const *a) { 5960 // CHECK-LABEL: test_vld1_f64 5961 return vld1_f64(a); 5962 // CHECK: {{ld1 { v[0-9]+.1d }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}] 5963} 5964 5965poly8x8_t test_vld1_p8(poly8_t const *a) { 5966 // CHECK-LABEL: test_vld1_p8 5967 return vld1_p8(a); 5968 // CHECK: {{ld1 { v[0-9]+.8b }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}] 5969} 5970 5971poly16x4_t test_vld1_p16(poly16_t const *a) { 5972 // CHECK-LABEL: test_vld1_p16 5973 return vld1_p16(a); 5974 // CHECK: {{ld1 { v[0-9]+.4h }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}] 5975} 5976 5977uint8x16x2_t test_vld2q_u8(uint8_t const *a) { 5978 // CHECK-LABEL: test_vld2q_u8 5979 return vld2q_u8(a); 5980 // CHECK: ld2 {{{ ?v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 5981} 5982 5983uint16x8x2_t test_vld2q_u16(uint16_t const *a) { 5984 // CHECK-LABEL: test_vld2q_u16 5985 return vld2q_u16(a); 5986 // CHECK: ld2 {{{ ?v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 5987} 5988 5989uint32x4x2_t test_vld2q_u32(uint32_t const *a) { 5990 // CHECK-LABEL: test_vld2q_u32 5991 return vld2q_u32(a); 5992 // CHECK: ld2 {{{ ?v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 5993} 5994 5995uint64x2x2_t test_vld2q_u64(uint64_t const *a) { 5996 // CHECK-LABEL: test_vld2q_u64 5997 return vld2q_u64(a); 5998 // CHECK: ld2 {{{ ?v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 5999} 6000 6001int8x16x2_t test_vld2q_s8(int8_t const *a) { 6002 // CHECK-LABEL: test_vld2q_s8 6003 return vld2q_s8(a); 6004 // CHECK: ld2 {{{ ?v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 6005} 6006 6007int16x8x2_t test_vld2q_s16(int16_t const *a) { 6008 // CHECK-LABEL: test_vld2q_s16 6009 return vld2q_s16(a); 6010 // CHECK: ld2 {{{ ?v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 6011} 6012 6013int32x4x2_t test_vld2q_s32(int32_t const *a) { 6014 // CHECK-LABEL: test_vld2q_s32 6015 return vld2q_s32(a); 6016 // CHECK: ld2 {{{ ?v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 6017} 6018 6019int64x2x2_t test_vld2q_s64(int64_t const *a) { 6020 // CHECK-LABEL: test_vld2q_s64 6021 return vld2q_s64(a); 6022 // CHECK: ld2 {{{ ?v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 6023} 6024 6025float16x8x2_t test_vld2q_f16(float16_t const *a) { 6026 // CHECK-LABEL: test_vld2q_f16 6027 return vld2q_f16(a); 6028 // CHECK: ld2 {{{ ?v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 6029} 6030 6031float32x4x2_t test_vld2q_f32(float32_t const *a) { 6032 // CHECK-LABEL: test_vld2q_f32 6033 return vld2q_f32(a); 6034 // CHECK: ld2 {{{ ?v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 6035} 6036 6037float64x2x2_t test_vld2q_f64(float64_t const *a) { 6038 // CHECK-LABEL: test_vld2q_f64 6039 return vld2q_f64(a); 6040 // CHECK: ld2 {{{ ?v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 6041} 6042 6043poly8x16x2_t test_vld2q_p8(poly8_t const *a) { 6044 // CHECK-LABEL: test_vld2q_p8 6045 return vld2q_p8(a); 6046 // CHECK: ld2 {{{ ?v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 6047} 6048 6049poly16x8x2_t test_vld2q_p16(poly16_t const *a) { 6050 // CHECK-LABEL: test_vld2q_p16 6051 return vld2q_p16(a); 6052 // CHECK: ld2 {{{ ?v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 6053} 6054 6055uint8x8x2_t test_vld2_u8(uint8_t const *a) { 6056 // CHECK-LABEL: test_vld2_u8 6057 return vld2_u8(a); 6058 // CHECK: ld2 {{{ ?v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 6059} 6060 6061uint16x4x2_t test_vld2_u16(uint16_t const *a) { 6062 // CHECK-LABEL: test_vld2_u16 6063 return vld2_u16(a); 6064 // CHECK: ld2 {{{ ?v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 6065} 6066 6067uint32x2x2_t test_vld2_u32(uint32_t const *a) { 6068 // CHECK-LABEL: test_vld2_u32 6069 return vld2_u32(a); 6070 // CHECK: ld2 {{{ ?v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 6071} 6072 6073uint64x1x2_t test_vld2_u64(uint64_t const *a) { 6074 // CHECK-LABEL: test_vld2_u64 6075 return vld2_u64(a); 6076 // CHECK: {{ld1|ld2}} {{{ ?v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 6077} 6078 6079int8x8x2_t test_vld2_s8(int8_t const *a) { 6080 // CHECK-LABEL: test_vld2_s8 6081 return vld2_s8(a); 6082 // CHECK: ld2 {{{ ?v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 6083} 6084 6085int16x4x2_t test_vld2_s16(int16_t const *a) { 6086 // CHECK-LABEL: test_vld2_s16 6087 return vld2_s16(a); 6088 // CHECK: ld2 {{{ ?v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 6089} 6090 6091int32x2x2_t test_vld2_s32(int32_t const *a) { 6092 // CHECK-LABEL: test_vld2_s32 6093 return vld2_s32(a); 6094 // CHECK: ld2 {{{ ?v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 6095} 6096 6097int64x1x2_t test_vld2_s64(int64_t const *a) { 6098 // CHECK-LABEL: test_vld2_s64 6099 return vld2_s64(a); 6100 // CHECK: {{ld1|ld2}} {{{ ?v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 6101} 6102 6103float16x4x2_t test_vld2_f16(float16_t const *a) { 6104 // CHECK-LABEL: test_vld2_f16 6105 return vld2_f16(a); 6106 // CHECK: ld2 {{{ ?v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 6107} 6108 6109float32x2x2_t test_vld2_f32(float32_t const *a) { 6110 // CHECK-LABEL: test_vld2_f32 6111 return vld2_f32(a); 6112 // CHECK: ld2 {{{ ?v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 6113} 6114 6115float64x1x2_t test_vld2_f64(float64_t const *a) { 6116 // CHECK-LABEL: test_vld2_f64 6117 return vld2_f64(a); 6118 // CHECK: {{ld1|ld2}} {{{ ?v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 6119} 6120 6121poly8x8x2_t test_vld2_p8(poly8_t const *a) { 6122 // CHECK-LABEL: test_vld2_p8 6123 return vld2_p8(a); 6124 // CHECK: ld2 {{{ ?v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 6125} 6126 6127poly16x4x2_t test_vld2_p16(poly16_t const *a) { 6128 // CHECK-LABEL: test_vld2_p16 6129 return vld2_p16(a); 6130 // CHECK: ld2 {{{ ?v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 6131} 6132 6133uint8x16x3_t test_vld3q_u8(uint8_t const *a) { 6134 // CHECK-LABEL: test_vld3q_u8 6135 return vld3q_u8(a); 6136 // CHECK: ld3 {{{ ?v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 6137} 6138 6139uint16x8x3_t test_vld3q_u16(uint16_t const *a) { 6140 // CHECK-LABEL: test_vld3q_u16 6141 return vld3q_u16(a); 6142 // CHECK: ld3 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 6143} 6144 6145uint32x4x3_t test_vld3q_u32(uint32_t const *a) { 6146 // CHECK-LABEL: test_vld3q_u32 6147 return vld3q_u32(a); 6148 // CHECK: ld3 {{{ ?v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 6149} 6150 6151uint64x2x3_t test_vld3q_u64(uint64_t const *a) { 6152 // CHECK-LABEL: test_vld3q_u64 6153 return vld3q_u64(a); 6154 // CHECK: ld3 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 6155} 6156 6157int8x16x3_t test_vld3q_s8(int8_t const *a) { 6158 // CHECK-LABEL: test_vld3q_s8 6159 return vld3q_s8(a); 6160 // CHECK: ld3 {{{ ?v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 6161} 6162 6163int16x8x3_t test_vld3q_s16(int16_t const *a) { 6164 // CHECK-LABEL: test_vld3q_s16 6165 return vld3q_s16(a); 6166 // CHECK: ld3 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 6167} 6168 6169int32x4x3_t test_vld3q_s32(int32_t const *a) { 6170 // CHECK-LABEL: test_vld3q_s32 6171 return vld3q_s32(a); 6172 // CHECK: ld3 {{{ ?v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 6173} 6174 6175int64x2x3_t test_vld3q_s64(int64_t const *a) { 6176 // CHECK-LABEL: test_vld3q_s64 6177 return vld3q_s64(a); 6178 // CHECK: ld3 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 6179} 6180 6181float16x8x3_t test_vld3q_f16(float16_t const *a) { 6182 // CHECK-LABEL: test_vld3q_f16 6183 return vld3q_f16(a); 6184 // CHECK: ld3 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 6185} 6186 6187float32x4x3_t test_vld3q_f32(float32_t const *a) { 6188 // CHECK-LABEL: test_vld3q_f32 6189 return vld3q_f32(a); 6190 // CHECK: ld3 {{{ ?v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 6191} 6192 6193float64x2x3_t test_vld3q_f64(float64_t const *a) { 6194 // CHECK-LABEL: test_vld3q_f64 6195 return vld3q_f64(a); 6196 // CHECK: ld3 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 6197} 6198 6199poly8x16x3_t test_vld3q_p8(poly8_t const *a) { 6200 // CHECK-LABEL: test_vld3q_p8 6201 return vld3q_p8(a); 6202 // CHECK: ld3 {{{ ?v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 6203} 6204 6205poly16x8x3_t test_vld3q_p16(poly16_t const *a) { 6206 // CHECK-LABEL: test_vld3q_p16 6207 return vld3q_p16(a); 6208 // CHECK: ld3 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 6209} 6210 6211uint8x8x3_t test_vld3_u8(uint8_t const *a) { 6212 // CHECK-LABEL: test_vld3_u8 6213 return vld3_u8(a); 6214 // CHECK: ld3 {{{ ?v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 6215} 6216 6217uint16x4x3_t test_vld3_u16(uint16_t const *a) { 6218 // CHECK-LABEL: test_vld3_u16 6219 return vld3_u16(a); 6220 // CHECK: ld3 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 6221} 6222 6223uint32x2x3_t test_vld3_u32(uint32_t const *a) { 6224 // CHECK-LABEL: test_vld3_u32 6225 return vld3_u32(a); 6226 // CHECK: ld3 {{{ ?v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 6227} 6228 6229uint64x1x3_t test_vld3_u64(uint64_t const *a) { 6230 // CHECK-LABEL: test_vld3_u64 6231 return vld3_u64(a); 6232 // CHECK: {{ld1|ld3}} {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 6233} 6234 6235int8x8x3_t test_vld3_s8(int8_t const *a) { 6236 // CHECK-LABEL: test_vld3_s8 6237 return vld3_s8(a); 6238 // CHECK: ld3 {{{ ?v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 6239} 6240 6241int16x4x3_t test_vld3_s16(int16_t const *a) { 6242 // CHECK-LABEL: test_vld3_s16 6243 return vld3_s16(a); 6244 // CHECK: ld3 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 6245} 6246 6247int32x2x3_t test_vld3_s32(int32_t const *a) { 6248 // CHECK-LABEL: test_vld3_s32 6249 return vld3_s32(a); 6250 // CHECK: ld3 {{{ ?v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 6251} 6252 6253int64x1x3_t test_vld3_s64(int64_t const *a) { 6254 // CHECK-LABEL: test_vld3_s64 6255 return vld3_s64(a); 6256 // CHECK: {{ld1|ld3}} {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 6257} 6258 6259float16x4x3_t test_vld3_f16(float16_t const *a) { 6260 // CHECK-LABEL: test_vld3_f16 6261 return vld3_f16(a); 6262 // CHECK: ld3 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 6263} 6264 6265float32x2x3_t test_vld3_f32(float32_t const *a) { 6266 // CHECK-LABEL: test_vld3_f32 6267 return vld3_f32(a); 6268 // CHECK: ld3 {{{ ?v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 6269} 6270 6271float64x1x3_t test_vld3_f64(float64_t const *a) { 6272 // CHECK-LABEL: test_vld3_f64 6273 return vld3_f64(a); 6274 // CHECK: {{ld1|ld3}} {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 6275} 6276 6277poly8x8x3_t test_vld3_p8(poly8_t const *a) { 6278 // CHECK-LABEL: test_vld3_p8 6279 return vld3_p8(a); 6280 // CHECK: ld3 {{{ ?v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 6281} 6282 6283poly16x4x3_t test_vld3_p16(poly16_t const *a) { 6284 // CHECK-LABEL: test_vld3_p16 6285 return vld3_p16(a); 6286 // CHECK: ld3 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 6287} 6288 6289uint8x16x4_t test_vld4q_u8(uint8_t const *a) { 6290 // CHECK-LABEL: test_vld4q_u8 6291 return vld4q_u8(a); 6292 // CHECK: ld4 {{{ ?v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 6293} 6294 6295uint16x8x4_t test_vld4q_u16(uint16_t const *a) { 6296 // CHECK-LABEL: test_vld4q_u16 6297 return vld4q_u16(a); 6298 // CHECK: ld4 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 6299} 6300 6301uint32x4x4_t test_vld4q_u32(uint32_t const *a) { 6302 // CHECK-LABEL: test_vld4q_u32 6303 return vld4q_u32(a); 6304 // CHECK: ld4 {{{ ?v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 6305} 6306 6307uint64x2x4_t test_vld4q_u64(uint64_t const *a) { 6308 // CHECK-LABEL: test_vld4q_u64 6309 return vld4q_u64(a); 6310 // CHECK: ld4 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 6311} 6312 6313int8x16x4_t test_vld4q_s8(int8_t const *a) { 6314 // CHECK-LABEL: test_vld4q_s8 6315 return vld4q_s8(a); 6316 // CHECK: ld4 {{{ ?v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 6317} 6318 6319int16x8x4_t test_vld4q_s16(int16_t const *a) { 6320 // CHECK-LABEL: test_vld4q_s16 6321 return vld4q_s16(a); 6322 // CHECK: ld4 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 6323} 6324 6325int32x4x4_t test_vld4q_s32(int32_t const *a) { 6326 // CHECK-LABEL: test_vld4q_s32 6327 return vld4q_s32(a); 6328 // CHECK: ld4 {{{ ?v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 6329} 6330 6331int64x2x4_t test_vld4q_s64(int64_t const *a) { 6332 // CHECK-LABEL: test_vld4q_s64 6333 return vld4q_s64(a); 6334 // CHECK: ld4 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 6335} 6336 6337float16x8x4_t test_vld4q_f16(float16_t const *a) { 6338 // CHECK-LABEL: test_vld4q_f16 6339 return vld4q_f16(a); 6340 // CHECK: ld4 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 6341} 6342 6343float32x4x4_t test_vld4q_f32(float32_t const *a) { 6344 // CHECK-LABEL: test_vld4q_f32 6345 return vld4q_f32(a); 6346 // CHECK: ld4 {{{ ?v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 6347} 6348 6349float64x2x4_t test_vld4q_f64(float64_t const *a) { 6350 // CHECK-LABEL: test_vld4q_f64 6351 return vld4q_f64(a); 6352 // CHECK: ld4 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 6353} 6354 6355poly8x16x4_t test_vld4q_p8(poly8_t const *a) { 6356 // CHECK-LABEL: test_vld4q_p8 6357 return vld4q_p8(a); 6358 // CHECK: ld4 {{{ ?v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 6359} 6360 6361poly16x8x4_t test_vld4q_p16(poly16_t const *a) { 6362 // CHECK-LABEL: test_vld4q_p16 6363 return vld4q_p16(a); 6364 // CHECK: ld4 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 6365} 6366 6367uint8x8x4_t test_vld4_u8(uint8_t const *a) { 6368 // CHECK-LABEL: test_vld4_u8 6369 return vld4_u8(a); 6370 // CHECK: ld4 {{{ ?v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 6371} 6372 6373uint16x4x4_t test_vld4_u16(uint16_t const *a) { 6374 // CHECK-LABEL: test_vld4_u16 6375 return vld4_u16(a); 6376 // CHECK: ld4 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 6377} 6378 6379uint32x2x4_t test_vld4_u32(uint32_t const *a) { 6380 // CHECK-LABEL: test_vld4_u32 6381 return vld4_u32(a); 6382 // CHECK: ld4 {{{ ?v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 6383} 6384 6385uint64x1x4_t test_vld4_u64(uint64_t const *a) { 6386 // CHECK-LABEL: test_vld4_u64 6387 return vld4_u64(a); 6388 // CHECK: {{ld1|ld4}} {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 6389} 6390 6391int8x8x4_t test_vld4_s8(int8_t const *a) { 6392 // CHECK-LABEL: test_vld4_s8 6393 return vld4_s8(a); 6394 // CHECK: ld4 {{{ ?v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 6395} 6396 6397int16x4x4_t test_vld4_s16(int16_t const *a) { 6398 // CHECK-LABEL: test_vld4_s16 6399 return vld4_s16(a); 6400 // CHECK: ld4 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 6401} 6402 6403int32x2x4_t test_vld4_s32(int32_t const *a) { 6404 // CHECK-LABEL: test_vld4_s32 6405 return vld4_s32(a); 6406 // CHECK: ld4 {{{ ?v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 6407} 6408 6409int64x1x4_t test_vld4_s64(int64_t const *a) { 6410 // CHECK-LABEL: test_vld4_s64 6411 return vld4_s64(a); 6412 // CHECK: {{ld1|ld4}} {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 6413} 6414 6415float16x4x4_t test_vld4_f16(float16_t const *a) { 6416 // CHECK-LABEL: test_vld4_f16 6417 return vld4_f16(a); 6418 // CHECK: ld4 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 6419} 6420 6421float32x2x4_t test_vld4_f32(float32_t const *a) { 6422 // CHECK-LABEL: test_vld4_f32 6423 return vld4_f32(a); 6424 // CHECK: ld4 {{{ ?v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 6425} 6426 6427float64x1x4_t test_vld4_f64(float64_t const *a) { 6428 // CHECK-LABEL: test_vld4_f64 6429 return vld4_f64(a); 6430 // CHECK: {{ld1|ld4}} {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 6431} 6432 6433poly8x8x4_t test_vld4_p8(poly8_t const *a) { 6434 // CHECK-LABEL: test_vld4_p8 6435 return vld4_p8(a); 6436 // CHECK: ld4 {{{ ?v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 6437} 6438 6439poly16x4x4_t test_vld4_p16(poly16_t const *a) { 6440 // CHECK-LABEL: test_vld4_p16 6441 return vld4_p16(a); 6442 // CHECK: ld4 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 6443} 6444 6445void test_vst1q_u8(uint8_t *a, uint8x16_t b) { 6446 // CHECK-LABEL: test_vst1q_u8 6447 vst1q_u8(a, b); 6448 // CHECK: {{st1 { v[0-9]+.16b }|str q[0-9]+}}, [{{x[0-9]+|sp}}] 6449} 6450 6451void test_vst1q_u16(uint16_t *a, uint16x8_t b) { 6452 // CHECK-LABEL: test_vst1q_u16 6453 vst1q_u16(a, b); 6454 // CHECK: {{st1 { v[0-9]+.8h }|str q[0-9]+}}, [{{x[0-9]+|sp}}] 6455} 6456 6457void test_vst1q_u32(uint32_t *a, uint32x4_t b) { 6458 // CHECK-LABEL: test_vst1q_u32 6459 vst1q_u32(a, b); 6460 // CHECK: {{st1 { v[0-9]+.4s }|str q[0-9]+}}, [{{x[0-9]+|sp}}] 6461} 6462 6463void test_vst1q_u64(uint64_t *a, uint64x2_t b) { 6464 // CHECK-LABEL: test_vst1q_u64 6465 vst1q_u64(a, b); 6466 // CHECK: {{st1 { v[0-9]+.2d }|str q[0-9]+}}, [{{x[0-9]+|sp}}] 6467} 6468 6469void test_vst1q_s8(int8_t *a, int8x16_t b) { 6470 // CHECK-LABEL: test_vst1q_s8 6471 vst1q_s8(a, b); 6472 // CHECK: {{st1 { v[0-9]+.16b }|str q[0-9]+}}, [{{x[0-9]+|sp}}] 6473} 6474 6475void test_vst1q_s16(int16_t *a, int16x8_t b) { 6476 // CHECK-LABEL: test_vst1q_s16 6477 vst1q_s16(a, b); 6478 // CHECK: {{st1 { v[0-9]+.8h }|str q[0-9]+}}, [{{x[0-9]+|sp}}] 6479} 6480 6481void test_vst1q_s32(int32_t *a, int32x4_t b) { 6482 // CHECK-LABEL: test_vst1q_s32 6483 vst1q_s32(a, b); 6484 // CHECK: {{st1 { v[0-9]+.4s }|str q[0-9]+}}, [{{x[0-9]+|sp}}] 6485} 6486 6487void test_vst1q_s64(int64_t *a, int64x2_t b) { 6488 // CHECK-LABEL: test_vst1q_s64 6489 vst1q_s64(a, b); 6490 // CHECK: {{st1 { v[0-9]+.2d }|str q[0-9]+}}, [{{x[0-9]+|sp}}] 6491} 6492 6493void test_vst1q_f16(float16_t *a, float16x8_t b) { 6494 // CHECK-LABEL: test_vst1q_f16 6495 vst1q_f16(a, b); 6496 // CHECK: {{st1 { v[0-9]+.8h }|str q[0-9]+}}, [{{x[0-9]+|sp}}] 6497} 6498 6499void test_vst1q_f32(float32_t *a, float32x4_t b) { 6500 // CHECK-LABEL: test_vst1q_f32 6501 vst1q_f32(a, b); 6502 // CHECK: {{st1 { v[0-9]+.4s }|str q[0-9]+}}, [{{x[0-9]+|sp}}] 6503} 6504 6505void test_vst1q_f64(float64_t *a, float64x2_t b) { 6506 // CHECK-LABEL: test_vst1q_f64 6507 vst1q_f64(a, b); 6508 // CHECK: {{st1 { v[0-9]+.2d }|str q[0-9]+}}, [{{x[0-9]+|sp}}] 6509} 6510 6511void test_vst1q_p8(poly8_t *a, poly8x16_t b) { 6512 // CHECK-LABEL: test_vst1q_p8 6513 vst1q_p8(a, b); 6514 // CHECK: {{st1 { v[0-9]+.16b }|str q[0-9]+}}, [{{x[0-9]+|sp}}] 6515} 6516 6517void test_vst1q_p16(poly16_t *a, poly16x8_t b) { 6518 // CHECK-LABEL: test_vst1q_p16 6519 vst1q_p16(a, b); 6520 // CHECK: {{st1 { v[0-9]+.8h }|str q[0-9]+}}, [{{x[0-9]+|sp}}] 6521} 6522 6523void test_vst1_u8(uint8_t *a, uint8x8_t b) { 6524 // CHECK-LABEL: test_vst1_u8 6525 vst1_u8(a, b); 6526 // CHECK: {{st1 { v[0-9]+.8b }|str d[0-9]+}}, [{{x[0-9]+|sp}}] 6527} 6528 6529void test_vst1_u16(uint16_t *a, uint16x4_t b) { 6530 // CHECK-LABEL: test_vst1_u16 6531 vst1_u16(a, b); 6532 // CHECK: {{st1 { v[0-9]+.4h }|str d[0-9]+}}, [{{x[0-9]+|sp}}] 6533} 6534 6535void test_vst1_u32(uint32_t *a, uint32x2_t b) { 6536 // CHECK-LABEL: test_vst1_u32 6537 vst1_u32(a, b); 6538 // CHECK: {{st1 { v[0-9]+.2s }|str d[0-9]+}}, [{{x[0-9]+|sp}}] 6539} 6540 6541void test_vst1_u64(uint64_t *a, uint64x1_t b) { 6542 // CHECK-LABEL: test_vst1_u64 6543 vst1_u64(a, b); 6544 // CHECK: {{st1 { v[0-9]+.1d }|str d[0-9]+}}, [{{x[0-9]+|sp}}] 6545} 6546 6547void test_vst1_s8(int8_t *a, int8x8_t b) { 6548 // CHECK-LABEL: test_vst1_s8 6549 vst1_s8(a, b); 6550 // CHECK: {{st1 { v[0-9]+.8b }|str d[0-9]+}}, [{{x[0-9]+|sp}}] 6551} 6552 6553void test_vst1_s16(int16_t *a, int16x4_t b) { 6554 // CHECK-LABEL: test_vst1_s16 6555 vst1_s16(a, b); 6556 // CHECK: {{st1 { v[0-9]+.4h }|str d[0-9]+}}, [{{x[0-9]+|sp}}] 6557} 6558 6559void test_vst1_s32(int32_t *a, int32x2_t b) { 6560 // CHECK-LABEL: test_vst1_s32 6561 vst1_s32(a, b); 6562 // CHECK: {{st1 { v[0-9]+.2s }|str d[0-9]+}}, [{{x[0-9]+|sp}}] 6563} 6564 6565void test_vst1_s64(int64_t *a, int64x1_t b) { 6566 // CHECK-LABEL: test_vst1_s64 6567 vst1_s64(a, b); 6568 // CHECK: {{st1 { v[0-9]+.1d }|str d[0-9]+}}, [{{x[0-9]+|sp}}] 6569} 6570 6571void test_vst1_f16(float16_t *a, float16x4_t b) { 6572 // CHECK-LABEL: test_vst1_f16 6573 vst1_f16(a, b); 6574 // CHECK: {{st1 { v[0-9]+.4h }|str d[0-9]+}}, [{{x[0-9]+|sp}}] 6575} 6576 6577void test_vst1_f32(float32_t *a, float32x2_t b) { 6578 // CHECK-LABEL: test_vst1_f32 6579 vst1_f32(a, b); 6580 // CHECK: {{st1 { v[0-9]+.2s }|str d[0-9]+}}, [{{x[0-9]+|sp}}] 6581} 6582 6583void test_vst1_f64(float64_t *a, float64x1_t b) { 6584 // CHECK-LABEL: test_vst1_f64 6585 vst1_f64(a, b); 6586 // CHECK: {{st1 { v[0-9]+.1d }|str d[0-9]+}}, [{{x[0-9]+|sp}}] 6587} 6588 6589void test_vst1_p8(poly8_t *a, poly8x8_t b) { 6590 // CHECK-LABEL: test_vst1_p8 6591 vst1_p8(a, b); 6592 // CHECK: {{st1 { v[0-9]+.8b }|str d[0-9]+}}, [{{x[0-9]+|sp}}] 6593} 6594 6595void test_vst1_p16(poly16_t *a, poly16x4_t b) { 6596 // CHECK-LABEL: test_vst1_p16 6597 vst1_p16(a, b); 6598 // CHECK: {{st1 { v[0-9]+.4h }|str d[0-9]+}}, [{{x[0-9]+|sp}}] 6599} 6600 6601void test_vst2q_u8(uint8_t *a, uint8x16x2_t b) { 6602 // CHECK-LABEL: test_vst2q_u8 6603 vst2q_u8(a, b); 6604 // CHECK: st2 {{{ ?v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 6605} 6606 6607void test_vst2q_u16(uint16_t *a, uint16x8x2_t b) { 6608 // CHECK-LABEL: test_vst2q_u16 6609 vst2q_u16(a, b); 6610 // CHECK: st2 {{{ ?v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 6611} 6612 6613void test_vst2q_u32(uint32_t *a, uint32x4x2_t b) { 6614 // CHECK-LABEL: test_vst2q_u32 6615 vst2q_u32(a, b); 6616 // CHECK: st2 {{{ ?v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 6617} 6618 6619void test_vst2q_u64(uint64_t *a, uint64x2x2_t b) { 6620 // CHECK-LABEL: test_vst2q_u64 6621 vst2q_u64(a, b); 6622 // CHECK: st2 {{{ ?v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 6623} 6624 6625void test_vst2q_s8(int8_t *a, int8x16x2_t b) { 6626 // CHECK-LABEL: test_vst2q_s8 6627 vst2q_s8(a, b); 6628 // CHECK: st2 {{{ ?v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 6629} 6630 6631void test_vst2q_s16(int16_t *a, int16x8x2_t b) { 6632 // CHECK-LABEL: test_vst2q_s16 6633 vst2q_s16(a, b); 6634 // CHECK: st2 {{{ ?v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 6635} 6636 6637void test_vst2q_s32(int32_t *a, int32x4x2_t b) { 6638 // CHECK-LABEL: test_vst2q_s32 6639 vst2q_s32(a, b); 6640 // CHECK: st2 {{{ ?v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 6641} 6642 6643void test_vst2q_s64(int64_t *a, int64x2x2_t b) { 6644 // CHECK-LABEL: test_vst2q_s64 6645 vst2q_s64(a, b); 6646 // CHECK: st2 {{{ ?v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 6647} 6648 6649void test_vst2q_f16(float16_t *a, float16x8x2_t b) { 6650 // CHECK-LABEL: test_vst2q_f16 6651 vst2q_f16(a, b); 6652 // CHECK: st2 {{{ ?v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 6653} 6654 6655void test_vst2q_f32(float32_t *a, float32x4x2_t b) { 6656 // CHECK-LABEL: test_vst2q_f32 6657 vst2q_f32(a, b); 6658 // CHECK: st2 {{{ ?v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 6659} 6660 6661void test_vst2q_f64(float64_t *a, float64x2x2_t b) { 6662 // CHECK-LABEL: test_vst2q_f64 6663 vst2q_f64(a, b); 6664 // CHECK: st2 {{{ ?v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 6665} 6666 6667void test_vst2q_p8(poly8_t *a, poly8x16x2_t b) { 6668 // CHECK-LABEL: test_vst2q_p8 6669 vst2q_p8(a, b); 6670 // CHECK: st2 {{{ ?v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 6671} 6672 6673void test_vst2q_p16(poly16_t *a, poly16x8x2_t b) { 6674 // CHECK-LABEL: test_vst2q_p16 6675 vst2q_p16(a, b); 6676 // CHECK: st2 {{{ ?v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 6677} 6678 6679void test_vst2_u8(uint8_t *a, uint8x8x2_t b) { 6680 // CHECK-LABEL: test_vst2_u8 6681 vst2_u8(a, b); 6682 // CHECK: st2 {{{ ?v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 6683} 6684 6685void test_vst2_u16(uint16_t *a, uint16x4x2_t b) { 6686 // CHECK-LABEL: test_vst2_u16 6687 vst2_u16(a, b); 6688 // CHECK: st2 {{{ ?v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 6689} 6690 6691void test_vst2_u32(uint32_t *a, uint32x2x2_t b) { 6692 // CHECK-LABEL: test_vst2_u32 6693 vst2_u32(a, b); 6694 // CHECK: st2 {{{ ?v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 6695} 6696 6697void test_vst2_u64(uint64_t *a, uint64x1x2_t b) { 6698 // CHECK-LABEL: test_vst2_u64 6699 vst2_u64(a, b); 6700 // CHECK: {{st1|st2}} {{{ ?v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 6701} 6702 6703void test_vst2_s8(int8_t *a, int8x8x2_t b) { 6704 // CHECK-LABEL: test_vst2_s8 6705 vst2_s8(a, b); 6706 // CHECK: st2 {{{ ?v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 6707} 6708 6709void test_vst2_s16(int16_t *a, int16x4x2_t b) { 6710 // CHECK-LABEL: test_vst2_s16 6711 vst2_s16(a, b); 6712 // CHECK: st2 {{{ ?v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 6713} 6714 6715void test_vst2_s32(int32_t *a, int32x2x2_t b) { 6716 // CHECK-LABEL: test_vst2_s32 6717 vst2_s32(a, b); 6718 // CHECK: st2 {{{ ?v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 6719} 6720 6721void test_vst2_s64(int64_t *a, int64x1x2_t b) { 6722 // CHECK-LABEL: test_vst2_s64 6723 vst2_s64(a, b); 6724 // CHECK: {{st1|st2}} {{{ ?v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 6725} 6726 6727void test_vst2_f16(float16_t *a, float16x4x2_t b) { 6728 // CHECK-LABEL: test_vst2_f16 6729 vst2_f16(a, b); 6730 // CHECK: st2 {{{ ?v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 6731} 6732 6733void test_vst2_f32(float32_t *a, float32x2x2_t b) { 6734 // CHECK-LABEL: test_vst2_f32 6735 vst2_f32(a, b); 6736 // CHECK: st2 {{{ ?v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 6737} 6738 6739void test_vst2_f64(float64_t *a, float64x1x2_t b) { 6740 // CHECK-LABEL: test_vst2_f64 6741 vst2_f64(a, b); 6742 // CHECK: {{st1|st2}} {{{ ?v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 6743} 6744 6745void test_vst2_p8(poly8_t *a, poly8x8x2_t b) { 6746 // CHECK-LABEL: test_vst2_p8 6747 vst2_p8(a, b); 6748 // CHECK: st2 {{{ ?v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 6749} 6750 6751void test_vst2_p16(poly16_t *a, poly16x4x2_t b) { 6752 // CHECK-LABEL: test_vst2_p16 6753 vst2_p16(a, b); 6754 // CHECK: st2 {{{ ?v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 6755} 6756 6757void test_vst3q_u8(uint8_t *a, uint8x16x3_t b) { 6758 // CHECK-LABEL: test_vst3q_u8 6759 vst3q_u8(a, b); 6760 // CHECK: st3 {{{ ?v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 6761} 6762 6763void test_vst3q_u16(uint16_t *a, uint16x8x3_t b) { 6764 // CHECK-LABEL: test_vst3q_u16 6765 vst3q_u16(a, b); 6766 // CHECK: st3 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 6767} 6768 6769void test_vst3q_u32(uint32_t *a, uint32x4x3_t b) { 6770 // CHECK-LABEL: test_vst3q_u32 6771 vst3q_u32(a, b); 6772 // CHECK: st3 {{{ ?v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 6773} 6774 6775void test_vst3q_u64(uint64_t *a, uint64x2x3_t b) { 6776 // CHECK-LABEL: test_vst3q_u64 6777 vst3q_u64(a, b); 6778 // CHECK: st3 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 6779} 6780 6781void test_vst3q_s8(int8_t *a, int8x16x3_t b) { 6782 // CHECK-LABEL: test_vst3q_s8 6783 vst3q_s8(a, b); 6784 // CHECK: st3 {{{ ?v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 6785} 6786 6787void test_vst3q_s16(int16_t *a, int16x8x3_t b) { 6788 // CHECK-LABEL: test_vst3q_s16 6789 vst3q_s16(a, b); 6790 // CHECK: st3 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 6791} 6792 6793void test_vst3q_s32(int32_t *a, int32x4x3_t b) { 6794 // CHECK-LABEL: test_vst3q_s32 6795 vst3q_s32(a, b); 6796 // CHECK: st3 {{{ ?v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 6797} 6798 6799void test_vst3q_s64(int64_t *a, int64x2x3_t b) { 6800 // CHECK-LABEL: test_vst3q_s64 6801 vst3q_s64(a, b); 6802 // CHECK: st3 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 6803} 6804 6805void test_vst3q_f16(float16_t *a, float16x8x3_t b) { 6806 // CHECK-LABEL: test_vst3q_f16 6807 vst3q_f16(a, b); 6808 // CHECK: st3 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 6809} 6810 6811void test_vst3q_f32(float32_t *a, float32x4x3_t b) { 6812 // CHECK-LABEL: test_vst3q_f32 6813 vst3q_f32(a, b); 6814 // CHECK: st3 {{{ ?v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 6815} 6816 6817void test_vst3q_f64(float64_t *a, float64x2x3_t b) { 6818 // CHECK-LABEL: test_vst3q_f64 6819 vst3q_f64(a, b); 6820 // CHECK: st3 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 6821} 6822 6823void test_vst3q_p8(poly8_t *a, poly8x16x3_t b) { 6824 // CHECK-LABEL: test_vst3q_p8 6825 vst3q_p8(a, b); 6826 // CHECK: st3 {{{ ?v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 6827} 6828 6829void test_vst3q_p16(poly16_t *a, poly16x8x3_t b) { 6830 // CHECK-LABEL: test_vst3q_p16 6831 vst3q_p16(a, b); 6832 // CHECK: st3 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 6833} 6834 6835void test_vst3_u8(uint8_t *a, uint8x8x3_t b) { 6836 // CHECK-LABEL: test_vst3_u8 6837 vst3_u8(a, b); 6838 // CHECK: st3 {{{ ?v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 6839} 6840 6841void test_vst3_u16(uint16_t *a, uint16x4x3_t b) { 6842 // CHECK-LABEL: test_vst3_u16 6843 vst3_u16(a, b); 6844 // CHECK: st3 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 6845} 6846 6847void test_vst3_u32(uint32_t *a, uint32x2x3_t b) { 6848 // CHECK-LABEL: test_vst3_u32 6849 vst3_u32(a, b); 6850 // CHECK: st3 {{{ ?v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 6851} 6852 6853void test_vst3_u64(uint64_t *a, uint64x1x3_t b) { 6854 // CHECK-LABEL: test_vst3_u64 6855 vst3_u64(a, b); 6856 // CHECK: {{st1|st3}} {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 6857} 6858 6859void test_vst3_s8(int8_t *a, int8x8x3_t b) { 6860 // CHECK-LABEL: test_vst3_s8 6861 vst3_s8(a, b); 6862 // CHECK: st3 {{{ ?v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 6863} 6864 6865void test_vst3_s16(int16_t *a, int16x4x3_t b) { 6866 // CHECK-LABEL: test_vst3_s16 6867 vst3_s16(a, b); 6868 // CHECK: st3 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 6869} 6870 6871void test_vst3_s32(int32_t *a, int32x2x3_t b) { 6872 // CHECK-LABEL: test_vst3_s32 6873 vst3_s32(a, b); 6874 // CHECK: st3 {{{ ?v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 6875} 6876 6877void test_vst3_s64(int64_t *a, int64x1x3_t b) { 6878 // CHECK-LABEL: test_vst3_s64 6879 vst3_s64(a, b); 6880 // CHECK: {{st1|st3}} {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 6881} 6882 6883void test_vst3_f16(float16_t *a, float16x4x3_t b) { 6884 // CHECK-LABEL: test_vst3_f16 6885 vst3_f16(a, b); 6886 // CHECK: st3 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 6887} 6888 6889void test_vst3_f32(float32_t *a, float32x2x3_t b) { 6890 // CHECK-LABEL: test_vst3_f32 6891 vst3_f32(a, b); 6892 // CHECK: st3 {{{ ?v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 6893} 6894 6895void test_vst3_f64(float64_t *a, float64x1x3_t b) { 6896 // CHECK-LABEL: test_vst3_f64 6897 vst3_f64(a, b); 6898 // CHECK: {{st1|st3}} {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 6899} 6900 6901void test_vst3_p8(poly8_t *a, poly8x8x3_t b) { 6902 // CHECK-LABEL: test_vst3_p8 6903 vst3_p8(a, b); 6904 // CHECK: st3 {{{ ?v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 6905} 6906 6907void test_vst3_p16(poly16_t *a, poly16x4x3_t b) { 6908 // CHECK-LABEL: test_vst3_p16 6909 vst3_p16(a, b); 6910 // CHECK: st3 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 6911} 6912 6913void test_vst4q_u8(uint8_t *a, uint8x16x4_t b) { 6914 // CHECK-LABEL: test_vst4q_u8 6915 vst4q_u8(a, b); 6916 // CHECK: st4 {{{ ?v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 6917} 6918 6919void test_vst4q_u16(uint16_t *a, uint16x8x4_t b) { 6920 // CHECK-LABEL: test_vst4q_u16 6921 vst4q_u16(a, b); 6922 // CHECK: st4 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 6923} 6924 6925void test_vst4q_u32(uint32_t *a, uint32x4x4_t b) { 6926 // CHECK-LABEL: test_vst4q_u32 6927 vst4q_u32(a, b); 6928 // CHECK: st4 {{{ ?v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 6929} 6930 6931void test_vst4q_u64(uint64_t *a, uint64x2x4_t b) { 6932 // CHECK-LABEL: test_vst4q_u64 6933 vst4q_u64(a, b); 6934 // CHECK: st4 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 6935} 6936 6937void test_vst4q_s8(int8_t *a, int8x16x4_t b) { 6938 // CHECK-LABEL: test_vst4q_s8 6939 vst4q_s8(a, b); 6940 // CHECK: st4 {{{ ?v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 6941} 6942 6943void test_vst4q_s16(int16_t *a, int16x8x4_t b) { 6944 // CHECK-LABEL: test_vst4q_s16 6945 vst4q_s16(a, b); 6946 // CHECK: st4 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 6947} 6948 6949void test_vst4q_s32(int32_t *a, int32x4x4_t b) { 6950 // CHECK-LABEL: test_vst4q_s32 6951 vst4q_s32(a, b); 6952 // CHECK: st4 {{{ ?v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 6953} 6954 6955void test_vst4q_s64(int64_t *a, int64x2x4_t b) { 6956 // CHECK-LABEL: test_vst4q_s64 6957 vst4q_s64(a, b); 6958 // CHECK: st4 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 6959} 6960 6961void test_vst4q_f16(float16_t *a, float16x8x4_t b) { 6962 // CHECK-LABEL: test_vst4q_f16 6963 vst4q_f16(a, b); 6964 // CHECK: st4 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 6965} 6966 6967void test_vst4q_f32(float32_t *a, float32x4x4_t b) { 6968 // CHECK-LABEL: test_vst4q_f32 6969 vst4q_f32(a, b); 6970 // CHECK: st4 {{{ ?v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 6971} 6972 6973void test_vst4q_f64(float64_t *a, float64x2x4_t b) { 6974 // CHECK-LABEL: test_vst4q_f64 6975 vst4q_f64(a, b); 6976 // CHECK: st4 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 6977} 6978 6979void test_vst4q_p8(poly8_t *a, poly8x16x4_t b) { 6980 // CHECK-LABEL: test_vst4q_p8 6981 vst4q_p8(a, b); 6982 // CHECK: st4 {{{ ?v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 6983} 6984 6985void test_vst4q_p16(poly16_t *a, poly16x8x4_t b) { 6986 // CHECK-LABEL: test_vst4q_p16 6987 vst4q_p16(a, b); 6988 // CHECK: st4 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 6989} 6990 6991void test_vst4_u8(uint8_t *a, uint8x8x4_t b) { 6992 // CHECK-LABEL: test_vst4_u8 6993 vst4_u8(a, b); 6994 // CHECK: st4 {{{ ?v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 6995} 6996 6997void test_vst4_u16(uint16_t *a, uint16x4x4_t b) { 6998 // CHECK-LABEL: test_vst4_u16 6999 vst4_u16(a, b); 7000 // CHECK: st4 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 7001} 7002 7003void test_vst4_u32(uint32_t *a, uint32x2x4_t b) { 7004 // CHECK-LABEL: test_vst4_u32 7005 vst4_u32(a, b); 7006 // CHECK: st4 {{{ ?v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 7007} 7008 7009void test_vst4_u64(uint64_t *a, uint64x1x4_t b) { 7010 // CHECK-LABEL: test_vst4_u64 7011 vst4_u64(a, b); 7012 // CHECK: {{st1|st4}} {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 7013} 7014 7015void test_vst4_s8(int8_t *a, int8x8x4_t b) { 7016 // CHECK-LABEL: test_vst4_s8 7017 vst4_s8(a, b); 7018// CHECK: st4 {{{ ?v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 7019} 7020 7021void test_vst4_s16(int16_t *a, int16x4x4_t b) { 7022 // CHECK-LABEL: test_vst4_s16 7023 vst4_s16(a, b); 7024 // CHECK: st4 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 7025} 7026 7027void test_vst4_s32(int32_t *a, int32x2x4_t b) { 7028 // CHECK-LABEL: test_vst4_s32 7029 vst4_s32(a, b); 7030 // CHECK: st4 {{{ ?v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 7031} 7032 7033void test_vst4_s64(int64_t *a, int64x1x4_t b) { 7034 // CHECK-LABEL: test_vst4_s64 7035 vst4_s64(a, b); 7036 // CHECK: {{st1|st4}} {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 7037} 7038 7039void test_vst4_f16(float16_t *a, float16x4x4_t b) { 7040 // CHECK-LABEL: test_vst4_f16 7041 vst4_f16(a, b); 7042 // CHECK: st4 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 7043} 7044 7045void test_vst4_f32(float32_t *a, float32x2x4_t b) { 7046 // CHECK-LABEL: test_vst4_f32 7047 vst4_f32(a, b); 7048 // CHECK: st4 {{{ ?v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 7049} 7050 7051void test_vst4_f64(float64_t *a, float64x1x4_t b) { 7052 // CHECK-LABEL: test_vst4_f64 7053 vst4_f64(a, b); 7054 // CHECK: {{st1|st4}} {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 7055} 7056 7057void test_vst4_p8(poly8_t *a, poly8x8x4_t b) { 7058 // CHECK-LABEL: test_vst4_p8 7059 vst4_p8(a, b); 7060 // CHECK: st4 {{{ ?v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 7061} 7062 7063void test_vst4_p16(poly16_t *a, poly16x4x4_t b) { 7064 // CHECK-LABEL: test_vst4_p16 7065 vst4_p16(a, b); 7066 // CHECK: st4 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 7067} 7068 7069uint8x16x2_t test_vld1q_u8_x2(uint8_t const *a) { 7070 // CHECK-LABEL: test_vld1q_u8_x2 7071 return vld1q_u8_x2(a); 7072 // CHECK: ld1 {{{ ?v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 7073} 7074 7075uint16x8x2_t test_vld1q_u16_x2(uint16_t const *a) { 7076 // CHECK-LABEL: test_vld1q_u16_x2 7077 return vld1q_u16_x2(a); 7078 // CHECK: ld1 {{{ ?v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 7079} 7080 7081uint32x4x2_t test_vld1q_u32_x2(uint32_t const *a) { 7082 // CHECK-LABEL: test_vld1q_u32_x2 7083 return vld1q_u32_x2(a); 7084 // CHECK: ld1 {{{ ?v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 7085} 7086 7087uint64x2x2_t test_vld1q_u64_x2(uint64_t const *a) { 7088 // CHECK-LABEL: test_vld1q_u64_x2 7089 return vld1q_u64_x2(a); 7090 // CHECK: ld1 {{{ ?v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 7091} 7092 7093int8x16x2_t test_vld1q_s8_x2(int8_t const *a) { 7094 // CHECK-LABEL: test_vld1q_s8_x2 7095 return vld1q_s8_x2(a); 7096 // CHECK: ld1 {{{ ?v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 7097} 7098 7099int16x8x2_t test_vld1q_s16_x2(int16_t const *a) { 7100 // CHECK-LABEL: test_vld1q_s16_x2 7101 return vld1q_s16_x2(a); 7102 // CHECK: ld1 {{{ ?v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 7103} 7104 7105int32x4x2_t test_vld1q_s32_x2(int32_t const *a) { 7106 // CHECK-LABEL: test_vld1q_s32_x2 7107 return vld1q_s32_x2(a); 7108 // CHECK: ld1 {{{ ?v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 7109} 7110 7111int64x2x2_t test_vld1q_s64_x2(int64_t const *a) { 7112 // CHECK-LABEL: test_vld1q_s64_x2 7113 return vld1q_s64_x2(a); 7114 // CHECK: ld1 {{{ ?v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 7115} 7116 7117float16x8x2_t test_vld1q_f16_x2(float16_t const *a) { 7118 // CHECK-LABEL: test_vld1q_f16_x2 7119 return vld1q_f16_x2(a); 7120 // CHECK: ld1 {{{ ?v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 7121} 7122 7123float32x4x2_t test_vld1q_f32_x2(float32_t const *a) { 7124 // CHECK-LABEL: test_vld1q_f32_x2 7125 return vld1q_f32_x2(a); 7126 // CHECK: ld1 {{{ ?v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 7127} 7128 7129float64x2x2_t test_vld1q_f64_x2(float64_t const *a) { 7130 // CHECK-LABEL: test_vld1q_f64_x2 7131 return vld1q_f64_x2(a); 7132 // CHECK: ld1 {{{ ?v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 7133} 7134 7135poly8x16x2_t test_vld1q_p8_x2(poly8_t const *a) { 7136 // CHECK-LABEL: test_vld1q_p8_x2 7137 return vld1q_p8_x2(a); 7138 // CHECK: ld1 {{{ ?v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 7139} 7140 7141poly16x8x2_t test_vld1q_p16_x2(poly16_t const *a) { 7142 // CHECK-LABEL: test_vld1q_p16_x2 7143 return vld1q_p16_x2(a); 7144 // CHECK: ld1 {{{ ?v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 7145} 7146 7147poly64x2x2_t test_vld1q_p64_x2(poly64_t const *a) { 7148 // CHECK-LABEL: test_vld1q_p64_x2 7149 return vld1q_p64_x2(a); 7150 // CHECK: ld1 {{{ ?v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 7151} 7152 7153uint8x8x2_t test_vld1_u8_x2(uint8_t const *a) { 7154 // CHECK-LABEL: test_vld1_u8_x2 7155 return vld1_u8_x2(a); 7156 // CHECK: ld1 {{{ ?v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 7157} 7158 7159uint16x4x2_t test_vld1_u16_x2(uint16_t const *a) { 7160 // CHECK-LABEL: test_vld1_u16_x2 7161 return vld1_u16_x2(a); 7162 // CHECK: ld1 {{{ ?v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 7163} 7164 7165uint32x2x2_t test_vld1_u32_x2(uint32_t const *a) { 7166 // CHECK-LABEL: test_vld1_u32_x2 7167 return vld1_u32_x2(a); 7168 // CHECK: ld1 {{{ ?v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 7169} 7170 7171uint64x1x2_t test_vld1_u64_x2(uint64_t const *a) { 7172 // CHECK-LABEL: test_vld1_u64_x2 7173 return vld1_u64_x2(a); 7174 // CHECK: ld1 {{{ ?v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 7175} 7176 7177int8x8x2_t test_vld1_s8_x2(int8_t const *a) { 7178 // CHECK-LABEL: test_vld1_s8_x2 7179 return vld1_s8_x2(a); 7180 // CHECK: ld1 {{{ ?v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 7181} 7182 7183int16x4x2_t test_vld1_s16_x2(int16_t const *a) { 7184 // CHECK-LABEL: test_vld1_s16_x2 7185 return vld1_s16_x2(a); 7186 // CHECK: ld1 {{{ ?v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 7187} 7188 7189int32x2x2_t test_vld1_s32_x2(int32_t const *a) { 7190 // CHECK-LABEL: test_vld1_s32_x2 7191 return vld1_s32_x2(a); 7192 // CHECK: ld1 {{{ ?v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 7193} 7194 7195int64x1x2_t test_vld1_s64_x2(int64_t const *a) { 7196 // CHECK-LABEL: test_vld1_s64_x2 7197 return vld1_s64_x2(a); 7198 // CHECK: ld1 {{{ ?v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 7199} 7200 7201float16x4x2_t test_vld1_f16_x2(float16_t const *a) { 7202 // CHECK-LABEL: test_vld1_f16_x2 7203 return vld1_f16_x2(a); 7204 // CHECK: ld1 {{{ ?v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 7205} 7206 7207float32x2x2_t test_vld1_f32_x2(float32_t const *a) { 7208 // CHECK-LABEL: test_vld1_f32_x2 7209 return vld1_f32_x2(a); 7210 // CHECK: ld1 {{{ ?v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 7211} 7212 7213float64x1x2_t test_vld1_f64_x2(float64_t const *a) { 7214 // CHECK-LABEL: test_vld1_f64_x2 7215 return vld1_f64_x2(a); 7216 // CHECK: ld1 {{{ ?v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 7217} 7218 7219poly8x8x2_t test_vld1_p8_x2(poly8_t const *a) { 7220 // CHECK-LABEL: test_vld1_p8_x2 7221 return vld1_p8_x2(a); 7222 // CHECK: ld1 {{{ ?v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 7223} 7224 7225poly16x4x2_t test_vld1_p16_x2(poly16_t const *a) { 7226 // CHECK-LABEL: test_vld1_p16_x2 7227 return vld1_p16_x2(a); 7228 // CHECK: ld1 {{{ ?v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 7229} 7230 7231poly64x1x2_t test_vld1_p64_x2(poly64_t const *a) { 7232 // CHECK-LABEL: test_vld1_p64_x2 7233 return vld1_p64_x2(a); 7234 // CHECK: ld1 {{{ ?v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 7235} 7236 7237uint8x16x3_t test_vld1q_u8_x3(uint8_t const *a) { 7238 // CHECK-LABEL: test_vld1q_u8_x3 7239 return vld1q_u8_x3(a); 7240 // CHECK: ld1 {{{ ?v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 7241} 7242 7243uint16x8x3_t test_vld1q_u16_x3(uint16_t const *a) { 7244 // CHECK-LABEL: test_vld1q_u16_x3 7245 return vld1q_u16_x3(a); 7246 // CHECK: ld1 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 7247} 7248 7249uint32x4x3_t test_vld1q_u32_x3(uint32_t const *a) { 7250 // CHECK-LABEL: test_vld1q_u32_x3 7251 return vld1q_u32_x3(a); 7252 // CHECK: ld1 {{{ ?v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 7253} 7254 7255uint64x2x3_t test_vld1q_u64_x3(uint64_t const *a) { 7256 // CHECK-LABEL: test_vld1q_u64_x3 7257 return vld1q_u64_x3(a); 7258 // CHECK: ld1 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 7259} 7260 7261int8x16x3_t test_vld1q_s8_x3(int8_t const *a) { 7262 // CHECK-LABEL: test_vld1q_s8_x3 7263 return vld1q_s8_x3(a); 7264 // CHECK: ld1 {{{ ?v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 7265} 7266 7267int16x8x3_t test_vld1q_s16_x3(int16_t const *a) { 7268 // CHECK-LABEL: test_vld1q_s16_x3 7269 return vld1q_s16_x3(a); 7270 // CHECK: ld1 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 7271} 7272 7273int32x4x3_t test_vld1q_s32_x3(int32_t const *a) { 7274 // CHECK-LABEL: test_vld1q_s32_x3 7275 return vld1q_s32_x3(a); 7276 // CHECK: ld1 {{{ ?v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 7277} 7278 7279int64x2x3_t test_vld1q_s64_x3(int64_t const *a) { 7280 // CHECK-LABEL: test_vld1q_s64_x3 7281 return vld1q_s64_x3(a); 7282 // CHECK: ld1 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 7283} 7284 7285float16x8x3_t test_vld1q_f16_x3(float16_t const *a) { 7286 // CHECK-LABEL: test_vld1q_f16_x3 7287 return vld1q_f16_x3(a); 7288 // CHECK: ld1 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 7289} 7290 7291float32x4x3_t test_vld1q_f32_x3(float32_t const *a) { 7292 // CHECK-LABEL: test_vld1q_f32_x3 7293 return vld1q_f32_x3(a); 7294 // CHECK: ld1 {{{ ?v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 7295} 7296 7297float64x2x3_t test_vld1q_f64_x3(float64_t const *a) { 7298 // CHECK-LABEL: test_vld1q_f64_x3 7299 return vld1q_f64_x3(a); 7300 // CHECK: ld1 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 7301} 7302 7303poly8x16x3_t test_vld1q_p8_x3(poly8_t const *a) { 7304 // CHECK-LABEL: test_vld1q_p8_x3 7305 return vld1q_p8_x3(a); 7306 // CHECK: ld1 {{{ ?v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 7307} 7308 7309poly16x8x3_t test_vld1q_p16_x3(poly16_t const *a) { 7310 // CHECK-LABEL: test_vld1q_p16_x3 7311 return vld1q_p16_x3(a); 7312 // CHECK: ld1 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 7313} 7314 7315poly64x2x3_t test_vld1q_p64_x3(poly64_t const *a) { 7316 // CHECK-LABEL: test_vld1q_p64_x3 7317 return vld1q_p64_x3(a); 7318 // CHECK: ld1 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 7319} 7320 7321uint8x8x3_t test_vld1_u8_x3(uint8_t const *a) { 7322 // CHECK-LABEL: test_vld1_u8_x3 7323 return vld1_u8_x3(a); 7324 // CHECK: ld1 {{{ ?v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 7325} 7326 7327uint16x4x3_t test_vld1_u16_x3(uint16_t const *a) { 7328 // CHECK-LABEL: test_vld1_u16_x3 7329 return vld1_u16_x3(a); 7330 // CHECK: ld1 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 7331} 7332 7333uint32x2x3_t test_vld1_u32_x3(uint32_t const *a) { 7334 // CHECK-LABEL: test_vld1_u32_x3 7335 return vld1_u32_x3(a); 7336 // CHECK: ld1 {{{ ?v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 7337} 7338 7339uint64x1x3_t test_vld1_u64_x3(uint64_t const *a) { 7340 // CHECK-LABEL: test_vld1_u64_x3 7341 return vld1_u64_x3(a); 7342 // CHECK: ld1 {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 7343} 7344 7345int8x8x3_t test_vld1_s8_x3(int8_t const *a) { 7346 // CHECK-LABEL: test_vld1_s8_x3 7347 return vld1_s8_x3(a); 7348 // CHECK: ld1 {{{ ?v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 7349} 7350 7351int16x4x3_t test_vld1_s16_x3(int16_t const *a) { 7352 // CHECK-LABEL: test_vld1_s16_x3 7353 return vld1_s16_x3(a); 7354 // CHECK: ld1 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 7355} 7356 7357int32x2x3_t test_vld1_s32_x3(int32_t const *a) { 7358 // CHECK-LABEL: test_vld1_s32_x3 7359 return vld1_s32_x3(a); 7360 // CHECK: ld1 {{{ ?v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 7361} 7362 7363int64x1x3_t test_vld1_s64_x3(int64_t const *a) { 7364 // CHECK-LABEL: test_vld1_s64_x3 7365 return vld1_s64_x3(a); 7366 // CHECK: ld1 {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 7367} 7368 7369float16x4x3_t test_vld1_f16_x3(float16_t const *a) { 7370 // CHECK-LABEL: test_vld1_f16_x3 7371 return vld1_f16_x3(a); 7372 // CHECK: ld1 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 7373} 7374 7375float32x2x3_t test_vld1_f32_x3(float32_t const *a) { 7376 // CHECK-LABEL: test_vld1_f32_x3 7377 return vld1_f32_x3(a); 7378 // CHECK: ld1 {{{ ?v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 7379} 7380 7381float64x1x3_t test_vld1_f64_x3(float64_t const *a) { 7382 // CHECK-LABEL: test_vld1_f64_x3 7383 return vld1_f64_x3(a); 7384 // CHECK: ld1 {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 7385} 7386 7387poly8x8x3_t test_vld1_p8_x3(poly8_t const *a) { 7388 // CHECK-LABEL: test_vld1_p8_x3 7389 return vld1_p8_x3(a); 7390 // CHECK: ld1 {{{ ?v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 7391} 7392 7393poly16x4x3_t test_vld1_p16_x3(poly16_t const *a) { 7394 // CHECK-LABEL: test_vld1_p16_x3 7395 return vld1_p16_x3(a); 7396 // CHECK: ld1 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 7397} 7398 7399poly64x1x3_t test_vld1_p64_x3(poly64_t const *a) { 7400 // CHECK-LABEL: test_vld1_p64_x3 7401 return vld1_p64_x3(a); 7402 // CHECK: ld1 {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 7403} 7404 7405uint8x16x4_t test_vld1q_u8_x4(uint8_t const *a) { 7406 // CHECK-LABEL: test_vld1q_u8_x4 7407 return vld1q_u8_x4(a); 7408 // CHECK: ld1 {{{ ?v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 7409} 7410 7411uint16x8x4_t test_vld1q_u16_x4(uint16_t const *a) { 7412 // CHECK-LABEL: test_vld1q_u16_x4 7413 return vld1q_u16_x4(a); 7414 // CHECK: ld1 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 7415} 7416 7417uint32x4x4_t test_vld1q_u32_x4(uint32_t const *a) { 7418 // CHECK-LABEL: test_vld1q_u32_x4 7419 return vld1q_u32_x4(a); 7420 // CHECK: ld1 {{{ ?v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 7421} 7422 7423uint64x2x4_t test_vld1q_u64_x4(uint64_t const *a) { 7424 // CHECK-LABEL: test_vld1q_u64_x4 7425 return vld1q_u64_x4(a); 7426 // CHECK: ld1 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 7427} 7428 7429int8x16x4_t test_vld1q_s8_x4(int8_t const *a) { 7430 // CHECK-LABEL: test_vld1q_s8_x4 7431 return vld1q_s8_x4(a); 7432 // CHECK: ld1 {{{ ?v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 7433} 7434 7435int16x8x4_t test_vld1q_s16_x4(int16_t const *a) { 7436 // CHECK-LABEL: test_vld1q_s16_x4 7437 return vld1q_s16_x4(a); 7438 // CHECK: ld1 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 7439} 7440 7441int32x4x4_t test_vld1q_s32_x4(int32_t const *a) { 7442 // CHECK-LABEL: test_vld1q_s32_x4 7443 return vld1q_s32_x4(a); 7444 // CHECK: ld1 {{{ ?v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 7445} 7446 7447int64x2x4_t test_vld1q_s64_x4(int64_t const *a) { 7448 // CHECK-LABEL: test_vld1q_s64_x4 7449 return vld1q_s64_x4(a); 7450 // CHECK: ld1 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 7451} 7452 7453float16x8x4_t test_vld1q_f16_x4(float16_t const *a) { 7454 // CHECK-LABEL: test_vld1q_f16_x4 7455 return vld1q_f16_x4(a); 7456 // CHECK: ld1 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 7457} 7458 7459float32x4x4_t test_vld1q_f32_x4(float32_t const *a) { 7460 // CHECK-LABEL: test_vld1q_f32_x4 7461 return vld1q_f32_x4(a); 7462 // CHECK: ld1 {{{ ?v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 7463} 7464 7465float64x2x4_t test_vld1q_f64_x4(float64_t const *a) { 7466 // CHECK-LABEL: test_vld1q_f64_x4 7467 return vld1q_f64_x4(a); 7468 // CHECK: ld1 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 7469} 7470 7471poly8x16x4_t test_vld1q_p8_x4(poly8_t const *a) { 7472 // CHECK-LABEL: test_vld1q_p8_x4 7473 return vld1q_p8_x4(a); 7474 // CHECK: ld1 {{{ ?v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 7475} 7476 7477poly16x8x4_t test_vld1q_p16_x4(poly16_t const *a) { 7478 // CHECK-LABEL: test_vld1q_p16_x4 7479 return vld1q_p16_x4(a); 7480 // CHECK: ld1 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 7481} 7482 7483poly64x2x4_t test_vld1q_p64_x4(poly64_t const *a) { 7484 // CHECK-LABEL: test_vld1q_p64_x4 7485 return vld1q_p64_x4(a); 7486 // CHECK: ld1 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 7487} 7488 7489uint8x8x4_t test_vld1_u8_x4(uint8_t const *a) { 7490 // CHECK-LABEL: test_vld1_u8_x4 7491 return vld1_u8_x4(a); 7492 // CHECK: ld1 {{{ ?v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 7493} 7494 7495uint16x4x4_t test_vld1_u16_x4(uint16_t const *a) { 7496 // CHECK-LABEL: test_vld1_u16_x4 7497 return vld1_u16_x4(a); 7498 // CHECK: ld1 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 7499} 7500 7501uint32x2x4_t test_vld1_u32_x4(uint32_t const *a) { 7502 // CHECK-LABEL: test_vld1_u32_x4 7503 return vld1_u32_x4(a); 7504 // CHECK: ld1 {{{ ?v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 7505} 7506 7507uint64x1x4_t test_vld1_u64_x4(uint64_t const *a) { 7508 // CHECK-LABEL: test_vld1_u64_x4 7509 return vld1_u64_x4(a); 7510 // CHECK: ld1 {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 7511} 7512 7513int8x8x4_t test_vld1_s8_x4(int8_t const *a) { 7514 // CHECK-LABEL: test_vld1_s8_x4 7515 return vld1_s8_x4(a); 7516 // CHECK: ld1 {{{ ?v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 7517} 7518 7519int16x4x4_t test_vld1_s16_x4(int16_t const *a) { 7520 // CHECK-LABEL: test_vld1_s16_x4 7521 return vld1_s16_x4(a); 7522 // CHECK: ld1 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 7523} 7524 7525int32x2x4_t test_vld1_s32_x4(int32_t const *a) { 7526 // CHECK-LABEL: test_vld1_s32_x4 7527 return vld1_s32_x4(a); 7528 // CHECK: ld1 {{{ ?v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 7529} 7530 7531int64x1x4_t test_vld1_s64_x4(int64_t const *a) { 7532 // CHECK-LABEL: test_vld1_s64_x4 7533 return vld1_s64_x4(a); 7534 // CHECK: ld1 {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 7535} 7536 7537float16x4x4_t test_vld1_f16_x4(float16_t const *a) { 7538 // CHECK-LABEL: test_vld1_f16_x4 7539 return vld1_f16_x4(a); 7540 // CHECK: ld1 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 7541} 7542 7543float32x2x4_t test_vld1_f32_x4(float32_t const *a) { 7544 // CHECK-LABEL: test_vld1_f32_x4 7545 return vld1_f32_x4(a); 7546 // CHECK: ld1 {{{ ?v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 7547} 7548 7549float64x1x4_t test_vld1_f64_x4(float64_t const *a) { 7550 // CHECK-LABEL: test_vld1_f64_x4 7551 return vld1_f64_x4(a); 7552 // CHECK: ld1 {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 7553} 7554 7555poly8x8x4_t test_vld1_p8_x4(poly8_t const *a) { 7556 // CHECK-LABEL: test_vld1_p8_x4 7557 return vld1_p8_x4(a); 7558 // CHECK: ld1 {{{ ?v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 7559} 7560 7561poly16x4x4_t test_vld1_p16_x4(poly16_t const *a) { 7562 // CHECK-LABEL: test_vld1_p16_x4 7563 return vld1_p16_x4(a); 7564 // CHECK: ld1 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 7565} 7566 7567poly64x1x4_t test_vld1_p64_x4(poly64_t const *a) { 7568 // CHECK-LABEL: test_vld1_p64_x4 7569 return vld1_p64_x4(a); 7570 // CHECK: ld1 {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 7571} 7572 7573void test_vst1q_u8_x2(uint8_t *a, uint8x16x2_t b) { 7574 // CHECK-LABEL: test_vst1q_u8_x2 7575 vst1q_u8_x2(a, b); 7576 // CHECK: st1 {{{ ?v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 7577} 7578 7579void test_vst1q_u16_x2(uint16_t *a, uint16x8x2_t b) { 7580 // CHECK-LABEL: test_vst1q_u16_x2 7581 vst1q_u16_x2(a, b); 7582 // CHECK: st1 {{{ ?v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 7583} 7584 7585void test_vst1q_u32_x2(uint32_t *a, uint32x4x2_t b) { 7586 // CHECK-LABEL: test_vst1q_u32_x2 7587 vst1q_u32_x2(a, b); 7588 // CHECK: st1 {{{ ?v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 7589} 7590 7591void test_vst1q_u64_x2(uint64_t *a, uint64x2x2_t b) { 7592 // CHECK-LABEL: test_vst1q_u64_x2 7593 vst1q_u64_x2(a, b); 7594 // CHECK: st1 {{{ ?v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 7595} 7596 7597void test_vst1q_s8_x2(int8_t *a, int8x16x2_t b) { 7598 // CHECK-LABEL: test_vst1q_s8_x2 7599 vst1q_s8_x2(a, b); 7600 // CHECK: st1 {{{ ?v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 7601} 7602 7603void test_vst1q_s16_x2(int16_t *a, int16x8x2_t b) { 7604 // CHECK-LABEL: test_vst1q_s16_x2 7605 vst1q_s16_x2(a, b); 7606 // CHECK: st1 {{{ ?v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 7607} 7608 7609void test_vst1q_s32_x2(int32_t *a, int32x4x2_t b) { 7610 // CHECK-LABEL: test_vst1q_s32_x2 7611 vst1q_s32_x2(a, b); 7612 // CHECK: st1 {{{ ?v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 7613} 7614 7615void test_vst1q_s64_x2(int64_t *a, int64x2x2_t b) { 7616 // CHECK-LABEL: test_vst1q_s64_x2 7617 vst1q_s64_x2(a, b); 7618 // CHECK: st1 {{{ ?v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 7619} 7620 7621void test_vst1q_f16_x2(float16_t *a, float16x8x2_t b) { 7622 // CHECK-LABEL: test_vst1q_f16_x2 7623 vst1q_f16_x2(a, b); 7624 // CHECK: st1 {{{ ?v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 7625} 7626 7627void test_vst1q_f32_x2(float32_t *a, float32x4x2_t b) { 7628 // CHECK-LABEL: test_vst1q_f32_x2 7629 vst1q_f32_x2(a, b); 7630 // CHECK: st1 {{{ ?v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 7631} 7632 7633void test_vst1q_f64_x2(float64_t *a, float64x2x2_t b) { 7634 // CHECK-LABEL: test_vst1q_f64_x2 7635 vst1q_f64_x2(a, b); 7636 // CHECK: st1 {{{ ?v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 7637} 7638 7639void test_vst1q_p8_x2(poly8_t *a, poly8x16x2_t b) { 7640 // CHECK-LABEL: test_vst1q_p8_x2 7641 vst1q_p8_x2(a, b); 7642 // CHECK: st1 {{{ ?v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 7643} 7644 7645void test_vst1q_p16_x2(poly16_t *a, poly16x8x2_t b) { 7646 // CHECK-LABEL: test_vst1q_p16_x2 7647 vst1q_p16_x2(a, b); 7648 // CHECK: st1 {{{ ?v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 7649} 7650 7651void test_vst1q_p64_x2(poly64_t *a, poly64x2x2_t b) { 7652 // CHECK-LABEL: test_vst1q_p64_x2 7653 vst1q_p64_x2(a, b); 7654 // CHECK: st1 {{{ ?v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 7655} 7656 7657void test_vst1_u8_x2(uint8_t *a, uint8x8x2_t b) { 7658 // CHECK-LABEL: test_vst1_u8_x2 7659 vst1_u8_x2(a, b); 7660 // CHECK: st1 {{{ ?v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 7661} 7662 7663void test_vst1_u16_x2(uint16_t *a, uint16x4x2_t b) { 7664 // CHECK-LABEL: test_vst1_u16_x2 7665 vst1_u16_x2(a, b); 7666 // CHECK: st1 {{{ ?v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 7667} 7668 7669void test_vst1_u32_x2(uint32_t *a, uint32x2x2_t b) { 7670 // CHECK-LABEL: test_vst1_u32_x2 7671 vst1_u32_x2(a, b); 7672 // CHECK: st1 {{{ ?v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 7673} 7674 7675void test_vst1_u64_x2(uint64_t *a, uint64x1x2_t b) { 7676 // CHECK-LABEL: test_vst1_u64_x2 7677 vst1_u64_x2(a, b); 7678 // CHECK: st1 {{{ ?v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 7679} 7680 7681void test_vst1_s8_x2(int8_t *a, int8x8x2_t b) { 7682 // CHECK-LABEL: test_vst1_s8_x2 7683 vst1_s8_x2(a, b); 7684 // CHECK: st1 {{{ ?v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 7685} 7686 7687void test_vst1_s16_x2(int16_t *a, int16x4x2_t b) { 7688 // CHECK-LABEL: test_vst1_s16_x2 7689 vst1_s16_x2(a, b); 7690 // CHECK: st1 {{{ ?v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 7691} 7692 7693void test_vst1_s32_x2(int32_t *a, int32x2x2_t b) { 7694 // CHECK-LABEL: test_vst1_s32_x2 7695 vst1_s32_x2(a, b); 7696 // CHECK: st1 {{{ ?v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 7697} 7698 7699void test_vst1_s64_x2(int64_t *a, int64x1x2_t b) { 7700 // CHECK-LABEL: test_vst1_s64_x2 7701 vst1_s64_x2(a, b); 7702 // CHECK: st1 {{{ ?v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 7703} 7704 7705void test_vst1_f16_x2(float16_t *a, float16x4x2_t b) { 7706 // CHECK-LABEL: test_vst1_f16_x2 7707 vst1_f16_x2(a, b); 7708 // CHECK: st1 {{{ ?v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 7709} 7710 7711void test_vst1_f32_x2(float32_t *a, float32x2x2_t b) { 7712 // CHECK-LABEL: test_vst1_f32_x2 7713 vst1_f32_x2(a, b); 7714 // CHECK: st1 {{{ ?v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 7715} 7716 7717void test_vst1_f64_x2(float64_t *a, float64x1x2_t b) { 7718 // CHECK-LABEL: test_vst1_f64_x2 7719 vst1_f64_x2(a, b); 7720 // CHECK: st1 {{{ ?v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 7721} 7722 7723void test_vst1_p8_x2(poly8_t *a, poly8x8x2_t b) { 7724 // CHECK-LABEL: test_vst1_p8_x2 7725 vst1_p8_x2(a, b); 7726 // CHECK: st1 {{{ ?v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 7727} 7728 7729void test_vst1_p16_x2(poly16_t *a, poly16x4x2_t b) { 7730 // CHECK-LABEL: test_vst1_p16_x2 7731 vst1_p16_x2(a, b); 7732 // CHECK: st1 {{{ ?v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 7733} 7734 7735void test_vst1_p64_x2(poly64_t *a, poly64x1x2_t b) { 7736 // CHECK-LABEL: test_vst1_p64_x2 7737 vst1_p64_x2(a, b); 7738 // CHECK: st1 {{{ ?v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 7739} 7740 7741void test_vst1q_u8_x3(uint8_t *a, uint8x16x3_t b) { 7742 // CHECK-LABEL: test_vst1q_u8_x3 7743 vst1q_u8_x3(a, b); 7744 // CHECK: st1 {{{ ?v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 7745} 7746 7747void test_vst1q_u16_x3(uint16_t *a, uint16x8x3_t b) { 7748 // CHECK-LABEL: test_vst1q_u16_x3 7749 vst1q_u16_x3(a, b); 7750 // CHECK: st1 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 7751} 7752 7753void test_vst1q_u32_x3(uint32_t *a, uint32x4x3_t b) { 7754 // CHECK-LABEL: test_vst1q_u32_x3 7755 vst1q_u32_x3(a, b); 7756 // CHECK: st1 {{{ ?v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 7757} 7758 7759void test_vst1q_u64_x3(uint64_t *a, uint64x2x3_t b) { 7760 // CHECK-LABEL: test_vst1q_u64_x3 7761 vst1q_u64_x3(a, b); 7762 // CHECK: st1 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 7763} 7764 7765void test_vst1q_s8_x3(int8_t *a, int8x16x3_t b) { 7766 // CHECK-LABEL: test_vst1q_s8_x3 7767 vst1q_s8_x3(a, b); 7768 // CHECK: st1 {{{ ?v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 7769} 7770 7771void test_vst1q_s16_x3(int16_t *a, int16x8x3_t b) { 7772 // CHECK-LABEL: test_vst1q_s16_x3 7773 vst1q_s16_x3(a, b); 7774 // CHECK: st1 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 7775} 7776 7777void test_vst1q_s32_x3(int32_t *a, int32x4x3_t b) { 7778 // CHECK-LABEL: test_vst1q_s32_x3 7779 vst1q_s32_x3(a, b); 7780 // CHECK: st1 {{{ ?v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 7781} 7782 7783void test_vst1q_s64_x3(int64_t *a, int64x2x3_t b) { 7784 // CHECK-LABEL: test_vst1q_s64_x3 7785 vst1q_s64_x3(a, b); 7786 // CHECK: st1 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 7787} 7788 7789void test_vst1q_f16_x3(float16_t *a, float16x8x3_t b) { 7790 // CHECK-LABEL: test_vst1q_f16_x3 7791 vst1q_f16_x3(a, b); 7792 // CHECK: st1 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 7793} 7794 7795void test_vst1q_f32_x3(float32_t *a, float32x4x3_t b) { 7796 // CHECK-LABEL: test_vst1q_f32_x3 7797 vst1q_f32_x3(a, b); 7798 // CHECK: st1 {{{ ?v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 7799} 7800 7801void test_vst1q_f64_x3(float64_t *a, float64x2x3_t b) { 7802 // CHECK-LABEL: test_vst1q_f64_x3 7803 vst1q_f64_x3(a, b); 7804 // CHECK: st1 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 7805} 7806 7807void test_vst1q_p8_x3(poly8_t *a, poly8x16x3_t b) { 7808 // CHECK-LABEL: test_vst1q_p8_x3 7809 vst1q_p8_x3(a, b); 7810 // CHECK: st1 {{{ ?v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 7811} 7812 7813void test_vst1q_p16_x3(poly16_t *a, poly16x8x3_t b) { 7814 // CHECK-LABEL: test_vst1q_p16_x3 7815 vst1q_p16_x3(a, b); 7816 // CHECK: st1 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 7817} 7818 7819void test_vst1q_p64_x3(poly64_t *a, poly64x2x3_t b) { 7820 // CHECK-LABEL: test_vst1q_p64_x3 7821 vst1q_p64_x3(a, b); 7822 // CHECK: st1 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 7823} 7824 7825void test_vst1_u8_x3(uint8_t *a, uint8x8x3_t b) { 7826 // CHECK-LABEL: test_vst1_u8_x3 7827 vst1_u8_x3(a, b); 7828 // CHECK: st1 {{{ ?v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 7829} 7830 7831void test_vst1_u16_x3(uint16_t *a, uint16x4x3_t b) { 7832 // CHECK-LABEL: test_vst1_u16_x3 7833 vst1_u16_x3(a, b); 7834 // CHECK: st1 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 7835} 7836 7837void test_vst1_u32_x3(uint32_t *a, uint32x2x3_t b) { 7838 // CHECK-LABEL: test_vst1_u32_x3 7839 vst1_u32_x3(a, b); 7840 // CHECK: st1 {{{ ?v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 7841} 7842 7843void test_vst1_u64_x3(uint64_t *a, uint64x1x3_t b) { 7844 // CHECK-LABEL: test_vst1_u64_x3 7845 vst1_u64_x3(a, b); 7846 // CHECK: st1 {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 7847} 7848 7849void test_vst1_s8_x3(int8_t *a, int8x8x3_t b) { 7850 // CHECK-LABEL: test_vst1_s8_x3 7851 vst1_s8_x3(a, b); 7852 // CHECK: st1 {{{ ?v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 7853} 7854 7855void test_vst1_s16_x3(int16_t *a, int16x4x3_t b) { 7856 // CHECK-LABEL: test_vst1_s16_x3 7857 vst1_s16_x3(a, b); 7858 // CHECK: st1 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 7859} 7860 7861void test_vst1_s32_x3(int32_t *a, int32x2x3_t b) { 7862 // CHECK-LABEL: test_vst1_s32_x3 7863 vst1_s32_x3(a, b); 7864 // CHECK: st1 {{{ ?v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 7865} 7866 7867void test_vst1_s64_x3(int64_t *a, int64x1x3_t b) { 7868 // CHECK-LABEL: test_vst1_s64_x3 7869 vst1_s64_x3(a, b); 7870 // CHECK: st1 {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 7871} 7872 7873void test_vst1_f16_x3(float16_t *a, float16x4x3_t b) { 7874 // CHECK-LABEL: test_vst1_f16_x3 7875 vst1_f16_x3(a, b); 7876 // CHECK: st1 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 7877} 7878 7879void test_vst1_f32_x3(float32_t *a, float32x2x3_t b) { 7880 // CHECK-LABEL: test_vst1_f32_x3 7881 vst1_f32_x3(a, b); 7882 // CHECK: st1 {{{ ?v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 7883} 7884 7885void test_vst1_f64_x3(float64_t *a, float64x1x3_t b) { 7886 // CHECK-LABEL: test_vst1_f64_x3 7887 vst1_f64_x3(a, b); 7888 // CHECK: st1 {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 7889} 7890 7891void test_vst1_p8_x3(poly8_t *a, poly8x8x3_t b) { 7892 // CHECK-LABEL: test_vst1_p8_x3 7893 vst1_p8_x3(a, b); 7894 // CHECK: st1 {{{ ?v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 7895} 7896 7897void test_vst1_p16_x3(poly16_t *a, poly16x4x3_t b) { 7898 // CHECK-LABEL: test_vst1_p16_x3 7899 vst1_p16_x3(a, b); 7900 // CHECK: st1 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 7901} 7902 7903void test_vst1_p64_x3(poly64_t *a, poly64x1x3_t b) { 7904 // CHECK-LABEL: test_vst1_p64_x3 7905 vst1_p64_x3(a, b); 7906 // CHECK: st1 {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 7907} 7908 7909void test_vst1q_u8_x4(uint8_t *a, uint8x16x4_t b) { 7910 // CHECK-LABEL: test_vst1q_u8_x4 7911 vst1q_u8_x4(a, b); 7912 // CHECK: st1 {{{ ?v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 7913} 7914 7915void test_vst1q_u16_x4(uint16_t *a, uint16x8x4_t b) { 7916 // CHECK-LABEL: test_vst1q_u16_x4 7917 vst1q_u16_x4(a, b); 7918 // CHECK: st1 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 7919} 7920 7921void test_vst1q_u32_x4(uint32_t *a, uint32x4x4_t b) { 7922 // CHECK-LABEL: test_vst1q_u32_x4 7923 vst1q_u32_x4(a, b); 7924 // CHECK: st1 {{{ ?v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 7925} 7926 7927void test_vst1q_u64_x4(uint64_t *a, uint64x2x4_t b) { 7928 // CHECK-LABEL: test_vst1q_u64_x4 7929 vst1q_u64_x4(a, b); 7930 // CHECK: st1 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 7931} 7932 7933void test_vst1q_s8_x4(int8_t *a, int8x16x4_t b) { 7934 // CHECK-LABEL: test_vst1q_s8_x4 7935 vst1q_s8_x4(a, b); 7936 // CHECK: st1 {{{ ?v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 7937} 7938 7939void test_vst1q_s16_x4(int16_t *a, int16x8x4_t b) { 7940 // CHECK-LABEL: test_vst1q_s16_x4 7941 vst1q_s16_x4(a, b); 7942 // CHECK: st1 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 7943} 7944 7945void test_vst1q_s32_x4(int32_t *a, int32x4x4_t b) { 7946 // CHECK-LABEL: test_vst1q_s32_x4 7947 vst1q_s32_x4(a, b); 7948 // CHECK: st1 {{{ ?v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 7949} 7950 7951void test_vst1q_s64_x4(int64_t *a, int64x2x4_t b) { 7952 // CHECK-LABEL: test_vst1q_s64_x4 7953 vst1q_s64_x4(a, b); 7954 // CHECK: st1 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 7955} 7956 7957void test_vst1q_f16_x4(float16_t *a, float16x8x4_t b) { 7958 // CHECK-LABEL: test_vst1q_f16_x4 7959 vst1q_f16_x4(a, b); 7960 // CHECK: st1 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 7961} 7962 7963void test_vst1q_f32_x4(float32_t *a, float32x4x4_t b) { 7964 // CHECK-LABEL: test_vst1q_f32_x4 7965 vst1q_f32_x4(a, b); 7966 // CHECK: st1 {{{ ?v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s ?}}}, [{{x[0-9]+|sp}}] 7967} 7968 7969void test_vst1q_f64_x4(float64_t *a, float64x2x4_t b) { 7970 // CHECK-LABEL: test_vst1q_f64_x4 7971 vst1q_f64_x4(a, b); 7972 // CHECK: st1 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 7973} 7974 7975void test_vst1q_p8_x4(poly8_t *a, poly8x16x4_t b) { 7976 // CHECK-LABEL: test_vst1q_p8_x4 7977 vst1q_p8_x4(a, b); 7978 // CHECK: st1 {{{ ?v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b ?}}}, [{{x[0-9]+|sp}}] 7979} 7980 7981void test_vst1q_p16_x4(poly16_t *a, poly16x8x4_t b) { 7982 // CHECK-LABEL: test_vst1q_p16_x4 7983 vst1q_p16_x4(a, b); 7984 // CHECK: st1 {{{ ?v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h ?}}}, [{{x[0-9]+|sp}}] 7985} 7986 7987void test_vst1q_p64_x4(poly64_t *a, poly64x2x4_t b) { 7988 // CHECK-LABEL: test_vst1q_p64_x4 7989 vst1q_p64_x4(a, b); 7990 // CHECK: st1 {{{ ?v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d ?}}}, [{{x[0-9]+|sp}}] 7991} 7992 7993void test_vst1_u8_x4(uint8_t *a, uint8x8x4_t b) { 7994 // CHECK-LABEL: test_vst1_u8_x4 7995 vst1_u8_x4(a, b); 7996 // CHECK: st1 {{{ ?v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 7997} 7998 7999void test_vst1_u16_x4(uint16_t *a, uint16x4x4_t b) { 8000 // CHECK-LABEL: test_vst1_u16_x4 8001 vst1_u16_x4(a, b); 8002 // CHECK: st1 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 8003} 8004 8005void test_vst1_u32_x4(uint32_t *a, uint32x2x4_t b) { 8006 // CHECK-LABEL: test_vst1_u32_x4 8007 vst1_u32_x4(a, b); 8008 // CHECK: st1 {{{ ?v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 8009} 8010 8011void test_vst1_u64_x4(uint64_t *a, uint64x1x4_t b) { 8012 // CHECK-LABEL: test_vst1_u64_x4 8013 vst1_u64_x4(a, b); 8014 // CHECK: st1 {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 8015} 8016 8017void test_vst1_s8_x4(int8_t *a, int8x8x4_t b) { 8018 // CHECK-LABEL: test_vst1_s8_x4 8019 vst1_s8_x4(a, b); 8020 // CHECK: st1 {{{ ?v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 8021} 8022 8023void test_vst1_s16_x4(int16_t *a, int16x4x4_t b) { 8024 // CHECK-LABEL: test_vst1_s16_x4 8025 vst1_s16_x4(a, b); 8026 // CHECK: st1 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 8027} 8028 8029void test_vst1_s32_x4(int32_t *a, int32x2x4_t b) { 8030 // CHECK-LABEL: test_vst1_s32_x4 8031 vst1_s32_x4(a, b); 8032 // CHECK: st1 {{{ ?v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 8033} 8034 8035void test_vst1_s64_x4(int64_t *a, int64x1x4_t b) { 8036 // CHECK-LABEL: test_vst1_s64_x4 8037 vst1_s64_x4(a, b); 8038 // CHECK: st1 {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 8039} 8040 8041void test_vst1_f16_x4(float16_t *a, float16x4x4_t b) { 8042 // CHECK-LABEL: test_vst1_f16_x4 8043 vst1_f16_x4(a, b); 8044 // CHECK: st1 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 8045} 8046 8047void test_vst1_f32_x4(float32_t *a, float32x2x4_t b) { 8048 // CHECK-LABEL: test_vst1_f32_x4 8049 vst1_f32_x4(a, b); 8050 // CHECK: st1 {{{ ?v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s ?}}}, [{{x[0-9]+|sp}}] 8051} 8052 8053void test_vst1_f64_x4(float64_t *a, float64x1x4_t b) { 8054 // CHECK-LABEL: test_vst1_f64_x4 8055 vst1_f64_x4(a, b); 8056 // CHECK: st1 {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 8057} 8058 8059void test_vst1_p8_x4(poly8_t *a, poly8x8x4_t b) { 8060 // CHECK-LABEL: test_vst1_p8_x4 8061 vst1_p8_x4(a, b); 8062 // CHECK: st1 {{{ ?v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ?}}}, [{{x[0-9]+|sp}}] 8063} 8064 8065void test_vst1_p16_x4(poly16_t *a, poly16x4x4_t b) { 8066 // CHECK-LABEL: test_vst1_p16_x4 8067 vst1_p16_x4(a, b); 8068 // CHECK: st1 {{{ ?v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h ?}}}, [{{x[0-9]+|sp}}] 8069} 8070 8071void test_vst1_p64_x4(poly64_t *a, poly64x1x4_t b) { 8072 // CHECK-LABEL: test_vst1_p64_x4 8073 vst1_p64_x4(a, b); 8074 // CHECK: st1 {{{ ?v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d ?}}}, [{{x[0-9]+|sp}}] 8075} 8076 8077int64_t test_vceqd_s64(int64_t a, int64_t b) { 8078// CHECK-LABEL: test_vceqd_s64 8079// CHECK: {{cmeq d[0-9]+, d[0-9]+, d[0-9]+|cmp x0, x1}} 8080 return (int64_t)vceqd_s64(a, b); 8081} 8082 8083uint64_t test_vceqd_u64(uint64_t a, uint64_t b) { 8084// CHECK-LABEL: test_vceqd_u64 8085// CHECK: {{cmeq d[0-9]+, d[0-9]+, d[0-9]+|cmp x0, x1}} 8086 return (int64_t)vceqd_u64(a, b); 8087} 8088 8089int64_t test_vceqzd_s64(int64_t a) { 8090// CHECK-LABEL: test_vceqzd_s64 8091// CHECK: {{cmeq d[0-9]+, d[0-9]+, #0x0|cmp x0, #0}} 8092 return (int64_t)vceqzd_s64(a); 8093} 8094 8095int64_t test_vceqzd_u64(int64_t a) { 8096// CHECK-LABEL: test_vceqzd_u64 8097// CHECK: {{cmeq d[0-9]+, d[0-9]+, #0x0|cmp x0, #0}} 8098 return (int64_t)vceqzd_u64(a); 8099} 8100 8101int64_t test_vcged_s64(int64_t a, int64_t b) { 8102// CHECK-LABEL: test_vcged_s64 8103// CHECK: {{cmge d[0-9]+, d[0-9]+, d[0-9]+|cmp x0, x1}} 8104 return (int64_t)vcged_s64(a, b); 8105} 8106 8107uint64_t test_vcged_u64(uint64_t a, uint64_t b) { 8108// CHECK-LABEL: test_vcged_u64 8109// CHECK: {{cmhs d[0-9]+, d[0-9]+, d[0-9]+|cmp x0, x1}} 8110 return (uint64_t)vcged_u64(a, b); 8111} 8112 8113int64_t test_vcgezd_s64(int64_t a) { 8114// CHECK-LABEL: test_vcgezd_s64 8115// CHECK: {{cmge d[0-9]+, d[0-9]+, #0x0|eor x0, x[0-9]+, x0, asr #63}} 8116 return (int64_t)vcgezd_s64(a); 8117} 8118 8119int64_t test_vcgtd_s64(int64_t a, int64_t b) { 8120// CHECK-LABEL: test_vcgtd_s64 8121// CHECK: {{cmgt d[0-9]+, d[0-9]+, d[0-9]+|cmp x0, x1}} 8122 return (int64_t)vcgtd_s64(a, b); 8123} 8124 8125uint64_t test_vcgtd_u64(uint64_t a, uint64_t b) { 8126// CHECK-LABEL: test_vcgtd_u64 8127// CHECK: {{cmhi d[0-9]+, d[0-9]+, d[0-9]+|cmp x0, x1}} 8128 return (uint64_t)vcgtd_u64(a, b); 8129} 8130 8131int64_t test_vcgtzd_s64(int64_t a) { 8132// CHECK-LABEL: test_vcgtzd_s64 8133// CHECK: {{cmgt d[0-9]+, d[0-9]+, #0x0|cmp x0, #0}} 8134 return (int64_t)vcgtzd_s64(a); 8135} 8136 8137int64_t test_vcled_s64(int64_t a, int64_t b) { 8138// CHECK-LABEL: test_vcled_s64 8139// CHECK: {{cmge d[0-9]+, d[0-9]+, d[0-9]+|cmp x0, x1}} 8140 return (int64_t)vcled_s64(a, b); 8141} 8142 8143uint64_t test_vcled_u64(uint64_t a, uint64_t b) { 8144// CHECK-LABEL: test_vcled_u64 8145// CHECK: {{cmhs d[0-9]+, d[0-9]+, d[0-9]+|cmp x0, x1}} 8146 return (uint64_t)vcled_u64(a, b); 8147} 8148 8149int64_t test_vclezd_s64(int64_t a) { 8150// CHECK-LABEL: test_vclezd_s64 8151// CHECK: {{cmle d[0-9]+, d[0-9]+, #0x0|cmp x0, #1}} 8152 return (int64_t)vclezd_s64(a); 8153} 8154 8155int64_t test_vcltd_s64(int64_t a, int64_t b) { 8156// CHECK-LABEL: test_vcltd_s64 8157// CHECK: {{cmgt d[0-9]+, d[0-9]+, d[0-9]+|cmp x0, x1}} 8158 return (int64_t)vcltd_s64(a, b); 8159} 8160 8161uint64_t test_vcltd_u64(uint64_t a, uint64_t b) { 8162// CHECK-LABEL: test_vcltd_u64 8163// CHECK: {{cmhi d[0-9]+, d[0-9]+, d[0-9]+|cmp x0, x1}} 8164 return (uint64_t)vcltd_u64(a, b); 8165} 8166 8167int64_t test_vcltzd_s64(int64_t a) { 8168// CHECK-LABEL: test_vcltzd_s64 8169// CHECK: {{cmlt d[0-9]+, d[0-9]+, #0x0|asr x0, x0, #63}} 8170 return (int64_t)vcltzd_s64(a); 8171} 8172 8173int64_t test_vtstd_s64(int64_t a, int64_t b) { 8174// CHECK-LABEL: test_vtstd_s64 8175// CHECK: {{cmtst d[0-9]+, d[0-9]+, d[0-9]+|tst x1, x0}} 8176 return (int64_t)vtstd_s64(a, b); 8177} 8178 8179uint64_t test_vtstd_u64(uint64_t a, uint64_t b) { 8180// CHECK-LABEL: test_vtstd_u64 8181// CHECK: {{cmtst d[0-9]+, d[0-9]+, d[0-9]+|tst x1, x0}} 8182 return (uint64_t)vtstd_u64(a, b); 8183} 8184 8185int64_t test_vabsd_s64(int64_t a) { 8186// CHECK-LABEL: test_vabsd_s64 8187// CHECK: abs {{d[0-9]+}}, {{d[0-9]+}} 8188 return (int64_t)vabsd_s64(a); 8189} 8190 8191int8_t test_vqabsb_s8(int8_t a) { 8192// CHECK-LABEL: test_vqabsb_s8 8193// CHECK: sqabs {{b[0-9]+|v[0-9]+.8b}}, {{b[0-9]+|v[0-9]+.8b}} 8194 return (int8_t)vqabsb_s8(a); 8195} 8196 8197int16_t test_vqabsh_s16(int16_t a) { 8198// CHECK-LABEL: test_vqabsh_s16 8199// CHECK: sqabs {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}} 8200 return (int16_t)vqabsh_s16(a); 8201} 8202 8203int32_t test_vqabss_s32(int32_t a) { 8204// CHECK-LABEL: test_vqabss_s32 8205// CHECK: sqabs {{s[0-9]+}}, {{s[0-9]+}} 8206 return (int32_t)vqabss_s32(a); 8207} 8208 8209int64_t test_vqabsd_s64(int64_t a) { 8210// CHECK-LABEL: test_vqabsd_s64 8211// CHECK: sqabs {{d[0-9]+}}, {{d[0-9]+}} 8212 return (int64_t)vqabsd_s64(a); 8213} 8214 8215int64_t test_vnegd_s64(int64_t a) { 8216// CHECK-LABEL: test_vnegd_s64 8217// CHECK: neg {{[xd][0-9]+}}, {{[xd][0-9]+}} 8218 return (int64_t)vnegd_s64(a); 8219} 8220 8221int8_t test_vqnegb_s8(int8_t a) { 8222// CHECK-LABEL: test_vqnegb_s8 8223// CHECK: sqneg {{b[0-9]+|v[0-9]+.8b}}, {{b[0-9]+|v[0-9]+.8b}} 8224 return (int8_t)vqnegb_s8(a); 8225} 8226 8227int16_t test_vqnegh_s16(int16_t a) { 8228// CHECK-LABEL: test_vqnegh_s16 8229// CHECK: sqneg {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}} 8230 return (int16_t)vqnegh_s16(a); 8231} 8232 8233int32_t test_vqnegs_s32(int32_t a) { 8234// CHECK-LABEL: test_vqnegs_s32 8235// CHECK: sqneg {{s[0-9]+}}, {{s[0-9]+}} 8236 return (int32_t)vqnegs_s32(a); 8237} 8238 8239int64_t test_vqnegd_s64(int64_t a) { 8240// CHECK-LABEL: test_vqnegd_s64 8241// CHECK: sqneg {{d[0-9]+}}, {{d[0-9]+}} 8242 return (int64_t)vqnegd_s64(a); 8243} 8244 8245int8_t test_vuqaddb_s8(int8_t a, int8_t b) { 8246// CHECK-LABEL: test_vuqaddb_s8 8247// CHECK: suqadd {{b[0-9]+|v[0-9]+.8b}}, {{b[0-9]+|v[0-9]+.8b}} 8248 return (int8_t)vuqaddb_s8(a, b); 8249} 8250 8251int16_t test_vuqaddh_s16(int16_t a, int16_t b) { 8252// CHECK-LABEL: test_vuqaddh_s16 8253// CHECK: suqadd {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}} 8254 return (int16_t)vuqaddh_s16(a, b); 8255} 8256 8257int32_t test_vuqadds_s32(int32_t a, int32_t b) { 8258// CHECK-LABEL: test_vuqadds_s32 8259// CHECK: suqadd {{s[0-9]+}}, {{s[0-9]+}} 8260 return (int32_t)vuqadds_s32(a, b); 8261} 8262 8263int64_t test_vuqaddd_s64(int64_t a, int64_t b) { 8264// CHECK-LABEL: test_vuqaddd_s64 8265// CHECK: suqadd {{d[0-9]+}}, {{d[0-9]+}} 8266 return (int64_t)vuqaddd_s64(a, b); 8267} 8268 8269uint8_t test_vsqaddb_u8(uint8_t a, uint8_t b) { 8270// CHECK-LABEL: test_vsqaddb_u8 8271// CHECK: usqadd {{b[0-9]+|v[0-9]+.8b}}, {{b[0-9]+|v[0-9]+.8b}} 8272 return (uint8_t)vsqaddb_u8(a, b); 8273} 8274 8275uint16_t test_vsqaddh_u16(uint16_t a, uint16_t b) { 8276// CHECK-LABEL: test_vsqaddh_u16 8277// CHECK: usqadd {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}} 8278 return (uint16_t)vsqaddh_u16(a, b); 8279} 8280 8281uint32_t test_vsqadds_u32(uint32_t a, uint32_t b) { 8282// CHECK-LABEL: test_vsqadds_u32 8283// CHECK: usqadd {{s[0-9]+}}, {{s[0-9]+}} 8284 return (uint32_t)vsqadds_u32(a, b); 8285} 8286 8287uint64_t test_vsqaddd_u64(uint64_t a, uint64_t b) { 8288// CHECK-LABEL: test_vsqaddd_u64 8289// CHECK: usqadd {{d[0-9]+}}, {{d[0-9]+}} 8290 return (uint64_t)vsqaddd_u64(a, b); 8291} 8292 8293int32_t test_vqdmlalh_s16(int32_t a, int16_t b, int16_t c) { 8294 8295// CHECK-ARM64-LABEL: test_vqdmlalh_s16 8296// CHECK-ARM64: sqdmull v[[PROD:[0-9]+]].4s, {{v[0-9]+.4h}}, {{v[0-9]+.4h}} 8297// CHECK-ARM64: sqadd {{s[0-9]+}}, {{s[0-9]+}}, s[[PROD]] 8298 return (int32_t)vqdmlalh_s16(a, b, c); 8299} 8300 8301int64_t test_vqdmlals_s32(int64_t a, int32_t b, int32_t c) { 8302// CHECK-LABEL: test_vqdmlals_s32 8303// CHECK: sqdmlal {{d[0-9]+}}, {{s[0-9]+}}, {{s[0-9]+}} 8304 return (int64_t)vqdmlals_s32(a, b, c); 8305} 8306 8307int32_t test_vqdmlslh_s16(int32_t a, int16_t b, int16_t c) { 8308 8309// CHECK-ARM64-LABEL: test_vqdmlslh_s16 8310// CHECK-ARM64: sqdmull v[[PROD:[0-9]+]].4s, {{v[0-9]+.4h}}, {{v[0-9]+.4h}} 8311// CHECK-ARM64: sqsub {{s[0-9]+}}, {{s[0-9]+}}, s[[PROD]] 8312 return (int32_t)vqdmlslh_s16(a, b, c); 8313} 8314 8315int64_t test_vqdmlsls_s32(int64_t a, int32_t b, int32_t c) { 8316// CHECK-LABEL: test_vqdmlsls_s32 8317// CHECK: sqdmlsl {{d[0-9]+}}, {{s[0-9]+}}, {{s[0-9]+}} 8318 return (int64_t)vqdmlsls_s32(a, b, c); 8319} 8320 8321int32_t test_vqdmullh_s16(int16_t a, int16_t b) { 8322// CHECK-LABEL: test_vqdmullh_s16 8323// CHECK: sqdmull {{s[0-9]+|v[0-9]+.4s}}, {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}} 8324 return (int32_t)vqdmullh_s16(a, b); 8325} 8326 8327int64_t test_vqdmulls_s32(int32_t a, int32_t b) { 8328// CHECK-LABEL: test_vqdmulls_s32 8329// CHECK: sqdmull {{d[0-9]+}}, {{s[0-9]+}}, {{s[0-9]+}} 8330 return (int64_t)vqdmulls_s32(a, b); 8331} 8332 8333int8_t test_vqmovunh_s16(int16_t a) { 8334// CHECK-LABEL: test_vqmovunh_s16 8335// CHECK: sqxtun {{b[0-9]+|v[0-9]+.8b}}, {{h[0-9]+|v[0-9]+.8h}} 8336 return (int8_t)vqmovunh_s16(a); 8337} 8338 8339int16_t test_vqmovuns_s32(int32_t a) { 8340// CHECK-LABEL: test_vqmovuns_s32 8341// CHECK: sqxtun {{h[0-9]+|v[0-9]+.4h}}, {{s[0-9]+|v[0-9]+.4s}} 8342 return (int16_t)vqmovuns_s32(a); 8343} 8344 8345int32_t test_vqmovund_s64(int64_t a) { 8346// CHECK-LABEL: test_vqmovund_s64 8347// CHECK: sqxtun {{s[0-9]+}}, {{d[0-9]+}} 8348 return (int32_t)vqmovund_s64(a); 8349} 8350 8351int8_t test_vqmovnh_s16(int16_t a) { 8352// CHECK-LABEL: test_vqmovnh_s16 8353// CHECK: sqxtn {{b[0-9]+|v[0-9]+.8b}}, {{h[0-9]+|v[0-9]+.8h}} 8354 return (int8_t)vqmovnh_s16(a); 8355} 8356 8357int16_t test_vqmovns_s32(int32_t a) { 8358// CHECK-LABEL: test_vqmovns_s32 8359// CHECK: sqxtn {{h[0-9]+|v[0-9]+.4h}}, {{s[0-9]+|v[0-9]+.4s}} 8360 return (int16_t)vqmovns_s32(a); 8361} 8362 8363int32_t test_vqmovnd_s64(int64_t a) { 8364// CHECK-LABEL: test_vqmovnd_s64 8365// CHECK: sqxtn {{s[0-9]+}}, {{d[0-9]+}} 8366 return (int32_t)vqmovnd_s64(a); 8367} 8368 8369int8_t test_vqmovnh_u16(int16_t a) { 8370// CHECK-LABEL: test_vqmovnh_u16 8371// CHECK: uqxtn {{b[0-9]+|v[0-9]+.8b}}, {{h[0-9]+|v[0-9]+.8h}} 8372 return (int8_t)vqmovnh_u16(a); 8373} 8374 8375int16_t test_vqmovns_u32(int32_t a) { 8376// CHECK-LABEL: test_vqmovns_u32 8377// CHECK: uqxtn {{h[0-9]+|v[0-9]+.4h}}, {{s[0-9]+|v[0-9]+.4s}} 8378 return (int16_t)vqmovns_u32(a); 8379} 8380 8381int32_t test_vqmovnd_u64(int64_t a) { 8382// CHECK-LABEL: test_vqmovnd_u64 8383// CHECK: uqxtn {{s[0-9]+}}, {{d[0-9]+}} 8384 return (int32_t)vqmovnd_u64(a); 8385} 8386 8387uint32_t test_vceqs_f32(float32_t a, float32_t b) { 8388// CHECK-LABEL: test_vceqs_f32 8389// CHECK: {{fcmeq s0, s0, s1|fcmp s0, s1}} 8390 return (uint32_t)vceqs_f32(a, b); 8391} 8392 8393uint64_t test_vceqd_f64(float64_t a, float64_t b) { 8394// CHECK-LABEL: test_vceqd_f64 8395// CHECK: {{fcmeq d0, d0, d1|fcmp d0, d1}} 8396 return (uint64_t)vceqd_f64(a, b); 8397} 8398 8399uint32_t test_vceqzs_f32(float32_t a) { 8400// CHECK-LABEL: test_vceqzs_f32 8401// CHECK: {{fcmeq s0, s0, #0.0|fcmp s0, #0.0}} 8402 return (uint32_t)vceqzs_f32(a); 8403} 8404 8405uint64_t test_vceqzd_f64(float64_t a) { 8406// CHECK-LABEL: test_vceqzd_f64 8407// CHECK: {{fcmeq d0, d0, #0.0|fcmp d0, #0.0}} 8408 return (uint64_t)vceqzd_f64(a); 8409} 8410 8411uint32_t test_vcges_f32(float32_t a, float32_t b) { 8412// CHECK-LABEL: test_vcges_f32 8413// CHECK: {{fcmge s0, s0, s1|fcmp s0, s1}} 8414 return (uint32_t)vcges_f32(a, b); 8415} 8416 8417uint64_t test_vcged_f64(float64_t a, float64_t b) { 8418// CHECK-LABEL: test_vcged_f64 8419// CHECK: {{fcmge d0, d0, d1|fcmp d0, d1}} 8420 return (uint64_t)vcged_f64(a, b); 8421} 8422 8423uint32_t test_vcgezs_f32(float32_t a) { 8424// CHECK-LABEL: test_vcgezs_f32 8425// CHECK: {{fcmge s0, s0, #0.0|fcmp s0, #0.0}} 8426 return (uint32_t)vcgezs_f32(a); 8427} 8428 8429uint64_t test_vcgezd_f64(float64_t a) { 8430// CHECK-LABEL: test_vcgezd_f64 8431// CHECK: {{fcmge d0, d0, #0.0|fcmp d0, #0.0}} 8432 return (uint64_t)vcgezd_f64(a); 8433} 8434 8435uint32_t test_vcgts_f32(float32_t a, float32_t b) { 8436// CHECK-LABEL: test_vcgts_f32 8437// CHECK: {{fcmgt s0, s0, s1|fcmp s0, s1}} 8438 return (uint32_t)vcgts_f32(a, b); 8439} 8440 8441uint64_t test_vcgtd_f64(float64_t a, float64_t b) { 8442// CHECK-LABEL: test_vcgtd_f64 8443// CHECK: {{fcmgt d0, d0, d1|fcmp d0, d1}} 8444 return (uint64_t)vcgtd_f64(a, b); 8445} 8446 8447uint32_t test_vcgtzs_f32(float32_t a) { 8448// CHECK-LABEL: test_vcgtzs_f32 8449// CHECK: {{fcmgt s0, s0, #0.0|fcmp s0, #0.0}} 8450 return (uint32_t)vcgtzs_f32(a); 8451} 8452 8453uint64_t test_vcgtzd_f64(float64_t a) { 8454// CHECK-LABEL: test_vcgtzd_f64 8455// CHECK: {{fcmgt d0, d0, #0.0|fcmp d0, #0.0}} 8456 return (uint64_t)vcgtzd_f64(a); 8457} 8458 8459uint32_t test_vcles_f32(float32_t a, float32_t b) { 8460// CHECK-LABEL: test_vcles_f32 8461// CHECK: {{fcmge s0, s1, s0|fcmp s0, s1}} 8462 return (uint32_t)vcles_f32(a, b); 8463} 8464 8465uint64_t test_vcled_f64(float64_t a, float64_t b) { 8466// CHECK-LABEL: test_vcled_f64 8467// CHECK: {{fcmge d0, d1, d0|fcmp d0, d1}} 8468 return (uint64_t)vcled_f64(a, b); 8469} 8470 8471uint32_t test_vclezs_f32(float32_t a) { 8472// CHECK-LABEL: test_vclezs_f32 8473// CHECK: {{fcmle s0, s0, #0.0|fcmp s0, #0.0}} 8474 return (uint32_t)vclezs_f32(a); 8475} 8476 8477uint64_t test_vclezd_f64(float64_t a) { 8478// CHECK-LABEL: test_vclezd_f64 8479// CHECK: {{fcmle d0, d0, #0.0|fcmp d0, #0.0}} 8480 return (uint64_t)vclezd_f64(a); 8481} 8482 8483uint32_t test_vclts_f32(float32_t a, float32_t b) { 8484// CHECK-LABEL: test_vclts_f32 8485// CHECK: {{fcmgt s0, s1, s0|fcmp s0, s1}} 8486 return (uint32_t)vclts_f32(a, b); 8487} 8488 8489uint64_t test_vcltd_f64(float64_t a, float64_t b) { 8490// CHECK-LABEL: test_vcltd_f64 8491// CHECK: {{fcmgt d0, d1, d0|fcmp d0, d1}} 8492 return (uint64_t)vcltd_f64(a, b); 8493} 8494 8495uint32_t test_vcltzs_f32(float32_t a) { 8496// CHECK-LABEL: test_vcltzs_f32 8497// CHECK: {{fcmlt s0, s0, #0.0|fcmp s0, #0.0}} 8498 return (uint32_t)vcltzs_f32(a); 8499} 8500 8501uint64_t test_vcltzd_f64(float64_t a) { 8502// CHECK-LABEL: test_vcltzd_f64 8503// CHECK: {{fcmlt d0, d0, #0.0|fcmp d0, #0.0}} 8504 return (uint64_t)vcltzd_f64(a); 8505} 8506 8507uint32_t test_vcages_f32(float32_t a, float32_t b) { 8508// CHECK-LABEL: test_vcages_f32 8509// CHECK: facge s0, s0, s1 8510 return (uint32_t)vcages_f32(a, b); 8511} 8512 8513uint64_t test_vcaged_f64(float64_t a, float64_t b) { 8514// CHECK-LABEL: test_vcaged_f64 8515// CHECK: facge d0, d0, d1 8516 return (uint64_t)vcaged_f64(a, b); 8517} 8518 8519uint32_t test_vcagts_f32(float32_t a, float32_t b) { 8520// CHECK-LABEL: test_vcagts_f32 8521// CHECK: facgt s0, s0, s1 8522 return (uint32_t)vcagts_f32(a, b); 8523} 8524 8525uint64_t test_vcagtd_f64(float64_t a, float64_t b) { 8526// CHECK-LABEL: test_vcagtd_f64 8527// CHECK: facgt d0, d0, d1 8528 return (uint64_t)vcagtd_f64(a, b); 8529} 8530 8531uint32_t test_vcales_f32(float32_t a, float32_t b) { 8532// CHECK-LABEL: test_vcales_f32 8533// CHECK: facge s0, s1, s0 8534 return (uint32_t)vcales_f32(a, b); 8535} 8536 8537uint64_t test_vcaled_f64(float64_t a, float64_t b) { 8538// CHECK-LABEL: test_vcaled_f64 8539// CHECK: facge d0, d1, d0 8540 return (uint64_t)vcaled_f64(a, b); 8541} 8542 8543uint32_t test_vcalts_f32(float32_t a, float32_t b) { 8544// CHECK-LABEL: test_vcalts_f32 8545// CHECK: facgt s0, s1, s0 8546 return (uint32_t)vcalts_f32(a, b); 8547} 8548 8549uint64_t test_vcaltd_f64(float64_t a, float64_t b) { 8550// CHECK-LABEL: test_vcaltd_f64 8551// CHECK: facgt d0, d1, d0 8552 return (uint64_t)vcaltd_f64(a, b); 8553} 8554 8555int64_t test_vshrd_n_s64(int64_t a) { 8556// CHECK-LABEL: test_vshrd_n_s64 8557// CHECK: {{sshr d[0-9]+, d[0-9]+, #1|asr x0, x0, #1}} 8558 return (int64_t)vshrd_n_s64(a, 1); 8559} 8560 8561int64x1_t test_vshr_n_s64(int64x1_t a) { 8562// CHECK-LABEL: test_vshr_n_s64 8563// CHECK: sshr {{d[0-9]+}}, {{d[0-9]+}}, #1 8564 return vshr_n_s64(a, 1); 8565} 8566 8567uint64_t test_vshrd_n_u64(uint64_t a) { 8568 8569// CHECK-ARM64-LABEL: test_vshrd_n_u64 8570// CHECK-ARM64: mov x0, xzr 8571 return (uint64_t)vshrd_n_u64(a, 64); 8572} 8573 8574uint64_t test_vshrd_n_u64_2() { 8575 8576// CHECK-ARM64-LABEL: test_vshrd_n_u64_2 8577// CHECK-ARM64: mov x0, xzr 8578 uint64_t a = UINT64_C(0xf000000000000000); 8579 return vshrd_n_u64(a, 64); 8580} 8581 8582uint64x1_t test_vshr_n_u64(uint64x1_t a) { 8583// CHECK-LABEL: test_vshr_n_u64 8584// CHECK: ushr {{d[0-9]+}}, {{d[0-9]+}}, #1 8585 return vshr_n_u64(a, 1); 8586} 8587 8588int64_t test_vrshrd_n_s64(int64_t a) { 8589// CHECK-LABEL: test_vrshrd_n_s64 8590// CHECK: srshr {{d[0-9]+}}, {{d[0-9]+}}, #63 8591 return (int64_t)vrshrd_n_s64(a, 63); 8592} 8593 8594int64x1_t test_vrshr_n_s64(int64x1_t a) { 8595// CHECK-LABEL: test_vrshr_n_s64 8596// CHECK: srshr d{{[0-9]+}}, d{{[0-9]+}}, #1 8597 return vrshr_n_s64(a, 1); 8598} 8599 8600uint64_t test_vrshrd_n_u64(uint64_t a) { 8601// CHECK-LABEL: test_vrshrd_n_u64 8602// CHECK: urshr {{d[0-9]+}}, {{d[0-9]+}}, #63 8603 return (uint64_t)vrshrd_n_u64(a, 63); 8604} 8605 8606uint64x1_t test_vrshr_n_u64(uint64x1_t a) { 8607// CHECK-LABEL: test_vrshr_n_u64 8608// CHECK: urshr d{{[0-9]+}}, d{{[0-9]+}}, #1 8609 return vrshr_n_u64(a, 1); 8610} 8611 8612int64_t test_vsrad_n_s64(int64_t a, int64_t b) { 8613// CHECK-LABEL: test_vsrad_n_s64 8614// CHECK: {{ssra d[0-9]+, d[0-9]+, #63|add x0, x0, x1, asr #63}} 8615 return (int64_t)vsrad_n_s64(a, b, 63); 8616} 8617 8618int64x1_t test_vsra_n_s64(int64x1_t a, int64x1_t b) { 8619// CHECK-LABEL: test_vsra_n_s64 8620// CHECK: ssra d{{[0-9]+}}, d{{[0-9]+}}, #1 8621 return vsra_n_s64(a, b, 1); 8622} 8623 8624uint64_t test_vsrad_n_u64(uint64_t a, uint64_t b) { 8625// CHECK-LABEL: test_vsrad_n_u64 8626// CHECK: {{usra d[0-9]+, d[0-9]+, #63|add x0, x0, x1, lsr #63}} 8627 return (uint64_t)vsrad_n_u64(a, b, 63); 8628} 8629 8630uint64_t test_vsrad_n_u64_2(uint64_t a, uint64_t b) { 8631 8632// CHECK-ARM64-LABEL: test_vsrad_n_u64_2 8633// CHECK-ARM64-NOT: add 8634 return (uint64_t)vsrad_n_u64(a, b, 64); 8635} 8636 8637uint64x1_t test_vsra_n_u64(uint64x1_t a, uint64x1_t b) { 8638// CHECK-LABEL: test_vsra_n_u64 8639// CHECK: usra d{{[0-9]+}}, d{{[0-9]+}}, #1 8640 return vsra_n_u64(a, b, 1); 8641} 8642 8643int64_t test_vrsrad_n_s64(int64_t a, int64_t b) { 8644// CHECK-LABEL: test_vrsrad_n_s64 8645// CHECK: {{srsra d[0-9]+, d[0-9]+, #63}} 8646 return (int64_t)vrsrad_n_s64(a, b, 63); 8647} 8648 8649int64x1_t test_vrsra_n_s64(int64x1_t a, int64x1_t b) { 8650// CHECK-LABEL: test_vrsra_n_s64 8651// CHECK: srsra d{{[0-9]+}}, d{{[0-9]+}}, #1 8652 return vrsra_n_s64(a, b, 1); 8653} 8654 8655uint64_t test_vrsrad_n_u64(uint64_t a, uint64_t b) { 8656// CHECK-LABEL: test_vrsrad_n_u64 8657// CHECK: ursra {{d[0-9]+}}, {{d[0-9]+}}, #63 8658 return (uint64_t)vrsrad_n_u64(a, b, 63); 8659} 8660 8661uint64x1_t test_vrsra_n_u64(uint64x1_t a, uint64x1_t b) { 8662// CHECK-LABEL: test_vrsra_n_u64 8663// CHECK: ursra d{{[0-9]+}}, d{{[0-9]+}}, #1 8664 return vrsra_n_u64(a, b, 1); 8665} 8666 8667int64_t test_vshld_n_s64(int64_t a) { 8668// CHECK-LABEL: test_vshld_n_s64 8669// CHECK: {{shl d[0-9]+, d[0-9]+, #1|lsl x0, x0, #1}} 8670 return (int64_t)vshld_n_s64(a, 1); 8671} 8672int64x1_t test_vshl_n_s64(int64x1_t a) { 8673// CHECK-LABEL: test_vshl_n_s64 8674// CHECK: shl d{{[0-9]+}}, d{{[0-9]+}}, #1 8675 return vshl_n_s64(a, 1); 8676} 8677 8678uint64_t test_vshld_n_u64(uint64_t a) { 8679// CHECK-LABEL: test_vshld_n_u64 8680// CHECK: {{shl d[0-9]+, d[0-9]+, #63|lsl x0, x0, #63}} 8681 return (uint64_t)vshld_n_u64(a, 63); 8682} 8683 8684uint64x1_t test_vshl_n_u64(uint64x1_t a) { 8685// CHECK-LABEL: test_vshl_n_u64 8686// CHECK: shl d{{[0-9]+}}, d{{[0-9]+}}, #1 8687 return vshl_n_u64(a, 1); 8688} 8689 8690int8_t test_vqshlb_n_s8(int8_t a) { 8691// CHECK-LABEL: test_vqshlb_n_s8 8692// CHECK: sqshl {{b[0-9]+|v[0-9]+.8b}}, {{b[0-9]+|v[0-9]+.8b}}, #7 8693 return (int8_t)vqshlb_n_s8(a, 7); 8694} 8695 8696int16_t test_vqshlh_n_s16(int16_t a) { 8697// CHECK-LABEL: test_vqshlh_n_s16 8698// CHECK: sqshl {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}}, #15 8699 return (int16_t)vqshlh_n_s16(a, 15); 8700} 8701 8702int32_t test_vqshls_n_s32(int32_t a) { 8703// CHECK-LABEL: test_vqshls_n_s32 8704// CHECK: sqshl {{s[0-9]+}}, {{s[0-9]+}}, #31 8705 return (int32_t)vqshls_n_s32(a, 31); 8706} 8707 8708int64_t test_vqshld_n_s64(int64_t a) { 8709// CHECK-LABEL: test_vqshld_n_s64 8710// CHECK: sqshl {{d[0-9]+}}, {{d[0-9]+}}, #63 8711 return (int64_t)vqshld_n_s64(a, 63); 8712} 8713 8714int8x8_t test_vqshl_n_s8(int8x8_t a) { 8715 // CHECK-LABEL: test_vqshl_n_s8 8716 return vqshl_n_s8(a, 0); 8717 // CHECK: sqshl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #0 8718} 8719 8720int8x16_t test_vqshlq_n_s8(int8x16_t a) { 8721 // CHECK-LABEL: test_vqshlq_n_s8 8722 return vqshlq_n_s8(a, 0); 8723 // CHECK: sqshl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #0 8724} 8725 8726int16x4_t test_vqshl_n_s16(int16x4_t a) { 8727 // CHECK-LABEL: test_vqshl_n_s16 8728 return vqshl_n_s16(a, 0); 8729 // CHECK: sqshl {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #0 8730} 8731 8732int16x8_t test_vqshlq_n_s16(int16x8_t a) { 8733 // CHECK-LABEL: test_vqshlq_n_s16 8734 return vqshlq_n_s16(a, 0); 8735 // CHECK: sqshl {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #0 8736} 8737 8738int32x2_t test_vqshl_n_s32(int32x2_t a) { 8739 // CHECK-LABEL: test_vqshl_n_s32 8740 return vqshl_n_s32(a, 0); 8741 // CHECK: sqshl {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #0 8742} 8743 8744int32x4_t test_vqshlq_n_s32(int32x4_t a) { 8745 // CHECK-LABEL: test_vqshlq_n_s32 8746 return vqshlq_n_s32(a, 0); 8747 // CHECK: sqshl {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #0 8748} 8749 8750int64x2_t test_vqshlq_n_s64(int64x2_t a) { 8751 // CHECK-LABEL: test_vqshlq_n_s64 8752 return vqshlq_n_s64(a, 0); 8753 // CHECK: sqshl {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #0 8754} 8755 8756uint8x8_t test_vqshl_n_u8(uint8x8_t a) { 8757 // CHECK-LABEL: test_vqshl_n_u8 8758 return vqshl_n_u8(a, 0); 8759 // CHECK: uqshl {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, #0 8760} 8761 8762uint8x16_t test_vqshlq_n_u8(uint8x16_t a) { 8763 // CHECK-LABEL: test_vqshlq_n_u8 8764 return vqshlq_n_u8(a, 0); 8765 // CHECK: uqshl {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, #0 8766} 8767 8768uint16x4_t test_vqshl_n_u16(uint16x4_t a) { 8769 // CHECK-LABEL: test_vqshl_n_u16 8770 return vqshl_n_u16(a, 0); 8771 // CHECK: uqshl {{v[0-9]+}}.4h, {{v[0-9]+}}.4h, #0 8772} 8773 8774uint16x8_t test_vqshlq_n_u16(uint16x8_t a) { 8775 // CHECK-LABEL: test_vqshlq_n_u16 8776 return vqshlq_n_u16(a, 0); 8777 // CHECK: uqshl {{v[0-9]+}}.8h, {{v[0-9]+}}.8h, #0 8778} 8779 8780uint32x2_t test_vqshl_n_u32(uint32x2_t a) { 8781 // CHECK-LABEL: test_vqshl_n_u32 8782 return vqshl_n_u32(a, 0); 8783 // CHECK: uqshl {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, #0 8784} 8785 8786uint32x4_t test_vqshlq_n_u32(uint32x4_t a) { 8787 // CHECK-LABEL: test_vqshlq_n_u32 8788 return vqshlq_n_u32(a, 0); 8789 // CHECK: uqshl {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, #0 8790} 8791 8792uint64x2_t test_vqshlq_n_u64(uint64x2_t a) { 8793 // CHECK-LABEL: test_vqshlq_n_u64 8794 return vqshlq_n_u64(a, 0); 8795 // CHECK: uqshl {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, #0 8796} 8797 8798int64x1_t test_vqshl_n_s64(int64x1_t a) { 8799// CHECK-LABEL: test_vqshl_n_s64 8800// CHECK: sqshl d{{[0-9]+}}, d{{[0-9]+}}, #1 8801 return vqshl_n_s64(a, 1); 8802} 8803 8804uint8_t test_vqshlb_n_u8(uint8_t a) { 8805// CHECK-LABEL: test_vqshlb_n_u8 8806// CHECK: uqshl {{b[0-9]+|v[0-9]+.8b}}, {{b[0-9]+|v[0-9]+.8b}}, #7 8807 return (uint8_t)vqshlb_n_u8(a, 7); 8808} 8809 8810uint16_t test_vqshlh_n_u16(uint16_t a) { 8811// CHECK-LABEL: test_vqshlh_n_u16 8812// CHECK: uqshl {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}}, #15 8813 return (uint16_t)vqshlh_n_u16(a, 15); 8814} 8815 8816uint32_t test_vqshls_n_u32(uint32_t a) { 8817// CHECK-LABEL: test_vqshls_n_u32 8818// CHECK: uqshl {{s[0-9]+}}, {{s[0-9]+}}, #31 8819 return (uint32_t)vqshls_n_u32(a, 31); 8820} 8821 8822uint64_t test_vqshld_n_u64(uint64_t a) { 8823// CHECK-LABEL: test_vqshld_n_u64 8824// CHECK: uqshl {{d[0-9]+}}, {{d[0-9]+}}, #63 8825 return (uint64_t)vqshld_n_u64(a, 63); 8826} 8827 8828uint64x1_t test_vqshl_n_u64(uint64x1_t a) { 8829// CHECK-LABEL: test_vqshl_n_u64 8830// CHECK: uqshl d{{[0-9]+}}, d{{[0-9]+}}, #1 8831 return vqshl_n_u64(a, 1); 8832} 8833 8834int8_t test_vqshlub_n_s8(int8_t a) { 8835// CHECK-LABEL: test_vqshlub_n_s8 8836// CHECK: sqshlu {{b[0-9]+|v[0-9]+.8b}}, {{b[0-9]+|v[0-9]+.8b}}, #7 8837 return (int8_t)vqshlub_n_s8(a, 7); 8838} 8839 8840int16_t test_vqshluh_n_s16(int16_t a) { 8841// CHECK-LABEL: test_vqshluh_n_s16 8842// CHECK: sqshlu {{h[0-9]+|v[0-9]+.4h}}, {{h[0-9]+|v[0-9]+.4h}}, #15 8843 return (int16_t)vqshluh_n_s16(a, 15); 8844} 8845 8846int32_t test_vqshlus_n_s32(int32_t a) { 8847// CHECK-LABEL: test_vqshlus_n_s32 8848// CHECK: sqshlu {{s[0-9]+}}, {{s[0-9]+}}, #31 8849 return (int32_t)vqshlus_n_s32(a, 31); 8850} 8851 8852int64_t test_vqshlud_n_s64(int64_t a) { 8853// CHECK-LABEL: test_vqshlud_n_s64 8854// CHECK: sqshlu {{d[0-9]+}}, {{d[0-9]+}}, #63 8855 return (int64_t)vqshlud_n_s64(a, 63); 8856} 8857 8858uint64x1_t test_vqshlu_n_s64(int64x1_t a) { 8859// CHECK-LABEL: test_vqshlu_n_s64 8860// CHECK: sqshlu d{{[0-9]+}}, d{{[0-9]+}}, #1 8861 return vqshlu_n_s64(a, 1); 8862} 8863 8864int64_t test_vsrid_n_s64(int64_t a, int64_t b) { 8865// CHECK-LABEL: test_vsrid_n_s64 8866// CHECK: sri {{d[0-9]+}}, {{d[0-9]+}}, #63 8867 return (int64_t)vsrid_n_s64(a, b, 63); 8868} 8869 8870int64x1_t test_vsri_n_s64(int64x1_t a, int64x1_t b) { 8871// CHECK-LABEL: test_vsri_n_s64 8872// CHECK: sri d{{[0-9]+}}, d{{[0-9]+}}, #1 8873 return vsri_n_s64(a, b, 1); 8874} 8875 8876uint64_t test_vsrid_n_u64(uint64_t a, uint64_t b) { 8877// CHECK-LABEL: test_vsrid_n_u64 8878// CHECK: sri {{d[0-9]+}}, {{d[0-9]+}}, #63 8879 return (uint64_t)vsrid_n_u64(a, b, 63); 8880} 8881 8882uint64x1_t test_vsri_n_u64(uint64x1_t a, uint64x1_t b) { 8883// CHECK-LABEL: test_vsri_n_u64 8884// CHECK: sri d{{[0-9]+}}, d{{[0-9]+}}, #1 8885 return vsri_n_u64(a, b, 1); 8886} 8887 8888int64_t test_vslid_n_s64(int64_t a, int64_t b) { 8889// CHECK-LABEL: test_vslid_n_s64 8890// CHECK: sli {{d[0-9]+}}, {{d[0-9]+}}, #63 8891 return (int64_t)vslid_n_s64(a, b, 63); 8892} 8893 8894int64x1_t test_vsli_n_s64(int64x1_t a, int64x1_t b) { 8895// CHECK-LABEL: test_vsli_n_s64 8896// CHECK: sli d{{[0-9]+}}, d{{[0-9]+}}, #1 8897 return vsli_n_s64(a, b, 1); 8898} 8899 8900uint64_t test_vslid_n_u64(uint64_t a, uint64_t b) { 8901// CHECK-LABEL: test_vslid_n_u64 8902// CHECK: sli {{d[0-9]+}}, {{d[0-9]+}}, #63 8903 return (uint64_t)vslid_n_u64(a, b, 63); 8904} 8905 8906uint64x1_t test_vsli_n_u64(uint64x1_t a, uint64x1_t b) { 8907// CHECK-LABEL: test_vsli_n_u64 8908// CHECK: sli d{{[0-9]+}}, d{{[0-9]+}}, #1 8909 return vsli_n_u64(a, b, 1); 8910} 8911 8912int8_t test_vqshrnh_n_s16(int16_t a) { 8913// CHECK-LABEL: test_vqshrnh_n_s16 8914// CHECK: sqshrn {{b[0-9]+|v[0-9]+.8b}}, {{h[0-9]+|v[0-9]+.8h}}, #8 8915 return (int8_t)vqshrnh_n_s16(a, 8); 8916} 8917 8918int16_t test_vqshrns_n_s32(int32_t a) { 8919// CHECK-LABEL: test_vqshrns_n_s32 8920// CHECK: sqshrn {{h[0-9]+|v[0-9]+.4h}}, {{s[0-9]+|v[0-9]+.4s}}, #16 8921 return (int16_t)vqshrns_n_s32(a, 16); 8922} 8923 8924int32_t test_vqshrnd_n_s64(int64_t a) { 8925// CHECK-LABEL: test_vqshrnd_n_s64 8926// CHECK: sqshrn {{s[0-9]+}}, {{d[0-9]+}}, #32 8927 return (int32_t)vqshrnd_n_s64(a, 32); 8928} 8929 8930uint8_t test_vqshrnh_n_u16(uint16_t a) { 8931// CHECK-LABEL: test_vqshrnh_n_u16 8932// CHECK: uqshrn {{b[0-9]+|v[0-9]+.8b}}, {{h[0-9]+|v[0-9]+.8h}}, #8 8933 return (uint8_t)vqshrnh_n_u16(a, 8); 8934} 8935 8936uint16_t test_vqshrns_n_u32(uint32_t a) { 8937// CHECK-LABEL: test_vqshrns_n_u32 8938// CHECK: uqshrn {{h[0-9]+|v[0-9]+.4h}}, {{s[0-9]+|v[0-9]+.4s}}, #16 8939 return (uint16_t)vqshrns_n_u32(a, 16); 8940} 8941 8942uint32_t test_vqshrnd_n_u64(uint64_t a) { 8943// CHECK-LABEL: test_vqshrnd_n_u64 8944// CHECK: uqshrn {{s[0-9]+}}, {{d[0-9]+}}, #32 8945 return (uint32_t)vqshrnd_n_u64(a, 32); 8946} 8947 8948int8_t test_vqrshrnh_n_s16(int16_t a) { 8949// CHECK-LABEL: test_vqrshrnh_n_s16 8950// CHECK: sqrshrn {{b[0-9]+|v[0-9]+.8b}}, {{h[0-9]+|v[0-9]+.8h}}, #8 8951 return (int8_t)vqrshrnh_n_s16(a, 8); 8952} 8953 8954int16_t test_vqrshrns_n_s32(int32_t a) { 8955// CHECK-LABEL: test_vqrshrns_n_s32 8956// CHECK: sqrshrn {{h[0-9]+|v[0-9]+.4h}}, {{s[0-9]+|v[0-9]+.4s}}, #16 8957 return (int16_t)vqrshrns_n_s32(a, 16); 8958} 8959 8960int32_t test_vqrshrnd_n_s64(int64_t a) { 8961// CHECK-LABEL: test_vqrshrnd_n_s64 8962// CHECK: sqrshrn {{s[0-9]+}}, {{d[0-9]+}}, #32 8963 return (int32_t)vqrshrnd_n_s64(a, 32); 8964} 8965 8966uint8_t test_vqrshrnh_n_u16(uint16_t a) { 8967// CHECK-LABEL: test_vqrshrnh_n_u16 8968// CHECK: uqrshrn {{b[0-9]+|v[0-9]+.8b}}, {{h[0-9]+|v[0-9]+.8h}}, #8 8969 return (uint8_t)vqrshrnh_n_u16(a, 8); 8970} 8971 8972uint16_t test_vqrshrns_n_u32(uint32_t a) { 8973// CHECK-LABEL: test_vqrshrns_n_u32 8974// CHECK: uqrshrn {{h[0-9]+|v[0-9]+.4h}}, {{s[0-9]+|v[0-9]+.4s}}, #16 8975 return (uint16_t)vqrshrns_n_u32(a, 16); 8976} 8977 8978uint32_t test_vqrshrnd_n_u64(uint64_t a) { 8979// CHECK-LABEL: test_vqrshrnd_n_u64 8980// CHECK: uqrshrn {{s[0-9]+}}, {{d[0-9]+}}, #32 8981 return (uint32_t)vqrshrnd_n_u64(a, 32); 8982} 8983 8984int8_t test_vqshrunh_n_s16(int16_t a) { 8985// CHECK-LABEL: test_vqshrunh_n_s16 8986// CHECK: sqshrun {{b[0-9]+|v[0-9]+.8b}}, {{h[0-9]+|v[0-9]+.8h}}, #8 8987 return (int8_t)vqshrunh_n_s16(a, 8); 8988} 8989 8990int16_t test_vqshruns_n_s32(int32_t a) { 8991// CHECK-LABEL: test_vqshruns_n_s32 8992// CHECK: sqshrun {{h[0-9]+|v[0-9]+.4h}}, {{s[0-9]+|v[0-9]+.4s}}, #16 8993 return (int16_t)vqshruns_n_s32(a, 16); 8994} 8995 8996int32_t test_vqshrund_n_s64(int64_t a) { 8997// CHECK-LABEL: test_vqshrund_n_s64 8998// CHECK: sqshrun {{s[0-9]+}}, {{d[0-9]+}}, #32 8999 return (int32_t)vqshrund_n_s64(a, 32); 9000} 9001 9002int8_t test_vqrshrunh_n_s16(int16_t a) { 9003// CHECK-LABEL: test_vqrshrunh_n_s16 9004// CHECK: sqrshrun {{b[0-9]+|v[0-9]+.8b}}, {{h[0-9]+|v[0-9]+.8h}}, #8 9005 return (int8_t)vqrshrunh_n_s16(a, 8); 9006} 9007 9008int16_t test_vqrshruns_n_s32(int32_t a) { 9009// CHECK-LABEL: test_vqrshruns_n_s32 9010// CHECK: sqrshrun {{h[0-9]+|v[0-9]+.4h}}, {{s[0-9]+|v[0-9]+.4s}}, #16 9011 return (int16_t)vqrshruns_n_s32(a, 16); 9012} 9013 9014int32_t test_vqrshrund_n_s64(int64_t a) { 9015// CHECK-LABEL: test_vqrshrund_n_s64 9016// CHECK: sqrshrun {{s[0-9]+}}, {{d[0-9]+}}, #32 9017 return (int32_t)vqrshrund_n_s64(a, 32); 9018} 9019 9020float32_t test_vcvts_n_f32_s32(int32_t a) { 9021// CHECK-LABEL: test_vcvts_n_f32_s32 9022// CHECK: scvtf {{s[0-9]+}}, {{s[0-9]+}}, #1 9023 return vcvts_n_f32_s32(a, 1); 9024} 9025 9026float64_t test_vcvtd_n_f64_s64(int64_t a) { 9027// CHECK-LABEL: test_vcvtd_n_f64_s64 9028// CHECK: scvtf {{d[0-9]+}}, {{d[0-9]+}}, #1 9029 return vcvtd_n_f64_s64(a, 1); 9030} 9031 9032float32_t test_vcvts_n_f32_u32(uint32_t a) { 9033// CHECK-LABEL: test_vcvts_n_f32_u32 9034// CHECK: ucvtf {{s[0-9]+}}, {{s[0-9]+}}, #32 9035 return vcvts_n_f32_u32(a, 32); 9036} 9037 9038float64_t test_vcvtd_n_f64_u64(uint64_t a) { 9039// CHECK-LABEL: test_vcvtd_n_f64_u64 9040// CHECK: ucvtf {{d[0-9]+}}, {{d[0-9]+}}, #64 9041 return vcvtd_n_f64_u64(a, 64); 9042} 9043 9044int32_t test_vcvts_n_s32_f32(float32_t a) { 9045// CHECK-LABEL: test_vcvts_n_s32_f32 9046// CHECK: fcvtzs {{s[0-9]+}}, {{s[0-9]+}}, #1 9047 return (int32_t)vcvts_n_s32_f32(a, 1); 9048} 9049 9050int64_t test_vcvtd_n_s64_f64(float64_t a) { 9051// CHECK-LABEL: test_vcvtd_n_s64_f64 9052// CHECK: fcvtzs {{d[0-9]+}}, {{d[0-9]+}}, #1 9053 return (int64_t)vcvtd_n_s64_f64(a, 1); 9054} 9055 9056uint32_t test_vcvts_n_u32_f32(float32_t a) { 9057// CHECK-LABEL: test_vcvts_n_u32_f32 9058// CHECK: fcvtzu {{s[0-9]+}}, {{s[0-9]+}}, #32 9059 return (uint32_t)vcvts_n_u32_f32(a, 32); 9060} 9061 9062uint64_t test_vcvtd_n_u64_f64(float64_t a) { 9063// CHECK-LABEL: test_vcvtd_n_u64_f64 9064// CHECK: fcvtzu {{d[0-9]+}}, {{d[0-9]+}}, #64 9065 return (uint64_t)vcvtd_n_u64_f64(a, 64); 9066} 9067 9068// CHECK-LABEL: test_vreinterpret_s8_s16: 9069// CHECK-NEXT: ret 9070int8x8_t test_vreinterpret_s8_s16(int16x4_t a) { 9071 return vreinterpret_s8_s16(a); 9072} 9073 9074// CHECK-LABEL: test_vreinterpret_s8_s32: 9075// CHECK-NEXT: ret 9076int8x8_t test_vreinterpret_s8_s32(int32x2_t a) { 9077 return vreinterpret_s8_s32(a); 9078} 9079 9080// CHECK-LABEL: test_vreinterpret_s8_s64: 9081// CHECK-NEXT: ret 9082int8x8_t test_vreinterpret_s8_s64(int64x1_t a) { 9083 return vreinterpret_s8_s64(a); 9084} 9085 9086// CHECK-LABEL: test_vreinterpret_s8_u8: 9087// CHECK-NEXT: ret 9088int8x8_t test_vreinterpret_s8_u8(uint8x8_t a) { 9089 return vreinterpret_s8_u8(a); 9090} 9091 9092// CHECK-LABEL: test_vreinterpret_s8_u16: 9093// CHECK-NEXT: ret 9094int8x8_t test_vreinterpret_s8_u16(uint16x4_t a) { 9095 return vreinterpret_s8_u16(a); 9096} 9097 9098// CHECK-LABEL: test_vreinterpret_s8_u32: 9099// CHECK-NEXT: ret 9100int8x8_t test_vreinterpret_s8_u32(uint32x2_t a) { 9101 return vreinterpret_s8_u32(a); 9102} 9103 9104// CHECK-LABEL: test_vreinterpret_s8_u64: 9105// CHECK-NEXT: ret 9106int8x8_t test_vreinterpret_s8_u64(uint64x1_t a) { 9107 return vreinterpret_s8_u64(a); 9108} 9109 9110// CHECK-LABEL: test_vreinterpret_s8_f16: 9111// CHECK-NEXT: ret 9112int8x8_t test_vreinterpret_s8_f16(float16x4_t a) { 9113 return vreinterpret_s8_f16(a); 9114} 9115 9116// CHECK-LABEL: test_vreinterpret_s8_f32: 9117// CHECK-NEXT: ret 9118int8x8_t test_vreinterpret_s8_f32(float32x2_t a) { 9119 return vreinterpret_s8_f32(a); 9120} 9121 9122// CHECK-LABEL: test_vreinterpret_s8_f64: 9123// CHECK-NEXT: ret 9124int8x8_t test_vreinterpret_s8_f64(float64x1_t a) { 9125 return vreinterpret_s8_f64(a); 9126} 9127 9128// CHECK-LABEL: test_vreinterpret_s8_p8: 9129// CHECK-NEXT: ret 9130int8x8_t test_vreinterpret_s8_p8(poly8x8_t a) { 9131 return vreinterpret_s8_p8(a); 9132} 9133 9134// CHECK-LABEL: test_vreinterpret_s8_p16: 9135// CHECK-NEXT: ret 9136int8x8_t test_vreinterpret_s8_p16(poly16x4_t a) { 9137 return vreinterpret_s8_p16(a); 9138} 9139 9140// CHECK-LABEL: test_vreinterpret_s8_p64: 9141// CHECK-NEXT: ret 9142int8x8_t test_vreinterpret_s8_p64(poly64x1_t a) { 9143 return vreinterpret_s8_p64(a); 9144} 9145 9146// CHECK-LABEL: test_vreinterpret_s16_s8: 9147// CHECK-NEXT: ret 9148int16x4_t test_vreinterpret_s16_s8(int8x8_t a) { 9149 return vreinterpret_s16_s8(a); 9150} 9151 9152// CHECK-LABEL: test_vreinterpret_s16_s32: 9153// CHECK-NEXT: ret 9154int16x4_t test_vreinterpret_s16_s32(int32x2_t a) { 9155 return vreinterpret_s16_s32(a); 9156} 9157 9158// CHECK-LABEL: test_vreinterpret_s16_s64: 9159// CHECK-NEXT: ret 9160int16x4_t test_vreinterpret_s16_s64(int64x1_t a) { 9161 return vreinterpret_s16_s64(a); 9162} 9163 9164// CHECK-LABEL: test_vreinterpret_s16_u8: 9165// CHECK-NEXT: ret 9166int16x4_t test_vreinterpret_s16_u8(uint8x8_t a) { 9167 return vreinterpret_s16_u8(a); 9168} 9169 9170// CHECK-LABEL: test_vreinterpret_s16_u16: 9171// CHECK-NEXT: ret 9172int16x4_t test_vreinterpret_s16_u16(uint16x4_t a) { 9173 return vreinterpret_s16_u16(a); 9174} 9175 9176// CHECK-LABEL: test_vreinterpret_s16_u32: 9177// CHECK-NEXT: ret 9178int16x4_t test_vreinterpret_s16_u32(uint32x2_t a) { 9179 return vreinterpret_s16_u32(a); 9180} 9181 9182// CHECK-LABEL: test_vreinterpret_s16_u64: 9183// CHECK-NEXT: ret 9184int16x4_t test_vreinterpret_s16_u64(uint64x1_t a) { 9185 return vreinterpret_s16_u64(a); 9186} 9187 9188// CHECK-LABEL: test_vreinterpret_s16_f16: 9189// CHECK-NEXT: ret 9190int16x4_t test_vreinterpret_s16_f16(float16x4_t a) { 9191 return vreinterpret_s16_f16(a); 9192} 9193 9194// CHECK-LABEL: test_vreinterpret_s16_f32: 9195// CHECK-NEXT: ret 9196int16x4_t test_vreinterpret_s16_f32(float32x2_t a) { 9197 return vreinterpret_s16_f32(a); 9198} 9199 9200// CHECK-LABEL: test_vreinterpret_s16_f64: 9201// CHECK-NEXT: ret 9202int16x4_t test_vreinterpret_s16_f64(float64x1_t a) { 9203 return vreinterpret_s16_f64(a); 9204} 9205 9206// CHECK-LABEL: test_vreinterpret_s16_p8: 9207// CHECK-NEXT: ret 9208int16x4_t test_vreinterpret_s16_p8(poly8x8_t a) { 9209 return vreinterpret_s16_p8(a); 9210} 9211 9212// CHECK-LABEL: test_vreinterpret_s16_p16: 9213// CHECK-NEXT: ret 9214int16x4_t test_vreinterpret_s16_p16(poly16x4_t a) { 9215 return vreinterpret_s16_p16(a); 9216} 9217 9218// CHECK-LABEL: test_vreinterpret_s16_p64: 9219// CHECK-NEXT: ret 9220int16x4_t test_vreinterpret_s16_p64(poly64x1_t a) { 9221 return vreinterpret_s16_p64(a); 9222} 9223 9224// CHECK-LABEL: test_vreinterpret_s32_s8: 9225// CHECK-NEXT: ret 9226int32x2_t test_vreinterpret_s32_s8(int8x8_t a) { 9227 return vreinterpret_s32_s8(a); 9228} 9229 9230// CHECK-LABEL: test_vreinterpret_s32_s16: 9231// CHECK-NEXT: ret 9232int32x2_t test_vreinterpret_s32_s16(int16x4_t a) { 9233 return vreinterpret_s32_s16(a); 9234} 9235 9236// CHECK-LABEL: test_vreinterpret_s32_s64: 9237// CHECK-NEXT: ret 9238int32x2_t test_vreinterpret_s32_s64(int64x1_t a) { 9239 return vreinterpret_s32_s64(a); 9240} 9241 9242// CHECK-LABEL: test_vreinterpret_s32_u8: 9243// CHECK-NEXT: ret 9244int32x2_t test_vreinterpret_s32_u8(uint8x8_t a) { 9245 return vreinterpret_s32_u8(a); 9246} 9247 9248// CHECK-LABEL: test_vreinterpret_s32_u16: 9249// CHECK-NEXT: ret 9250int32x2_t test_vreinterpret_s32_u16(uint16x4_t a) { 9251 return vreinterpret_s32_u16(a); 9252} 9253 9254// CHECK-LABEL: test_vreinterpret_s32_u32: 9255// CHECK-NEXT: ret 9256int32x2_t test_vreinterpret_s32_u32(uint32x2_t a) { 9257 return vreinterpret_s32_u32(a); 9258} 9259 9260// CHECK-LABEL: test_vreinterpret_s32_u64: 9261// CHECK-NEXT: ret 9262int32x2_t test_vreinterpret_s32_u64(uint64x1_t a) { 9263 return vreinterpret_s32_u64(a); 9264} 9265 9266// CHECK-LABEL: test_vreinterpret_s32_f16: 9267// CHECK-NEXT: ret 9268int32x2_t test_vreinterpret_s32_f16(float16x4_t a) { 9269 return vreinterpret_s32_f16(a); 9270} 9271 9272// CHECK-LABEL: test_vreinterpret_s32_f32: 9273// CHECK-NEXT: ret 9274int32x2_t test_vreinterpret_s32_f32(float32x2_t a) { 9275 return vreinterpret_s32_f32(a); 9276} 9277 9278// CHECK-LABEL: test_vreinterpret_s32_f64: 9279// CHECK-NEXT: ret 9280int32x2_t test_vreinterpret_s32_f64(float64x1_t a) { 9281 return vreinterpret_s32_f64(a); 9282} 9283 9284// CHECK-LABEL: test_vreinterpret_s32_p8: 9285// CHECK-NEXT: ret 9286int32x2_t test_vreinterpret_s32_p8(poly8x8_t a) { 9287 return vreinterpret_s32_p8(a); 9288} 9289 9290// CHECK-LABEL: test_vreinterpret_s32_p16: 9291// CHECK-NEXT: ret 9292int32x2_t test_vreinterpret_s32_p16(poly16x4_t a) { 9293 return vreinterpret_s32_p16(a); 9294} 9295 9296// CHECK-LABEL: test_vreinterpret_s32_p64: 9297// CHECK-NEXT: ret 9298int32x2_t test_vreinterpret_s32_p64(poly64x1_t a) { 9299 return vreinterpret_s32_p64(a); 9300} 9301 9302// CHECK-LABEL: test_vreinterpret_s64_s8: 9303// CHECK-NEXT: ret 9304int64x1_t test_vreinterpret_s64_s8(int8x8_t a) { 9305 return vreinterpret_s64_s8(a); 9306} 9307 9308// CHECK-LABEL: test_vreinterpret_s64_s16: 9309// CHECK-NEXT: ret 9310int64x1_t test_vreinterpret_s64_s16(int16x4_t a) { 9311 return vreinterpret_s64_s16(a); 9312} 9313 9314// CHECK-LABEL: test_vreinterpret_s64_s32: 9315// CHECK-NEXT: ret 9316int64x1_t test_vreinterpret_s64_s32(int32x2_t a) { 9317 return vreinterpret_s64_s32(a); 9318} 9319 9320// CHECK-LABEL: test_vreinterpret_s64_u8: 9321// CHECK-NEXT: ret 9322int64x1_t test_vreinterpret_s64_u8(uint8x8_t a) { 9323 return vreinterpret_s64_u8(a); 9324} 9325 9326// CHECK-LABEL: test_vreinterpret_s64_u16: 9327// CHECK-NEXT: ret 9328int64x1_t test_vreinterpret_s64_u16(uint16x4_t a) { 9329 return vreinterpret_s64_u16(a); 9330} 9331 9332// CHECK-LABEL: test_vreinterpret_s64_u32: 9333// CHECK-NEXT: ret 9334int64x1_t test_vreinterpret_s64_u32(uint32x2_t a) { 9335 return vreinterpret_s64_u32(a); 9336} 9337 9338// CHECK-LABEL: test_vreinterpret_s64_u64: 9339// CHECK-NEXT: ret 9340int64x1_t test_vreinterpret_s64_u64(uint64x1_t a) { 9341 return vreinterpret_s64_u64(a); 9342} 9343 9344// CHECK-LABEL: test_vreinterpret_s64_f16: 9345// CHECK-NEXT: ret 9346int64x1_t test_vreinterpret_s64_f16(float16x4_t a) { 9347 return vreinterpret_s64_f16(a); 9348} 9349 9350// CHECK-LABEL: test_vreinterpret_s64_f32: 9351// CHECK-NEXT: ret 9352int64x1_t test_vreinterpret_s64_f32(float32x2_t a) { 9353 return vreinterpret_s64_f32(a); 9354} 9355 9356// CHECK-LABEL: test_vreinterpret_s64_f64: 9357// CHECK-NEXT: ret 9358int64x1_t test_vreinterpret_s64_f64(float64x1_t a) { 9359 return vreinterpret_s64_f64(a); 9360} 9361 9362// CHECK-LABEL: test_vreinterpret_s64_p8: 9363// CHECK-NEXT: ret 9364int64x1_t test_vreinterpret_s64_p8(poly8x8_t a) { 9365 return vreinterpret_s64_p8(a); 9366} 9367 9368// CHECK-LABEL: test_vreinterpret_s64_p16: 9369// CHECK-NEXT: ret 9370int64x1_t test_vreinterpret_s64_p16(poly16x4_t a) { 9371 return vreinterpret_s64_p16(a); 9372} 9373 9374// CHECK-LABEL: test_vreinterpret_s64_p64: 9375// CHECK-NEXT: ret 9376int64x1_t test_vreinterpret_s64_p64(poly64x1_t a) { 9377 return vreinterpret_s64_p64(a); 9378} 9379 9380// CHECK-LABEL: test_vreinterpret_u8_s8: 9381// CHECK-NEXT: ret 9382uint8x8_t test_vreinterpret_u8_s8(int8x8_t a) { 9383 return vreinterpret_u8_s8(a); 9384} 9385 9386// CHECK-LABEL: test_vreinterpret_u8_s16: 9387// CHECK-NEXT: ret 9388uint8x8_t test_vreinterpret_u8_s16(int16x4_t a) { 9389 return vreinterpret_u8_s16(a); 9390} 9391 9392// CHECK-LABEL: test_vreinterpret_u8_s32: 9393// CHECK-NEXT: ret 9394uint8x8_t test_vreinterpret_u8_s32(int32x2_t a) { 9395 return vreinterpret_u8_s32(a); 9396} 9397 9398// CHECK-LABEL: test_vreinterpret_u8_s64: 9399// CHECK-NEXT: ret 9400uint8x8_t test_vreinterpret_u8_s64(int64x1_t a) { 9401 return vreinterpret_u8_s64(a); 9402} 9403 9404// CHECK-LABEL: test_vreinterpret_u8_u16: 9405// CHECK-NEXT: ret 9406uint8x8_t test_vreinterpret_u8_u16(uint16x4_t a) { 9407 return vreinterpret_u8_u16(a); 9408} 9409 9410// CHECK-LABEL: test_vreinterpret_u8_u32: 9411// CHECK-NEXT: ret 9412uint8x8_t test_vreinterpret_u8_u32(uint32x2_t a) { 9413 return vreinterpret_u8_u32(a); 9414} 9415 9416// CHECK-LABEL: test_vreinterpret_u8_u64: 9417// CHECK-NEXT: ret 9418uint8x8_t test_vreinterpret_u8_u64(uint64x1_t a) { 9419 return vreinterpret_u8_u64(a); 9420} 9421 9422// CHECK-LABEL: test_vreinterpret_u8_f16: 9423// CHECK-NEXT: ret 9424uint8x8_t test_vreinterpret_u8_f16(float16x4_t a) { 9425 return vreinterpret_u8_f16(a); 9426} 9427 9428// CHECK-LABEL: test_vreinterpret_u8_f32: 9429// CHECK-NEXT: ret 9430uint8x8_t test_vreinterpret_u8_f32(float32x2_t a) { 9431 return vreinterpret_u8_f32(a); 9432} 9433 9434// CHECK-LABEL: test_vreinterpret_u8_f64: 9435// CHECK-NEXT: ret 9436uint8x8_t test_vreinterpret_u8_f64(float64x1_t a) { 9437 return vreinterpret_u8_f64(a); 9438} 9439 9440// CHECK-LABEL: test_vreinterpret_u8_p8: 9441// CHECK-NEXT: ret 9442uint8x8_t test_vreinterpret_u8_p8(poly8x8_t a) { 9443 return vreinterpret_u8_p8(a); 9444} 9445 9446// CHECK-LABEL: test_vreinterpret_u8_p16: 9447// CHECK-NEXT: ret 9448uint8x8_t test_vreinterpret_u8_p16(poly16x4_t a) { 9449 return vreinterpret_u8_p16(a); 9450} 9451 9452// CHECK-LABEL: test_vreinterpret_u8_p64: 9453// CHECK-NEXT: ret 9454uint8x8_t test_vreinterpret_u8_p64(poly64x1_t a) { 9455 return vreinterpret_u8_p64(a); 9456} 9457 9458// CHECK-LABEL: test_vreinterpret_u16_s8: 9459// CHECK-NEXT: ret 9460uint16x4_t test_vreinterpret_u16_s8(int8x8_t a) { 9461 return vreinterpret_u16_s8(a); 9462} 9463 9464// CHECK-LABEL: test_vreinterpret_u16_s16: 9465// CHECK-NEXT: ret 9466uint16x4_t test_vreinterpret_u16_s16(int16x4_t a) { 9467 return vreinterpret_u16_s16(a); 9468} 9469 9470// CHECK-LABEL: test_vreinterpret_u16_s32: 9471// CHECK-NEXT: ret 9472uint16x4_t test_vreinterpret_u16_s32(int32x2_t a) { 9473 return vreinterpret_u16_s32(a); 9474} 9475 9476// CHECK-LABEL: test_vreinterpret_u16_s64: 9477// CHECK-NEXT: ret 9478uint16x4_t test_vreinterpret_u16_s64(int64x1_t a) { 9479 return vreinterpret_u16_s64(a); 9480} 9481 9482// CHECK-LABEL: test_vreinterpret_u16_u8: 9483// CHECK-NEXT: ret 9484uint16x4_t test_vreinterpret_u16_u8(uint8x8_t a) { 9485 return vreinterpret_u16_u8(a); 9486} 9487 9488// CHECK-LABEL: test_vreinterpret_u16_u32: 9489// CHECK-NEXT: ret 9490uint16x4_t test_vreinterpret_u16_u32(uint32x2_t a) { 9491 return vreinterpret_u16_u32(a); 9492} 9493 9494// CHECK-LABEL: test_vreinterpret_u16_u64: 9495// CHECK-NEXT: ret 9496uint16x4_t test_vreinterpret_u16_u64(uint64x1_t a) { 9497 return vreinterpret_u16_u64(a); 9498} 9499 9500// CHECK-LABEL: test_vreinterpret_u16_f16: 9501// CHECK-NEXT: ret 9502uint16x4_t test_vreinterpret_u16_f16(float16x4_t a) { 9503 return vreinterpret_u16_f16(a); 9504} 9505 9506// CHECK-LABEL: test_vreinterpret_u16_f32: 9507// CHECK-NEXT: ret 9508uint16x4_t test_vreinterpret_u16_f32(float32x2_t a) { 9509 return vreinterpret_u16_f32(a); 9510} 9511 9512// CHECK-LABEL: test_vreinterpret_u16_f64: 9513// CHECK-NEXT: ret 9514uint16x4_t test_vreinterpret_u16_f64(float64x1_t a) { 9515 return vreinterpret_u16_f64(a); 9516} 9517 9518// CHECK-LABEL: test_vreinterpret_u16_p8: 9519// CHECK-NEXT: ret 9520uint16x4_t test_vreinterpret_u16_p8(poly8x8_t a) { 9521 return vreinterpret_u16_p8(a); 9522} 9523 9524// CHECK-LABEL: test_vreinterpret_u16_p16: 9525// CHECK-NEXT: ret 9526uint16x4_t test_vreinterpret_u16_p16(poly16x4_t a) { 9527 return vreinterpret_u16_p16(a); 9528} 9529 9530// CHECK-LABEL: test_vreinterpret_u16_p64: 9531// CHECK-NEXT: ret 9532uint16x4_t test_vreinterpret_u16_p64(poly64x1_t a) { 9533 return vreinterpret_u16_p64(a); 9534} 9535 9536// CHECK-LABEL: test_vreinterpret_u32_s8: 9537// CHECK-NEXT: ret 9538uint32x2_t test_vreinterpret_u32_s8(int8x8_t a) { 9539 return vreinterpret_u32_s8(a); 9540} 9541 9542// CHECK-LABEL: test_vreinterpret_u32_s16: 9543// CHECK-NEXT: ret 9544uint32x2_t test_vreinterpret_u32_s16(int16x4_t a) { 9545 return vreinterpret_u32_s16(a); 9546} 9547 9548// CHECK-LABEL: test_vreinterpret_u32_s32: 9549// CHECK-NEXT: ret 9550uint32x2_t test_vreinterpret_u32_s32(int32x2_t a) { 9551 return vreinterpret_u32_s32(a); 9552} 9553 9554// CHECK-LABEL: test_vreinterpret_u32_s64: 9555// CHECK-NEXT: ret 9556uint32x2_t test_vreinterpret_u32_s64(int64x1_t a) { 9557 return vreinterpret_u32_s64(a); 9558} 9559 9560// CHECK-LABEL: test_vreinterpret_u32_u8: 9561// CHECK-NEXT: ret 9562uint32x2_t test_vreinterpret_u32_u8(uint8x8_t a) { 9563 return vreinterpret_u32_u8(a); 9564} 9565 9566// CHECK-LABEL: test_vreinterpret_u32_u16: 9567// CHECK-NEXT: ret 9568uint32x2_t test_vreinterpret_u32_u16(uint16x4_t a) { 9569 return vreinterpret_u32_u16(a); 9570} 9571 9572// CHECK-LABEL: test_vreinterpret_u32_u64: 9573// CHECK-NEXT: ret 9574uint32x2_t test_vreinterpret_u32_u64(uint64x1_t a) { 9575 return vreinterpret_u32_u64(a); 9576} 9577 9578// CHECK-LABEL: test_vreinterpret_u32_f16: 9579// CHECK-NEXT: ret 9580uint32x2_t test_vreinterpret_u32_f16(float16x4_t a) { 9581 return vreinterpret_u32_f16(a); 9582} 9583 9584// CHECK-LABEL: test_vreinterpret_u32_f32: 9585// CHECK-NEXT: ret 9586uint32x2_t test_vreinterpret_u32_f32(float32x2_t a) { 9587 return vreinterpret_u32_f32(a); 9588} 9589 9590// CHECK-LABEL: test_vreinterpret_u32_f64: 9591// CHECK-NEXT: ret 9592uint32x2_t test_vreinterpret_u32_f64(float64x1_t a) { 9593 return vreinterpret_u32_f64(a); 9594} 9595 9596// CHECK-LABEL: test_vreinterpret_u32_p8: 9597// CHECK-NEXT: ret 9598uint32x2_t test_vreinterpret_u32_p8(poly8x8_t a) { 9599 return vreinterpret_u32_p8(a); 9600} 9601 9602// CHECK-LABEL: test_vreinterpret_u32_p16: 9603// CHECK-NEXT: ret 9604uint32x2_t test_vreinterpret_u32_p16(poly16x4_t a) { 9605 return vreinterpret_u32_p16(a); 9606} 9607 9608// CHECK-LABEL: test_vreinterpret_u32_p64: 9609// CHECK-NEXT: ret 9610uint32x2_t test_vreinterpret_u32_p64(poly64x1_t a) { 9611 return vreinterpret_u32_p64(a); 9612} 9613 9614// CHECK-LABEL: test_vreinterpret_u64_s8: 9615// CHECK-NEXT: ret 9616uint64x1_t test_vreinterpret_u64_s8(int8x8_t a) { 9617 return vreinterpret_u64_s8(a); 9618} 9619 9620// CHECK-LABEL: test_vreinterpret_u64_s16: 9621// CHECK-NEXT: ret 9622uint64x1_t test_vreinterpret_u64_s16(int16x4_t a) { 9623 return vreinterpret_u64_s16(a); 9624} 9625 9626// CHECK-LABEL: test_vreinterpret_u64_s32: 9627// CHECK-NEXT: ret 9628uint64x1_t test_vreinterpret_u64_s32(int32x2_t a) { 9629 return vreinterpret_u64_s32(a); 9630} 9631 9632// CHECK-LABEL: test_vreinterpret_u64_s64: 9633// CHECK-NEXT: ret 9634uint64x1_t test_vreinterpret_u64_s64(int64x1_t a) { 9635 return vreinterpret_u64_s64(a); 9636} 9637 9638// CHECK-LABEL: test_vreinterpret_u64_u8: 9639// CHECK-NEXT: ret 9640uint64x1_t test_vreinterpret_u64_u8(uint8x8_t a) { 9641 return vreinterpret_u64_u8(a); 9642} 9643 9644// CHECK-LABEL: test_vreinterpret_u64_u16: 9645// CHECK-NEXT: ret 9646uint64x1_t test_vreinterpret_u64_u16(uint16x4_t a) { 9647 return vreinterpret_u64_u16(a); 9648} 9649 9650// CHECK-LABEL: test_vreinterpret_u64_u32: 9651// CHECK-NEXT: ret 9652uint64x1_t test_vreinterpret_u64_u32(uint32x2_t a) { 9653 return vreinterpret_u64_u32(a); 9654} 9655 9656// CHECK-LABEL: test_vreinterpret_u64_f16: 9657// CHECK-NEXT: ret 9658uint64x1_t test_vreinterpret_u64_f16(float16x4_t a) { 9659 return vreinterpret_u64_f16(a); 9660} 9661 9662// CHECK-LABEL: test_vreinterpret_u64_f32: 9663// CHECK-NEXT: ret 9664uint64x1_t test_vreinterpret_u64_f32(float32x2_t a) { 9665 return vreinterpret_u64_f32(a); 9666} 9667 9668// CHECK-LABEL: test_vreinterpret_u64_f64: 9669// CHECK-NEXT: ret 9670uint64x1_t test_vreinterpret_u64_f64(float64x1_t a) { 9671 return vreinterpret_u64_f64(a); 9672} 9673 9674// CHECK-LABEL: test_vreinterpret_u64_p8: 9675// CHECK-NEXT: ret 9676uint64x1_t test_vreinterpret_u64_p8(poly8x8_t a) { 9677 return vreinterpret_u64_p8(a); 9678} 9679 9680// CHECK-LABEL: test_vreinterpret_u64_p16: 9681// CHECK-NEXT: ret 9682uint64x1_t test_vreinterpret_u64_p16(poly16x4_t a) { 9683 return vreinterpret_u64_p16(a); 9684} 9685 9686// CHECK-LABEL: test_vreinterpret_u64_p64: 9687// CHECK-NEXT: ret 9688uint64x1_t test_vreinterpret_u64_p64(poly64x1_t a) { 9689 return vreinterpret_u64_p64(a); 9690} 9691 9692// CHECK-LABEL: test_vreinterpret_f16_s8: 9693// CHECK-NEXT: ret 9694float16x4_t test_vreinterpret_f16_s8(int8x8_t a) { 9695 return vreinterpret_f16_s8(a); 9696} 9697 9698// CHECK-LABEL: test_vreinterpret_f16_s16: 9699// CHECK-NEXT: ret 9700float16x4_t test_vreinterpret_f16_s16(int16x4_t a) { 9701 return vreinterpret_f16_s16(a); 9702} 9703 9704// CHECK-LABEL: test_vreinterpret_f16_s32: 9705// CHECK-NEXT: ret 9706float16x4_t test_vreinterpret_f16_s32(int32x2_t a) { 9707 return vreinterpret_f16_s32(a); 9708} 9709 9710// CHECK-LABEL: test_vreinterpret_f16_s64: 9711// CHECK-NEXT: ret 9712float16x4_t test_vreinterpret_f16_s64(int64x1_t a) { 9713 return vreinterpret_f16_s64(a); 9714} 9715 9716// CHECK-LABEL: test_vreinterpret_f16_u8: 9717// CHECK-NEXT: ret 9718float16x4_t test_vreinterpret_f16_u8(uint8x8_t a) { 9719 return vreinterpret_f16_u8(a); 9720} 9721 9722// CHECK-LABEL: test_vreinterpret_f16_u16: 9723// CHECK-NEXT: ret 9724float16x4_t test_vreinterpret_f16_u16(uint16x4_t a) { 9725 return vreinterpret_f16_u16(a); 9726} 9727 9728// CHECK-LABEL: test_vreinterpret_f16_u32: 9729// CHECK-NEXT: ret 9730float16x4_t test_vreinterpret_f16_u32(uint32x2_t a) { 9731 return vreinterpret_f16_u32(a); 9732} 9733 9734// CHECK-LABEL: test_vreinterpret_f16_u64: 9735// CHECK-NEXT: ret 9736float16x4_t test_vreinterpret_f16_u64(uint64x1_t a) { 9737 return vreinterpret_f16_u64(a); 9738} 9739 9740// CHECK-LABEL: test_vreinterpret_f16_f32: 9741// CHECK-NEXT: ret 9742float16x4_t test_vreinterpret_f16_f32(float32x2_t a) { 9743 return vreinterpret_f16_f32(a); 9744} 9745 9746// CHECK-LABEL: test_vreinterpret_f16_f64: 9747// CHECK-NEXT: ret 9748float16x4_t test_vreinterpret_f16_f64(float64x1_t a) { 9749 return vreinterpret_f16_f64(a); 9750} 9751 9752// CHECK-LABEL: test_vreinterpret_f16_p8: 9753// CHECK-NEXT: ret 9754float16x4_t test_vreinterpret_f16_p8(poly8x8_t a) { 9755 return vreinterpret_f16_p8(a); 9756} 9757 9758// CHECK-LABEL: test_vreinterpret_f16_p16: 9759// CHECK-NEXT: ret 9760float16x4_t test_vreinterpret_f16_p16(poly16x4_t a) { 9761 return vreinterpret_f16_p16(a); 9762} 9763 9764// CHECK-LABEL: test_vreinterpret_f16_p64: 9765// CHECK-NEXT: ret 9766float16x4_t test_vreinterpret_f16_p64(poly64x1_t a) { 9767 return vreinterpret_f16_p64(a); 9768} 9769 9770// CHECK-LABEL: test_vreinterpret_f32_s8: 9771// CHECK-NEXT: ret 9772float32x2_t test_vreinterpret_f32_s8(int8x8_t a) { 9773 return vreinterpret_f32_s8(a); 9774} 9775 9776// CHECK-LABEL: test_vreinterpret_f32_s16: 9777// CHECK-NEXT: ret 9778float32x2_t test_vreinterpret_f32_s16(int16x4_t a) { 9779 return vreinterpret_f32_s16(a); 9780} 9781 9782// CHECK-LABEL: test_vreinterpret_f32_s32: 9783// CHECK-NEXT: ret 9784float32x2_t test_vreinterpret_f32_s32(int32x2_t a) { 9785 return vreinterpret_f32_s32(a); 9786} 9787 9788// CHECK-LABEL: test_vreinterpret_f32_s64: 9789// CHECK-NEXT: ret 9790float32x2_t test_vreinterpret_f32_s64(int64x1_t a) { 9791 return vreinterpret_f32_s64(a); 9792} 9793 9794// CHECK-LABEL: test_vreinterpret_f32_u8: 9795// CHECK-NEXT: ret 9796float32x2_t test_vreinterpret_f32_u8(uint8x8_t a) { 9797 return vreinterpret_f32_u8(a); 9798} 9799 9800// CHECK-LABEL: test_vreinterpret_f32_u16: 9801// CHECK-NEXT: ret 9802float32x2_t test_vreinterpret_f32_u16(uint16x4_t a) { 9803 return vreinterpret_f32_u16(a); 9804} 9805 9806// CHECK-LABEL: test_vreinterpret_f32_u32: 9807// CHECK-NEXT: ret 9808float32x2_t test_vreinterpret_f32_u32(uint32x2_t a) { 9809 return vreinterpret_f32_u32(a); 9810} 9811 9812// CHECK-LABEL: test_vreinterpret_f32_u64: 9813// CHECK-NEXT: ret 9814float32x2_t test_vreinterpret_f32_u64(uint64x1_t a) { 9815 return vreinterpret_f32_u64(a); 9816} 9817 9818// CHECK-LABEL: test_vreinterpret_f32_f16: 9819// CHECK-NEXT: ret 9820float32x2_t test_vreinterpret_f32_f16(float16x4_t a) { 9821 return vreinterpret_f32_f16(a); 9822} 9823 9824// CHECK-LABEL: test_vreinterpret_f32_f64: 9825// CHECK-NEXT: ret 9826float32x2_t test_vreinterpret_f32_f64(float64x1_t a) { 9827 return vreinterpret_f32_f64(a); 9828} 9829 9830// CHECK-LABEL: test_vreinterpret_f32_p8: 9831// CHECK-NEXT: ret 9832float32x2_t test_vreinterpret_f32_p8(poly8x8_t a) { 9833 return vreinterpret_f32_p8(a); 9834} 9835 9836// CHECK-LABEL: test_vreinterpret_f32_p16: 9837// CHECK-NEXT: ret 9838float32x2_t test_vreinterpret_f32_p16(poly16x4_t a) { 9839 return vreinterpret_f32_p16(a); 9840} 9841 9842// CHECK-LABEL: test_vreinterpret_f32_p64: 9843// CHECK-NEXT: ret 9844float32x2_t test_vreinterpret_f32_p64(poly64x1_t a) { 9845 return vreinterpret_f32_p64(a); 9846} 9847 9848// CHECK-LABEL: test_vreinterpret_f64_s8: 9849// CHECK-NEXT: ret 9850float64x1_t test_vreinterpret_f64_s8(int8x8_t a) { 9851 return vreinterpret_f64_s8(a); 9852} 9853 9854// CHECK-LABEL: test_vreinterpret_f64_s16: 9855// CHECK-NEXT: ret 9856float64x1_t test_vreinterpret_f64_s16(int16x4_t a) { 9857 return vreinterpret_f64_s16(a); 9858} 9859 9860// CHECK-LABEL: test_vreinterpret_f64_s32: 9861// CHECK-NEXT: ret 9862float64x1_t test_vreinterpret_f64_s32(int32x2_t a) { 9863 return vreinterpret_f64_s32(a); 9864} 9865 9866// CHECK-LABEL: test_vreinterpret_f64_s64: 9867// CHECK-NEXT: ret 9868float64x1_t test_vreinterpret_f64_s64(int64x1_t a) { 9869 return vreinterpret_f64_s64(a); 9870} 9871 9872// CHECK-LABEL: test_vreinterpret_f64_u8: 9873// CHECK-NEXT: ret 9874float64x1_t test_vreinterpret_f64_u8(uint8x8_t a) { 9875 return vreinterpret_f64_u8(a); 9876} 9877 9878// CHECK-LABEL: test_vreinterpret_f64_u16: 9879// CHECK-NEXT: ret 9880float64x1_t test_vreinterpret_f64_u16(uint16x4_t a) { 9881 return vreinterpret_f64_u16(a); 9882} 9883 9884// CHECK-LABEL: test_vreinterpret_f64_u32: 9885// CHECK-NEXT: ret 9886float64x1_t test_vreinterpret_f64_u32(uint32x2_t a) { 9887 return vreinterpret_f64_u32(a); 9888} 9889 9890// CHECK-LABEL: test_vreinterpret_f64_u64: 9891// CHECK-NEXT: ret 9892float64x1_t test_vreinterpret_f64_u64(uint64x1_t a) { 9893 return vreinterpret_f64_u64(a); 9894} 9895 9896// CHECK-LABEL: test_vreinterpret_f64_f16: 9897// CHECK-NEXT: ret 9898float64x1_t test_vreinterpret_f64_f16(float16x4_t a) { 9899 return vreinterpret_f64_f16(a); 9900} 9901 9902// CHECK-LABEL: test_vreinterpret_f64_f32: 9903// CHECK-NEXT: ret 9904float64x1_t test_vreinterpret_f64_f32(float32x2_t a) { 9905 return vreinterpret_f64_f32(a); 9906} 9907 9908// CHECK-LABEL: test_vreinterpret_f64_p8: 9909// CHECK-NEXT: ret 9910float64x1_t test_vreinterpret_f64_p8(poly8x8_t a) { 9911 return vreinterpret_f64_p8(a); 9912} 9913 9914// CHECK-LABEL: test_vreinterpret_f64_p16: 9915// CHECK-NEXT: ret 9916float64x1_t test_vreinterpret_f64_p16(poly16x4_t a) { 9917 return vreinterpret_f64_p16(a); 9918} 9919 9920// CHECK-LABEL: test_vreinterpret_f64_p64: 9921// CHECK-NEXT: ret 9922float64x1_t test_vreinterpret_f64_p64(poly64x1_t a) { 9923 return vreinterpret_f64_p64(a); 9924} 9925 9926// CHECK-LABEL: test_vreinterpret_p8_s8: 9927// CHECK-NEXT: ret 9928poly8x8_t test_vreinterpret_p8_s8(int8x8_t a) { 9929 return vreinterpret_p8_s8(a); 9930} 9931 9932// CHECK-LABEL: test_vreinterpret_p8_s16: 9933// CHECK-NEXT: ret 9934poly8x8_t test_vreinterpret_p8_s16(int16x4_t a) { 9935 return vreinterpret_p8_s16(a); 9936} 9937 9938// CHECK-LABEL: test_vreinterpret_p8_s32: 9939// CHECK-NEXT: ret 9940poly8x8_t test_vreinterpret_p8_s32(int32x2_t a) { 9941 return vreinterpret_p8_s32(a); 9942} 9943 9944// CHECK-LABEL: test_vreinterpret_p8_s64: 9945// CHECK-NEXT: ret 9946poly8x8_t test_vreinterpret_p8_s64(int64x1_t a) { 9947 return vreinterpret_p8_s64(a); 9948} 9949 9950// CHECK-LABEL: test_vreinterpret_p8_u8: 9951// CHECK-NEXT: ret 9952poly8x8_t test_vreinterpret_p8_u8(uint8x8_t a) { 9953 return vreinterpret_p8_u8(a); 9954} 9955 9956// CHECK-LABEL: test_vreinterpret_p8_u16: 9957// CHECK-NEXT: ret 9958poly8x8_t test_vreinterpret_p8_u16(uint16x4_t a) { 9959 return vreinterpret_p8_u16(a); 9960} 9961 9962// CHECK-LABEL: test_vreinterpret_p8_u32: 9963// CHECK-NEXT: ret 9964poly8x8_t test_vreinterpret_p8_u32(uint32x2_t a) { 9965 return vreinterpret_p8_u32(a); 9966} 9967 9968// CHECK-LABEL: test_vreinterpret_p8_u64: 9969// CHECK-NEXT: ret 9970poly8x8_t test_vreinterpret_p8_u64(uint64x1_t a) { 9971 return vreinterpret_p8_u64(a); 9972} 9973 9974// CHECK-LABEL: test_vreinterpret_p8_f16: 9975// CHECK-NEXT: ret 9976poly8x8_t test_vreinterpret_p8_f16(float16x4_t a) { 9977 return vreinterpret_p8_f16(a); 9978} 9979 9980// CHECK-LABEL: test_vreinterpret_p8_f32: 9981// CHECK-NEXT: ret 9982poly8x8_t test_vreinterpret_p8_f32(float32x2_t a) { 9983 return vreinterpret_p8_f32(a); 9984} 9985 9986// CHECK-LABEL: test_vreinterpret_p8_f64: 9987// CHECK-NEXT: ret 9988poly8x8_t test_vreinterpret_p8_f64(float64x1_t a) { 9989 return vreinterpret_p8_f64(a); 9990} 9991 9992// CHECK-LABEL: test_vreinterpret_p8_p16: 9993// CHECK-NEXT: ret 9994poly8x8_t test_vreinterpret_p8_p16(poly16x4_t a) { 9995 return vreinterpret_p8_p16(a); 9996} 9997 9998// CHECK-LABEL: test_vreinterpret_p8_p64: 9999// CHECK-NEXT: ret 10000poly8x8_t test_vreinterpret_p8_p64(poly64x1_t a) { 10001 return vreinterpret_p8_p64(a); 10002} 10003 10004// CHECK-LABEL: test_vreinterpret_p16_s8: 10005// CHECK-NEXT: ret 10006poly16x4_t test_vreinterpret_p16_s8(int8x8_t a) { 10007 return vreinterpret_p16_s8(a); 10008} 10009 10010// CHECK-LABEL: test_vreinterpret_p16_s16: 10011// CHECK-NEXT: ret 10012poly16x4_t test_vreinterpret_p16_s16(int16x4_t a) { 10013 return vreinterpret_p16_s16(a); 10014} 10015 10016// CHECK-LABEL: test_vreinterpret_p16_s32: 10017// CHECK-NEXT: ret 10018poly16x4_t test_vreinterpret_p16_s32(int32x2_t a) { 10019 return vreinterpret_p16_s32(a); 10020} 10021 10022// CHECK-LABEL: test_vreinterpret_p16_s64: 10023// CHECK-NEXT: ret 10024poly16x4_t test_vreinterpret_p16_s64(int64x1_t a) { 10025 return vreinterpret_p16_s64(a); 10026} 10027 10028// CHECK-LABEL: test_vreinterpret_p16_u8: 10029// CHECK-NEXT: ret 10030poly16x4_t test_vreinterpret_p16_u8(uint8x8_t a) { 10031 return vreinterpret_p16_u8(a); 10032} 10033 10034// CHECK-LABEL: test_vreinterpret_p16_u16: 10035// CHECK-NEXT: ret 10036poly16x4_t test_vreinterpret_p16_u16(uint16x4_t a) { 10037 return vreinterpret_p16_u16(a); 10038} 10039 10040// CHECK-LABEL: test_vreinterpret_p16_u32: 10041// CHECK-NEXT: ret 10042poly16x4_t test_vreinterpret_p16_u32(uint32x2_t a) { 10043 return vreinterpret_p16_u32(a); 10044} 10045 10046// CHECK-LABEL: test_vreinterpret_p16_u64: 10047// CHECK-NEXT: ret 10048poly16x4_t test_vreinterpret_p16_u64(uint64x1_t a) { 10049 return vreinterpret_p16_u64(a); 10050} 10051 10052// CHECK-LABEL: test_vreinterpret_p16_f16: 10053// CHECK-NEXT: ret 10054poly16x4_t test_vreinterpret_p16_f16(float16x4_t a) { 10055 return vreinterpret_p16_f16(a); 10056} 10057 10058// CHECK-LABEL: test_vreinterpret_p16_f32: 10059// CHECK-NEXT: ret 10060poly16x4_t test_vreinterpret_p16_f32(float32x2_t a) { 10061 return vreinterpret_p16_f32(a); 10062} 10063 10064// CHECK-LABEL: test_vreinterpret_p16_f64: 10065// CHECK-NEXT: ret 10066poly16x4_t test_vreinterpret_p16_f64(float64x1_t a) { 10067 return vreinterpret_p16_f64(a); 10068} 10069 10070// CHECK-LABEL: test_vreinterpret_p16_p8: 10071// CHECK-NEXT: ret 10072poly16x4_t test_vreinterpret_p16_p8(poly8x8_t a) { 10073 return vreinterpret_p16_p8(a); 10074} 10075 10076// CHECK-LABEL: test_vreinterpret_p16_p64: 10077// CHECK-NEXT: ret 10078poly16x4_t test_vreinterpret_p16_p64(poly64x1_t a) { 10079 return vreinterpret_p16_p64(a); 10080} 10081 10082// CHECK-LABEL: test_vreinterpret_p64_s8: 10083// CHECK-NEXT: ret 10084poly64x1_t test_vreinterpret_p64_s8(int8x8_t a) { 10085 return vreinterpret_p64_s8(a); 10086} 10087 10088// CHECK-LABEL: test_vreinterpret_p64_s16: 10089// CHECK-NEXT: ret 10090poly64x1_t test_vreinterpret_p64_s16(int16x4_t a) { 10091 return vreinterpret_p64_s16(a); 10092} 10093 10094// CHECK-LABEL: test_vreinterpret_p64_s32: 10095// CHECK-NEXT: ret 10096poly64x1_t test_vreinterpret_p64_s32(int32x2_t a) { 10097 return vreinterpret_p64_s32(a); 10098} 10099 10100// CHECK-LABEL: test_vreinterpret_p64_s64: 10101// CHECK-NEXT: ret 10102poly64x1_t test_vreinterpret_p64_s64(int64x1_t a) { 10103 return vreinterpret_p64_s64(a); 10104} 10105 10106// CHECK-LABEL: test_vreinterpret_p64_u8: 10107// CHECK-NEXT: ret 10108poly64x1_t test_vreinterpret_p64_u8(uint8x8_t a) { 10109 return vreinterpret_p64_u8(a); 10110} 10111 10112// CHECK-LABEL: test_vreinterpret_p64_u16: 10113// CHECK-NEXT: ret 10114poly64x1_t test_vreinterpret_p64_u16(uint16x4_t a) { 10115 return vreinterpret_p64_u16(a); 10116} 10117 10118// CHECK-LABEL: test_vreinterpret_p64_u32: 10119// CHECK-NEXT: ret 10120poly64x1_t test_vreinterpret_p64_u32(uint32x2_t a) { 10121 return vreinterpret_p64_u32(a); 10122} 10123 10124// CHECK-LABEL: test_vreinterpret_p64_u64: 10125// CHECK-NEXT: ret 10126poly64x1_t test_vreinterpret_p64_u64(uint64x1_t a) { 10127 return vreinterpret_p64_u64(a); 10128} 10129 10130// CHECK-LABEL: test_vreinterpret_p64_f16: 10131// CHECK-NEXT: ret 10132poly64x1_t test_vreinterpret_p64_f16(float16x4_t a) { 10133 return vreinterpret_p64_f16(a); 10134} 10135 10136// CHECK-LABEL: test_vreinterpret_p64_f32: 10137// CHECK-NEXT: ret 10138poly64x1_t test_vreinterpret_p64_f32(float32x2_t a) { 10139 return vreinterpret_p64_f32(a); 10140} 10141 10142// CHECK-LABEL: test_vreinterpret_p64_f64: 10143// CHECK-NEXT: ret 10144poly64x1_t test_vreinterpret_p64_f64(float64x1_t a) { 10145 return vreinterpret_p64_f64(a); 10146} 10147 10148// CHECK-LABEL: test_vreinterpret_p64_p8: 10149// CHECK-NEXT: ret 10150poly64x1_t test_vreinterpret_p64_p8(poly8x8_t a) { 10151 return vreinterpret_p64_p8(a); 10152} 10153 10154// CHECK-LABEL: test_vreinterpret_p64_p16: 10155// CHECK-NEXT: ret 10156poly64x1_t test_vreinterpret_p64_p16(poly16x4_t a) { 10157 return vreinterpret_p64_p16(a); 10158} 10159 10160// CHECK-LABEL: test_vreinterpretq_s8_s16: 10161// CHECK-NEXT: ret 10162int8x16_t test_vreinterpretq_s8_s16(int16x8_t a) { 10163 return vreinterpretq_s8_s16(a); 10164} 10165 10166// CHECK-LABEL: test_vreinterpretq_s8_s32: 10167// CHECK-NEXT: ret 10168int8x16_t test_vreinterpretq_s8_s32(int32x4_t a) { 10169 return vreinterpretq_s8_s32(a); 10170} 10171 10172// CHECK-LABEL: test_vreinterpretq_s8_s64: 10173// CHECK-NEXT: ret 10174int8x16_t test_vreinterpretq_s8_s64(int64x2_t a) { 10175 return vreinterpretq_s8_s64(a); 10176} 10177 10178// CHECK-LABEL: test_vreinterpretq_s8_u8: 10179// CHECK-NEXT: ret 10180int8x16_t test_vreinterpretq_s8_u8(uint8x16_t a) { 10181 return vreinterpretq_s8_u8(a); 10182} 10183 10184// CHECK-LABEL: test_vreinterpretq_s8_u16: 10185// CHECK-NEXT: ret 10186int8x16_t test_vreinterpretq_s8_u16(uint16x8_t a) { 10187 return vreinterpretq_s8_u16(a); 10188} 10189 10190// CHECK-LABEL: test_vreinterpretq_s8_u32: 10191// CHECK-NEXT: ret 10192int8x16_t test_vreinterpretq_s8_u32(uint32x4_t a) { 10193 return vreinterpretq_s8_u32(a); 10194} 10195 10196// CHECK-LABEL: test_vreinterpretq_s8_u64: 10197// CHECK-NEXT: ret 10198int8x16_t test_vreinterpretq_s8_u64(uint64x2_t a) { 10199 return vreinterpretq_s8_u64(a); 10200} 10201 10202// CHECK-LABEL: test_vreinterpretq_s8_f16: 10203// CHECK-NEXT: ret 10204int8x16_t test_vreinterpretq_s8_f16(float16x8_t a) { 10205 return vreinterpretq_s8_f16(a); 10206} 10207 10208// CHECK-LABEL: test_vreinterpretq_s8_f32: 10209// CHECK-NEXT: ret 10210int8x16_t test_vreinterpretq_s8_f32(float32x4_t a) { 10211 return vreinterpretq_s8_f32(a); 10212} 10213 10214// CHECK-LABEL: test_vreinterpretq_s8_f64: 10215// CHECK-NEXT: ret 10216int8x16_t test_vreinterpretq_s8_f64(float64x2_t a) { 10217 return vreinterpretq_s8_f64(a); 10218} 10219 10220// CHECK-LABEL: test_vreinterpretq_s8_p8: 10221// CHECK-NEXT: ret 10222int8x16_t test_vreinterpretq_s8_p8(poly8x16_t a) { 10223 return vreinterpretq_s8_p8(a); 10224} 10225 10226// CHECK-LABEL: test_vreinterpretq_s8_p16: 10227// CHECK-NEXT: ret 10228int8x16_t test_vreinterpretq_s8_p16(poly16x8_t a) { 10229 return vreinterpretq_s8_p16(a); 10230} 10231 10232// CHECK-LABEL: test_vreinterpretq_s8_p64: 10233// CHECK-NEXT: ret 10234int8x16_t test_vreinterpretq_s8_p64(poly64x2_t a) { 10235 return vreinterpretq_s8_p64(a); 10236} 10237 10238// CHECK-LABEL: test_vreinterpretq_s16_s8: 10239// CHECK-NEXT: ret 10240int16x8_t test_vreinterpretq_s16_s8(int8x16_t a) { 10241 return vreinterpretq_s16_s8(a); 10242} 10243 10244// CHECK-LABEL: test_vreinterpretq_s16_s32: 10245// CHECK-NEXT: ret 10246int16x8_t test_vreinterpretq_s16_s32(int32x4_t a) { 10247 return vreinterpretq_s16_s32(a); 10248} 10249 10250// CHECK-LABEL: test_vreinterpretq_s16_s64: 10251// CHECK-NEXT: ret 10252int16x8_t test_vreinterpretq_s16_s64(int64x2_t a) { 10253 return vreinterpretq_s16_s64(a); 10254} 10255 10256// CHECK-LABEL: test_vreinterpretq_s16_u8: 10257// CHECK-NEXT: ret 10258int16x8_t test_vreinterpretq_s16_u8(uint8x16_t a) { 10259 return vreinterpretq_s16_u8(a); 10260} 10261 10262// CHECK-LABEL: test_vreinterpretq_s16_u16: 10263// CHECK-NEXT: ret 10264int16x8_t test_vreinterpretq_s16_u16(uint16x8_t a) { 10265 return vreinterpretq_s16_u16(a); 10266} 10267 10268// CHECK-LABEL: test_vreinterpretq_s16_u32: 10269// CHECK-NEXT: ret 10270int16x8_t test_vreinterpretq_s16_u32(uint32x4_t a) { 10271 return vreinterpretq_s16_u32(a); 10272} 10273 10274// CHECK-LABEL: test_vreinterpretq_s16_u64: 10275// CHECK-NEXT: ret 10276int16x8_t test_vreinterpretq_s16_u64(uint64x2_t a) { 10277 return vreinterpretq_s16_u64(a); 10278} 10279 10280// CHECK-LABEL: test_vreinterpretq_s16_f16: 10281// CHECK-NEXT: ret 10282int16x8_t test_vreinterpretq_s16_f16(float16x8_t a) { 10283 return vreinterpretq_s16_f16(a); 10284} 10285 10286// CHECK-LABEL: test_vreinterpretq_s16_f32: 10287// CHECK-NEXT: ret 10288int16x8_t test_vreinterpretq_s16_f32(float32x4_t a) { 10289 return vreinterpretq_s16_f32(a); 10290} 10291 10292// CHECK-LABEL: test_vreinterpretq_s16_f64: 10293// CHECK-NEXT: ret 10294int16x8_t test_vreinterpretq_s16_f64(float64x2_t a) { 10295 return vreinterpretq_s16_f64(a); 10296} 10297 10298// CHECK-LABEL: test_vreinterpretq_s16_p8: 10299// CHECK-NEXT: ret 10300int16x8_t test_vreinterpretq_s16_p8(poly8x16_t a) { 10301 return vreinterpretq_s16_p8(a); 10302} 10303 10304// CHECK-LABEL: test_vreinterpretq_s16_p16: 10305// CHECK-NEXT: ret 10306int16x8_t test_vreinterpretq_s16_p16(poly16x8_t a) { 10307 return vreinterpretq_s16_p16(a); 10308} 10309 10310// CHECK-LABEL: test_vreinterpretq_s16_p64: 10311// CHECK-NEXT: ret 10312int16x8_t test_vreinterpretq_s16_p64(poly64x2_t a) { 10313 return vreinterpretq_s16_p64(a); 10314} 10315 10316// CHECK-LABEL: test_vreinterpretq_s32_s8: 10317// CHECK-NEXT: ret 10318int32x4_t test_vreinterpretq_s32_s8(int8x16_t a) { 10319 return vreinterpretq_s32_s8(a); 10320} 10321 10322// CHECK-LABEL: test_vreinterpretq_s32_s16: 10323// CHECK-NEXT: ret 10324int32x4_t test_vreinterpretq_s32_s16(int16x8_t a) { 10325 return vreinterpretq_s32_s16(a); 10326} 10327 10328// CHECK-LABEL: test_vreinterpretq_s32_s64: 10329// CHECK-NEXT: ret 10330int32x4_t test_vreinterpretq_s32_s64(int64x2_t a) { 10331 return vreinterpretq_s32_s64(a); 10332} 10333 10334// CHECK-LABEL: test_vreinterpretq_s32_u8: 10335// CHECK-NEXT: ret 10336int32x4_t test_vreinterpretq_s32_u8(uint8x16_t a) { 10337 return vreinterpretq_s32_u8(a); 10338} 10339 10340// CHECK-LABEL: test_vreinterpretq_s32_u16: 10341// CHECK-NEXT: ret 10342int32x4_t test_vreinterpretq_s32_u16(uint16x8_t a) { 10343 return vreinterpretq_s32_u16(a); 10344} 10345 10346// CHECK-LABEL: test_vreinterpretq_s32_u32: 10347// CHECK-NEXT: ret 10348int32x4_t test_vreinterpretq_s32_u32(uint32x4_t a) { 10349 return vreinterpretq_s32_u32(a); 10350} 10351 10352// CHECK-LABEL: test_vreinterpretq_s32_u64: 10353// CHECK-NEXT: ret 10354int32x4_t test_vreinterpretq_s32_u64(uint64x2_t a) { 10355 return vreinterpretq_s32_u64(a); 10356} 10357 10358// CHECK-LABEL: test_vreinterpretq_s32_f16: 10359// CHECK-NEXT: ret 10360int32x4_t test_vreinterpretq_s32_f16(float16x8_t a) { 10361 return vreinterpretq_s32_f16(a); 10362} 10363 10364// CHECK-LABEL: test_vreinterpretq_s32_f32: 10365// CHECK-NEXT: ret 10366int32x4_t test_vreinterpretq_s32_f32(float32x4_t a) { 10367 return vreinterpretq_s32_f32(a); 10368} 10369 10370// CHECK-LABEL: test_vreinterpretq_s32_f64: 10371// CHECK-NEXT: ret 10372int32x4_t test_vreinterpretq_s32_f64(float64x2_t a) { 10373 return vreinterpretq_s32_f64(a); 10374} 10375 10376// CHECK-LABEL: test_vreinterpretq_s32_p8: 10377// CHECK-NEXT: ret 10378int32x4_t test_vreinterpretq_s32_p8(poly8x16_t a) { 10379 return vreinterpretq_s32_p8(a); 10380} 10381 10382// CHECK-LABEL: test_vreinterpretq_s32_p16: 10383// CHECK-NEXT: ret 10384int32x4_t test_vreinterpretq_s32_p16(poly16x8_t a) { 10385 return vreinterpretq_s32_p16(a); 10386} 10387 10388// CHECK-LABEL: test_vreinterpretq_s32_p64: 10389// CHECK-NEXT: ret 10390int32x4_t test_vreinterpretq_s32_p64(poly64x2_t a) { 10391 return vreinterpretq_s32_p64(a); 10392} 10393 10394// CHECK-LABEL: test_vreinterpretq_s64_s8: 10395// CHECK-NEXT: ret 10396int64x2_t test_vreinterpretq_s64_s8(int8x16_t a) { 10397 return vreinterpretq_s64_s8(a); 10398} 10399 10400// CHECK-LABEL: test_vreinterpretq_s64_s16: 10401// CHECK-NEXT: ret 10402int64x2_t test_vreinterpretq_s64_s16(int16x8_t a) { 10403 return vreinterpretq_s64_s16(a); 10404} 10405 10406// CHECK-LABEL: test_vreinterpretq_s64_s32: 10407// CHECK-NEXT: ret 10408int64x2_t test_vreinterpretq_s64_s32(int32x4_t a) { 10409 return vreinterpretq_s64_s32(a); 10410} 10411 10412// CHECK-LABEL: test_vreinterpretq_s64_u8: 10413// CHECK-NEXT: ret 10414int64x2_t test_vreinterpretq_s64_u8(uint8x16_t a) { 10415 return vreinterpretq_s64_u8(a); 10416} 10417 10418// CHECK-LABEL: test_vreinterpretq_s64_u16: 10419// CHECK-NEXT: ret 10420int64x2_t test_vreinterpretq_s64_u16(uint16x8_t a) { 10421 return vreinterpretq_s64_u16(a); 10422} 10423 10424// CHECK-LABEL: test_vreinterpretq_s64_u32: 10425// CHECK-NEXT: ret 10426int64x2_t test_vreinterpretq_s64_u32(uint32x4_t a) { 10427 return vreinterpretq_s64_u32(a); 10428} 10429 10430// CHECK-LABEL: test_vreinterpretq_s64_u64: 10431// CHECK-NEXT: ret 10432int64x2_t test_vreinterpretq_s64_u64(uint64x2_t a) { 10433 return vreinterpretq_s64_u64(a); 10434} 10435 10436// CHECK-LABEL: test_vreinterpretq_s64_f16: 10437// CHECK-NEXT: ret 10438int64x2_t test_vreinterpretq_s64_f16(float16x8_t a) { 10439 return vreinterpretq_s64_f16(a); 10440} 10441 10442// CHECK-LABEL: test_vreinterpretq_s64_f32: 10443// CHECK-NEXT: ret 10444int64x2_t test_vreinterpretq_s64_f32(float32x4_t a) { 10445 return vreinterpretq_s64_f32(a); 10446} 10447 10448// CHECK-LABEL: test_vreinterpretq_s64_f64: 10449// CHECK-NEXT: ret 10450int64x2_t test_vreinterpretq_s64_f64(float64x2_t a) { 10451 return vreinterpretq_s64_f64(a); 10452} 10453 10454// CHECK-LABEL: test_vreinterpretq_s64_p8: 10455// CHECK-NEXT: ret 10456int64x2_t test_vreinterpretq_s64_p8(poly8x16_t a) { 10457 return vreinterpretq_s64_p8(a); 10458} 10459 10460// CHECK-LABEL: test_vreinterpretq_s64_p16: 10461// CHECK-NEXT: ret 10462int64x2_t test_vreinterpretq_s64_p16(poly16x8_t a) { 10463 return vreinterpretq_s64_p16(a); 10464} 10465 10466// CHECK-LABEL: test_vreinterpretq_s64_p64: 10467// CHECK-NEXT: ret 10468int64x2_t test_vreinterpretq_s64_p64(poly64x2_t a) { 10469 return vreinterpretq_s64_p64(a); 10470} 10471 10472// CHECK-LABEL: test_vreinterpretq_u8_s8: 10473// CHECK-NEXT: ret 10474uint8x16_t test_vreinterpretq_u8_s8(int8x16_t a) { 10475 return vreinterpretq_u8_s8(a); 10476} 10477 10478// CHECK-LABEL: test_vreinterpretq_u8_s16: 10479// CHECK-NEXT: ret 10480uint8x16_t test_vreinterpretq_u8_s16(int16x8_t a) { 10481 return vreinterpretq_u8_s16(a); 10482} 10483 10484// CHECK-LABEL: test_vreinterpretq_u8_s32: 10485// CHECK-NEXT: ret 10486uint8x16_t test_vreinterpretq_u8_s32(int32x4_t a) { 10487 return vreinterpretq_u8_s32(a); 10488} 10489 10490// CHECK-LABEL: test_vreinterpretq_u8_s64: 10491// CHECK-NEXT: ret 10492uint8x16_t test_vreinterpretq_u8_s64(int64x2_t a) { 10493 return vreinterpretq_u8_s64(a); 10494} 10495 10496// CHECK-LABEL: test_vreinterpretq_u8_u16: 10497// CHECK-NEXT: ret 10498uint8x16_t test_vreinterpretq_u8_u16(uint16x8_t a) { 10499 return vreinterpretq_u8_u16(a); 10500} 10501 10502// CHECK-LABEL: test_vreinterpretq_u8_u32: 10503// CHECK-NEXT: ret 10504uint8x16_t test_vreinterpretq_u8_u32(uint32x4_t a) { 10505 return vreinterpretq_u8_u32(a); 10506} 10507 10508// CHECK-LABEL: test_vreinterpretq_u8_u64: 10509// CHECK-NEXT: ret 10510uint8x16_t test_vreinterpretq_u8_u64(uint64x2_t a) { 10511 return vreinterpretq_u8_u64(a); 10512} 10513 10514// CHECK-LABEL: test_vreinterpretq_u8_f16: 10515// CHECK-NEXT: ret 10516uint8x16_t test_vreinterpretq_u8_f16(float16x8_t a) { 10517 return vreinterpretq_u8_f16(a); 10518} 10519 10520// CHECK-LABEL: test_vreinterpretq_u8_f32: 10521// CHECK-NEXT: ret 10522uint8x16_t test_vreinterpretq_u8_f32(float32x4_t a) { 10523 return vreinterpretq_u8_f32(a); 10524} 10525 10526// CHECK-LABEL: test_vreinterpretq_u8_f64: 10527// CHECK-NEXT: ret 10528uint8x16_t test_vreinterpretq_u8_f64(float64x2_t a) { 10529 return vreinterpretq_u8_f64(a); 10530} 10531 10532// CHECK-LABEL: test_vreinterpretq_u8_p8: 10533// CHECK-NEXT: ret 10534uint8x16_t test_vreinterpretq_u8_p8(poly8x16_t a) { 10535 return vreinterpretq_u8_p8(a); 10536} 10537 10538// CHECK-LABEL: test_vreinterpretq_u8_p16: 10539// CHECK-NEXT: ret 10540uint8x16_t test_vreinterpretq_u8_p16(poly16x8_t a) { 10541 return vreinterpretq_u8_p16(a); 10542} 10543 10544// CHECK-LABEL: test_vreinterpretq_u8_p64: 10545// CHECK-NEXT: ret 10546uint8x16_t test_vreinterpretq_u8_p64(poly64x2_t a) { 10547 return vreinterpretq_u8_p64(a); 10548} 10549 10550// CHECK-LABEL: test_vreinterpretq_u16_s8: 10551// CHECK-NEXT: ret 10552uint16x8_t test_vreinterpretq_u16_s8(int8x16_t a) { 10553 return vreinterpretq_u16_s8(a); 10554} 10555 10556// CHECK-LABEL: test_vreinterpretq_u16_s16: 10557// CHECK-NEXT: ret 10558uint16x8_t test_vreinterpretq_u16_s16(int16x8_t a) { 10559 return vreinterpretq_u16_s16(a); 10560} 10561 10562// CHECK-LABEL: test_vreinterpretq_u16_s32: 10563// CHECK-NEXT: ret 10564uint16x8_t test_vreinterpretq_u16_s32(int32x4_t a) { 10565 return vreinterpretq_u16_s32(a); 10566} 10567 10568// CHECK-LABEL: test_vreinterpretq_u16_s64: 10569// CHECK-NEXT: ret 10570uint16x8_t test_vreinterpretq_u16_s64(int64x2_t a) { 10571 return vreinterpretq_u16_s64(a); 10572} 10573 10574// CHECK-LABEL: test_vreinterpretq_u16_u8: 10575// CHECK-NEXT: ret 10576uint16x8_t test_vreinterpretq_u16_u8(uint8x16_t a) { 10577 return vreinterpretq_u16_u8(a); 10578} 10579 10580// CHECK-LABEL: test_vreinterpretq_u16_u32: 10581// CHECK-NEXT: ret 10582uint16x8_t test_vreinterpretq_u16_u32(uint32x4_t a) { 10583 return vreinterpretq_u16_u32(a); 10584} 10585 10586// CHECK-LABEL: test_vreinterpretq_u16_u64: 10587// CHECK-NEXT: ret 10588uint16x8_t test_vreinterpretq_u16_u64(uint64x2_t a) { 10589 return vreinterpretq_u16_u64(a); 10590} 10591 10592// CHECK-LABEL: test_vreinterpretq_u16_f16: 10593// CHECK-NEXT: ret 10594uint16x8_t test_vreinterpretq_u16_f16(float16x8_t a) { 10595 return vreinterpretq_u16_f16(a); 10596} 10597 10598// CHECK-LABEL: test_vreinterpretq_u16_f32: 10599// CHECK-NEXT: ret 10600uint16x8_t test_vreinterpretq_u16_f32(float32x4_t a) { 10601 return vreinterpretq_u16_f32(a); 10602} 10603 10604// CHECK-LABEL: test_vreinterpretq_u16_f64: 10605// CHECK-NEXT: ret 10606uint16x8_t test_vreinterpretq_u16_f64(float64x2_t a) { 10607 return vreinterpretq_u16_f64(a); 10608} 10609 10610// CHECK-LABEL: test_vreinterpretq_u16_p8: 10611// CHECK-NEXT: ret 10612uint16x8_t test_vreinterpretq_u16_p8(poly8x16_t a) { 10613 return vreinterpretq_u16_p8(a); 10614} 10615 10616// CHECK-LABEL: test_vreinterpretq_u16_p16: 10617// CHECK-NEXT: ret 10618uint16x8_t test_vreinterpretq_u16_p16(poly16x8_t a) { 10619 return vreinterpretq_u16_p16(a); 10620} 10621 10622// CHECK-LABEL: test_vreinterpretq_u16_p64: 10623// CHECK-NEXT: ret 10624uint16x8_t test_vreinterpretq_u16_p64(poly64x2_t a) { 10625 return vreinterpretq_u16_p64(a); 10626} 10627 10628// CHECK-LABEL: test_vreinterpretq_u32_s8: 10629// CHECK-NEXT: ret 10630uint32x4_t test_vreinterpretq_u32_s8(int8x16_t a) { 10631 return vreinterpretq_u32_s8(a); 10632} 10633 10634// CHECK-LABEL: test_vreinterpretq_u32_s16: 10635// CHECK-NEXT: ret 10636uint32x4_t test_vreinterpretq_u32_s16(int16x8_t a) { 10637 return vreinterpretq_u32_s16(a); 10638} 10639 10640// CHECK-LABEL: test_vreinterpretq_u32_s32: 10641// CHECK-NEXT: ret 10642uint32x4_t test_vreinterpretq_u32_s32(int32x4_t a) { 10643 return vreinterpretq_u32_s32(a); 10644} 10645 10646// CHECK-LABEL: test_vreinterpretq_u32_s64: 10647// CHECK-NEXT: ret 10648uint32x4_t test_vreinterpretq_u32_s64(int64x2_t a) { 10649 return vreinterpretq_u32_s64(a); 10650} 10651 10652// CHECK-LABEL: test_vreinterpretq_u32_u8: 10653// CHECK-NEXT: ret 10654uint32x4_t test_vreinterpretq_u32_u8(uint8x16_t a) { 10655 return vreinterpretq_u32_u8(a); 10656} 10657 10658// CHECK-LABEL: test_vreinterpretq_u32_u16: 10659// CHECK-NEXT: ret 10660uint32x4_t test_vreinterpretq_u32_u16(uint16x8_t a) { 10661 return vreinterpretq_u32_u16(a); 10662} 10663 10664// CHECK-LABEL: test_vreinterpretq_u32_u64: 10665// CHECK-NEXT: ret 10666uint32x4_t test_vreinterpretq_u32_u64(uint64x2_t a) { 10667 return vreinterpretq_u32_u64(a); 10668} 10669 10670// CHECK-LABEL: test_vreinterpretq_u32_f16: 10671// CHECK-NEXT: ret 10672uint32x4_t test_vreinterpretq_u32_f16(float16x8_t a) { 10673 return vreinterpretq_u32_f16(a); 10674} 10675 10676// CHECK-LABEL: test_vreinterpretq_u32_f32: 10677// CHECK-NEXT: ret 10678uint32x4_t test_vreinterpretq_u32_f32(float32x4_t a) { 10679 return vreinterpretq_u32_f32(a); 10680} 10681 10682// CHECK-LABEL: test_vreinterpretq_u32_f64: 10683// CHECK-NEXT: ret 10684uint32x4_t test_vreinterpretq_u32_f64(float64x2_t a) { 10685 return vreinterpretq_u32_f64(a); 10686} 10687 10688// CHECK-LABEL: test_vreinterpretq_u32_p8: 10689// CHECK-NEXT: ret 10690uint32x4_t test_vreinterpretq_u32_p8(poly8x16_t a) { 10691 return vreinterpretq_u32_p8(a); 10692} 10693 10694// CHECK-LABEL: test_vreinterpretq_u32_p16: 10695// CHECK-NEXT: ret 10696uint32x4_t test_vreinterpretq_u32_p16(poly16x8_t a) { 10697 return vreinterpretq_u32_p16(a); 10698} 10699 10700// CHECK-LABEL: test_vreinterpretq_u32_p64: 10701// CHECK-NEXT: ret 10702uint32x4_t test_vreinterpretq_u32_p64(poly64x2_t a) { 10703 return vreinterpretq_u32_p64(a); 10704} 10705 10706// CHECK-LABEL: test_vreinterpretq_u64_s8: 10707// CHECK-NEXT: ret 10708uint64x2_t test_vreinterpretq_u64_s8(int8x16_t a) { 10709 return vreinterpretq_u64_s8(a); 10710} 10711 10712// CHECK-LABEL: test_vreinterpretq_u64_s16: 10713// CHECK-NEXT: ret 10714uint64x2_t test_vreinterpretq_u64_s16(int16x8_t a) { 10715 return vreinterpretq_u64_s16(a); 10716} 10717 10718// CHECK-LABEL: test_vreinterpretq_u64_s32: 10719// CHECK-NEXT: ret 10720uint64x2_t test_vreinterpretq_u64_s32(int32x4_t a) { 10721 return vreinterpretq_u64_s32(a); 10722} 10723 10724// CHECK-LABEL: test_vreinterpretq_u64_s64: 10725// CHECK-NEXT: ret 10726uint64x2_t test_vreinterpretq_u64_s64(int64x2_t a) { 10727 return vreinterpretq_u64_s64(a); 10728} 10729 10730// CHECK-LABEL: test_vreinterpretq_u64_u8: 10731// CHECK-NEXT: ret 10732uint64x2_t test_vreinterpretq_u64_u8(uint8x16_t a) { 10733 return vreinterpretq_u64_u8(a); 10734} 10735 10736// CHECK-LABEL: test_vreinterpretq_u64_u16: 10737// CHECK-NEXT: ret 10738uint64x2_t test_vreinterpretq_u64_u16(uint16x8_t a) { 10739 return vreinterpretq_u64_u16(a); 10740} 10741 10742// CHECK-LABEL: test_vreinterpretq_u64_u32: 10743// CHECK-NEXT: ret 10744uint64x2_t test_vreinterpretq_u64_u32(uint32x4_t a) { 10745 return vreinterpretq_u64_u32(a); 10746} 10747 10748// CHECK-LABEL: test_vreinterpretq_u64_f16: 10749// CHECK-NEXT: ret 10750uint64x2_t test_vreinterpretq_u64_f16(float16x8_t a) { 10751 return vreinterpretq_u64_f16(a); 10752} 10753 10754// CHECK-LABEL: test_vreinterpretq_u64_f32: 10755// CHECK-NEXT: ret 10756uint64x2_t test_vreinterpretq_u64_f32(float32x4_t a) { 10757 return vreinterpretq_u64_f32(a); 10758} 10759 10760// CHECK-LABEL: test_vreinterpretq_u64_f64: 10761// CHECK-NEXT: ret 10762uint64x2_t test_vreinterpretq_u64_f64(float64x2_t a) { 10763 return vreinterpretq_u64_f64(a); 10764} 10765 10766// CHECK-LABEL: test_vreinterpretq_u64_p8: 10767// CHECK-NEXT: ret 10768uint64x2_t test_vreinterpretq_u64_p8(poly8x16_t a) { 10769 return vreinterpretq_u64_p8(a); 10770} 10771 10772// CHECK-LABEL: test_vreinterpretq_u64_p16: 10773// CHECK-NEXT: ret 10774uint64x2_t test_vreinterpretq_u64_p16(poly16x8_t a) { 10775 return vreinterpretq_u64_p16(a); 10776} 10777 10778// CHECK-LABEL: test_vreinterpretq_u64_p64: 10779// CHECK-NEXT: ret 10780uint64x2_t test_vreinterpretq_u64_p64(poly64x2_t a) { 10781 return vreinterpretq_u64_p64(a); 10782} 10783 10784// CHECK-LABEL: test_vreinterpretq_f16_s8: 10785// CHECK-NEXT: ret 10786float16x8_t test_vreinterpretq_f16_s8(int8x16_t a) { 10787 return vreinterpretq_f16_s8(a); 10788} 10789 10790// CHECK-LABEL: test_vreinterpretq_f16_s16: 10791// CHECK-NEXT: ret 10792float16x8_t test_vreinterpretq_f16_s16(int16x8_t a) { 10793 return vreinterpretq_f16_s16(a); 10794} 10795 10796// CHECK-LABEL: test_vreinterpretq_f16_s32: 10797// CHECK-NEXT: ret 10798float16x8_t test_vreinterpretq_f16_s32(int32x4_t a) { 10799 return vreinterpretq_f16_s32(a); 10800} 10801 10802// CHECK-LABEL: test_vreinterpretq_f16_s64: 10803// CHECK-NEXT: ret 10804float16x8_t test_vreinterpretq_f16_s64(int64x2_t a) { 10805 return vreinterpretq_f16_s64(a); 10806} 10807 10808// CHECK-LABEL: test_vreinterpretq_f16_u8: 10809// CHECK-NEXT: ret 10810float16x8_t test_vreinterpretq_f16_u8(uint8x16_t a) { 10811 return vreinterpretq_f16_u8(a); 10812} 10813 10814// CHECK-LABEL: test_vreinterpretq_f16_u16: 10815// CHECK-NEXT: ret 10816float16x8_t test_vreinterpretq_f16_u16(uint16x8_t a) { 10817 return vreinterpretq_f16_u16(a); 10818} 10819 10820// CHECK-LABEL: test_vreinterpretq_f16_u32: 10821// CHECK-NEXT: ret 10822float16x8_t test_vreinterpretq_f16_u32(uint32x4_t a) { 10823 return vreinterpretq_f16_u32(a); 10824} 10825 10826// CHECK-LABEL: test_vreinterpretq_f16_u64: 10827// CHECK-NEXT: ret 10828float16x8_t test_vreinterpretq_f16_u64(uint64x2_t a) { 10829 return vreinterpretq_f16_u64(a); 10830} 10831 10832// CHECK-LABEL: test_vreinterpretq_f16_f32: 10833// CHECK-NEXT: ret 10834float16x8_t test_vreinterpretq_f16_f32(float32x4_t a) { 10835 return vreinterpretq_f16_f32(a); 10836} 10837 10838// CHECK-LABEL: test_vreinterpretq_f16_f64: 10839// CHECK-NEXT: ret 10840float16x8_t test_vreinterpretq_f16_f64(float64x2_t a) { 10841 return vreinterpretq_f16_f64(a); 10842} 10843 10844// CHECK-LABEL: test_vreinterpretq_f16_p8: 10845// CHECK-NEXT: ret 10846float16x8_t test_vreinterpretq_f16_p8(poly8x16_t a) { 10847 return vreinterpretq_f16_p8(a); 10848} 10849 10850// CHECK-LABEL: test_vreinterpretq_f16_p16: 10851// CHECK-NEXT: ret 10852float16x8_t test_vreinterpretq_f16_p16(poly16x8_t a) { 10853 return vreinterpretq_f16_p16(a); 10854} 10855 10856// CHECK-LABEL: test_vreinterpretq_f16_p64: 10857// CHECK-NEXT: ret 10858float16x8_t test_vreinterpretq_f16_p64(poly64x2_t a) { 10859 return vreinterpretq_f16_p64(a); 10860} 10861 10862// CHECK-LABEL: test_vreinterpretq_f32_s8: 10863// CHECK-NEXT: ret 10864float32x4_t test_vreinterpretq_f32_s8(int8x16_t a) { 10865 return vreinterpretq_f32_s8(a); 10866} 10867 10868// CHECK-LABEL: test_vreinterpretq_f32_s16: 10869// CHECK-NEXT: ret 10870float32x4_t test_vreinterpretq_f32_s16(int16x8_t a) { 10871 return vreinterpretq_f32_s16(a); 10872} 10873 10874// CHECK-LABEL: test_vreinterpretq_f32_s32: 10875// CHECK-NEXT: ret 10876float32x4_t test_vreinterpretq_f32_s32(int32x4_t a) { 10877 return vreinterpretq_f32_s32(a); 10878} 10879 10880// CHECK-LABEL: test_vreinterpretq_f32_s64: 10881// CHECK-NEXT: ret 10882float32x4_t test_vreinterpretq_f32_s64(int64x2_t a) { 10883 return vreinterpretq_f32_s64(a); 10884} 10885 10886// CHECK-LABEL: test_vreinterpretq_f32_u8: 10887// CHECK-NEXT: ret 10888float32x4_t test_vreinterpretq_f32_u8(uint8x16_t a) { 10889 return vreinterpretq_f32_u8(a); 10890} 10891 10892// CHECK-LABEL: test_vreinterpretq_f32_u16: 10893// CHECK-NEXT: ret 10894float32x4_t test_vreinterpretq_f32_u16(uint16x8_t a) { 10895 return vreinterpretq_f32_u16(a); 10896} 10897 10898// CHECK-LABEL: test_vreinterpretq_f32_u32: 10899// CHECK-NEXT: ret 10900float32x4_t test_vreinterpretq_f32_u32(uint32x4_t a) { 10901 return vreinterpretq_f32_u32(a); 10902} 10903 10904// CHECK-LABEL: test_vreinterpretq_f32_u64: 10905// CHECK-NEXT: ret 10906float32x4_t test_vreinterpretq_f32_u64(uint64x2_t a) { 10907 return vreinterpretq_f32_u64(a); 10908} 10909 10910// CHECK-LABEL: test_vreinterpretq_f32_f16: 10911// CHECK-NEXT: ret 10912float32x4_t test_vreinterpretq_f32_f16(float16x8_t a) { 10913 return vreinterpretq_f32_f16(a); 10914} 10915 10916// CHECK-LABEL: test_vreinterpretq_f32_f64: 10917// CHECK-NEXT: ret 10918float32x4_t test_vreinterpretq_f32_f64(float64x2_t a) { 10919 return vreinterpretq_f32_f64(a); 10920} 10921 10922// CHECK-LABEL: test_vreinterpretq_f32_p8: 10923// CHECK-NEXT: ret 10924float32x4_t test_vreinterpretq_f32_p8(poly8x16_t a) { 10925 return vreinterpretq_f32_p8(a); 10926} 10927 10928// CHECK-LABEL: test_vreinterpretq_f32_p16: 10929// CHECK-NEXT: ret 10930float32x4_t test_vreinterpretq_f32_p16(poly16x8_t a) { 10931 return vreinterpretq_f32_p16(a); 10932} 10933 10934// CHECK-LABEL: test_vreinterpretq_f32_p64: 10935// CHECK-NEXT: ret 10936float32x4_t test_vreinterpretq_f32_p64(poly64x2_t a) { 10937 return vreinterpretq_f32_p64(a); 10938} 10939 10940// CHECK-LABEL: test_vreinterpretq_f64_s8: 10941// CHECK-NEXT: ret 10942float64x2_t test_vreinterpretq_f64_s8(int8x16_t a) { 10943 return vreinterpretq_f64_s8(a); 10944} 10945 10946// CHECK-LABEL: test_vreinterpretq_f64_s16: 10947// CHECK-NEXT: ret 10948float64x2_t test_vreinterpretq_f64_s16(int16x8_t a) { 10949 return vreinterpretq_f64_s16(a); 10950} 10951 10952// CHECK-LABEL: test_vreinterpretq_f64_s32: 10953// CHECK-NEXT: ret 10954float64x2_t test_vreinterpretq_f64_s32(int32x4_t a) { 10955 return vreinterpretq_f64_s32(a); 10956} 10957 10958// CHECK-LABEL: test_vreinterpretq_f64_s64: 10959// CHECK-NEXT: ret 10960float64x2_t test_vreinterpretq_f64_s64(int64x2_t a) { 10961 return vreinterpretq_f64_s64(a); 10962} 10963 10964// CHECK-LABEL: test_vreinterpretq_f64_u8: 10965// CHECK-NEXT: ret 10966float64x2_t test_vreinterpretq_f64_u8(uint8x16_t a) { 10967 return vreinterpretq_f64_u8(a); 10968} 10969 10970// CHECK-LABEL: test_vreinterpretq_f64_u16: 10971// CHECK-NEXT: ret 10972float64x2_t test_vreinterpretq_f64_u16(uint16x8_t a) { 10973 return vreinterpretq_f64_u16(a); 10974} 10975 10976// CHECK-LABEL: test_vreinterpretq_f64_u32: 10977// CHECK-NEXT: ret 10978float64x2_t test_vreinterpretq_f64_u32(uint32x4_t a) { 10979 return vreinterpretq_f64_u32(a); 10980} 10981 10982// CHECK-LABEL: test_vreinterpretq_f64_u64: 10983// CHECK-NEXT: ret 10984float64x2_t test_vreinterpretq_f64_u64(uint64x2_t a) { 10985 return vreinterpretq_f64_u64(a); 10986} 10987 10988// CHECK-LABEL: test_vreinterpretq_f64_f16: 10989// CHECK-NEXT: ret 10990float64x2_t test_vreinterpretq_f64_f16(float16x8_t a) { 10991 return vreinterpretq_f64_f16(a); 10992} 10993 10994// CHECK-LABEL: test_vreinterpretq_f64_f32: 10995// CHECK-NEXT: ret 10996float64x2_t test_vreinterpretq_f64_f32(float32x4_t a) { 10997 return vreinterpretq_f64_f32(a); 10998} 10999 11000// CHECK-LABEL: test_vreinterpretq_f64_p8: 11001// CHECK-NEXT: ret 11002float64x2_t test_vreinterpretq_f64_p8(poly8x16_t a) { 11003 return vreinterpretq_f64_p8(a); 11004} 11005 11006// CHECK-LABEL: test_vreinterpretq_f64_p16: 11007// CHECK-NEXT: ret 11008float64x2_t test_vreinterpretq_f64_p16(poly16x8_t a) { 11009 return vreinterpretq_f64_p16(a); 11010} 11011 11012// CHECK-LABEL: test_vreinterpretq_f64_p64: 11013// CHECK-NEXT: ret 11014float64x2_t test_vreinterpretq_f64_p64(poly64x2_t a) { 11015 return vreinterpretq_f64_p64(a); 11016} 11017 11018// CHECK-LABEL: test_vreinterpretq_p8_s8: 11019// CHECK-NEXT: ret 11020poly8x16_t test_vreinterpretq_p8_s8(int8x16_t a) { 11021 return vreinterpretq_p8_s8(a); 11022} 11023 11024// CHECK-LABEL: test_vreinterpretq_p8_s16: 11025// CHECK-NEXT: ret 11026poly8x16_t test_vreinterpretq_p8_s16(int16x8_t a) { 11027 return vreinterpretq_p8_s16(a); 11028} 11029 11030// CHECK-LABEL: test_vreinterpretq_p8_s32: 11031// CHECK-NEXT: ret 11032poly8x16_t test_vreinterpretq_p8_s32(int32x4_t a) { 11033 return vreinterpretq_p8_s32(a); 11034} 11035 11036// CHECK-LABEL: test_vreinterpretq_p8_s64: 11037// CHECK-NEXT: ret 11038poly8x16_t test_vreinterpretq_p8_s64(int64x2_t a) { 11039 return vreinterpretq_p8_s64(a); 11040} 11041 11042// CHECK-LABEL: test_vreinterpretq_p8_u8: 11043// CHECK-NEXT: ret 11044poly8x16_t test_vreinterpretq_p8_u8(uint8x16_t a) { 11045 return vreinterpretq_p8_u8(a); 11046} 11047 11048// CHECK-LABEL: test_vreinterpretq_p8_u16: 11049// CHECK-NEXT: ret 11050poly8x16_t test_vreinterpretq_p8_u16(uint16x8_t a) { 11051 return vreinterpretq_p8_u16(a); 11052} 11053 11054// CHECK-LABEL: test_vreinterpretq_p8_u32: 11055// CHECK-NEXT: ret 11056poly8x16_t test_vreinterpretq_p8_u32(uint32x4_t a) { 11057 return vreinterpretq_p8_u32(a); 11058} 11059 11060// CHECK-LABEL: test_vreinterpretq_p8_u64: 11061// CHECK-NEXT: ret 11062poly8x16_t test_vreinterpretq_p8_u64(uint64x2_t a) { 11063 return vreinterpretq_p8_u64(a); 11064} 11065 11066// CHECK-LABEL: test_vreinterpretq_p8_f16: 11067// CHECK-NEXT: ret 11068poly8x16_t test_vreinterpretq_p8_f16(float16x8_t a) { 11069 return vreinterpretq_p8_f16(a); 11070} 11071 11072// CHECK-LABEL: test_vreinterpretq_p8_f32: 11073// CHECK-NEXT: ret 11074poly8x16_t test_vreinterpretq_p8_f32(float32x4_t a) { 11075 return vreinterpretq_p8_f32(a); 11076} 11077 11078// CHECK-LABEL: test_vreinterpretq_p8_f64: 11079// CHECK-NEXT: ret 11080poly8x16_t test_vreinterpretq_p8_f64(float64x2_t a) { 11081 return vreinterpretq_p8_f64(a); 11082} 11083 11084// CHECK-LABEL: test_vreinterpretq_p8_p16: 11085// CHECK-NEXT: ret 11086poly8x16_t test_vreinterpretq_p8_p16(poly16x8_t a) { 11087 return vreinterpretq_p8_p16(a); 11088} 11089 11090// CHECK-LABEL: test_vreinterpretq_p8_p64: 11091// CHECK-NEXT: ret 11092poly8x16_t test_vreinterpretq_p8_p64(poly64x2_t a) { 11093 return vreinterpretq_p8_p64(a); 11094} 11095 11096// CHECK-LABEL: test_vreinterpretq_p16_s8: 11097// CHECK-NEXT: ret 11098poly16x8_t test_vreinterpretq_p16_s8(int8x16_t a) { 11099 return vreinterpretq_p16_s8(a); 11100} 11101 11102// CHECK-LABEL: test_vreinterpretq_p16_s16: 11103// CHECK-NEXT: ret 11104poly16x8_t test_vreinterpretq_p16_s16(int16x8_t a) { 11105 return vreinterpretq_p16_s16(a); 11106} 11107 11108// CHECK-LABEL: test_vreinterpretq_p16_s32: 11109// CHECK-NEXT: ret 11110poly16x8_t test_vreinterpretq_p16_s32(int32x4_t a) { 11111 return vreinterpretq_p16_s32(a); 11112} 11113 11114// CHECK-LABEL: test_vreinterpretq_p16_s64: 11115// CHECK-NEXT: ret 11116poly16x8_t test_vreinterpretq_p16_s64(int64x2_t a) { 11117 return vreinterpretq_p16_s64(a); 11118} 11119 11120// CHECK-LABEL: test_vreinterpretq_p16_u8: 11121// CHECK-NEXT: ret 11122poly16x8_t test_vreinterpretq_p16_u8(uint8x16_t a) { 11123 return vreinterpretq_p16_u8(a); 11124} 11125 11126// CHECK-LABEL: test_vreinterpretq_p16_u16: 11127// CHECK-NEXT: ret 11128poly16x8_t test_vreinterpretq_p16_u16(uint16x8_t a) { 11129 return vreinterpretq_p16_u16(a); 11130} 11131 11132// CHECK-LABEL: test_vreinterpretq_p16_u32: 11133// CHECK-NEXT: ret 11134poly16x8_t test_vreinterpretq_p16_u32(uint32x4_t a) { 11135 return vreinterpretq_p16_u32(a); 11136} 11137 11138// CHECK-LABEL: test_vreinterpretq_p16_u64: 11139// CHECK-NEXT: ret 11140poly16x8_t test_vreinterpretq_p16_u64(uint64x2_t a) { 11141 return vreinterpretq_p16_u64(a); 11142} 11143 11144// CHECK-LABEL: test_vreinterpretq_p16_f16: 11145// CHECK-NEXT: ret 11146poly16x8_t test_vreinterpretq_p16_f16(float16x8_t a) { 11147 return vreinterpretq_p16_f16(a); 11148} 11149 11150// CHECK-LABEL: test_vreinterpretq_p16_f32: 11151// CHECK-NEXT: ret 11152poly16x8_t test_vreinterpretq_p16_f32(float32x4_t a) { 11153 return vreinterpretq_p16_f32(a); 11154} 11155 11156// CHECK-LABEL: test_vreinterpretq_p16_f64: 11157// CHECK-NEXT: ret 11158poly16x8_t test_vreinterpretq_p16_f64(float64x2_t a) { 11159 return vreinterpretq_p16_f64(a); 11160} 11161 11162// CHECK-LABEL: test_vreinterpretq_p16_p8: 11163// CHECK-NEXT: ret 11164poly16x8_t test_vreinterpretq_p16_p8(poly8x16_t a) { 11165 return vreinterpretq_p16_p8(a); 11166} 11167 11168// CHECK-LABEL: test_vreinterpretq_p16_p64: 11169// CHECK-NEXT: ret 11170poly16x8_t test_vreinterpretq_p16_p64(poly64x2_t a) { 11171 return vreinterpretq_p16_p64(a); 11172} 11173 11174// CHECK-LABEL: test_vreinterpretq_p64_s8: 11175// CHECK-NEXT: ret 11176poly64x2_t test_vreinterpretq_p64_s8(int8x16_t a) { 11177 return vreinterpretq_p64_s8(a); 11178} 11179 11180// CHECK-LABEL: test_vreinterpretq_p64_s16: 11181// CHECK-NEXT: ret 11182poly64x2_t test_vreinterpretq_p64_s16(int16x8_t a) { 11183 return vreinterpretq_p64_s16(a); 11184} 11185 11186// CHECK-LABEL: test_vreinterpretq_p64_s32: 11187// CHECK-NEXT: ret 11188poly64x2_t test_vreinterpretq_p64_s32(int32x4_t a) { 11189 return vreinterpretq_p64_s32(a); 11190} 11191 11192// CHECK-LABEL: test_vreinterpretq_p64_s64: 11193// CHECK-NEXT: ret 11194poly64x2_t test_vreinterpretq_p64_s64(int64x2_t a) { 11195 return vreinterpretq_p64_s64(a); 11196} 11197 11198// CHECK-LABEL: test_vreinterpretq_p64_u8: 11199// CHECK-NEXT: ret 11200poly64x2_t test_vreinterpretq_p64_u8(uint8x16_t a) { 11201 return vreinterpretq_p64_u8(a); 11202} 11203 11204// CHECK-LABEL: test_vreinterpretq_p64_u16: 11205// CHECK-NEXT: ret 11206poly64x2_t test_vreinterpretq_p64_u16(uint16x8_t a) { 11207 return vreinterpretq_p64_u16(a); 11208} 11209 11210// CHECK-LABEL: test_vreinterpretq_p64_u32: 11211// CHECK-NEXT: ret 11212poly64x2_t test_vreinterpretq_p64_u32(uint32x4_t a) { 11213 return vreinterpretq_p64_u32(a); 11214} 11215 11216// CHECK-LABEL: test_vreinterpretq_p64_u64: 11217// CHECK-NEXT: ret 11218poly64x2_t test_vreinterpretq_p64_u64(uint64x2_t a) { 11219 return vreinterpretq_p64_u64(a); 11220} 11221 11222// CHECK-LABEL: test_vreinterpretq_p64_f16: 11223// CHECK-NEXT: ret 11224poly64x2_t test_vreinterpretq_p64_f16(float16x8_t a) { 11225 return vreinterpretq_p64_f16(a); 11226} 11227 11228// CHECK-LABEL: test_vreinterpretq_p64_f32: 11229// CHECK-NEXT: ret 11230poly64x2_t test_vreinterpretq_p64_f32(float32x4_t a) { 11231 return vreinterpretq_p64_f32(a); 11232} 11233 11234// CHECK-LABEL: test_vreinterpretq_p64_f64: 11235// CHECK-NEXT: ret 11236poly64x2_t test_vreinterpretq_p64_f64(float64x2_t a) { 11237 return vreinterpretq_p64_f64(a); 11238} 11239 11240// CHECK-LABEL: test_vreinterpretq_p64_p8: 11241// CHECK-NEXT: ret 11242poly64x2_t test_vreinterpretq_p64_p8(poly8x16_t a) { 11243 return vreinterpretq_p64_p8(a); 11244} 11245 11246// CHECK-LABEL: test_vreinterpretq_p64_p16: 11247// CHECK-NEXT: ret 11248poly64x2_t test_vreinterpretq_p64_p16(poly16x8_t a) { 11249 return vreinterpretq_p64_p16(a); 11250} 11251 11252float32_t test_vabds_f32(float32_t a, float32_t b) { 11253// CHECK-LABEL: test_vabds_f32 11254// CHECK: fabd {{s[0-9]+}}, {{s[0-9]+}}, {{s[0-9]+}} 11255 return vabds_f32(a, b); 11256} 11257 11258float64_t test_vabdd_f64(float64_t a, float64_t b) { 11259// CHECK-LABEL: test_vabdd_f64 11260// CHECK: fabd {{d[0-9]+}}, {{d[0-9]+}}, {{d[0-9]+}} 11261 return vabdd_f64(a, b); 11262} 11263 11264int64x1_t test_vuqadd_s64(int64x1_t a, uint64x1_t b) { 11265 // CHECK-LABEL: test_vuqadd_s64 11266 return vuqadd_s64(a, b); 11267 // CHECK: suqadd d{{[0-9]+}}, d{{[0-9]+}} 11268} 11269 11270uint64x1_t test_vsqadd_u64(uint64x1_t a, int64x1_t b) { 11271 // CHECK-LABEL: test_vsqadd_u64 11272 return vsqadd_u64(a, b); 11273 // CHECK: usqadd d{{[0-9]+}}, d{{[0-9]+}} 11274} 11275 11276uint8x8_t test_vsqadd_u8(uint8x8_t a, int8x8_t b) { 11277 // CHECK-LABEL: test_vsqadd_u8 11278 return vsqadd_u8(a, b); 11279 // CHECK: usqadd {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 11280} 11281 11282uint8x16_t test_vsqaddq_u8(uint8x16_t a, int8x16_t b) { 11283 // CHECK-LABEL: test_vsqaddq_u8 11284 return vsqaddq_u8(a, b); 11285 // CHECK: usqadd {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 11286} 11287 11288uint16x4_t test_vsqadd_u16(uint16x4_t a, int16x4_t b) { 11289 // CHECK-LABEL: test_vsqadd_u16 11290 return vsqadd_u16(a, b); 11291 // CHECK: usqadd {{v[0-9]+}}.4h, {{v[0-9]+}}.4h 11292} 11293 11294uint16x8_t test_vsqaddq_u16(uint16x8_t a, int16x8_t b) { 11295 // CHECK-LABEL: test_vsqaddq_u16 11296 return vsqaddq_u16(a, b); 11297 // CHECK: usqadd {{v[0-9]+}}.8h, {{v[0-9]+}}.8h 11298} 11299 11300uint32x2_t test_vsqadd_u32(uint32x2_t a, int32x2_t b) { 11301 // CHECK-LABEL: test_vsqadd_u32 11302 return vsqadd_u32(a, b); 11303 // CHECK: usqadd {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 11304} 11305 11306uint32x4_t test_vsqaddq_u32(uint32x4_t a, int32x4_t b) { 11307 // CHECK-LABEL: test_vsqaddq_u32 11308 return vsqaddq_u32(a, b); 11309 // CHECK: usqadd {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 11310} 11311 11312uint64x2_t test_vsqaddq_u64(uint64x2_t a, int64x2_t b) { 11313 // CHECK-LABEL: test_vsqaddq_u64 11314 return vsqaddq_u64(a, b); 11315 // CHECK: usqadd {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 11316} 11317 11318int64x1_t test_vabs_s64(int64x1_t a) { 11319 // CHECK-LABEL: test_vabs_s64 11320 return vabs_s64(a); 11321 // CHECK: abs d{{[0-9]+}}, d{{[0-9]+}} 11322} 11323 11324int64x1_t test_vqabs_s64(int64x1_t a) { 11325 // CHECK-LABEL: test_vqabs_s64 11326 return vqabs_s64(a); 11327 // CHECK: sqabs d{{[0-9]+}}, d{{[0-9]+}} 11328} 11329 11330int64x1_t test_vqneg_s64(int64x1_t a) { 11331 // CHECK-LABEL: test_vqneg_s64 11332 return vqneg_s64(a); 11333 // CHECK: sqneg d{{[0-9]+}}, d{{[0-9]+}} 11334} 11335 11336int64x1_t test_vneg_s64(int64x1_t a) { 11337 // CHECK-LABEL: test_vneg_s64 11338 return vneg_s64(a); 11339 // CHECK: neg d{{[0-9]+}}, d{{[0-9]+}} 11340} 11341 11342float32_t test_vaddv_f32(float32x2_t a) { 11343 // CHECK-LABEL: test_vaddv_f32 11344 return vaddv_f32(a); 11345 // CHECK: faddp {{s[0-9]+}}, {{v[0-9]+}}.2s 11346} 11347 11348float32_t test_vaddvq_f32(float32x4_t a) { 11349 // CHECK-LABEL: test_vaddvq_f32 11350 return vaddvq_f32(a); 11351 // CHECK: faddp {{v[0-9]+}}.4s, {{v[0-9]+}}.4s, {{v[0-9]+}}.4s 11352 // CHECK: faddp {{s[0-9]+}}, {{v[0-9]+}}.2s 11353} 11354 11355float64_t test_vaddvq_f64(float64x2_t a) { 11356 // CHECK-LABEL: test_vaddvq_f64 11357 return vaddvq_f64(a); 11358 // CHECK: faddp {{d[0-9]+}}, {{v[0-9]+}}.2d 11359} 11360 11361float32_t test_vmaxv_f32(float32x2_t a) { 11362 // CHECK-LABEL: test_vmaxv_f32 11363 return vmaxv_f32(a); 11364 // CHECK: fmaxp {{s[0-9]+}}, {{v[0-9]+}}.2s 11365} 11366 11367float64_t test_vmaxvq_f64(float64x2_t a) { 11368 // CHECK-LABEL: test_vmaxvq_f64 11369 return vmaxvq_f64(a); 11370 // CHECK: fmaxp {{d[0-9]+}}, {{v[0-9]+}}.2d 11371} 11372 11373float32_t test_vminv_f32(float32x2_t a) { 11374 // CHECK-LABEL: test_vminv_f32 11375 return vminv_f32(a); 11376 // CHECK: fminp {{s[0-9]+}}, {{v[0-9]+}}.2s 11377} 11378 11379float64_t test_vminvq_f64(float64x2_t a) { 11380 // CHECK-LABEL: test_vminvq_f64 11381 return vminvq_f64(a); 11382 // CHECK: fminp {{d[0-9]+}}, {{v[0-9]+}}.2d 11383} 11384 11385float64_t test_vmaxnmvq_f64(float64x2_t a) { 11386 // CHECK-LABEL: test_vmaxnmvq_f64 11387 return vmaxnmvq_f64(a); 11388 // CHECK: fmaxnmp {{d[0-9]+}}, {{v[0-9]+}}.2d 11389} 11390 11391float32_t test_vmaxnmv_f32(float32x2_t a) { 11392 // CHECK-LABEL: test_vmaxnmv_f32 11393 return vmaxnmv_f32(a); 11394 // CHECK: fmaxnmp {{s[0-9]+}}, {{v[0-9]+}}.2s 11395} 11396 11397float64_t test_vminnmvq_f64(float64x2_t a) { 11398 // CHECK-LABEL: test_vminnmvq_f64 11399 return vminnmvq_f64(a); 11400 // CHECK: fminnmp {{d[0-9]+}}, {{v[0-9]+}}.2d 11401} 11402 11403float32_t test_vminnmv_f32(float32x2_t a) { 11404 // CHECK-LABEL: test_vminnmv_f32 11405 return vminnmv_f32(a); 11406 // CHECK: fminnmp {{s[0-9]+}}, {{v[0-9]+}}.2s 11407} 11408 11409int64x2_t test_vpaddq_s64(int64x2_t a, int64x2_t b) { 11410 // CHECK-LABEL: test_vpaddq_s64 11411 return vpaddq_s64(a, b); 11412 // CHECK: addp {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 11413} 11414 11415uint64x2_t test_vpaddq_u64(uint64x2_t a, uint64x2_t b) { 11416 // CHECK-LABEL: test_vpaddq_u64 11417 return vpaddq_u64(a, b); 11418 // CHECK: addp {{v[0-9]+}}.2d, {{v[0-9]+}}.2d, {{v[0-9]+}}.2d 11419} 11420 11421uint64_t test_vpaddd_u64(uint64x2_t a) { 11422 // CHECK-LABEL: test_vpaddd_u64 11423 return vpaddd_u64(a); 11424 // CHECK: addp {{d[0-9]+}}, {{v[0-9]+}}.2d 11425} 11426 11427int64_t test_vaddvq_s64(int64x2_t a) { 11428 // CHECK-LABEL: test_vaddvq_s64 11429 return vaddvq_s64(a); 11430 // CHECK: addp {{d[0-9]+}}, {{v[0-9]+}}.2d 11431} 11432 11433uint64_t test_vaddvq_u64(uint64x2_t a) { 11434 // CHECK-LABEL: test_vaddvq_u64 11435 return vaddvq_u64(a); 11436 // CHECK: addp {{d[0-9]+}}, {{v[0-9]+}}.2d 11437} 11438 11439float64x1_t test_vadd_f64(float64x1_t a, float64x1_t b) { 11440 // CHECK-LABEL: test_vadd_f64 11441 return vadd_f64(a, b); 11442 // CHECK: fadd d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11443} 11444 11445float64x1_t test_vmul_f64(float64x1_t a, float64x1_t b) { 11446 // CHECK-LABEL: test_vmul_f64 11447 return vmul_f64(a, b); 11448 // CHECK: fmul d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11449} 11450 11451float64x1_t test_vdiv_f64(float64x1_t a, float64x1_t b) { 11452 // CHECK-LABEL: test_vdiv_f64 11453 return vdiv_f64(a, b); 11454 // CHECK: fdiv d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11455} 11456 11457float64x1_t test_vmla_f64(float64x1_t a, float64x1_t b, float64x1_t c) { 11458 // CHECK-LABEL: test_vmla_f64 11459 return vmla_f64(a, b, c); 11460 // CHECK: fmadd d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11461} 11462 11463float64x1_t test_vmls_f64(float64x1_t a, float64x1_t b, float64x1_t c) { 11464 // CHECK-LABEL: test_vmls_f64 11465 return vmls_f64(a, b, c); 11466 // CHECK: fmsub d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11467} 11468 11469float64x1_t test_vfma_f64(float64x1_t a, float64x1_t b, float64x1_t c) { 11470 // CHECK-LABEL: test_vfma_f64 11471 return vfma_f64(a, b, c); 11472 // CHECK: fmadd d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11473} 11474 11475float64x1_t test_vfms_f64(float64x1_t a, float64x1_t b, float64x1_t c) { 11476 // CHECK-LABEL: test_vfms_f64 11477 return vfms_f64(a, b, c); 11478 // CHECK: fmsub d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11479} 11480 11481float64x1_t test_vsub_f64(float64x1_t a, float64x1_t b) { 11482 // CHECK-LABEL: test_vsub_f64 11483 return vsub_f64(a, b); 11484 // CHECK: fsub d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11485} 11486 11487float64x1_t test_vabd_f64(float64x1_t a, float64x1_t b) { 11488 // CHECK-LABEL: test_vabd_f64 11489 return vabd_f64(a, b); 11490 // CHECK: fabd d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11491} 11492 11493float64x1_t test_vmax_f64(float64x1_t a, float64x1_t b) { 11494// CHECK-LABEL: test_vmax_f64 11495 return vmax_f64(a, b); 11496// CHECK: fmax d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11497} 11498 11499float64x1_t test_vmin_f64(float64x1_t a, float64x1_t b) { 11500// CHECK-LABEL: test_vmin_f64 11501 return vmin_f64(a, b); 11502// CHECK: fmin d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11503} 11504 11505float64x1_t test_vmaxnm_f64(float64x1_t a, float64x1_t b) { 11506// CHECK-LABEL: test_vmaxnm_f64 11507 return vmaxnm_f64(a, b); 11508// CHECK: fmaxnm d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11509} 11510 11511float64x1_t test_vminnm_f64(float64x1_t a, float64x1_t b) { 11512// CHECK-LABEL: test_vminnm_f64 11513 return vminnm_f64(a, b); 11514// CHECK: fminnm d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11515} 11516 11517float64x1_t test_vabs_f64(float64x1_t a) { 11518 // CHECK-LABEL: test_vabs_f64 11519 return vabs_f64(a); 11520 // CHECK: fabs d{{[0-9]+}}, d{{[0-9]+}} 11521} 11522 11523float64x1_t test_vneg_f64(float64x1_t a) { 11524 // CHECK-LABEL: test_vneg_f64 11525 return vneg_f64(a); 11526 // CHECK: fneg d{{[0-9]+}}, d{{[0-9]+}} 11527} 11528 11529int64x1_t test_vcvt_s64_f64(float64x1_t a) { 11530 // CHECK-LABEL: test_vcvt_s64_f64 11531 return vcvt_s64_f64(a); 11532 // CHECK: fcvtzs {{[xd][0-9]+}}, d{{[0-9]+}} 11533} 11534 11535uint64x1_t test_vcvt_u64_f64(float64x1_t a) { 11536 // CHECK-LABEL: test_vcvt_u64_f64 11537 return vcvt_u64_f64(a); 11538 // CHECK: fcvtzu {{[xd][0-9]+}}, d{{[0-9]+}} 11539} 11540 11541int64x1_t test_vcvtn_s64_f64(float64x1_t a) { 11542 // CHECK-LABEL: test_vcvtn_s64_f64 11543 return vcvtn_s64_f64(a); 11544 // CHECK: fcvtns d{{[0-9]+}}, d{{[0-9]+}} 11545} 11546 11547uint64x1_t test_vcvtn_u64_f64(float64x1_t a) { 11548 // CHECK-LABEL: test_vcvtn_u64_f64 11549 return vcvtn_u64_f64(a); 11550 // CHECK: fcvtnu d{{[0-9]+}}, d{{[0-9]+}} 11551} 11552 11553int64x1_t test_vcvtp_s64_f64(float64x1_t a) { 11554 // CHECK-LABEL: test_vcvtp_s64_f64 11555 return vcvtp_s64_f64(a); 11556 // CHECK: fcvtps d{{[0-9]+}}, d{{[0-9]+}} 11557} 11558 11559uint64x1_t test_vcvtp_u64_f64(float64x1_t a) { 11560 // CHECK-LABEL: test_vcvtp_u64_f64 11561 return vcvtp_u64_f64(a); 11562 // CHECK: fcvtpu d{{[0-9]+}}, d{{[0-9]+}} 11563} 11564 11565int64x1_t test_vcvtm_s64_f64(float64x1_t a) { 11566 // CHECK-LABEL: test_vcvtm_s64_f64 11567 return vcvtm_s64_f64(a); 11568 // CHECK: fcvtms d{{[0-9]+}}, d{{[0-9]+}} 11569} 11570 11571uint64x1_t test_vcvtm_u64_f64(float64x1_t a) { 11572 // CHECK-LABEL: test_vcvtm_u64_f64 11573 return vcvtm_u64_f64(a); 11574 // CHECK: fcvtmu d{{[0-9]+}}, d{{[0-9]+}} 11575} 11576 11577int64x1_t test_vcvta_s64_f64(float64x1_t a) { 11578 // CHECK-LABEL: test_vcvta_s64_f64 11579 return vcvta_s64_f64(a); 11580 // CHECK: fcvtas d{{[0-9]+}}, d{{[0-9]+}} 11581} 11582 11583uint64x1_t test_vcvta_u64_f64(float64x1_t a) { 11584 // CHECK-LABEL: test_vcvta_u64_f64 11585 return vcvta_u64_f64(a); 11586 // CHECK: fcvtau d{{[0-9]+}}, d{{[0-9]+}} 11587} 11588 11589float64x1_t test_vcvt_f64_s64(int64x1_t a) { 11590 // CHECK-LABEL: test_vcvt_f64_s64 11591 return vcvt_f64_s64(a); 11592 // CHECK: scvtf d{{[0-9]+}}, {{[xd][0-9]+}} 11593} 11594 11595float64x1_t test_vcvt_f64_u64(uint64x1_t a) { 11596 // CHECK-LABEL: test_vcvt_f64_u64 11597 return vcvt_f64_u64(a); 11598 // CHECK: ucvtf d{{[0-9]+}}, {{[xd][0-9]+}} 11599} 11600 11601int64x1_t test_vcvt_n_s64_f64(float64x1_t a) { 11602 // CHECK-LABEL: test_vcvt_n_s64_f64 11603 return vcvt_n_s64_f64(a, 64); 11604 // CHECK: fcvtzs d{{[0-9]+}}, d{{[0-9]+}}, #64 11605} 11606 11607uint64x1_t test_vcvt_n_u64_f64(float64x1_t a) { 11608 // CHECK-LABEL: test_vcvt_n_u64_f64 11609 return vcvt_n_u64_f64(a, 64); 11610 // CHECK: fcvtzu d{{[0-9]+}}, d{{[0-9]+}}, #64 11611} 11612 11613float64x1_t test_vcvt_n_f64_s64(int64x1_t a) { 11614 // CHECK-LABEL: test_vcvt_n_f64_s64 11615 return vcvt_n_f64_s64(a, 64); 11616 // CHECK: scvtf d{{[0-9]+}}, d{{[0-9]+}}, #64 11617} 11618 11619float64x1_t test_vcvt_n_f64_u64(uint64x1_t a) { 11620 // CHECK-LABEL: test_vcvt_n_f64_u64 11621 return vcvt_n_f64_u64(a, 64); 11622 // CHECK: ucvtf d{{[0-9]+}}, d{{[0-9]+}}, #64 11623} 11624 11625float64x1_t test_vrndn_f64(float64x1_t a) { 11626 // CHECK-LABEL: test_vrndn_f64 11627 return vrndn_f64(a); 11628 // CHECK: frintn d{{[0-9]+}}, d{{[0-9]+}} 11629} 11630 11631float64x1_t test_vrnda_f64(float64x1_t a) { 11632 // CHECK-LABEL: test_vrnda_f64 11633 return vrnda_f64(a); 11634 // CHECK: frinta d{{[0-9]+}}, d{{[0-9]+}} 11635} 11636 11637float64x1_t test_vrndp_f64(float64x1_t a) { 11638 // CHECK-LABEL: test_vrndp_f64 11639 return vrndp_f64(a); 11640 // CHECK: frintp d{{[0-9]+}}, d{{[0-9]+}} 11641} 11642 11643float64x1_t test_vrndm_f64(float64x1_t a) { 11644 // CHECK-LABEL: test_vrndm_f64 11645 return vrndm_f64(a); 11646 // CHECK: frintm d{{[0-9]+}}, d{{[0-9]+}} 11647} 11648 11649float64x1_t test_vrndx_f64(float64x1_t a) { 11650 // CHECK-LABEL: test_vrndx_f64 11651 return vrndx_f64(a); 11652 // CHECK: frintx d{{[0-9]+}}, d{{[0-9]+}} 11653} 11654 11655float64x1_t test_vrnd_f64(float64x1_t a) { 11656 // CHECK-LABEL: test_vrnd_f64 11657 return vrnd_f64(a); 11658 // CHECK: frintz d{{[0-9]+}}, d{{[0-9]+}} 11659} 11660 11661float64x1_t test_vrndi_f64(float64x1_t a) { 11662 // CHECK-LABEL: test_vrndi_f64 11663 return vrndi_f64(a); 11664 // CHECK: frinti d{{[0-9]+}}, d{{[0-9]+}} 11665} 11666 11667float64x1_t test_vrsqrte_f64(float64x1_t a) { 11668 // CHECK-LABEL: test_vrsqrte_f64 11669 return vrsqrte_f64(a); 11670 // CHECK: frsqrte d{{[0-9]+}}, d{{[0-9]+}} 11671} 11672 11673float64x1_t test_vrecpe_f64(float64x1_t a) { 11674 // CHECK-LABEL: test_vrecpe_f64 11675 return vrecpe_f64(a); 11676 // CHECK: frecpe d{{[0-9]+}}, d{{[0-9]+}} 11677} 11678 11679float64x1_t test_vsqrt_f64(float64x1_t a) { 11680 // CHECK-LABEL: test_vsqrt_f64 11681 return vsqrt_f64(a); 11682 // CHECK: fsqrt d{{[0-9]+}}, d{{[0-9]+}} 11683} 11684 11685float64x1_t test_vrecps_f64(float64x1_t a, float64x1_t b) { 11686 // CHECK-LABEL: test_vrecps_f64 11687 return vrecps_f64(a, b); 11688 // CHECK: frecps d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11689} 11690 11691float64x1_t test_vrsqrts_f64(float64x1_t a, float64x1_t b) { 11692 // CHECK-LABEL: test_vrsqrts_f64 11693 return vrsqrts_f64(a, b); 11694 // CHECK: frsqrts d{{[0-9]+}}, d{{[0-9]+}}, d{{[0-9]+}} 11695} 11696 11697int32_t test_vminv_s32(int32x2_t a) { 11698 // CHECK-LABEL: test_vminv_s32 11699 return vminv_s32(a); 11700 // CHECK: sminp {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 11701} 11702 11703uint32_t test_vminv_u32(uint32x2_t a) { 11704 // CHECK-LABEL: test_vminv_u32 11705 return vminv_u32(a); 11706 // CHECK: uminp {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 11707} 11708 11709int32_t test_vmaxv_s32(int32x2_t a) { 11710 // CHECK-LABEL: test_vmaxv_s32 11711 return vmaxv_s32(a); 11712 // CHECK: smaxp {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 11713} 11714 11715uint32_t test_vmaxv_u32(uint32x2_t a) { 11716 // CHECK-LABEL: test_vmaxv_u32 11717 return vmaxv_u32(a); 11718 // CHECK: umaxp {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 11719} 11720 11721int32_t test_vaddv_s32(int32x2_t a) { 11722 // CHECK-LABEL: test_vaddv_s32 11723 return vaddv_s32(a); 11724 // CHECK: addp {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 11725} 11726 11727uint32_t test_vaddv_u32(uint32x2_t a) { 11728 // CHECK-LABEL: test_vaddv_u32 11729 return vaddv_u32(a); 11730 // CHECK: addp {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s 11731} 11732 11733int64_t test_vaddlv_s32(int32x2_t a) { 11734 // CHECK-LABEL: test_vaddlv_s32 11735 return vaddlv_s32(a); 11736 // CHECK: saddlp {{v[0-9]+}}.1d, {{v[0-9]+}}.2s 11737} 11738 11739uint64_t test_vaddlv_u32(uint32x2_t a) { 11740 // CHECK-LABEL: test_vaddlv_u32 11741 return vaddlv_u32(a); 11742 // CHECK: uaddlp {{v[0-9]+}}.1d, {{v[0-9]+}}.2s 11743} 11744