Import Upstream version 20180207
[hcoop/debian/mlton.git] / benchmark / tests / DATA / ndotprod.s
1 ARITHI new_allocptr/R1 := zero/R0 iadd 257
2 LABEL v/L0: ( zero/R0 allocptr/R1 exnhandler/R2 std_closure/R3 std_arg/R4 std_cont/R5 )
3 GETLAB v/R6 := v/L4
4 STORE M[ allocptr/R1 + 0 ] := v/R6
5 STORE M[ allocptr/R1 + 1 ] := std_cont/R5
6 ARITHI closure/R5 := allocptr/R1 iadd 0
7 ARITHI int10/R8 := zero/R0 iadd 10
8 GETREAL real3.0/R9 := 3.0
9 ARITHI new_allocptr/R1 := allocptr/R1 iadd 2
10 BRANCH IF zero/R0 ieq zero/R0 GOTO array/L1 ( zero/R0 allocptr/R1 exnhandler/R2 n/R8 v/R9 v/R5 )
11 LABEL array/L1: ( zero/R0 allocptr/R1 exnhandler/R2 n/R8 v/R9 v/R5 )
12 STORE M[ allocptr/R1 + 0 ] := n/R8
13 ARITH new_allocptr/R1 := n/R8 iadd allocptr/R1
14 ARITH arr/R4 := allocptr/R1 isub n/R8
15 BRANCH IF zero/R0 ige n/R8 GOTO else/L8 ( zero/R0 allocptr/R1 exnhandler/R2 arr/R4 v/R5 )
16 GETLAB v/R6 := v/L3
17 STORE M[ allocptr/R1 + 1 ] := v/R6
18 STORE M[ allocptr/R1 + 2 ] := arr/R4
19 STORE M[ allocptr/R1 + 3 ] := v/R5
20 ARITHI closure/R5 := allocptr/R1 iadd 1
21 STORE M[ arr/R4 + 1 ] := v/R9
22 ARITHI int1/R6 := zero/R0 iadd 1
23 ARITHI new_allocptr/R1 := allocptr/R1 iadd 4
24 BRANCH IF zero/R0 ieq zero/R0 GOTO g/L2 ( zero/R0 allocptr/R1 exnhandler/R2 i/R6 v/R5 arr/R4 n/R8 v/R9 )
25 LABEL else/L8: ( zero/R0 allocptr/R1 exnhandler/R2 arr/R4 v/R5 )
26 FETCHi v/R6 := M[ v/R5 + 0 ]
27 ARITHI new_allocptr/R1 := allocptr/R1 iadd 1
28 JUMP v/R6 ( zero/R0 allocptr/R1 exnhandler/R2 std_cont/R5 std_arg/R4 )
29 LABEL g/L2: ( zero/R0 allocptr/R1 exnhandler/R2 i/R6 v/R5 arr/R4 n/R8 v/R9 )
30 BRANCH IF i/R6 ige n/R8 GOTO else/L9 ( zero/R0 allocptr/R1 exnhandler/R2 v/R5 )
31 ARITH x/R7 := arr/R4 iadd i/R6
32 STORE M[ x/R7 + 1 ] := v/R9
33 ARITHI i/R6 := i/R6 iadd 1
34 BRANCH IF i/R6 ige n/R8 GOTO else/L10 ( zero/R0 allocptr/R1 exnhandler/R2 v/R5 )
35 ARITH x/R7 := arr/R4 iadd i/R6
36 STORE M[ x/R7 + 1 ] := v/R9
37 ARITHI i/R6 := i/R6 iadd 1
38 BRANCH IF zero/R0 ieq zero/R0 GOTO g/L2 ( zero/R0 allocptr/R1 exnhandler/R2 i/R6 v/R5 arr/R4 n/R8 v/R9 )
39 LABEL else/L10: ( zero/R0 allocptr/R1 exnhandler/R2 v/R5 )
40 FETCHi v/R6 := M[ v/R5 + 0 ]
41 MOVE std_arg/R4 := zero/R0
42 JUMP v/R6 ( zero/R0 allocptr/R1 exnhandler/R2 std_cont/R5 std_arg/R4 )
43 LABEL else/L9: ( zero/R0 allocptr/R1 exnhandler/R2 v/R5 )
44 FETCHi v/R6 := M[ v/R5 + 0 ]
45 MOVE std_arg/R4 := zero/R0
46 JUMP v/R6 ( zero/R0 allocptr/R1 exnhandler/R2 std_cont/R5 std_arg/R4 )
47 LABEL v/L3: ( zero/R0 allocptr/R1 exnhandler/R2 std_cont/R5 std_arg/R4 )
48 FETCHi arr/R4 := M[ std_cont/R5 + 1 ]
49 FETCHi v/R5 := M[ std_cont/R5 + 2 ]
50 FETCHi v/R6 := M[ v/R5 + 0 ]
51 JUMP v/R6 ( zero/R0 allocptr/R1 exnhandler/R2 std_cont/R5 std_arg/R4 )
52 LABEL v/L4: ( zero/R0 allocptr/R1 exnhandler/R2 std_cont/R5 std_arg/R4 )
53 GETLAB v/R6 := v/L5
54 STORE M[ allocptr/R1 + 0 ] := v/R6
55 FETCHi x/R6 := M[ std_cont/R5 + 1 ]
56 STORE M[ allocptr/R1 + 1 ] := x/R6
57 STORE M[ allocptr/R1 + 2 ] := std_arg/R4
58 ARITHI closure/R5 := allocptr/R1 iadd 0
59 ARITHI int10/R8 := zero/R0 iadd 10
60 GETREAL real4.0/R9 := 4.0
61 ARITHI new_allocptr/R1 := allocptr/R1 iadd 3
62 BRANCH IF zero/R0 ieq zero/R0 GOTO array/L1 ( zero/R0 allocptr/R1 exnhandler/R2 n/R8 v/R9 v/R5 )
63 LABEL v/L5: ( zero/R0 allocptr/R1 exnhandler/R2 std_cont/R5 std_arg/R4 )
64 GETLAB v/R6 := v/L7
65 STORE M[ allocptr/R1 + 0 ] := v/R6
66 FETCHi x/R6 := M[ std_cont/R5 + 1 ]
67 STORE M[ allocptr/R1 + 1 ] := x/R6
68 ARITHI closure/R11 := allocptr/R1 iadd 0
69 GETREAL real0.0/R10 := 0.0
70 ARITHI new_allocptr/R1 := allocptr/R1 iadd 2
71 MOVE k/R8 := zero/R0
72 BRANCH IF zero/R0 ieq zero/R0 GOTO f/L6 ( zero/R0 allocptr/R1 exnhandler/R2 k/R8 Q/R10 v/R11 X1/R4 closure/R5 )
73 LABEL f/L6: ( zero/R0 allocptr/R1 exnhandler/R2 k/R8 Q/R10 v/R11 X1/R4 closure/R5 )
74 ARITHI int10/R6 := zero/R0 iadd 10
75 BRANCH IF k/R8 ige int10/R6 GOTO else/L11 ( zero/R0 allocptr/R1 exnhandler/R2 v/R11 Q/R10 )
76 ARITHI v/R9 := k/R8 iadd 1
77 FETCHi Z1/R6 := M[ closure/R5 + 2 ]
78 ARITH x/R6 := Z1/R6 iadd k/R8
79 FETCHm v/R7 := M[ x/R6 + 1 ]
80 ARITH x/R6 := X1/R4 iadd k/R8
81 FETCHm v/R6 := M[ x/R6 + 1 ]
82 ARITH v/R6 := v/R7 fmul v/R6
83 ARITH v/R10 := Q/R10 fadd v/R6
84 MOVE k/R8 := v/R9
85 BRANCH IF zero/R0 ieq zero/R0 GOTO f/L6 ( zero/R0 allocptr/R1 exnhandler/R2 k/R8 Q/R10 v/R11 X1/R4 closure/R5 )
86 LABEL else/L11: ( zero/R0 allocptr/R1 exnhandler/R2 v/R11 Q/R10 )
87 FETCHi v/R6 := M[ v/R11 + 0 ]
88 MOVE std_cont/R5 := v/R11
89 MOVE std_arg/R4 := Q/R10
90 JUMP v/R6 ( zero/R0 allocptr/R1 exnhandler/R2 std_cont/R5 std_arg/R4 )
91 LABEL v/L7: ( zero/R0 allocptr/R1 exnhandler/R2 std_cont/R5 std_arg/R4 )
92 STORE M[ allocptr/R1 + 0 ] := std_arg/R4
93 ARITHI S/R4 := allocptr/R1 iadd 0
94 FETCHi v/R5 := M[ std_cont/R5 + 1 ]
95 FETCHi v/R6 := M[ v/R5 + 0 ]
96 ARITHI new_allocptr/R1 := allocptr/R1 iadd 1
97 JUMP v/R6 ( zero/R0 allocptr/R1 exnhandler/R2 std_cont/R5 std_arg/R4 )