1 // REQUIRES: aarch64-registered-target 2 // RUN: %clang_cc1 -triple arm64-none-linux-gnu -target-feature +neon \ 3 // RUN: -ffp-contract=fast -S -O3 -o - %s | FileCheck %s 4 5 #include <arm_neon.h> 6 7 uint8x16_t test_vld1q_dup_u8(uint8_t *a) { 8 // CHECK-LABEL: test_vld1q_dup_u8 9 return vld1q_dup_u8(a); 10 // CHECK: ld1r {{{ *v[0-9]+.16b *}}}, [{{x[0-9]+|sp}}] 11 } 12 13 uint16x8_t test_vld1q_dup_u16(uint16_t *a) { 14 // CHECK-LABEL: test_vld1q_dup_u16 15 return vld1q_dup_u16(a); 16 // CHECK: ld1r {{{ *v[0-9]+.8h *}}}, [{{x[0-9]+|sp}}] 17 } 18 19 uint32x4_t test_vld1q_dup_u32(uint32_t *a) { 20 // CHECK-LABEL: test_vld1q_dup_u32 21 return vld1q_dup_u32(a); 22 // CHECK: ld1r {{{ *v[0-9]+.4s *}}}, [{{x[0-9]+|sp}}] 23 } 24 25 uint64x2_t test_vld1q_dup_u64(uint64_t *a) { 26 // CHECK-LABEL: test_vld1q_dup_u64 27 return vld1q_dup_u64(a); 28 // CHECK: ld1r {{{ *v[0-9]+.2d *}}}, [{{x[0-9]+|sp}}] 29 } 30 31 int8x16_t test_vld1q_dup_s8(int8_t *a) { 32 // CHECK-LABEL: test_vld1q_dup_s8 33 return vld1q_dup_s8(a); 34 // CHECK: ld1r {{{ *v[0-9]+.16b *}}}, [{{x[0-9]+|sp}}] 35 } 36 37 int16x8_t test_vld1q_dup_s16(int16_t *a) { 38 // CHECK-LABEL: test_vld1q_dup_s16 39 return vld1q_dup_s16(a); 40 // CHECK: ld1r {{{ *v[0-9]+.8h *}}}, [{{x[0-9]+|sp}}] 41 } 42 43 int32x4_t test_vld1q_dup_s32(int32_t *a) { 44 // CHECK-LABEL: test_vld1q_dup_s32 45 return vld1q_dup_s32(a); 46 // CHECK: ld1r {{{ *v[0-9]+.4s *}}}, [{{x[0-9]+|sp}}] 47 } 48 49 int64x2_t test_vld1q_dup_s64(int64_t *a) { 50 // CHECK-LABEL: test_vld1q_dup_s64 51 return vld1q_dup_s64(a); 52 // CHECK: ld1r {{{ *v[0-9]+.2d *}}}, [{{x[0-9]+|sp}}] 53 } 54 55 float16x8_t test_vld1q_dup_f16(float16_t *a) { 56 // CHECK-LABEL: test_vld1q_dup_f16 57 return vld1q_dup_f16(a); 58 // CHECK: ld1r {{{ *v[0-9]+.8h *}}}, [{{x[0-9]+|sp}}] 59 } 60 61 float32x4_t test_vld1q_dup_f32(float32_t *a) { 62 // CHECK-LABEL: test_vld1q_dup_f32 63 return vld1q_dup_f32(a); 64 // CHECK: ld1r {{{ *v[0-9]+.4s *}}}, [{{x[0-9]+|sp}}] 65 } 66 67 float64x2_t test_vld1q_dup_f64(float64_t *a) { 68 // CHECK-LABEL: test_vld1q_dup_f64 69 return vld1q_dup_f64(a); 70 // CHECK: ld1r {{{ *v[0-9]+.2d *}}}, [{{x[0-9]+|sp}}] 71 } 72 73 poly8x16_t test_vld1q_dup_p8(poly8_t *a) { 74 // CHECK-LABEL: test_vld1q_dup_p8 75 return vld1q_dup_p8(a); 76 // CHECK: ld1r {{{ *v[0-9]+.16b *}}}, [{{x[0-9]+|sp}}] 77 } 78 79 poly16x8_t test_vld1q_dup_p16(poly16_t *a) { 80 // CHECK-LABEL: test_vld1q_dup_p16 81 return vld1q_dup_p16(a); 82 // CHECK: ld1r {{{ *v[0-9]+.8h *}}}, [{{x[0-9]+|sp}}] 83 } 84 85 poly64x2_t test_vld1q_dup_p64(poly64_t *a) { 86 // CHECK-LABEL: test_vld1q_dup_p64 87 return vld1q_dup_p64(a); 88 // CHECK: ld1r {{{ *v[0-9]+.2d *}}}, [{{x[0-9]+|sp}}] 89 } 90 91 uint8x8_t test_vld1_dup_u8(uint8_t *a) { 92 // CHECK-LABEL: test_vld1_dup_u8 93 return vld1_dup_u8(a); 94 // CHECK: ld1r {{{ *v[0-9]+.8b *}}}, [{{x[0-9]+|sp}}] 95 } 96 97 uint16x4_t test_vld1_dup_u16(uint16_t *a) { 98 // CHECK-LABEL: test_vld1_dup_u16 99 return vld1_dup_u16(a); 100 // CHECK: ld1r {{{ *v[0-9]+.4h *}}}, [{{x[0-9]+|sp}}] 101 } 102 103 uint32x2_t test_vld1_dup_u32(uint32_t *a) { 104 // CHECK-LABEL: test_vld1_dup_u32 105 return vld1_dup_u32(a); 106 // CHECK: ld1r {{{ *v[0-9]+.2s *}}}, [{{x[0-9]+|sp}}] 107 } 108 109 uint64x1_t test_vld1_dup_u64(uint64_t *a) { 110 // CHECK-LABEL: test_vld1_dup_u64 111 return vld1_dup_u64(a); 112 // CHECK: {{ld1r { v[0-9]+.1d }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}] 113 } 114 115 int8x8_t test_vld1_dup_s8(int8_t *a) { 116 // CHECK-LABEL: test_vld1_dup_s8 117 return vld1_dup_s8(a); 118 // CHECK: ld1r {{{ *v[0-9]+.8b *}}}, [{{x[0-9]+|sp}}] 119 } 120 121 int16x4_t test_vld1_dup_s16(int16_t *a) { 122 // CHECK-LABEL: test_vld1_dup_s16 123 return vld1_dup_s16(a); 124 // CHECK: ld1r {{{ *v[0-9]+.4h *}}}, [{{x[0-9]+|sp}}] 125 } 126 127 int32x2_t test_vld1_dup_s32(int32_t *a) { 128 // CHECK-LABEL: test_vld1_dup_s32 129 return vld1_dup_s32(a); 130 // CHECK: ld1r {{{ *v[0-9]+.2s *}}}, [{{x[0-9]+|sp}}] 131 } 132 133 int64x1_t test_vld1_dup_s64(int64_t *a) { 134 // CHECK-LABEL: test_vld1_dup_s64 135 return vld1_dup_s64(a); 136 // CHECK: {{ld1r { v[0-9]+.1d }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}] 137 } 138 139 float16x4_t test_vld1_dup_f16(float16_t *a) { 140 // CHECK-LABEL: test_vld1_dup_f16 141 return vld1_dup_f16(a); 142 // CHECK: ld1r {{{ *v[0-9]+.4h *}}}, [{{x[0-9]+|sp}}] 143 } 144 145 float32x2_t test_vld1_dup_f32(float32_t *a) { 146 // CHECK-LABEL: test_vld1_dup_f32 147 return vld1_dup_f32(a); 148 // CHECK: ld1r {{{ *v[0-9]+.2s *}}}, [{{x[0-9]+|sp}}] 149 } 150 151 float64x1_t test_vld1_dup_f64(float64_t *a) { 152 // CHECK-LABEL: test_vld1_dup_f64 153 return vld1_dup_f64(a); 154 // CHECK: {{ld1r { v[0-9]+.1d }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}] 155 } 156 157 poly8x8_t test_vld1_dup_p8(poly8_t *a) { 158 // CHECK-LABEL: test_vld1_dup_p8 159 return vld1_dup_p8(a); 160 // CHECK: ld1r {{{ *v[0-9]+.8b *}}}, [{{x[0-9]+|sp}}] 161 } 162 163 poly16x4_t test_vld1_dup_p16(poly16_t *a) { 164 // CHECK-LABEL: test_vld1_dup_p16 165 return vld1_dup_p16(a); 166 // CHECK: ld1r {{{ *v[0-9]+.4h *}}}, [{{x[0-9]+|sp}}] 167 } 168 169 poly64x1_t test_vld1_dup_p64(poly64_t *a) { 170 // CHECK-LABEL: test_vld1_dup_p64 171 return vld1_dup_p64(a); 172 // CHECK: {{ld1r { v[0-9]+.1d }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}] 173 } 174 175 uint8x16x2_t test_vld2q_dup_u8(uint8_t *a) { 176 // CHECK-LABEL: test_vld2q_dup_u8 177 return vld2q_dup_u8(a); 178 // CHECK: ld2r {{{ *v[0-9]+.16b, v[0-9]+.16b *}}}, [{{x[0-9]+|sp}}] 179 } 180 181 uint16x8x2_t test_vld2q_dup_u16(uint16_t *a) { 182 // CHECK-LABEL: test_vld2q_dup_u16 183 return vld2q_dup_u16(a); 184 // CHECK: ld2r {{{ *v[0-9]+.8h, v[0-9]+.8h *}}}, [{{x[0-9]+|sp}}] 185 } 186 187 uint32x4x2_t test_vld2q_dup_u32(uint32_t *a) { 188 // CHECK-LABEL: test_vld2q_dup_u32 189 return vld2q_dup_u32(a); 190 // CHECK: ld2r {{{ *v[0-9]+.4s, v[0-9]+.4s *}}}, [{{x[0-9]+|sp}}] 191 } 192 193 uint64x2x2_t test_vld2q_dup_u64(uint64_t *a) { 194 // CHECK-LABEL: test_vld2q_dup_u64 195 return vld2q_dup_u64(a); 196 // CHECK: ld2r {{{ *v[0-9]+.2d, v[0-9]+.2d *}}}, [{{x[0-9]+|sp}}] 197 } 198 199 int8x16x2_t test_vld2q_dup_s8(int8_t *a) { 200 // CHECK-LABEL: test_vld2q_dup_s8 201 return vld2q_dup_s8(a); 202 // CHECK: ld2r {{{ *v[0-9]+.16b, v[0-9]+.16b *}}}, [{{x[0-9]+|sp}}] 203 } 204 205 int16x8x2_t test_vld2q_dup_s16(int16_t *a) { 206 // CHECK-LABEL: test_vld2q_dup_s16 207 return vld2q_dup_s16(a); 208 // CHECK: ld2r {{{ *v[0-9]+.8h, v[0-9]+.8h *}}}, [{{x[0-9]+|sp}}] 209 } 210 211 int32x4x2_t test_vld2q_dup_s32(int32_t *a) { 212 // CHECK-LABEL: test_vld2q_dup_s32 213 return vld2q_dup_s32(a); 214 // CHECK: ld2r {{{ *v[0-9]+.4s, v[0-9]+.4s *}}}, [{{x[0-9]+|sp}}] 215 } 216 217 int64x2x2_t test_vld2q_dup_s64(int64_t *a) { 218 // CHECK-LABEL: test_vld2q_dup_s64 219 return vld2q_dup_s64(a); 220 // CHECK: ld2r {{{ *v[0-9]+.2d, v[0-9]+.2d *}}}, [{{x[0-9]+|sp}}] 221 } 222 223 float16x8x2_t test_vld2q_dup_f16(float16_t *a) { 224 // CHECK-LABEL: test_vld2q_dup_f16 225 return vld2q_dup_f16(a); 226 // CHECK: ld2r {{{ *v[0-9]+.8h, v[0-9]+.8h *}}}, [{{x[0-9]+|sp}}] 227 } 228 229 float32x4x2_t test_vld2q_dup_f32(float32_t *a) { 230 // CHECK-LABEL: test_vld2q_dup_f32 231 return vld2q_dup_f32(a); 232 // CHECK: ld2r {{{ *v[0-9]+.4s, v[0-9]+.4s *}}}, [{{x[0-9]+|sp}}] 233 } 234 235 float64x2x2_t test_vld2q_dup_f64(float64_t *a) { 236 // CHECK-LABEL: test_vld2q_dup_f64 237 return vld2q_dup_f64(a); 238 // CHECK: ld2r {{{ *v[0-9]+.2d, v[0-9]+.2d *}}}, [{{x[0-9]+|sp}}] 239 } 240 241 poly8x16x2_t test_vld2q_dup_p8(poly8_t *a) { 242 // CHECK-LABEL: test_vld2q_dup_p8 243 return vld2q_dup_p8(a); 244 // CHECK: ld2r {{{ *v[0-9]+.16b, v[0-9]+.16b *}}}, [{{x[0-9]+|sp}}] 245 } 246 247 poly16x8x2_t test_vld2q_dup_p16(poly16_t *a) { 248 // CHECK-LABEL: test_vld2q_dup_p16 249 return vld2q_dup_p16(a); 250 // CHECK: ld2r {{{ *v[0-9]+.8h, v[0-9]+.8h *}}}, [{{x[0-9]+|sp}}] 251 } 252 253 poly64x2x2_t test_vld2q_dup_p64(poly64_t *a) { 254 // CHECK-LABEL: test_vld2q_dup_p64 255 return vld2q_dup_p64(a); 256 // CHECK: ld2r {{{ *v[0-9]+.2d, v[0-9]+.2d *}}}, [{{x[0-9]+|sp}}] 257 } 258 259 uint8x8x2_t test_vld2_dup_u8(uint8_t *a) { 260 // CHECK-LABEL: test_vld2_dup_u8 261 return vld2_dup_u8(a); 262 // CHECK: ld2r {{{ *v[0-9]+.8b, v[0-9]+.8b *}}}, [{{x[0-9]+|sp}}] 263 } 264 265 uint16x4x2_t test_vld2_dup_u16(uint16_t *a) { 266 // CHECK-LABEL: test_vld2_dup_u16 267 return vld2_dup_u16(a); 268 // CHECK: ld2r {{{ *v[0-9]+.4h, v[0-9]+.4h *}}}, [{{x[0-9]+|sp}}] 269 } 270 271 uint32x2x2_t test_vld2_dup_u32(uint32_t *a) { 272 // CHECK-LABEL: test_vld2_dup_u32 273 return vld2_dup_u32(a); 274 // CHECK: ld2r {{{ *v[0-9]+.2s, v[0-9]+.2s *}}}, [{{x[0-9]+|sp}}] 275 } 276 277 uint64x1x2_t test_vld2_dup_u64(uint64_t *a) { 278 // CHECK-LABEL: test_vld2_dup_u64 279 return vld2_dup_u64(a); 280 // CHECK: {{ld1|ld2r}} {{{ *v[0-9]+.1d, v[0-9]+.1d *}}}, [{{x[0-9]+|sp}}] 281 } 282 283 int8x8x2_t test_vld2_dup_s8(int8_t *a) { 284 // CHECK-LABEL: test_vld2_dup_s8 285 return vld2_dup_s8(a); 286 // CHECK: ld2r {{{ *v[0-9]+.8b, v[0-9]+.8b *}}}, [{{x[0-9]+|sp}}] 287 } 288 289 int16x4x2_t test_vld2_dup_s16(int16_t *a) { 290 // CHECK-LABEL: test_vld2_dup_s16 291 return vld2_dup_s16(a); 292 // CHECK: ld2r {{{ *v[0-9]+.4h, v[0-9]+.4h *}}}, [{{x[0-9]+|sp}}] 293 } 294 295 int32x2x2_t test_vld2_dup_s32(int32_t *a) { 296 // CHECK-LABEL: test_vld2_dup_s32 297 return vld2_dup_s32(a); 298 // CHECK: ld2r {{{ *v[0-9]+.2s, v[0-9]+.2s *}}}, [{{x[0-9]+|sp}}] 299 } 300 301 int64x1x2_t test_vld2_dup_s64(int64_t *a) { 302 // CHECK-LABEL: test_vld2_dup_s64 303 return vld2_dup_s64(a); 304 // CHECK: {{ld1|ld2r}} {{{ *v[0-9]+.1d, v[0-9]+.1d *}}}, [{{x[0-9]+|sp}}] 305 } 306 307 float16x4x2_t test_vld2_dup_f16(float16_t *a) { 308 // CHECK-LABEL: test_vld2_dup_f16 309 return vld2_dup_f16(a); 310 // CHECK: ld2r {{{ *v[0-9]+.4h, v[0-9]+.4h *}}}, [{{x[0-9]+|sp}}] 311 } 312 313 float32x2x2_t test_vld2_dup_f32(float32_t *a) { 314 // CHECK-LABEL: test_vld2_dup_f32 315 return vld2_dup_f32(a); 316 // CHECK: ld2r {{{ *v[0-9]+.2s, v[0-9]+.2s *}}}, [{{x[0-9]+|sp}}] 317 } 318 319 float64x1x2_t test_vld2_dup_f64(float64_t *a) { 320 // CHECK-LABEL: test_vld2_dup_f64 321 return vld2_dup_f64(a); 322 // CHECK: {{ld1|ld2r}} {{{ *v[0-9]+.1d, v[0-9]+.1d *}}}, [{{x[0-9]+|sp}}] 323 } 324 325 poly8x8x2_t test_vld2_dup_p8(poly8_t *a) { 326 // CHECK-LABEL: test_vld2_dup_p8 327 return vld2_dup_p8(a); 328 // CHECK: ld2r {{{ *v[0-9]+.8b, v[0-9]+.8b *}}}, [{{x[0-9]+|sp}}] 329 } 330 331 poly16x4x2_t test_vld2_dup_p16(poly16_t *a) { 332 // CHECK-LABEL: test_vld2_dup_p16 333 return vld2_dup_p16(a); 334 // CHECK: ld2r {{{ *v[0-9]+.4h, v[0-9]+.4h *}}}, [{{x[0-9]+|sp}}] 335 } 336 337 poly64x1x2_t test_vld2_dup_p64(poly64_t *a) { 338 // CHECK-LABEL: test_vld2_dup_p64 339 return vld2_dup_p64(a); 340 // CHECK: {{ld1|ld2r}} {{{ *v[0-9]+.1d, v[0-9]+.1d *}}}, [{{x[0-9]+|sp}}] 341 } 342 343 uint8x16x3_t test_vld3q_dup_u8(uint8_t *a) { 344 // CHECK-LABEL: test_vld3q_dup_u8 345 return vld3q_dup_u8(a); 346 // CHECK: ld3r {{{ *v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b *}}}, 347 // [{{x[0-9]+|sp}}] 348 } 349 350 uint16x8x3_t test_vld3q_dup_u16(uint16_t *a) { 351 // CHECK-LABEL: test_vld3q_dup_u16 352 return vld3q_dup_u16(a); 353 // CHECK: ld3r {{{ *v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h *}}}, 354 // [{{x[0-9]+|sp}}] 355 } 356 357 uint32x4x3_t test_vld3q_dup_u32(uint32_t *a) { 358 // CHECK-LABEL: test_vld3q_dup_u32 359 return vld3q_dup_u32(a); 360 // CHECK: ld3r {{{ *v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s *}}}, 361 // [{{x[0-9]+|sp}}] 362 } 363 364 uint64x2x3_t test_vld3q_dup_u64(uint64_t *a) { 365 // CHECK-LABEL: test_vld3q_dup_u64 366 return vld3q_dup_u64(a); 367 // CHECK: ld3r {{{ *v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d *}}}, 368 // [{{x[0-9]+|sp}}] 369 } 370 371 int8x16x3_t test_vld3q_dup_s8(int8_t *a) { 372 // CHECK-LABEL: test_vld3q_dup_s8 373 return vld3q_dup_s8(a); 374 // CHECK: ld3r {{{ *v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b *}}}, 375 // [{{x[0-9]+|sp}}] 376 } 377 378 int16x8x3_t test_vld3q_dup_s16(int16_t *a) { 379 // CHECK-LABEL: test_vld3q_dup_s16 380 return vld3q_dup_s16(a); 381 // CHECK: ld3r {{{ *v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h *}}}, 382 // [{{x[0-9]+|sp}}] 383 } 384 385 int32x4x3_t test_vld3q_dup_s32(int32_t *a) { 386 // CHECK-LABEL: test_vld3q_dup_s32 387 return vld3q_dup_s32(a); 388 // CHECK: ld3r {{{ *v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s *}}}, 389 // [{{x[0-9]+|sp}}] 390 } 391 392 int64x2x3_t test_vld3q_dup_s64(int64_t *a) { 393 // CHECK-LABEL: test_vld3q_dup_s64 394 return vld3q_dup_s64(a); 395 // CHECK: ld3r {{{ *v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d *}}}, 396 // [{{x[0-9]+|sp}}] 397 } 398 399 float16x8x3_t test_vld3q_dup_f16(float16_t *a) { 400 // CHECK-LABEL: test_vld3q_dup_f16 401 return vld3q_dup_f16(a); 402 // CHECK: ld3r {{{ *v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h *}}}, 403 // [{{x[0-9]+|sp}}] 404 } 405 406 float32x4x3_t test_vld3q_dup_f32(float32_t *a) { 407 // CHECK-LABEL: test_vld3q_dup_f32 408 return vld3q_dup_f32(a); 409 // CHECK: ld3r {{{ *v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s *}}}, 410 // [{{x[0-9]+|sp}}] 411 } 412 413 float64x2x3_t test_vld3q_dup_f64(float64_t *a) { 414 // CHECK-LABEL: test_vld3q_dup_f64 415 return vld3q_dup_f64(a); 416 // CHECK: ld3r {{{ *v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d *}}}, 417 // [{{x[0-9]+|sp}}] 418 } 419 420 poly8x16x3_t test_vld3q_dup_p8(poly8_t *a) { 421 // CHECK-LABEL: test_vld3q_dup_p8 422 return vld3q_dup_p8(a); 423 // CHECK: ld3r {{{ *v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b *}}}, 424 // [{{x[0-9]+|sp}}] 425 } 426 427 poly16x8x3_t test_vld3q_dup_p16(poly16_t *a) { 428 // CHECK-LABEL: test_vld3q_dup_p16 429 return vld3q_dup_p16(a); 430 // CHECK: ld3r {{{ *v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h *}}}, 431 // [{{x[0-9]+|sp}}] 432 } 433 434 poly64x2x3_t test_vld3q_dup_p64(poly64_t *a) { 435 // CHECK-LABEL: test_vld3q_dup_p64 436 return vld3q_dup_p64(a); 437 // CHECK: ld3r {{{ *v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d *}}}, 438 // [{{x[0-9]+|sp}}] 439 } 440 441 uint8x8x3_t test_vld3_dup_u8(uint8_t *a) { 442 // CHECK-LABEL: test_vld3_dup_u8 443 return vld3_dup_u8(a); 444 // CHECK: ld3r {{{ *v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b *}}}, 445 // [{{x[0-9]+|sp}}] 446 } 447 448 uint16x4x3_t test_vld3_dup_u16(uint16_t *a) { 449 // CHECK-LABEL: test_vld3_dup_u16 450 return vld3_dup_u16(a); 451 // CHECK: ld3r {{{ *v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h *}}}, 452 // [{{x[0-9]+|sp}}] 453 } 454 455 uint32x2x3_t test_vld3_dup_u32(uint32_t *a) { 456 // CHECK-LABEL: test_vld3_dup_u32 457 return vld3_dup_u32(a); 458 // CHECK: ld3r {{{ *v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s *}}}, 459 // [{{x[0-9]+|sp}}] 460 } 461 462 uint64x1x3_t test_vld3_dup_u64(uint64_t *a) { 463 // CHECK-LABEL: test_vld3_dup_u64 464 return vld3_dup_u64(a); 465 // CHECK: {{ld1|ld3r}} {{{ *v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d *}}}, 466 // [{{x[0-9]+|sp}}] 467 } 468 469 int8x8x3_t test_vld3_dup_s8(int8_t *a) { 470 // CHECK-LABEL: test_vld3_dup_s8 471 return vld3_dup_s8(a); 472 // CHECK: ld3r {{{ *v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b *}}}, 473 // [{{x[0-9]+|sp}}] 474 } 475 476 int16x4x3_t test_vld3_dup_s16(int16_t *a) { 477 // CHECK-LABEL: test_vld3_dup_s16 478 return vld3_dup_s16(a); 479 // CHECK: ld3r {{{ *v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h *}}}, 480 // [{{x[0-9]+|sp}}] 481 } 482 483 int32x2x3_t test_vld3_dup_s32(int32_t *a) { 484 // CHECK-LABEL: test_vld3_dup_s32 485 return vld3_dup_s32(a); 486 // CHECK: ld3r {{{ *v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s *}}}, 487 // [{{x[0-9]+|sp}}] 488 } 489 490 int64x1x3_t test_vld3_dup_s64(int64_t *a) { 491 // CHECK-LABEL: test_vld3_dup_s64 492 return vld3_dup_s64(a); 493 // CHECK: {{ld1|ld3r}} {{{ *v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d *}}}, 494 // [{{x[0-9]+|sp}}] 495 } 496 497 float16x4x3_t test_vld3_dup_f16(float16_t *a) { 498 // CHECK-LABEL: test_vld3_dup_f16 499 return vld3_dup_f16(a); 500 // CHECK: ld3r {{{ *v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h *}}}, 501 // [{{x[0-9]+|sp}}] 502 } 503 504 float32x2x3_t test_vld3_dup_f32(float32_t *a) { 505 // CHECK-LABEL: test_vld3_dup_f32 506 return vld3_dup_f32(a); 507 // CHECK: ld3r {{{ *v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s *}}}, 508 // [{{x[0-9]+|sp}}] 509 } 510 511 float64x1x3_t test_vld3_dup_f64(float64_t *a) { 512 // CHECK-LABEL: test_vld3_dup_f64 513 return vld3_dup_f64(a); 514 // CHECK: {{ld1|ld3r}} {{{ *v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d *}}}, 515 // [{{x[0-9]+|sp}}] 516 } 517 518 poly8x8x3_t test_vld3_dup_p8(poly8_t *a) { 519 // CHECK-LABEL: test_vld3_dup_p8 520 return vld3_dup_p8(a); 521 // CHECK: ld3r {{{ *v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b *}}}, 522 // [{{x[0-9]+|sp}}] 523 } 524 525 poly16x4x3_t test_vld3_dup_p16(poly16_t *a) { 526 // CHECK-LABEL: test_vld3_dup_p16 527 return vld3_dup_p16(a); 528 // CHECK: ld3r {{{ *v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h *}}}, 529 // [{{x[0-9]+|sp}}] 530 } 531 532 poly64x1x3_t test_vld3_dup_p64(poly64_t *a) { 533 // CHECK-LABEL: test_vld3_dup_p64 534 return vld3_dup_p64(a); 535 // CHECK: {{ld1|ld3r}} {{{ *v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d *}}}, 536 // [{{x[0-9]+|sp}}] 537 } 538 539 uint8x16x4_t test_vld4q_dup_u8(uint8_t *a) { 540 // CHECK-LABEL: test_vld4q_dup_u8 541 return vld4q_dup_u8(a); 542 // CHECK: ld4r {{{ *v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b *}}}, [{{x[0-9]+|sp}}] 543 } 544 545 uint16x8x4_t test_vld4q_dup_u16(uint16_t *a) { 546 // CHECK-LABEL: test_vld4q_dup_u16 547 return vld4q_dup_u16(a); 548 // CHECK: ld4r {{{ *v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h *}}}, [{{x[0-9]+|sp}}] 549 } 550 551 uint32x4x4_t test_vld4q_dup_u32(uint32_t *a) { 552 // CHECK-LABEL: test_vld4q_dup_u32 553 return vld4q_dup_u32(a); 554 // CHECK: ld4r {{{ *v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s *}}}, [{{x[0-9]+|sp}}] 555 } 556 557 uint64x2x4_t test_vld4q_dup_u64(uint64_t *a) { 558 // CHECK-LABEL: test_vld4q_dup_u64 559 return vld4q_dup_u64(a); 560 // CHECK: ld4r {{{ *v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d *}}}, [{{x[0-9]+|sp}}] 561 } 562 563 int8x16x4_t test_vld4q_dup_s8(int8_t *a) { 564 // CHECK-LABEL: test_vld4q_dup_s8 565 return vld4q_dup_s8(a); 566 // CHECK: ld4r {{{ *v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b *}}}, [{{x[0-9]+|sp}}] 567 } 568 569 int16x8x4_t test_vld4q_dup_s16(int16_t *a) { 570 // CHECK-LABEL: test_vld4q_dup_s16 571 return vld4q_dup_s16(a); 572 // CHECK: ld4r {{{ *v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h *}}}, [{{x[0-9]+|sp}}] 573 } 574 575 int32x4x4_t test_vld4q_dup_s32(int32_t *a) { 576 // CHECK-LABEL: test_vld4q_dup_s32 577 return vld4q_dup_s32(a); 578 // CHECK: ld4r {{{ *v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s *}}}, [{{x[0-9]+|sp}}] 579 } 580 581 int64x2x4_t test_vld4q_dup_s64(int64_t *a) { 582 // CHECK-LABEL: test_vld4q_dup_s64 583 return vld4q_dup_s64(a); 584 // CHECK: ld4r {{{ *v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d *}}}, [{{x[0-9]+|sp}}] 585 } 586 587 float16x8x4_t test_vld4q_dup_f16(float16_t *a) { 588 // CHECK-LABEL: test_vld4q_dup_f16 589 return vld4q_dup_f16(a); 590 // CHECK: ld4r {{{ *v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h *}}}, [{{x[0-9]+|sp}}] 591 } 592 593 float32x4x4_t test_vld4q_dup_f32(float32_t *a) { 594 // CHECK-LABEL: test_vld4q_dup_f32 595 return vld4q_dup_f32(a); 596 // CHECK: ld4r {{{ *v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s *}}}, [{{x[0-9]+|sp}}] 597 } 598 599 float64x2x4_t test_vld4q_dup_f64(float64_t *a) { 600 // CHECK-LABEL: test_vld4q_dup_f64 601 return vld4q_dup_f64(a); 602 // CHECK: ld4r {{{ *v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d *}}}, [{{x[0-9]+|sp}}] 603 } 604 605 poly8x16x4_t test_vld4q_dup_p8(poly8_t *a) { 606 // CHECK-LABEL: test_vld4q_dup_p8 607 return vld4q_dup_p8(a); 608 // CHECK: ld4r {{{ *v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b *}}}, [{{x[0-9]+|sp}}] 609 } 610 611 poly16x8x4_t test_vld4q_dup_p16(poly16_t *a) { 612 // CHECK-LABEL: test_vld4q_dup_p16 613 return vld4q_dup_p16(a); 614 // CHECK: ld4r {{{ *v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h, v[0-9]+.8h *}}}, [{{x[0-9]+|sp}}] 615 } 616 617 poly64x2x4_t test_vld4q_dup_p64(poly64_t *a) { 618 // CHECK-LABEL: test_vld4q_dup_p64 619 return vld4q_dup_p64(a); 620 // CHECK: ld4r {{{ *v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d, v[0-9]+.2d *}}}, [{{x[0-9]+|sp}}] 621 } 622 623 uint8x8x4_t test_vld4_dup_u8(uint8_t *a) { 624 // CHECK-LABEL: test_vld4_dup_u8 625 return vld4_dup_u8(a); 626 // CHECK: ld4r {{{ *v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b *}}}, [{{x[0-9]+|sp}}] 627 } 628 629 uint16x4x4_t test_vld4_dup_u16(uint16_t *a) { 630 // CHECK-LABEL: test_vld4_dup_u16 631 return vld4_dup_u16(a); 632 // CHECK: ld4r {{{ *v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h *}}}, [{{x[0-9]+|sp}}] 633 } 634 635 uint32x2x4_t test_vld4_dup_u32(uint32_t *a) { 636 // CHECK-LABEL: test_vld4_dup_u32 637 return vld4_dup_u32(a); 638 // CHECK: ld4r {{{ *v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s *}}}, [{{x[0-9]+|sp}}] 639 } 640 641 uint64x1x4_t test_vld4_dup_u64(uint64_t *a) { 642 // CHECK-LABEL: test_vld4_dup_u64 643 return vld4_dup_u64(a); 644 // CHECK: {{ld1|ld4r}} {{{ *v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d *}}}, [{{x[0-9]+|sp}}] 645 } 646 647 int8x8x4_t test_vld4_dup_s8(int8_t *a) { 648 // CHECK-LABEL: test_vld4_dup_s8 649 return vld4_dup_s8(a); 650 // CHECK: ld4r {{{ *v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b *}}}, [{{x[0-9]+|sp}}] 651 } 652 653 int16x4x4_t test_vld4_dup_s16(int16_t *a) { 654 // CHECK-LABEL: test_vld4_dup_s16 655 return vld4_dup_s16(a); 656 // CHECK: ld4r {{{ *v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h *}}}, [{{x[0-9]+|sp}}] 657 } 658 659 int32x2x4_t test_vld4_dup_s32(int32_t *a) { 660 // CHECK-LABEL: test_vld4_dup_s32 661 return vld4_dup_s32(a); 662 // CHECK: ld4r {{{ *v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s *}}}, [{{x[0-9]+|sp}}] 663 } 664 665 int64x1x4_t test_vld4_dup_s64(int64_t *a) { 666 // CHECK-LABEL: test_vld4_dup_s64 667 return vld4_dup_s64(a); 668 // CHECK: {{ld1|ld4r}} {{{ *v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d *}}}, [{{x[0-9]+|sp}}] 669 } 670 671 float16x4x4_t test_vld4_dup_f16(float16_t *a) { 672 // CHECK-LABEL: test_vld4_dup_f16 673 return vld4_dup_f16(a); 674 // CHECK: ld4r {{{ *v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h *}}}, [{{x[0-9]+|sp}}] 675 } 676 677 float32x2x4_t test_vld4_dup_f32(float32_t *a) { 678 // CHECK-LABEL: test_vld4_dup_f32 679 return vld4_dup_f32(a); 680 // CHECK: ld4r {{{ *v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s, v[0-9]+.2s *}}}, [{{x[0-9]+|sp}}] 681 } 682 683 float64x1x4_t test_vld4_dup_f64(float64_t *a) { 684 // CHECK-LABEL: test_vld4_dup_f64 685 return vld4_dup_f64(a); 686 // CHECK: {{ld1|ld4r}} {{{ *v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d *}}}, [{{x[0-9]+|sp}}] 687 } 688 689 poly8x8x4_t test_vld4_dup_p8(poly8_t *a) { 690 // CHECK-LABEL: test_vld4_dup_p8 691 return vld4_dup_p8(a); 692 // CHECK: ld4r {{{ *v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b *}}}, [{{x[0-9]+|sp}}] 693 } 694 695 poly16x4x4_t test_vld4_dup_p16(poly16_t *a) { 696 // CHECK-LABEL: test_vld4_dup_p16 697 return vld4_dup_p16(a); 698 // CHECK: ld4r {{{ *v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h, v[0-9]+.4h *}}}, [{{x[0-9]+|sp}}] 699 } 700 701 poly64x1x4_t test_vld4_dup_p64(poly64_t *a) { 702 // CHECK-LABEL: test_vld4_dup_p64 703 return vld4_dup_p64(a); 704 // CHECK: {{ld1|ld4r}} {{{ *v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d, v[0-9]+.1d *}}}, [{{x[0-9]+|sp}}] 705 } 706 707 uint8x16_t test_vld1q_lane_u8(uint8_t *a, uint8x16_t b) { 708 // CHECK-LABEL: test_vld1q_lane_u8 709 return vld1q_lane_u8(a, b, 15); 710 // CHECK: ld1 {{{ *v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}] 711 } 712 713 uint16x8_t test_vld1q_lane_u16(uint16_t *a, uint16x8_t b) { 714 // CHECK-LABEL: test_vld1q_lane_u16 715 return vld1q_lane_u16(a, b, 7); 716 // CHECK: ld1 {{{ *v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 717 } 718 719 uint32x4_t test_vld1q_lane_u32(uint32_t *a, uint32x4_t b) { 720 // CHECK-LABEL: test_vld1q_lane_u32 721 return vld1q_lane_u32(a, b, 3); 722 // CHECK: ld1 {{{ *v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}] 723 } 724 725 uint64x2_t test_vld1q_lane_u64(uint64_t *a, uint64x2_t b) { 726 // CHECK-LABEL: test_vld1q_lane_u64 727 return vld1q_lane_u64(a, b, 1); 728 // CHECK: ld1 {{{ *v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 729 } 730 731 int8x16_t test_vld1q_lane_s8(int8_t *a, int8x16_t b) { 732 // CHECK-LABEL: test_vld1q_lane_s8 733 return vld1q_lane_s8(a, b, 15); 734 // CHECK: ld1 {{{ *v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}] 735 } 736 737 int16x8_t test_vld1q_lane_s16(int16_t *a, int16x8_t b) { 738 // CHECK-LABEL: test_vld1q_lane_s16 739 return vld1q_lane_s16(a, b, 7); 740 // CHECK: ld1 {{{ *v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 741 } 742 743 int32x4_t test_vld1q_lane_s32(int32_t *a, int32x4_t b) { 744 // CHECK-LABEL: test_vld1q_lane_s32 745 return vld1q_lane_s32(a, b, 3); 746 // CHECK: ld1 {{{ *v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}] 747 } 748 749 int64x2_t test_vld1q_lane_s64(int64_t *a, int64x2_t b) { 750 // CHECK-LABEL: test_vld1q_lane_s64 751 return vld1q_lane_s64(a, b, 1); 752 // CHECK: ld1 {{{ *v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 753 } 754 755 float16x8_t test_vld1q_lane_f16(float16_t *a, float16x8_t b) { 756 // CHECK-LABEL: test_vld1q_lane_f16 757 return vld1q_lane_f16(a, b, 7); 758 // CHECK: ld1 {{{ *v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 759 } 760 761 float32x4_t test_vld1q_lane_f32(float32_t *a, float32x4_t b) { 762 // CHECK-LABEL: test_vld1q_lane_f32 763 return vld1q_lane_f32(a, b, 3); 764 // CHECK: ld1 {{{ *v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}] 765 } 766 767 float64x2_t test_vld1q_lane_f64(float64_t *a, float64x2_t b) { 768 // CHECK-LABEL: test_vld1q_lane_f64 769 return vld1q_lane_f64(a, b, 1); 770 // CHECK: ld1 {{{ *v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 771 } 772 773 poly8x16_t test_vld1q_lane_p8(poly8_t *a, poly8x16_t b) { 774 // CHECK-LABEL: test_vld1q_lane_p8 775 return vld1q_lane_p8(a, b, 15); 776 // CHECK: ld1 {{{ *v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}] 777 } 778 779 poly16x8_t test_vld1q_lane_p16(poly16_t *a, poly16x8_t b) { 780 // CHECK-LABEL: test_vld1q_lane_p16 781 return vld1q_lane_p16(a, b, 7); 782 // CHECK: ld1 {{{ *v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 783 } 784 785 poly64x2_t test_vld1q_lane_p64(poly64_t *a, poly64x2_t b) { 786 // CHECK-LABEL: test_vld1q_lane_p64 787 return vld1q_lane_p64(a, b, 1); 788 // CHECK: ld1 {{{ *v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 789 } 790 791 uint8x8_t test_vld1_lane_u8(uint8_t *a, uint8x8_t b) { 792 // CHECK-LABEL: test_vld1_lane_u8 793 return vld1_lane_u8(a, b, 7); 794 // CHECK: ld1 {{{ *v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}] 795 } 796 797 uint16x4_t test_vld1_lane_u16(uint16_t *a, uint16x4_t b) { 798 // CHECK-LABEL: test_vld1_lane_u16 799 return vld1_lane_u16(a, b, 3); 800 // CHECK: ld1 {{{ *v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 801 } 802 803 uint32x2_t test_vld1_lane_u32(uint32_t *a, uint32x2_t b) { 804 // CHECK-LABEL: test_vld1_lane_u32 805 return vld1_lane_u32(a, b, 1); 806 // CHECK: ld1 {{{ *v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}] 807 } 808 809 uint64x1_t test_vld1_lane_u64(uint64_t *a, uint64x1_t b) { 810 // CHECK-LABEL: test_vld1_lane_u64 811 return vld1_lane_u64(a, b, 0); 812 // CHECK: {{ld1r { v[0-9]+.1d }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}] 813 } 814 815 int8x8_t test_vld1_lane_s8(int8_t *a, int8x8_t b) { 816 // CHECK-LABEL: test_vld1_lane_s8 817 return vld1_lane_s8(a, b, 7); 818 // CHECK: ld1 {{{ *v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}] 819 } 820 821 int16x4_t test_vld1_lane_s16(int16_t *a, int16x4_t b) { 822 // CHECK-LABEL: test_vld1_lane_s16 823 return vld1_lane_s16(a, b, 3); 824 // CHECK: ld1 {{{ *v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 825 } 826 827 int32x2_t test_vld1_lane_s32(int32_t *a, int32x2_t b) { 828 // CHECK-LABEL: test_vld1_lane_s32 829 return vld1_lane_s32(a, b, 1); 830 // CHECK: ld1 {{{ *v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}] 831 } 832 833 int64x1_t test_vld1_lane_s64(int64_t *a, int64x1_t b) { 834 // CHECK-LABEL: test_vld1_lane_s64 835 return vld1_lane_s64(a, b, 0); 836 // CHECK: {{ld1r { v[0-9]+.1d }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}] 837 } 838 839 float16x4_t test_vld1_lane_f16(float16_t *a, float16x4_t b) { 840 // CHECK-LABEL: test_vld1_lane_f16 841 return vld1_lane_f16(a, b, 3); 842 // CHECK: ld1 {{{ *v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 843 } 844 845 float32x2_t test_vld1_lane_f32(float32_t *a, float32x2_t b) { 846 // CHECK-LABEL: test_vld1_lane_f32 847 return vld1_lane_f32(a, b, 1); 848 // CHECK: ld1 {{{ *v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}] 849 } 850 851 float64x1_t test_vld1_lane_f64(float64_t *a, float64x1_t b) { 852 // CHECK-LABEL: test_vld1_lane_f64 853 return vld1_lane_f64(a, b, 0); 854 // CHECK: {{ld1r { v[0-9]+.1d }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}] 855 } 856 857 poly8x8_t test_vld1_lane_p8(poly8_t *a, poly8x8_t b) { 858 // CHECK-LABEL: test_vld1_lane_p8 859 return vld1_lane_p8(a, b, 7); 860 // CHECK: ld1 {{{ *v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}] 861 } 862 863 poly16x4_t test_vld1_lane_p16(poly16_t *a, poly16x4_t b) { 864 // CHECK-LABEL: test_vld1_lane_p16 865 return vld1_lane_p16(a, b, 3); 866 // CHECK: ld1 {{{ *v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 867 } 868 869 poly64x1_t test_vld1_lane_p64(poly64_t *a, poly64x1_t b) { 870 // CHECK-LABEL: test_vld1_lane_p64 871 return vld1_lane_p64(a, b, 0); 872 // CHECK: {{ld1r { v[0-9]+.1d }|ldr d[0-9]+}}, [{{x[0-9]+|sp}}] 873 } 874 875 int8x16x2_t test_vld2q_lane_s8(int8_t const * ptr, int8x16x2_t src) { 876 // CHECK-LABEL: test_vld2q_lane_s8 877 return vld2q_lane_s8(ptr, src, 15); 878 // CHECK: ld2 {{{ *v[0-9]+.b, v[0-9]+.b *}}}[15], [x0] 879 } 880 881 uint8x16x2_t test_vld2q_lane_u8(uint8_t const * ptr, uint8x16x2_t src) { 882 // CHECK-LABEL: test_vld2q_lane_u8 883 return vld2q_lane_u8(ptr, src, 15); 884 // CHECK: ld2 {{{ *v[0-9]+.b, v[0-9]+.b *}}}[15], [x0] 885 } 886 887 poly8x16x2_t test_vld2q_lane_p8(poly8_t const * ptr, poly8x16x2_t src) { 888 // CHECK-LABEL: test_vld2q_lane_p8 889 return vld2q_lane_p8(ptr, src, 15); 890 // CHECK: ld2 {{{ *v[0-9]+.b, v[0-9]+.b *}}}[15], [x0] 891 } 892 893 int8x16x3_t test_vld3q_lane_s8(int8_t const * ptr, int8x16x3_t src) { 894 // CHECK-LABEL: test_vld3q_lane_s8 895 return vld3q_lane_s8(ptr, src, 15); 896 // CHECK: ld3 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[15], [x0] 897 } 898 899 uint8x16x3_t test_vld3q_lane_u8(uint8_t const * ptr, uint8x16x3_t src) { 900 // CHECK-LABEL: test_vld3q_lane_u8 901 return vld3q_lane_u8(ptr, src, 15); 902 // CHECK: ld3 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[15], [x0] 903 } 904 905 uint16x8x2_t test_vld2q_lane_u16(uint16_t *a, uint16x8x2_t b) { 906 // CHECK-LABEL: test_vld2q_lane_u16 907 return vld2q_lane_u16(a, b, 7); 908 // CHECK: ld2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 909 } 910 911 uint32x4x2_t test_vld2q_lane_u32(uint32_t *a, uint32x4x2_t b) { 912 // CHECK-LABEL: test_vld2q_lane_u32 913 return vld2q_lane_u32(a, b, 3); 914 // CHECK: ld2 {{{ *v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}] 915 } 916 917 uint64x2x2_t test_vld2q_lane_u64(uint64_t *a, uint64x2x2_t b) { 918 // CHECK-LABEL: test_vld2q_lane_u64 919 return vld2q_lane_u64(a, b, 1); 920 // CHECK: ld2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 921 } 922 923 int16x8x2_t test_vld2q_lane_s16(int16_t *a, int16x8x2_t b) { 924 // CHECK-LABEL: test_vld2q_lane_s16 925 return vld2q_lane_s16(a, b, 7); 926 // CHECK: ld2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 927 } 928 929 int32x4x2_t test_vld2q_lane_s32(int32_t *a, int32x4x2_t b) { 930 // CHECK-LABEL: test_vld2q_lane_s32 931 return vld2q_lane_s32(a, b, 3); 932 // CHECK: ld2 {{{ *v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}] 933 } 934 935 int64x2x2_t test_vld2q_lane_s64(int64_t *a, int64x2x2_t b) { 936 // CHECK-LABEL: test_vld2q_lane_s64 937 return vld2q_lane_s64(a, b, 1); 938 // CHECK: ld2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 939 } 940 941 float16x8x2_t test_vld2q_lane_f16(float16_t *a, float16x8x2_t b) { 942 // CHECK-LABEL: test_vld2q_lane_f16 943 return vld2q_lane_f16(a, b, 7); 944 // CHECK: ld2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 945 } 946 947 float32x4x2_t test_vld2q_lane_f32(float32_t *a, float32x4x2_t b) { 948 // CHECK-LABEL: test_vld2q_lane_f32 949 return vld2q_lane_f32(a, b, 3); 950 // CHECK: ld2 {{{ *v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}] 951 } 952 953 float64x2x2_t test_vld2q_lane_f64(float64_t *a, float64x2x2_t b) { 954 // CHECK-LABEL: test_vld2q_lane_f64 955 return vld2q_lane_f64(a, b, 1); 956 // CHECK: ld2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 957 } 958 959 poly16x8x2_t test_vld2q_lane_p16(poly16_t *a, poly16x8x2_t b) { 960 // CHECK-LABEL: test_vld2q_lane_p16 961 return vld2q_lane_p16(a, b, 7); 962 // CHECK: ld2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 963 } 964 965 poly64x2x2_t test_vld2q_lane_p64(poly64_t *a, poly64x2x2_t b) { 966 // CHECK-LABEL: test_vld2q_lane_p64 967 return vld2q_lane_p64(a, b, 1); 968 // CHECK: ld2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 969 } 970 971 uint8x8x2_t test_vld2_lane_u8(uint8_t *a, uint8x8x2_t b) { 972 // CHECK-LABEL: test_vld2_lane_u8 973 return vld2_lane_u8(a, b, 7); 974 // CHECK: ld2 {{{ *v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}] 975 } 976 977 uint16x4x2_t test_vld2_lane_u16(uint16_t *a, uint16x4x2_t b) { 978 // CHECK-LABEL: test_vld2_lane_u16 979 return vld2_lane_u16(a, b, 3); 980 // CHECK: ld2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 981 } 982 983 uint32x2x2_t test_vld2_lane_u32(uint32_t *a, uint32x2x2_t b) { 984 // CHECK-LABEL: test_vld2_lane_u32 985 return vld2_lane_u32(a, b, 1); 986 // CHECK: ld2 {{{ *v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}] 987 } 988 989 uint64x1x2_t test_vld2_lane_u64(uint64_t *a, uint64x1x2_t b) { 990 // CHECK-LABEL: test_vld2_lane_u64 991 return vld2_lane_u64(a, b, 0); 992 // CHECK: ld2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 993 } 994 995 int8x8x2_t test_vld2_lane_s8(int8_t *a, int8x8x2_t b) { 996 // CHECK-LABEL: test_vld2_lane_s8 997 return vld2_lane_s8(a, b, 7); 998 // CHECK: ld2 {{{ *v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}] 999 } 1000 1001 int16x4x2_t test_vld2_lane_s16(int16_t *a, int16x4x2_t b) { 1002 // CHECK-LABEL: test_vld2_lane_s16 1003 return vld2_lane_s16(a, b, 3); 1004 // CHECK: ld2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 1005 } 1006 1007 int32x2x2_t test_vld2_lane_s32(int32_t *a, int32x2x2_t b) { 1008 // CHECK-LABEL: test_vld2_lane_s32 1009 return vld2_lane_s32(a, b, 1); 1010 // CHECK: ld2 {{{ *v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}] 1011 } 1012 1013 int64x1x2_t test_vld2_lane_s64(int64_t *a, int64x1x2_t b) { 1014 // CHECK-LABEL: test_vld2_lane_s64 1015 return vld2_lane_s64(a, b, 0); 1016 // CHECK: ld2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 1017 } 1018 1019 float16x4x2_t test_vld2_lane_f16(float16_t *a, float16x4x2_t b) { 1020 // CHECK-LABEL: test_vld2_lane_f16 1021 return vld2_lane_f16(a, b, 3); 1022 // CHECK: ld2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 1023 } 1024 1025 float32x2x2_t test_vld2_lane_f32(float32_t *a, float32x2x2_t b) { 1026 // CHECK-LABEL: test_vld2_lane_f32 1027 return vld2_lane_f32(a, b, 1); 1028 // CHECK: ld2 {{{ *v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}] 1029 } 1030 1031 float64x1x2_t test_vld2_lane_f64(float64_t *a, float64x1x2_t b) { 1032 // CHECK-LABEL: test_vld2_lane_f64 1033 return vld2_lane_f64(a, b, 0); 1034 // CHECK: ld2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 1035 } 1036 1037 poly8x8x2_t test_vld2_lane_p8(poly8_t *a, poly8x8x2_t b) { 1038 // CHECK-LABEL: test_vld2_lane_p8 1039 return vld2_lane_p8(a, b, 7); 1040 // CHECK: ld2 {{{ *v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}] 1041 } 1042 1043 poly16x4x2_t test_vld2_lane_p16(poly16_t *a, poly16x4x2_t b) { 1044 // CHECK-LABEL: test_vld2_lane_p16 1045 return vld2_lane_p16(a, b, 3); 1046 // CHECK: ld2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 1047 } 1048 1049 poly64x1x2_t test_vld2_lane_p64(poly64_t *a, poly64x1x2_t b) { 1050 // CHECK-LABEL: test_vld2_lane_p64 1051 return vld2_lane_p64(a, b, 0); 1052 // CHECK: ld2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 1053 } 1054 1055 uint16x8x3_t test_vld3q_lane_u16(uint16_t *a, uint16x8x3_t b) { 1056 // CHECK-LABEL: test_vld3q_lane_u16 1057 return vld3q_lane_u16(a, b, 7); 1058 // CHECK: ld3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 1059 } 1060 1061 uint32x4x3_t test_vld3q_lane_u32(uint32_t *a, uint32x4x3_t b) { 1062 // CHECK-LABEL: test_vld3q_lane_u32 1063 return vld3q_lane_u32(a, b, 3); 1064 // CHECK: ld3 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}] 1065 } 1066 1067 uint64x2x3_t test_vld3q_lane_u64(uint64_t *a, uint64x2x3_t b) { 1068 // CHECK-LABEL: test_vld3q_lane_u64 1069 return vld3q_lane_u64(a, b, 1); 1070 // CHECK: ld3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 1071 } 1072 1073 int16x8x3_t test_vld3q_lane_s16(int16_t *a, int16x8x3_t b) { 1074 // CHECK-LABEL: test_vld3q_lane_s16 1075 return vld3q_lane_s16(a, b, 7); 1076 // CHECK: ld3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 1077 } 1078 1079 int32x4x3_t test_vld3q_lane_s32(int32_t *a, int32x4x3_t b) { 1080 // CHECK-LABEL: test_vld3q_lane_s32 1081 return vld3q_lane_s32(a, b, 3); 1082 // CHECK: ld3 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}] 1083 } 1084 1085 int64x2x3_t test_vld3q_lane_s64(int64_t *a, int64x2x3_t b) { 1086 // CHECK-LABEL: test_vld3q_lane_s64 1087 return vld3q_lane_s64(a, b, 1); 1088 // CHECK: ld3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 1089 } 1090 1091 float16x8x3_t test_vld3q_lane_f16(float16_t *a, float16x8x3_t b) { 1092 // CHECK-LABEL: test_vld3q_lane_f16 1093 return vld3q_lane_f16(a, b, 7); 1094 // CHECK: ld3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 1095 } 1096 1097 float32x4x3_t test_vld3q_lane_f32(float32_t *a, float32x4x3_t b) { 1098 // CHECK-LABEL: test_vld3q_lane_f32 1099 return vld3q_lane_f32(a, b, 3); 1100 // CHECK: ld3 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}] 1101 } 1102 1103 float64x2x3_t test_vld3q_lane_f64(float64_t *a, float64x2x3_t b) { 1104 // CHECK-LABEL: test_vld3q_lane_f64 1105 return vld3q_lane_f64(a, b, 1); 1106 // CHECK: ld3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 1107 } 1108 1109 poly8x16x3_t test_vld3q_lane_p8(poly8_t *a, poly8x16x3_t b) { 1110 // CHECK-LABEL: test_vld3q_lane_p8 1111 return vld3q_lane_p8(a, b, 15); 1112 // CHECK: ld3 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}] 1113 } 1114 1115 poly16x8x3_t test_vld3q_lane_p16(poly16_t *a, poly16x8x3_t b) { 1116 // CHECK-LABEL: test_vld3q_lane_p16 1117 return vld3q_lane_p16(a, b, 7); 1118 // CHECK: ld3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 1119 } 1120 1121 poly64x2x3_t test_vld3q_lane_p64(poly64_t *a, poly64x2x3_t b) { 1122 // CHECK-LABEL: test_vld3q_lane_p64 1123 return vld3q_lane_p64(a, b, 1); 1124 // CHECK: ld3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 1125 } 1126 1127 uint8x8x3_t test_vld3_lane_u8(uint8_t *a, uint8x8x3_t b) { 1128 // CHECK-LABEL: test_vld3_lane_u8 1129 return vld3_lane_u8(a, b, 7); 1130 // CHECK: ld3 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}] 1131 } 1132 1133 uint16x4x3_t test_vld3_lane_u16(uint16_t *a, uint16x4x3_t b) { 1134 // CHECK-LABEL: test_vld3_lane_u16 1135 return vld3_lane_u16(a, b, 3); 1136 // CHECK: ld3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 1137 } 1138 1139 uint32x2x3_t test_vld3_lane_u32(uint32_t *a, uint32x2x3_t b) { 1140 // CHECK-LABEL: test_vld3_lane_u32 1141 return vld3_lane_u32(a, b, 1); 1142 // CHECK: ld3 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}] 1143 } 1144 1145 uint64x1x3_t test_vld3_lane_u64(uint64_t *a, uint64x1x3_t b) { 1146 // CHECK-LABEL: test_vld3_lane_u64 1147 return vld3_lane_u64(a, b, 0); 1148 // CHECK: ld3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 1149 } 1150 1151 int8x8x3_t test_vld3_lane_s8(int8_t *a, int8x8x3_t b) { 1152 // CHECK-LABEL: test_vld3_lane_s8 1153 return vld3_lane_s8(a, b, 7); 1154 // CHECK: ld3 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}] 1155 } 1156 1157 int16x4x3_t test_vld3_lane_s16(int16_t *a, int16x4x3_t b) { 1158 // CHECK-LABEL: test_vld3_lane_s16 1159 return vld3_lane_s16(a, b, 3); 1160 // CHECK: ld3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 1161 } 1162 1163 int32x2x3_t test_vld3_lane_s32(int32_t *a, int32x2x3_t b) { 1164 // CHECK-LABEL: test_vld3_lane_s32 1165 return vld3_lane_s32(a, b, 1); 1166 // CHECK: ld3 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}] 1167 } 1168 1169 int64x1x3_t test_vld3_lane_s64(int64_t *a, int64x1x3_t b) { 1170 // CHECK-LABEL: test_vld3_lane_s64 1171 return vld3_lane_s64(a, b, 0); 1172 // CHECK: ld3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 1173 } 1174 1175 float16x4x3_t test_vld3_lane_f16(float16_t *a, float16x4x3_t b) { 1176 // CHECK-LABEL: test_vld3_lane_f16 1177 return vld3_lane_f16(a, b, 3); 1178 // CHECK: ld3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 1179 } 1180 1181 float32x2x3_t test_vld3_lane_f32(float32_t *a, float32x2x3_t b) { 1182 // CHECK-LABEL: test_vld3_lane_f32 1183 return vld3_lane_f32(a, b, 1); 1184 // CHECK: ld3 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}] 1185 } 1186 1187 float64x1x3_t test_vld3_lane_f64(float64_t *a, float64x1x3_t b) { 1188 // CHECK-LABEL: test_vld3_lane_f64 1189 return vld3_lane_f64(a, b, 0); 1190 // CHECK: ld3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 1191 } 1192 1193 poly8x8x3_t test_vld3_lane_p8(poly8_t *a, poly8x8x3_t b) { 1194 // CHECK-LABEL: test_vld3_lane_p8 1195 return vld3_lane_p8(a, b, 7); 1196 // CHECK: ld3 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}] 1197 } 1198 1199 poly16x4x3_t test_vld3_lane_p16(poly16_t *a, poly16x4x3_t b) { 1200 // CHECK-LABEL: test_vld3_lane_p16 1201 return vld3_lane_p16(a, b, 3); 1202 // CHECK: ld3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 1203 } 1204 1205 poly64x1x3_t test_vld3_lane_p64(poly64_t *a, poly64x1x3_t b) { 1206 // CHECK-LABEL: test_vld3_lane_p64 1207 return vld3_lane_p64(a, b, 0); 1208 // CHECK: ld3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 1209 } 1210 1211 uint8x16x4_t test_vld4q_lane_u8(uint8_t *a, uint8x16x4_t b) { 1212 // CHECK-LABEL: test_vld4q_lane_u8 1213 return vld4q_lane_u8(a, b, 15); 1214 // CHECK: ld4 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}] 1215 } 1216 1217 uint16x8x4_t test_vld4q_lane_u16(uint16_t *a, uint16x8x4_t b) { 1218 // CHECK-LABEL: test_vld4q_lane_u16 1219 return vld4q_lane_u16(a, b, 7); 1220 // CHECK: ld4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 1221 } 1222 1223 uint32x4x4_t test_vld4q_lane_u32(uint32_t *a, uint32x4x4_t b) { 1224 // CHECK-LABEL: test_vld4q_lane_u32 1225 return vld4q_lane_u32(a, b, 3); 1226 // CHECK: ld4 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}] 1227 } 1228 1229 uint64x2x4_t test_vld4q_lane_u64(uint64_t *a, uint64x2x4_t b) { 1230 // CHECK-LABEL: test_vld4q_lane_u64 1231 return vld4q_lane_u64(a, b, 1); 1232 // CHECK: ld4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 1233 } 1234 1235 int8x16x4_t test_vld4q_lane_s8(int8_t *a, int8x16x4_t b) { 1236 // CHECK-LABEL: test_vld4q_lane_s8 1237 return vld4q_lane_s8(a, b, 15); 1238 // CHECK: ld4 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}] 1239 } 1240 1241 int16x8x4_t test_vld4q_lane_s16(int16_t *a, int16x8x4_t b) { 1242 // CHECK-LABEL: test_vld4q_lane_s16 1243 return vld4q_lane_s16(a, b, 7); 1244 // CHECK: ld4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 1245 } 1246 1247 int32x4x4_t test_vld4q_lane_s32(int32_t *a, int32x4x4_t b) { 1248 // CHECK-LABEL: test_vld4q_lane_s32 1249 return vld4q_lane_s32(a, b, 3); 1250 // CHECK: ld4 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}] 1251 } 1252 1253 int64x2x4_t test_vld4q_lane_s64(int64_t *a, int64x2x4_t b) { 1254 // CHECK-LABEL: test_vld4q_lane_s64 1255 return vld4q_lane_s64(a, b, 1); 1256 // CHECK: ld4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 1257 } 1258 1259 float16x8x4_t test_vld4q_lane_f16(float16_t *a, float16x8x4_t b) { 1260 // CHECK-LABEL: test_vld4q_lane_f16 1261 return vld4q_lane_f16(a, b, 7); 1262 // CHECK: ld4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 1263 } 1264 1265 float32x4x4_t test_vld4q_lane_f32(float32_t *a, float32x4x4_t b) { 1266 // CHECK-LABEL: test_vld4q_lane_f32 1267 return vld4q_lane_f32(a, b, 3); 1268 // CHECK: ld4 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}] 1269 } 1270 1271 float64x2x4_t test_vld4q_lane_f64(float64_t *a, float64x2x4_t b) { 1272 // CHECK-LABEL: test_vld4q_lane_f64 1273 return vld4q_lane_f64(a, b, 1); 1274 // CHECK: ld4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 1275 } 1276 1277 poly8x16x4_t test_vld4q_lane_p8(poly8_t *a, poly8x16x4_t b) { 1278 // CHECK-LABEL: test_vld4q_lane_p8 1279 return vld4q_lane_p8(a, b, 15); 1280 // CHECK: ld4 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}] 1281 } 1282 1283 poly16x8x4_t test_vld4q_lane_p16(poly16_t *a, poly16x8x4_t b) { 1284 // CHECK-LABEL: test_vld4q_lane_p16 1285 return vld4q_lane_p16(a, b, 7); 1286 // CHECK: ld4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 1287 } 1288 1289 poly64x2x4_t test_vld4q_lane_p64(poly64_t *a, poly64x2x4_t b) { 1290 // CHECK-LABEL: test_vld4q_lane_p64 1291 return vld4q_lane_p64(a, b, 1); 1292 // CHECK: ld4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 1293 } 1294 1295 uint8x8x4_t test_vld4_lane_u8(uint8_t *a, uint8x8x4_t b) { 1296 // CHECK-LABEL: test_vld4_lane_u8 1297 return vld4_lane_u8(a, b, 7); 1298 // CHECK: ld4 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}] 1299 } 1300 1301 uint16x4x4_t test_vld4_lane_u16(uint16_t *a, uint16x4x4_t b) { 1302 // CHECK-LABEL: test_vld4_lane_u16 1303 return vld4_lane_u16(a, b, 3); 1304 // CHECK: ld4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 1305 } 1306 1307 uint32x2x4_t test_vld4_lane_u32(uint32_t *a, uint32x2x4_t b) { 1308 // CHECK-LABEL: test_vld4_lane_u32 1309 return vld4_lane_u32(a, b, 1); 1310 // CHECK: ld4 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}] 1311 } 1312 1313 uint64x1x4_t test_vld4_lane_u64(uint64_t *a, uint64x1x4_t b) { 1314 // CHECK-LABEL: test_vld4_lane_u64 1315 return vld4_lane_u64(a, b, 0); 1316 // CHECK: ld4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 1317 } 1318 1319 int8x8x4_t test_vld4_lane_s8(int8_t *a, int8x8x4_t b) { 1320 // CHECK-LABEL: test_vld4_lane_s8 1321 return vld4_lane_s8(a, b, 7); 1322 // CHECK: ld4 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}] 1323 } 1324 1325 int16x4x4_t test_vld4_lane_s16(int16_t *a, int16x4x4_t b) { 1326 // CHECK-LABEL: test_vld4_lane_s16 1327 return vld4_lane_s16(a, b, 3); 1328 // CHECK: ld4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 1329 } 1330 1331 int32x2x4_t test_vld4_lane_s32(int32_t *a, int32x2x4_t b) { 1332 // CHECK-LABEL: test_vld4_lane_s32 1333 return vld4_lane_s32(a, b, 1); 1334 // CHECK: ld4 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}] 1335 } 1336 1337 int64x1x4_t test_vld4_lane_s64(int64_t *a, int64x1x4_t b) { 1338 // CHECK-LABEL: test_vld4_lane_s64 1339 return vld4_lane_s64(a, b, 0); 1340 // CHECK: ld4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 1341 } 1342 1343 float16x4x4_t test_vld4_lane_f16(float16_t *a, float16x4x4_t b) { 1344 // CHECK-LABEL: test_vld4_lane_f16 1345 return vld4_lane_f16(a, b, 3); 1346 // CHECK: ld4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 1347 } 1348 1349 float32x2x4_t test_vld4_lane_f32(float32_t *a, float32x2x4_t b) { 1350 // CHECK-LABEL: test_vld4_lane_f32 1351 return vld4_lane_f32(a, b, 1); 1352 // CHECK: ld4 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}] 1353 } 1354 1355 float64x1x4_t test_vld4_lane_f64(float64_t *a, float64x1x4_t b) { 1356 // CHECK-LABEL: test_vld4_lane_f64 1357 return vld4_lane_f64(a, b, 0); 1358 // CHECK: ld4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 1359 } 1360 1361 poly8x8x4_t test_vld4_lane_p8(poly8_t *a, poly8x8x4_t b) { 1362 // CHECK-LABEL: test_vld4_lane_p8 1363 return vld4_lane_p8(a, b, 7); 1364 // CHECK: ld4 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}] 1365 } 1366 1367 poly16x4x4_t test_vld4_lane_p16(poly16_t *a, poly16x4x4_t b) { 1368 // CHECK-LABEL: test_vld4_lane_p16 1369 return vld4_lane_p16(a, b, 3); 1370 // CHECK: ld4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 1371 } 1372 1373 poly64x1x4_t test_vld4_lane_p64(poly64_t *a, poly64x1x4_t b) { 1374 // CHECK-LABEL: test_vld4_lane_p64 1375 return vld4_lane_p64(a, b, 0); 1376 // CHECK: ld4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 1377 } 1378 1379 void test_vst1q_lane_u8(uint8_t *a, uint8x16_t b) { 1380 // CHECK-LABEL: test_vst1q_lane_u8 1381 vst1q_lane_u8(a, b, 15); 1382 // CHECK: st1 {{{ *v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}] 1383 } 1384 1385 void test_vst1q_lane_u16(uint16_t *a, uint16x8_t b) { 1386 // CHECK-LABEL: test_vst1q_lane_u16 1387 vst1q_lane_u16(a, b, 7); 1388 // CHECK: st1 {{{ *v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 1389 } 1390 1391 void test_vst1q_lane_u32(uint32_t *a, uint32x4_t b) { 1392 // CHECK-LABEL: test_vst1q_lane_u32 1393 vst1q_lane_u32(a, b, 3); 1394 // CHECK: st1 {{{ *v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}] 1395 } 1396 1397 void test_vst1q_lane_u64(uint64_t *a, uint64x2_t b) { 1398 // CHECK-LABEL: test_vst1q_lane_u64 1399 vst1q_lane_u64(a, b, 1); 1400 // CHECK: st1 {{{ *v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 1401 } 1402 1403 void test_vst1q_lane_s8(int8_t *a, int8x16_t b) { 1404 // CHECK-LABEL: test_vst1q_lane_s8 1405 vst1q_lane_s8(a, b, 15); 1406 // CHECK: st1 {{{ *v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}] 1407 } 1408 1409 void test_vst1q_lane_s16(int16_t *a, int16x8_t b) { 1410 // CHECK-LABEL: test_vst1q_lane_s16 1411 vst1q_lane_s16(a, b, 7); 1412 // CHECK: st1 {{{ *v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 1413 } 1414 1415 void test_vst1q_lane_s32(int32_t *a, int32x4_t b) { 1416 // CHECK-LABEL: test_vst1q_lane_s32 1417 vst1q_lane_s32(a, b, 3); 1418 // CHECK: st1 {{{ *v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}] 1419 } 1420 1421 void test_vst1q_lane_s64(int64_t *a, int64x2_t b) { 1422 // CHECK-LABEL: test_vst1q_lane_s64 1423 vst1q_lane_s64(a, b, 1); 1424 // CHECK: st1 {{{ *v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 1425 } 1426 1427 void test_vst1q_lane_f16(float16_t *a, float16x8_t b) { 1428 // CHECK-LABEL: test_vst1q_lane_f16 1429 vst1q_lane_f16(a, b, 7); 1430 // CHECK: st1 {{{ *v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 1431 } 1432 1433 void test_vst1q_lane_f32(float32_t *a, float32x4_t b) { 1434 // CHECK-LABEL: test_vst1q_lane_f32 1435 vst1q_lane_f32(a, b, 3); 1436 // CHECK: st1 {{{ *v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}] 1437 } 1438 1439 void test_vst1q_lane_f64(float64_t *a, float64x2_t b) { 1440 // CHECK-LABEL: test_vst1q_lane_f64 1441 vst1q_lane_f64(a, b, 1); 1442 // CHECK: st1 {{{ *v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 1443 } 1444 1445 void test_vst1q_lane_p8(poly8_t *a, poly8x16_t b) { 1446 // CHECK-LABEL: test_vst1q_lane_p8 1447 vst1q_lane_p8(a, b, 15); 1448 // CHECK: st1 {{{ *v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}] 1449 } 1450 1451 void test_vst1q_lane_p16(poly16_t *a, poly16x8_t b) { 1452 // CHECK-LABEL: test_vst1q_lane_p16 1453 vst1q_lane_p16(a, b, 7); 1454 // CHECK: st1 {{{ *v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 1455 } 1456 1457 void test_vst1q_lane_p64(poly64_t *a, poly64x2_t b) { 1458 // CHECK-LABEL: test_vst1q_lane_p64 1459 vst1q_lane_p64(a, b, 1); 1460 // CHECK: st1 {{{ *v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 1461 } 1462 1463 void test_vst1_lane_u8(uint8_t *a, uint8x8_t b) { 1464 // CHECK-LABEL: test_vst1_lane_u8 1465 vst1_lane_u8(a, b, 7); 1466 // CHECK: st1 {{{ *v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}] 1467 } 1468 1469 void test_vst1_lane_u16(uint16_t *a, uint16x4_t b) { 1470 // CHECK-LABEL: test_vst1_lane_u16 1471 vst1_lane_u16(a, b, 3); 1472 // CHECK: st1 {{{ *v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 1473 } 1474 1475 void test_vst1_lane_u32(uint32_t *a, uint32x2_t b) { 1476 // CHECK-LABEL: test_vst1_lane_u32 1477 vst1_lane_u32(a, b, 1); 1478 // CHECK: st1 {{{ *v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}] 1479 } 1480 1481 void test_vst1_lane_u64(uint64_t *a, uint64x1_t b) { 1482 // CHECK-LABEL: test_vst1_lane_u64 1483 vst1_lane_u64(a, b, 0); 1484 // CHECK: st1 {{{ *v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 1485 } 1486 1487 void test_vst1_lane_s8(int8_t *a, int8x8_t b) { 1488 // CHECK-LABEL: test_vst1_lane_s8 1489 vst1_lane_s8(a, b, 7); 1490 // CHECK: st1 {{{ *v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}] 1491 } 1492 1493 void test_vst1_lane_s16(int16_t *a, int16x4_t b) { 1494 // CHECK-LABEL: test_vst1_lane_s16 1495 vst1_lane_s16(a, b, 3); 1496 // CHECK: st1 {{{ *v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 1497 } 1498 1499 void test_vst1_lane_s32(int32_t *a, int32x2_t b) { 1500 // CHECK-LABEL: test_vst1_lane_s32 1501 vst1_lane_s32(a, b, 1); 1502 // CHECK: st1 {{{ *v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}] 1503 } 1504 1505 void test_vst1_lane_s64(int64_t *a, int64x1_t b) { 1506 // CHECK-LABEL: test_vst1_lane_s64 1507 vst1_lane_s64(a, b, 0); 1508 // CHECK: st1 {{{ *v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 1509 } 1510 1511 void test_vst1_lane_f16(float16_t *a, float16x4_t b) { 1512 // CHECK-LABEL: test_vst1_lane_f16 1513 vst1_lane_f16(a, b, 3); 1514 // CHECK: st1 {{{ *v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 1515 } 1516 1517 void test_vst1_lane_f32(float32_t *a, float32x2_t b) { 1518 // CHECK-LABEL: test_vst1_lane_f32 1519 vst1_lane_f32(a, b, 1); 1520 // CHECK: st1 {{{ *v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}] 1521 } 1522 1523 void test_vst1_lane_f64(float64_t *a, float64x1_t b) { 1524 // CHECK-LABEL: test_vst1_lane_f64 1525 vst1_lane_f64(a, b, 0); 1526 // CHECK: {{st1 { v[0-9]+.d }\[0]|str d[0-9]+}}, [{{x[0-9]+|sp}}] 1527 } 1528 1529 void test_vst1_lane_p8(poly8_t *a, poly8x8_t b) { 1530 // CHECK-LABEL: test_vst1_lane_p8 1531 vst1_lane_p8(a, b, 7); 1532 // CHECK: st1 {{{ *v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}] 1533 } 1534 1535 void test_vst1_lane_p16(poly16_t *a, poly16x4_t b) { 1536 // CHECK-LABEL: test_vst1_lane_p16 1537 vst1_lane_p16(a, b, 3); 1538 // CHECK: st1 {{{ *v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 1539 } 1540 1541 void test_vst1_lane_p64(poly64_t *a, poly64x1_t b) { 1542 // CHECK-LABEL: test_vst1_lane_p64 1543 vst1_lane_p64(a, b, 0); 1544 // CHECK: st1 {{{ *v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 1545 } 1546 1547 void test_vst2q_lane_u8(uint8_t *a, uint8x16x2_t b) { 1548 // CHECK-LABEL: test_vst2q_lane_u8 1549 vst2q_lane_u8(a, b, 15); 1550 // CHECK: st2 {{{ *v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}] 1551 } 1552 1553 void test_vst2q_lane_u16(uint16_t *a, uint16x8x2_t b) { 1554 // CHECK-LABEL: test_vst2q_lane_u16 1555 vst2q_lane_u16(a, b, 7); 1556 // CHECK: st2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 1557 } 1558 1559 void test_vst2q_lane_u32(uint32_t *a, uint32x4x2_t b) { 1560 // CHECK-LABEL: test_vst2q_lane_u32 1561 vst2q_lane_u32(a, b, 3); 1562 // CHECK: st2 {{{ *v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}] 1563 } 1564 1565 void test_vst2q_lane_u64(uint64_t *a, uint64x2x2_t b) { 1566 // CHECK-LABEL: test_vst2q_lane_u64 1567 vst2q_lane_u64(a, b, 1); 1568 // CHECK: st2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 1569 } 1570 1571 void test_vst2q_lane_s8(int8_t *a, int8x16x2_t b) { 1572 // CHECK-LABEL: test_vst2q_lane_s8 1573 vst2q_lane_s8(a, b, 15); 1574 // CHECK: st2 {{{ *v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}] 1575 } 1576 1577 void test_vst2q_lane_s16(int16_t *a, int16x8x2_t b) { 1578 // CHECK-LABEL: test_vst2q_lane_s16 1579 vst2q_lane_s16(a, b, 7); 1580 // CHECK: st2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 1581 } 1582 1583 void test_vst2q_lane_s32(int32_t *a, int32x4x2_t b) { 1584 // CHECK-LABEL: test_vst2q_lane_s32 1585 vst2q_lane_s32(a, b, 3); 1586 // CHECK: st2 {{{ *v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}] 1587 } 1588 1589 void test_vst2q_lane_s64(int64_t *a, int64x2x2_t b) { 1590 // CHECK-LABEL: test_vst2q_lane_s64 1591 vst2q_lane_s64(a, b, 1); 1592 // CHECK: st2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 1593 } 1594 1595 void test_vst2q_lane_f16(float16_t *a, float16x8x2_t b) { 1596 // CHECK-LABEL: test_vst2q_lane_f16 1597 vst2q_lane_f16(a, b, 7); 1598 // CHECK: st2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 1599 } 1600 1601 void test_vst2q_lane_f32(float32_t *a, float32x4x2_t b) { 1602 // CHECK-LABEL: test_vst2q_lane_f32 1603 vst2q_lane_f32(a, b, 3); 1604 // CHECK: st2 {{{ *v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}] 1605 } 1606 1607 void test_vst2q_lane_f64(float64_t *a, float64x2x2_t b) { 1608 // CHECK-LABEL: test_vst2q_lane_f64 1609 vst2q_lane_f64(a, b, 1); 1610 // CHECK: st2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 1611 } 1612 1613 void test_vst2q_lane_p8(poly8_t *a, poly8x16x2_t b) { 1614 // CHECK-LABEL: test_vst2q_lane_p8 1615 vst2q_lane_p8(a, b, 15); 1616 // CHECK: st2 {{{ *v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}] 1617 } 1618 1619 void test_vst2q_lane_p16(poly16_t *a, poly16x8x2_t b) { 1620 // CHECK-LABEL: test_vst2q_lane_p16 1621 vst2q_lane_p16(a, b, 7); 1622 // CHECK: st2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 1623 } 1624 1625 void test_vst2q_lane_p64(poly64_t *a, poly64x2x2_t b) { 1626 // CHECK-LABEL: test_vst2q_lane_p64 1627 vst2q_lane_p64(a, b, 1); 1628 // CHECK: st2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 1629 } 1630 1631 void test_vst2_lane_u8(uint8_t *a, uint8x8x2_t b) { 1632 // CHECK-LABEL: test_vst2_lane_u8 1633 vst2_lane_u8(a, b, 7); 1634 // CHECK: st2 {{{ *v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}] 1635 } 1636 1637 void test_vst2_lane_u16(uint16_t *a, uint16x4x2_t b) { 1638 // CHECK-LABEL: test_vst2_lane_u16 1639 vst2_lane_u16(a, b, 3); 1640 // CHECK: st2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 1641 } 1642 1643 void test_vst2_lane_u32(uint32_t *a, uint32x2x2_t b) { 1644 // CHECK-LABEL: test_vst2_lane_u32 1645 vst2_lane_u32(a, b, 1); 1646 // CHECK: st2 {{{ *v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}] 1647 } 1648 1649 void test_vst2_lane_u64(uint64_t *a, uint64x1x2_t b) { 1650 // CHECK-LABEL: test_vst2_lane_u64 1651 vst2_lane_u64(a, b, 0); 1652 // CHECK: st2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 1653 } 1654 1655 void test_vst2_lane_s8(int8_t *a, int8x8x2_t b) { 1656 // CHECK-LABEL: test_vst2_lane_s8 1657 vst2_lane_s8(a, b, 7); 1658 // CHECK: st2 {{{ *v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}] 1659 } 1660 1661 void test_vst2_lane_s16(int16_t *a, int16x4x2_t b) { 1662 // CHECK-LABEL: test_vst2_lane_s16 1663 vst2_lane_s16(a, b, 3); 1664 // CHECK: st2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 1665 } 1666 1667 void test_vst2_lane_s32(int32_t *a, int32x2x2_t b) { 1668 // CHECK-LABEL: test_vst2_lane_s32 1669 vst2_lane_s32(a, b, 1); 1670 // CHECK: st2 {{{ *v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}] 1671 } 1672 1673 void test_vst2_lane_s64(int64_t *a, int64x1x2_t b) { 1674 // CHECK-LABEL: test_vst2_lane_s64 1675 vst2_lane_s64(a, b, 0); 1676 // CHECK: st2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 1677 } 1678 1679 void test_vst2_lane_f16(float16_t *a, float16x4x2_t b) { 1680 // CHECK-LABEL: test_vst2_lane_f16 1681 vst2_lane_f16(a, b, 3); 1682 // CHECK: st2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 1683 } 1684 1685 void test_vst2_lane_f32(float32_t *a, float32x2x2_t b) { 1686 // CHECK-LABEL: test_vst2_lane_f32 1687 vst2_lane_f32(a, b, 1); 1688 // CHECK: st2 {{{ *v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}] 1689 } 1690 1691 void test_vst2_lane_f64(float64_t *a, float64x1x2_t b) { 1692 // CHECK-LABEL: test_vst2_lane_f64 1693 vst2_lane_f64(a, b, 0); 1694 // CHECK: st2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 1695 } 1696 1697 void test_vst2_lane_p8(poly8_t *a, poly8x8x2_t b) { 1698 // CHECK-LABEL: test_vst2_lane_p8 1699 vst2_lane_p8(a, b, 7); 1700 // CHECK: st2 {{{ *v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}] 1701 } 1702 1703 void test_vst2_lane_p16(poly16_t *a, poly16x4x2_t b) { 1704 // CHECK-LABEL: test_vst2_lane_p16 1705 vst2_lane_p16(a, b, 3); 1706 // CHECK: st2 {{{ *v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 1707 } 1708 1709 void test_vst2_lane_p64(poly64_t *a, poly64x1x2_t b) { 1710 // CHECK-LABEL: test_vst2_lane_p64 1711 vst2_lane_p64(a, b, 0); 1712 // CHECK: st2 {{{ *v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 1713 } 1714 1715 void test_vst3q_lane_u8(uint8_t *a, uint8x16x3_t b) { 1716 // CHECK-LABEL: test_vst3q_lane_u8 1717 vst3q_lane_u8(a, b, 15); 1718 // CHECK: st3 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}] 1719 } 1720 1721 void test_vst3q_lane_u16(uint16_t *a, uint16x8x3_t b) { 1722 // CHECK-LABEL: test_vst3q_lane_u16 1723 vst3q_lane_u16(a, b, 7); 1724 // CHECK: st3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 1725 } 1726 1727 void test_vst3q_lane_u32(uint32_t *a, uint32x4x3_t b) { 1728 // CHECK-LABEL: test_vst3q_lane_u32 1729 vst3q_lane_u32(a, b, 3); 1730 // CHECK: st3 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}] 1731 } 1732 1733 void test_vst3q_lane_u64(uint64_t *a, uint64x2x3_t b) { 1734 // CHECK-LABEL: test_vst3q_lane_u64 1735 vst3q_lane_u64(a, b, 1); 1736 // CHECK: st3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 1737 } 1738 1739 void test_vst3q_lane_s8(int8_t *a, int8x16x3_t b) { 1740 // CHECK-LABEL: test_vst3q_lane_s8 1741 vst3q_lane_s8(a, b, 15); 1742 // CHECK: st3 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}] 1743 } 1744 1745 void test_vst3q_lane_s16(int16_t *a, int16x8x3_t b) { 1746 // CHECK-LABEL: test_vst3q_lane_s16 1747 vst3q_lane_s16(a, b, 7); 1748 // CHECK: st3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 1749 } 1750 1751 void test_vst3q_lane_s32(int32_t *a, int32x4x3_t b) { 1752 // CHECK-LABEL: test_vst3q_lane_s32 1753 vst3q_lane_s32(a, b, 3); 1754 // CHECK: st3 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}] 1755 } 1756 1757 void test_vst3q_lane_s64(int64_t *a, int64x2x3_t b) { 1758 // CHECK-LABEL: test_vst3q_lane_s64 1759 vst3q_lane_s64(a, b, 1); 1760 // CHECK: st3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 1761 } 1762 1763 void test_vst3q_lane_f16(float16_t *a, float16x8x3_t b) { 1764 // CHECK-LABEL: test_vst3q_lane_f16 1765 vst3q_lane_f16(a, b, 7); 1766 // CHECK: st3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 1767 } 1768 1769 void test_vst3q_lane_f32(float32_t *a, float32x4x3_t b) { 1770 // CHECK-LABEL: test_vst3q_lane_f32 1771 vst3q_lane_f32(a, b, 3); 1772 // CHECK: st3 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}] 1773 } 1774 1775 void test_vst3q_lane_f64(float64_t *a, float64x2x3_t b) { 1776 // CHECK-LABEL: test_vst3q_lane_f64 1777 vst3q_lane_f64(a, b, 1); 1778 // CHECK: st3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 1779 } 1780 1781 void test_vst3q_lane_p8(poly8_t *a, poly8x16x3_t b) { 1782 // CHECK-LABEL: test_vst3q_lane_p8 1783 vst3q_lane_p8(a, b, 15); 1784 // CHECK: st3 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}] 1785 } 1786 1787 void test_vst3q_lane_p16(poly16_t *a, poly16x8x3_t b) { 1788 // CHECK-LABEL: test_vst3q_lane_p16 1789 vst3q_lane_p16(a, b, 7); 1790 // CHECK: st3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 1791 } 1792 1793 void test_vst3q_lane_p64(poly64_t *a, poly64x2x3_t b) { 1794 // CHECK-LABEL: test_vst3q_lane_p64 1795 vst3q_lane_p64(a, b, 1); 1796 // CHECK: st3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 1797 } 1798 1799 void test_vst3_lane_u8(uint8_t *a, uint8x8x3_t b) { 1800 // CHECK-LABEL: test_vst3_lane_u8 1801 vst3_lane_u8(a, b, 7); 1802 // CHECK: st3 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}] 1803 } 1804 1805 void test_vst3_lane_u16(uint16_t *a, uint16x4x3_t b) { 1806 // CHECK-LABEL: test_vst3_lane_u16 1807 vst3_lane_u16(a, b, 3); 1808 // CHECK: st3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 1809 } 1810 1811 void test_vst3_lane_u32(uint32_t *a, uint32x2x3_t b) { 1812 // CHECK-LABEL: test_vst3_lane_u32 1813 vst3_lane_u32(a, b, 1); 1814 // CHECK: st3 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}] 1815 } 1816 1817 void test_vst3_lane_u64(uint64_t *a, uint64x1x3_t b) { 1818 // CHECK-LABEL: test_vst3_lane_u64 1819 vst3_lane_u64(a, b, 0); 1820 // CHECK: st3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 1821 } 1822 1823 void test_vst3_lane_s8(int8_t *a, int8x8x3_t b) { 1824 // CHECK-LABEL: test_vst3_lane_s8 1825 vst3_lane_s8(a, b, 7); 1826 // CHECK: st3 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}] 1827 } 1828 1829 void test_vst3_lane_s16(int16_t *a, int16x4x3_t b) { 1830 // CHECK-LABEL: test_vst3_lane_s16 1831 vst3_lane_s16(a, b, 3); 1832 // CHECK: st3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 1833 } 1834 1835 void test_vst3_lane_s32(int32_t *a, int32x2x3_t b) { 1836 // CHECK-LABEL: test_vst3_lane_s32 1837 vst3_lane_s32(a, b, 1); 1838 // CHECK: st3 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}] 1839 } 1840 1841 void test_vst3_lane_s64(int64_t *a, int64x1x3_t b) { 1842 // CHECK-LABEL: test_vst3_lane_s64 1843 vst3_lane_s64(a, b, 0); 1844 // CHECK: st3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 1845 } 1846 1847 void test_vst3_lane_f16(float16_t *a, float16x4x3_t b) { 1848 // CHECK-LABEL: test_vst3_lane_f16 1849 vst3_lane_f16(a, b, 3); 1850 // CHECK: st3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 1851 } 1852 1853 void test_vst3_lane_f32(float32_t *a, float32x2x3_t b) { 1854 // CHECK-LABEL: test_vst3_lane_f32 1855 vst3_lane_f32(a, b, 1); 1856 // CHECK: st3 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}] 1857 } 1858 1859 void test_vst3_lane_f64(float64_t *a, float64x1x3_t b) { 1860 // CHECK-LABEL: test_vst3_lane_f64 1861 vst3_lane_f64(a, b, 0); 1862 // CHECK: st3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 1863 } 1864 1865 void test_vst3_lane_p8(poly8_t *a, poly8x8x3_t b) { 1866 // CHECK-LABEL: test_vst3_lane_p8 1867 vst3_lane_p8(a, b, 7); 1868 // CHECK: st3 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}] 1869 } 1870 1871 void test_vst3_lane_p16(poly16_t *a, poly16x4x3_t b) { 1872 // CHECK-LABEL: test_vst3_lane_p16 1873 vst3_lane_p16(a, b, 3); 1874 // CHECK: st3 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 1875 } 1876 1877 void test_vst3_lane_p64(poly64_t *a, poly64x1x3_t b) { 1878 // CHECK-LABEL: test_vst3_lane_p64 1879 vst3_lane_p64(a, b, 0); 1880 // CHECK: st3 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 1881 } 1882 1883 void test_vst4q_lane_u8(uint8_t *a, uint8x16x4_t b) { 1884 // CHECK-LABEL: test_vst4q_lane_u8 1885 vst4q_lane_u8(a, b, 15); 1886 // CHECK: st4 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}] 1887 } 1888 1889 void test_vst4q_lane_u16(uint16_t *a, uint16x8x4_t b) { 1890 // CHECK-LABEL: test_vst4q_lane_u16 1891 vst4q_lane_u16(a, b, 7); 1892 // CHECK: st4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 1893 } 1894 1895 void test_vst4q_lane_u32(uint32_t *a, uint32x4x4_t b) { 1896 // CHECK-LABEL: test_vst4q_lane_u32 1897 vst4q_lane_u32(a, b, 3); 1898 // CHECK: st4 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}] 1899 } 1900 1901 void test_vst4q_lane_u64(uint64_t *a, uint64x2x4_t b) { 1902 // CHECK-LABEL: test_vst4q_lane_u64 1903 vst4q_lane_u64(a, b, 1); 1904 // CHECK: st4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 1905 } 1906 1907 void test_vst4q_lane_s8(int8_t *a, int8x16x4_t b) { 1908 // CHECK-LABEL: test_vst4q_lane_s8 1909 vst4q_lane_s8(a, b, 15); 1910 // CHECK: st4 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}] 1911 } 1912 1913 void test_vst4q_lane_s16(int16_t *a, int16x8x4_t b) { 1914 // CHECK-LABEL: test_vst4q_lane_s16 1915 vst4q_lane_s16(a, b, 7); 1916 // CHECK: st4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 1917 } 1918 1919 void test_vst4q_lane_s32(int32_t *a, int32x4x4_t b) { 1920 // CHECK-LABEL: test_vst4q_lane_s32 1921 vst4q_lane_s32(a, b, 3); 1922 // CHECK: st4 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}] 1923 } 1924 1925 void test_vst4q_lane_s64(int64_t *a, int64x2x4_t b) { 1926 // CHECK-LABEL: test_vst4q_lane_s64 1927 vst4q_lane_s64(a, b, 1); 1928 // CHECK: st4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 1929 } 1930 1931 void test_vst4q_lane_f16(float16_t *a, float16x8x4_t b) { 1932 // CHECK-LABEL: test_vst4q_lane_f16 1933 vst4q_lane_f16(a, b, 7); 1934 // CHECK: st4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 1935 } 1936 1937 void test_vst4q_lane_f32(float32_t *a, float32x4x4_t b) { 1938 // CHECK-LABEL: test_vst4q_lane_f32 1939 vst4q_lane_f32(a, b, 3); 1940 // CHECK: st4 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[3], [{{x[0-9]+|sp}}] 1941 } 1942 1943 void test_vst4q_lane_f64(float64_t *a, float64x2x4_t b) { 1944 // CHECK-LABEL: test_vst4q_lane_f64 1945 vst4q_lane_f64(a, b, 1); 1946 // CHECK: st4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 1947 } 1948 1949 void test_vst4q_lane_p8(poly8_t *a, poly8x16x4_t b) { 1950 // CHECK-LABEL: test_vst4q_lane_p8 1951 vst4q_lane_p8(a, b, 15); 1952 // CHECK: st4 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[15], [{{x[0-9]+|sp}}] 1953 } 1954 1955 void test_vst4q_lane_p16(poly16_t *a, poly16x8x4_t b) { 1956 // CHECK-LABEL: test_vst4q_lane_p16 1957 vst4q_lane_p16(a, b, 7); 1958 // CHECK: st4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[7], [{{x[0-9]+|sp}}] 1959 } 1960 1961 void test_vst4q_lane_p64(poly64_t *a, poly64x2x4_t b) { 1962 // CHECK-LABEL: test_vst4q_lane_p64 1963 vst4q_lane_p64(a, b, 1); 1964 // CHECK: st4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[1], [{{x[0-9]+|sp}}] 1965 } 1966 1967 void test_vst4_lane_u8(uint8_t *a, uint8x8x4_t b) { 1968 // CHECK-LABEL: test_vst4_lane_u8 1969 vst4_lane_u8(a, b, 7); 1970 // CHECK: st4 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}] 1971 } 1972 1973 void test_vst4_lane_u16(uint16_t *a, uint16x4x4_t b) { 1974 // CHECK-LABEL: test_vst4_lane_u16 1975 vst4_lane_u16(a, b, 3); 1976 // CHECK: st4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 1977 } 1978 1979 void test_vst4_lane_u32(uint32_t *a, uint32x2x4_t b) { 1980 // CHECK-LABEL: test_vst4_lane_u32 1981 vst4_lane_u32(a, b, 1); 1982 // CHECK: st4 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}] 1983 } 1984 1985 void test_vst4_lane_u64(uint64_t *a, uint64x1x4_t b) { 1986 // CHECK-LABEL: test_vst4_lane_u64 1987 vst4_lane_u64(a, b, 0); 1988 // CHECK: st4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 1989 } 1990 1991 void test_vst4_lane_s8(int8_t *a, int8x8x4_t b) { 1992 // CHECK-LABEL: test_vst4_lane_s8 1993 vst4_lane_s8(a, b, 7); 1994 // CHECK: st4 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}] 1995 } 1996 1997 void test_vst4_lane_s16(int16_t *a, int16x4x4_t b) { 1998 // CHECK-LABEL: test_vst4_lane_s16 1999 vst4_lane_s16(a, b, 3); 2000 // CHECK: st4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 2001 } 2002 2003 void test_vst4_lane_s32(int32_t *a, int32x2x4_t b) { 2004 // CHECK-LABEL: test_vst4_lane_s32 2005 vst4_lane_s32(a, b, 1); 2006 // CHECK: st4 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}] 2007 } 2008 2009 void test_vst4_lane_s64(int64_t *a, int64x1x4_t b) { 2010 // CHECK-LABEL: test_vst4_lane_s64 2011 vst4_lane_s64(a, b, 0); 2012 // CHECK: st4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 2013 } 2014 2015 void test_vst4_lane_f16(float16_t *a, float16x4x4_t b) { 2016 // CHECK-LABEL: test_vst4_lane_f16 2017 vst4_lane_f16(a, b, 3); 2018 // CHECK: st4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 2019 } 2020 2021 void test_vst4_lane_f32(float32_t *a, float32x2x4_t b) { 2022 // CHECK-LABEL: test_vst4_lane_f32 2023 vst4_lane_f32(a, b, 1); 2024 // CHECK: st4 {{{ *v[0-9]+.s, v[0-9]+.s, v[0-9]+.s, v[0-9]+.s *}}}[1], [{{x[0-9]+|sp}}] 2025 } 2026 2027 void test_vst4_lane_f64(float64_t *a, float64x1x4_t b) { 2028 // CHECK-LABEL: test_vst4_lane_f64 2029 vst4_lane_f64(a, b, 0); 2030 // CHECK: st4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 2031 } 2032 2033 void test_vst4_lane_p8(poly8_t *a, poly8x8x4_t b) { 2034 // CHECK-LABEL: test_vst4_lane_p8 2035 vst4_lane_p8(a, b, 7); 2036 // CHECK: st4 {{{ *v[0-9]+.b, v[0-9]+.b, v[0-9]+.b, v[0-9]+.b *}}}[7], [{{x[0-9]+|sp}}] 2037 } 2038 2039 void test_vst4_lane_p16(poly16_t *a, poly16x4x4_t b) { 2040 // CHECK-LABEL: test_vst4_lane_p16 2041 vst4_lane_p16(a, b, 3); 2042 // CHECK: st4 {{{ *v[0-9]+.h, v[0-9]+.h, v[0-9]+.h, v[0-9]+.h *}}}[3], [{{x[0-9]+|sp}}] 2043 } 2044 2045 void test_vst4_lane_p64(poly64_t *a, poly64x1x4_t b) { 2046 // CHECK-LABEL: test_vst4_lane_p64 2047 vst4_lane_p64(a, b, 0); 2048 // CHECK: st4 {{{ *v[0-9]+.d, v[0-9]+.d, v[0-9]+.d, v[0-9]+.d *}}}[0], [{{x[0-9]+|sp}}] 2049 } 2050