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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/README.md +2 -2
- data/golden/array_element/expected/schema_ruby.rb +1 -1
- data/golden/array_index/expected/schema_ruby.rb +1 -1
- data/golden/array_operations/expected/schema_ruby.rb +1 -1
- data/golden/cascade_logic/expected/schema_ruby.rb +1 -1
- data/golden/chained_fusion/expected/schema_ruby.rb +1 -1
- data/golden/element_arrays/expected/schema_ruby.rb +1 -1
- data/golden/empty_and_null_inputs/expected/schema_ruby.rb +1 -1
- data/golden/game_of_life/expected/lir_00_unoptimized.txt +33 -33
- data/golden/game_of_life/expected/lir_01_hoist_scalar_references.txt +33 -33
- data/golden/game_of_life/expected/lir_02_inlined.txt +296 -296
- data/golden/game_of_life/expected/lir_03_cse.txt +128 -128
- data/golden/game_of_life/expected/lir_04_1_loop_fusion.txt +128 -128
- data/golden/game_of_life/expected/lir_04_loop_invcm.txt +128 -128
- data/golden/game_of_life/expected/lir_06_const_prop.txt +128 -128
- data/golden/game_of_life/expected/schema_ruby.rb +1 -1
- data/golden/hash_keys/expected/schema_ruby.rb +1 -1
- data/golden/hash_keys/schema.kumi +4 -5
- data/golden/hash_value/expected/schema_ruby.rb +1 -1
- data/golden/hierarchical_complex/expected/schema_ruby.rb +1 -1
- data/golden/inline_rename_scope_leak/expected/ast.txt +48 -0
- data/golden/inline_rename_scope_leak/expected/input_plan.txt +10 -0
- data/golden/inline_rename_scope_leak/expected/lir_00_unoptimized.txt +35 -0
- data/golden/inline_rename_scope_leak/expected/lir_01_hoist_scalar_references.txt +35 -0
- data/golden/inline_rename_scope_leak/expected/lir_02_inlined.txt +49 -0
- data/golden/inline_rename_scope_leak/expected/lir_03_cse.txt +49 -0
- data/golden/inline_rename_scope_leak/expected/lir_04_1_loop_fusion.txt +49 -0
- data/golden/inline_rename_scope_leak/expected/lir_04_loop_invcm.txt +49 -0
- data/golden/inline_rename_scope_leak/expected/lir_06_const_prop.txt +49 -0
- data/golden/inline_rename_scope_leak/expected/nast.txt +31 -0
- data/golden/inline_rename_scope_leak/expected/schema_javascript.mjs +51 -0
- data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +82 -0
- data/golden/inline_rename_scope_leak/expected/snast.txt +31 -0
- data/golden/inline_rename_scope_leak/expected.json +7 -0
- data/golden/inline_rename_scope_leak/input.json +4 -0
- data/golden/inline_rename_scope_leak/schema.kumi +24 -0
- data/golden/input_reference/expected/schema_ruby.rb +1 -1
- data/golden/interleaved_fusion/expected/schema_ruby.rb +1 -1
- data/golden/let_inline/expected/schema_ruby.rb +1 -1
- data/golden/loop_fusion/expected/schema_ruby.rb +1 -1
- data/golden/min_reduce_scope/expected/schema_ruby.rb +1 -1
- data/golden/mixed_dimensions/expected/schema_ruby.rb +1 -1
- data/golden/multirank_hoisting/expected/schema_ruby.rb +1 -1
- data/golden/nested_hash/expected/schema_ruby.rb +1 -1
- data/golden/reduction_broadcast/expected/schema_ruby.rb +1 -1
- data/golden/roll/expected/lir_00_unoptimized.txt +8 -8
- data/golden/roll/expected/lir_01_hoist_scalar_references.txt +8 -8
- data/golden/roll/expected/lir_02_inlined.txt +8 -8
- data/golden/roll/expected/lir_03_cse.txt +8 -8
- data/golden/roll/expected/lir_04_1_loop_fusion.txt +8 -8
- data/golden/roll/expected/lir_04_loop_invcm.txt +8 -8
- data/golden/roll/expected/lir_06_const_prop.txt +8 -8
- data/golden/roll/expected/schema_ruby.rb +1 -1
- data/golden/shift/expected/lir_00_unoptimized.txt +12 -12
- data/golden/shift/expected/lir_01_hoist_scalar_references.txt +12 -12
- data/golden/shift/expected/lir_02_inlined.txt +12 -12
- data/golden/shift/expected/lir_03_cse.txt +12 -12
- data/golden/shift/expected/lir_04_1_loop_fusion.txt +12 -12
- data/golden/shift/expected/lir_04_loop_invcm.txt +12 -12
- data/golden/shift/expected/lir_06_const_prop.txt +12 -12
- data/golden/shift/expected/schema_ruby.rb +1 -1
- data/golden/shift_2d/expected/lir_00_unoptimized.txt +48 -48
- data/golden/shift_2d/expected/lir_01_hoist_scalar_references.txt +48 -48
- data/golden/shift_2d/expected/lir_02_inlined.txt +48 -48
- data/golden/shift_2d/expected/lir_03_cse.txt +48 -48
- data/golden/shift_2d/expected/lir_04_1_loop_fusion.txt +48 -48
- data/golden/shift_2d/expected/lir_04_loop_invcm.txt +48 -48
- data/golden/shift_2d/expected/lir_06_const_prop.txt +48 -48
- data/golden/shift_2d/expected/schema_ruby.rb +1 -1
- data/golden/simple_math/expected/schema_ruby.rb +1 -1
- data/golden/streaming_basics/expected/schema_ruby.rb +1 -1
- data/golden/tuples/expected/lir_00_unoptimized.txt +4 -4
- data/golden/tuples/expected/lir_01_hoist_scalar_references.txt +4 -4
- data/golden/tuples/expected/lir_02_inlined.txt +4 -4
- data/golden/tuples/expected/lir_03_cse.txt +4 -4
- data/golden/tuples/expected/lir_04_1_loop_fusion.txt +4 -4
- data/golden/tuples/expected/lir_04_loop_invcm.txt +4 -4
- data/golden/tuples/expected/lir_06_const_prop.txt +4 -4
- data/golden/tuples/expected/schema_ruby.rb +1 -1
- data/golden/tuples_and_arrays/expected/lir_00_unoptimized.txt +1 -1
- data/golden/tuples_and_arrays/expected/lir_01_hoist_scalar_references.txt +1 -1
- data/golden/tuples_and_arrays/expected/lir_02_inlined.txt +2 -2
- data/golden/tuples_and_arrays/expected/lir_03_cse.txt +2 -2
- data/golden/tuples_and_arrays/expected/lir_04_1_loop_fusion.txt +2 -2
- data/golden/tuples_and_arrays/expected/lir_04_loop_invcm.txt +2 -2
- data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +2 -2
- data/golden/tuples_and_arrays/expected/schema_ruby.rb +1 -1
- data/golden/us_tax_2024/expected/ast.txt +865 -0
- data/golden/us_tax_2024/expected/input_plan.txt +61 -0
- data/golden/us_tax_2024/expected/lir_00_unoptimized.txt +901 -0
- data/golden/us_tax_2024/expected/lir_01_hoist_scalar_references.txt +901 -0
- data/golden/us_tax_2024/expected/lir_02_inlined.txt +5178 -0
- data/golden/us_tax_2024/expected/lir_03_cse.txt +2499 -0
- data/golden/us_tax_2024/expected/lir_04_1_loop_fusion.txt +2519 -0
- data/golden/us_tax_2024/expected/lir_04_loop_invcm.txt +2439 -0
- data/golden/us_tax_2024/expected/lir_06_const_prop.txt +2439 -0
- data/golden/us_tax_2024/expected/nast.txt +976 -0
- data/golden/us_tax_2024/expected/schema_javascript.mjs +584 -0
- data/golden/us_tax_2024/expected/schema_ruby.rb +639 -0
- data/golden/us_tax_2024/expected/snast.txt +976 -0
- data/golden/us_tax_2024/expected.json +1 -0
- data/golden/us_tax_2024/input.json +168 -0
- data/golden/us_tax_2024/schema.kumi +203 -0
- data/golden/with_constants/expected/schema_ruby.rb +1 -1
- data/lib/kumi/core/analyzer/passes/lir/inline_declarations_pass.rb +181 -105
- data/lib/kumi/version.rb +1 -1
- metadata +33 -1
@@ -1,5 +1,5 @@
|
|
1
1
|
# Autogenerated by Kumi Codegen
|
2
|
-
module Kumi::Compiled::
|
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::
|
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::
|
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::
|
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::
|
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::
|
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::
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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::
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
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 =
|
92
|
+
%t76 = gather %t67, %t75 :: integer
|
93
93
|
yield %t76
|
94
94
|
end_loop
|
95
95
|
)
|