kumi 0.0.23 → 0.0.24
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 +3 -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/schema_ruby.rb +1 -1
- data/golden/chained_fusion/expected/schema_ruby.rb +1 -1
- data/golden/element_arrays/expected/schema_ruby.rb +1 -1
- data/golden/empty_and_null_inputs/expected/schema_ruby.rb +1 -1
- 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 +296 -296
- data/golden/game_of_life/expected/lir_03_cse.txt +128 -128
- data/golden/game_of_life/expected/lir_04_1_loop_fusion.txt +128 -128
- data/golden/game_of_life/expected/lir_04_loop_invcm.txt +128 -128
- data/golden/game_of_life/expected/lir_06_const_prop.txt +128 -128
- data/golden/game_of_life/expected/schema_ruby.rb +1 -1
- 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/schema_ruby.rb +1 -1
- 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/schema_ruby.rb +1 -1
- data/golden/let_inline/expected/schema_ruby.rb +1 -1
- data/golden/loop_fusion/expected/schema_ruby.rb +1 -1
- data/golden/min_reduce_scope/expected/schema_ruby.rb +1 -1
- data/golden/mixed_dimensions/expected/schema_ruby.rb +1 -1
- data/golden/multirank_hoisting/expected/schema_ruby.rb +1 -1
- data/golden/nested_hash/expected/schema_ruby.rb +1 -1
- data/golden/reduction_broadcast/expected/schema_ruby.rb +1 -1
- 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/schema_ruby.rb +1 -1
- 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 +2 -2
- data/golden/tuples_and_arrays/expected/lir_03_cse.txt +2 -2
- data/golden/tuples_and_arrays/expected/lir_04_1_loop_fusion.txt +2 -2
- data/golden/tuples_and_arrays/expected/lir_04_loop_invcm.txt +2 -2
- data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +2 -2
- data/golden/tuples_and_arrays/expected/schema_ruby.rb +1 -1
- 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 +2439 -0
- data/golden/us_tax_2024/expected/lir_06_const_prop.txt +2439 -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 +181 -105
- data/lib/kumi/version.rb +1 -1
- metadata +33 -1
@@ -11,7 +11,7 @@
|
|
11
11
|
%t6 = load_input "rows" :: array
|
12
12
|
loop rows id=L3 in %t6 as el=%rows_el_7, idx=%rows_i_8
|
13
13
|
loop col id=L4 in %rows_el_7 as el=%col_el_9, idx=%col_i_10
|
14
|
-
%t11 =
|
14
|
+
%t11 = length %t6 :: integer
|
15
15
|
%t12 = const -1 :: integer
|
16
16
|
%t13 = call core.sub(%rows_i_8, %t12) :: integer
|
17
17
|
%t14 = const 0 :: integer
|
@@ -21,12 +21,12 @@
|
|
21
21
|
%t18 = const 1 :: integer
|
22
22
|
%t19 = call core.sub(%t11, %t18) :: integer
|
23
23
|
%t21 = call core.clamp(%t13, %t14, %t19) :: integer
|
24
|
-
%t22 =
|
25
|
-
%t23 =
|
24
|
+
%t22 = gather %t6, %t21 :: any
|
25
|
+
%t23 = length %t22 :: integer
|
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
|
@@ -36,7 +36,7 @@
|
|
36
36
|
%t30 = load_input "rows" :: array
|
37
37
|
loop rows id=L5 in %t30 as el=%rows_el_31, idx=%rows_i_32
|
38
38
|
loop col id=L6 in %rows_el_31 as el=%col_el_33, idx=%col_i_34
|
39
|
-
%t35 =
|
39
|
+
%t35 = length %t30 :: integer
|
40
40
|
%t36 = const 1 :: integer
|
41
41
|
%t37 = call core.sub(%rows_i_32, %t36) :: integer
|
42
42
|
%t38 = const 0 :: integer
|
@@ -45,12 +45,12 @@
|
|
45
45
|
%t41 = call core.and(%t39, %t40) :: boolean
|
46
46
|
%t43 = call core.sub(%t35, %t36) :: integer
|
47
47
|
%t45 = call core.clamp(%t37, %t38, %t43) :: integer
|
48
|
-
%t46 =
|
49
|
-
%t47 =
|
48
|
+
%t46 = gather %t30, %t45 :: any
|
49
|
+
%t47 = length %t46 :: integer
|
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
|
@@ -60,12 +60,12 @@
|
|
60
60
|
%t54 = load_input "rows" :: array
|
61
61
|
loop rows id=L7 in %t54 as el=%rows_el_55, idx=%rows_i_56
|
62
62
|
loop col id=L8 in %rows_el_55 as el=%col_el_57, idx=%col_i_58
|
63
|
-
%t59 =
|
63
|
+
%t59 = length %t54 :: integer
|
64
64
|
%t60 = call core.mod(%rows_i_56, %t59) :: integer
|
65
65
|
%t61 = call core.add(%t60, %t59) :: integer
|
66
66
|
%t62 = call core.mod(%t61, %t59) :: integer
|
67
|
-
%t63 =
|
68
|
-
%t64 =
|
67
|
+
%t63 = gather %t54, %t62 :: any
|
68
|
+
%t64 = length %t63 :: integer
|
69
69
|
%t65 = const -1 :: integer
|
70
70
|
%t66 = call core.sub(%col_i_58, %t65) :: integer
|
71
71
|
%t67 = const 0 :: integer
|
@@ -75,7 +75,7 @@
|
|
75
75
|
%t71 = const 1 :: integer
|
76
76
|
%t72 = call core.sub(%t64, %t71) :: integer
|
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
|
@@ -85,12 +85,12 @@
|
|
85
85
|
%t78 = load_input "rows" :: array
|
86
86
|
loop rows id=L9 in %t78 as el=%rows_el_79, idx=%rows_i_80
|
87
87
|
loop col id=L10 in %rows_el_79 as el=%col_el_81, idx=%col_i_82
|
88
|
-
%t83 =
|
88
|
+
%t83 = length %t78 :: integer
|
89
89
|
%t84 = call core.mod(%rows_i_80, %t83) :: integer
|
90
90
|
%t85 = call core.add(%t84, %t83) :: integer
|
91
91
|
%t86 = call core.mod(%t85, %t83) :: integer
|
92
|
-
%t87 =
|
93
|
-
%t88 =
|
92
|
+
%t87 = gather %t78, %t86 :: any
|
93
|
+
%t88 = length %t87 :: integer
|
94
94
|
%t89 = const 1 :: integer
|
95
95
|
%t90 = call core.sub(%col_i_82, %t89) :: integer
|
96
96
|
%t91 = const 0 :: integer
|
@@ -99,7 +99,7 @@
|
|
99
99
|
%t94 = call core.and(%t92, %t93) :: boolean
|
100
100
|
%t96 = call core.sub(%t88, %t89) :: integer
|
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
|
@@ -109,7 +109,7 @@
|
|
109
109
|
%t102 = load_input "rows" :: array
|
110
110
|
loop rows id=L11 in %t102 as el=%rows_el_103, idx=%rows_i_104
|
111
111
|
loop col id=L12 in %rows_el_103 as el=%col_el_105, idx=%col_i_106
|
112
|
-
%t107 =
|
112
|
+
%t107 = length %t102 :: integer
|
113
113
|
%t108 = const -1 :: integer
|
114
114
|
%t109 = call core.sub(%rows_i_104, %t108) :: integer
|
115
115
|
%t110 = const 0 :: integer
|
@@ -119,8 +119,8 @@
|
|
119
119
|
%t114 = const 1 :: integer
|
120
120
|
%t115 = call core.sub(%t107, %t114) :: integer
|
121
121
|
%t117 = call core.clamp(%t109, %t110, %t115) :: integer
|
122
|
-
%t118 =
|
123
|
-
%t119 =
|
122
|
+
%t118 = gather %t102, %t117 :: any
|
123
|
+
%t119 = length %t118 :: integer
|
124
124
|
%t121 = call core.sub(%col_i_106, %t108) :: integer
|
125
125
|
%t123 = call core.gte(%t121, %t110) :: boolean
|
126
126
|
%t124 = call core.lt(%t121, %t119) :: boolean
|
@@ -128,7 +128,7 @@
|
|
128
128
|
%t126 = call core.and(%t113, %t125) :: boolean
|
129
129
|
%t128 = call core.sub(%t119, %t114) :: integer
|
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
|
@@ -138,7 +138,7 @@
|
|
138
138
|
%t134 = load_input "rows" :: array
|
139
139
|
loop rows id=L13 in %t134 as el=%rows_el_135, idx=%rows_i_136
|
140
140
|
loop col id=L14 in %rows_el_135 as el=%col_el_137, idx=%col_i_138
|
141
|
-
%t139 =
|
141
|
+
%t139 = length %t134 :: integer
|
142
142
|
%t140 = const -1 :: integer
|
143
143
|
%t141 = call core.sub(%rows_i_136, %t140) :: integer
|
144
144
|
%t142 = const 0 :: integer
|
@@ -148,8 +148,8 @@
|
|
148
148
|
%t146 = const 1 :: integer
|
149
149
|
%t147 = call core.sub(%t139, %t146) :: integer
|
150
150
|
%t149 = call core.clamp(%t141, %t142, %t147) :: integer
|
151
|
-
%t150 =
|
152
|
-
%t151 =
|
151
|
+
%t150 = gather %t134, %t149 :: any
|
152
|
+
%t151 = length %t150 :: integer
|
153
153
|
%t153 = call core.sub(%col_i_138, %t146) :: integer
|
154
154
|
%t155 = call core.gte(%t153, %t142) :: boolean
|
155
155
|
%t156 = call core.lt(%t153, %t151) :: boolean
|
@@ -157,7 +157,7 @@
|
|
157
157
|
%t158 = call core.and(%t145, %t157) :: boolean
|
158
158
|
%t160 = call core.sub(%t151, %t146) :: integer
|
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
|
@@ -167,7 +167,7 @@
|
|
167
167
|
%t166 = load_input "rows" :: array
|
168
168
|
loop rows id=L15 in %t166 as el=%rows_el_167, idx=%rows_i_168
|
169
169
|
loop col id=L16 in %rows_el_167 as el=%col_el_169, idx=%col_i_170
|
170
|
-
%t171 =
|
170
|
+
%t171 = length %t166 :: integer
|
171
171
|
%t172 = const 1 :: integer
|
172
172
|
%t173 = call core.sub(%rows_i_168, %t172) :: integer
|
173
173
|
%t174 = const 0 :: integer
|
@@ -176,8 +176,8 @@
|
|
176
176
|
%t177 = call core.and(%t175, %t176) :: boolean
|
177
177
|
%t179 = call core.sub(%t171, %t172) :: integer
|
178
178
|
%t181 = call core.clamp(%t173, %t174, %t179) :: integer
|
179
|
-
%t182 =
|
180
|
-
%t183 =
|
179
|
+
%t182 = gather %t166, %t181 :: any
|
180
|
+
%t183 = length %t182 :: integer
|
181
181
|
%t184 = const -1 :: integer
|
182
182
|
%t185 = call core.sub(%col_i_170, %t184) :: integer
|
183
183
|
%t187 = call core.gte(%t185, %t174) :: boolean
|
@@ -186,7 +186,7 @@
|
|
186
186
|
%t190 = call core.and(%t177, %t189) :: boolean
|
187
187
|
%t192 = call core.sub(%t183, %t172) :: integer
|
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
|
@@ -196,7 +196,7 @@
|
|
196
196
|
%t198 = load_input "rows" :: array
|
197
197
|
loop rows id=L17 in %t198 as el=%rows_el_199, idx=%rows_i_200
|
198
198
|
loop col id=L18 in %rows_el_199 as el=%col_el_201, idx=%col_i_202
|
199
|
-
%t203 =
|
199
|
+
%t203 = length %t198 :: integer
|
200
200
|
%t204 = const 1 :: integer
|
201
201
|
%t205 = call core.sub(%rows_i_200, %t204) :: integer
|
202
202
|
%t206 = const 0 :: integer
|
@@ -205,8 +205,8 @@
|
|
205
205
|
%t209 = call core.and(%t207, %t208) :: boolean
|
206
206
|
%t211 = call core.sub(%t203, %t204) :: integer
|
207
207
|
%t213 = call core.clamp(%t205, %t206, %t211) :: integer
|
208
|
-
%t214 =
|
209
|
-
%t215 =
|
208
|
+
%t214 = gather %t198, %t213 :: any
|
209
|
+
%t215 = length %t214 :: integer
|
210
210
|
%t217 = call core.sub(%col_i_202, %t204) :: integer
|
211
211
|
%t219 = call core.gte(%t217, %t206) :: boolean
|
212
212
|
%t220 = call core.lt(%t217, %t215) :: boolean
|
@@ -214,7 +214,7 @@
|
|
214
214
|
%t222 = call core.and(%t209, %t221) :: boolean
|
215
215
|
%t224 = call core.sub(%t215, %t204) :: integer
|
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
|
@@ -224,7 +224,7 @@
|
|
224
224
|
%t230 = load_input "rows" :: array
|
225
225
|
loop rows id=L19 in %t230 as el=%rows_el_231, idx=%rows_i_232
|
226
226
|
loop col id=L20 in %rows_el_231 as el=%col_el_233, idx=%col_i_234
|
227
|
-
%t295 =
|
227
|
+
%t295 = length %t230 :: integer
|
228
228
|
%t296 = const -1 :: integer
|
229
229
|
%t297 = call core.sub(%rows_i_232, %t296) :: integer
|
230
230
|
%t298 = const 0 :: integer
|
@@ -234,73 +234,73 @@
|
|
234
234
|
%t302 = const 1 :: integer
|
235
235
|
%t303 = call core.sub(%t295, %t302) :: integer
|
236
236
|
%t305 = call core.clamp(%t297, %t298, %t303) :: integer
|
237
|
-
%t306 =
|
238
|
-
%t307 =
|
237
|
+
%t306 = gather %t230, %t305 :: any
|
238
|
+
%t307 = length %t306 :: integer
|
239
239
|
%t308 = call core.mod(%col_i_234, %t307) :: integer
|
240
240
|
%t309 = call core.add(%t308, %t307) :: integer
|
241
241
|
%t310 = call core.mod(%t309, %t307) :: integer
|
242
|
-
%t311 =
|
242
|
+
%t311 = gather %t306, %t310 :: integer
|
243
243
|
%t313 = select %t301, %t311, %t298 :: integer
|
244
244
|
%t317 = call core.sub(%rows_i_232, %t302) :: integer
|
245
245
|
%t319 = call core.gte(%t317, %t298) :: boolean
|
246
246
|
%t320 = call core.lt(%t317, %t295) :: boolean
|
247
247
|
%t321 = call core.and(%t319, %t320) :: boolean
|
248
248
|
%t325 = call core.clamp(%t317, %t298, %t303) :: integer
|
249
|
-
%t326 =
|
250
|
-
%t327 =
|
249
|
+
%t326 = gather %t230, %t325 :: any
|
250
|
+
%t327 = length %t326 :: integer
|
251
251
|
%t328 = call core.mod(%col_i_234, %t327) :: integer
|
252
252
|
%t329 = call core.add(%t328, %t327) :: integer
|
253
253
|
%t330 = call core.mod(%t329, %t327) :: integer
|
254
|
-
%t331 =
|
254
|
+
%t331 = gather %t326, %t330 :: integer
|
255
255
|
%t333 = select %t321, %t331, %t298 :: integer
|
256
256
|
%t336 = call core.mod(%rows_i_232, %t295) :: integer
|
257
257
|
%t337 = call core.add(%t336, %t295) :: integer
|
258
258
|
%t338 = call core.mod(%t337, %t295) :: integer
|
259
|
-
%t339 =
|
260
|
-
%t340 =
|
259
|
+
%t339 = gather %t230, %t338 :: any
|
260
|
+
%t340 = length %t339 :: integer
|
261
261
|
%t342 = call core.sub(%col_i_234, %t296) :: integer
|
262
262
|
%t344 = call core.gte(%t342, %t298) :: boolean
|
263
263
|
%t345 = call core.lt(%t342, %t340) :: boolean
|
264
264
|
%t346 = call core.and(%t344, %t345) :: boolean
|
265
265
|
%t348 = call core.sub(%t340, %t302) :: integer
|
266
266
|
%t350 = call core.clamp(%t342, %t298, %t348) :: integer
|
267
|
-
%t351 =
|
267
|
+
%t351 = gather %t339, %t350 :: integer
|
268
268
|
%t353 = select %t346, %t351, %t298 :: integer
|
269
269
|
%t362 = call core.sub(%col_i_234, %t302) :: integer
|
270
270
|
%t364 = call core.gte(%t362, %t298) :: boolean
|
271
271
|
%t365 = call core.lt(%t362, %t340) :: boolean
|
272
272
|
%t366 = call core.and(%t364, %t365) :: boolean
|
273
273
|
%t370 = call core.clamp(%t362, %t298, %t348) :: integer
|
274
|
-
%t371 =
|
274
|
+
%t371 = gather %t339, %t370 :: integer
|
275
275
|
%t373 = select %t366, %t371, %t298 :: integer
|
276
276
|
%t392 = call core.lt(%t342, %t307) :: boolean
|
277
277
|
%t393 = call core.and(%t344, %t392) :: boolean
|
278
278
|
%t394 = call core.and(%t301, %t393) :: boolean
|
279
279
|
%t396 = call core.sub(%t307, %t302) :: integer
|
280
280
|
%t398 = call core.clamp(%t342, %t298, %t396) :: integer
|
281
|
-
%t399 =
|
281
|
+
%t399 = gather %t306, %t398 :: integer
|
282
282
|
%t401 = select %t394, %t399, %t298 :: integer
|
283
283
|
%t420 = call core.lt(%t362, %t307) :: boolean
|
284
284
|
%t421 = call core.and(%t364, %t420) :: boolean
|
285
285
|
%t422 = call core.and(%t301, %t421) :: boolean
|
286
286
|
%t426 = call core.clamp(%t362, %t298, %t396) :: integer
|
287
|
-
%t427 =
|
287
|
+
%t427 = gather %t306, %t426 :: integer
|
288
288
|
%t429 = select %t422, %t427, %t298 :: integer
|
289
289
|
%t448 = call core.lt(%t342, %t327) :: boolean
|
290
290
|
%t449 = call core.and(%t344, %t448) :: boolean
|
291
291
|
%t450 = call core.and(%t321, %t449) :: boolean
|
292
292
|
%t452 = call core.sub(%t327, %t302) :: integer
|
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
|
@@ -319,7 +319,7 @@
|
|
319
319
|
%t253 = load_input "rows" :: array
|
320
320
|
loop rows id=L23 in %t253 as el=%rows_el_254, idx=%rows_i_255
|
321
321
|
loop col id=L24 in %rows_el_254 as el=%col_el_256, idx=%col_i_257
|
322
|
-
%t530 =
|
322
|
+
%t530 = length %t253 :: integer
|
323
323
|
%t531 = const -1 :: integer
|
324
324
|
%t532 = call core.sub(%rows_i_255, %t531) :: integer
|
325
325
|
%t533 = const 0 :: integer
|
@@ -329,73 +329,73 @@
|
|
329
329
|
%t537 = const 1 :: integer
|
330
330
|
%t538 = call core.sub(%t530, %t537) :: integer
|
331
331
|
%t540 = call core.clamp(%t532, %t533, %t538) :: integer
|
332
|
-
%t541 =
|
333
|
-
%t542 =
|
332
|
+
%t541 = gather %t253, %t540 :: any
|
333
|
+
%t542 = length %t541 :: integer
|
334
334
|
%t543 = call core.mod(%col_i_257, %t542) :: integer
|
335
335
|
%t544 = call core.add(%t543, %t542) :: integer
|
336
336
|
%t545 = call core.mod(%t544, %t542) :: integer
|
337
|
-
%t546 =
|
337
|
+
%t546 = gather %t541, %t545 :: integer
|
338
338
|
%t548 = select %t536, %t546, %t533 :: integer
|
339
339
|
%t552 = call core.sub(%rows_i_255, %t537) :: integer
|
340
340
|
%t554 = call core.gte(%t552, %t533) :: boolean
|
341
341
|
%t555 = call core.lt(%t552, %t530) :: boolean
|
342
342
|
%t556 = call core.and(%t554, %t555) :: boolean
|
343
343
|
%t560 = call core.clamp(%t552, %t533, %t538) :: integer
|
344
|
-
%t561 =
|
345
|
-
%t562 =
|
344
|
+
%t561 = gather %t253, %t560 :: any
|
345
|
+
%t562 = length %t561 :: integer
|
346
346
|
%t563 = call core.mod(%col_i_257, %t562) :: integer
|
347
347
|
%t564 = call core.add(%t563, %t562) :: integer
|
348
348
|
%t565 = call core.mod(%t564, %t562) :: integer
|
349
|
-
%t566 =
|
349
|
+
%t566 = gather %t561, %t565 :: integer
|
350
350
|
%t568 = select %t556, %t566, %t533 :: integer
|
351
351
|
%t571 = call core.mod(%rows_i_255, %t530) :: integer
|
352
352
|
%t572 = call core.add(%t571, %t530) :: integer
|
353
353
|
%t573 = call core.mod(%t572, %t530) :: integer
|
354
|
-
%t574 =
|
355
|
-
%t575 =
|
354
|
+
%t574 = gather %t253, %t573 :: any
|
355
|
+
%t575 = length %t574 :: integer
|
356
356
|
%t577 = call core.sub(%col_i_257, %t531) :: integer
|
357
357
|
%t579 = call core.gte(%t577, %t533) :: boolean
|
358
358
|
%t580 = call core.lt(%t577, %t575) :: boolean
|
359
359
|
%t581 = call core.and(%t579, %t580) :: boolean
|
360
360
|
%t583 = call core.sub(%t575, %t537) :: integer
|
361
361
|
%t585 = call core.clamp(%t577, %t533, %t583) :: integer
|
362
|
-
%t586 =
|
362
|
+
%t586 = gather %t574, %t585 :: integer
|
363
363
|
%t588 = select %t581, %t586, %t533 :: integer
|
364
364
|
%t597 = call core.sub(%col_i_257, %t537) :: integer
|
365
365
|
%t599 = call core.gte(%t597, %t533) :: boolean
|
366
366
|
%t600 = call core.lt(%t597, %t575) :: boolean
|
367
367
|
%t601 = call core.and(%t599, %t600) :: boolean
|
368
368
|
%t605 = call core.clamp(%t597, %t533, %t583) :: integer
|
369
|
-
%t606 =
|
369
|
+
%t606 = gather %t574, %t605 :: integer
|
370
370
|
%t608 = select %t601, %t606, %t533 :: integer
|
371
371
|
%t627 = call core.lt(%t577, %t542) :: boolean
|
372
372
|
%t628 = call core.and(%t579, %t627) :: boolean
|
373
373
|
%t629 = call core.and(%t536, %t628) :: boolean
|
374
374
|
%t631 = call core.sub(%t542, %t537) :: integer
|
375
375
|
%t633 = call core.clamp(%t577, %t533, %t631) :: integer
|
376
|
-
%t634 =
|
376
|
+
%t634 = gather %t541, %t633 :: integer
|
377
377
|
%t636 = select %t629, %t634, %t533 :: integer
|
378
378
|
%t655 = call core.lt(%t597, %t542) :: boolean
|
379
379
|
%t656 = call core.and(%t599, %t655) :: boolean
|
380
380
|
%t657 = call core.and(%t536, %t656) :: boolean
|
381
381
|
%t661 = call core.clamp(%t597, %t533, %t631) :: integer
|
382
|
-
%t662 =
|
382
|
+
%t662 = gather %t541, %t661 :: integer
|
383
383
|
%t664 = select %t657, %t662, %t533 :: integer
|
384
384
|
%t683 = call core.lt(%t577, %t562) :: boolean
|
385
385
|
%t684 = call core.and(%t579, %t683) :: boolean
|
386
386
|
%t685 = call core.and(%t556, %t684) :: boolean
|
387
387
|
%t687 = call core.sub(%t562, %t537) :: integer
|
388
388
|
%t689 = call core.clamp(%t577, %t533, %t687) :: integer
|
389
|
-
%t690 =
|
389
|
+
%t690 = gather %t561, %t689 :: integer
|
390
390
|
%t692 = select %t685, %t690, %t533 :: integer
|
391
391
|
%t711 = call core.lt(%t597, %t562) :: boolean
|
392
392
|
%t712 = call core.and(%t599, %t711) :: boolean
|
393
393
|
%t713 = call core.and(%t556, %t712) :: boolean
|
394
394
|
%t717 = call core.clamp(%t597, %t533, %t687) :: integer
|
395
|
-
%t718 =
|
395
|
+
%t718 = gather %t561, %t717 :: integer
|
396
396
|
%t720 = select %t713, %t718, %t533 :: integer
|
397
397
|
%t496 = make_tuple(%t548, %t568, %t588, %t608, %t636, %t664, %t692, %t720) :: tuple<integer>
|
398
|
-
%t497 =
|
398
|
+
%t497 = fold %t496 fn="agg.sum" ::
|
399
399
|
%t259 = const 3 :: integer
|
400
400
|
%t260 = call core.eq(%t497, %t259) :: boolean
|
401
401
|
yield %t260
|
@@ -406,7 +406,7 @@
|
|
406
406
|
%t261 = load_input "rows" :: array
|
407
407
|
loop rows id=L25 in %t261 as el=%rows_el_262, idx=%rows_i_263
|
408
408
|
loop col id=L26 in %rows_el_262 as el=%col_el_264, idx=%col_i_265
|
409
|
-
%t722 =
|
409
|
+
%t722 = length %t261 :: integer
|
410
410
|
%t723 = const -1 :: integer
|
411
411
|
%t724 = call core.sub(%rows_i_263, %t723) :: integer
|
412
412
|
%t725 = const 0 :: integer
|
@@ -416,73 +416,73 @@
|
|
416
416
|
%t729 = const 1 :: integer
|
417
417
|
%t730 = call core.sub(%t722, %t729) :: integer
|
418
418
|
%t732 = call core.clamp(%t724, %t725, %t730) :: integer
|
419
|
-
%t733 =
|
420
|
-
%t734 =
|
419
|
+
%t733 = gather %t261, %t732 :: any
|
420
|
+
%t734 = length %t733 :: integer
|
421
421
|
%t735 = call core.mod(%col_i_265, %t734) :: integer
|
422
422
|
%t736 = call core.add(%t735, %t734) :: integer
|
423
423
|
%t737 = call core.mod(%t736, %t734) :: integer
|
424
|
-
%t738 =
|
424
|
+
%t738 = gather %t733, %t737 :: integer
|
425
425
|
%t740 = select %t728, %t738, %t725 :: integer
|
426
426
|
%t744 = call core.sub(%rows_i_263, %t729) :: integer
|
427
427
|
%t746 = call core.gte(%t744, %t725) :: boolean
|
428
428
|
%t747 = call core.lt(%t744, %t722) :: boolean
|
429
429
|
%t748 = call core.and(%t746, %t747) :: boolean
|
430
430
|
%t752 = call core.clamp(%t744, %t725, %t730) :: integer
|
431
|
-
%t753 =
|
432
|
-
%t754 =
|
431
|
+
%t753 = gather %t261, %t752 :: any
|
432
|
+
%t754 = length %t753 :: integer
|
433
433
|
%t755 = call core.mod(%col_i_265, %t754) :: integer
|
434
434
|
%t756 = call core.add(%t755, %t754) :: integer
|
435
435
|
%t757 = call core.mod(%t756, %t754) :: integer
|
436
|
-
%t758 =
|
436
|
+
%t758 = gather %t753, %t757 :: integer
|
437
437
|
%t760 = select %t748, %t758, %t725 :: integer
|
438
438
|
%t763 = call core.mod(%rows_i_263, %t722) :: integer
|
439
439
|
%t764 = call core.add(%t763, %t722) :: integer
|
440
440
|
%t765 = call core.mod(%t764, %t722) :: integer
|
441
|
-
%t766 =
|
442
|
-
%t767 =
|
441
|
+
%t766 = gather %t261, %t765 :: any
|
442
|
+
%t767 = length %t766 :: integer
|
443
443
|
%t769 = call core.sub(%col_i_265, %t723) :: integer
|
444
444
|
%t771 = call core.gte(%t769, %t725) :: boolean
|
445
445
|
%t772 = call core.lt(%t769, %t767) :: boolean
|
446
446
|
%t773 = call core.and(%t771, %t772) :: boolean
|
447
447
|
%t775 = call core.sub(%t767, %t729) :: integer
|
448
448
|
%t777 = call core.clamp(%t769, %t725, %t775) :: integer
|
449
|
-
%t778 =
|
449
|
+
%t778 = gather %t766, %t777 :: integer
|
450
450
|
%t780 = select %t773, %t778, %t725 :: integer
|
451
451
|
%t789 = call core.sub(%col_i_265, %t729) :: integer
|
452
452
|
%t791 = call core.gte(%t789, %t725) :: boolean
|
453
453
|
%t792 = call core.lt(%t789, %t767) :: boolean
|
454
454
|
%t793 = call core.and(%t791, %t792) :: boolean
|
455
455
|
%t797 = call core.clamp(%t789, %t725, %t775) :: integer
|
456
|
-
%t798 =
|
456
|
+
%t798 = gather %t766, %t797 :: integer
|
457
457
|
%t800 = select %t793, %t798, %t725 :: integer
|
458
458
|
%t819 = call core.lt(%t769, %t734) :: boolean
|
459
459
|
%t820 = call core.and(%t771, %t819) :: boolean
|
460
460
|
%t821 = call core.and(%t728, %t820) :: boolean
|
461
461
|
%t823 = call core.sub(%t734, %t729) :: integer
|
462
462
|
%t825 = call core.clamp(%t769, %t725, %t823) :: integer
|
463
|
-
%t826 =
|
463
|
+
%t826 = gather %t733, %t825 :: integer
|
464
464
|
%t828 = select %t821, %t826, %t725 :: integer
|
465
465
|
%t847 = call core.lt(%t789, %t734) :: boolean
|
466
466
|
%t848 = call core.and(%t791, %t847) :: boolean
|
467
467
|
%t849 = call core.and(%t728, %t848) :: boolean
|
468
468
|
%t853 = call core.clamp(%t789, %t725, %t823) :: integer
|
469
|
-
%t854 =
|
469
|
+
%t854 = gather %t733, %t853 :: integer
|
470
470
|
%t856 = select %t849, %t854, %t725 :: integer
|
471
471
|
%t875 = call core.lt(%t769, %t754) :: boolean
|
472
472
|
%t876 = call core.and(%t771, %t875) :: boolean
|
473
473
|
%t877 = call core.and(%t748, %t876) :: boolean
|
474
474
|
%t879 = call core.sub(%t754, %t729) :: integer
|
475
475
|
%t881 = call core.clamp(%t769, %t725, %t879) :: integer
|
476
|
-
%t882 =
|
476
|
+
%t882 = gather %t753, %t881 :: integer
|
477
477
|
%t884 = select %t877, %t882, %t725 :: integer
|
478
478
|
%t903 = call core.lt(%t789, %t754) :: boolean
|
479
479
|
%t904 = call core.and(%t791, %t903) :: boolean
|
480
480
|
%t905 = call core.and(%t748, %t904) :: boolean
|
481
481
|
%t909 = call core.clamp(%t789, %t725, %t879) :: integer
|
482
|
-
%t910 =
|
482
|
+
%t910 = gather %t753, %t909 :: integer
|
483
483
|
%t912 = select %t905, %t910, %t725 :: integer
|
484
484
|
%t507 = make_tuple(%t740, %t760, %t780, %t800, %t828, %t856, %t884, %t912) :: tuple<integer>
|
485
|
-
%t508 =
|
485
|
+
%t508 = fold %t507 fn="agg.sum" ::
|
486
486
|
%t267 = const 2 :: integer
|
487
487
|
%t268 = call core.eq(%t508, %t267) :: boolean
|
488
488
|
yield %t268
|
@@ -493,7 +493,7 @@
|
|
493
493
|
%t269 = load_input "rows" :: array
|
494
494
|
loop rows id=L27 in %t269 as el=%rows_el_270, idx=%rows_i_271
|
495
495
|
loop col id=L28 in %rows_el_270 as el=%col_el_272, idx=%col_i_273
|
496
|
-
%t915 =
|
496
|
+
%t915 = length %t269 :: integer
|
497
497
|
%t916 = const -1 :: integer
|
498
498
|
%t917 = call core.sub(%rows_i_271, %t916) :: integer
|
499
499
|
%t918 = const 0 :: integer
|
@@ -503,73 +503,73 @@
|
|
503
503
|
%t922 = const 1 :: integer
|
504
504
|
%t923 = call core.sub(%t915, %t922) :: integer
|
505
505
|
%t925 = call core.clamp(%t917, %t918, %t923) :: integer
|
506
|
-
%t926 =
|
507
|
-
%t927 =
|
506
|
+
%t926 = gather %t269, %t925 :: any
|
507
|
+
%t927 = length %t926 :: integer
|
508
508
|
%t928 = call core.mod(%col_i_273, %t927) :: integer
|
509
509
|
%t929 = call core.add(%t928, %t927) :: integer
|
510
510
|
%t930 = call core.mod(%t929, %t927) :: integer
|
511
|
-
%t931 =
|
511
|
+
%t931 = gather %t926, %t930 :: integer
|
512
512
|
%t933 = select %t921, %t931, %t918 :: integer
|
513
513
|
%t937 = call core.sub(%rows_i_271, %t922) :: integer
|
514
514
|
%t939 = call core.gte(%t937, %t918) :: boolean
|
515
515
|
%t940 = call core.lt(%t937, %t915) :: boolean
|
516
516
|
%t941 = call core.and(%t939, %t940) :: boolean
|
517
517
|
%t945 = call core.clamp(%t937, %t918, %t923) :: integer
|
518
|
-
%t946 =
|
519
|
-
%t947 =
|
518
|
+
%t946 = gather %t269, %t945 :: any
|
519
|
+
%t947 = length %t946 :: integer
|
520
520
|
%t948 = call core.mod(%col_i_273, %t947) :: integer
|
521
521
|
%t949 = call core.add(%t948, %t947) :: integer
|
522
522
|
%t950 = call core.mod(%t949, %t947) :: integer
|
523
|
-
%t951 =
|
523
|
+
%t951 = gather %t946, %t950 :: integer
|
524
524
|
%t953 = select %t941, %t951, %t918 :: integer
|
525
525
|
%t956 = call core.mod(%rows_i_271, %t915) :: integer
|
526
526
|
%t957 = call core.add(%t956, %t915) :: integer
|
527
527
|
%t958 = call core.mod(%t957, %t915) :: integer
|
528
|
-
%t959 =
|
529
|
-
%t960 =
|
528
|
+
%t959 = gather %t269, %t958 :: any
|
529
|
+
%t960 = length %t959 :: integer
|
530
530
|
%t962 = call core.sub(%col_i_273, %t916) :: integer
|
531
531
|
%t964 = call core.gte(%t962, %t918) :: boolean
|
532
532
|
%t965 = call core.lt(%t962, %t960) :: boolean
|
533
533
|
%t966 = call core.and(%t964, %t965) :: boolean
|
534
534
|
%t968 = call core.sub(%t960, %t922) :: integer
|
535
535
|
%t970 = call core.clamp(%t962, %t918, %t968) :: integer
|
536
|
-
%t971 =
|
536
|
+
%t971 = gather %t959, %t970 :: integer
|
537
537
|
%t973 = select %t966, %t971, %t918 :: integer
|
538
538
|
%t982 = call core.sub(%col_i_273, %t922) :: integer
|
539
539
|
%t984 = call core.gte(%t982, %t918) :: boolean
|
540
540
|
%t985 = call core.lt(%t982, %t960) :: boolean
|
541
541
|
%t986 = call core.and(%t984, %t985) :: boolean
|
542
542
|
%t990 = call core.clamp(%t982, %t918, %t968) :: integer
|
543
|
-
%t991 =
|
543
|
+
%t991 = gather %t959, %t990 :: integer
|
544
544
|
%t993 = select %t986, %t991, %t918 :: integer
|
545
545
|
%t1012 = call core.lt(%t962, %t927) :: boolean
|
546
546
|
%t1013 = call core.and(%t964, %t1012) :: boolean
|
547
547
|
%t1014 = call core.and(%t921, %t1013) :: boolean
|
548
548
|
%t1016 = call core.sub(%t927, %t922) :: integer
|
549
549
|
%t1018 = call core.clamp(%t962, %t918, %t1016) :: integer
|
550
|
-
%t1019 =
|
550
|
+
%t1019 = gather %t926, %t1018 :: integer
|
551
551
|
%t1021 = select %t1014, %t1019, %t918 :: integer
|
552
552
|
%t1040 = call core.lt(%t982, %t927) :: boolean
|
553
553
|
%t1041 = call core.and(%t984, %t1040) :: boolean
|
554
554
|
%t1042 = call core.and(%t921, %t1041) :: boolean
|
555
555
|
%t1046 = call core.clamp(%t982, %t918, %t1016) :: integer
|
556
|
-
%t1047 =
|
556
|
+
%t1047 = gather %t926, %t1046 :: integer
|
557
557
|
%t1049 = select %t1042, %t1047, %t918 :: integer
|
558
558
|
%t1068 = call core.lt(%t962, %t947) :: boolean
|
559
559
|
%t1069 = call core.and(%t964, %t1068) :: boolean
|
560
560
|
%t1070 = call core.and(%t941, %t1069) :: boolean
|
561
561
|
%t1072 = call core.sub(%t947, %t922) :: integer
|
562
562
|
%t1074 = call core.clamp(%t962, %t918, %t1072) :: integer
|
563
|
-
%t1075 =
|
563
|
+
%t1075 = gather %t946, %t1074 :: integer
|
564
564
|
%t1077 = select %t1070, %t1075, %t918 :: integer
|
565
565
|
%t1096 = call core.lt(%t982, %t947) :: boolean
|
566
566
|
%t1097 = call core.and(%t984, %t1096) :: boolean
|
567
567
|
%t1098 = call core.and(%t941, %t1097) :: boolean
|
568
568
|
%t1102 = call core.clamp(%t982, %t918, %t1072) :: integer
|
569
|
-
%t1103 =
|
569
|
+
%t1103 = gather %t946, %t1102 :: integer
|
570
570
|
%t1105 = select %t1098, %t1103, %t918 :: integer
|
571
571
|
%t1106 = make_tuple(%t933, %t953, %t973, %t993, %t1021, %t1049, %t1077, %t1105) :: tuple<integer>
|
572
|
-
%t1107 =
|
572
|
+
%t1107 = fold %t1106 fn="agg.sum" ::
|
573
573
|
%t511 = const 2 :: integer
|
574
574
|
%t512 = call core.eq(%t1107, %t511) :: boolean
|
575
575
|
%t516 = call core.gt(%col_el_272, %t918) :: boolean
|
@@ -582,7 +582,7 @@
|
|
582
582
|
%t277 = load_input "rows" :: array
|
583
583
|
loop rows id=L29 in %t277 as el=%rows_el_278, idx=%rows_i_279
|
584
584
|
loop col id=L30 in %rows_el_278 as el=%col_el_280, idx=%col_i_281
|
585
|
-
%t1111 =
|
585
|
+
%t1111 = length %t277 :: integer
|
586
586
|
%t1112 = const -1 :: integer
|
587
587
|
%t1113 = call core.sub(%rows_i_279, %t1112) :: integer
|
588
588
|
%t1114 = const 0 :: integer
|
@@ -592,73 +592,73 @@
|
|
592
592
|
%t1118 = const 1 :: integer
|
593
593
|
%t1119 = call core.sub(%t1111, %t1118) :: integer
|
594
594
|
%t1121 = call core.clamp(%t1113, %t1114, %t1119) :: integer
|
595
|
-
%t1122 =
|
596
|
-
%t1123 =
|
595
|
+
%t1122 = gather %t277, %t1121 :: any
|
596
|
+
%t1123 = length %t1122 :: integer
|
597
597
|
%t1124 = call core.mod(%col_i_281, %t1123) :: integer
|
598
598
|
%t1125 = call core.add(%t1124, %t1123) :: integer
|
599
599
|
%t1126 = call core.mod(%t1125, %t1123) :: integer
|
600
|
-
%t1127 =
|
600
|
+
%t1127 = gather %t1122, %t1126 :: integer
|
601
601
|
%t1129 = select %t1117, %t1127, %t1114 :: integer
|
602
602
|
%t1133 = call core.sub(%rows_i_279, %t1118) :: integer
|
603
603
|
%t1135 = call core.gte(%t1133, %t1114) :: boolean
|
604
604
|
%t1136 = call core.lt(%t1133, %t1111) :: boolean
|
605
605
|
%t1137 = call core.and(%t1135, %t1136) :: boolean
|
606
606
|
%t1141 = call core.clamp(%t1133, %t1114, %t1119) :: integer
|
607
|
-
%t1142 =
|
608
|
-
%t1143 =
|
607
|
+
%t1142 = gather %t277, %t1141 :: any
|
608
|
+
%t1143 = length %t1142 :: integer
|
609
609
|
%t1144 = call core.mod(%col_i_281, %t1143) :: integer
|
610
610
|
%t1145 = call core.add(%t1144, %t1143) :: integer
|
611
611
|
%t1146 = call core.mod(%t1145, %t1143) :: integer
|
612
|
-
%t1147 =
|
612
|
+
%t1147 = gather %t1142, %t1146 :: integer
|
613
613
|
%t1149 = select %t1137, %t1147, %t1114 :: integer
|
614
614
|
%t1152 = call core.mod(%rows_i_279, %t1111) :: integer
|
615
615
|
%t1153 = call core.add(%t1152, %t1111) :: integer
|
616
616
|
%t1154 = call core.mod(%t1153, %t1111) :: integer
|
617
|
-
%t1155 =
|
618
|
-
%t1156 =
|
617
|
+
%t1155 = gather %t277, %t1154 :: any
|
618
|
+
%t1156 = length %t1155 :: integer
|
619
619
|
%t1158 = call core.sub(%col_i_281, %t1112) :: integer
|
620
620
|
%t1160 = call core.gte(%t1158, %t1114) :: boolean
|
621
621
|
%t1161 = call core.lt(%t1158, %t1156) :: boolean
|
622
622
|
%t1162 = call core.and(%t1160, %t1161) :: boolean
|
623
623
|
%t1164 = call core.sub(%t1156, %t1118) :: integer
|
624
624
|
%t1166 = call core.clamp(%t1158, %t1114, %t1164) :: integer
|
625
|
-
%t1167 =
|
625
|
+
%t1167 = gather %t1155, %t1166 :: integer
|
626
626
|
%t1169 = select %t1162, %t1167, %t1114 :: integer
|
627
627
|
%t1178 = call core.sub(%col_i_281, %t1118) :: integer
|
628
628
|
%t1180 = call core.gte(%t1178, %t1114) :: boolean
|
629
629
|
%t1181 = call core.lt(%t1178, %t1156) :: boolean
|
630
630
|
%t1182 = call core.and(%t1180, %t1181) :: boolean
|
631
631
|
%t1186 = call core.clamp(%t1178, %t1114, %t1164) :: integer
|
632
|
-
%t1187 =
|
632
|
+
%t1187 = gather %t1155, %t1186 :: integer
|
633
633
|
%t1189 = select %t1182, %t1187, %t1114 :: integer
|
634
634
|
%t1208 = call core.lt(%t1158, %t1123) :: boolean
|
635
635
|
%t1209 = call core.and(%t1160, %t1208) :: boolean
|
636
636
|
%t1210 = call core.and(%t1117, %t1209) :: boolean
|
637
637
|
%t1212 = call core.sub(%t1123, %t1118) :: integer
|
638
638
|
%t1214 = call core.clamp(%t1158, %t1114, %t1212) :: integer
|
639
|
-
%t1215 =
|
639
|
+
%t1215 = gather %t1122, %t1214 :: integer
|
640
640
|
%t1217 = select %t1210, %t1215, %t1114 :: integer
|
641
641
|
%t1236 = call core.lt(%t1178, %t1123) :: boolean
|
642
642
|
%t1237 = call core.and(%t1180, %t1236) :: boolean
|
643
643
|
%t1238 = call core.and(%t1117, %t1237) :: boolean
|
644
644
|
%t1242 = call core.clamp(%t1178, %t1114, %t1212) :: integer
|
645
|
-
%t1243 =
|
645
|
+
%t1243 = gather %t1122, %t1242 :: integer
|
646
646
|
%t1245 = select %t1238, %t1243, %t1114 :: integer
|
647
647
|
%t1264 = call core.lt(%t1158, %t1143) :: boolean
|
648
648
|
%t1265 = call core.and(%t1160, %t1264) :: boolean
|
649
649
|
%t1266 = call core.and(%t1137, %t1265) :: boolean
|
650
650
|
%t1268 = call core.sub(%t1143, %t1118) :: integer
|
651
651
|
%t1270 = call core.clamp(%t1158, %t1114, %t1268) :: integer
|
652
|
-
%t1271 =
|
652
|
+
%t1271 = gather %t1142, %t1270 :: integer
|
653
653
|
%t1273 = select %t1266, %t1271, %t1114 :: integer
|
654
654
|
%t1292 = call core.lt(%t1178, %t1143) :: boolean
|
655
655
|
%t1293 = call core.and(%t1180, %t1292) :: boolean
|
656
656
|
%t1294 = call core.and(%t1137, %t1293) :: boolean
|
657
657
|
%t1298 = call core.clamp(%t1178, %t1114, %t1268) :: integer
|
658
|
-
%t1299 =
|
658
|
+
%t1299 = gather %t1142, %t1298 :: integer
|
659
659
|
%t1301 = select %t1294, %t1299, %t1114 :: integer
|
660
660
|
%t1302 = make_tuple(%t1129, %t1149, %t1169, %t1189, %t1217, %t1245, %t1273, %t1301) :: tuple<integer>
|
661
|
-
%t1303 =
|
661
|
+
%t1303 = fold %t1302 fn="agg.sum" ::
|
662
662
|
%t519 = const 3 :: integer
|
663
663
|
%t520 = call core.eq(%t1303, %t519) :: boolean
|
664
664
|
%t1316 = const 2 :: integer
|
@@ -674,7 +674,7 @@
|
|
674
674
|
%t285 = load_input "rows" :: array
|
675
675
|
loop rows id=L31 in %t285 as el=%rows_el_286, idx=%rows_i_287
|
676
676
|
loop col id=L32 in %rows_el_286 as el=%col_el_288, idx=%col_i_289
|
677
|
-
%t1539 =
|
677
|
+
%t1539 = length %t285 :: integer
|
678
678
|
%t1540 = const -1 :: integer
|
679
679
|
%t1541 = call core.sub(%rows_i_287, %t1540) :: integer
|
680
680
|
%t1542 = const 0 :: integer
|
@@ -684,73 +684,73 @@
|
|
684
684
|
%t1546 = const 1 :: integer
|
685
685
|
%t1547 = call core.sub(%t1539, %t1546) :: integer
|
686
686
|
%t1549 = call core.clamp(%t1541, %t1542, %t1547) :: integer
|
687
|
-
%t1550 =
|
688
|
-
%t1551 =
|
687
|
+
%t1550 = gather %t285, %t1549 :: any
|
688
|
+
%t1551 = length %t1550 :: integer
|
689
689
|
%t1552 = call core.mod(%col_i_289, %t1551) :: integer
|
690
690
|
%t1553 = call core.add(%t1552, %t1551) :: integer
|
691
691
|
%t1554 = call core.mod(%t1553, %t1551) :: integer
|
692
|
-
%t1555 =
|
692
|
+
%t1555 = gather %t1550, %t1554 :: integer
|
693
693
|
%t1557 = select %t1545, %t1555, %t1542 :: integer
|
694
694
|
%t1561 = call core.sub(%rows_i_287, %t1546) :: integer
|
695
695
|
%t1563 = call core.gte(%t1561, %t1542) :: boolean
|
696
696
|
%t1564 = call core.lt(%t1561, %t1539) :: boolean
|
697
697
|
%t1565 = call core.and(%t1563, %t1564) :: boolean
|
698
698
|
%t1569 = call core.clamp(%t1561, %t1542, %t1547) :: integer
|
699
|
-
%t1570 =
|
700
|
-
%t1571 =
|
699
|
+
%t1570 = gather %t285, %t1569 :: any
|
700
|
+
%t1571 = length %t1570 :: integer
|
701
701
|
%t1572 = call core.mod(%col_i_289, %t1571) :: integer
|
702
702
|
%t1573 = call core.add(%t1572, %t1571) :: integer
|
703
703
|
%t1574 = call core.mod(%t1573, %t1571) :: integer
|
704
|
-
%t1575 =
|
704
|
+
%t1575 = gather %t1570, %t1574 :: integer
|
705
705
|
%t1577 = select %t1565, %t1575, %t1542 :: integer
|
706
706
|
%t1580 = call core.mod(%rows_i_287, %t1539) :: integer
|
707
707
|
%t1581 = call core.add(%t1580, %t1539) :: integer
|
708
708
|
%t1582 = call core.mod(%t1581, %t1539) :: integer
|
709
|
-
%t1583 =
|
710
|
-
%t1584 =
|
709
|
+
%t1583 = gather %t285, %t1582 :: any
|
710
|
+
%t1584 = length %t1583 :: integer
|
711
711
|
%t1586 = call core.sub(%col_i_289, %t1540) :: integer
|
712
712
|
%t1588 = call core.gte(%t1586, %t1542) :: boolean
|
713
713
|
%t1589 = call core.lt(%t1586, %t1584) :: boolean
|
714
714
|
%t1590 = call core.and(%t1588, %t1589) :: boolean
|
715
715
|
%t1592 = call core.sub(%t1584, %t1546) :: integer
|
716
716
|
%t1594 = call core.clamp(%t1586, %t1542, %t1592) :: integer
|
717
|
-
%t1595 =
|
717
|
+
%t1595 = gather %t1583, %t1594 :: integer
|
718
718
|
%t1597 = select %t1590, %t1595, %t1542 :: integer
|
719
719
|
%t1606 = call core.sub(%col_i_289, %t1546) :: integer
|
720
720
|
%t1608 = call core.gte(%t1606, %t1542) :: boolean
|
721
721
|
%t1609 = call core.lt(%t1606, %t1584) :: boolean
|
722
722
|
%t1610 = call core.and(%t1608, %t1609) :: boolean
|
723
723
|
%t1614 = call core.clamp(%t1606, %t1542, %t1592) :: integer
|
724
|
-
%t1615 =
|
724
|
+
%t1615 = gather %t1583, %t1614 :: integer
|
725
725
|
%t1617 = select %t1610, %t1615, %t1542 :: integer
|
726
726
|
%t1636 = call core.lt(%t1586, %t1551) :: boolean
|
727
727
|
%t1637 = call core.and(%t1588, %t1636) :: boolean
|
728
728
|
%t1638 = call core.and(%t1545, %t1637) :: boolean
|
729
729
|
%t1640 = call core.sub(%t1551, %t1546) :: integer
|
730
730
|
%t1642 = call core.clamp(%t1586, %t1542, %t1640) :: integer
|
731
|
-
%t1643 =
|
731
|
+
%t1643 = gather %t1550, %t1642 :: integer
|
732
732
|
%t1645 = select %t1638, %t1643, %t1542 :: integer
|
733
733
|
%t1664 = call core.lt(%t1606, %t1551) :: boolean
|
734
734
|
%t1665 = call core.and(%t1608, %t1664) :: boolean
|
735
735
|
%t1666 = call core.and(%t1545, %t1665) :: boolean
|
736
736
|
%t1670 = call core.clamp(%t1606, %t1542, %t1640) :: integer
|
737
|
-
%t1671 =
|
737
|
+
%t1671 = gather %t1550, %t1670 :: integer
|
738
738
|
%t1673 = select %t1666, %t1671, %t1542 :: integer
|
739
739
|
%t1692 = call core.lt(%t1586, %t1571) :: boolean
|
740
740
|
%t1693 = call core.and(%t1588, %t1692) :: boolean
|
741
741
|
%t1694 = call core.and(%t1565, %t1693) :: boolean
|
742
742
|
%t1696 = call core.sub(%t1571, %t1546) :: integer
|
743
743
|
%t1698 = call core.clamp(%t1586, %t1542, %t1696) :: integer
|
744
|
-
%t1699 =
|
744
|
+
%t1699 = gather %t1570, %t1698 :: integer
|
745
745
|
%t1701 = select %t1694, %t1699, %t1542 :: integer
|
746
746
|
%t1720 = call core.lt(%t1606, %t1571) :: boolean
|
747
747
|
%t1721 = call core.and(%t1608, %t1720) :: boolean
|
748
748
|
%t1722 = call core.and(%t1565, %t1721) :: boolean
|
749
749
|
%t1726 = call core.clamp(%t1606, %t1542, %t1696) :: integer
|
750
|
-
%t1727 =
|
750
|
+
%t1727 = gather %t1570, %t1726 :: integer
|
751
751
|
%t1729 = select %t1722, %t1727, %t1542 :: integer
|
752
752
|
%t1332 = make_tuple(%t1557, %t1577, %t1597, %t1617, %t1645, %t1673, %t1701, %t1729) :: tuple<integer>
|
753
|
-
%t1333 =
|
753
|
+
%t1333 = fold %t1332 fn="agg.sum" ::
|
754
754
|
%t1334 = const 3 :: integer
|
755
755
|
%t1335 = call core.eq(%t1333, %t1334) :: boolean
|
756
756
|
%t1339 = const 2 :: integer
|