1# RUN: llc -mtriple=riscv64 -mcpu=sifive-x280 -run-pass=postmisched \ 2# RUN: -enable-post-misched -debug-only=machine-scheduler \ 3# RUN: -misched-dump-schedule-trace -misched-postra-direction=topdown \ 4# RUN: -o - %s 2>&1 | FileCheck --check-prefix=TOPDOWN %s 5# RUN: llc -mtriple=riscv64 -mcpu=sifive-x280 -run-pass=postmisched \ 6# RUN: -enable-post-misched -debug-only=machine-scheduler \ 7# RUN: -misched-dump-schedule-trace -misched-postra-direction=bottomup \ 8# RUN: -o - %s 2>&1 | FileCheck --check-prefix=BOTTOMUP %s 9# RUN: llc -mtriple=riscv64 -mcpu=sifive-x280 -run-pass=postmisched \ 10# RUN: -enable-post-misched -debug-only=machine-scheduler \ 11# RUN: -misched-dump-schedule-trace -misched-postra-direction=bidirectional \ 12# RUN: -o - %s 2>&1 | FileCheck --check-prefix=BIDIRECTIONAL %s 13 14# REQUIRES: asserts 15 16--- 17name: test 18tracksRegLiveness: true 19body: | 20 bb.0.entry: 21 liveins: $x10, $x11 22 23 renamable $x12 = MUL renamable $x11, renamable $x10 24 renamable $x13 = ADD renamable $x11, renamable $x10 25 renamable $x14 = DIVW killed renamable $x12, killed renamable $x13 26 PseudoRET implicit $x14 27... 28 29# TOPDOWN: *** Final schedule for %bb.0 *** 30# TOPDOWN-NEXT: * Schedule table (TopDown): 31# TOPDOWN-NEXT: i: issue 32# TOPDOWN-NEXT: x: resource booked 33# TOPDOWN-NEXT: Cycle | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 34# TOPDOWN-NEXT: SU(0) | i | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 35# TOPDOWN-NEXT: SiFive7PipeAB | x | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 36# TOPDOWN-NEXT: SiFive7PipeB | x | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 37# TOPDOWN-NEXT: SU(1) | i | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 38# TOPDOWN-NEXT: SiFive7PipeAB | x | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 39# TOPDOWN-NEXT: SU(2) | | | | i | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 40# TOPDOWN-NEXT: SiFive7PipeAB | | | | x | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 41# TOPDOWN-NEXT: SiFive7PipeB | | | | x | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 42# TOPDOWN-NEXT: SiFive7IDiv | | | | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | 43# TOPDOWN-NEXT: SU(0): renamable $x12 = MUL renamable $x11, renamable $x10 44# TOPDOWN-NEXT: SU(1): renamable $x13 = ADD renamable $x11, renamable $x10 45# TOPDOWN-NEXT: SU(2): renamable $x14 = DIVW renamable $x12, renamable $x13 46 47# BOTTOMUP: *** Final schedule for %bb.0 *** 48# BOTTOMUP-NEXT: * Schedule table (BottomUp): 49# BOTTOMUP-NEXT: i: issue 50# BOTTOMUP-NEXT: x: resource booked 51# BOTTOMUP-NEXT: Cycle | 37 | 36 | 35 | 34 | 33 | 32 | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 52# BOTTOMUP-NEXT: SU(1) | i | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 53# BOTTOMUP-NEXT: SiFive7PipeAB | x | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 54# BOTTOMUP-NEXT: SU(0) | i | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 55# BOTTOMUP-NEXT: SiFive7PipeAB | x | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 56# BOTTOMUP-NEXT: SiFive7PipeB | x | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 57# BOTTOMUP-NEXT: SU(2) | | | | i | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 58# BOTTOMUP-NEXT: SiFive7PipeAB | | | | x | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 59# BOTTOMUP-NEXT: SiFive7PipeB | | | | x | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 60# BOTTOMUP-NEXT: SiFive7IDiv | | | | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | 61# BOTTOMUP-NEXT: SU(1): renamable $x13 = ADD renamable $x11, renamable $x10 62# BOTTOMUP-NEXT: SU(0): renamable $x12 = MUL renamable $x11, renamable $x10 63# BOTTOMUP-NEXT: SU(2): renamable $x14 = DIVW renamable $x12, renamable $x13 64 65# BIDIRECTIONAL: *** Final schedule for %bb.0 *** 66# BIDIRECTIONAL-NEXT: * Schedule table (Bidirectional): not implemented 67# BIDIRECTIONAL-NEXT: SU(1): renamable $x13 = ADD renamable $x11, renamable $x10 68# BIDIRECTIONAL-NEXT: SU(0): renamable $x12 = MUL renamable $x11, renamable $x10 69# BIDIRECTIONAL-NEXT: SU(2): renamable $x14 = DIVW renamable $x12, renamable $x13 70