3 from bigint_presentation_code
.compiler_ir
import (FixedGPRRangeType
, Fn
, 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
):
13 op0
= OpFuncArg(fn
, FixedGPRRangeType(GPRRange(3)))
14 op1
= OpCopy(fn
, op0
.out
, GPRType())
18 op3
= OpLoad(fn
, arg
, offset
=0, mem
=mem
, length
=32)
22 op5
= OpLI(fn
, 0, length
=31)
24 op6
= OpConcat(fn
, [b_0
, b_rest
])
28 op8
= OpAddSubE(fn
, a
, b
, cy
, is_sub
=False)
30 op9
= OpStore(fn
, s
, arg
, offset
=0, mem_in
=mem
)
35 op5
, # OpLI(0, length=31)
38 op0
, # OpFuncArg(FixedGPRRangeType(GPRRange(3)))
39 op6
, # OpConcat([b_0, b_rest])
40 op1
, # OpCopy(op0.out, GPRType())
41 op3
, # OpLoad(arg, offset=0, mem=mem, length=32)
42 op8
, # OpAddSubE(a, b, cy, is_sub=False)
43 op9
, # OpStore(s, arg, offset=0, mem_in=mem)
46 ops
= op_set_to_list(fn
.ops
[::-1])
47 if ops
!= expected_ops
:
48 self
.assertEqual(repr(ops
), repr(expected_ops
))
51 if __name__
== "__main__":