Skip to content

Commit f55cf34

Browse files
committed
[CVP] Add pre-commit tests. NFC.
1 parent 0e8d187 commit f55cf34

File tree

1 file changed

+61
-0
lines changed
  • llvm/test/Transforms/CorrelatedValuePropagation

1 file changed

+61
-0
lines changed

llvm/test/Transforms/CorrelatedValuePropagation/min-max.ll

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,3 +235,64 @@ define i8 @test19(i8 %x) {
235235
%r = call i8 @llvm.smax(i8 %x, i8 42)
236236
ret i8 %r
237237
}
238+
239+
declare void @body(i32)
240+
241+
define void @test_bidirectional() {
242+
; CHECK-LABEL: @test_bidirectional(
243+
; CHECK-NEXT: entry:
244+
; CHECK-NEXT: br label [[FOR_BODY:%.*]]
245+
; CHECK: for.body:
246+
; CHECK-NEXT: [[INDVAR:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ [[INC:%.*]], [[FOR_BODY]] ]
247+
; CHECK-NEXT: [[SMAX:%.*]] = call i32 @llvm.smax.i32(i32 [[INDVAR]], i32 65535)
248+
; CHECK-NEXT: call void @body(i32 [[SMAX]])
249+
; CHECK-NEXT: [[INC]] = add nsw i32 [[INDVAR]], 1
250+
; CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 [[INDVAR]], 65535
251+
; CHECK-NEXT: br i1 [[CMP]], label [[FOR_BODY]], label [[EXIT:%.*]]
252+
; CHECK: exit:
253+
; CHECK-NEXT: ret void
254+
;
255+
entry:
256+
br label %for.body
257+
258+
for.body:
259+
%indvar = phi i32 [ 0, %entry ], [ %inc, %for.body ]
260+
%smax = call i32 @llvm.smax.i32(i32 %indvar, i32 65535)
261+
call void @body(i32 %smax)
262+
%inc = add nsw i32 %indvar, 1
263+
%cmp = icmp slt i32 %indvar, 65535
264+
br i1 %cmp, label %for.body, label %exit
265+
266+
exit:
267+
ret void
268+
}
269+
270+
define i64 @test_at_use(i1 %cond, i64 %x) {
271+
; CHECK-LABEL: @test_at_use(
272+
; CHECK-NEXT: entry:
273+
; CHECK-NEXT: br i1 [[COND:%.*]], label [[BB1:%.*]], label [[IF_END:%.*]]
274+
; CHECK: bb1:
275+
; CHECK-NEXT: [[VAL:%.*]] = call i64 @llvm.smax.i64(i64 [[X:%.*]], i64 -1)
276+
; CHECK-NEXT: [[CMP:%.*]] = icmp slt i64 [[X]], 0
277+
; CHECK-NEXT: br i1 [[CMP]], label [[IF_THEN:%.*]], label [[IF_END]]
278+
; CHECK: if.then:
279+
; CHECK-NEXT: ret i64 0
280+
; CHECK: if.end:
281+
; CHECK-NEXT: [[PHI:%.*]] = phi i64 [ [[VAL]], [[BB1]] ], [ 0, [[ENTRY:%.*]] ]
282+
; CHECK-NEXT: ret i64 [[PHI]]
283+
;
284+
entry:
285+
br i1 %cond, label %bb1, label %if.end
286+
287+
bb1:
288+
%val = call i64 @llvm.smax.i64(i64 %x, i64 -1)
289+
%cmp = icmp slt i64 %x, 0
290+
br i1 %cmp, label %if.then, label %if.end
291+
292+
if.then:
293+
ret i64 0
294+
295+
if.end:
296+
%phi = phi i64 [%val, %bb1], [0, %entry]
297+
ret i64 %phi
298+
}

0 commit comments

Comments
 (0)