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
@@ -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,83 +319,83 @@
319
319
  %t253 = load_input "rows" :: array
320
320
  loop rows id=L23 in %t253 as el=%rows_el_254, idx=%rows_i_255
321
321
  loop col id=L24 in %rows_el_254 as el=%col_el_256, idx=%col_i_257
322
- %t530 = Length %t253 :: integer
323
- %t531 = const -1 :: integer
324
- %t532 = call core.sub(%rows_i_255, %t531) :: integer
325
- %t533 = const 0 :: integer
326
- %t534 = call core.gte(%t532, %t533) :: boolean
327
- %t535 = call core.lt(%t532, %t530) :: boolean
328
- %t536 = call core.and(%t534, %t535) :: boolean
329
- %t537 = const 1 :: integer
330
- %t538 = call core.sub(%t530, %t537) :: integer
331
- %t540 = call core.clamp(%t532, %t533, %t538) :: integer
332
- %t541 = Gather %t253, %t540 :: any
333
- %t542 = Length %t541 :: integer
334
- %t543 = call core.mod(%col_i_257, %t542) :: integer
335
- %t544 = call core.add(%t543, %t542) :: integer
336
- %t545 = call core.mod(%t544, %t542) :: integer
337
- %t546 = Gather %t541, %t545 :: integer
338
- %t548 = select %t536, %t546, %t533 :: integer
339
- %t552 = call core.sub(%rows_i_255, %t537) :: integer
340
- %t554 = call core.gte(%t552, %t533) :: boolean
341
- %t555 = call core.lt(%t552, %t530) :: boolean
342
- %t556 = call core.and(%t554, %t555) :: boolean
343
- %t560 = call core.clamp(%t552, %t533, %t538) :: integer
344
- %t561 = Gather %t253, %t560 :: any
345
- %t562 = Length %t561 :: integer
346
- %t563 = call core.mod(%col_i_257, %t562) :: integer
347
- %t564 = call core.add(%t563, %t562) :: integer
348
- %t565 = call core.mod(%t564, %t562) :: integer
349
- %t566 = Gather %t561, %t565 :: integer
350
- %t568 = select %t556, %t566, %t533 :: integer
351
- %t571 = call core.mod(%rows_i_255, %t530) :: integer
352
- %t572 = call core.add(%t571, %t530) :: integer
353
- %t573 = call core.mod(%t572, %t530) :: integer
354
- %t574 = Gather %t253, %t573 :: any
355
- %t575 = Length %t574 :: integer
356
- %t577 = call core.sub(%col_i_257, %t531) :: integer
357
- %t579 = call core.gte(%t577, %t533) :: boolean
358
- %t580 = call core.lt(%t577, %t575) :: boolean
359
- %t581 = call core.and(%t579, %t580) :: boolean
360
- %t583 = call core.sub(%t575, %t537) :: integer
361
- %t585 = call core.clamp(%t577, %t533, %t583) :: integer
362
- %t586 = Gather %t574, %t585 :: integer
363
- %t588 = select %t581, %t586, %t533 :: integer
364
- %t597 = call core.sub(%col_i_257, %t537) :: integer
365
- %t599 = call core.gte(%t597, %t533) :: boolean
366
- %t600 = call core.lt(%t597, %t575) :: boolean
367
- %t601 = call core.and(%t599, %t600) :: boolean
368
- %t605 = call core.clamp(%t597, %t533, %t583) :: integer
369
- %t606 = Gather %t574, %t605 :: integer
370
- %t608 = select %t601, %t606, %t533 :: integer
371
- %t627 = call core.lt(%t577, %t542) :: boolean
372
- %t628 = call core.and(%t579, %t627) :: boolean
373
- %t629 = call core.and(%t536, %t628) :: boolean
374
- %t631 = call core.sub(%t542, %t537) :: integer
375
- %t633 = call core.clamp(%t577, %t533, %t631) :: integer
376
- %t634 = Gather %t541, %t633 :: integer
377
- %t636 = select %t629, %t634, %t533 :: integer
378
- %t655 = call core.lt(%t597, %t542) :: boolean
379
- %t656 = call core.and(%t599, %t655) :: boolean
380
- %t657 = call core.and(%t536, %t656) :: boolean
381
- %t661 = call core.clamp(%t597, %t533, %t631) :: integer
382
- %t662 = Gather %t541, %t661 :: integer
383
- %t664 = select %t657, %t662, %t533 :: integer
384
- %t683 = call core.lt(%t577, %t562) :: boolean
385
- %t684 = call core.and(%t579, %t683) :: boolean
386
- %t685 = call core.and(%t556, %t684) :: boolean
387
- %t687 = call core.sub(%t562, %t537) :: integer
388
- %t689 = call core.clamp(%t577, %t533, %t687) :: integer
389
- %t690 = Gather %t561, %t689 :: integer
390
- %t692 = select %t685, %t690, %t533 :: integer
391
- %t711 = call core.lt(%t597, %t562) :: boolean
392
- %t712 = call core.and(%t599, %t711) :: boolean
393
- %t713 = call core.and(%t556, %t712) :: boolean
394
- %t717 = call core.clamp(%t597, %t533, %t687) :: integer
395
- %t718 = Gather %t561, %t717 :: integer
396
- %t720 = select %t713, %t718, %t533 :: integer
397
- %t496 = make_tuple(%t548, %t568, %t588, %t608, %t636, %t664, %t692, %t720) :: tuple<integer>
398
- %t497 = Fold %t496 fn="agg.sum" ::
322
+ %t499 = length %t253 :: integer
323
+ %t500 = const -1 :: integer
324
+ %t501 = call core.sub(%rows_i_255, %t500) :: integer
325
+ %t502 = const 0 :: integer
326
+ %t503 = call core.gte(%t501, %t502) :: boolean
327
+ %t504 = call core.lt(%t501, %t499) :: boolean
328
+ %t505 = call core.and(%t503, %t504) :: boolean
329
+ %t506 = const 1 :: integer
330
+ %t507 = call core.sub(%t499, %t506) :: integer
331
+ %t509 = call core.clamp(%t501, %t502, %t507) :: integer
332
+ %t510 = gather %t253, %t509 :: any
333
+ %t511 = length %t510 :: integer
334
+ %t512 = call core.mod(%col_i_257, %t511) :: integer
335
+ %t513 = call core.add(%t512, %t511) :: integer
336
+ %t514 = call core.mod(%t513, %t511) :: integer
337
+ %t515 = gather %t510, %t514 :: integer
338
+ %t517 = select %t505, %t515, %t502 :: integer
339
+ %t521 = call core.sub(%rows_i_255, %t506) :: integer
340
+ %t523 = call core.gte(%t521, %t502) :: boolean
341
+ %t524 = call core.lt(%t521, %t499) :: boolean
342
+ %t525 = call core.and(%t523, %t524) :: boolean
343
+ %t529 = call core.clamp(%t521, %t502, %t507) :: integer
344
+ %t530 = gather %t253, %t529 :: any
345
+ %t531 = length %t530 :: integer
346
+ %t532 = call core.mod(%col_i_257, %t531) :: integer
347
+ %t533 = call core.add(%t532, %t531) :: integer
348
+ %t534 = call core.mod(%t533, %t531) :: integer
349
+ %t535 = gather %t530, %t534 :: integer
350
+ %t537 = select %t525, %t535, %t502 :: integer
351
+ %t540 = call core.mod(%rows_i_255, %t499) :: integer
352
+ %t541 = call core.add(%t540, %t499) :: integer
353
+ %t542 = call core.mod(%t541, %t499) :: integer
354
+ %t543 = gather %t253, %t542 :: any
355
+ %t544 = length %t543 :: integer
356
+ %t546 = call core.sub(%col_i_257, %t500) :: integer
357
+ %t548 = call core.gte(%t546, %t502) :: boolean
358
+ %t549 = call core.lt(%t546, %t544) :: boolean
359
+ %t550 = call core.and(%t548, %t549) :: boolean
360
+ %t552 = call core.sub(%t544, %t506) :: integer
361
+ %t554 = call core.clamp(%t546, %t502, %t552) :: integer
362
+ %t555 = gather %t543, %t554 :: integer
363
+ %t557 = select %t550, %t555, %t502 :: integer
364
+ %t566 = call core.sub(%col_i_257, %t506) :: integer
365
+ %t568 = call core.gte(%t566, %t502) :: boolean
366
+ %t569 = call core.lt(%t566, %t544) :: boolean
367
+ %t570 = call core.and(%t568, %t569) :: boolean
368
+ %t574 = call core.clamp(%t566, %t502, %t552) :: integer
369
+ %t575 = gather %t543, %t574 :: integer
370
+ %t577 = select %t570, %t575, %t502 :: integer
371
+ %t596 = call core.lt(%t546, %t511) :: boolean
372
+ %t597 = call core.and(%t548, %t596) :: boolean
373
+ %t598 = call core.and(%t505, %t597) :: boolean
374
+ %t600 = call core.sub(%t511, %t506) :: integer
375
+ %t602 = call core.clamp(%t546, %t502, %t600) :: integer
376
+ %t603 = gather %t510, %t602 :: integer
377
+ %t605 = select %t598, %t603, %t502 :: integer
378
+ %t624 = call core.lt(%t566, %t511) :: boolean
379
+ %t625 = call core.and(%t568, %t624) :: boolean
380
+ %t626 = call core.and(%t505, %t625) :: boolean
381
+ %t630 = call core.clamp(%t566, %t502, %t600) :: integer
382
+ %t631 = gather %t510, %t630 :: integer
383
+ %t633 = select %t626, %t631, %t502 :: integer
384
+ %t652 = call core.lt(%t546, %t531) :: boolean
385
+ %t653 = call core.and(%t548, %t652) :: boolean
386
+ %t654 = call core.and(%t525, %t653) :: boolean
387
+ %t656 = call core.sub(%t531, %t506) :: integer
388
+ %t658 = call core.clamp(%t546, %t502, %t656) :: integer
389
+ %t659 = gather %t530, %t658 :: integer
390
+ %t661 = select %t654, %t659, %t502 :: integer
391
+ %t680 = call core.lt(%t566, %t531) :: boolean
392
+ %t681 = call core.and(%t568, %t680) :: boolean
393
+ %t682 = call core.and(%t525, %t681) :: boolean
394
+ %t686 = call core.clamp(%t566, %t502, %t656) :: integer
395
+ %t687 = gather %t530, %t686 :: integer
396
+ %t689 = select %t682, %t687, %t502 :: integer
397
+ %t496 = make_tuple(%t517, %t537, %t557, %t577, %t605, %t633, %t661, %t689) :: tuple<integer>
398
+ %t497 = fold %t496 fn="agg.sum" ::
399
399
  %t259 = const 3 :: integer
400
400
  %t260 = call core.eq(%t497, %t259) :: boolean
401
401
  yield %t260
@@ -406,85 +406,85 @@
406
406
  %t261 = load_input "rows" :: array
407
407
  loop rows id=L25 in %t261 as el=%rows_el_262, idx=%rows_i_263
408
408
  loop col id=L26 in %rows_el_262 as el=%col_el_264, idx=%col_i_265
409
- %t722 = Length %t261 :: integer
410
- %t723 = const -1 :: integer
411
- %t724 = call core.sub(%rows_i_263, %t723) :: integer
412
- %t725 = const 0 :: integer
413
- %t726 = call core.gte(%t724, %t725) :: boolean
414
- %t727 = call core.lt(%t724, %t722) :: boolean
409
+ %t702 = length %t261 :: integer
410
+ %t703 = const -1 :: integer
411
+ %t704 = call core.sub(%rows_i_263, %t703) :: integer
412
+ %t705 = const 0 :: integer
413
+ %t706 = call core.gte(%t704, %t705) :: boolean
414
+ %t707 = call core.lt(%t704, %t702) :: boolean
415
+ %t708 = call core.and(%t706, %t707) :: boolean
416
+ %t709 = const 1 :: integer
417
+ %t710 = call core.sub(%t702, %t709) :: integer
418
+ %t712 = call core.clamp(%t704, %t705, %t710) :: integer
419
+ %t713 = gather %t261, %t712 :: any
420
+ %t714 = length %t713 :: integer
421
+ %t715 = call core.mod(%col_i_265, %t714) :: integer
422
+ %t716 = call core.add(%t715, %t714) :: integer
423
+ %t717 = call core.mod(%t716, %t714) :: integer
424
+ %t718 = gather %t713, %t717 :: integer
425
+ %t720 = select %t708, %t718, %t705 :: integer
426
+ %t724 = call core.sub(%rows_i_263, %t709) :: integer
427
+ %t726 = call core.gte(%t724, %t705) :: boolean
428
+ %t727 = call core.lt(%t724, %t702) :: boolean
415
429
  %t728 = call core.and(%t726, %t727) :: boolean
416
- %t729 = const 1 :: integer
417
- %t730 = call core.sub(%t722, %t729) :: integer
418
- %t732 = call core.clamp(%t724, %t725, %t730) :: integer
419
- %t733 = Gather %t261, %t732 :: any
420
- %t734 = Length %t733 :: integer
430
+ %t732 = call core.clamp(%t724, %t705, %t710) :: integer
431
+ %t733 = gather %t261, %t732 :: any
432
+ %t734 = length %t733 :: integer
421
433
  %t735 = call core.mod(%col_i_265, %t734) :: integer
422
434
  %t736 = call core.add(%t735, %t734) :: integer
423
435
  %t737 = call core.mod(%t736, %t734) :: integer
424
- %t738 = Gather %t733, %t737 :: integer
425
- %t740 = select %t728, %t738, %t725 :: integer
426
- %t744 = call core.sub(%rows_i_263, %t729) :: integer
427
- %t746 = call core.gte(%t744, %t725) :: boolean
428
- %t747 = call core.lt(%t744, %t722) :: boolean
429
- %t748 = call core.and(%t746, %t747) :: boolean
430
- %t752 = call core.clamp(%t744, %t725, %t730) :: integer
431
- %t753 = Gather %t261, %t752 :: any
432
- %t754 = Length %t753 :: integer
433
- %t755 = call core.mod(%col_i_265, %t754) :: integer
434
- %t756 = call core.add(%t755, %t754) :: integer
435
- %t757 = call core.mod(%t756, %t754) :: integer
436
- %t758 = Gather %t753, %t757 :: integer
437
- %t760 = select %t748, %t758, %t725 :: integer
438
- %t763 = call core.mod(%rows_i_263, %t722) :: integer
439
- %t764 = call core.add(%t763, %t722) :: integer
440
- %t765 = call core.mod(%t764, %t722) :: integer
441
- %t766 = Gather %t261, %t765 :: any
442
- %t767 = Length %t766 :: integer
443
- %t769 = call core.sub(%col_i_265, %t723) :: integer
444
- %t771 = call core.gte(%t769, %t725) :: boolean
445
- %t772 = call core.lt(%t769, %t767) :: boolean
436
+ %t738 = gather %t733, %t737 :: integer
437
+ %t740 = select %t728, %t738, %t705 :: integer
438
+ %t743 = call core.mod(%rows_i_263, %t702) :: integer
439
+ %t744 = call core.add(%t743, %t702) :: integer
440
+ %t745 = call core.mod(%t744, %t702) :: integer
441
+ %t746 = gather %t261, %t745 :: any
442
+ %t747 = length %t746 :: integer
443
+ %t749 = call core.sub(%col_i_265, %t703) :: integer
444
+ %t751 = call core.gte(%t749, %t705) :: boolean
445
+ %t752 = call core.lt(%t749, %t747) :: boolean
446
+ %t753 = call core.and(%t751, %t752) :: boolean
447
+ %t755 = call core.sub(%t747, %t709) :: integer
448
+ %t757 = call core.clamp(%t749, %t705, %t755) :: integer
449
+ %t758 = gather %t746, %t757 :: integer
450
+ %t760 = select %t753, %t758, %t705 :: integer
451
+ %t769 = call core.sub(%col_i_265, %t709) :: integer
452
+ %t771 = call core.gte(%t769, %t705) :: boolean
453
+ %t772 = call core.lt(%t769, %t747) :: boolean
446
454
  %t773 = call core.and(%t771, %t772) :: boolean
447
- %t775 = call core.sub(%t767, %t729) :: integer
448
- %t777 = call core.clamp(%t769, %t725, %t775) :: integer
449
- %t778 = Gather %t766, %t777 :: integer
450
- %t780 = select %t773, %t778, %t725 :: integer
451
- %t789 = call core.sub(%col_i_265, %t729) :: integer
452
- %t791 = call core.gte(%t789, %t725) :: boolean
453
- %t792 = call core.lt(%t789, %t767) :: boolean
454
- %t793 = call core.and(%t791, %t792) :: boolean
455
- %t797 = call core.clamp(%t789, %t725, %t775) :: integer
456
- %t798 = Gather %t766, %t797 :: integer
457
- %t800 = select %t793, %t798, %t725 :: integer
458
- %t819 = call core.lt(%t769, %t734) :: boolean
459
- %t820 = call core.and(%t771, %t819) :: boolean
460
- %t821 = call core.and(%t728, %t820) :: boolean
461
- %t823 = call core.sub(%t734, %t729) :: integer
462
- %t825 = call core.clamp(%t769, %t725, %t823) :: integer
463
- %t826 = Gather %t733, %t825 :: integer
464
- %t828 = select %t821, %t826, %t725 :: integer
465
- %t847 = call core.lt(%t789, %t734) :: boolean
466
- %t848 = call core.and(%t791, %t847) :: boolean
467
- %t849 = call core.and(%t728, %t848) :: boolean
468
- %t853 = call core.clamp(%t789, %t725, %t823) :: integer
469
- %t854 = Gather %t733, %t853 :: integer
470
- %t856 = select %t849, %t854, %t725 :: integer
471
- %t875 = call core.lt(%t769, %t754) :: boolean
472
- %t876 = call core.and(%t771, %t875) :: boolean
473
- %t877 = call core.and(%t748, %t876) :: boolean
474
- %t879 = call core.sub(%t754, %t729) :: integer
475
- %t881 = call core.clamp(%t769, %t725, %t879) :: integer
476
- %t882 = Gather %t753, %t881 :: integer
477
- %t884 = select %t877, %t882, %t725 :: integer
478
- %t903 = call core.lt(%t789, %t754) :: boolean
479
- %t904 = call core.and(%t791, %t903) :: boolean
480
- %t905 = call core.and(%t748, %t904) :: boolean
481
- %t909 = call core.clamp(%t789, %t725, %t879) :: integer
482
- %t910 = Gather %t753, %t909 :: integer
483
- %t912 = select %t905, %t910, %t725 :: integer
484
- %t507 = make_tuple(%t740, %t760, %t780, %t800, %t828, %t856, %t884, %t912) :: tuple<integer>
485
- %t508 = Fold %t507 fn="agg.sum" ::
455
+ %t777 = call core.clamp(%t769, %t705, %t755) :: integer
456
+ %t778 = gather %t746, %t777 :: integer
457
+ %t780 = select %t773, %t778, %t705 :: integer
458
+ %t799 = call core.lt(%t749, %t714) :: boolean
459
+ %t800 = call core.and(%t751, %t799) :: boolean
460
+ %t801 = call core.and(%t708, %t800) :: boolean
461
+ %t803 = call core.sub(%t714, %t709) :: integer
462
+ %t805 = call core.clamp(%t749, %t705, %t803) :: integer
463
+ %t806 = gather %t713, %t805 :: integer
464
+ %t808 = select %t801, %t806, %t705 :: integer
465
+ %t827 = call core.lt(%t769, %t714) :: boolean
466
+ %t828 = call core.and(%t771, %t827) :: boolean
467
+ %t829 = call core.and(%t708, %t828) :: boolean
468
+ %t833 = call core.clamp(%t769, %t705, %t803) :: integer
469
+ %t834 = gather %t713, %t833 :: integer
470
+ %t836 = select %t829, %t834, %t705 :: integer
471
+ %t855 = call core.lt(%t749, %t734) :: boolean
472
+ %t856 = call core.and(%t751, %t855) :: boolean
473
+ %t857 = call core.and(%t728, %t856) :: boolean
474
+ %t859 = call core.sub(%t734, %t709) :: integer
475
+ %t861 = call core.clamp(%t749, %t705, %t859) :: integer
476
+ %t862 = gather %t733, %t861 :: integer
477
+ %t864 = select %t857, %t862, %t705 :: integer
478
+ %t883 = call core.lt(%t769, %t734) :: boolean
479
+ %t884 = call core.and(%t771, %t883) :: boolean
480
+ %t885 = call core.and(%t728, %t884) :: boolean
481
+ %t889 = call core.clamp(%t769, %t705, %t859) :: integer
482
+ %t890 = gather %t733, %t889 :: integer
483
+ %t892 = select %t885, %t890, %t705 :: integer
484
+ %t699 = make_tuple(%t720, %t740, %t760, %t780, %t808, %t836, %t864, %t892) :: tuple<integer>
485
+ %t700 = fold %t699 fn="agg.sum" ::
486
486
  %t267 = const 2 :: integer
487
- %t268 = call core.eq(%t508, %t267) :: boolean
487
+ %t268 = call core.eq(%t700, %t267) :: boolean
488
488
  yield %t268
489
489
  end_loop
490
490
  end_loop
@@ -493,87 +493,87 @@
493
493
  %t269 = load_input "rows" :: array
494
494
  loop rows id=L27 in %t269 as el=%rows_el_270, idx=%rows_i_271
495
495
  loop col id=L28 in %rows_el_270 as el=%col_el_272, idx=%col_i_273
496
- %t915 = Length %t269 :: integer
497
- %t916 = const -1 :: integer
498
- %t917 = call core.sub(%rows_i_271, %t916) :: integer
499
- %t918 = const 0 :: integer
500
- %t919 = call core.gte(%t917, %t918) :: boolean
501
- %t920 = call core.lt(%t917, %t915) :: boolean
502
- %t921 = call core.and(%t919, %t920) :: boolean
503
- %t922 = const 1 :: integer
504
- %t923 = call core.sub(%t915, %t922) :: integer
505
- %t925 = call core.clamp(%t917, %t918, %t923) :: integer
506
- %t926 = Gather %t269, %t925 :: any
507
- %t927 = Length %t926 :: integer
508
- %t928 = call core.mod(%col_i_273, %t927) :: integer
509
- %t929 = call core.add(%t928, %t927) :: integer
510
- %t930 = call core.mod(%t929, %t927) :: integer
511
- %t931 = Gather %t926, %t930 :: integer
512
- %t933 = select %t921, %t931, %t918 :: integer
513
- %t937 = call core.sub(%rows_i_271, %t922) :: integer
514
- %t939 = call core.gte(%t937, %t918) :: boolean
515
- %t940 = call core.lt(%t937, %t915) :: boolean
516
- %t941 = call core.and(%t939, %t940) :: boolean
517
- %t945 = call core.clamp(%t937, %t918, %t923) :: integer
518
- %t946 = Gather %t269, %t945 :: any
519
- %t947 = Length %t946 :: integer
520
- %t948 = call core.mod(%col_i_273, %t947) :: integer
521
- %t949 = call core.add(%t948, %t947) :: integer
522
- %t950 = call core.mod(%t949, %t947) :: integer
523
- %t951 = Gather %t946, %t950 :: integer
524
- %t953 = select %t941, %t951, %t918 :: integer
525
- %t956 = call core.mod(%rows_i_271, %t915) :: integer
526
- %t957 = call core.add(%t956, %t915) :: integer
527
- %t958 = call core.mod(%t957, %t915) :: integer
528
- %t959 = Gather %t269, %t958 :: any
529
- %t960 = Length %t959 :: integer
530
- %t962 = call core.sub(%col_i_273, %t916) :: integer
531
- %t964 = call core.gte(%t962, %t918) :: boolean
532
- %t965 = call core.lt(%t962, %t960) :: boolean
533
- %t966 = call core.and(%t964, %t965) :: boolean
534
- %t968 = call core.sub(%t960, %t922) :: integer
535
- %t970 = call core.clamp(%t962, %t918, %t968) :: integer
536
- %t971 = Gather %t959, %t970 :: integer
537
- %t973 = select %t966, %t971, %t918 :: integer
538
- %t982 = call core.sub(%col_i_273, %t922) :: integer
539
- %t984 = call core.gte(%t982, %t918) :: boolean
540
- %t985 = call core.lt(%t982, %t960) :: boolean
541
- %t986 = call core.and(%t984, %t985) :: boolean
542
- %t990 = call core.clamp(%t982, %t918, %t968) :: integer
543
- %t991 = Gather %t959, %t990 :: integer
544
- %t993 = select %t986, %t991, %t918 :: integer
545
- %t1012 = call core.lt(%t962, %t927) :: boolean
546
- %t1013 = call core.and(%t964, %t1012) :: boolean
547
- %t1014 = call core.and(%t921, %t1013) :: boolean
548
- %t1016 = call core.sub(%t927, %t922) :: integer
549
- %t1018 = call core.clamp(%t962, %t918, %t1016) :: integer
550
- %t1019 = Gather %t926, %t1018 :: integer
551
- %t1021 = select %t1014, %t1019, %t918 :: integer
552
- %t1040 = call core.lt(%t982, %t927) :: boolean
553
- %t1041 = call core.and(%t984, %t1040) :: boolean
554
- %t1042 = call core.and(%t921, %t1041) :: boolean
555
- %t1046 = call core.clamp(%t982, %t918, %t1016) :: integer
556
- %t1047 = Gather %t926, %t1046 :: integer
557
- %t1049 = select %t1042, %t1047, %t918 :: integer
558
- %t1068 = call core.lt(%t962, %t947) :: boolean
559
- %t1069 = call core.and(%t964, %t1068) :: boolean
560
- %t1070 = call core.and(%t941, %t1069) :: boolean
561
- %t1072 = call core.sub(%t947, %t922) :: integer
562
- %t1074 = call core.clamp(%t962, %t918, %t1072) :: integer
563
- %t1075 = Gather %t946, %t1074 :: integer
564
- %t1077 = select %t1070, %t1075, %t918 :: integer
565
- %t1096 = call core.lt(%t982, %t947) :: boolean
566
- %t1097 = call core.and(%t984, %t1096) :: boolean
567
- %t1098 = call core.and(%t941, %t1097) :: boolean
568
- %t1102 = call core.clamp(%t982, %t918, %t1072) :: integer
569
- %t1103 = Gather %t946, %t1102 :: integer
570
- %t1105 = select %t1098, %t1103, %t918 :: integer
571
- %t1106 = make_tuple(%t933, %t953, %t973, %t993, %t1021, %t1049, %t1077, %t1105) :: tuple<integer>
572
- %t1107 = Fold %t1106 fn="agg.sum" ::
573
- %t511 = const 2 :: integer
574
- %t512 = call core.eq(%t1107, %t511) :: boolean
575
- %t516 = call core.gt(%col_el_272, %t918) :: boolean
576
- %t276 = call core.and(%t512, %t516) :: boolean
496
+ %t909 = length %t269 :: integer
497
+ %t910 = const -1 :: integer
498
+ %t911 = call core.sub(%rows_i_271, %t910) :: integer
499
+ %t912 = const 0 :: integer
500
+ %t913 = call core.gte(%t911, %t912) :: boolean
501
+ %t914 = call core.lt(%t911, %t909) :: boolean
502
+ %t915 = call core.and(%t913, %t914) :: boolean
503
+ %t916 = const 1 :: integer
504
+ %t917 = call core.sub(%t909, %t916) :: integer
505
+ %t919 = call core.clamp(%t911, %t912, %t917) :: integer
506
+ %t920 = gather %t269, %t919 :: any
507
+ %t921 = length %t920 :: integer
508
+ %t922 = call core.mod(%col_i_273, %t921) :: integer
509
+ %t923 = call core.add(%t922, %t921) :: integer
510
+ %t924 = call core.mod(%t923, %t921) :: integer
511
+ %t925 = gather %t920, %t924 :: integer
512
+ %t927 = select %t915, %t925, %t912 :: integer
513
+ %t931 = call core.sub(%rows_i_271, %t916) :: integer
514
+ %t933 = call core.gte(%t931, %t912) :: boolean
515
+ %t934 = call core.lt(%t931, %t909) :: boolean
516
+ %t935 = call core.and(%t933, %t934) :: boolean
517
+ %t939 = call core.clamp(%t931, %t912, %t917) :: integer
518
+ %t940 = gather %t269, %t939 :: any
519
+ %t941 = length %t940 :: integer
520
+ %t942 = call core.mod(%col_i_273, %t941) :: integer
521
+ %t943 = call core.add(%t942, %t941) :: integer
522
+ %t944 = call core.mod(%t943, %t941) :: integer
523
+ %t945 = gather %t940, %t944 :: integer
524
+ %t947 = select %t935, %t945, %t912 :: integer
525
+ %t950 = call core.mod(%rows_i_271, %t909) :: integer
526
+ %t951 = call core.add(%t950, %t909) :: integer
527
+ %t952 = call core.mod(%t951, %t909) :: integer
528
+ %t953 = gather %t269, %t952 :: any
529
+ %t954 = length %t953 :: integer
530
+ %t956 = call core.sub(%col_i_273, %t910) :: integer
531
+ %t958 = call core.gte(%t956, %t912) :: boolean
532
+ %t959 = call core.lt(%t956, %t954) :: boolean
533
+ %t960 = call core.and(%t958, %t959) :: boolean
534
+ %t962 = call core.sub(%t954, %t916) :: integer
535
+ %t964 = call core.clamp(%t956, %t912, %t962) :: integer
536
+ %t965 = gather %t953, %t964 :: integer
537
+ %t967 = select %t960, %t965, %t912 :: integer
538
+ %t976 = call core.sub(%col_i_273, %t916) :: integer
539
+ %t978 = call core.gte(%t976, %t912) :: boolean
540
+ %t979 = call core.lt(%t976, %t954) :: boolean
541
+ %t980 = call core.and(%t978, %t979) :: boolean
542
+ %t984 = call core.clamp(%t976, %t912, %t962) :: integer
543
+ %t985 = gather %t953, %t984 :: integer
544
+ %t987 = select %t980, %t985, %t912 :: integer
545
+ %t1006 = call core.lt(%t956, %t921) :: boolean
546
+ %t1007 = call core.and(%t958, %t1006) :: boolean
547
+ %t1008 = call core.and(%t915, %t1007) :: boolean
548
+ %t1010 = call core.sub(%t921, %t916) :: integer
549
+ %t1012 = call core.clamp(%t956, %t912, %t1010) :: integer
550
+ %t1013 = gather %t920, %t1012 :: integer
551
+ %t1015 = select %t1008, %t1013, %t912 :: integer
552
+ %t1034 = call core.lt(%t976, %t921) :: boolean
553
+ %t1035 = call core.and(%t978, %t1034) :: boolean
554
+ %t1036 = call core.and(%t915, %t1035) :: boolean
555
+ %t1040 = call core.clamp(%t976, %t912, %t1010) :: integer
556
+ %t1041 = gather %t920, %t1040 :: integer
557
+ %t1043 = select %t1036, %t1041, %t912 :: integer
558
+ %t1062 = call core.lt(%t956, %t941) :: boolean
559
+ %t1063 = call core.and(%t958, %t1062) :: boolean
560
+ %t1064 = call core.and(%t935, %t1063) :: boolean
561
+ %t1066 = call core.sub(%t941, %t916) :: integer
562
+ %t1068 = call core.clamp(%t956, %t912, %t1066) :: integer
563
+ %t1069 = gather %t940, %t1068 :: integer
564
+ %t1071 = select %t1064, %t1069, %t912 :: integer
565
+ %t1090 = call core.lt(%t976, %t941) :: boolean
566
+ %t1091 = call core.and(%t978, %t1090) :: boolean
567
+ %t1092 = call core.and(%t935, %t1091) :: boolean
568
+ %t1096 = call core.clamp(%t976, %t912, %t1066) :: integer
569
+ %t1097 = gather %t940, %t1096 :: integer
570
+ %t1099 = select %t1092, %t1097, %t912 :: integer
571
+ %t906 = make_tuple(%t927, %t947, %t967, %t987, %t1015, %t1043, %t1071, %t1099) :: tuple<integer>
572
+ %t907 = fold %t906 fn="agg.sum" ::
573
+ %t895 = const 2 :: integer
574
+ %t896 = call core.eq(%t907, %t895) :: boolean
575
+ %t1103 = call core.gt(%col_el_272, %t912) :: boolean
576
+ %t276 = call core.and(%t896, %t1103) :: boolean
577
577
  yield %t276
578
578
  end_loop
579
579
  end_loop
@@ -582,90 +582,90 @@
582
582
  %t277 = load_input "rows" :: array
583
583
  loop rows id=L29 in %t277 as el=%rows_el_278, idx=%rows_i_279
584
584
  loop col id=L30 in %rows_el_278 as el=%col_el_280, idx=%col_i_281
585
- %t1111 = Length %t277 :: integer
586
- %t1112 = const -1 :: integer
587
- %t1113 = call core.sub(%rows_i_279, %t1112) :: integer
588
- %t1114 = const 0 :: integer
589
- %t1115 = call core.gte(%t1113, %t1114) :: boolean
590
- %t1116 = call core.lt(%t1113, %t1111) :: boolean
591
- %t1117 = call core.and(%t1115, %t1116) :: boolean
592
- %t1118 = const 1 :: integer
593
- %t1119 = call core.sub(%t1111, %t1118) :: integer
594
- %t1121 = call core.clamp(%t1113, %t1114, %t1119) :: integer
595
- %t1122 = Gather %t277, %t1121 :: any
596
- %t1123 = Length %t1122 :: integer
597
- %t1124 = call core.mod(%col_i_281, %t1123) :: integer
598
- %t1125 = call core.add(%t1124, %t1123) :: integer
599
- %t1126 = call core.mod(%t1125, %t1123) :: integer
600
- %t1127 = Gather %t1122, %t1126 :: integer
601
- %t1129 = select %t1117, %t1127, %t1114 :: integer
602
- %t1133 = call core.sub(%rows_i_279, %t1118) :: integer
603
- %t1135 = call core.gte(%t1133, %t1114) :: boolean
604
- %t1136 = call core.lt(%t1133, %t1111) :: boolean
605
- %t1137 = call core.and(%t1135, %t1136) :: boolean
606
- %t1141 = call core.clamp(%t1133, %t1114, %t1119) :: integer
607
- %t1142 = Gather %t277, %t1141 :: any
608
- %t1143 = Length %t1142 :: integer
609
- %t1144 = call core.mod(%col_i_281, %t1143) :: integer
610
- %t1145 = call core.add(%t1144, %t1143) :: integer
611
- %t1146 = call core.mod(%t1145, %t1143) :: integer
612
- %t1147 = Gather %t1142, %t1146 :: integer
613
- %t1149 = select %t1137, %t1147, %t1114 :: integer
614
- %t1152 = call core.mod(%rows_i_279, %t1111) :: integer
615
- %t1153 = call core.add(%t1152, %t1111) :: integer
616
- %t1154 = call core.mod(%t1153, %t1111) :: integer
617
- %t1155 = Gather %t277, %t1154 :: any
618
- %t1156 = Length %t1155 :: integer
619
- %t1158 = call core.sub(%col_i_281, %t1112) :: integer
620
- %t1160 = call core.gte(%t1158, %t1114) :: boolean
621
- %t1161 = call core.lt(%t1158, %t1156) :: boolean
622
- %t1162 = call core.and(%t1160, %t1161) :: boolean
623
- %t1164 = call core.sub(%t1156, %t1118) :: integer
624
- %t1166 = call core.clamp(%t1158, %t1114, %t1164) :: integer
625
- %t1167 = Gather %t1155, %t1166 :: integer
626
- %t1169 = select %t1162, %t1167, %t1114 :: integer
627
- %t1178 = call core.sub(%col_i_281, %t1118) :: integer
628
- %t1180 = call core.gte(%t1178, %t1114) :: boolean
629
- %t1181 = call core.lt(%t1178, %t1156) :: boolean
630
- %t1182 = call core.and(%t1180, %t1181) :: boolean
631
- %t1186 = call core.clamp(%t1178, %t1114, %t1164) :: integer
632
- %t1187 = Gather %t1155, %t1186 :: integer
633
- %t1189 = select %t1182, %t1187, %t1114 :: integer
634
- %t1208 = call core.lt(%t1158, %t1123) :: boolean
635
- %t1209 = call core.and(%t1160, %t1208) :: boolean
636
- %t1210 = call core.and(%t1117, %t1209) :: boolean
637
- %t1212 = call core.sub(%t1123, %t1118) :: integer
638
- %t1214 = call core.clamp(%t1158, %t1114, %t1212) :: integer
639
- %t1215 = Gather %t1122, %t1214 :: integer
640
- %t1217 = select %t1210, %t1215, %t1114 :: integer
641
- %t1236 = call core.lt(%t1178, %t1123) :: boolean
642
- %t1237 = call core.and(%t1180, %t1236) :: boolean
643
- %t1238 = call core.and(%t1117, %t1237) :: boolean
644
- %t1242 = call core.clamp(%t1178, %t1114, %t1212) :: integer
645
- %t1243 = Gather %t1122, %t1242 :: integer
646
- %t1245 = select %t1238, %t1243, %t1114 :: integer
647
- %t1264 = call core.lt(%t1158, %t1143) :: boolean
648
- %t1265 = call core.and(%t1160, %t1264) :: boolean
649
- %t1266 = call core.and(%t1137, %t1265) :: boolean
650
- %t1268 = call core.sub(%t1143, %t1118) :: integer
651
- %t1270 = call core.clamp(%t1158, %t1114, %t1268) :: integer
652
- %t1271 = Gather %t1142, %t1270 :: integer
653
- %t1273 = select %t1266, %t1271, %t1114 :: integer
654
- %t1292 = call core.lt(%t1178, %t1143) :: boolean
655
- %t1293 = call core.and(%t1180, %t1292) :: boolean
656
- %t1294 = call core.and(%t1137, %t1293) :: boolean
657
- %t1298 = call core.clamp(%t1178, %t1114, %t1268) :: integer
658
- %t1299 = Gather %t1142, %t1298 :: integer
659
- %t1301 = select %t1294, %t1299, %t1114 :: integer
660
- %t1302 = make_tuple(%t1129, %t1149, %t1169, %t1189, %t1217, %t1245, %t1273, %t1301) :: tuple<integer>
661
- %t1303 = Fold %t1302 fn="agg.sum" ::
662
- %t519 = const 3 :: integer
663
- %t520 = call core.eq(%t1303, %t519) :: boolean
664
- %t1316 = const 2 :: integer
665
- %t1317 = call core.eq(%t1303, %t1316) :: boolean
666
- %t1321 = call core.gt(%col_el_280, %t1114) :: boolean
667
- %t524 = call core.and(%t1317, %t1321) :: boolean
668
- %t284 = call core.or(%t520, %t524) :: boolean
585
+ %t1121 = length %t277 :: integer
586
+ %t1122 = const -1 :: integer
587
+ %t1123 = call core.sub(%rows_i_279, %t1122) :: integer
588
+ %t1124 = const 0 :: integer
589
+ %t1125 = call core.gte(%t1123, %t1124) :: boolean
590
+ %t1126 = call core.lt(%t1123, %t1121) :: boolean
591
+ %t1127 = call core.and(%t1125, %t1126) :: boolean
592
+ %t1128 = const 1 :: integer
593
+ %t1129 = call core.sub(%t1121, %t1128) :: integer
594
+ %t1131 = call core.clamp(%t1123, %t1124, %t1129) :: integer
595
+ %t1132 = gather %t277, %t1131 :: any
596
+ %t1133 = length %t1132 :: integer
597
+ %t1134 = call core.mod(%col_i_281, %t1133) :: integer
598
+ %t1135 = call core.add(%t1134, %t1133) :: integer
599
+ %t1136 = call core.mod(%t1135, %t1133) :: integer
600
+ %t1137 = gather %t1132, %t1136 :: integer
601
+ %t1139 = select %t1127, %t1137, %t1124 :: integer
602
+ %t1143 = call core.sub(%rows_i_279, %t1128) :: integer
603
+ %t1145 = call core.gte(%t1143, %t1124) :: boolean
604
+ %t1146 = call core.lt(%t1143, %t1121) :: boolean
605
+ %t1147 = call core.and(%t1145, %t1146) :: boolean
606
+ %t1151 = call core.clamp(%t1143, %t1124, %t1129) :: integer
607
+ %t1152 = gather %t277, %t1151 :: any
608
+ %t1153 = length %t1152 :: integer
609
+ %t1154 = call core.mod(%col_i_281, %t1153) :: integer
610
+ %t1155 = call core.add(%t1154, %t1153) :: integer
611
+ %t1156 = call core.mod(%t1155, %t1153) :: integer
612
+ %t1157 = gather %t1152, %t1156 :: integer
613
+ %t1159 = select %t1147, %t1157, %t1124 :: integer
614
+ %t1162 = call core.mod(%rows_i_279, %t1121) :: integer
615
+ %t1163 = call core.add(%t1162, %t1121) :: integer
616
+ %t1164 = call core.mod(%t1163, %t1121) :: integer
617
+ %t1165 = gather %t277, %t1164 :: any
618
+ %t1166 = length %t1165 :: integer
619
+ %t1168 = call core.sub(%col_i_281, %t1122) :: integer
620
+ %t1170 = call core.gte(%t1168, %t1124) :: boolean
621
+ %t1171 = call core.lt(%t1168, %t1166) :: boolean
622
+ %t1172 = call core.and(%t1170, %t1171) :: boolean
623
+ %t1174 = call core.sub(%t1166, %t1128) :: integer
624
+ %t1176 = call core.clamp(%t1168, %t1124, %t1174) :: integer
625
+ %t1177 = gather %t1165, %t1176 :: integer
626
+ %t1179 = select %t1172, %t1177, %t1124 :: integer
627
+ %t1188 = call core.sub(%col_i_281, %t1128) :: integer
628
+ %t1190 = call core.gte(%t1188, %t1124) :: boolean
629
+ %t1191 = call core.lt(%t1188, %t1166) :: boolean
630
+ %t1192 = call core.and(%t1190, %t1191) :: boolean
631
+ %t1196 = call core.clamp(%t1188, %t1124, %t1174) :: integer
632
+ %t1197 = gather %t1165, %t1196 :: integer
633
+ %t1199 = select %t1192, %t1197, %t1124 :: integer
634
+ %t1218 = call core.lt(%t1168, %t1133) :: boolean
635
+ %t1219 = call core.and(%t1170, %t1218) :: boolean
636
+ %t1220 = call core.and(%t1127, %t1219) :: boolean
637
+ %t1222 = call core.sub(%t1133, %t1128) :: integer
638
+ %t1224 = call core.clamp(%t1168, %t1124, %t1222) :: integer
639
+ %t1225 = gather %t1132, %t1224 :: integer
640
+ %t1227 = select %t1220, %t1225, %t1124 :: integer
641
+ %t1246 = call core.lt(%t1188, %t1133) :: boolean
642
+ %t1247 = call core.and(%t1190, %t1246) :: boolean
643
+ %t1248 = call core.and(%t1127, %t1247) :: boolean
644
+ %t1252 = call core.clamp(%t1188, %t1124, %t1222) :: integer
645
+ %t1253 = gather %t1132, %t1252 :: integer
646
+ %t1255 = select %t1248, %t1253, %t1124 :: integer
647
+ %t1274 = call core.lt(%t1168, %t1153) :: boolean
648
+ %t1275 = call core.and(%t1170, %t1274) :: boolean
649
+ %t1276 = call core.and(%t1147, %t1275) :: boolean
650
+ %t1278 = call core.sub(%t1153, %t1128) :: integer
651
+ %t1280 = call core.clamp(%t1168, %t1124, %t1278) :: integer
652
+ %t1281 = gather %t1152, %t1280 :: integer
653
+ %t1283 = select %t1276, %t1281, %t1124 :: integer
654
+ %t1302 = call core.lt(%t1188, %t1153) :: boolean
655
+ %t1303 = call core.and(%t1190, %t1302) :: boolean
656
+ %t1304 = call core.and(%t1147, %t1303) :: boolean
657
+ %t1308 = call core.clamp(%t1188, %t1124, %t1278) :: integer
658
+ %t1309 = gather %t1152, %t1308 :: integer
659
+ %t1311 = select %t1304, %t1309, %t1124 :: integer
660
+ %t1118 = make_tuple(%t1139, %t1159, %t1179, %t1199, %t1227, %t1255, %t1283, %t1311) :: tuple<integer>
661
+ %t1119 = fold %t1118 fn="agg.sum" ::
662
+ %t1107 = const 3 :: integer
663
+ %t1108 = call core.eq(%t1119, %t1107) :: boolean
664
+ %t1318 = const 2 :: integer
665
+ %t1319 = call core.eq(%t1119, %t1318) :: boolean
666
+ %t1526 = call core.gt(%col_el_280, %t1124) :: boolean
667
+ %t1315 = call core.and(%t1319, %t1526) :: boolean
668
+ %t284 = call core.or(%t1108, %t1315) :: boolean
669
669
  yield %t284
670
670
  end_loop
671
671
  end_loop
@@ -674,91 +674,91 @@
674
674
  %t285 = load_input "rows" :: array
675
675
  loop rows id=L31 in %t285 as el=%rows_el_286, idx=%rows_i_287
676
676
  loop col id=L32 in %rows_el_286 as el=%col_el_288, idx=%col_i_289
677
- %t1539 = Length %t285 :: integer
678
- %t1540 = const -1 :: integer
679
- %t1541 = call core.sub(%rows_i_287, %t1540) :: integer
680
- %t1542 = const 0 :: integer
681
- %t1543 = call core.gte(%t1541, %t1542) :: boolean
682
- %t1544 = call core.lt(%t1541, %t1539) :: boolean
683
- %t1545 = call core.and(%t1543, %t1544) :: boolean
684
- %t1546 = const 1 :: integer
685
- %t1547 = call core.sub(%t1539, %t1546) :: integer
686
- %t1549 = call core.clamp(%t1541, %t1542, %t1547) :: integer
687
- %t1550 = Gather %t285, %t1549 :: any
688
- %t1551 = Length %t1550 :: integer
689
- %t1552 = call core.mod(%col_i_289, %t1551) :: integer
690
- %t1553 = call core.add(%t1552, %t1551) :: integer
691
- %t1554 = call core.mod(%t1553, %t1551) :: integer
692
- %t1555 = Gather %t1550, %t1554 :: integer
693
- %t1557 = select %t1545, %t1555, %t1542 :: integer
694
- %t1561 = call core.sub(%rows_i_287, %t1546) :: integer
695
- %t1563 = call core.gte(%t1561, %t1542) :: boolean
696
- %t1564 = call core.lt(%t1561, %t1539) :: boolean
697
- %t1565 = call core.and(%t1563, %t1564) :: boolean
698
- %t1569 = call core.clamp(%t1561, %t1542, %t1547) :: integer
699
- %t1570 = Gather %t285, %t1569 :: any
700
- %t1571 = Length %t1570 :: integer
701
- %t1572 = call core.mod(%col_i_289, %t1571) :: integer
702
- %t1573 = call core.add(%t1572, %t1571) :: integer
703
- %t1574 = call core.mod(%t1573, %t1571) :: integer
704
- %t1575 = Gather %t1570, %t1574 :: integer
705
- %t1577 = select %t1565, %t1575, %t1542 :: integer
706
- %t1580 = call core.mod(%rows_i_287, %t1539) :: integer
707
- %t1581 = call core.add(%t1580, %t1539) :: integer
708
- %t1582 = call core.mod(%t1581, %t1539) :: integer
709
- %t1583 = Gather %t285, %t1582 :: any
710
- %t1584 = Length %t1583 :: integer
711
- %t1586 = call core.sub(%col_i_289, %t1540) :: integer
712
- %t1588 = call core.gte(%t1586, %t1542) :: boolean
713
- %t1589 = call core.lt(%t1586, %t1584) :: boolean
714
- %t1590 = call core.and(%t1588, %t1589) :: boolean
715
- %t1592 = call core.sub(%t1584, %t1546) :: integer
716
- %t1594 = call core.clamp(%t1586, %t1542, %t1592) :: integer
717
- %t1595 = Gather %t1583, %t1594 :: integer
718
- %t1597 = select %t1590, %t1595, %t1542 :: integer
719
- %t1606 = call core.sub(%col_i_289, %t1546) :: integer
720
- %t1608 = call core.gte(%t1606, %t1542) :: boolean
721
- %t1609 = call core.lt(%t1606, %t1584) :: boolean
722
- %t1610 = call core.and(%t1608, %t1609) :: boolean
723
- %t1614 = call core.clamp(%t1606, %t1542, %t1592) :: integer
724
- %t1615 = Gather %t1583, %t1614 :: integer
725
- %t1617 = select %t1610, %t1615, %t1542 :: integer
726
- %t1636 = call core.lt(%t1586, %t1551) :: boolean
727
- %t1637 = call core.and(%t1588, %t1636) :: boolean
728
- %t1638 = call core.and(%t1545, %t1637) :: boolean
729
- %t1640 = call core.sub(%t1551, %t1546) :: integer
730
- %t1642 = call core.clamp(%t1586, %t1542, %t1640) :: integer
731
- %t1643 = Gather %t1550, %t1642 :: integer
732
- %t1645 = select %t1638, %t1643, %t1542 :: integer
733
- %t1664 = call core.lt(%t1606, %t1551) :: boolean
734
- %t1665 = call core.and(%t1608, %t1664) :: boolean
735
- %t1666 = call core.and(%t1545, %t1665) :: boolean
736
- %t1670 = call core.clamp(%t1606, %t1542, %t1640) :: integer
737
- %t1671 = Gather %t1550, %t1670 :: integer
738
- %t1673 = select %t1666, %t1671, %t1542 :: integer
739
- %t1692 = call core.lt(%t1586, %t1571) :: boolean
740
- %t1693 = call core.and(%t1588, %t1692) :: boolean
741
- %t1694 = call core.and(%t1565, %t1693) :: boolean
742
- %t1696 = call core.sub(%t1571, %t1546) :: integer
743
- %t1698 = call core.clamp(%t1586, %t1542, %t1696) :: integer
744
- %t1699 = Gather %t1570, %t1698 :: integer
745
- %t1701 = select %t1694, %t1699, %t1542 :: integer
746
- %t1720 = call core.lt(%t1606, %t1571) :: boolean
747
- %t1721 = call core.and(%t1608, %t1720) :: boolean
748
- %t1722 = call core.and(%t1565, %t1721) :: boolean
749
- %t1726 = call core.clamp(%t1606, %t1542, %t1696) :: integer
750
- %t1727 = Gather %t1570, %t1726 :: integer
751
- %t1729 = select %t1722, %t1727, %t1542 :: integer
752
- %t1332 = make_tuple(%t1557, %t1577, %t1597, %t1617, %t1645, %t1673, %t1701, %t1729) :: tuple<integer>
753
- %t1333 = Fold %t1332 fn="agg.sum" ::
754
- %t1334 = const 3 :: integer
755
- %t1335 = call core.eq(%t1333, %t1334) :: boolean
756
- %t1339 = const 2 :: integer
757
- %t1340 = call core.eq(%t1333, %t1339) :: boolean
758
- %t1344 = call core.gt(%col_el_288, %t1542) :: boolean
759
- %t1345 = call core.and(%t1340, %t1344) :: boolean
760
- %t528 = call core.or(%t1335, %t1345) :: boolean
761
- %t293 = select %t528, %t1546, %t1542 :: integer
677
+ %t1548 = length %t285 :: integer
678
+ %t1549 = const -1 :: integer
679
+ %t1550 = call core.sub(%rows_i_287, %t1549) :: integer
680
+ %t1551 = const 0 :: integer
681
+ %t1552 = call core.gte(%t1550, %t1551) :: boolean
682
+ %t1553 = call core.lt(%t1550, %t1548) :: boolean
683
+ %t1554 = call core.and(%t1552, %t1553) :: boolean
684
+ %t1555 = const 1 :: integer
685
+ %t1556 = call core.sub(%t1548, %t1555) :: integer
686
+ %t1558 = call core.clamp(%t1550, %t1551, %t1556) :: integer
687
+ %t1559 = gather %t285, %t1558 :: any
688
+ %t1560 = length %t1559 :: integer
689
+ %t1561 = call core.mod(%col_i_289, %t1560) :: integer
690
+ %t1562 = call core.add(%t1561, %t1560) :: integer
691
+ %t1563 = call core.mod(%t1562, %t1560) :: integer
692
+ %t1564 = gather %t1559, %t1563 :: integer
693
+ %t1566 = select %t1554, %t1564, %t1551 :: integer
694
+ %t1570 = call core.sub(%rows_i_287, %t1555) :: integer
695
+ %t1572 = call core.gte(%t1570, %t1551) :: boolean
696
+ %t1573 = call core.lt(%t1570, %t1548) :: boolean
697
+ %t1574 = call core.and(%t1572, %t1573) :: boolean
698
+ %t1578 = call core.clamp(%t1570, %t1551, %t1556) :: integer
699
+ %t1579 = gather %t285, %t1578 :: any
700
+ %t1580 = length %t1579 :: integer
701
+ %t1581 = call core.mod(%col_i_289, %t1580) :: integer
702
+ %t1582 = call core.add(%t1581, %t1580) :: integer
703
+ %t1583 = call core.mod(%t1582, %t1580) :: integer
704
+ %t1584 = gather %t1579, %t1583 :: integer
705
+ %t1586 = select %t1574, %t1584, %t1551 :: integer
706
+ %t1589 = call core.mod(%rows_i_287, %t1548) :: integer
707
+ %t1590 = call core.add(%t1589, %t1548) :: integer
708
+ %t1591 = call core.mod(%t1590, %t1548) :: integer
709
+ %t1592 = gather %t285, %t1591 :: any
710
+ %t1593 = length %t1592 :: integer
711
+ %t1595 = call core.sub(%col_i_289, %t1549) :: integer
712
+ %t1597 = call core.gte(%t1595, %t1551) :: boolean
713
+ %t1598 = call core.lt(%t1595, %t1593) :: boolean
714
+ %t1599 = call core.and(%t1597, %t1598) :: boolean
715
+ %t1601 = call core.sub(%t1593, %t1555) :: integer
716
+ %t1603 = call core.clamp(%t1595, %t1551, %t1601) :: integer
717
+ %t1604 = gather %t1592, %t1603 :: integer
718
+ %t1606 = select %t1599, %t1604, %t1551 :: integer
719
+ %t1615 = call core.sub(%col_i_289, %t1555) :: integer
720
+ %t1617 = call core.gte(%t1615, %t1551) :: boolean
721
+ %t1618 = call core.lt(%t1615, %t1593) :: boolean
722
+ %t1619 = call core.and(%t1617, %t1618) :: boolean
723
+ %t1623 = call core.clamp(%t1615, %t1551, %t1601) :: integer
724
+ %t1624 = gather %t1592, %t1623 :: integer
725
+ %t1626 = select %t1619, %t1624, %t1551 :: integer
726
+ %t1645 = call core.lt(%t1595, %t1560) :: boolean
727
+ %t1646 = call core.and(%t1597, %t1645) :: boolean
728
+ %t1647 = call core.and(%t1554, %t1646) :: boolean
729
+ %t1649 = call core.sub(%t1560, %t1555) :: integer
730
+ %t1651 = call core.clamp(%t1595, %t1551, %t1649) :: integer
731
+ %t1652 = gather %t1559, %t1651 :: integer
732
+ %t1654 = select %t1647, %t1652, %t1551 :: integer
733
+ %t1673 = call core.lt(%t1615, %t1560) :: boolean
734
+ %t1674 = call core.and(%t1617, %t1673) :: boolean
735
+ %t1675 = call core.and(%t1554, %t1674) :: boolean
736
+ %t1679 = call core.clamp(%t1615, %t1551, %t1649) :: integer
737
+ %t1680 = gather %t1559, %t1679 :: integer
738
+ %t1682 = select %t1675, %t1680, %t1551 :: integer
739
+ %t1701 = call core.lt(%t1595, %t1580) :: boolean
740
+ %t1702 = call core.and(%t1597, %t1701) :: boolean
741
+ %t1703 = call core.and(%t1574, %t1702) :: boolean
742
+ %t1705 = call core.sub(%t1580, %t1555) :: integer
743
+ %t1707 = call core.clamp(%t1595, %t1551, %t1705) :: integer
744
+ %t1708 = gather %t1579, %t1707 :: integer
745
+ %t1710 = select %t1703, %t1708, %t1551 :: integer
746
+ %t1729 = call core.lt(%t1615, %t1580) :: boolean
747
+ %t1730 = call core.and(%t1617, %t1729) :: boolean
748
+ %t1731 = call core.and(%t1574, %t1730) :: boolean
749
+ %t1735 = call core.clamp(%t1615, %t1551, %t1705) :: integer
750
+ %t1736 = gather %t1579, %t1735 :: integer
751
+ %t1738 = select %t1731, %t1736, %t1551 :: integer
752
+ %t1545 = make_tuple(%t1566, %t1586, %t1606, %t1626, %t1654, %t1682, %t1710, %t1738) :: tuple<integer>
753
+ %t1546 = fold %t1545 fn="agg.sum" ::
754
+ %t1534 = const 3 :: integer
755
+ %t1535 = call core.eq(%t1546, %t1534) :: boolean
756
+ %t1745 = const 2 :: integer
757
+ %t1746 = call core.eq(%t1546, %t1745) :: boolean
758
+ %t1953 = call core.gt(%col_el_288, %t1551) :: boolean
759
+ %t1742 = call core.and(%t1746, %t1953) :: boolean
760
+ %t1531 = call core.or(%t1535, %t1742) :: boolean
761
+ %t293 = select %t1531, %t1555, %t1551 :: integer
762
762
  yield %t293
763
763
  end_loop
764
764
  end_loop