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.
Files changed (166) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -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/lir_02_inlined.txt +8 -8
  8. data/golden/cascade_logic/expected/schema_ruby.rb +1 -1
  9. data/golden/chained_fusion/expected/lir_02_inlined.txt +36 -36
  10. data/golden/chained_fusion/expected/lir_03_cse.txt +23 -23
  11. data/golden/chained_fusion/expected/lir_04_1_loop_fusion.txt +25 -25
  12. data/golden/chained_fusion/expected/lir_04_loop_invcm.txt +23 -23
  13. data/golden/chained_fusion/expected/lir_06_const_prop.txt +23 -23
  14. data/golden/chained_fusion/expected/schema_javascript.mjs +23 -23
  15. data/golden/chained_fusion/expected/schema_ruby.rb +28 -28
  16. data/golden/element_arrays/expected/schema_ruby.rb +1 -1
  17. data/golden/empty_and_null_inputs/expected/lir_02_inlined.txt +18 -18
  18. data/golden/empty_and_null_inputs/expected/lir_03_cse.txt +17 -17
  19. data/golden/empty_and_null_inputs/expected/lir_04_1_loop_fusion.txt +17 -17
  20. data/golden/empty_and_null_inputs/expected/lir_04_loop_invcm.txt +17 -17
  21. data/golden/empty_and_null_inputs/expected/lir_06_const_prop.txt +17 -17
  22. data/golden/empty_and_null_inputs/expected/schema_javascript.mjs +13 -13
  23. data/golden/empty_and_null_inputs/expected/schema_ruby.rb +18 -18
  24. data/golden/game_of_life/expected/lir_00_unoptimized.txt +33 -33
  25. data/golden/game_of_life/expected/lir_01_hoist_scalar_references.txt +33 -33
  26. data/golden/game_of_life/expected/lir_02_inlined.txt +1370 -1370
  27. data/golden/game_of_life/expected/lir_03_cse.txt +448 -448
  28. data/golden/game_of_life/expected/lir_04_1_loop_fusion.txt +448 -448
  29. data/golden/game_of_life/expected/lir_04_loop_invcm.txt +448 -448
  30. data/golden/game_of_life/expected/lir_06_const_prop.txt +448 -448
  31. data/golden/game_of_life/expected/schema_javascript.mjs +85 -85
  32. data/golden/game_of_life/expected/schema_ruby.rb +86 -86
  33. data/golden/hash_keys/expected/schema_ruby.rb +1 -1
  34. data/golden/hash_keys/schema.kumi +4 -5
  35. data/golden/hash_value/expected/schema_ruby.rb +1 -1
  36. data/golden/hierarchical_complex/expected/lir_02_inlined.txt +15 -15
  37. data/golden/hierarchical_complex/expected/lir_03_cse.txt +1 -1
  38. data/golden/hierarchical_complex/expected/lir_04_1_loop_fusion.txt +1 -1
  39. data/golden/hierarchical_complex/expected/lir_04_loop_invcm.txt +1 -1
  40. data/golden/hierarchical_complex/expected/lir_06_const_prop.txt +1 -1
  41. data/golden/hierarchical_complex/expected/schema_javascript.mjs +1 -1
  42. data/golden/hierarchical_complex/expected/schema_ruby.rb +2 -2
  43. data/golden/inline_rename_scope_leak/expected/ast.txt +48 -0
  44. data/golden/inline_rename_scope_leak/expected/input_plan.txt +10 -0
  45. data/golden/inline_rename_scope_leak/expected/lir_00_unoptimized.txt +35 -0
  46. data/golden/inline_rename_scope_leak/expected/lir_01_hoist_scalar_references.txt +35 -0
  47. data/golden/inline_rename_scope_leak/expected/lir_02_inlined.txt +49 -0
  48. data/golden/inline_rename_scope_leak/expected/lir_03_cse.txt +49 -0
  49. data/golden/inline_rename_scope_leak/expected/lir_04_1_loop_fusion.txt +49 -0
  50. data/golden/inline_rename_scope_leak/expected/lir_04_loop_invcm.txt +49 -0
  51. data/golden/inline_rename_scope_leak/expected/lir_06_const_prop.txt +49 -0
  52. data/golden/inline_rename_scope_leak/expected/nast.txt +31 -0
  53. data/golden/inline_rename_scope_leak/expected/schema_javascript.mjs +51 -0
  54. data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +82 -0
  55. data/golden/inline_rename_scope_leak/expected/snast.txt +31 -0
  56. data/golden/inline_rename_scope_leak/expected.json +7 -0
  57. data/golden/inline_rename_scope_leak/input.json +4 -0
  58. data/golden/inline_rename_scope_leak/schema.kumi +24 -0
  59. data/golden/input_reference/expected/schema_ruby.rb +1 -1
  60. data/golden/interleaved_fusion/expected/lir_02_inlined.txt +35 -35
  61. data/golden/interleaved_fusion/expected/lir_03_cse.txt +26 -26
  62. data/golden/interleaved_fusion/expected/lir_04_1_loop_fusion.txt +27 -26
  63. data/golden/interleaved_fusion/expected/lir_04_loop_invcm.txt +26 -26
  64. data/golden/interleaved_fusion/expected/lir_06_const_prop.txt +26 -26
  65. data/golden/interleaved_fusion/expected/schema_javascript.mjs +23 -23
  66. data/golden/interleaved_fusion/expected/schema_ruby.rb +29 -29
  67. data/golden/let_inline/expected/schema_ruby.rb +1 -1
  68. data/golden/loop_fusion/expected/lir_02_inlined.txt +17 -17
  69. data/golden/loop_fusion/expected/lir_03_cse.txt +14 -14
  70. data/golden/loop_fusion/expected/lir_04_1_loop_fusion.txt +14 -14
  71. data/golden/loop_fusion/expected/lir_04_loop_invcm.txt +14 -14
  72. data/golden/loop_fusion/expected/lir_06_const_prop.txt +14 -14
  73. data/golden/loop_fusion/expected/schema_javascript.mjs +12 -12
  74. data/golden/loop_fusion/expected/schema_ruby.rb +16 -16
  75. data/golden/min_reduce_scope/expected/schema_ruby.rb +1 -1
  76. data/golden/mixed_dimensions/expected/lir_02_inlined.txt +5 -5
  77. data/golden/mixed_dimensions/expected/lir_03_cse.txt +5 -5
  78. data/golden/mixed_dimensions/expected/lir_04_1_loop_fusion.txt +5 -5
  79. data/golden/mixed_dimensions/expected/lir_04_loop_invcm.txt +5 -5
  80. data/golden/mixed_dimensions/expected/lir_06_const_prop.txt +5 -5
  81. data/golden/mixed_dimensions/expected/schema_javascript.mjs +3 -3
  82. data/golden/mixed_dimensions/expected/schema_ruby.rb +6 -6
  83. data/golden/multirank_hoisting/expected/lir_02_inlined.txt +48 -48
  84. data/golden/multirank_hoisting/expected/lir_03_cse.txt +35 -35
  85. data/golden/multirank_hoisting/expected/lir_04_1_loop_fusion.txt +35 -35
  86. data/golden/multirank_hoisting/expected/lir_04_loop_invcm.txt +35 -35
  87. data/golden/multirank_hoisting/expected/lir_06_const_prop.txt +35 -35
  88. data/golden/multirank_hoisting/expected/schema_javascript.mjs +34 -34
  89. data/golden/multirank_hoisting/expected/schema_ruby.rb +36 -36
  90. data/golden/nested_hash/expected/schema_ruby.rb +1 -1
  91. data/golden/reduction_broadcast/expected/lir_02_inlined.txt +30 -30
  92. data/golden/reduction_broadcast/expected/lir_03_cse.txt +22 -22
  93. data/golden/reduction_broadcast/expected/lir_04_1_loop_fusion.txt +22 -22
  94. data/golden/reduction_broadcast/expected/lir_04_loop_invcm.txt +22 -22
  95. data/golden/reduction_broadcast/expected/lir_06_const_prop.txt +22 -22
  96. data/golden/reduction_broadcast/expected/schema_javascript.mjs +18 -18
  97. data/golden/reduction_broadcast/expected/schema_ruby.rb +23 -23
  98. data/golden/roll/expected/lir_00_unoptimized.txt +8 -8
  99. data/golden/roll/expected/lir_01_hoist_scalar_references.txt +8 -8
  100. data/golden/roll/expected/lir_02_inlined.txt +8 -8
  101. data/golden/roll/expected/lir_03_cse.txt +8 -8
  102. data/golden/roll/expected/lir_04_1_loop_fusion.txt +8 -8
  103. data/golden/roll/expected/lir_04_loop_invcm.txt +8 -8
  104. data/golden/roll/expected/lir_06_const_prop.txt +8 -8
  105. data/golden/roll/expected/schema_ruby.rb +1 -1
  106. data/golden/shift/expected/lir_00_unoptimized.txt +12 -12
  107. data/golden/shift/expected/lir_01_hoist_scalar_references.txt +12 -12
  108. data/golden/shift/expected/lir_02_inlined.txt +12 -12
  109. data/golden/shift/expected/lir_03_cse.txt +12 -12
  110. data/golden/shift/expected/lir_04_1_loop_fusion.txt +12 -12
  111. data/golden/shift/expected/lir_04_loop_invcm.txt +12 -12
  112. data/golden/shift/expected/lir_06_const_prop.txt +12 -12
  113. data/golden/shift/expected/schema_ruby.rb +1 -1
  114. data/golden/shift_2d/expected/lir_00_unoptimized.txt +48 -48
  115. data/golden/shift_2d/expected/lir_01_hoist_scalar_references.txt +48 -48
  116. data/golden/shift_2d/expected/lir_02_inlined.txt +48 -48
  117. data/golden/shift_2d/expected/lir_03_cse.txt +48 -48
  118. data/golden/shift_2d/expected/lir_04_1_loop_fusion.txt +48 -48
  119. data/golden/shift_2d/expected/lir_04_loop_invcm.txt +48 -48
  120. data/golden/shift_2d/expected/lir_06_const_prop.txt +48 -48
  121. data/golden/shift_2d/expected/schema_ruby.rb +1 -1
  122. data/golden/simple_math/expected/schema_ruby.rb +1 -1
  123. data/golden/streaming_basics/expected/lir_02_inlined.txt +25 -25
  124. data/golden/streaming_basics/expected/lir_03_cse.txt +13 -13
  125. data/golden/streaming_basics/expected/lir_04_1_loop_fusion.txt +13 -13
  126. data/golden/streaming_basics/expected/lir_04_loop_invcm.txt +13 -13
  127. data/golden/streaming_basics/expected/lir_06_const_prop.txt +13 -13
  128. data/golden/streaming_basics/expected/schema_javascript.mjs +13 -13
  129. data/golden/streaming_basics/expected/schema_ruby.rb +14 -14
  130. data/golden/tuples/expected/lir_00_unoptimized.txt +4 -4
  131. data/golden/tuples/expected/lir_01_hoist_scalar_references.txt +4 -4
  132. data/golden/tuples/expected/lir_02_inlined.txt +4 -4
  133. data/golden/tuples/expected/lir_03_cse.txt +4 -4
  134. data/golden/tuples/expected/lir_04_1_loop_fusion.txt +4 -4
  135. data/golden/tuples/expected/lir_04_loop_invcm.txt +4 -4
  136. data/golden/tuples/expected/lir_06_const_prop.txt +4 -4
  137. data/golden/tuples/expected/schema_ruby.rb +1 -1
  138. data/golden/tuples_and_arrays/expected/lir_00_unoptimized.txt +1 -1
  139. data/golden/tuples_and_arrays/expected/lir_01_hoist_scalar_references.txt +1 -1
  140. data/golden/tuples_and_arrays/expected/lir_02_inlined.txt +17 -17
  141. data/golden/tuples_and_arrays/expected/lir_03_cse.txt +14 -14
  142. data/golden/tuples_and_arrays/expected/lir_04_1_loop_fusion.txt +14 -14
  143. data/golden/tuples_and_arrays/expected/lir_04_loop_invcm.txt +14 -14
  144. data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +14 -14
  145. data/golden/tuples_and_arrays/expected/schema_javascript.mjs +13 -13
  146. data/golden/tuples_and_arrays/expected/schema_ruby.rb +14 -14
  147. data/golden/us_tax_2024/expected/ast.txt +865 -0
  148. data/golden/us_tax_2024/expected/input_plan.txt +61 -0
  149. data/golden/us_tax_2024/expected/lir_00_unoptimized.txt +901 -0
  150. data/golden/us_tax_2024/expected/lir_01_hoist_scalar_references.txt +901 -0
  151. data/golden/us_tax_2024/expected/lir_02_inlined.txt +5178 -0
  152. data/golden/us_tax_2024/expected/lir_03_cse.txt +2499 -0
  153. data/golden/us_tax_2024/expected/lir_04_1_loop_fusion.txt +2519 -0
  154. data/golden/us_tax_2024/expected/lir_04_loop_invcm.txt +2499 -0
  155. data/golden/us_tax_2024/expected/lir_06_const_prop.txt +2499 -0
  156. data/golden/us_tax_2024/expected/nast.txt +976 -0
  157. data/golden/us_tax_2024/expected/schema_javascript.mjs +584 -0
  158. data/golden/us_tax_2024/expected/schema_ruby.rb +639 -0
  159. data/golden/us_tax_2024/expected/snast.txt +976 -0
  160. data/golden/us_tax_2024/expected.json +1 -0
  161. data/golden/us_tax_2024/input.json +168 -0
  162. data/golden/us_tax_2024/schema.kumi +203 -0
  163. data/golden/with_constants/expected/schema_ruby.rb +1 -1
  164. data/lib/kumi/core/analyzer/passes/lir/inline_declarations_pass.rb +227 -107
  165. data/lib/kumi/version.rb +1 -1
  166. metadata +33 -1
@@ -3,12 +3,12 @@
3
3
  %t1 = load_input "rows" :: array
4
4
  loop rows id=L1 in %t1 as el=%rows_el_2, idx=%rows_i_3
5
5
  loop col id=L2 in %rows_el_2 as el=%col_el_4, idx=%col_i_5
6
- %t6 = Length %t1 :: integer
6
+ %t6 = length %t1 :: integer
7
7
  %t7 = call core.mod(%rows_i_3, %t6) :: integer
8
8
  %t8 = call core.add(%t7, %t6) :: integer
9
9
  %t9 = call core.mod(%t8, %t6) :: integer
10
- %t10 = Gather %t1, %t9 :: any
11
- %t11 = Length %t10 :: integer
10
+ %t10 = gather %t1, %t9 :: any
11
+ %t11 = length %t10 :: integer
12
12
  %t12 = const 1 :: integer
13
13
  %t13 = call core.sub(%col_i_5, %t12) :: integer
14
14
  %t14 = const 0 :: integer
@@ -19,7 +19,7 @@
19
19
  %t19 = call core.sub(%t11, %t18) :: integer
20
20
  %t20 = const 0 :: integer
21
21
  %t21 = call core.clamp(%t13, %t20, %t19) :: integer
22
- %t22 = Gather %t10, %t21 :: integer
22
+ %t22 = gather %t10, %t21 :: integer
23
23
  %t23 = const 0 :: integer
24
24
  %t24 = select %t17, %t22, %t23 :: integer
25
25
  yield %t24
@@ -30,19 +30,19 @@
30
30
  %t25 = load_input "rows" :: array
31
31
  loop rows id=L3 in %t25 as el=%rows_el_26, idx=%rows_i_27
32
32
  loop col id=L4 in %rows_el_26 as el=%col_el_28, idx=%col_i_29
33
- %t30 = Length %t25 :: integer
33
+ %t30 = length %t25 :: integer
34
34
  %t31 = call core.mod(%rows_i_27, %t30) :: integer
35
35
  %t32 = call core.add(%t31, %t30) :: integer
36
36
  %t33 = call core.mod(%t32, %t30) :: integer
37
- %t34 = Gather %t25, %t33 :: any
38
- %t35 = Length %t34 :: integer
37
+ %t34 = gather %t25, %t33 :: any
38
+ %t35 = length %t34 :: integer
39
39
  %t36 = const 1 :: integer
40
40
  %t37 = call core.sub(%col_i_29, %t36) :: integer
41
41
  %t38 = const 1 :: integer
42
42
  %t39 = call core.sub(%t35, %t38) :: integer
43
43
  %t40 = const 0 :: integer
44
44
  %t41 = call core.clamp(%t37, %t40, %t39) :: integer
45
- %t42 = Gather %t34, %t41 :: integer
45
+ %t42 = gather %t34, %t41 :: integer
46
46
  yield %t42
47
47
  end_loop
48
48
  end_loop
@@ -51,18 +51,18 @@
51
51
  %t43 = load_input "rows" :: array
52
52
  loop rows id=L5 in %t43 as el=%rows_el_44, idx=%rows_i_45
53
53
  loop col id=L6 in %rows_el_44 as el=%col_el_46, idx=%col_i_47
54
- %t48 = Length %t43 :: integer
54
+ %t48 = length %t43 :: integer
55
55
  %t49 = call core.mod(%rows_i_45, %t48) :: integer
56
56
  %t50 = call core.add(%t49, %t48) :: integer
57
57
  %t51 = call core.mod(%t50, %t48) :: integer
58
- %t52 = Gather %t43, %t51 :: any
59
- %t53 = Length %t52 :: integer
58
+ %t52 = gather %t43, %t51 :: any
59
+ %t53 = length %t52 :: integer
60
60
  %t54 = const 1 :: integer
61
61
  %t55 = call core.sub(%col_i_47, %t54) :: integer
62
62
  %t56 = call core.mod(%t55, %t53) :: integer
63
63
  %t57 = call core.add(%t56, %t53) :: integer
64
64
  %t58 = call core.mod(%t57, %t53) :: integer
65
- %t59 = Gather %t52, %t58 :: integer
65
+ %t59 = gather %t52, %t58 :: integer
66
66
  yield %t59
67
67
  end_loop
68
68
  end_loop
@@ -71,12 +71,12 @@
71
71
  %t60 = load_input "rows" :: array
72
72
  loop rows id=L7 in %t60 as el=%rows_el_61, idx=%rows_i_62
73
73
  loop col id=L8 in %rows_el_61 as el=%col_el_63, idx=%col_i_64
74
- %t65 = Length %t60 :: integer
74
+ %t65 = length %t60 :: integer
75
75
  %t66 = call core.mod(%rows_i_62, %t65) :: integer
76
76
  %t67 = call core.add(%t66, %t65) :: integer
77
77
  %t68 = call core.mod(%t67, %t65) :: integer
78
- %t69 = Gather %t60, %t68 :: any
79
- %t70 = Length %t69 :: integer
78
+ %t69 = gather %t60, %t68 :: any
79
+ %t70 = length %t69 :: integer
80
80
  %t71 = const -1 :: integer
81
81
  %t72 = call core.sub(%col_i_64, %t71) :: integer
82
82
  %t73 = const 0 :: integer
@@ -87,7 +87,7 @@
87
87
  %t78 = call core.sub(%t70, %t77) :: integer
88
88
  %t79 = const 0 :: integer
89
89
  %t80 = call core.clamp(%t72, %t79, %t78) :: integer
90
- %t81 = Gather %t69, %t80 :: integer
90
+ %t81 = gather %t69, %t80 :: integer
91
91
  %t82 = const 0 :: integer
92
92
  %t83 = select %t76, %t81, %t82 :: integer
93
93
  yield %t83
@@ -98,19 +98,19 @@
98
98
  %t84 = load_input "rows" :: array
99
99
  loop rows id=L9 in %t84 as el=%rows_el_85, idx=%rows_i_86
100
100
  loop col id=L10 in %rows_el_85 as el=%col_el_87, idx=%col_i_88
101
- %t89 = Length %t84 :: integer
101
+ %t89 = length %t84 :: integer
102
102
  %t90 = call core.mod(%rows_i_86, %t89) :: integer
103
103
  %t91 = call core.add(%t90, %t89) :: integer
104
104
  %t92 = call core.mod(%t91, %t89) :: integer
105
- %t93 = Gather %t84, %t92 :: any
106
- %t94 = Length %t93 :: integer
105
+ %t93 = gather %t84, %t92 :: any
106
+ %t94 = length %t93 :: integer
107
107
  %t95 = const -1 :: integer
108
108
  %t96 = call core.sub(%col_i_88, %t95) :: integer
109
109
  %t97 = const 1 :: integer
110
110
  %t98 = call core.sub(%t94, %t97) :: integer
111
111
  %t99 = const 0 :: integer
112
112
  %t100 = call core.clamp(%t96, %t99, %t98) :: integer
113
- %t101 = Gather %t93, %t100 :: integer
113
+ %t101 = gather %t93, %t100 :: integer
114
114
  yield %t101
115
115
  end_loop
116
116
  end_loop
@@ -119,18 +119,18 @@
119
119
  %t102 = load_input "rows" :: array
120
120
  loop rows id=L11 in %t102 as el=%rows_el_103, idx=%rows_i_104
121
121
  loop col id=L12 in %rows_el_103 as el=%col_el_105, idx=%col_i_106
122
- %t107 = Length %t102 :: integer
122
+ %t107 = length %t102 :: integer
123
123
  %t108 = call core.mod(%rows_i_104, %t107) :: integer
124
124
  %t109 = call core.add(%t108, %t107) :: integer
125
125
  %t110 = call core.mod(%t109, %t107) :: integer
126
- %t111 = Gather %t102, %t110 :: any
127
- %t112 = Length %t111 :: integer
126
+ %t111 = gather %t102, %t110 :: any
127
+ %t112 = length %t111 :: integer
128
128
  %t113 = const -1 :: integer
129
129
  %t114 = call core.sub(%col_i_106, %t113) :: integer
130
130
  %t115 = call core.mod(%t114, %t112) :: integer
131
131
  %t116 = call core.add(%t115, %t112) :: integer
132
132
  %t117 = call core.mod(%t116, %t112) :: integer
133
- %t118 = Gather %t111, %t117 :: integer
133
+ %t118 = gather %t111, %t117 :: integer
134
134
  yield %t118
135
135
  end_loop
136
136
  end_loop
@@ -139,7 +139,7 @@
139
139
  %t119 = load_input "rows" :: array
140
140
  loop rows id=L13 in %t119 as el=%rows_el_120, idx=%rows_i_121
141
141
  loop col id=L14 in %rows_el_120 as el=%col_el_122, idx=%col_i_123
142
- %t124 = Length %t119 :: integer
142
+ %t124 = length %t119 :: integer
143
143
  %t125 = const 1 :: integer
144
144
  %t126 = call core.sub(%rows_i_121, %t125) :: integer
145
145
  %t127 = const 0 :: integer
@@ -150,12 +150,12 @@
150
150
  %t132 = call core.sub(%t124, %t131) :: integer
151
151
  %t133 = const 0 :: integer
152
152
  %t134 = call core.clamp(%t126, %t133, %t132) :: integer
153
- %t135 = Gather %t119, %t134 :: any
154
- %t136 = Length %t135 :: integer
153
+ %t135 = gather %t119, %t134 :: any
154
+ %t136 = length %t135 :: integer
155
155
  %t137 = call core.mod(%col_i_123, %t136) :: integer
156
156
  %t138 = call core.add(%t137, %t136) :: integer
157
157
  %t139 = call core.mod(%t138, %t136) :: integer
158
- %t140 = Gather %t135, %t139 :: integer
158
+ %t140 = gather %t135, %t139 :: integer
159
159
  %t141 = const 0 :: integer
160
160
  %t142 = select %t130, %t140, %t141 :: integer
161
161
  yield %t142
@@ -166,19 +166,19 @@
166
166
  %t143 = load_input "rows" :: array
167
167
  loop rows id=L15 in %t143 as el=%rows_el_144, idx=%rows_i_145
168
168
  loop col id=L16 in %rows_el_144 as el=%col_el_146, idx=%col_i_147
169
- %t148 = Length %t143 :: integer
169
+ %t148 = length %t143 :: integer
170
170
  %t149 = const 1 :: integer
171
171
  %t150 = call core.sub(%rows_i_145, %t149) :: integer
172
172
  %t151 = const 1 :: integer
173
173
  %t152 = call core.sub(%t148, %t151) :: integer
174
174
  %t153 = const 0 :: integer
175
175
  %t154 = call core.clamp(%t150, %t153, %t152) :: integer
176
- %t155 = Gather %t143, %t154 :: any
177
- %t156 = Length %t155 :: integer
176
+ %t155 = gather %t143, %t154 :: any
177
+ %t156 = length %t155 :: integer
178
178
  %t157 = call core.mod(%col_i_147, %t156) :: integer
179
179
  %t158 = call core.add(%t157, %t156) :: integer
180
180
  %t159 = call core.mod(%t158, %t156) :: integer
181
- %t160 = Gather %t155, %t159 :: integer
181
+ %t160 = gather %t155, %t159 :: integer
182
182
  yield %t160
183
183
  end_loop
184
184
  end_loop
@@ -187,18 +187,18 @@
187
187
  %t161 = load_input "rows" :: array
188
188
  loop rows id=L17 in %t161 as el=%rows_el_162, idx=%rows_i_163
189
189
  loop col id=L18 in %rows_el_162 as el=%col_el_164, idx=%col_i_165
190
- %t166 = Length %t161 :: integer
190
+ %t166 = length %t161 :: integer
191
191
  %t167 = const 1 :: integer
192
192
  %t168 = call core.sub(%rows_i_163, %t167) :: integer
193
193
  %t169 = call core.mod(%t168, %t166) :: integer
194
194
  %t170 = call core.add(%t169, %t166) :: integer
195
195
  %t171 = call core.mod(%t170, %t166) :: integer
196
- %t172 = Gather %t161, %t171 :: any
197
- %t173 = Length %t172 :: integer
196
+ %t172 = gather %t161, %t171 :: any
197
+ %t173 = length %t172 :: integer
198
198
  %t174 = call core.mod(%col_i_165, %t173) :: integer
199
199
  %t175 = call core.add(%t174, %t173) :: integer
200
200
  %t176 = call core.mod(%t175, %t173) :: integer
201
- %t177 = Gather %t172, %t176 :: integer
201
+ %t177 = gather %t172, %t176 :: integer
202
202
  yield %t177
203
203
  end_loop
204
204
  end_loop
@@ -207,7 +207,7 @@
207
207
  %t178 = load_input "rows" :: array
208
208
  loop rows id=L19 in %t178 as el=%rows_el_179, idx=%rows_i_180
209
209
  loop col id=L20 in %rows_el_179 as el=%col_el_181, idx=%col_i_182
210
- %t183 = Length %t178 :: integer
210
+ %t183 = length %t178 :: integer
211
211
  %t184 = const -1 :: integer
212
212
  %t185 = call core.sub(%rows_i_180, %t184) :: integer
213
213
  %t186 = const 0 :: integer
@@ -218,12 +218,12 @@
218
218
  %t191 = call core.sub(%t183, %t190) :: integer
219
219
  %t192 = const 0 :: integer
220
220
  %t193 = call core.clamp(%t185, %t192, %t191) :: integer
221
- %t194 = Gather %t178, %t193 :: any
222
- %t195 = Length %t194 :: integer
221
+ %t194 = gather %t178, %t193 :: any
222
+ %t195 = length %t194 :: integer
223
223
  %t196 = call core.mod(%col_i_182, %t195) :: integer
224
224
  %t197 = call core.add(%t196, %t195) :: integer
225
225
  %t198 = call core.mod(%t197, %t195) :: integer
226
- %t199 = Gather %t194, %t198 :: integer
226
+ %t199 = gather %t194, %t198 :: integer
227
227
  %t200 = const 0 :: integer
228
228
  %t201 = select %t189, %t199, %t200 :: integer
229
229
  yield %t201
@@ -234,19 +234,19 @@
234
234
  %t202 = load_input "rows" :: array
235
235
  loop rows id=L21 in %t202 as el=%rows_el_203, idx=%rows_i_204
236
236
  loop col id=L22 in %rows_el_203 as el=%col_el_205, idx=%col_i_206
237
- %t207 = Length %t202 :: integer
237
+ %t207 = length %t202 :: integer
238
238
  %t208 = const -1 :: integer
239
239
  %t209 = call core.sub(%rows_i_204, %t208) :: integer
240
240
  %t210 = const 1 :: integer
241
241
  %t211 = call core.sub(%t207, %t210) :: integer
242
242
  %t212 = const 0 :: integer
243
243
  %t213 = call core.clamp(%t209, %t212, %t211) :: integer
244
- %t214 = Gather %t202, %t213 :: any
245
- %t215 = Length %t214 :: integer
244
+ %t214 = gather %t202, %t213 :: any
245
+ %t215 = length %t214 :: integer
246
246
  %t216 = call core.mod(%col_i_206, %t215) :: integer
247
247
  %t217 = call core.add(%t216, %t215) :: integer
248
248
  %t218 = call core.mod(%t217, %t215) :: integer
249
- %t219 = Gather %t214, %t218 :: integer
249
+ %t219 = gather %t214, %t218 :: integer
250
250
  yield %t219
251
251
  end_loop
252
252
  end_loop
@@ -255,18 +255,18 @@
255
255
  %t220 = load_input "rows" :: array
256
256
  loop rows id=L23 in %t220 as el=%rows_el_221, idx=%rows_i_222
257
257
  loop col id=L24 in %rows_el_221 as el=%col_el_223, idx=%col_i_224
258
- %t225 = Length %t220 :: integer
258
+ %t225 = length %t220 :: integer
259
259
  %t226 = const -1 :: integer
260
260
  %t227 = call core.sub(%rows_i_222, %t226) :: integer
261
261
  %t228 = call core.mod(%t227, %t225) :: integer
262
262
  %t229 = call core.add(%t228, %t225) :: integer
263
263
  %t230 = call core.mod(%t229, %t225) :: integer
264
- %t231 = Gather %t220, %t230 :: any
265
- %t232 = Length %t231 :: integer
264
+ %t231 = gather %t220, %t230 :: any
265
+ %t232 = length %t231 :: integer
266
266
  %t233 = call core.mod(%col_i_224, %t232) :: integer
267
267
  %t234 = call core.add(%t233, %t232) :: integer
268
268
  %t235 = call core.mod(%t234, %t232) :: integer
269
- %t236 = Gather %t231, %t235 :: integer
269
+ %t236 = gather %t231, %t235 :: integer
270
270
  yield %t236
271
271
  end_loop
272
272
  end_loop
@@ -3,12 +3,12 @@
3
3
  %t1 = load_input "rows" :: array
4
4
  loop rows id=L1 in %t1 as el=%rows_el_2, idx=%rows_i_3
5
5
  loop col id=L2 in %rows_el_2 as el=%col_el_4, idx=%col_i_5
6
- %t6 = Length %t1 :: integer
6
+ %t6 = length %t1 :: integer
7
7
  %t7 = call core.mod(%rows_i_3, %t6) :: integer
8
8
  %t8 = call core.add(%t7, %t6) :: integer
9
9
  %t9 = call core.mod(%t8, %t6) :: integer
10
- %t10 = Gather %t1, %t9 :: any
11
- %t11 = Length %t10 :: integer
10
+ %t10 = gather %t1, %t9 :: any
11
+ %t11 = length %t10 :: integer
12
12
  %t12 = const 1 :: integer
13
13
  %t13 = call core.sub(%col_i_5, %t12) :: integer
14
14
  %t14 = const 0 :: integer
@@ -19,7 +19,7 @@
19
19
  %t19 = call core.sub(%t11, %t18) :: integer
20
20
  %t20 = const 0 :: integer
21
21
  %t21 = call core.clamp(%t13, %t20, %t19) :: integer
22
- %t22 = Gather %t10, %t21 :: integer
22
+ %t22 = gather %t10, %t21 :: integer
23
23
  %t23 = const 0 :: integer
24
24
  %t24 = select %t17, %t22, %t23 :: integer
25
25
  yield %t24
@@ -30,19 +30,19 @@
30
30
  %t25 = load_input "rows" :: array
31
31
  loop rows id=L3 in %t25 as el=%rows_el_26, idx=%rows_i_27
32
32
  loop col id=L4 in %rows_el_26 as el=%col_el_28, idx=%col_i_29
33
- %t30 = Length %t25 :: integer
33
+ %t30 = length %t25 :: integer
34
34
  %t31 = call core.mod(%rows_i_27, %t30) :: integer
35
35
  %t32 = call core.add(%t31, %t30) :: integer
36
36
  %t33 = call core.mod(%t32, %t30) :: integer
37
- %t34 = Gather %t25, %t33 :: any
38
- %t35 = Length %t34 :: integer
37
+ %t34 = gather %t25, %t33 :: any
38
+ %t35 = length %t34 :: integer
39
39
  %t36 = const 1 :: integer
40
40
  %t37 = call core.sub(%col_i_29, %t36) :: integer
41
41
  %t38 = const 1 :: integer
42
42
  %t39 = call core.sub(%t35, %t38) :: integer
43
43
  %t40 = const 0 :: integer
44
44
  %t41 = call core.clamp(%t37, %t40, %t39) :: integer
45
- %t42 = Gather %t34, %t41 :: integer
45
+ %t42 = gather %t34, %t41 :: integer
46
46
  yield %t42
47
47
  end_loop
48
48
  end_loop
@@ -51,18 +51,18 @@
51
51
  %t43 = load_input "rows" :: array
52
52
  loop rows id=L5 in %t43 as el=%rows_el_44, idx=%rows_i_45
53
53
  loop col id=L6 in %rows_el_44 as el=%col_el_46, idx=%col_i_47
54
- %t48 = Length %t43 :: integer
54
+ %t48 = length %t43 :: integer
55
55
  %t49 = call core.mod(%rows_i_45, %t48) :: integer
56
56
  %t50 = call core.add(%t49, %t48) :: integer
57
57
  %t51 = call core.mod(%t50, %t48) :: integer
58
- %t52 = Gather %t43, %t51 :: any
59
- %t53 = Length %t52 :: integer
58
+ %t52 = gather %t43, %t51 :: any
59
+ %t53 = length %t52 :: integer
60
60
  %t54 = const 1 :: integer
61
61
  %t55 = call core.sub(%col_i_47, %t54) :: integer
62
62
  %t56 = call core.mod(%t55, %t53) :: integer
63
63
  %t57 = call core.add(%t56, %t53) :: integer
64
64
  %t58 = call core.mod(%t57, %t53) :: integer
65
- %t59 = Gather %t52, %t58 :: integer
65
+ %t59 = gather %t52, %t58 :: integer
66
66
  yield %t59
67
67
  end_loop
68
68
  end_loop
@@ -71,12 +71,12 @@
71
71
  %t60 = load_input "rows" :: array
72
72
  loop rows id=L7 in %t60 as el=%rows_el_61, idx=%rows_i_62
73
73
  loop col id=L8 in %rows_el_61 as el=%col_el_63, idx=%col_i_64
74
- %t65 = Length %t60 :: integer
74
+ %t65 = length %t60 :: integer
75
75
  %t66 = call core.mod(%rows_i_62, %t65) :: integer
76
76
  %t67 = call core.add(%t66, %t65) :: integer
77
77
  %t68 = call core.mod(%t67, %t65) :: integer
78
- %t69 = Gather %t60, %t68 :: any
79
- %t70 = Length %t69 :: integer
78
+ %t69 = gather %t60, %t68 :: any
79
+ %t70 = length %t69 :: integer
80
80
  %t71 = const -1 :: integer
81
81
  %t72 = call core.sub(%col_i_64, %t71) :: integer
82
82
  %t73 = const 0 :: integer
@@ -87,7 +87,7 @@
87
87
  %t78 = call core.sub(%t70, %t77) :: integer
88
88
  %t79 = const 0 :: integer
89
89
  %t80 = call core.clamp(%t72, %t79, %t78) :: integer
90
- %t81 = Gather %t69, %t80 :: integer
90
+ %t81 = gather %t69, %t80 :: integer
91
91
  %t82 = const 0 :: integer
92
92
  %t83 = select %t76, %t81, %t82 :: integer
93
93
  yield %t83
@@ -98,19 +98,19 @@
98
98
  %t84 = load_input "rows" :: array
99
99
  loop rows id=L9 in %t84 as el=%rows_el_85, idx=%rows_i_86
100
100
  loop col id=L10 in %rows_el_85 as el=%col_el_87, idx=%col_i_88
101
- %t89 = Length %t84 :: integer
101
+ %t89 = length %t84 :: integer
102
102
  %t90 = call core.mod(%rows_i_86, %t89) :: integer
103
103
  %t91 = call core.add(%t90, %t89) :: integer
104
104
  %t92 = call core.mod(%t91, %t89) :: integer
105
- %t93 = Gather %t84, %t92 :: any
106
- %t94 = Length %t93 :: integer
105
+ %t93 = gather %t84, %t92 :: any
106
+ %t94 = length %t93 :: integer
107
107
  %t95 = const -1 :: integer
108
108
  %t96 = call core.sub(%col_i_88, %t95) :: integer
109
109
  %t97 = const 1 :: integer
110
110
  %t98 = call core.sub(%t94, %t97) :: integer
111
111
  %t99 = const 0 :: integer
112
112
  %t100 = call core.clamp(%t96, %t99, %t98) :: integer
113
- %t101 = Gather %t93, %t100 :: integer
113
+ %t101 = gather %t93, %t100 :: integer
114
114
  yield %t101
115
115
  end_loop
116
116
  end_loop
@@ -119,18 +119,18 @@
119
119
  %t102 = load_input "rows" :: array
120
120
  loop rows id=L11 in %t102 as el=%rows_el_103, idx=%rows_i_104
121
121
  loop col id=L12 in %rows_el_103 as el=%col_el_105, idx=%col_i_106
122
- %t107 = Length %t102 :: integer
122
+ %t107 = length %t102 :: integer
123
123
  %t108 = call core.mod(%rows_i_104, %t107) :: integer
124
124
  %t109 = call core.add(%t108, %t107) :: integer
125
125
  %t110 = call core.mod(%t109, %t107) :: integer
126
- %t111 = Gather %t102, %t110 :: any
127
- %t112 = Length %t111 :: integer
126
+ %t111 = gather %t102, %t110 :: any
127
+ %t112 = length %t111 :: integer
128
128
  %t113 = const -1 :: integer
129
129
  %t114 = call core.sub(%col_i_106, %t113) :: integer
130
130
  %t115 = call core.mod(%t114, %t112) :: integer
131
131
  %t116 = call core.add(%t115, %t112) :: integer
132
132
  %t117 = call core.mod(%t116, %t112) :: integer
133
- %t118 = Gather %t111, %t117 :: integer
133
+ %t118 = gather %t111, %t117 :: integer
134
134
  yield %t118
135
135
  end_loop
136
136
  end_loop
@@ -139,7 +139,7 @@
139
139
  %t119 = load_input "rows" :: array
140
140
  loop rows id=L13 in %t119 as el=%rows_el_120, idx=%rows_i_121
141
141
  loop col id=L14 in %rows_el_120 as el=%col_el_122, idx=%col_i_123
142
- %t124 = Length %t119 :: integer
142
+ %t124 = length %t119 :: integer
143
143
  %t125 = const 1 :: integer
144
144
  %t126 = call core.sub(%rows_i_121, %t125) :: integer
145
145
  %t127 = const 0 :: integer
@@ -150,12 +150,12 @@
150
150
  %t132 = call core.sub(%t124, %t131) :: integer
151
151
  %t133 = const 0 :: integer
152
152
  %t134 = call core.clamp(%t126, %t133, %t132) :: integer
153
- %t135 = Gather %t119, %t134 :: any
154
- %t136 = Length %t135 :: integer
153
+ %t135 = gather %t119, %t134 :: any
154
+ %t136 = length %t135 :: integer
155
155
  %t137 = call core.mod(%col_i_123, %t136) :: integer
156
156
  %t138 = call core.add(%t137, %t136) :: integer
157
157
  %t139 = call core.mod(%t138, %t136) :: integer
158
- %t140 = Gather %t135, %t139 :: integer
158
+ %t140 = gather %t135, %t139 :: integer
159
159
  %t141 = const 0 :: integer
160
160
  %t142 = select %t130, %t140, %t141 :: integer
161
161
  yield %t142
@@ -166,19 +166,19 @@
166
166
  %t143 = load_input "rows" :: array
167
167
  loop rows id=L15 in %t143 as el=%rows_el_144, idx=%rows_i_145
168
168
  loop col id=L16 in %rows_el_144 as el=%col_el_146, idx=%col_i_147
169
- %t148 = Length %t143 :: integer
169
+ %t148 = length %t143 :: integer
170
170
  %t149 = const 1 :: integer
171
171
  %t150 = call core.sub(%rows_i_145, %t149) :: integer
172
172
  %t151 = const 1 :: integer
173
173
  %t152 = call core.sub(%t148, %t151) :: integer
174
174
  %t153 = const 0 :: integer
175
175
  %t154 = call core.clamp(%t150, %t153, %t152) :: integer
176
- %t155 = Gather %t143, %t154 :: any
177
- %t156 = Length %t155 :: integer
176
+ %t155 = gather %t143, %t154 :: any
177
+ %t156 = length %t155 :: integer
178
178
  %t157 = call core.mod(%col_i_147, %t156) :: integer
179
179
  %t158 = call core.add(%t157, %t156) :: integer
180
180
  %t159 = call core.mod(%t158, %t156) :: integer
181
- %t160 = Gather %t155, %t159 :: integer
181
+ %t160 = gather %t155, %t159 :: integer
182
182
  yield %t160
183
183
  end_loop
184
184
  end_loop
@@ -187,18 +187,18 @@
187
187
  %t161 = load_input "rows" :: array
188
188
  loop rows id=L17 in %t161 as el=%rows_el_162, idx=%rows_i_163
189
189
  loop col id=L18 in %rows_el_162 as el=%col_el_164, idx=%col_i_165
190
- %t166 = Length %t161 :: integer
190
+ %t166 = length %t161 :: integer
191
191
  %t167 = const 1 :: integer
192
192
  %t168 = call core.sub(%rows_i_163, %t167) :: integer
193
193
  %t169 = call core.mod(%t168, %t166) :: integer
194
194
  %t170 = call core.add(%t169, %t166) :: integer
195
195
  %t171 = call core.mod(%t170, %t166) :: integer
196
- %t172 = Gather %t161, %t171 :: any
197
- %t173 = Length %t172 :: integer
196
+ %t172 = gather %t161, %t171 :: any
197
+ %t173 = length %t172 :: integer
198
198
  %t174 = call core.mod(%col_i_165, %t173) :: integer
199
199
  %t175 = call core.add(%t174, %t173) :: integer
200
200
  %t176 = call core.mod(%t175, %t173) :: integer
201
- %t177 = Gather %t172, %t176 :: integer
201
+ %t177 = gather %t172, %t176 :: integer
202
202
  yield %t177
203
203
  end_loop
204
204
  end_loop
@@ -207,7 +207,7 @@
207
207
  %t178 = load_input "rows" :: array
208
208
  loop rows id=L19 in %t178 as el=%rows_el_179, idx=%rows_i_180
209
209
  loop col id=L20 in %rows_el_179 as el=%col_el_181, idx=%col_i_182
210
- %t183 = Length %t178 :: integer
210
+ %t183 = length %t178 :: integer
211
211
  %t184 = const -1 :: integer
212
212
  %t185 = call core.sub(%rows_i_180, %t184) :: integer
213
213
  %t186 = const 0 :: integer
@@ -218,12 +218,12 @@
218
218
  %t191 = call core.sub(%t183, %t190) :: integer
219
219
  %t192 = const 0 :: integer
220
220
  %t193 = call core.clamp(%t185, %t192, %t191) :: integer
221
- %t194 = Gather %t178, %t193 :: any
222
- %t195 = Length %t194 :: integer
221
+ %t194 = gather %t178, %t193 :: any
222
+ %t195 = length %t194 :: integer
223
223
  %t196 = call core.mod(%col_i_182, %t195) :: integer
224
224
  %t197 = call core.add(%t196, %t195) :: integer
225
225
  %t198 = call core.mod(%t197, %t195) :: integer
226
- %t199 = Gather %t194, %t198 :: integer
226
+ %t199 = gather %t194, %t198 :: integer
227
227
  %t200 = const 0 :: integer
228
228
  %t201 = select %t189, %t199, %t200 :: integer
229
229
  yield %t201
@@ -234,19 +234,19 @@
234
234
  %t202 = load_input "rows" :: array
235
235
  loop rows id=L21 in %t202 as el=%rows_el_203, idx=%rows_i_204
236
236
  loop col id=L22 in %rows_el_203 as el=%col_el_205, idx=%col_i_206
237
- %t207 = Length %t202 :: integer
237
+ %t207 = length %t202 :: integer
238
238
  %t208 = const -1 :: integer
239
239
  %t209 = call core.sub(%rows_i_204, %t208) :: integer
240
240
  %t210 = const 1 :: integer
241
241
  %t211 = call core.sub(%t207, %t210) :: integer
242
242
  %t212 = const 0 :: integer
243
243
  %t213 = call core.clamp(%t209, %t212, %t211) :: integer
244
- %t214 = Gather %t202, %t213 :: any
245
- %t215 = Length %t214 :: integer
244
+ %t214 = gather %t202, %t213 :: any
245
+ %t215 = length %t214 :: integer
246
246
  %t216 = call core.mod(%col_i_206, %t215) :: integer
247
247
  %t217 = call core.add(%t216, %t215) :: integer
248
248
  %t218 = call core.mod(%t217, %t215) :: integer
249
- %t219 = Gather %t214, %t218 :: integer
249
+ %t219 = gather %t214, %t218 :: integer
250
250
  yield %t219
251
251
  end_loop
252
252
  end_loop
@@ -255,18 +255,18 @@
255
255
  %t220 = load_input "rows" :: array
256
256
  loop rows id=L23 in %t220 as el=%rows_el_221, idx=%rows_i_222
257
257
  loop col id=L24 in %rows_el_221 as el=%col_el_223, idx=%col_i_224
258
- %t225 = Length %t220 :: integer
258
+ %t225 = length %t220 :: integer
259
259
  %t226 = const -1 :: integer
260
260
  %t227 = call core.sub(%rows_i_222, %t226) :: integer
261
261
  %t228 = call core.mod(%t227, %t225) :: integer
262
262
  %t229 = call core.add(%t228, %t225) :: integer
263
263
  %t230 = call core.mod(%t229, %t225) :: integer
264
- %t231 = Gather %t220, %t230 :: any
265
- %t232 = Length %t231 :: integer
264
+ %t231 = gather %t220, %t230 :: any
265
+ %t232 = length %t231 :: integer
266
266
  %t233 = call core.mod(%col_i_224, %t232) :: integer
267
267
  %t234 = call core.add(%t233, %t232) :: integer
268
268
  %t235 = call core.mod(%t234, %t232) :: integer
269
- %t236 = Gather %t231, %t235 :: integer
269
+ %t236 = gather %t231, %t235 :: integer
270
270
  yield %t236
271
271
  end_loop
272
272
  end_loop