kumi 0.0.24 → 0.0.26

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 (234) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -0
  3. data/README.md +70 -71
  4. data/data/functions/agg/boolean.yaml +6 -2
  5. data/data/functions/agg/numeric.yaml +32 -16
  6. data/data/functions/agg/string.yaml +4 -3
  7. data/data/functions/core/arithmetic.yaml +62 -14
  8. data/data/functions/core/boolean.yaml +12 -6
  9. data/data/functions/core/comparison.yaml +25 -13
  10. data/data/functions/core/constructor.yaml +16 -8
  11. data/data/functions/core/select.yaml +3 -1
  12. data/data/functions/core/stencil.yaml +14 -5
  13. data/data/functions/core/string.yaml +9 -4
  14. data/data/kernels/ruby/agg/numeric.yaml +1 -1
  15. data/docs/UNSAT_DETECTION.md +83 -0
  16. data/golden/array_element/expected/nast.txt +1 -1
  17. data/golden/array_element/expected/schema_ruby.rb +1 -1
  18. data/golden/array_index/expected/nast.txt +7 -7
  19. data/golden/array_index/expected/schema_ruby.rb +1 -1
  20. data/golden/array_operations/expected/nast.txt +2 -2
  21. data/golden/array_operations/expected/schema_ruby.rb +1 -1
  22. data/golden/array_operations/expected/snast.txt +3 -3
  23. data/golden/cascade_logic/expected/lir_02_inlined.txt +8 -8
  24. data/golden/cascade_logic/expected/schema_ruby.rb +1 -1
  25. data/golden/cascade_logic/expected/snast.txt +2 -2
  26. data/golden/chained_fusion/expected/lir_02_inlined.txt +36 -36
  27. data/golden/chained_fusion/expected/lir_03_cse.txt +23 -23
  28. data/golden/chained_fusion/expected/lir_04_1_loop_fusion.txt +25 -25
  29. data/golden/chained_fusion/expected/lir_04_loop_invcm.txt +23 -23
  30. data/golden/chained_fusion/expected/lir_06_const_prop.txt +23 -23
  31. data/golden/chained_fusion/expected/nast.txt +2 -2
  32. data/golden/chained_fusion/expected/schema_javascript.mjs +23 -23
  33. data/golden/chained_fusion/expected/schema_ruby.rb +28 -28
  34. data/golden/element_arrays/expected/nast.txt +2 -2
  35. data/golden/element_arrays/expected/schema_ruby.rb +1 -1
  36. data/golden/element_arrays/expected/snast.txt +1 -1
  37. data/golden/empty_and_null_inputs/expected/lir_02_inlined.txt +18 -18
  38. data/golden/empty_and_null_inputs/expected/lir_03_cse.txt +17 -17
  39. data/golden/empty_and_null_inputs/expected/lir_04_1_loop_fusion.txt +17 -17
  40. data/golden/empty_and_null_inputs/expected/lir_04_loop_invcm.txt +17 -17
  41. data/golden/empty_and_null_inputs/expected/lir_06_const_prop.txt +17 -17
  42. data/golden/empty_and_null_inputs/expected/nast.txt +3 -3
  43. data/golden/empty_and_null_inputs/expected/schema_javascript.mjs +13 -13
  44. data/golden/empty_and_null_inputs/expected/schema_ruby.rb +18 -18
  45. data/golden/function_overload/expected/ast.txt +29 -0
  46. data/golden/function_overload/expected/input_plan.txt +4 -0
  47. data/golden/function_overload/expected/lir_00_unoptimized.txt +18 -0
  48. data/golden/function_overload/expected/lir_01_hoist_scalar_references.txt +18 -0
  49. data/golden/function_overload/expected/lir_02_inlined.txt +20 -0
  50. data/golden/function_overload/expected/lir_03_cse.txt +20 -0
  51. data/golden/function_overload/expected/lir_04_1_loop_fusion.txt +20 -0
  52. data/golden/function_overload/expected/lir_04_loop_invcm.txt +20 -0
  53. data/golden/function_overload/expected/lir_06_const_prop.txt +20 -0
  54. data/golden/function_overload/expected/nast.txt +22 -0
  55. data/golden/function_overload/expected/schema_javascript.mjs +12 -0
  56. data/golden/function_overload/expected/schema_ruby.rb +39 -0
  57. data/golden/function_overload/expected/snast.txt +22 -0
  58. data/golden/function_overload/input.json +8 -0
  59. data/golden/function_overload/schema.kumi +19 -0
  60. data/golden/game_of_life/expected/lir_00_unoptimized.txt +4 -4
  61. data/golden/game_of_life/expected/lir_01_hoist_scalar_references.txt +4 -4
  62. data/golden/game_of_life/expected/lir_02_inlined.txt +1294 -1294
  63. data/golden/game_of_life/expected/lir_03_cse.txt +403 -399
  64. data/golden/game_of_life/expected/lir_04_1_loop_fusion.txt +403 -399
  65. data/golden/game_of_life/expected/lir_04_loop_invcm.txt +403 -399
  66. data/golden/game_of_life/expected/lir_06_const_prop.txt +403 -399
  67. data/golden/game_of_life/expected/nast.txt +4 -4
  68. data/golden/game_of_life/expected/schema_javascript.mjs +87 -85
  69. data/golden/game_of_life/expected/schema_ruby.rb +88 -86
  70. data/golden/game_of_life/expected/snast.txt +10 -10
  71. data/golden/hash_keys/expected/schema_ruby.rb +1 -1
  72. data/golden/hash_value/expected/nast.txt +1 -1
  73. data/golden/hash_value/expected/schema_ruby.rb +1 -1
  74. data/golden/hash_value/expected/snast.txt +1 -1
  75. data/golden/hierarchical_complex/expected/lir_02_inlined.txt +15 -15
  76. data/golden/hierarchical_complex/expected/lir_03_cse.txt +1 -1
  77. data/golden/hierarchical_complex/expected/lir_04_1_loop_fusion.txt +1 -1
  78. data/golden/hierarchical_complex/expected/lir_04_loop_invcm.txt +1 -1
  79. data/golden/hierarchical_complex/expected/lir_06_const_prop.txt +1 -1
  80. data/golden/hierarchical_complex/expected/nast.txt +3 -3
  81. data/golden/hierarchical_complex/expected/schema_javascript.mjs +1 -1
  82. data/golden/hierarchical_complex/expected/schema_ruby.rb +2 -2
  83. data/golden/hierarchical_complex/expected/snast.txt +3 -3
  84. data/golden/inline_rename_scope_leak/expected/nast.txt +3 -3
  85. data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +1 -1
  86. data/golden/input_reference/expected/nast.txt +2 -2
  87. data/golden/input_reference/expected/schema_ruby.rb +1 -1
  88. data/golden/interleaved_fusion/expected/lir_02_inlined.txt +35 -35
  89. data/golden/interleaved_fusion/expected/lir_03_cse.txt +26 -26
  90. data/golden/interleaved_fusion/expected/lir_04_1_loop_fusion.txt +27 -26
  91. data/golden/interleaved_fusion/expected/lir_04_loop_invcm.txt +26 -26
  92. data/golden/interleaved_fusion/expected/lir_06_const_prop.txt +26 -26
  93. data/golden/interleaved_fusion/expected/nast.txt +2 -2
  94. data/golden/interleaved_fusion/expected/schema_javascript.mjs +23 -23
  95. data/golden/interleaved_fusion/expected/schema_ruby.rb +29 -29
  96. data/golden/let_inline/expected/nast.txt +4 -4
  97. data/golden/let_inline/expected/schema_ruby.rb +1 -1
  98. data/golden/loop_fusion/expected/lir_02_inlined.txt +17 -17
  99. data/golden/loop_fusion/expected/lir_03_cse.txt +14 -14
  100. data/golden/loop_fusion/expected/lir_04_1_loop_fusion.txt +14 -14
  101. data/golden/loop_fusion/expected/lir_04_loop_invcm.txt +14 -14
  102. data/golden/loop_fusion/expected/lir_06_const_prop.txt +14 -14
  103. data/golden/loop_fusion/expected/nast.txt +1 -1
  104. data/golden/loop_fusion/expected/schema_javascript.mjs +12 -12
  105. data/golden/loop_fusion/expected/schema_ruby.rb +16 -16
  106. data/golden/min_reduce_scope/expected/nast.txt +3 -3
  107. data/golden/min_reduce_scope/expected/schema_ruby.rb +1 -1
  108. data/golden/min_reduce_scope/expected/snast.txt +1 -1
  109. data/golden/mixed_dimensions/expected/lir_02_inlined.txt +5 -5
  110. data/golden/mixed_dimensions/expected/lir_03_cse.txt +5 -5
  111. data/golden/mixed_dimensions/expected/lir_04_1_loop_fusion.txt +5 -5
  112. data/golden/mixed_dimensions/expected/lir_04_loop_invcm.txt +5 -5
  113. data/golden/mixed_dimensions/expected/lir_06_const_prop.txt +5 -5
  114. data/golden/mixed_dimensions/expected/nast.txt +2 -2
  115. data/golden/mixed_dimensions/expected/schema_javascript.mjs +3 -3
  116. data/golden/mixed_dimensions/expected/schema_ruby.rb +6 -6
  117. data/golden/multirank_hoisting/expected/lir_02_inlined.txt +48 -48
  118. data/golden/multirank_hoisting/expected/lir_03_cse.txt +35 -35
  119. data/golden/multirank_hoisting/expected/lir_04_1_loop_fusion.txt +35 -35
  120. data/golden/multirank_hoisting/expected/lir_04_loop_invcm.txt +35 -35
  121. data/golden/multirank_hoisting/expected/lir_06_const_prop.txt +35 -35
  122. data/golden/multirank_hoisting/expected/nast.txt +7 -7
  123. data/golden/multirank_hoisting/expected/schema_javascript.mjs +34 -34
  124. data/golden/multirank_hoisting/expected/schema_ruby.rb +36 -36
  125. data/golden/nested_hash/expected/nast.txt +1 -1
  126. data/golden/nested_hash/expected/schema_ruby.rb +1 -1
  127. data/golden/reduction_broadcast/expected/lir_02_inlined.txt +30 -30
  128. data/golden/reduction_broadcast/expected/lir_03_cse.txt +22 -22
  129. data/golden/reduction_broadcast/expected/lir_04_1_loop_fusion.txt +22 -22
  130. data/golden/reduction_broadcast/expected/lir_04_loop_invcm.txt +22 -22
  131. data/golden/reduction_broadcast/expected/lir_06_const_prop.txt +22 -22
  132. data/golden/reduction_broadcast/expected/nast.txt +3 -3
  133. data/golden/reduction_broadcast/expected/schema_javascript.mjs +18 -18
  134. data/golden/reduction_broadcast/expected/schema_ruby.rb +23 -23
  135. data/golden/reduction_broadcast/expected/snast.txt +1 -1
  136. data/golden/roll/expected/schema_ruby.rb +1 -1
  137. data/golden/shift/expected/schema_ruby.rb +1 -1
  138. data/golden/shift_2d/expected/schema_ruby.rb +1 -1
  139. data/golden/simple_math/expected/lir_00_unoptimized.txt +1 -1
  140. data/golden/simple_math/expected/lir_01_hoist_scalar_references.txt +1 -1
  141. data/golden/simple_math/expected/lir_02_inlined.txt +1 -1
  142. data/golden/simple_math/expected/lir_03_cse.txt +1 -1
  143. data/golden/simple_math/expected/lir_04_1_loop_fusion.txt +1 -1
  144. data/golden/simple_math/expected/lir_04_loop_invcm.txt +1 -1
  145. data/golden/simple_math/expected/lir_06_const_prop.txt +1 -1
  146. data/golden/simple_math/expected/nast.txt +5 -5
  147. data/golden/simple_math/expected/schema_ruby.rb +1 -1
  148. data/golden/simple_math/expected/snast.txt +2 -2
  149. data/golden/streaming_basics/expected/lir_02_inlined.txt +25 -25
  150. data/golden/streaming_basics/expected/lir_03_cse.txt +13 -13
  151. data/golden/streaming_basics/expected/lir_04_1_loop_fusion.txt +13 -13
  152. data/golden/streaming_basics/expected/lir_04_loop_invcm.txt +13 -13
  153. data/golden/streaming_basics/expected/lir_06_const_prop.txt +13 -13
  154. data/golden/streaming_basics/expected/nast.txt +8 -8
  155. data/golden/streaming_basics/expected/schema_javascript.mjs +13 -13
  156. data/golden/streaming_basics/expected/schema_ruby.rb +14 -14
  157. data/golden/streaming_basics/expected/snast.txt +1 -1
  158. data/golden/tuples/expected/lir_00_unoptimized.txt +5 -5
  159. data/golden/tuples/expected/lir_01_hoist_scalar_references.txt +5 -5
  160. data/golden/tuples/expected/lir_02_inlined.txt +5 -5
  161. data/golden/tuples/expected/lir_03_cse.txt +5 -5
  162. data/golden/tuples/expected/lir_04_1_loop_fusion.txt +5 -5
  163. data/golden/tuples/expected/lir_04_loop_invcm.txt +5 -5
  164. data/golden/tuples/expected/lir_06_const_prop.txt +5 -5
  165. data/golden/tuples/expected/nast.txt +4 -4
  166. data/golden/tuples/expected/schema_ruby.rb +1 -1
  167. data/golden/tuples/expected/snast.txt +6 -6
  168. data/golden/tuples_and_arrays/expected/lir_00_unoptimized.txt +1 -1
  169. data/golden/tuples_and_arrays/expected/lir_01_hoist_scalar_references.txt +1 -1
  170. data/golden/tuples_and_arrays/expected/lir_02_inlined.txt +17 -17
  171. data/golden/tuples_and_arrays/expected/lir_03_cse.txt +13 -13
  172. data/golden/tuples_and_arrays/expected/lir_04_1_loop_fusion.txt +13 -13
  173. data/golden/tuples_and_arrays/expected/lir_04_loop_invcm.txt +13 -13
  174. data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +13 -13
  175. data/golden/tuples_and_arrays/expected/nast.txt +3 -3
  176. data/golden/tuples_and_arrays/expected/schema_javascript.mjs +13 -13
  177. data/golden/tuples_and_arrays/expected/schema_ruby.rb +14 -14
  178. data/golden/tuples_and_arrays/expected/snast.txt +2 -2
  179. data/golden/us_tax_2024/expected/ast.txt +63 -670
  180. data/golden/us_tax_2024/expected/input_plan.txt +8 -45
  181. data/golden/us_tax_2024/expected/lir_00_unoptimized.txt +253 -863
  182. data/golden/us_tax_2024/expected/lir_01_hoist_scalar_references.txt +253 -863
  183. data/golden/us_tax_2024/expected/lir_02_inlined.txt +1215 -5139
  184. data/golden/us_tax_2024/expected/lir_03_cse.txt +587 -2460
  185. data/golden/us_tax_2024/expected/lir_04_1_loop_fusion.txt +632 -2480
  186. data/golden/us_tax_2024/expected/lir_04_loop_invcm.txt +587 -2400
  187. data/golden/us_tax_2024/expected/lir_06_const_prop.txt +587 -2400
  188. data/golden/us_tax_2024/expected/nast.txt +123 -826
  189. data/golden/us_tax_2024/expected/schema_javascript.mjs +127 -581
  190. data/golden/us_tax_2024/expected/schema_ruby.rb +135 -610
  191. data/golden/us_tax_2024/expected/snast.txt +155 -858
  192. data/golden/us_tax_2024/expected.json +120 -1
  193. data/golden/us_tax_2024/input.json +18 -9
  194. data/golden/us_tax_2024/schema.kumi +48 -178
  195. data/golden/with_constants/expected/lir_00_unoptimized.txt +1 -1
  196. data/golden/with_constants/expected/lir_01_hoist_scalar_references.txt +1 -1
  197. data/golden/with_constants/expected/lir_02_inlined.txt +1 -1
  198. data/golden/with_constants/expected/lir_03_cse.txt +1 -1
  199. data/golden/with_constants/expected/lir_04_1_loop_fusion.txt +1 -1
  200. data/golden/with_constants/expected/lir_04_loop_invcm.txt +1 -1
  201. data/golden/with_constants/expected/lir_06_const_prop.txt +1 -1
  202. data/golden/with_constants/expected/nast.txt +2 -2
  203. data/golden/with_constants/expected/schema_ruby.rb +1 -1
  204. data/golden/with_constants/expected/snast.txt +2 -2
  205. data/lib/kumi/analyzer.rb +12 -12
  206. data/lib/kumi/core/analyzer/passes/formal_constraint_propagator.rb +236 -0
  207. data/lib/kumi/core/analyzer/passes/input_collector.rb +22 -4
  208. data/lib/kumi/core/analyzer/passes/lir/inline_declarations_pass.rb +118 -74
  209. data/lib/kumi/core/analyzer/passes/nast_dimensional_analyzer_pass.rb +64 -18
  210. data/lib/kumi/core/analyzer/passes/normalize_to_nast_pass.rb +9 -4
  211. data/lib/kumi/core/analyzer/passes/snast_pass.rb +3 -1
  212. data/lib/kumi/core/analyzer/passes/unsat_detector.rb +172 -198
  213. data/lib/kumi/core/error_reporter.rb +36 -1
  214. data/lib/kumi/core/errors.rb +33 -1
  215. data/lib/kumi/core/functions/function_spec.rb +5 -4
  216. data/lib/kumi/core/functions/loader.rb +17 -1
  217. data/lib/kumi/core/functions/overload_resolver.rb +164 -0
  218. data/lib/kumi/core/functions/type_error_reporter.rb +118 -0
  219. data/lib/kumi/core/functions/type_rules.rb +155 -35
  220. data/lib/kumi/core/types/inference.rb +29 -22
  221. data/lib/kumi/core/types/normalizer.rb +29 -45
  222. data/lib/kumi/core/types/validator.rb +16 -27
  223. data/lib/kumi/core/types/value_objects.rb +116 -0
  224. data/lib/kumi/core/types.rb +45 -37
  225. data/lib/kumi/registry_v2/loader.rb +90 -0
  226. data/lib/kumi/registry_v2.rb +18 -1
  227. data/lib/kumi/version.rb +1 -1
  228. metadata +21 -7
  229. data/lib/kumi/core/analyzer/unsat_constant_evaluator.rb +0 -59
  230. data/lib/kumi/core/atom_unsat_solver.rb +0 -396
  231. data/lib/kumi/core/constraint_relationship_solver.rb +0 -641
  232. data/lib/kumi/core/types/builder.rb +0 -23
  233. data/lib/kumi/core/types/compatibility.rb +0 -96
  234. data/lib/kumi/core/types/formatter.rb +0 -26
@@ -29,22 +29,22 @@
29
29
  end_loop
30
30
  )
31
31
  (Declaration elem_affine
32
+ %t66 = load_input "global_offset" :: float
33
+ %t67 = const 1.0 :: float
34
+ %t68 = call core.add(%t66, %t67) :: float
32
35
  %t19 = load_input "batch" :: array
33
36
  loop batch id=L4 in %t19 as el=%batch_el_20, idx=%batch_i_21
37
+ %t62 = load_input "batch" :: array
38
+ %t64 = load_field batch_el_20["mean"] :: float
39
+ %t65 = call core.add(%t64, %t68) :: float
34
40
  %t22 = load_field batch_el_20["row"] :: any
35
- %t81 = load_input "global_offset" :: float
36
- %t82 = const 1.0 :: float
37
- %t83 = call core.add(%t81, %t82) :: float
38
41
  loop row id=L5 in %t22 as el=%row_el_23, idx=%row_i_24
39
- %t25 = load_field row_el_23["col"] :: any
40
42
  %t57 = load_input "batch" :: array
41
43
  %t58 = load_field batch_el_20["row"] :: any
42
44
  %t59 = load_field row_el_23["scale"] :: float
43
45
  %t60 = const 2.0 :: float
44
46
  %t61 = call core.mul(%t59, %t60) :: float
45
- %t62 = load_input "batch" :: array
46
- %t64 = load_field batch_el_20["mean"] :: float
47
- %t65 = call core.add(%t64, %t83) :: float
47
+ %t25 = load_field row_el_23["col"] :: any
48
48
  loop col id=L6 in %t25 as el=%col_el_26, idx=%col_i_27
49
49
  %t28 = load_field col_el_26["val"] :: float
50
50
  %t30 = call core.mul(%t28, %t61) :: float
@@ -55,31 +55,31 @@
55
55
  end_loop
56
56
  )
57
57
  (Declaration row_sum_affine
58
+ %t86 = load_input "global_offset" :: float
59
+ %t87 = const 1.0 :: float
60
+ %t88 = call core.add(%t86, %t87) :: float
58
61
  %t33 = load_input "batch" :: array
59
62
  loop batch id=L7 in %t33 as el=%batch_el_34, idx=%batch_i_35
63
+ %t82 = load_input "batch" :: array
64
+ %t84 = load_field batch_el_34["mean"] :: float
65
+ %t85 = call core.add(%t84, %t88) :: float
60
66
  %t36 = load_field batch_el_34["row"] :: any
61
67
  loop row id=L8 in %t36 as el=%row_el_37, idx=%row_i_38
68
+ %t77 = load_input "batch" :: array
69
+ %t78 = load_field batch_el_34["row"] :: any
70
+ %t79 = load_field row_el_37["scale"] :: float
71
+ %t80 = const 2.0 :: float
72
+ %t81 = call core.mul(%t79, %t80) :: float
62
73
  %acc_39 = decl_acc :: float
63
74
  %t40 = load_field row_el_37["col"] :: any
64
- %t84 = load_input "batch" :: array
65
- %t85 = load_field batch_el_34["row"] :: any
66
- %t86 = load_field row_el_37["scale"] :: float
67
- %t87 = const 2.0 :: float
68
- %t88 = call core.mul(%t86, %t87) :: float
69
- %t89 = load_input "batch" :: array
70
- %t90 = load_input "global_offset" :: float
71
- %t91 = const 1.0 :: float
72
- %t92 = call core.add(%t90, %t91) :: float
73
- %t93 = load_field batch_el_34["mean"] :: float
74
- %t94 = call core.add(%t93, %t92) :: float
75
75
  loop col id=L9 in %t40 as el=%col_el_41, idx=%col_i_42
76
- %t66 = load_input "batch" :: array
77
- %t67 = load_field batch_el_34["row"] :: any
78
- %t68 = load_field row_el_37["col"] :: any
79
- %t69 = load_field col_el_41["val"] :: float
80
- %t71 = call core.mul(%t69, %t88) :: float
81
- %t73 = call core.add(%t71, %t94) :: float
82
- %acc_39 = acc_add agg.sum(%acc_39, %t73) :: float
76
+ %t69 = load_input "batch" :: array
77
+ %t70 = load_field batch_el_34["row"] :: any
78
+ %t71 = load_field row_el_37["col"] :: any
79
+ %t72 = load_field col_el_41["val"] :: float
80
+ %t74 = call core.mul(%t72, %t81) :: float
81
+ %t76 = call core.add(%t74, %t85) :: float
82
+ %acc_39 = acc_add agg.sum(%acc_39, %t76) :: float
83
83
  end_loop
84
84
  %t44 = acc_load %acc_39 :: float
85
85
  yield %t44
@@ -87,37 +87,37 @@
87
87
  end_loop
88
88
  )
89
89
  (Declaration batch_total_affine
90
+ %t115 = load_input "global_offset" :: float
91
+ %t116 = const 1.0 :: float
92
+ %t117 = call core.add(%t115, %t116) :: float
90
93
  %t45 = load_input "batch" :: array
91
94
  loop batch id=L10 in %t45 as el=%batch_el_46, idx=%batch_i_47
95
+ %t111 = load_input "batch" :: array
96
+ %t113 = load_field batch_el_46["mean"] :: float
97
+ %t114 = call core.add(%t113, %t117) :: float
92
98
  %acc_48 = decl_acc :: float
93
99
  %t49 = load_field batch_el_46["row"] :: any
94
100
  loop row id=L11 in %t49 as el=%row_el_50, idx=%row_i_51
95
- %t74 = load_input "batch" :: array
96
- %t75 = load_field batch_el_46["row"] :: any
97
- %acc77 = decl_acc :: float
98
- %t78 = load_field row_el_50["col"] :: any
99
- %t110 = load_input "global_offset" :: float
100
- %t111 = const 1.0 :: float
101
- %t112 = call core.add(%t110, %t111) :: float
102
- loop col id=L12 in %t78 as el=%col_el_41, idx=%col_i_42
103
- %t95 = load_input "batch" :: array
104
- %t96 = load_field batch_el_46["row"] :: any
105
- %t97 = load_field row_el_50["col"] :: any
101
+ %t106 = load_input "batch" :: array
102
+ %t107 = load_field batch_el_46["row"] :: any
103
+ %t108 = load_field row_el_50["scale"] :: float
104
+ %t109 = const 2.0 :: float
105
+ %t110 = call core.mul(%t108, %t109) :: float
106
+ %t89 = load_input "batch" :: array
107
+ %t90 = load_field batch_el_46["row"] :: any
108
+ %acc92 = decl_acc :: float
109
+ %t93 = load_field row_el_50["col"] :: any
110
+ loop col id=L12 in %t93 as el=%t94, idx=%t95
106
111
  %t98 = load_input "batch" :: array
107
112
  %t99 = load_field batch_el_46["row"] :: any
108
- %t100 = load_field row_el_50["scale"] :: float
109
- %t101 = const 2.0 :: float
110
- %t102 = call core.mul(%t100, %t101) :: float
111
- %t103 = load_input "batch" :: array
112
- %t105 = load_field batch_el_46["mean"] :: float
113
- %t106 = call core.add(%t105, %t112) :: float
114
- %t107 = load_field col_el_41["val"] :: float
115
- %t108 = call core.mul(%t107, %t102) :: float
116
- %t109 = call core.add(%t108, %t106) :: float
117
- %acc77 = acc_add agg.sum(%acc77, %t109) :: float
113
+ %t100 = load_field row_el_50["col"] :: any
114
+ %t101 = load_field t94["val"] :: float
115
+ %t103 = call core.mul(%t101, %t110) :: float
116
+ %t105 = call core.add(%t103, %t114) :: float
117
+ %acc92 = acc_add agg.sum(%acc92, %t105) :: float
118
118
  end_loop
119
- %t80 = acc_load %acc77 :: float
120
- %acc_48 = acc_add agg.sum(%acc_48, %t80) :: float
119
+ %t97 = acc_load %acc92 :: float
120
+ %acc_48 = acc_add agg.sum(%acc_48, %t97) :: float
121
121
  end_loop
122
122
  %t53 = acc_load %acc_48 :: float
123
123
  yield %t53
@@ -29,19 +29,19 @@
29
29
  end_loop
30
30
  )
31
31
  (Declaration elem_affine
32
+ %t66 = load_input "global_offset" :: float
33
+ %t67 = const 1.0 :: float
34
+ %t68 = call core.add(%t66, %t67) :: float
32
35
  %t19 = load_input "batch" :: array
33
36
  loop batch id=L4 in %t19 as el=%batch_el_20, idx=%batch_i_21
37
+ %t64 = load_field batch_el_20["mean"] :: float
34
38
  %t22 = load_field batch_el_20["row"] :: any
35
- %t81 = load_input "global_offset" :: float
36
- %t82 = const 1.0 :: float
37
- %t83 = call core.add(%t81, %t82) :: float
39
+ %t65 = call core.add(%t64, %t68) :: float
38
40
  loop row id=L5 in %t22 as el=%row_el_23, idx=%row_i_24
39
- %t25 = load_field row_el_23["col"] :: any
40
41
  %t59 = load_field row_el_23["scale"] :: float
41
42
  %t60 = const 2.0 :: float
42
43
  %t61 = call core.mul(%t59, %t60) :: float
43
- %t64 = load_field batch_el_20["mean"] :: float
44
- %t65 = call core.add(%t64, %t83) :: float
44
+ %t25 = load_field row_el_23["col"] :: any
45
45
  loop col id=L6 in %t25 as el=%col_el_26, idx=%col_i_27
46
46
  %t28 = load_field col_el_26["val"] :: float
47
47
  %t30 = call core.mul(%t28, %t61) :: float
@@ -52,25 +52,25 @@
52
52
  end_loop
53
53
  )
54
54
  (Declaration row_sum_affine
55
+ %t86 = load_input "global_offset" :: float
56
+ %t87 = const 1.0 :: float
57
+ %t88 = call core.add(%t86, %t87) :: float
55
58
  %t33 = load_input "batch" :: array
56
59
  loop batch id=L7 in %t33 as el=%batch_el_34, idx=%batch_i_35
60
+ %t84 = load_field batch_el_34["mean"] :: float
57
61
  %t36 = load_field batch_el_34["row"] :: any
62
+ %t85 = call core.add(%t84, %t88) :: float
58
63
  loop row id=L8 in %t36 as el=%row_el_37, idx=%row_i_38
64
+ %t79 = load_field row_el_37["scale"] :: float
65
+ %t80 = const 2.0 :: float
66
+ %t81 = call core.mul(%t79, %t80) :: float
59
67
  %acc_39 = decl_acc :: float
60
68
  %t40 = load_field row_el_37["col"] :: any
61
- %t86 = load_field row_el_37["scale"] :: float
62
- %t87 = const 2.0 :: float
63
- %t88 = call core.mul(%t86, %t87) :: float
64
- %t90 = load_input "global_offset" :: float
65
- %t91 = const 1.0 :: float
66
- %t92 = call core.add(%t90, %t91) :: float
67
- %t93 = load_field batch_el_34["mean"] :: float
68
- %t94 = call core.add(%t93, %t92) :: float
69
69
  loop col id=L9 in %t40 as el=%col_el_41, idx=%col_i_42
70
- %t69 = load_field col_el_41["val"] :: float
71
- %t71 = call core.mul(%t69, %t88) :: float
72
- %t73 = call core.add(%t71, %t94) :: float
73
- %acc_39 = acc_add agg.sum(%acc_39, %t73) :: float
70
+ %t72 = load_field col_el_41["val"] :: float
71
+ %t74 = call core.mul(%t72, %t81) :: float
72
+ %t76 = call core.add(%t74, %t85) :: float
73
+ %acc_39 = acc_add agg.sum(%acc_39, %t76) :: float
74
74
  end_loop
75
75
  %t44 = acc_load %acc_39 :: float
76
76
  yield %t44
@@ -78,29 +78,29 @@
78
78
  end_loop
79
79
  )
80
80
  (Declaration batch_total_affine
81
+ %t115 = load_input "global_offset" :: float
82
+ %t116 = const 1.0 :: float
83
+ %t117 = call core.add(%t115, %t116) :: float
81
84
  %t45 = load_input "batch" :: array
82
85
  loop batch id=L10 in %t45 as el=%batch_el_46, idx=%batch_i_47
86
+ %t113 = load_field batch_el_46["mean"] :: float
83
87
  %acc_48 = decl_acc :: float
84
88
  %t49 = load_field batch_el_46["row"] :: any
89
+ %t114 = call core.add(%t113, %t117) :: float
85
90
  loop row id=L11 in %t49 as el=%row_el_50, idx=%row_i_51
86
- %acc77 = decl_acc :: float
87
- %t78 = load_field row_el_50["col"] :: any
88
- %t110 = load_input "global_offset" :: float
89
- %t111 = const 1.0 :: float
90
- %t112 = call core.add(%t110, %t111) :: float
91
- loop col id=L12 in %t78 as el=%col_el_41, idx=%col_i_42
92
- %t100 = load_field row_el_50["scale"] :: float
93
- %t101 = const 2.0 :: float
94
- %t102 = call core.mul(%t100, %t101) :: float
95
- %t105 = load_field batch_el_46["mean"] :: float
96
- %t106 = call core.add(%t105, %t112) :: float
97
- %t107 = load_field col_el_41["val"] :: float
98
- %t108 = call core.mul(%t107, %t102) :: float
99
- %t109 = call core.add(%t108, %t106) :: float
100
- %acc77 = acc_add agg.sum(%acc77, %t109) :: float
91
+ %t108 = load_field row_el_50["scale"] :: float
92
+ %t109 = const 2.0 :: float
93
+ %t110 = call core.mul(%t108, %t109) :: float
94
+ %acc92 = decl_acc :: float
95
+ %t93 = load_field row_el_50["col"] :: any
96
+ loop col id=L12 in %t93 as el=%t94, idx=%t95
97
+ %t101 = load_field t94["val"] :: float
98
+ %t103 = call core.mul(%t101, %t110) :: float
99
+ %t105 = call core.add(%t103, %t114) :: float
100
+ %acc92 = acc_add agg.sum(%acc92, %t105) :: float
101
101
  end_loop
102
- %t80 = acc_load %acc77 :: float
103
- %acc_48 = acc_add agg.sum(%acc_48, %t80) :: float
102
+ %t97 = acc_load %acc92 :: float
103
+ %acc_48 = acc_add agg.sum(%acc_48, %t97) :: float
104
104
  end_loop
105
105
  %t53 = acc_load %acc_48 :: float
106
106
  yield %t53
@@ -29,19 +29,19 @@
29
29
  end_loop
30
30
  )
31
31
  (Declaration elem_affine
32
+ %t66 = load_input "global_offset" :: float
33
+ %t67 = const 1.0 :: float
34
+ %t68 = call core.add(%t66, %t67) :: float
32
35
  %t19 = load_input "batch" :: array
33
36
  loop batch id=L4 in %t19 as el=%batch_el_20, idx=%batch_i_21
37
+ %t64 = load_field batch_el_20["mean"] :: float
34
38
  %t22 = load_field batch_el_20["row"] :: any
35
- %t81 = load_input "global_offset" :: float
36
- %t82 = const 1.0 :: float
37
- %t83 = call core.add(%t81, %t82) :: float
39
+ %t65 = call core.add(%t64, %t68) :: float
38
40
  loop row id=L5 in %t22 as el=%row_el_23, idx=%row_i_24
39
- %t25 = load_field row_el_23["col"] :: any
40
41
  %t59 = load_field row_el_23["scale"] :: float
41
42
  %t60 = const 2.0 :: float
42
43
  %t61 = call core.mul(%t59, %t60) :: float
43
- %t64 = load_field batch_el_20["mean"] :: float
44
- %t65 = call core.add(%t64, %t83) :: float
44
+ %t25 = load_field row_el_23["col"] :: any
45
45
  loop col id=L6 in %t25 as el=%col_el_26, idx=%col_i_27
46
46
  %t28 = load_field col_el_26["val"] :: float
47
47
  %t30 = call core.mul(%t28, %t61) :: float
@@ -52,25 +52,25 @@
52
52
  end_loop
53
53
  )
54
54
  (Declaration row_sum_affine
55
+ %t86 = load_input "global_offset" :: float
56
+ %t87 = const 1.0 :: float
57
+ %t88 = call core.add(%t86, %t87) :: float
55
58
  %t33 = load_input "batch" :: array
56
59
  loop batch id=L7 in %t33 as el=%batch_el_34, idx=%batch_i_35
60
+ %t84 = load_field batch_el_34["mean"] :: float
57
61
  %t36 = load_field batch_el_34["row"] :: any
62
+ %t85 = call core.add(%t84, %t88) :: float
58
63
  loop row id=L8 in %t36 as el=%row_el_37, idx=%row_i_38
64
+ %t79 = load_field row_el_37["scale"] :: float
65
+ %t80 = const 2.0 :: float
66
+ %t81 = call core.mul(%t79, %t80) :: float
59
67
  %acc_39 = decl_acc :: float
60
68
  %t40 = load_field row_el_37["col"] :: any
61
- %t86 = load_field row_el_37["scale"] :: float
62
- %t87 = const 2.0 :: float
63
- %t88 = call core.mul(%t86, %t87) :: float
64
- %t90 = load_input "global_offset" :: float
65
- %t91 = const 1.0 :: float
66
- %t92 = call core.add(%t90, %t91) :: float
67
- %t93 = load_field batch_el_34["mean"] :: float
68
- %t94 = call core.add(%t93, %t92) :: float
69
69
  loop col id=L9 in %t40 as el=%col_el_41, idx=%col_i_42
70
- %t69 = load_field col_el_41["val"] :: float
71
- %t71 = call core.mul(%t69, %t88) :: float
72
- %t73 = call core.add(%t71, %t94) :: float
73
- %acc_39 = acc_add agg.sum(%acc_39, %t73) :: float
70
+ %t72 = load_field col_el_41["val"] :: float
71
+ %t74 = call core.mul(%t72, %t81) :: float
72
+ %t76 = call core.add(%t74, %t85) :: float
73
+ %acc_39 = acc_add agg.sum(%acc_39, %t76) :: float
74
74
  end_loop
75
75
  %t44 = acc_load %acc_39 :: float
76
76
  yield %t44
@@ -78,29 +78,29 @@
78
78
  end_loop
79
79
  )
80
80
  (Declaration batch_total_affine
81
+ %t115 = load_input "global_offset" :: float
82
+ %t116 = const 1.0 :: float
83
+ %t117 = call core.add(%t115, %t116) :: float
81
84
  %t45 = load_input "batch" :: array
82
85
  loop batch id=L10 in %t45 as el=%batch_el_46, idx=%batch_i_47
86
+ %t113 = load_field batch_el_46["mean"] :: float
83
87
  %acc_48 = decl_acc :: float
84
88
  %t49 = load_field batch_el_46["row"] :: any
89
+ %t114 = call core.add(%t113, %t117) :: float
85
90
  loop row id=L11 in %t49 as el=%row_el_50, idx=%row_i_51
86
- %acc77 = decl_acc :: float
87
- %t78 = load_field row_el_50["col"] :: any
88
- %t110 = load_input "global_offset" :: float
89
- %t111 = const 1.0 :: float
90
- %t112 = call core.add(%t110, %t111) :: float
91
- loop col id=L12 in %t78 as el=%col_el_41, idx=%col_i_42
92
- %t100 = load_field row_el_50["scale"] :: float
93
- %t101 = const 2.0 :: float
94
- %t102 = call core.mul(%t100, %t101) :: float
95
- %t105 = load_field batch_el_46["mean"] :: float
96
- %t106 = call core.add(%t105, %t112) :: float
97
- %t107 = load_field col_el_41["val"] :: float
98
- %t108 = call core.mul(%t107, %t102) :: float
99
- %t109 = call core.add(%t108, %t106) :: float
100
- %acc77 = acc_add agg.sum(%acc77, %t109) :: float
91
+ %t108 = load_field row_el_50["scale"] :: float
92
+ %t109 = const 2.0 :: float
93
+ %t110 = call core.mul(%t108, %t109) :: float
94
+ %acc92 = decl_acc :: float
95
+ %t93 = load_field row_el_50["col"] :: any
96
+ loop col id=L12 in %t93 as el=%t94, idx=%t95
97
+ %t101 = load_field t94["val"] :: float
98
+ %t103 = call core.mul(%t101, %t110) :: float
99
+ %t105 = call core.add(%t103, %t114) :: float
100
+ %acc92 = acc_add agg.sum(%acc92, %t105) :: float
101
101
  end_loop
102
- %t80 = acc_load %acc77 :: float
103
- %acc_48 = acc_add agg.sum(%acc_48, %t80) :: float
102
+ %t97 = acc_load %acc92 :: float
103
+ %acc_48 = acc_add agg.sum(%acc_48, %t97) :: float
104
104
  end_loop
105
105
  %t53 = acc_load %acc_48 :: float
106
106
  yield %t53
@@ -29,19 +29,19 @@
29
29
  end_loop
30
30
  )
31
31
  (Declaration elem_affine
32
+ %t66 = load_input "global_offset" :: float
33
+ %t67 = const 1.0 :: float
34
+ %t68 = call core.add(%t66, %t67) :: float
32
35
  %t19 = load_input "batch" :: array
33
- %t81 = load_input "global_offset" :: float
34
- %t82 = const 1.0 :: float
35
36
  %t60 = const 2.0 :: float
36
- %t83 = call core.add(%t81, %t82) :: float
37
37
  loop batch id=L4 in %t19 as el=%batch_el_20, idx=%batch_i_21
38
- %t22 = load_field batch_el_20["row"] :: any
39
38
  %t64 = load_field batch_el_20["mean"] :: float
40
- %t65 = call core.add(%t64, %t83) :: float
39
+ %t22 = load_field batch_el_20["row"] :: any
40
+ %t65 = call core.add(%t64, %t68) :: float
41
41
  loop row id=L5 in %t22 as el=%row_el_23, idx=%row_i_24
42
- %t25 = load_field row_el_23["col"] :: any
43
42
  %t59 = load_field row_el_23["scale"] :: float
44
43
  %t61 = call core.mul(%t59, %t60) :: float
44
+ %t25 = load_field row_el_23["col"] :: any
45
45
  loop col id=L6 in %t25 as el=%col_el_26, idx=%col_i_27
46
46
  %t28 = load_field col_el_26["val"] :: float
47
47
  %t30 = call core.mul(%t28, %t61) :: float
@@ -52,25 +52,25 @@
52
52
  end_loop
53
53
  )
54
54
  (Declaration row_sum_affine
55
+ %t86 = load_input "global_offset" :: float
56
+ %t87 = const 1.0 :: float
57
+ %t88 = call core.add(%t86, %t87) :: float
55
58
  %t33 = load_input "batch" :: array
56
- %t87 = const 2.0 :: float
57
- %t90 = load_input "global_offset" :: float
58
- %t91 = const 1.0 :: float
59
- %t92 = call core.add(%t90, %t91) :: float
59
+ %t80 = const 2.0 :: float
60
60
  loop batch id=L7 in %t33 as el=%batch_el_34, idx=%batch_i_35
61
+ %t84 = load_field batch_el_34["mean"] :: float
61
62
  %t36 = load_field batch_el_34["row"] :: any
62
- %t93 = load_field batch_el_34["mean"] :: float
63
- %t94 = call core.add(%t93, %t92) :: float
63
+ %t85 = call core.add(%t84, %t88) :: float
64
64
  loop row id=L8 in %t36 as el=%row_el_37, idx=%row_i_38
65
+ %t79 = load_field row_el_37["scale"] :: float
66
+ %t81 = call core.mul(%t79, %t80) :: float
65
67
  %acc_39 = decl_acc :: float
66
68
  %t40 = load_field row_el_37["col"] :: any
67
- %t86 = load_field row_el_37["scale"] :: float
68
- %t88 = call core.mul(%t86, %t87) :: float
69
69
  loop col id=L9 in %t40 as el=%col_el_41, idx=%col_i_42
70
- %t69 = load_field col_el_41["val"] :: float
71
- %t71 = call core.mul(%t69, %t88) :: float
72
- %t73 = call core.add(%t71, %t94) :: float
73
- %acc_39 = acc_add agg.sum(%acc_39, %t73) :: float
70
+ %t72 = load_field col_el_41["val"] :: float
71
+ %t74 = call core.mul(%t72, %t81) :: float
72
+ %t76 = call core.add(%t74, %t85) :: float
73
+ %acc_39 = acc_add agg.sum(%acc_39, %t76) :: float
74
74
  end_loop
75
75
  %t44 = acc_load %acc_39 :: float
76
76
  yield %t44
@@ -78,29 +78,29 @@
78
78
  end_loop
79
79
  )
80
80
  (Declaration batch_total_affine
81
+ %t115 = load_input "global_offset" :: float
82
+ %t116 = const 1.0 :: float
83
+ %t117 = call core.add(%t115, %t116) :: float
81
84
  %t45 = load_input "batch" :: array
82
- %t110 = load_input "global_offset" :: float
83
- %t111 = const 1.0 :: float
84
- %t101 = const 2.0 :: float
85
- %t112 = call core.add(%t110, %t111) :: float
85
+ %t109 = const 2.0 :: float
86
86
  loop batch id=L10 in %t45 as el=%batch_el_46, idx=%batch_i_47
87
+ %t113 = load_field batch_el_46["mean"] :: float
87
88
  %acc_48 = decl_acc :: float
88
89
  %t49 = load_field batch_el_46["row"] :: any
89
- %t105 = load_field batch_el_46["mean"] :: float
90
- %t106 = call core.add(%t105, %t112) :: float
90
+ %t114 = call core.add(%t113, %t117) :: float
91
91
  loop row id=L11 in %t49 as el=%row_el_50, idx=%row_i_51
92
- %acc77 = decl_acc :: float
93
- %t78 = load_field row_el_50["col"] :: any
94
- %t100 = load_field row_el_50["scale"] :: float
95
- %t102 = call core.mul(%t100, %t101) :: float
96
- loop col id=L12 in %t78 as el=%col_el_41, idx=%col_i_42
97
- %t107 = load_field col_el_41["val"] :: float
98
- %t108 = call core.mul(%t107, %t102) :: float
99
- %t109 = call core.add(%t108, %t106) :: float
100
- %acc77 = acc_add agg.sum(%acc77, %t109) :: float
92
+ %t108 = load_field row_el_50["scale"] :: float
93
+ %t110 = call core.mul(%t108, %t109) :: float
94
+ %acc92 = decl_acc :: float
95
+ %t93 = load_field row_el_50["col"] :: any
96
+ loop col id=L12 in %t93 as el=%t94, idx=%t95
97
+ %t101 = load_field t94["val"] :: float
98
+ %t103 = call core.mul(%t101, %t110) :: float
99
+ %t105 = call core.add(%t103, %t114) :: float
100
+ %acc92 = acc_add agg.sum(%acc92, %t105) :: float
101
101
  end_loop
102
- %t80 = acc_load %acc77 :: float
103
- %acc_48 = acc_add agg.sum(%acc_48, %t80) :: float
102
+ %t97 = acc_load %acc92 :: float
103
+ %acc_48 = acc_add agg.sum(%acc_48, %t97) :: float
104
104
  end_loop
105
105
  %t53 = acc_load %acc_48 :: float
106
106
  yield %t53
@@ -29,19 +29,19 @@
29
29
  end_loop
30
30
  )
31
31
  (Declaration elem_affine
32
+ %t66 = load_input "global_offset" :: float
33
+ %t67 = const 1.0 :: float
34
+ %t68 = call core.add(%t66, %t67) :: float
32
35
  %t19 = load_input "batch" :: array
33
- %t81 = load_input "global_offset" :: float
34
- %t82 = const 1.0 :: float
35
36
  %t60 = const 2.0 :: float
36
- %t83 = call core.add(%t81, %t82) :: float
37
37
  loop batch id=L4 in %t19 as el=%batch_el_20, idx=%batch_i_21
38
- %t22 = load_field batch_el_20["row"] :: any
39
38
  %t64 = load_field batch_el_20["mean"] :: float
40
- %t65 = call core.add(%t64, %t83) :: float
39
+ %t22 = load_field batch_el_20["row"] :: any
40
+ %t65 = call core.add(%t64, %t68) :: float
41
41
  loop row id=L5 in %t22 as el=%row_el_23, idx=%row_i_24
42
- %t25 = load_field row_el_23["col"] :: any
43
42
  %t59 = load_field row_el_23["scale"] :: float
44
43
  %t61 = call core.mul(%t59, %t60) :: float
44
+ %t25 = load_field row_el_23["col"] :: any
45
45
  loop col id=L6 in %t25 as el=%col_el_26, idx=%col_i_27
46
46
  %t28 = load_field col_el_26["val"] :: float
47
47
  %t30 = call core.mul(%t28, %t61) :: float
@@ -52,25 +52,25 @@
52
52
  end_loop
53
53
  )
54
54
  (Declaration row_sum_affine
55
+ %t86 = load_input "global_offset" :: float
56
+ %t87 = const 1.0 :: float
57
+ %t88 = call core.add(%t86, %t87) :: float
55
58
  %t33 = load_input "batch" :: array
56
- %t87 = const 2.0 :: float
57
- %t90 = load_input "global_offset" :: float
58
- %t91 = const 1.0 :: float
59
- %t92 = call core.add(%t90, %t91) :: float
59
+ %t80 = const 2.0 :: float
60
60
  loop batch id=L7 in %t33 as el=%batch_el_34, idx=%batch_i_35
61
+ %t84 = load_field batch_el_34["mean"] :: float
61
62
  %t36 = load_field batch_el_34["row"] :: any
62
- %t93 = load_field batch_el_34["mean"] :: float
63
- %t94 = call core.add(%t93, %t92) :: float
63
+ %t85 = call core.add(%t84, %t88) :: float
64
64
  loop row id=L8 in %t36 as el=%row_el_37, idx=%row_i_38
65
+ %t79 = load_field row_el_37["scale"] :: float
66
+ %t81 = call core.mul(%t79, %t80) :: float
65
67
  %acc_39 = decl_acc :: float
66
68
  %t40 = load_field row_el_37["col"] :: any
67
- %t86 = load_field row_el_37["scale"] :: float
68
- %t88 = call core.mul(%t86, %t87) :: float
69
69
  loop col id=L9 in %t40 as el=%col_el_41, idx=%col_i_42
70
- %t69 = load_field col_el_41["val"] :: float
71
- %t71 = call core.mul(%t69, %t88) :: float
72
- %t73 = call core.add(%t71, %t94) :: float
73
- %acc_39 = acc_add agg.sum(%acc_39, %t73) :: float
70
+ %t72 = load_field col_el_41["val"] :: float
71
+ %t74 = call core.mul(%t72, %t81) :: float
72
+ %t76 = call core.add(%t74, %t85) :: float
73
+ %acc_39 = acc_add agg.sum(%acc_39, %t76) :: float
74
74
  end_loop
75
75
  %t44 = acc_load %acc_39 :: float
76
76
  yield %t44
@@ -78,29 +78,29 @@
78
78
  end_loop
79
79
  )
80
80
  (Declaration batch_total_affine
81
+ %t115 = load_input "global_offset" :: float
82
+ %t116 = const 1.0 :: float
83
+ %t117 = call core.add(%t115, %t116) :: float
81
84
  %t45 = load_input "batch" :: array
82
- %t110 = load_input "global_offset" :: float
83
- %t111 = const 1.0 :: float
84
- %t101 = const 2.0 :: float
85
- %t112 = call core.add(%t110, %t111) :: float
85
+ %t109 = const 2.0 :: float
86
86
  loop batch id=L10 in %t45 as el=%batch_el_46, idx=%batch_i_47
87
+ %t113 = load_field batch_el_46["mean"] :: float
87
88
  %acc_48 = decl_acc :: float
88
89
  %t49 = load_field batch_el_46["row"] :: any
89
- %t105 = load_field batch_el_46["mean"] :: float
90
- %t106 = call core.add(%t105, %t112) :: float
90
+ %t114 = call core.add(%t113, %t117) :: float
91
91
  loop row id=L11 in %t49 as el=%row_el_50, idx=%row_i_51
92
- %acc77 = decl_acc :: float
93
- %t78 = load_field row_el_50["col"] :: any
94
- %t100 = load_field row_el_50["scale"] :: float
95
- %t102 = call core.mul(%t100, %t101) :: float
96
- loop col id=L12 in %t78 as el=%col_el_41, idx=%col_i_42
97
- %t107 = load_field col_el_41["val"] :: float
98
- %t108 = call core.mul(%t107, %t102) :: float
99
- %t109 = call core.add(%t108, %t106) :: float
100
- %acc77 = acc_add agg.sum(%acc77, %t109) :: float
92
+ %t108 = load_field row_el_50["scale"] :: float
93
+ %t110 = call core.mul(%t108, %t109) :: float
94
+ %acc92 = decl_acc :: float
95
+ %t93 = load_field row_el_50["col"] :: any
96
+ loop col id=L12 in %t93 as el=%t94, idx=%t95
97
+ %t101 = load_field t94["val"] :: float
98
+ %t103 = call core.mul(%t101, %t110) :: float
99
+ %t105 = call core.add(%t103, %t114) :: float
100
+ %acc92 = acc_add agg.sum(%acc92, %t105) :: float
101
101
  end_loop
102
- %t80 = acc_load %acc77 :: float
103
- %acc_48 = acc_add agg.sum(%acc_48, %t80) :: float
102
+ %t97 = acc_load %acc92 :: float
103
+ %acc_48 = acc_add agg.sum(%acc_48, %t97) :: float
104
104
  end_loop
105
105
  %t53 = acc_load %acc_48 :: float
106
106
  yield %t53
@@ -1,25 +1,25 @@
1
1
  (NAST
2
2
  (VALUE global_offset_plus
3
- (Call :"core.add"
3
+ (Call :add
4
4
  (InputRef [:global_offset])
5
5
  (Const 1.0)
6
6
  )
7
7
  )
8
8
  (VALUE batch_bias
9
- (Call :"core.add"
9
+ (Call :add
10
10
  (InputRef [:batch, :b, :mean])
11
11
  (Ref global_offset_plus)
12
12
  )
13
13
  )
14
14
  (VALUE row_scale2
15
- (Call :"core.mul"
15
+ (Call :multiply
16
16
  (InputRef [:batch, :b, :row, :r, :scale])
17
17
  (Const 2.0)
18
18
  )
19
19
  )
20
20
  (VALUE elem_affine
21
- (Call :"core.add"
22
- (Call :"core.mul"
21
+ (Call :add
22
+ (Call :multiply
23
23
  (InputRef [:batch, :b, :row, :r, :col, :c, :val])
24
24
  (Ref row_scale2)
25
25
  )
@@ -27,12 +27,12 @@
27
27
  )
28
28
  )
29
29
  (VALUE row_sum_affine
30
- (Call :"agg.sum"
30
+ (Call :sum
31
31
  (Ref elem_affine)
32
32
  )
33
33
  )
34
34
  (VALUE batch_total_affine
35
- (Call :"agg.sum"
35
+ (Call :sum
36
36
  (Ref row_sum_affine)
37
37
  )
38
38
  )