kumi 0.0.22 → 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 (112) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/README.md +60 -116
  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/core/analyzer/passes/output_schema_pass.rb +6 -4
  109. data/lib/kumi/core/functions/function_spec.rb +14 -8
  110. data/lib/kumi/core/functions/loader.rb +1 -1
  111. data/lib/kumi/version.rb +1 -1
  112. metadata +33 -1
@@ -1,15 +1,15 @@
1
1
  (LIR
2
2
  (Declaration shift_cols_right_zero
3
3
  %t1 = load_input "rows" :: array
4
- %t6 = Length %t1 :: integer
4
+ %t6 = length %t1 :: integer
5
5
  %t12 = const 1 :: integer
6
6
  %t14 = const 0 :: integer
7
7
  loop rows id=L1 in %t1 as el=%rows_el_2, idx=%rows_i_3
8
8
  %t7 = call core.mod(%rows_i_3, %t6) :: integer
9
9
  %t8 = call core.add(%t7, %t6) :: integer
10
10
  %t9 = call core.mod(%t8, %t6) :: integer
11
- %t10 = Gather %t1, %t9 :: any
12
- %t11 = Length %t10 :: integer
11
+ %t10 = gather %t1, %t9 :: any
12
+ %t11 = length %t10 :: integer
13
13
  %t19 = call core.sub(%t11, %t12) :: integer
14
14
  loop col id=L2 in %rows_el_2 as el=%col_el_4, idx=%col_i_5
15
15
  %t13 = call core.sub(%col_i_5, %t12) :: integer
@@ -17,7 +17,7 @@
17
17
  %t16 = call core.lt(%t13, %t11) :: boolean
18
18
  %t17 = call core.and(%t15, %t16) :: boolean
19
19
  %t21 = call core.clamp(%t13, %t14, %t19) :: integer
20
- %t22 = Gather %t10, %t21 :: integer
20
+ %t22 = gather %t10, %t21 :: integer
21
21
  %t24 = select %t17, %t22, %t14 :: integer
22
22
  yield %t24
23
23
  end_loop
@@ -25,47 +25,47 @@
25
25
  )
26
26
  (Declaration shift_cols_right_clamp
27
27
  %t25 = load_input "rows" :: array
28
- %t30 = Length %t25 :: integer
28
+ %t30 = length %t25 :: integer
29
29
  %t36 = const 1 :: integer
30
30
  %t40 = const 0 :: integer
31
31
  loop rows id=L3 in %t25 as el=%rows_el_26, idx=%rows_i_27
32
32
  %t31 = call core.mod(%rows_i_27, %t30) :: integer
33
33
  %t32 = call core.add(%t31, %t30) :: integer
34
34
  %t33 = call core.mod(%t32, %t30) :: integer
35
- %t34 = Gather %t25, %t33 :: any
36
- %t35 = Length %t34 :: integer
35
+ %t34 = gather %t25, %t33 :: any
36
+ %t35 = length %t34 :: integer
37
37
  %t39 = call core.sub(%t35, %t36) :: integer
38
38
  loop col id=L4 in %rows_el_26 as el=%col_el_28, idx=%col_i_29
39
39
  %t37 = call core.sub(%col_i_29, %t36) :: integer
40
40
  %t41 = call core.clamp(%t37, %t40, %t39) :: integer
41
- %t42 = Gather %t34, %t41 :: integer
41
+ %t42 = gather %t34, %t41 :: integer
42
42
  yield %t42
43
43
  end_loop
44
44
  end_loop
45
45
  )
46
46
  (Declaration shift_cols_right_wrap
47
47
  %t43 = load_input "rows" :: array
48
- %t48 = Length %t43 :: integer
48
+ %t48 = length %t43 :: integer
49
49
  %t54 = const 1 :: integer
50
50
  loop rows id=L5 in %t43 as el=%rows_el_44, idx=%rows_i_45
51
51
  %t49 = call core.mod(%rows_i_45, %t48) :: integer
52
52
  %t50 = call core.add(%t49, %t48) :: integer
53
53
  %t51 = call core.mod(%t50, %t48) :: integer
54
- %t52 = Gather %t43, %t51 :: any
55
- %t53 = Length %t52 :: integer
54
+ %t52 = gather %t43, %t51 :: any
55
+ %t53 = length %t52 :: integer
56
56
  loop col id=L6 in %rows_el_44 as el=%col_el_46, idx=%col_i_47
57
57
  %t55 = call core.sub(%col_i_47, %t54) :: integer
58
58
  %t56 = call core.mod(%t55, %t53) :: integer
59
59
  %t57 = call core.add(%t56, %t53) :: integer
60
60
  %t58 = call core.mod(%t57, %t53) :: integer
61
- %t59 = Gather %t52, %t58 :: integer
61
+ %t59 = gather %t52, %t58 :: integer
62
62
  yield %t59
63
63
  end_loop
64
64
  end_loop
65
65
  )
66
66
  (Declaration shift_cols_left_zero
67
67
  %t60 = load_input "rows" :: array
68
- %t65 = Length %t60 :: integer
68
+ %t65 = length %t60 :: integer
69
69
  %t71 = const -1 :: integer
70
70
  %t73 = const 0 :: integer
71
71
  %t77 = const 1 :: integer
@@ -73,8 +73,8 @@
73
73
  %t66 = call core.mod(%rows_i_62, %t65) :: integer
74
74
  %t67 = call core.add(%t66, %t65) :: integer
75
75
  %t68 = call core.mod(%t67, %t65) :: integer
76
- %t69 = Gather %t60, %t68 :: any
77
- %t70 = Length %t69 :: integer
76
+ %t69 = gather %t60, %t68 :: any
77
+ %t70 = length %t69 :: integer
78
78
  %t78 = call core.sub(%t70, %t77) :: integer
79
79
  loop col id=L8 in %rows_el_61 as el=%col_el_63, idx=%col_i_64
80
80
  %t72 = call core.sub(%col_i_64, %t71) :: integer
@@ -82,7 +82,7 @@
82
82
  %t75 = call core.lt(%t72, %t70) :: boolean
83
83
  %t76 = call core.and(%t74, %t75) :: boolean
84
84
  %t80 = call core.clamp(%t72, %t73, %t78) :: integer
85
- %t81 = Gather %t69, %t80 :: integer
85
+ %t81 = gather %t69, %t80 :: integer
86
86
  %t83 = select %t76, %t81, %t73 :: integer
87
87
  yield %t83
88
88
  end_loop
@@ -90,7 +90,7 @@
90
90
  )
91
91
  (Declaration shift_cols_left_clamp
92
92
  %t84 = load_input "rows" :: array
93
- %t89 = Length %t84 :: integer
93
+ %t89 = length %t84 :: integer
94
94
  %t95 = const -1 :: integer
95
95
  %t97 = const 1 :: integer
96
96
  %t99 = const 0 :: integer
@@ -98,40 +98,40 @@
98
98
  %t90 = call core.mod(%rows_i_86, %t89) :: integer
99
99
  %t91 = call core.add(%t90, %t89) :: integer
100
100
  %t92 = call core.mod(%t91, %t89) :: integer
101
- %t93 = Gather %t84, %t92 :: any
102
- %t94 = Length %t93 :: integer
101
+ %t93 = gather %t84, %t92 :: any
102
+ %t94 = length %t93 :: integer
103
103
  %t98 = call core.sub(%t94, %t97) :: integer
104
104
  loop col id=L10 in %rows_el_85 as el=%col_el_87, idx=%col_i_88
105
105
  %t96 = call core.sub(%col_i_88, %t95) :: integer
106
106
  %t100 = call core.clamp(%t96, %t99, %t98) :: integer
107
- %t101 = Gather %t93, %t100 :: integer
107
+ %t101 = gather %t93, %t100 :: integer
108
108
  yield %t101
109
109
  end_loop
110
110
  end_loop
111
111
  )
112
112
  (Declaration shift_cols_left_wrap
113
113
  %t102 = load_input "rows" :: array
114
- %t107 = Length %t102 :: integer
114
+ %t107 = length %t102 :: integer
115
115
  %t113 = const -1 :: integer
116
116
  loop rows id=L11 in %t102 as el=%rows_el_103, idx=%rows_i_104
117
117
  %t108 = call core.mod(%rows_i_104, %t107) :: integer
118
118
  %t109 = call core.add(%t108, %t107) :: integer
119
119
  %t110 = call core.mod(%t109, %t107) :: integer
120
- %t111 = Gather %t102, %t110 :: any
121
- %t112 = Length %t111 :: integer
120
+ %t111 = gather %t102, %t110 :: any
121
+ %t112 = length %t111 :: integer
122
122
  loop col id=L12 in %rows_el_103 as el=%col_el_105, idx=%col_i_106
123
123
  %t114 = call core.sub(%col_i_106, %t113) :: integer
124
124
  %t115 = call core.mod(%t114, %t112) :: integer
125
125
  %t116 = call core.add(%t115, %t112) :: integer
126
126
  %t117 = call core.mod(%t116, %t112) :: integer
127
- %t118 = Gather %t111, %t117 :: integer
127
+ %t118 = gather %t111, %t117 :: integer
128
128
  yield %t118
129
129
  end_loop
130
130
  end_loop
131
131
  )
132
132
  (Declaration shift_rows_down_zero
133
133
  %t119 = load_input "rows" :: array
134
- %t124 = Length %t119 :: integer
134
+ %t124 = length %t119 :: integer
135
135
  %t125 = const 1 :: integer
136
136
  %t127 = const 0 :: integer
137
137
  %t132 = call core.sub(%t124, %t125) :: integer
@@ -141,13 +141,13 @@
141
141
  %t129 = call core.lt(%t126, %t124) :: boolean
142
142
  %t134 = call core.clamp(%t126, %t127, %t132) :: integer
143
143
  %t130 = call core.and(%t128, %t129) :: boolean
144
- %t135 = Gather %t119, %t134 :: any
145
- %t136 = Length %t135 :: integer
144
+ %t135 = gather %t119, %t134 :: any
145
+ %t136 = length %t135 :: integer
146
146
  loop col id=L14 in %rows_el_120 as el=%col_el_122, idx=%col_i_123
147
147
  %t137 = call core.mod(%col_i_123, %t136) :: integer
148
148
  %t138 = call core.add(%t137, %t136) :: integer
149
149
  %t139 = call core.mod(%t138, %t136) :: integer
150
- %t140 = Gather %t135, %t139 :: integer
150
+ %t140 = gather %t135, %t139 :: integer
151
151
  %t142 = select %t130, %t140, %t127 :: integer
152
152
  yield %t142
153
153
  end_loop
@@ -155,47 +155,47 @@
155
155
  )
156
156
  (Declaration shift_rows_down_clamp
157
157
  %t143 = load_input "rows" :: array
158
- %t148 = Length %t143 :: integer
158
+ %t148 = length %t143 :: integer
159
159
  %t149 = const 1 :: integer
160
160
  %t153 = const 0 :: integer
161
161
  %t152 = call core.sub(%t148, %t149) :: integer
162
162
  loop rows id=L15 in %t143 as el=%rows_el_144, idx=%rows_i_145
163
163
  %t150 = call core.sub(%rows_i_145, %t149) :: integer
164
164
  %t154 = call core.clamp(%t150, %t153, %t152) :: integer
165
- %t155 = Gather %t143, %t154 :: any
166
- %t156 = Length %t155 :: integer
165
+ %t155 = gather %t143, %t154 :: any
166
+ %t156 = length %t155 :: integer
167
167
  loop col id=L16 in %rows_el_144 as el=%col_el_146, idx=%col_i_147
168
168
  %t157 = call core.mod(%col_i_147, %t156) :: integer
169
169
  %t158 = call core.add(%t157, %t156) :: integer
170
170
  %t159 = call core.mod(%t158, %t156) :: integer
171
- %t160 = Gather %t155, %t159 :: integer
171
+ %t160 = gather %t155, %t159 :: integer
172
172
  yield %t160
173
173
  end_loop
174
174
  end_loop
175
175
  )
176
176
  (Declaration shift_rows_down_wrap
177
177
  %t161 = load_input "rows" :: array
178
- %t166 = Length %t161 :: integer
178
+ %t166 = length %t161 :: integer
179
179
  %t167 = const 1 :: integer
180
180
  loop rows id=L17 in %t161 as el=%rows_el_162, idx=%rows_i_163
181
181
  %t168 = call core.sub(%rows_i_163, %t167) :: integer
182
182
  %t169 = call core.mod(%t168, %t166) :: integer
183
183
  %t170 = call core.add(%t169, %t166) :: integer
184
184
  %t171 = call core.mod(%t170, %t166) :: integer
185
- %t172 = Gather %t161, %t171 :: any
186
- %t173 = Length %t172 :: integer
185
+ %t172 = gather %t161, %t171 :: any
186
+ %t173 = length %t172 :: integer
187
187
  loop col id=L18 in %rows_el_162 as el=%col_el_164, idx=%col_i_165
188
188
  %t174 = call core.mod(%col_i_165, %t173) :: integer
189
189
  %t175 = call core.add(%t174, %t173) :: integer
190
190
  %t176 = call core.mod(%t175, %t173) :: integer
191
- %t177 = Gather %t172, %t176 :: integer
191
+ %t177 = gather %t172, %t176 :: integer
192
192
  yield %t177
193
193
  end_loop
194
194
  end_loop
195
195
  )
196
196
  (Declaration shift_rows_up_zero
197
197
  %t178 = load_input "rows" :: array
198
- %t183 = Length %t178 :: integer
198
+ %t183 = length %t178 :: integer
199
199
  %t184 = const -1 :: integer
200
200
  %t186 = const 0 :: integer
201
201
  %t190 = const 1 :: integer
@@ -206,13 +206,13 @@
206
206
  %t188 = call core.lt(%t185, %t183) :: boolean
207
207
  %t193 = call core.clamp(%t185, %t186, %t191) :: integer
208
208
  %t189 = call core.and(%t187, %t188) :: boolean
209
- %t194 = Gather %t178, %t193 :: any
210
- %t195 = Length %t194 :: integer
209
+ %t194 = gather %t178, %t193 :: any
210
+ %t195 = length %t194 :: integer
211
211
  loop col id=L20 in %rows_el_179 as el=%col_el_181, idx=%col_i_182
212
212
  %t196 = call core.mod(%col_i_182, %t195) :: integer
213
213
  %t197 = call core.add(%t196, %t195) :: integer
214
214
  %t198 = call core.mod(%t197, %t195) :: integer
215
- %t199 = Gather %t194, %t198 :: integer
215
+ %t199 = gather %t194, %t198 :: integer
216
216
  %t201 = select %t189, %t199, %t186 :: integer
217
217
  yield %t201
218
218
  end_loop
@@ -220,7 +220,7 @@
220
220
  )
221
221
  (Declaration shift_rows_up_clamp
222
222
  %t202 = load_input "rows" :: array
223
- %t207 = Length %t202 :: integer
223
+ %t207 = length %t202 :: integer
224
224
  %t208 = const -1 :: integer
225
225
  %t210 = const 1 :: integer
226
226
  %t212 = const 0 :: integer
@@ -228,33 +228,33 @@
228
228
  loop rows id=L21 in %t202 as el=%rows_el_203, idx=%rows_i_204
229
229
  %t209 = call core.sub(%rows_i_204, %t208) :: integer
230
230
  %t213 = call core.clamp(%t209, %t212, %t211) :: integer
231
- %t214 = Gather %t202, %t213 :: any
232
- %t215 = Length %t214 :: integer
231
+ %t214 = gather %t202, %t213 :: any
232
+ %t215 = length %t214 :: integer
233
233
  loop col id=L22 in %rows_el_203 as el=%col_el_205, idx=%col_i_206
234
234
  %t216 = call core.mod(%col_i_206, %t215) :: integer
235
235
  %t217 = call core.add(%t216, %t215) :: integer
236
236
  %t218 = call core.mod(%t217, %t215) :: integer
237
- %t219 = Gather %t214, %t218 :: integer
237
+ %t219 = gather %t214, %t218 :: integer
238
238
  yield %t219
239
239
  end_loop
240
240
  end_loop
241
241
  )
242
242
  (Declaration shift_rows_up_wrap
243
243
  %t220 = load_input "rows" :: array
244
- %t225 = Length %t220 :: integer
244
+ %t225 = length %t220 :: integer
245
245
  %t226 = const -1 :: integer
246
246
  loop rows id=L23 in %t220 as el=%rows_el_221, idx=%rows_i_222
247
247
  %t227 = call core.sub(%rows_i_222, %t226) :: integer
248
248
  %t228 = call core.mod(%t227, %t225) :: integer
249
249
  %t229 = call core.add(%t228, %t225) :: integer
250
250
  %t230 = call core.mod(%t229, %t225) :: integer
251
- %t231 = Gather %t220, %t230 :: any
252
- %t232 = Length %t231 :: integer
251
+ %t231 = gather %t220, %t230 :: any
252
+ %t232 = length %t231 :: integer
253
253
  loop col id=L24 in %rows_el_221 as el=%col_el_223, idx=%col_i_224
254
254
  %t233 = call core.mod(%col_i_224, %t232) :: integer
255
255
  %t234 = call core.add(%t233, %t232) :: integer
256
256
  %t235 = call core.mod(%t234, %t232) :: integer
257
- %t236 = Gather %t231, %t235 :: integer
257
+ %t236 = gather %t231, %t235 :: integer
258
258
  yield %t236
259
259
  end_loop
260
260
  end_loop
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_031f3aedfffe4329e9a9ba9c9a1b21b3b04919c8b1c1e484b8db833ffeac7cf4
2
+ module Kumi::Compiled::KUMI_97a8784bdcc1349e1d5789fc4bbccf7733108a0c18ccf51bf0ca7f89e3a903a3
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_669f10737cc7b153a1649261f566d16d64db11a493067c2685f5ebc85ab176e8
2
+ module Kumi::Compiled::KUMI_b9f58390b5b40ee6d866aa2798a68b5e5d1c9232fd8a4222f07422ac91dd4b29
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_87a945469ff3b51d9ccc0f72444a2b64bd4b4c6abe1edfd45bfd61d58dff0ab1
2
+ module Kumi::Compiled::KUMI_9876b5b41b48be4393b4b7656e731d87a59d3f650e68d8d6602fd252b0836401
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -9,7 +9,7 @@
9
9
  )
10
10
  (Declaration max_1
11
11
  %t6 = load_decl tuple :: tuple<integer>
12
- %t7 = Fold %t6 fn="agg.max" :: integer
12
+ %t7 = fold %t6 fn="agg.max" :: integer
13
13
  yield %t7
14
14
  )
15
15
  (Declaration max_2
@@ -19,12 +19,12 @@
19
19
  %t11 = load_input "x" :: integer
20
20
  %t12 = const 1000 :: integer
21
21
  %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer>
22
- %t14 = Fold %t13 fn="agg.max" :: integer
22
+ %t14 = fold %t13 fn="agg.max" :: integer
23
23
  yield %t14
24
24
  )
25
25
  (Declaration min_1
26
26
  %t15 = load_decl tuple :: tuple<integer>
27
- %t16 = Fold %t15 fn="agg.min" :: integer
27
+ %t16 = fold %t15 fn="agg.min" :: integer
28
28
  yield %t16
29
29
  )
30
30
  (Declaration min_2
@@ -34,7 +34,7 @@
34
34
  %t20 = load_input "x" :: integer
35
35
  %t21 = const -100 :: integer
36
36
  %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer>
37
- %t23 = Fold %t22 fn="agg.min" :: integer
37
+ %t23 = fold %t22 fn="agg.min" :: integer
38
38
  yield %t23
39
39
  )
40
40
  )
@@ -9,7 +9,7 @@
9
9
  )
10
10
  (Declaration max_1
11
11
  %t6 = load_decl tuple :: tuple<integer>
12
- %t7 = Fold %t6 fn="agg.max" :: integer
12
+ %t7 = fold %t6 fn="agg.max" :: integer
13
13
  yield %t7
14
14
  )
15
15
  (Declaration max_2
@@ -19,12 +19,12 @@
19
19
  %t11 = load_input "x" :: integer
20
20
  %t12 = const 1000 :: integer
21
21
  %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer>
22
- %t14 = Fold %t13 fn="agg.max" :: integer
22
+ %t14 = fold %t13 fn="agg.max" :: integer
23
23
  yield %t14
24
24
  )
25
25
  (Declaration min_1
26
26
  %t15 = load_decl tuple :: tuple<integer>
27
- %t16 = Fold %t15 fn="agg.min" :: integer
27
+ %t16 = fold %t15 fn="agg.min" :: integer
28
28
  yield %t16
29
29
  )
30
30
  (Declaration min_2
@@ -34,7 +34,7 @@
34
34
  %t20 = load_input "x" :: integer
35
35
  %t21 = const -100 :: integer
36
36
  %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer>
37
- %t23 = Fold %t22 fn="agg.min" :: integer
37
+ %t23 = fold %t22 fn="agg.min" :: integer
38
38
  yield %t23
39
39
  )
40
40
  )
@@ -13,7 +13,7 @@
13
13
  %t26 = const 3 :: integer
14
14
  %t27 = load_input "x" :: integer
15
15
  %t28 = make_tuple(%t24, %t25, %t26, %t27) :: tuple<integer>
16
- %t7 = Fold %t28 fn="agg.max" :: integer
16
+ %t7 = fold %t28 fn="agg.max" :: integer
17
17
  yield %t7
18
18
  )
19
19
  (Declaration max_2
@@ -23,7 +23,7 @@
23
23
  %t11 = load_input "x" :: integer
24
24
  %t12 = const 1000 :: integer
25
25
  %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer>
26
- %t14 = Fold %t13 fn="agg.max" :: integer
26
+ %t14 = fold %t13 fn="agg.max" :: integer
27
27
  yield %t14
28
28
  )
29
29
  (Declaration min_1
@@ -32,7 +32,7 @@
32
32
  %t31 = const 3 :: integer
33
33
  %t32 = load_input "x" :: integer
34
34
  %t33 = make_tuple(%t29, %t30, %t31, %t32) :: tuple<integer>
35
- %t16 = Fold %t33 fn="agg.min" :: integer
35
+ %t16 = fold %t33 fn="agg.min" :: integer
36
36
  yield %t16
37
37
  )
38
38
  (Declaration min_2
@@ -42,7 +42,7 @@
42
42
  %t20 = load_input "x" :: integer
43
43
  %t21 = const -100 :: integer
44
44
  %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer>
45
- %t23 = Fold %t22 fn="agg.min" :: integer
45
+ %t23 = fold %t22 fn="agg.min" :: integer
46
46
  yield %t23
47
47
  )
48
48
  )
@@ -13,7 +13,7 @@
13
13
  %t26 = const 3 :: integer
14
14
  %t27 = load_input "x" :: integer
15
15
  %t28 = make_tuple(%t24, %t25, %t26, %t27) :: tuple<integer>
16
- %t7 = Fold %t28 fn="agg.max" :: integer
16
+ %t7 = fold %t28 fn="agg.max" :: integer
17
17
  yield %t7
18
18
  )
19
19
  (Declaration max_2
@@ -23,7 +23,7 @@
23
23
  %t11 = load_input "x" :: integer
24
24
  %t12 = const 1000 :: integer
25
25
  %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer>
26
- %t14 = Fold %t13 fn="agg.max" :: integer
26
+ %t14 = fold %t13 fn="agg.max" :: integer
27
27
  yield %t14
28
28
  )
29
29
  (Declaration min_1
@@ -32,7 +32,7 @@
32
32
  %t31 = const 3 :: integer
33
33
  %t32 = load_input "x" :: integer
34
34
  %t33 = make_tuple(%t29, %t30, %t31, %t32) :: tuple<integer>
35
- %t16 = Fold %t33 fn="agg.min" :: integer
35
+ %t16 = fold %t33 fn="agg.min" :: integer
36
36
  yield %t16
37
37
  )
38
38
  (Declaration min_2
@@ -42,7 +42,7 @@
42
42
  %t20 = load_input "x" :: integer
43
43
  %t21 = const -100 :: integer
44
44
  %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer>
45
- %t23 = Fold %t22 fn="agg.min" :: integer
45
+ %t23 = fold %t22 fn="agg.min" :: integer
46
46
  yield %t23
47
47
  )
48
48
  )
@@ -13,7 +13,7 @@
13
13
  %t26 = const 3 :: integer
14
14
  %t27 = load_input "x" :: integer
15
15
  %t28 = make_tuple(%t24, %t25, %t26, %t27) :: tuple<integer>
16
- %t7 = Fold %t28 fn="agg.max" :: integer
16
+ %t7 = fold %t28 fn="agg.max" :: integer
17
17
  yield %t7
18
18
  )
19
19
  (Declaration max_2
@@ -23,7 +23,7 @@
23
23
  %t11 = load_input "x" :: integer
24
24
  %t12 = const 1000 :: integer
25
25
  %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer>
26
- %t14 = Fold %t13 fn="agg.max" :: integer
26
+ %t14 = fold %t13 fn="agg.max" :: integer
27
27
  yield %t14
28
28
  )
29
29
  (Declaration min_1
@@ -32,7 +32,7 @@
32
32
  %t31 = const 3 :: integer
33
33
  %t32 = load_input "x" :: integer
34
34
  %t33 = make_tuple(%t29, %t30, %t31, %t32) :: tuple<integer>
35
- %t16 = Fold %t33 fn="agg.min" :: integer
35
+ %t16 = fold %t33 fn="agg.min" :: integer
36
36
  yield %t16
37
37
  )
38
38
  (Declaration min_2
@@ -42,7 +42,7 @@
42
42
  %t20 = load_input "x" :: integer
43
43
  %t21 = const -100 :: integer
44
44
  %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer>
45
- %t23 = Fold %t22 fn="agg.min" :: integer
45
+ %t23 = fold %t22 fn="agg.min" :: integer
46
46
  yield %t23
47
47
  )
48
48
  )
@@ -13,7 +13,7 @@
13
13
  %t26 = const 3 :: integer
14
14
  %t27 = load_input "x" :: integer
15
15
  %t28 = make_tuple(%t24, %t25, %t26, %t27) :: tuple<integer>
16
- %t7 = Fold %t28 fn="agg.max" :: integer
16
+ %t7 = fold %t28 fn="agg.max" :: integer
17
17
  yield %t7
18
18
  )
19
19
  (Declaration max_2
@@ -23,7 +23,7 @@
23
23
  %t11 = load_input "x" :: integer
24
24
  %t12 = const 1000 :: integer
25
25
  %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer>
26
- %t14 = Fold %t13 fn="agg.max" :: integer
26
+ %t14 = fold %t13 fn="agg.max" :: integer
27
27
  yield %t14
28
28
  )
29
29
  (Declaration min_1
@@ -32,7 +32,7 @@
32
32
  %t31 = const 3 :: integer
33
33
  %t32 = load_input "x" :: integer
34
34
  %t33 = make_tuple(%t29, %t30, %t31, %t32) :: tuple<integer>
35
- %t16 = Fold %t33 fn="agg.min" :: integer
35
+ %t16 = fold %t33 fn="agg.min" :: integer
36
36
  yield %t16
37
37
  )
38
38
  (Declaration min_2
@@ -42,7 +42,7 @@
42
42
  %t20 = load_input "x" :: integer
43
43
  %t21 = const -100 :: integer
44
44
  %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer>
45
- %t23 = Fold %t22 fn="agg.min" :: integer
45
+ %t23 = fold %t22 fn="agg.min" :: integer
46
46
  yield %t23
47
47
  )
48
48
  )
@@ -13,7 +13,7 @@
13
13
  %t26 = const 3 :: integer
14
14
  %t27 = load_input "x" :: integer
15
15
  %t28 = make_tuple(%t24, %t25, %t26, %t27) :: tuple<integer>
16
- %t7 = Fold %t28 fn="agg.max" :: integer
16
+ %t7 = fold %t28 fn="agg.max" :: integer
17
17
  yield %t7
18
18
  )
19
19
  (Declaration max_2
@@ -23,7 +23,7 @@
23
23
  %t11 = load_input "x" :: integer
24
24
  %t12 = const 1000 :: integer
25
25
  %t13 = make_tuple(%t8, %t9, %t10, %t11, %t12) :: tuple<integer>
26
- %t14 = Fold %t13 fn="agg.max" :: integer
26
+ %t14 = fold %t13 fn="agg.max" :: integer
27
27
  yield %t14
28
28
  )
29
29
  (Declaration min_1
@@ -32,7 +32,7 @@
32
32
  %t31 = const 3 :: integer
33
33
  %t32 = load_input "x" :: integer
34
34
  %t33 = make_tuple(%t29, %t30, %t31, %t32) :: tuple<integer>
35
- %t16 = Fold %t33 fn="agg.min" :: integer
35
+ %t16 = fold %t33 fn="agg.min" :: integer
36
36
  yield %t16
37
37
  )
38
38
  (Declaration min_2
@@ -42,7 +42,7 @@
42
42
  %t20 = load_input "x" :: integer
43
43
  %t21 = const -100 :: integer
44
44
  %t22 = make_tuple(%t17, %t18, %t19, %t20, %t21) :: tuple<integer>
45
- %t23 = Fold %t22 fn="agg.min" :: integer
45
+ %t23 = fold %t22 fn="agg.min" :: integer
46
46
  yield %t23
47
47
  )
48
48
  )
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_08e1c30dee487d18ab2e33d19b5a722c9e1e991382f6db6419350dfcbd03cb93
2
+ module Kumi::Compiled::KUMI_3eea341813080bb4cbc0497827d3abc72ab1193f6dee28a753bc5d2598f4360f
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -24,7 +24,7 @@
24
24
  %t17 = load_decl selected_value axes=[points] :: integer
25
25
  %t18 = load_field points_el_15["x"] :: integer
26
26
  %t19 = make_tuple(%t17, %t18) :: tuple<integer>
27
- %t20 = Fold %t19 fn="agg.max" :: integer
27
+ %t20 = fold %t19 fn="agg.max" :: integer
28
28
  yield %t20
29
29
  end_loop
30
30
  )
@@ -24,7 +24,7 @@
24
24
  %t17 = load_decl selected_value axes=[points] :: integer
25
25
  %t18 = load_field points_el_15["x"] :: integer
26
26
  %t19 = make_tuple(%t17, %t18) :: tuple<integer>
27
- %t20 = Fold %t19 fn="agg.max" :: integer
27
+ %t20 = fold %t19 fn="agg.max" :: integer
28
28
  yield %t20
29
29
  end_loop
30
30
  )
@@ -34,7 +34,7 @@
34
34
  %t35 = select %t44, %t33, %t34 :: integer
35
35
  %t18 = load_field points_el_15["x"] :: integer
36
36
  %t19 = make_tuple(%t35, %t18) :: tuple<integer>
37
- %t20 = Fold %t19 fn="agg.max" :: integer
37
+ %t20 = fold %t19 fn="agg.max" :: integer
38
38
  yield %t20
39
39
  end_loop
40
40
  )
@@ -53,7 +53,7 @@
53
53
  %t52 = select %t49, %t50, %t51 :: integer
54
54
  %t38 = load_field points_el_23["x"] :: integer
55
55
  %t39 = make_tuple(%t52, %t38) :: tuple<integer>
56
- %t40 = Fold %t39 fn="agg.max" :: integer
56
+ %t40 = fold %t39 fn="agg.max" :: integer
57
57
  %acc_21 = acc_add agg.sum(%acc_21, %t40) :: integer
58
58
  end_loop
59
59
  %t26 = acc_load %acc_21 :: integer
@@ -28,7 +28,7 @@
28
28
  %t44 = call core.gt(%t42, %t43) :: boolean
29
29
  %t35 = select %t44, %t42, %t34 :: integer
30
30
  %t19 = make_tuple(%t35, %t42) :: tuple<integer>
31
- %t20 = Fold %t19 fn="agg.max" :: integer
31
+ %t20 = fold %t19 fn="agg.max" :: integer
32
32
  yield %t20
33
33
  end_loop
34
34
  )
@@ -42,7 +42,7 @@
42
42
  %t49 = call core.gt(%t47, %t48) :: boolean
43
43
  %t52 = select %t49, %t47, %t51 :: integer
44
44
  %t39 = make_tuple(%t52, %t47) :: tuple<integer>
45
- %t40 = Fold %t39 fn="agg.max" :: integer
45
+ %t40 = fold %t39 fn="agg.max" :: integer
46
46
  %acc_21 = acc_add agg.sum(%acc_21, %t40) :: integer
47
47
  end_loop
48
48
  %t26 = acc_load %acc_21 :: integer
@@ -28,7 +28,7 @@
28
28
  %t44 = call core.gt(%t42, %t43) :: boolean
29
29
  %t35 = select %t44, %t42, %t34 :: integer
30
30
  %t19 = make_tuple(%t35, %t42) :: tuple<integer>
31
- %t20 = Fold %t19 fn="agg.max" :: integer
31
+ %t20 = fold %t19 fn="agg.max" :: integer
32
32
  yield %t20
33
33
  end_loop
34
34
  )
@@ -42,7 +42,7 @@
42
42
  %t49 = call core.gt(%t47, %t48) :: boolean
43
43
  %t52 = select %t49, %t47, %t51 :: integer
44
44
  %t39 = make_tuple(%t52, %t47) :: tuple<integer>
45
- %t40 = Fold %t39 fn="agg.max" :: integer
45
+ %t40 = fold %t39 fn="agg.max" :: integer
46
46
  %acc_21 = acc_add agg.sum(%acc_21, %t40) :: integer
47
47
  end_loop
48
48
  %t26 = acc_load %acc_21 :: integer
@@ -28,7 +28,7 @@
28
28
  %t44 = call core.gt(%t42, %t43) :: boolean
29
29
  %t35 = select %t44, %t42, %t34 :: integer
30
30
  %t19 = make_tuple(%t35, %t42) :: tuple<integer>
31
- %t20 = Fold %t19 fn="agg.max" :: integer
31
+ %t20 = fold %t19 fn="agg.max" :: integer
32
32
  yield %t20
33
33
  end_loop
34
34
  )
@@ -42,7 +42,7 @@
42
42
  %t49 = call core.gt(%t47, %t48) :: boolean
43
43
  %t52 = select %t49, %t47, %t51 :: integer
44
44
  %t39 = make_tuple(%t52, %t47) :: tuple<integer>
45
- %t40 = Fold %t39 fn="agg.max" :: integer
45
+ %t40 = fold %t39 fn="agg.max" :: integer
46
46
  %acc_21 = acc_add agg.sum(%acc_21, %t40) :: integer
47
47
  end_loop
48
48
  %t26 = acc_load %acc_21 :: integer