| /llvm-project-15.0.7/mlir/test/Dialect/SCF/ |
| H A D | invalid.mlir | 32 scf.yield 42 {scf.yield}, 43 {scf.yield} 55 scf.yield 57 scf.yield 70 scf.yield 98 scf.yield 100 scf.yield 111 scf.yield 431 …// expected-error@+1 {{'scf.yield' op expects parent op to be one of 'scf.execute_region, scf.for,… [all …]
|
| H A D | canonicalize.mlir | 17 scf.yield 48 scf.yield 83 scf.yield 117 scf.yield 119 scf.yield 232 scf.yield 245 scf.yield 247 scf.yield 417 scf.yield 431 scf.yield [all …]
|
| H A D | parallel-loop-fusion.mlir | 8 scf.yield 11 scf.yield 38 scf.yield 45 scf.yield 84 scf.yield 91 scf.yield 97 scf.yield 138 scf.yield 141 scf.yield 157 scf.yield [all …]
|
| H A D | ops.mlir | 30 scf.if %arg0 { 40 scf.if %arg0 { 119 scf.yield 129 // CHECK-NEXT: scf.yield 164 scf.yield %sn : f32 272 scf.while : () -> () { 274 scf.condition(%true) 277 // CHECK: scf.yield 278 scf.yield 291 scf.yield %c1 : i64 [all …]
|
| H A D | one-shot-bufferize-analysis.mlir | 17 // CHECK: scf.for 18 // CHECK-NEXT: scf.yield 25 // CHECK: scf.for 26 // CHECK-NEXT: scf.yield 50 // CHECK: scf.for 89 // CHECK: scf.for 92 // CHECK-NEXT: scf.yield 101 // CHECK: scf.for 104 // CHECK-NEXT: scf.yield 188 // CHECK: scf.for [all …]
|
| H A D | control-flow-sink.mlir | 7 // CHECK: scf.yield %[[V1]] 10 // CHECK: scf.yield %[[V1]] 16 scf.yield %0 : i32 18 scf.yield %1 : i32 29 // CHECK: scf.if %[[ARG0]] 34 scf.if %arg0 { 36 scf.yield 47 // CHECK: scf.if %[[ARG0]] 53 scf.if %arg0 { 54 scf.if %arg0 { [all …]
|
| H A D | bufferize.mlir | 1 // RUN: mlir-opt %s -scf-bufferize | FileCheck %s 18 %0 = scf.if %pred -> (tensor<?xf32>) { 19 scf.yield %true_val : tensor<?xf32> 21 scf.yield %false_val : tensor<?xf32> 32 // CHECK: scf.yield %[[ITER]] : memref<f32> 39 scf.yield %iter : tensor<f32> 50 %0 = scf.if %pred -> (tensor<f32>) { 52 scf.yield %1: tensor<f32> 55 scf.yield %1 : tensor<f32> 76 scf.yield %0 : tensor<f32> [all …]
|
| H A D | for-loop-to-while-loop.mlir | 18 // CHECK: scf.yield %[[VAL_9]] : index 25 scf.for %i = %c0 to %arg1 step %c1 { 57 // CHECK: scf.yield %[[VAL_9]] : index 64 scf.for %i = %c0 to %arg1 step %c1 { 65 scf.for %j = %c0 to %arg1 step %c1 { 95 scf.yield %sn, %sn : f32, f32 119 // CHECK: scf.yield %[[VAL_14]] : i32 135 %2 = scf.execute_region -> i32 { 140 scf.yield %2 : i32 143 scf.yield %3 : i32 [all …]
|
| H A D | for-loop-canonicalization.mlir | 5 // CHECK: scf.for 24 // CHECK: scf.for 42 // CHECK: scf.for 63 // CHECK: scf.for 64 // CHECK: scf.for 86 // CHECK: scf.for 106 // CHECK: scf.for 126 // CHECK: scf.for 149 // CHECK: scf.for 172 // CHECK: scf.for [all …]
|
| H A D | transform-ops.mlir | 56 // CHECK: scf.for 60 // CHECK: scf.for 65 // CHECK: scf.for 66 // CHECK-NOT: scf.for 67 // CHECK: scf.execute_region 74 // CHECK: scf.execute_region 75 // CHECK-NOT: scf.for 101 scf.while : () -> () { 103 scf.condition(%0) 107 scf.yield [all …]
|
| H A D | one-shot-bufferize.mlir | 28 scf.yield %t : tensor<?xf32> 33 scf.yield %t : tensor<?xf32> 58 scf.yield %r2 : tensor<?xf32> 84 // CHECK: scf.for {{.*}} 97 // CHECK-NOT: scf.yield 201 scf.yield %A : tensor<4xf32> 203 scf.yield %B : tensor<4xf32> 354 // CHECK: scf.yield 359 scf.yield %1 : tensor<?xi1> 502 scf.condition(%0) [all …]
|
| H A D | parallel-loop-tiling-inbound-check.mlir | 36 // CHECK: scf.if [[V18]] { 70 // CHECK-NOT: scf.if 83 scf.parallel (%i, %j) = (%c0, %c0) to (%c2, %c2) step (%c1, %c1) { 106 // CHECK: scf.if 119 // CHECK: scf.if 131 scf.for %i = %c0 to %c2 step %c1 { 132 scf.for %j = %c0 to %c2 step %c1 { 141 // CHECK: scf.for 142 // CHECK: scf.for 143 // CHECK: scf.parallel [all …]
|
| H A D | one-shot-bufferize-tensor-copy-insertion.mlir | 16 // CHECK: scf.yield %[[iter1]], %[[iter2]] 17 scf.yield %tA, %tB : tensor<?xf32>, tensor<?xf32> 40 // CHECK: scf.yield %[[yield1]], %[[yield2]] 41 scf.yield %tB, %tA : tensor<?xf32>, tensor<?xf32> 57 %r0, %r1 = scf.while (%w0 = %A, %w1 = %B) 68 // CHECK: scf.yield %[[b0]], %[[b1]] 70 scf.yield %b0, %b1 : tensor<5xi1>, tensor<5xi1> 88 %r0, %r1 = scf.while (%w0 = %A, %w1 = %B) 103 // CHECK: scf.yield %[[yield2]], %[[yield3]] 123 // CHECK: scf.foreach_thread [all …]
|
| H A D | for-loop-peeling.mlir | 14 // CHECK: scf.yield %[[ADD]] 21 // CHECK: scf.yield %[[ADD2]] 31 scf.yield %0 : i32 63 scf.yield %0 : i32 102 scf.yield %0 : i32 237 // CHECK: scf.for {{.*}} { 238 // CHECK: scf.for {{.*}} { 243 // CHECK: scf.for {{.*}} { 246 // CHECK-NOT: scf.for 271 scf.yield %0 : i32 [all …]
|
| /llvm-project-15.0.7/mlir/include/mlir/Dialect/SCF/Utils/ |
| H A D | Utils.h | 51 scf::ForOp replaceLoopWithNewYields(OpBuilder &builder, scf::ForOp loop, 69 SmallVector<scf::ForOp> 119 void coalesceLoops(MutableArrayRef<scf::ForOp> loops); 124 void collapseParallelLoops(scf::ParallelOp loops, 129 LogicalResult promoteIfSingleIteration(scf::ForOp forOp); 136 scf::ForOp forOp, uint64_t unrollFactor, 142 using Loops = SmallVector<scf::ForOp, 8>; 152 ArrayRef<scf::ForOp> targets); 158 Loops tile(ArrayRef<scf::ForOp> forOps, ArrayRef<Value> sizes, 159 scf::ForOp target); [all …]
|
| /llvm-project-15.0.7/mlir/test/Dialect/Bufferization/Transforms/ |
| H A D | buffer-loop-hoisting.mlir | 125 // CHECK-NEXT: %{{.*}} = scf.if 146 scf.yield %3 : memref<2xf32> 153 // CHECK-NEXT: {{.*}} scf.for 184 // CHECK-NEXT: {{.*}} scf.for 231 // CHECK-NEXT: {{.*}} = scf.for 232 // CHECK-NEXT: {{.*}} = scf.for 233 // CHECK-NEXT: {{.*}} = scf.for 234 // CHECK: {{.*}} = scf.if 275 // CHECK-NEXT: {{.*}} = scf.for 377 // CHECK: {{.*}} = scf.if [all …]
|
| /llvm-project-15.0.7/mlir/test/Transforms/ |
| H A D | sccp-structured.mlir | 8 // CHECK-NOT: scf.if 14 scf.yield %1 : i32 16 scf.yield %arg0 : i32 27 // CHECK-NOT: scf.if 32 scf.yield %1 : i32 35 scf.yield %2 : i32 50 scf.yield %1 : i32 67 scf.yield %1 : i32 70 scf.yield %2 : i32 80 // CHECK-NOT: scf.for [all …]
|
| /llvm-project-15.0.7/mlir/test/Dialect/SparseTensor/ |
| H A D | sparse_parallel.mlir | 35 // CHECK-PAR0: scf.for 36 // CHECK-PAR0: scf.for 41 // CHECK-PAR1: scf.for 46 // CHECK-PAR2: scf.for 83 // CHECK-PAR0: scf.for 84 // CHECK-PAR0: scf.for 88 // CHECK-PAR1: scf.for 89 // CHECK-PAR1: scf.for 94 // CHECK-PAR2: scf.for 98 // CHECK-PAR3: scf.for [all …]
|
| /llvm-project-15.0.7/mlir/lib/Dialect/SCF/TransformOps/ |
| H A D | SCFTransformOps.cpp | 40 scf::ForOp loop; in apply() 43 loop = current->getParentOfType<scf::ForOp>(); in apply() 73 scf::ExecuteRegionOp executeRegionOp = in wrapInExecuteRegion() 132 transform::LoopPeelOp::applyToOne(scf::ForOp target, in applyToOne() 135 scf::ForOp result; in applyToOne() 156 loopScheduling(scf::ForOp forOp, in loopScheduling() 168 if (isa<scf::YieldOp>(op)) in loopScheduling() 192 scf::PipeliningOption options; in applyToOne() 194 [this](scf::ForOp forOp, in applyToOne() 202 FailureOr<scf::ForOp> patternResult = in applyToOne() [all …]
|
| /llvm-project-15.0.7/mlir/test/Dialect/Vector/ |
| H A D | vector-transferop-opt.mlir | 6 // CHECK: scf.for 33 // CHECK: scf.if 64 // CHECK: scf.if 94 // CHECK: scf.if 98 // CHECK: scf.if 120 scf.if %arg0 { 134 // CHECK: scf.if 161 // CHECK: scf.if 163 // CHECK: scf.if 174 scf.if %arg0 { [all …]
|
| /llvm-project-15.0.7/mlir/test/Conversion/SCFToControlFlow/ |
| H A D | convert-to-cfg.mlir | 59 scf.if %arg0 { 76 scf.if %arg0 { 100 scf.if %arg0 { 102 scf.if %arg0 { 139 scf.if %arg3 { 141 scf.if %arg3 { 185 scf.yield %1 : i1 411 scf.yield 430 scf.yield 574 scf.if %arg4 { [all …]
|
| /llvm-project-15.0.7/mlir/test/python/dialects/ |
| H A D | scf.py | 6 from mlir.dialects import scf 27 loop = scf.ForOp(lb, ub, step, [lb, lb]) 29 scf.YieldOp(loop.inner_iter_args) 46 loop = scf.ForOp(lb, ub, step, [lb]) 48 scf.YieldOp([loop.induction_variable]) 68 loop = scf.ForOp(lb, ub, step, iter_args) 70 scf.YieldOp(loop.inner_iter_args) 94 if_op = scf.IfOp(cond) 98 scf.YieldOp([]) 120 scf.YieldOp([x_true, y_true]) [all …]
|
| /llvm-project-15.0.7/mlir/test/Analysis/DataFlow/ |
| H A D | test-dead-code-analysis.mlir | 26 // CHECK: scf.if 29 // CHECK: scf.if 33 scf.if %cond { 34 scf.yield {then} 36 scf.yield {else} 42 // scf.while 43 // scf.yield 46 // scf.condition 221 scf.if %true { 223 scf.yield [all …]
|
| /llvm-project-15.0.7/mlir/include/mlir/Dialect/SCF/IR/ |
| H A D | SCFOps.td | 24 let name = "scf"; 80 scf.yield %x : i32 98 scf.yield %x : i64 190 Another example with a nested "scf.if" (see "scf.if" for details) to 523 scf.if %b { 547 `scf.if` regions are always terminated with "scf.yield". If "scf.if" 556 scf.if %b { 634 scf.reduce operation (see scf.reduce for details). Each result of a 699 "scf.reduce" is an operation occurring inside "scf.parallel" operations. 817 scf.yield %next : f32 [all …]
|
| /llvm-project-15.0.7/mlir/test/Interfaces/InferIntRangeInterface/ |
| H A D | infer-int-range-test-ops.mlir | 26 %1 = scf.if %arg0 -> index { 27 scf.yield %0 : index 30 scf.yield %2 : index 63 scf.yield %arg0 : index 81 scf.yield %1 : index 110 %1 = scf.while : () -> index { 116 scf.yield 129 %1 = scf.while : () -> index { 134 scf.yield 147 %1 = scf.while : () -> index { [all …]
|