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