kumi 0.0.22 → 0.0.24

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