blob: 09015ac8e02d3ed6144fb66190ca218ff920caab [file] [log] [blame]
--- add
B0 = EntryBlock()
v1 = Parameter(a)
v2 = Parameter(b)
v5 = BinaryIntOp +(v1, v2)
Return(v5)
--- intArithmetic
B0 = EntryBlock() dominates:(B7)
v4 = Constant(0)
v23 = Constant(1)
v25 = Constant(2)
v39 = Constant(3)
v1 = Parameter(a)
v2 = Parameter(b)
v3 = Parameter(data)
Goto(B7)
B7 = JoinBlock(B0, B13) idom:B0 dominates:(B14, B13) loop-header (depth:1 body:(B7, B13) back-edges:(B13))
v43 = Phi(v4, v35)
v42 = Phi(v4, v32)
v11 = InterfaceCall getter List.length(v3)
v12 = Comparison int <(v43, v11)
Branch(v12, true: B13, false: B14)
B13 = TargetBlock() idom:B7 in-loop:B7
v20 = BinaryIntOp ~/(v43, v1)
v22 = BinaryIntOp *(v20, v2)
v24 = BinaryIntOp >>(v22, v23)
v26 = BinaryIntOp -(v24, v25)
v27 = InterfaceCall List.[](v3, v26)
v29 = BinaryIntOp <<(v27, v1)
v31 = BinaryIntOp %(v29, v2)
v32 = BinaryIntOp +(v42, v31)
v35 = BinaryIntOp +(v43, v23)
Goto(B7)
B14 = TargetBlock() idom:B7
v40 = BinaryIntOp remainder(v42, v39)
Return(v40)
--- doubleArithmetic
B0 = EntryBlock() dominates:(B8)
v4 = Constant(0.0)
v6 = Constant(0)
v22 = Constant(3)
v36 = Constant(1)
v1 = Parameter(a)
v2 = Parameter(b)
v3 = Parameter(data)
Goto(B8)
B8 = JoinBlock(B0, B14) idom:B0 dominates:(B15, B14) loop-header (depth:1 body:(B8, B14) back-edges:(B14))
v45 = Phi(v6, v37)
v44 = Phi(v4, v33)
v12 = InterfaceCall getter List.length(v3)
v13 = Comparison int <(v45, v12)
Branch(v13, true: B14, false: B15)
B14 = TargetBlock() idom:B8 in-loop:B8
v21 = InterfaceCall List.[](v3, v45)
v23 = UnaryIntOp toDouble(v22)
v24 = BinaryDoubleOp +(v21, v23)
v26 = BinaryDoubleOp *(v24, v1)
v28 = UnaryIntOp toDouble(v2)
v29 = BinaryDoubleOp /(v26, v28)
v30 = UnaryDoubleOp roundToDouble(v29)
v31 = UnaryIntOp toDouble(v2)
v32 = BinaryDoubleOp -(v31, v30)
v33 = BinaryDoubleOp +(v44, v32)
v37 = BinaryIntOp +(v45, v36)
Goto(B8)
B15 = TargetBlock() idom:B8
v41 = UnaryIntOp toDouble(v22)
v42 = BinaryDoubleOp remainder(v44, v41)
Return(v42)
--- main
B0 = EntryBlock()
v1 = Constant(null)
Return(v1)