kumi 0.0.23 → 0.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +3 -0
  3. data/README.md +2 -2
  4. data/golden/array_element/expected/schema_ruby.rb +1 -1
  5. data/golden/array_index/expected/schema_ruby.rb +1 -1
  6. data/golden/array_operations/expected/schema_ruby.rb +1 -1
  7. data/golden/cascade_logic/expected/schema_ruby.rb +1 -1
  8. data/golden/chained_fusion/expected/schema_ruby.rb +1 -1
  9. data/golden/element_arrays/expected/schema_ruby.rb +1 -1
  10. data/golden/empty_and_null_inputs/expected/schema_ruby.rb +1 -1
  11. data/golden/game_of_life/expected/lir_00_unoptimized.txt +33 -33
  12. data/golden/game_of_life/expected/lir_01_hoist_scalar_references.txt +33 -33
  13. data/golden/game_of_life/expected/lir_02_inlined.txt +296 -296
  14. data/golden/game_of_life/expected/lir_03_cse.txt +128 -128
  15. data/golden/game_of_life/expected/lir_04_1_loop_fusion.txt +128 -128
  16. data/golden/game_of_life/expected/lir_04_loop_invcm.txt +128 -128
  17. data/golden/game_of_life/expected/lir_06_const_prop.txt +128 -128
  18. data/golden/game_of_life/expected/schema_ruby.rb +1 -1
  19. data/golden/hash_keys/expected/schema_ruby.rb +1 -1
  20. data/golden/hash_keys/schema.kumi +4 -5
  21. data/golden/hash_value/expected/schema_ruby.rb +1 -1
  22. data/golden/hierarchical_complex/expected/schema_ruby.rb +1 -1
  23. data/golden/inline_rename_scope_leak/expected/ast.txt +48 -0
  24. data/golden/inline_rename_scope_leak/expected/input_plan.txt +10 -0
  25. data/golden/inline_rename_scope_leak/expected/lir_00_unoptimized.txt +35 -0
  26. data/golden/inline_rename_scope_leak/expected/lir_01_hoist_scalar_references.txt +35 -0
  27. data/golden/inline_rename_scope_leak/expected/lir_02_inlined.txt +49 -0
  28. data/golden/inline_rename_scope_leak/expected/lir_03_cse.txt +49 -0
  29. data/golden/inline_rename_scope_leak/expected/lir_04_1_loop_fusion.txt +49 -0
  30. data/golden/inline_rename_scope_leak/expected/lir_04_loop_invcm.txt +49 -0
  31. data/golden/inline_rename_scope_leak/expected/lir_06_const_prop.txt +49 -0
  32. data/golden/inline_rename_scope_leak/expected/nast.txt +31 -0
  33. data/golden/inline_rename_scope_leak/expected/schema_javascript.mjs +51 -0
  34. data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +82 -0
  35. data/golden/inline_rename_scope_leak/expected/snast.txt +31 -0
  36. data/golden/inline_rename_scope_leak/expected.json +7 -0
  37. data/golden/inline_rename_scope_leak/input.json +4 -0
  38. data/golden/inline_rename_scope_leak/schema.kumi +24 -0
  39. data/golden/input_reference/expected/schema_ruby.rb +1 -1
  40. data/golden/interleaved_fusion/expected/schema_ruby.rb +1 -1
  41. data/golden/let_inline/expected/schema_ruby.rb +1 -1
  42. data/golden/loop_fusion/expected/schema_ruby.rb +1 -1
  43. data/golden/min_reduce_scope/expected/schema_ruby.rb +1 -1
  44. data/golden/mixed_dimensions/expected/schema_ruby.rb +1 -1
  45. data/golden/multirank_hoisting/expected/schema_ruby.rb +1 -1
  46. data/golden/nested_hash/expected/schema_ruby.rb +1 -1
  47. data/golden/reduction_broadcast/expected/schema_ruby.rb +1 -1
  48. data/golden/roll/expected/lir_00_unoptimized.txt +8 -8
  49. data/golden/roll/expected/lir_01_hoist_scalar_references.txt +8 -8
  50. data/golden/roll/expected/lir_02_inlined.txt +8 -8
  51. data/golden/roll/expected/lir_03_cse.txt +8 -8
  52. data/golden/roll/expected/lir_04_1_loop_fusion.txt +8 -8
  53. data/golden/roll/expected/lir_04_loop_invcm.txt +8 -8
  54. data/golden/roll/expected/lir_06_const_prop.txt +8 -8
  55. data/golden/roll/expected/schema_ruby.rb +1 -1
  56. data/golden/shift/expected/lir_00_unoptimized.txt +12 -12
  57. data/golden/shift/expected/lir_01_hoist_scalar_references.txt +12 -12
  58. data/golden/shift/expected/lir_02_inlined.txt +12 -12
  59. data/golden/shift/expected/lir_03_cse.txt +12 -12
  60. data/golden/shift/expected/lir_04_1_loop_fusion.txt +12 -12
  61. data/golden/shift/expected/lir_04_loop_invcm.txt +12 -12
  62. data/golden/shift/expected/lir_06_const_prop.txt +12 -12
  63. data/golden/shift/expected/schema_ruby.rb +1 -1
  64. data/golden/shift_2d/expected/lir_00_unoptimized.txt +48 -48
  65. data/golden/shift_2d/expected/lir_01_hoist_scalar_references.txt +48 -48
  66. data/golden/shift_2d/expected/lir_02_inlined.txt +48 -48
  67. data/golden/shift_2d/expected/lir_03_cse.txt +48 -48
  68. data/golden/shift_2d/expected/lir_04_1_loop_fusion.txt +48 -48
  69. data/golden/shift_2d/expected/lir_04_loop_invcm.txt +48 -48
  70. data/golden/shift_2d/expected/lir_06_const_prop.txt +48 -48
  71. data/golden/shift_2d/expected/schema_ruby.rb +1 -1
  72. data/golden/simple_math/expected/schema_ruby.rb +1 -1
  73. data/golden/streaming_basics/expected/schema_ruby.rb +1 -1
  74. data/golden/tuples/expected/lir_00_unoptimized.txt +4 -4
  75. data/golden/tuples/expected/lir_01_hoist_scalar_references.txt +4 -4
  76. data/golden/tuples/expected/lir_02_inlined.txt +4 -4
  77. data/golden/tuples/expected/lir_03_cse.txt +4 -4
  78. data/golden/tuples/expected/lir_04_1_loop_fusion.txt +4 -4
  79. data/golden/tuples/expected/lir_04_loop_invcm.txt +4 -4
  80. data/golden/tuples/expected/lir_06_const_prop.txt +4 -4
  81. data/golden/tuples/expected/schema_ruby.rb +1 -1
  82. data/golden/tuples_and_arrays/expected/lir_00_unoptimized.txt +1 -1
  83. data/golden/tuples_and_arrays/expected/lir_01_hoist_scalar_references.txt +1 -1
  84. data/golden/tuples_and_arrays/expected/lir_02_inlined.txt +2 -2
  85. data/golden/tuples_and_arrays/expected/lir_03_cse.txt +2 -2
  86. data/golden/tuples_and_arrays/expected/lir_04_1_loop_fusion.txt +2 -2
  87. data/golden/tuples_and_arrays/expected/lir_04_loop_invcm.txt +2 -2
  88. data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +2 -2
  89. data/golden/tuples_and_arrays/expected/schema_ruby.rb +1 -1
  90. data/golden/us_tax_2024/expected/ast.txt +865 -0
  91. data/golden/us_tax_2024/expected/input_plan.txt +61 -0
  92. data/golden/us_tax_2024/expected/lir_00_unoptimized.txt +901 -0
  93. data/golden/us_tax_2024/expected/lir_01_hoist_scalar_references.txt +901 -0
  94. data/golden/us_tax_2024/expected/lir_02_inlined.txt +5178 -0
  95. data/golden/us_tax_2024/expected/lir_03_cse.txt +2499 -0
  96. data/golden/us_tax_2024/expected/lir_04_1_loop_fusion.txt +2519 -0
  97. data/golden/us_tax_2024/expected/lir_04_loop_invcm.txt +2439 -0
  98. data/golden/us_tax_2024/expected/lir_06_const_prop.txt +2439 -0
  99. data/golden/us_tax_2024/expected/nast.txt +976 -0
  100. data/golden/us_tax_2024/expected/schema_javascript.mjs +584 -0
  101. data/golden/us_tax_2024/expected/schema_ruby.rb +639 -0
  102. data/golden/us_tax_2024/expected/snast.txt +976 -0
  103. data/golden/us_tax_2024/expected.json +1 -0
  104. data/golden/us_tax_2024/input.json +168 -0
  105. data/golden/us_tax_2024/schema.kumi +203 -0
  106. data/golden/with_constants/expected/schema_ruby.rb +1 -1
  107. data/lib/kumi/core/analyzer/passes/lir/inline_declarations_pass.rb +181 -105
  108. data/lib/kumi/version.rb +1 -1
  109. 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 = Length %t6 :: integer
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 = Gather %t6, %t21 :: any
25
- %t23 = Length %t22 :: integer
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 = Gather %t22, %t26 :: integer
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 = Length %t30 :: integer
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 = Gather %t30, %t45 :: any
49
- %t47 = Length %t46 :: integer
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 = Gather %t46, %t50 :: integer
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 = Length %t54 :: integer
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 = Gather %t54, %t62 :: any
68
- %t64 = Length %t63 :: integer
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 = Gather %t63, %t74 :: integer
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 = Length %t78 :: integer
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 = Gather %t78, %t86 :: any
93
- %t88 = Length %t87 :: integer
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 = Gather %t87, %t98 :: integer
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 = Length %t102 :: integer
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 = Gather %t102, %t117 :: any
123
- %t119 = Length %t118 :: integer
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 = Gather %t118, %t130 :: integer
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 = Length %t134 :: integer
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 = Gather %t134, %t149 :: any
152
- %t151 = Length %t150 :: integer
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 = Gather %t150, %t162 :: integer
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 = Length %t166 :: integer
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 = Gather %t166, %t181 :: any
180
- %t183 = Length %t182 :: integer
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 = Gather %t182, %t194 :: integer
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 = Length %t198 :: integer
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 = Gather %t198, %t213 :: any
209
- %t215 = Length %t214 :: integer
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 = Gather %t214, %t226 :: integer
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 = Length %t230 :: integer
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 = Gather %t230, %t305 :: any
238
- %t307 = Length %t306 :: integer
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 = Gather %t306, %t310 :: integer
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 = Gather %t230, %t325 :: any
250
- %t327 = Length %t326 :: integer
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 = Gather %t326, %t330 :: integer
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 = Gather %t230, %t338 :: any
260
- %t340 = Length %t339 :: integer
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 = Gather %t339, %t350 :: integer
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 = Gather %t339, %t370 :: integer
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 = Gather %t306, %t398 :: integer
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 = Gather %t306, %t426 :: integer
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 = Gather %t326, %t454 :: integer
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 = Gather %t326, %t482 :: integer
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 = Fold %t243 fn="agg.sum" ::
303
+ %t244 = fold %t243 fn="agg.sum" ::
304
304
  yield %t244
305
305
  end_loop
306
306
  end_loop
@@ -319,7 +319,7 @@
319
319
  %t253 = load_input "rows" :: array
320
320
  loop rows id=L23 in %t253 as el=%rows_el_254, idx=%rows_i_255
321
321
  loop col id=L24 in %rows_el_254 as el=%col_el_256, idx=%col_i_257
322
- %t530 = Length %t253 :: integer
322
+ %t530 = length %t253 :: integer
323
323
  %t531 = const -1 :: integer
324
324
  %t532 = call core.sub(%rows_i_255, %t531) :: integer
325
325
  %t533 = const 0 :: integer
@@ -329,73 +329,73 @@
329
329
  %t537 = const 1 :: integer
330
330
  %t538 = call core.sub(%t530, %t537) :: integer
331
331
  %t540 = call core.clamp(%t532, %t533, %t538) :: integer
332
- %t541 = Gather %t253, %t540 :: any
333
- %t542 = Length %t541 :: integer
332
+ %t541 = gather %t253, %t540 :: any
333
+ %t542 = length %t541 :: integer
334
334
  %t543 = call core.mod(%col_i_257, %t542) :: integer
335
335
  %t544 = call core.add(%t543, %t542) :: integer
336
336
  %t545 = call core.mod(%t544, %t542) :: integer
337
- %t546 = Gather %t541, %t545 :: integer
337
+ %t546 = gather %t541, %t545 :: integer
338
338
  %t548 = select %t536, %t546, %t533 :: integer
339
339
  %t552 = call core.sub(%rows_i_255, %t537) :: integer
340
340
  %t554 = call core.gte(%t552, %t533) :: boolean
341
341
  %t555 = call core.lt(%t552, %t530) :: boolean
342
342
  %t556 = call core.and(%t554, %t555) :: boolean
343
343
  %t560 = call core.clamp(%t552, %t533, %t538) :: integer
344
- %t561 = Gather %t253, %t560 :: any
345
- %t562 = Length %t561 :: integer
344
+ %t561 = gather %t253, %t560 :: any
345
+ %t562 = length %t561 :: integer
346
346
  %t563 = call core.mod(%col_i_257, %t562) :: integer
347
347
  %t564 = call core.add(%t563, %t562) :: integer
348
348
  %t565 = call core.mod(%t564, %t562) :: integer
349
- %t566 = Gather %t561, %t565 :: integer
349
+ %t566 = gather %t561, %t565 :: integer
350
350
  %t568 = select %t556, %t566, %t533 :: integer
351
351
  %t571 = call core.mod(%rows_i_255, %t530) :: integer
352
352
  %t572 = call core.add(%t571, %t530) :: integer
353
353
  %t573 = call core.mod(%t572, %t530) :: integer
354
- %t574 = Gather %t253, %t573 :: any
355
- %t575 = Length %t574 :: integer
354
+ %t574 = gather %t253, %t573 :: any
355
+ %t575 = length %t574 :: integer
356
356
  %t577 = call core.sub(%col_i_257, %t531) :: integer
357
357
  %t579 = call core.gte(%t577, %t533) :: boolean
358
358
  %t580 = call core.lt(%t577, %t575) :: boolean
359
359
  %t581 = call core.and(%t579, %t580) :: boolean
360
360
  %t583 = call core.sub(%t575, %t537) :: integer
361
361
  %t585 = call core.clamp(%t577, %t533, %t583) :: integer
362
- %t586 = Gather %t574, %t585 :: integer
362
+ %t586 = gather %t574, %t585 :: integer
363
363
  %t588 = select %t581, %t586, %t533 :: integer
364
364
  %t597 = call core.sub(%col_i_257, %t537) :: integer
365
365
  %t599 = call core.gte(%t597, %t533) :: boolean
366
366
  %t600 = call core.lt(%t597, %t575) :: boolean
367
367
  %t601 = call core.and(%t599, %t600) :: boolean
368
368
  %t605 = call core.clamp(%t597, %t533, %t583) :: integer
369
- %t606 = Gather %t574, %t605 :: integer
369
+ %t606 = gather %t574, %t605 :: integer
370
370
  %t608 = select %t601, %t606, %t533 :: integer
371
371
  %t627 = call core.lt(%t577, %t542) :: boolean
372
372
  %t628 = call core.and(%t579, %t627) :: boolean
373
373
  %t629 = call core.and(%t536, %t628) :: boolean
374
374
  %t631 = call core.sub(%t542, %t537) :: integer
375
375
  %t633 = call core.clamp(%t577, %t533, %t631) :: integer
376
- %t634 = Gather %t541, %t633 :: integer
376
+ %t634 = gather %t541, %t633 :: integer
377
377
  %t636 = select %t629, %t634, %t533 :: integer
378
378
  %t655 = call core.lt(%t597, %t542) :: boolean
379
379
  %t656 = call core.and(%t599, %t655) :: boolean
380
380
  %t657 = call core.and(%t536, %t656) :: boolean
381
381
  %t661 = call core.clamp(%t597, %t533, %t631) :: integer
382
- %t662 = Gather %t541, %t661 :: integer
382
+ %t662 = gather %t541, %t661 :: integer
383
383
  %t664 = select %t657, %t662, %t533 :: integer
384
384
  %t683 = call core.lt(%t577, %t562) :: boolean
385
385
  %t684 = call core.and(%t579, %t683) :: boolean
386
386
  %t685 = call core.and(%t556, %t684) :: boolean
387
387
  %t687 = call core.sub(%t562, %t537) :: integer
388
388
  %t689 = call core.clamp(%t577, %t533, %t687) :: integer
389
- %t690 = Gather %t561, %t689 :: integer
389
+ %t690 = gather %t561, %t689 :: integer
390
390
  %t692 = select %t685, %t690, %t533 :: integer
391
391
  %t711 = call core.lt(%t597, %t562) :: boolean
392
392
  %t712 = call core.and(%t599, %t711) :: boolean
393
393
  %t713 = call core.and(%t556, %t712) :: boolean
394
394
  %t717 = call core.clamp(%t597, %t533, %t687) :: integer
395
- %t718 = Gather %t561, %t717 :: integer
395
+ %t718 = gather %t561, %t717 :: integer
396
396
  %t720 = select %t713, %t718, %t533 :: integer
397
397
  %t496 = make_tuple(%t548, %t568, %t588, %t608, %t636, %t664, %t692, %t720) :: tuple<integer>
398
- %t497 = Fold %t496 fn="agg.sum" ::
398
+ %t497 = fold %t496 fn="agg.sum" ::
399
399
  %t259 = const 3 :: integer
400
400
  %t260 = call core.eq(%t497, %t259) :: boolean
401
401
  yield %t260
@@ -406,7 +406,7 @@
406
406
  %t261 = load_input "rows" :: array
407
407
  loop rows id=L25 in %t261 as el=%rows_el_262, idx=%rows_i_263
408
408
  loop col id=L26 in %rows_el_262 as el=%col_el_264, idx=%col_i_265
409
- %t722 = Length %t261 :: integer
409
+ %t722 = length %t261 :: integer
410
410
  %t723 = const -1 :: integer
411
411
  %t724 = call core.sub(%rows_i_263, %t723) :: integer
412
412
  %t725 = const 0 :: integer
@@ -416,73 +416,73 @@
416
416
  %t729 = const 1 :: integer
417
417
  %t730 = call core.sub(%t722, %t729) :: integer
418
418
  %t732 = call core.clamp(%t724, %t725, %t730) :: integer
419
- %t733 = Gather %t261, %t732 :: any
420
- %t734 = Length %t733 :: integer
419
+ %t733 = gather %t261, %t732 :: any
420
+ %t734 = length %t733 :: integer
421
421
  %t735 = call core.mod(%col_i_265, %t734) :: integer
422
422
  %t736 = call core.add(%t735, %t734) :: integer
423
423
  %t737 = call core.mod(%t736, %t734) :: integer
424
- %t738 = Gather %t733, %t737 :: integer
424
+ %t738 = gather %t733, %t737 :: integer
425
425
  %t740 = select %t728, %t738, %t725 :: integer
426
426
  %t744 = call core.sub(%rows_i_263, %t729) :: integer
427
427
  %t746 = call core.gte(%t744, %t725) :: boolean
428
428
  %t747 = call core.lt(%t744, %t722) :: boolean
429
429
  %t748 = call core.and(%t746, %t747) :: boolean
430
430
  %t752 = call core.clamp(%t744, %t725, %t730) :: integer
431
- %t753 = Gather %t261, %t752 :: any
432
- %t754 = Length %t753 :: integer
431
+ %t753 = gather %t261, %t752 :: any
432
+ %t754 = length %t753 :: integer
433
433
  %t755 = call core.mod(%col_i_265, %t754) :: integer
434
434
  %t756 = call core.add(%t755, %t754) :: integer
435
435
  %t757 = call core.mod(%t756, %t754) :: integer
436
- %t758 = Gather %t753, %t757 :: integer
436
+ %t758 = gather %t753, %t757 :: integer
437
437
  %t760 = select %t748, %t758, %t725 :: integer
438
438
  %t763 = call core.mod(%rows_i_263, %t722) :: integer
439
439
  %t764 = call core.add(%t763, %t722) :: integer
440
440
  %t765 = call core.mod(%t764, %t722) :: integer
441
- %t766 = Gather %t261, %t765 :: any
442
- %t767 = Length %t766 :: integer
441
+ %t766 = gather %t261, %t765 :: any
442
+ %t767 = length %t766 :: integer
443
443
  %t769 = call core.sub(%col_i_265, %t723) :: integer
444
444
  %t771 = call core.gte(%t769, %t725) :: boolean
445
445
  %t772 = call core.lt(%t769, %t767) :: boolean
446
446
  %t773 = call core.and(%t771, %t772) :: boolean
447
447
  %t775 = call core.sub(%t767, %t729) :: integer
448
448
  %t777 = call core.clamp(%t769, %t725, %t775) :: integer
449
- %t778 = Gather %t766, %t777 :: integer
449
+ %t778 = gather %t766, %t777 :: integer
450
450
  %t780 = select %t773, %t778, %t725 :: integer
451
451
  %t789 = call core.sub(%col_i_265, %t729) :: integer
452
452
  %t791 = call core.gte(%t789, %t725) :: boolean
453
453
  %t792 = call core.lt(%t789, %t767) :: boolean
454
454
  %t793 = call core.and(%t791, %t792) :: boolean
455
455
  %t797 = call core.clamp(%t789, %t725, %t775) :: integer
456
- %t798 = Gather %t766, %t797 :: integer
456
+ %t798 = gather %t766, %t797 :: integer
457
457
  %t800 = select %t793, %t798, %t725 :: integer
458
458
  %t819 = call core.lt(%t769, %t734) :: boolean
459
459
  %t820 = call core.and(%t771, %t819) :: boolean
460
460
  %t821 = call core.and(%t728, %t820) :: boolean
461
461
  %t823 = call core.sub(%t734, %t729) :: integer
462
462
  %t825 = call core.clamp(%t769, %t725, %t823) :: integer
463
- %t826 = Gather %t733, %t825 :: integer
463
+ %t826 = gather %t733, %t825 :: integer
464
464
  %t828 = select %t821, %t826, %t725 :: integer
465
465
  %t847 = call core.lt(%t789, %t734) :: boolean
466
466
  %t848 = call core.and(%t791, %t847) :: boolean
467
467
  %t849 = call core.and(%t728, %t848) :: boolean
468
468
  %t853 = call core.clamp(%t789, %t725, %t823) :: integer
469
- %t854 = Gather %t733, %t853 :: integer
469
+ %t854 = gather %t733, %t853 :: integer
470
470
  %t856 = select %t849, %t854, %t725 :: integer
471
471
  %t875 = call core.lt(%t769, %t754) :: boolean
472
472
  %t876 = call core.and(%t771, %t875) :: boolean
473
473
  %t877 = call core.and(%t748, %t876) :: boolean
474
474
  %t879 = call core.sub(%t754, %t729) :: integer
475
475
  %t881 = call core.clamp(%t769, %t725, %t879) :: integer
476
- %t882 = Gather %t753, %t881 :: integer
476
+ %t882 = gather %t753, %t881 :: integer
477
477
  %t884 = select %t877, %t882, %t725 :: integer
478
478
  %t903 = call core.lt(%t789, %t754) :: boolean
479
479
  %t904 = call core.and(%t791, %t903) :: boolean
480
480
  %t905 = call core.and(%t748, %t904) :: boolean
481
481
  %t909 = call core.clamp(%t789, %t725, %t879) :: integer
482
- %t910 = Gather %t753, %t909 :: integer
482
+ %t910 = gather %t753, %t909 :: integer
483
483
  %t912 = select %t905, %t910, %t725 :: integer
484
484
  %t507 = make_tuple(%t740, %t760, %t780, %t800, %t828, %t856, %t884, %t912) :: tuple<integer>
485
- %t508 = Fold %t507 fn="agg.sum" ::
485
+ %t508 = fold %t507 fn="agg.sum" ::
486
486
  %t267 = const 2 :: integer
487
487
  %t268 = call core.eq(%t508, %t267) :: boolean
488
488
  yield %t268
@@ -493,7 +493,7 @@
493
493
  %t269 = load_input "rows" :: array
494
494
  loop rows id=L27 in %t269 as el=%rows_el_270, idx=%rows_i_271
495
495
  loop col id=L28 in %rows_el_270 as el=%col_el_272, idx=%col_i_273
496
- %t915 = Length %t269 :: integer
496
+ %t915 = length %t269 :: integer
497
497
  %t916 = const -1 :: integer
498
498
  %t917 = call core.sub(%rows_i_271, %t916) :: integer
499
499
  %t918 = const 0 :: integer
@@ -503,73 +503,73 @@
503
503
  %t922 = const 1 :: integer
504
504
  %t923 = call core.sub(%t915, %t922) :: integer
505
505
  %t925 = call core.clamp(%t917, %t918, %t923) :: integer
506
- %t926 = Gather %t269, %t925 :: any
507
- %t927 = Length %t926 :: integer
506
+ %t926 = gather %t269, %t925 :: any
507
+ %t927 = length %t926 :: integer
508
508
  %t928 = call core.mod(%col_i_273, %t927) :: integer
509
509
  %t929 = call core.add(%t928, %t927) :: integer
510
510
  %t930 = call core.mod(%t929, %t927) :: integer
511
- %t931 = Gather %t926, %t930 :: integer
511
+ %t931 = gather %t926, %t930 :: integer
512
512
  %t933 = select %t921, %t931, %t918 :: integer
513
513
  %t937 = call core.sub(%rows_i_271, %t922) :: integer
514
514
  %t939 = call core.gte(%t937, %t918) :: boolean
515
515
  %t940 = call core.lt(%t937, %t915) :: boolean
516
516
  %t941 = call core.and(%t939, %t940) :: boolean
517
517
  %t945 = call core.clamp(%t937, %t918, %t923) :: integer
518
- %t946 = Gather %t269, %t945 :: any
519
- %t947 = Length %t946 :: integer
518
+ %t946 = gather %t269, %t945 :: any
519
+ %t947 = length %t946 :: integer
520
520
  %t948 = call core.mod(%col_i_273, %t947) :: integer
521
521
  %t949 = call core.add(%t948, %t947) :: integer
522
522
  %t950 = call core.mod(%t949, %t947) :: integer
523
- %t951 = Gather %t946, %t950 :: integer
523
+ %t951 = gather %t946, %t950 :: integer
524
524
  %t953 = select %t941, %t951, %t918 :: integer
525
525
  %t956 = call core.mod(%rows_i_271, %t915) :: integer
526
526
  %t957 = call core.add(%t956, %t915) :: integer
527
527
  %t958 = call core.mod(%t957, %t915) :: integer
528
- %t959 = Gather %t269, %t958 :: any
529
- %t960 = Length %t959 :: integer
528
+ %t959 = gather %t269, %t958 :: any
529
+ %t960 = length %t959 :: integer
530
530
  %t962 = call core.sub(%col_i_273, %t916) :: integer
531
531
  %t964 = call core.gte(%t962, %t918) :: boolean
532
532
  %t965 = call core.lt(%t962, %t960) :: boolean
533
533
  %t966 = call core.and(%t964, %t965) :: boolean
534
534
  %t968 = call core.sub(%t960, %t922) :: integer
535
535
  %t970 = call core.clamp(%t962, %t918, %t968) :: integer
536
- %t971 = Gather %t959, %t970 :: integer
536
+ %t971 = gather %t959, %t970 :: integer
537
537
  %t973 = select %t966, %t971, %t918 :: integer
538
538
  %t982 = call core.sub(%col_i_273, %t922) :: integer
539
539
  %t984 = call core.gte(%t982, %t918) :: boolean
540
540
  %t985 = call core.lt(%t982, %t960) :: boolean
541
541
  %t986 = call core.and(%t984, %t985) :: boolean
542
542
  %t990 = call core.clamp(%t982, %t918, %t968) :: integer
543
- %t991 = Gather %t959, %t990 :: integer
543
+ %t991 = gather %t959, %t990 :: integer
544
544
  %t993 = select %t986, %t991, %t918 :: integer
545
545
  %t1012 = call core.lt(%t962, %t927) :: boolean
546
546
  %t1013 = call core.and(%t964, %t1012) :: boolean
547
547
  %t1014 = call core.and(%t921, %t1013) :: boolean
548
548
  %t1016 = call core.sub(%t927, %t922) :: integer
549
549
  %t1018 = call core.clamp(%t962, %t918, %t1016) :: integer
550
- %t1019 = Gather %t926, %t1018 :: integer
550
+ %t1019 = gather %t926, %t1018 :: integer
551
551
  %t1021 = select %t1014, %t1019, %t918 :: integer
552
552
  %t1040 = call core.lt(%t982, %t927) :: boolean
553
553
  %t1041 = call core.and(%t984, %t1040) :: boolean
554
554
  %t1042 = call core.and(%t921, %t1041) :: boolean
555
555
  %t1046 = call core.clamp(%t982, %t918, %t1016) :: integer
556
- %t1047 = Gather %t926, %t1046 :: integer
556
+ %t1047 = gather %t926, %t1046 :: integer
557
557
  %t1049 = select %t1042, %t1047, %t918 :: integer
558
558
  %t1068 = call core.lt(%t962, %t947) :: boolean
559
559
  %t1069 = call core.and(%t964, %t1068) :: boolean
560
560
  %t1070 = call core.and(%t941, %t1069) :: boolean
561
561
  %t1072 = call core.sub(%t947, %t922) :: integer
562
562
  %t1074 = call core.clamp(%t962, %t918, %t1072) :: integer
563
- %t1075 = Gather %t946, %t1074 :: integer
563
+ %t1075 = gather %t946, %t1074 :: integer
564
564
  %t1077 = select %t1070, %t1075, %t918 :: integer
565
565
  %t1096 = call core.lt(%t982, %t947) :: boolean
566
566
  %t1097 = call core.and(%t984, %t1096) :: boolean
567
567
  %t1098 = call core.and(%t941, %t1097) :: boolean
568
568
  %t1102 = call core.clamp(%t982, %t918, %t1072) :: integer
569
- %t1103 = Gather %t946, %t1102 :: integer
569
+ %t1103 = gather %t946, %t1102 :: integer
570
570
  %t1105 = select %t1098, %t1103, %t918 :: integer
571
571
  %t1106 = make_tuple(%t933, %t953, %t973, %t993, %t1021, %t1049, %t1077, %t1105) :: tuple<integer>
572
- %t1107 = Fold %t1106 fn="agg.sum" ::
572
+ %t1107 = fold %t1106 fn="agg.sum" ::
573
573
  %t511 = const 2 :: integer
574
574
  %t512 = call core.eq(%t1107, %t511) :: boolean
575
575
  %t516 = call core.gt(%col_el_272, %t918) :: boolean
@@ -582,7 +582,7 @@
582
582
  %t277 = load_input "rows" :: array
583
583
  loop rows id=L29 in %t277 as el=%rows_el_278, idx=%rows_i_279
584
584
  loop col id=L30 in %rows_el_278 as el=%col_el_280, idx=%col_i_281
585
- %t1111 = Length %t277 :: integer
585
+ %t1111 = length %t277 :: integer
586
586
  %t1112 = const -1 :: integer
587
587
  %t1113 = call core.sub(%rows_i_279, %t1112) :: integer
588
588
  %t1114 = const 0 :: integer
@@ -592,73 +592,73 @@
592
592
  %t1118 = const 1 :: integer
593
593
  %t1119 = call core.sub(%t1111, %t1118) :: integer
594
594
  %t1121 = call core.clamp(%t1113, %t1114, %t1119) :: integer
595
- %t1122 = Gather %t277, %t1121 :: any
596
- %t1123 = Length %t1122 :: integer
595
+ %t1122 = gather %t277, %t1121 :: any
596
+ %t1123 = length %t1122 :: integer
597
597
  %t1124 = call core.mod(%col_i_281, %t1123) :: integer
598
598
  %t1125 = call core.add(%t1124, %t1123) :: integer
599
599
  %t1126 = call core.mod(%t1125, %t1123) :: integer
600
- %t1127 = Gather %t1122, %t1126 :: integer
600
+ %t1127 = gather %t1122, %t1126 :: integer
601
601
  %t1129 = select %t1117, %t1127, %t1114 :: integer
602
602
  %t1133 = call core.sub(%rows_i_279, %t1118) :: integer
603
603
  %t1135 = call core.gte(%t1133, %t1114) :: boolean
604
604
  %t1136 = call core.lt(%t1133, %t1111) :: boolean
605
605
  %t1137 = call core.and(%t1135, %t1136) :: boolean
606
606
  %t1141 = call core.clamp(%t1133, %t1114, %t1119) :: integer
607
- %t1142 = Gather %t277, %t1141 :: any
608
- %t1143 = Length %t1142 :: integer
607
+ %t1142 = gather %t277, %t1141 :: any
608
+ %t1143 = length %t1142 :: integer
609
609
  %t1144 = call core.mod(%col_i_281, %t1143) :: integer
610
610
  %t1145 = call core.add(%t1144, %t1143) :: integer
611
611
  %t1146 = call core.mod(%t1145, %t1143) :: integer
612
- %t1147 = Gather %t1142, %t1146 :: integer
612
+ %t1147 = gather %t1142, %t1146 :: integer
613
613
  %t1149 = select %t1137, %t1147, %t1114 :: integer
614
614
  %t1152 = call core.mod(%rows_i_279, %t1111) :: integer
615
615
  %t1153 = call core.add(%t1152, %t1111) :: integer
616
616
  %t1154 = call core.mod(%t1153, %t1111) :: integer
617
- %t1155 = Gather %t277, %t1154 :: any
618
- %t1156 = Length %t1155 :: integer
617
+ %t1155 = gather %t277, %t1154 :: any
618
+ %t1156 = length %t1155 :: integer
619
619
  %t1158 = call core.sub(%col_i_281, %t1112) :: integer
620
620
  %t1160 = call core.gte(%t1158, %t1114) :: boolean
621
621
  %t1161 = call core.lt(%t1158, %t1156) :: boolean
622
622
  %t1162 = call core.and(%t1160, %t1161) :: boolean
623
623
  %t1164 = call core.sub(%t1156, %t1118) :: integer
624
624
  %t1166 = call core.clamp(%t1158, %t1114, %t1164) :: integer
625
- %t1167 = Gather %t1155, %t1166 :: integer
625
+ %t1167 = gather %t1155, %t1166 :: integer
626
626
  %t1169 = select %t1162, %t1167, %t1114 :: integer
627
627
  %t1178 = call core.sub(%col_i_281, %t1118) :: integer
628
628
  %t1180 = call core.gte(%t1178, %t1114) :: boolean
629
629
  %t1181 = call core.lt(%t1178, %t1156) :: boolean
630
630
  %t1182 = call core.and(%t1180, %t1181) :: boolean
631
631
  %t1186 = call core.clamp(%t1178, %t1114, %t1164) :: integer
632
- %t1187 = Gather %t1155, %t1186 :: integer
632
+ %t1187 = gather %t1155, %t1186 :: integer
633
633
  %t1189 = select %t1182, %t1187, %t1114 :: integer
634
634
  %t1208 = call core.lt(%t1158, %t1123) :: boolean
635
635
  %t1209 = call core.and(%t1160, %t1208) :: boolean
636
636
  %t1210 = call core.and(%t1117, %t1209) :: boolean
637
637
  %t1212 = call core.sub(%t1123, %t1118) :: integer
638
638
  %t1214 = call core.clamp(%t1158, %t1114, %t1212) :: integer
639
- %t1215 = Gather %t1122, %t1214 :: integer
639
+ %t1215 = gather %t1122, %t1214 :: integer
640
640
  %t1217 = select %t1210, %t1215, %t1114 :: integer
641
641
  %t1236 = call core.lt(%t1178, %t1123) :: boolean
642
642
  %t1237 = call core.and(%t1180, %t1236) :: boolean
643
643
  %t1238 = call core.and(%t1117, %t1237) :: boolean
644
644
  %t1242 = call core.clamp(%t1178, %t1114, %t1212) :: integer
645
- %t1243 = Gather %t1122, %t1242 :: integer
645
+ %t1243 = gather %t1122, %t1242 :: integer
646
646
  %t1245 = select %t1238, %t1243, %t1114 :: integer
647
647
  %t1264 = call core.lt(%t1158, %t1143) :: boolean
648
648
  %t1265 = call core.and(%t1160, %t1264) :: boolean
649
649
  %t1266 = call core.and(%t1137, %t1265) :: boolean
650
650
  %t1268 = call core.sub(%t1143, %t1118) :: integer
651
651
  %t1270 = call core.clamp(%t1158, %t1114, %t1268) :: integer
652
- %t1271 = Gather %t1142, %t1270 :: integer
652
+ %t1271 = gather %t1142, %t1270 :: integer
653
653
  %t1273 = select %t1266, %t1271, %t1114 :: integer
654
654
  %t1292 = call core.lt(%t1178, %t1143) :: boolean
655
655
  %t1293 = call core.and(%t1180, %t1292) :: boolean
656
656
  %t1294 = call core.and(%t1137, %t1293) :: boolean
657
657
  %t1298 = call core.clamp(%t1178, %t1114, %t1268) :: integer
658
- %t1299 = Gather %t1142, %t1298 :: integer
658
+ %t1299 = gather %t1142, %t1298 :: integer
659
659
  %t1301 = select %t1294, %t1299, %t1114 :: integer
660
660
  %t1302 = make_tuple(%t1129, %t1149, %t1169, %t1189, %t1217, %t1245, %t1273, %t1301) :: tuple<integer>
661
- %t1303 = Fold %t1302 fn="agg.sum" ::
661
+ %t1303 = fold %t1302 fn="agg.sum" ::
662
662
  %t519 = const 3 :: integer
663
663
  %t520 = call core.eq(%t1303, %t519) :: boolean
664
664
  %t1316 = const 2 :: integer
@@ -674,7 +674,7 @@
674
674
  %t285 = load_input "rows" :: array
675
675
  loop rows id=L31 in %t285 as el=%rows_el_286, idx=%rows_i_287
676
676
  loop col id=L32 in %rows_el_286 as el=%col_el_288, idx=%col_i_289
677
- %t1539 = Length %t285 :: integer
677
+ %t1539 = length %t285 :: integer
678
678
  %t1540 = const -1 :: integer
679
679
  %t1541 = call core.sub(%rows_i_287, %t1540) :: integer
680
680
  %t1542 = const 0 :: integer
@@ -684,73 +684,73 @@
684
684
  %t1546 = const 1 :: integer
685
685
  %t1547 = call core.sub(%t1539, %t1546) :: integer
686
686
  %t1549 = call core.clamp(%t1541, %t1542, %t1547) :: integer
687
- %t1550 = Gather %t285, %t1549 :: any
688
- %t1551 = Length %t1550 :: integer
687
+ %t1550 = gather %t285, %t1549 :: any
688
+ %t1551 = length %t1550 :: integer
689
689
  %t1552 = call core.mod(%col_i_289, %t1551) :: integer
690
690
  %t1553 = call core.add(%t1552, %t1551) :: integer
691
691
  %t1554 = call core.mod(%t1553, %t1551) :: integer
692
- %t1555 = Gather %t1550, %t1554 :: integer
692
+ %t1555 = gather %t1550, %t1554 :: integer
693
693
  %t1557 = select %t1545, %t1555, %t1542 :: integer
694
694
  %t1561 = call core.sub(%rows_i_287, %t1546) :: integer
695
695
  %t1563 = call core.gte(%t1561, %t1542) :: boolean
696
696
  %t1564 = call core.lt(%t1561, %t1539) :: boolean
697
697
  %t1565 = call core.and(%t1563, %t1564) :: boolean
698
698
  %t1569 = call core.clamp(%t1561, %t1542, %t1547) :: integer
699
- %t1570 = Gather %t285, %t1569 :: any
700
- %t1571 = Length %t1570 :: integer
699
+ %t1570 = gather %t285, %t1569 :: any
700
+ %t1571 = length %t1570 :: integer
701
701
  %t1572 = call core.mod(%col_i_289, %t1571) :: integer
702
702
  %t1573 = call core.add(%t1572, %t1571) :: integer
703
703
  %t1574 = call core.mod(%t1573, %t1571) :: integer
704
- %t1575 = Gather %t1570, %t1574 :: integer
704
+ %t1575 = gather %t1570, %t1574 :: integer
705
705
  %t1577 = select %t1565, %t1575, %t1542 :: integer
706
706
  %t1580 = call core.mod(%rows_i_287, %t1539) :: integer
707
707
  %t1581 = call core.add(%t1580, %t1539) :: integer
708
708
  %t1582 = call core.mod(%t1581, %t1539) :: integer
709
- %t1583 = Gather %t285, %t1582 :: any
710
- %t1584 = Length %t1583 :: integer
709
+ %t1583 = gather %t285, %t1582 :: any
710
+ %t1584 = length %t1583 :: integer
711
711
  %t1586 = call core.sub(%col_i_289, %t1540) :: integer
712
712
  %t1588 = call core.gte(%t1586, %t1542) :: boolean
713
713
  %t1589 = call core.lt(%t1586, %t1584) :: boolean
714
714
  %t1590 = call core.and(%t1588, %t1589) :: boolean
715
715
  %t1592 = call core.sub(%t1584, %t1546) :: integer
716
716
  %t1594 = call core.clamp(%t1586, %t1542, %t1592) :: integer
717
- %t1595 = Gather %t1583, %t1594 :: integer
717
+ %t1595 = gather %t1583, %t1594 :: integer
718
718
  %t1597 = select %t1590, %t1595, %t1542 :: integer
719
719
  %t1606 = call core.sub(%col_i_289, %t1546) :: integer
720
720
  %t1608 = call core.gte(%t1606, %t1542) :: boolean
721
721
  %t1609 = call core.lt(%t1606, %t1584) :: boolean
722
722
  %t1610 = call core.and(%t1608, %t1609) :: boolean
723
723
  %t1614 = call core.clamp(%t1606, %t1542, %t1592) :: integer
724
- %t1615 = Gather %t1583, %t1614 :: integer
724
+ %t1615 = gather %t1583, %t1614 :: integer
725
725
  %t1617 = select %t1610, %t1615, %t1542 :: integer
726
726
  %t1636 = call core.lt(%t1586, %t1551) :: boolean
727
727
  %t1637 = call core.and(%t1588, %t1636) :: boolean
728
728
  %t1638 = call core.and(%t1545, %t1637) :: boolean
729
729
  %t1640 = call core.sub(%t1551, %t1546) :: integer
730
730
  %t1642 = call core.clamp(%t1586, %t1542, %t1640) :: integer
731
- %t1643 = Gather %t1550, %t1642 :: integer
731
+ %t1643 = gather %t1550, %t1642 :: integer
732
732
  %t1645 = select %t1638, %t1643, %t1542 :: integer
733
733
  %t1664 = call core.lt(%t1606, %t1551) :: boolean
734
734
  %t1665 = call core.and(%t1608, %t1664) :: boolean
735
735
  %t1666 = call core.and(%t1545, %t1665) :: boolean
736
736
  %t1670 = call core.clamp(%t1606, %t1542, %t1640) :: integer
737
- %t1671 = Gather %t1550, %t1670 :: integer
737
+ %t1671 = gather %t1550, %t1670 :: integer
738
738
  %t1673 = select %t1666, %t1671, %t1542 :: integer
739
739
  %t1692 = call core.lt(%t1586, %t1571) :: boolean
740
740
  %t1693 = call core.and(%t1588, %t1692) :: boolean
741
741
  %t1694 = call core.and(%t1565, %t1693) :: boolean
742
742
  %t1696 = call core.sub(%t1571, %t1546) :: integer
743
743
  %t1698 = call core.clamp(%t1586, %t1542, %t1696) :: integer
744
- %t1699 = Gather %t1570, %t1698 :: integer
744
+ %t1699 = gather %t1570, %t1698 :: integer
745
745
  %t1701 = select %t1694, %t1699, %t1542 :: integer
746
746
  %t1720 = call core.lt(%t1606, %t1571) :: boolean
747
747
  %t1721 = call core.and(%t1608, %t1720) :: boolean
748
748
  %t1722 = call core.and(%t1565, %t1721) :: boolean
749
749
  %t1726 = call core.clamp(%t1606, %t1542, %t1696) :: integer
750
- %t1727 = Gather %t1570, %t1726 :: integer
750
+ %t1727 = gather %t1570, %t1726 :: integer
751
751
  %t1729 = select %t1722, %t1727, %t1542 :: integer
752
752
  %t1332 = make_tuple(%t1557, %t1577, %t1597, %t1617, %t1645, %t1673, %t1701, %t1729) :: tuple<integer>
753
- %t1333 = Fold %t1332 fn="agg.sum" ::
753
+ %t1333 = fold %t1332 fn="agg.sum" ::
754
754
  %t1334 = const 3 :: integer
755
755
  %t1335 = call core.eq(%t1333, %t1334) :: boolean
756
756
  %t1339 = const 2 :: integer