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
18 tracksRegLiveness: true
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
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
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
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