mirror of https://github.com/llvm/circt.git
89 lines
3.4 KiB
MLIR
89 lines
3.4 KiB
MLIR
// RUN: circt-opt %s -export-verilog --split-input-file | FileCheck %s --match-full-lines
|
|
|
|
module attributes {circt.loweringOptions = "disallowPortDeclSharing"}{
|
|
// CHECK: module Foo( // dummy:1:1
|
|
// CHECK-NEXT: input a, // dummy:1:2
|
|
// CHECK-NEXT: input b, // dummy:1:3
|
|
// CHECK-NEXT: output [1:0] a_0, // dummy:1:4
|
|
// CHECK-NEXT: output [1:0] b_0 // dummy:1:5
|
|
// CHECK-NEXT: );
|
|
hw.module @Foo(in %a: i1 loc("dummy":1:2), in %b: i1 loc("dummy":1:3), out a: i2 loc("dummy":1:4), out b: i2 loc("dummy":1:5)) {
|
|
%ao = comb.concat %a, %b: i1, i1
|
|
%bo = comb.concat %a, %a: i1, i1
|
|
hw.output %ao, %bo : i2, i2
|
|
} loc("dummy":1:1)
|
|
}
|
|
|
|
// -----
|
|
|
|
module {
|
|
// CHECK: module Foo( // dummy:1:1
|
|
// CHECK-NEXT: input a, // dummy:1:2
|
|
// CHECK-NEXT: b, // dummy:1:3
|
|
// CHECK-NEXT: output [1:0] a_0, // dummy:1:4
|
|
// CHECK-NEXT: b_0 // dummy:1:5
|
|
// CHECK-NEXT: );
|
|
hw.module @Foo(in %a: i1 loc("dummy":1:2), in %b: i1 loc("dummy":1:3), out a: i2 loc("dummy":1:4), out b: i2 loc("dummy":1:5)) {
|
|
%ao = comb.concat %a, %b: i1, i1
|
|
%bo = comb.concat %a, %a: i1, i1
|
|
hw.output %ao, %bo : i2, i2
|
|
} loc("dummy":1:1)
|
|
}
|
|
|
|
// -----
|
|
// CHECK: module Foo( // dummy:1:1
|
|
// CHECK-NEXT: // input /*Zero Width*/ a, // dummy:1:2
|
|
// CHECK-NEXT: // input /*Zero Width*/ b, // dummy:1:3
|
|
// CHECK-NEXT: // output /*Zero Width*/ a_0, // dummy:1:4
|
|
// CHECK-NEXT: // output /*Zero Width*/ b_0 // dummy:1:5
|
|
// CHECK-NEXT: );
|
|
module attributes {circt.loweringOptions = "disallowPortDeclSharing"}{
|
|
hw.module @Foo(in %a: i0 loc("dummy":1:2), in %b: i0 loc("dummy":1:3), out a: i0 loc("dummy":1:4), out b: i0 loc("dummy":1:5)) {
|
|
hw.output %a, %b : i0, i0
|
|
} loc("dummy":1:1)
|
|
}
|
|
|
|
// -----
|
|
|
|
module {
|
|
// CHECK: module Foo( // dummy:1:1
|
|
// CHECK-NEXT: // input /*Zero Width*/ a, // dummy:1:2
|
|
// CHECK-NEXT: // b, // dummy:1:3
|
|
// CHECK-NEXT: // output /*Zero Width*/ a_0, // dummy:1:4
|
|
// CHECK-NEXT: // b_0 // dummy:1:5
|
|
// CHECK-NEXT: );
|
|
hw.module @Foo(in %a: i0 loc("dummy":1:2), in %b: i0 loc("dummy":1:3), out a: i0 loc("dummy":1:4), out b: i0 loc("dummy":1:5)) {
|
|
hw.output %a, %b : i0, i0
|
|
} loc("dummy":1:1)
|
|
}
|
|
|
|
// -----
|
|
|
|
module attributes {circt.loweringOptions = "disallowPortDeclSharing"}{
|
|
// CHECK: module Foo( // dummy:1:1
|
|
// CHECK-NEXT: // input /*Zero Width*/ a, // dummy:1:2
|
|
// CHECK-NEXT: // input /*Zero Width*/ b, // dummy:1:3
|
|
// CHECK-NEXT: input [99:0] c // new:1:1
|
|
// CHECK-NEXT: // output /*Zero Width*/ a_0, // dummy:1:4
|
|
// CHECK-NEXT: // output /*Zero Width*/ b_0 // dummy:1:5
|
|
// CHECK-NEXT: );
|
|
hw.module @Foo(in %a: i0 loc("dummy":1:2), in %b: i0 loc("dummy":1:3), in %c : i100 loc("new":1:1), out a: i0 loc("dummy":1:4), out b: i0 loc("dummy":1:5)) {
|
|
hw.output %a, %b : i0, i0
|
|
} loc("dummy":1:1)
|
|
}
|
|
|
|
// -----
|
|
|
|
module {
|
|
// CHECK: module Foo( // dummy:1:1
|
|
// CHECK-NEXT: // input /*Zero Width*/ a, // dummy:1:2
|
|
// CHECK-NEXT: // b, // dummy:1:3
|
|
// CHECK-NEXT: input [99:0] c // new:1:1
|
|
// CHECK-NEXT: // output /*Zero Width*/ a_0, // dummy:1:4
|
|
// CHECK-NEXT: // b_0 // dummy:1:5
|
|
// CHECK-NEXT: );
|
|
hw.module @Foo(in %a: i0 loc("dummy":1:2), in %b: i0 loc("dummy":1:3), in %c : i100 loc("new":1:1), out a: i0 loc("dummy":1:4), out b: i0 loc("dummy":1:5)) {
|
|
hw.output %a, %b : i0, i0
|
|
} loc("dummy":1:1)
|
|
}
|