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