From a8f30e8f153a10cc0b6100e6593c0ca830cd4a2c Mon Sep 17 00:00:00 2001 From: Raffaele Meloni Date: Thu, 11 Jul 2024 20:34:01 +0200 Subject: [PATCH] Add test for tmp variable outside when/otherwise blocks --- .../tywavesTests/TywavesAnnotationCircuits.scala | 1 + .../dataTypesTests/TypeAnnotationDataTypesSpec.scala | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/test/scala/circtTests/tywavesTests/TywavesAnnotationCircuits.scala b/src/test/scala/circtTests/tywavesTests/TywavesAnnotationCircuits.scala index ca82b89afd5..58757ee1389 100644 --- a/src/test/scala/circtTests/tywavesTests/TywavesAnnotationCircuits.scala +++ b/src/test/scala/circtTests/tywavesTests/TywavesAnnotationCircuits.scala @@ -297,6 +297,7 @@ object TywavesAnnotationCircuits { val out = IO(Output(UInt(8.W))) val sel = IO(Input(UInt(math.sqrt(8).ceil.toInt.W))) + val tmp = sel + 1.U when(sel % 2.U === 0.U) { val outTmp = inSeq(sel) val evenSel = outTmp + 1.U diff --git a/src/test/scala/circtTests/tywavesTests/dataTypesTests/TypeAnnotationDataTypesSpec.scala b/src/test/scala/circtTests/tywavesTests/dataTypesTests/TypeAnnotationDataTypesSpec.scala index 4ebac7ee00c..b6171f2f746 100644 --- a/src/test/scala/circtTests/tywavesTests/dataTypesTests/TypeAnnotationDataTypesSpec.scala +++ b/src/test/scala/circtTests/tywavesTests/dataTypesTests/TypeAnnotationDataTypesSpec.scala @@ -206,8 +206,17 @@ class TypeAnnotationDataTypesSpec extends AnyFunSpec with Matchers with chiselTe (createExpected("~TopCircuitWhenElse\\|TopCircuitWhenElse>sel", "UInt<3>", "IO"), 1), // Tmp (createExpected("~TopCircuitWhenElse\\|TopCircuitWhenElse>evenSel", "UInt<8>", "OpResult"), 1), + (createExpected("~TopCircuitWhenElse\\|TopCircuitWhenElse>_evenSel_T", "UInt<9>", "OpResult"), 1), (createExpected("~TopCircuitWhenElse\\|TopCircuitWhenElse>oddSel", "UInt<8>", "OpResult"), 1), - (createExpected("~TopCircuitWhenElse\\|TopCircuitWhenElse>selIsOne", "UInt<8>", "OpResult"), 1) + (createExpected("~TopCircuitWhenElse\\|TopCircuitWhenElse>_oddSel_T", "UInt<9>", "OpResult"), 1), + (createExpected("~TopCircuitWhenElse\\|TopCircuitWhenElse>selIsOne", "UInt<8>", "OpResult"), 1), + (createExpected("~TopCircuitWhenElse\\|TopCircuitWhenElse>_selIsOne_T", "UInt<9>", "OpResult"), 1), + (createExpected("~TopCircuitWhenElse\\|TopCircuitWhenElse>tmp", "UInt<3>", "OpResult"), 1), + (createExpected("~TopCircuitWhenElse\\|TopCircuitWhenElse>_tmp_T", "UInt<4>", "OpResult"), 1), + (createExpected("~TopCircuitWhenElse\\|TopCircuitWhenElse>_T", "UInt<2>", "OpResult"), 1), + (createExpected("~TopCircuitWhenElse\\|TopCircuitWhenElse>_T_1", "Bool", "OpResult"), 1), + (createExpected("~TopCircuitWhenElse\\|TopCircuitWhenElse>_T_2", "Bool", "OpResult"), 1), + ) checkAnno(expectedMatches, string) // format: on