kumi 0.0.23 → 0.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +3 -0
  3. data/README.md +2 -2
  4. data/golden/array_element/expected/schema_ruby.rb +1 -1
  5. data/golden/array_index/expected/schema_ruby.rb +1 -1
  6. data/golden/array_operations/expected/schema_ruby.rb +1 -1
  7. data/golden/cascade_logic/expected/schema_ruby.rb +1 -1
  8. data/golden/chained_fusion/expected/schema_ruby.rb +1 -1
  9. data/golden/element_arrays/expected/schema_ruby.rb +1 -1
  10. data/golden/empty_and_null_inputs/expected/schema_ruby.rb +1 -1
  11. data/golden/game_of_life/expected/lir_00_unoptimized.txt +33 -33
  12. data/golden/game_of_life/expected/lir_01_hoist_scalar_references.txt +33 -33
  13. data/golden/game_of_life/expected/lir_02_inlined.txt +296 -296
  14. data/golden/game_of_life/expected/lir_03_cse.txt +128 -128
  15. data/golden/game_of_life/expected/lir_04_1_loop_fusion.txt +128 -128
  16. data/golden/game_of_life/expected/lir_04_loop_invcm.txt +128 -128
  17. data/golden/game_of_life/expected/lir_06_const_prop.txt +128 -128
  18. data/golden/game_of_life/expected/schema_ruby.rb +1 -1
  19. data/golden/hash_keys/expected/schema_ruby.rb +1 -1
  20. data/golden/hash_keys/schema.kumi +4 -5
  21. data/golden/hash_value/expected/schema_ruby.rb +1 -1
  22. data/golden/hierarchical_complex/expected/schema_ruby.rb +1 -1
  23. data/golden/inline_rename_scope_leak/expected/ast.txt +48 -0
  24. data/golden/inline_rename_scope_leak/expected/input_plan.txt +10 -0
  25. data/golden/inline_rename_scope_leak/expected/lir_00_unoptimized.txt +35 -0
  26. data/golden/inline_rename_scope_leak/expected/lir_01_hoist_scalar_references.txt +35 -0
  27. data/golden/inline_rename_scope_leak/expected/lir_02_inlined.txt +49 -0
  28. data/golden/inline_rename_scope_leak/expected/lir_03_cse.txt +49 -0
  29. data/golden/inline_rename_scope_leak/expected/lir_04_1_loop_fusion.txt +49 -0
  30. data/golden/inline_rename_scope_leak/expected/lir_04_loop_invcm.txt +49 -0
  31. data/golden/inline_rename_scope_leak/expected/lir_06_const_prop.txt +49 -0
  32. data/golden/inline_rename_scope_leak/expected/nast.txt +31 -0
  33. data/golden/inline_rename_scope_leak/expected/schema_javascript.mjs +51 -0
  34. data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +82 -0
  35. data/golden/inline_rename_scope_leak/expected/snast.txt +31 -0
  36. data/golden/inline_rename_scope_leak/expected.json +7 -0
  37. data/golden/inline_rename_scope_leak/input.json +4 -0
  38. data/golden/inline_rename_scope_leak/schema.kumi +24 -0
  39. data/golden/input_reference/expected/schema_ruby.rb +1 -1
  40. data/golden/interleaved_fusion/expected/schema_ruby.rb +1 -1
  41. data/golden/let_inline/expected/schema_ruby.rb +1 -1
  42. data/golden/loop_fusion/expected/schema_ruby.rb +1 -1
  43. data/golden/min_reduce_scope/expected/schema_ruby.rb +1 -1
  44. data/golden/mixed_dimensions/expected/schema_ruby.rb +1 -1
  45. data/golden/multirank_hoisting/expected/schema_ruby.rb +1 -1
  46. data/golden/nested_hash/expected/schema_ruby.rb +1 -1
  47. data/golden/reduction_broadcast/expected/schema_ruby.rb +1 -1
  48. data/golden/roll/expected/lir_00_unoptimized.txt +8 -8
  49. data/golden/roll/expected/lir_01_hoist_scalar_references.txt +8 -8
  50. data/golden/roll/expected/lir_02_inlined.txt +8 -8
  51. data/golden/roll/expected/lir_03_cse.txt +8 -8
  52. data/golden/roll/expected/lir_04_1_loop_fusion.txt +8 -8
  53. data/golden/roll/expected/lir_04_loop_invcm.txt +8 -8
  54. data/golden/roll/expected/lir_06_const_prop.txt +8 -8
  55. data/golden/roll/expected/schema_ruby.rb +1 -1
  56. data/golden/shift/expected/lir_00_unoptimized.txt +12 -12
  57. data/golden/shift/expected/lir_01_hoist_scalar_references.txt +12 -12
  58. data/golden/shift/expected/lir_02_inlined.txt +12 -12
  59. data/golden/shift/expected/lir_03_cse.txt +12 -12
  60. data/golden/shift/expected/lir_04_1_loop_fusion.txt +12 -12
  61. data/golden/shift/expected/lir_04_loop_invcm.txt +12 -12
  62. data/golden/shift/expected/lir_06_const_prop.txt +12 -12
  63. data/golden/shift/expected/schema_ruby.rb +1 -1
  64. data/golden/shift_2d/expected/lir_00_unoptimized.txt +48 -48
  65. data/golden/shift_2d/expected/lir_01_hoist_scalar_references.txt +48 -48
  66. data/golden/shift_2d/expected/lir_02_inlined.txt +48 -48
  67. data/golden/shift_2d/expected/lir_03_cse.txt +48 -48
  68. data/golden/shift_2d/expected/lir_04_1_loop_fusion.txt +48 -48
  69. data/golden/shift_2d/expected/lir_04_loop_invcm.txt +48 -48
  70. data/golden/shift_2d/expected/lir_06_const_prop.txt +48 -48
  71. data/golden/shift_2d/expected/schema_ruby.rb +1 -1
  72. data/golden/simple_math/expected/schema_ruby.rb +1 -1
  73. data/golden/streaming_basics/expected/schema_ruby.rb +1 -1
  74. data/golden/tuples/expected/lir_00_unoptimized.txt +4 -4
  75. data/golden/tuples/expected/lir_01_hoist_scalar_references.txt +4 -4
  76. data/golden/tuples/expected/lir_02_inlined.txt +4 -4
  77. data/golden/tuples/expected/lir_03_cse.txt +4 -4
  78. data/golden/tuples/expected/lir_04_1_loop_fusion.txt +4 -4
  79. data/golden/tuples/expected/lir_04_loop_invcm.txt +4 -4
  80. data/golden/tuples/expected/lir_06_const_prop.txt +4 -4
  81. data/golden/tuples/expected/schema_ruby.rb +1 -1
  82. data/golden/tuples_and_arrays/expected/lir_00_unoptimized.txt +1 -1
  83. data/golden/tuples_and_arrays/expected/lir_01_hoist_scalar_references.txt +1 -1
  84. data/golden/tuples_and_arrays/expected/lir_02_inlined.txt +2 -2
  85. data/golden/tuples_and_arrays/expected/lir_03_cse.txt +2 -2
  86. data/golden/tuples_and_arrays/expected/lir_04_1_loop_fusion.txt +2 -2
  87. data/golden/tuples_and_arrays/expected/lir_04_loop_invcm.txt +2 -2
  88. data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +2 -2
  89. data/golden/tuples_and_arrays/expected/schema_ruby.rb +1 -1
  90. data/golden/us_tax_2024/expected/ast.txt +865 -0
  91. data/golden/us_tax_2024/expected/input_plan.txt +61 -0
  92. data/golden/us_tax_2024/expected/lir_00_unoptimized.txt +901 -0
  93. data/golden/us_tax_2024/expected/lir_01_hoist_scalar_references.txt +901 -0
  94. data/golden/us_tax_2024/expected/lir_02_inlined.txt +5178 -0
  95. data/golden/us_tax_2024/expected/lir_03_cse.txt +2499 -0
  96. data/golden/us_tax_2024/expected/lir_04_1_loop_fusion.txt +2519 -0
  97. data/golden/us_tax_2024/expected/lir_04_loop_invcm.txt +2439 -0
  98. data/golden/us_tax_2024/expected/lir_06_const_prop.txt +2439 -0
  99. data/golden/us_tax_2024/expected/nast.txt +976 -0
  100. data/golden/us_tax_2024/expected/schema_javascript.mjs +584 -0
  101. data/golden/us_tax_2024/expected/schema_ruby.rb +639 -0
  102. data/golden/us_tax_2024/expected/snast.txt +976 -0
  103. data/golden/us_tax_2024/expected.json +1 -0
  104. data/golden/us_tax_2024/input.json +168 -0
  105. data/golden/us_tax_2024/schema.kumi +203 -0
  106. data/golden/with_constants/expected/schema_ruby.rb +1 -1
  107. data/lib/kumi/core/analyzer/passes/lir/inline_declarations_pass.rb +181 -105
  108. data/lib/kumi/version.rb +1 -1
  109. metadata +33 -1
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_e1b6ea8c9c0e0caff4b221e24755552775604680e28bf1c6b8fa4fd27b823c89
2
+ module Kumi::Compiled::KUMI_68f4eddfaff654547ab5cc255f2967d355341b0897b614578dddd6fd9e25c7b8
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_41f6e269d8de923ee6a1de8aef241075923042855e9ac9437d981767ab15a457
2
+ module Kumi::Compiled::KUMI_336c6ae90c9ed351f0bb7257fc77debf7b18d4e0f96efd6da3ffc642c33e77ce
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_119cc0f8a00c98d2c8f40118e2303f491340f895bba53041b192c3728ed62a6a
2
+ module Kumi::Compiled::KUMI_d5dea792f2b7b2c15c898409d0bcfb1df3bd0264d0cb38768562ac6b38adbd7e
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_6956147434af4c2cdea2b50d3a8b5f46f84443101a3d62ab070150885747ccd1
2
+ module Kumi::Compiled::KUMI_f287fabc5c73178904b2d2c681872bb3b1319afebf27a33602b623633c180ca2
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_871501c6e1786defd4537fee6faface2ada1916adf1b700898c08ee292662c42
2
+ module Kumi::Compiled::KUMI_e0419fbf641de528f8d1c03f124e177804f1a04ed69561ff0fe20f04192a818b
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_016a8513cc07df5d92ed90449976ccc5a7cb934ade1e394caab5eb467faca93a
2
+ module Kumi::Compiled::KUMI_3b954603dedc568d2f576b3345109d43555583c88706a3dbe86f8e07cbcfdeb4
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_621112a9f96fd9df9274375684d4aad116dd930db67521f72ec03d1f911fd1ca
2
+ module Kumi::Compiled::KUMI_447413afce4b3071c671c345fe6db361e3d9c77cd6429524b30a40dc63b3f760
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -2,54 +2,54 @@
2
2
  (Declaration roll_right
3
3
  %t1 = load_input "cells" :: array
4
4
  loop cells id=L1 in %t1 as el=%cells_el_2, idx=%cells_i_3
5
- %t4 = Length %t1 :: integer
5
+ %t4 = length %t1 :: integer
6
6
  %t5 = const 1 :: integer
7
7
  %t6 = call core.sub(%cells_i_3, %t5) :: integer
8
8
  %t7 = call core.mod(%t6, %t4) :: integer
9
9
  %t8 = call core.add(%t7, %t4) :: integer
10
10
  %t9 = call core.mod(%t8, %t4) :: integer
11
- %t10 = Gather %t1, %t9 :: integer
11
+ %t10 = gather %t1, %t9 :: integer
12
12
  yield %t10
13
13
  end_loop
14
14
  )
15
15
  (Declaration roll_left
16
16
  %t11 = load_input "cells" :: array
17
17
  loop cells id=L2 in %t11 as el=%cells_el_12, idx=%cells_i_13
18
- %t14 = Length %t11 :: integer
18
+ %t14 = length %t11 :: integer
19
19
  %t15 = const -1 :: integer
20
20
  %t16 = call core.sub(%cells_i_13, %t15) :: integer
21
21
  %t17 = call core.mod(%t16, %t14) :: integer
22
22
  %t18 = call core.add(%t17, %t14) :: integer
23
23
  %t19 = call core.mod(%t18, %t14) :: integer
24
- %t20 = Gather %t11, %t19 :: integer
24
+ %t20 = gather %t11, %t19 :: integer
25
25
  yield %t20
26
26
  end_loop
27
27
  )
28
28
  (Declaration roll_right_clamp
29
29
  %t21 = load_input "cells" :: array
30
30
  loop cells id=L3 in %t21 as el=%cells_el_22, idx=%cells_i_23
31
- %t24 = Length %t21 :: integer
31
+ %t24 = length %t21 :: integer
32
32
  %t25 = const 1 :: integer
33
33
  %t26 = call core.sub(%cells_i_23, %t25) :: integer
34
34
  %t27 = const 1 :: integer
35
35
  %t28 = call core.sub(%t24, %t27) :: integer
36
36
  %t29 = const 0 :: integer
37
37
  %t30 = call core.clamp(%t26, %t29, %t28) :: integer
38
- %t31 = Gather %t21, %t30 :: integer
38
+ %t31 = gather %t21, %t30 :: integer
39
39
  yield %t31
40
40
  end_loop
41
41
  )
42
42
  (Declaration roll_left_clamp
43
43
  %t32 = load_input "cells" :: array
44
44
  loop cells id=L4 in %t32 as el=%cells_el_33, idx=%cells_i_34
45
- %t35 = Length %t32 :: integer
45
+ %t35 = length %t32 :: integer
46
46
  %t36 = const -1 :: integer
47
47
  %t37 = call core.sub(%cells_i_34, %t36) :: integer
48
48
  %t38 = const 1 :: integer
49
49
  %t39 = call core.sub(%t35, %t38) :: integer
50
50
  %t40 = const 0 :: integer
51
51
  %t41 = call core.clamp(%t37, %t40, %t39) :: integer
52
- %t42 = Gather %t32, %t41 :: integer
52
+ %t42 = gather %t32, %t41 :: integer
53
53
  yield %t42
54
54
  end_loop
55
55
  )
@@ -2,54 +2,54 @@
2
2
  (Declaration roll_right
3
3
  %t1 = load_input "cells" :: array
4
4
  loop cells id=L1 in %t1 as el=%cells_el_2, idx=%cells_i_3
5
- %t4 = Length %t1 :: integer
5
+ %t4 = length %t1 :: integer
6
6
  %t5 = const 1 :: integer
7
7
  %t6 = call core.sub(%cells_i_3, %t5) :: integer
8
8
  %t7 = call core.mod(%t6, %t4) :: integer
9
9
  %t8 = call core.add(%t7, %t4) :: integer
10
10
  %t9 = call core.mod(%t8, %t4) :: integer
11
- %t10 = Gather %t1, %t9 :: integer
11
+ %t10 = gather %t1, %t9 :: integer
12
12
  yield %t10
13
13
  end_loop
14
14
  )
15
15
  (Declaration roll_left
16
16
  %t11 = load_input "cells" :: array
17
17
  loop cells id=L2 in %t11 as el=%cells_el_12, idx=%cells_i_13
18
- %t14 = Length %t11 :: integer
18
+ %t14 = length %t11 :: integer
19
19
  %t15 = const -1 :: integer
20
20
  %t16 = call core.sub(%cells_i_13, %t15) :: integer
21
21
  %t17 = call core.mod(%t16, %t14) :: integer
22
22
  %t18 = call core.add(%t17, %t14) :: integer
23
23
  %t19 = call core.mod(%t18, %t14) :: integer
24
- %t20 = Gather %t11, %t19 :: integer
24
+ %t20 = gather %t11, %t19 :: integer
25
25
  yield %t20
26
26
  end_loop
27
27
  )
28
28
  (Declaration roll_right_clamp
29
29
  %t21 = load_input "cells" :: array
30
30
  loop cells id=L3 in %t21 as el=%cells_el_22, idx=%cells_i_23
31
- %t24 = Length %t21 :: integer
31
+ %t24 = length %t21 :: integer
32
32
  %t25 = const 1 :: integer
33
33
  %t26 = call core.sub(%cells_i_23, %t25) :: integer
34
34
  %t27 = const 1 :: integer
35
35
  %t28 = call core.sub(%t24, %t27) :: integer
36
36
  %t29 = const 0 :: integer
37
37
  %t30 = call core.clamp(%t26, %t29, %t28) :: integer
38
- %t31 = Gather %t21, %t30 :: integer
38
+ %t31 = gather %t21, %t30 :: integer
39
39
  yield %t31
40
40
  end_loop
41
41
  )
42
42
  (Declaration roll_left_clamp
43
43
  %t32 = load_input "cells" :: array
44
44
  loop cells id=L4 in %t32 as el=%cells_el_33, idx=%cells_i_34
45
- %t35 = Length %t32 :: integer
45
+ %t35 = length %t32 :: integer
46
46
  %t36 = const -1 :: integer
47
47
  %t37 = call core.sub(%cells_i_34, %t36) :: integer
48
48
  %t38 = const 1 :: integer
49
49
  %t39 = call core.sub(%t35, %t38) :: integer
50
50
  %t40 = const 0 :: integer
51
51
  %t41 = call core.clamp(%t37, %t40, %t39) :: integer
52
- %t42 = Gather %t32, %t41 :: integer
52
+ %t42 = gather %t32, %t41 :: integer
53
53
  yield %t42
54
54
  end_loop
55
55
  )
@@ -2,54 +2,54 @@
2
2
  (Declaration roll_right
3
3
  %t1 = load_input "cells" :: array
4
4
  loop cells id=L1 in %t1 as el=%cells_el_2, idx=%cells_i_3
5
- %t4 = Length %t1 :: integer
5
+ %t4 = length %t1 :: integer
6
6
  %t5 = const 1 :: integer
7
7
  %t6 = call core.sub(%cells_i_3, %t5) :: integer
8
8
  %t7 = call core.mod(%t6, %t4) :: integer
9
9
  %t8 = call core.add(%t7, %t4) :: integer
10
10
  %t9 = call core.mod(%t8, %t4) :: integer
11
- %t10 = Gather %t1, %t9 :: integer
11
+ %t10 = gather %t1, %t9 :: integer
12
12
  yield %t10
13
13
  end_loop
14
14
  )
15
15
  (Declaration roll_left
16
16
  %t11 = load_input "cells" :: array
17
17
  loop cells id=L2 in %t11 as el=%cells_el_12, idx=%cells_i_13
18
- %t14 = Length %t11 :: integer
18
+ %t14 = length %t11 :: integer
19
19
  %t15 = const -1 :: integer
20
20
  %t16 = call core.sub(%cells_i_13, %t15) :: integer
21
21
  %t17 = call core.mod(%t16, %t14) :: integer
22
22
  %t18 = call core.add(%t17, %t14) :: integer
23
23
  %t19 = call core.mod(%t18, %t14) :: integer
24
- %t20 = Gather %t11, %t19 :: integer
24
+ %t20 = gather %t11, %t19 :: integer
25
25
  yield %t20
26
26
  end_loop
27
27
  )
28
28
  (Declaration roll_right_clamp
29
29
  %t21 = load_input "cells" :: array
30
30
  loop cells id=L3 in %t21 as el=%cells_el_22, idx=%cells_i_23
31
- %t24 = Length %t21 :: integer
31
+ %t24 = length %t21 :: integer
32
32
  %t25 = const 1 :: integer
33
33
  %t26 = call core.sub(%cells_i_23, %t25) :: integer
34
34
  %t27 = const 1 :: integer
35
35
  %t28 = call core.sub(%t24, %t27) :: integer
36
36
  %t29 = const 0 :: integer
37
37
  %t30 = call core.clamp(%t26, %t29, %t28) :: integer
38
- %t31 = Gather %t21, %t30 :: integer
38
+ %t31 = gather %t21, %t30 :: integer
39
39
  yield %t31
40
40
  end_loop
41
41
  )
42
42
  (Declaration roll_left_clamp
43
43
  %t32 = load_input "cells" :: array
44
44
  loop cells id=L4 in %t32 as el=%cells_el_33, idx=%cells_i_34
45
- %t35 = Length %t32 :: integer
45
+ %t35 = length %t32 :: integer
46
46
  %t36 = const -1 :: integer
47
47
  %t37 = call core.sub(%cells_i_34, %t36) :: integer
48
48
  %t38 = const 1 :: integer
49
49
  %t39 = call core.sub(%t35, %t38) :: integer
50
50
  %t40 = const 0 :: integer
51
51
  %t41 = call core.clamp(%t37, %t40, %t39) :: integer
52
- %t42 = Gather %t32, %t41 :: integer
52
+ %t42 = gather %t32, %t41 :: integer
53
53
  yield %t42
54
54
  end_loop
55
55
  )
@@ -2,53 +2,53 @@
2
2
  (Declaration roll_right
3
3
  %t1 = load_input "cells" :: array
4
4
  loop cells id=L1 in %t1 as el=%cells_el_2, idx=%cells_i_3
5
- %t4 = Length %t1 :: integer
5
+ %t4 = length %t1 :: integer
6
6
  %t5 = const 1 :: integer
7
7
  %t6 = call core.sub(%cells_i_3, %t5) :: integer
8
8
  %t7 = call core.mod(%t6, %t4) :: integer
9
9
  %t8 = call core.add(%t7, %t4) :: integer
10
10
  %t9 = call core.mod(%t8, %t4) :: integer
11
- %t10 = Gather %t1, %t9 :: integer
11
+ %t10 = gather %t1, %t9 :: integer
12
12
  yield %t10
13
13
  end_loop
14
14
  )
15
15
  (Declaration roll_left
16
16
  %t11 = load_input "cells" :: array
17
17
  loop cells id=L2 in %t11 as el=%cells_el_12, idx=%cells_i_13
18
- %t14 = Length %t11 :: integer
18
+ %t14 = length %t11 :: integer
19
19
  %t15 = const -1 :: integer
20
20
  %t16 = call core.sub(%cells_i_13, %t15) :: integer
21
21
  %t17 = call core.mod(%t16, %t14) :: integer
22
22
  %t18 = call core.add(%t17, %t14) :: integer
23
23
  %t19 = call core.mod(%t18, %t14) :: integer
24
- %t20 = Gather %t11, %t19 :: integer
24
+ %t20 = gather %t11, %t19 :: integer
25
25
  yield %t20
26
26
  end_loop
27
27
  )
28
28
  (Declaration roll_right_clamp
29
29
  %t21 = load_input "cells" :: array
30
30
  loop cells id=L3 in %t21 as el=%cells_el_22, idx=%cells_i_23
31
- %t24 = Length %t21 :: integer
31
+ %t24 = length %t21 :: integer
32
32
  %t25 = const 1 :: integer
33
33
  %t29 = const 0 :: integer
34
34
  %t26 = call core.sub(%cells_i_23, %t25) :: integer
35
35
  %t28 = call core.sub(%t24, %t25) :: integer
36
36
  %t30 = call core.clamp(%t26, %t29, %t28) :: integer
37
- %t31 = Gather %t21, %t30 :: integer
37
+ %t31 = gather %t21, %t30 :: integer
38
38
  yield %t31
39
39
  end_loop
40
40
  )
41
41
  (Declaration roll_left_clamp
42
42
  %t32 = load_input "cells" :: array
43
43
  loop cells id=L4 in %t32 as el=%cells_el_33, idx=%cells_i_34
44
- %t35 = Length %t32 :: integer
44
+ %t35 = length %t32 :: integer
45
45
  %t36 = const -1 :: integer
46
46
  %t38 = const 1 :: integer
47
47
  %t40 = const 0 :: integer
48
48
  %t37 = call core.sub(%cells_i_34, %t36) :: integer
49
49
  %t39 = call core.sub(%t35, %t38) :: integer
50
50
  %t41 = call core.clamp(%t37, %t40, %t39) :: integer
51
- %t42 = Gather %t32, %t41 :: integer
51
+ %t42 = gather %t32, %t41 :: integer
52
52
  yield %t42
53
53
  end_loop
54
54
  )
@@ -2,53 +2,53 @@
2
2
  (Declaration roll_right
3
3
  %t1 = load_input "cells" :: array
4
4
  loop cells id=L1 in %t1 as el=%cells_el_2, idx=%cells_i_3
5
- %t4 = Length %t1 :: integer
5
+ %t4 = length %t1 :: integer
6
6
  %t5 = const 1 :: integer
7
7
  %t6 = call core.sub(%cells_i_3, %t5) :: integer
8
8
  %t7 = call core.mod(%t6, %t4) :: integer
9
9
  %t8 = call core.add(%t7, %t4) :: integer
10
10
  %t9 = call core.mod(%t8, %t4) :: integer
11
- %t10 = Gather %t1, %t9 :: integer
11
+ %t10 = gather %t1, %t9 :: integer
12
12
  yield %t10
13
13
  end_loop
14
14
  )
15
15
  (Declaration roll_left
16
16
  %t11 = load_input "cells" :: array
17
17
  loop cells id=L2 in %t11 as el=%cells_el_12, idx=%cells_i_13
18
- %t14 = Length %t11 :: integer
18
+ %t14 = length %t11 :: integer
19
19
  %t15 = const -1 :: integer
20
20
  %t16 = call core.sub(%cells_i_13, %t15) :: integer
21
21
  %t17 = call core.mod(%t16, %t14) :: integer
22
22
  %t18 = call core.add(%t17, %t14) :: integer
23
23
  %t19 = call core.mod(%t18, %t14) :: integer
24
- %t20 = Gather %t11, %t19 :: integer
24
+ %t20 = gather %t11, %t19 :: integer
25
25
  yield %t20
26
26
  end_loop
27
27
  )
28
28
  (Declaration roll_right_clamp
29
29
  %t21 = load_input "cells" :: array
30
30
  loop cells id=L3 in %t21 as el=%cells_el_22, idx=%cells_i_23
31
- %t24 = Length %t21 :: integer
31
+ %t24 = length %t21 :: integer
32
32
  %t25 = const 1 :: integer
33
33
  %t29 = const 0 :: integer
34
34
  %t26 = call core.sub(%cells_i_23, %t25) :: integer
35
35
  %t28 = call core.sub(%t24, %t25) :: integer
36
36
  %t30 = call core.clamp(%t26, %t29, %t28) :: integer
37
- %t31 = Gather %t21, %t30 :: integer
37
+ %t31 = gather %t21, %t30 :: integer
38
38
  yield %t31
39
39
  end_loop
40
40
  )
41
41
  (Declaration roll_left_clamp
42
42
  %t32 = load_input "cells" :: array
43
43
  loop cells id=L4 in %t32 as el=%cells_el_33, idx=%cells_i_34
44
- %t35 = Length %t32 :: integer
44
+ %t35 = length %t32 :: integer
45
45
  %t36 = const -1 :: integer
46
46
  %t38 = const 1 :: integer
47
47
  %t40 = const 0 :: integer
48
48
  %t37 = call core.sub(%cells_i_34, %t36) :: integer
49
49
  %t39 = call core.sub(%t35, %t38) :: integer
50
50
  %t41 = call core.clamp(%t37, %t40, %t39) :: integer
51
- %t42 = Gather %t32, %t41 :: integer
51
+ %t42 = gather %t32, %t41 :: integer
52
52
  yield %t42
53
53
  end_loop
54
54
  )
@@ -1,46 +1,46 @@
1
1
  (LIR
2
2
  (Declaration roll_right
3
3
  %t1 = load_input "cells" :: array
4
- %t4 = Length %t1 :: integer
4
+ %t4 = length %t1 :: integer
5
5
  %t5 = const 1 :: integer
6
6
  loop cells id=L1 in %t1 as el=%cells_el_2, idx=%cells_i_3
7
7
  %t6 = call core.sub(%cells_i_3, %t5) :: integer
8
8
  %t7 = call core.mod(%t6, %t4) :: integer
9
9
  %t8 = call core.add(%t7, %t4) :: integer
10
10
  %t9 = call core.mod(%t8, %t4) :: integer
11
- %t10 = Gather %t1, %t9 :: integer
11
+ %t10 = gather %t1, %t9 :: integer
12
12
  yield %t10
13
13
  end_loop
14
14
  )
15
15
  (Declaration roll_left
16
16
  %t11 = load_input "cells" :: array
17
- %t14 = Length %t11 :: integer
17
+ %t14 = length %t11 :: integer
18
18
  %t15 = const -1 :: integer
19
19
  loop cells id=L2 in %t11 as el=%cells_el_12, idx=%cells_i_13
20
20
  %t16 = call core.sub(%cells_i_13, %t15) :: integer
21
21
  %t17 = call core.mod(%t16, %t14) :: integer
22
22
  %t18 = call core.add(%t17, %t14) :: integer
23
23
  %t19 = call core.mod(%t18, %t14) :: integer
24
- %t20 = Gather %t11, %t19 :: integer
24
+ %t20 = gather %t11, %t19 :: integer
25
25
  yield %t20
26
26
  end_loop
27
27
  )
28
28
  (Declaration roll_right_clamp
29
29
  %t21 = load_input "cells" :: array
30
- %t24 = Length %t21 :: integer
30
+ %t24 = length %t21 :: integer
31
31
  %t25 = const 1 :: integer
32
32
  %t29 = const 0 :: integer
33
33
  %t28 = call core.sub(%t24, %t25) :: integer
34
34
  loop cells id=L3 in %t21 as el=%cells_el_22, idx=%cells_i_23
35
35
  %t26 = call core.sub(%cells_i_23, %t25) :: integer
36
36
  %t30 = call core.clamp(%t26, %t29, %t28) :: integer
37
- %t31 = Gather %t21, %t30 :: integer
37
+ %t31 = gather %t21, %t30 :: integer
38
38
  yield %t31
39
39
  end_loop
40
40
  )
41
41
  (Declaration roll_left_clamp
42
42
  %t32 = load_input "cells" :: array
43
- %t35 = Length %t32 :: integer
43
+ %t35 = length %t32 :: integer
44
44
  %t36 = const -1 :: integer
45
45
  %t38 = const 1 :: integer
46
46
  %t40 = const 0 :: integer
@@ -48,7 +48,7 @@
48
48
  loop cells id=L4 in %t32 as el=%cells_el_33, idx=%cells_i_34
49
49
  %t37 = call core.sub(%cells_i_34, %t36) :: integer
50
50
  %t41 = call core.clamp(%t37, %t40, %t39) :: integer
51
- %t42 = Gather %t32, %t41 :: integer
51
+ %t42 = gather %t32, %t41 :: integer
52
52
  yield %t42
53
53
  end_loop
54
54
  )
@@ -1,46 +1,46 @@
1
1
  (LIR
2
2
  (Declaration roll_right
3
3
  %t1 = load_input "cells" :: array
4
- %t4 = Length %t1 :: integer
4
+ %t4 = length %t1 :: integer
5
5
  %t5 = const 1 :: integer
6
6
  loop cells id=L1 in %t1 as el=%cells_el_2, idx=%cells_i_3
7
7
  %t6 = call core.sub(%cells_i_3, %t5) :: integer
8
8
  %t7 = call core.mod(%t6, %t4) :: integer
9
9
  %t8 = call core.add(%t7, %t4) :: integer
10
10
  %t9 = call core.mod(%t8, %t4) :: integer
11
- %t10 = Gather %t1, %t9 :: integer
11
+ %t10 = gather %t1, %t9 :: integer
12
12
  yield %t10
13
13
  end_loop
14
14
  )
15
15
  (Declaration roll_left
16
16
  %t11 = load_input "cells" :: array
17
- %t14 = Length %t11 :: integer
17
+ %t14 = length %t11 :: integer
18
18
  %t15 = const -1 :: integer
19
19
  loop cells id=L2 in %t11 as el=%cells_el_12, idx=%cells_i_13
20
20
  %t16 = call core.sub(%cells_i_13, %t15) :: integer
21
21
  %t17 = call core.mod(%t16, %t14) :: integer
22
22
  %t18 = call core.add(%t17, %t14) :: integer
23
23
  %t19 = call core.mod(%t18, %t14) :: integer
24
- %t20 = Gather %t11, %t19 :: integer
24
+ %t20 = gather %t11, %t19 :: integer
25
25
  yield %t20
26
26
  end_loop
27
27
  )
28
28
  (Declaration roll_right_clamp
29
29
  %t21 = load_input "cells" :: array
30
- %t24 = Length %t21 :: integer
30
+ %t24 = length %t21 :: integer
31
31
  %t25 = const 1 :: integer
32
32
  %t29 = const 0 :: integer
33
33
  %t28 = call core.sub(%t24, %t25) :: integer
34
34
  loop cells id=L3 in %t21 as el=%cells_el_22, idx=%cells_i_23
35
35
  %t26 = call core.sub(%cells_i_23, %t25) :: integer
36
36
  %t30 = call core.clamp(%t26, %t29, %t28) :: integer
37
- %t31 = Gather %t21, %t30 :: integer
37
+ %t31 = gather %t21, %t30 :: integer
38
38
  yield %t31
39
39
  end_loop
40
40
  )
41
41
  (Declaration roll_left_clamp
42
42
  %t32 = load_input "cells" :: array
43
- %t35 = Length %t32 :: integer
43
+ %t35 = length %t32 :: integer
44
44
  %t36 = const -1 :: integer
45
45
  %t38 = const 1 :: integer
46
46
  %t40 = const 0 :: integer
@@ -48,7 +48,7 @@
48
48
  loop cells id=L4 in %t32 as el=%cells_el_33, idx=%cells_i_34
49
49
  %t37 = call core.sub(%cells_i_34, %t36) :: integer
50
50
  %t41 = call core.clamp(%t37, %t40, %t39) :: integer
51
- %t42 = Gather %t32, %t41 :: integer
51
+ %t42 = gather %t32, %t41 :: integer
52
52
  yield %t42
53
53
  end_loop
54
54
  )
@@ -1,5 +1,5 @@
1
1
  # Autogenerated by Kumi Codegen
2
- module Kumi::Compiled::KUMI_5886cf1ff229fe88f8837131fddfca7b705ef9e6f4195008b6854677f947ef6b
2
+ module Kumi::Compiled::KUMI_cfbcf7cb51fcc9e86ca004a8b3a97b403e94a17dab1ff27d148cdca41ad73688
3
3
  def self.from(input_data = nil)
4
4
  instance = Object.new
5
5
  instance.extend(self)
@@ -2,7 +2,7 @@
2
2
  (Declaration shift_right_zero
3
3
  %t1 = load_input "cells" :: array
4
4
  loop cells id=L1 in %t1 as el=%cells_el_2, idx=%cells_i_3
5
- %t4 = Length %t1 :: integer
5
+ %t4 = length %t1 :: integer
6
6
  %t5 = const 1 :: integer
7
7
  %t6 = call core.sub(%cells_i_3, %t5) :: integer
8
8
  %t7 = const 0 :: integer
@@ -13,7 +13,7 @@
13
13
  %t12 = call core.sub(%t4, %t11) :: integer
14
14
  %t13 = const 0 :: integer
15
15
  %t14 = call core.clamp(%t6, %t13, %t12) :: integer
16
- %t15 = Gather %t1, %t14 :: integer
16
+ %t15 = gather %t1, %t14 :: integer
17
17
  %t16 = const 0 :: integer
18
18
  %t17 = select %t10, %t15, %t16 :: integer
19
19
  yield %t17
@@ -22,7 +22,7 @@
22
22
  (Declaration shift_left_zero
23
23
  %t18 = load_input "cells" :: array
24
24
  loop cells id=L2 in %t18 as el=%cells_el_19, idx=%cells_i_20
25
- %t21 = Length %t18 :: integer
25
+ %t21 = length %t18 :: integer
26
26
  %t22 = const -1 :: integer
27
27
  %t23 = call core.sub(%cells_i_20, %t22) :: integer
28
28
  %t24 = const 0 :: integer
@@ -33,7 +33,7 @@
33
33
  %t29 = call core.sub(%t21, %t28) :: integer
34
34
  %t30 = const 0 :: integer
35
35
  %t31 = call core.clamp(%t23, %t30, %t29) :: integer
36
- %t32 = Gather %t18, %t31 :: integer
36
+ %t32 = gather %t18, %t31 :: integer
37
37
  %t33 = const 0 :: integer
38
38
  %t34 = select %t27, %t32, %t33 :: integer
39
39
  yield %t34
@@ -42,54 +42,54 @@
42
42
  (Declaration shift_right_clamp
43
43
  %t35 = load_input "cells" :: array
44
44
  loop cells id=L3 in %t35 as el=%cells_el_36, idx=%cells_i_37
45
- %t38 = Length %t35 :: integer
45
+ %t38 = length %t35 :: integer
46
46
  %t39 = const 1 :: integer
47
47
  %t40 = call core.sub(%cells_i_37, %t39) :: integer
48
48
  %t41 = const 1 :: integer
49
49
  %t42 = call core.sub(%t38, %t41) :: integer
50
50
  %t43 = const 0 :: integer
51
51
  %t44 = call core.clamp(%t40, %t43, %t42) :: integer
52
- %t45 = Gather %t35, %t44 :: integer
52
+ %t45 = gather %t35, %t44 :: integer
53
53
  yield %t45
54
54
  end_loop
55
55
  )
56
56
  (Declaration shift_left_clamp
57
57
  %t46 = load_input "cells" :: array
58
58
  loop cells id=L4 in %t46 as el=%cells_el_47, idx=%cells_i_48
59
- %t49 = Length %t46 :: integer
59
+ %t49 = length %t46 :: integer
60
60
  %t50 = const -1 :: integer
61
61
  %t51 = call core.sub(%cells_i_48, %t50) :: integer
62
62
  %t52 = const 1 :: integer
63
63
  %t53 = call core.sub(%t49, %t52) :: integer
64
64
  %t54 = const 0 :: integer
65
65
  %t55 = call core.clamp(%t51, %t54, %t53) :: integer
66
- %t56 = Gather %t46, %t55 :: integer
66
+ %t56 = gather %t46, %t55 :: integer
67
67
  yield %t56
68
68
  end_loop
69
69
  )
70
70
  (Declaration shift_right_wrap
71
71
  %t57 = load_input "cells" :: array
72
72
  loop cells id=L5 in %t57 as el=%cells_el_58, idx=%cells_i_59
73
- %t60 = Length %t57 :: integer
73
+ %t60 = length %t57 :: integer
74
74
  %t61 = const 1 :: integer
75
75
  %t62 = call core.sub(%cells_i_59, %t61) :: integer
76
76
  %t63 = call core.mod(%t62, %t60) :: integer
77
77
  %t64 = call core.add(%t63, %t60) :: integer
78
78
  %t65 = call core.mod(%t64, %t60) :: integer
79
- %t66 = Gather %t57, %t65 :: integer
79
+ %t66 = gather %t57, %t65 :: integer
80
80
  yield %t66
81
81
  end_loop
82
82
  )
83
83
  (Declaration shift_left_wrap
84
84
  %t67 = load_input "cells" :: array
85
85
  loop cells id=L6 in %t67 as el=%cells_el_68, idx=%cells_i_69
86
- %t70 = Length %t67 :: integer
86
+ %t70 = length %t67 :: integer
87
87
  %t71 = const -1 :: integer
88
88
  %t72 = call core.sub(%cells_i_69, %t71) :: integer
89
89
  %t73 = call core.mod(%t72, %t70) :: integer
90
90
  %t74 = call core.add(%t73, %t70) :: integer
91
91
  %t75 = call core.mod(%t74, %t70) :: integer
92
- %t76 = Gather %t67, %t75 :: integer
92
+ %t76 = gather %t67, %t75 :: integer
93
93
  yield %t76
94
94
  end_loop
95
95
  )