87 lines · plain
1; REQUIRES: asserts2;3; Disable all misched clustering4; RUN: llc -mtriple=riscv32 -verify-misched \5; RUN: -mattr=+disable-misched-load-clustering,+disable-misched-store-clustering \6; RUN: -debug-only=machine-scheduler -o - 2>&1 < %s \7; RUN: | FileCheck -check-prefix=NOCLUSTER %s8; RUN: llc -mtriple=riscv64 -verify-misched \9; RUN: -mattr=+disable-misched-load-clustering,+disable-misched-store-clustering \10; RUN: -debug-only=machine-scheduler -o - 2>&1 < %s \11; RUN: | FileCheck -check-prefix=NOCLUSTER %s12;13; ST misched clustering only14; RUN: llc -mtriple=riscv32 -verify-misched \15; RUN: -mattr=+disable-misched-load-clustering \16; RUN: -debug-only=machine-scheduler -o - 2>&1 < %s \17; RUN: | FileCheck -check-prefix=STCLUSTER %s18; RUN: llc -mtriple=riscv64 -verify-misched \19; RUN: -mattr=+disable-misched-load-clustering \20; RUN: -debug-only=machine-scheduler -o - 2>&1 < %s \21; RUN: | FileCheck -check-prefix=STCLUSTER %s22;23; LD misched clustering only24; RUN: llc -mtriple=riscv32 -verify-misched \25; RUN: -mattr=+disable-misched-store-clustering \26; RUN: -debug-only=machine-scheduler -o - 2>&1 < %s \27; RUN: | FileCheck -check-prefix=LDCLUSTER %s28; RUN: llc -mtriple=riscv64 -verify-misched \29; RUN: -mattr=+disable-misched-store-clustering \30; RUN: -debug-only=machine-scheduler -o - 2>&1 < %s \31; RUN: | FileCheck -check-prefix=LDCLUSTER %s32;33; Default misched cluster settings (i.e. both LD and ST clustering)34; RUN: llc -mtriple=riscv32 -verify-misched \35; RUN: -debug-only=machine-scheduler -o - 2>&1 < %s \36; RUN: | FileCheck -check-prefix=DEFAULTCLUSTER %s37; RUN: llc -mtriple=riscv64 -verify-misched \38; RUN: -debug-only=machine-scheduler -o - 2>&1 < %s \39; RUN: | FileCheck -check-prefix=DEFAULTCLUSTER %s40 41define i32 @load_clustering_1(ptr nocapture %p) {42; NOCLUSTER: ********** MI Scheduling **********43; NOCLUSTER-LABEL: load_clustering_1:%bb.044; NOCLUSTER: *** Final schedule for %bb.0 ***45; NOCLUSTER: SU(1): %1:gpr = LW %0:gpr, 1246; NOCLUSTER: SU(2): %2:gpr = LW %0:gpr, 847; NOCLUSTER: SU(4): %4:gpr = LW %0:gpr, 448; NOCLUSTER: SU(5): %6:gpr = LW %0:gpr, 1649;50; STCLUSTER: ********** MI Scheduling **********51; STCLUSTER-LABEL: load_clustering_1:%bb.052; STCLUSTER: *** Final schedule for %bb.0 ***53; STCLUSTER: SU(1): %1:gpr = LW %0:gpr, 1254; STCLUSTER: SU(2): %2:gpr = LW %0:gpr, 855; STCLUSTER: SU(4): %4:gpr = LW %0:gpr, 456; STCLUSTER: SU(5): %6:gpr = LW %0:gpr, 1657;58; LDCLUSTER: ********** MI Scheduling **********59; LDCLUSTER-LABEL: load_clustering_1:%bb.060; LDCLUSTER: *** Final schedule for %bb.0 ***61; LDCLUSTER: SU(4): %4:gpr = LW %0:gpr, 462; LDCLUSTER: SU(2): %2:gpr = LW %0:gpr, 863; LDCLUSTER: SU(1): %1:gpr = LW %0:gpr, 1264; LDCLUSTER: SU(5): %6:gpr = LW %0:gpr, 1665;66; DEFAULTCLUSTER: ********** MI Scheduling **********67; DEFAULTCLUSTER-LABEL: load_clustering_1:%bb.068; DEFAULTCLUSTER: *** Final schedule for %bb.0 ***69; DEFAULTCLUSTER: SU(4): %4:gpr = LW %0:gpr, 470; DEFAULTCLUSTER: SU(2): %2:gpr = LW %0:gpr, 871; DEFAULTCLUSTER: SU(1): %1:gpr = LW %0:gpr, 1272; DEFAULTCLUSTER: SU(5): %6:gpr = LW %0:gpr, 1673entry:74 %arrayidx0 = getelementptr inbounds i32, ptr %p, i32 375 %val0 = load i32, ptr %arrayidx076 %arrayidx1 = getelementptr inbounds i32, ptr %p, i32 277 %val1 = load i32, ptr %arrayidx178 %tmp0 = add i32 %val0, %val179 %arrayidx2 = getelementptr inbounds i32, ptr %p, i32 180 %val2 = load i32, ptr %arrayidx281 %tmp1 = add i32 %tmp0, %val282 %arrayidx3 = getelementptr inbounds i32, ptr %p, i32 483 %val3 = load i32, ptr %arrayidx384 %tmp2 = add i32 %tmp1, %val385 ret i32 %tmp286}87