1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2; RUN: opt < %s -S -indvars -loop-deletion -simplifycfg -simplifycfg-require-and-preserve-domtree=1 | FileCheck %s 3; PR5794 4 5; Indvars and loop deletion should be able to eliminate all looping 6; in this testcase. 7 8target datalayout = "e-p:64:64:64" 9 10define i32 @pmat(i32 %m, i32 %n, double* %y) nounwind { 11; CHECK-LABEL: @pmat( 12; CHECK-NEXT: entry: 13; CHECK-NEXT: [[CMP4:%.*]] = icmp sgt i32 [[M:%.*]], 0 14; CHECK-NEXT: ret i32 0 15; 16entry: 17 %cmp4 = icmp sgt i32 %m, 0 18 br i1 %cmp4, label %bb.n10, label %w.e12 19 20w.c: 21 %cmp = icmp slt i32 %inc11, %m 22 br i1 %cmp, label %w.c2.p, label %w.c.w.e12c 23 24w.c.w.e12c: 25 br label %w.c.w.e12c.s 26 27w.c.w.e12c.s: 28 br label %w.e12 29 30bb.n10: 31 %cmp51 = icmp sgt i32 %n, 0 32 br i1 %cmp51, label %bb.n10.w.c.w.e12c.sc, label %bb.n10.bb.n10.sc 33 34bb.n10.bb.n10.sc: 35 br label %bb.n10.s 36 37bb.n10.w.c.w.e12c.sc: 38 br label %w.c.w.e12c.s 39 40bb.n10.s: 41 br label %w.c2.p 42 43w.c2.p: 44 %i.05 = phi i32 [ 0, %bb.n10.s ], [ %inc11, %w.c ] 45 br i1 false, label %bb.n, label %w.e 46 47w.c2: 48 br i1 undef, label %w.b6, label %w.c2.w.ec 49 50w.c2.w.ec: 51 br label %w.e 52 53bb.n: 54 br label %w.b6 55 56w.b6: 57 br label %w.c2 58 59w.e: 60 %i.08 = phi i32 [ undef, %w.c2.w.ec ], [ %i.05, %w.c2.p ] 61 %inc11 = add nsw i32 %i.08, 1 62 br label %w.c 63 64w.e12: 65 ret i32 0 66} 67 68; CHECK: attributes #0 = { nounwind } 69