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
@@ -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
|
@@ -22,12 +22,12 @@
|
|
22
22
|
%t19 = call core.sub(%t11, %t18) :: integer
|
23
23
|
%t20 = const 0 :: integer
|
24
24
|
%t21 = call core.clamp(%t13, %t20, %t19) :: integer
|
25
|
-
%t22 =
|
26
|
-
%t23 =
|
25
|
+
%t22 = gather %t6, %t21 :: any
|
26
|
+
%t23 = length %t22 :: integer
|
27
27
|
%t24 = call core.mod(%col_i_10, %t23) :: integer
|
28
28
|
%t25 = call core.add(%t24, %t23) :: integer
|
29
29
|
%t26 = call core.mod(%t25, %t23) :: integer
|
30
|
-
%t27 =
|
30
|
+
%t27 = gather %t22, %t26 :: integer
|
31
31
|
%t28 = const 0 :: integer
|
32
32
|
%t29 = select %t17, %t27, %t28 :: integer
|
33
33
|
yield %t29
|
@@ -38,7 +38,7 @@
|
|
38
38
|
%t30 = load_input "rows" :: array
|
39
39
|
loop rows id=L5 in %t30 as el=%rows_el_31, idx=%rows_i_32
|
40
40
|
loop col id=L6 in %rows_el_31 as el=%col_el_33, idx=%col_i_34
|
41
|
-
%t35 =
|
41
|
+
%t35 = length %t30 :: integer
|
42
42
|
%t36 = const 1 :: integer
|
43
43
|
%t37 = call core.sub(%rows_i_32, %t36) :: integer
|
44
44
|
%t38 = const 0 :: integer
|
@@ -49,12 +49,12 @@
|
|
49
49
|
%t43 = call core.sub(%t35, %t42) :: integer
|
50
50
|
%t44 = const 0 :: integer
|
51
51
|
%t45 = call core.clamp(%t37, %t44, %t43) :: integer
|
52
|
-
%t46 =
|
53
|
-
%t47 =
|
52
|
+
%t46 = gather %t30, %t45 :: any
|
53
|
+
%t47 = length %t46 :: integer
|
54
54
|
%t48 = call core.mod(%col_i_34, %t47) :: integer
|
55
55
|
%t49 = call core.add(%t48, %t47) :: integer
|
56
56
|
%t50 = call core.mod(%t49, %t47) :: integer
|
57
|
-
%t51 =
|
57
|
+
%t51 = gather %t46, %t50 :: integer
|
58
58
|
%t52 = const 0 :: integer
|
59
59
|
%t53 = select %t41, %t51, %t52 :: integer
|
60
60
|
yield %t53
|
@@ -65,12 +65,12 @@
|
|
65
65
|
%t54 = load_input "rows" :: array
|
66
66
|
loop rows id=L7 in %t54 as el=%rows_el_55, idx=%rows_i_56
|
67
67
|
loop col id=L8 in %rows_el_55 as el=%col_el_57, idx=%col_i_58
|
68
|
-
%t59 =
|
68
|
+
%t59 = length %t54 :: integer
|
69
69
|
%t60 = call core.mod(%rows_i_56, %t59) :: integer
|
70
70
|
%t61 = call core.add(%t60, %t59) :: integer
|
71
71
|
%t62 = call core.mod(%t61, %t59) :: integer
|
72
|
-
%t63 =
|
73
|
-
%t64 =
|
72
|
+
%t63 = gather %t54, %t62 :: any
|
73
|
+
%t64 = length %t63 :: integer
|
74
74
|
%t65 = const -1 :: integer
|
75
75
|
%t66 = call core.sub(%col_i_58, %t65) :: integer
|
76
76
|
%t67 = const 0 :: integer
|
@@ -81,7 +81,7 @@
|
|
81
81
|
%t72 = call core.sub(%t64, %t71) :: integer
|
82
82
|
%t73 = const 0 :: integer
|
83
83
|
%t74 = call core.clamp(%t66, %t73, %t72) :: integer
|
84
|
-
%t75 =
|
84
|
+
%t75 = gather %t63, %t74 :: integer
|
85
85
|
%t76 = const 0 :: integer
|
86
86
|
%t77 = select %t70, %t75, %t76 :: integer
|
87
87
|
yield %t77
|
@@ -92,12 +92,12 @@
|
|
92
92
|
%t78 = load_input "rows" :: array
|
93
93
|
loop rows id=L9 in %t78 as el=%rows_el_79, idx=%rows_i_80
|
94
94
|
loop col id=L10 in %rows_el_79 as el=%col_el_81, idx=%col_i_82
|
95
|
-
%t83 =
|
95
|
+
%t83 = length %t78 :: integer
|
96
96
|
%t84 = call core.mod(%rows_i_80, %t83) :: integer
|
97
97
|
%t85 = call core.add(%t84, %t83) :: integer
|
98
98
|
%t86 = call core.mod(%t85, %t83) :: integer
|
99
|
-
%t87 =
|
100
|
-
%t88 =
|
99
|
+
%t87 = gather %t78, %t86 :: any
|
100
|
+
%t88 = length %t87 :: integer
|
101
101
|
%t89 = const 1 :: integer
|
102
102
|
%t90 = call core.sub(%col_i_82, %t89) :: integer
|
103
103
|
%t91 = const 0 :: integer
|
@@ -108,7 +108,7 @@
|
|
108
108
|
%t96 = call core.sub(%t88, %t95) :: integer
|
109
109
|
%t97 = const 0 :: integer
|
110
110
|
%t98 = call core.clamp(%t90, %t97, %t96) :: integer
|
111
|
-
%t99 =
|
111
|
+
%t99 = gather %t87, %t98 :: integer
|
112
112
|
%t100 = const 0 :: integer
|
113
113
|
%t101 = select %t94, %t99, %t100 :: integer
|
114
114
|
yield %t101
|
@@ -119,7 +119,7 @@
|
|
119
119
|
%t102 = load_input "rows" :: array
|
120
120
|
loop rows id=L11 in %t102 as el=%rows_el_103, idx=%rows_i_104
|
121
121
|
loop col id=L12 in %rows_el_103 as el=%col_el_105, idx=%col_i_106
|
122
|
-
%t107 =
|
122
|
+
%t107 = length %t102 :: integer
|
123
123
|
%t108 = const -1 :: integer
|
124
124
|
%t109 = call core.sub(%rows_i_104, %t108) :: integer
|
125
125
|
%t110 = const 0 :: integer
|
@@ -130,8 +130,8 @@
|
|
130
130
|
%t115 = call core.sub(%t107, %t114) :: integer
|
131
131
|
%t116 = const 0 :: integer
|
132
132
|
%t117 = call core.clamp(%t109, %t116, %t115) :: integer
|
133
|
-
%t118 =
|
134
|
-
%t119 =
|
133
|
+
%t118 = gather %t102, %t117 :: any
|
134
|
+
%t119 = length %t118 :: integer
|
135
135
|
%t120 = const -1 :: integer
|
136
136
|
%t121 = call core.sub(%col_i_106, %t120) :: integer
|
137
137
|
%t122 = const 0 :: integer
|
@@ -143,7 +143,7 @@
|
|
143
143
|
%t128 = call core.sub(%t119, %t127) :: integer
|
144
144
|
%t129 = const 0 :: integer
|
145
145
|
%t130 = call core.clamp(%t121, %t129, %t128) :: integer
|
146
|
-
%t131 =
|
146
|
+
%t131 = gather %t118, %t130 :: integer
|
147
147
|
%t132 = const 0 :: integer
|
148
148
|
%t133 = select %t126, %t131, %t132 :: integer
|
149
149
|
yield %t133
|
@@ -154,7 +154,7 @@
|
|
154
154
|
%t134 = load_input "rows" :: array
|
155
155
|
loop rows id=L13 in %t134 as el=%rows_el_135, idx=%rows_i_136
|
156
156
|
loop col id=L14 in %rows_el_135 as el=%col_el_137, idx=%col_i_138
|
157
|
-
%t139 =
|
157
|
+
%t139 = length %t134 :: integer
|
158
158
|
%t140 = const -1 :: integer
|
159
159
|
%t141 = call core.sub(%rows_i_136, %t140) :: integer
|
160
160
|
%t142 = const 0 :: integer
|
@@ -165,8 +165,8 @@
|
|
165
165
|
%t147 = call core.sub(%t139, %t146) :: integer
|
166
166
|
%t148 = const 0 :: integer
|
167
167
|
%t149 = call core.clamp(%t141, %t148, %t147) :: integer
|
168
|
-
%t150 =
|
169
|
-
%t151 =
|
168
|
+
%t150 = gather %t134, %t149 :: any
|
169
|
+
%t151 = length %t150 :: integer
|
170
170
|
%t152 = const 1 :: integer
|
171
171
|
%t153 = call core.sub(%col_i_138, %t152) :: integer
|
172
172
|
%t154 = const 0 :: integer
|
@@ -178,7 +178,7 @@
|
|
178
178
|
%t160 = call core.sub(%t151, %t159) :: integer
|
179
179
|
%t161 = const 0 :: integer
|
180
180
|
%t162 = call core.clamp(%t153, %t161, %t160) :: integer
|
181
|
-
%t163 =
|
181
|
+
%t163 = gather %t150, %t162 :: integer
|
182
182
|
%t164 = const 0 :: integer
|
183
183
|
%t165 = select %t158, %t163, %t164 :: integer
|
184
184
|
yield %t165
|
@@ -189,7 +189,7 @@
|
|
189
189
|
%t166 = load_input "rows" :: array
|
190
190
|
loop rows id=L15 in %t166 as el=%rows_el_167, idx=%rows_i_168
|
191
191
|
loop col id=L16 in %rows_el_167 as el=%col_el_169, idx=%col_i_170
|
192
|
-
%t171 =
|
192
|
+
%t171 = length %t166 :: integer
|
193
193
|
%t172 = const 1 :: integer
|
194
194
|
%t173 = call core.sub(%rows_i_168, %t172) :: integer
|
195
195
|
%t174 = const 0 :: integer
|
@@ -200,8 +200,8 @@
|
|
200
200
|
%t179 = call core.sub(%t171, %t178) :: integer
|
201
201
|
%t180 = const 0 :: integer
|
202
202
|
%t181 = call core.clamp(%t173, %t180, %t179) :: integer
|
203
|
-
%t182 =
|
204
|
-
%t183 =
|
203
|
+
%t182 = gather %t166, %t181 :: any
|
204
|
+
%t183 = length %t182 :: integer
|
205
205
|
%t184 = const -1 :: integer
|
206
206
|
%t185 = call core.sub(%col_i_170, %t184) :: integer
|
207
207
|
%t186 = const 0 :: integer
|
@@ -213,7 +213,7 @@
|
|
213
213
|
%t192 = call core.sub(%t183, %t191) :: integer
|
214
214
|
%t193 = const 0 :: integer
|
215
215
|
%t194 = call core.clamp(%t185, %t193, %t192) :: integer
|
216
|
-
%t195 =
|
216
|
+
%t195 = gather %t182, %t194 :: integer
|
217
217
|
%t196 = const 0 :: integer
|
218
218
|
%t197 = select %t190, %t195, %t196 :: integer
|
219
219
|
yield %t197
|
@@ -224,7 +224,7 @@
|
|
224
224
|
%t198 = load_input "rows" :: array
|
225
225
|
loop rows id=L17 in %t198 as el=%rows_el_199, idx=%rows_i_200
|
226
226
|
loop col id=L18 in %rows_el_199 as el=%col_el_201, idx=%col_i_202
|
227
|
-
%t203 =
|
227
|
+
%t203 = length %t198 :: integer
|
228
228
|
%t204 = const 1 :: integer
|
229
229
|
%t205 = call core.sub(%rows_i_200, %t204) :: integer
|
230
230
|
%t206 = const 0 :: integer
|
@@ -235,8 +235,8 @@
|
|
235
235
|
%t211 = call core.sub(%t203, %t210) :: integer
|
236
236
|
%t212 = const 0 :: integer
|
237
237
|
%t213 = call core.clamp(%t205, %t212, %t211) :: integer
|
238
|
-
%t214 =
|
239
|
-
%t215 =
|
238
|
+
%t214 = gather %t198, %t213 :: any
|
239
|
+
%t215 = length %t214 :: integer
|
240
240
|
%t216 = const 1 :: integer
|
241
241
|
%t217 = call core.sub(%col_i_202, %t216) :: integer
|
242
242
|
%t218 = const 0 :: integer
|
@@ -248,7 +248,7 @@
|
|
248
248
|
%t224 = call core.sub(%t215, %t223) :: integer
|
249
249
|
%t225 = const 0 :: integer
|
250
250
|
%t226 = call core.clamp(%t217, %t225, %t224) :: integer
|
251
|
-
%t227 =
|
251
|
+
%t227 = gather %t214, %t226 :: integer
|
252
252
|
%t228 = const 0 :: integer
|
253
253
|
%t229 = select %t222, %t227, %t228 :: integer
|
254
254
|
yield %t229
|
@@ -260,7 +260,7 @@
|
|
260
260
|
loop rows id=L19 in %t230 as el=%rows_el_231, idx=%rows_i_232
|
261
261
|
loop col id=L20 in %rows_el_231 as el=%col_el_233, idx=%col_i_234
|
262
262
|
%t294 = load_input "rows" :: array
|
263
|
-
%t295 =
|
263
|
+
%t295 = length %t294 :: integer
|
264
264
|
%t296 = const -1 :: integer
|
265
265
|
%t297 = call core.sub(%rows_i_232, %t296) :: integer
|
266
266
|
%t298 = const 0 :: integer
|
@@ -271,16 +271,16 @@
|
|
271
271
|
%t303 = call core.sub(%t295, %t302) :: integer
|
272
272
|
%t304 = const 0 :: integer
|
273
273
|
%t305 = call core.clamp(%t297, %t304, %t303) :: integer
|
274
|
-
%t306 =
|
275
|
-
%t307 =
|
274
|
+
%t306 = gather %t294, %t305 :: any
|
275
|
+
%t307 = length %t306 :: integer
|
276
276
|
%t308 = call core.mod(%col_i_234, %t307) :: integer
|
277
277
|
%t309 = call core.add(%t308, %t307) :: integer
|
278
278
|
%t310 = call core.mod(%t309, %t307) :: integer
|
279
|
-
%t311 =
|
279
|
+
%t311 = gather %t306, %t310 :: integer
|
280
280
|
%t312 = const 0 :: integer
|
281
281
|
%t313 = select %t301, %t311, %t312 :: integer
|
282
282
|
%t314 = load_input "rows" :: array
|
283
|
-
%t315 =
|
283
|
+
%t315 = length %t314 :: integer
|
284
284
|
%t316 = const 1 :: integer
|
285
285
|
%t317 = call core.sub(%rows_i_232, %t316) :: integer
|
286
286
|
%t318 = const 0 :: integer
|
@@ -291,21 +291,21 @@
|
|
291
291
|
%t323 = call core.sub(%t315, %t322) :: integer
|
292
292
|
%t324 = const 0 :: integer
|
293
293
|
%t325 = call core.clamp(%t317, %t324, %t323) :: integer
|
294
|
-
%t326 =
|
295
|
-
%t327 =
|
294
|
+
%t326 = gather %t314, %t325 :: any
|
295
|
+
%t327 = length %t326 :: integer
|
296
296
|
%t328 = call core.mod(%col_i_234, %t327) :: integer
|
297
297
|
%t329 = call core.add(%t328, %t327) :: integer
|
298
298
|
%t330 = call core.mod(%t329, %t327) :: integer
|
299
|
-
%t331 =
|
299
|
+
%t331 = gather %t326, %t330 :: integer
|
300
300
|
%t332 = const 0 :: integer
|
301
301
|
%t333 = select %t321, %t331, %t332 :: integer
|
302
302
|
%t334 = load_input "rows" :: array
|
303
|
-
%t335 =
|
303
|
+
%t335 = length %t334 :: integer
|
304
304
|
%t336 = call core.mod(%rows_i_232, %t335) :: integer
|
305
305
|
%t337 = call core.add(%t336, %t335) :: integer
|
306
306
|
%t338 = call core.mod(%t337, %t335) :: integer
|
307
|
-
%t339 =
|
308
|
-
%t340 =
|
307
|
+
%t339 = gather %t334, %t338 :: any
|
308
|
+
%t340 = length %t339 :: integer
|
309
309
|
%t341 = const -1 :: integer
|
310
310
|
%t342 = call core.sub(%col_i_234, %t341) :: integer
|
311
311
|
%t343 = const 0 :: integer
|
@@ -316,16 +316,16 @@
|
|
316
316
|
%t348 = call core.sub(%t340, %t347) :: integer
|
317
317
|
%t349 = const 0 :: integer
|
318
318
|
%t350 = call core.clamp(%t342, %t349, %t348) :: integer
|
319
|
-
%t351 =
|
319
|
+
%t351 = gather %t339, %t350 :: integer
|
320
320
|
%t352 = const 0 :: integer
|
321
321
|
%t353 = select %t346, %t351, %t352 :: integer
|
322
322
|
%t354 = load_input "rows" :: array
|
323
|
-
%t355 =
|
323
|
+
%t355 = length %t354 :: integer
|
324
324
|
%t356 = call core.mod(%rows_i_232, %t355) :: integer
|
325
325
|
%t357 = call core.add(%t356, %t355) :: integer
|
326
326
|
%t358 = call core.mod(%t357, %t355) :: integer
|
327
|
-
%t359 =
|
328
|
-
%t360 =
|
327
|
+
%t359 = gather %t354, %t358 :: any
|
328
|
+
%t360 = length %t359 :: integer
|
329
329
|
%t361 = const 1 :: integer
|
330
330
|
%t362 = call core.sub(%col_i_234, %t361) :: integer
|
331
331
|
%t363 = const 0 :: integer
|
@@ -336,11 +336,11 @@
|
|
336
336
|
%t368 = call core.sub(%t360, %t367) :: integer
|
337
337
|
%t369 = const 0 :: integer
|
338
338
|
%t370 = call core.clamp(%t362, %t369, %t368) :: integer
|
339
|
-
%t371 =
|
339
|
+
%t371 = gather %t359, %t370 :: integer
|
340
340
|
%t372 = const 0 :: integer
|
341
341
|
%t373 = select %t366, %t371, %t372 :: integer
|
342
342
|
%t374 = load_input "rows" :: array
|
343
|
-
%t375 =
|
343
|
+
%t375 = length %t374 :: integer
|
344
344
|
%t376 = const -1 :: integer
|
345
345
|
%t377 = call core.sub(%rows_i_232, %t376) :: integer
|
346
346
|
%t378 = const 0 :: integer
|
@@ -351,8 +351,8 @@
|
|
351
351
|
%t383 = call core.sub(%t375, %t382) :: integer
|
352
352
|
%t384 = const 0 :: integer
|
353
353
|
%t385 = call core.clamp(%t377, %t384, %t383) :: integer
|
354
|
-
%t386 =
|
355
|
-
%t387 =
|
354
|
+
%t386 = gather %t374, %t385 :: any
|
355
|
+
%t387 = length %t386 :: integer
|
356
356
|
%t388 = const -1 :: integer
|
357
357
|
%t389 = call core.sub(%col_i_234, %t388) :: integer
|
358
358
|
%t390 = const 0 :: integer
|
@@ -364,11 +364,11 @@
|
|
364
364
|
%t396 = call core.sub(%t387, %t395) :: integer
|
365
365
|
%t397 = const 0 :: integer
|
366
366
|
%t398 = call core.clamp(%t389, %t397, %t396) :: integer
|
367
|
-
%t399 =
|
367
|
+
%t399 = gather %t386, %t398 :: integer
|
368
368
|
%t400 = const 0 :: integer
|
369
369
|
%t401 = select %t394, %t399, %t400 :: integer
|
370
370
|
%t402 = load_input "rows" :: array
|
371
|
-
%t403 =
|
371
|
+
%t403 = length %t402 :: integer
|
372
372
|
%t404 = const -1 :: integer
|
373
373
|
%t405 = call core.sub(%rows_i_232, %t404) :: integer
|
374
374
|
%t406 = const 0 :: integer
|
@@ -379,8 +379,8 @@
|
|
379
379
|
%t411 = call core.sub(%t403, %t410) :: integer
|
380
380
|
%t412 = const 0 :: integer
|
381
381
|
%t413 = call core.clamp(%t405, %t412, %t411) :: integer
|
382
|
-
%t414 =
|
383
|
-
%t415 =
|
382
|
+
%t414 = gather %t402, %t413 :: any
|
383
|
+
%t415 = length %t414 :: integer
|
384
384
|
%t416 = const 1 :: integer
|
385
385
|
%t417 = call core.sub(%col_i_234, %t416) :: integer
|
386
386
|
%t418 = const 0 :: integer
|
@@ -392,11 +392,11 @@
|
|
392
392
|
%t424 = call core.sub(%t415, %t423) :: integer
|
393
393
|
%t425 = const 0 :: integer
|
394
394
|
%t426 = call core.clamp(%t417, %t425, %t424) :: integer
|
395
|
-
%t427 =
|
395
|
+
%t427 = gather %t414, %t426 :: integer
|
396
396
|
%t428 = const 0 :: integer
|
397
397
|
%t429 = select %t422, %t427, %t428 :: integer
|
398
398
|
%t430 = load_input "rows" :: array
|
399
|
-
%t431 =
|
399
|
+
%t431 = length %t430 :: integer
|
400
400
|
%t432 = const 1 :: integer
|
401
401
|
%t433 = call core.sub(%rows_i_232, %t432) :: integer
|
402
402
|
%t434 = const 0 :: integer
|
@@ -407,8 +407,8 @@
|
|
407
407
|
%t439 = call core.sub(%t431, %t438) :: integer
|
408
408
|
%t440 = const 0 :: integer
|
409
409
|
%t441 = call core.clamp(%t433, %t440, %t439) :: integer
|
410
|
-
%t442 =
|
411
|
-
%t443 =
|
410
|
+
%t442 = gather %t430, %t441 :: any
|
411
|
+
%t443 = length %t442 :: integer
|
412
412
|
%t444 = const -1 :: integer
|
413
413
|
%t445 = call core.sub(%col_i_234, %t444) :: integer
|
414
414
|
%t446 = const 0 :: integer
|
@@ -420,11 +420,11 @@
|
|
420
420
|
%t452 = call core.sub(%t443, %t451) :: integer
|
421
421
|
%t453 = const 0 :: integer
|
422
422
|
%t454 = call core.clamp(%t445, %t453, %t452) :: integer
|
423
|
-
%t455 =
|
423
|
+
%t455 = gather %t442, %t454 :: integer
|
424
424
|
%t456 = const 0 :: integer
|
425
425
|
%t457 = select %t450, %t455, %t456 :: integer
|
426
426
|
%t458 = load_input "rows" :: array
|
427
|
-
%t459 =
|
427
|
+
%t459 = length %t458 :: integer
|
428
428
|
%t460 = const 1 :: integer
|
429
429
|
%t461 = call core.sub(%rows_i_232, %t460) :: integer
|
430
430
|
%t462 = const 0 :: integer
|
@@ -435,8 +435,8 @@
|
|
435
435
|
%t467 = call core.sub(%t459, %t466) :: integer
|
436
436
|
%t468 = const 0 :: integer
|
437
437
|
%t469 = call core.clamp(%t461, %t468, %t467) :: integer
|
438
|
-
%t470 =
|
439
|
-
%t471 =
|
438
|
+
%t470 = gather %t458, %t469 :: any
|
439
|
+
%t471 = length %t470 :: integer
|
440
440
|
%t472 = const 1 :: integer
|
441
441
|
%t473 = call core.sub(%col_i_234, %t472) :: integer
|
442
442
|
%t474 = const 0 :: integer
|
@@ -448,11 +448,11 @@
|
|
448
448
|
%t480 = call core.sub(%t471, %t479) :: integer
|
449
449
|
%t481 = const 0 :: integer
|
450
450
|
%t482 = call core.clamp(%t473, %t481, %t480) :: integer
|
451
|
-
%t483 =
|
451
|
+
%t483 = gather %t470, %t482 :: integer
|
452
452
|
%t484 = const 0 :: integer
|
453
453
|
%t485 = select %t478, %t483, %t484 :: integer
|
454
454
|
%t243 = make_tuple(%t313, %t333, %t353, %t373, %t401, %t429, %t457, %t485) :: tuple<integer>
|
455
|
-
%t244 =
|
455
|
+
%t244 = fold %t243 fn="agg.sum" ::
|
456
456
|
yield %t244
|
457
457
|
end_loop
|
458
458
|
end_loop
|
@@ -473,200 +473,200 @@
|
|
473
473
|
loop rows id=L23 in %t253 as el=%rows_el_254, idx=%rows_i_255
|
474
474
|
loop col id=L24 in %rows_el_254 as el=%col_el_256, idx=%col_i_257
|
475
475
|
%t487 = load_input "rows" :: array
|
476
|
-
%
|
477
|
-
%
|
478
|
-
%
|
479
|
-
%
|
480
|
-
%
|
481
|
-
%
|
482
|
-
%
|
483
|
-
%
|
484
|
-
%
|
485
|
-
%
|
486
|
-
%
|
487
|
-
%
|
488
|
-
%
|
489
|
-
%
|
490
|
-
%
|
491
|
-
%
|
492
|
-
%
|
493
|
-
%
|
476
|
+
%t498 = load_input "rows" :: array
|
477
|
+
%t499 = length %t498 :: integer
|
478
|
+
%t500 = const -1 :: integer
|
479
|
+
%t501 = call core.sub(%rows_i_255, %t500) :: integer
|
480
|
+
%t502 = const 0 :: integer
|
481
|
+
%t503 = call core.gte(%t501, %t502) :: boolean
|
482
|
+
%t504 = call core.lt(%t501, %t499) :: boolean
|
483
|
+
%t505 = call core.and(%t503, %t504) :: boolean
|
484
|
+
%t506 = const 1 :: integer
|
485
|
+
%t507 = call core.sub(%t499, %t506) :: integer
|
486
|
+
%t508 = const 0 :: integer
|
487
|
+
%t509 = call core.clamp(%t501, %t508, %t507) :: integer
|
488
|
+
%t510 = gather %t498, %t509 :: any
|
489
|
+
%t511 = length %t510 :: integer
|
490
|
+
%t512 = call core.mod(%col_i_257, %t511) :: integer
|
491
|
+
%t513 = call core.add(%t512, %t511) :: integer
|
492
|
+
%t514 = call core.mod(%t513, %t511) :: integer
|
493
|
+
%t515 = gather %t510, %t514 :: integer
|
494
|
+
%t516 = const 0 :: integer
|
495
|
+
%t517 = select %t505, %t515, %t516 :: integer
|
496
|
+
%t518 = load_input "rows" :: array
|
497
|
+
%t519 = length %t518 :: integer
|
498
|
+
%t520 = const 1 :: integer
|
499
|
+
%t521 = call core.sub(%rows_i_255, %t520) :: integer
|
500
|
+
%t522 = const 0 :: integer
|
501
|
+
%t523 = call core.gte(%t521, %t522) :: boolean
|
502
|
+
%t524 = call core.lt(%t521, %t519) :: boolean
|
503
|
+
%t525 = call core.and(%t523, %t524) :: boolean
|
504
|
+
%t526 = const 1 :: integer
|
505
|
+
%t527 = call core.sub(%t519, %t526) :: integer
|
506
|
+
%t528 = const 0 :: integer
|
507
|
+
%t529 = call core.clamp(%t521, %t528, %t527) :: integer
|
508
|
+
%t530 = gather %t518, %t529 :: any
|
509
|
+
%t531 = length %t530 :: integer
|
510
|
+
%t532 = call core.mod(%col_i_257, %t531) :: integer
|
511
|
+
%t533 = call core.add(%t532, %t531) :: integer
|
512
|
+
%t534 = call core.mod(%t533, %t531) :: integer
|
513
|
+
%t535 = gather %t530, %t534 :: integer
|
514
|
+
%t536 = const 0 :: integer
|
515
|
+
%t537 = select %t525, %t535, %t536 :: integer
|
516
|
+
%t538 = load_input "rows" :: array
|
517
|
+
%t539 = length %t538 :: integer
|
518
|
+
%t540 = call core.mod(%rows_i_255, %t539) :: integer
|
519
|
+
%t541 = call core.add(%t540, %t539) :: integer
|
520
|
+
%t542 = call core.mod(%t541, %t539) :: integer
|
521
|
+
%t543 = gather %t538, %t542 :: any
|
522
|
+
%t544 = length %t543 :: integer
|
523
|
+
%t545 = const -1 :: integer
|
524
|
+
%t546 = call core.sub(%col_i_257, %t545) :: integer
|
494
525
|
%t547 = const 0 :: integer
|
495
|
-
%t548 =
|
496
|
-
%t549 =
|
497
|
-
%t550 =
|
526
|
+
%t548 = call core.gte(%t546, %t547) :: boolean
|
527
|
+
%t549 = call core.lt(%t546, %t544) :: boolean
|
528
|
+
%t550 = call core.and(%t548, %t549) :: boolean
|
498
529
|
%t551 = const 1 :: integer
|
499
|
-
%t552 = call core.sub(%
|
530
|
+
%t552 = call core.sub(%t544, %t551) :: integer
|
500
531
|
%t553 = const 0 :: integer
|
501
|
-
%t554 = call core.
|
502
|
-
%t555 =
|
503
|
-
%t556 =
|
504
|
-
%t557 =
|
505
|
-
%t558 =
|
506
|
-
%t559 =
|
507
|
-
%t560 = call core.
|
508
|
-
%t561 =
|
509
|
-
%t562 =
|
510
|
-
%t563 =
|
511
|
-
%t564 =
|
512
|
-
%t565 =
|
513
|
-
%t566 =
|
532
|
+
%t554 = call core.clamp(%t546, %t553, %t552) :: integer
|
533
|
+
%t555 = gather %t543, %t554 :: integer
|
534
|
+
%t556 = const 0 :: integer
|
535
|
+
%t557 = select %t550, %t555, %t556 :: integer
|
536
|
+
%t558 = load_input "rows" :: array
|
537
|
+
%t559 = length %t558 :: integer
|
538
|
+
%t560 = call core.mod(%rows_i_255, %t559) :: integer
|
539
|
+
%t561 = call core.add(%t560, %t559) :: integer
|
540
|
+
%t562 = call core.mod(%t561, %t559) :: integer
|
541
|
+
%t563 = gather %t558, %t562 :: any
|
542
|
+
%t564 = length %t563 :: integer
|
543
|
+
%t565 = const 1 :: integer
|
544
|
+
%t566 = call core.sub(%col_i_257, %t565) :: integer
|
514
545
|
%t567 = const 0 :: integer
|
515
|
-
%t568 =
|
516
|
-
%t569 =
|
517
|
-
%t570 =
|
518
|
-
%t571 =
|
519
|
-
%t572 = call core.
|
520
|
-
%t573 =
|
521
|
-
%t574 =
|
522
|
-
%t575 =
|
523
|
-
%t576 = const
|
524
|
-
%t577 =
|
525
|
-
%t578 =
|
526
|
-
%t579 =
|
527
|
-
%t580 =
|
528
|
-
%t581 = call core.
|
529
|
-
%t582 = const
|
530
|
-
%t583 = call core.
|
531
|
-
%t584 =
|
532
|
-
%t585 = call core.
|
533
|
-
%t586 =
|
534
|
-
%t587 =
|
535
|
-
%t588 =
|
536
|
-
%t589 =
|
537
|
-
%t590 =
|
538
|
-
%t591 =
|
539
|
-
%t592 =
|
540
|
-
%t593 = call core.
|
541
|
-
%t594 =
|
542
|
-
%t595 =
|
543
|
-
%t596 =
|
544
|
-
%t597 = call core.
|
545
|
-
%t598 =
|
546
|
-
%t599 =
|
547
|
-
%t600 = call core.
|
548
|
-
%t601 =
|
549
|
-
%t602 =
|
550
|
-
%t603 =
|
546
|
+
%t568 = call core.gte(%t566, %t567) :: boolean
|
547
|
+
%t569 = call core.lt(%t566, %t564) :: boolean
|
548
|
+
%t570 = call core.and(%t568, %t569) :: boolean
|
549
|
+
%t571 = const 1 :: integer
|
550
|
+
%t572 = call core.sub(%t564, %t571) :: integer
|
551
|
+
%t573 = const 0 :: integer
|
552
|
+
%t574 = call core.clamp(%t566, %t573, %t572) :: integer
|
553
|
+
%t575 = gather %t563, %t574 :: integer
|
554
|
+
%t576 = const 0 :: integer
|
555
|
+
%t577 = select %t570, %t575, %t576 :: integer
|
556
|
+
%t578 = load_input "rows" :: array
|
557
|
+
%t579 = length %t578 :: integer
|
558
|
+
%t580 = const -1 :: integer
|
559
|
+
%t581 = call core.sub(%rows_i_255, %t580) :: integer
|
560
|
+
%t582 = const 0 :: integer
|
561
|
+
%t583 = call core.gte(%t581, %t582) :: boolean
|
562
|
+
%t584 = call core.lt(%t581, %t579) :: boolean
|
563
|
+
%t585 = call core.and(%t583, %t584) :: boolean
|
564
|
+
%t586 = const 1 :: integer
|
565
|
+
%t587 = call core.sub(%t579, %t586) :: integer
|
566
|
+
%t588 = const 0 :: integer
|
567
|
+
%t589 = call core.clamp(%t581, %t588, %t587) :: integer
|
568
|
+
%t590 = gather %t578, %t589 :: any
|
569
|
+
%t591 = length %t590 :: integer
|
570
|
+
%t592 = const -1 :: integer
|
571
|
+
%t593 = call core.sub(%col_i_257, %t592) :: integer
|
572
|
+
%t594 = const 0 :: integer
|
573
|
+
%t595 = call core.gte(%t593, %t594) :: boolean
|
574
|
+
%t596 = call core.lt(%t593, %t591) :: boolean
|
575
|
+
%t597 = call core.and(%t595, %t596) :: boolean
|
576
|
+
%t598 = call core.and(%t585, %t597) :: boolean
|
577
|
+
%t599 = const 1 :: integer
|
578
|
+
%t600 = call core.sub(%t591, %t599) :: integer
|
579
|
+
%t601 = const 0 :: integer
|
580
|
+
%t602 = call core.clamp(%t593, %t601, %t600) :: integer
|
581
|
+
%t603 = gather %t590, %t602 :: integer
|
551
582
|
%t604 = const 0 :: integer
|
552
|
-
%t605 =
|
553
|
-
%t606 =
|
554
|
-
%t607 =
|
555
|
-
%t608 =
|
556
|
-
%t609 =
|
557
|
-
%t610 =
|
558
|
-
%t611 =
|
559
|
-
%t612 = call core.
|
560
|
-
%t613 =
|
561
|
-
%t614 =
|
562
|
-
%t615 = call core.
|
563
|
-
%t616 =
|
564
|
-
%t617 =
|
565
|
-
%t618 =
|
566
|
-
%t619 =
|
567
|
-
%t620 =
|
568
|
-
%t621 =
|
569
|
-
%t622 =
|
570
|
-
%t623 =
|
571
|
-
%t624 = call core.
|
572
|
-
%t625 =
|
573
|
-
%t626 = call core.
|
574
|
-
%t627 =
|
575
|
-
%t628 = call core.
|
576
|
-
%t629 =
|
577
|
-
%t630 =
|
578
|
-
%t631 =
|
583
|
+
%t605 = select %t598, %t603, %t604 :: integer
|
584
|
+
%t606 = load_input "rows" :: array
|
585
|
+
%t607 = length %t606 :: integer
|
586
|
+
%t608 = const -1 :: integer
|
587
|
+
%t609 = call core.sub(%rows_i_255, %t608) :: integer
|
588
|
+
%t610 = const 0 :: integer
|
589
|
+
%t611 = call core.gte(%t609, %t610) :: boolean
|
590
|
+
%t612 = call core.lt(%t609, %t607) :: boolean
|
591
|
+
%t613 = call core.and(%t611, %t612) :: boolean
|
592
|
+
%t614 = const 1 :: integer
|
593
|
+
%t615 = call core.sub(%t607, %t614) :: integer
|
594
|
+
%t616 = const 0 :: integer
|
595
|
+
%t617 = call core.clamp(%t609, %t616, %t615) :: integer
|
596
|
+
%t618 = gather %t606, %t617 :: any
|
597
|
+
%t619 = length %t618 :: integer
|
598
|
+
%t620 = const 1 :: integer
|
599
|
+
%t621 = call core.sub(%col_i_257, %t620) :: integer
|
600
|
+
%t622 = const 0 :: integer
|
601
|
+
%t623 = call core.gte(%t621, %t622) :: boolean
|
602
|
+
%t624 = call core.lt(%t621, %t619) :: boolean
|
603
|
+
%t625 = call core.and(%t623, %t624) :: boolean
|
604
|
+
%t626 = call core.and(%t613, %t625) :: boolean
|
605
|
+
%t627 = const 1 :: integer
|
606
|
+
%t628 = call core.sub(%t619, %t627) :: integer
|
607
|
+
%t629 = const 0 :: integer
|
608
|
+
%t630 = call core.clamp(%t621, %t629, %t628) :: integer
|
609
|
+
%t631 = gather %t618, %t630 :: integer
|
579
610
|
%t632 = const 0 :: integer
|
580
|
-
%t633 =
|
581
|
-
%t634 =
|
582
|
-
%t635 =
|
583
|
-
%t636 =
|
584
|
-
%t637 =
|
585
|
-
%t638 =
|
586
|
-
%t639 =
|
587
|
-
%t640 = call core.
|
588
|
-
%t641 =
|
589
|
-
%t642 =
|
590
|
-
%t643 = call core.
|
591
|
-
%t644 =
|
592
|
-
%t645 =
|
593
|
-
%t646 =
|
594
|
-
%t647 =
|
595
|
-
%t648 =
|
596
|
-
%t649 =
|
597
|
-
%t650 =
|
598
|
-
%t651 =
|
599
|
-
%t652 = call core.
|
600
|
-
%t653 =
|
601
|
-
%t654 = call core.
|
602
|
-
%t655 =
|
603
|
-
%t656 = call core.
|
604
|
-
%t657 =
|
605
|
-
%t658 =
|
606
|
-
%t659 =
|
611
|
+
%t633 = select %t626, %t631, %t632 :: integer
|
612
|
+
%t634 = load_input "rows" :: array
|
613
|
+
%t635 = length %t634 :: integer
|
614
|
+
%t636 = const 1 :: integer
|
615
|
+
%t637 = call core.sub(%rows_i_255, %t636) :: integer
|
616
|
+
%t638 = const 0 :: integer
|
617
|
+
%t639 = call core.gte(%t637, %t638) :: boolean
|
618
|
+
%t640 = call core.lt(%t637, %t635) :: boolean
|
619
|
+
%t641 = call core.and(%t639, %t640) :: boolean
|
620
|
+
%t642 = const 1 :: integer
|
621
|
+
%t643 = call core.sub(%t635, %t642) :: integer
|
622
|
+
%t644 = const 0 :: integer
|
623
|
+
%t645 = call core.clamp(%t637, %t644, %t643) :: integer
|
624
|
+
%t646 = gather %t634, %t645 :: any
|
625
|
+
%t647 = length %t646 :: integer
|
626
|
+
%t648 = const -1 :: integer
|
627
|
+
%t649 = call core.sub(%col_i_257, %t648) :: integer
|
628
|
+
%t650 = const 0 :: integer
|
629
|
+
%t651 = call core.gte(%t649, %t650) :: boolean
|
630
|
+
%t652 = call core.lt(%t649, %t647) :: boolean
|
631
|
+
%t653 = call core.and(%t651, %t652) :: boolean
|
632
|
+
%t654 = call core.and(%t641, %t653) :: boolean
|
633
|
+
%t655 = const 1 :: integer
|
634
|
+
%t656 = call core.sub(%t647, %t655) :: integer
|
635
|
+
%t657 = const 0 :: integer
|
636
|
+
%t658 = call core.clamp(%t649, %t657, %t656) :: integer
|
637
|
+
%t659 = gather %t646, %t658 :: integer
|
607
638
|
%t660 = const 0 :: integer
|
608
|
-
%t661 =
|
609
|
-
%t662 =
|
610
|
-
%t663 =
|
611
|
-
%t664 =
|
612
|
-
%t665 =
|
613
|
-
%t666 =
|
614
|
-
%t667 =
|
615
|
-
%t668 = call core.
|
616
|
-
%t669 =
|
617
|
-
%t670 =
|
618
|
-
%t671 = call core.
|
619
|
-
%t672 =
|
620
|
-
%t673 =
|
621
|
-
%t674 =
|
622
|
-
%t675 =
|
623
|
-
%t676 =
|
624
|
-
%t677 =
|
625
|
-
%t678 =
|
626
|
-
%t679 =
|
627
|
-
%t680 = call core.
|
628
|
-
%t681 =
|
629
|
-
%t682 = call core.
|
630
|
-
%t683 =
|
631
|
-
%t684 = call core.
|
632
|
-
%t685 =
|
633
|
-
%t686 =
|
634
|
-
%t687 =
|
639
|
+
%t661 = select %t654, %t659, %t660 :: integer
|
640
|
+
%t662 = load_input "rows" :: array
|
641
|
+
%t663 = length %t662 :: integer
|
642
|
+
%t664 = const 1 :: integer
|
643
|
+
%t665 = call core.sub(%rows_i_255, %t664) :: integer
|
644
|
+
%t666 = const 0 :: integer
|
645
|
+
%t667 = call core.gte(%t665, %t666) :: boolean
|
646
|
+
%t668 = call core.lt(%t665, %t663) :: boolean
|
647
|
+
%t669 = call core.and(%t667, %t668) :: boolean
|
648
|
+
%t670 = const 1 :: integer
|
649
|
+
%t671 = call core.sub(%t663, %t670) :: integer
|
650
|
+
%t672 = const 0 :: integer
|
651
|
+
%t673 = call core.clamp(%t665, %t672, %t671) :: integer
|
652
|
+
%t674 = gather %t662, %t673 :: any
|
653
|
+
%t675 = length %t674 :: integer
|
654
|
+
%t676 = const 1 :: integer
|
655
|
+
%t677 = call core.sub(%col_i_257, %t676) :: integer
|
656
|
+
%t678 = const 0 :: integer
|
657
|
+
%t679 = call core.gte(%t677, %t678) :: boolean
|
658
|
+
%t680 = call core.lt(%t677, %t675) :: boolean
|
659
|
+
%t681 = call core.and(%t679, %t680) :: boolean
|
660
|
+
%t682 = call core.and(%t669, %t681) :: boolean
|
661
|
+
%t683 = const 1 :: integer
|
662
|
+
%t684 = call core.sub(%t675, %t683) :: integer
|
663
|
+
%t685 = const 0 :: integer
|
664
|
+
%t686 = call core.clamp(%t677, %t685, %t684) :: integer
|
665
|
+
%t687 = gather %t674, %t686 :: integer
|
635
666
|
%t688 = const 0 :: integer
|
636
|
-
%t689 =
|
637
|
-
%
|
638
|
-
%
|
639
|
-
%t692 = select %t685, %t690, %t691 :: integer
|
640
|
-
%t693 = load_input "rows" :: array
|
641
|
-
%t694 = Length %t693 :: integer
|
642
|
-
%t695 = const 1 :: integer
|
643
|
-
%t696 = call core.sub(%rows_i_255, %t695) :: integer
|
644
|
-
%t697 = const 0 :: integer
|
645
|
-
%t698 = call core.gte(%t696, %t697) :: boolean
|
646
|
-
%t699 = call core.lt(%t696, %t694) :: boolean
|
647
|
-
%t700 = call core.and(%t698, %t699) :: boolean
|
648
|
-
%t701 = const 1 :: integer
|
649
|
-
%t702 = call core.sub(%t694, %t701) :: integer
|
650
|
-
%t703 = const 0 :: integer
|
651
|
-
%t704 = call core.clamp(%t696, %t703, %t702) :: integer
|
652
|
-
%t705 = Gather %t693, %t704 :: any
|
653
|
-
%t706 = Length %t705 :: integer
|
654
|
-
%t707 = const 1 :: integer
|
655
|
-
%t708 = call core.sub(%col_i_257, %t707) :: integer
|
656
|
-
%t709 = const 0 :: integer
|
657
|
-
%t710 = call core.gte(%t708, %t709) :: boolean
|
658
|
-
%t711 = call core.lt(%t708, %t706) :: boolean
|
659
|
-
%t712 = call core.and(%t710, %t711) :: boolean
|
660
|
-
%t713 = call core.and(%t700, %t712) :: boolean
|
661
|
-
%t714 = const 1 :: integer
|
662
|
-
%t715 = call core.sub(%t706, %t714) :: integer
|
663
|
-
%t716 = const 0 :: integer
|
664
|
-
%t717 = call core.clamp(%t708, %t716, %t715) :: integer
|
665
|
-
%t718 = Gather %t705, %t717 :: integer
|
666
|
-
%t719 = const 0 :: integer
|
667
|
-
%t720 = select %t713, %t718, %t719 :: integer
|
668
|
-
%t496 = make_tuple(%t548, %t568, %t588, %t608, %t636, %t664, %t692, %t720) :: tuple<integer>
|
669
|
-
%t497 = Fold %t496 fn="agg.sum" ::
|
667
|
+
%t689 = select %t682, %t687, %t688 :: integer
|
668
|
+
%t496 = make_tuple(%t517, %t537, %t557, %t577, %t605, %t633, %t661, %t689) :: tuple<integer>
|
669
|
+
%t497 = fold %t496 fn="agg.sum" ::
|
670
670
|
%t259 = const 3 :: integer
|
671
671
|
%t260 = call core.eq(%t497, %t259) :: boolean
|
672
672
|
yield %t260
|
@@ -677,10 +677,30 @@
|
|
677
677
|
%t261 = load_input "rows" :: array
|
678
678
|
loop rows id=L25 in %t261 as el=%rows_el_262, idx=%rows_i_263
|
679
679
|
loop col id=L26 in %rows_el_262 as el=%col_el_264, idx=%col_i_265
|
680
|
-
%
|
680
|
+
%t690 = load_input "rows" :: array
|
681
|
+
%t701 = load_input "rows" :: array
|
682
|
+
%t702 = length %t701 :: integer
|
683
|
+
%t703 = const -1 :: integer
|
684
|
+
%t704 = call core.sub(%rows_i_263, %t703) :: integer
|
685
|
+
%t705 = const 0 :: integer
|
686
|
+
%t706 = call core.gte(%t704, %t705) :: boolean
|
687
|
+
%t707 = call core.lt(%t704, %t702) :: boolean
|
688
|
+
%t708 = call core.and(%t706, %t707) :: boolean
|
689
|
+
%t709 = const 1 :: integer
|
690
|
+
%t710 = call core.sub(%t702, %t709) :: integer
|
691
|
+
%t711 = const 0 :: integer
|
692
|
+
%t712 = call core.clamp(%t704, %t711, %t710) :: integer
|
693
|
+
%t713 = gather %t701, %t712 :: any
|
694
|
+
%t714 = length %t713 :: integer
|
695
|
+
%t715 = call core.mod(%col_i_265, %t714) :: integer
|
696
|
+
%t716 = call core.add(%t715, %t714) :: integer
|
697
|
+
%t717 = call core.mod(%t716, %t714) :: integer
|
698
|
+
%t718 = gather %t713, %t717 :: integer
|
699
|
+
%t719 = const 0 :: integer
|
700
|
+
%t720 = select %t708, %t718, %t719 :: integer
|
681
701
|
%t721 = load_input "rows" :: array
|
682
|
-
%t722 =
|
683
|
-
%t723 = const
|
702
|
+
%t722 = length %t721 :: integer
|
703
|
+
%t723 = const 1 :: integer
|
684
704
|
%t724 = call core.sub(%rows_i_263, %t723) :: integer
|
685
705
|
%t725 = const 0 :: integer
|
686
706
|
%t726 = call core.gte(%t724, %t725) :: boolean
|
@@ -690,42 +710,42 @@
|
|
690
710
|
%t730 = call core.sub(%t722, %t729) :: integer
|
691
711
|
%t731 = const 0 :: integer
|
692
712
|
%t732 = call core.clamp(%t724, %t731, %t730) :: integer
|
693
|
-
%t733 =
|
694
|
-
%t734 =
|
713
|
+
%t733 = gather %t721, %t732 :: any
|
714
|
+
%t734 = length %t733 :: integer
|
695
715
|
%t735 = call core.mod(%col_i_265, %t734) :: integer
|
696
716
|
%t736 = call core.add(%t735, %t734) :: integer
|
697
717
|
%t737 = call core.mod(%t736, %t734) :: integer
|
698
|
-
%t738 =
|
718
|
+
%t738 = gather %t733, %t737 :: integer
|
699
719
|
%t739 = const 0 :: integer
|
700
720
|
%t740 = select %t728, %t738, %t739 :: integer
|
701
721
|
%t741 = load_input "rows" :: array
|
702
|
-
%t742 =
|
703
|
-
%t743 =
|
704
|
-
%t744 = call core.
|
705
|
-
%t745 =
|
706
|
-
%t746 =
|
707
|
-
%t747 =
|
708
|
-
%t748 =
|
709
|
-
%t749 =
|
710
|
-
%t750 =
|
711
|
-
%t751 =
|
712
|
-
%t752 = call core.
|
713
|
-
%t753 =
|
714
|
-
%t754 =
|
715
|
-
%t755 = call core.
|
716
|
-
%t756 =
|
717
|
-
%t757 = call core.
|
718
|
-
%t758 =
|
722
|
+
%t742 = length %t741 :: integer
|
723
|
+
%t743 = call core.mod(%rows_i_263, %t742) :: integer
|
724
|
+
%t744 = call core.add(%t743, %t742) :: integer
|
725
|
+
%t745 = call core.mod(%t744, %t742) :: integer
|
726
|
+
%t746 = gather %t741, %t745 :: any
|
727
|
+
%t747 = length %t746 :: integer
|
728
|
+
%t748 = const -1 :: integer
|
729
|
+
%t749 = call core.sub(%col_i_265, %t748) :: integer
|
730
|
+
%t750 = const 0 :: integer
|
731
|
+
%t751 = call core.gte(%t749, %t750) :: boolean
|
732
|
+
%t752 = call core.lt(%t749, %t747) :: boolean
|
733
|
+
%t753 = call core.and(%t751, %t752) :: boolean
|
734
|
+
%t754 = const 1 :: integer
|
735
|
+
%t755 = call core.sub(%t747, %t754) :: integer
|
736
|
+
%t756 = const 0 :: integer
|
737
|
+
%t757 = call core.clamp(%t749, %t756, %t755) :: integer
|
738
|
+
%t758 = gather %t746, %t757 :: integer
|
719
739
|
%t759 = const 0 :: integer
|
720
|
-
%t760 = select %
|
740
|
+
%t760 = select %t753, %t758, %t759 :: integer
|
721
741
|
%t761 = load_input "rows" :: array
|
722
|
-
%t762 =
|
742
|
+
%t762 = length %t761 :: integer
|
723
743
|
%t763 = call core.mod(%rows_i_263, %t762) :: integer
|
724
744
|
%t764 = call core.add(%t763, %t762) :: integer
|
725
745
|
%t765 = call core.mod(%t764, %t762) :: integer
|
726
|
-
%t766 =
|
727
|
-
%t767 =
|
728
|
-
%t768 = const
|
746
|
+
%t766 = gather %t761, %t765 :: any
|
747
|
+
%t767 = length %t766 :: integer
|
748
|
+
%t768 = const 1 :: integer
|
729
749
|
%t769 = call core.sub(%col_i_265, %t768) :: integer
|
730
750
|
%t770 = const 0 :: integer
|
731
751
|
%t771 = call core.gte(%t769, %t770) :: boolean
|
@@ -735,145 +755,125 @@
|
|
735
755
|
%t775 = call core.sub(%t767, %t774) :: integer
|
736
756
|
%t776 = const 0 :: integer
|
737
757
|
%t777 = call core.clamp(%t769, %t776, %t775) :: integer
|
738
|
-
%t778 =
|
758
|
+
%t778 = gather %t766, %t777 :: integer
|
739
759
|
%t779 = const 0 :: integer
|
740
760
|
%t780 = select %t773, %t778, %t779 :: integer
|
741
761
|
%t781 = load_input "rows" :: array
|
742
|
-
%t782 =
|
743
|
-
%t783 =
|
744
|
-
%t784 = call core.
|
745
|
-
%t785 =
|
746
|
-
%t786 =
|
747
|
-
%t787 =
|
748
|
-
%t788 =
|
749
|
-
%t789 =
|
750
|
-
%t790 =
|
751
|
-
%t791 =
|
752
|
-
%t792 = call core.
|
753
|
-
%t793 =
|
754
|
-
%t794 =
|
755
|
-
%t795 =
|
756
|
-
%t796 =
|
757
|
-
%t797 =
|
758
|
-
%t798 =
|
759
|
-
%t799 =
|
760
|
-
%t800 =
|
761
|
-
%t801 =
|
762
|
-
%t802 =
|
763
|
-
%t803 =
|
764
|
-
%t804 =
|
765
|
-
%t805 =
|
766
|
-
%t806 =
|
767
|
-
%t807 =
|
768
|
-
%t808 =
|
769
|
-
%t809 =
|
770
|
-
%t810 =
|
771
|
-
%t811 = const
|
772
|
-
%t812 = call core.
|
773
|
-
%t813 =
|
774
|
-
%t814 =
|
775
|
-
%t815 =
|
776
|
-
%t816 = call core.
|
777
|
-
%t817 = const
|
778
|
-
%t818 = call core.
|
779
|
-
%t819 =
|
780
|
-
%t820 = call core.
|
781
|
-
%t821 =
|
782
|
-
%t822 =
|
783
|
-
%t823 =
|
784
|
-
%t824 =
|
785
|
-
%t825 =
|
786
|
-
%t826 =
|
787
|
-
%t827 =
|
788
|
-
%t828 =
|
789
|
-
%t829 =
|
790
|
-
%t830 =
|
791
|
-
%t831 =
|
792
|
-
%t832 =
|
793
|
-
%t833 =
|
794
|
-
%t834 =
|
795
|
-
%t835 =
|
796
|
-
%t836 =
|
797
|
-
%t837 =
|
798
|
-
%t838 =
|
799
|
-
%t839 = const
|
800
|
-
%t840 = call core.
|
801
|
-
%t841 =
|
802
|
-
%t842 =
|
803
|
-
%t843 =
|
804
|
-
%t844 = call core.
|
805
|
-
%t845 = const
|
806
|
-
%t846 = call core.
|
807
|
-
%t847 =
|
808
|
-
%t848 = call core.
|
809
|
-
%t849 =
|
810
|
-
%t850 =
|
811
|
-
%t851 =
|
812
|
-
%t852 =
|
813
|
-
%t853 =
|
814
|
-
%t854 =
|
815
|
-
%t855 =
|
816
|
-
%t856 =
|
817
|
-
%t857 =
|
818
|
-
%t858 =
|
819
|
-
%t859 =
|
820
|
-
%t860 =
|
821
|
-
%t861 =
|
822
|
-
%t862 =
|
823
|
-
%t863 =
|
824
|
-
%t864 =
|
825
|
-
%t865 =
|
826
|
-
%t866 =
|
827
|
-
%t867 = const
|
828
|
-
%t868 = call core.
|
829
|
-
%t869 =
|
830
|
-
%t870 =
|
831
|
-
%t871 =
|
832
|
-
%t872 = call core.
|
833
|
-
%t873 = const
|
834
|
-
%t874 = call core.
|
835
|
-
%t875 =
|
836
|
-
%t876 = call core.
|
837
|
-
%t877 =
|
838
|
-
%t878 =
|
839
|
-
%t879 =
|
840
|
-
%t880 =
|
841
|
-
%t881 =
|
842
|
-
%t882 =
|
843
|
-
%t883 =
|
844
|
-
%t884 =
|
845
|
-
%t885 =
|
846
|
-
%t886 =
|
847
|
-
%t887 =
|
848
|
-
%t888 =
|
849
|
-
%t889 =
|
850
|
-
%t890 =
|
851
|
-
%t891 =
|
852
|
-
%t892 =
|
853
|
-
%
|
854
|
-
%
|
855
|
-
%t895 = const 0 :: integer
|
856
|
-
%t896 = call core.clamp(%t888, %t895, %t894) :: integer
|
857
|
-
%t897 = Gather %t885, %t896 :: any
|
858
|
-
%t898 = Length %t897 :: integer
|
859
|
-
%t899 = const 1 :: integer
|
860
|
-
%t900 = call core.sub(%col_i_265, %t899) :: integer
|
861
|
-
%t901 = const 0 :: integer
|
862
|
-
%t902 = call core.gte(%t900, %t901) :: boolean
|
863
|
-
%t903 = call core.lt(%t900, %t898) :: boolean
|
864
|
-
%t904 = call core.and(%t902, %t903) :: boolean
|
865
|
-
%t905 = call core.and(%t892, %t904) :: boolean
|
866
|
-
%t906 = const 1 :: integer
|
867
|
-
%t907 = call core.sub(%t898, %t906) :: integer
|
868
|
-
%t908 = const 0 :: integer
|
869
|
-
%t909 = call core.clamp(%t900, %t908, %t907) :: integer
|
870
|
-
%t910 = Gather %t897, %t909 :: integer
|
871
|
-
%t911 = const 0 :: integer
|
872
|
-
%t912 = select %t905, %t910, %t911 :: integer
|
873
|
-
%t507 = make_tuple(%t740, %t760, %t780, %t800, %t828, %t856, %t884, %t912) :: tuple<integer>
|
874
|
-
%t508 = Fold %t507 fn="agg.sum" ::
|
762
|
+
%t782 = length %t781 :: integer
|
763
|
+
%t783 = const -1 :: integer
|
764
|
+
%t784 = call core.sub(%rows_i_263, %t783) :: integer
|
765
|
+
%t785 = const 0 :: integer
|
766
|
+
%t786 = call core.gte(%t784, %t785) :: boolean
|
767
|
+
%t787 = call core.lt(%t784, %t782) :: boolean
|
768
|
+
%t788 = call core.and(%t786, %t787) :: boolean
|
769
|
+
%t789 = const 1 :: integer
|
770
|
+
%t790 = call core.sub(%t782, %t789) :: integer
|
771
|
+
%t791 = const 0 :: integer
|
772
|
+
%t792 = call core.clamp(%t784, %t791, %t790) :: integer
|
773
|
+
%t793 = gather %t781, %t792 :: any
|
774
|
+
%t794 = length %t793 :: integer
|
775
|
+
%t795 = const -1 :: integer
|
776
|
+
%t796 = call core.sub(%col_i_265, %t795) :: integer
|
777
|
+
%t797 = const 0 :: integer
|
778
|
+
%t798 = call core.gte(%t796, %t797) :: boolean
|
779
|
+
%t799 = call core.lt(%t796, %t794) :: boolean
|
780
|
+
%t800 = call core.and(%t798, %t799) :: boolean
|
781
|
+
%t801 = call core.and(%t788, %t800) :: boolean
|
782
|
+
%t802 = const 1 :: integer
|
783
|
+
%t803 = call core.sub(%t794, %t802) :: integer
|
784
|
+
%t804 = const 0 :: integer
|
785
|
+
%t805 = call core.clamp(%t796, %t804, %t803) :: integer
|
786
|
+
%t806 = gather %t793, %t805 :: integer
|
787
|
+
%t807 = const 0 :: integer
|
788
|
+
%t808 = select %t801, %t806, %t807 :: integer
|
789
|
+
%t809 = load_input "rows" :: array
|
790
|
+
%t810 = length %t809 :: integer
|
791
|
+
%t811 = const -1 :: integer
|
792
|
+
%t812 = call core.sub(%rows_i_263, %t811) :: integer
|
793
|
+
%t813 = const 0 :: integer
|
794
|
+
%t814 = call core.gte(%t812, %t813) :: boolean
|
795
|
+
%t815 = call core.lt(%t812, %t810) :: boolean
|
796
|
+
%t816 = call core.and(%t814, %t815) :: boolean
|
797
|
+
%t817 = const 1 :: integer
|
798
|
+
%t818 = call core.sub(%t810, %t817) :: integer
|
799
|
+
%t819 = const 0 :: integer
|
800
|
+
%t820 = call core.clamp(%t812, %t819, %t818) :: integer
|
801
|
+
%t821 = gather %t809, %t820 :: any
|
802
|
+
%t822 = length %t821 :: integer
|
803
|
+
%t823 = const 1 :: integer
|
804
|
+
%t824 = call core.sub(%col_i_265, %t823) :: integer
|
805
|
+
%t825 = const 0 :: integer
|
806
|
+
%t826 = call core.gte(%t824, %t825) :: boolean
|
807
|
+
%t827 = call core.lt(%t824, %t822) :: boolean
|
808
|
+
%t828 = call core.and(%t826, %t827) :: boolean
|
809
|
+
%t829 = call core.and(%t816, %t828) :: boolean
|
810
|
+
%t830 = const 1 :: integer
|
811
|
+
%t831 = call core.sub(%t822, %t830) :: integer
|
812
|
+
%t832 = const 0 :: integer
|
813
|
+
%t833 = call core.clamp(%t824, %t832, %t831) :: integer
|
814
|
+
%t834 = gather %t821, %t833 :: integer
|
815
|
+
%t835 = const 0 :: integer
|
816
|
+
%t836 = select %t829, %t834, %t835 :: integer
|
817
|
+
%t837 = load_input "rows" :: array
|
818
|
+
%t838 = length %t837 :: integer
|
819
|
+
%t839 = const 1 :: integer
|
820
|
+
%t840 = call core.sub(%rows_i_263, %t839) :: integer
|
821
|
+
%t841 = const 0 :: integer
|
822
|
+
%t842 = call core.gte(%t840, %t841) :: boolean
|
823
|
+
%t843 = call core.lt(%t840, %t838) :: boolean
|
824
|
+
%t844 = call core.and(%t842, %t843) :: boolean
|
825
|
+
%t845 = const 1 :: integer
|
826
|
+
%t846 = call core.sub(%t838, %t845) :: integer
|
827
|
+
%t847 = const 0 :: integer
|
828
|
+
%t848 = call core.clamp(%t840, %t847, %t846) :: integer
|
829
|
+
%t849 = gather %t837, %t848 :: any
|
830
|
+
%t850 = length %t849 :: integer
|
831
|
+
%t851 = const -1 :: integer
|
832
|
+
%t852 = call core.sub(%col_i_265, %t851) :: integer
|
833
|
+
%t853 = const 0 :: integer
|
834
|
+
%t854 = call core.gte(%t852, %t853) :: boolean
|
835
|
+
%t855 = call core.lt(%t852, %t850) :: boolean
|
836
|
+
%t856 = call core.and(%t854, %t855) :: boolean
|
837
|
+
%t857 = call core.and(%t844, %t856) :: boolean
|
838
|
+
%t858 = const 1 :: integer
|
839
|
+
%t859 = call core.sub(%t850, %t858) :: integer
|
840
|
+
%t860 = const 0 :: integer
|
841
|
+
%t861 = call core.clamp(%t852, %t860, %t859) :: integer
|
842
|
+
%t862 = gather %t849, %t861 :: integer
|
843
|
+
%t863 = const 0 :: integer
|
844
|
+
%t864 = select %t857, %t862, %t863 :: integer
|
845
|
+
%t865 = load_input "rows" :: array
|
846
|
+
%t866 = length %t865 :: integer
|
847
|
+
%t867 = const 1 :: integer
|
848
|
+
%t868 = call core.sub(%rows_i_263, %t867) :: integer
|
849
|
+
%t869 = const 0 :: integer
|
850
|
+
%t870 = call core.gte(%t868, %t869) :: boolean
|
851
|
+
%t871 = call core.lt(%t868, %t866) :: boolean
|
852
|
+
%t872 = call core.and(%t870, %t871) :: boolean
|
853
|
+
%t873 = const 1 :: integer
|
854
|
+
%t874 = call core.sub(%t866, %t873) :: integer
|
855
|
+
%t875 = const 0 :: integer
|
856
|
+
%t876 = call core.clamp(%t868, %t875, %t874) :: integer
|
857
|
+
%t877 = gather %t865, %t876 :: any
|
858
|
+
%t878 = length %t877 :: integer
|
859
|
+
%t879 = const 1 :: integer
|
860
|
+
%t880 = call core.sub(%col_i_265, %t879) :: integer
|
861
|
+
%t881 = const 0 :: integer
|
862
|
+
%t882 = call core.gte(%t880, %t881) :: boolean
|
863
|
+
%t883 = call core.lt(%t880, %t878) :: boolean
|
864
|
+
%t884 = call core.and(%t882, %t883) :: boolean
|
865
|
+
%t885 = call core.and(%t872, %t884) :: boolean
|
866
|
+
%t886 = const 1 :: integer
|
867
|
+
%t887 = call core.sub(%t878, %t886) :: integer
|
868
|
+
%t888 = const 0 :: integer
|
869
|
+
%t889 = call core.clamp(%t880, %t888, %t887) :: integer
|
870
|
+
%t890 = gather %t877, %t889 :: integer
|
871
|
+
%t891 = const 0 :: integer
|
872
|
+
%t892 = select %t885, %t890, %t891 :: integer
|
873
|
+
%t699 = make_tuple(%t720, %t740, %t760, %t780, %t808, %t836, %t864, %t892) :: tuple<integer>
|
874
|
+
%t700 = fold %t699 fn="agg.sum" ::
|
875
875
|
%t267 = const 2 :: integer
|
876
|
-
%t268 = call core.eq(%
|
876
|
+
%t268 = call core.eq(%t700, %t267) :: boolean
|
877
877
|
yield %t268
|
878
878
|
end_loop
|
879
879
|
end_loop
|
@@ -882,209 +882,209 @@
|
|
882
882
|
%t269 = load_input "rows" :: array
|
883
883
|
loop rows id=L27 in %t269 as el=%rows_el_270, idx=%rows_i_271
|
884
884
|
loop col id=L28 in %rows_el_270 as el=%col_el_272, idx=%col_i_273
|
885
|
-
%
|
886
|
-
%
|
887
|
-
%
|
888
|
-
%
|
889
|
-
%
|
890
|
-
%
|
885
|
+
%t893 = load_input "rows" :: array
|
886
|
+
%t897 = load_input "rows" :: array
|
887
|
+
%t908 = load_input "rows" :: array
|
888
|
+
%t909 = length %t908 :: integer
|
889
|
+
%t910 = const -1 :: integer
|
890
|
+
%t911 = call core.sub(%rows_i_271, %t910) :: integer
|
891
|
+
%t912 = const 0 :: integer
|
892
|
+
%t913 = call core.gte(%t911, %t912) :: boolean
|
893
|
+
%t914 = call core.lt(%t911, %t909) :: boolean
|
894
|
+
%t915 = call core.and(%t913, %t914) :: boolean
|
895
|
+
%t916 = const 1 :: integer
|
896
|
+
%t917 = call core.sub(%t909, %t916) :: integer
|
891
897
|
%t918 = const 0 :: integer
|
892
|
-
%t919 = call core.
|
893
|
-
%t920 =
|
894
|
-
%t921 =
|
895
|
-
%t922 =
|
896
|
-
%t923 = call core.
|
897
|
-
%t924 =
|
898
|
-
%t925 =
|
899
|
-
%t926 =
|
900
|
-
%t927 =
|
901
|
-
%t928 =
|
902
|
-
%t929 =
|
903
|
-
%t930 =
|
904
|
-
%t931 =
|
898
|
+
%t919 = call core.clamp(%t911, %t918, %t917) :: integer
|
899
|
+
%t920 = gather %t908, %t919 :: any
|
900
|
+
%t921 = length %t920 :: integer
|
901
|
+
%t922 = call core.mod(%col_i_273, %t921) :: integer
|
902
|
+
%t923 = call core.add(%t922, %t921) :: integer
|
903
|
+
%t924 = call core.mod(%t923, %t921) :: integer
|
904
|
+
%t925 = gather %t920, %t924 :: integer
|
905
|
+
%t926 = const 0 :: integer
|
906
|
+
%t927 = select %t915, %t925, %t926 :: integer
|
907
|
+
%t928 = load_input "rows" :: array
|
908
|
+
%t929 = length %t928 :: integer
|
909
|
+
%t930 = const 1 :: integer
|
910
|
+
%t931 = call core.sub(%rows_i_271, %t930) :: integer
|
905
911
|
%t932 = const 0 :: integer
|
906
|
-
%t933 =
|
907
|
-
%t934 =
|
908
|
-
%t935 =
|
912
|
+
%t933 = call core.gte(%t931, %t932) :: boolean
|
913
|
+
%t934 = call core.lt(%t931, %t929) :: boolean
|
914
|
+
%t935 = call core.and(%t933, %t934) :: boolean
|
909
915
|
%t936 = const 1 :: integer
|
910
|
-
%t937 = call core.sub(%
|
916
|
+
%t937 = call core.sub(%t929, %t936) :: integer
|
911
917
|
%t938 = const 0 :: integer
|
912
|
-
%t939 = call core.
|
913
|
-
%t940 =
|
914
|
-
%t941 =
|
915
|
-
%t942 =
|
916
|
-
%t943 = call core.
|
917
|
-
%t944 =
|
918
|
-
%t945 =
|
919
|
-
%t946 =
|
920
|
-
%t947 =
|
921
|
-
%t948 =
|
922
|
-
%t949 =
|
923
|
-
%t950 = call core.mod(%
|
924
|
-
%t951 =
|
925
|
-
%t952 =
|
926
|
-
%t953 =
|
927
|
-
%t954 =
|
928
|
-
%t955 =
|
929
|
-
%t956 = call core.
|
930
|
-
%t957 =
|
931
|
-
%t958 = call core.
|
932
|
-
%t959 =
|
933
|
-
%t960 =
|
934
|
-
%t961 = const
|
935
|
-
%t962 = call core.sub(%
|
918
|
+
%t939 = call core.clamp(%t931, %t938, %t937) :: integer
|
919
|
+
%t940 = gather %t928, %t939 :: any
|
920
|
+
%t941 = length %t940 :: integer
|
921
|
+
%t942 = call core.mod(%col_i_273, %t941) :: integer
|
922
|
+
%t943 = call core.add(%t942, %t941) :: integer
|
923
|
+
%t944 = call core.mod(%t943, %t941) :: integer
|
924
|
+
%t945 = gather %t940, %t944 :: integer
|
925
|
+
%t946 = const 0 :: integer
|
926
|
+
%t947 = select %t935, %t945, %t946 :: integer
|
927
|
+
%t948 = load_input "rows" :: array
|
928
|
+
%t949 = length %t948 :: integer
|
929
|
+
%t950 = call core.mod(%rows_i_271, %t949) :: integer
|
930
|
+
%t951 = call core.add(%t950, %t949) :: integer
|
931
|
+
%t952 = call core.mod(%t951, %t949) :: integer
|
932
|
+
%t953 = gather %t948, %t952 :: any
|
933
|
+
%t954 = length %t953 :: integer
|
934
|
+
%t955 = const -1 :: integer
|
935
|
+
%t956 = call core.sub(%col_i_273, %t955) :: integer
|
936
|
+
%t957 = const 0 :: integer
|
937
|
+
%t958 = call core.gte(%t956, %t957) :: boolean
|
938
|
+
%t959 = call core.lt(%t956, %t954) :: boolean
|
939
|
+
%t960 = call core.and(%t958, %t959) :: boolean
|
940
|
+
%t961 = const 1 :: integer
|
941
|
+
%t962 = call core.sub(%t954, %t961) :: integer
|
936
942
|
%t963 = const 0 :: integer
|
937
|
-
%t964 = call core.
|
938
|
-
%t965 =
|
939
|
-
%t966 =
|
940
|
-
%t967 =
|
941
|
-
%t968 =
|
942
|
-
%t969 =
|
943
|
-
%t970 = call core.
|
944
|
-
%t971 =
|
945
|
-
%t972 =
|
946
|
-
%t973 =
|
947
|
-
%t974 =
|
948
|
-
%t975 =
|
949
|
-
%t976 = call core.
|
950
|
-
%t977 =
|
951
|
-
%t978 = call core.
|
952
|
-
%t979 =
|
953
|
-
%t980 =
|
943
|
+
%t964 = call core.clamp(%t956, %t963, %t962) :: integer
|
944
|
+
%t965 = gather %t953, %t964 :: integer
|
945
|
+
%t966 = const 0 :: integer
|
946
|
+
%t967 = select %t960, %t965, %t966 :: integer
|
947
|
+
%t968 = load_input "rows" :: array
|
948
|
+
%t969 = length %t968 :: integer
|
949
|
+
%t970 = call core.mod(%rows_i_271, %t969) :: integer
|
950
|
+
%t971 = call core.add(%t970, %t969) :: integer
|
951
|
+
%t972 = call core.mod(%t971, %t969) :: integer
|
952
|
+
%t973 = gather %t968, %t972 :: any
|
953
|
+
%t974 = length %t973 :: integer
|
954
|
+
%t975 = const 1 :: integer
|
955
|
+
%t976 = call core.sub(%col_i_273, %t975) :: integer
|
956
|
+
%t977 = const 0 :: integer
|
957
|
+
%t978 = call core.gte(%t976, %t977) :: boolean
|
958
|
+
%t979 = call core.lt(%t976, %t974) :: boolean
|
959
|
+
%t980 = call core.and(%t978, %t979) :: boolean
|
954
960
|
%t981 = const 1 :: integer
|
955
|
-
%t982 = call core.sub(%
|
961
|
+
%t982 = call core.sub(%t974, %t981) :: integer
|
956
962
|
%t983 = const 0 :: integer
|
957
|
-
%t984 = call core.
|
958
|
-
%t985 =
|
959
|
-
%t986 =
|
960
|
-
%t987 =
|
961
|
-
%t988 =
|
962
|
-
%t989 =
|
963
|
-
%t990 =
|
964
|
-
%t991 =
|
963
|
+
%t984 = call core.clamp(%t976, %t983, %t982) :: integer
|
964
|
+
%t985 = gather %t973, %t984 :: integer
|
965
|
+
%t986 = const 0 :: integer
|
966
|
+
%t987 = select %t980, %t985, %t986 :: integer
|
967
|
+
%t988 = load_input "rows" :: array
|
968
|
+
%t989 = length %t988 :: integer
|
969
|
+
%t990 = const -1 :: integer
|
970
|
+
%t991 = call core.sub(%rows_i_271, %t990) :: integer
|
965
971
|
%t992 = const 0 :: integer
|
966
|
-
%t993 =
|
967
|
-
%t994 =
|
968
|
-
%t995 =
|
969
|
-
%t996 = const
|
970
|
-
%t997 = call core.sub(%
|
972
|
+
%t993 = call core.gte(%t991, %t992) :: boolean
|
973
|
+
%t994 = call core.lt(%t991, %t989) :: boolean
|
974
|
+
%t995 = call core.and(%t993, %t994) :: boolean
|
975
|
+
%t996 = const 1 :: integer
|
976
|
+
%t997 = call core.sub(%t989, %t996) :: integer
|
971
977
|
%t998 = const 0 :: integer
|
972
|
-
%t999 = call core.
|
973
|
-
%t1000 =
|
974
|
-
%t1001 =
|
975
|
-
%t1002 = const 1 :: integer
|
976
|
-
%t1003 = call core.sub(%
|
978
|
+
%t999 = call core.clamp(%t991, %t998, %t997) :: integer
|
979
|
+
%t1000 = gather %t988, %t999 :: any
|
980
|
+
%t1001 = length %t1000 :: integer
|
981
|
+
%t1002 = const -1 :: integer
|
982
|
+
%t1003 = call core.sub(%col_i_273, %t1002) :: integer
|
977
983
|
%t1004 = const 0 :: integer
|
978
|
-
%t1005 = call core.
|
979
|
-
%t1006 =
|
980
|
-
%t1007 =
|
981
|
-
%t1008 =
|
982
|
-
%t1009 =
|
983
|
-
%t1010 =
|
984
|
-
%t1011 =
|
985
|
-
%t1012 = call core.
|
986
|
-
%t1013 =
|
987
|
-
%t1014 =
|
988
|
-
%t1015 =
|
989
|
-
%t1016 =
|
990
|
-
%t1017 =
|
991
|
-
%t1018 =
|
992
|
-
%t1019 =
|
984
|
+
%t1005 = call core.gte(%t1003, %t1004) :: boolean
|
985
|
+
%t1006 = call core.lt(%t1003, %t1001) :: boolean
|
986
|
+
%t1007 = call core.and(%t1005, %t1006) :: boolean
|
987
|
+
%t1008 = call core.and(%t995, %t1007) :: boolean
|
988
|
+
%t1009 = const 1 :: integer
|
989
|
+
%t1010 = call core.sub(%t1001, %t1009) :: integer
|
990
|
+
%t1011 = const 0 :: integer
|
991
|
+
%t1012 = call core.clamp(%t1003, %t1011, %t1010) :: integer
|
992
|
+
%t1013 = gather %t1000, %t1012 :: integer
|
993
|
+
%t1014 = const 0 :: integer
|
994
|
+
%t1015 = select %t1008, %t1013, %t1014 :: integer
|
995
|
+
%t1016 = load_input "rows" :: array
|
996
|
+
%t1017 = length %t1016 :: integer
|
997
|
+
%t1018 = const -1 :: integer
|
998
|
+
%t1019 = call core.sub(%rows_i_271, %t1018) :: integer
|
993
999
|
%t1020 = const 0 :: integer
|
994
|
-
%t1021 =
|
995
|
-
%t1022 =
|
996
|
-
%t1023 =
|
997
|
-
%t1024 = const
|
998
|
-
%t1025 = call core.sub(%
|
1000
|
+
%t1021 = call core.gte(%t1019, %t1020) :: boolean
|
1001
|
+
%t1022 = call core.lt(%t1019, %t1017) :: boolean
|
1002
|
+
%t1023 = call core.and(%t1021, %t1022) :: boolean
|
1003
|
+
%t1024 = const 1 :: integer
|
1004
|
+
%t1025 = call core.sub(%t1017, %t1024) :: integer
|
999
1005
|
%t1026 = const 0 :: integer
|
1000
|
-
%t1027 = call core.
|
1001
|
-
%t1028 =
|
1002
|
-
%t1029 =
|
1006
|
+
%t1027 = call core.clamp(%t1019, %t1026, %t1025) :: integer
|
1007
|
+
%t1028 = gather %t1016, %t1027 :: any
|
1008
|
+
%t1029 = length %t1028 :: integer
|
1003
1009
|
%t1030 = const 1 :: integer
|
1004
|
-
%t1031 = call core.sub(%
|
1010
|
+
%t1031 = call core.sub(%col_i_273, %t1030) :: integer
|
1005
1011
|
%t1032 = const 0 :: integer
|
1006
|
-
%t1033 = call core.
|
1007
|
-
%t1034 =
|
1008
|
-
%t1035 =
|
1009
|
-
%t1036 =
|
1010
|
-
%t1037 =
|
1011
|
-
%t1038 =
|
1012
|
-
%t1039 =
|
1013
|
-
%t1040 = call core.
|
1014
|
-
%t1041 =
|
1015
|
-
%t1042 =
|
1016
|
-
%t1043 =
|
1017
|
-
%t1044 =
|
1018
|
-
%t1045 =
|
1019
|
-
%t1046 =
|
1020
|
-
%t1047 =
|
1012
|
+
%t1033 = call core.gte(%t1031, %t1032) :: boolean
|
1013
|
+
%t1034 = call core.lt(%t1031, %t1029) :: boolean
|
1014
|
+
%t1035 = call core.and(%t1033, %t1034) :: boolean
|
1015
|
+
%t1036 = call core.and(%t1023, %t1035) :: boolean
|
1016
|
+
%t1037 = const 1 :: integer
|
1017
|
+
%t1038 = call core.sub(%t1029, %t1037) :: integer
|
1018
|
+
%t1039 = const 0 :: integer
|
1019
|
+
%t1040 = call core.clamp(%t1031, %t1039, %t1038) :: integer
|
1020
|
+
%t1041 = gather %t1028, %t1040 :: integer
|
1021
|
+
%t1042 = const 0 :: integer
|
1022
|
+
%t1043 = select %t1036, %t1041, %t1042 :: integer
|
1023
|
+
%t1044 = load_input "rows" :: array
|
1024
|
+
%t1045 = length %t1044 :: integer
|
1025
|
+
%t1046 = const 1 :: integer
|
1026
|
+
%t1047 = call core.sub(%rows_i_271, %t1046) :: integer
|
1021
1027
|
%t1048 = const 0 :: integer
|
1022
|
-
%t1049 =
|
1023
|
-
%t1050 =
|
1024
|
-
%t1051 =
|
1028
|
+
%t1049 = call core.gte(%t1047, %t1048) :: boolean
|
1029
|
+
%t1050 = call core.lt(%t1047, %t1045) :: boolean
|
1030
|
+
%t1051 = call core.and(%t1049, %t1050) :: boolean
|
1025
1031
|
%t1052 = const 1 :: integer
|
1026
|
-
%t1053 = call core.sub(%
|
1032
|
+
%t1053 = call core.sub(%t1045, %t1052) :: integer
|
1027
1033
|
%t1054 = const 0 :: integer
|
1028
|
-
%t1055 = call core.
|
1029
|
-
%t1056 =
|
1030
|
-
%t1057 =
|
1031
|
-
%t1058 = const 1 :: integer
|
1032
|
-
%t1059 = call core.sub(%
|
1034
|
+
%t1055 = call core.clamp(%t1047, %t1054, %t1053) :: integer
|
1035
|
+
%t1056 = gather %t1044, %t1055 :: any
|
1036
|
+
%t1057 = length %t1056 :: integer
|
1037
|
+
%t1058 = const -1 :: integer
|
1038
|
+
%t1059 = call core.sub(%col_i_273, %t1058) :: integer
|
1033
1039
|
%t1060 = const 0 :: integer
|
1034
|
-
%t1061 = call core.
|
1035
|
-
%t1062 =
|
1036
|
-
%t1063 =
|
1037
|
-
%t1064 =
|
1038
|
-
%t1065 =
|
1039
|
-
%t1066 =
|
1040
|
-
%t1067 =
|
1041
|
-
%t1068 = call core.
|
1042
|
-
%t1069 =
|
1043
|
-
%t1070 =
|
1044
|
-
%t1071 =
|
1045
|
-
%t1072 =
|
1046
|
-
%t1073 =
|
1047
|
-
%t1074 =
|
1048
|
-
%t1075 =
|
1040
|
+
%t1061 = call core.gte(%t1059, %t1060) :: boolean
|
1041
|
+
%t1062 = call core.lt(%t1059, %t1057) :: boolean
|
1042
|
+
%t1063 = call core.and(%t1061, %t1062) :: boolean
|
1043
|
+
%t1064 = call core.and(%t1051, %t1063) :: boolean
|
1044
|
+
%t1065 = const 1 :: integer
|
1045
|
+
%t1066 = call core.sub(%t1057, %t1065) :: integer
|
1046
|
+
%t1067 = const 0 :: integer
|
1047
|
+
%t1068 = call core.clamp(%t1059, %t1067, %t1066) :: integer
|
1048
|
+
%t1069 = gather %t1056, %t1068 :: integer
|
1049
|
+
%t1070 = const 0 :: integer
|
1050
|
+
%t1071 = select %t1064, %t1069, %t1070 :: integer
|
1051
|
+
%t1072 = load_input "rows" :: array
|
1052
|
+
%t1073 = length %t1072 :: integer
|
1053
|
+
%t1074 = const 1 :: integer
|
1054
|
+
%t1075 = call core.sub(%rows_i_271, %t1074) :: integer
|
1049
1055
|
%t1076 = const 0 :: integer
|
1050
|
-
%t1077 =
|
1051
|
-
%t1078 =
|
1052
|
-
%t1079 =
|
1056
|
+
%t1077 = call core.gte(%t1075, %t1076) :: boolean
|
1057
|
+
%t1078 = call core.lt(%t1075, %t1073) :: boolean
|
1058
|
+
%t1079 = call core.and(%t1077, %t1078) :: boolean
|
1053
1059
|
%t1080 = const 1 :: integer
|
1054
|
-
%t1081 = call core.sub(%
|
1060
|
+
%t1081 = call core.sub(%t1073, %t1080) :: integer
|
1055
1061
|
%t1082 = const 0 :: integer
|
1056
|
-
%t1083 = call core.
|
1057
|
-
%t1084 =
|
1058
|
-
%t1085 =
|
1062
|
+
%t1083 = call core.clamp(%t1075, %t1082, %t1081) :: integer
|
1063
|
+
%t1084 = gather %t1072, %t1083 :: any
|
1064
|
+
%t1085 = length %t1084 :: integer
|
1059
1065
|
%t1086 = const 1 :: integer
|
1060
|
-
%t1087 = call core.sub(%
|
1066
|
+
%t1087 = call core.sub(%col_i_273, %t1086) :: integer
|
1061
1067
|
%t1088 = const 0 :: integer
|
1062
|
-
%t1089 = call core.
|
1063
|
-
%t1090 =
|
1064
|
-
%t1091 =
|
1065
|
-
%t1092 =
|
1066
|
-
%t1093 =
|
1067
|
-
%t1094 =
|
1068
|
-
%t1095 =
|
1069
|
-
%t1096 = call core.
|
1070
|
-
%t1097 =
|
1071
|
-
%t1098 =
|
1072
|
-
%t1099 =
|
1073
|
-
%
|
1074
|
-
%
|
1075
|
-
%
|
1076
|
-
%
|
1077
|
-
%
|
1078
|
-
%
|
1079
|
-
%
|
1080
|
-
%
|
1081
|
-
%
|
1082
|
-
%t512 = call core.eq(%t1107, %t511) :: boolean
|
1083
|
-
%t513 = load_input "rows" :: array
|
1084
|
-
%t1108 = load_input "rows" :: array
|
1085
|
-
%t515 = const 0 :: integer
|
1086
|
-
%t516 = call core.gt(%col_el_272, %t515) :: boolean
|
1087
|
-
%t276 = call core.and(%t512, %t516) :: boolean
|
1068
|
+
%t1089 = call core.gte(%t1087, %t1088) :: boolean
|
1069
|
+
%t1090 = call core.lt(%t1087, %t1085) :: boolean
|
1070
|
+
%t1091 = call core.and(%t1089, %t1090) :: boolean
|
1071
|
+
%t1092 = call core.and(%t1079, %t1091) :: boolean
|
1072
|
+
%t1093 = const 1 :: integer
|
1073
|
+
%t1094 = call core.sub(%t1085, %t1093) :: integer
|
1074
|
+
%t1095 = const 0 :: integer
|
1075
|
+
%t1096 = call core.clamp(%t1087, %t1095, %t1094) :: integer
|
1076
|
+
%t1097 = gather %t1084, %t1096 :: integer
|
1077
|
+
%t1098 = const 0 :: integer
|
1078
|
+
%t1099 = select %t1092, %t1097, %t1098 :: integer
|
1079
|
+
%t906 = make_tuple(%t927, %t947, %t967, %t987, %t1015, %t1043, %t1071, %t1099) :: tuple<integer>
|
1080
|
+
%t907 = fold %t906 fn="agg.sum" ::
|
1081
|
+
%t895 = const 2 :: integer
|
1082
|
+
%t896 = call core.eq(%t907, %t895) :: boolean
|
1083
|
+
%t1100 = load_input "rows" :: array
|
1084
|
+
%t1104 = load_input "rows" :: array
|
1085
|
+
%t1102 = const 0 :: integer
|
1086
|
+
%t1103 = call core.gt(%col_el_272, %t1102) :: boolean
|
1087
|
+
%t276 = call core.and(%t896, %t1103) :: boolean
|
1088
1088
|
yield %t276
|
1089
1089
|
end_loop
|
1090
1090
|
end_loop
|
@@ -1093,276 +1093,291 @@
|
|
1093
1093
|
%t277 = load_input "rows" :: array
|
1094
1094
|
loop rows id=L29 in %t277 as el=%rows_el_278, idx=%rows_i_279
|
1095
1095
|
loop col id=L30 in %rows_el_278 as el=%col_el_280, idx=%col_i_281
|
1096
|
-
%
|
1096
|
+
%t1105 = load_input "rows" :: array
|
1097
1097
|
%t1109 = load_input "rows" :: array
|
1098
|
-
%
|
1099
|
-
%
|
1100
|
-
%
|
1101
|
-
%
|
1102
|
-
%
|
1103
|
-
%
|
1104
|
-
%
|
1105
|
-
%
|
1106
|
-
%
|
1107
|
-
%
|
1108
|
-
%
|
1109
|
-
%
|
1110
|
-
%
|
1111
|
-
%
|
1112
|
-
%
|
1113
|
-
%
|
1114
|
-
%
|
1115
|
-
%
|
1116
|
-
%
|
1117
|
-
%
|
1118
|
-
%
|
1119
|
-
%
|
1120
|
-
%
|
1121
|
-
%
|
1122
|
-
%
|
1123
|
-
%
|
1124
|
-
%
|
1125
|
-
%
|
1126
|
-
%
|
1127
|
-
%
|
1128
|
-
%
|
1129
|
-
%
|
1130
|
-
%
|
1131
|
-
%
|
1132
|
-
%
|
1133
|
-
%
|
1134
|
-
%
|
1135
|
-
%
|
1136
|
-
%
|
1137
|
-
%
|
1138
|
-
%
|
1139
|
-
%
|
1140
|
-
%
|
1141
|
-
%
|
1142
|
-
%
|
1143
|
-
%
|
1144
|
-
%
|
1145
|
-
%
|
1146
|
-
%
|
1147
|
-
%
|
1148
|
-
%
|
1149
|
-
%
|
1150
|
-
%
|
1151
|
-
%
|
1152
|
-
%
|
1153
|
-
%
|
1154
|
-
%
|
1155
|
-
%
|
1156
|
-
%
|
1157
|
-
%
|
1158
|
-
%
|
1159
|
-
%
|
1160
|
-
%
|
1161
|
-
%
|
1162
|
-
%
|
1163
|
-
%
|
1164
|
-
%
|
1165
|
-
%
|
1166
|
-
%
|
1167
|
-
%
|
1168
|
-
%
|
1169
|
-
%
|
1170
|
-
%
|
1171
|
-
%
|
1172
|
-
%
|
1173
|
-
%
|
1174
|
-
%
|
1175
|
-
%
|
1176
|
-
%
|
1177
|
-
%
|
1178
|
-
%
|
1179
|
-
%
|
1180
|
-
%
|
1181
|
-
%
|
1182
|
-
%
|
1183
|
-
%
|
1184
|
-
%
|
1185
|
-
%
|
1186
|
-
%
|
1187
|
-
%
|
1188
|
-
%
|
1189
|
-
%
|
1190
|
-
%
|
1191
|
-
%
|
1192
|
-
%
|
1193
|
-
%
|
1194
|
-
%t1206 = const 0 :: integer
|
1195
|
-
%t1207 = call core.gte(%t1205, %t1206) :: boolean
|
1196
|
-
%t1208 = call core.lt(%t1205, %t1203) :: boolean
|
1197
|
-
%t1209 = call core.and(%t1207, %t1208) :: boolean
|
1198
|
-
%t1210 = call core.and(%t1197, %t1209) :: boolean
|
1199
|
-
%t1211 = const 1 :: integer
|
1200
|
-
%t1212 = call core.sub(%t1203, %t1211) :: integer
|
1201
|
-
%t1213 = const 0 :: integer
|
1202
|
-
%t1214 = call core.clamp(%t1205, %t1213, %t1212) :: integer
|
1203
|
-
%t1215 = Gather %t1202, %t1214 :: integer
|
1098
|
+
%t1120 = load_input "rows" :: array
|
1099
|
+
%t1121 = length %t1120 :: integer
|
1100
|
+
%t1122 = const -1 :: integer
|
1101
|
+
%t1123 = call core.sub(%rows_i_279, %t1122) :: integer
|
1102
|
+
%t1124 = const 0 :: integer
|
1103
|
+
%t1125 = call core.gte(%t1123, %t1124) :: boolean
|
1104
|
+
%t1126 = call core.lt(%t1123, %t1121) :: boolean
|
1105
|
+
%t1127 = call core.and(%t1125, %t1126) :: boolean
|
1106
|
+
%t1128 = const 1 :: integer
|
1107
|
+
%t1129 = call core.sub(%t1121, %t1128) :: integer
|
1108
|
+
%t1130 = const 0 :: integer
|
1109
|
+
%t1131 = call core.clamp(%t1123, %t1130, %t1129) :: integer
|
1110
|
+
%t1132 = gather %t1120, %t1131 :: any
|
1111
|
+
%t1133 = length %t1132 :: integer
|
1112
|
+
%t1134 = call core.mod(%col_i_281, %t1133) :: integer
|
1113
|
+
%t1135 = call core.add(%t1134, %t1133) :: integer
|
1114
|
+
%t1136 = call core.mod(%t1135, %t1133) :: integer
|
1115
|
+
%t1137 = gather %t1132, %t1136 :: integer
|
1116
|
+
%t1138 = const 0 :: integer
|
1117
|
+
%t1139 = select %t1127, %t1137, %t1138 :: integer
|
1118
|
+
%t1140 = load_input "rows" :: array
|
1119
|
+
%t1141 = length %t1140 :: integer
|
1120
|
+
%t1142 = const 1 :: integer
|
1121
|
+
%t1143 = call core.sub(%rows_i_279, %t1142) :: integer
|
1122
|
+
%t1144 = const 0 :: integer
|
1123
|
+
%t1145 = call core.gte(%t1143, %t1144) :: boolean
|
1124
|
+
%t1146 = call core.lt(%t1143, %t1141) :: boolean
|
1125
|
+
%t1147 = call core.and(%t1145, %t1146) :: boolean
|
1126
|
+
%t1148 = const 1 :: integer
|
1127
|
+
%t1149 = call core.sub(%t1141, %t1148) :: integer
|
1128
|
+
%t1150 = const 0 :: integer
|
1129
|
+
%t1151 = call core.clamp(%t1143, %t1150, %t1149) :: integer
|
1130
|
+
%t1152 = gather %t1140, %t1151 :: any
|
1131
|
+
%t1153 = length %t1152 :: integer
|
1132
|
+
%t1154 = call core.mod(%col_i_281, %t1153) :: integer
|
1133
|
+
%t1155 = call core.add(%t1154, %t1153) :: integer
|
1134
|
+
%t1156 = call core.mod(%t1155, %t1153) :: integer
|
1135
|
+
%t1157 = gather %t1152, %t1156 :: integer
|
1136
|
+
%t1158 = const 0 :: integer
|
1137
|
+
%t1159 = select %t1147, %t1157, %t1158 :: integer
|
1138
|
+
%t1160 = load_input "rows" :: array
|
1139
|
+
%t1161 = length %t1160 :: integer
|
1140
|
+
%t1162 = call core.mod(%rows_i_279, %t1161) :: integer
|
1141
|
+
%t1163 = call core.add(%t1162, %t1161) :: integer
|
1142
|
+
%t1164 = call core.mod(%t1163, %t1161) :: integer
|
1143
|
+
%t1165 = gather %t1160, %t1164 :: any
|
1144
|
+
%t1166 = length %t1165 :: integer
|
1145
|
+
%t1167 = const -1 :: integer
|
1146
|
+
%t1168 = call core.sub(%col_i_281, %t1167) :: integer
|
1147
|
+
%t1169 = const 0 :: integer
|
1148
|
+
%t1170 = call core.gte(%t1168, %t1169) :: boolean
|
1149
|
+
%t1171 = call core.lt(%t1168, %t1166) :: boolean
|
1150
|
+
%t1172 = call core.and(%t1170, %t1171) :: boolean
|
1151
|
+
%t1173 = const 1 :: integer
|
1152
|
+
%t1174 = call core.sub(%t1166, %t1173) :: integer
|
1153
|
+
%t1175 = const 0 :: integer
|
1154
|
+
%t1176 = call core.clamp(%t1168, %t1175, %t1174) :: integer
|
1155
|
+
%t1177 = gather %t1165, %t1176 :: integer
|
1156
|
+
%t1178 = const 0 :: integer
|
1157
|
+
%t1179 = select %t1172, %t1177, %t1178 :: integer
|
1158
|
+
%t1180 = load_input "rows" :: array
|
1159
|
+
%t1181 = length %t1180 :: integer
|
1160
|
+
%t1182 = call core.mod(%rows_i_279, %t1181) :: integer
|
1161
|
+
%t1183 = call core.add(%t1182, %t1181) :: integer
|
1162
|
+
%t1184 = call core.mod(%t1183, %t1181) :: integer
|
1163
|
+
%t1185 = gather %t1180, %t1184 :: any
|
1164
|
+
%t1186 = length %t1185 :: integer
|
1165
|
+
%t1187 = const 1 :: integer
|
1166
|
+
%t1188 = call core.sub(%col_i_281, %t1187) :: integer
|
1167
|
+
%t1189 = const 0 :: integer
|
1168
|
+
%t1190 = call core.gte(%t1188, %t1189) :: boolean
|
1169
|
+
%t1191 = call core.lt(%t1188, %t1186) :: boolean
|
1170
|
+
%t1192 = call core.and(%t1190, %t1191) :: boolean
|
1171
|
+
%t1193 = const 1 :: integer
|
1172
|
+
%t1194 = call core.sub(%t1186, %t1193) :: integer
|
1173
|
+
%t1195 = const 0 :: integer
|
1174
|
+
%t1196 = call core.clamp(%t1188, %t1195, %t1194) :: integer
|
1175
|
+
%t1197 = gather %t1185, %t1196 :: integer
|
1176
|
+
%t1198 = const 0 :: integer
|
1177
|
+
%t1199 = select %t1192, %t1197, %t1198 :: integer
|
1178
|
+
%t1200 = load_input "rows" :: array
|
1179
|
+
%t1201 = length %t1200 :: integer
|
1180
|
+
%t1202 = const -1 :: integer
|
1181
|
+
%t1203 = call core.sub(%rows_i_279, %t1202) :: integer
|
1182
|
+
%t1204 = const 0 :: integer
|
1183
|
+
%t1205 = call core.gte(%t1203, %t1204) :: boolean
|
1184
|
+
%t1206 = call core.lt(%t1203, %t1201) :: boolean
|
1185
|
+
%t1207 = call core.and(%t1205, %t1206) :: boolean
|
1186
|
+
%t1208 = const 1 :: integer
|
1187
|
+
%t1209 = call core.sub(%t1201, %t1208) :: integer
|
1188
|
+
%t1210 = const 0 :: integer
|
1189
|
+
%t1211 = call core.clamp(%t1203, %t1210, %t1209) :: integer
|
1190
|
+
%t1212 = gather %t1200, %t1211 :: any
|
1191
|
+
%t1213 = length %t1212 :: integer
|
1192
|
+
%t1214 = const -1 :: integer
|
1193
|
+
%t1215 = call core.sub(%col_i_281, %t1214) :: integer
|
1204
1194
|
%t1216 = const 0 :: integer
|
1205
|
-
%t1217 =
|
1206
|
-
%t1218 =
|
1207
|
-
%t1219 =
|
1208
|
-
%t1220 =
|
1209
|
-
%t1221 =
|
1210
|
-
%t1222 =
|
1211
|
-
%t1223 =
|
1212
|
-
%t1224 = call core.
|
1213
|
-
%t1225 =
|
1214
|
-
%t1226 = const
|
1215
|
-
%t1227 =
|
1216
|
-
%t1228 =
|
1217
|
-
%t1229 =
|
1218
|
-
%t1230 =
|
1219
|
-
%t1231 =
|
1220
|
-
%t1232 = const
|
1221
|
-
%t1233 = call core.
|
1222
|
-
%t1234 =
|
1223
|
-
%t1235 = call core.
|
1224
|
-
%t1236 =
|
1225
|
-
%t1237 = call core.
|
1226
|
-
%t1238 =
|
1227
|
-
%t1239 =
|
1228
|
-
%t1240 =
|
1229
|
-
%t1241 =
|
1230
|
-
%t1242 =
|
1231
|
-
%t1243 =
|
1195
|
+
%t1217 = call core.gte(%t1215, %t1216) :: boolean
|
1196
|
+
%t1218 = call core.lt(%t1215, %t1213) :: boolean
|
1197
|
+
%t1219 = call core.and(%t1217, %t1218) :: boolean
|
1198
|
+
%t1220 = call core.and(%t1207, %t1219) :: boolean
|
1199
|
+
%t1221 = const 1 :: integer
|
1200
|
+
%t1222 = call core.sub(%t1213, %t1221) :: integer
|
1201
|
+
%t1223 = const 0 :: integer
|
1202
|
+
%t1224 = call core.clamp(%t1215, %t1223, %t1222) :: integer
|
1203
|
+
%t1225 = gather %t1212, %t1224 :: integer
|
1204
|
+
%t1226 = const 0 :: integer
|
1205
|
+
%t1227 = select %t1220, %t1225, %t1226 :: integer
|
1206
|
+
%t1228 = load_input "rows" :: array
|
1207
|
+
%t1229 = length %t1228 :: integer
|
1208
|
+
%t1230 = const -1 :: integer
|
1209
|
+
%t1231 = call core.sub(%rows_i_279, %t1230) :: integer
|
1210
|
+
%t1232 = const 0 :: integer
|
1211
|
+
%t1233 = call core.gte(%t1231, %t1232) :: boolean
|
1212
|
+
%t1234 = call core.lt(%t1231, %t1229) :: boolean
|
1213
|
+
%t1235 = call core.and(%t1233, %t1234) :: boolean
|
1214
|
+
%t1236 = const 1 :: integer
|
1215
|
+
%t1237 = call core.sub(%t1229, %t1236) :: integer
|
1216
|
+
%t1238 = const 0 :: integer
|
1217
|
+
%t1239 = call core.clamp(%t1231, %t1238, %t1237) :: integer
|
1218
|
+
%t1240 = gather %t1228, %t1239 :: any
|
1219
|
+
%t1241 = length %t1240 :: integer
|
1220
|
+
%t1242 = const 1 :: integer
|
1221
|
+
%t1243 = call core.sub(%col_i_281, %t1242) :: integer
|
1232
1222
|
%t1244 = const 0 :: integer
|
1233
|
-
%t1245 =
|
1234
|
-
%t1246 =
|
1235
|
-
%t1247 =
|
1236
|
-
%t1248 =
|
1237
|
-
%t1249 =
|
1238
|
-
%t1250 =
|
1239
|
-
%t1251 =
|
1240
|
-
%t1252 = call core.
|
1241
|
-
%t1253 =
|
1242
|
-
%t1254 = const
|
1243
|
-
%t1255 =
|
1244
|
-
%t1256 =
|
1245
|
-
%t1257 =
|
1246
|
-
%t1258 =
|
1247
|
-
%t1259 =
|
1248
|
-
%t1260 = const
|
1249
|
-
%t1261 = call core.
|
1250
|
-
%t1262 =
|
1251
|
-
%t1263 = call core.
|
1252
|
-
%t1264 =
|
1253
|
-
%t1265 = call core.
|
1254
|
-
%t1266 =
|
1255
|
-
%t1267 =
|
1256
|
-
%t1268 =
|
1257
|
-
%t1269 =
|
1258
|
-
%t1270 =
|
1259
|
-
%t1271 =
|
1223
|
+
%t1245 = call core.gte(%t1243, %t1244) :: boolean
|
1224
|
+
%t1246 = call core.lt(%t1243, %t1241) :: boolean
|
1225
|
+
%t1247 = call core.and(%t1245, %t1246) :: boolean
|
1226
|
+
%t1248 = call core.and(%t1235, %t1247) :: boolean
|
1227
|
+
%t1249 = const 1 :: integer
|
1228
|
+
%t1250 = call core.sub(%t1241, %t1249) :: integer
|
1229
|
+
%t1251 = const 0 :: integer
|
1230
|
+
%t1252 = call core.clamp(%t1243, %t1251, %t1250) :: integer
|
1231
|
+
%t1253 = gather %t1240, %t1252 :: integer
|
1232
|
+
%t1254 = const 0 :: integer
|
1233
|
+
%t1255 = select %t1248, %t1253, %t1254 :: integer
|
1234
|
+
%t1256 = load_input "rows" :: array
|
1235
|
+
%t1257 = length %t1256 :: integer
|
1236
|
+
%t1258 = const 1 :: integer
|
1237
|
+
%t1259 = call core.sub(%rows_i_279, %t1258) :: integer
|
1238
|
+
%t1260 = const 0 :: integer
|
1239
|
+
%t1261 = call core.gte(%t1259, %t1260) :: boolean
|
1240
|
+
%t1262 = call core.lt(%t1259, %t1257) :: boolean
|
1241
|
+
%t1263 = call core.and(%t1261, %t1262) :: boolean
|
1242
|
+
%t1264 = const 1 :: integer
|
1243
|
+
%t1265 = call core.sub(%t1257, %t1264) :: integer
|
1244
|
+
%t1266 = const 0 :: integer
|
1245
|
+
%t1267 = call core.clamp(%t1259, %t1266, %t1265) :: integer
|
1246
|
+
%t1268 = gather %t1256, %t1267 :: any
|
1247
|
+
%t1269 = length %t1268 :: integer
|
1248
|
+
%t1270 = const -1 :: integer
|
1249
|
+
%t1271 = call core.sub(%col_i_281, %t1270) :: integer
|
1260
1250
|
%t1272 = const 0 :: integer
|
1261
|
-
%t1273 =
|
1262
|
-
%t1274 =
|
1263
|
-
%t1275 =
|
1264
|
-
%t1276 =
|
1265
|
-
%t1277 =
|
1266
|
-
%t1278 =
|
1267
|
-
%t1279 =
|
1268
|
-
%t1280 = call core.
|
1269
|
-
%t1281 =
|
1270
|
-
%t1282 = const
|
1271
|
-
%t1283 =
|
1272
|
-
%t1284 =
|
1273
|
-
%t1285 =
|
1274
|
-
%t1286 =
|
1275
|
-
%t1287 =
|
1276
|
-
%t1288 = const
|
1277
|
-
%t1289 = call core.
|
1278
|
-
%t1290 =
|
1279
|
-
%t1291 = call core.
|
1280
|
-
%t1292 =
|
1281
|
-
%t1293 = call core.
|
1282
|
-
%t1294 =
|
1283
|
-
%t1295 =
|
1284
|
-
%t1296 =
|
1285
|
-
%t1297 =
|
1286
|
-
%t1298 =
|
1287
|
-
%t1299 =
|
1251
|
+
%t1273 = call core.gte(%t1271, %t1272) :: boolean
|
1252
|
+
%t1274 = call core.lt(%t1271, %t1269) :: boolean
|
1253
|
+
%t1275 = call core.and(%t1273, %t1274) :: boolean
|
1254
|
+
%t1276 = call core.and(%t1263, %t1275) :: boolean
|
1255
|
+
%t1277 = const 1 :: integer
|
1256
|
+
%t1278 = call core.sub(%t1269, %t1277) :: integer
|
1257
|
+
%t1279 = const 0 :: integer
|
1258
|
+
%t1280 = call core.clamp(%t1271, %t1279, %t1278) :: integer
|
1259
|
+
%t1281 = gather %t1268, %t1280 :: integer
|
1260
|
+
%t1282 = const 0 :: integer
|
1261
|
+
%t1283 = select %t1276, %t1281, %t1282 :: integer
|
1262
|
+
%t1284 = load_input "rows" :: array
|
1263
|
+
%t1285 = length %t1284 :: integer
|
1264
|
+
%t1286 = const 1 :: integer
|
1265
|
+
%t1287 = call core.sub(%rows_i_279, %t1286) :: integer
|
1266
|
+
%t1288 = const 0 :: integer
|
1267
|
+
%t1289 = call core.gte(%t1287, %t1288) :: boolean
|
1268
|
+
%t1290 = call core.lt(%t1287, %t1285) :: boolean
|
1269
|
+
%t1291 = call core.and(%t1289, %t1290) :: boolean
|
1270
|
+
%t1292 = const 1 :: integer
|
1271
|
+
%t1293 = call core.sub(%t1285, %t1292) :: integer
|
1272
|
+
%t1294 = const 0 :: integer
|
1273
|
+
%t1295 = call core.clamp(%t1287, %t1294, %t1293) :: integer
|
1274
|
+
%t1296 = gather %t1284, %t1295 :: any
|
1275
|
+
%t1297 = length %t1296 :: integer
|
1276
|
+
%t1298 = const 1 :: integer
|
1277
|
+
%t1299 = call core.sub(%col_i_281, %t1298) :: integer
|
1288
1278
|
%t1300 = const 0 :: integer
|
1289
|
-
%t1301 =
|
1290
|
-
%t1302 =
|
1291
|
-
%t1303 =
|
1292
|
-
%
|
1293
|
-
%
|
1294
|
-
%
|
1295
|
-
%
|
1296
|
-
%
|
1297
|
-
%
|
1298
|
-
%
|
1299
|
-
%
|
1300
|
-
%
|
1301
|
-
%
|
1302
|
-
%
|
1303
|
-
%
|
1304
|
-
%
|
1305
|
-
%
|
1306
|
-
%
|
1307
|
-
%
|
1308
|
-
%
|
1309
|
-
%
|
1310
|
-
%
|
1311
|
-
%
|
1312
|
-
%
|
1313
|
-
%
|
1314
|
-
%
|
1315
|
-
%
|
1316
|
-
%
|
1317
|
-
%
|
1318
|
-
%
|
1319
|
-
%
|
1320
|
-
%
|
1321
|
-
%
|
1322
|
-
%
|
1323
|
-
%
|
1324
|
-
%
|
1325
|
-
%
|
1326
|
-
%
|
1327
|
-
%
|
1328
|
-
%
|
1329
|
-
%
|
1330
|
-
%
|
1331
|
-
%
|
1332
|
-
%
|
1333
|
-
%
|
1334
|
-
%
|
1335
|
-
%
|
1336
|
-
%
|
1337
|
-
%
|
1338
|
-
%
|
1339
|
-
%
|
1340
|
-
%
|
1341
|
-
%
|
1342
|
-
%
|
1343
|
-
%
|
1344
|
-
%
|
1345
|
-
%
|
1346
|
-
%
|
1347
|
-
%
|
1348
|
-
%
|
1349
|
-
%
|
1350
|
-
%
|
1351
|
-
%
|
1352
|
-
%
|
1353
|
-
%
|
1354
|
-
%
|
1355
|
-
%
|
1356
|
-
%
|
1357
|
-
%
|
1358
|
-
%
|
1359
|
-
%
|
1360
|
-
%
|
1361
|
-
%
|
1362
|
-
%
|
1363
|
-
%
|
1364
|
-
%
|
1365
|
-
%
|
1279
|
+
%t1301 = call core.gte(%t1299, %t1300) :: boolean
|
1280
|
+
%t1302 = call core.lt(%t1299, %t1297) :: boolean
|
1281
|
+
%t1303 = call core.and(%t1301, %t1302) :: boolean
|
1282
|
+
%t1304 = call core.and(%t1291, %t1303) :: boolean
|
1283
|
+
%t1305 = const 1 :: integer
|
1284
|
+
%t1306 = call core.sub(%t1297, %t1305) :: integer
|
1285
|
+
%t1307 = const 0 :: integer
|
1286
|
+
%t1308 = call core.clamp(%t1299, %t1307, %t1306) :: integer
|
1287
|
+
%t1309 = gather %t1296, %t1308 :: integer
|
1288
|
+
%t1310 = const 0 :: integer
|
1289
|
+
%t1311 = select %t1304, %t1309, %t1310 :: integer
|
1290
|
+
%t1118 = make_tuple(%t1139, %t1159, %t1179, %t1199, %t1227, %t1255, %t1283, %t1311) :: tuple<integer>
|
1291
|
+
%t1119 = fold %t1118 fn="agg.sum" ::
|
1292
|
+
%t1107 = const 3 :: integer
|
1293
|
+
%t1108 = call core.eq(%t1119, %t1107) :: boolean
|
1294
|
+
%t1312 = load_input "rows" :: array
|
1295
|
+
%t1316 = load_input "rows" :: array
|
1296
|
+
%t1320 = load_input "rows" :: array
|
1297
|
+
%t1331 = load_input "rows" :: array
|
1298
|
+
%t1332 = length %t1331 :: integer
|
1299
|
+
%t1333 = const -1 :: integer
|
1300
|
+
%t1334 = call core.sub(%rows_i_279, %t1333) :: integer
|
1301
|
+
%t1335 = const 0 :: integer
|
1302
|
+
%t1336 = call core.gte(%t1334, %t1335) :: boolean
|
1303
|
+
%t1337 = call core.lt(%t1334, %t1332) :: boolean
|
1304
|
+
%t1338 = call core.and(%t1336, %t1337) :: boolean
|
1305
|
+
%t1339 = const 1 :: integer
|
1306
|
+
%t1340 = call core.sub(%t1332, %t1339) :: integer
|
1307
|
+
%t1341 = const 0 :: integer
|
1308
|
+
%t1342 = call core.clamp(%t1334, %t1341, %t1340) :: integer
|
1309
|
+
%t1343 = gather %t1331, %t1342 :: any
|
1310
|
+
%t1344 = length %t1343 :: integer
|
1311
|
+
%t1345 = call core.mod(%col_i_281, %t1344) :: integer
|
1312
|
+
%t1346 = call core.add(%t1345, %t1344) :: integer
|
1313
|
+
%t1347 = call core.mod(%t1346, %t1344) :: integer
|
1314
|
+
%t1348 = gather %t1343, %t1347 :: integer
|
1315
|
+
%t1349 = const 0 :: integer
|
1316
|
+
%t1350 = select %t1338, %t1348, %t1349 :: integer
|
1317
|
+
%t1351 = load_input "rows" :: array
|
1318
|
+
%t1352 = length %t1351 :: integer
|
1319
|
+
%t1353 = const 1 :: integer
|
1320
|
+
%t1354 = call core.sub(%rows_i_279, %t1353) :: integer
|
1321
|
+
%t1355 = const 0 :: integer
|
1322
|
+
%t1356 = call core.gte(%t1354, %t1355) :: boolean
|
1323
|
+
%t1357 = call core.lt(%t1354, %t1352) :: boolean
|
1324
|
+
%t1358 = call core.and(%t1356, %t1357) :: boolean
|
1325
|
+
%t1359 = const 1 :: integer
|
1326
|
+
%t1360 = call core.sub(%t1352, %t1359) :: integer
|
1327
|
+
%t1361 = const 0 :: integer
|
1328
|
+
%t1362 = call core.clamp(%t1354, %t1361, %t1360) :: integer
|
1329
|
+
%t1363 = gather %t1351, %t1362 :: any
|
1330
|
+
%t1364 = length %t1363 :: integer
|
1331
|
+
%t1365 = call core.mod(%col_i_281, %t1364) :: integer
|
1332
|
+
%t1366 = call core.add(%t1365, %t1364) :: integer
|
1333
|
+
%t1367 = call core.mod(%t1366, %t1364) :: integer
|
1334
|
+
%t1368 = gather %t1363, %t1367 :: integer
|
1335
|
+
%t1369 = const 0 :: integer
|
1336
|
+
%t1370 = select %t1358, %t1368, %t1369 :: integer
|
1337
|
+
%t1371 = load_input "rows" :: array
|
1338
|
+
%t1372 = length %t1371 :: integer
|
1339
|
+
%t1373 = call core.mod(%rows_i_279, %t1372) :: integer
|
1340
|
+
%t1374 = call core.add(%t1373, %t1372) :: integer
|
1341
|
+
%t1375 = call core.mod(%t1374, %t1372) :: integer
|
1342
|
+
%t1376 = gather %t1371, %t1375 :: any
|
1343
|
+
%t1377 = length %t1376 :: integer
|
1344
|
+
%t1378 = const -1 :: integer
|
1345
|
+
%t1379 = call core.sub(%col_i_281, %t1378) :: integer
|
1346
|
+
%t1380 = const 0 :: integer
|
1347
|
+
%t1381 = call core.gte(%t1379, %t1380) :: boolean
|
1348
|
+
%t1382 = call core.lt(%t1379, %t1377) :: boolean
|
1349
|
+
%t1383 = call core.and(%t1381, %t1382) :: boolean
|
1350
|
+
%t1384 = const 1 :: integer
|
1351
|
+
%t1385 = call core.sub(%t1377, %t1384) :: integer
|
1352
|
+
%t1386 = const 0 :: integer
|
1353
|
+
%t1387 = call core.clamp(%t1379, %t1386, %t1385) :: integer
|
1354
|
+
%t1388 = gather %t1376, %t1387 :: integer
|
1355
|
+
%t1389 = const 0 :: integer
|
1356
|
+
%t1390 = select %t1383, %t1388, %t1389 :: integer
|
1357
|
+
%t1391 = load_input "rows" :: array
|
1358
|
+
%t1392 = length %t1391 :: integer
|
1359
|
+
%t1393 = call core.mod(%rows_i_279, %t1392) :: integer
|
1360
|
+
%t1394 = call core.add(%t1393, %t1392) :: integer
|
1361
|
+
%t1395 = call core.mod(%t1394, %t1392) :: integer
|
1362
|
+
%t1396 = gather %t1391, %t1395 :: any
|
1363
|
+
%t1397 = length %t1396 :: integer
|
1364
|
+
%t1398 = const 1 :: integer
|
1365
|
+
%t1399 = call core.sub(%col_i_281, %t1398) :: integer
|
1366
|
+
%t1400 = const 0 :: integer
|
1367
|
+
%t1401 = call core.gte(%t1399, %t1400) :: boolean
|
1368
|
+
%t1402 = call core.lt(%t1399, %t1397) :: boolean
|
1369
|
+
%t1403 = call core.and(%t1401, %t1402) :: boolean
|
1370
|
+
%t1404 = const 1 :: integer
|
1371
|
+
%t1405 = call core.sub(%t1397, %t1404) :: integer
|
1372
|
+
%t1406 = const 0 :: integer
|
1373
|
+
%t1407 = call core.clamp(%t1399, %t1406, %t1405) :: integer
|
1374
|
+
%t1408 = gather %t1396, %t1407 :: integer
|
1375
|
+
%t1409 = const 0 :: integer
|
1376
|
+
%t1410 = select %t1403, %t1408, %t1409 :: integer
|
1377
|
+
%t1411 = load_input "rows" :: array
|
1378
|
+
%t1412 = length %t1411 :: integer
|
1379
|
+
%t1413 = const -1 :: integer
|
1380
|
+
%t1414 = call core.sub(%rows_i_279, %t1413) :: integer
|
1366
1381
|
%t1415 = const 0 :: integer
|
1367
1382
|
%t1416 = call core.gte(%t1414, %t1415) :: boolean
|
1368
1383
|
%t1417 = call core.lt(%t1414, %t1412) :: boolean
|
@@ -1371,131 +1386,116 @@
|
|
1371
1386
|
%t1420 = call core.sub(%t1412, %t1419) :: integer
|
1372
1387
|
%t1421 = const 0 :: integer
|
1373
1388
|
%t1422 = call core.clamp(%t1414, %t1421, %t1420) :: integer
|
1374
|
-
%t1423 =
|
1375
|
-
%t1424 =
|
1376
|
-
%t1425 =
|
1377
|
-
%t1426 =
|
1378
|
-
%t1427 =
|
1379
|
-
%t1428 =
|
1380
|
-
%t1429 = call core.
|
1381
|
-
%t1430 =
|
1382
|
-
%t1431 = call core.
|
1383
|
-
%t1432 =
|
1384
|
-
%t1433 = call core.
|
1385
|
-
%t1434 = const
|
1386
|
-
%t1435 = call core.
|
1387
|
-
%t1436 =
|
1388
|
-
%t1437 =
|
1389
|
-
%t1438 =
|
1390
|
-
%t1439 =
|
1391
|
-
%t1440 =
|
1392
|
-
%t1441 =
|
1393
|
-
%t1442 =
|
1394
|
-
%t1443 =
|
1395
|
-
%t1444 = call core.
|
1396
|
-
%t1445 = call core.
|
1397
|
-
%t1446 = call core.and(%
|
1389
|
+
%t1423 = gather %t1411, %t1422 :: any
|
1390
|
+
%t1424 = length %t1423 :: integer
|
1391
|
+
%t1425 = const -1 :: integer
|
1392
|
+
%t1426 = call core.sub(%col_i_281, %t1425) :: integer
|
1393
|
+
%t1427 = const 0 :: integer
|
1394
|
+
%t1428 = call core.gte(%t1426, %t1427) :: boolean
|
1395
|
+
%t1429 = call core.lt(%t1426, %t1424) :: boolean
|
1396
|
+
%t1430 = call core.and(%t1428, %t1429) :: boolean
|
1397
|
+
%t1431 = call core.and(%t1418, %t1430) :: boolean
|
1398
|
+
%t1432 = const 1 :: integer
|
1399
|
+
%t1433 = call core.sub(%t1424, %t1432) :: integer
|
1400
|
+
%t1434 = const 0 :: integer
|
1401
|
+
%t1435 = call core.clamp(%t1426, %t1434, %t1433) :: integer
|
1402
|
+
%t1436 = gather %t1423, %t1435 :: integer
|
1403
|
+
%t1437 = const 0 :: integer
|
1404
|
+
%t1438 = select %t1431, %t1436, %t1437 :: integer
|
1405
|
+
%t1439 = load_input "rows" :: array
|
1406
|
+
%t1440 = length %t1439 :: integer
|
1407
|
+
%t1441 = const -1 :: integer
|
1408
|
+
%t1442 = call core.sub(%rows_i_279, %t1441) :: integer
|
1409
|
+
%t1443 = const 0 :: integer
|
1410
|
+
%t1444 = call core.gte(%t1442, %t1443) :: boolean
|
1411
|
+
%t1445 = call core.lt(%t1442, %t1440) :: boolean
|
1412
|
+
%t1446 = call core.and(%t1444, %t1445) :: boolean
|
1398
1413
|
%t1447 = const 1 :: integer
|
1399
|
-
%t1448 = call core.sub(%
|
1414
|
+
%t1448 = call core.sub(%t1440, %t1447) :: integer
|
1400
1415
|
%t1449 = const 0 :: integer
|
1401
|
-
%t1450 = call core.clamp(%
|
1402
|
-
%t1451 =
|
1403
|
-
%t1452 =
|
1404
|
-
%t1453 =
|
1405
|
-
%t1454 =
|
1406
|
-
%t1455 =
|
1407
|
-
%t1456 =
|
1408
|
-
%t1457 = call core.
|
1409
|
-
%t1458 =
|
1410
|
-
%t1459 = call core.
|
1411
|
-
%t1460 =
|
1412
|
-
%t1461 = call core.
|
1413
|
-
%t1462 = const
|
1414
|
-
%t1463 = call core.
|
1415
|
-
%t1464 =
|
1416
|
-
%t1465 =
|
1417
|
-
%t1466 =
|
1418
|
-
%t1467 =
|
1419
|
-
%t1468 =
|
1420
|
-
%t1469 =
|
1421
|
-
%t1470 =
|
1422
|
-
%t1471 =
|
1423
|
-
%t1472 = call core.
|
1424
|
-
%t1473 = call core.
|
1425
|
-
%t1474 = call core.and(%
|
1416
|
+
%t1450 = call core.clamp(%t1442, %t1449, %t1448) :: integer
|
1417
|
+
%t1451 = gather %t1439, %t1450 :: any
|
1418
|
+
%t1452 = length %t1451 :: integer
|
1419
|
+
%t1453 = const 1 :: integer
|
1420
|
+
%t1454 = call core.sub(%col_i_281, %t1453) :: integer
|
1421
|
+
%t1455 = const 0 :: integer
|
1422
|
+
%t1456 = call core.gte(%t1454, %t1455) :: boolean
|
1423
|
+
%t1457 = call core.lt(%t1454, %t1452) :: boolean
|
1424
|
+
%t1458 = call core.and(%t1456, %t1457) :: boolean
|
1425
|
+
%t1459 = call core.and(%t1446, %t1458) :: boolean
|
1426
|
+
%t1460 = const 1 :: integer
|
1427
|
+
%t1461 = call core.sub(%t1452, %t1460) :: integer
|
1428
|
+
%t1462 = const 0 :: integer
|
1429
|
+
%t1463 = call core.clamp(%t1454, %t1462, %t1461) :: integer
|
1430
|
+
%t1464 = gather %t1451, %t1463 :: integer
|
1431
|
+
%t1465 = const 0 :: integer
|
1432
|
+
%t1466 = select %t1459, %t1464, %t1465 :: integer
|
1433
|
+
%t1467 = load_input "rows" :: array
|
1434
|
+
%t1468 = length %t1467 :: integer
|
1435
|
+
%t1469 = const 1 :: integer
|
1436
|
+
%t1470 = call core.sub(%rows_i_279, %t1469) :: integer
|
1437
|
+
%t1471 = const 0 :: integer
|
1438
|
+
%t1472 = call core.gte(%t1470, %t1471) :: boolean
|
1439
|
+
%t1473 = call core.lt(%t1470, %t1468) :: boolean
|
1440
|
+
%t1474 = call core.and(%t1472, %t1473) :: boolean
|
1426
1441
|
%t1475 = const 1 :: integer
|
1427
|
-
%t1476 = call core.sub(%
|
1442
|
+
%t1476 = call core.sub(%t1468, %t1475) :: integer
|
1428
1443
|
%t1477 = const 0 :: integer
|
1429
|
-
%t1478 = call core.clamp(%
|
1430
|
-
%t1479 =
|
1431
|
-
%t1480 =
|
1432
|
-
%t1481 =
|
1433
|
-
%t1482 =
|
1434
|
-
%t1483 =
|
1435
|
-
%t1484 =
|
1436
|
-
%t1485 = call core.
|
1437
|
-
%t1486 =
|
1438
|
-
%t1487 = call core.
|
1439
|
-
%t1488 =
|
1440
|
-
%t1489 = call core.
|
1441
|
-
%t1490 = const
|
1442
|
-
%t1491 = call core.
|
1443
|
-
%t1492 =
|
1444
|
-
%t1493 =
|
1445
|
-
%t1494 =
|
1446
|
-
%t1495 =
|
1447
|
-
%t1496 =
|
1448
|
-
%t1497 =
|
1449
|
-
%t1498 =
|
1450
|
-
%t1499 =
|
1451
|
-
%t1500 = call core.
|
1452
|
-
%t1501 = call core.
|
1453
|
-
%t1502 = call core.and(%
|
1444
|
+
%t1478 = call core.clamp(%t1470, %t1477, %t1476) :: integer
|
1445
|
+
%t1479 = gather %t1467, %t1478 :: any
|
1446
|
+
%t1480 = length %t1479 :: integer
|
1447
|
+
%t1481 = const -1 :: integer
|
1448
|
+
%t1482 = call core.sub(%col_i_281, %t1481) :: integer
|
1449
|
+
%t1483 = const 0 :: integer
|
1450
|
+
%t1484 = call core.gte(%t1482, %t1483) :: boolean
|
1451
|
+
%t1485 = call core.lt(%t1482, %t1480) :: boolean
|
1452
|
+
%t1486 = call core.and(%t1484, %t1485) :: boolean
|
1453
|
+
%t1487 = call core.and(%t1474, %t1486) :: boolean
|
1454
|
+
%t1488 = const 1 :: integer
|
1455
|
+
%t1489 = call core.sub(%t1480, %t1488) :: integer
|
1456
|
+
%t1490 = const 0 :: integer
|
1457
|
+
%t1491 = call core.clamp(%t1482, %t1490, %t1489) :: integer
|
1458
|
+
%t1492 = gather %t1479, %t1491 :: integer
|
1459
|
+
%t1493 = const 0 :: integer
|
1460
|
+
%t1494 = select %t1487, %t1492, %t1493 :: integer
|
1461
|
+
%t1495 = load_input "rows" :: array
|
1462
|
+
%t1496 = length %t1495 :: integer
|
1463
|
+
%t1497 = const 1 :: integer
|
1464
|
+
%t1498 = call core.sub(%rows_i_279, %t1497) :: integer
|
1465
|
+
%t1499 = const 0 :: integer
|
1466
|
+
%t1500 = call core.gte(%t1498, %t1499) :: boolean
|
1467
|
+
%t1501 = call core.lt(%t1498, %t1496) :: boolean
|
1468
|
+
%t1502 = call core.and(%t1500, %t1501) :: boolean
|
1454
1469
|
%t1503 = const 1 :: integer
|
1455
|
-
%t1504 = call core.sub(%
|
1470
|
+
%t1504 = call core.sub(%t1496, %t1503) :: integer
|
1456
1471
|
%t1505 = const 0 :: integer
|
1457
|
-
%t1506 = call core.clamp(%
|
1458
|
-
%t1507 =
|
1459
|
-
%t1508 =
|
1460
|
-
%t1509 =
|
1461
|
-
%t1510 =
|
1462
|
-
%t1511 =
|
1463
|
-
%t1512 =
|
1464
|
-
%t1513 = call core.
|
1465
|
-
%t1514 =
|
1466
|
-
%t1515 = call core.
|
1467
|
-
%t1516 =
|
1468
|
-
%t1517 = call core.
|
1469
|
-
%t1518 = const
|
1470
|
-
%t1519 = call core.
|
1471
|
-
%t1520 =
|
1472
|
-
%t1521 =
|
1473
|
-
%t1522 =
|
1474
|
-
%
|
1475
|
-
%
|
1476
|
-
%
|
1477
|
-
%
|
1478
|
-
%
|
1479
|
-
%
|
1480
|
-
%
|
1481
|
-
%
|
1482
|
-
%
|
1483
|
-
%
|
1484
|
-
%t1533 = const 0 :: integer
|
1485
|
-
%t1534 = call core.clamp(%t1525, %t1533, %t1532) :: integer
|
1486
|
-
%t1535 = Gather %t1522, %t1534 :: integer
|
1487
|
-
%t1536 = const 0 :: integer
|
1488
|
-
%t1537 = select %t1530, %t1535, %t1536 :: integer
|
1489
|
-
%t1314 = make_tuple(%t1365, %t1385, %t1405, %t1425, %t1453, %t1481, %t1509, %t1537) :: tuple<integer>
|
1490
|
-
%t1315 = Fold %t1314 fn="agg.sum" ::
|
1491
|
-
%t1316 = const 2 :: integer
|
1492
|
-
%t1317 = call core.eq(%t1315, %t1316) :: boolean
|
1493
|
-
%t1318 = load_input "rows" :: array
|
1494
|
-
%t1319 = load_input "rows" :: array
|
1495
|
-
%t1320 = const 0 :: integer
|
1496
|
-
%t1321 = call core.gt(%col_el_280, %t1320) :: boolean
|
1497
|
-
%t524 = call core.and(%t1317, %t1321) :: boolean
|
1498
|
-
%t284 = call core.or(%t520, %t524) :: boolean
|
1472
|
+
%t1506 = call core.clamp(%t1498, %t1505, %t1504) :: integer
|
1473
|
+
%t1507 = gather %t1495, %t1506 :: any
|
1474
|
+
%t1508 = length %t1507 :: integer
|
1475
|
+
%t1509 = const 1 :: integer
|
1476
|
+
%t1510 = call core.sub(%col_i_281, %t1509) :: integer
|
1477
|
+
%t1511 = const 0 :: integer
|
1478
|
+
%t1512 = call core.gte(%t1510, %t1511) :: boolean
|
1479
|
+
%t1513 = call core.lt(%t1510, %t1508) :: boolean
|
1480
|
+
%t1514 = call core.and(%t1512, %t1513) :: boolean
|
1481
|
+
%t1515 = call core.and(%t1502, %t1514) :: boolean
|
1482
|
+
%t1516 = const 1 :: integer
|
1483
|
+
%t1517 = call core.sub(%t1508, %t1516) :: integer
|
1484
|
+
%t1518 = const 0 :: integer
|
1485
|
+
%t1519 = call core.clamp(%t1510, %t1518, %t1517) :: integer
|
1486
|
+
%t1520 = gather %t1507, %t1519 :: integer
|
1487
|
+
%t1521 = const 0 :: integer
|
1488
|
+
%t1522 = select %t1515, %t1520, %t1521 :: integer
|
1489
|
+
%t1329 = make_tuple(%t1350, %t1370, %t1390, %t1410, %t1438, %t1466, %t1494, %t1522) :: tuple<integer>
|
1490
|
+
%t1330 = fold %t1329 fn="agg.sum" ::
|
1491
|
+
%t1318 = const 2 :: integer
|
1492
|
+
%t1319 = call core.eq(%t1330, %t1318) :: boolean
|
1493
|
+
%t1523 = load_input "rows" :: array
|
1494
|
+
%t1527 = load_input "rows" :: array
|
1495
|
+
%t1525 = const 0 :: integer
|
1496
|
+
%t1526 = call core.gt(%col_el_280, %t1525) :: boolean
|
1497
|
+
%t1315 = call core.and(%t1319, %t1526) :: boolean
|
1498
|
+
%t284 = call core.or(%t1108, %t1315) :: boolean
|
1499
1499
|
yield %t284
|
1500
1500
|
end_loop
|
1501
1501
|
end_loop
|
@@ -1504,413 +1504,413 @@
|
|
1504
1504
|
%t285 = load_input "rows" :: array
|
1505
1505
|
loop rows id=L31 in %t285 as el=%rows_el_286, idx=%rows_i_287
|
1506
1506
|
loop col id=L32 in %rows_el_286 as el=%col_el_288, idx=%col_i_289
|
1507
|
-
%
|
1508
|
-
%
|
1509
|
-
%
|
1510
|
-
%
|
1511
|
-
%
|
1512
|
-
%
|
1513
|
-
%
|
1514
|
-
%
|
1515
|
-
%
|
1516
|
-
%
|
1517
|
-
%
|
1518
|
-
%
|
1519
|
-
%
|
1520
|
-
%
|
1521
|
-
%
|
1522
|
-
%
|
1523
|
-
%
|
1524
|
-
%
|
1525
|
-
%
|
1526
|
-
%
|
1527
|
-
%
|
1528
|
-
%
|
1529
|
-
%
|
1530
|
-
%
|
1531
|
-
%
|
1532
|
-
%
|
1533
|
-
%
|
1534
|
-
%
|
1535
|
-
%
|
1536
|
-
%
|
1537
|
-
%
|
1538
|
-
%
|
1539
|
-
%
|
1540
|
-
%
|
1541
|
-
%
|
1542
|
-
%
|
1543
|
-
%
|
1544
|
-
%
|
1545
|
-
%
|
1546
|
-
%
|
1547
|
-
%
|
1548
|
-
%
|
1549
|
-
%
|
1550
|
-
%
|
1551
|
-
%
|
1552
|
-
%
|
1553
|
-
%
|
1554
|
-
%
|
1555
|
-
%
|
1556
|
-
%
|
1557
|
-
%
|
1558
|
-
%
|
1559
|
-
%t1587 = const 0 :: integer
|
1560
|
-
%t1588 = call core.gte(%t1586, %t1587) :: boolean
|
1561
|
-
%t1589 = call core.lt(%t1586, %t1584) :: boolean
|
1562
|
-
%t1590 = call core.and(%t1588, %t1589) :: boolean
|
1563
|
-
%t1591 = const 1 :: integer
|
1564
|
-
%t1592 = call core.sub(%t1584, %t1591) :: integer
|
1565
|
-
%t1593 = const 0 :: integer
|
1566
|
-
%t1594 = call core.clamp(%t1586, %t1593, %t1592) :: integer
|
1567
|
-
%t1595 = Gather %t1583, %t1594 :: integer
|
1507
|
+
%t1528 = load_input "rows" :: array
|
1508
|
+
%t1532 = load_input "rows" :: array
|
1509
|
+
%t1536 = load_input "rows" :: array
|
1510
|
+
%t1547 = load_input "rows" :: array
|
1511
|
+
%t1548 = length %t1547 :: integer
|
1512
|
+
%t1549 = const -1 :: integer
|
1513
|
+
%t1550 = call core.sub(%rows_i_287, %t1549) :: integer
|
1514
|
+
%t1551 = const 0 :: integer
|
1515
|
+
%t1552 = call core.gte(%t1550, %t1551) :: boolean
|
1516
|
+
%t1553 = call core.lt(%t1550, %t1548) :: boolean
|
1517
|
+
%t1554 = call core.and(%t1552, %t1553) :: boolean
|
1518
|
+
%t1555 = const 1 :: integer
|
1519
|
+
%t1556 = call core.sub(%t1548, %t1555) :: integer
|
1520
|
+
%t1557 = const 0 :: integer
|
1521
|
+
%t1558 = call core.clamp(%t1550, %t1557, %t1556) :: integer
|
1522
|
+
%t1559 = gather %t1547, %t1558 :: any
|
1523
|
+
%t1560 = length %t1559 :: integer
|
1524
|
+
%t1561 = call core.mod(%col_i_289, %t1560) :: integer
|
1525
|
+
%t1562 = call core.add(%t1561, %t1560) :: integer
|
1526
|
+
%t1563 = call core.mod(%t1562, %t1560) :: integer
|
1527
|
+
%t1564 = gather %t1559, %t1563 :: integer
|
1528
|
+
%t1565 = const 0 :: integer
|
1529
|
+
%t1566 = select %t1554, %t1564, %t1565 :: integer
|
1530
|
+
%t1567 = load_input "rows" :: array
|
1531
|
+
%t1568 = length %t1567 :: integer
|
1532
|
+
%t1569 = const 1 :: integer
|
1533
|
+
%t1570 = call core.sub(%rows_i_287, %t1569) :: integer
|
1534
|
+
%t1571 = const 0 :: integer
|
1535
|
+
%t1572 = call core.gte(%t1570, %t1571) :: boolean
|
1536
|
+
%t1573 = call core.lt(%t1570, %t1568) :: boolean
|
1537
|
+
%t1574 = call core.and(%t1572, %t1573) :: boolean
|
1538
|
+
%t1575 = const 1 :: integer
|
1539
|
+
%t1576 = call core.sub(%t1568, %t1575) :: integer
|
1540
|
+
%t1577 = const 0 :: integer
|
1541
|
+
%t1578 = call core.clamp(%t1570, %t1577, %t1576) :: integer
|
1542
|
+
%t1579 = gather %t1567, %t1578 :: any
|
1543
|
+
%t1580 = length %t1579 :: integer
|
1544
|
+
%t1581 = call core.mod(%col_i_289, %t1580) :: integer
|
1545
|
+
%t1582 = call core.add(%t1581, %t1580) :: integer
|
1546
|
+
%t1583 = call core.mod(%t1582, %t1580) :: integer
|
1547
|
+
%t1584 = gather %t1579, %t1583 :: integer
|
1548
|
+
%t1585 = const 0 :: integer
|
1549
|
+
%t1586 = select %t1574, %t1584, %t1585 :: integer
|
1550
|
+
%t1587 = load_input "rows" :: array
|
1551
|
+
%t1588 = length %t1587 :: integer
|
1552
|
+
%t1589 = call core.mod(%rows_i_287, %t1588) :: integer
|
1553
|
+
%t1590 = call core.add(%t1589, %t1588) :: integer
|
1554
|
+
%t1591 = call core.mod(%t1590, %t1588) :: integer
|
1555
|
+
%t1592 = gather %t1587, %t1591 :: any
|
1556
|
+
%t1593 = length %t1592 :: integer
|
1557
|
+
%t1594 = const -1 :: integer
|
1558
|
+
%t1595 = call core.sub(%col_i_289, %t1594) :: integer
|
1568
1559
|
%t1596 = const 0 :: integer
|
1569
|
-
%t1597 =
|
1570
|
-
%t1598 =
|
1571
|
-
%t1599 =
|
1572
|
-
%t1600 =
|
1573
|
-
%t1601 = call core.
|
1574
|
-
%t1602 =
|
1575
|
-
%t1603 =
|
1576
|
-
%t1604 =
|
1577
|
-
%t1605 = const
|
1578
|
-
%t1606 =
|
1579
|
-
%t1607 =
|
1580
|
-
%t1608 =
|
1581
|
-
%t1609 = call core.
|
1582
|
-
%t1610 = call core.
|
1583
|
-
%t1611 =
|
1584
|
-
%t1612 =
|
1585
|
-
%t1613 =
|
1586
|
-
%t1614 =
|
1587
|
-
%t1615 =
|
1560
|
+
%t1597 = call core.gte(%t1595, %t1596) :: boolean
|
1561
|
+
%t1598 = call core.lt(%t1595, %t1593) :: boolean
|
1562
|
+
%t1599 = call core.and(%t1597, %t1598) :: boolean
|
1563
|
+
%t1600 = const 1 :: integer
|
1564
|
+
%t1601 = call core.sub(%t1593, %t1600) :: integer
|
1565
|
+
%t1602 = const 0 :: integer
|
1566
|
+
%t1603 = call core.clamp(%t1595, %t1602, %t1601) :: integer
|
1567
|
+
%t1604 = gather %t1592, %t1603 :: integer
|
1568
|
+
%t1605 = const 0 :: integer
|
1569
|
+
%t1606 = select %t1599, %t1604, %t1605 :: integer
|
1570
|
+
%t1607 = load_input "rows" :: array
|
1571
|
+
%t1608 = length %t1607 :: integer
|
1572
|
+
%t1609 = call core.mod(%rows_i_287, %t1608) :: integer
|
1573
|
+
%t1610 = call core.add(%t1609, %t1608) :: integer
|
1574
|
+
%t1611 = call core.mod(%t1610, %t1608) :: integer
|
1575
|
+
%t1612 = gather %t1607, %t1611 :: any
|
1576
|
+
%t1613 = length %t1612 :: integer
|
1577
|
+
%t1614 = const 1 :: integer
|
1578
|
+
%t1615 = call core.sub(%col_i_289, %t1614) :: integer
|
1588
1579
|
%t1616 = const 0 :: integer
|
1589
|
-
%t1617 =
|
1590
|
-
%t1618 =
|
1591
|
-
%t1619 =
|
1592
|
-
%t1620 = const
|
1593
|
-
%t1621 = call core.sub(%
|
1580
|
+
%t1617 = call core.gte(%t1615, %t1616) :: boolean
|
1581
|
+
%t1618 = call core.lt(%t1615, %t1613) :: boolean
|
1582
|
+
%t1619 = call core.and(%t1617, %t1618) :: boolean
|
1583
|
+
%t1620 = const 1 :: integer
|
1584
|
+
%t1621 = call core.sub(%t1613, %t1620) :: integer
|
1594
1585
|
%t1622 = const 0 :: integer
|
1595
|
-
%t1623 = call core.
|
1596
|
-
%t1624 =
|
1597
|
-
%t1625 =
|
1598
|
-
%t1626 =
|
1599
|
-
%t1627 =
|
1600
|
-
%t1628 =
|
1601
|
-
%t1629 =
|
1602
|
-
%t1630 =
|
1603
|
-
%t1631 =
|
1604
|
-
%t1632 =
|
1605
|
-
%t1633 = call core.
|
1606
|
-
%t1634 =
|
1607
|
-
%t1635 =
|
1608
|
-
%t1636 = call core.
|
1609
|
-
%t1637 =
|
1610
|
-
%t1638 = call core.
|
1611
|
-
%t1639 =
|
1612
|
-
%t1640 =
|
1613
|
-
%t1641 = const
|
1614
|
-
%t1642 = call core.
|
1615
|
-
%t1643 =
|
1616
|
-
%t1644 =
|
1617
|
-
%t1645 =
|
1618
|
-
%t1646 =
|
1619
|
-
%t1647 =
|
1620
|
-
%t1648 = const
|
1621
|
-
%t1649 = call core.sub(%
|
1586
|
+
%t1623 = call core.clamp(%t1615, %t1622, %t1621) :: integer
|
1587
|
+
%t1624 = gather %t1612, %t1623 :: integer
|
1588
|
+
%t1625 = const 0 :: integer
|
1589
|
+
%t1626 = select %t1619, %t1624, %t1625 :: integer
|
1590
|
+
%t1627 = load_input "rows" :: array
|
1591
|
+
%t1628 = length %t1627 :: integer
|
1592
|
+
%t1629 = const -1 :: integer
|
1593
|
+
%t1630 = call core.sub(%rows_i_287, %t1629) :: integer
|
1594
|
+
%t1631 = const 0 :: integer
|
1595
|
+
%t1632 = call core.gte(%t1630, %t1631) :: boolean
|
1596
|
+
%t1633 = call core.lt(%t1630, %t1628) :: boolean
|
1597
|
+
%t1634 = call core.and(%t1632, %t1633) :: boolean
|
1598
|
+
%t1635 = const 1 :: integer
|
1599
|
+
%t1636 = call core.sub(%t1628, %t1635) :: integer
|
1600
|
+
%t1637 = const 0 :: integer
|
1601
|
+
%t1638 = call core.clamp(%t1630, %t1637, %t1636) :: integer
|
1602
|
+
%t1639 = gather %t1627, %t1638 :: any
|
1603
|
+
%t1640 = length %t1639 :: integer
|
1604
|
+
%t1641 = const -1 :: integer
|
1605
|
+
%t1642 = call core.sub(%col_i_289, %t1641) :: integer
|
1606
|
+
%t1643 = const 0 :: integer
|
1607
|
+
%t1644 = call core.gte(%t1642, %t1643) :: boolean
|
1608
|
+
%t1645 = call core.lt(%t1642, %t1640) :: boolean
|
1609
|
+
%t1646 = call core.and(%t1644, %t1645) :: boolean
|
1610
|
+
%t1647 = call core.and(%t1634, %t1646) :: boolean
|
1611
|
+
%t1648 = const 1 :: integer
|
1612
|
+
%t1649 = call core.sub(%t1640, %t1648) :: integer
|
1622
1613
|
%t1650 = const 0 :: integer
|
1623
|
-
%t1651 = call core.
|
1624
|
-
%t1652 =
|
1625
|
-
%t1653 =
|
1626
|
-
%t1654 =
|
1627
|
-
%t1655 =
|
1628
|
-
%t1656 =
|
1629
|
-
%t1657 =
|
1630
|
-
%t1658 =
|
1631
|
-
%t1659 =
|
1632
|
-
%t1660 =
|
1633
|
-
%t1661 = call core.
|
1634
|
-
%t1662 =
|
1635
|
-
%t1663 =
|
1636
|
-
%t1664 = call core.
|
1637
|
-
%t1665 =
|
1638
|
-
%t1666 = call core.
|
1639
|
-
%t1667 =
|
1640
|
-
%t1668 =
|
1641
|
-
%t1669 = const
|
1642
|
-
%t1670 = call core.
|
1643
|
-
%t1671 =
|
1644
|
-
%t1672 =
|
1645
|
-
%t1673 =
|
1646
|
-
%t1674 =
|
1647
|
-
%t1675 =
|
1614
|
+
%t1651 = call core.clamp(%t1642, %t1650, %t1649) :: integer
|
1615
|
+
%t1652 = gather %t1639, %t1651 :: integer
|
1616
|
+
%t1653 = const 0 :: integer
|
1617
|
+
%t1654 = select %t1647, %t1652, %t1653 :: integer
|
1618
|
+
%t1655 = load_input "rows" :: array
|
1619
|
+
%t1656 = length %t1655 :: integer
|
1620
|
+
%t1657 = const -1 :: integer
|
1621
|
+
%t1658 = call core.sub(%rows_i_287, %t1657) :: integer
|
1622
|
+
%t1659 = const 0 :: integer
|
1623
|
+
%t1660 = call core.gte(%t1658, %t1659) :: boolean
|
1624
|
+
%t1661 = call core.lt(%t1658, %t1656) :: boolean
|
1625
|
+
%t1662 = call core.and(%t1660, %t1661) :: boolean
|
1626
|
+
%t1663 = const 1 :: integer
|
1627
|
+
%t1664 = call core.sub(%t1656, %t1663) :: integer
|
1628
|
+
%t1665 = const 0 :: integer
|
1629
|
+
%t1666 = call core.clamp(%t1658, %t1665, %t1664) :: integer
|
1630
|
+
%t1667 = gather %t1655, %t1666 :: any
|
1631
|
+
%t1668 = length %t1667 :: integer
|
1632
|
+
%t1669 = const 1 :: integer
|
1633
|
+
%t1670 = call core.sub(%col_i_289, %t1669) :: integer
|
1634
|
+
%t1671 = const 0 :: integer
|
1635
|
+
%t1672 = call core.gte(%t1670, %t1671) :: boolean
|
1636
|
+
%t1673 = call core.lt(%t1670, %t1668) :: boolean
|
1637
|
+
%t1674 = call core.and(%t1672, %t1673) :: boolean
|
1638
|
+
%t1675 = call core.and(%t1662, %t1674) :: boolean
|
1648
1639
|
%t1676 = const 1 :: integer
|
1649
|
-
%t1677 = call core.sub(%
|
1640
|
+
%t1677 = call core.sub(%t1668, %t1676) :: integer
|
1650
1641
|
%t1678 = const 0 :: integer
|
1651
|
-
%t1679 = call core.
|
1652
|
-
%t1680 =
|
1653
|
-
%t1681 =
|
1654
|
-
%t1682 =
|
1655
|
-
%t1683 =
|
1656
|
-
%t1684 =
|
1657
|
-
%t1685 =
|
1658
|
-
%t1686 =
|
1659
|
-
%t1687 =
|
1660
|
-
%t1688 =
|
1661
|
-
%t1689 = call core.
|
1662
|
-
%t1690 =
|
1663
|
-
%t1691 =
|
1664
|
-
%t1692 = call core.
|
1665
|
-
%t1693 =
|
1666
|
-
%t1694 = call core.
|
1667
|
-
%t1695 =
|
1668
|
-
%t1696 =
|
1669
|
-
%t1697 = const
|
1670
|
-
%t1698 = call core.
|
1671
|
-
%t1699 =
|
1672
|
-
%t1700 =
|
1673
|
-
%t1701 =
|
1674
|
-
%t1702 =
|
1675
|
-
%t1703 =
|
1642
|
+
%t1679 = call core.clamp(%t1670, %t1678, %t1677) :: integer
|
1643
|
+
%t1680 = gather %t1667, %t1679 :: integer
|
1644
|
+
%t1681 = const 0 :: integer
|
1645
|
+
%t1682 = select %t1675, %t1680, %t1681 :: integer
|
1646
|
+
%t1683 = load_input "rows" :: array
|
1647
|
+
%t1684 = length %t1683 :: integer
|
1648
|
+
%t1685 = const 1 :: integer
|
1649
|
+
%t1686 = call core.sub(%rows_i_287, %t1685) :: integer
|
1650
|
+
%t1687 = const 0 :: integer
|
1651
|
+
%t1688 = call core.gte(%t1686, %t1687) :: boolean
|
1652
|
+
%t1689 = call core.lt(%t1686, %t1684) :: boolean
|
1653
|
+
%t1690 = call core.and(%t1688, %t1689) :: boolean
|
1654
|
+
%t1691 = const 1 :: integer
|
1655
|
+
%t1692 = call core.sub(%t1684, %t1691) :: integer
|
1656
|
+
%t1693 = const 0 :: integer
|
1657
|
+
%t1694 = call core.clamp(%t1686, %t1693, %t1692) :: integer
|
1658
|
+
%t1695 = gather %t1683, %t1694 :: any
|
1659
|
+
%t1696 = length %t1695 :: integer
|
1660
|
+
%t1697 = const -1 :: integer
|
1661
|
+
%t1698 = call core.sub(%col_i_289, %t1697) :: integer
|
1662
|
+
%t1699 = const 0 :: integer
|
1663
|
+
%t1700 = call core.gte(%t1698, %t1699) :: boolean
|
1664
|
+
%t1701 = call core.lt(%t1698, %t1696) :: boolean
|
1665
|
+
%t1702 = call core.and(%t1700, %t1701) :: boolean
|
1666
|
+
%t1703 = call core.and(%t1690, %t1702) :: boolean
|
1676
1667
|
%t1704 = const 1 :: integer
|
1677
|
-
%t1705 = call core.sub(%
|
1668
|
+
%t1705 = call core.sub(%t1696, %t1704) :: integer
|
1678
1669
|
%t1706 = const 0 :: integer
|
1679
|
-
%t1707 = call core.
|
1680
|
-
%t1708 =
|
1681
|
-
%t1709 =
|
1682
|
-
%t1710 =
|
1683
|
-
%t1711 =
|
1684
|
-
%t1712 =
|
1685
|
-
%t1713 =
|
1686
|
-
%t1714 =
|
1687
|
-
%t1715 =
|
1688
|
-
%t1716 =
|
1689
|
-
%t1717 = call core.
|
1690
|
-
%t1718 =
|
1691
|
-
%t1719 =
|
1692
|
-
%t1720 = call core.
|
1693
|
-
%t1721 =
|
1694
|
-
%t1722 = call core.
|
1695
|
-
%t1723 =
|
1696
|
-
%t1724 =
|
1697
|
-
%t1725 = const
|
1698
|
-
%t1726 = call core.
|
1699
|
-
%t1727 =
|
1700
|
-
%t1728 =
|
1701
|
-
%t1729 =
|
1702
|
-
%
|
1703
|
-
%
|
1704
|
-
%
|
1705
|
-
%
|
1706
|
-
%
|
1707
|
-
%
|
1708
|
-
%
|
1709
|
-
%
|
1710
|
-
%
|
1711
|
-
%
|
1712
|
-
%
|
1713
|
-
%
|
1714
|
-
%
|
1715
|
-
%
|
1716
|
-
%
|
1717
|
-
%
|
1718
|
-
%
|
1719
|
-
%
|
1720
|
-
%
|
1721
|
-
%
|
1722
|
-
%
|
1723
|
-
%
|
1724
|
-
%
|
1725
|
-
%
|
1726
|
-
%
|
1727
|
-
%
|
1728
|
-
%
|
1729
|
-
%
|
1730
|
-
%
|
1731
|
-
%
|
1732
|
-
%
|
1733
|
-
%
|
1734
|
-
%
|
1735
|
-
%
|
1736
|
-
%
|
1737
|
-
%
|
1738
|
-
%
|
1739
|
-
%
|
1740
|
-
%
|
1741
|
-
%
|
1742
|
-
%
|
1743
|
-
%
|
1744
|
-
%
|
1745
|
-
%
|
1746
|
-
%
|
1747
|
-
%
|
1748
|
-
%
|
1749
|
-
%
|
1750
|
-
%
|
1751
|
-
%
|
1752
|
-
%
|
1753
|
-
%
|
1754
|
-
%
|
1755
|
-
%
|
1756
|
-
%
|
1757
|
-
%
|
1758
|
-
%
|
1759
|
-
%
|
1760
|
-
%
|
1761
|
-
%
|
1762
|
-
%
|
1763
|
-
%
|
1764
|
-
%
|
1765
|
-
%
|
1766
|
-
%
|
1767
|
-
%
|
1768
|
-
%
|
1769
|
-
%
|
1770
|
-
%
|
1771
|
-
%
|
1772
|
-
%
|
1773
|
-
%
|
1774
|
-
%
|
1775
|
-
%
|
1776
|
-
%
|
1777
|
-
%
|
1778
|
-
%
|
1779
|
-
%
|
1780
|
-
%
|
1781
|
-
%
|
1782
|
-
%
|
1783
|
-
%
|
1784
|
-
%
|
1785
|
-
%
|
1786
|
-
%t1808 = Gather %t1796, %t1807 :: integer
|
1787
|
-
%t1809 = const 0 :: integer
|
1788
|
-
%t1810 = select %t1803, %t1808, %t1809 :: integer
|
1789
|
-
%t1811 = load_input "rows" :: array
|
1790
|
-
%t1812 = Length %t1811 :: integer
|
1791
|
-
%t1813 = const -1 :: integer
|
1792
|
-
%t1814 = call core.sub(%rows_i_287, %t1813) :: integer
|
1793
|
-
%t1815 = const 0 :: integer
|
1794
|
-
%t1816 = call core.gte(%t1814, %t1815) :: boolean
|
1795
|
-
%t1817 = call core.lt(%t1814, %t1812) :: boolean
|
1796
|
-
%t1818 = call core.and(%t1816, %t1817) :: boolean
|
1797
|
-
%t1819 = const 1 :: integer
|
1798
|
-
%t1820 = call core.sub(%t1812, %t1819) :: integer
|
1799
|
-
%t1821 = const 0 :: integer
|
1800
|
-
%t1822 = call core.clamp(%t1814, %t1821, %t1820) :: integer
|
1801
|
-
%t1823 = Gather %t1811, %t1822 :: any
|
1802
|
-
%t1824 = Length %t1823 :: integer
|
1803
|
-
%t1825 = const -1 :: integer
|
1670
|
+
%t1707 = call core.clamp(%t1698, %t1706, %t1705) :: integer
|
1671
|
+
%t1708 = gather %t1695, %t1707 :: integer
|
1672
|
+
%t1709 = const 0 :: integer
|
1673
|
+
%t1710 = select %t1703, %t1708, %t1709 :: integer
|
1674
|
+
%t1711 = load_input "rows" :: array
|
1675
|
+
%t1712 = length %t1711 :: integer
|
1676
|
+
%t1713 = const 1 :: integer
|
1677
|
+
%t1714 = call core.sub(%rows_i_287, %t1713) :: integer
|
1678
|
+
%t1715 = const 0 :: integer
|
1679
|
+
%t1716 = call core.gte(%t1714, %t1715) :: boolean
|
1680
|
+
%t1717 = call core.lt(%t1714, %t1712) :: boolean
|
1681
|
+
%t1718 = call core.and(%t1716, %t1717) :: boolean
|
1682
|
+
%t1719 = const 1 :: integer
|
1683
|
+
%t1720 = call core.sub(%t1712, %t1719) :: integer
|
1684
|
+
%t1721 = const 0 :: integer
|
1685
|
+
%t1722 = call core.clamp(%t1714, %t1721, %t1720) :: integer
|
1686
|
+
%t1723 = gather %t1711, %t1722 :: any
|
1687
|
+
%t1724 = length %t1723 :: integer
|
1688
|
+
%t1725 = const 1 :: integer
|
1689
|
+
%t1726 = call core.sub(%col_i_289, %t1725) :: integer
|
1690
|
+
%t1727 = const 0 :: integer
|
1691
|
+
%t1728 = call core.gte(%t1726, %t1727) :: boolean
|
1692
|
+
%t1729 = call core.lt(%t1726, %t1724) :: boolean
|
1693
|
+
%t1730 = call core.and(%t1728, %t1729) :: boolean
|
1694
|
+
%t1731 = call core.and(%t1718, %t1730) :: boolean
|
1695
|
+
%t1732 = const 1 :: integer
|
1696
|
+
%t1733 = call core.sub(%t1724, %t1732) :: integer
|
1697
|
+
%t1734 = const 0 :: integer
|
1698
|
+
%t1735 = call core.clamp(%t1726, %t1734, %t1733) :: integer
|
1699
|
+
%t1736 = gather %t1723, %t1735 :: integer
|
1700
|
+
%t1737 = const 0 :: integer
|
1701
|
+
%t1738 = select %t1731, %t1736, %t1737 :: integer
|
1702
|
+
%t1545 = make_tuple(%t1566, %t1586, %t1606, %t1626, %t1654, %t1682, %t1710, %t1738) :: tuple<integer>
|
1703
|
+
%t1546 = fold %t1545 fn="agg.sum" ::
|
1704
|
+
%t1534 = const 3 :: integer
|
1705
|
+
%t1535 = call core.eq(%t1546, %t1534) :: boolean
|
1706
|
+
%t1739 = load_input "rows" :: array
|
1707
|
+
%t1743 = load_input "rows" :: array
|
1708
|
+
%t1747 = load_input "rows" :: array
|
1709
|
+
%t1758 = load_input "rows" :: array
|
1710
|
+
%t1759 = length %t1758 :: integer
|
1711
|
+
%t1760 = const -1 :: integer
|
1712
|
+
%t1761 = call core.sub(%rows_i_287, %t1760) :: integer
|
1713
|
+
%t1762 = const 0 :: integer
|
1714
|
+
%t1763 = call core.gte(%t1761, %t1762) :: boolean
|
1715
|
+
%t1764 = call core.lt(%t1761, %t1759) :: boolean
|
1716
|
+
%t1765 = call core.and(%t1763, %t1764) :: boolean
|
1717
|
+
%t1766 = const 1 :: integer
|
1718
|
+
%t1767 = call core.sub(%t1759, %t1766) :: integer
|
1719
|
+
%t1768 = const 0 :: integer
|
1720
|
+
%t1769 = call core.clamp(%t1761, %t1768, %t1767) :: integer
|
1721
|
+
%t1770 = gather %t1758, %t1769 :: any
|
1722
|
+
%t1771 = length %t1770 :: integer
|
1723
|
+
%t1772 = call core.mod(%col_i_289, %t1771) :: integer
|
1724
|
+
%t1773 = call core.add(%t1772, %t1771) :: integer
|
1725
|
+
%t1774 = call core.mod(%t1773, %t1771) :: integer
|
1726
|
+
%t1775 = gather %t1770, %t1774 :: integer
|
1727
|
+
%t1776 = const 0 :: integer
|
1728
|
+
%t1777 = select %t1765, %t1775, %t1776 :: integer
|
1729
|
+
%t1778 = load_input "rows" :: array
|
1730
|
+
%t1779 = length %t1778 :: integer
|
1731
|
+
%t1780 = const 1 :: integer
|
1732
|
+
%t1781 = call core.sub(%rows_i_287, %t1780) :: integer
|
1733
|
+
%t1782 = const 0 :: integer
|
1734
|
+
%t1783 = call core.gte(%t1781, %t1782) :: boolean
|
1735
|
+
%t1784 = call core.lt(%t1781, %t1779) :: boolean
|
1736
|
+
%t1785 = call core.and(%t1783, %t1784) :: boolean
|
1737
|
+
%t1786 = const 1 :: integer
|
1738
|
+
%t1787 = call core.sub(%t1779, %t1786) :: integer
|
1739
|
+
%t1788 = const 0 :: integer
|
1740
|
+
%t1789 = call core.clamp(%t1781, %t1788, %t1787) :: integer
|
1741
|
+
%t1790 = gather %t1778, %t1789 :: any
|
1742
|
+
%t1791 = length %t1790 :: integer
|
1743
|
+
%t1792 = call core.mod(%col_i_289, %t1791) :: integer
|
1744
|
+
%t1793 = call core.add(%t1792, %t1791) :: integer
|
1745
|
+
%t1794 = call core.mod(%t1793, %t1791) :: integer
|
1746
|
+
%t1795 = gather %t1790, %t1794 :: integer
|
1747
|
+
%t1796 = const 0 :: integer
|
1748
|
+
%t1797 = select %t1785, %t1795, %t1796 :: integer
|
1749
|
+
%t1798 = load_input "rows" :: array
|
1750
|
+
%t1799 = length %t1798 :: integer
|
1751
|
+
%t1800 = call core.mod(%rows_i_287, %t1799) :: integer
|
1752
|
+
%t1801 = call core.add(%t1800, %t1799) :: integer
|
1753
|
+
%t1802 = call core.mod(%t1801, %t1799) :: integer
|
1754
|
+
%t1803 = gather %t1798, %t1802 :: any
|
1755
|
+
%t1804 = length %t1803 :: integer
|
1756
|
+
%t1805 = const -1 :: integer
|
1757
|
+
%t1806 = call core.sub(%col_i_289, %t1805) :: integer
|
1758
|
+
%t1807 = const 0 :: integer
|
1759
|
+
%t1808 = call core.gte(%t1806, %t1807) :: boolean
|
1760
|
+
%t1809 = call core.lt(%t1806, %t1804) :: boolean
|
1761
|
+
%t1810 = call core.and(%t1808, %t1809) :: boolean
|
1762
|
+
%t1811 = const 1 :: integer
|
1763
|
+
%t1812 = call core.sub(%t1804, %t1811) :: integer
|
1764
|
+
%t1813 = const 0 :: integer
|
1765
|
+
%t1814 = call core.clamp(%t1806, %t1813, %t1812) :: integer
|
1766
|
+
%t1815 = gather %t1803, %t1814 :: integer
|
1767
|
+
%t1816 = const 0 :: integer
|
1768
|
+
%t1817 = select %t1810, %t1815, %t1816 :: integer
|
1769
|
+
%t1818 = load_input "rows" :: array
|
1770
|
+
%t1819 = length %t1818 :: integer
|
1771
|
+
%t1820 = call core.mod(%rows_i_287, %t1819) :: integer
|
1772
|
+
%t1821 = call core.add(%t1820, %t1819) :: integer
|
1773
|
+
%t1822 = call core.mod(%t1821, %t1819) :: integer
|
1774
|
+
%t1823 = gather %t1818, %t1822 :: any
|
1775
|
+
%t1824 = length %t1823 :: integer
|
1776
|
+
%t1825 = const 1 :: integer
|
1804
1777
|
%t1826 = call core.sub(%col_i_289, %t1825) :: integer
|
1805
1778
|
%t1827 = const 0 :: integer
|
1806
1779
|
%t1828 = call core.gte(%t1826, %t1827) :: boolean
|
1807
1780
|
%t1829 = call core.lt(%t1826, %t1824) :: boolean
|
1808
1781
|
%t1830 = call core.and(%t1828, %t1829) :: boolean
|
1809
|
-
%t1831 =
|
1810
|
-
%t1832 =
|
1811
|
-
%t1833 =
|
1812
|
-
%t1834 =
|
1813
|
-
%t1835 =
|
1814
|
-
%t1836 =
|
1815
|
-
%t1837 =
|
1816
|
-
%t1838 =
|
1817
|
-
%t1839 =
|
1818
|
-
%t1840 =
|
1819
|
-
%t1841 =
|
1820
|
-
%t1842 =
|
1821
|
-
%t1843 =
|
1822
|
-
%t1844 = call core.
|
1823
|
-
%t1845 = call core.
|
1824
|
-
%t1846 =
|
1825
|
-
%t1847 =
|
1826
|
-
%t1848 =
|
1827
|
-
%t1849 =
|
1828
|
-
%t1850 =
|
1829
|
-
%t1851 =
|
1830
|
-
%t1852 =
|
1831
|
-
%t1853 =
|
1832
|
-
%t1854 =
|
1833
|
-
%t1855 =
|
1834
|
-
%t1856 = call core.
|
1835
|
-
%t1857 = call core.
|
1836
|
-
%t1858 = call core.and(%
|
1837
|
-
%t1859 =
|
1838
|
-
%t1860 =
|
1839
|
-
%t1861 =
|
1840
|
-
%t1862 =
|
1841
|
-
%t1863 =
|
1842
|
-
%t1864 =
|
1843
|
-
%t1865 =
|
1844
|
-
%t1866 =
|
1845
|
-
%t1867 =
|
1846
|
-
%t1868 =
|
1847
|
-
%t1869 =
|
1848
|
-
%t1870 =
|
1849
|
-
%t1871 =
|
1850
|
-
%t1872 = call core.
|
1851
|
-
%t1873 = call core.
|
1852
|
-
%t1874 =
|
1853
|
-
%t1875 =
|
1854
|
-
%t1876 =
|
1855
|
-
%t1877 =
|
1856
|
-
%t1878 =
|
1857
|
-
%t1879 =
|
1858
|
-
%t1880 =
|
1859
|
-
%t1881 =
|
1860
|
-
%t1882 =
|
1861
|
-
%t1883 =
|
1862
|
-
%t1884 = call core.
|
1863
|
-
%t1885 = call core.
|
1864
|
-
%t1886 = call core.and(%
|
1865
|
-
%t1887 =
|
1866
|
-
%t1888 =
|
1867
|
-
%t1889 =
|
1868
|
-
%t1890 =
|
1869
|
-
%t1891 =
|
1870
|
-
%t1892 =
|
1871
|
-
%t1893 =
|
1872
|
-
%t1894 =
|
1873
|
-
%t1895 =
|
1874
|
-
%t1896 =
|
1875
|
-
%t1897 =
|
1876
|
-
%t1898 =
|
1877
|
-
%t1899 =
|
1878
|
-
%t1900 = call core.
|
1879
|
-
%t1901 = call core.
|
1880
|
-
%t1902 =
|
1881
|
-
%t1903 =
|
1882
|
-
%t1904 =
|
1883
|
-
%t1905 =
|
1884
|
-
%t1906 =
|
1885
|
-
%t1907 =
|
1886
|
-
%t1908 =
|
1887
|
-
%t1909 =
|
1888
|
-
%t1910 =
|
1889
|
-
%t1911 =
|
1890
|
-
%t1912 = call core.
|
1891
|
-
%t1913 = call core.
|
1892
|
-
%t1914 = call core.and(%
|
1893
|
-
%t1915 =
|
1894
|
-
%t1916 =
|
1895
|
-
%t1917 =
|
1896
|
-
%t1918 =
|
1897
|
-
%t1919 =
|
1898
|
-
%t1920 =
|
1899
|
-
%t1921 =
|
1900
|
-
%t1922 =
|
1901
|
-
%t1923 =
|
1902
|
-
%t1924 =
|
1903
|
-
%
|
1904
|
-
%
|
1905
|
-
%
|
1906
|
-
%
|
1907
|
-
%
|
1908
|
-
%
|
1909
|
-
%
|
1910
|
-
%
|
1782
|
+
%t1831 = const 1 :: integer
|
1783
|
+
%t1832 = call core.sub(%t1824, %t1831) :: integer
|
1784
|
+
%t1833 = const 0 :: integer
|
1785
|
+
%t1834 = call core.clamp(%t1826, %t1833, %t1832) :: integer
|
1786
|
+
%t1835 = gather %t1823, %t1834 :: integer
|
1787
|
+
%t1836 = const 0 :: integer
|
1788
|
+
%t1837 = select %t1830, %t1835, %t1836 :: integer
|
1789
|
+
%t1838 = load_input "rows" :: array
|
1790
|
+
%t1839 = length %t1838 :: integer
|
1791
|
+
%t1840 = const -1 :: integer
|
1792
|
+
%t1841 = call core.sub(%rows_i_287, %t1840) :: integer
|
1793
|
+
%t1842 = const 0 :: integer
|
1794
|
+
%t1843 = call core.gte(%t1841, %t1842) :: boolean
|
1795
|
+
%t1844 = call core.lt(%t1841, %t1839) :: boolean
|
1796
|
+
%t1845 = call core.and(%t1843, %t1844) :: boolean
|
1797
|
+
%t1846 = const 1 :: integer
|
1798
|
+
%t1847 = call core.sub(%t1839, %t1846) :: integer
|
1799
|
+
%t1848 = const 0 :: integer
|
1800
|
+
%t1849 = call core.clamp(%t1841, %t1848, %t1847) :: integer
|
1801
|
+
%t1850 = gather %t1838, %t1849 :: any
|
1802
|
+
%t1851 = length %t1850 :: integer
|
1803
|
+
%t1852 = const -1 :: integer
|
1804
|
+
%t1853 = call core.sub(%col_i_289, %t1852) :: integer
|
1805
|
+
%t1854 = const 0 :: integer
|
1806
|
+
%t1855 = call core.gte(%t1853, %t1854) :: boolean
|
1807
|
+
%t1856 = call core.lt(%t1853, %t1851) :: boolean
|
1808
|
+
%t1857 = call core.and(%t1855, %t1856) :: boolean
|
1809
|
+
%t1858 = call core.and(%t1845, %t1857) :: boolean
|
1810
|
+
%t1859 = const 1 :: integer
|
1811
|
+
%t1860 = call core.sub(%t1851, %t1859) :: integer
|
1812
|
+
%t1861 = const 0 :: integer
|
1813
|
+
%t1862 = call core.clamp(%t1853, %t1861, %t1860) :: integer
|
1814
|
+
%t1863 = gather %t1850, %t1862 :: integer
|
1815
|
+
%t1864 = const 0 :: integer
|
1816
|
+
%t1865 = select %t1858, %t1863, %t1864 :: integer
|
1817
|
+
%t1866 = load_input "rows" :: array
|
1818
|
+
%t1867 = length %t1866 :: integer
|
1819
|
+
%t1868 = const -1 :: integer
|
1820
|
+
%t1869 = call core.sub(%rows_i_287, %t1868) :: integer
|
1821
|
+
%t1870 = const 0 :: integer
|
1822
|
+
%t1871 = call core.gte(%t1869, %t1870) :: boolean
|
1823
|
+
%t1872 = call core.lt(%t1869, %t1867) :: boolean
|
1824
|
+
%t1873 = call core.and(%t1871, %t1872) :: boolean
|
1825
|
+
%t1874 = const 1 :: integer
|
1826
|
+
%t1875 = call core.sub(%t1867, %t1874) :: integer
|
1827
|
+
%t1876 = const 0 :: integer
|
1828
|
+
%t1877 = call core.clamp(%t1869, %t1876, %t1875) :: integer
|
1829
|
+
%t1878 = gather %t1866, %t1877 :: any
|
1830
|
+
%t1879 = length %t1878 :: integer
|
1831
|
+
%t1880 = const 1 :: integer
|
1832
|
+
%t1881 = call core.sub(%col_i_289, %t1880) :: integer
|
1833
|
+
%t1882 = const 0 :: integer
|
1834
|
+
%t1883 = call core.gte(%t1881, %t1882) :: boolean
|
1835
|
+
%t1884 = call core.lt(%t1881, %t1879) :: boolean
|
1836
|
+
%t1885 = call core.and(%t1883, %t1884) :: boolean
|
1837
|
+
%t1886 = call core.and(%t1873, %t1885) :: boolean
|
1838
|
+
%t1887 = const 1 :: integer
|
1839
|
+
%t1888 = call core.sub(%t1879, %t1887) :: integer
|
1840
|
+
%t1889 = const 0 :: integer
|
1841
|
+
%t1890 = call core.clamp(%t1881, %t1889, %t1888) :: integer
|
1842
|
+
%t1891 = gather %t1878, %t1890 :: integer
|
1843
|
+
%t1892 = const 0 :: integer
|
1844
|
+
%t1893 = select %t1886, %t1891, %t1892 :: integer
|
1845
|
+
%t1894 = load_input "rows" :: array
|
1846
|
+
%t1895 = length %t1894 :: integer
|
1847
|
+
%t1896 = const 1 :: integer
|
1848
|
+
%t1897 = call core.sub(%rows_i_287, %t1896) :: integer
|
1849
|
+
%t1898 = const 0 :: integer
|
1850
|
+
%t1899 = call core.gte(%t1897, %t1898) :: boolean
|
1851
|
+
%t1900 = call core.lt(%t1897, %t1895) :: boolean
|
1852
|
+
%t1901 = call core.and(%t1899, %t1900) :: boolean
|
1853
|
+
%t1902 = const 1 :: integer
|
1854
|
+
%t1903 = call core.sub(%t1895, %t1902) :: integer
|
1855
|
+
%t1904 = const 0 :: integer
|
1856
|
+
%t1905 = call core.clamp(%t1897, %t1904, %t1903) :: integer
|
1857
|
+
%t1906 = gather %t1894, %t1905 :: any
|
1858
|
+
%t1907 = length %t1906 :: integer
|
1859
|
+
%t1908 = const -1 :: integer
|
1860
|
+
%t1909 = call core.sub(%col_i_289, %t1908) :: integer
|
1861
|
+
%t1910 = const 0 :: integer
|
1862
|
+
%t1911 = call core.gte(%t1909, %t1910) :: boolean
|
1863
|
+
%t1912 = call core.lt(%t1909, %t1907) :: boolean
|
1864
|
+
%t1913 = call core.and(%t1911, %t1912) :: boolean
|
1865
|
+
%t1914 = call core.and(%t1901, %t1913) :: boolean
|
1866
|
+
%t1915 = const 1 :: integer
|
1867
|
+
%t1916 = call core.sub(%t1907, %t1915) :: integer
|
1868
|
+
%t1917 = const 0 :: integer
|
1869
|
+
%t1918 = call core.clamp(%t1909, %t1917, %t1916) :: integer
|
1870
|
+
%t1919 = gather %t1906, %t1918 :: integer
|
1871
|
+
%t1920 = const 0 :: integer
|
1872
|
+
%t1921 = select %t1914, %t1919, %t1920 :: integer
|
1873
|
+
%t1922 = load_input "rows" :: array
|
1874
|
+
%t1923 = length %t1922 :: integer
|
1875
|
+
%t1924 = const 1 :: integer
|
1876
|
+
%t1925 = call core.sub(%rows_i_287, %t1924) :: integer
|
1877
|
+
%t1926 = const 0 :: integer
|
1878
|
+
%t1927 = call core.gte(%t1925, %t1926) :: boolean
|
1879
|
+
%t1928 = call core.lt(%t1925, %t1923) :: boolean
|
1880
|
+
%t1929 = call core.and(%t1927, %t1928) :: boolean
|
1881
|
+
%t1930 = const 1 :: integer
|
1882
|
+
%t1931 = call core.sub(%t1923, %t1930) :: integer
|
1883
|
+
%t1932 = const 0 :: integer
|
1884
|
+
%t1933 = call core.clamp(%t1925, %t1932, %t1931) :: integer
|
1885
|
+
%t1934 = gather %t1922, %t1933 :: any
|
1886
|
+
%t1935 = length %t1934 :: integer
|
1887
|
+
%t1936 = const 1 :: integer
|
1888
|
+
%t1937 = call core.sub(%col_i_289, %t1936) :: integer
|
1889
|
+
%t1938 = const 0 :: integer
|
1890
|
+
%t1939 = call core.gte(%t1937, %t1938) :: boolean
|
1891
|
+
%t1940 = call core.lt(%t1937, %t1935) :: boolean
|
1892
|
+
%t1941 = call core.and(%t1939, %t1940) :: boolean
|
1893
|
+
%t1942 = call core.and(%t1929, %t1941) :: boolean
|
1894
|
+
%t1943 = const 1 :: integer
|
1895
|
+
%t1944 = call core.sub(%t1935, %t1943) :: integer
|
1896
|
+
%t1945 = const 0 :: integer
|
1897
|
+
%t1946 = call core.clamp(%t1937, %t1945, %t1944) :: integer
|
1898
|
+
%t1947 = gather %t1934, %t1946 :: integer
|
1899
|
+
%t1948 = const 0 :: integer
|
1900
|
+
%t1949 = select %t1942, %t1947, %t1948 :: integer
|
1901
|
+
%t1756 = make_tuple(%t1777, %t1797, %t1817, %t1837, %t1865, %t1893, %t1921, %t1949) :: tuple<integer>
|
1902
|
+
%t1757 = fold %t1756 fn="agg.sum" ::
|
1903
|
+
%t1745 = const 2 :: integer
|
1904
|
+
%t1746 = call core.eq(%t1757, %t1745) :: boolean
|
1905
|
+
%t1950 = load_input "rows" :: array
|
1906
|
+
%t1954 = load_input "rows" :: array
|
1907
|
+
%t1952 = const 0 :: integer
|
1908
|
+
%t1953 = call core.gt(%col_el_288, %t1952) :: boolean
|
1909
|
+
%t1742 = call core.and(%t1746, %t1953) :: boolean
|
1910
|
+
%t1531 = call core.or(%t1535, %t1742) :: boolean
|
1911
1911
|
%t291 = const 1 :: integer
|
1912
1912
|
%t292 = const 0 :: integer
|
1913
|
-
%t293 = select %
|
1913
|
+
%t293 = select %t1531, %t291, %t292 :: integer
|
1914
1914
|
yield %t293
|
1915
1915
|
end_loop
|
1916
1916
|
end_loop
|