/llvm-project/llvm/test/Transforms/LoopInterchange/ |
H A D | lcssa.ll | 20 ; We cannot interchange this loop at the moment, because iv.outer.next is 21 ; produced in the outer loop latch and used in the loop exit block. If the inner 22 ; loop body is not executed, the outer loop latch won't be executed either 30 br i1 %cmp21, label %outer.ph, label %for.end16 32 outer.ph: ; preds = %entry 34 br label %outer.header 36 outer.header: ; preds = %outer.inc, %outer.ph 37 %iv.outer [all...] |
H A D | perserve-lcssa.ll | 17 ; CHECK-NEXT: %0 = phi i64 [ %iv.outer.next, %outer.latch ] 29 br label %outer.header 31 outer.header: ; preds = %outer.latch, %entry 32 %iv.outer = phi i64 [ 0, %entry ], [ %iv.outer.next, %outer.latch ] 35 inner.body: ; preds = %inner.body, %outer.header 36 %iv.inner = phi i64 [ 5, %outer.header ], [ %iv.inner.next, %inner.body ] 37 %v7 = getelementptr inbounds [10 x [10 x i32]], ptr @c, i64 0, i64 %iv.inner, i64 %iv.outer 41 br i1 %v9, label %outer.latch, label %inner.body 43 outer.latch: ; preds = %inner.body 45 %iv.outer.next = add nuw nsw i64 %iv.outer, 1 [all …]
|
H A D | pr43797-lcssa-for-multiple-outer-loop-blocks.ll | 26 br label %outer.header 28 outer.header: ; preds = %for.inc27, %entry 29 %outer.idx = phi i64 [ 0, %entry ], [ %outer.idx.inc, %outer.latch ] 30 %arrayidx8 = getelementptr inbounds [5 x [5 x double]], ptr @wdtdr, i64 0, i64 0, i64 %outer.idx 34 %inner.idx = phi i64 [ 0, %outer.header ], [ %inner.idx.inc, %inner.latch] 44 %outer.v = add nsw i64 %outer.idx, 1 45 br label %outer [all...] |
H A D | pr43473-invalid-lcssa-phis-in-inner-exit.ll | 7 ; is used in the outer loop latch. This is not supported. 13 ; CHECK: outer.header: 23 ; CHECK: outer.latch: 28 ; CHECK: outer.exit: 32 br label %outer.header 34 outer.header: ; preds = %for.cond26.for.end44_crit_edge.us, %entry 35 %outer.iv = phi i64 [ undef, %entry ], [ %outer.iv.next, %outer.latch ] 36 %idx = getelementptr inbounds double, ptr undef, i64 %outer [all...] |
H A D | update-condbranch-duplicate-successors.ll | 8 ; in the predecessor of the outer loop header. 16 ; CHECK: outer.header: 36 ; CHECK: outer.latch: 49 br label %outer.header 51 outer.header: ; preds = %outer.latch, %bb1 52 %outer.iv = phi i64 [ 0, %bb1], [ %outer.iv.next, %outer.latch ] 55 inner.header: ; preds = %inner.header, %outer.header 56 %inner.iv = phi i64 [ %inner.iv.next, %inner.header ], [ 5, %outer.header ] 57 …tr = getelementptr inbounds [1000 x [1000 x i32]], ptr @global, i64 0, i64 %inner.iv, i64 %outer.iv 63 br i1 %cond1, label %outer.latch, label %inner.header [all …]
|
H A D | pr45743-move-from-inner-preheader.ll | 6 ; We need to move %tmp4 from the inner loop pre header to the outer loop header 12 ; CHECK: outer.header.preheader: 14 ; CHECK: outer.header: 37 ; CHECK: outer.latch: 45 br label %outer.header 47 outer.header: ; preds = %bb11, %bb 48 %outer.iv = phi i64 [ 0, %bb ], [ %outer.iv.next, %outer.latch ] 49 %outer.red = phi i32 [ 0, %bb ], [ %red.next.lcssa, %outer.latch ] 53 %tmp4 = add nsw i64 %outer.iv, 9 58 %inner.red = phi i32 [ %outer.red, %inner.ph ], [ %red.next, %inner ] [all …]
|
/llvm-project/llvm/test/Analysis/MemorySSA/ |
H A D | simple_loop_unswitch_nontrivial.ll | 13 br label %outer 15 outer.loopexit.split: ; preds = %continue 16 br label %outer.loopexit 18 outer.loopexit: ; preds = %outer.loopexit.split.us, %outer.loopexit.split 19 br label %outer 21 outer: ; preds = %outer.loopexit, %header 22 br i1 false, label %outer [all...] |
/llvm-project/llvm/test/Transforms/SCCP/ |
H A D | undef-resolve.ll | 22 ; CHECK: control.outer.loopexit.us-lcssa: 24 ; CHECK: control.outer.loopexit: 26 ; CHECK: control.outer.outer: 31 ; CHECK: control.outer.outer.control.outer.outer.split_crit_edge: 33 ; CHECK: control.outer.outer.split.us: 35 ; CHECK: control.outer.us: 51 ; CHECK: control.outer.loopexit.us-lcssa.us: 57 ; CHECK: control.outer: 73 ; CHECK: control.outer.outer.backedge: 87 br label %control.outer.outer [all …]
|
/llvm-project/clang/test/CXX/expr/expr.prim/expr.prim.general/ |
H A D | p8-0x.cpp | 7 struct outer { struct 23 operator decltype(outer::middle::inner()) (); 24 operator decltype(outer::middle())::inner2 (); 25 operator decltype(outer())::middle::inner3 (); 26 str(int (decltype(outer::middle::inner())::*n)(), 27 int (decltype(outer::middle())::inner::*o)(), 28 int (decltype(outer())::middle::inner::*p)()); 31 decltype(outer::middle::inner()) a; 33 …a.decltype(outer::middle())::mfunc(); // expected-error{{'PR10127::outer::middle::mfunc' is not a … in scope() argument 34 a.decltype(outer::middle::inner())::func(); in scope() [all …]
|
/llvm-project/llvm/test/Analysis/ScalarEvolution/ |
H A D | outer_phi.ll | 9 ; CHECK-NEXT: %outer.iv = phi i32 [ 0, %entry ], [ %iv.next, %outer.backedge ] 10 ; CHECK-NEXT: --> %outer.iv U: [0,-2147483647) S: [0,-2147483647) Exits: <<Unknown>> LoopDisposi… 11 ; CHECK-NEXT: %iv = phi i32 [ 0, %outer ], [ %iv.next, %inner.backedge ] 12 …48) S: [0,-2147483648) Exits: <<Unknown>> LoopDispositions: { %inner: Computable, %outer: Variant } 14 …47) S: [1,-2147483647) Exits: <<Unknown>> LoopDispositions: { %inner: Computable, %outer: Variant } 16 …d U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %inner: Variant, %outer: Variant } 17 ; CHECK-NEXT: %outer.loop.cond = call i1 @cond() 18 ; CHECK-NEXT: --> %outer.loop.cond U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: … 27 ; CHECK-NEXT: Loop %outer: <multiple exits> Unpredictable backedge-taken count. 29 ; CHECK-NEXT: exit count for outer.backedge: ***COULDNOTCOMPUTE*** [all …]
|
H A D | flags-from-poison-noautogen.ll | 13 ; CHECK-NEXT: %o_idx = phi i32 [ 0, %entry ], [ %o_idx.inc, %outer.be ] 14 …-NEXT: --> {0,+,1}<nuw><nsw><%outer> U: [0,-2147483648) S: [0,-2147483648) Exits: %outer_l Loop… 16 ; CHECK-NEXT: --> {1,+,1}<nuw><%outer> U: [1,0) S: [1,0) Exits: (1 + %outer_l) LoopDispositions:… 17 ; CHECK-NEXT: %i_idx = phi i32 [ 0, %outer ], [ %i_idx.inc, %inner ] 18 …83648) S: [0,-2147483648) Exits: %inner_l LoopDispositions: { %inner: Computable, %outer: Variant } 20 …> U: [1,0) S: [1,0) Exits: (1 + %inner_l) LoopDispositions: { %inner: Computable, %outer: Variant } 22 …1}<nw><%outer>,+,1}<nsw><%inner> U: full-set S: full-set Exits: {(-1 + %inner_l),+,-1}<nw><%outer>… 24 …}<nw><%outer>,+,1}<nsw><%inner>) U: [0,2) S: [0,2) Exits: (1 /u {(-1 + %inner_l),+,-1}<nw><%outer>… 30 ; CHECK-NEXT: Loop %outer: backedge-taken count is %outer_l 31 ; CHECK-NEXT: Loop %outer: constant max backedge-taken count is i32 -1 [all …]
|
/llvm-project/llvm/test/Transforms/InstCombine/ |
H A D | nested-select.ll | 9 define i8 @andcond(i1 %inner.cond, i1 %alt.cond, i8 %inner.sel.trueval, i8 %inner.sel.falseval, i8 %outer.sel.trueval) { 15 %outer.cond = select i1 %inner.cond, i1 %alt.cond, i1 false ; and %inner.cond, %alt.cond 17 %outer.sel = select i1 %outer.cond, i8 %outer.sel.trueval, i8 %inner.sel 18 ret i8 %outer.sel 20 define i8 @orcond(i1 %inner.cond, i1 %alt.cond, i8 %inner.sel.trueval, i8 %inner.sel.falseval, i8 %outer.sel.falseval) { 26 %outer.cond = select i1 %inner.cond, i1 true, i1 %alt.cond ; or %inner.cond, %alt.cond 28 %outer.sel = select i1 %outer [all...] |
/llvm-project/llvm/test/Transforms/LoopVectorize/AArch64/ |
H A D | low_trip_memcheck_cost.ll | 9 ; CHECK-NOT: We expect runtime memory checks to be hoisted out of the outer loop. 35 ; CHECK: We expect runtime memory checks to be hoisted out of the outer loop. Cost reduced fro… 39 br label %outer.loop 41 outer.loop: 42 %outer.iv = phi i64 [ %outer.iv.next, %inner.exit ], [ 0, %entry ] 43 %mul.us = mul nsw i64 %outer.iv, %n 47 %inner.iv = phi i64 [ 0, %outer.loop ], [ %inner.iv.next, %inner.loop ] 60 %outer.iv.next = add nuw nsw i64 %outer.iv, 1 61 %exitcond27.not = icmp eq i64 %outer.iv.next, %m 62 br i1 %exitcond27.not, label %outer.exit, label %outer.loop [all …]
|
/llvm-project/llvm/test/Transforms/IndVarSimplify/ |
H A D | outer_phi.ll | 10 ; follows from the fact that %outer.iv also starts from somethign non-negative and only goes 17 ; CHECK: outer.preheader: 19 ; CHECK: outer: 33 ; CHECK: outer.backedge: 46 br i1 %b_is_non_negative, label %outer, label %failure 48 outer: 49 %outer.iv = phi i32 [0, %entry], [%iv.next, %outer.backedge] 54 %iv = phi i32 [%outer.iv, %outer], [%iv.next, %inner.backedge] 65 br i1 %inner.loop.cond, label %inner, label %outer.backedge 67 outer.backedge: [all …]
|
/llvm-project/llvm/test/Transforms/LoopVectorize/ |
H A D | explicit_outer_detection.ll | 4 ; Verify that outer loops annotated only with the expected explicit 19 ; Case 1: Annotated outer loop WITH vector width information must be collected. 23 ; CHECK: LV: We can vectorize this outer loop! 33 br i1 %cmp32, label %outer.ph, label %for.end15 35 outer.ph: ; preds = %entry 40 br label %outer.body 42 outer.body: ; preds = %outer.inc, %outer.ph 43 %indvars.iv35 = phi i64 [ 0, %outer [all...] |
H A D | vplan-printing-outer-loop.ll | 22 ; CHECK-NEXT: WIDEN-PHI ir<%outer.iv> = phi ir<0>, ir<%outer.iv.next> 23 ; CHECK-NEXT: EMIT ir<%gep.1> = getelementptr ir<@arr2>, ir<0>, ir<%outer.iv> 24 ; CHECK-NEXT: EMIT store ir<%outer.iv>, ir<%gep.1> 25 ; CHECK-NEXT: EMIT ir<%add> = add ir<%outer.iv>, ir<%n> 31 ; CHECK-NEXT: EMIT ir<%gep.2> = getelementptr ir<@arr>, ir<0>, ir<%inner.iv>, ir<%outer.iv> 38 ; CHECK-NEXT: Successor(s): outer.latch 40 ; CHECK-NEXT: outer.latch: 41 ; CHECK-NEXT: EMIT ir<%outer.iv.next> = add ir<%outer [all...] |
H A D | partial-lcssa.ll | 3 ; However, there's no reason to touch the outer loop. 9 ; CHECK-LABEL: for.end.outer.loopexit 10 ; CHECK: store i64 %indvars.outer, ptr %O2, align 4 16 br i1 %cmp, label %for.body.outer.preheader, label %for.end.outer 18 for.body.outer.preheader: ; preds = %entry 19 br label %for.body.outer 21 for.body.outer: ; preds = %for.body.outer.preheader, %for.end.inn… 22 %indvars.outer = phi i64 [ %indvars.outer.next, %for.end.inner ], [ 0, %for.body.outer.preheader ] 26 for.body.inner.preheader: ; preds = %for.body.outer 43 for.end.inner: ; preds = %for.end.inner.loopexit, %for.body.outer [all …]
|
H A D | explicit_outer_nonuniform_inner.ll | 4 ; Verify that LV bails out on explicit vectorization outer loops that contain 24 ; CHECK: LV: Not vectorizing: Unsupported outer loop. 31 br i1 %cmp33, label %outer.ph, label %for.end15 33 outer.ph: ; preds = %entry 37 br label %outer.body 39 outer.body: ; preds = %outer.inc, %outer.ph 40 %indvars.iv38 = phi i64 [ 0, %outer.ph ], [ %indvars.iv.next39, %outer [all...] |
H A D | explicit_outer_uniform_diverg_branch.ll | 4 ; Verify that LV can handle explicit vectorization outer loops with uniform branches 5 ; but bails out on outer loops with divergent branches. 24 ; CHECK: LV: We can vectorize this outer loop! 31 br i1 %cmp39, label %outer.ph, label %for.end19 33 outer.ph: ; preds = %entry 40 br label %outer.body 42 outer.body: ; preds = %outer.inc, %outer.ph 43 %indvars.iv42 = phi i64 [ 0, %outer [all...] |
/llvm-project/llvm/test/Analysis/LoopNestAnalysis/ |
H A D | duplicate-successors.ll | 5 ; CHECK-NEXT: IsPerfect=true, Depth=2, OutermostLoop: outer.header, Loops: ( outer.header inner.hea… 12 br i1 %cmp, label %outer.header.preheader, label %outer.header.preheader 14 outer.header.preheader: ; preds = %bb1, %bb1 15 br label %outer.header 17 outer.header: ; preds = %outer.header.preheader, %outer.latch 18 %outer.iv = phi i64 [ %outer.iv.next, %outer.latch ], [ 0, %outer.header.preheader ] 21 inner.header.preheader: ; preds = %outer.header, %outer.header 26 …tr = getelementptr inbounds [1000 x [1000 x i32]], ptr @global, i64 0, i64 %inner.iv, i64 %outer.iv 32 br i1 %cond1, label %outer.latch, label %inner.header 34 outer.latch: ; preds = %inner.header [all …]
|
/llvm-project/llvm/test/Transforms/LoopPredication/ |
H A D | nested.ll | 12 ; CHECK: outer.loop.preheader: 14 ; CHECK: outer.loop: 38 ; CHECK: outer.loop.inc.loopexit: 41 ; CHECK: outer.loop.inc: 55 br i1 %tmp5, label %exit, label %outer.loop.preheader 57 outer.loop.preheader: 58 br label %outer.loop 60 outer.loop: 61 %outer.loop.acc = phi i32 [ %outer.loop.acc.next, %outer.loop.inc ], [ 0, %outer.loop.preheader ] 62 %i = phi i32 [ %i.next, %outer.loop.inc ], [ 0, %outer.loop.preheader ] [all …]
|
/llvm-project/llvm/test/Analysis/LoopAccessAnalysis/ |
H A D | non-constant-distance-backward.ll | 25 …OMMON-NEXT: (Low: {(1 + %A)<nuw>,+,1}<nuw><%outer.header> High: {(257 + %A),+,1}<nw><%out… 26 ; COMMON-NEXT: Member: {{\{\{}}(1 + %A)<nuw>,+,1}<nuw><%outer.header>,+,1}<nuw><%loop> 35 ; COMMON-NEXT: outer.header: 47 br label %outer.header 49 outer.header: 50 %outer.iv = phi i64 [ 1, %entry ], [ %outer.iv.next, %outer.latch ] 51 %gep.off = getelementptr inbounds i8, ptr %A, i64 %outer.iv 55 %iv = phi i64 [ 0, %outer.header ], [ %iv.next, %loop ] 63 br i1 %exitcond.not, label %outer.latch, label %loop 65 outer.latch: [all …]
|
/llvm-project/llvm/test/Transforms/LoopDeletion/ |
H A D | invalidate-scev-after-hoisting.ll | 12 ; CHECK: outer.header: 29 ; CHECK: outer.latch: 37 br label %outer.header 39 outer.header: ; preds = %bb19, %bb 40 %outer.iv = phi i32 [ 0, %bb ], [ %tmp21, %outer.latch ] 41 %outer.cmp = icmp ult i32 %outer.iv, 400 42 br i1 %outer.cmp, label %inner.ph, label %outer.latch 59 br label %outer.latch 61 outer.latch: 62 %merge = phi i32 [ 0, %outer.header ], [ %invar, %inner.exit ] [all …]
|
/llvm-project/llvm/test/Transforms/LoopFlatten/ |
H A D | pr58865.ll | 9 ; CHECK: outer: 20 ; CHECK: outer.latch: 29 br label %outer 31 outer: ; preds = %outer.latch, %entry 32 %sum.04 = phi i16 [ 0, %entry ], [ %0, %outer.latch ] 33 %outer.iv = phi i16 [ 0, %entry ], [ %outer.iv.next, %outer.latch ] 36 inner: ; preds = %inner, %outer 37 %sum.12 = phi i16 [ %sum.04, %outer ], [ %0, %inner ] 38 %inner.iv = phi i16 [ 0, %outer ], [ %inner.iv.next, %inner ] 42 br i1 %cmp2, label %inner, label %outer.latch [all …]
|
/llvm-project/llvm/test/Transforms/LoopUnrollAndJam/ |
H A D | pragma.ll | 9 ; CHECK: %i.us = phi i32 [ %add8.us.{{[1-9]*}}, %for.latch ], [ 0, %for.outer.preheader.new ] 10 ; CHECK-LOWTHRES: %i.us = phi i32 [ %add8.us, %for.latch ], [ 0, %for.outer.preheader ] 15 br i1 %or.cond, label %for.outer.preheader, label %for.end 17 for.outer.preheader: 18 br label %for.outer 20 for.outer: 21 %i.us = phi i32 [ %add8.us, %for.latch ], [ 0, %for.outer.preheader ] 25 %j.us = phi i32 [ 0, %for.outer ], [ %inc.us, %for.inner ] 26 %sum1.us = phi i32 [ 0, %for.outer ], [ %add.us, %for.inner ] 40 br i1 %exitcond25, label %for.end.loopexit, label %for.outer [all …]
|