add what is currently a duplicate of python_mul_algorithm, plan is to
[openpower-isa.git] / src / openpower / test_fpscr.py
1 from openpower.fpscr import FPSCRState
2 import unittest
3
4
5 class TestFPSCR(unittest.TestCase):
6 def test_smoke_test(self):
7 """ test to ensure FPSCR isn't horribly broken -- not at all thorough -- a smoke-test """
8 FPSCR = FPSCRState()
9 self.assertEqual(FPSCR.RN, 0)
10 FPSCR.RN = 3
11 self.assertEqual(FPSCR.RN, 3)
12 expected = 0x3
13 self.assertEqual(FPSCR, expected)
14 self.assertEqual(FPSCR.VXCVI, 0)
15 self.assertEqual(FPSCR.VX, 0)
16 FPSCR.VXCVI = 1
17 self.assertEqual(FPSCR.VXCVI, 1)
18 self.assertEqual(FPSCR.VX, 1)
19 expected |= 1 << (64 - 55 - 1)
20 expected |= 1 << (64 - 34 - 1)
21 self.assertEqual(FPSCR, expected)
22 self.assertEqual(FPSCR.FX, 0)
23 FPSCR.FX = 1
24 self.assertEqual(FPSCR.FX, 1)
25 expected |= 1 << (64 - 32 - 1)
26 self.assertEqual(FPSCR, expected)
27 self.assertEqual(FPSCR.C, 0)
28 FPSCR.C = 1
29 self.assertEqual(FPSCR.C, 1)
30 expected |= 1 << (64 - 47 - 1)
31 self.assertEqual(FPSCR, expected)
32 self.assertEqual(FPSCR.FPRF, 0b10000)
33 self.assertEqual(FPSCR.FPCC, 0b0000)
34 self.assertEqual(FPSCR.FE, 0)
35 FPSCR.FE = 1
36 self.assertEqual(FPSCR.FE, 1)
37 expected |= 1 << (64 - 50 - 1)
38 self.assertEqual(FPSCR, expected)
39 self.assertEqual(FPSCR.FPRF, 0b10010)
40 self.assertEqual(FPSCR.FPCC, 0b0010)
41 self.assertEqual(FPSCR.VE, 0)
42 self.assertEqual(FPSCR.VX, 1)
43 self.assertEqual(FPSCR.FEX, 0)
44 FPSCR.VE = 1
45 self.assertEqual(FPSCR.VE, 1)
46 self.assertEqual(FPSCR.FEX, 1)
47 expected |= 1 << (64 - 56 - 1)
48 expected |= 1 << (64 - 33 - 1)
49 self.assertEqual(FPSCR, expected)
50
51
52 if __name__ == "__main__":
53 unittest.main()