@@ -152,6 +152,9 @@ def test_mod_neg(self):
152152 def test_and (self ):
153153 stmt = lambda y , a , b : y .eq (a & b )
154154 self .assertStatement (stmt , [C (0b1100 , 4 ), C (0b1010 , 4 )], C (0b1000 , 4 ))
155+ self .assertStatement (stmt , [C (0b1010 , 4 ), C (0b10 , signed (2 ))], C (0b1010 , 4 ))
156+ stmt = lambda y , a : y .eq (a )
157+ self .assertStatement (stmt , [C (0b1010 , 4 ) & C (- 2 , 2 ).as_unsigned ()], C (0b0010 , 4 ))
155158
156159 def test_or (self ):
157160 stmt = lambda y , a , b : y .eq (a | b )
@@ -211,6 +214,9 @@ def test_mux(self):
211214 stmt = lambda y , a , b , c : y .eq (Mux (c , a , b ))
212215 self .assertStatement (stmt , [C (2 , 4 ), C (3 , 4 ), C (0 )], C (3 , 4 ))
213216 self .assertStatement (stmt , [C (2 , 4 ), C (3 , 4 ), C (1 )], C (2 , 4 ))
217+ stmt = lambda y , a : y .eq (a )
218+ self .assertStatement (stmt , [Mux (0 , C (0b1010 , 4 ), C (0b10 , 2 ).as_signed ())], C (0b1110 , 4 ))
219+ self .assertStatement (stmt , [Mux (0 , C (0b1010 , 4 ), C (- 2 , 2 ).as_unsigned ())], C (0b0010 , 4 ))
214220
215221 def test_mux_invert (self ):
216222 stmt = lambda y , a , b , c : y .eq (Mux (~ c , a , b ))
0 commit comments