@@ -182,43 +182,77 @@ define void @frame_4kb() {
182
182
}
183
183
184
184
define void @frame_4kb_offset_128 () {
185
- ; RV32 -LABEL: frame_4kb_offset_128:
186
- ; RV32 : # %bb.0:
187
- ; RV32 -NEXT: addi sp, sp, -2032
188
- ; RV32 -NEXT: .cfi_def_cfa_offset 2032
189
- ; RV32 -NEXT: sw ra, 2028(sp) # 4-byte Folded Spill
190
- ; RV32 -NEXT: .cfi_offset ra, -4
191
- ; RV32 -NEXT: lui a0, 1
192
- ; RV32 -NEXT: addi a0, a0, 128
193
- ; RV32 -NEXT: sub sp, sp, a0
194
- ; RV32 -NEXT: .cfi_def_cfa_offset 6256
195
- ; RV32 -NEXT: addi a0, sp, 12
196
- ; RV32 -NEXT: call callee
197
- ; RV32 -NEXT: lui a0, 1
198
- ; RV32 -NEXT: addi a0, a0, 128
199
- ; RV32 -NEXT: add sp, sp, a0
200
- ; RV32 -NEXT: lw ra, 2028(sp) # 4-byte Folded Reload
201
- ; RV32 -NEXT: addi sp, sp, 2032
202
- ; RV32 -NEXT: ret
185
+ ; RV32I -LABEL: frame_4kb_offset_128:
186
+ ; RV32I : # %bb.0:
187
+ ; RV32I -NEXT: addi sp, sp, -2032
188
+ ; RV32I -NEXT: .cfi_def_cfa_offset 2032
189
+ ; RV32I -NEXT: sw ra, 2028(sp) # 4-byte Folded Spill
190
+ ; RV32I -NEXT: .cfi_offset ra, -4
191
+ ; RV32I -NEXT: lui a0, 1
192
+ ; RV32I -NEXT: addi a0, a0, 128
193
+ ; RV32I -NEXT: sub sp, sp, a0
194
+ ; RV32I -NEXT: .cfi_def_cfa_offset 6256
195
+ ; RV32I -NEXT: addi a0, sp, 12
196
+ ; RV32I -NEXT: call callee
197
+ ; RV32I -NEXT: lui a0, 1
198
+ ; RV32I -NEXT: addi a0, a0, 128
199
+ ; RV32I -NEXT: add sp, sp, a0
200
+ ; RV32I -NEXT: lw ra, 2028(sp) # 4-byte Folded Reload
201
+ ; RV32I -NEXT: addi sp, sp, 2032
202
+ ; RV32I -NEXT: ret
203
203
;
204
- ; RV64-LABEL: frame_4kb_offset_128:
205
- ; RV64: # %bb.0:
206
- ; RV64-NEXT: addi sp, sp, -2032
207
- ; RV64-NEXT: .cfi_def_cfa_offset 2032
208
- ; RV64-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill
209
- ; RV64-NEXT: .cfi_offset ra, -8
210
- ; RV64-NEXT: lui a0, 1
211
- ; RV64-NEXT: addiw a0, a0, 128
212
- ; RV64-NEXT: sub sp, sp, a0
213
- ; RV64-NEXT: .cfi_def_cfa_offset 6256
214
- ; RV64-NEXT: addi a0, sp, 8
215
- ; RV64-NEXT: call callee
216
- ; RV64-NEXT: lui a0, 1
217
- ; RV64-NEXT: addiw a0, a0, 128
218
- ; RV64-NEXT: add sp, sp, a0
219
- ; RV64-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload
220
- ; RV64-NEXT: addi sp, sp, 2032
221
- ; RV64-NEXT: ret
204
+ ; RV32ZBA-LABEL: frame_4kb_offset_128:
205
+ ; RV32ZBA: # %bb.0:
206
+ ; RV32ZBA-NEXT: addi sp, sp, -2032
207
+ ; RV32ZBA-NEXT: .cfi_def_cfa_offset 2032
208
+ ; RV32ZBA-NEXT: sw ra, 2028(sp) # 4-byte Folded Spill
209
+ ; RV32ZBA-NEXT: .cfi_offset ra, -4
210
+ ; RV32ZBA-NEXT: li a0, -528
211
+ ; RV32ZBA-NEXT: sh3add sp, a0, sp
212
+ ; RV32ZBA-NEXT: .cfi_def_cfa_offset 6256
213
+ ; RV32ZBA-NEXT: addi a0, sp, 12
214
+ ; RV32ZBA-NEXT: call callee
215
+ ; RV32ZBA-NEXT: li a0, 528
216
+ ; RV32ZBA-NEXT: sh3add sp, a0, sp
217
+ ; RV32ZBA-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload
218
+ ; RV32ZBA-NEXT: addi sp, sp, 2032
219
+ ; RV32ZBA-NEXT: ret
220
+ ;
221
+ ; RV64I-LABEL: frame_4kb_offset_128:
222
+ ; RV64I: # %bb.0:
223
+ ; RV64I-NEXT: addi sp, sp, -2032
224
+ ; RV64I-NEXT: .cfi_def_cfa_offset 2032
225
+ ; RV64I-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill
226
+ ; RV64I-NEXT: .cfi_offset ra, -8
227
+ ; RV64I-NEXT: lui a0, 1
228
+ ; RV64I-NEXT: addiw a0, a0, 128
229
+ ; RV64I-NEXT: sub sp, sp, a0
230
+ ; RV64I-NEXT: .cfi_def_cfa_offset 6256
231
+ ; RV64I-NEXT: addi a0, sp, 8
232
+ ; RV64I-NEXT: call callee
233
+ ; RV64I-NEXT: lui a0, 1
234
+ ; RV64I-NEXT: addiw a0, a0, 128
235
+ ; RV64I-NEXT: add sp, sp, a0
236
+ ; RV64I-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload
237
+ ; RV64I-NEXT: addi sp, sp, 2032
238
+ ; RV64I-NEXT: ret
239
+ ;
240
+ ; RV64ZBA-LABEL: frame_4kb_offset_128:
241
+ ; RV64ZBA: # %bb.0:
242
+ ; RV64ZBA-NEXT: addi sp, sp, -2032
243
+ ; RV64ZBA-NEXT: .cfi_def_cfa_offset 2032
244
+ ; RV64ZBA-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill
245
+ ; RV64ZBA-NEXT: .cfi_offset ra, -8
246
+ ; RV64ZBA-NEXT: li a0, -528
247
+ ; RV64ZBA-NEXT: sh3add sp, a0, sp
248
+ ; RV64ZBA-NEXT: .cfi_def_cfa_offset 6256
249
+ ; RV64ZBA-NEXT: addi a0, sp, 8
250
+ ; RV64ZBA-NEXT: call callee
251
+ ; RV64ZBA-NEXT: li a0, 528
252
+ ; RV64ZBA-NEXT: sh3add sp, a0, sp
253
+ ; RV64ZBA-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload
254
+ ; RV64ZBA-NEXT: addi sp, sp, 2032
255
+ ; RV64ZBA-NEXT: ret
222
256
%a = alloca [6240 x i8 ]
223
257
call void @callee (ptr %a )
224
258
ret void
@@ -266,86 +300,154 @@ define void @frame_8kb() {
266
300
}
267
301
268
302
define void @frame_8kb_offset_128 () {
269
- ; RV32 -LABEL: frame_8kb_offset_128:
270
- ; RV32 : # %bb.0:
271
- ; RV32 -NEXT: addi sp, sp, -2032
272
- ; RV32 -NEXT: .cfi_def_cfa_offset 2032
273
- ; RV32 -NEXT: sw ra, 2028(sp) # 4-byte Folded Spill
274
- ; RV32 -NEXT: .cfi_offset ra, -4
275
- ; RV32 -NEXT: lui a0, 2
276
- ; RV32 -NEXT: addi a0, a0, 128
277
- ; RV32 -NEXT: sub sp, sp, a0
278
- ; RV32 -NEXT: .cfi_def_cfa_offset 10352
279
- ; RV32 -NEXT: addi a0, sp, 12
280
- ; RV32 -NEXT: call callee
281
- ; RV32 -NEXT: lui a0, 2
282
- ; RV32 -NEXT: addi a0, a0, 128
283
- ; RV32 -NEXT: add sp, sp, a0
284
- ; RV32 -NEXT: lw ra, 2028(sp) # 4-byte Folded Reload
285
- ; RV32 -NEXT: addi sp, sp, 2032
286
- ; RV32 -NEXT: ret
303
+ ; RV32I -LABEL: frame_8kb_offset_128:
304
+ ; RV32I : # %bb.0:
305
+ ; RV32I -NEXT: addi sp, sp, -2032
306
+ ; RV32I -NEXT: .cfi_def_cfa_offset 2032
307
+ ; RV32I -NEXT: sw ra, 2028(sp) # 4-byte Folded Spill
308
+ ; RV32I -NEXT: .cfi_offset ra, -4
309
+ ; RV32I -NEXT: lui a0, 2
310
+ ; RV32I -NEXT: addi a0, a0, 128
311
+ ; RV32I -NEXT: sub sp, sp, a0
312
+ ; RV32I -NEXT: .cfi_def_cfa_offset 10352
313
+ ; RV32I -NEXT: addi a0, sp, 12
314
+ ; RV32I -NEXT: call callee
315
+ ; RV32I -NEXT: lui a0, 2
316
+ ; RV32I -NEXT: addi a0, a0, 128
317
+ ; RV32I -NEXT: add sp, sp, a0
318
+ ; RV32I -NEXT: lw ra, 2028(sp) # 4-byte Folded Reload
319
+ ; RV32I -NEXT: addi sp, sp, 2032
320
+ ; RV32I -NEXT: ret
287
321
;
288
- ; RV64-LABEL: frame_8kb_offset_128:
289
- ; RV64: # %bb.0:
290
- ; RV64-NEXT: addi sp, sp, -2032
291
- ; RV64-NEXT: .cfi_def_cfa_offset 2032
292
- ; RV64-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill
293
- ; RV64-NEXT: .cfi_offset ra, -8
294
- ; RV64-NEXT: lui a0, 2
295
- ; RV64-NEXT: addiw a0, a0, 128
296
- ; RV64-NEXT: sub sp, sp, a0
297
- ; RV64-NEXT: .cfi_def_cfa_offset 10352
298
- ; RV64-NEXT: addi a0, sp, 8
299
- ; RV64-NEXT: call callee
300
- ; RV64-NEXT: lui a0, 2
301
- ; RV64-NEXT: addiw a0, a0, 128
302
- ; RV64-NEXT: add sp, sp, a0
303
- ; RV64-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload
304
- ; RV64-NEXT: addi sp, sp, 2032
305
- ; RV64-NEXT: ret
322
+ ; RV32ZBA-LABEL: frame_8kb_offset_128:
323
+ ; RV32ZBA: # %bb.0:
324
+ ; RV32ZBA-NEXT: addi sp, sp, -2032
325
+ ; RV32ZBA-NEXT: .cfi_def_cfa_offset 2032
326
+ ; RV32ZBA-NEXT: sw ra, 2028(sp) # 4-byte Folded Spill
327
+ ; RV32ZBA-NEXT: .cfi_offset ra, -4
328
+ ; RV32ZBA-NEXT: li a0, -1040
329
+ ; RV32ZBA-NEXT: sh3add sp, a0, sp
330
+ ; RV32ZBA-NEXT: .cfi_def_cfa_offset 10352
331
+ ; RV32ZBA-NEXT: addi a0, sp, 12
332
+ ; RV32ZBA-NEXT: call callee
333
+ ; RV32ZBA-NEXT: li a0, 1040
334
+ ; RV32ZBA-NEXT: sh3add sp, a0, sp
335
+ ; RV32ZBA-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload
336
+ ; RV32ZBA-NEXT: addi sp, sp, 2032
337
+ ; RV32ZBA-NEXT: ret
338
+ ;
339
+ ; RV64I-LABEL: frame_8kb_offset_128:
340
+ ; RV64I: # %bb.0:
341
+ ; RV64I-NEXT: addi sp, sp, -2032
342
+ ; RV64I-NEXT: .cfi_def_cfa_offset 2032
343
+ ; RV64I-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill
344
+ ; RV64I-NEXT: .cfi_offset ra, -8
345
+ ; RV64I-NEXT: lui a0, 2
346
+ ; RV64I-NEXT: addiw a0, a0, 128
347
+ ; RV64I-NEXT: sub sp, sp, a0
348
+ ; RV64I-NEXT: .cfi_def_cfa_offset 10352
349
+ ; RV64I-NEXT: addi a0, sp, 8
350
+ ; RV64I-NEXT: call callee
351
+ ; RV64I-NEXT: lui a0, 2
352
+ ; RV64I-NEXT: addiw a0, a0, 128
353
+ ; RV64I-NEXT: add sp, sp, a0
354
+ ; RV64I-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload
355
+ ; RV64I-NEXT: addi sp, sp, 2032
356
+ ; RV64I-NEXT: ret
357
+ ;
358
+ ; RV64ZBA-LABEL: frame_8kb_offset_128:
359
+ ; RV64ZBA: # %bb.0:
360
+ ; RV64ZBA-NEXT: addi sp, sp, -2032
361
+ ; RV64ZBA-NEXT: .cfi_def_cfa_offset 2032
362
+ ; RV64ZBA-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill
363
+ ; RV64ZBA-NEXT: .cfi_offset ra, -8
364
+ ; RV64ZBA-NEXT: li a0, -1040
365
+ ; RV64ZBA-NEXT: sh3add sp, a0, sp
366
+ ; RV64ZBA-NEXT: .cfi_def_cfa_offset 10352
367
+ ; RV64ZBA-NEXT: addi a0, sp, 8
368
+ ; RV64ZBA-NEXT: call callee
369
+ ; RV64ZBA-NEXT: li a0, 1040
370
+ ; RV64ZBA-NEXT: sh3add sp, a0, sp
371
+ ; RV64ZBA-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload
372
+ ; RV64ZBA-NEXT: addi sp, sp, 2032
373
+ ; RV64ZBA-NEXT: ret
306
374
%a = alloca [10336 x i8 ]
307
375
call void @callee (ptr %a )
308
376
ret void
309
377
}
310
378
311
379
define void @frame_16kb_minus_80 () {
312
- ; RV32 -LABEL: frame_16kb_minus_80:
313
- ; RV32 : # %bb.0:
314
- ; RV32 -NEXT: addi sp, sp, -2032
315
- ; RV32 -NEXT: .cfi_def_cfa_offset 2032
316
- ; RV32 -NEXT: sw ra, 2028(sp) # 4-byte Folded Spill
317
- ; RV32 -NEXT: .cfi_offset ra, -4
318
- ; RV32 -NEXT: lui a0, 4
319
- ; RV32 -NEXT: addi a0, a0, -80
320
- ; RV32 -NEXT: sub sp, sp, a0
321
- ; RV32 -NEXT: .cfi_def_cfa_offset 18336
322
- ; RV32 -NEXT: addi a0, sp, 12
323
- ; RV32 -NEXT: call callee
324
- ; RV32 -NEXT: lui a0, 4
325
- ; RV32 -NEXT: addi a0, a0, -80
326
- ; RV32 -NEXT: add sp, sp, a0
327
- ; RV32 -NEXT: lw ra, 2028(sp) # 4-byte Folded Reload
328
- ; RV32 -NEXT: addi sp, sp, 2032
329
- ; RV32 -NEXT: ret
380
+ ; RV32I -LABEL: frame_16kb_minus_80:
381
+ ; RV32I : # %bb.0:
382
+ ; RV32I -NEXT: addi sp, sp, -2032
383
+ ; RV32I -NEXT: .cfi_def_cfa_offset 2032
384
+ ; RV32I -NEXT: sw ra, 2028(sp) # 4-byte Folded Spill
385
+ ; RV32I -NEXT: .cfi_offset ra, -4
386
+ ; RV32I -NEXT: lui a0, 4
387
+ ; RV32I -NEXT: addi a0, a0, -80
388
+ ; RV32I -NEXT: sub sp, sp, a0
389
+ ; RV32I -NEXT: .cfi_def_cfa_offset 18336
390
+ ; RV32I -NEXT: addi a0, sp, 12
391
+ ; RV32I -NEXT: call callee
392
+ ; RV32I -NEXT: lui a0, 4
393
+ ; RV32I -NEXT: addi a0, a0, -80
394
+ ; RV32I -NEXT: add sp, sp, a0
395
+ ; RV32I -NEXT: lw ra, 2028(sp) # 4-byte Folded Reload
396
+ ; RV32I -NEXT: addi sp, sp, 2032
397
+ ; RV32I -NEXT: ret
330
398
;
331
- ; RV64-LABEL: frame_16kb_minus_80:
332
- ; RV64: # %bb.0:
333
- ; RV64-NEXT: addi sp, sp, -2032
334
- ; RV64-NEXT: .cfi_def_cfa_offset 2032
335
- ; RV64-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill
336
- ; RV64-NEXT: .cfi_offset ra, -8
337
- ; RV64-NEXT: lui a0, 4
338
- ; RV64-NEXT: addiw a0, a0, -80
339
- ; RV64-NEXT: sub sp, sp, a0
340
- ; RV64-NEXT: .cfi_def_cfa_offset 18336
341
- ; RV64-NEXT: addi a0, sp, 8
342
- ; RV64-NEXT: call callee
343
- ; RV64-NEXT: lui a0, 4
344
- ; RV64-NEXT: addiw a0, a0, -80
345
- ; RV64-NEXT: add sp, sp, a0
346
- ; RV64-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload
347
- ; RV64-NEXT: addi sp, sp, 2032
348
- ; RV64-NEXT: ret
399
+ ; RV32ZBA-LABEL: frame_16kb_minus_80:
400
+ ; RV32ZBA: # %bb.0:
401
+ ; RV32ZBA-NEXT: addi sp, sp, -2032
402
+ ; RV32ZBA-NEXT: .cfi_def_cfa_offset 2032
403
+ ; RV32ZBA-NEXT: sw ra, 2028(sp) # 4-byte Folded Spill
404
+ ; RV32ZBA-NEXT: .cfi_offset ra, -4
405
+ ; RV32ZBA-NEXT: li a0, -2038
406
+ ; RV32ZBA-NEXT: sh3add sp, a0, sp
407
+ ; RV32ZBA-NEXT: .cfi_def_cfa_offset 18336
408
+ ; RV32ZBA-NEXT: addi a0, sp, 12
409
+ ; RV32ZBA-NEXT: call callee
410
+ ; RV32ZBA-NEXT: li a0, 2038
411
+ ; RV32ZBA-NEXT: sh3add sp, a0, sp
412
+ ; RV32ZBA-NEXT: lw ra, 2028(sp) # 4-byte Folded Reload
413
+ ; RV32ZBA-NEXT: addi sp, sp, 2032
414
+ ; RV32ZBA-NEXT: ret
415
+ ;
416
+ ; RV64I-LABEL: frame_16kb_minus_80:
417
+ ; RV64I: # %bb.0:
418
+ ; RV64I-NEXT: addi sp, sp, -2032
419
+ ; RV64I-NEXT: .cfi_def_cfa_offset 2032
420
+ ; RV64I-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill
421
+ ; RV64I-NEXT: .cfi_offset ra, -8
422
+ ; RV64I-NEXT: lui a0, 4
423
+ ; RV64I-NEXT: addiw a0, a0, -80
424
+ ; RV64I-NEXT: sub sp, sp, a0
425
+ ; RV64I-NEXT: .cfi_def_cfa_offset 18336
426
+ ; RV64I-NEXT: addi a0, sp, 8
427
+ ; RV64I-NEXT: call callee
428
+ ; RV64I-NEXT: lui a0, 4
429
+ ; RV64I-NEXT: addiw a0, a0, -80
430
+ ; RV64I-NEXT: add sp, sp, a0
431
+ ; RV64I-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload
432
+ ; RV64I-NEXT: addi sp, sp, 2032
433
+ ; RV64I-NEXT: ret
434
+ ;
435
+ ; RV64ZBA-LABEL: frame_16kb_minus_80:
436
+ ; RV64ZBA: # %bb.0:
437
+ ; RV64ZBA-NEXT: addi sp, sp, -2032
438
+ ; RV64ZBA-NEXT: .cfi_def_cfa_offset 2032
439
+ ; RV64ZBA-NEXT: sd ra, 2024(sp) # 8-byte Folded Spill
440
+ ; RV64ZBA-NEXT: .cfi_offset ra, -8
441
+ ; RV64ZBA-NEXT: li a0, -2038
442
+ ; RV64ZBA-NEXT: sh3add sp, a0, sp
443
+ ; RV64ZBA-NEXT: .cfi_def_cfa_offset 18336
444
+ ; RV64ZBA-NEXT: addi a0, sp, 8
445
+ ; RV64ZBA-NEXT: call callee
446
+ ; RV64ZBA-NEXT: li a0, 2038
447
+ ; RV64ZBA-NEXT: sh3add sp, a0, sp
448
+ ; RV64ZBA-NEXT: ld ra, 2024(sp) # 8-byte Folded Reload
449
+ ; RV64ZBA-NEXT: addi sp, sp, 2032
450
+ ; RV64ZBA-NEXT: ret
349
451
%a = alloca [18320 x i8 ]
350
452
call void @callee (ptr %a )
351
453
ret void
@@ -430,8 +532,3 @@ define void @frame_32kb() {
430
532
call void @callee (ptr %a )
431
533
ret void
432
534
}
433
- ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
434
- ; RV32I: {{.*}}
435
- ; RV32ZBA: {{.*}}
436
- ; RV64I: {{.*}}
437
- ; RV64ZBA: {{.*}}
0 commit comments