|
1 | 1 | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
2 | 2 | ; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s \
|
3 |
| -; RUN: | FileCheck -check-prefix=RV32I %s |
| 3 | +; RUN: -riscv-enable-sink-fold | FileCheck -check-prefix=RV32I %s |
4 | 4 | ; RUN: llc -mtriple=riscv32 -verify-machineinstrs -code-model=medium < %s \
|
5 |
| -; RUN: | FileCheck -check-prefix=RV32I-MEDIUM %s |
| 5 | +; RUN: -riscv-enable-sink-fold | FileCheck -check-prefix=RV32I-MEDIUM %s |
6 | 6 | ; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s \
|
7 |
| -; RUN: | FileCheck -check-prefix=RV64I %s |
| 7 | +; RUN: -riscv-enable-sink-fold | FileCheck -check-prefix=RV64I %s |
8 | 8 | ; RUN: llc -mtriple=riscv64 -verify-machineinstrs -code-model=medium < %s \
|
9 |
| -; RUN: | FileCheck -check-prefix=RV64I-MEDIUM %s |
| 9 | +; RUN: -riscv-enable-sink-fold | FileCheck -check-prefix=RV64I-MEDIUM %s |
10 | 10 |
|
11 | 11 | ; We can often fold an ADDI into the offset of load/store instructions:
|
12 | 12 | ; (load (addi base, off1), off2) -> (load base, off1+off2)
|
@@ -769,14 +769,13 @@ define i64 @fold_addi_from_different_bb(i64 %k, i64 %n, ptr %a) nounwind {
|
769 | 769 | ; RV32I-NEXT: li s3, 0
|
770 | 770 | ; RV32I-NEXT: li s4, 0
|
771 | 771 | ; RV32I-NEXT: slli a0, a0, 4
|
772 |
| -; RV32I-NEXT: add a0, s0, a0 |
773 |
| -; RV32I-NEXT: addi s7, a0, 8 |
| 772 | +; RV32I-NEXT: add s7, s0, a0 |
774 | 773 | ; RV32I-NEXT: .LBB20_5: # %for.body
|
775 | 774 | ; RV32I-NEXT: # =>This Inner Loop Header: Depth=1
|
776 | 775 | ; RV32I-NEXT: mv a0, s0
|
777 | 776 | ; RV32I-NEXT: call f@plt
|
778 |
| -; RV32I-NEXT: lw a0, 4(s7) |
779 |
| -; RV32I-NEXT: lw a1, 0(s7) |
| 777 | +; RV32I-NEXT: lw a0, 12(s7) |
| 778 | +; RV32I-NEXT: lw a1, 8(s7) |
780 | 779 | ; RV32I-NEXT: add a0, a0, s4
|
781 | 780 | ; RV32I-NEXT: add s3, a1, s3
|
782 | 781 | ; RV32I-NEXT: sltu s4, s3, a1
|
@@ -835,14 +834,13 @@ define i64 @fold_addi_from_different_bb(i64 %k, i64 %n, ptr %a) nounwind {
|
835 | 834 | ; RV32I-MEDIUM-NEXT: li s3, 0
|
836 | 835 | ; RV32I-MEDIUM-NEXT: li s4, 0
|
837 | 836 | ; RV32I-MEDIUM-NEXT: slli a0, a0, 4
|
838 |
| -; RV32I-MEDIUM-NEXT: add a0, s0, a0 |
839 |
| -; RV32I-MEDIUM-NEXT: addi s7, a0, 8 |
| 837 | +; RV32I-MEDIUM-NEXT: add s7, s0, a0 |
840 | 838 | ; RV32I-MEDIUM-NEXT: .LBB20_5: # %for.body
|
841 | 839 | ; RV32I-MEDIUM-NEXT: # =>This Inner Loop Header: Depth=1
|
842 | 840 | ; RV32I-MEDIUM-NEXT: mv a0, s0
|
843 | 841 | ; RV32I-MEDIUM-NEXT: call f@plt
|
844 |
| -; RV32I-MEDIUM-NEXT: lw a0, 4(s7) |
845 |
| -; RV32I-MEDIUM-NEXT: lw a1, 0(s7) |
| 842 | +; RV32I-MEDIUM-NEXT: lw a0, 12(s7) |
| 843 | +; RV32I-MEDIUM-NEXT: lw a1, 8(s7) |
846 | 844 | ; RV32I-MEDIUM-NEXT: add a0, a0, s4
|
847 | 845 | ; RV32I-MEDIUM-NEXT: add s3, a1, s3
|
848 | 846 | ; RV32I-MEDIUM-NEXT: sltu s4, s3, a1
|
@@ -883,13 +881,12 @@ define i64 @fold_addi_from_different_bb(i64 %k, i64 %n, ptr %a) nounwind {
|
883 | 881 | ; RV64I-NEXT: mv s1, a1
|
884 | 882 | ; RV64I-NEXT: li s2, 0
|
885 | 883 | ; RV64I-NEXT: slli a0, a0, 4
|
886 |
| -; RV64I-NEXT: add a0, a2, a0 |
887 |
| -; RV64I-NEXT: addi s3, a0, 8 |
| 884 | +; RV64I-NEXT: add s3, a2, a0 |
888 | 885 | ; RV64I-NEXT: .LBB20_2: # %for.body
|
889 | 886 | ; RV64I-NEXT: # =>This Inner Loop Header: Depth=1
|
890 | 887 | ; RV64I-NEXT: mv a0, s0
|
891 | 888 | ; RV64I-NEXT: call f@plt
|
892 |
| -; RV64I-NEXT: ld a0, 0(s3) |
| 889 | +; RV64I-NEXT: ld a0, 8(s3) |
893 | 890 | ; RV64I-NEXT: addi s1, s1, -1
|
894 | 891 | ; RV64I-NEXT: add s2, a0, s2
|
895 | 892 | ; RV64I-NEXT: bnez s1, .LBB20_2
|
@@ -920,13 +917,12 @@ define i64 @fold_addi_from_different_bb(i64 %k, i64 %n, ptr %a) nounwind {
|
920 | 917 | ; RV64I-MEDIUM-NEXT: mv s1, a1
|
921 | 918 | ; RV64I-MEDIUM-NEXT: li s2, 0
|
922 | 919 | ; RV64I-MEDIUM-NEXT: slli a0, a0, 4
|
923 |
| -; RV64I-MEDIUM-NEXT: add a0, a2, a0 |
924 |
| -; RV64I-MEDIUM-NEXT: addi s3, a0, 8 |
| 920 | +; RV64I-MEDIUM-NEXT: add s3, a2, a0 |
925 | 921 | ; RV64I-MEDIUM-NEXT: .LBB20_2: # %for.body
|
926 | 922 | ; RV64I-MEDIUM-NEXT: # =>This Inner Loop Header: Depth=1
|
927 | 923 | ; RV64I-MEDIUM-NEXT: mv a0, s0
|
928 | 924 | ; RV64I-MEDIUM-NEXT: call f@plt
|
929 |
| -; RV64I-MEDIUM-NEXT: ld a0, 0(s3) |
| 925 | +; RV64I-MEDIUM-NEXT: ld a0, 8(s3) |
930 | 926 | ; RV64I-MEDIUM-NEXT: addi s1, s1, -1
|
931 | 927 | ; RV64I-MEDIUM-NEXT: add s2, a0, s2
|
932 | 928 | ; RV64I-MEDIUM-NEXT: bnez s1, .LBB20_2
|
|
0 commit comments