1 // REQUIRES: aarch64-registered-target 2 // RUN: %clang_cc1 -triple aarch64-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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *a) { 110 // CHECK-LABEL: test_vld1_dup_u64 111 return vld1_dup_u64(a); 112 // CHECK: ld1r {v{{[0-9]+}}.1d}, [{{x[0-9]+|sp}}] 113 } 114 115 int8x8_t test_vld1_dup_s8(int8_t const *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 const *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 const *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 const *a) { 134 // CHECK-LABEL: test_vld1_dup_s64 135 return vld1_dup_s64(a); 136 // CHECK: ld1r {v{{[0-9]+}}.1d}, [{{x[0-9]+|sp}}] 137 } 138 139 float16x4_t test_vld1_dup_f16(float16_t const *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 const *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 const *a) { 152 // CHECK-LABEL: test_vld1_dup_f64 153 return vld1_dup_f64(a); 154 // CHECK: ld1r {v{{[0-9]+}}.1d}, [{{x[0-9]+|sp}}] 155 } 156 157 poly8x8_t test_vld1_dup_p8(poly8_t const *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 const *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 const *a) { 170 // CHECK-LABEL: test_vld1_dup_p64 171 return vld1_dup_p64(a); 172 // CHECK: ld1r {v{{[0-9]+}}.1d}, [{{x[0-9]+|sp}}] 173 } 174 175 uint8x16x2_t test_vld2q_dup_u8(uint8_t const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *a) { 278 // CHECK-LABEL: test_vld2_dup_u64 279 return vld2_dup_u64(a); 280 // CHECK: ld1 {v{{[0-9]+}}.1d, v{{[0-9]+}}.1d}, [{{x[0-9]+|sp}}] 281 } 282 283 int8x8x2_t test_vld2_dup_s8(int8_t const *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 const *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 const *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 const *a) { 302 // CHECK-LABEL: test_vld2_dup_s64 303 return vld2_dup_s64(a); 304 // CHECK: ld1 {v{{[0-9]+}}.1d, v{{[0-9]+}}.1d}, [{{x[0-9]+|sp}}] 305 } 306 307 float16x4x2_t test_vld2_dup_f16(float16_t const *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 const *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 const *a) { 320 // CHECK-LABEL: test_vld2_dup_f64 321 return vld2_dup_f64(a); 322 // CHECK: ld1 {v{{[0-9]+}}.1d, v{{[0-9]+}}.1d}, [{{x[0-9]+|sp}}] 323 } 324 325 poly8x8x2_t test_vld2_dup_p8(poly8_t const *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 const *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 const *a) { 338 // CHECK-LABEL: test_vld2_dup_p64 339 return vld2_dup_p64(a); 340 // CHECK: ld1 {v{{[0-9]+}}.1d, v{{[0-9]+}}.1d}, [{{x[0-9]+|sp}}] 341 } 342 343 uint8x16x3_t test_vld3q_dup_u8(uint8_t const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *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 const *a) { 463 // CHECK-LABEL: test_vld3_dup_u64 464 return vld3_dup_u64(a); 465 // CHECK: ld1 {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 const *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 const *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 const *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 const *a) { 491 // CHECK-LABEL: test_vld3_dup_s64 492 return vld3_dup_s64(a); 493 // CHECK: ld1 {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 const *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 const *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 const *a) { 512 // CHECK-LABEL: test_vld3_dup_f64 513 return vld3_dup_f64(a); 514 // CHECK: ld1 {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 const *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 const *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 const *a) { 533 // CHECK-LABEL: test_vld3_dup_p64 534 return vld3_dup_p64(a); 535 // CHECK: ld1 {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 const *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, 543 // v{{[0-9]+}}.16b}, [{{x[0-9]+|sp}}] 544 } 545 546 uint16x8x4_t test_vld4q_dup_u16(uint16_t const *a) { 547 // CHECK-LABEL: test_vld4q_dup_u16 548 return vld4q_dup_u16(a); 549 // CHECK: ld4r {v{{[0-9]+}}.8h, v{{[0-9]+}}.8h, v{{[0-9]+}}.8h, 550 // v{{[0-9]+}}.8h}, [{{x[0-9]+|sp}}] 551 } 552 553 uint32x4x4_t test_vld4q_dup_u32(uint32_t const *a) { 554 // CHECK-LABEL: test_vld4q_dup_u32 555 return vld4q_dup_u32(a); 556 // CHECK: ld4r {v{{[0-9]+}}.4s, v{{[0-9]+}}.4s, v{{[0-9]+}}.4s, 557 // v{{[0-9]+}}.4s}, [{{x[0-9]+|sp}}] 558 } 559 560 uint64x2x4_t test_vld4q_dup_u64(uint64_t const *a) { 561 // CHECK-LABEL: test_vld4q_dup_u64 562 return vld4q_dup_u64(a); 563 // CHECK: ld4r {v{{[0-9]+}}.2d, v{{[0-9]+}}.2d, v{{[0-9]+}}.2d, 564 // v{{[0-9]+}}.2d}, [{{x[0-9]+|sp}}] 565 } 566 567 int8x16x4_t test_vld4q_dup_s8(int8_t const *a) { 568 // CHECK-LABEL: test_vld4q_dup_s8 569 return vld4q_dup_s8(a); 570 // CHECK: ld4r {v{{[0-9]+}}.16b, v{{[0-9]+}}.16b, v{{[0-9]+}}.16b, 571 // v{{[0-9]+}}.16b}, [{{x[0-9]+|sp}}] 572 } 573 574 int16x8x4_t test_vld4q_dup_s16(int16_t const *a) { 575 // CHECK-LABEL: test_vld4q_dup_s16 576 return vld4q_dup_s16(a); 577 // CHECK: ld4r {v{{[0-9]+}}.8h, v{{[0-9]+}}.8h, v{{[0-9]+}}.8h, 578 // v{{[0-9]+}}.8h}, [{{x[0-9]+|sp}}] 579 } 580 581 int32x4x4_t test_vld4q_dup_s32(int32_t const *a) { 582 // CHECK-LABEL: test_vld4q_dup_s32 583 return vld4q_dup_s32(a); 584 // CHECK: ld4r {v{{[0-9]+}}.4s, v{{[0-9]+}}.4s, v{{[0-9]+}}.4s, 585 // v{{[0-9]+}}.4s}, [{{x[0-9]+|sp}}] 586 } 587 588 int64x2x4_t test_vld4q_dup_s64(int64_t const *a) { 589 // CHECK-LABEL: test_vld4q_dup_s64 590 return vld4q_dup_s64(a); 591 // CHECK: ld4r {v{{[0-9]+}}.2d, v{{[0-9]+}}.2d, v{{[0-9]+}}.2d, 592 // v{{[0-9]+}}.2d}, [{{x[0-9]+|sp}}] 593 } 594 595 float16x8x4_t test_vld4q_dup_f16(float16_t const *a) { 596 // CHECK-LABEL: test_vld4q_dup_f16 597 return vld4q_dup_f16(a); 598 // CHECK: ld4r {v{{[0-9]+}}.8h, v{{[0-9]+}}.8h, v{{[0-9]+}}.8h, 599 // v{{[0-9]+}}.8h}, [{{x[0-9]+|sp}}] 600 } 601 602 float32x4x4_t test_vld4q_dup_f32(float32_t const *a) { 603 // CHECK-LABEL: test_vld4q_dup_f32 604 return vld4q_dup_f32(a); 605 // CHECK: ld4r {v{{[0-9]+}}.4s, v{{[0-9]+}}.4s, v{{[0-9]+}}.4s, 606 // v{{[0-9]+}}.4s}, [{{x[0-9]+|sp}}] 607 } 608 609 float64x2x4_t test_vld4q_dup_f64(float64_t const *a) { 610 // CHECK-LABEL: test_vld4q_dup_f64 611 return vld4q_dup_f64(a); 612 // CHECK: ld4r {v{{[0-9]+}}.2d, v{{[0-9]+}}.2d, v{{[0-9]+}}.2d, 613 // v{{[0-9]+}}.4s}, [{{x[0-9]+|sp}}] 614 } 615 616 poly8x16x4_t test_vld4q_dup_p8(poly8_t const *a) { 617 // CHECK-LABEL: test_vld4q_dup_p8 618 return vld4q_dup_p8(a); 619 // CHECK: ld4r {v{{[0-9]+}}.16b, v{{[0-9]+}}.16b, v{{[0-9]+}}.16b, 620 // v{{[0-9]+}}.16b}, [{{x[0-9]+|sp}}] 621 } 622 623 poly16x8x4_t test_vld4q_dup_p16(poly16_t const *a) { 624 // CHECK-LABEL: test_vld4q_dup_p16 625 return vld4q_dup_p16(a); 626 // CHECK: ld4r {v{{[0-9]+}}.8h, v{{[0-9]+}}.8h, v{{[0-9]+}}.8h, 627 // v{{[0-9]+}}.8h}, [{{x[0-9]+|sp}}] 628 } 629 630 poly64x2x4_t test_vld4q_dup_p64(poly64_t const *a) { 631 // CHECK-LABEL: test_vld4q_dup_p64 632 return vld4q_dup_p64(a); 633 // CHECK: ld4r {v{{[0-9]+}}.2d, v{{[0-9]+}}.2d, v{{[0-9]+}}.2d, 634 // v{{[0-9]+}}.2d}, [{{x[0-9]+|sp}}] 635 } 636 637 uint8x8x4_t test_vld4_dup_u8(uint8_t const *a) { 638 // CHECK-LABEL: test_vld4_dup_u8 639 return vld4_dup_u8(a); 640 // CHECK: ld4r {v{{[0-9]+}}.8b, v{{[0-9]+}}.8b, v{{[0-9]+}}.8b, 641 // v{{[0-9]+}}.8b}, [{{x[0-9]+|sp}}] 642 } 643 644 uint16x4x4_t test_vld4_dup_u16(uint16_t const *a) { 645 // CHECK-LABEL: test_vld4_dup_u16 646 return vld4_dup_u16(a); 647 // CHECK: ld4r {v{{[0-9]+}}.4h, v{{[0-9]+}}.4h, v{{[0-9]+}}.4h, 648 // v{{[0-9]+}}.4h}, [{{x[0-9]+|sp}}] 649 } 650 651 uint32x2x4_t test_vld4_dup_u32(uint32_t const *a) { 652 // CHECK-LABEL: test_vld4_dup_u32 653 return vld4_dup_u32(a); 654 // CHECK: ld4r {v{{[0-9]+}}.2s, v{{[0-9]+}}.2s, v{{[0-9]+}}.2s, 655 // v{{[0-9]+}}.2s}, [{{x[0-9]+|sp}}] 656 } 657 658 uint64x1x4_t test_vld4_dup_u64(uint64_t const *a) { 659 // CHECK-LABEL: test_vld4_dup_u64 660 return vld4_dup_u64(a); 661 // CHECK: ld1 {v{{[0-9]+}}.1d, v{{[0-9]+}}.1d, v{{[0-9]+}}.1d, 662 // v{{[0-9]+}}.1d}, [{{x[0-9]+|sp}}] 663 } 664 665 int8x8x4_t test_vld4_dup_s8(int8_t const *a) { 666 // CHECK-LABEL: test_vld4_dup_s8 667 return vld4_dup_s8(a); 668 // CHECK: ld4r {v{{[0-9]+}}.8b, v{{[0-9]+}}.8b, v{{[0-9]+}}.8b, 669 // v{{[0-9]+}}.8b}, [{{x[0-9]+|sp}}] 670 } 671 672 int16x4x4_t test_vld4_dup_s16(int16_t const *a) { 673 // CHECK-LABEL: test_vld4_dup_s16 674 return vld4_dup_s16(a); 675 // CHECK: ld4r {v{{[0-9]+}}.4h, v{{[0-9]+}}.4h, v{{[0-9]+}}.4h, 676 // v{{[0-9]+}}.4h}, [{{x[0-9]+|sp}}] 677 } 678 679 int32x2x4_t test_vld4_dup_s32(int32_t const *a) { 680 // CHECK-LABEL: test_vld4_dup_s32 681 return vld4_dup_s32(a); 682 // CHECK: ld4r {v{{[0-9]+}}.2s, v{{[0-9]+}}.2s, v{{[0-9]+}}.2s, 683 // v{{[0-9]+}}.2s}, [{{x[0-9]+|sp}}] 684 } 685 686 int64x1x4_t test_vld4_dup_s64(int64_t const *a) { 687 // CHECK-LABEL: test_vld4_dup_s64 688 return vld4_dup_s64(a); 689 // CHECK: ld1 {v{{[0-9]+}}.1d, v{{[0-9]+}}.1d, v{{[0-9]+}}.1d, 690 // v{{[0-9]+}}.1d}, [{{x[0-9]+|sp}}] 691 } 692 693 float16x4x4_t test_vld4_dup_f16(float16_t const *a) { 694 // CHECK-LABEL: test_vld4_dup_f16 695 return vld4_dup_f16(a); 696 // CHECK: ld4r {v{{[0-9]+}}.4h, v{{[0-9]+}}.4h, v{{[0-9]+}}.4h, 697 // v{{[0-9]+}}.4h}, [{{x[0-9]+|sp}}] 698 } 699 700 float32x2x4_t test_vld4_dup_f32(float32_t const *a) { 701 // CHECK-LABEL: test_vld4_dup_f32 702 return vld4_dup_f32(a); 703 // CHECK: ld4r {v{{[0-9]+}}.2s, v{{[0-9]+}}.2s, v{{[0-9]+}}.2s, 704 // v{{[0-9]+}}.2s}, [{{x[0-9]+|sp}}] 705 } 706 707 float64x1x4_t test_vld4_dup_f64(float64_t const *a) { 708 // CHECK-LABEL: test_vld4_dup_f64 709 return vld4_dup_f64(a); 710 // CHECK: ld1 {v{{[0-9]+}}.1d, v{{[0-9]+}}.1d, v{{[0-9]+}}.1d, 711 // v{{[0-9]+}}.1d}, [{{x[0-9]+|sp}}] 712 } 713 714 poly8x8x4_t test_vld4_dup_p8(poly8_t const *a) { 715 // CHECK-LABEL: test_vld4_dup_p8 716 return vld4_dup_p8(a); 717 // CHECK: ld4r {v{{[0-9]+}}.8b, v{{[0-9]+}}.8b, v{{[0-9]+}}.8b, 718 // v{{[0-9]+}}.8b}, [{{x[0-9]+|sp}}] 719 } 720 721 poly16x4x4_t test_vld4_dup_p16(poly16_t const *a) { 722 // CHECK-LABEL: test_vld4_dup_p16 723 return vld4_dup_p16(a); 724 // CHECK: ld4r {v{{[0-9]+}}.4h, v{{[0-9]+}}.4h, v{{[0-9]+}}.4h, 725 // v{{[0-9]+}}.4h}, [{{x[0-9]+|sp}}] 726 } 727 728 poly64x1x4_t test_vld4_dup_p64(poly64_t const *a) { 729 // CHECK-LABEL: test_vld4_dup_p64 730 return vld4_dup_p64(a); 731 // CHECK: ld1 {v{{[0-9]+}}.1d, v{{[0-9]+}}.1d, v{{[0-9]+}}.1d, 732 // v{{[0-9]+}}.1d}, [{{x[0-9]+|sp}}] 733 } 734 735 uint8x16_t test_vld1q_lane_u8(uint8_t const *a, uint8x16_t b) { 736 // CHECK-LABEL: test_vld1q_lane_u8 737 return vld1q_lane_u8(a, b, 15); 738 // CHECK: ld1 {v{{[0-9]+}}.b}[15], [{{x[0-9]+|sp}}] 739 } 740 741 uint16x8_t test_vld1q_lane_u16(uint16_t const *a, uint16x8_t b) { 742 // CHECK-LABEL: test_vld1q_lane_u16 743 return vld1q_lane_u16(a, b, 7); 744 // CHECK: ld1 {v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 745 } 746 747 uint32x4_t test_vld1q_lane_u32(uint32_t const *a, uint32x4_t b) { 748 // CHECK-LABEL: test_vld1q_lane_u32 749 return vld1q_lane_u32(a, b, 3); 750 // CHECK: ld1 {v{{[0-9]+}}.s}[3], [{{x[0-9]+|sp}}] 751 } 752 753 uint64x2_t test_vld1q_lane_u64(uint64_t const *a, uint64x2_t b) { 754 // CHECK-LABEL: test_vld1q_lane_u64 755 return vld1q_lane_u64(a, b, 1); 756 // CHECK: ld1 {v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 757 } 758 759 int8x16_t test_vld1q_lane_s8(int8_t const *a, int8x16_t b) { 760 // CHECK-LABEL: test_vld1q_lane_s8 761 return vld1q_lane_s8(a, b, 15); 762 // CHECK: ld1 {v{{[0-9]+}}.b}[15], [{{x[0-9]+|sp}}] 763 } 764 765 int16x8_t test_vld1q_lane_s16(int16_t const *a, int16x8_t b) { 766 // CHECK-LABEL: test_vld1q_lane_s16 767 return vld1q_lane_s16(a, b, 7); 768 // CHECK: ld1 {v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 769 } 770 771 int32x4_t test_vld1q_lane_s32(int32_t const *a, int32x4_t b) { 772 // CHECK-LABEL: test_vld1q_lane_s32 773 return vld1q_lane_s32(a, b, 3); 774 // CHECK: ld1 {v{{[0-9]+}}.s}[3], [{{x[0-9]+|sp}}] 775 } 776 777 int64x2_t test_vld1q_lane_s64(int64_t const *a, int64x2_t b) { 778 // CHECK-LABEL: test_vld1q_lane_s64 779 return vld1q_lane_s64(a, b, 1); 780 // CHECK: ld1 {v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 781 } 782 783 float16x8_t test_vld1q_lane_f16(float16_t const *a, float16x8_t b) { 784 // CHECK-LABEL: test_vld1q_lane_f16 785 return vld1q_lane_f16(a, b, 7); 786 // CHECK: ld1 {v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 787 } 788 789 float32x4_t test_vld1q_lane_f32(float32_t const *a, float32x4_t b) { 790 // CHECK-LABEL: test_vld1q_lane_f32 791 return vld1q_lane_f32(a, b, 3); 792 // CHECK: ld1 {v{{[0-9]+}}.s}[3], [{{x[0-9]+|sp}}] 793 } 794 795 float64x2_t test_vld1q_lane_f64(float64_t const *a, float64x2_t b) { 796 // CHECK-LABEL: test_vld1q_lane_f64 797 return vld1q_lane_f64(a, b, 1); 798 // CHECK: ld1 {v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 799 } 800 801 poly8x16_t test_vld1q_lane_p8(poly8_t const *a, poly8x16_t b) { 802 // CHECK-LABEL: test_vld1q_lane_p8 803 return vld1q_lane_p8(a, b, 15); 804 // CHECK: ld1 {v{{[0-9]+}}.b}[15], [{{x[0-9]+|sp}}] 805 } 806 807 poly16x8_t test_vld1q_lane_p16(poly16_t const *a, poly16x8_t b) { 808 // CHECK-LABEL: test_vld1q_lane_p16 809 return vld1q_lane_p16(a, b, 7); 810 // CHECK: ld1 {v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 811 } 812 813 poly64x2_t test_vld1q_lane_p64(poly64_t const *a, poly64x2_t b) { 814 // CHECK-LABEL: test_vld1q_lane_p64 815 return vld1q_lane_p64(a, b, 1); 816 // CHECK: ld1 {v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 817 } 818 819 uint8x8_t test_vld1_lane_u8(uint8_t const *a, uint8x8_t b) { 820 // CHECK-LABEL: test_vld1_lane_u8 821 return vld1_lane_u8(a, b, 7); 822 // CHECK: ld1 {v{{[0-9]+}}.b}[7], [{{x[0-9]+|sp}}] 823 } 824 825 uint16x4_t test_vld1_lane_u16(uint16_t const *a, uint16x4_t b) { 826 // CHECK-LABEL: test_vld1_lane_u16 827 return vld1_lane_u16(a, b, 3); 828 // CHECK: ld1 {v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 829 } 830 831 uint32x2_t test_vld1_lane_u32(uint32_t const *a, uint32x2_t b) { 832 // CHECK-LABEL: test_vld1_lane_u32 833 return vld1_lane_u32(a, b, 1); 834 // CHECK: ld1 {v{{[0-9]+}}.s}[1], [{{x[0-9]+|sp}}] 835 } 836 837 uint64x1_t test_vld1_lane_u64(uint64_t const *a, uint64x1_t b) { 838 // CHECK-LABEL: test_vld1_lane_u64 839 return vld1_lane_u64(a, b, 0); 840 // CHECK: ld1r {v{{[0-9]+}}.1d}, [{{x[0-9]+|sp}}] 841 } 842 843 int8x8_t test_vld1_lane_s8(int8_t const *a, int8x8_t b) { 844 // CHECK-LABEL: test_vld1_lane_s8 845 return vld1_lane_s8(a, b, 7); 846 // CHECK: ld1 {v{{[0-9]+}}.b}[7], [{{x[0-9]+|sp}}] 847 } 848 849 int16x4_t test_vld1_lane_s16(int16_t const *a, int16x4_t b) { 850 // CHECK-LABEL: test_vld1_lane_s16 851 return vld1_lane_s16(a, b, 3); 852 // CHECK: ld1 {v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 853 } 854 855 int32x2_t test_vld1_lane_s32(int32_t const *a, int32x2_t b) { 856 // CHECK-LABEL: test_vld1_lane_s32 857 return vld1_lane_s32(a, b, 1); 858 // CHECK: ld1 {v{{[0-9]+}}.s}[1], [{{x[0-9]+|sp}}] 859 } 860 861 int64x1_t test_vld1_lane_s64(int64_t const *a, int64x1_t b) { 862 // CHECK-LABEL: test_vld1_lane_s64 863 return vld1_lane_s64(a, b, 0); 864 // CHECK: ld1r {v{{[0-9]+}}.1d}, [{{x[0-9]+|sp}}] 865 } 866 867 float16x4_t test_vld1_lane_f16(float16_t const *a, float16x4_t b) { 868 // CHECK-LABEL: test_vld1_lane_f16 869 return vld1_lane_f16(a, b, 3); 870 // CHECK: ld1 {v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 871 } 872 873 float32x2_t test_vld1_lane_f32(float32_t const *a, float32x2_t b) { 874 // CHECK-LABEL: test_vld1_lane_f32 875 return vld1_lane_f32(a, b, 1); 876 // CHECK: ld1 {v{{[0-9]+}}.s}[1], [{{x[0-9]+|sp}}] 877 } 878 879 float64x1_t test_vld1_lane_f64(float64_t const *a, float64x1_t b) { 880 // CHECK-LABEL: test_vld1_lane_f64 881 return vld1_lane_f64(a, b, 0); 882 // CHECK: ld1r {v{{[0-9]+}}.1d}, [{{x[0-9]+|sp}}] 883 } 884 885 poly8x8_t test_vld1_lane_p8(poly8_t const *a, poly8x8_t b) { 886 // CHECK-LABEL: test_vld1_lane_p8 887 return vld1_lane_p8(a, b, 7); 888 // CHECK: ld1 {v{{[0-9]+}}.b}[7], [{{x[0-9]+|sp}}] 889 } 890 891 poly16x4_t test_vld1_lane_p16(poly16_t const *a, poly16x4_t b) { 892 // CHECK-LABEL: test_vld1_lane_p16 893 return vld1_lane_p16(a, b, 3); 894 // CHECK: ld1 {v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 895 } 896 897 poly64x1_t test_vld1_lane_p64(poly64_t const *a, poly64x1_t b) { 898 // CHECK-LABEL: test_vld1_lane_p64 899 return vld1_lane_p64(a, b, 0); 900 // CHECK: ld1r {v{{[0-9]+}}.1d}, [{{x[0-9]+|sp}}] 901 } 902 903 uint16x8x2_t test_vld2q_lane_u16(uint16_t const *a, uint16x8x2_t b) { 904 // CHECK-LABEL: test_vld2q_lane_u16 905 return vld2q_lane_u16(a, b, 7); 906 // CHECK: ld2 {v{{[0-9]+}}.h, v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 907 } 908 909 uint32x4x2_t test_vld2q_lane_u32(uint32_t const *a, uint32x4x2_t b) { 910 // CHECK-LABEL: test_vld2q_lane_u32 911 return vld2q_lane_u32(a, b, 3); 912 // CHECK: ld2 {v{{[0-9]+}}.s, v{{[0-9]+}}.s}[3], [{{x[0-9]+|sp}}] 913 } 914 915 uint64x2x2_t test_vld2q_lane_u64(uint64_t const *a, uint64x2x2_t b) { 916 // CHECK-LABEL: test_vld2q_lane_u64 917 return vld2q_lane_u64(a, b, 1); 918 // CHECK: ld2 {v{{[0-9]+}}.d, v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 919 } 920 921 int16x8x2_t test_vld2q_lane_s16(int16_t const *a, int16x8x2_t b) { 922 // CHECK-LABEL: test_vld2q_lane_s16 923 return vld2q_lane_s16(a, b, 7); 924 // CHECK: ld2 {v{{[0-9]+}}.h, v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 925 } 926 927 int32x4x2_t test_vld2q_lane_s32(int32_t const *a, int32x4x2_t b) { 928 // CHECK-LABEL: test_vld2q_lane_s32 929 return vld2q_lane_s32(a, b, 3); 930 // CHECK: ld2 {v{{[0-9]+}}.s, v{{[0-9]+}}.s}[3], [{{x[0-9]+|sp}}] 931 } 932 933 int64x2x2_t test_vld2q_lane_s64(int64_t const *a, int64x2x2_t b) { 934 // CHECK-LABEL: test_vld2q_lane_s64 935 return vld2q_lane_s64(a, b, 1); 936 // CHECK: ld2 {v{{[0-9]+}}.d, v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 937 } 938 939 float16x8x2_t test_vld2q_lane_f16(float16_t const *a, float16x8x2_t b) { 940 // CHECK-LABEL: test_vld2q_lane_f16 941 return vld2q_lane_f16(a, b, 7); 942 // CHECK: ld2 {v{{[0-9]+}}.h, v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 943 } 944 945 float32x4x2_t test_vld2q_lane_f32(float32_t const *a, float32x4x2_t b) { 946 // CHECK-LABEL: test_vld2q_lane_f32 947 return vld2q_lane_f32(a, b, 3); 948 // CHECK: ld2 {v{{[0-9]+}}.s, v{{[0-9]+}}.s}[3], [{{x[0-9]+|sp}}] 949 } 950 951 float64x2x2_t test_vld2q_lane_f64(float64_t const *a, float64x2x2_t b) { 952 // CHECK-LABEL: test_vld2q_lane_f64 953 return vld2q_lane_f64(a, b, 1); 954 // CHECK: ld2 {v{{[0-9]+}}.d, v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 955 } 956 957 poly16x8x2_t test_vld2q_lane_p16(poly16_t const *a, poly16x8x2_t b) { 958 // CHECK-LABEL: test_vld2q_lane_p16 959 return vld2q_lane_p16(a, b, 7); 960 // CHECK: ld2 {v{{[0-9]+}}.h, v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 961 } 962 963 poly64x2x2_t test_vld2q_lane_p64(poly64_t const *a, poly64x2x2_t b) { 964 // CHECK-LABEL: test_vld2q_lane_p64 965 return vld2q_lane_p64(a, b, 1); 966 // CHECK: ld2 {v{{[0-9]+}}.d, v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 967 } 968 969 uint8x8x2_t test_vld2_lane_u8(uint8_t const *a, uint8x8x2_t b) { 970 // CHECK-LABEL: test_vld2_lane_u8 971 return vld2_lane_u8(a, b, 7); 972 // CHECK: ld2 {v{{[0-9]+}}.b, v{{[0-9]+}}.b}[7], [{{x[0-9]+|sp}}] 973 } 974 975 uint16x4x2_t test_vld2_lane_u16(uint16_t const *a, uint16x4x2_t b) { 976 // CHECK-LABEL: test_vld2_lane_u16 977 return vld2_lane_u16(a, b, 3); 978 // CHECK: ld2 {v{{[0-9]+}}.h, v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 979 } 980 981 uint32x2x2_t test_vld2_lane_u32(uint32_t const *a, uint32x2x2_t b) { 982 // CHECK-LABEL: test_vld2_lane_u32 983 return vld2_lane_u32(a, b, 1); 984 // CHECK: ld2 {v{{[0-9]+}}.s, v{{[0-9]+}}.s}[1], [{{x[0-9]+|sp}}] 985 } 986 987 uint64x1x2_t test_vld2_lane_u64(uint64_t const *a, uint64x1x2_t b) { 988 // CHECK-LABEL: test_vld2_lane_u64 989 return vld2_lane_u64(a, b, 0); 990 // CHECK: ld2 {v{{[0-9]+}}.d, v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 991 } 992 993 int8x8x2_t test_vld2_lane_s8(int8_t const *a, int8x8x2_t b) { 994 // CHECK-LABEL: test_vld2_lane_s8 995 return vld2_lane_s8(a, b, 7); 996 // CHECK: ld2 {v{{[0-9]+}}.b, v{{[0-9]+}}.b}[7], [{{x[0-9]+|sp}}] 997 } 998 999 int16x4x2_t test_vld2_lane_s16(int16_t const *a, int16x4x2_t b) { 1000 // CHECK-LABEL: test_vld2_lane_s16 1001 return vld2_lane_s16(a, b, 3); 1002 // CHECK: ld2 {v{{[0-9]+}}.h, v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1003 } 1004 1005 int32x2x2_t test_vld2_lane_s32(int32_t const *a, int32x2x2_t b) { 1006 // CHECK-LABEL: test_vld2_lane_s32 1007 return vld2_lane_s32(a, b, 1); 1008 // CHECK: ld2 {v{{[0-9]+}}.s, v{{[0-9]+}}.s}[1], [{{x[0-9]+|sp}}] 1009 } 1010 1011 int64x1x2_t test_vld2_lane_s64(int64_t const *a, int64x1x2_t b) { 1012 // CHECK-LABEL: test_vld2_lane_s64 1013 return vld2_lane_s64(a, b, 0); 1014 // CHECK: ld2 {v{{[0-9]+}}.d, v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 1015 } 1016 1017 float16x4x2_t test_vld2_lane_f16(float16_t const *a, float16x4x2_t b) { 1018 // CHECK-LABEL: test_vld2_lane_f16 1019 return vld2_lane_f16(a, b, 3); 1020 // CHECK: ld2 {v{{[0-9]+}}.h, v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1021 } 1022 1023 float32x2x2_t test_vld2_lane_f32(float32_t const *a, float32x2x2_t b) { 1024 // CHECK-LABEL: test_vld2_lane_f32 1025 return vld2_lane_f32(a, b, 1); 1026 // CHECK: ld2 {v{{[0-9]+}}.s, v{{[0-9]+}}.s}[1], [{{x[0-9]+|sp}}] 1027 } 1028 1029 float64x1x2_t test_vld2_lane_f64(float64_t const *a, float64x1x2_t b) { 1030 // CHECK-LABEL: test_vld2_lane_f64 1031 return vld2_lane_f64(a, b, 0); 1032 // CHECK: ld2 {v{{[0-9]+}}.d, v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 1033 } 1034 1035 poly8x8x2_t test_vld2_lane_p8(poly8_t const *a, poly8x8x2_t b) { 1036 // CHECK-LABEL: test_vld2_lane_p8 1037 return vld2_lane_p8(a, b, 7); 1038 // CHECK: ld2 {v{{[0-9]+}}.b, v{{[0-9]+}}.b}[7], [{{x[0-9]+|sp}}] 1039 } 1040 1041 poly16x4x2_t test_vld2_lane_p16(poly16_t const *a, poly16x4x2_t b) { 1042 // CHECK-LABEL: test_vld2_lane_p16 1043 return vld2_lane_p16(a, b, 3); 1044 // CHECK: ld2 {v{{[0-9]+}}.h, v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1045 } 1046 1047 poly64x1x2_t test_vld2_lane_p64(poly64_t const *a, poly64x1x2_t b) { 1048 // CHECK-LABEL: test_vld2_lane_p64 1049 return vld2_lane_p64(a, b, 0); 1050 // CHECK: ld2 {v{{[0-9]+}}.d, v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 1051 } 1052 1053 uint16x8x3_t test_vld3q_lane_u16(uint16_t const *a, uint16x8x3_t b) { 1054 // CHECK-LABEL: test_vld3q_lane_u16 1055 return vld3q_lane_u16(a, b, 7); 1056 // CHECK: ld3 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 1057 } 1058 1059 uint32x4x3_t test_vld3q_lane_u32(uint32_t const *a, uint32x4x3_t b) { 1060 // CHECK-LABEL: test_vld3q_lane_u32 1061 return vld3q_lane_u32(a, b, 3); 1062 // CHECK: ld3 {v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s}[3], [{{x[0-9]+|sp}}] 1063 } 1064 1065 uint64x2x3_t test_vld3q_lane_u64(uint64_t const *a, uint64x2x3_t b) { 1066 // CHECK-LABEL: test_vld3q_lane_u64 1067 return vld3q_lane_u64(a, b, 1); 1068 // CHECK: ld3 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 1069 } 1070 1071 int16x8x3_t test_vld3q_lane_s16(int16_t const *a, int16x8x3_t b) { 1072 // CHECK-LABEL: test_vld3q_lane_s16 1073 return vld3q_lane_s16(a, b, 7); 1074 // CHECK: ld3 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 1075 } 1076 1077 int32x4x3_t test_vld3q_lane_s32(int32_t const *a, int32x4x3_t b) { 1078 // CHECK-LABEL: test_vld3q_lane_s32 1079 return vld3q_lane_s32(a, b, 3); 1080 // CHECK: ld3 {v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s}[3], [{{x[0-9]+|sp}}] 1081 } 1082 1083 int64x2x3_t test_vld3q_lane_s64(int64_t const *a, int64x2x3_t b) { 1084 // CHECK-LABEL: test_vld3q_lane_s64 1085 return vld3q_lane_s64(a, b, 1); 1086 // CHECK: ld3 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 1087 } 1088 1089 float16x8x3_t test_vld3q_lane_f16(float16_t const *a, float16x8x3_t b) { 1090 // CHECK-LABEL: test_vld3q_lane_f16 1091 return vld3q_lane_f16(a, b, 7); 1092 // CHECK: ld3 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 1093 } 1094 1095 float32x4x3_t test_vld3q_lane_f32(float32_t const *a, float32x4x3_t b) { 1096 // CHECK-LABEL: test_vld3q_lane_f32 1097 return vld3q_lane_f32(a, b, 3); 1098 // CHECK: ld3 {v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s}[3], [{{x[0-9]+|sp}}] 1099 } 1100 1101 float64x2x3_t test_vld3q_lane_f64(float64_t const *a, float64x2x3_t b) { 1102 // CHECK-LABEL: test_vld3q_lane_f64 1103 return vld3q_lane_f64(a, b, 1); 1104 // CHECK: ld3 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 1105 } 1106 1107 poly8x16x3_t test_vld3q_lane_p8(poly8_t const *a, poly8x16x3_t b) { 1108 // CHECK-LABEL: test_vld3q_lane_p8 1109 return vld3q_lane_p8(a, b, 15); 1110 // CHECK: ld3 {v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b}[15], [{{x[0-9]+|sp}}] 1111 } 1112 1113 poly16x8x3_t test_vld3q_lane_p16(poly16_t const *a, poly16x8x3_t b) { 1114 // CHECK-LABEL: test_vld3q_lane_p16 1115 return vld3q_lane_p16(a, b, 7); 1116 // CHECK: ld3 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 1117 } 1118 1119 poly64x2x3_t test_vld3q_lane_p64(poly64_t const *a, poly64x2x3_t b) { 1120 // CHECK-LABEL: test_vld3q_lane_p64 1121 return vld3q_lane_p64(a, b, 1); 1122 // CHECK: ld3 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 1123 } 1124 1125 uint8x8x3_t test_vld3_lane_u8(uint8_t const *a, uint8x8x3_t b) { 1126 // CHECK-LABEL: test_vld3_lane_u8 1127 return vld3_lane_u8(a, b, 7); 1128 // CHECK: ld3 {v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b}[7], [{{x[0-9]+|sp}}] 1129 } 1130 1131 uint16x4x3_t test_vld3_lane_u16(uint16_t const *a, uint16x4x3_t b) { 1132 // CHECK-LABEL: test_vld3_lane_u16 1133 return vld3_lane_u16(a, b, 3); 1134 // CHECK: ld3 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1135 } 1136 1137 uint32x2x3_t test_vld3_lane_u32(uint32_t const *a, uint32x2x3_t b) { 1138 // CHECK-LABEL: test_vld3_lane_u32 1139 return vld3_lane_u32(a, b, 1); 1140 // CHECK: ld3 {v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s}[1], [{{x[0-9]+|sp}}] 1141 } 1142 1143 uint64x1x3_t test_vld3_lane_u64(uint64_t const *a, uint64x1x3_t b) { 1144 // CHECK-LABEL: test_vld3_lane_u64 1145 return vld3_lane_u64(a, b, 0); 1146 // CHECK: ld3 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 1147 } 1148 1149 int8x8x3_t test_vld3_lane_s8(int8_t const *a, int8x8x3_t b) { 1150 // CHECK-LABEL: test_vld3_lane_s8 1151 return vld3_lane_s8(a, b, 7); 1152 // CHECK: ld3 {v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b}[7], [{{x[0-9]+|sp}}] 1153 } 1154 1155 int16x4x3_t test_vld3_lane_s16(int16_t const *a, int16x4x3_t b) { 1156 // CHECK-LABEL: test_vld3_lane_s16 1157 return vld3_lane_s16(a, b, 3); 1158 // CHECK: ld3 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1159 } 1160 1161 int32x2x3_t test_vld3_lane_s32(int32_t const *a, int32x2x3_t b) { 1162 // CHECK-LABEL: test_vld3_lane_s32 1163 return vld3_lane_s32(a, b, 1); 1164 // CHECK: ld3 {v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s}[1], [{{x[0-9]+|sp}}] 1165 } 1166 1167 int64x1x3_t test_vld3_lane_s64(int64_t const *a, int64x1x3_t b) { 1168 // CHECK-LABEL: test_vld3_lane_s64 1169 return vld3_lane_s64(a, b, 0); 1170 // CHECK: ld3 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 1171 } 1172 1173 float16x4x3_t test_vld3_lane_f16(float16_t const *a, float16x4x3_t b) { 1174 // CHECK-LABEL: test_vld3_lane_f16 1175 return vld3_lane_f16(a, b, 3); 1176 // CHECK: ld3 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1177 } 1178 1179 float32x2x3_t test_vld3_lane_f32(float32_t const *a, float32x2x3_t b) { 1180 // CHECK-LABEL: test_vld3_lane_f32 1181 return vld3_lane_f32(a, b, 1); 1182 // CHECK: ld3 {v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s}[1], [{{x[0-9]+|sp}}] 1183 } 1184 1185 float64x1x3_t test_vld3_lane_f64(float64_t const *a, float64x1x3_t b) { 1186 // CHECK-LABEL: test_vld3_lane_f64 1187 return vld3_lane_f64(a, b, 0); 1188 // CHECK: ld3 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 1189 } 1190 1191 poly8x8x3_t test_vld3_lane_p8(poly8_t const *a, poly8x8x3_t b) { 1192 // CHECK-LABEL: test_vld3_lane_p8 1193 return vld3_lane_p8(a, b, 7); 1194 // CHECK: ld3 {v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b}[7], [{{x[0-9]+|sp}}] 1195 } 1196 1197 poly16x4x3_t test_vld3_lane_p16(poly16_t const *a, poly16x4x3_t b) { 1198 // CHECK-LABEL: test_vld3_lane_p16 1199 return vld3_lane_p16(a, b, 3); 1200 // CHECK: ld3 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1201 } 1202 1203 poly64x1x3_t test_vld3_lane_p64(poly64_t const *a, poly64x1x3_t b) { 1204 // CHECK-LABEL: test_vld3_lane_p64 1205 return vld3_lane_p64(a, b, 0); 1206 // CHECK: ld3 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 1207 } 1208 1209 uint8x16x4_t test_vld4q_lane_u8(uint8_t const *a, uint8x16x4_t b) { 1210 // CHECK-LABEL: test_vld4q_lane_u8 1211 return vld4q_lane_u8(a, b, 15); 1212 // CHECK: ld4 {v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b}[15], [{{x[0-9]+|sp}}] 1213 } 1214 1215 uint16x8x4_t test_vld4q_lane_u16(uint16_t const *a, uint16x8x4_t b) { 1216 // CHECK-LABEL: test_vld4q_lane_u16 1217 return vld4q_lane_u16(a, b, 7); 1218 // CHECK: ld4 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 1219 } 1220 1221 uint32x4x4_t test_vld4q_lane_u32(uint32_t const *a, uint32x4x4_t b) { 1222 // CHECK-LABEL: test_vld4q_lane_u32 1223 return vld4q_lane_u32(a, b, 3); 1224 // CHECK: ld4 {v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s}[3], [{{x[0-9]+|sp}}] 1225 } 1226 1227 uint64x2x4_t test_vld4q_lane_u64(uint64_t const *a, uint64x2x4_t b) { 1228 // CHECK-LABEL: test_vld4q_lane_u64 1229 return vld4q_lane_u64(a, b, 1); 1230 // CHECK: ld4 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 1231 } 1232 1233 int8x16x4_t test_vld4q_lane_s8(int8_t const *a, int8x16x4_t b) { 1234 // CHECK-LABEL: test_vld4q_lane_s8 1235 return vld4q_lane_s8(a, b, 15); 1236 // CHECK: ld4 {v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b}[15], [{{x[0-9]+|sp}}] 1237 } 1238 1239 int16x8x4_t test_vld4q_lane_s16(int16_t const *a, int16x8x4_t b) { 1240 // CHECK-LABEL: test_vld4q_lane_s16 1241 return vld4q_lane_s16(a, b, 7); 1242 // CHECK: ld4 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 1243 } 1244 1245 int32x4x4_t test_vld4q_lane_s32(int32_t const *a, int32x4x4_t b) { 1246 // CHECK-LABEL: test_vld4q_lane_s32 1247 return vld4q_lane_s32(a, b, 3); 1248 // CHECK: ld4 {v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s}[3], [{{x[0-9]+|sp}}] 1249 } 1250 1251 int64x2x4_t test_vld4q_lane_s64(int64_t const *a, int64x2x4_t b) { 1252 // CHECK-LABEL: test_vld4q_lane_s64 1253 return vld4q_lane_s64(a, b, 1); 1254 // CHECK: ld4 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 1255 } 1256 1257 float16x8x4_t test_vld4q_lane_f16(float16_t const *a, float16x8x4_t b) { 1258 // CHECK-LABEL: test_vld4q_lane_f16 1259 return vld4q_lane_f16(a, b, 7); 1260 // CHECK: ld4 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 1261 } 1262 1263 float32x4x4_t test_vld4q_lane_f32(float32_t const *a, float32x4x4_t b) { 1264 // CHECK-LABEL: test_vld4q_lane_f32 1265 return vld4q_lane_f32(a, b, 3); 1266 // CHECK: ld4 {v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s}[3], [{{x[0-9]+|sp}}] 1267 } 1268 1269 float64x2x4_t test_vld4q_lane_f64(float64_t const *a, float64x2x4_t b) { 1270 // CHECK-LABEL: test_vld4q_lane_f64 1271 return vld4q_lane_f64(a, b, 1); 1272 // CHECK: ld4 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 1273 } 1274 1275 poly8x16x4_t test_vld4q_lane_p8(poly8_t const *a, poly8x16x4_t b) { 1276 // CHECK-LABEL: test_vld4q_lane_p8 1277 return vld4q_lane_p8(a, b, 15); 1278 // CHECK: ld4 {v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b}[15], [{{x[0-9]+|sp}}] 1279 } 1280 1281 poly16x8x4_t test_vld4q_lane_p16(poly16_t const *a, poly16x8x4_t b) { 1282 // CHECK-LABEL: test_vld4q_lane_p16 1283 return vld4q_lane_p16(a, b, 7); 1284 // CHECK: ld4 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 1285 } 1286 1287 poly64x2x4_t test_vld4q_lane_p64(poly64_t const *a, poly64x2x4_t b) { 1288 // CHECK-LABEL: test_vld4q_lane_p64 1289 return vld4q_lane_p64(a, b, 1); 1290 // CHECK: ld4 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 1291 } 1292 1293 uint8x8x4_t test_vld4_lane_u8(uint8_t const *a, uint8x8x4_t b) { 1294 // CHECK-LABEL: test_vld4_lane_u8 1295 return vld4_lane_u8(a, b, 7); 1296 // CHECK: ld4 {v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b}[7], [{{x[0-9]+|sp}}] 1297 } 1298 1299 uint16x4x4_t test_vld4_lane_u16(uint16_t const *a, uint16x4x4_t b) { 1300 // CHECK-LABEL: test_vld4_lane_u16 1301 return vld4_lane_u16(a, b, 3); 1302 // CHECK: ld4 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1303 } 1304 1305 uint32x2x4_t test_vld4_lane_u32(uint32_t const *a, uint32x2x4_t b) { 1306 // CHECK-LABEL: test_vld4_lane_u32 1307 return vld4_lane_u32(a, b, 1); 1308 // CHECK: ld4 {v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s}[1], [{{x[0-9]+|sp}}] 1309 } 1310 1311 uint64x1x4_t test_vld4_lane_u64(uint64_t const *a, uint64x1x4_t b) { 1312 // CHECK-LABEL: test_vld4_lane_u64 1313 return vld4_lane_u64(a, b, 0); 1314 // CHECK: ld4 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 1315 } 1316 1317 int8x8x4_t test_vld4_lane_s8(int8_t const *a, int8x8x4_t b) { 1318 // CHECK-LABEL: test_vld4_lane_s8 1319 return vld4_lane_s8(a, b, 7); 1320 // CHECK: ld4 {v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b}[7], [{{x[0-9]+|sp}}] 1321 } 1322 1323 int16x4x4_t test_vld4_lane_s16(int16_t const *a, int16x4x4_t b) { 1324 // CHECK-LABEL: test_vld4_lane_s16 1325 return vld4_lane_s16(a, b, 3); 1326 // CHECK: ld4 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1327 } 1328 1329 int32x2x4_t test_vld4_lane_s32(int32_t const *a, int32x2x4_t b) { 1330 // CHECK-LABEL: test_vld4_lane_s32 1331 return vld4_lane_s32(a, b, 1); 1332 // CHECK: ld4 {v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s}[1], [{{x[0-9]+|sp}}] 1333 } 1334 1335 int64x1x4_t test_vld4_lane_s64(int64_t const *a, int64x1x4_t b) { 1336 // CHECK-LABEL: test_vld4_lane_s64 1337 return vld4_lane_s64(a, b, 0); 1338 // CHECK: ld4 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 1339 } 1340 1341 float16x4x4_t test_vld4_lane_f16(float16_t const *a, float16x4x4_t b) { 1342 // CHECK-LABEL: test_vld4_lane_f16 1343 return vld4_lane_f16(a, b, 3); 1344 // CHECK: ld4 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1345 } 1346 1347 float32x2x4_t test_vld4_lane_f32(float32_t const *a, float32x2x4_t b) { 1348 // CHECK-LABEL: test_vld4_lane_f32 1349 return vld4_lane_f32(a, b, 1); 1350 // CHECK: ld4 {v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s}[1], [{{x[0-9]+|sp}}] 1351 } 1352 1353 float64x1x4_t test_vld4_lane_f64(float64_t const *a, float64x1x4_t b) { 1354 // CHECK-LABEL: test_vld4_lane_f64 1355 return vld4_lane_f64(a, b, 0); 1356 // CHECK: ld4 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 1357 } 1358 1359 poly8x8x4_t test_vld4_lane_p8(poly8_t const *a, poly8x8x4_t b) { 1360 // CHECK-LABEL: test_vld4_lane_p8 1361 return vld4_lane_p8(a, b, 7); 1362 // CHECK: ld4 {v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b}[7], [{{x[0-9]+|sp}}] 1363 } 1364 1365 poly16x4x4_t test_vld4_lane_p16(poly16_t const *a, poly16x4x4_t b) { 1366 // CHECK-LABEL: test_vld4_lane_p16 1367 return vld4_lane_p16(a, b, 3); 1368 // CHECK: ld4 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1369 } 1370 1371 poly64x1x4_t test_vld4_lane_p64(poly64_t const *a, poly64x1x4_t b) { 1372 // CHECK-LABEL: test_vld4_lane_p64 1373 return vld4_lane_p64(a, b, 0); 1374 // CHECK: ld4 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 1375 } 1376 1377 void test_vst1q_lane_u8(uint8_t const *a, uint8x16_t b) { 1378 // CHECK-LABEL: test_vst1q_lane_u8 1379 vst1q_lane_u8(a, b, 15); 1380 // CHECK: st1 {v{{[0-9]+}}.b}[15], [{{x[0-9]+|sp}}] 1381 } 1382 1383 void test_vst1q_lane_u16(uint16_t const *a, uint16x8_t b) { 1384 // CHECK-LABEL: test_vst1q_lane_u16 1385 vst1q_lane_u16(a, b, 7); 1386 // CHECK: st1 {v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 1387 } 1388 1389 void test_vst1q_lane_u32(uint32_t const *a, uint32x4_t b) { 1390 // CHECK-LABEL: test_vst1q_lane_u32 1391 vst1q_lane_u32(a, b, 3); 1392 // CHECK: st1 {v{{[0-9]+}}.s}[3], [{{x[0-9]+|sp}}] 1393 } 1394 1395 void test_vst1q_lane_u64(uint64_t const *a, uint64x2_t b) { 1396 // CHECK-LABEL: test_vst1q_lane_u64 1397 vst1q_lane_u64(a, b, 1); 1398 // CHECK: st1 {v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 1399 } 1400 1401 void test_vst1q_lane_s8(int8_t const *a, int8x16_t b) { 1402 // CHECK-LABEL: test_vst1q_lane_s8 1403 vst1q_lane_s8(a, b, 15); 1404 // CHECK: st1 {v{{[0-9]+}}.b}[15], [{{x[0-9]+|sp}}] 1405 } 1406 1407 void test_vst1q_lane_s16(int16_t const *a, int16x8_t b) { 1408 // CHECK-LABEL: test_vst1q_lane_s16 1409 vst1q_lane_s16(a, b, 7); 1410 // CHECK: st1 {v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 1411 } 1412 1413 void test_vst1q_lane_s32(int32_t const *a, int32x4_t b) { 1414 // CHECK-LABEL: test_vst1q_lane_s32 1415 vst1q_lane_s32(a, b, 3); 1416 // CHECK: st1 {v{{[0-9]+}}.s}[3], [{{x[0-9]+|sp}}] 1417 } 1418 1419 void test_vst1q_lane_s64(int64_t const *a, int64x2_t b) { 1420 // CHECK-LABEL: test_vst1q_lane_s64 1421 vst1q_lane_s64(a, b, 1); 1422 // CHECK: st1 {v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 1423 } 1424 1425 void test_vst1q_lane_f16(float16_t const *a, float16x8_t b) { 1426 // CHECK-LABEL: test_vst1q_lane_f16 1427 vst1q_lane_f16(a, b, 7); 1428 // CHECK: st1 {v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 1429 } 1430 1431 void test_vst1q_lane_f32(float32_t const *a, float32x4_t b) { 1432 // CHECK-LABEL: test_vst1q_lane_f32 1433 vst1q_lane_f32(a, b, 3); 1434 // CHECK: st1 {v{{[0-9]+}}.s}[3], [{{x[0-9]+|sp}}] 1435 } 1436 1437 void test_vst1q_lane_f64(float64_t const *a, float64x2_t b) { 1438 // CHECK-LABEL: test_vst1q_lane_f64 1439 vst1q_lane_f64(a, b, 1); 1440 // CHECK: st1 {v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 1441 } 1442 1443 poly8x16_t test_vst1q_lane_p8(poly8_t const *a, poly8x16_t b) { 1444 // CHECK-LABEL: test_vst1q_lane_p8 1445 vst1q_lane_p8(a, b, 15); 1446 // CHECK: st1 {v{{[0-9]+}}.b}[15], [{{x[0-9]+|sp}}] 1447 } 1448 1449 void test_vst1q_lane_p16(poly16_t const *a, poly16x8_t b) { 1450 // CHECK-LABEL: test_vst1q_lane_p16 1451 vst1q_lane_p16(a, b, 7); 1452 // CHECK: st1 {v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 1453 } 1454 1455 void test_vst1q_lane_p64(poly64_t const *a, poly64x2_t b) { 1456 // CHECK-LABEL: test_vst1q_lane_p64 1457 vst1q_lane_p64(a, b, 1); 1458 // CHECK: st1 {v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 1459 } 1460 1461 void test_vst1_lane_u8(uint8_t const *a, uint8x8_t b) { 1462 // CHECK-LABEL: test_vst1_lane_u8 1463 vst1_lane_u8(a, b, 7); 1464 // CHECK: st1 {v{{[0-9]+}}.b}[7], [{{x[0-9]+|sp}}] 1465 } 1466 1467 void test_vst1_lane_u16(uint16_t const *a, uint16x4_t b) { 1468 // CHECK-LABEL: test_vst1_lane_u16 1469 vst1_lane_u16(a, b, 3); 1470 // CHECK: st1 {v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1471 } 1472 1473 void test_vst1_lane_u32(uint32_t const *a, uint32x2_t b) { 1474 // CHECK-LABEL: test_vst1_lane_u32 1475 vst1_lane_u32(a, b, 1); 1476 // CHECK: st1 {v{{[0-9]+}}.s}[1], [{{x[0-9]+|sp}}] 1477 } 1478 1479 void test_vst1_lane_u64(uint64_t const *a, uint64x1_t b) { 1480 // CHECK-LABEL: test_vst1_lane_u64 1481 vst1_lane_u64(a, b, 0); 1482 // CHECK: st1 {v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 1483 } 1484 1485 void test_vst1_lane_s8(int8_t const *a, int8x8_t b) { 1486 // CHECK-LABEL: test_vst1_lane_s8 1487 vst1_lane_s8(a, b, 7); 1488 // CHECK: st1 {v{{[0-9]+}}.b}[7], [{{x[0-9]+|sp}}] 1489 } 1490 1491 void test_vst1_lane_s16(int16_t const *a, int16x4_t b) { 1492 // CHECK-LABEL: test_vst1_lane_s16 1493 vst1_lane_s16(a, b, 3); 1494 // CHECK: st1 {v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1495 } 1496 1497 void test_vst1_lane_s32(int32_t const *a, int32x2_t b) { 1498 // CHECK-LABEL: test_vst1_lane_s32 1499 vst1_lane_s32(a, b, 1); 1500 // CHECK: st1 {v{{[0-9]+}}.s}[1], [{{x[0-9]+|sp}}] 1501 } 1502 1503 void test_vst1_lane_s64(int64_t const *a, int64x1_t b) { 1504 // CHECK-LABEL: test_vst1_lane_s64 1505 vst1_lane_s64(a, b, 0); 1506 // CHECK: st1 {v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 1507 } 1508 1509 void test_vst1_lane_f16(float16_t const *a, float16x4_t b) { 1510 // CHECK-LABEL: test_vst1_lane_f16 1511 vst1_lane_f16(a, b, 3); 1512 // CHECK: st1 {v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1513 } 1514 1515 void test_vst1_lane_f32(float32_t const *a, float32x2_t b) { 1516 // CHECK-LABEL: test_vst1_lane_f32 1517 vst1_lane_f32(a, b, 1); 1518 // CHECK: st1 {v{{[0-9]+}}.s}[1], [{{x[0-9]+|sp}}] 1519 } 1520 1521 void test_vst1_lane_f64(float64_t const *a, float64x1_t b) { 1522 // CHECK-LABEL: test_vst1_lane_f64 1523 vst1_lane_f64(a, b, 0); 1524 // CHECK: st1 {v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 1525 } 1526 1527 void test_vst1_lane_p8(poly8_t const *a, poly8x8_t b) { 1528 // CHECK-LABEL: test_vst1_lane_p8 1529 vst1_lane_p8(a, b, 7); 1530 // CHECK: st1 {v{{[0-9]+}}.b}[7], [{{x[0-9]+|sp}}] 1531 } 1532 1533 void test_vst1_lane_p16(poly16_t const *a, poly16x4_t b) { 1534 // CHECK-LABEL: test_vst1_lane_p16 1535 vst1_lane_p16(a, b, 3); 1536 // CHECK: st1 {v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1537 } 1538 1539 void test_vst1_lane_p64(poly64_t const *a, poly64x1_t b) { 1540 // CHECK-LABEL: test_vst1_lane_p64 1541 vst1_lane_p64(a, b, 0); 1542 // CHECK: st1 {v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 1543 } 1544 1545 void test_vst2q_lane_u8(uint8_t const *a, uint8x16x2_t b) { 1546 // CHECK-LABEL: test_vst2q_lane_u8 1547 vst2q_lane_u8(a, b, 15); 1548 // CHECK: st2 {v{{[0-9]+}}.b, v{{[0-9]+}}.b}[15], [{{x[0-9]+|sp}}] 1549 } 1550 1551 void test_vst2q_lane_u16(uint16_t const *a, uint16x8x2_t b) { 1552 // CHECK-LABEL: test_vst2q_lane_u16 1553 vst2q_lane_u16(a, b, 7); 1554 // CHECK: st2 {v{{[0-9]+}}.h, v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 1555 } 1556 1557 void test_vst2q_lane_u32(uint32_t const *a, uint32x4x2_t b) { 1558 // CHECK-LABEL: test_vst2q_lane_u32 1559 vst2q_lane_u32(a, b, 3); 1560 // CHECK: st2 {v{{[0-9]+}}.s, v{{[0-9]+}}.s}[3], [{{x[0-9]+|sp}}] 1561 } 1562 1563 void test_vst2q_lane_u64(uint64_t const *a, uint64x2x2_t b) { 1564 // CHECK-LABEL: test_vst2q_lane_u64 1565 vst2q_lane_u64(a, b, 1); 1566 // CHECK: st2 {v{{[0-9]+}}.d, v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 1567 } 1568 1569 void test_vst2q_lane_s8(int8_t const *a, int8x16x2_t b) { 1570 // CHECK-LABEL: test_vst2q_lane_s8 1571 vst2q_lane_s8(a, b, 15); 1572 // CHECK: st2 {v{{[0-9]+}}.b, v{{[0-9]+}}.b}[15], [{{x[0-9]+|sp}}] 1573 } 1574 1575 void test_vst2q_lane_s16(int16_t const *a, int16x8x2_t b) { 1576 // CHECK-LABEL: test_vst2q_lane_s16 1577 vst2q_lane_s16(a, b, 7); 1578 // CHECK: st2 {v{{[0-9]+}}.h, v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 1579 } 1580 1581 void test_vst2q_lane_s32(int32_t const *a, int32x4x2_t b) { 1582 // CHECK-LABEL: test_vst2q_lane_s32 1583 vst2q_lane_s32(a, b, 3); 1584 // CHECK: st2 {v{{[0-9]+}}.s, v{{[0-9]+}}.s}[3], [{{x[0-9]+|sp}}] 1585 } 1586 1587 void test_vst2q_lane_s64(int64_t const *a, int64x2x2_t b) { 1588 // CHECK-LABEL: test_vst2q_lane_s64 1589 vst2q_lane_s64(a, b, 1); 1590 // CHECK: st2 {v{{[0-9]+}}.d, v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 1591 } 1592 1593 void test_vst2q_lane_f16(float16_t const *a, float16x8x2_t b) { 1594 // CHECK-LABEL: test_vst2q_lane_f16 1595 vst2q_lane_f16(a, b, 7); 1596 // CHECK: st2 {v{{[0-9]+}}.h, v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 1597 } 1598 1599 void test_vst2q_lane_f32(float32_t const *a, float32x4x2_t b) { 1600 // CHECK-LABEL: test_vst2q_lane_f32 1601 vst2q_lane_f32(a, b, 3); 1602 // CHECK: st2 {v{{[0-9]+}}.s, v{{[0-9]+}}.s}[3], [{{x[0-9]+|sp}}] 1603 } 1604 1605 void test_vst2q_lane_f64(float64_t const *a, float64x2x2_t b) { 1606 // CHECK-LABEL: test_vst2q_lane_f64 1607 vst2q_lane_f64(a, b, 1); 1608 // CHECK: st2 {v{{[0-9]+}}.d, v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 1609 } 1610 1611 void test_vst2q_lane_p8(poly8_t const *a, poly8x16x2_t b) { 1612 // CHECK-LABEL: test_vst2q_lane_p8 1613 vst2q_lane_p8(a, b, 15); 1614 // CHECK: st2 {v{{[0-9]+}}.b, v{{[0-9]+}}.b}[15], [{{x[0-9]+|sp}}] 1615 } 1616 1617 void test_vst2q_lane_p16(poly16_t const *a, poly16x8x2_t b) { 1618 // CHECK-LABEL: test_vst2q_lane_p16 1619 vst2q_lane_p16(a, b, 7); 1620 // CHECK: st2 {v{{[0-9]+}}.h, v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 1621 } 1622 1623 void test_vst2q_lane_p64(poly64_t const *a, poly64x2x2_t b) { 1624 // CHECK-LABEL: test_vst2q_lane_p64 1625 vst2q_lane_p64(a, b, 1); 1626 // CHECK: st2 {v{{[0-9]+}}.d, v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 1627 } 1628 1629 void test_vst2_lane_u8(uint8_t const *a, uint8x8x2_t b) { 1630 // CHECK-LABEL: test_vst2_lane_u8 1631 vst2_lane_u8(a, b, 7); 1632 // CHECK: st2 {v{{[0-9]+}}.b, v{{[0-9]+}}.b}[7], [{{x[0-9]+|sp}}] 1633 } 1634 1635 void test_vst2_lane_u16(uint16_t const *a, uint16x4x2_t b) { 1636 // CHECK-LABEL: test_vst2_lane_u16 1637 vst2_lane_u16(a, b, 3); 1638 // CHECK: st2 {v{{[0-9]+}}.h, v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1639 } 1640 1641 void test_vst2_lane_u32(uint32_t const *a, uint32x2x2_t b) { 1642 // CHECK-LABEL: test_vst2_lane_u32 1643 vst2_lane_u32(a, b, 1); 1644 // CHECK: st2 {v{{[0-9]+}}.s, v{{[0-9]+}}.s}[1], [{{x[0-9]+|sp}}] 1645 } 1646 1647 void test_vst2_lane_u64(uint64_t const *a, uint64x1x2_t b) { 1648 // CHECK-LABEL: test_vst2_lane_u64 1649 vst2_lane_u64(a, b, 0); 1650 // CHECK: st2 {v{{[0-9]+}}.d, v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 1651 } 1652 1653 void test_vst2_lane_s8(int8_t const *a, int8x8x2_t b) { 1654 // CHECK-LABEL: test_vst2_lane_s8 1655 vst2_lane_s8(a, b, 7); 1656 // CHECK: st2 {v{{[0-9]+}}.b, v{{[0-9]+}}.b}[7], [{{x[0-9]+|sp}}] 1657 } 1658 1659 void test_vst2_lane_s16(int16_t const *a, int16x4x2_t b) { 1660 // CHECK-LABEL: test_vst2_lane_s16 1661 vst2_lane_s16(a, b, 3); 1662 // CHECK: st2 {v{{[0-9]+}}.h, v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1663 } 1664 1665 void test_vst2_lane_s32(int32_t const *a, int32x2x2_t b) { 1666 // CHECK-LABEL: test_vst2_lane_s32 1667 vst2_lane_s32(a, b, 1); 1668 // CHECK: st2 {v{{[0-9]+}}.s, v{{[0-9]+}}.s}[1], [{{x[0-9]+|sp}}] 1669 } 1670 1671 void test_vst2_lane_s64(int64_t const *a, int64x1x2_t b) { 1672 // CHECK-LABEL: test_vst2_lane_s64 1673 vst2_lane_s64(a, b, 0); 1674 // CHECK: st2 {v{{[0-9]+}}.d, v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 1675 } 1676 1677 void test_vst2_lane_f16(float16_t const *a, float16x4x2_t b) { 1678 // CHECK-LABEL: test_vst2_lane_f16 1679 vst2_lane_f16(a, b, 3); 1680 // CHECK: st2 {v{{[0-9]+}}.h, v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1681 } 1682 1683 void test_vst2_lane_f32(float32_t const *a, float32x2x2_t b) { 1684 // CHECK-LABEL: test_vst2_lane_f32 1685 vst2_lane_f32(a, b, 1); 1686 // CHECK: st2 {v{{[0-9]+}}.s, v{{[0-9]+}}.s}[1], [{{x[0-9]+|sp}}] 1687 } 1688 1689 void test_vst2_lane_f64(float64_t const *a, float64x1x2_t b) { 1690 // CHECK-LABEL: test_vst2_lane_f64 1691 vst2_lane_f64(a, b, 0); 1692 // CHECK: st2 {v{{[0-9]+}}.d, v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 1693 } 1694 1695 void test_vst2_lane_p8(poly8_t const *a, poly8x8x2_t b) { 1696 // CHECK-LABEL: test_vst2_lane_p8 1697 vst2_lane_p8(a, b, 7); 1698 // CHECK: st2 {v{{[0-9]+}}.b, v{{[0-9]+}}.b}[7], [{{x[0-9]+|sp}}] 1699 } 1700 1701 void test_vst2_lane_p16(poly16_t const *a, poly16x4x2_t b) { 1702 // CHECK-LABEL: test_vst2_lane_p16 1703 vst2_lane_p16(a, b, 3); 1704 // CHECK: st2 {v{{[0-9]+}}.h, v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1705 } 1706 1707 void test_vst2_lane_p64(poly64_t const *a, poly64x1x2_t b) { 1708 // CHECK-LABEL: test_vst2_lane_p64 1709 vst2_lane_p64(a, b, 0); 1710 // CHECK: st2 {v{{[0-9]+}}.d, v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 1711 } 1712 1713 void test_vst3q_lane_u8(uint8_t const *a, uint8x16x3_t b) { 1714 // CHECK-LABEL: test_vst3q_lane_u8 1715 vst3q_lane_u8(a, b, 15); 1716 // CHECK: st3 {v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b}[15], [{{x[0-9]+|sp}}] 1717 } 1718 1719 void test_vst3q_lane_u16(uint16_t const *a, uint16x8x3_t b) { 1720 // CHECK-LABEL: test_vst3q_lane_u16 1721 vst3q_lane_u16(a, b, 7); 1722 // CHECK: st3 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 1723 } 1724 1725 void test_vst3q_lane_u32(uint32_t const *a, uint32x4x3_t b) { 1726 // CHECK-LABEL: test_vst3q_lane_u32 1727 vst3q_lane_u32(a, b, 3); 1728 // CHECK: st3 {v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s}[3], [{{x[0-9]+|sp}}] 1729 } 1730 1731 void test_vst3q_lane_u64(uint64_t const *a, uint64x2x3_t b) { 1732 // CHECK-LABEL: test_vst3q_lane_u64 1733 vst3q_lane_u64(a, b, 1); 1734 // CHECK: st3 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 1735 } 1736 1737 void test_vst3q_lane_s8(int8_t const *a, int8x16x3_t b) { 1738 // CHECK-LABEL: test_vst3q_lane_s8 1739 vst3q_lane_s8(a, b, 15); 1740 // CHECK: st3 {v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b}[15], [{{x[0-9]+|sp}}] 1741 } 1742 1743 void test_vst3q_lane_s16(int16_t const *a, int16x8x3_t b) { 1744 // CHECK-LABEL: test_vst3q_lane_s16 1745 vst3q_lane_s16(a, b, 7); 1746 // CHECK: st3 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 1747 } 1748 1749 void test_vst3q_lane_s32(int32_t const *a, int32x4x3_t b) { 1750 // CHECK-LABEL: test_vst3q_lane_s32 1751 vst3q_lane_s32(a, b, 3); 1752 // CHECK: st3 {v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s}[3], [{{x[0-9]+|sp}}] 1753 } 1754 1755 void test_vst3q_lane_s64(int64_t const *a, int64x2x3_t b) { 1756 // CHECK-LABEL: test_vst3q_lane_s64 1757 vst3q_lane_s64(a, b, 1); 1758 // CHECK: st3 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 1759 } 1760 1761 void test_vst3q_lane_f16(float16_t const *a, float16x8x3_t b) { 1762 // CHECK-LABEL: test_vst3q_lane_f16 1763 vst3q_lane_f16(a, b, 7); 1764 // CHECK: st3 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 1765 } 1766 1767 void test_vst3q_lane_f32(float32_t const *a, float32x4x3_t b) { 1768 // CHECK-LABEL: test_vst3q_lane_f32 1769 vst3q_lane_f32(a, b, 3); 1770 // CHECK: st3 {v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s}[3], [{{x[0-9]+|sp}}] 1771 } 1772 1773 void test_vst3q_lane_f64(float64_t const *a, float64x2x3_t b) { 1774 // CHECK-LABEL: test_vst3q_lane_f64 1775 vst3q_lane_f64(a, b, 1); 1776 // CHECK: st3 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 1777 } 1778 1779 void test_vst3q_lane_p8(poly8_t const *a, poly8x16x3_t b) { 1780 // CHECK-LABEL: test_vst3q_lane_p8 1781 vst3q_lane_p8(a, b, 15); 1782 // CHECK: st3 {v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b}[15], [{{x[0-9]+|sp}}] 1783 } 1784 1785 void test_vst3q_lane_p16(poly16_t const *a, poly16x8x3_t b) { 1786 // CHECK-LABEL: test_vst3q_lane_p16 1787 vst3q_lane_p16(a, b, 7); 1788 // CHECK: st3 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 1789 } 1790 1791 void test_vst3q_lane_p64(poly64_t const *a, poly64x2x3_t b) { 1792 // CHECK-LABEL: test_vst3q_lane_p64 1793 vst3q_lane_p64(a, b, 1); 1794 // CHECK: st3 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 1795 } 1796 1797 void test_vst3_lane_u8(uint8_t const *a, uint8x8x3_t b) { 1798 // CHECK-LABEL: test_vst3_lane_u8 1799 vst3_lane_u8(a, b, 7); 1800 // CHECK: st3 {v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b}[7], [{{x[0-9]+|sp}}] 1801 } 1802 1803 void test_vst3_lane_u16(uint16_t const *a, uint16x4x3_t b) { 1804 // CHECK-LABEL: test_vst3_lane_u16 1805 vst3_lane_u16(a, b, 3); 1806 // CHECK: st3 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1807 } 1808 1809 void test_vst3_lane_u32(uint32_t const *a, uint32x2x3_t b) { 1810 // CHECK-LABEL: test_vst3_lane_u32 1811 vst3_lane_u32(a, b, 1); 1812 // CHECK: st3 {v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s}[1], [{{x[0-9]+|sp}}] 1813 } 1814 1815 void test_vst3_lane_u64(uint64_t const *a, uint64x1x3_t b) { 1816 // CHECK-LABEL: test_vst3_lane_u64 1817 vst3_lane_u64(a, b, 0); 1818 // CHECK: st3 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 1819 } 1820 1821 void test_vst3_lane_s8(int8_t const *a, int8x8x3_t b) { 1822 // CHECK-LABEL: test_vst3_lane_s8 1823 vst3_lane_s8(a, b, 7); 1824 // CHECK: st3 {v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b}[7], [{{x[0-9]+|sp}}] 1825 } 1826 1827 void test_vst3_lane_s16(int16_t const *a, int16x4x3_t b) { 1828 // CHECK-LABEL: test_vst3_lane_s16 1829 vst3_lane_s16(a, b, 3); 1830 // CHECK: st3 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1831 } 1832 1833 void test_vst3_lane_s32(int32_t const *a, int32x2x3_t b) { 1834 // CHECK-LABEL: test_vst3_lane_s32 1835 vst3_lane_s32(a, b, 1); 1836 // CHECK: st3 {v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s}[1], [{{x[0-9]+|sp}}] 1837 } 1838 1839 void test_vst3_lane_s64(int64_t const *a, int64x1x3_t b) { 1840 // CHECK-LABEL: test_vst3_lane_s64 1841 vst3_lane_s64(a, b, 0); 1842 // CHECK: st3 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 1843 } 1844 1845 void test_vst3_lane_f16(float16_t const *a, float16x4x3_t b) { 1846 // CHECK-LABEL: test_vst3_lane_f16 1847 vst3_lane_f16(a, b, 3); 1848 // CHECK: st3 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1849 } 1850 1851 void test_vst3_lane_f32(float32_t const *a, float32x2x3_t b) { 1852 // CHECK-LABEL: test_vst3_lane_f32 1853 vst3_lane_f32(a, b, 1); 1854 // CHECK: st3 {v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s}[1], [{{x[0-9]+|sp}}] 1855 } 1856 1857 void test_vst3_lane_f64(float64_t const *a, float64x1x3_t b) { 1858 // CHECK-LABEL: test_vst3_lane_f64 1859 vst3_lane_f64(a, b, 0); 1860 // CHECK: st3 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 1861 } 1862 1863 void test_vst3_lane_p8(poly8_t const *a, poly8x8x3_t b) { 1864 // CHECK-LABEL: test_vst3_lane_p8 1865 vst3_lane_p8(a, b, 7); 1866 // CHECK: st3 {v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b}[7], [{{x[0-9]+|sp}}] 1867 } 1868 1869 void test_vst3_lane_p16(poly16_t const *a, poly16x4x3_t b) { 1870 // CHECK-LABEL: test_vst3_lane_p16 1871 vst3_lane_p16(a, b, 3); 1872 // CHECK: st3 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1873 } 1874 1875 void test_vst3_lane_p64(poly64_t const *a, poly64x1x3_t b) { 1876 // CHECK-LABEL: test_vst3_lane_p64 1877 vst3_lane_p64(a, b, 0); 1878 // CHECK: st3 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 1879 } 1880 1881 void test_vst4q_lane_u8(uint16_t const *a, uint8x16x4_t b) { 1882 // CHECK-LABEL: test_vst4q_lane_u8 1883 vst4q_lane_u8(a, b, 15); 1884 // CHECK: st4 {v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b}[15], [{{x[0-9]+|sp}}] 1885 } 1886 1887 void test_vst4q_lane_u16(uint16_t const *a, uint16x8x4_t b) { 1888 // CHECK-LABEL: test_vst4q_lane_u16 1889 vst4q_lane_u16(a, b, 7); 1890 // CHECK: st4 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 1891 } 1892 1893 void test_vst4q_lane_u32(uint32_t const *a, uint32x4x4_t b) { 1894 // CHECK-LABEL: test_vst4q_lane_u32 1895 vst4q_lane_u32(a, b, 3); 1896 // CHECK: st4 {v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s}[3], [{{x[0-9]+|sp}}] 1897 } 1898 1899 void test_vst4q_lane_u64(uint64_t const *a, uint64x2x4_t b) { 1900 // CHECK-LABEL: test_vst4q_lane_u64 1901 vst4q_lane_u64(a, b, 1); 1902 // CHECK: st4 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 1903 } 1904 1905 void test_vst4q_lane_s8(int16_t const *a, int8x16x4_t b) { 1906 // CHECK-LABEL: test_vst4q_lane_s8 1907 vst4q_lane_s8(a, b, 15); 1908 // CHECK: st4 {v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b}[15], [{{x[0-9]+|sp}}] 1909 } 1910 1911 void test_vst4q_lane_s16(int16_t const *a, int16x8x4_t b) { 1912 // CHECK-LABEL: test_vst4q_lane_s16 1913 vst4q_lane_s16(a, b, 7); 1914 // CHECK: st4 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 1915 } 1916 1917 void test_vst4q_lane_s32(int32_t const *a, int32x4x4_t b) { 1918 // CHECK-LABEL: test_vst4q_lane_s32 1919 vst4q_lane_s32(a, b, 3); 1920 // CHECK: st4 {v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s}[3], [{{x[0-9]+|sp}}] 1921 } 1922 1923 void test_vst4q_lane_s64(int64_t const *a, int64x2x4_t b) { 1924 // CHECK-LABEL: test_vst4q_lane_s64 1925 vst4q_lane_s64(a, b, 1); 1926 // CHECK: st4 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 1927 } 1928 1929 void test_vst4q_lane_f16(float16_t const *a, float16x8x4_t b) { 1930 // CHECK-LABEL: test_vst4q_lane_f16 1931 vst4q_lane_f16(a, b, 7); 1932 // CHECK: st4 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 1933 } 1934 1935 void test_vst4q_lane_f32(float32_t const *a, float32x4x4_t b) { 1936 // CHECK-LABEL: test_vst4q_lane_f32 1937 vst4q_lane_f32(a, b, 3); 1938 // CHECK: st4 {v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s}[3], [{{x[0-9]+|sp}}] 1939 } 1940 1941 void test_vst4q_lane_f64(float64_t const *a, float64x2x4_t b) { 1942 // CHECK-LABEL: test_vst4q_lane_f64 1943 vst4q_lane_f64(a, b, 1); 1944 // CHECK: st4 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 1945 } 1946 1947 void test_vst4q_lane_p8(poly16_t const *a, poly8x16x4_t b) { 1948 // CHECK-LABEL: test_vst4q_lane_p8 1949 vst4q_lane_p8(a, b, 15); 1950 // CHECK: st4 {v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b}[15], [{{x[0-9]+|sp}}] 1951 } 1952 1953 void test_vst4q_lane_p16(poly16_t const *a, poly16x8x4_t b) { 1954 // CHECK-LABEL: test_vst4q_lane_p16 1955 vst4q_lane_p16(a, b, 7); 1956 // CHECK: st4 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[7], [{{x[0-9]+|sp}}] 1957 } 1958 1959 void test_vst4q_lane_p64(poly64_t const *a, poly64x2x4_t b) { 1960 // CHECK-LABEL: test_vst4q_lane_p64 1961 vst4q_lane_p64(a, b, 1); 1962 // CHECK: st4 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[1], [{{x[0-9]+|sp}}] 1963 } 1964 1965 void test_vst4_lane_u8(uint8_t const *a, uint8x8x4_t b) { 1966 // CHECK-LABEL: test_vst4_lane_u8 1967 vst4_lane_u8(a, b, 7); 1968 // CHECK: st4 {v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b}[7], [{{x[0-9]+|sp}}] 1969 } 1970 1971 void test_vst4_lane_u16(uint16_t const *a, uint16x4x4_t b) { 1972 // CHECK-LABEL: test_vst4_lane_u16 1973 vst4_lane_u16(a, b, 3); 1974 // CHECK: st4 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1975 } 1976 1977 void test_vst4_lane_u32(uint32_t const *a, uint32x2x4_t b) { 1978 // CHECK-LABEL: test_vst4_lane_u32 1979 vst4_lane_u32(a, b, 1); 1980 // CHECK: st4 {v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s}[1], [{{x[0-9]+|sp}}] 1981 } 1982 1983 void test_vst4_lane_u64(uint64_t const *a, uint64x1x4_t b) { 1984 // CHECK-LABEL: test_vst4_lane_u64 1985 vst4_lane_u64(a, b, 0); 1986 // CHECK: st4 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 1987 } 1988 1989 void test_vst4_lane_s8(int8_t const *a, int8x8x4_t b) { 1990 // CHECK-LABEL: test_vst4_lane_s8 1991 vst4_lane_s8(a, b, 7); 1992 // CHECK: st4 {v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b}[7], [{{x[0-9]+|sp}}] 1993 } 1994 1995 void test_vst4_lane_s16(int16_t const *a, int16x4x4_t b) { 1996 // CHECK-LABEL: test_vst4_lane_s16 1997 vst4_lane_s16(a, b, 3); 1998 // CHECK: st4 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 1999 } 2000 2001 void test_vst4_lane_s32(int32_t const *a, int32x2x4_t b) { 2002 // CHECK-LABEL: test_vst4_lane_s32 2003 vst4_lane_s32(a, b, 1); 2004 // CHECK: st4 {v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s}[1], [{{x[0-9]+|sp}}] 2005 } 2006 2007 void test_vst4_lane_s64(int64_t const *a, int64x1x4_t b) { 2008 // CHECK-LABEL: test_vst4_lane_s64 2009 vst4_lane_s64(a, b, 0); 2010 // CHECK: st4 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 2011 } 2012 2013 void test_vst4_lane_f16(float16_t const *a, float16x4x4_t b) { 2014 // CHECK-LABEL: test_vst4_lane_f16 2015 vst4_lane_f16(a, b, 3); 2016 // CHECK: st4 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 2017 } 2018 2019 void test_vst4_lane_f32(float32_t const *a, float32x2x4_t b) { 2020 // CHECK-LABEL: test_vst4_lane_f32 2021 vst4_lane_f32(a, b, 1); 2022 // CHECK: st4 {v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s, v{{[0-9]+}}.s}[1], [{{x[0-9]+|sp}}] 2023 } 2024 2025 void test_vst4_lane_f64(float64_t const *a, float64x1x4_t b) { 2026 // CHECK-LABEL: test_vst4_lane_f64 2027 vst4_lane_f64(a, b, 0); 2028 // CHECK: st4 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 2029 } 2030 2031 void test_vst4_lane_p8(poly8_t const *a, poly8x8x4_t b) { 2032 // CHECK-LABEL: test_vst4_lane_p8 2033 vst4_lane_p8(a, b, 7); 2034 // CHECK: st4 {v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b, v{{[0-9]+}}.b}[7], [{{x[0-9]+|sp}}] 2035 } 2036 2037 void test_vst4_lane_p16(poly16_t const *a, poly16x4x4_t b) { 2038 // CHECK-LABEL: test_vst4_lane_p16 2039 vst4_lane_p16(a, b, 3); 2040 // CHECK: st4 {v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h, v{{[0-9]+}}.h}[3], [{{x[0-9]+|sp}}] 2041 } 2042 2043 void test_vst4_lane_p64(poly64_t const *a, poly64x1x4_t b) { 2044 // CHECK-LABEL: test_vst4_lane_p64 2045 vst4_lane_p64(a, b, 0); 2046 // CHECK: st4 {v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d, v{{[0-9]+}}.d}[0], [{{x[0-9]+|sp}}] 2047 } 2048