3 from bigint_presentation_code
.compiler_ir
import (FixedGPRRangeType
, GPRRange
, GPRType
,
4 Op
, OpAddSubE
, OpClearCY
, OpConcat
, OpCopy
, OpFuncArg
, OpInputMem
, OpLI
, OpLoad
, OpStore
,
8 class TestCompilerIR(unittest
.TestCase
):
11 def test_op_set_to_list(self
):
12 ops
= [] # type: list[Op]
13 op0
= OpFuncArg(FixedGPRRangeType(GPRRange(3)))
15 op1
= OpCopy(op0
.out
, GPRType())
21 op3
= OpLoad(arg
, offset
=0, mem
=mem
, length
=32)
27 op5
= OpLI(0, length
=31)
30 op6
= OpConcat([b_0
, b_rest
])
36 op8
= OpAddSubE(a
, b
, cy
, is_sub
=False)
39 op9
= OpStore(s
, arg
, offset
=0, mem_in
=mem
)
45 op5
, # OpLI(0, length=31)
48 op0
, # OpFuncArg(FixedGPRRangeType(GPRRange(3)))
49 op6
, # OpConcat([b_0, b_rest])
50 op1
, # OpCopy(op0.out, GPRType())
51 op3
, # OpLoad(arg, offset=0, mem=mem, length=32)
52 op8
, # OpAddSubE(a, b, cy, is_sub=False)
53 op9
, # OpStore(s, arg, offset=0, mem_in=mem)
56 ops
= op_set_to_list(reversed(ops
))
57 if ops
!= expected_ops
:
58 self
.assertEqual(repr(ops
), repr(expected_ops
))
61 if __name__
== "__main__":