Add a sketch of a direct translation of a couple of examples of firrtl-in-mlir.

This commit is contained in:
Chris Lattner 2020-03-06 17:27:04 -08:00
parent 7783a53c8e
commit 71b7e2cb93
1 changed files with 47 additions and 0 deletions

47
test/firrtl/test.mlir Normal file
View File

@ -0,0 +1,47 @@
// RUN: spt-opt %s | FileCheck %s
//module MyModule :
// input in: UInt<8>
// output out: UInt<8>
// out <= in
"firrtl.module"() ( {
%0 = "firrtl.input"() {name = "in"} : () -> ui8
%1 = "firrtl.output"() {name = "out"} : () -> ui8
"firrtl.connect"(%1, %0) : (ui8, ui8) -> ()
}) {name = "MyModule"} : () -> ()
// CHECK-LABEL: "firrtl.module"() ( {
// CHECK-NEXT: %0 = "firrtl.input"() {name = "in"} : () -> ui8
// CHECK-NEXT: %1 = "firrtl.output"() {name = "out"} : () -> ui8
// CHECK-NEXT: "firrtl.connect"(%1, %0) : (ui8, ui8) -> ()
// CHECK-NEXT: }) {name = "MyModule"} : () -> ()
//circuit Top :
// module Top :
// output out:UInt
// input b:UInt<32>
// input d:UInt<16>
// out <= add(b,d)
"firrtl.circuit"() ( {
"firrtl.module"() ( {
%0 = "firrtl.output"() {name = "out"} : () -> !firrtl.uint
%1 = "firrtl.input"() {name = "b"} : () -> ui32
%2 = "firrtl.input"() {name = "d"} : () -> ui16
%3 = "firrtl.add"(%1, %2) : (ui32, ui16) -> ui32
"firrtl.connect"(%0, %3) : (!firrtl.uint, ui32) -> ()
}) {name = "Top"} : () -> ()
}) {name = "Top"} : () -> ()
// CHECK-LABEL: "firrtl.circuit"() ( {
// CHECK-NEXT: "firrtl.module"() ( {
// CHECK-NEXT: %0 = "firrtl.output"() {name = "out"} : () -> !firrtl.uint
// CHECK-NEXT: %1 = "firrtl.input"() {name = "b"} : () -> ui32
// CHECK-NEXT: %2 = "firrtl.input"() {name = "d"} : () -> ui16
// CHECK-NEXT: %3 = "firrtl.add"(%1, %2) : (ui32, ui16) -> ui32
// CHECK-NEXT: "firrtl.connect"(%0, %3) : (!firrtl.uint, ui32) -> ()
// CHECK-NEXT: }) {name = "Top"} : () -> ()
// CHECK-NEXT: }) {name = "Top"} : () -> ()