|
6 | 6 | ; RUN: llc -mtriple riscv32-unknown-elf -mattr=+f,+d -o - %s \
|
7 | 7 | ; RUN: 2>&1 | FileCheck %s -check-prefix CHECK -check-prefix CHECK-RV32-FD
|
8 | 8 | ;
|
| 9 | +; RUN: llc -mtriple riscv32-unknown-elf -mattr=+i -target-abi ilp32e -o - %s \ |
| 10 | +; RUN: 2>&1 | FileCheck %s -check-prefixes=CHECK,CHECK-RV32I-ILP32E |
9 | 11 | ; RUN: llc -mtriple riscv32-unknown-elf -mattr=+e -o - %s \
|
10 |
| -; RUN: 2>&1 | FileCheck %s -check-prefix CHECK -check-prefix CHECK-RV32E |
| 12 | +; RUN: 2>&1 | FileCheck %s -check-prefixes=CHECK,CHECK-RV32E |
11 | 13 | ; RUN: llc -mtriple riscv32-unknown-elf -mattr=+e,+f -o - %s \
|
12 |
| -; RUN: 2>&1 | FileCheck %s -check-prefix CHECK -check-prefix CHECK-RV32E-F |
| 14 | +; RUN: 2>&1 | FileCheck %s -check-prefixes=CHECK,CHECK-RV32E-F |
13 | 15 | ;
|
14 | 16 | ; RUN: llc -mtriple riscv64-unknown-elf -o - %s \
|
15 | 17 | ; RUN: 2>&1 | FileCheck %s -check-prefix CHECK -check-prefix CHECK-RV64
|
|
18 | 20 | ; RUN: llc -mtriple riscv64-unknown-elf -mattr=+f,+d -o - %s \
|
19 | 21 | ; RUN: 2>&1 | FileCheck %s -check-prefix CHECK -check-prefix CHECK-RV64-FD
|
20 | 22 | ;
|
| 23 | +; RUN: llc -mtriple riscv64-unknown-elf -mattr=+i -target-abi lp64e -o - %s \ |
| 24 | +; RUN: 2>&1 | FileCheck %s -check-prefixes=CHECK,CHECK-RV64I-LP64E |
21 | 25 | ; RUN: llc -mtriple riscv64-unknown-elf -mattr=+e -o - %s \
|
22 |
| -; RUN: 2>&1 | FileCheck %s -check-prefix CHECK -check-prefix CHECK-RV64E |
| 26 | +; RUN: 2>&1 | FileCheck %s -check-prefixes=CHECK,CHECK-RV64E |
23 | 27 | ; RUN: llc -mtriple riscv64-unknown-elf -mattr=+e,+f -o - %s \
|
24 |
| -; RUN: 2>&1 | FileCheck %s -check-prefix CHECK -check-prefix CHECK-RV64E-F |
| 28 | +; RUN: 2>&1 | FileCheck %s -check-prefixes=CHECK,CHECK-RV64E-F |
25 | 29 | ; RUN: llc -mtriple riscv64-unknown-elf -mattr=+e,+f,+d -o - %s \
|
26 |
| -; RUN: 2>&1 | FileCheck %s -check-prefix CHECK -check-prefix CHECK-RV64E-FD |
| 30 | +; RUN: 2>&1 | FileCheck %s -check-prefixes=CHECK,CHECK-RV64E-FD |
27 | 31 |
|
28 | 32 | ;
|
29 | 33 | ; Checking for special return instructions (sret, mret).
|
@@ -301,6 +305,65 @@ define void @foo_with_call() #1 {
|
301 | 305 | ; CHECK-RV32-FD-NEXT: addi sp, sp, 320
|
302 | 306 | ; CHECK-RV32-FD-NEXT: mret
|
303 | 307 | ;
|
| 308 | +; CHECK-RV32I-ILP32E-LABEL: foo_with_call: |
| 309 | +; CHECK-RV32I-ILP32E: # %bb.0: |
| 310 | +; CHECK-RV32I-ILP32E-NEXT: addi sp, sp, -104 |
| 311 | +; CHECK-RV32I-ILP32E-NEXT: sw ra, 100(sp) # 4-byte Folded Spill |
| 312 | +; CHECK-RV32I-ILP32E-NEXT: sw t0, 96(sp) # 4-byte Folded Spill |
| 313 | +; CHECK-RV32I-ILP32E-NEXT: sw t1, 92(sp) # 4-byte Folded Spill |
| 314 | +; CHECK-RV32I-ILP32E-NEXT: sw t2, 88(sp) # 4-byte Folded Spill |
| 315 | +; CHECK-RV32I-ILP32E-NEXT: sw a0, 84(sp) # 4-byte Folded Spill |
| 316 | +; CHECK-RV32I-ILP32E-NEXT: sw a1, 80(sp) # 4-byte Folded Spill |
| 317 | +; CHECK-RV32I-ILP32E-NEXT: sw a2, 76(sp) # 4-byte Folded Spill |
| 318 | +; CHECK-RV32I-ILP32E-NEXT: sw a3, 72(sp) # 4-byte Folded Spill |
| 319 | +; CHECK-RV32I-ILP32E-NEXT: sw a4, 68(sp) # 4-byte Folded Spill |
| 320 | +; CHECK-RV32I-ILP32E-NEXT: sw a5, 64(sp) # 4-byte Folded Spill |
| 321 | +; CHECK-RV32I-ILP32E-NEXT: sw a6, 60(sp) # 4-byte Folded Spill |
| 322 | +; CHECK-RV32I-ILP32E-NEXT: sw a7, 56(sp) # 4-byte Folded Spill |
| 323 | +; CHECK-RV32I-ILP32E-NEXT: sw s2, 52(sp) # 4-byte Folded Spill |
| 324 | +; CHECK-RV32I-ILP32E-NEXT: sw s3, 48(sp) # 4-byte Folded Spill |
| 325 | +; CHECK-RV32I-ILP32E-NEXT: sw s4, 44(sp) # 4-byte Folded Spill |
| 326 | +; CHECK-RV32I-ILP32E-NEXT: sw s5, 40(sp) # 4-byte Folded Spill |
| 327 | +; CHECK-RV32I-ILP32E-NEXT: sw s6, 36(sp) # 4-byte Folded Spill |
| 328 | +; CHECK-RV32I-ILP32E-NEXT: sw s7, 32(sp) # 4-byte Folded Spill |
| 329 | +; CHECK-RV32I-ILP32E-NEXT: sw s8, 28(sp) # 4-byte Folded Spill |
| 330 | +; CHECK-RV32I-ILP32E-NEXT: sw s9, 24(sp) # 4-byte Folded Spill |
| 331 | +; CHECK-RV32I-ILP32E-NEXT: sw s10, 20(sp) # 4-byte Folded Spill |
| 332 | +; CHECK-RV32I-ILP32E-NEXT: sw s11, 16(sp) # 4-byte Folded Spill |
| 333 | +; CHECK-RV32I-ILP32E-NEXT: sw t3, 12(sp) # 4-byte Folded Spill |
| 334 | +; CHECK-RV32I-ILP32E-NEXT: sw t4, 8(sp) # 4-byte Folded Spill |
| 335 | +; CHECK-RV32I-ILP32E-NEXT: sw t5, 4(sp) # 4-byte Folded Spill |
| 336 | +; CHECK-RV32I-ILP32E-NEXT: sw t6, 0(sp) # 4-byte Folded Spill |
| 337 | +; CHECK-RV32I-ILP32E-NEXT: call otherfoo@plt |
| 338 | +; CHECK-RV32I-ILP32E-NEXT: lw ra, 100(sp) # 4-byte Folded Reload |
| 339 | +; CHECK-RV32I-ILP32E-NEXT: lw t0, 96(sp) # 4-byte Folded Reload |
| 340 | +; CHECK-RV32I-ILP32E-NEXT: lw t1, 92(sp) # 4-byte Folded Reload |
| 341 | +; CHECK-RV32I-ILP32E-NEXT: lw t2, 88(sp) # 4-byte Folded Reload |
| 342 | +; CHECK-RV32I-ILP32E-NEXT: lw a0, 84(sp) # 4-byte Folded Reload |
| 343 | +; CHECK-RV32I-ILP32E-NEXT: lw a1, 80(sp) # 4-byte Folded Reload |
| 344 | +; CHECK-RV32I-ILP32E-NEXT: lw a2, 76(sp) # 4-byte Folded Reload |
| 345 | +; CHECK-RV32I-ILP32E-NEXT: lw a3, 72(sp) # 4-byte Folded Reload |
| 346 | +; CHECK-RV32I-ILP32E-NEXT: lw a4, 68(sp) # 4-byte Folded Reload |
| 347 | +; CHECK-RV32I-ILP32E-NEXT: lw a5, 64(sp) # 4-byte Folded Reload |
| 348 | +; CHECK-RV32I-ILP32E-NEXT: lw a6, 60(sp) # 4-byte Folded Reload |
| 349 | +; CHECK-RV32I-ILP32E-NEXT: lw a7, 56(sp) # 4-byte Folded Reload |
| 350 | +; CHECK-RV32I-ILP32E-NEXT: lw s2, 52(sp) # 4-byte Folded Reload |
| 351 | +; CHECK-RV32I-ILP32E-NEXT: lw s3, 48(sp) # 4-byte Folded Reload |
| 352 | +; CHECK-RV32I-ILP32E-NEXT: lw s4, 44(sp) # 4-byte Folded Reload |
| 353 | +; CHECK-RV32I-ILP32E-NEXT: lw s5, 40(sp) # 4-byte Folded Reload |
| 354 | +; CHECK-RV32I-ILP32E-NEXT: lw s6, 36(sp) # 4-byte Folded Reload |
| 355 | +; CHECK-RV32I-ILP32E-NEXT: lw s7, 32(sp) # 4-byte Folded Reload |
| 356 | +; CHECK-RV32I-ILP32E-NEXT: lw s8, 28(sp) # 4-byte Folded Reload |
| 357 | +; CHECK-RV32I-ILP32E-NEXT: lw s9, 24(sp) # 4-byte Folded Reload |
| 358 | +; CHECK-RV32I-ILP32E-NEXT: lw s10, 20(sp) # 4-byte Folded Reload |
| 359 | +; CHECK-RV32I-ILP32E-NEXT: lw s11, 16(sp) # 4-byte Folded Reload |
| 360 | +; CHECK-RV32I-ILP32E-NEXT: lw t3, 12(sp) # 4-byte Folded Reload |
| 361 | +; CHECK-RV32I-ILP32E-NEXT: lw t4, 8(sp) # 4-byte Folded Reload |
| 362 | +; CHECK-RV32I-ILP32E-NEXT: lw t5, 4(sp) # 4-byte Folded Reload |
| 363 | +; CHECK-RV32I-ILP32E-NEXT: lw t6, 0(sp) # 4-byte Folded Reload |
| 364 | +; CHECK-RV32I-ILP32E-NEXT: addi sp, sp, 104 |
| 365 | +; CHECK-RV32I-ILP32E-NEXT: mret |
| 366 | +; |
304 | 367 | ; CHECK-RV32E-LABEL: foo_with_call:
|
305 | 368 | ; CHECK-RV32E: # %bb.0:
|
306 | 369 | ; CHECK-RV32E-NEXT: addi sp, sp, -40
|
@@ -664,6 +727,65 @@ define void @foo_with_call() #1 {
|
664 | 727 | ; CHECK-RV64-FD-NEXT: addi sp, sp, 384
|
665 | 728 | ; CHECK-RV64-FD-NEXT: mret
|
666 | 729 | ;
|
| 730 | +; CHECK-RV64I-LP64E-LABEL: foo_with_call: |
| 731 | +; CHECK-RV64I-LP64E: # %bb.0: |
| 732 | +; CHECK-RV64I-LP64E-NEXT: addi sp, sp, -208 |
| 733 | +; CHECK-RV64I-LP64E-NEXT: sd ra, 200(sp) # 8-byte Folded Spill |
| 734 | +; CHECK-RV64I-LP64E-NEXT: sd t0, 192(sp) # 8-byte Folded Spill |
| 735 | +; CHECK-RV64I-LP64E-NEXT: sd t1, 184(sp) # 8-byte Folded Spill |
| 736 | +; CHECK-RV64I-LP64E-NEXT: sd t2, 176(sp) # 8-byte Folded Spill |
| 737 | +; CHECK-RV64I-LP64E-NEXT: sd a0, 168(sp) # 8-byte Folded Spill |
| 738 | +; CHECK-RV64I-LP64E-NEXT: sd a1, 160(sp) # 8-byte Folded Spill |
| 739 | +; CHECK-RV64I-LP64E-NEXT: sd a2, 152(sp) # 8-byte Folded Spill |
| 740 | +; CHECK-RV64I-LP64E-NEXT: sd a3, 144(sp) # 8-byte Folded Spill |
| 741 | +; CHECK-RV64I-LP64E-NEXT: sd a4, 136(sp) # 8-byte Folded Spill |
| 742 | +; CHECK-RV64I-LP64E-NEXT: sd a5, 128(sp) # 8-byte Folded Spill |
| 743 | +; CHECK-RV64I-LP64E-NEXT: sd a6, 120(sp) # 8-byte Folded Spill |
| 744 | +; CHECK-RV64I-LP64E-NEXT: sd a7, 112(sp) # 8-byte Folded Spill |
| 745 | +; CHECK-RV64I-LP64E-NEXT: sd s2, 104(sp) # 8-byte Folded Spill |
| 746 | +; CHECK-RV64I-LP64E-NEXT: sd s3, 96(sp) # 8-byte Folded Spill |
| 747 | +; CHECK-RV64I-LP64E-NEXT: sd s4, 88(sp) # 8-byte Folded Spill |
| 748 | +; CHECK-RV64I-LP64E-NEXT: sd s5, 80(sp) # 8-byte Folded Spill |
| 749 | +; CHECK-RV64I-LP64E-NEXT: sd s6, 72(sp) # 8-byte Folded Spill |
| 750 | +; CHECK-RV64I-LP64E-NEXT: sd s7, 64(sp) # 8-byte Folded Spill |
| 751 | +; CHECK-RV64I-LP64E-NEXT: sd s8, 56(sp) # 8-byte Folded Spill |
| 752 | +; CHECK-RV64I-LP64E-NEXT: sd s9, 48(sp) # 8-byte Folded Spill |
| 753 | +; CHECK-RV64I-LP64E-NEXT: sd s10, 40(sp) # 8-byte Folded Spill |
| 754 | +; CHECK-RV64I-LP64E-NEXT: sd s11, 32(sp) # 8-byte Folded Spill |
| 755 | +; CHECK-RV64I-LP64E-NEXT: sd t3, 24(sp) # 8-byte Folded Spill |
| 756 | +; CHECK-RV64I-LP64E-NEXT: sd t4, 16(sp) # 8-byte Folded Spill |
| 757 | +; CHECK-RV64I-LP64E-NEXT: sd t5, 8(sp) # 8-byte Folded Spill |
| 758 | +; CHECK-RV64I-LP64E-NEXT: sd t6, 0(sp) # 8-byte Folded Spill |
| 759 | +; CHECK-RV64I-LP64E-NEXT: call otherfoo@plt |
| 760 | +; CHECK-RV64I-LP64E-NEXT: ld ra, 200(sp) # 8-byte Folded Reload |
| 761 | +; CHECK-RV64I-LP64E-NEXT: ld t0, 192(sp) # 8-byte Folded Reload |
| 762 | +; CHECK-RV64I-LP64E-NEXT: ld t1, 184(sp) # 8-byte Folded Reload |
| 763 | +; CHECK-RV64I-LP64E-NEXT: ld t2, 176(sp) # 8-byte Folded Reload |
| 764 | +; CHECK-RV64I-LP64E-NEXT: ld a0, 168(sp) # 8-byte Folded Reload |
| 765 | +; CHECK-RV64I-LP64E-NEXT: ld a1, 160(sp) # 8-byte Folded Reload |
| 766 | +; CHECK-RV64I-LP64E-NEXT: ld a2, 152(sp) # 8-byte Folded Reload |
| 767 | +; CHECK-RV64I-LP64E-NEXT: ld a3, 144(sp) # 8-byte Folded Reload |
| 768 | +; CHECK-RV64I-LP64E-NEXT: ld a4, 136(sp) # 8-byte Folded Reload |
| 769 | +; CHECK-RV64I-LP64E-NEXT: ld a5, 128(sp) # 8-byte Folded Reload |
| 770 | +; CHECK-RV64I-LP64E-NEXT: ld a6, 120(sp) # 8-byte Folded Reload |
| 771 | +; CHECK-RV64I-LP64E-NEXT: ld a7, 112(sp) # 8-byte Folded Reload |
| 772 | +; CHECK-RV64I-LP64E-NEXT: ld s2, 104(sp) # 8-byte Folded Reload |
| 773 | +; CHECK-RV64I-LP64E-NEXT: ld s3, 96(sp) # 8-byte Folded Reload |
| 774 | +; CHECK-RV64I-LP64E-NEXT: ld s4, 88(sp) # 8-byte Folded Reload |
| 775 | +; CHECK-RV64I-LP64E-NEXT: ld s5, 80(sp) # 8-byte Folded Reload |
| 776 | +; CHECK-RV64I-LP64E-NEXT: ld s6, 72(sp) # 8-byte Folded Reload |
| 777 | +; CHECK-RV64I-LP64E-NEXT: ld s7, 64(sp) # 8-byte Folded Reload |
| 778 | +; CHECK-RV64I-LP64E-NEXT: ld s8, 56(sp) # 8-byte Folded Reload |
| 779 | +; CHECK-RV64I-LP64E-NEXT: ld s9, 48(sp) # 8-byte Folded Reload |
| 780 | +; CHECK-RV64I-LP64E-NEXT: ld s10, 40(sp) # 8-byte Folded Reload |
| 781 | +; CHECK-RV64I-LP64E-NEXT: ld s11, 32(sp) # 8-byte Folded Reload |
| 782 | +; CHECK-RV64I-LP64E-NEXT: ld t3, 24(sp) # 8-byte Folded Reload |
| 783 | +; CHECK-RV64I-LP64E-NEXT: ld t4, 16(sp) # 8-byte Folded Reload |
| 784 | +; CHECK-RV64I-LP64E-NEXT: ld t5, 8(sp) # 8-byte Folded Reload |
| 785 | +; CHECK-RV64I-LP64E-NEXT: ld t6, 0(sp) # 8-byte Folded Reload |
| 786 | +; CHECK-RV64I-LP64E-NEXT: addi sp, sp, 208 |
| 787 | +; CHECK-RV64I-LP64E-NEXT: mret |
| 788 | +; |
667 | 789 | ; CHECK-RV64E-LABEL: foo_with_call:
|
668 | 790 | ; CHECK-RV64E: # %bb.0:
|
669 | 791 | ; CHECK-RV64E-NEXT: addi sp, sp, -80
|
@@ -1167,6 +1289,68 @@ define void @foo_fp_with_call() #2 {
|
1167 | 1289 | ; CHECK-RV32-FD-NEXT: addi sp, sp, 336
|
1168 | 1290 | ; CHECK-RV32-FD-NEXT: mret
|
1169 | 1291 | ;
|
| 1292 | +; CHECK-RV32I-ILP32E-LABEL: foo_fp_with_call: |
| 1293 | +; CHECK-RV32I-ILP32E: # %bb.0: |
| 1294 | +; CHECK-RV32I-ILP32E-NEXT: addi sp, sp, -108 |
| 1295 | +; CHECK-RV32I-ILP32E-NEXT: sw ra, 104(sp) # 4-byte Folded Spill |
| 1296 | +; CHECK-RV32I-ILP32E-NEXT: sw t0, 100(sp) # 4-byte Folded Spill |
| 1297 | +; CHECK-RV32I-ILP32E-NEXT: sw t1, 96(sp) # 4-byte Folded Spill |
| 1298 | +; CHECK-RV32I-ILP32E-NEXT: sw t2, 92(sp) # 4-byte Folded Spill |
| 1299 | +; CHECK-RV32I-ILP32E-NEXT: sw s0, 88(sp) # 4-byte Folded Spill |
| 1300 | +; CHECK-RV32I-ILP32E-NEXT: sw a0, 84(sp) # 4-byte Folded Spill |
| 1301 | +; CHECK-RV32I-ILP32E-NEXT: sw a1, 80(sp) # 4-byte Folded Spill |
| 1302 | +; CHECK-RV32I-ILP32E-NEXT: sw a2, 76(sp) # 4-byte Folded Spill |
| 1303 | +; CHECK-RV32I-ILP32E-NEXT: sw a3, 72(sp) # 4-byte Folded Spill |
| 1304 | +; CHECK-RV32I-ILP32E-NEXT: sw a4, 68(sp) # 4-byte Folded Spill |
| 1305 | +; CHECK-RV32I-ILP32E-NEXT: sw a5, 64(sp) # 4-byte Folded Spill |
| 1306 | +; CHECK-RV32I-ILP32E-NEXT: sw a6, 60(sp) # 4-byte Folded Spill |
| 1307 | +; CHECK-RV32I-ILP32E-NEXT: sw a7, 56(sp) # 4-byte Folded Spill |
| 1308 | +; CHECK-RV32I-ILP32E-NEXT: sw s2, 52(sp) # 4-byte Folded Spill |
| 1309 | +; CHECK-RV32I-ILP32E-NEXT: sw s3, 48(sp) # 4-byte Folded Spill |
| 1310 | +; CHECK-RV32I-ILP32E-NEXT: sw s4, 44(sp) # 4-byte Folded Spill |
| 1311 | +; CHECK-RV32I-ILP32E-NEXT: sw s5, 40(sp) # 4-byte Folded Spill |
| 1312 | +; CHECK-RV32I-ILP32E-NEXT: sw s6, 36(sp) # 4-byte Folded Spill |
| 1313 | +; CHECK-RV32I-ILP32E-NEXT: sw s7, 32(sp) # 4-byte Folded Spill |
| 1314 | +; CHECK-RV32I-ILP32E-NEXT: sw s8, 28(sp) # 4-byte Folded Spill |
| 1315 | +; CHECK-RV32I-ILP32E-NEXT: sw s9, 24(sp) # 4-byte Folded Spill |
| 1316 | +; CHECK-RV32I-ILP32E-NEXT: sw s10, 20(sp) # 4-byte Folded Spill |
| 1317 | +; CHECK-RV32I-ILP32E-NEXT: sw s11, 16(sp) # 4-byte Folded Spill |
| 1318 | +; CHECK-RV32I-ILP32E-NEXT: sw t3, 12(sp) # 4-byte Folded Spill |
| 1319 | +; CHECK-RV32I-ILP32E-NEXT: sw t4, 8(sp) # 4-byte Folded Spill |
| 1320 | +; CHECK-RV32I-ILP32E-NEXT: sw t5, 4(sp) # 4-byte Folded Spill |
| 1321 | +; CHECK-RV32I-ILP32E-NEXT: sw t6, 0(sp) # 4-byte Folded Spill |
| 1322 | +; CHECK-RV32I-ILP32E-NEXT: addi s0, sp, 108 |
| 1323 | +; CHECK-RV32I-ILP32E-NEXT: call otherfoo@plt |
| 1324 | +; CHECK-RV32I-ILP32E-NEXT: lw ra, 104(sp) # 4-byte Folded Reload |
| 1325 | +; CHECK-RV32I-ILP32E-NEXT: lw t0, 100(sp) # 4-byte Folded Reload |
| 1326 | +; CHECK-RV32I-ILP32E-NEXT: lw t1, 96(sp) # 4-byte Folded Reload |
| 1327 | +; CHECK-RV32I-ILP32E-NEXT: lw t2, 92(sp) # 4-byte Folded Reload |
| 1328 | +; CHECK-RV32I-ILP32E-NEXT: lw s0, 88(sp) # 4-byte Folded Reload |
| 1329 | +; CHECK-RV32I-ILP32E-NEXT: lw a0, 84(sp) # 4-byte Folded Reload |
| 1330 | +; CHECK-RV32I-ILP32E-NEXT: lw a1, 80(sp) # 4-byte Folded Reload |
| 1331 | +; CHECK-RV32I-ILP32E-NEXT: lw a2, 76(sp) # 4-byte Folded Reload |
| 1332 | +; CHECK-RV32I-ILP32E-NEXT: lw a3, 72(sp) # 4-byte Folded Reload |
| 1333 | +; CHECK-RV32I-ILP32E-NEXT: lw a4, 68(sp) # 4-byte Folded Reload |
| 1334 | +; CHECK-RV32I-ILP32E-NEXT: lw a5, 64(sp) # 4-byte Folded Reload |
| 1335 | +; CHECK-RV32I-ILP32E-NEXT: lw a6, 60(sp) # 4-byte Folded Reload |
| 1336 | +; CHECK-RV32I-ILP32E-NEXT: lw a7, 56(sp) # 4-byte Folded Reload |
| 1337 | +; CHECK-RV32I-ILP32E-NEXT: lw s2, 52(sp) # 4-byte Folded Reload |
| 1338 | +; CHECK-RV32I-ILP32E-NEXT: lw s3, 48(sp) # 4-byte Folded Reload |
| 1339 | +; CHECK-RV32I-ILP32E-NEXT: lw s4, 44(sp) # 4-byte Folded Reload |
| 1340 | +; CHECK-RV32I-ILP32E-NEXT: lw s5, 40(sp) # 4-byte Folded Reload |
| 1341 | +; CHECK-RV32I-ILP32E-NEXT: lw s6, 36(sp) # 4-byte Folded Reload |
| 1342 | +; CHECK-RV32I-ILP32E-NEXT: lw s7, 32(sp) # 4-byte Folded Reload |
| 1343 | +; CHECK-RV32I-ILP32E-NEXT: lw s8, 28(sp) # 4-byte Folded Reload |
| 1344 | +; CHECK-RV32I-ILP32E-NEXT: lw s9, 24(sp) # 4-byte Folded Reload |
| 1345 | +; CHECK-RV32I-ILP32E-NEXT: lw s10, 20(sp) # 4-byte Folded Reload |
| 1346 | +; CHECK-RV32I-ILP32E-NEXT: lw s11, 16(sp) # 4-byte Folded Reload |
| 1347 | +; CHECK-RV32I-ILP32E-NEXT: lw t3, 12(sp) # 4-byte Folded Reload |
| 1348 | +; CHECK-RV32I-ILP32E-NEXT: lw t4, 8(sp) # 4-byte Folded Reload |
| 1349 | +; CHECK-RV32I-ILP32E-NEXT: lw t5, 4(sp) # 4-byte Folded Reload |
| 1350 | +; CHECK-RV32I-ILP32E-NEXT: lw t6, 0(sp) # 4-byte Folded Reload |
| 1351 | +; CHECK-RV32I-ILP32E-NEXT: addi sp, sp, 108 |
| 1352 | +; CHECK-RV32I-ILP32E-NEXT: mret |
| 1353 | +; |
1170 | 1354 | ; CHECK-RV32E-LABEL: foo_fp_with_call:
|
1171 | 1355 | ; CHECK-RV32E: # %bb.0:
|
1172 | 1356 | ; CHECK-RV32E-NEXT: addi sp, sp, -44
|
@@ -1545,6 +1729,68 @@ define void @foo_fp_with_call() #2 {
|
1545 | 1729 | ; CHECK-RV64-FD-NEXT: addi sp, sp, 400
|
1546 | 1730 | ; CHECK-RV64-FD-NEXT: mret
|
1547 | 1731 | ;
|
| 1732 | +; CHECK-RV64I-LP64E-LABEL: foo_fp_with_call: |
| 1733 | +; CHECK-RV64I-LP64E: # %bb.0: |
| 1734 | +; CHECK-RV64I-LP64E-NEXT: addi sp, sp, -216 |
| 1735 | +; CHECK-RV64I-LP64E-NEXT: sd ra, 208(sp) # 8-byte Folded Spill |
| 1736 | +; CHECK-RV64I-LP64E-NEXT: sd t0, 200(sp) # 8-byte Folded Spill |
| 1737 | +; CHECK-RV64I-LP64E-NEXT: sd t1, 192(sp) # 8-byte Folded Spill |
| 1738 | +; CHECK-RV64I-LP64E-NEXT: sd t2, 184(sp) # 8-byte Folded Spill |
| 1739 | +; CHECK-RV64I-LP64E-NEXT: sd s0, 176(sp) # 8-byte Folded Spill |
| 1740 | +; CHECK-RV64I-LP64E-NEXT: sd a0, 168(sp) # 8-byte Folded Spill |
| 1741 | +; CHECK-RV64I-LP64E-NEXT: sd a1, 160(sp) # 8-byte Folded Spill |
| 1742 | +; CHECK-RV64I-LP64E-NEXT: sd a2, 152(sp) # 8-byte Folded Spill |
| 1743 | +; CHECK-RV64I-LP64E-NEXT: sd a3, 144(sp) # 8-byte Folded Spill |
| 1744 | +; CHECK-RV64I-LP64E-NEXT: sd a4, 136(sp) # 8-byte Folded Spill |
| 1745 | +; CHECK-RV64I-LP64E-NEXT: sd a5, 128(sp) # 8-byte Folded Spill |
| 1746 | +; CHECK-RV64I-LP64E-NEXT: sd a6, 120(sp) # 8-byte Folded Spill |
| 1747 | +; CHECK-RV64I-LP64E-NEXT: sd a7, 112(sp) # 8-byte Folded Spill |
| 1748 | +; CHECK-RV64I-LP64E-NEXT: sd s2, 104(sp) # 8-byte Folded Spill |
| 1749 | +; CHECK-RV64I-LP64E-NEXT: sd s3, 96(sp) # 8-byte Folded Spill |
| 1750 | +; CHECK-RV64I-LP64E-NEXT: sd s4, 88(sp) # 8-byte Folded Spill |
| 1751 | +; CHECK-RV64I-LP64E-NEXT: sd s5, 80(sp) # 8-byte Folded Spill |
| 1752 | +; CHECK-RV64I-LP64E-NEXT: sd s6, 72(sp) # 8-byte Folded Spill |
| 1753 | +; CHECK-RV64I-LP64E-NEXT: sd s7, 64(sp) # 8-byte Folded Spill |
| 1754 | +; CHECK-RV64I-LP64E-NEXT: sd s8, 56(sp) # 8-byte Folded Spill |
| 1755 | +; CHECK-RV64I-LP64E-NEXT: sd s9, 48(sp) # 8-byte Folded Spill |
| 1756 | +; CHECK-RV64I-LP64E-NEXT: sd s10, 40(sp) # 8-byte Folded Spill |
| 1757 | +; CHECK-RV64I-LP64E-NEXT: sd s11, 32(sp) # 8-byte Folded Spill |
| 1758 | +; CHECK-RV64I-LP64E-NEXT: sd t3, 24(sp) # 8-byte Folded Spill |
| 1759 | +; CHECK-RV64I-LP64E-NEXT: sd t4, 16(sp) # 8-byte Folded Spill |
| 1760 | +; CHECK-RV64I-LP64E-NEXT: sd t5, 8(sp) # 8-byte Folded Spill |
| 1761 | +; CHECK-RV64I-LP64E-NEXT: sd t6, 0(sp) # 8-byte Folded Spill |
| 1762 | +; CHECK-RV64I-LP64E-NEXT: addi s0, sp, 216 |
| 1763 | +; CHECK-RV64I-LP64E-NEXT: call otherfoo@plt |
| 1764 | +; CHECK-RV64I-LP64E-NEXT: ld ra, 208(sp) # 8-byte Folded Reload |
| 1765 | +; CHECK-RV64I-LP64E-NEXT: ld t0, 200(sp) # 8-byte Folded Reload |
| 1766 | +; CHECK-RV64I-LP64E-NEXT: ld t1, 192(sp) # 8-byte Folded Reload |
| 1767 | +; CHECK-RV64I-LP64E-NEXT: ld t2, 184(sp) # 8-byte Folded Reload |
| 1768 | +; CHECK-RV64I-LP64E-NEXT: ld s0, 176(sp) # 8-byte Folded Reload |
| 1769 | +; CHECK-RV64I-LP64E-NEXT: ld a0, 168(sp) # 8-byte Folded Reload |
| 1770 | +; CHECK-RV64I-LP64E-NEXT: ld a1, 160(sp) # 8-byte Folded Reload |
| 1771 | +; CHECK-RV64I-LP64E-NEXT: ld a2, 152(sp) # 8-byte Folded Reload |
| 1772 | +; CHECK-RV64I-LP64E-NEXT: ld a3, 144(sp) # 8-byte Folded Reload |
| 1773 | +; CHECK-RV64I-LP64E-NEXT: ld a4, 136(sp) # 8-byte Folded Reload |
| 1774 | +; CHECK-RV64I-LP64E-NEXT: ld a5, 128(sp) # 8-byte Folded Reload |
| 1775 | +; CHECK-RV64I-LP64E-NEXT: ld a6, 120(sp) # 8-byte Folded Reload |
| 1776 | +; CHECK-RV64I-LP64E-NEXT: ld a7, 112(sp) # 8-byte Folded Reload |
| 1777 | +; CHECK-RV64I-LP64E-NEXT: ld s2, 104(sp) # 8-byte Folded Reload |
| 1778 | +; CHECK-RV64I-LP64E-NEXT: ld s3, 96(sp) # 8-byte Folded Reload |
| 1779 | +; CHECK-RV64I-LP64E-NEXT: ld s4, 88(sp) # 8-byte Folded Reload |
| 1780 | +; CHECK-RV64I-LP64E-NEXT: ld s5, 80(sp) # 8-byte Folded Reload |
| 1781 | +; CHECK-RV64I-LP64E-NEXT: ld s6, 72(sp) # 8-byte Folded Reload |
| 1782 | +; CHECK-RV64I-LP64E-NEXT: ld s7, 64(sp) # 8-byte Folded Reload |
| 1783 | +; CHECK-RV64I-LP64E-NEXT: ld s8, 56(sp) # 8-byte Folded Reload |
| 1784 | +; CHECK-RV64I-LP64E-NEXT: ld s9, 48(sp) # 8-byte Folded Reload |
| 1785 | +; CHECK-RV64I-LP64E-NEXT: ld s10, 40(sp) # 8-byte Folded Reload |
| 1786 | +; CHECK-RV64I-LP64E-NEXT: ld s11, 32(sp) # 8-byte Folded Reload |
| 1787 | +; CHECK-RV64I-LP64E-NEXT: ld t3, 24(sp) # 8-byte Folded Reload |
| 1788 | +; CHECK-RV64I-LP64E-NEXT: ld t4, 16(sp) # 8-byte Folded Reload |
| 1789 | +; CHECK-RV64I-LP64E-NEXT: ld t5, 8(sp) # 8-byte Folded Reload |
| 1790 | +; CHECK-RV64I-LP64E-NEXT: ld t6, 0(sp) # 8-byte Folded Reload |
| 1791 | +; CHECK-RV64I-LP64E-NEXT: addi sp, sp, 216 |
| 1792 | +; CHECK-RV64I-LP64E-NEXT: mret |
| 1793 | +; |
1548 | 1794 | ; CHECK-RV64E-LABEL: foo_fp_with_call:
|
1549 | 1795 | ; CHECK-RV64E: # %bb.0:
|
1550 | 1796 | ; CHECK-RV64E-NEXT: addi sp, sp, -88
|
|
0 commit comments