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 9 int8x8_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 15 int16x4_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 21 int32x2_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 27 int64x1_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 33 float32x2_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 39 uint8x8_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 45 uint16x4_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 51 uint32x2_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 57 uint64x1_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 63 int8x16_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 69 int16x8_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 75 int32x4_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 81 int64x2_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 87 float32x4_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 93 float64x2_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 99 uint8x16_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 105 uint16x8_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 111 uint32x4_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 117 uint64x2_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 123 int8x8_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 } 128 int16x4_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 } 133 int32x2_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 139 int64x1_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 145 float32x2_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 151 uint8x8_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 157 uint16x4_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 163 uint32x2_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 169 uint64x1_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 175 int8x16_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 181 int16x8_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 187 int32x4_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 193 int64x2_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 199 float32x4_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 205 float64x2_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 211 uint8x16_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 217 uint16x8_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 223 uint32x4_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 229 uint64x2_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 235 int8x8_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 241 int16x4_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 247 int32x2_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 253 float32x2_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 260 uint8x8_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 266 uint16x4_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 272 uint32x2_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 278 int8x16_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 284 int16x8_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 290 int32x4_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 296 uint8x16_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 302 uint16x8_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 308 uint32x4_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 314 float32x4_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 320 float64x2_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 326 poly8x8_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 332 poly8x16_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 339 int8x8_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 345 int8x8_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 351 int32x2_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 357 float32x2_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 363 uint8x8_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 369 uint16x4_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 375 uint32x2_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 381 int8x16_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 387 int16x8_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 393 int32x4_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 399 float32x4_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 405 uint8x16_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 411 uint16x8_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 417 uint32x4_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 423 float64x2_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 429 int8x8_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 435 int8x8_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 441 int32x2_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 447 float32x2_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 453 uint8x8_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 459 uint16x4_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 465 uint32x2_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 } 470 int8x16_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 476 int16x8_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 482 int32x4_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 488 float32x4_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 } 493 uint8x16_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 499 uint16x8_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 505 uint32x4_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 511 float64x2_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 } 516 float32x2_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 522 float32x4_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 528 float64x2_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 } 533 float32x2_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 539 float32x4_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 545 float64x2_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 551 float64x2_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 557 float32x4_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 563 float32x2_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 569 int8x8_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 575 int16x4_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 581 int32x2_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 587 uint8x8_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 593 uint16x4_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 599 uint32x2_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 605 int8x16_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 611 int16x8_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 617 int32x4_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 623 uint8x16_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 629 uint16x8_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 635 uint32x4_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 641 int8x8_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 647 int16x4_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 653 int32x2_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 659 uint8x8_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 665 uint16x4_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 671 uint32x2_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 677 float32x2_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 683 int8x16_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 689 int16x8_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 695 int32x4_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 701 uint8x16_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 707 uint16x8_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 713 uint32x4_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 719 float32x4_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 725 float64x2_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 732 int8x8_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 738 int8x8_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 744 int32x2_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 750 uint64x1_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 756 uint8x8_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 762 uint16x4_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 768 uint32x2_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 774 uint64x1_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 780 float32x2_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 786 float64x1_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 792 poly8x8_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 798 poly16x4_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 804 int8x16_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 810 int16x8_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 816 int32x4_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 822 int64x2_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 828 uint8x16_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 834 uint16x8_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 840 int32x4_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 846 uint64x2_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 852 float32x4_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 858 poly8x16_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 864 poly16x8_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 870 float64x2_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 876 float32x2_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 882 float32x4_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 888 float64x2_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 894 float32x2_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 900 float32x4_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 906 float64x2_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 912 uint32x2_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 918 uint64x1_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 924 uint32x4_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 930 uint64x2_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 936 uint32x2_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 942 uint64x1_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 948 uint32x4_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 954 uint64x2_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 960 uint32x2_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 967 uint64x1_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 973 uint32x4_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 980 uint64x2_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 987 uint32x2_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 994 uint64x1_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 1000 uint32x4_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 1007 uint64x2_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 1014 uint8x8_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 1020 uint16x4_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 1026 uint32x2_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 1032 uint8x8_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 1038 uint16x4_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 1044 uint32x2_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 1050 uint8x16_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 1056 uint16x8_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 1062 uint32x4_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 1068 uint8x16_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 1074 uint16x8_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 1080 uint32x4_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 1086 uint64x2_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 1092 uint64x2_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 1098 uint8x8_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 1104 uint16x4_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 1110 uint8x16_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 1116 uint16x8_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 1122 uint64x1_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 1128 uint64x1_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 1134 uint8x8_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 1140 uint16x4_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 1146 uint32x2_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 1152 uint64x1_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 1158 uint64x1_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 1164 uint32x2_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 1170 uint64x1_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 1176 uint8x8_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 1182 uint16x4_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 1188 uint32x2_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 1194 uint8x8_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 1200 uint8x16_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 1206 uint16x8_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 1212 uint32x4_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 1218 uint32x4_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 1224 uint8x16_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 1230 uint16x8_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 1236 uint32x4_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 1242 uint8x16_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 1249 uint64x2_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 1255 uint64x2_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 1261 uint64x2_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 } 1266 uint8x8_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 1272 uint16x4_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 1278 uint32x2_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 1284 uint64x1_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 1290 uint64x1_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 1296 uint32x2_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 1302 uint64x1_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 1308 uint8x8_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 1314 uint16x4_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 1320 uint32x2_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 1326 uint8x16_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 1332 uint16x8_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 1338 uint32x4_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 1344 uint32x4_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 1350 uint8x16_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 1356 uint16x8_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 1362 uint32x4_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 1368 uint64x2_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 1374 uint64x2_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 1380 uint64x2_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. 1389 uint8x8_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 1395 uint16x4_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 1401 uint32x2_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 1407 uint64x1_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 1413 uint64x1_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 1419 uint32x2_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 1425 uint64x1_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 1431 uint8x8_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 1437 uint16x4_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 1443 uint32x2_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 1449 uint8x16_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 1455 uint16x8_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 1461 uint32x4_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 1467 uint32x4_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 1473 uint8x16_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 1479 uint16x8_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 1485 uint32x4_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 1491 uint64x2_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 1497 uint64x2_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 1503 uint64x2_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 1510 uint8x8_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 1516 uint16x4_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 1522 uint32x2_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 1528 uint64x1_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 1534 uint64x1_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 1540 uint32x2_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 1546 uint64x1_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 1552 uint8x8_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 1558 uint16x4_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 1564 uint32x2_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 1570 uint8x16_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 1576 uint16x8_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 1582 uint32x4_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 1588 uint32x4_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 1594 uint8x16_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 1600 uint16x8_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 1606 uint32x4_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 1612 uint64x2_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 1618 uint64x2_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 1624 uint64x2_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 1635 uint8x8_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 1641 uint16x4_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 1647 uint32x2_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 1653 uint64x1_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 1659 uint64x1_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 1665 uint32x2_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 1671 uint64x1_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 1677 uint8x8_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 1683 uint16x4_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 1689 uint32x2_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 1695 uint8x16_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 1701 uint16x8_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 1707 uint32x4_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 1713 uint32x4_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 1719 uint8x16_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 1725 uint16x8_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 1731 uint32x4_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 1737 uint64x2_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 1743 uint64x2_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 1749 uint64x2_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 1756 int8x8_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 1762 int16x4_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 1768 int32x2_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 1774 uint8x8_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 1780 uint16x4_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 1786 uint32x2_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 1792 int8x16_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 1798 int16x8_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 1804 int32x4_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 1810 uint8x16_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 1816 uint16x8_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 1822 uint32x4_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 1829 int8x8_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 1835 int16x4_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 1841 int32x2_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 1847 uint8x8_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 1853 uint16x4_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 1859 uint32x2_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 1865 int8x16_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 1871 int16x8_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 1877 int32x4_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 1883 uint8x16_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 1889 uint16x8_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 1895 uint32x4_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 1902 int8x8_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 1908 int16x4_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 1914 int32x2_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 1920 uint8x8_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 1926 uint16x4_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 1932 uint32x2_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 1938 int8x16_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 1944 int16x8_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 1950 int32x4_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 1956 uint8x16_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 1962 uint16x8_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 1968 uint32x4_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 } 1973 int8x8_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 1979 int16x4_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 1985 int32x2_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 1991 int64x1_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 1997 uint8x8_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 2003 uint16x4_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 2009 uint32x2_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 2015 uint64x1_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 2021 int8x16_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 2027 int16x8_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 2033 int32x4_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 2039 int64x2_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 2045 uint8x16_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 2051 uint16x8_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 2057 uint32x4_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 2063 uint64x2_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 2070 int8x8_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 2076 int16x4_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 2082 int32x2_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 2088 int64x1_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 2094 uint8x8_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 2100 uint16x4_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 2106 uint32x2_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 2112 uint64x1_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 2118 int8x16_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 2124 int16x8_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 2130 int32x4_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 2136 int64x2_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 2142 uint8x16_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 2148 uint16x8_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 2154 uint32x4_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 2160 uint64x2_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 2167 int8x8_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 2173 int16x4_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 2179 int32x2_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 2185 int64x1_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 2191 uint8x8_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 2197 uint16x4_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 2203 uint32x2_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 2209 uint64x1_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 2215 int8x16_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 2221 int16x8_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 2227 int32x4_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 2233 int64x2_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 2239 uint8x16_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 2245 uint16x8_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 2251 uint32x4_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 2257 uint64x2_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 2264 int8x8_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 2270 int16x4_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 2276 int32x2_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 2282 int64x1_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 2288 uint8x8_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 2294 uint16x4_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 2300 uint32x2_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 2306 uint64x1_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 2312 int8x16_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 2318 int16x8_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 2324 int32x4_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 2330 int64x2_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 2336 uint8x16_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 2342 uint16x8_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 2348 uint32x4_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 2354 uint64x2_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 2360 int8x8_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 2366 int16x4_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 2372 int32x2_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 2378 int64x1_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 2384 uint8x8_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 2390 uint16x4_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 2396 uint32x2_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 2402 uint64x1_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 2408 int8x16_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 2414 int16x8_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 2420 int32x4_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 2426 int64x2_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 2432 uint8x16_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 2438 uint16x8_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 2444 uint32x4_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 2450 uint64x2_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 2457 int8x8_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 2463 int16x4_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 2469 int32x2_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 2475 int64x1_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 2481 uint8x8_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 2487 uint16x4_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 2493 uint32x2_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 2499 uint64x1_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 2505 int8x16_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 2511 int16x8_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 2517 int32x4_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 2523 int64x2_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 2530 uint8x16_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 2535 uint16x8_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 2541 uint32x4_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 2547 uint64x2_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 2553 poly64x1_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 2559 poly64x2_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 2565 int8x8_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 2571 int16x4_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 2577 int32x2_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 2583 uint8x8_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 2589 uint16x4_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 2595 uint32x2_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 2601 float32x2_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 2607 int8x16_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 2613 int16x8_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 2619 int32x4_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 2625 uint8x16_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 2631 uint16x8_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 2637 uint32x4_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 2643 float32x4_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 2649 float64x2_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 2656 int8x8_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 2662 int16x4_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 2668 int32x2_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 2674 uint8x8_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 2680 uint16x4_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 2686 uint32x2_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 2692 float32x2_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 2698 int8x16_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 2704 int16x8_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 2710 int32x4_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 2716 uint8x16_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 2722 uint16x8_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 2728 uint32x4_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 2734 float32x4_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 2740 float64x2_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 2746 float32x2_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 2752 float32x4_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 2758 float64x2_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 2764 float32x2_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 2770 float32x4_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 2776 float64x2_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 2782 int8x8_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 2788 int16x4_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 2794 int32x2_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 2800 uint8x8_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 2806 uint16x4_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 2812 uint32x2_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 2818 float32x2_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 2824 int8x16_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 2830 int16x8_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 2836 int32x4_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 2842 uint8x16_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 2848 uint16x8_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 2854 uint32x4_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 2860 float32x4_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 2866 float64x2_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 2872 int8x8_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 2878 int16x4_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 2884 int32x2_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 2890 uint8x8_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 2896 uint16x4_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 2902 uint32x2_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 2908 float32x2_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 2914 int8x16_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 2920 int16x8_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 2926 int32x4_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 2932 uint8x16_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 2938 uint16x8_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 2944 uint32x4_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 2950 float32x4_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 2956 float64x2_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 2962 float32x2_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 2968 float32x4_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 2974 float64x2_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 2980 float32x2_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 2986 float32x4_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 2992 float64x2_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 2998 int8x8_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 3004 int16x4_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 3010 int32x2_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 3016 uint8x8_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 3022 uint16x4_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 3028 uint32x2_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 3034 float32x2_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 3040 int8x16_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 3046 int16x8_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 3052 int32x4_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 3058 uint8x16_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 3064 uint16x8_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 3070 uint32x4_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 3076 float32x4_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 3082 float64x2_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 3088 int16x4_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 3094 int32x2_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 3100 int16x8_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 3106 int32x4_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 3112 int16x4_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 3118 int32x2_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 3124 int16x8_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 3130 int32x4_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 3136 float32x2_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 3142 float32x4_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 3148 float64x2_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 3154 int8x8_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 3160 int16x4_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 3166 int32x2_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 3172 int8x16_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 3178 int16x8_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 3184 int32x4_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 3190 int64x2_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 3196 int8x8_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 3202 int16x4_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 3208 int32x2_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 3214 int8x16_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 3220 int16x8_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 3226 int32x4_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 3232 int64x2_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 3238 int8x8_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 3244 int16x4_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 3250 int32x2_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 3256 int8x16_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 3262 int16x8_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 3268 int32x4_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 3274 int64x2_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 3280 int8x8_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 3286 int16x4_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 3292 int32x2_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 3298 int8x16_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 3304 int16x8_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 3310 int32x4_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 3316 int64x2_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 3322 int8x8_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 3328 int16x4_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 3334 int32x2_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 3340 int8x16_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 3346 int16x8_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 3352 int32x4_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 3358 int64x2_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 3364 int8x8_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 3370 int16x4_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 3376 int32x2_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 3382 int8x16_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 3388 int16x8_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 3394 int32x4_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 3400 int64x2_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 3406 int8x8_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 3412 int16x4_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 3418 int32x2_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 3424 int8x16_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 3430 int16x8_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 3436 int32x4_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 3442 int64x2_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 3448 int8x8_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 3454 int16x4_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 3460 int32x2_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 3466 int8x16_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 3472 int16x8_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 3478 int32x4_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 3484 int64x2_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 3490 int8x8_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 3496 int16x4_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 3502 int32x2_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 3508 int8x16_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 3514 int16x8_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 3520 int32x4_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 3526 int64x2_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 3532 int8x8_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 3538 int16x4_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 3544 int32x2_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 3550 int8x16_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 3556 int16x8_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 3562 int32x4_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 3568 int64x2_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 3574 int8x8_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 3580 int16x4_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 3586 int32x2_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 3592 int8x16_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 3598 int16x8_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 3604 int32x4_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 3610 int64x2_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 3616 int8x8_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 3622 int16x4_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 3628 int32x2_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 3634 int8x16_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 3640 int16x8_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 3646 int32x4_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 3652 int64x2_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 3658 poly8x8_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 3664 poly16x4_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 3670 poly8x16_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 3676 poly16x8_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 3682 int8x8_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 3688 int16x4_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 3694 int32x2_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 3700 int8x16_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 3706 int16x8_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 3712 int32x4_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 3718 int64x2_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 3724 uint8x8_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 3730 uint16x4_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 3736 uint32x2_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 3742 uint8x16_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 3748 uint16x8_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 3754 uint32x4_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 3760 uint64x2_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 3766 poly8x8_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 3772 poly16x4_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 3778 poly8x16_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 3784 poly16x8_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 3790 int8x8_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 3796 int16x4_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 3802 int32x2_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 3808 int8x16_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 3814 int16x8_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 3820 int32x4_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 3826 int64x2_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 3832 int8x8_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 3838 int16x4_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 3844 int32x2_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 3850 uint8x8_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 3856 uint16x4_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 3862 uint32x2_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 3868 int8x16_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 3874 int16x8_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 3880 int32x4_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 3886 uint8x16_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 3892 uint16x8_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 3898 uint32x4_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 3904 int8x8_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 3910 int16x4_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 3916 int32x2_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 3922 int8x16_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 3928 int16x8_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 3934 int32x4_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 3940 int8x8_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 3946 int16x4_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 3952 int32x2_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 3958 uint8x8_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 3964 uint16x4_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 3970 uint32x2_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 3976 int8x16_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 3982 int16x8_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 3988 int32x4_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 3994 uint8x16_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 4000 uint16x8_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 4006 uint32x4_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 4012 int8x8_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 4018 int16x4_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 4024 int32x2_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 4030 int8x16_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 4036 int16x8_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 4042 int32x4_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 4048 int8x8_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 4054 int16x4_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 4060 int32x2_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 4066 uint8x8_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 4072 uint16x4_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 4078 uint32x2_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 4084 int8x16_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 4090 int16x8_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 4096 int32x4_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 4102 uint8x16_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 4108 uint16x8_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 4114 uint32x4_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 4120 int8x8_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 4126 int16x4_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 4132 int32x2_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 4138 uint8x8_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 4144 uint16x4_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 4150 uint32x2_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 4156 int8x16_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 4162 int16x8_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 4168 int32x4_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 4174 uint8x16_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 4180 uint16x8_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 4186 uint32x4_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 4192 int16x8_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 4198 int32x4_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 4204 int64x2_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 4210 uint16x8_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 4216 uint32x4_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 4222 uint64x2_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 4228 int16x8_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 4234 int32x4_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 4240 int64x2_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 4246 uint16x8_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 4252 uint32x4_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 4258 uint64x2_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 4264 int16x8_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 4270 int32x4_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 4276 int64x2_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 4282 uint16x8_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 4288 uint32x4_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 4294 uint64x2_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 4300 int16x8_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 4306 int32x4_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 4312 int64x2_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 4318 uint16x8_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 4324 uint32x4_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 4330 uint64x2_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 4336 float32x2_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 4342 float32x4_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 4348 float64x2_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 4354 float32x2_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 4360 float32x4_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 4366 float64x2_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 4372 int32x2_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 4378 int32x4_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 4384 int64x2_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 4390 uint32x2_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 4396 uint32x4_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 4402 uint64x2_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 4408 int16x8_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 4414 int32x4_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 4420 int64x2_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 4426 uint16x8_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 4432 uint32x4_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 4438 uint64x2_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 4444 int16x8_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 4450 int32x4_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 4456 int64x2_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 4462 uint16x8_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 4468 uint32x4_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 4474 uint64x2_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 4480 int16x8_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 4486 int32x4_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 4492 int64x2_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 4498 uint16x8_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 4504 uint32x4_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 4510 uint64x2_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 4516 int16x8_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 4522 int32x4_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 4528 int64x2_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 4534 uint16x8_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 4540 uint32x4_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 4546 uint64x2_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 4552 int16x8_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 4558 int32x4_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 4564 int64x2_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 4570 uint16x8_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 4576 uint32x4_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 4582 uint64x2_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 4588 int16x8_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 4594 int32x4_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 4600 int64x2_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 4606 uint16x8_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 4612 uint32x4_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 4618 uint64x2_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 4624 int16x8_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 4630 int32x4_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 4636 int64x2_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 4642 uint16x8_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 4648 uint32x4_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 4654 uint64x2_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 4660 int16x8_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 4666 int32x4_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 4672 int64x2_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 4678 uint16x8_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 4684 uint32x4_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 4690 uint64x2_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 4696 int8x8_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 4702 int16x4_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 4708 int32x2_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 4714 uint8x8_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 4720 uint16x4_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 4726 uint32x2_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 4732 int8x16_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 4738 int16x8_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 4744 int32x4_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 4750 uint8x16_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 4756 uint16x8_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 4762 uint32x4_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 4768 int8x8_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 4774 int16x4_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 4780 int32x2_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 4786 uint8x8_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 4792 uint16x4_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 4798 uint32x2_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 4804 int8x16_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 4810 int16x8_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 4816 int32x4_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 4822 uint8x16_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 4828 uint16x8_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 4834 uint32x4_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 4840 int8x8_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 4846 int16x4_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 4852 int32x2_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 4858 uint8x8_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 4864 uint16x4_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 4870 uint32x2_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 4876 int8x16_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 4882 int16x8_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 4888 int32x4_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 4894 uint8x16_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 4900 uint16x8_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 4906 uint32x4_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 4912 int8x8_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 4918 int16x4_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 4924 int32x2_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 4930 uint8x8_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 4936 uint16x4_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 4942 uint32x2_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 4948 int8x16_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 4954 int16x8_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 4960 int32x4_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 4966 uint8x16_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 4972 uint16x8_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 4978 uint32x4_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 4984 int16x8_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 } 4989 int32x4_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 } 4994 int64x2_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 } 4999 uint16x8_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 } 5004 uint32x4_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 } 5009 uint64x2_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 5015 int16x8_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 } 5020 int32x4_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 } 5025 int64x2_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 } 5030 uint16x8_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 } 5035 uint32x4_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 } 5040 uint64x2_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 5046 int16x8_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 } 5051 int32x4_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 } 5056 int64x2_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 } 5061 uint16x8_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 } 5066 uint32x4_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 } 5071 uint64x2_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 5077 int16x8_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 } 5082 int32x4_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 } 5087 int64x2_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 } 5092 uint16x8_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 } 5097 uint32x4_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 } 5102 uint64x2_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 5108 int16x8_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 } 5113 int32x4_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 } 5118 int64x2_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 } 5123 uint16x8_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 } 5128 uint32x4_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 } 5133 uint64x2_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 5139 int16x8_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 } 5144 int32x4_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 } 5149 int64x2_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 } 5154 uint16x8_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 } 5159 uint32x4_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 } 5164 uint64x2_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 5170 int16x8_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 } 5175 int32x4_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 } 5180 int64x2_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 } 5185 uint16x8_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 } 5190 uint32x4_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 } 5195 uint64x2_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 5201 int16x8_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 } 5206 int32x4_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 } 5211 int64x2_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 } 5216 uint16x8_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 } 5221 uint32x4_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 } 5226 uint64x2_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 5232 int16x8_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 } 5237 int32x4_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 } 5242 int64x2_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 } 5247 uint16x8_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 } 5252 uint32x4_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 } 5257 uint64x2_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 5263 int16x8_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 } 5268 int32x4_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 } 5273 int64x2_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 } 5278 uint16x8_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 } 5283 uint32x4_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 } 5288 uint64x2_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 5294 int32x4_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 } 5299 int64x2_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 5305 int32x4_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 5311 int64x2_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 5317 int32x4_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 5323 int64x2_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 5329 int32x4_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 } 5334 int64x2_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 5340 int32x4_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 5346 int64x2_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 5352 int32x4_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 5358 int64x2_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 5364 poly16x8_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 5370 poly16x8_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 5376 int64_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 5382 uint64_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 5388 int64_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 5394 uint64_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 5400 int8_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 5406 int16_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 5412 int32_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 5418 int64_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 5424 uint8_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 5430 uint16_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 5436 uint32_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 5442 uint64_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 5448 int8_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 5454 int16_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 5460 int32_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 5466 int64_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 5472 uint8_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 5478 uint16_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 5484 uint32_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 5490 uint64_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 5496 int64_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 5502 uint64_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 5509 int8_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 5515 int16_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 5521 int32_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 5527 int64_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 5533 uint8_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 5539 uint16_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 5545 uint32_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 5551 uint64_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 5557 int64_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 5564 uint64_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 5570 int8_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 5576 int16_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 5582 int32_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 5588 int64_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 5594 uint8_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 5600 uint16_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 5606 uint32_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 5612 uint64_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 5618 int64_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 5624 float32_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 5630 float64_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 5636 float32_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 5642 float64_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 5648 float32_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 5654 float64_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 5660 float32_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 5666 float64_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 5672 float32_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 5678 float64_t test_vpminqd_f64(float64x2_t a) { 5679 return vpminqd_f64(a); 5680 // CHECK: fminp {{d[0-9]+}}, {{v[0-9]+}}.2d 5681 } 5682 5683 int16_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 5689 int32_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 5695 int16_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 5701 int32_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 5707 float32_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 5713 float64_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 5719 float64x1_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 5725 float32_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 5731 float64_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 5737 float32_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 5743 float64_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 5749 float32_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 5755 float64_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 5761 float32_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 5767 float64_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 5773 float32_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 5779 float64_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 5785 float32_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 5791 float64_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 5797 uint32x2_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 5803 uint32x4_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 5809 float32_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 5815 float64_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 5821 uint8x16_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 5827 uint16x8_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 5833 uint32x4_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 5839 uint64x2_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 5845 int8x16_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 5851 int16x8_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 5857 int32x4_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 5863 int64x2_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 5869 float16x8_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 5875 float32x4_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 5881 float64x2_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 5887 poly8x16_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 5893 poly16x8_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 5899 uint8x8_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 5905 uint16x4_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 5911 uint32x2_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 5917 uint64x1_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 5923 int8x8_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 5929 int16x4_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 5935 int32x2_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 5941 int64x1_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 5947 float16x4_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 5953 float32x2_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 5959 float64x1_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 5965 poly8x8_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 5971 poly16x4_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 5977 uint8x16x2_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 5983 uint16x8x2_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 5989 uint32x4x2_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 5995 uint64x2x2_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 6001 int8x16x2_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 6007 int16x8x2_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 6013 int32x4x2_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 6019 int64x2x2_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 6025 float16x8x2_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 6031 float32x4x2_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 6037 float64x2x2_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 6043 poly8x16x2_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 6049 poly16x8x2_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 6055 uint8x8x2_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 6061 uint16x4x2_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 6067 uint32x2x2_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 6073 uint64x1x2_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 6079 int8x8x2_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 6085 int16x4x2_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 6091 int32x2x2_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 6097 int64x1x2_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 6103 float16x4x2_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 6109 float32x2x2_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 6115 float64x1x2_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 6121 poly8x8x2_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 6127 poly16x4x2_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 6133 uint8x16x3_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 6139 uint16x8x3_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 6145 uint32x4x3_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 6151 uint64x2x3_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 6157 int8x16x3_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 6163 int16x8x3_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 6169 int32x4x3_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 6175 int64x2x3_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 6181 float16x8x3_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 6187 float32x4x3_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 6193 float64x2x3_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 6199 poly8x16x3_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 6205 poly16x8x3_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 6211 uint8x8x3_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 6217 uint16x4x3_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 6223 uint32x2x3_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 6229 uint64x1x3_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 6235 int8x8x3_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 6241 int16x4x3_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 6247 int32x2x3_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 6253 int64x1x3_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 6259 float16x4x3_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 6265 float32x2x3_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 6271 float64x1x3_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 6277 poly8x8x3_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 6283 poly16x4x3_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 6289 uint8x16x4_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 6295 uint16x8x4_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 6301 uint32x4x4_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 6307 uint64x2x4_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 6313 int8x16x4_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 6319 int16x8x4_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 6325 int32x4x4_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 6331 int64x2x4_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 6337 float16x8x4_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 6343 float32x4x4_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 6349 float64x2x4_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 6355 poly8x16x4_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 6361 poly16x8x4_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 6367 uint8x8x4_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 6373 uint16x4x4_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 6379 uint32x2x4_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 6385 uint64x1x4_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 6391 int8x8x4_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 6397 int16x4x4_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 6403 int32x2x4_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 6409 int64x1x4_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 6415 float16x4x4_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 6421 float32x2x4_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 6427 float64x1x4_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 6433 poly8x8x4_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 6439 poly16x4x4_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 6445 void 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 6451 void 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 6457 void 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 6463 void 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 6469 void 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 6475 void 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 6481 void 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 6487 void 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 6493 void 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 6499 void 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 6505 void 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 6511 void 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 6517 void 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 6523 void 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 6529 void 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 6535 void 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 6541 void 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 6547 void 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 6553 void 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 6559 void 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 6565 void 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 6571 void 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 6577 void 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 6583 void 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 6589 void 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 6595 void 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 6601 void 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 6607 void 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 6613 void 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 6619 void 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 6625 void 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 6631 void 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 6637 void 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 6643 void 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 6649 void 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 6655 void 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 6661 void 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 6667 void 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 6673 void 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 6679 void 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 6685 void 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 6691 void 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 6697 void 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 6703 void 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 6709 void 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 6715 void 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 6721 void 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 6727 void 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 6733 void 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 6739 void 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 6745 void 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 6751 void 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 6757 void 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 6763 void 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 6769 void 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 6775 void 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 6781 void 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 6787 void 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 6793 void 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 6799 void 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 6805 void 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 6811 void 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 6817 void 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 6823 void 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 6829 void 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 6835 void 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 6841 void 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 6847 void 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 6853 void 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 6859 void 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 6865 void 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 6871 void 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 6877 void 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 6883 void 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 6889 void 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 6895 void 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 6901 void 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 6907 void 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 6913 void 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 6919 void 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 6925 void 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 6931 void 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 6937 void 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 6943 void 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 6949 void 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 6955 void 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 6961 void 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 6967 void 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 6973 void 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 6979 void 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 6985 void 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 6991 void 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 6997 void 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 7003 void 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 7009 void 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 7015 void 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 7021 void 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 7027 void 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 7033 void 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 7039 void 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 7045 void 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 7051 void 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 7057 void 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 7063 void 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 7069 uint8x16x2_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 7075 uint16x8x2_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 7081 uint32x4x2_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 7087 uint64x2x2_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 7093 int8x16x2_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 7099 int16x8x2_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 7105 int32x4x2_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 7111 int64x2x2_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 7117 float16x8x2_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 7123 float32x4x2_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 7129 float64x2x2_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 7135 poly8x16x2_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 7141 poly16x8x2_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 7147 poly64x2x2_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 7153 uint8x8x2_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 7159 uint16x4x2_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 7165 uint32x2x2_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 7171 uint64x1x2_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 7177 int8x8x2_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 7183 int16x4x2_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 7189 int32x2x2_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 7195 int64x1x2_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 7201 float16x4x2_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 7207 float32x2x2_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 7213 float64x1x2_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 7219 poly8x8x2_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 7225 poly16x4x2_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 7231 poly64x1x2_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 7237 uint8x16x3_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 7243 uint16x8x3_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 7249 uint32x4x3_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 7255 uint64x2x3_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 7261 int8x16x3_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 7267 int16x8x3_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 7273 int32x4x3_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 7279 int64x2x3_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 7285 float16x8x3_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 7291 float32x4x3_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 7297 float64x2x3_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 7303 poly8x16x3_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 7309 poly16x8x3_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 7315 poly64x2x3_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 7321 uint8x8x3_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 7327 uint16x4x3_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 7333 uint32x2x3_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 7339 uint64x1x3_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 7345 int8x8x3_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 7351 int16x4x3_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 7357 int32x2x3_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 7363 int64x1x3_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 7369 float16x4x3_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 7375 float32x2x3_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 7381 float64x1x3_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 7387 poly8x8x3_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 7393 poly16x4x3_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 7399 poly64x1x3_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 7405 uint8x16x4_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 7411 uint16x8x4_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 7417 uint32x4x4_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 7423 uint64x2x4_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 7429 int8x16x4_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 7435 int16x8x4_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 7441 int32x4x4_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 7447 int64x2x4_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 7453 float16x8x4_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 7459 float32x4x4_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 7465 float64x2x4_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 7471 poly8x16x4_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 7477 poly16x8x4_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 7483 poly64x2x4_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 7489 uint8x8x4_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 7495 uint16x4x4_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 7501 uint32x2x4_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 7507 uint64x1x4_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 7513 int8x8x4_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 7519 int16x4x4_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 7525 int32x2x4_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 7531 int64x1x4_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 7537 float16x4x4_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 7543 float32x2x4_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 7549 float64x1x4_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 7555 poly8x8x4_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 7561 poly16x4x4_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 7567 poly64x1x4_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 7573 void 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 7579 void 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 7585 void 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 7591 void 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 7597 void 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 7603 void 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 7609 void 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 7615 void 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 7621 void 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 7627 void 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 7633 void 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 7639 void 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 7645 void 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 7651 void 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 7657 void 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 7663 void 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 7669 void 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 7675 void 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 7681 void 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 7687 void 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 7693 void 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 7699 void 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 7705 void 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 7711 void 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 7717 void 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 7723 void 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 7729 void 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 7735 void 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 7741 void 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 7747 void 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 7753 void 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 7759 void 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 7765 void 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 7771 void 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 7777 void 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 7783 void 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 7789 void 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 7795 void 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 7801 void 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 7807 void 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 7813 void 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 7819 void 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 7825 void 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 7831 void 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 7837 void 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 7843 void 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 7849 void 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 7855 void 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 7861 void 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 7867 void 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 7873 void 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 7879 void 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 7885 void 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 7891 void 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 7897 void 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 7903 void 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 7909 void 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 7915 void 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 7921 void 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 7927 void 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 7933 void 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 7939 void 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 7945 void 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 7951 void 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 7957 void 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 7963 void 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 7969 void 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 7975 void 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 7981 void 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 7987 void 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 7993 void 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 7999 void 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 8005 void 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 8011 void 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 8017 void 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 8023 void 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 8029 void 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 8035 void 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 8041 void 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 8047 void 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 8053 void 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 8059 void 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 8065 void 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 8071 void 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 8077 int64_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 8083 uint64_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 8089 int64_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 8095 int64_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 8101 int64_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 8107 uint64_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 8113 int64_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 8119 int64_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 8125 uint64_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 8131 int64_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 8137 int64_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 8143 uint64_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 8149 int64_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 8155 int64_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 8161 uint64_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 8167 int64_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 8173 int64_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 8179 uint64_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 8185 int64_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 8191 int8_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 8197 int16_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 8203 int32_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 8209 int64_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 8215 int64_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 8221 int8_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 8227 int16_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 8233 int32_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 8239 int64_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 8245 int8_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 8251 int16_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 8257 int32_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 8263 int64_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 8269 uint8_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 8275 uint16_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 8281 uint32_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 8287 uint64_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 8293 int32_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 8301 int64_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 8307 int32_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 8315 int64_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 8321 int32_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 8327 int64_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 8333 int8_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 8339 int16_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 8345 int32_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 8351 int8_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 8357 int16_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 8363 int32_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 8369 int8_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 8375 int16_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 8381 int32_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 8387 uint32_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 8393 uint64_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 8399 uint32_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 8405 uint64_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 8411 uint32_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 8417 uint64_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 8423 uint32_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 8429 uint64_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 8435 uint32_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 8441 uint64_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 8447 uint32_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 8453 uint64_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 8459 uint32_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 8465 uint64_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 8471 uint32_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 8477 uint64_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 8483 uint32_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 8489 uint64_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 8495 uint32_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 8501 uint64_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 8507 uint32_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 8513 uint64_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 8519 uint32_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 8525 uint64_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 8531 uint32_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 8537 uint64_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 8543 uint32_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 8549 uint64_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 8555 int64_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 8561 int64x1_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 8567 uint64_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 8574 uint64_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 8582 uint64x1_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 8588 int64_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 8594 int64x1_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 8600 uint64_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 8606 uint64x1_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 8612 int64_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 8618 int64x1_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 8624 uint64_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 8630 uint64_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 8637 uint64x1_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 8643 int64_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 8649 int64x1_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 8655 uint64_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 8661 uint64x1_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 8667 int64_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 } 8672 int64x1_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 8678 uint64_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 8684 uint64x1_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 8690 int8_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 8696 int16_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 8702 int32_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 8708 int64_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 8714 int8x8_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 8720 int8x16_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 8726 int16x4_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 8732 int16x8_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 8738 int32x2_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 8744 int32x4_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 8750 int64x2_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 8756 uint8x8_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 8762 uint8x16_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 8768 uint16x4_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 8774 uint16x8_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 8780 uint32x2_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 8786 uint32x4_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 8792 uint64x2_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 8798 int64x1_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 8804 uint8_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 8810 uint16_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 8816 uint32_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 8822 uint64_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 8828 uint64x1_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 8834 int8_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 8840 int16_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 8846 int32_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 8852 int64_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 8858 uint64x1_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 8864 int64_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 8870 int64x1_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 8876 uint64_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 8882 uint64x1_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 8888 int64_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 8894 int64x1_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 8900 uint64_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 8906 uint64x1_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 8912 int8_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 8918 int16_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 8924 int32_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 8930 uint8_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 8936 uint16_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 8942 uint32_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 8948 int8_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 8954 int16_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 8960 int32_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 8966 uint8_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 8972 uint16_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 8978 uint32_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 8984 int8_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 8990 int16_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 8996 int32_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 9002 int8_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 9008 int16_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 9014 int32_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 9020 float32_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 9026 float64_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 9032 float32_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 9038 float64_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 9044 int32_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 9050 int64_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 9056 uint32_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 9062 uint64_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 9070 int8x8_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 9076 int8x8_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 9082 int8x8_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 9088 int8x8_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 9094 int8x8_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 9100 int8x8_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 9106 int8x8_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 9112 int8x8_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 9118 int8x8_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 9124 int8x8_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 9130 int8x8_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 9136 int8x8_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 9142 int8x8_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 9148 int16x4_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 9154 int16x4_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 9160 int16x4_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 9166 int16x4_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 9172 int16x4_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 9178 int16x4_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 9184 int16x4_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 9190 int16x4_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 9196 int16x4_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 9202 int16x4_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 9208 int16x4_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 9214 int16x4_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 9220 int16x4_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 9226 int32x2_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 9232 int32x2_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 9238 int32x2_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 9244 int32x2_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 9250 int32x2_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 9256 int32x2_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 9262 int32x2_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 9268 int32x2_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 9274 int32x2_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 9280 int32x2_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 9286 int32x2_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 9292 int32x2_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 9298 int32x2_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 9304 int64x1_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 9310 int64x1_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 9316 int64x1_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 9322 int64x1_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 9328 int64x1_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 9334 int64x1_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 9340 int64x1_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 9346 int64x1_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 9352 int64x1_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 9358 int64x1_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 9364 int64x1_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 9370 int64x1_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 9376 int64x1_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 9382 uint8x8_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 9388 uint8x8_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 9394 uint8x8_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 9400 uint8x8_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 9406 uint8x8_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 9412 uint8x8_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 9418 uint8x8_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 9424 uint8x8_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 9430 uint8x8_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 9436 uint8x8_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 9442 uint8x8_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 9448 uint8x8_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 9454 uint8x8_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 9460 uint16x4_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 9466 uint16x4_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 9472 uint16x4_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 9478 uint16x4_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 9484 uint16x4_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 9490 uint16x4_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 9496 uint16x4_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 9502 uint16x4_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 9508 uint16x4_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 9514 uint16x4_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 9520 uint16x4_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 9526 uint16x4_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 9532 uint16x4_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 9538 uint32x2_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 9544 uint32x2_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 9550 uint32x2_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 9556 uint32x2_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 9562 uint32x2_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 9568 uint32x2_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 9574 uint32x2_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 9580 uint32x2_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 9586 uint32x2_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 9592 uint32x2_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 9598 uint32x2_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 9604 uint32x2_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 9610 uint32x2_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 9616 uint64x1_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 9622 uint64x1_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 9628 uint64x1_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 9634 uint64x1_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 9640 uint64x1_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 9646 uint64x1_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 9652 uint64x1_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 9658 uint64x1_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 9664 uint64x1_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 9670 uint64x1_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 9676 uint64x1_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 9682 uint64x1_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 9688 uint64x1_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 9694 float16x4_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 9700 float16x4_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 9706 float16x4_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 9712 float16x4_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 9718 float16x4_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 9724 float16x4_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 9730 float16x4_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 9736 float16x4_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 9742 float16x4_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 9748 float16x4_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 9754 float16x4_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 9760 float16x4_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 9766 float16x4_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 9772 float32x2_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 9778 float32x2_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 9784 float32x2_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 9790 float32x2_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 9796 float32x2_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 9802 float32x2_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 9808 float32x2_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 9814 float32x2_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 9820 float32x2_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 9826 float32x2_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 9832 float32x2_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 9838 float32x2_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 9844 float32x2_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 9850 float64x1_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 9856 float64x1_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 9862 float64x1_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 9868 float64x1_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 9874 float64x1_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 9880 float64x1_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 9886 float64x1_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 9892 float64x1_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 9898 float64x1_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 9904 float64x1_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 9910 float64x1_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 9916 float64x1_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 9922 float64x1_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 9928 poly8x8_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 9934 poly8x8_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 9940 poly8x8_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 9946 poly8x8_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 9952 poly8x8_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 9958 poly8x8_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 9964 poly8x8_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 9970 poly8x8_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 9976 poly8x8_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 9982 poly8x8_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 9988 poly8x8_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 9994 poly8x8_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 10000 poly8x8_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 10006 poly16x4_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 10012 poly16x4_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 10018 poly16x4_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 10024 poly16x4_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 10030 poly16x4_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 10036 poly16x4_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 10042 poly16x4_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 10048 poly16x4_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 10054 poly16x4_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 10060 poly16x4_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 10066 poly16x4_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 10072 poly16x4_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 10078 poly16x4_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 10084 poly64x1_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 10090 poly64x1_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 10096 poly64x1_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 10102 poly64x1_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 10108 poly64x1_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 10114 poly64x1_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 10120 poly64x1_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 10126 poly64x1_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 10132 poly64x1_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 10138 poly64x1_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 10144 poly64x1_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 10150 poly64x1_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 10156 poly64x1_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 10162 int8x16_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 10168 int8x16_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 10174 int8x16_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 10180 int8x16_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 10186 int8x16_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 10192 int8x16_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 10198 int8x16_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 10204 int8x16_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 10210 int8x16_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 10216 int8x16_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 10222 int8x16_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 10228 int8x16_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 10234 int8x16_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 10240 int16x8_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 10246 int16x8_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 10252 int16x8_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 10258 int16x8_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 10264 int16x8_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 10270 int16x8_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 10276 int16x8_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 10282 int16x8_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 10288 int16x8_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 10294 int16x8_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 10300 int16x8_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 10306 int16x8_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 10312 int16x8_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 10318 int32x4_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 10324 int32x4_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 10330 int32x4_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 10336 int32x4_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 10342 int32x4_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 10348 int32x4_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 10354 int32x4_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 10360 int32x4_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 10366 int32x4_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 10372 int32x4_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 10378 int32x4_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 10384 int32x4_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 10390 int32x4_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 10396 int64x2_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 10402 int64x2_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 10408 int64x2_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 10414 int64x2_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 10420 int64x2_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 10426 int64x2_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 10432 int64x2_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 10438 int64x2_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 10444 int64x2_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 10450 int64x2_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 10456 int64x2_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 10462 int64x2_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 10468 int64x2_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 10474 uint8x16_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 10480 uint8x16_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 10486 uint8x16_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 10492 uint8x16_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 10498 uint8x16_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 10504 uint8x16_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 10510 uint8x16_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 10516 uint8x16_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 10522 uint8x16_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 10528 uint8x16_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 10534 uint8x16_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 10540 uint8x16_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 10546 uint8x16_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 10552 uint16x8_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 10558 uint16x8_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 10564 uint16x8_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 10570 uint16x8_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 10576 uint16x8_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 10582 uint16x8_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 10588 uint16x8_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 10594 uint16x8_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 10600 uint16x8_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 10606 uint16x8_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 10612 uint16x8_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 10618 uint16x8_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 10624 uint16x8_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 10630 uint32x4_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 10636 uint32x4_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 10642 uint32x4_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 10648 uint32x4_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 10654 uint32x4_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 10660 uint32x4_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 10666 uint32x4_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 10672 uint32x4_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 10678 uint32x4_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 10684 uint32x4_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 10690 uint32x4_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 10696 uint32x4_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 10702 uint32x4_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 10708 uint64x2_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 10714 uint64x2_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 10720 uint64x2_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 10726 uint64x2_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 10732 uint64x2_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 10738 uint64x2_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 10744 uint64x2_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 10750 uint64x2_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 10756 uint64x2_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 10762 uint64x2_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 10768 uint64x2_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 10774 uint64x2_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 10780 uint64x2_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 10786 float16x8_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 10792 float16x8_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 10798 float16x8_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 10804 float16x8_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 10810 float16x8_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 10816 float16x8_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 10822 float16x8_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 10828 float16x8_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 10834 float16x8_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 10840 float16x8_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 10846 float16x8_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 10852 float16x8_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 10858 float16x8_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 10864 float32x4_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 10870 float32x4_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 10876 float32x4_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 10882 float32x4_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 10888 float32x4_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 10894 float32x4_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 10900 float32x4_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 10906 float32x4_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 10912 float32x4_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 10918 float32x4_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 10924 float32x4_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 10930 float32x4_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 10936 float32x4_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 10942 float64x2_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 10948 float64x2_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 10954 float64x2_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 10960 float64x2_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 10966 float64x2_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 10972 float64x2_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 10978 float64x2_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 10984 float64x2_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 10990 float64x2_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 10996 float64x2_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 11002 float64x2_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 11008 float64x2_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 11014 float64x2_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 11020 poly8x16_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 11026 poly8x16_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 11032 poly8x16_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 11038 poly8x16_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 11044 poly8x16_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 11050 poly8x16_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 11056 poly8x16_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 11062 poly8x16_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 11068 poly8x16_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 11074 poly8x16_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 11080 poly8x16_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 11086 poly8x16_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 11092 poly8x16_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 11098 poly16x8_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 11104 poly16x8_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 11110 poly16x8_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 11116 poly16x8_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 11122 poly16x8_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 11128 poly16x8_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 11134 poly16x8_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 11140 poly16x8_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 11146 poly16x8_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 11152 poly16x8_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 11158 poly16x8_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 11164 poly16x8_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 11170 poly16x8_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 11176 poly64x2_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 11182 poly64x2_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 11188 poly64x2_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 11194 poly64x2_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 11200 poly64x2_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 11206 poly64x2_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 11212 poly64x2_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 11218 poly64x2_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 11224 poly64x2_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 11230 poly64x2_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 11236 poly64x2_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 11242 poly64x2_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 11248 poly64x2_t test_vreinterpretq_p64_p16(poly16x8_t a) { 11249 return vreinterpretq_p64_p16(a); 11250 } 11251 11252 float32_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 11258 float64_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 11264 int64x1_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 11270 uint64x1_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 11276 uint8x8_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 11282 uint8x16_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 11288 uint16x4_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 11294 uint16x8_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 11300 uint32x2_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 11306 uint32x4_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 11312 uint64x2_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 11318 int64x1_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 11324 int64x1_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 11330 int64x1_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 11336 int64x1_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 11342 float32_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 11348 float32_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 11355 float64_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 11361 float32_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 11367 float64_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 11373 float32_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 11379 float64_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 11385 float64_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 11391 float32_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 11397 float64_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 11403 float32_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 11409 int64x2_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 11415 uint64x2_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 11421 uint64_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 11427 int64_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 11433 uint64_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 11439 float64x1_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 11445 float64x1_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 11451 float64x1_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 11457 float64x1_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 11463 float64x1_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 11469 float64x1_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 11475 float64x1_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 11481 float64x1_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 11487 float64x1_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 11493 float64x1_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 11499 float64x1_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 11505 float64x1_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 11511 float64x1_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 11517 float64x1_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 11523 float64x1_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 11529 int64x1_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 11535 uint64x1_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 11541 int64x1_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 11547 uint64x1_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 11553 int64x1_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 11559 uint64x1_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 11565 int64x1_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 11571 uint64x1_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 11577 int64x1_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 11583 uint64x1_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 11589 float64x1_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 11595 float64x1_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 11601 int64x1_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 11607 uint64x1_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 11613 float64x1_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 11619 float64x1_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 11625 float64x1_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 11631 float64x1_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 11637 float64x1_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 11643 float64x1_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 11649 float64x1_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 11655 float64x1_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 11661 float64x1_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 11667 float64x1_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 11673 float64x1_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 11679 float64x1_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 11685 float64x1_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 11691 float64x1_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 11697 int32_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 11703 uint32_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 11709 int32_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 11715 uint32_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 11721 int32_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 11727 uint32_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 11733 int64_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 11739 uint64_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