2
2
; RUN: opt -S -passes='loop-mssa(licm)' < %s | FileCheck %s
3
3
4
4
declare i1 @cond (i32 %v ) readnone
5
- declare void @capture (ptr %p ) readnone
5
+ declare ptr @capture (ptr %p ) readnone
6
6
7
7
define void @test_captured_after_loop (i32 %len ) {
8
8
; CHECK-LABEL: @test_captured_after_loop(
@@ -27,7 +27,7 @@ define void @test_captured_after_loop(i32 %len) {
27
27
; CHECK: exit:
28
28
; CHECK-NEXT: [[C_INC1_LCSSA:%.*]] = phi i32 [ [[C_INC1]], [[LATCH]] ]
29
29
; CHECK-NEXT: store i32 [[C_INC1_LCSSA]], ptr [[COUNT]], align 4
30
- ; CHECK-NEXT: call void @capture(ptr [[COUNT]])
30
+ ; CHECK-NEXT: [[TMP0:%.*]] = call ptr @capture(ptr [[COUNT]])
31
31
; CHECK-NEXT: ret void
32
32
;
33
33
entry:
52
52
br i1 %cmp , label %exit , label %loop
53
53
54
54
exit:
55
- call void @capture (ptr %count )
55
+ call ptr @capture (ptr %count )
56
56
ret void
57
57
}
58
58
@@ -71,7 +71,7 @@ define void @test_captured_in_loop(i32 %len) {
71
71
; CHECK: if:
72
72
; CHECK-NEXT: [[C_INC:%.*]] = add i32 [[C_INC2]], 1
73
73
; CHECK-NEXT: store i32 [[C_INC]], ptr [[COUNT]], align 4
74
- ; CHECK-NEXT: call void @capture(ptr [[COUNT]])
74
+ ; CHECK-NEXT: [[TMP0:%.*]] = call ptr @capture(ptr [[COUNT]])
75
75
; CHECK-NEXT: br label [[LATCH]]
76
76
; CHECK: latch:
77
77
; CHECK-NEXT: [[C_INC1]] = phi i32 [ [[C_INC]], [[IF]] ], [ [[C_INC2]], [[LOOP]] ]
95
95
%c = load i32 , ptr %count
96
96
%c.inc = add i32 %c , 1
97
97
store i32 %c.inc , ptr %count
98
- call void @capture (ptr %count )
98
+ call ptr @capture (ptr %count )
99
99
br label %latch
100
100
101
101
latch:
@@ -112,7 +112,7 @@ define void @test_captured_before_loop(i32 %len) {
112
112
; CHECK-NEXT: entry:
113
113
; CHECK-NEXT: [[COUNT:%.*]] = alloca i32, align 4
114
114
; CHECK-NEXT: store i32 0, ptr [[COUNT]], align 4
115
- ; CHECK-NEXT: call void @capture(ptr [[COUNT]])
115
+ ; CHECK-NEXT: [[TMP0:%.*]] = call ptr @capture(ptr [[COUNT]])
116
116
; CHECK-NEXT: [[COUNT_PROMOTED:%.*]] = load i32, ptr [[COUNT]], align 4
117
117
; CHECK-NEXT: br label [[LOOP:%.*]]
118
118
; CHECK: loop:
@@ -135,7 +135,7 @@ define void @test_captured_before_loop(i32 %len) {
135
135
entry:
136
136
%count = alloca i32
137
137
store i32 0 , ptr %count
138
- call void @capture (ptr %count )
138
+ call ptr @capture (ptr %count )
139
139
br label %loop
140
140
141
141
loop:
@@ -163,7 +163,7 @@ define void @test_captured_before_loop_address_only(i32 %len) {
163
163
; CHECK-NEXT: entry:
164
164
; CHECK-NEXT: [[COUNT:%.*]] = alloca i32, align 4
165
165
; CHECK-NEXT: store i32 0, ptr [[COUNT]], align 4
166
- ; CHECK-NEXT: call void @capture(ptr captures(address) [[COUNT]])
166
+ ; CHECK-NEXT: [[TMP0:%.*]] = call ptr @capture(ptr captures(address) [[COUNT]])
167
167
; CHECK-NEXT: [[COUNT_PROMOTED:%.*]] = load i32, ptr [[COUNT]], align 4
168
168
; CHECK-NEXT: br label [[LOOP:%.*]]
169
169
; CHECK: loop:
@@ -187,7 +187,7 @@ define void @test_captured_before_loop_address_only(i32 %len) {
187
187
entry:
188
188
%count = alloca i32
189
189
store i32 0 , ptr %count
190
- call void @capture (ptr captures(address) %count )
190
+ call ptr @capture (ptr captures(address) %count )
191
191
br label %loop
192
192
193
193
loop:
@@ -216,7 +216,7 @@ define void @test_captured_before_loop_byval(ptr byval(i32) align 4 %count, i32
216
216
; CHECK-LABEL: @test_captured_before_loop_byval(
217
217
; CHECK-NEXT: entry:
218
218
; CHECK-NEXT: store i32 0, ptr [[COUNT:%.*]], align 4
219
- ; CHECK-NEXT: call void @capture(ptr [[COUNT]])
219
+ ; CHECK-NEXT: [[TMP0:%.*]] = call ptr @capture(ptr [[COUNT]])
220
220
; CHECK-NEXT: [[COUNT_PROMOTED:%.*]] = load i32, ptr [[COUNT]], align 4
221
221
; CHECK-NEXT: br label [[LOOP:%.*]]
222
222
; CHECK: loop:
@@ -238,7 +238,7 @@ define void @test_captured_before_loop_byval(ptr byval(i32) align 4 %count, i32
238
238
;
239
239
entry:
240
240
store i32 0 , ptr %count
241
- call void @capture (ptr %count )
241
+ call ptr @capture (ptr %count )
242
242
br label %loop
243
243
244
244
loop:
@@ -283,7 +283,7 @@ define void @test_captured_after_loop_byval(ptr byval(i32) align 4 %count, i32 %
283
283
; CHECK: exit:
284
284
; CHECK-NEXT: [[C_INC1_LCSSA:%.*]] = phi i32 [ [[C_INC1]], [[LATCH]] ]
285
285
; CHECK-NEXT: store i32 [[C_INC1_LCSSA]], ptr [[COUNT]], align 4
286
- ; CHECK-NEXT: call void @capture(ptr [[COUNT]])
286
+ ; CHECK-NEXT: [[TMP0:%.*]] = call ptr @capture(ptr [[COUNT]])
287
287
; CHECK-NEXT: ret void
288
288
;
289
289
entry:
@@ -307,6 +307,6 @@ latch:
307
307
br i1 %cmp , label %exit , label %loop
308
308
309
309
exit:
310
- call void @capture (ptr %count )
310
+ call ptr @capture (ptr %count )
311
311
ret void
312
312
}
0 commit comments