Skip to content

Commit 533cbc6

Browse files
committed
[SCFToCalyx] Add test for multiple return values
1 parent 184db22 commit 533cbc6

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

test/Conversion/SCFToCalyx/convert_simple.mlir

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,39 @@ module {
3838
return %2 : i32
3939
}
4040
}
41+
42+
// -----
43+
44+
// Test multiple return values.
45+
46+
// CHECK: module {
47+
// CHECK-NEXT: calyx.program "main" {
48+
// CHECK-NEXT: calyx.component @main(%in0: i32, %in1: i32, %clk: i1 {clk}, %reset: i1 {reset}, %go: i1 {go}) -> (%out0: i32, %out1: i32, %done: i1 {done}) {
49+
// CHECK-NEXT: %true = hw.constant true
50+
// CHECK-NEXT: %ret_arg1_reg.in, %ret_arg1_reg.write_en, %ret_arg1_reg.clk, %ret_arg1_reg.reset, %ret_arg1_reg.out, %ret_arg1_reg.done = calyx.register "ret_arg1_reg" : i32, i1, i1, i1, i32, i1
51+
// CHECK-NEXT: %ret_arg0_reg.in, %ret_arg0_reg.write_en, %ret_arg0_reg.clk, %ret_arg0_reg.reset, %ret_arg0_reg.out, %ret_arg0_reg.done = calyx.register "ret_arg0_reg" : i32, i1, i1, i1, i32, i1
52+
// CHECK-NEXT: calyx.wires {
53+
// CHECK-NEXT: calyx.assign %out1 = %ret_arg1_reg.out : i32
54+
// CHECK-NEXT: calyx.assign %out0 = %ret_arg0_reg.out : i32
55+
// CHECK-NEXT: calyx.group @ret_assign_0 {
56+
// CHECK-NEXT: calyx.assign %ret_arg0_reg.in = %in0 : i32
57+
// CHECK-NEXT: calyx.assign %ret_arg0_reg.write_en = %true : i1
58+
// CHECK-NEXT: calyx.assign %ret_arg1_reg.in = %in1 : i32
59+
// CHECK-NEXT: calyx.assign %ret_arg1_reg.write_en = %true : i1
60+
// CHECK-NEXT: %0 = comb.and %ret_arg0_reg.done, %ret_arg1_reg.done : i1
61+
// CHECK-NEXT: calyx.group_done %true, %0 ? : i1
62+
// CHECK-NEXT: }
63+
// CHECK-NEXT: }
64+
// CHECK-NEXT: calyx.control {
65+
// CHECK-NEXT: calyx.seq {
66+
// CHECK-NEXT: calyx.enable @ret_assign_0
67+
// CHECK-NEXT: }
68+
// CHECK-NEXT: }
69+
// CHECK-NEXT: }
70+
// CHECK-NEXT: }
71+
// CHECK-NEXT: }
72+
module {
73+
func @main(%a0 : i32, %a1 : i32) -> (i32, i32) {
74+
return %a0, %a1 : i32, i32
75+
}
76+
}

0 commit comments

Comments
 (0)