Skip to content

Commit 7678df0

Browse files
committed
Checks for NonSSA Exec Mask Manipulation
1 parent 0ac1b80 commit 7678df0

File tree

4 files changed

+1436
-145
lines changed

4 files changed

+1436
-145
lines changed
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
# REQUIRES: asserts
2+
# RUN: llc -march=amdgcn -mcpu=gfx1010 -amdgpu-late-wave-transform=1 -run-pass=amdgpu-wave-transform -amdgpu-wave-transform-print-final=1 -o - %S%{fs-sep}wavetransform-basic.mir 2>&1 | FileCheck -check-prefixes=CFG %s
3+
4+
---
5+
6+
# CFG-LABEL: Wave CFG for if_then_divergent:
7+
# CFG-NEXT: bb.0 (#0) -> bb.1(*) bb.2(*) [LatestPostDom: bb.2] [divergent]
8+
# CFG-NEXT: bb.1 (#1) -> bb.2(*)
9+
# CFG-NEXT: bb.2 (#2) [secondary]
10+
11+
12+
# CFG-LABEL: Wave CFG for if_then_divergent_with_no_terminator:
13+
# CFG-NEXT: bb.0 (#0) -> bb.1(*) bb.2(*) [LatestPostDom: bb.2] [divergent]
14+
# CFG-NEXT: bb.1 (#1) -> bb.2(*)
15+
# CFG-NEXT: bb.2 (#2) [secondary]
16+
17+
18+
# CFG-LABEL: Wave CFG for if_then_else_divergent:
19+
# CFG-NEXT: bb.0 (#0) -> bb.1(*) <flow-1>(bb.2) [LatestPostDom: <flow-1>] [divergent]
20+
# CFG-NEXT: bb.1 (#1) -> <flow-1>(bb.3)
21+
# CFG-NEXT: <flow-1> (#2) -> bb.2(*) bb.3(*) [LatestPostDom: bb.3] [divergent] [secondary]
22+
# CFG-NEXT: bb.2 (#2) -> bb.3(*)
23+
# CFG-NEXT: bb.3 (#3) [secondary]
24+
25+
26+
# CFG-LABEL: Wave CFG for if_then_else_uniform:
27+
# CFG-NEXT: bb.0 (#0) -> bb.1(*) bb.2(*)
28+
# CFG-NEXT: bb.1 (#1) -> bb.3(*)
29+
# CFG-NEXT: bb.2 (#2) -> bb.3(*)
30+
# CFG-NEXT: bb.3 (#3)
31+
32+
33+
#
34+
# 0
35+
# / \
36+
# / \
37+
# 1 2
38+
# / \ / \
39+
# 3 4 5 6
40+
# \ \ / /
41+
# ->7<-
42+
#
43+
44+
# CFG-LABEL: Wave CFG for if_then_else_nested_divergent_divergent
45+
# CFG-NEXT: bb.0 (#0) -> bb.1(*) <flow-2>(bb.2) [LatestPostDom: <flow-2>] [divergent]
46+
# CFG-NEXT: bb.1 (#1) -> bb.3(*) <flow-1>(bb.4) [LatestPostDom: <flow-1>] [divergent]
47+
# CFG-NEXT: bb.3 (#2) -> <flow-1>(bb.7)
48+
# CFG-NEXT: <flow-1> (#3) -> bb.4(*) <flow-2>(bb.7) [divergent] [secondary]
49+
# CFG-NEXT: bb.4 (#3) -> <flow-2>(bb.7)
50+
# CFG-NEXT: <flow-2> (#4) -> bb.2(*) bb.7(*) [LatestPostDom: bb.7] [divergent] [secondary]
51+
# CFG-NEXT: bb.2 (#4) -> bb.5(*) <flow-3>(bb.6) [LatestPostDom: <flow-3>] [divergent]
52+
# CFG-NEXT: bb.5 (#5) -> <flow-3>(bb.7)
53+
# CFG-NEXT: <flow-3> (#6) -> bb.6(*) bb.7(*) [LatestPostDom: bb.7] [divergent] [secondary]
54+
# CFG-NEXT: bb.6 (#6) -> bb.7(*)
55+
# CFG-NEXT: bb.7 (#7) [secondary]
56+
57+
58+
#
59+
# 0
60+
# / \
61+
# / \
62+
# 1 2
63+
# / \ / \
64+
# 3 4 5 6
65+
# \ \ / /
66+
# ->7<-
67+
#
68+
69+
# CFG-LABEL: Wave CFG for if_then_else_nested_uniform_divergent
70+
# CFG-NEXT: bb.0 (#0) -> bb.1(*) bb.2(*)
71+
# CFG-NEXT: bb.1 (#1) -> bb.3(*) <flow-1>(bb.4) [LatestPostDom: <flow-1>] [divergent]
72+
# CFG-NEXT: bb.3 (#2) -> <flow-1>(bb.7)
73+
# CFG-NEXT: <flow-1> (#3) -> bb.4(*) bb.7(*) [LatestPostDom: bb.7] [divergent] [secondary]
74+
# CFG-NEXT: bb.4 (#3) -> bb.7(*)
75+
# CFG-NEXT: bb.2 (#4) -> bb.5(*) <flow-2>(bb.6) [LatestPostDom: <flow-2>] [divergent]
76+
# CFG-NEXT: bb.5 (#5) -> <flow-2>(bb.7)
77+
# CFG-NEXT: <flow-2> (#6) -> bb.6(*) bb.7(*) [LatestPostDom: bb.7] [divergent] [secondary]
78+
# CFG-NEXT: bb.6 (#6) -> bb.7(*)
79+
# CFG-NEXT: bb.7 (#7) [secondary]
80+
81+
82+
#
83+
# 0
84+
# / \
85+
# / \
86+
# 1 2
87+
# / \ / \
88+
# 3 4 5 6
89+
# \ \ / /
90+
# ->7<-
91+
#
92+
93+
94+
# CFG-LABEL: Wave CFG for if_then_else_nested_divergent_uniform:
95+
# CFG-NEXT: bb.0 (#0) -> bb.1(*) <flow-1>(bb.2) [LatestPostDom: <flow-1>] [divergent]
96+
# CFG-NEXT: bb.1 (#1) -> bb.3(*) bb.4(*)
97+
# CFG-NEXT: bb.3 (#2) -> <flow-1>(bb.7)
98+
# CFG-NEXT: bb.4 (#3) -> <flow-1>(bb.7)
99+
# CFG-NEXT: <flow-1> (#4) -> bb.2(*) bb.7(*) [LatestPostDom: bb.7] [divergent] [secondary]
100+
# CFG-NEXT: bb.2 (#4) -> bb.5(*) bb.6(*)
101+
# CFG-NEXT: bb.5 (#5) -> bb.7(*)
102+
# CFG-NEXT: bb.6 (#6) -> bb.7(*)
103+
# CFG-NEXT: bb.7 (#7) [secondary]
104+

0 commit comments

Comments
 (0)