@@ -12,7 +12,7 @@ define <vscale x 16 x i8> @ld_nxv16i8(ptr %0) #0 {
12
12
;
13
13
; CHECK-128-LABEL: ld_nxv16i8:
14
14
; CHECK-128: // %bb.0:
15
- ; CHECK-128-NEXT: ldr z0 , [x0]
15
+ ; CHECK-128-NEXT: ldr q0 , [x0]
16
16
; CHECK-128-NEXT: ret
17
17
%2 = load <vscale x 16 x i8 >, ptr %0 , align 16
18
18
ret <vscale x 16 x i8 > %2
@@ -26,7 +26,7 @@ define void @st_nxv16i8(ptr %0, <vscale x 16 x i8> %1) #0 {
26
26
;
27
27
; CHECK-128-LABEL: st_nxv16i8:
28
28
; CHECK-128: // %bb.0:
29
- ; CHECK-128-NEXT: str z0 , [x0]
29
+ ; CHECK-128-NEXT: str q0 , [x0]
30
30
; CHECK-128-NEXT: ret
31
31
store <vscale x 16 x i8 > %1 , ptr %0 , align 16
32
32
ret void
@@ -40,7 +40,7 @@ define <vscale x 8 x i16> @ld_nxv8i16(ptr %0) #0 {
40
40
;
41
41
; CHECK-128-LABEL: ld_nxv8i16:
42
42
; CHECK-128: // %bb.0:
43
- ; CHECK-128-NEXT: ldr z0 , [x0]
43
+ ; CHECK-128-NEXT: ldr q0 , [x0]
44
44
; CHECK-128-NEXT: ret
45
45
%2 = load <vscale x 8 x i16 >, ptr %0 , align 16
46
46
ret <vscale x 8 x i16 > %2
@@ -54,7 +54,7 @@ define void @st_nxv8i16(ptr %0, <vscale x 8 x i16> %1) #0 {
54
54
;
55
55
; CHECK-128-LABEL: st_nxv8i16:
56
56
; CHECK-128: // %bb.0:
57
- ; CHECK-128-NEXT: str z0 , [x0]
57
+ ; CHECK-128-NEXT: str q0 , [x0]
58
58
; CHECK-128-NEXT: ret
59
59
store <vscale x 8 x i16 > %1 , ptr %0 , align 16
60
60
ret void
@@ -68,7 +68,7 @@ define <vscale x 4 x i32> @ld_nxv4i32(ptr %0) #0 {
68
68
;
69
69
; CHECK-128-LABEL: ld_nxv4i32:
70
70
; CHECK-128: // %bb.0:
71
- ; CHECK-128-NEXT: ldr z0 , [x0]
71
+ ; CHECK-128-NEXT: ldr q0 , [x0]
72
72
; CHECK-128-NEXT: ret
73
73
%2 = load <vscale x 4 x i32 >, ptr %0 , align 16
74
74
ret <vscale x 4 x i32 > %2
@@ -82,7 +82,7 @@ define void @st_nxv4i32(ptr %0, <vscale x 4 x i32> %1) #0 {
82
82
;
83
83
; CHECK-128-LABEL: st_nxv4i32:
84
84
; CHECK-128: // %bb.0:
85
- ; CHECK-128-NEXT: str z0 , [x0]
85
+ ; CHECK-128-NEXT: str q0 , [x0]
86
86
; CHECK-128-NEXT: ret
87
87
store <vscale x 4 x i32 > %1 , ptr %0 , align 16
88
88
ret void
@@ -96,7 +96,7 @@ define <vscale x 2 x i64> @ld_nxv2i64(ptr %0) #0 {
96
96
;
97
97
; CHECK-128-LABEL: ld_nxv2i64:
98
98
; CHECK-128: // %bb.0:
99
- ; CHECK-128-NEXT: ldr z0 , [x0]
99
+ ; CHECK-128-NEXT: ldr q0 , [x0]
100
100
; CHECK-128-NEXT: ret
101
101
%2 = load <vscale x 2 x i64 >, ptr %0 , align 16
102
102
ret <vscale x 2 x i64 > %2
@@ -110,7 +110,7 @@ define void @st_nxv2i64(ptr %0, <vscale x 2 x i64> %1) #0 {
110
110
;
111
111
; CHECK-128-LABEL: st_nxv2i64:
112
112
; CHECK-128: // %bb.0:
113
- ; CHECK-128-NEXT: str z0 , [x0]
113
+ ; CHECK-128-NEXT: str q0 , [x0]
114
114
; CHECK-128-NEXT: ret
115
115
store <vscale x 2 x i64 > %1 , ptr %0 , align 16
116
116
ret void
@@ -124,7 +124,7 @@ define <vscale x 8 x half> @ld_nxv8f16(ptr %0) #0 {
124
124
;
125
125
; CHECK-128-LABEL: ld_nxv8f16:
126
126
; CHECK-128: // %bb.0:
127
- ; CHECK-128-NEXT: ldr z0 , [x0]
127
+ ; CHECK-128-NEXT: ldr q0 , [x0]
128
128
; CHECK-128-NEXT: ret
129
129
%2 = load <vscale x 8 x half >, ptr %0 , align 16
130
130
ret <vscale x 8 x half > %2
@@ -138,7 +138,7 @@ define void @st_nxv8f16(ptr %0, <vscale x 8 x half> %1) #0 {
138
138
;
139
139
; CHECK-128-LABEL: st_nxv8f16:
140
140
; CHECK-128: // %bb.0:
141
- ; CHECK-128-NEXT: str z0 , [x0]
141
+ ; CHECK-128-NEXT: str q0 , [x0]
142
142
; CHECK-128-NEXT: ret
143
143
store <vscale x 8 x half > %1 , ptr %0 , align 16
144
144
ret void
@@ -152,7 +152,7 @@ define <vscale x 4 x float> @ld_nxv4f32(ptr %0) #0 {
152
152
;
153
153
; CHECK-128-LABEL: ld_nxv4f32:
154
154
; CHECK-128: // %bb.0:
155
- ; CHECK-128-NEXT: ldr z0 , [x0]
155
+ ; CHECK-128-NEXT: ldr q0 , [x0]
156
156
; CHECK-128-NEXT: ret
157
157
%2 = load <vscale x 4 x float >, ptr %0 , align 16
158
158
ret <vscale x 4 x float > %2
@@ -166,7 +166,7 @@ define void @st_nxv4f32(ptr %0, <vscale x 4 x float> %1) #0 {
166
166
;
167
167
; CHECK-128-LABEL: st_nxv4f32:
168
168
; CHECK-128: // %bb.0:
169
- ; CHECK-128-NEXT: str z0 , [x0]
169
+ ; CHECK-128-NEXT: str q0 , [x0]
170
170
; CHECK-128-NEXT: ret
171
171
store <vscale x 4 x float > %1 , ptr %0 , align 16
172
172
ret void
@@ -180,7 +180,7 @@ define <vscale x 2 x double> @ld_nxv2f64(ptr %0) #0 {
180
180
;
181
181
; CHECK-128-LABEL: ld_nxv2f64:
182
182
; CHECK-128: // %bb.0:
183
- ; CHECK-128-NEXT: ldr z0 , [x0]
183
+ ; CHECK-128-NEXT: ldr q0 , [x0]
184
184
; CHECK-128-NEXT: ret
185
185
%2 = load <vscale x 2 x double >, ptr %0 , align 16
186
186
ret <vscale x 2 x double > %2
@@ -194,7 +194,7 @@ define void @st_nxv2f64(ptr %0, <vscale x 2 x double> %1) #0 {
194
194
;
195
195
; CHECK-128-LABEL: st_nxv2f64:
196
196
; CHECK-128: // %bb.0:
197
- ; CHECK-128-NEXT: str z0 , [x0]
197
+ ; CHECK-128-NEXT: str q0 , [x0]
198
198
; CHECK-128-NEXT: ret
199
199
store <vscale x 2 x double > %1 , ptr %0 , align 16
200
200
ret void
@@ -208,7 +208,8 @@ define <vscale x 16 x i8> @ld_nxv16i8_offset(ptr %0) #0 {
208
208
;
209
209
; CHECK-128-LABEL: ld_nxv16i8_offset:
210
210
; CHECK-128: // %bb.0:
211
- ; CHECK-128-NEXT: ldr z0, [x0, #1, mul vl]
211
+ ; CHECK-128-NEXT: rdvl x8, #1
212
+ ; CHECK-128-NEXT: ldr q0, [x0, x8]
212
213
; CHECK-128-NEXT: ret
213
214
%2 = tail call i64 @llvm.vscale.i64 ()
214
215
%3 = shl nuw nsw i64 %2 , 4
@@ -225,7 +226,8 @@ define void @st_nxv16i8_offset(ptr %0, <vscale x 16 x i8> %1) #0 {
225
226
;
226
227
; CHECK-128-LABEL: st_nxv16i8_offset:
227
228
; CHECK-128: // %bb.0:
228
- ; CHECK-128-NEXT: str z0, [x0, #1, mul vl]
229
+ ; CHECK-128-NEXT: rdvl x8, #1
230
+ ; CHECK-128-NEXT: str q0, [x0, x8]
229
231
; CHECK-128-NEXT: ret
230
232
%3 = tail call i64 @llvm.vscale.i64 ()
231
233
%4 = shl nuw nsw i64 %3 , 4
@@ -242,7 +244,8 @@ define <vscale x 8 x i16> @ld_nxv8i16_offset(ptr %0) #0 {
242
244
;
243
245
; CHECK-128-LABEL: ld_nxv8i16_offset:
244
246
; CHECK-128: // %bb.0:
245
- ; CHECK-128-NEXT: ldr z0, [x0, #1, mul vl]
247
+ ; CHECK-128-NEXT: rdvl x8, #1
248
+ ; CHECK-128-NEXT: ldr q0, [x0, x8]
246
249
; CHECK-128-NEXT: ret
247
250
%2 = tail call i64 @llvm.vscale.i64 ()
248
251
%3 = shl nuw nsw i64 %2 , 4
@@ -259,7 +262,8 @@ define void @st_nxv8i16_offset(ptr %0, <vscale x 8 x i16> %1) #0 {
259
262
;
260
263
; CHECK-128-LABEL: st_nxv8i16_offset:
261
264
; CHECK-128: // %bb.0:
262
- ; CHECK-128-NEXT: str z0, [x0, #1, mul vl]
265
+ ; CHECK-128-NEXT: rdvl x8, #1
266
+ ; CHECK-128-NEXT: str q0, [x0, x8]
263
267
; CHECK-128-NEXT: ret
264
268
%3 = tail call i64 @llvm.vscale.i64 ()
265
269
%4 = shl nuw nsw i64 %3 , 4
@@ -276,7 +280,8 @@ define <vscale x 4 x i32> @ld_nxv4i32_offset(ptr %0) #0 {
276
280
;
277
281
; CHECK-128-LABEL: ld_nxv4i32_offset:
278
282
; CHECK-128: // %bb.0:
279
- ; CHECK-128-NEXT: ldr z0, [x0, #1, mul vl]
283
+ ; CHECK-128-NEXT: rdvl x8, #1
284
+ ; CHECK-128-NEXT: ldr q0, [x0, x8]
280
285
; CHECK-128-NEXT: ret
281
286
%2 = tail call i64 @llvm.vscale.i64 ()
282
287
%3 = shl nuw nsw i64 %2 , 4
@@ -293,7 +298,8 @@ define void @st_nxv4i32_offset(ptr %0, <vscale x 4 x i32> %1) #0 {
293
298
;
294
299
; CHECK-128-LABEL: st_nxv4i32_offset:
295
300
; CHECK-128: // %bb.0:
296
- ; CHECK-128-NEXT: str z0, [x0, #1, mul vl]
301
+ ; CHECK-128-NEXT: rdvl x8, #1
302
+ ; CHECK-128-NEXT: str q0, [x0, x8]
297
303
; CHECK-128-NEXT: ret
298
304
%3 = tail call i64 @llvm.vscale.i64 ()
299
305
%4 = shl nuw nsw i64 %3 , 4
@@ -310,7 +316,8 @@ define <vscale x 2 x i64> @ld_nxv2i64_offset(ptr %0) #0 {
310
316
;
311
317
; CHECK-128-LABEL: ld_nxv2i64_offset:
312
318
; CHECK-128: // %bb.0:
313
- ; CHECK-128-NEXT: ldr z0, [x0, #1, mul vl]
319
+ ; CHECK-128-NEXT: rdvl x8, #1
320
+ ; CHECK-128-NEXT: ldr q0, [x0, x8]
314
321
; CHECK-128-NEXT: ret
315
322
%2 = tail call i64 @llvm.vscale.i64 ()
316
323
%3 = shl nuw nsw i64 %2 , 4
@@ -327,7 +334,8 @@ define void @st_nxv2i64_offset(ptr %0, <vscale x 2 x i64> %1) #0 {
327
334
;
328
335
; CHECK-128-LABEL: st_nxv2i64_offset:
329
336
; CHECK-128: // %bb.0:
330
- ; CHECK-128-NEXT: str z0, [x0, #1, mul vl]
337
+ ; CHECK-128-NEXT: rdvl x8, #1
338
+ ; CHECK-128-NEXT: str q0, [x0, x8]
331
339
; CHECK-128-NEXT: ret
332
340
%3 = tail call i64 @llvm.vscale.i64 ()
333
341
%4 = shl nuw nsw i64 %3 , 4
@@ -344,7 +352,8 @@ define <vscale x 8 x half> @ld_nxv8f16_offset(ptr %0) #0 {
344
352
;
345
353
; CHECK-128-LABEL: ld_nxv8f16_offset:
346
354
; CHECK-128: // %bb.0:
347
- ; CHECK-128-NEXT: ldr z0, [x0, #1, mul vl]
355
+ ; CHECK-128-NEXT: rdvl x8, #1
356
+ ; CHECK-128-NEXT: ldr q0, [x0, x8]
348
357
; CHECK-128-NEXT: ret
349
358
%2 = tail call i64 @llvm.vscale.i64 ()
350
359
%3 = shl nuw nsw i64 %2 , 4
@@ -361,7 +370,8 @@ define void @st_nxv8f16_offset(ptr %0, <vscale x 8 x half> %1) #0 {
361
370
;
362
371
; CHECK-128-LABEL: st_nxv8f16_offset:
363
372
; CHECK-128: // %bb.0:
364
- ; CHECK-128-NEXT: str z0, [x0, #1, mul vl]
373
+ ; CHECK-128-NEXT: rdvl x8, #1
374
+ ; CHECK-128-NEXT: str q0, [x0, x8]
365
375
; CHECK-128-NEXT: ret
366
376
%3 = tail call i64 @llvm.vscale.i64 ()
367
377
%4 = shl nuw nsw i64 %3 , 4
@@ -378,7 +388,8 @@ define <vscale x 4 x float> @ld_nxv4f32_offset(ptr %0) #0 {
378
388
;
379
389
; CHECK-128-LABEL: ld_nxv4f32_offset:
380
390
; CHECK-128: // %bb.0:
381
- ; CHECK-128-NEXT: ldr z0, [x0, #1, mul vl]
391
+ ; CHECK-128-NEXT: rdvl x8, #1
392
+ ; CHECK-128-NEXT: ldr q0, [x0, x8]
382
393
; CHECK-128-NEXT: ret
383
394
%2 = tail call i64 @llvm.vscale.i64 ()
384
395
%3 = shl nuw nsw i64 %2 , 4
@@ -395,7 +406,8 @@ define void @st_nxv4f32_offset(ptr %0, <vscale x 4 x float> %1) #0 {
395
406
;
396
407
; CHECK-128-LABEL: st_nxv4f32_offset:
397
408
; CHECK-128: // %bb.0:
398
- ; CHECK-128-NEXT: str z0, [x0, #1, mul vl]
409
+ ; CHECK-128-NEXT: rdvl x8, #1
410
+ ; CHECK-128-NEXT: str q0, [x0, x8]
399
411
; CHECK-128-NEXT: ret
400
412
%3 = tail call i64 @llvm.vscale.i64 ()
401
413
%4 = shl nuw nsw i64 %3 , 4
@@ -412,7 +424,8 @@ define <vscale x 2 x double> @ld_nxv2f64_offset(ptr %0) #0 {
412
424
;
413
425
; CHECK-128-LABEL: ld_nxv2f64_offset:
414
426
; CHECK-128: // %bb.0:
415
- ; CHECK-128-NEXT: ldr z0, [x0, #1, mul vl]
427
+ ; CHECK-128-NEXT: rdvl x8, #1
428
+ ; CHECK-128-NEXT: ldr q0, [x0, x8]
416
429
; CHECK-128-NEXT: ret
417
430
%2 = tail call i64 @llvm.vscale.i64 ()
418
431
%3 = shl nuw nsw i64 %2 , 4
@@ -429,7 +442,8 @@ define void @st_nxv2f64_offset(ptr %0, <vscale x 2 x double> %1) #0 {
429
442
;
430
443
; CHECK-128-LABEL: st_nxv2f64_offset:
431
444
; CHECK-128: // %bb.0:
432
- ; CHECK-128-NEXT: str z0, [x0, #1, mul vl]
445
+ ; CHECK-128-NEXT: rdvl x8, #1
446
+ ; CHECK-128-NEXT: str q0, [x0, x8]
433
447
; CHECK-128-NEXT: ret
434
448
%3 = tail call i64 @llvm.vscale.i64 ()
435
449
%4 = shl nuw nsw i64 %3 , 4
0 commit comments