Skip to content

Commit ed7f19e

Browse files
committed
Add extra test
1 parent ca055da commit ed7f19e

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

mlir/test/Conversion/SCFToEmitC/for.mlir

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ func.func @for_yield_index(%arg0 : index, %arg1 : index, %arg2 : index) -> index
125125
// CHECK: }
126126

127127

128-
func.func @for_yield_i32(%arg0 : index, %arg1 : index, %arg2 : index) -> i32 {
128+
func.func @for_yield_i32(%arg0 : index, %arg1 : index, %arg2 : index) -> i32 {
129129
%zero = arith.constant 0 : i32
130130
%r = scf.for %i0 = %arg0 to %arg1 step %arg2 iter_args(%acc = %zero) -> i32 {
131131
scf.yield %acc : i32
@@ -145,3 +145,31 @@ func.func @for_yield_index(%arg0 : index, %arg1 : index, %arg2 : index) -> index
145145
// CHECK: }
146146
// CHECK: return %3 : i32
147147
// CHECK: }
148+
149+
150+
func.func @for_yield_update_loop_carried_var(%arg0 : index, %arg1 : index, %arg2 : index) -> index {
151+
%zero = arith.constant 0 : index
152+
%r = scf.for %i0 = %arg0 to %arg1 step %arg2 iter_args(%acc = %zero) -> index {
153+
%sn = arith.addi %acc, %acc : index
154+
scf.yield %sn: index
155+
}
156+
return %r : index
157+
}
158+
159+
// CHECK: func.func @for_yield_update_loop_carried_var(%arg0: index, %arg1: index, %arg2: index) -> index {
160+
// CHECK: %0 = builtin.unrealized_conversion_cast %arg2 : index to !emitc.size_t
161+
// CHECK: %1 = builtin.unrealized_conversion_cast %arg1 : index to !emitc.size_t
162+
// CHECK: %2 = builtin.unrealized_conversion_cast %arg0 : index to !emitc.size_t
163+
// CHECK: %c0 = arith.constant 0 : index
164+
// CHECK: %3 = builtin.unrealized_conversion_cast %c0 : index to !emitc.size_t
165+
// CHECK: %4 = "emitc.variable"() <{value = #emitc.opaque<"">}> : () -> !emitc.size_t
166+
// CHECK: emitc.assign %3 : !emitc.size_t to %4 : !emitc.size_t
167+
// CHECK: emitc.for %arg3 = %2 to %1 step %0 {
168+
// CHECK: %6 = builtin.unrealized_conversion_cast %4 : !emitc.size_t to index
169+
// CHECK: %7 = arith.addi %6, %6 : index
170+
// CHECK: %8 = builtin.unrealized_conversion_cast %7 : index to !emitc.size_t
171+
// CHECK: emitc.assign %8 : !emitc.size_t to %4 : !emitc.size_t
172+
// CHECK: }
173+
// CHECK: %5 = builtin.unrealized_conversion_cast %4 : !emitc.size_t to index
174+
// CHECK: return %5 : index
175+
// CHECK: }

0 commit comments

Comments
 (0)