kumi 0.0.23 → 0.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +2 -2
- data/golden/array_element/expected/schema_ruby.rb +1 -1
- data/golden/array_index/expected/schema_ruby.rb +1 -1
- data/golden/array_operations/expected/schema_ruby.rb +1 -1
- data/golden/cascade_logic/expected/lir_02_inlined.txt +8 -8
- data/golden/cascade_logic/expected/schema_ruby.rb +1 -1
- data/golden/chained_fusion/expected/lir_02_inlined.txt +36 -36
- data/golden/chained_fusion/expected/lir_03_cse.txt +23 -23
- data/golden/chained_fusion/expected/lir_04_1_loop_fusion.txt +25 -25
- data/golden/chained_fusion/expected/lir_04_loop_invcm.txt +23 -23
- data/golden/chained_fusion/expected/lir_06_const_prop.txt +23 -23
- data/golden/chained_fusion/expected/schema_javascript.mjs +23 -23
- data/golden/chained_fusion/expected/schema_ruby.rb +28 -28
- data/golden/element_arrays/expected/schema_ruby.rb +1 -1
- data/golden/empty_and_null_inputs/expected/lir_02_inlined.txt +18 -18
- data/golden/empty_and_null_inputs/expected/lir_03_cse.txt +17 -17
- data/golden/empty_and_null_inputs/expected/lir_04_1_loop_fusion.txt +17 -17
- data/golden/empty_and_null_inputs/expected/lir_04_loop_invcm.txt +17 -17
- data/golden/empty_and_null_inputs/expected/lir_06_const_prop.txt +17 -17
- data/golden/empty_and_null_inputs/expected/schema_javascript.mjs +13 -13
- data/golden/empty_and_null_inputs/expected/schema_ruby.rb +18 -18
- data/golden/game_of_life/expected/lir_00_unoptimized.txt +33 -33
- data/golden/game_of_life/expected/lir_01_hoist_scalar_references.txt +33 -33
- data/golden/game_of_life/expected/lir_02_inlined.txt +1370 -1370
- data/golden/game_of_life/expected/lir_03_cse.txt +448 -448
- data/golden/game_of_life/expected/lir_04_1_loop_fusion.txt +448 -448
- data/golden/game_of_life/expected/lir_04_loop_invcm.txt +448 -448
- data/golden/game_of_life/expected/lir_06_const_prop.txt +448 -448
- data/golden/game_of_life/expected/schema_javascript.mjs +85 -85
- data/golden/game_of_life/expected/schema_ruby.rb +86 -86
- data/golden/hash_keys/expected/schema_ruby.rb +1 -1
- data/golden/hash_keys/schema.kumi +4 -5
- data/golden/hash_value/expected/schema_ruby.rb +1 -1
- data/golden/hierarchical_complex/expected/lir_02_inlined.txt +15 -15
- data/golden/hierarchical_complex/expected/lir_03_cse.txt +1 -1
- data/golden/hierarchical_complex/expected/lir_04_1_loop_fusion.txt +1 -1
- data/golden/hierarchical_complex/expected/lir_04_loop_invcm.txt +1 -1
- data/golden/hierarchical_complex/expected/lir_06_const_prop.txt +1 -1
- data/golden/hierarchical_complex/expected/schema_javascript.mjs +1 -1
- data/golden/hierarchical_complex/expected/schema_ruby.rb +2 -2
- data/golden/inline_rename_scope_leak/expected/ast.txt +48 -0
- data/golden/inline_rename_scope_leak/expected/input_plan.txt +10 -0
- data/golden/inline_rename_scope_leak/expected/lir_00_unoptimized.txt +35 -0
- data/golden/inline_rename_scope_leak/expected/lir_01_hoist_scalar_references.txt +35 -0
- data/golden/inline_rename_scope_leak/expected/lir_02_inlined.txt +49 -0
- data/golden/inline_rename_scope_leak/expected/lir_03_cse.txt +49 -0
- data/golden/inline_rename_scope_leak/expected/lir_04_1_loop_fusion.txt +49 -0
- data/golden/inline_rename_scope_leak/expected/lir_04_loop_invcm.txt +49 -0
- data/golden/inline_rename_scope_leak/expected/lir_06_const_prop.txt +49 -0
- data/golden/inline_rename_scope_leak/expected/nast.txt +31 -0
- data/golden/inline_rename_scope_leak/expected/schema_javascript.mjs +51 -0
- data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +82 -0
- data/golden/inline_rename_scope_leak/expected/snast.txt +31 -0
- data/golden/inline_rename_scope_leak/expected.json +7 -0
- data/golden/inline_rename_scope_leak/input.json +4 -0
- data/golden/inline_rename_scope_leak/schema.kumi +24 -0
- data/golden/input_reference/expected/schema_ruby.rb +1 -1
- data/golden/interleaved_fusion/expected/lir_02_inlined.txt +35 -35
- data/golden/interleaved_fusion/expected/lir_03_cse.txt +26 -26
- data/golden/interleaved_fusion/expected/lir_04_1_loop_fusion.txt +27 -26
- data/golden/interleaved_fusion/expected/lir_04_loop_invcm.txt +26 -26
- data/golden/interleaved_fusion/expected/lir_06_const_prop.txt +26 -26
- data/golden/interleaved_fusion/expected/schema_javascript.mjs +23 -23
- data/golden/interleaved_fusion/expected/schema_ruby.rb +29 -29
- data/golden/let_inline/expected/schema_ruby.rb +1 -1
- data/golden/loop_fusion/expected/lir_02_inlined.txt +17 -17
- data/golden/loop_fusion/expected/lir_03_cse.txt +14 -14
- data/golden/loop_fusion/expected/lir_04_1_loop_fusion.txt +14 -14
- data/golden/loop_fusion/expected/lir_04_loop_invcm.txt +14 -14
- data/golden/loop_fusion/expected/lir_06_const_prop.txt +14 -14
- data/golden/loop_fusion/expected/schema_javascript.mjs +12 -12
- data/golden/loop_fusion/expected/schema_ruby.rb +16 -16
- data/golden/min_reduce_scope/expected/schema_ruby.rb +1 -1
- data/golden/mixed_dimensions/expected/lir_02_inlined.txt +5 -5
- data/golden/mixed_dimensions/expected/lir_03_cse.txt +5 -5
- data/golden/mixed_dimensions/expected/lir_04_1_loop_fusion.txt +5 -5
- data/golden/mixed_dimensions/expected/lir_04_loop_invcm.txt +5 -5
- data/golden/mixed_dimensions/expected/lir_06_const_prop.txt +5 -5
- data/golden/mixed_dimensions/expected/schema_javascript.mjs +3 -3
- data/golden/mixed_dimensions/expected/schema_ruby.rb +6 -6
- data/golden/multirank_hoisting/expected/lir_02_inlined.txt +48 -48
- data/golden/multirank_hoisting/expected/lir_03_cse.txt +35 -35
- data/golden/multirank_hoisting/expected/lir_04_1_loop_fusion.txt +35 -35
- data/golden/multirank_hoisting/expected/lir_04_loop_invcm.txt +35 -35
- data/golden/multirank_hoisting/expected/lir_06_const_prop.txt +35 -35
- data/golden/multirank_hoisting/expected/schema_javascript.mjs +34 -34
- data/golden/multirank_hoisting/expected/schema_ruby.rb +36 -36
- data/golden/nested_hash/expected/schema_ruby.rb +1 -1
- data/golden/reduction_broadcast/expected/lir_02_inlined.txt +30 -30
- data/golden/reduction_broadcast/expected/lir_03_cse.txt +22 -22
- data/golden/reduction_broadcast/expected/lir_04_1_loop_fusion.txt +22 -22
- data/golden/reduction_broadcast/expected/lir_04_loop_invcm.txt +22 -22
- data/golden/reduction_broadcast/expected/lir_06_const_prop.txt +22 -22
- data/golden/reduction_broadcast/expected/schema_javascript.mjs +18 -18
- data/golden/reduction_broadcast/expected/schema_ruby.rb +23 -23
- data/golden/roll/expected/lir_00_unoptimized.txt +8 -8
- data/golden/roll/expected/lir_01_hoist_scalar_references.txt +8 -8
- data/golden/roll/expected/lir_02_inlined.txt +8 -8
- data/golden/roll/expected/lir_03_cse.txt +8 -8
- data/golden/roll/expected/lir_04_1_loop_fusion.txt +8 -8
- data/golden/roll/expected/lir_04_loop_invcm.txt +8 -8
- data/golden/roll/expected/lir_06_const_prop.txt +8 -8
- data/golden/roll/expected/schema_ruby.rb +1 -1
- data/golden/shift/expected/lir_00_unoptimized.txt +12 -12
- data/golden/shift/expected/lir_01_hoist_scalar_references.txt +12 -12
- data/golden/shift/expected/lir_02_inlined.txt +12 -12
- data/golden/shift/expected/lir_03_cse.txt +12 -12
- data/golden/shift/expected/lir_04_1_loop_fusion.txt +12 -12
- data/golden/shift/expected/lir_04_loop_invcm.txt +12 -12
- data/golden/shift/expected/lir_06_const_prop.txt +12 -12
- data/golden/shift/expected/schema_ruby.rb +1 -1
- data/golden/shift_2d/expected/lir_00_unoptimized.txt +48 -48
- data/golden/shift_2d/expected/lir_01_hoist_scalar_references.txt +48 -48
- data/golden/shift_2d/expected/lir_02_inlined.txt +48 -48
- data/golden/shift_2d/expected/lir_03_cse.txt +48 -48
- data/golden/shift_2d/expected/lir_04_1_loop_fusion.txt +48 -48
- data/golden/shift_2d/expected/lir_04_loop_invcm.txt +48 -48
- data/golden/shift_2d/expected/lir_06_const_prop.txt +48 -48
- data/golden/shift_2d/expected/schema_ruby.rb +1 -1
- data/golden/simple_math/expected/schema_ruby.rb +1 -1
- data/golden/streaming_basics/expected/lir_02_inlined.txt +25 -25
- data/golden/streaming_basics/expected/lir_03_cse.txt +13 -13
- data/golden/streaming_basics/expected/lir_04_1_loop_fusion.txt +13 -13
- data/golden/streaming_basics/expected/lir_04_loop_invcm.txt +13 -13
- data/golden/streaming_basics/expected/lir_06_const_prop.txt +13 -13
- data/golden/streaming_basics/expected/schema_javascript.mjs +13 -13
- data/golden/streaming_basics/expected/schema_ruby.rb +14 -14
- data/golden/tuples/expected/lir_00_unoptimized.txt +4 -4
- data/golden/tuples/expected/lir_01_hoist_scalar_references.txt +4 -4
- data/golden/tuples/expected/lir_02_inlined.txt +4 -4
- data/golden/tuples/expected/lir_03_cse.txt +4 -4
- data/golden/tuples/expected/lir_04_1_loop_fusion.txt +4 -4
- data/golden/tuples/expected/lir_04_loop_invcm.txt +4 -4
- data/golden/tuples/expected/lir_06_const_prop.txt +4 -4
- data/golden/tuples/expected/schema_ruby.rb +1 -1
- data/golden/tuples_and_arrays/expected/lir_00_unoptimized.txt +1 -1
- data/golden/tuples_and_arrays/expected/lir_01_hoist_scalar_references.txt +1 -1
- data/golden/tuples_and_arrays/expected/lir_02_inlined.txt +17 -17
- data/golden/tuples_and_arrays/expected/lir_03_cse.txt +14 -14
- data/golden/tuples_and_arrays/expected/lir_04_1_loop_fusion.txt +14 -14
- data/golden/tuples_and_arrays/expected/lir_04_loop_invcm.txt +14 -14
- data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +14 -14
- data/golden/tuples_and_arrays/expected/schema_javascript.mjs +13 -13
- data/golden/tuples_and_arrays/expected/schema_ruby.rb +14 -14
- data/golden/us_tax_2024/expected/ast.txt +865 -0
- data/golden/us_tax_2024/expected/input_plan.txt +61 -0
- data/golden/us_tax_2024/expected/lir_00_unoptimized.txt +901 -0
- data/golden/us_tax_2024/expected/lir_01_hoist_scalar_references.txt +901 -0
- data/golden/us_tax_2024/expected/lir_02_inlined.txt +5178 -0
- data/golden/us_tax_2024/expected/lir_03_cse.txt +2499 -0
- data/golden/us_tax_2024/expected/lir_04_1_loop_fusion.txt +2519 -0
- data/golden/us_tax_2024/expected/lir_04_loop_invcm.txt +2499 -0
- data/golden/us_tax_2024/expected/lir_06_const_prop.txt +2499 -0
- data/golden/us_tax_2024/expected/nast.txt +976 -0
- data/golden/us_tax_2024/expected/schema_javascript.mjs +584 -0
- data/golden/us_tax_2024/expected/schema_ruby.rb +639 -0
- data/golden/us_tax_2024/expected/snast.txt +976 -0
- data/golden/us_tax_2024/expected.json +1 -0
- data/golden/us_tax_2024/input.json +168 -0
- data/golden/us_tax_2024/schema.kumi +203 -0
- data/golden/with_constants/expected/schema_ruby.rb +1 -1
- data/lib/kumi/core/analyzer/passes/lir/inline_declarations_pass.rb +227 -107
- data/lib/kumi/version.rb +1 -1
- metadata +33 -1
@@ -9,7 +9,7 @@
|
|
9
9
|
)
|
10
10
|
(Declaration n
|
11
11
|
%t6 = load_input "rows" :: array
|
12
|
-
%t11 =
|
12
|
+
%t11 = length %t6 :: integer
|
13
13
|
%t12 = const -1 :: integer
|
14
14
|
%t14 = const 0 :: integer
|
15
15
|
%t18 = const 1 :: integer
|
@@ -20,13 +20,13 @@
|
|
20
20
|
%t16 = call core.lt(%t13, %t11) :: boolean
|
21
21
|
%t21 = call core.clamp(%t13, %t14, %t19) :: integer
|
22
22
|
%t17 = call core.and(%t15, %t16) :: boolean
|
23
|
-
%t22 =
|
24
|
-
%t23 =
|
23
|
+
%t22 = gather %t6, %t21 :: any
|
24
|
+
%t23 = length %t22 :: integer
|
25
25
|
loop col id=L4 in %rows_el_7 as el=%col_el_9, idx=%col_i_10
|
26
26
|
%t24 = call core.mod(%col_i_10, %t23) :: integer
|
27
27
|
%t25 = call core.add(%t24, %t23) :: integer
|
28
28
|
%t26 = call core.mod(%t25, %t23) :: integer
|
29
|
-
%t27 =
|
29
|
+
%t27 = gather %t22, %t26 :: integer
|
30
30
|
%t29 = select %t17, %t27, %t14 :: integer
|
31
31
|
yield %t29
|
32
32
|
end_loop
|
@@ -34,7 +34,7 @@
|
|
34
34
|
)
|
35
35
|
(Declaration s
|
36
36
|
%t30 = load_input "rows" :: array
|
37
|
-
%t35 =
|
37
|
+
%t35 = length %t30 :: integer
|
38
38
|
%t36 = const 1 :: integer
|
39
39
|
%t38 = const 0 :: integer
|
40
40
|
%t43 = call core.sub(%t35, %t36) :: integer
|
@@ -44,13 +44,13 @@
|
|
44
44
|
%t40 = call core.lt(%t37, %t35) :: boolean
|
45
45
|
%t45 = call core.clamp(%t37, %t38, %t43) :: integer
|
46
46
|
%t41 = call core.and(%t39, %t40) :: boolean
|
47
|
-
%t46 =
|
48
|
-
%t47 =
|
47
|
+
%t46 = gather %t30, %t45 :: any
|
48
|
+
%t47 = length %t46 :: integer
|
49
49
|
loop col id=L6 in %rows_el_31 as el=%col_el_33, idx=%col_i_34
|
50
50
|
%t48 = call core.mod(%col_i_34, %t47) :: integer
|
51
51
|
%t49 = call core.add(%t48, %t47) :: integer
|
52
52
|
%t50 = call core.mod(%t49, %t47) :: integer
|
53
|
-
%t51 =
|
53
|
+
%t51 = gather %t46, %t50 :: integer
|
54
54
|
%t53 = select %t41, %t51, %t38 :: integer
|
55
55
|
yield %t53
|
56
56
|
end_loop
|
@@ -58,7 +58,7 @@
|
|
58
58
|
)
|
59
59
|
(Declaration w
|
60
60
|
%t54 = load_input "rows" :: array
|
61
|
-
%t59 =
|
61
|
+
%t59 = length %t54 :: integer
|
62
62
|
%t65 = const -1 :: integer
|
63
63
|
%t67 = const 0 :: integer
|
64
64
|
%t71 = const 1 :: integer
|
@@ -66,8 +66,8 @@
|
|
66
66
|
%t60 = call core.mod(%rows_i_56, %t59) :: integer
|
67
67
|
%t61 = call core.add(%t60, %t59) :: integer
|
68
68
|
%t62 = call core.mod(%t61, %t59) :: integer
|
69
|
-
%t63 =
|
70
|
-
%t64 =
|
69
|
+
%t63 = gather %t54, %t62 :: any
|
70
|
+
%t64 = length %t63 :: integer
|
71
71
|
%t72 = call core.sub(%t64, %t71) :: integer
|
72
72
|
loop col id=L8 in %rows_el_55 as el=%col_el_57, idx=%col_i_58
|
73
73
|
%t66 = call core.sub(%col_i_58, %t65) :: integer
|
@@ -75,7 +75,7 @@
|
|
75
75
|
%t69 = call core.lt(%t66, %t64) :: boolean
|
76
76
|
%t70 = call core.and(%t68, %t69) :: boolean
|
77
77
|
%t74 = call core.clamp(%t66, %t67, %t72) :: integer
|
78
|
-
%t75 =
|
78
|
+
%t75 = gather %t63, %t74 :: integer
|
79
79
|
%t77 = select %t70, %t75, %t67 :: integer
|
80
80
|
yield %t77
|
81
81
|
end_loop
|
@@ -83,15 +83,15 @@
|
|
83
83
|
)
|
84
84
|
(Declaration e
|
85
85
|
%t78 = load_input "rows" :: array
|
86
|
-
%t83 =
|
86
|
+
%t83 = length %t78 :: integer
|
87
87
|
%t89 = const 1 :: integer
|
88
88
|
%t91 = const 0 :: integer
|
89
89
|
loop rows id=L9 in %t78 as el=%rows_el_79, idx=%rows_i_80
|
90
90
|
%t84 = call core.mod(%rows_i_80, %t83) :: integer
|
91
91
|
%t85 = call core.add(%t84, %t83) :: integer
|
92
92
|
%t86 = call core.mod(%t85, %t83) :: integer
|
93
|
-
%t87 =
|
94
|
-
%t88 =
|
93
|
+
%t87 = gather %t78, %t86 :: any
|
94
|
+
%t88 = length %t87 :: integer
|
95
95
|
%t96 = call core.sub(%t88, %t89) :: integer
|
96
96
|
loop col id=L10 in %rows_el_79 as el=%col_el_81, idx=%col_i_82
|
97
97
|
%t90 = call core.sub(%col_i_82, %t89) :: integer
|
@@ -99,7 +99,7 @@
|
|
99
99
|
%t93 = call core.lt(%t90, %t88) :: boolean
|
100
100
|
%t94 = call core.and(%t92, %t93) :: boolean
|
101
101
|
%t98 = call core.clamp(%t90, %t91, %t96) :: integer
|
102
|
-
%t99 =
|
102
|
+
%t99 = gather %t87, %t98 :: integer
|
103
103
|
%t101 = select %t94, %t99, %t91 :: integer
|
104
104
|
yield %t101
|
105
105
|
end_loop
|
@@ -107,7 +107,7 @@
|
|
107
107
|
)
|
108
108
|
(Declaration nw
|
109
109
|
%t102 = load_input "rows" :: array
|
110
|
-
%t107 =
|
110
|
+
%t107 = length %t102 :: integer
|
111
111
|
%t108 = const -1 :: integer
|
112
112
|
%t110 = const 0 :: integer
|
113
113
|
%t114 = const 1 :: integer
|
@@ -118,8 +118,8 @@
|
|
118
118
|
%t112 = call core.lt(%t109, %t107) :: boolean
|
119
119
|
%t117 = call core.clamp(%t109, %t110, %t115) :: integer
|
120
120
|
%t113 = call core.and(%t111, %t112) :: boolean
|
121
|
-
%t118 =
|
122
|
-
%t119 =
|
121
|
+
%t118 = gather %t102, %t117 :: any
|
122
|
+
%t119 = length %t118 :: integer
|
123
123
|
%t128 = call core.sub(%t119, %t114) :: integer
|
124
124
|
loop col id=L12 in %rows_el_103 as el=%col_el_105, idx=%col_i_106
|
125
125
|
%t121 = call core.sub(%col_i_106, %t108) :: integer
|
@@ -128,7 +128,7 @@
|
|
128
128
|
%t125 = call core.and(%t123, %t124) :: boolean
|
129
129
|
%t126 = call core.and(%t113, %t125) :: boolean
|
130
130
|
%t130 = call core.clamp(%t121, %t110, %t128) :: integer
|
131
|
-
%t131 =
|
131
|
+
%t131 = gather %t118, %t130 :: integer
|
132
132
|
%t133 = select %t126, %t131, %t110 :: integer
|
133
133
|
yield %t133
|
134
134
|
end_loop
|
@@ -136,7 +136,7 @@
|
|
136
136
|
)
|
137
137
|
(Declaration ne
|
138
138
|
%t134 = load_input "rows" :: array
|
139
|
-
%t139 =
|
139
|
+
%t139 = length %t134 :: integer
|
140
140
|
%t140 = const -1 :: integer
|
141
141
|
%t142 = const 0 :: integer
|
142
142
|
%t146 = const 1 :: integer
|
@@ -147,8 +147,8 @@
|
|
147
147
|
%t144 = call core.lt(%t141, %t139) :: boolean
|
148
148
|
%t149 = call core.clamp(%t141, %t142, %t147) :: integer
|
149
149
|
%t145 = call core.and(%t143, %t144) :: boolean
|
150
|
-
%t150 =
|
151
|
-
%t151 =
|
150
|
+
%t150 = gather %t134, %t149 :: any
|
151
|
+
%t151 = length %t150 :: integer
|
152
152
|
%t160 = call core.sub(%t151, %t146) :: integer
|
153
153
|
loop col id=L14 in %rows_el_135 as el=%col_el_137, idx=%col_i_138
|
154
154
|
%t153 = call core.sub(%col_i_138, %t146) :: integer
|
@@ -157,7 +157,7 @@
|
|
157
157
|
%t157 = call core.and(%t155, %t156) :: boolean
|
158
158
|
%t158 = call core.and(%t145, %t157) :: boolean
|
159
159
|
%t162 = call core.clamp(%t153, %t142, %t160) :: integer
|
160
|
-
%t163 =
|
160
|
+
%t163 = gather %t150, %t162 :: integer
|
161
161
|
%t165 = select %t158, %t163, %t142 :: integer
|
162
162
|
yield %t165
|
163
163
|
end_loop
|
@@ -165,7 +165,7 @@
|
|
165
165
|
)
|
166
166
|
(Declaration sw
|
167
167
|
%t166 = load_input "rows" :: array
|
168
|
-
%t171 =
|
168
|
+
%t171 = length %t166 :: integer
|
169
169
|
%t172 = const 1 :: integer
|
170
170
|
%t174 = const 0 :: integer
|
171
171
|
%t184 = const -1 :: integer
|
@@ -176,8 +176,8 @@
|
|
176
176
|
%t176 = call core.lt(%t173, %t171) :: boolean
|
177
177
|
%t181 = call core.clamp(%t173, %t174, %t179) :: integer
|
178
178
|
%t177 = call core.and(%t175, %t176) :: boolean
|
179
|
-
%t182 =
|
180
|
-
%t183 =
|
179
|
+
%t182 = gather %t166, %t181 :: any
|
180
|
+
%t183 = length %t182 :: integer
|
181
181
|
%t192 = call core.sub(%t183, %t172) :: integer
|
182
182
|
loop col id=L16 in %rows_el_167 as el=%col_el_169, idx=%col_i_170
|
183
183
|
%t185 = call core.sub(%col_i_170, %t184) :: integer
|
@@ -186,7 +186,7 @@
|
|
186
186
|
%t189 = call core.and(%t187, %t188) :: boolean
|
187
187
|
%t190 = call core.and(%t177, %t189) :: boolean
|
188
188
|
%t194 = call core.clamp(%t185, %t174, %t192) :: integer
|
189
|
-
%t195 =
|
189
|
+
%t195 = gather %t182, %t194 :: integer
|
190
190
|
%t197 = select %t190, %t195, %t174 :: integer
|
191
191
|
yield %t197
|
192
192
|
end_loop
|
@@ -194,7 +194,7 @@
|
|
194
194
|
)
|
195
195
|
(Declaration se
|
196
196
|
%t198 = load_input "rows" :: array
|
197
|
-
%t203 =
|
197
|
+
%t203 = length %t198 :: integer
|
198
198
|
%t204 = const 1 :: integer
|
199
199
|
%t206 = const 0 :: integer
|
200
200
|
%t211 = call core.sub(%t203, %t204) :: integer
|
@@ -204,8 +204,8 @@
|
|
204
204
|
%t208 = call core.lt(%t205, %t203) :: boolean
|
205
205
|
%t213 = call core.clamp(%t205, %t206, %t211) :: integer
|
206
206
|
%t209 = call core.and(%t207, %t208) :: boolean
|
207
|
-
%t214 =
|
208
|
-
%t215 =
|
207
|
+
%t214 = gather %t198, %t213 :: any
|
208
|
+
%t215 = length %t214 :: integer
|
209
209
|
%t224 = call core.sub(%t215, %t204) :: integer
|
210
210
|
loop col id=L18 in %rows_el_199 as el=%col_el_201, idx=%col_i_202
|
211
211
|
%t217 = call core.sub(%col_i_202, %t204) :: integer
|
@@ -214,7 +214,7 @@
|
|
214
214
|
%t221 = call core.and(%t219, %t220) :: boolean
|
215
215
|
%t222 = call core.and(%t209, %t221) :: boolean
|
216
216
|
%t226 = call core.clamp(%t217, %t206, %t224) :: integer
|
217
|
-
%t227 =
|
217
|
+
%t227 = gather %t214, %t226 :: integer
|
218
218
|
%t229 = select %t222, %t227, %t206 :: integer
|
219
219
|
yield %t229
|
220
220
|
end_loop
|
@@ -222,7 +222,7 @@
|
|
222
222
|
)
|
223
223
|
(Declaration neighbors
|
224
224
|
%t230 = load_input "rows" :: array
|
225
|
-
%t295 =
|
225
|
+
%t295 = length %t230 :: integer
|
226
226
|
%t296 = const -1 :: integer
|
227
227
|
%t298 = const 0 :: integer
|
228
228
|
%t302 = const 1 :: integer
|
@@ -239,14 +239,14 @@
|
|
239
239
|
%t325 = call core.clamp(%t317, %t298, %t303) :: integer
|
240
240
|
%t337 = call core.add(%t336, %t295) :: integer
|
241
241
|
%t301 = call core.and(%t299, %t300) :: boolean
|
242
|
-
%t306 =
|
242
|
+
%t306 = gather %t230, %t305 :: any
|
243
243
|
%t321 = call core.and(%t319, %t320) :: boolean
|
244
|
-
%t326 =
|
244
|
+
%t326 = gather %t230, %t325 :: any
|
245
245
|
%t338 = call core.mod(%t337, %t295) :: integer
|
246
|
-
%t307 =
|
247
|
-
%t327 =
|
248
|
-
%t339 =
|
249
|
-
%t340 =
|
246
|
+
%t307 = length %t306 :: integer
|
247
|
+
%t327 = length %t326 :: integer
|
248
|
+
%t339 = gather %t230, %t338 :: any
|
249
|
+
%t340 = length %t339 :: integer
|
250
250
|
%t396 = call core.sub(%t307, %t302) :: integer
|
251
251
|
%t452 = call core.sub(%t327, %t302) :: integer
|
252
252
|
%t348 = call core.sub(%t340, %t302) :: integer
|
@@ -254,53 +254,53 @@
|
|
254
254
|
%t308 = call core.mod(%col_i_234, %t307) :: integer
|
255
255
|
%t309 = call core.add(%t308, %t307) :: integer
|
256
256
|
%t310 = call core.mod(%t309, %t307) :: integer
|
257
|
-
%t311 =
|
257
|
+
%t311 = gather %t306, %t310 :: integer
|
258
258
|
%t313 = select %t301, %t311, %t298 :: integer
|
259
259
|
%t328 = call core.mod(%col_i_234, %t327) :: integer
|
260
260
|
%t329 = call core.add(%t328, %t327) :: integer
|
261
261
|
%t330 = call core.mod(%t329, %t327) :: integer
|
262
|
-
%t331 =
|
262
|
+
%t331 = gather %t326, %t330 :: integer
|
263
263
|
%t333 = select %t321, %t331, %t298 :: integer
|
264
264
|
%t342 = call core.sub(%col_i_234, %t296) :: integer
|
265
265
|
%t344 = call core.gte(%t342, %t298) :: boolean
|
266
266
|
%t345 = call core.lt(%t342, %t340) :: boolean
|
267
267
|
%t346 = call core.and(%t344, %t345) :: boolean
|
268
268
|
%t350 = call core.clamp(%t342, %t298, %t348) :: integer
|
269
|
-
%t351 =
|
269
|
+
%t351 = gather %t339, %t350 :: integer
|
270
270
|
%t353 = select %t346, %t351, %t298 :: integer
|
271
271
|
%t362 = call core.sub(%col_i_234, %t302) :: integer
|
272
272
|
%t364 = call core.gte(%t362, %t298) :: boolean
|
273
273
|
%t365 = call core.lt(%t362, %t340) :: boolean
|
274
274
|
%t366 = call core.and(%t364, %t365) :: boolean
|
275
275
|
%t370 = call core.clamp(%t362, %t298, %t348) :: integer
|
276
|
-
%t371 =
|
276
|
+
%t371 = gather %t339, %t370 :: integer
|
277
277
|
%t373 = select %t366, %t371, %t298 :: integer
|
278
278
|
%t392 = call core.lt(%t342, %t307) :: boolean
|
279
279
|
%t393 = call core.and(%t344, %t392) :: boolean
|
280
280
|
%t394 = call core.and(%t301, %t393) :: boolean
|
281
281
|
%t398 = call core.clamp(%t342, %t298, %t396) :: integer
|
282
|
-
%t399 =
|
282
|
+
%t399 = gather %t306, %t398 :: integer
|
283
283
|
%t401 = select %t394, %t399, %t298 :: integer
|
284
284
|
%t420 = call core.lt(%t362, %t307) :: boolean
|
285
285
|
%t421 = call core.and(%t364, %t420) :: boolean
|
286
286
|
%t422 = call core.and(%t301, %t421) :: boolean
|
287
287
|
%t426 = call core.clamp(%t362, %t298, %t396) :: integer
|
288
|
-
%t427 =
|
288
|
+
%t427 = gather %t306, %t426 :: integer
|
289
289
|
%t429 = select %t422, %t427, %t298 :: integer
|
290
290
|
%t448 = call core.lt(%t342, %t327) :: boolean
|
291
291
|
%t449 = call core.and(%t344, %t448) :: boolean
|
292
292
|
%t450 = call core.and(%t321, %t449) :: boolean
|
293
293
|
%t454 = call core.clamp(%t342, %t298, %t452) :: integer
|
294
|
-
%t455 =
|
294
|
+
%t455 = gather %t326, %t454 :: integer
|
295
295
|
%t457 = select %t450, %t455, %t298 :: integer
|
296
296
|
%t476 = call core.lt(%t362, %t327) :: boolean
|
297
297
|
%t477 = call core.and(%t364, %t476) :: boolean
|
298
298
|
%t478 = call core.and(%t321, %t477) :: boolean
|
299
299
|
%t482 = call core.clamp(%t362, %t298, %t452) :: integer
|
300
|
-
%t483 =
|
300
|
+
%t483 = gather %t326, %t482 :: integer
|
301
301
|
%t485 = select %t478, %t483, %t298 :: integer
|
302
302
|
%t243 = make_tuple(%t313, %t333, %t353, %t373, %t401, %t429, %t457, %t485) :: tuple<integer>
|
303
|
-
%t244 =
|
303
|
+
%t244 = fold %t243 fn="agg.sum" ::
|
304
304
|
yield %t244
|
305
305
|
end_loop
|
306
306
|
end_loop
|
@@ -317,86 +317,86 @@
|
|
317
317
|
)
|
318
318
|
(Declaration n3_alive
|
319
319
|
%t253 = load_input "rows" :: array
|
320
|
-
%
|
321
|
-
%
|
322
|
-
%
|
323
|
-
%
|
320
|
+
%t499 = length %t253 :: integer
|
321
|
+
%t500 = const -1 :: integer
|
322
|
+
%t502 = const 0 :: integer
|
323
|
+
%t506 = const 1 :: integer
|
324
324
|
%t259 = const 3 :: integer
|
325
|
-
%
|
325
|
+
%t507 = call core.sub(%t499, %t506) :: integer
|
326
326
|
loop rows id=L23 in %t253 as el=%rows_el_254, idx=%rows_i_255
|
327
|
-
%
|
328
|
-
%
|
329
|
-
%
|
330
|
-
%
|
331
|
-
%
|
332
|
-
%
|
333
|
-
%
|
334
|
-
%
|
335
|
-
%
|
336
|
-
%
|
337
|
-
%
|
338
|
-
%
|
339
|
-
%
|
340
|
-
%
|
341
|
-
%
|
342
|
-
%
|
343
|
-
%
|
344
|
-
%
|
345
|
-
%
|
346
|
-
%
|
347
|
-
%
|
348
|
-
%
|
327
|
+
%t501 = call core.sub(%rows_i_255, %t500) :: integer
|
328
|
+
%t521 = call core.sub(%rows_i_255, %t506) :: integer
|
329
|
+
%t540 = call core.mod(%rows_i_255, %t499) :: integer
|
330
|
+
%t503 = call core.gte(%t501, %t502) :: boolean
|
331
|
+
%t504 = call core.lt(%t501, %t499) :: boolean
|
332
|
+
%t509 = call core.clamp(%t501, %t502, %t507) :: integer
|
333
|
+
%t523 = call core.gte(%t521, %t502) :: boolean
|
334
|
+
%t524 = call core.lt(%t521, %t499) :: boolean
|
335
|
+
%t529 = call core.clamp(%t521, %t502, %t507) :: integer
|
336
|
+
%t541 = call core.add(%t540, %t499) :: integer
|
337
|
+
%t505 = call core.and(%t503, %t504) :: boolean
|
338
|
+
%t510 = gather %t253, %t509 :: any
|
339
|
+
%t525 = call core.and(%t523, %t524) :: boolean
|
340
|
+
%t530 = gather %t253, %t529 :: any
|
341
|
+
%t542 = call core.mod(%t541, %t499) :: integer
|
342
|
+
%t511 = length %t510 :: integer
|
343
|
+
%t531 = length %t530 :: integer
|
344
|
+
%t543 = gather %t253, %t542 :: any
|
345
|
+
%t544 = length %t543 :: integer
|
346
|
+
%t600 = call core.sub(%t511, %t506) :: integer
|
347
|
+
%t656 = call core.sub(%t531, %t506) :: integer
|
348
|
+
%t552 = call core.sub(%t544, %t506) :: integer
|
349
349
|
loop col id=L24 in %rows_el_254 as el=%col_el_256, idx=%col_i_257
|
350
|
-
%
|
351
|
-
%
|
352
|
-
%
|
353
|
-
%
|
354
|
-
%
|
355
|
-
%
|
356
|
-
%
|
357
|
-
%
|
358
|
-
%
|
359
|
-
%
|
360
|
-
%
|
361
|
-
%
|
362
|
-
%
|
363
|
-
%
|
364
|
-
%
|
365
|
-
%
|
366
|
-
%
|
367
|
-
%
|
368
|
-
%
|
369
|
-
%
|
370
|
-
%
|
371
|
-
%
|
372
|
-
%
|
373
|
-
%
|
374
|
-
%
|
375
|
-
%
|
376
|
-
%
|
377
|
-
%
|
378
|
-
%
|
379
|
-
%
|
380
|
-
%
|
381
|
-
%
|
382
|
-
%
|
383
|
-
%
|
384
|
-
%
|
385
|
-
%
|
386
|
-
%
|
387
|
-
%
|
388
|
-
%
|
389
|
-
%
|
390
|
-
%
|
391
|
-
%
|
392
|
-
%
|
393
|
-
%
|
394
|
-
%
|
395
|
-
%
|
396
|
-
%
|
397
|
-
%
|
398
|
-
%t496 = make_tuple(%
|
399
|
-
%t497 =
|
350
|
+
%t512 = call core.mod(%col_i_257, %t511) :: integer
|
351
|
+
%t513 = call core.add(%t512, %t511) :: integer
|
352
|
+
%t514 = call core.mod(%t513, %t511) :: integer
|
353
|
+
%t515 = gather %t510, %t514 :: integer
|
354
|
+
%t517 = select %t505, %t515, %t502 :: integer
|
355
|
+
%t532 = call core.mod(%col_i_257, %t531) :: integer
|
356
|
+
%t533 = call core.add(%t532, %t531) :: integer
|
357
|
+
%t534 = call core.mod(%t533, %t531) :: integer
|
358
|
+
%t535 = gather %t530, %t534 :: integer
|
359
|
+
%t537 = select %t525, %t535, %t502 :: integer
|
360
|
+
%t546 = call core.sub(%col_i_257, %t500) :: integer
|
361
|
+
%t548 = call core.gte(%t546, %t502) :: boolean
|
362
|
+
%t549 = call core.lt(%t546, %t544) :: boolean
|
363
|
+
%t550 = call core.and(%t548, %t549) :: boolean
|
364
|
+
%t554 = call core.clamp(%t546, %t502, %t552) :: integer
|
365
|
+
%t555 = gather %t543, %t554 :: integer
|
366
|
+
%t557 = select %t550, %t555, %t502 :: integer
|
367
|
+
%t566 = call core.sub(%col_i_257, %t506) :: integer
|
368
|
+
%t568 = call core.gte(%t566, %t502) :: boolean
|
369
|
+
%t569 = call core.lt(%t566, %t544) :: boolean
|
370
|
+
%t570 = call core.and(%t568, %t569) :: boolean
|
371
|
+
%t574 = call core.clamp(%t566, %t502, %t552) :: integer
|
372
|
+
%t575 = gather %t543, %t574 :: integer
|
373
|
+
%t577 = select %t570, %t575, %t502 :: integer
|
374
|
+
%t596 = call core.lt(%t546, %t511) :: boolean
|
375
|
+
%t597 = call core.and(%t548, %t596) :: boolean
|
376
|
+
%t598 = call core.and(%t505, %t597) :: boolean
|
377
|
+
%t602 = call core.clamp(%t546, %t502, %t600) :: integer
|
378
|
+
%t603 = gather %t510, %t602 :: integer
|
379
|
+
%t605 = select %t598, %t603, %t502 :: integer
|
380
|
+
%t624 = call core.lt(%t566, %t511) :: boolean
|
381
|
+
%t625 = call core.and(%t568, %t624) :: boolean
|
382
|
+
%t626 = call core.and(%t505, %t625) :: boolean
|
383
|
+
%t630 = call core.clamp(%t566, %t502, %t600) :: integer
|
384
|
+
%t631 = gather %t510, %t630 :: integer
|
385
|
+
%t633 = select %t626, %t631, %t502 :: integer
|
386
|
+
%t652 = call core.lt(%t546, %t531) :: boolean
|
387
|
+
%t653 = call core.and(%t548, %t652) :: boolean
|
388
|
+
%t654 = call core.and(%t525, %t653) :: boolean
|
389
|
+
%t658 = call core.clamp(%t546, %t502, %t656) :: integer
|
390
|
+
%t659 = gather %t530, %t658 :: integer
|
391
|
+
%t661 = select %t654, %t659, %t502 :: integer
|
392
|
+
%t680 = call core.lt(%t566, %t531) :: boolean
|
393
|
+
%t681 = call core.and(%t568, %t680) :: boolean
|
394
|
+
%t682 = call core.and(%t525, %t681) :: boolean
|
395
|
+
%t686 = call core.clamp(%t566, %t502, %t656) :: integer
|
396
|
+
%t687 = gather %t530, %t686 :: integer
|
397
|
+
%t689 = select %t682, %t687, %t502 :: integer
|
398
|
+
%t496 = make_tuple(%t517, %t537, %t557, %t577, %t605, %t633, %t661, %t689) :: tuple<integer>
|
399
|
+
%t497 = fold %t496 fn="agg.sum" ::
|
400
400
|
%t260 = call core.eq(%t497, %t259) :: boolean
|
401
401
|
yield %t260
|
402
402
|
end_loop
|
@@ -404,361 +404,361 @@
|
|
404
404
|
)
|
405
405
|
(Declaration n2_alive
|
406
406
|
%t261 = load_input "rows" :: array
|
407
|
-
%
|
408
|
-
%
|
409
|
-
%
|
410
|
-
%
|
407
|
+
%t702 = length %t261 :: integer
|
408
|
+
%t703 = const -1 :: integer
|
409
|
+
%t705 = const 0 :: integer
|
410
|
+
%t709 = const 1 :: integer
|
411
411
|
%t267 = const 2 :: integer
|
412
|
-
%
|
412
|
+
%t710 = call core.sub(%t702, %t709) :: integer
|
413
413
|
loop rows id=L25 in %t261 as el=%rows_el_262, idx=%rows_i_263
|
414
|
-
%
|
415
|
-
%
|
416
|
-
%
|
417
|
-
%
|
418
|
-
%
|
419
|
-
%
|
420
|
-
%
|
421
|
-
%
|
422
|
-
%
|
423
|
-
%
|
414
|
+
%t704 = call core.sub(%rows_i_263, %t703) :: integer
|
415
|
+
%t724 = call core.sub(%rows_i_263, %t709) :: integer
|
416
|
+
%t743 = call core.mod(%rows_i_263, %t702) :: integer
|
417
|
+
%t706 = call core.gte(%t704, %t705) :: boolean
|
418
|
+
%t707 = call core.lt(%t704, %t702) :: boolean
|
419
|
+
%t712 = call core.clamp(%t704, %t705, %t710) :: integer
|
420
|
+
%t726 = call core.gte(%t724, %t705) :: boolean
|
421
|
+
%t727 = call core.lt(%t724, %t702) :: boolean
|
422
|
+
%t732 = call core.clamp(%t724, %t705, %t710) :: integer
|
423
|
+
%t744 = call core.add(%t743, %t702) :: integer
|
424
|
+
%t708 = call core.and(%t706, %t707) :: boolean
|
425
|
+
%t713 = gather %t261, %t712 :: any
|
424
426
|
%t728 = call core.and(%t726, %t727) :: boolean
|
425
|
-
%t733 =
|
426
|
-
%
|
427
|
-
%
|
428
|
-
%
|
429
|
-
%
|
430
|
-
%
|
431
|
-
%
|
432
|
-
%
|
433
|
-
%
|
434
|
-
%t879 = call core.sub(%t754, %t729) :: integer
|
435
|
-
%t775 = call core.sub(%t767, %t729) :: integer
|
427
|
+
%t733 = gather %t261, %t732 :: any
|
428
|
+
%t745 = call core.mod(%t744, %t702) :: integer
|
429
|
+
%t714 = length %t713 :: integer
|
430
|
+
%t734 = length %t733 :: integer
|
431
|
+
%t746 = gather %t261, %t745 :: any
|
432
|
+
%t747 = length %t746 :: integer
|
433
|
+
%t803 = call core.sub(%t714, %t709) :: integer
|
434
|
+
%t859 = call core.sub(%t734, %t709) :: integer
|
435
|
+
%t755 = call core.sub(%t747, %t709) :: integer
|
436
436
|
loop col id=L26 in %rows_el_262 as el=%col_el_264, idx=%col_i_265
|
437
|
+
%t715 = call core.mod(%col_i_265, %t714) :: integer
|
438
|
+
%t716 = call core.add(%t715, %t714) :: integer
|
439
|
+
%t717 = call core.mod(%t716, %t714) :: integer
|
440
|
+
%t718 = gather %t713, %t717 :: integer
|
441
|
+
%t720 = select %t708, %t718, %t705 :: integer
|
437
442
|
%t735 = call core.mod(%col_i_265, %t734) :: integer
|
438
443
|
%t736 = call core.add(%t735, %t734) :: integer
|
439
444
|
%t737 = call core.mod(%t736, %t734) :: integer
|
440
|
-
%t738 =
|
441
|
-
%t740 = select %t728, %t738, %
|
442
|
-
%
|
443
|
-
%
|
444
|
-
%
|
445
|
-
%
|
446
|
-
%
|
447
|
-
%
|
448
|
-
%
|
449
|
-
%
|
445
|
+
%t738 = gather %t733, %t737 :: integer
|
446
|
+
%t740 = select %t728, %t738, %t705 :: integer
|
447
|
+
%t749 = call core.sub(%col_i_265, %t703) :: integer
|
448
|
+
%t751 = call core.gte(%t749, %t705) :: boolean
|
449
|
+
%t752 = call core.lt(%t749, %t747) :: boolean
|
450
|
+
%t753 = call core.and(%t751, %t752) :: boolean
|
451
|
+
%t757 = call core.clamp(%t749, %t705, %t755) :: integer
|
452
|
+
%t758 = gather %t746, %t757 :: integer
|
453
|
+
%t760 = select %t753, %t758, %t705 :: integer
|
454
|
+
%t769 = call core.sub(%col_i_265, %t709) :: integer
|
455
|
+
%t771 = call core.gte(%t769, %t705) :: boolean
|
456
|
+
%t772 = call core.lt(%t769, %t747) :: boolean
|
450
457
|
%t773 = call core.and(%t771, %t772) :: boolean
|
451
|
-
%t777 = call core.clamp(%t769, %
|
452
|
-
%t778 =
|
453
|
-
%t780 = select %t773, %t778, %
|
454
|
-
%
|
455
|
-
%
|
456
|
-
%
|
457
|
-
%
|
458
|
-
%
|
459
|
-
%
|
460
|
-
%
|
461
|
-
%
|
462
|
-
%
|
463
|
-
%
|
464
|
-
%
|
465
|
-
%
|
466
|
-
%
|
467
|
-
%
|
468
|
-
%
|
469
|
-
%
|
470
|
-
%
|
471
|
-
%
|
472
|
-
%
|
473
|
-
%
|
474
|
-
%
|
475
|
-
%
|
476
|
-
%
|
477
|
-
%
|
478
|
-
%
|
479
|
-
%
|
480
|
-
%
|
481
|
-
%t905 = call core.and(%t748, %t904) :: boolean
|
482
|
-
%t909 = call core.clamp(%t789, %t725, %t879) :: integer
|
483
|
-
%t910 = Gather %t753, %t909 :: integer
|
484
|
-
%t912 = select %t905, %t910, %t725 :: integer
|
485
|
-
%t507 = make_tuple(%t740, %t760, %t780, %t800, %t828, %t856, %t884, %t912) :: tuple<integer>
|
486
|
-
%t508 = Fold %t507 fn="agg.sum" ::
|
487
|
-
%t268 = call core.eq(%t508, %t267) :: boolean
|
458
|
+
%t777 = call core.clamp(%t769, %t705, %t755) :: integer
|
459
|
+
%t778 = gather %t746, %t777 :: integer
|
460
|
+
%t780 = select %t773, %t778, %t705 :: integer
|
461
|
+
%t799 = call core.lt(%t749, %t714) :: boolean
|
462
|
+
%t800 = call core.and(%t751, %t799) :: boolean
|
463
|
+
%t801 = call core.and(%t708, %t800) :: boolean
|
464
|
+
%t805 = call core.clamp(%t749, %t705, %t803) :: integer
|
465
|
+
%t806 = gather %t713, %t805 :: integer
|
466
|
+
%t808 = select %t801, %t806, %t705 :: integer
|
467
|
+
%t827 = call core.lt(%t769, %t714) :: boolean
|
468
|
+
%t828 = call core.and(%t771, %t827) :: boolean
|
469
|
+
%t829 = call core.and(%t708, %t828) :: boolean
|
470
|
+
%t833 = call core.clamp(%t769, %t705, %t803) :: integer
|
471
|
+
%t834 = gather %t713, %t833 :: integer
|
472
|
+
%t836 = select %t829, %t834, %t705 :: integer
|
473
|
+
%t855 = call core.lt(%t749, %t734) :: boolean
|
474
|
+
%t856 = call core.and(%t751, %t855) :: boolean
|
475
|
+
%t857 = call core.and(%t728, %t856) :: boolean
|
476
|
+
%t861 = call core.clamp(%t749, %t705, %t859) :: integer
|
477
|
+
%t862 = gather %t733, %t861 :: integer
|
478
|
+
%t864 = select %t857, %t862, %t705 :: integer
|
479
|
+
%t883 = call core.lt(%t769, %t734) :: boolean
|
480
|
+
%t884 = call core.and(%t771, %t883) :: boolean
|
481
|
+
%t885 = call core.and(%t728, %t884) :: boolean
|
482
|
+
%t889 = call core.clamp(%t769, %t705, %t859) :: integer
|
483
|
+
%t890 = gather %t733, %t889 :: integer
|
484
|
+
%t892 = select %t885, %t890, %t705 :: integer
|
485
|
+
%t699 = make_tuple(%t720, %t740, %t760, %t780, %t808, %t836, %t864, %t892) :: tuple<integer>
|
486
|
+
%t700 = fold %t699 fn="agg.sum" ::
|
487
|
+
%t268 = call core.eq(%t700, %t267) :: boolean
|
488
488
|
yield %t268
|
489
489
|
end_loop
|
490
490
|
end_loop
|
491
491
|
)
|
492
492
|
(Declaration keep_alive
|
493
493
|
%t269 = load_input "rows" :: array
|
494
|
-
%
|
495
|
-
%
|
496
|
-
%
|
497
|
-
%
|
498
|
-
%
|
499
|
-
%
|
494
|
+
%t909 = length %t269 :: integer
|
495
|
+
%t910 = const -1 :: integer
|
496
|
+
%t912 = const 0 :: integer
|
497
|
+
%t916 = const 1 :: integer
|
498
|
+
%t895 = const 2 :: integer
|
499
|
+
%t917 = call core.sub(%t909, %t916) :: integer
|
500
500
|
loop rows id=L27 in %t269 as el=%rows_el_270, idx=%rows_i_271
|
501
|
-
%
|
502
|
-
%
|
503
|
-
%
|
504
|
-
%
|
505
|
-
%
|
506
|
-
%
|
507
|
-
%
|
508
|
-
%
|
509
|
-
%
|
510
|
-
%
|
511
|
-
%
|
512
|
-
%
|
513
|
-
%
|
514
|
-
%
|
515
|
-
%
|
516
|
-
%
|
517
|
-
%
|
518
|
-
%
|
519
|
-
%
|
520
|
-
%
|
521
|
-
%
|
522
|
-
%
|
501
|
+
%t911 = call core.sub(%rows_i_271, %t910) :: integer
|
502
|
+
%t931 = call core.sub(%rows_i_271, %t916) :: integer
|
503
|
+
%t950 = call core.mod(%rows_i_271, %t909) :: integer
|
504
|
+
%t913 = call core.gte(%t911, %t912) :: boolean
|
505
|
+
%t914 = call core.lt(%t911, %t909) :: boolean
|
506
|
+
%t919 = call core.clamp(%t911, %t912, %t917) :: integer
|
507
|
+
%t933 = call core.gte(%t931, %t912) :: boolean
|
508
|
+
%t934 = call core.lt(%t931, %t909) :: boolean
|
509
|
+
%t939 = call core.clamp(%t931, %t912, %t917) :: integer
|
510
|
+
%t951 = call core.add(%t950, %t909) :: integer
|
511
|
+
%t915 = call core.and(%t913, %t914) :: boolean
|
512
|
+
%t920 = gather %t269, %t919 :: any
|
513
|
+
%t935 = call core.and(%t933, %t934) :: boolean
|
514
|
+
%t940 = gather %t269, %t939 :: any
|
515
|
+
%t952 = call core.mod(%t951, %t909) :: integer
|
516
|
+
%t921 = length %t920 :: integer
|
517
|
+
%t941 = length %t940 :: integer
|
518
|
+
%t953 = gather %t269, %t952 :: any
|
519
|
+
%t954 = length %t953 :: integer
|
520
|
+
%t1010 = call core.sub(%t921, %t916) :: integer
|
521
|
+
%t1066 = call core.sub(%t941, %t916) :: integer
|
522
|
+
%t962 = call core.sub(%t954, %t916) :: integer
|
523
523
|
loop col id=L28 in %rows_el_270 as el=%col_el_272, idx=%col_i_273
|
524
|
-
%
|
525
|
-
%
|
526
|
-
%
|
527
|
-
%
|
528
|
-
%
|
529
|
-
%
|
530
|
-
%
|
531
|
-
%
|
532
|
-
%
|
533
|
-
%
|
534
|
-
%
|
535
|
-
%
|
536
|
-
%
|
537
|
-
%
|
538
|
-
%
|
539
|
-
%
|
540
|
-
%
|
541
|
-
%
|
542
|
-
%
|
543
|
-
%
|
544
|
-
%
|
545
|
-
%
|
546
|
-
%
|
547
|
-
%
|
548
|
-
%
|
549
|
-
%
|
550
|
-
%
|
551
|
-
%
|
552
|
-
%
|
553
|
-
%
|
554
|
-
%
|
555
|
-
%
|
556
|
-
%
|
557
|
-
%
|
558
|
-
%
|
559
|
-
%
|
560
|
-
%
|
561
|
-
%
|
562
|
-
%
|
563
|
-
%
|
564
|
-
%
|
565
|
-
%
|
566
|
-
%
|
567
|
-
%
|
568
|
-
%
|
569
|
-
%
|
570
|
-
%
|
571
|
-
%
|
572
|
-
%
|
573
|
-
%
|
574
|
-
%
|
575
|
-
%
|
576
|
-
%t276 = call core.and(%
|
524
|
+
%t922 = call core.mod(%col_i_273, %t921) :: integer
|
525
|
+
%t923 = call core.add(%t922, %t921) :: integer
|
526
|
+
%t924 = call core.mod(%t923, %t921) :: integer
|
527
|
+
%t925 = gather %t920, %t924 :: integer
|
528
|
+
%t927 = select %t915, %t925, %t912 :: integer
|
529
|
+
%t942 = call core.mod(%col_i_273, %t941) :: integer
|
530
|
+
%t943 = call core.add(%t942, %t941) :: integer
|
531
|
+
%t944 = call core.mod(%t943, %t941) :: integer
|
532
|
+
%t945 = gather %t940, %t944 :: integer
|
533
|
+
%t947 = select %t935, %t945, %t912 :: integer
|
534
|
+
%t956 = call core.sub(%col_i_273, %t910) :: integer
|
535
|
+
%t958 = call core.gte(%t956, %t912) :: boolean
|
536
|
+
%t959 = call core.lt(%t956, %t954) :: boolean
|
537
|
+
%t960 = call core.and(%t958, %t959) :: boolean
|
538
|
+
%t964 = call core.clamp(%t956, %t912, %t962) :: integer
|
539
|
+
%t965 = gather %t953, %t964 :: integer
|
540
|
+
%t967 = select %t960, %t965, %t912 :: integer
|
541
|
+
%t976 = call core.sub(%col_i_273, %t916) :: integer
|
542
|
+
%t978 = call core.gte(%t976, %t912) :: boolean
|
543
|
+
%t979 = call core.lt(%t976, %t954) :: boolean
|
544
|
+
%t980 = call core.and(%t978, %t979) :: boolean
|
545
|
+
%t984 = call core.clamp(%t976, %t912, %t962) :: integer
|
546
|
+
%t985 = gather %t953, %t984 :: integer
|
547
|
+
%t987 = select %t980, %t985, %t912 :: integer
|
548
|
+
%t1006 = call core.lt(%t956, %t921) :: boolean
|
549
|
+
%t1007 = call core.and(%t958, %t1006) :: boolean
|
550
|
+
%t1008 = call core.and(%t915, %t1007) :: boolean
|
551
|
+
%t1012 = call core.clamp(%t956, %t912, %t1010) :: integer
|
552
|
+
%t1013 = gather %t920, %t1012 :: integer
|
553
|
+
%t1015 = select %t1008, %t1013, %t912 :: integer
|
554
|
+
%t1034 = call core.lt(%t976, %t921) :: boolean
|
555
|
+
%t1035 = call core.and(%t978, %t1034) :: boolean
|
556
|
+
%t1036 = call core.and(%t915, %t1035) :: boolean
|
557
|
+
%t1040 = call core.clamp(%t976, %t912, %t1010) :: integer
|
558
|
+
%t1041 = gather %t920, %t1040 :: integer
|
559
|
+
%t1043 = select %t1036, %t1041, %t912 :: integer
|
560
|
+
%t1062 = call core.lt(%t956, %t941) :: boolean
|
561
|
+
%t1063 = call core.and(%t958, %t1062) :: boolean
|
562
|
+
%t1064 = call core.and(%t935, %t1063) :: boolean
|
563
|
+
%t1068 = call core.clamp(%t956, %t912, %t1066) :: integer
|
564
|
+
%t1069 = gather %t940, %t1068 :: integer
|
565
|
+
%t1071 = select %t1064, %t1069, %t912 :: integer
|
566
|
+
%t1090 = call core.lt(%t976, %t941) :: boolean
|
567
|
+
%t1091 = call core.and(%t978, %t1090) :: boolean
|
568
|
+
%t1092 = call core.and(%t935, %t1091) :: boolean
|
569
|
+
%t1096 = call core.clamp(%t976, %t912, %t1066) :: integer
|
570
|
+
%t1097 = gather %t940, %t1096 :: integer
|
571
|
+
%t1099 = select %t1092, %t1097, %t912 :: integer
|
572
|
+
%t906 = make_tuple(%t927, %t947, %t967, %t987, %t1015, %t1043, %t1071, %t1099) :: tuple<integer>
|
573
|
+
%t907 = fold %t906 fn="agg.sum" ::
|
574
|
+
%t896 = call core.eq(%t907, %t895) :: boolean
|
575
|
+
%t1103 = call core.gt(%col_el_272, %t912) :: boolean
|
576
|
+
%t276 = call core.and(%t896, %t1103) :: boolean
|
577
577
|
yield %t276
|
578
578
|
end_loop
|
579
579
|
end_loop
|
580
580
|
)
|
581
581
|
(Declaration next_alive
|
582
582
|
%t277 = load_input "rows" :: array
|
583
|
-
%
|
584
|
-
%
|
585
|
-
%
|
586
|
-
%
|
587
|
-
%
|
588
|
-
%
|
589
|
-
%
|
583
|
+
%t1121 = length %t277 :: integer
|
584
|
+
%t1122 = const -1 :: integer
|
585
|
+
%t1124 = const 0 :: integer
|
586
|
+
%t1128 = const 1 :: integer
|
587
|
+
%t1107 = const 3 :: integer
|
588
|
+
%t1318 = const 2 :: integer
|
589
|
+
%t1129 = call core.sub(%t1121, %t1128) :: integer
|
590
590
|
loop rows id=L29 in %t277 as el=%rows_el_278, idx=%rows_i_279
|
591
|
-
%
|
592
|
-
%
|
593
|
-
%
|
594
|
-
%
|
595
|
-
%
|
596
|
-
%
|
597
|
-
%
|
598
|
-
%
|
599
|
-
%
|
600
|
-
%
|
601
|
-
%
|
602
|
-
%
|
603
|
-
%
|
604
|
-
%
|
605
|
-
%
|
606
|
-
%
|
607
|
-
%
|
608
|
-
%
|
609
|
-
%
|
610
|
-
%
|
611
|
-
%
|
612
|
-
%
|
591
|
+
%t1123 = call core.sub(%rows_i_279, %t1122) :: integer
|
592
|
+
%t1143 = call core.sub(%rows_i_279, %t1128) :: integer
|
593
|
+
%t1162 = call core.mod(%rows_i_279, %t1121) :: integer
|
594
|
+
%t1125 = call core.gte(%t1123, %t1124) :: boolean
|
595
|
+
%t1126 = call core.lt(%t1123, %t1121) :: boolean
|
596
|
+
%t1131 = call core.clamp(%t1123, %t1124, %t1129) :: integer
|
597
|
+
%t1145 = call core.gte(%t1143, %t1124) :: boolean
|
598
|
+
%t1146 = call core.lt(%t1143, %t1121) :: boolean
|
599
|
+
%t1151 = call core.clamp(%t1143, %t1124, %t1129) :: integer
|
600
|
+
%t1163 = call core.add(%t1162, %t1121) :: integer
|
601
|
+
%t1127 = call core.and(%t1125, %t1126) :: boolean
|
602
|
+
%t1132 = gather %t277, %t1131 :: any
|
603
|
+
%t1147 = call core.and(%t1145, %t1146) :: boolean
|
604
|
+
%t1152 = gather %t277, %t1151 :: any
|
605
|
+
%t1164 = call core.mod(%t1163, %t1121) :: integer
|
606
|
+
%t1133 = length %t1132 :: integer
|
607
|
+
%t1153 = length %t1152 :: integer
|
608
|
+
%t1165 = gather %t277, %t1164 :: any
|
609
|
+
%t1166 = length %t1165 :: integer
|
610
|
+
%t1222 = call core.sub(%t1133, %t1128) :: integer
|
611
|
+
%t1278 = call core.sub(%t1153, %t1128) :: integer
|
612
|
+
%t1174 = call core.sub(%t1166, %t1128) :: integer
|
613
613
|
loop col id=L30 in %rows_el_278 as el=%col_el_280, idx=%col_i_281
|
614
|
-
%
|
615
|
-
%
|
616
|
-
%
|
617
|
-
%
|
618
|
-
%
|
619
|
-
%
|
620
|
-
%
|
621
|
-
%
|
622
|
-
%
|
623
|
-
%
|
624
|
-
%
|
625
|
-
%
|
626
|
-
%
|
627
|
-
%
|
628
|
-
%
|
629
|
-
%
|
630
|
-
%
|
631
|
-
%
|
632
|
-
%
|
633
|
-
%
|
634
|
-
%
|
635
|
-
%
|
636
|
-
%
|
637
|
-
%
|
638
|
-
%
|
639
|
-
%
|
640
|
-
%
|
641
|
-
%
|
642
|
-
%
|
643
|
-
%
|
644
|
-
%
|
645
|
-
%
|
646
|
-
%
|
647
|
-
%
|
648
|
-
%
|
649
|
-
%
|
650
|
-
%
|
651
|
-
%
|
652
|
-
%
|
653
|
-
%
|
654
|
-
%
|
655
|
-
%
|
656
|
-
%
|
657
|
-
%
|
658
|
-
%
|
659
|
-
%
|
660
|
-
%
|
661
|
-
%
|
662
|
-
%
|
663
|
-
%
|
664
|
-
%
|
665
|
-
%
|
666
|
-
%
|
667
|
-
%
|
668
|
-
%t284 = call core.or(%
|
614
|
+
%t1134 = call core.mod(%col_i_281, %t1133) :: integer
|
615
|
+
%t1135 = call core.add(%t1134, %t1133) :: integer
|
616
|
+
%t1136 = call core.mod(%t1135, %t1133) :: integer
|
617
|
+
%t1137 = gather %t1132, %t1136 :: integer
|
618
|
+
%t1139 = select %t1127, %t1137, %t1124 :: integer
|
619
|
+
%t1154 = call core.mod(%col_i_281, %t1153) :: integer
|
620
|
+
%t1155 = call core.add(%t1154, %t1153) :: integer
|
621
|
+
%t1156 = call core.mod(%t1155, %t1153) :: integer
|
622
|
+
%t1157 = gather %t1152, %t1156 :: integer
|
623
|
+
%t1159 = select %t1147, %t1157, %t1124 :: integer
|
624
|
+
%t1168 = call core.sub(%col_i_281, %t1122) :: integer
|
625
|
+
%t1170 = call core.gte(%t1168, %t1124) :: boolean
|
626
|
+
%t1171 = call core.lt(%t1168, %t1166) :: boolean
|
627
|
+
%t1172 = call core.and(%t1170, %t1171) :: boolean
|
628
|
+
%t1176 = call core.clamp(%t1168, %t1124, %t1174) :: integer
|
629
|
+
%t1177 = gather %t1165, %t1176 :: integer
|
630
|
+
%t1179 = select %t1172, %t1177, %t1124 :: integer
|
631
|
+
%t1188 = call core.sub(%col_i_281, %t1128) :: integer
|
632
|
+
%t1190 = call core.gte(%t1188, %t1124) :: boolean
|
633
|
+
%t1191 = call core.lt(%t1188, %t1166) :: boolean
|
634
|
+
%t1192 = call core.and(%t1190, %t1191) :: boolean
|
635
|
+
%t1196 = call core.clamp(%t1188, %t1124, %t1174) :: integer
|
636
|
+
%t1197 = gather %t1165, %t1196 :: integer
|
637
|
+
%t1199 = select %t1192, %t1197, %t1124 :: integer
|
638
|
+
%t1218 = call core.lt(%t1168, %t1133) :: boolean
|
639
|
+
%t1219 = call core.and(%t1170, %t1218) :: boolean
|
640
|
+
%t1220 = call core.and(%t1127, %t1219) :: boolean
|
641
|
+
%t1224 = call core.clamp(%t1168, %t1124, %t1222) :: integer
|
642
|
+
%t1225 = gather %t1132, %t1224 :: integer
|
643
|
+
%t1227 = select %t1220, %t1225, %t1124 :: integer
|
644
|
+
%t1246 = call core.lt(%t1188, %t1133) :: boolean
|
645
|
+
%t1247 = call core.and(%t1190, %t1246) :: boolean
|
646
|
+
%t1248 = call core.and(%t1127, %t1247) :: boolean
|
647
|
+
%t1252 = call core.clamp(%t1188, %t1124, %t1222) :: integer
|
648
|
+
%t1253 = gather %t1132, %t1252 :: integer
|
649
|
+
%t1255 = select %t1248, %t1253, %t1124 :: integer
|
650
|
+
%t1274 = call core.lt(%t1168, %t1153) :: boolean
|
651
|
+
%t1275 = call core.and(%t1170, %t1274) :: boolean
|
652
|
+
%t1276 = call core.and(%t1147, %t1275) :: boolean
|
653
|
+
%t1280 = call core.clamp(%t1168, %t1124, %t1278) :: integer
|
654
|
+
%t1281 = gather %t1152, %t1280 :: integer
|
655
|
+
%t1283 = select %t1276, %t1281, %t1124 :: integer
|
656
|
+
%t1302 = call core.lt(%t1188, %t1153) :: boolean
|
657
|
+
%t1303 = call core.and(%t1190, %t1302) :: boolean
|
658
|
+
%t1304 = call core.and(%t1147, %t1303) :: boolean
|
659
|
+
%t1308 = call core.clamp(%t1188, %t1124, %t1278) :: integer
|
660
|
+
%t1309 = gather %t1152, %t1308 :: integer
|
661
|
+
%t1311 = select %t1304, %t1309, %t1124 :: integer
|
662
|
+
%t1118 = make_tuple(%t1139, %t1159, %t1179, %t1199, %t1227, %t1255, %t1283, %t1311) :: tuple<integer>
|
663
|
+
%t1119 = fold %t1118 fn="agg.sum" ::
|
664
|
+
%t1108 = call core.eq(%t1119, %t1107) :: boolean
|
665
|
+
%t1319 = call core.eq(%t1119, %t1318) :: boolean
|
666
|
+
%t1526 = call core.gt(%col_el_280, %t1124) :: boolean
|
667
|
+
%t1315 = call core.and(%t1319, %t1526) :: boolean
|
668
|
+
%t284 = call core.or(%t1108, %t1315) :: boolean
|
669
669
|
yield %t284
|
670
670
|
end_loop
|
671
671
|
end_loop
|
672
672
|
)
|
673
673
|
(Declaration next_state
|
674
674
|
%t285 = load_input "rows" :: array
|
675
|
-
%
|
676
|
-
%
|
677
|
-
%
|
678
|
-
%
|
679
|
-
%
|
680
|
-
%
|
681
|
-
%
|
675
|
+
%t1548 = length %t285 :: integer
|
676
|
+
%t1549 = const -1 :: integer
|
677
|
+
%t1551 = const 0 :: integer
|
678
|
+
%t1555 = const 1 :: integer
|
679
|
+
%t1534 = const 3 :: integer
|
680
|
+
%t1745 = const 2 :: integer
|
681
|
+
%t1556 = call core.sub(%t1548, %t1555) :: integer
|
682
682
|
loop rows id=L31 in %t285 as el=%rows_el_286, idx=%rows_i_287
|
683
|
-
%
|
684
|
-
%
|
685
|
-
%
|
686
|
-
%
|
687
|
-
%
|
688
|
-
%
|
689
|
-
%
|
690
|
-
%
|
691
|
-
%
|
692
|
-
%
|
693
|
-
%
|
694
|
-
%
|
695
|
-
%
|
696
|
-
%
|
697
|
-
%
|
698
|
-
%
|
699
|
-
%
|
700
|
-
%
|
701
|
-
%
|
702
|
-
%
|
703
|
-
%
|
704
|
-
%
|
683
|
+
%t1550 = call core.sub(%rows_i_287, %t1549) :: integer
|
684
|
+
%t1570 = call core.sub(%rows_i_287, %t1555) :: integer
|
685
|
+
%t1589 = call core.mod(%rows_i_287, %t1548) :: integer
|
686
|
+
%t1552 = call core.gte(%t1550, %t1551) :: boolean
|
687
|
+
%t1553 = call core.lt(%t1550, %t1548) :: boolean
|
688
|
+
%t1558 = call core.clamp(%t1550, %t1551, %t1556) :: integer
|
689
|
+
%t1572 = call core.gte(%t1570, %t1551) :: boolean
|
690
|
+
%t1573 = call core.lt(%t1570, %t1548) :: boolean
|
691
|
+
%t1578 = call core.clamp(%t1570, %t1551, %t1556) :: integer
|
692
|
+
%t1590 = call core.add(%t1589, %t1548) :: integer
|
693
|
+
%t1554 = call core.and(%t1552, %t1553) :: boolean
|
694
|
+
%t1559 = gather %t285, %t1558 :: any
|
695
|
+
%t1574 = call core.and(%t1572, %t1573) :: boolean
|
696
|
+
%t1579 = gather %t285, %t1578 :: any
|
697
|
+
%t1591 = call core.mod(%t1590, %t1548) :: integer
|
698
|
+
%t1560 = length %t1559 :: integer
|
699
|
+
%t1580 = length %t1579 :: integer
|
700
|
+
%t1592 = gather %t285, %t1591 :: any
|
701
|
+
%t1593 = length %t1592 :: integer
|
702
|
+
%t1649 = call core.sub(%t1560, %t1555) :: integer
|
703
|
+
%t1705 = call core.sub(%t1580, %t1555) :: integer
|
704
|
+
%t1601 = call core.sub(%t1593, %t1555) :: integer
|
705
705
|
loop col id=L32 in %rows_el_286 as el=%col_el_288, idx=%col_i_289
|
706
|
-
%
|
707
|
-
%
|
708
|
-
%
|
709
|
-
%
|
710
|
-
%
|
711
|
-
%
|
712
|
-
%
|
713
|
-
%
|
714
|
-
%
|
715
|
-
%
|
716
|
-
%
|
717
|
-
%
|
718
|
-
%
|
719
|
-
%
|
720
|
-
%
|
721
|
-
%
|
722
|
-
%
|
723
|
-
%
|
724
|
-
%
|
725
|
-
%
|
726
|
-
%
|
727
|
-
%
|
728
|
-
%
|
729
|
-
%
|
730
|
-
%
|
731
|
-
%
|
732
|
-
%
|
733
|
-
%
|
734
|
-
%
|
735
|
-
%
|
736
|
-
%
|
737
|
-
%
|
738
|
-
%
|
739
|
-
%
|
740
|
-
%
|
741
|
-
%
|
742
|
-
%
|
743
|
-
%
|
744
|
-
%
|
745
|
-
%
|
746
|
-
%
|
747
|
-
%
|
748
|
-
%
|
749
|
-
%
|
750
|
-
%
|
751
|
-
%
|
752
|
-
%
|
753
|
-
%
|
754
|
-
%
|
755
|
-
%
|
756
|
-
%
|
757
|
-
%
|
758
|
-
%
|
759
|
-
%
|
760
|
-
%
|
761
|
-
%t293 = select %
|
706
|
+
%t1561 = call core.mod(%col_i_289, %t1560) :: integer
|
707
|
+
%t1562 = call core.add(%t1561, %t1560) :: integer
|
708
|
+
%t1563 = call core.mod(%t1562, %t1560) :: integer
|
709
|
+
%t1564 = gather %t1559, %t1563 :: integer
|
710
|
+
%t1566 = select %t1554, %t1564, %t1551 :: integer
|
711
|
+
%t1581 = call core.mod(%col_i_289, %t1580) :: integer
|
712
|
+
%t1582 = call core.add(%t1581, %t1580) :: integer
|
713
|
+
%t1583 = call core.mod(%t1582, %t1580) :: integer
|
714
|
+
%t1584 = gather %t1579, %t1583 :: integer
|
715
|
+
%t1586 = select %t1574, %t1584, %t1551 :: integer
|
716
|
+
%t1595 = call core.sub(%col_i_289, %t1549) :: integer
|
717
|
+
%t1597 = call core.gte(%t1595, %t1551) :: boolean
|
718
|
+
%t1598 = call core.lt(%t1595, %t1593) :: boolean
|
719
|
+
%t1599 = call core.and(%t1597, %t1598) :: boolean
|
720
|
+
%t1603 = call core.clamp(%t1595, %t1551, %t1601) :: integer
|
721
|
+
%t1604 = gather %t1592, %t1603 :: integer
|
722
|
+
%t1606 = select %t1599, %t1604, %t1551 :: integer
|
723
|
+
%t1615 = call core.sub(%col_i_289, %t1555) :: integer
|
724
|
+
%t1617 = call core.gte(%t1615, %t1551) :: boolean
|
725
|
+
%t1618 = call core.lt(%t1615, %t1593) :: boolean
|
726
|
+
%t1619 = call core.and(%t1617, %t1618) :: boolean
|
727
|
+
%t1623 = call core.clamp(%t1615, %t1551, %t1601) :: integer
|
728
|
+
%t1624 = gather %t1592, %t1623 :: integer
|
729
|
+
%t1626 = select %t1619, %t1624, %t1551 :: integer
|
730
|
+
%t1645 = call core.lt(%t1595, %t1560) :: boolean
|
731
|
+
%t1646 = call core.and(%t1597, %t1645) :: boolean
|
732
|
+
%t1647 = call core.and(%t1554, %t1646) :: boolean
|
733
|
+
%t1651 = call core.clamp(%t1595, %t1551, %t1649) :: integer
|
734
|
+
%t1652 = gather %t1559, %t1651 :: integer
|
735
|
+
%t1654 = select %t1647, %t1652, %t1551 :: integer
|
736
|
+
%t1673 = call core.lt(%t1615, %t1560) :: boolean
|
737
|
+
%t1674 = call core.and(%t1617, %t1673) :: boolean
|
738
|
+
%t1675 = call core.and(%t1554, %t1674) :: boolean
|
739
|
+
%t1679 = call core.clamp(%t1615, %t1551, %t1649) :: integer
|
740
|
+
%t1680 = gather %t1559, %t1679 :: integer
|
741
|
+
%t1682 = select %t1675, %t1680, %t1551 :: integer
|
742
|
+
%t1701 = call core.lt(%t1595, %t1580) :: boolean
|
743
|
+
%t1702 = call core.and(%t1597, %t1701) :: boolean
|
744
|
+
%t1703 = call core.and(%t1574, %t1702) :: boolean
|
745
|
+
%t1707 = call core.clamp(%t1595, %t1551, %t1705) :: integer
|
746
|
+
%t1708 = gather %t1579, %t1707 :: integer
|
747
|
+
%t1710 = select %t1703, %t1708, %t1551 :: integer
|
748
|
+
%t1729 = call core.lt(%t1615, %t1580) :: boolean
|
749
|
+
%t1730 = call core.and(%t1617, %t1729) :: boolean
|
750
|
+
%t1731 = call core.and(%t1574, %t1730) :: boolean
|
751
|
+
%t1735 = call core.clamp(%t1615, %t1551, %t1705) :: integer
|
752
|
+
%t1736 = gather %t1579, %t1735 :: integer
|
753
|
+
%t1738 = select %t1731, %t1736, %t1551 :: integer
|
754
|
+
%t1545 = make_tuple(%t1566, %t1586, %t1606, %t1626, %t1654, %t1682, %t1710, %t1738) :: tuple<integer>
|
755
|
+
%t1546 = fold %t1545 fn="agg.sum" ::
|
756
|
+
%t1535 = call core.eq(%t1546, %t1534) :: boolean
|
757
|
+
%t1746 = call core.eq(%t1546, %t1745) :: boolean
|
758
|
+
%t1953 = call core.gt(%col_el_288, %t1551) :: boolean
|
759
|
+
%t1742 = call core.and(%t1746, %t1953) :: boolean
|
760
|
+
%t1531 = call core.or(%t1535, %t1742) :: boolean
|
761
|
+
%t293 = select %t1531, %t1555, %t1551 :: integer
|
762
762
|
yield %t293
|
763
763
|
end_loop
|
764
764
|
end_loop
|