| --- 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) |
| |