Skip to content

Commit 5a64c89

Browse files
committed
[MachineScheduler] Test case for physical register dependencies
Differential Revision: https://reviews.llvm.org/D156551
1 parent 165841b commit 5a64c89

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# RUN: llc -march=amdgcn -run-pass machine-scheduler -verify-machineinstrs %s -o - -debug-only=machine-scheduler 2>&1 | FileCheck %s
2+
# REQUIRES: asserts
3+
4+
# CHECK: SU(0): $vgpr0 = V_MOV_B32_e32 $sgpr0, implicit $exec
5+
# CHECK: Successors:
6+
# CHECK-NEXT: SU(2): Out Latency=1
7+
# CHECK-NEXT: SU(4): Out Latency=1
8+
# CHECK-NEXT: SU(2): Data Latency=1 Reg=$vgpr0
9+
# CHECK-NEXT: SU(4): Data Latency=1 Reg=$vgpr0_vgpr1
10+
# CHECK: SU(1): $vgpr1 = V_MOV_B32_e32 $sgpr0, implicit $exec
11+
# CHECK: Successors:
12+
# CHECK-NEXT: SU(3): Out Latency=1
13+
# CHECK-NEXT: SU(4): Out Latency=1
14+
# CHECK-NEXT: SU(3): Data Latency=1 Reg=$vgpr1
15+
# CHECK-NEXT: SU(4): Data Latency=1 Reg=$vgpr0_vgpr1
16+
# CHECK: SU(2): $vgpr0 = V_ADD_CO_U32_e32 $sgpr2, $vgpr0, implicit-def $vcc, implicit $exec
17+
# CHECK: Predecessors:
18+
# CHECK-NEXT: SU(0): Out Latency=1
19+
# CHECK-NEXT: SU(0): Data Latency=1 Reg=$vgpr0
20+
# CHECK: Successors:
21+
# CHECK-NEXT: SU(4): Out Latency=1
22+
# CHECK-NEXT: SU(4): Data Latency=1 Reg=$vgpr0_vgpr1
23+
# CHECK-NEXT: SU(3): Out Latency=1
24+
# CHECK-NEXT: SU(3): Data Latency=1 Reg=$vcc
25+
# CHECK-NEXT: SU(4): Anti Latency=0
26+
# CHECK: SU(3): $vgpr1 = V_ADDC_U32_e32 0, $vgpr1, implicit-def dead $vcc, implicit $vcc, implicit $exec
27+
# CHECK: Predecessors:
28+
# CHECK-NEXT: SU(2): Out Latency=1
29+
# CHECK-NEXT: SU(2): Data Latency=1 Reg=$vcc
30+
# CHECK-NEXT: SU(1): Out Latency=1
31+
# CHECK-NEXT: SU(1): Data Latency=1 Reg=$vgpr1
32+
# CHECK: Successors:
33+
# CHECK-NEXT: SU(4): Out Latency=1
34+
# CHECK-NEXT: SU(4): Data Latency=1 Reg=$vgpr0_vgpr1
35+
# CHECK-NEXT: SU(4): Anti Latency=0
36+
# CHECK: SU(4): $vgpr0_vgpr1 = FLAT_LOAD_DWORDX2 renamable $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $flat_scr
37+
# CHECK: Predecessors:
38+
# CHECK-NEXT: SU(3): Out Latency=1
39+
# CHECK-NEXT: SU(3): Data Latency=1 Reg=$vgpr0_vgpr1
40+
# CHECK-NEXT: SU(3): Anti Latency=0
41+
# CHECK-NEXT: SU(2): Out Latency=1
42+
# CHECK-NEXT: SU(2): Data Latency=1 Reg=$vgpr0_vgpr1
43+
# CHECK-NEXT: SU(2): Anti Latency=0
44+
# CHECK-NEXT: SU(1): Out Latency=1
45+
# CHECK-NEXT: SU(1): Data Latency=1 Reg=$vgpr0_vgpr1
46+
# CHECK-NEXT: SU(0): Out Latency=1
47+
# CHECK-NEXT: SU(0): Data Latency=1 Reg=$vgpr0_vgpr1
48+
# CHECK: Successors:
49+
# CHECK-NEXT: ExitSU: Ord Latency=3 Artificial
50+
51+
---
52+
name: test
53+
tracksRegLiveness: true
54+
body: |
55+
bb.0:
56+
liveins: $sgpr0, $sgpr1, $sgpr2
57+
$vgpr0 = V_MOV_B32_e32 $sgpr0, implicit $exec
58+
$vgpr1 = V_MOV_B32_e32 $sgpr0, implicit $exec
59+
$vgpr0 = V_ADD_CO_U32_e32 $sgpr2, $vgpr0, implicit-def $vcc, implicit $exec
60+
$vgpr1 = V_ADDC_U32_e32 0, $vgpr1, implicit-def dead $vcc, implicit $vcc, implicit $exec
61+
$vgpr0_vgpr1 = FLAT_LOAD_DWORDX2 renamable $vgpr0_vgpr1, 0, 0, implicit $exec, implicit $flat_scr
62+
...

0 commit comments

Comments
 (0)