diff options
Diffstat (limited to 'test/passes/inline-indexers/simple6.fir')
| -rw-r--r-- | test/passes/inline-indexers/simple6.fir | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/test/passes/inline-indexers/simple6.fir b/test/passes/inline-indexers/simple6.fir new file mode 100644 index 00000000..e94efc7a --- /dev/null +++ b/test/passes/inline-indexers/simple6.fir @@ -0,0 +1,45 @@ +; RUN: firrtl -i %s -o %s.v -X verilog -p c 2>&1 | tee %s.out | FileCheck %s + +;CHECK: Inline Indexers +circuit top : + module top : + input value : UInt<32> + input in : {x : UInt<32>, y : UInt<32>} + wire m :{x : UInt<32>, y : UInt<32>}[2][2] + wire i : UInt + wire j : UInt + + m[0][0] := in + m[1][0] := in + m[0][1] := in + m[1][1] := in + i := UInt("h1") + j := UInt("h1") + + write accessor a = m[i] + write accessor b = a[j] + b.x := value + +;CHECK: wire b$x_1 : UInt<32> +;CHECK: node j_1 = j +;CHECK: when eqv(j_1, UInt("h0")) : +;CHECK: wire a$0$x_1 : UInt<32> +;CHECK: node i_1 = i +;CHECK: when eqv(i_1, UInt("h0")) : +;CHECK: m$0$0$x := a$0$x_1 +;CHECK: when eqv(i_1, UInt("h1")) : +;CHECK: m$1$0$x := a$0$x_1 +;CHECK: a$0$x_1 := b$x_1 +;CHECK: when eqv(j_1, UInt("h1")) : +;CHECK: wire a$1$x_1 : UInt<32> +;CHECK: node i_2 = i +;CHECK: when eqv(i_2, UInt("h0")) : +;CHECK: m$0$1$x := a$1$x_1 +;CHECK: when eqv(i_2, UInt("h1")) : +;CHECK: m$1$1$x := a$1$x_1 +;CHECK: a$1$x_1 := b$x_1 +;CHECK: b$x_1 := value + + + +;CHECK: Done! |
