Skip to content

Commit d78afc6

Browse files
committed
[FIRRTL] Add UnusedBits test for signed integer
1 parent 01e36bf commit d78afc6

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

test/Dialect/FIRRTL/simplify-mems.mlir

+32
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,38 @@ firrtl.circuit "UnusedBitsAtEnd" {
336336

337337
// -----
338338

339+
firrtl.circuit "UnusedBitsOfSignedInteger" {
340+
firrtl.module public @UnusedBitsOfSignedInteger(
341+
in %clock: !firrtl.clock,
342+
in %addr: !firrtl.uint<4>,
343+
in %in_data: !firrtl.sint<42>,
344+
out %result_read: !firrtl.sint<5>) {
345+
// CHECK: %Memory_read, %Memory_write = firrtl.mem Undefined
346+
// CHECK-SAME: !firrtl.bundle<addr: uint<4>, en: uint<1>, clk: clock, data flip: sint<5>>
347+
// CHECK-SAME: !firrtl.bundle<addr: uint<4>, en: uint<1>, clk: clock, data: sint<5>, mask: uint<1>>
348+
%Memory_read, %Memory_write = firrtl.mem Undefined
349+
{
350+
depth = 12 : i64,
351+
name = "Memory",
352+
portNames = ["read", "write"],
353+
readLatency = 0 : i32,
354+
writeLatency = 1 : i32
355+
} :
356+
!firrtl.bundle<addr: uint<4>, en: uint<1>, clk: clock, data flip: sint<42>>,
357+
!firrtl.bundle<addr: uint<4>, en: uint<1>, clk: clock, data: sint<42>, mask: uint<1>>
358+
359+
%read_data = firrtl.subfield %Memory_read[data] : !firrtl.bundle<addr: uint<4>, en: uint<1>, clk: clock, data flip: sint<42>>
360+
%read_data_slice = firrtl.bits %read_data 7 to 3 : (!firrtl.sint<42>) -> !firrtl.uint<5>
361+
%read_data_slice_sint = firrtl.asSInt %read_data_slice : (!firrtl.uint<5>) -> !firrtl.sint<5>
362+
firrtl.connect %result_read, %read_data_slice_sint : !firrtl.sint<5>, !firrtl.sint<5>
363+
364+
%write_data = firrtl.subfield %Memory_write[data] : !firrtl.bundle<addr: uint<4>, en: uint<1>, clk: clock, data: sint<42>, mask: uint<1>>
365+
firrtl.connect %write_data, %in_data : !firrtl.sint<42>, !firrtl.sint<42>
366+
}
367+
}
368+
369+
// -----
370+
339371
firrtl.circuit "OneAddressMasked" {
340372
firrtl.module public @OneAddressMasked(
341373
in %clock: !firrtl.clock,

0 commit comments

Comments
 (0)