blob: 059bbaa3c4e746d3118ae353eae678af01196e13 [file] [log] [blame]
Nikolai Bozhenov4d5e34b2018-01-04 10:02:50 +00001; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2; RUN: opt -instcombine < %s -S | FileCheck %s
3
4define void @test() #0 {
5; CHECK-LABEL: @test(
6; CHECK-NEXT: entry:
7; CHECK-NEXT: br label [[FOR_BODY:%.*]]
8; CHECK: for.body:
9; CHECK-NEXT: [[INDVARS_IV:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ], [ [[INDVARS_IV_NEXT:%.*]], [[FOR_BODY]] ]
10; CHECK-NEXT: [[INDVARS_IV_NEXT]] = add nuw nsw i64 [[INDVARS_IV]], 1
Tim Northover12c1f762018-09-10 14:26:44 +000011; CHECK-NEXT: [[EXITCOND:%.*]] = icmp ult i64 [[INDVARS_IV_NEXT]], 40
Nikolai Bozhenov4d5e34b2018-01-04 10:02:50 +000012; CHECK-NEXT: br i1 [[EXITCOND]], label [[FOR_END:%.*]], label [[FOR_BODY]]
13; CHECK: for.end:
14; CHECK-NEXT: ret void
15;
16entry:
17 br label %for.body
18
19for.body: ; preds = %for.body, %entry
20 %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ]
21 %indvars.iv.next = add nsw i64 %indvars.iv, 1
22 %exitcond = icmp slt i64 %indvars.iv.next, 40
23 br i1 %exitcond, label %for.end, label %for.body
24
25for.end: ; preds = %for.body
26 ret void
27}