brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.0 KiB · 02e853d Raw
84 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 @store_clustering_1(ptr nocapture %p, i32 %v) {42; NOCLUSTER: ********** MI Scheduling **********43; NOCLUSTER-LABEL: store_clustering_1:%bb.044; NOCLUSTER: *** Final schedule for %bb.0 ***45; NOCLUSTER: SU(2):   SW %1:gpr, %0:gpr, 12 :: (store (s32) into %ir.arrayidx0)46; NOCLUSTER: SU(3):   SW %1:gpr, %0:gpr, 8 :: (store (s32) into %ir.arrayidx1)47; NOCLUSTER: SU(4):   SW %1:gpr, %0:gpr, 4 :: (store (s32) into %ir.arrayidx2)48; NOCLUSTER: SU(5):   SW %1:gpr, %0:gpr, 16 :: (store (s32) into %ir.arrayidx3)49;50; STCLUSTER: ********** MI Scheduling **********51; STCLUSTER-LABEL: store_clustering_1:%bb.052; STCLUSTER: *** Final schedule for %bb.0 ***53; STCLUSTER: SU(4):   SW %1:gpr, %0:gpr, 4 :: (store (s32) into %ir.arrayidx2)54; STCLUSTER: SU(3):   SW %1:gpr, %0:gpr, 8 :: (store (s32) into %ir.arrayidx1)55; STCLUSTER: SU(2):   SW %1:gpr, %0:gpr, 12 :: (store (s32) into %ir.arrayidx0)56; STCLUSTER: SU(5):   SW %1:gpr, %0:gpr, 16 :: (store (s32) into %ir.arrayidx3)57;58; LDCLUSTER: ********** MI Scheduling **********59; LDCLUSTER-LABEL: store_clustering_1:%bb.060; LDCLUSTER: *** Final schedule for %bb.0 ***61; LDCLUSTER: SU(2):   SW %1:gpr, %0:gpr, 12 :: (store (s32) into %ir.arrayidx0)62; LDCLUSTER: SU(3):   SW %1:gpr, %0:gpr, 8 :: (store (s32) into %ir.arrayidx1)63; LDCLUSTER: SU(4):   SW %1:gpr, %0:gpr, 4 :: (store (s32) into %ir.arrayidx2)64; LDCLUSTER: SU(5):   SW %1:gpr, %0:gpr, 16 :: (store (s32) into %ir.arrayidx3)65;66; DEFAULTCLUSTER: ********** MI Scheduling **********67; DEFAULTCLUSTER-LABEL: store_clustering_1:%bb.068; DEFAULTCLUSTER: *** Final schedule for %bb.0 ***69; DEFAULTCLUSTER: SU(4):   SW %1:gpr, %0:gpr, 4 :: (store (s32) into %ir.arrayidx2)70; DEFAULTCLUSTER: SU(3):   SW %1:gpr, %0:gpr, 8 :: (store (s32) into %ir.arrayidx1)71; DEFAULTCLUSTER: SU(2):   SW %1:gpr, %0:gpr, 12 :: (store (s32) into %ir.arrayidx0)72; DEFAULTCLUSTER: SU(5):   SW %1:gpr, %0:gpr, 16 :: (store (s32) into %ir.arrayidx3)73entry:74  %arrayidx0 = getelementptr inbounds i32, ptr %p, i32 375  store i32 %v, ptr %arrayidx076  %arrayidx1 = getelementptr inbounds i32, ptr %p, i32 277  store i32 %v, ptr %arrayidx178  %arrayidx2 = getelementptr inbounds i32, ptr %p, i32 179  store i32 %v, ptr %arrayidx280  %arrayidx3 = getelementptr inbounds i32, ptr %p, i32 481  store i32 %v, ptr %arrayidx382  ret i32 %v83}84