Skip to content

Commit 1e5f336

Browse files
committed
[SCCP] Run test with both ipsccp and sccp (NFC)
1 parent 95b37a7 commit 1e5f336

File tree

1 file changed

+82
-33
lines changed

1 file changed

+82
-33
lines changed

llvm/test/Transforms/SCCP/range-attribute.ll

Lines changed: 82 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,30 @@
11
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2-
; RUN: opt < %s -passes=ipsccp -S | FileCheck %s
2+
; RUN: opt < %s -passes=ipsccp -S | FileCheck %s --check-prefixes=CHECK,IPSCCP
3+
; RUN: opt < %s -passes=sccp -S | FileCheck %s --check-prefixes=CHECK,SCCP
34

45
declare void @use(i1)
56
declare i32 @get_i32()
67

78
define void @range_attribute(i32 range(i32 0, 10) %v) {
8-
; CHECK-LABEL: @range_attribute(
9-
; CHECK-NEXT: call void @use(i1 true)
10-
; CHECK-NEXT: [[C2:%.*]] = icmp ult i32 [[V:%.*]], 9
11-
; CHECK-NEXT: call void @use(i1 [[C2]])
12-
; CHECK-NEXT: call void @use(i1 false)
13-
; CHECK-NEXT: [[C4:%.*]] = icmp ugt i32 [[V]], 8
14-
; CHECK-NEXT: call void @use(i1 [[C4]])
15-
; CHECK-NEXT: ret void
9+
; IPSCCP-LABEL: @range_attribute(
10+
; IPSCCP-NEXT: call void @use(i1 true)
11+
; IPSCCP-NEXT: [[C2:%.*]] = icmp ult i32 [[V:%.*]], 9
12+
; IPSCCP-NEXT: call void @use(i1 [[C2]])
13+
; IPSCCP-NEXT: call void @use(i1 false)
14+
; IPSCCP-NEXT: [[C4:%.*]] = icmp ugt i32 [[V]], 8
15+
; IPSCCP-NEXT: call void @use(i1 [[C4]])
16+
; IPSCCP-NEXT: ret void
17+
;
18+
; SCCP-LABEL: @range_attribute(
19+
; SCCP-NEXT: [[C1:%.*]] = icmp ult i32 [[V:%.*]], 10
20+
; SCCP-NEXT: call void @use(i1 [[C1]])
21+
; SCCP-NEXT: [[C2:%.*]] = icmp ult i32 [[V]], 9
22+
; SCCP-NEXT: call void @use(i1 [[C2]])
23+
; SCCP-NEXT: [[C3:%.*]] = icmp ugt i32 [[V]], 9
24+
; SCCP-NEXT: call void @use(i1 [[C3]])
25+
; SCCP-NEXT: [[C4:%.*]] = icmp ugt i32 [[V]], 8
26+
; SCCP-NEXT: call void @use(i1 [[C4]])
27+
; SCCP-NEXT: ret void
1628
;
1729
%c1 = icmp ult i32 %v, 10
1830
call void @use(i1 %c1)
@@ -26,8 +38,11 @@ define void @range_attribute(i32 range(i32 0, 10) %v) {
2638
}
2739

2840
define i32 @range_attribute_single(i32 range(i32 0, 1) %v) {
29-
; CHECK-LABEL: @range_attribute_single(
30-
; CHECK-NEXT: ret i32 0
41+
; IPSCCP-LABEL: @range_attribute_single(
42+
; IPSCCP-NEXT: ret i32 0
43+
;
44+
; SCCP-LABEL: @range_attribute_single(
45+
; SCCP-NEXT: ret i32 [[V:%.*]]
3146
;
3247
ret i32 %v
3348
}
@@ -82,72 +97,106 @@ define void @call_range_result() {
8297
}
8398

8499
define internal i1 @ip_cmp_range_attribute(i32 %v) {
85-
; CHECK-LABEL: @ip_cmp_range_attribute(
86-
; CHECK-NEXT: ret i1 poison
100+
; IPSCCP-LABEL: @ip_cmp_range_attribute(
101+
; IPSCCP-NEXT: ret i1 poison
102+
;
103+
; SCCP-LABEL: @ip_cmp_range_attribute(
104+
; SCCP-NEXT: [[C:%.*]] = icmp ult i32 [[V:%.*]], 10
105+
; SCCP-NEXT: ret i1 [[C]]
87106
;
88107
%c = icmp ult i32 %v, 10
89108
ret i1 %c
90109
}
91110

92111
define i1 @ip_range_attribute(i32 range(i32 0, 10) %v) {
93-
; CHECK-LABEL: @ip_range_attribute(
94-
; CHECK-NEXT: [[C:%.*]] = call i1 @ip_cmp_range_attribute(i32 [[V:%.*]])
95-
; CHECK-NEXT: ret i1 true
112+
; IPSCCP-LABEL: @ip_range_attribute(
113+
; IPSCCP-NEXT: [[C:%.*]] = call i1 @ip_cmp_range_attribute(i32 [[V:%.*]])
114+
; IPSCCP-NEXT: ret i1 true
115+
;
116+
; SCCP-LABEL: @ip_range_attribute(
117+
; SCCP-NEXT: [[C:%.*]] = call i1 @ip_cmp_range_attribute(i32 [[V:%.*]])
118+
; SCCP-NEXT: ret i1 [[C]]
96119
;
97120
%c = call i1 @ip_cmp_range_attribute(i32 %v)
98121
ret i1 %c
99122
}
100123

101124
define internal i1 @ip_cmp_range_call(i32 %v) {
102-
; CHECK-LABEL: @ip_cmp_range_call(
103-
; CHECK-NEXT: ret i1 poison
125+
; IPSCCP-LABEL: @ip_cmp_range_call(
126+
; IPSCCP-NEXT: ret i1 poison
127+
;
128+
; SCCP-LABEL: @ip_cmp_range_call(
129+
; SCCP-NEXT: [[C:%.*]] = icmp ult i32 [[V:%.*]], 10
130+
; SCCP-NEXT: ret i1 [[C]]
104131
;
105132
%c = icmp ult i32 %v, 10
106133
ret i1 %c
107134
}
108135

109136
define i1 @ip_range_call() {
110-
; CHECK-LABEL: @ip_range_call(
111-
; CHECK-NEXT: [[V:%.*]] = call range(i32 0, 10) i32 @get_i32()
112-
; CHECK-NEXT: [[C:%.*]] = call i1 @ip_cmp_range_call(i32 [[V]])
113-
; CHECK-NEXT: ret i1 true
137+
; IPSCCP-LABEL: @ip_range_call(
138+
; IPSCCP-NEXT: [[V:%.*]] = call range(i32 0, 10) i32 @get_i32()
139+
; IPSCCP-NEXT: [[C:%.*]] = call i1 @ip_cmp_range_call(i32 [[V]])
140+
; IPSCCP-NEXT: ret i1 true
141+
;
142+
; SCCP-LABEL: @ip_range_call(
143+
; SCCP-NEXT: [[V:%.*]] = call range(i32 0, 10) i32 @get_i32()
144+
; SCCP-NEXT: [[C:%.*]] = call i1 @ip_cmp_range_call(i32 [[V]])
145+
; SCCP-NEXT: ret i1 [[C]]
114146
;
115147
%v = call range(i32 0, 10) i32 @get_i32()
116148
%c = call i1 @ip_cmp_range_call(i32 %v)
117149
ret i1 %c
118150
}
119151

120152
define internal i1 @ip_cmp_range_result(i32 %v) {
121-
; CHECK-LABEL: @ip_cmp_range_result(
122-
; CHECK-NEXT: ret i1 poison
153+
; IPSCCP-LABEL: @ip_cmp_range_result(
154+
; IPSCCP-NEXT: ret i1 poison
155+
;
156+
; SCCP-LABEL: @ip_cmp_range_result(
157+
; SCCP-NEXT: [[C:%.*]] = icmp ult i32 [[V:%.*]], 10
158+
; SCCP-NEXT: ret i1 [[C]]
123159
;
124160
%c = icmp ult i32 %v, 10
125161
ret i1 %c
126162
}
127163

128164
define i1 @ip_range_result() {
129-
; CHECK-LABEL: @ip_range_result(
130-
; CHECK-NEXT: [[V:%.*]] = call range(i32 0, 10) i32 @get_i32()
131-
; CHECK-NEXT: [[C:%.*]] = call i1 @ip_cmp_range_result(i32 [[V]])
132-
; CHECK-NEXT: ret i1 true
165+
; IPSCCP-LABEL: @ip_range_result(
166+
; IPSCCP-NEXT: [[V:%.*]] = call range(i32 0, 10) i32 @get_i32()
167+
; IPSCCP-NEXT: [[C:%.*]] = call i1 @ip_cmp_range_result(i32 [[V]])
168+
; IPSCCP-NEXT: ret i1 true
169+
;
170+
; SCCP-LABEL: @ip_range_result(
171+
; SCCP-NEXT: [[V:%.*]] = call range(i32 0, 10) i32 @get_i32()
172+
; SCCP-NEXT: [[C:%.*]] = call i1 @ip_cmp_range_result(i32 [[V]])
173+
; SCCP-NEXT: ret i1 [[C]]
133174
;
134175
%v = call range(i32 0, 10) i32 @get_i32()
135176
%c = call i1 @ip_cmp_range_result(i32 %v)
136177
ret i1 %c
137178
}
138179

139180
define internal i1 @ip_cmp_with_range_attribute(i32 range(i32 0, 10) %v) {
140-
; CHECK-LABEL: @ip_cmp_with_range_attribute(
141-
; CHECK-NEXT: ret i1 poison
181+
; IPSCCP-LABEL: @ip_cmp_with_range_attribute(
182+
; IPSCCP-NEXT: ret i1 poison
183+
;
184+
; SCCP-LABEL: @ip_cmp_with_range_attribute(
185+
; SCCP-NEXT: [[C:%.*]] = icmp eq i32 [[V:%.*]], 5
186+
; SCCP-NEXT: ret i1 [[C]]
142187
;
143188
%c = icmp eq i32 %v, 5
144189
ret i1 %c
145190
}
146191

147192
define i1 @ip_range_attribute_constant() {
148-
; CHECK-LABEL: @ip_range_attribute_constant(
149-
; CHECK-NEXT: [[C:%.*]] = call i1 @ip_cmp_with_range_attribute(i32 5)
150-
; CHECK-NEXT: ret i1 true
193+
; IPSCCP-LABEL: @ip_range_attribute_constant(
194+
; IPSCCP-NEXT: [[C:%.*]] = call i1 @ip_cmp_with_range_attribute(i32 5)
195+
; IPSCCP-NEXT: ret i1 true
196+
;
197+
; SCCP-LABEL: @ip_range_attribute_constant(
198+
; SCCP-NEXT: [[C:%.*]] = call i1 @ip_cmp_with_range_attribute(i32 5)
199+
; SCCP-NEXT: ret i1 [[C]]
151200
;
152201
%c = call i1 @ip_cmp_with_range_attribute(i32 5)
153202
ret i1 %c

0 commit comments

Comments
 (0)