/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 16 %inner.sel = select i1 %inner.cond, i8 %inner.sel.trueval, i8 %inner.sel.falseval 17 %outer.sel = select i1 %outer.cond, i8 %outer.sel.trueval, i8 %inner [all...] |
/llvm-project/llvm/test/Transforms/LoopVectorize/AArch64/ |
H A D | low_trip_memcheck_cost.ll | 13 br label %inner.loop 15 inner.loop: 16 %inner.iv = phi i64 [ 0, %entry ], [ %inner.iv.next, %inner.loop ] 17 %add.us = add nuw nsw i64 %inner.iv, %off 24 %inner.iv.next = add nuw nsw i64 %inner.iv, 1 25 %exitcond.not = icmp eq i64 %inner.iv.next, %n 26 br i1 %exitcond.not, label %inner.exit, label %inner.loop 28 inner.exit: 42 %outer.iv = phi i64 [ %outer.iv.next, %inner.exit ], [ 0, %entry ] 44 br label %inner.loop [all …]
|
/llvm-project/llvm/test/Transforms/LoopInterchange/ |
H A D | perserve-lcssa.ll | 13 ; CHECK-LABEL: inner.body: 14 ; CHECK-NEXT: %iv.inner = phi i64 [ %[[IVNEXT:[0-9]+]], %inner.body.split ], [ 5, %inner.body.pr… 16 ; CHECK-LABEL: inner.body.split: 18 ; CHECK-NEXT: %[[IVNEXT]] = add nsw i64 %iv.inner, -1 19 ; CHECK-NEXT: %[[COND:[0-9]+]] = icmp eq i64 %iv.inner, 0 20 ; CHECK-NEXT: br i1 %[[COND]], label %exit, label %inner.body 23 ; CHECK-NEXT: %v4.lcssa = phi i64 [ %0, %inner.body.split ] 24 ; CHECK-NEXT: %v8.lcssa.lcssa = phi i64 [ %[[IVNEXT]], %inner.body.split ] 33 br label %inner.body 35 inner.body: ; preds = %inner.body, %outer.header [all …]
|
H A D | lcssa.ll | 21 ; produced in the outer loop latch and used in the loop exit block. If the inner 41 %iv.inner = phi i64 [ %iv.inner.next, %for.body3 ], [ 1, %outer.header ] 42 %arrayidx5 = getelementptr inbounds [100 x [100 x i32]], ptr @A, i64 0, i64 %iv.inner, i64 %iv.outer 44 %arrayidx9 = getelementptr inbounds [100 x [100 x i32]], ptr @C, i64 0, i64 %iv.inner, i64 %iv.outer 48 %iv.inner.next = add nuw nsw i64 %iv.inner, 1 49 %exitcond = icmp eq i64 %iv.inner.next, 100 82 %iv.inner = phi i64 [ %iv.inner [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 19 ; CHECK: inner.ph: 20 ; CHECK-NEXT: br label [[INNER:%.*]] 21 ; CHECK: inner: 25 ; CHECK: inner.split1: 32 ; CHECK: inner.split: 36 ; CHECK-NEXT: br i1 [[TMP1]], label [[EXIT:%.*]], label [[INNER]] 50 br label %inner.ph 52 inner.ph: ; preds = %bb1 54 br label %inner [all …]
|
H A D | pr43473-invalid-lcssa-phis-in-inner-exit.ll | 6 ; In the 2 test cases below, we have a LCSSA PHI in the inner loop exit, which 16 ; CHECK-NEXT: br label [[INNER:%.*]] 17 ; CHECK: inner: 18 ; CHECK-NEXT: [[INNER_IV:%.*]] = phi i64 [ 0, [[OUTER_HEADER]] ], [ [[INNER_IV_NEXT:%.*]], [[INNER]] ] 22 ; CHECK-NEXT: br i1 [[ARG:%.*]], label [[INNER]], label [[OUTER_LATCH]] 24 ; CHECK-NEXT: [[INC43_LCSSA_WIDE_US:%.*]] = phi i64 [ [[INNER_IV_NEXT]], [[INNER]] ] 37 br label %inner 39 inner: ; preds = %for.body28.us, %for.body25.us 40 %inner.iv = phi i64 [ 0, %outer.header ], [ %inner [all...] |
/llvm-project/clang/test/Analysis/ |
H A D | inner-pointer.cpp | 43 c = s.c_str(); // expected-note {{Pointer to inner buffer of 'std::string' obtained here}} in deref_after_scope_char() 44 d = s.data(); // expected-note {{Pointer to inner buffer of 'std::string' obtained here}} in deref_after_scope_char() 45 …} // expected-note {{Inner buffer of 'std::string' deallocated by call to destructo… in deref_after_scope_char() 46 // expected-note@-1 {{Inner buffer of 'std::string' deallocated by call to destructor}} in deref_after_scope_char() 54 consume(c); // expected-warning {{Inner pointer of container used after re/deallocation}} in deref_after_scope_char() 55 // expected-note@-1 {{Inner pointer of container used after re/deallocation}} in deref_after_scope_char() 57 consume(d); // expected-warning {{Inner pointer of container used after re/deallocation}} in deref_after_scope_char() 58 // expected-note@-1 {{Inner pointer of container used after re/deallocation}} in deref_after_scope_char() 66 c = s.data(); // expected-note {{Pointer to inner buffer of 'std::string' obtained here}} in deref_after_scope_char_data_non_const() 67 …} // expected-note {{Inner buffer of 'std::string' deallocated by call to destructor… in deref_after_scope_char_data_non_const() [all …]
|
/llvm-project/llvm/test/Analysis/ScalarEvolution/ |
H A D | outer_phi.ll | 10 …647) S: [0,-2147483647) Exits: <<Unknown>> LoopDispositions: { %outer: Variant, %inner: Invariant } 11 ; CHECK-NEXT: %iv = phi i32 [ 0, %outer ], [ %iv.next, %inner.backedge ] 12 …EXT: --> {0,+,1}<nuw><nsw><%inner> U: [0,-2147483648) S: [0,-2147483648) Exits: <<Unknown>> Loo… 14 …ECK-NEXT: --> {1,+,1}<nuw><%inner> U: [1,-2147483647) S: [1,-2147483647) Exits: <<Unknown>> Loo… 15 ; CHECK-NEXT: %inner.loop.cond = call i1 @cond() 16 ; CHECK-NEXT: --> %inner.loop.cond U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: … 18 …U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %outer: Variant, %inner: Invariant } 20 ; CHECK-NEXT: Loop %inner: <multiple exits> Unpredictable backedge-taken count. 21 ; CHECK-NEXT: exit count for inner: %b 22 ; CHECK-NEXT: exit count for inner.backedge: ***COULDNOTCOMPUTE*** [all …]
|
/llvm-project/llvm/test/Transforms/LoopDeletion/ |
H A D | invalidate-scev-after-hoisting.ll | 14 ; CHECK: inner.ph: 16 ; CHECK-NEXT: br label [[INNER:%.*]] 17 ; CHECK: inner: 18 ; CHECK-NEXT: [[P:%.*]] = phi i32 [ poison, [[INNER_PH]] ], [ [[INVAR]], [[INNER]] ] 19 ; CHECK-NEXT: [[INNER_IV:%.*]] = phi i32 [ 1, [[INNER_PH]] ], [ [[INNER_IV_NEXT:%.*]], [[INNER]]… 25 ; CHECK-NEXT: br i1 [[INNER_CMP]], label [[INNER]], label [[INNER_EXIT:%.*]] 26 ; CHECK: inner.exit: 27 ; CHECK-NEXT: [[INVAR_LCSSA:%.*]] = phi i32 [ [[INVAR]], [[INNER]] ] 42 br i1 %outer.cmp, label %inner.ph, label %outer.latch 44 inner.ph: [all …]
|
/llvm-project/llvm/test/Transforms/IndVarSimplify/ |
H A D | outer_phi.ll | 8 ; one of the checks in the inner loop can be removed. The key to proving it is to prove that 21 ; CHECK-NEXT: br label [[INNER:%.*]] 22 ; CHECK: inner: 26 ; CHECK: inner.1: 29 ; CHECK: inner.backedge: 32 ; CHECK-NEXT: br i1 [[INNER_LOOP_COND]], label [[INNER]], label [[OUTER_BACKEDGE]] 50 br label %inner 53 inner: 54 %iv = phi i32 [%outer.iv, %outer], [%iv.next, %inner.backedge] 56 br i1 %signed_cond, label %inner.1, label %side.exit [all …]
|
H A D | pr57247.ll | 13 ; CHECK: inner.loop: 16 ; CHECK: inner.latch: 33 br label %inner.loop 35 inner.loop: ; preds = %inner.latch, %outer.loop 36 %storemerge611.i = phi i64 [ 0, %outer.loop ], [ %add.i, %inner.latch ] 37 br i1 %check_1, label %inner.latch, label %exit 39 inner.latch: ; preds = %inner.loop 42 br i1 %cmp5.i, label %inner.loop, label %outer.latch 44 outer.latch: ; preds = %inner.latch 48 exit: ; preds = %inner.loop [all …]
|
/llvm-project/clang/test/AST/ |
H A D | ast-print-out-of-line-func.cpp | 6 class Inner { class 7 Inner(); 8 Inner(int); 9 ~Inner(); 25 Wrapper::Inner::Inner() { } in Inner() function in ns::Wrapper::Inner 26 // CHECK: Wrapper::Inner::Inner() 28 void Wrapper::Inner::operator +=(int) { } in operator +=() 29 // CHECK: void Wrapper::Inner::operator+=(int) 33 ns::Wrapper::Inner::Inner(int) { } in Inner() function in ns::Wrapper::Inner 34 // CHECK: ns::Wrapper::Inner::Inner(int) [all …]
|
/llvm-project/clang/test/CodeGenCXX/ |
H A D | code-seg1.cpp | 16 struct Inner { struct 21 void Foo1::Inner::bar1() {} in bar1() 22 void Foo1::Inner::bar2() {} in bar2() 24 //CHECK: define {{.*}}bar1@Inner@Foo1{{.*}} section "foo_outer" 25 //CHECK: define {{.*}}bar2@Inner@Foo1{{.*}} section "foo_outer" 28 struct __declspec(code_seg("foo_inner")) Inner { struct 33 void Foo2::Inner::bar1() {} in bar1() 34 void Foo2::Inner::bar2() {} in bar2() 36 //CHECK: define {{.*}}bar1@Inner@Foo2{{.*}} section "foo_inner" 37 //CHECK: define {{.*}}bar2@Inner@Foo2{{.*}} section "foo_inner" [all …]
|
/llvm-project/llvm/test/Transforms/LoopFlatten/ |
H A D | loop-flatten-gep.ll | 15 br label %for.inner.preheader 17 ; CHECK-LABEL: for.inner.preheader: 19 for.inner.preheader: 21 br label %for.inner 23 ; CHECK-LABEL: for.inner: 26 for.inner: 27 %j = phi i32 [ 0, %for.inner.preheader ], [ %inc1, %for.inner ] 34 br i1 %cmp2, label %for.inner, label %for.outer 41 br i1 %cmp1, label %for.inner.preheader, label %for.end.loopexit 61 br label %for.inner.preheader [all …]
|
/llvm-project/mlir/test/Dialect/Vector/ |
H A D | vector-multi-reduction-pass-lowering.mlir | 1 // RUN: mlir-opt -lower-vector-multi-reduction="lowering-strategy=inner-reduction" -split-input-file %s | FileCheck %s --check-prefixes=ALL,INNER-REDUCTION 2 // RUN: mlir-opt -lower-vector-multi-reduction="lowering-strategy=inner-parallel" -split-input-file %s | FileCheck %s --check-prefixes=ALL,INNER-PARALLEL 3 // RUN: mlir-opt -lower-vector-multi-reduction -split-input-file %s | FileCheck %s --check-prefixes=ALL,INNER-PARALLEL 11 // INNER-REDUCTION-DAG: %[[RESULT_VEC_0:.+]] = arith.constant dense<{{.*}}> : vector<2xf32> 12 // INNER-REDUCTION: %[[V0:.+]] = vector.extract %[[INPUT]][0] 13 // INNER-REDUCTION: %[[ACC0:.+]] = vector.extract %[[ACC]][0] 14 // INNER-REDUCTION: %[[RV0:.+]] = vector.reduction <mul>, %[[V0]], %[[ACC0]] : vector<4xf32> into f32 15 // INNER [all...] |
/llvm-project/llvm/test/Analysis/LoopNestAnalysis/ |
H A D | duplicate-successors.ll | 4 ; CHECK: IsPerfect=true, Depth=1, OutermostLoop: inner.header, Loops: ( inner.header ) 5 ; CHECK-NEXT: IsPerfect=true, Depth=2, OutermostLoop: outer.header, Loops: ( outer.header inner.hea… 19 br i1 %cmp, label %inner.header.preheader, label %inner.header.preheader 21 inner.header.preheader: ; preds = %outer.header, %outer.header 22 br label %inner.header 24 inner.header: ; preds = %inner.header.preheader, %inner.header 25 %inner.iv = phi i64 [ %inner.iv.next, %inner.header ], [ 5, %inner.header.preheader ] 26 …%ptr = getelementptr inbounds [1000 x [1000 x i32]], ptr @global, i64 0, i64 %inner.iv, i64 %outer… 30 %inner.iv.next = add nsw i64 %inner.iv, 1 31 %cond1 = icmp eq i64 %inner.iv.next, 1000 [all …]
|
/llvm-project/llvm/test/Transforms/SimplifyCFG/ |
H A D | empty-catchpad.ll | 46 ; CHECK: cleanup.inner: 53 ; CHECK: dispatch.inner: 54 ; CHECK-NEXT: [[CS_INNER:%.*]] = catchswitch within none [label %pad.inner] unwind to caller 55 ; CHECK: pad.inner: 67 to label %via.catchswitch unwind label %cleanup.inner 68 cleanup.inner: 69 %cp.inner = cleanuppad within none [] 71 cleanupret from %cp.inner unwind label %exn.dispatch 74 to label %exit unwind label %dispatch.inner 75 dispatch.inner: [all …]
|
/llvm-project/llvm/test/Transforms/LoopVectorize/ |
H A D | partial-lcssa.ll | 2 ; We vectorize the inner loop, so we have to put it in LCSSA form. 6 ; CHECK-LABEL: for.end.inner.loopexit: 7 ; CHECK: %[[LCSSAPHI:.*]] = phi i64 [ %indvars.iv, %for.body.inner ], [ %{{.*}}, %middle.block ] 21 …r.body.outer: ; preds = %for.body.outer.preheader, %for.end.inner 22 %indvars.outer = phi i64 [ %indvars.outer.next, %for.end.inner ], [ 0, %for.body.outer.preheader ] 24 br i1 %cmp2, label %for.body.inner.preheader, label %for.end.inner 26 for.body.inner.preheader: ; preds = %for.body.outer 27 br label %for.body.inner 29 for.body.inner: ; preds = %for.body.inner.preheader, %for.body.in… 30 %indvars.iv = phi i64 [ %indvars.iv.next, %for.body.inner ], [ 0, %for.body.inner.preheader ] [all …]
|
H A D | explicit_outer_detection.ll | 5 ; vectorization hints are collected for vectorization instead of inner loops. 26 ; CHECK-NOT: LV: Found a loop: inner.body 44 br i1 %cmp230, label %inner.ph, label %outer.inc 46 inner.ph: ; preds = %outer.body 48 br label %inner.body 50 inner.body: ; preds = %inner.body, %inner.ph 51 %indvars.iv = phi i64 [ 0, %inner.ph ], [ %indvars.iv.next, %inner [all...] |
H A D | explicit_outer_nonuniform_inner.ll | 5 ; divergent inner loops. 13 ; // Tested inner loop. It will be replaced per test. 20 ; Case 1 (for (j = i; j < M; j++)): Inner loop with divergent IV start. 42 br i1 %cmp231, label %inner.ph, label %outer.inc 44 inner.ph: ; preds = %outer.body 46 br label %inner.body 48 inner.body: ; preds = %inner.body, %inner.ph 49 %indvars.iv35 = phi i64 [ %indvars.iv38, %inner [all...] |
/llvm-project/llvm/test/Transforms/LoopUnroll/ |
H A D | pr18861.ll | 14 ; --> ( inner.header ) | 18 ; ( inner.latch ) ( outer.latch ) 23 ; When the inner loop is unrolled, we inner.latch block has only one 35 br label %inner.header 37 inner.header: ; preds = %inner.latch, %outer.header 38 %storemerge = phi i32 [ %add, %inner.latch ], [ 0, %outer.header ] 40 br i1 %cmp, label %inner.latch, label %outer.latch 42 inner.latch: ; preds = %inner.header 45 br i1 %tobool4, label %inner.header, label %exit 47 exit: ; preds = %inner.latch [all …]
|
H A D | scev-forget-exit-phis.ll | 12 ; CHECK: inner.1.header: 20 ; CHECK: inner.2.header.preheader: 22 ; CHECK: inner.1.latch: 30 ; CHECK: inner.1.latch.1: 32 ; CHECK: inner.2.header: 34 ; CHECK: inner.3: 45 br label %inner.1.header 47 inner.1.header: 48 %p.2 = phi i64 [ %p.1, %outer.header ], [ 0, %inner.1.latch ] 49 %b = phi i1 [ true, %outer.header ], [ false, %inner.1.latch ] [all …]
|
/llvm-project/llvm/test/Transforms/LoopRotate/ |
H A D | pr51981-scev-problem.ll | 21 … <<Unknown>> LoopDispositions: { %loop.outer.header: Variant, %loop.inner: Invariant } 23 … <<Unknown>> LoopDispositions: { %loop.outer.header: Variant, %loop.inner: Invariant } 24 ; CHECK-SCEV: %iv = phi i16 [ %narrow, %loop.inner.ph ], [ %iv.plus, %loop.inner ] 25 …loop.inner> U: full-set S: full-set Exits: (-1 + (700 umax (1 + (trunc i32 %wide to i16)… 30 ; CHECK-SCEV: %wide2 = phi i32 [ %wide1, %loop.inner.ph.lr.ph ], [ %wide, %loop.outer.latch ] 31 … Exits: <<Unknown>> LoopDispositions: { %loop.inner.ph: Variant, %loop.inner: Invar… 33 … Exits: <<Unknown>> LoopDispositions: { %loop.inner.ph: Variant, %loop.inner: Invar… 34 ; CHECK-SCEV: %iv = phi i16 [ %narrow, %loop.inner.ph ], [ %iv.plus, %loop.inner ] 35 …inner> U: full-set S: full-set Exits: (-1 + (700 umax (1 + (trunc i32 %wide2 to i16)))) … 47 br i1 %cond, label %exit, label %loop.inner.ph [all …]
|
/llvm-project/llvm/test/CodeGen/AMDGPU/ |
H A D | bfi_nested.ll | 25 %shl.inner.insert = shl i32 %y.i32, 10 26 %bfi1.and = and i32 %shl.inner.insert, 1047552 59 %shl.inner.insert = shl i32 %y.i32, 10 60 %bfi1.and = and i32 1047552, %shl.inner.insert 95 %shl.inner.2.insert = shl i32 %y.i32, 10 96 %bfi.inner.2.and.1 = and i32 %shl.inner.2.insert, 1047552 97 %bfi.inner.2.and.2 = and i32 %mul.base.i32, 992 98 %bfi.inner.2 = or i32 %bfi.inner [all...] |
/llvm-project/llvm/test/Transforms/LoopUnrollAndJam/ |
H A D | dependencies.ll | 20 br label %for.inner 22 for.inner: 23 %j = phi i32 [ %add6, %for.inner ], [ 0, %for.outer ] 24 %sum = phi i32 [ %add, %for.inner ], [ 0, %for.outer ] 31 br i1 %exitcond, label %for.latch, label %for.inner 60 br label %for.inner 62 for.inner: 63 %j = phi i32 [ %add6, %for.inner ], [ 0, %for.outer ] 64 %sum = phi i32 [ %add, %for.inner ], [ 0, %for.outer ] 71 br i1 %exitcond, label %for.latch, label %for.inner [all …]
|