================ @@ -0,0 +1,46 @@ +// RUN: mlir-opt %s -scf-for-loop-continuous-peeling=convert-single-iter-loops-to-if=true -split-input-file | FileCheck %s + +#map = affine_map<(d0, d1)[s0] -> (s0, d0 - d1)> +func.func @foo(%ub: index) -> index { + %c0 = arith.constant 0 : index + %step = arith.constant 8 : index + %0 = scf.for %iv = %c0 to %ub step %step iter_args(%arg = %c0) -> (index) { + %1 = affine.min #map(%ub, %iv)[%step] + %2 = index.add %1, %arg + scf.yield %2 : index + } + return %0 : index +} + +// CHECK: #[[MAP:.*]] = affine_map<()[s0, s1, s2] -> (s1 - s1 mod s2)> +// CHECK: func.func @foo(%[[UB:.*]]: index) -> index { +// CHECK: %[[STEP8:.*]] = arith.constant 8 : index +// CHECK: %[[STEP4:.*]] = arith.constant 4 : index +// CHECK: %[[STEP2:.*]] = arith.constant 2 : index +// CHECK: %[[STEP1:.*]] = arith.constant 1 : index +// CHECK: %[[LB:.*]] = arith.constant 0 : index +// CHECK: %[[I0:.*]] = affine.apply #[[MAP]]()[%[[LB]], %[[UB]], %[[STEP8]]] +// CHECK: %[[I1:.*]] = scf.for %{{.*}} = %[[LB]] to %[[I0]] step %[[STEP8]] iter_args(%[[ALB:.*]] = %[[LB]]) -> (index) { +// CHECK: %[[SUM:.*]] = index.add %[[ALB]], %[[STEP8]] +// CHECK: scf.yield %[[SUM]] : index +// CHECK: %[[I2:.*]] = affine.apply #[[MAP]]()[%[[I0]], %[[UB]], %[[STEP4]]] ---------------- matthias-springer wrote:
Please indent for better readability. https://github.com/llvm/llvm-project/pull/71555 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits