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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -0
- data/README.md +70 -71
- data/data/functions/agg/boolean.yaml +6 -2
- data/data/functions/agg/numeric.yaml +32 -16
- data/data/functions/agg/string.yaml +4 -3
- data/data/functions/core/arithmetic.yaml +62 -14
- data/data/functions/core/boolean.yaml +12 -6
- data/data/functions/core/comparison.yaml +25 -13
- data/data/functions/core/constructor.yaml +16 -8
- data/data/functions/core/select.yaml +3 -1
- data/data/functions/core/stencil.yaml +14 -5
- data/data/functions/core/string.yaml +9 -4
- data/data/kernels/ruby/agg/numeric.yaml +1 -1
- data/docs/UNSAT_DETECTION.md +83 -0
- data/golden/array_element/expected/nast.txt +1 -1
- data/golden/array_element/expected/schema_ruby.rb +1 -1
- data/golden/array_index/expected/nast.txt +7 -7
- data/golden/array_index/expected/schema_ruby.rb +1 -1
- data/golden/array_operations/expected/nast.txt +2 -2
- data/golden/array_operations/expected/schema_ruby.rb +1 -1
- data/golden/array_operations/expected/snast.txt +3 -3
- data/golden/cascade_logic/expected/lir_02_inlined.txt +8 -8
- data/golden/cascade_logic/expected/schema_ruby.rb +1 -1
- data/golden/cascade_logic/expected/snast.txt +2 -2
- data/golden/chained_fusion/expected/lir_02_inlined.txt +36 -36
- data/golden/chained_fusion/expected/lir_03_cse.txt +23 -23
- data/golden/chained_fusion/expected/lir_04_1_loop_fusion.txt +25 -25
- data/golden/chained_fusion/expected/lir_04_loop_invcm.txt +23 -23
- data/golden/chained_fusion/expected/lir_06_const_prop.txt +23 -23
- data/golden/chained_fusion/expected/nast.txt +2 -2
- data/golden/chained_fusion/expected/schema_javascript.mjs +23 -23
- data/golden/chained_fusion/expected/schema_ruby.rb +28 -28
- data/golden/element_arrays/expected/nast.txt +2 -2
- data/golden/element_arrays/expected/schema_ruby.rb +1 -1
- data/golden/element_arrays/expected/snast.txt +1 -1
- data/golden/empty_and_null_inputs/expected/lir_02_inlined.txt +18 -18
- data/golden/empty_and_null_inputs/expected/lir_03_cse.txt +17 -17
- data/golden/empty_and_null_inputs/expected/lir_04_1_loop_fusion.txt +17 -17
- data/golden/empty_and_null_inputs/expected/lir_04_loop_invcm.txt +17 -17
- data/golden/empty_and_null_inputs/expected/lir_06_const_prop.txt +17 -17
- data/golden/empty_and_null_inputs/expected/nast.txt +3 -3
- data/golden/empty_and_null_inputs/expected/schema_javascript.mjs +13 -13
- data/golden/empty_and_null_inputs/expected/schema_ruby.rb +18 -18
- data/golden/function_overload/expected/ast.txt +29 -0
- data/golden/function_overload/expected/input_plan.txt +4 -0
- data/golden/function_overload/expected/lir_00_unoptimized.txt +18 -0
- data/golden/function_overload/expected/lir_01_hoist_scalar_references.txt +18 -0
- data/golden/function_overload/expected/lir_02_inlined.txt +20 -0
- data/golden/function_overload/expected/lir_03_cse.txt +20 -0
- data/golden/function_overload/expected/lir_04_1_loop_fusion.txt +20 -0
- data/golden/function_overload/expected/lir_04_loop_invcm.txt +20 -0
- data/golden/function_overload/expected/lir_06_const_prop.txt +20 -0
- data/golden/function_overload/expected/nast.txt +22 -0
- data/golden/function_overload/expected/schema_javascript.mjs +12 -0
- data/golden/function_overload/expected/schema_ruby.rb +39 -0
- data/golden/function_overload/expected/snast.txt +22 -0
- data/golden/function_overload/input.json +8 -0
- data/golden/function_overload/schema.kumi +19 -0
- data/golden/game_of_life/expected/lir_00_unoptimized.txt +4 -4
- data/golden/game_of_life/expected/lir_01_hoist_scalar_references.txt +4 -4
- data/golden/game_of_life/expected/lir_02_inlined.txt +1294 -1294
- data/golden/game_of_life/expected/lir_03_cse.txt +403 -399
- data/golden/game_of_life/expected/lir_04_1_loop_fusion.txt +403 -399
- data/golden/game_of_life/expected/lir_04_loop_invcm.txt +403 -399
- data/golden/game_of_life/expected/lir_06_const_prop.txt +403 -399
- data/golden/game_of_life/expected/nast.txt +4 -4
- data/golden/game_of_life/expected/schema_javascript.mjs +87 -85
- data/golden/game_of_life/expected/schema_ruby.rb +88 -86
- data/golden/game_of_life/expected/snast.txt +10 -10
- data/golden/hash_keys/expected/schema_ruby.rb +1 -1
- data/golden/hash_value/expected/nast.txt +1 -1
- data/golden/hash_value/expected/schema_ruby.rb +1 -1
- data/golden/hash_value/expected/snast.txt +1 -1
- data/golden/hierarchical_complex/expected/lir_02_inlined.txt +15 -15
- data/golden/hierarchical_complex/expected/lir_03_cse.txt +1 -1
- data/golden/hierarchical_complex/expected/lir_04_1_loop_fusion.txt +1 -1
- data/golden/hierarchical_complex/expected/lir_04_loop_invcm.txt +1 -1
- data/golden/hierarchical_complex/expected/lir_06_const_prop.txt +1 -1
- data/golden/hierarchical_complex/expected/nast.txt +3 -3
- data/golden/hierarchical_complex/expected/schema_javascript.mjs +1 -1
- data/golden/hierarchical_complex/expected/schema_ruby.rb +2 -2
- data/golden/hierarchical_complex/expected/snast.txt +3 -3
- data/golden/inline_rename_scope_leak/expected/nast.txt +3 -3
- data/golden/inline_rename_scope_leak/expected/schema_ruby.rb +1 -1
- data/golden/input_reference/expected/nast.txt +2 -2
- data/golden/input_reference/expected/schema_ruby.rb +1 -1
- data/golden/interleaved_fusion/expected/lir_02_inlined.txt +35 -35
- data/golden/interleaved_fusion/expected/lir_03_cse.txt +26 -26
- data/golden/interleaved_fusion/expected/lir_04_1_loop_fusion.txt +27 -26
- data/golden/interleaved_fusion/expected/lir_04_loop_invcm.txt +26 -26
- data/golden/interleaved_fusion/expected/lir_06_const_prop.txt +26 -26
- data/golden/interleaved_fusion/expected/nast.txt +2 -2
- data/golden/interleaved_fusion/expected/schema_javascript.mjs +23 -23
- data/golden/interleaved_fusion/expected/schema_ruby.rb +29 -29
- data/golden/let_inline/expected/nast.txt +4 -4
- data/golden/let_inline/expected/schema_ruby.rb +1 -1
- data/golden/loop_fusion/expected/lir_02_inlined.txt +17 -17
- data/golden/loop_fusion/expected/lir_03_cse.txt +14 -14
- data/golden/loop_fusion/expected/lir_04_1_loop_fusion.txt +14 -14
- data/golden/loop_fusion/expected/lir_04_loop_invcm.txt +14 -14
- data/golden/loop_fusion/expected/lir_06_const_prop.txt +14 -14
- data/golden/loop_fusion/expected/nast.txt +1 -1
- data/golden/loop_fusion/expected/schema_javascript.mjs +12 -12
- data/golden/loop_fusion/expected/schema_ruby.rb +16 -16
- data/golden/min_reduce_scope/expected/nast.txt +3 -3
- data/golden/min_reduce_scope/expected/schema_ruby.rb +1 -1
- data/golden/min_reduce_scope/expected/snast.txt +1 -1
- data/golden/mixed_dimensions/expected/lir_02_inlined.txt +5 -5
- data/golden/mixed_dimensions/expected/lir_03_cse.txt +5 -5
- data/golden/mixed_dimensions/expected/lir_04_1_loop_fusion.txt +5 -5
- data/golden/mixed_dimensions/expected/lir_04_loop_invcm.txt +5 -5
- data/golden/mixed_dimensions/expected/lir_06_const_prop.txt +5 -5
- data/golden/mixed_dimensions/expected/nast.txt +2 -2
- data/golden/mixed_dimensions/expected/schema_javascript.mjs +3 -3
- data/golden/mixed_dimensions/expected/schema_ruby.rb +6 -6
- data/golden/multirank_hoisting/expected/lir_02_inlined.txt +48 -48
- data/golden/multirank_hoisting/expected/lir_03_cse.txt +35 -35
- data/golden/multirank_hoisting/expected/lir_04_1_loop_fusion.txt +35 -35
- data/golden/multirank_hoisting/expected/lir_04_loop_invcm.txt +35 -35
- data/golden/multirank_hoisting/expected/lir_06_const_prop.txt +35 -35
- data/golden/multirank_hoisting/expected/nast.txt +7 -7
- data/golden/multirank_hoisting/expected/schema_javascript.mjs +34 -34
- data/golden/multirank_hoisting/expected/schema_ruby.rb +36 -36
- data/golden/nested_hash/expected/nast.txt +1 -1
- data/golden/nested_hash/expected/schema_ruby.rb +1 -1
- data/golden/reduction_broadcast/expected/lir_02_inlined.txt +30 -30
- data/golden/reduction_broadcast/expected/lir_03_cse.txt +22 -22
- data/golden/reduction_broadcast/expected/lir_04_1_loop_fusion.txt +22 -22
- data/golden/reduction_broadcast/expected/lir_04_loop_invcm.txt +22 -22
- data/golden/reduction_broadcast/expected/lir_06_const_prop.txt +22 -22
- data/golden/reduction_broadcast/expected/nast.txt +3 -3
- data/golden/reduction_broadcast/expected/schema_javascript.mjs +18 -18
- data/golden/reduction_broadcast/expected/schema_ruby.rb +23 -23
- data/golden/reduction_broadcast/expected/snast.txt +1 -1
- data/golden/roll/expected/schema_ruby.rb +1 -1
- data/golden/shift/expected/schema_ruby.rb +1 -1
- data/golden/shift_2d/expected/schema_ruby.rb +1 -1
- data/golden/simple_math/expected/lir_00_unoptimized.txt +1 -1
- data/golden/simple_math/expected/lir_01_hoist_scalar_references.txt +1 -1
- data/golden/simple_math/expected/lir_02_inlined.txt +1 -1
- data/golden/simple_math/expected/lir_03_cse.txt +1 -1
- data/golden/simple_math/expected/lir_04_1_loop_fusion.txt +1 -1
- data/golden/simple_math/expected/lir_04_loop_invcm.txt +1 -1
- data/golden/simple_math/expected/lir_06_const_prop.txt +1 -1
- data/golden/simple_math/expected/nast.txt +5 -5
- data/golden/simple_math/expected/schema_ruby.rb +1 -1
- data/golden/simple_math/expected/snast.txt +2 -2
- data/golden/streaming_basics/expected/lir_02_inlined.txt +25 -25
- data/golden/streaming_basics/expected/lir_03_cse.txt +13 -13
- data/golden/streaming_basics/expected/lir_04_1_loop_fusion.txt +13 -13
- data/golden/streaming_basics/expected/lir_04_loop_invcm.txt +13 -13
- data/golden/streaming_basics/expected/lir_06_const_prop.txt +13 -13
- data/golden/streaming_basics/expected/nast.txt +8 -8
- data/golden/streaming_basics/expected/schema_javascript.mjs +13 -13
- data/golden/streaming_basics/expected/schema_ruby.rb +14 -14
- data/golden/streaming_basics/expected/snast.txt +1 -1
- data/golden/tuples/expected/lir_00_unoptimized.txt +5 -5
- data/golden/tuples/expected/lir_01_hoist_scalar_references.txt +5 -5
- data/golden/tuples/expected/lir_02_inlined.txt +5 -5
- data/golden/tuples/expected/lir_03_cse.txt +5 -5
- data/golden/tuples/expected/lir_04_1_loop_fusion.txt +5 -5
- data/golden/tuples/expected/lir_04_loop_invcm.txt +5 -5
- data/golden/tuples/expected/lir_06_const_prop.txt +5 -5
- data/golden/tuples/expected/nast.txt +4 -4
- data/golden/tuples/expected/schema_ruby.rb +1 -1
- data/golden/tuples/expected/snast.txt +6 -6
- 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 +17 -17
- data/golden/tuples_and_arrays/expected/lir_03_cse.txt +13 -13
- data/golden/tuples_and_arrays/expected/lir_04_1_loop_fusion.txt +13 -13
- data/golden/tuples_and_arrays/expected/lir_04_loop_invcm.txt +13 -13
- data/golden/tuples_and_arrays/expected/lir_06_const_prop.txt +13 -13
- data/golden/tuples_and_arrays/expected/nast.txt +3 -3
- data/golden/tuples_and_arrays/expected/schema_javascript.mjs +13 -13
- data/golden/tuples_and_arrays/expected/schema_ruby.rb +14 -14
- data/golden/tuples_and_arrays/expected/snast.txt +2 -2
- data/golden/us_tax_2024/expected/ast.txt +63 -670
- data/golden/us_tax_2024/expected/input_plan.txt +8 -45
- data/golden/us_tax_2024/expected/lir_00_unoptimized.txt +253 -863
- data/golden/us_tax_2024/expected/lir_01_hoist_scalar_references.txt +253 -863
- data/golden/us_tax_2024/expected/lir_02_inlined.txt +1215 -5139
- data/golden/us_tax_2024/expected/lir_03_cse.txt +587 -2460
- data/golden/us_tax_2024/expected/lir_04_1_loop_fusion.txt +632 -2480
- data/golden/us_tax_2024/expected/lir_04_loop_invcm.txt +587 -2400
- data/golden/us_tax_2024/expected/lir_06_const_prop.txt +587 -2400
- data/golden/us_tax_2024/expected/nast.txt +123 -826
- data/golden/us_tax_2024/expected/schema_javascript.mjs +127 -581
- data/golden/us_tax_2024/expected/schema_ruby.rb +135 -610
- data/golden/us_tax_2024/expected/snast.txt +155 -858
- data/golden/us_tax_2024/expected.json +120 -1
- data/golden/us_tax_2024/input.json +18 -9
- data/golden/us_tax_2024/schema.kumi +48 -178
- data/golden/with_constants/expected/lir_00_unoptimized.txt +1 -1
- data/golden/with_constants/expected/lir_01_hoist_scalar_references.txt +1 -1
- data/golden/with_constants/expected/lir_02_inlined.txt +1 -1
- data/golden/with_constants/expected/lir_03_cse.txt +1 -1
- data/golden/with_constants/expected/lir_04_1_loop_fusion.txt +1 -1
- data/golden/with_constants/expected/lir_04_loop_invcm.txt +1 -1
- data/golden/with_constants/expected/lir_06_const_prop.txt +1 -1
- data/golden/with_constants/expected/nast.txt +2 -2
- data/golden/with_constants/expected/schema_ruby.rb +1 -1
- data/golden/with_constants/expected/snast.txt +2 -2
- data/lib/kumi/analyzer.rb +12 -12
- data/lib/kumi/core/analyzer/passes/formal_constraint_propagator.rb +236 -0
- data/lib/kumi/core/analyzer/passes/input_collector.rb +22 -4
- data/lib/kumi/core/analyzer/passes/lir/inline_declarations_pass.rb +118 -74
- data/lib/kumi/core/analyzer/passes/nast_dimensional_analyzer_pass.rb +64 -18
- data/lib/kumi/core/analyzer/passes/normalize_to_nast_pass.rb +9 -4
- data/lib/kumi/core/analyzer/passes/snast_pass.rb +3 -1
- data/lib/kumi/core/analyzer/passes/unsat_detector.rb +172 -198
- data/lib/kumi/core/error_reporter.rb +36 -1
- data/lib/kumi/core/errors.rb +33 -1
- data/lib/kumi/core/functions/function_spec.rb +5 -4
- data/lib/kumi/core/functions/loader.rb +17 -1
- data/lib/kumi/core/functions/overload_resolver.rb +164 -0
- data/lib/kumi/core/functions/type_error_reporter.rb +118 -0
- data/lib/kumi/core/functions/type_rules.rb +155 -35
- data/lib/kumi/core/types/inference.rb +29 -22
- data/lib/kumi/core/types/normalizer.rb +29 -45
- data/lib/kumi/core/types/validator.rb +16 -27
- data/lib/kumi/core/types/value_objects.rb +116 -0
- data/lib/kumi/core/types.rb +45 -37
- data/lib/kumi/registry_v2/loader.rb +90 -0
- data/lib/kumi/registry_v2.rb +18 -1
- data/lib/kumi/version.rb +1 -1
- metadata +21 -7
- data/lib/kumi/core/analyzer/unsat_constant_evaluator.rb +0 -59
- data/lib/kumi/core/atom_unsat_solver.rb +0 -396
- data/lib/kumi/core/constraint_relationship_solver.rb +0 -641
- data/lib/kumi/core/types/builder.rb +0 -23
- data/lib/kumi/core/types/compatibility.rb +0 -96
- data/lib/kumi/core/types/formatter.rb +0 -26
@@ -451,8 +451,8 @@
|
|
451
451
|
%t483 = gather %t470, %t482 :: integer
|
452
452
|
%t484 = const 0 :: integer
|
453
453
|
%t485 = select %t478, %t483, %t484 :: integer
|
454
|
-
%t243 = make_tuple(%t313, %t333, %t353, %t373, %t401, %t429, %t457, %t485) :: tuple<integer>
|
455
|
-
%t244 = fold %t243 fn="agg.sum" ::
|
454
|
+
%t243 = make_tuple(%t313, %t333, %t353, %t373, %t401, %t429, %t457, %t485) :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
455
|
+
%t244 = fold %t243 fn="agg.sum" :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
456
456
|
yield %t244
|
457
457
|
end_loop
|
458
458
|
end_loop
|
@@ -473,200 +473,200 @@
|
|
473
473
|
loop rows id=L23 in %t253 as el=%rows_el_254, idx=%rows_i_255
|
474
474
|
loop col id=L24 in %rows_el_254 as el=%col_el_256, idx=%col_i_257
|
475
475
|
%t487 = load_input "rows" :: array
|
476
|
-
%
|
477
|
-
%
|
478
|
-
%
|
479
|
-
%
|
480
|
-
%
|
481
|
-
%
|
482
|
-
%
|
483
|
-
%
|
484
|
-
%
|
485
|
-
%
|
486
|
-
%
|
487
|
-
%
|
488
|
-
%
|
489
|
-
%
|
490
|
-
%
|
491
|
-
%
|
492
|
-
%
|
493
|
-
%
|
476
|
+
%t498 = load_input "rows" :: array
|
477
|
+
%t499 = length %t498 :: integer
|
478
|
+
%t500 = const -1 :: integer
|
479
|
+
%t501 = call core.sub(%rows_i_255, %t500) :: integer
|
480
|
+
%t502 = const 0 :: integer
|
481
|
+
%t503 = call core.gte(%t501, %t502) :: boolean
|
482
|
+
%t504 = call core.lt(%t501, %t499) :: boolean
|
483
|
+
%t505 = call core.and(%t503, %t504) :: boolean
|
484
|
+
%t506 = const 1 :: integer
|
485
|
+
%t507 = call core.sub(%t499, %t506) :: integer
|
486
|
+
%t508 = const 0 :: integer
|
487
|
+
%t509 = call core.clamp(%t501, %t508, %t507) :: integer
|
488
|
+
%t510 = gather %t498, %t509 :: any
|
489
|
+
%t511 = length %t510 :: integer
|
490
|
+
%t512 = call core.mod(%col_i_257, %t511) :: integer
|
491
|
+
%t513 = call core.add(%t512, %t511) :: integer
|
492
|
+
%t514 = call core.mod(%t513, %t511) :: integer
|
493
|
+
%t515 = gather %t510, %t514 :: integer
|
494
|
+
%t516 = const 0 :: integer
|
495
|
+
%t517 = select %t505, %t515, %t516 :: integer
|
496
|
+
%t518 = load_input "rows" :: array
|
497
|
+
%t519 = length %t518 :: integer
|
498
|
+
%t520 = const 1 :: integer
|
499
|
+
%t521 = call core.sub(%rows_i_255, %t520) :: integer
|
500
|
+
%t522 = const 0 :: integer
|
501
|
+
%t523 = call core.gte(%t521, %t522) :: boolean
|
502
|
+
%t524 = call core.lt(%t521, %t519) :: boolean
|
503
|
+
%t525 = call core.and(%t523, %t524) :: boolean
|
504
|
+
%t526 = const 1 :: integer
|
505
|
+
%t527 = call core.sub(%t519, %t526) :: integer
|
506
|
+
%t528 = const 0 :: integer
|
507
|
+
%t529 = call core.clamp(%t521, %t528, %t527) :: integer
|
508
|
+
%t530 = gather %t518, %t529 :: any
|
509
|
+
%t531 = length %t530 :: integer
|
510
|
+
%t532 = call core.mod(%col_i_257, %t531) :: integer
|
511
|
+
%t533 = call core.add(%t532, %t531) :: integer
|
512
|
+
%t534 = call core.mod(%t533, %t531) :: integer
|
513
|
+
%t535 = gather %t530, %t534 :: integer
|
514
|
+
%t536 = const 0 :: integer
|
515
|
+
%t537 = select %t525, %t535, %t536 :: integer
|
516
|
+
%t538 = load_input "rows" :: array
|
517
|
+
%t539 = length %t538 :: integer
|
518
|
+
%t540 = call core.mod(%rows_i_255, %t539) :: integer
|
519
|
+
%t541 = call core.add(%t540, %t539) :: integer
|
520
|
+
%t542 = call core.mod(%t541, %t539) :: integer
|
521
|
+
%t543 = gather %t538, %t542 :: any
|
522
|
+
%t544 = length %t543 :: integer
|
523
|
+
%t545 = const -1 :: integer
|
524
|
+
%t546 = call core.sub(%col_i_257, %t545) :: integer
|
494
525
|
%t547 = const 0 :: integer
|
495
|
-
%t548 =
|
496
|
-
%t549 =
|
497
|
-
%t550 =
|
526
|
+
%t548 = call core.gte(%t546, %t547) :: boolean
|
527
|
+
%t549 = call core.lt(%t546, %t544) :: boolean
|
528
|
+
%t550 = call core.and(%t548, %t549) :: boolean
|
498
529
|
%t551 = const 1 :: integer
|
499
|
-
%t552 = call core.sub(%
|
530
|
+
%t552 = call core.sub(%t544, %t551) :: integer
|
500
531
|
%t553 = const 0 :: integer
|
501
|
-
%t554 = call core.
|
502
|
-
%t555 =
|
503
|
-
%t556 =
|
504
|
-
%t557 =
|
505
|
-
%t558 =
|
506
|
-
%t559 =
|
507
|
-
%t560 = call core.
|
508
|
-
%t561 =
|
509
|
-
%t562 =
|
510
|
-
%t563 =
|
511
|
-
%t564 =
|
512
|
-
%t565 =
|
513
|
-
%t566 =
|
532
|
+
%t554 = call core.clamp(%t546, %t553, %t552) :: integer
|
533
|
+
%t555 = gather %t543, %t554 :: integer
|
534
|
+
%t556 = const 0 :: integer
|
535
|
+
%t557 = select %t550, %t555, %t556 :: integer
|
536
|
+
%t558 = load_input "rows" :: array
|
537
|
+
%t559 = length %t558 :: integer
|
538
|
+
%t560 = call core.mod(%rows_i_255, %t559) :: integer
|
539
|
+
%t561 = call core.add(%t560, %t559) :: integer
|
540
|
+
%t562 = call core.mod(%t561, %t559) :: integer
|
541
|
+
%t563 = gather %t558, %t562 :: any
|
542
|
+
%t564 = length %t563 :: integer
|
543
|
+
%t565 = const 1 :: integer
|
544
|
+
%t566 = call core.sub(%col_i_257, %t565) :: integer
|
514
545
|
%t567 = const 0 :: integer
|
515
|
-
%t568 =
|
516
|
-
%t569 =
|
517
|
-
%t570 =
|
518
|
-
%t571 =
|
519
|
-
%t572 = call core.
|
520
|
-
%t573 =
|
521
|
-
%t574 =
|
522
|
-
%t575 =
|
523
|
-
%t576 = const
|
524
|
-
%t577 =
|
525
|
-
%t578 =
|
526
|
-
%t579 =
|
527
|
-
%t580 =
|
528
|
-
%t581 = call core.
|
529
|
-
%t582 = const
|
530
|
-
%t583 = call core.
|
531
|
-
%t584 =
|
532
|
-
%t585 = call core.
|
533
|
-
%t586 =
|
534
|
-
%t587 =
|
535
|
-
%t588 =
|
536
|
-
%t589 =
|
537
|
-
%t590 =
|
538
|
-
%t591 =
|
539
|
-
%t592 =
|
540
|
-
%t593 = call core.
|
541
|
-
%t594 =
|
542
|
-
%t595 =
|
543
|
-
%t596 =
|
544
|
-
%t597 = call core.
|
545
|
-
%t598 =
|
546
|
-
%t599 =
|
547
|
-
%t600 = call core.
|
548
|
-
%t601 =
|
549
|
-
%t602 =
|
550
|
-
%t603 =
|
546
|
+
%t568 = call core.gte(%t566, %t567) :: boolean
|
547
|
+
%t569 = call core.lt(%t566, %t564) :: boolean
|
548
|
+
%t570 = call core.and(%t568, %t569) :: boolean
|
549
|
+
%t571 = const 1 :: integer
|
550
|
+
%t572 = call core.sub(%t564, %t571) :: integer
|
551
|
+
%t573 = const 0 :: integer
|
552
|
+
%t574 = call core.clamp(%t566, %t573, %t572) :: integer
|
553
|
+
%t575 = gather %t563, %t574 :: integer
|
554
|
+
%t576 = const 0 :: integer
|
555
|
+
%t577 = select %t570, %t575, %t576 :: integer
|
556
|
+
%t578 = load_input "rows" :: array
|
557
|
+
%t579 = length %t578 :: integer
|
558
|
+
%t580 = const -1 :: integer
|
559
|
+
%t581 = call core.sub(%rows_i_255, %t580) :: integer
|
560
|
+
%t582 = const 0 :: integer
|
561
|
+
%t583 = call core.gte(%t581, %t582) :: boolean
|
562
|
+
%t584 = call core.lt(%t581, %t579) :: boolean
|
563
|
+
%t585 = call core.and(%t583, %t584) :: boolean
|
564
|
+
%t586 = const 1 :: integer
|
565
|
+
%t587 = call core.sub(%t579, %t586) :: integer
|
566
|
+
%t588 = const 0 :: integer
|
567
|
+
%t589 = call core.clamp(%t581, %t588, %t587) :: integer
|
568
|
+
%t590 = gather %t578, %t589 :: any
|
569
|
+
%t591 = length %t590 :: integer
|
570
|
+
%t592 = const -1 :: integer
|
571
|
+
%t593 = call core.sub(%col_i_257, %t592) :: integer
|
572
|
+
%t594 = const 0 :: integer
|
573
|
+
%t595 = call core.gte(%t593, %t594) :: boolean
|
574
|
+
%t596 = call core.lt(%t593, %t591) :: boolean
|
575
|
+
%t597 = call core.and(%t595, %t596) :: boolean
|
576
|
+
%t598 = call core.and(%t585, %t597) :: boolean
|
577
|
+
%t599 = const 1 :: integer
|
578
|
+
%t600 = call core.sub(%t591, %t599) :: integer
|
579
|
+
%t601 = const 0 :: integer
|
580
|
+
%t602 = call core.clamp(%t593, %t601, %t600) :: integer
|
581
|
+
%t603 = gather %t590, %t602 :: integer
|
551
582
|
%t604 = const 0 :: integer
|
552
|
-
%t605 =
|
553
|
-
%t606 =
|
554
|
-
%t607 =
|
555
|
-
%t608 =
|
556
|
-
%t609 =
|
557
|
-
%t610 =
|
558
|
-
%t611 =
|
559
|
-
%t612 = call core.
|
560
|
-
%t613 =
|
561
|
-
%t614 =
|
562
|
-
%t615 = call core.
|
563
|
-
%t616 =
|
564
|
-
%t617 =
|
565
|
-
%t618 =
|
566
|
-
%t619 =
|
567
|
-
%t620 =
|
568
|
-
%t621 =
|
569
|
-
%t622 =
|
570
|
-
%t623 =
|
571
|
-
%t624 = call core.
|
572
|
-
%t625 =
|
573
|
-
%t626 = call core.
|
574
|
-
%t627 =
|
575
|
-
%t628 = call core.
|
576
|
-
%t629 =
|
577
|
-
%t630 =
|
578
|
-
%t631 =
|
583
|
+
%t605 = select %t598, %t603, %t604 :: integer
|
584
|
+
%t606 = load_input "rows" :: array
|
585
|
+
%t607 = length %t606 :: integer
|
586
|
+
%t608 = const -1 :: integer
|
587
|
+
%t609 = call core.sub(%rows_i_255, %t608) :: integer
|
588
|
+
%t610 = const 0 :: integer
|
589
|
+
%t611 = call core.gte(%t609, %t610) :: boolean
|
590
|
+
%t612 = call core.lt(%t609, %t607) :: boolean
|
591
|
+
%t613 = call core.and(%t611, %t612) :: boolean
|
592
|
+
%t614 = const 1 :: integer
|
593
|
+
%t615 = call core.sub(%t607, %t614) :: integer
|
594
|
+
%t616 = const 0 :: integer
|
595
|
+
%t617 = call core.clamp(%t609, %t616, %t615) :: integer
|
596
|
+
%t618 = gather %t606, %t617 :: any
|
597
|
+
%t619 = length %t618 :: integer
|
598
|
+
%t620 = const 1 :: integer
|
599
|
+
%t621 = call core.sub(%col_i_257, %t620) :: integer
|
600
|
+
%t622 = const 0 :: integer
|
601
|
+
%t623 = call core.gte(%t621, %t622) :: boolean
|
602
|
+
%t624 = call core.lt(%t621, %t619) :: boolean
|
603
|
+
%t625 = call core.and(%t623, %t624) :: boolean
|
604
|
+
%t626 = call core.and(%t613, %t625) :: boolean
|
605
|
+
%t627 = const 1 :: integer
|
606
|
+
%t628 = call core.sub(%t619, %t627) :: integer
|
607
|
+
%t629 = const 0 :: integer
|
608
|
+
%t630 = call core.clamp(%t621, %t629, %t628) :: integer
|
609
|
+
%t631 = gather %t618, %t630 :: integer
|
579
610
|
%t632 = const 0 :: integer
|
580
|
-
%t633 =
|
581
|
-
%t634 =
|
582
|
-
%t635 =
|
583
|
-
%t636 =
|
584
|
-
%t637 =
|
585
|
-
%t638 =
|
586
|
-
%t639 =
|
587
|
-
%t640 = call core.
|
588
|
-
%t641 =
|
589
|
-
%t642 =
|
590
|
-
%t643 = call core.
|
591
|
-
%t644 =
|
592
|
-
%t645 =
|
593
|
-
%t646 =
|
594
|
-
%t647 =
|
595
|
-
%t648 =
|
596
|
-
%t649 =
|
597
|
-
%t650 =
|
598
|
-
%t651 =
|
599
|
-
%t652 = call core.
|
600
|
-
%t653 =
|
601
|
-
%t654 = call core.
|
602
|
-
%t655 =
|
603
|
-
%t656 = call core.
|
604
|
-
%t657 =
|
605
|
-
%t658 =
|
606
|
-
%t659 =
|
611
|
+
%t633 = select %t626, %t631, %t632 :: integer
|
612
|
+
%t634 = load_input "rows" :: array
|
613
|
+
%t635 = length %t634 :: integer
|
614
|
+
%t636 = const 1 :: integer
|
615
|
+
%t637 = call core.sub(%rows_i_255, %t636) :: integer
|
616
|
+
%t638 = const 0 :: integer
|
617
|
+
%t639 = call core.gte(%t637, %t638) :: boolean
|
618
|
+
%t640 = call core.lt(%t637, %t635) :: boolean
|
619
|
+
%t641 = call core.and(%t639, %t640) :: boolean
|
620
|
+
%t642 = const 1 :: integer
|
621
|
+
%t643 = call core.sub(%t635, %t642) :: integer
|
622
|
+
%t644 = const 0 :: integer
|
623
|
+
%t645 = call core.clamp(%t637, %t644, %t643) :: integer
|
624
|
+
%t646 = gather %t634, %t645 :: any
|
625
|
+
%t647 = length %t646 :: integer
|
626
|
+
%t648 = const -1 :: integer
|
627
|
+
%t649 = call core.sub(%col_i_257, %t648) :: integer
|
628
|
+
%t650 = const 0 :: integer
|
629
|
+
%t651 = call core.gte(%t649, %t650) :: boolean
|
630
|
+
%t652 = call core.lt(%t649, %t647) :: boolean
|
631
|
+
%t653 = call core.and(%t651, %t652) :: boolean
|
632
|
+
%t654 = call core.and(%t641, %t653) :: boolean
|
633
|
+
%t655 = const 1 :: integer
|
634
|
+
%t656 = call core.sub(%t647, %t655) :: integer
|
635
|
+
%t657 = const 0 :: integer
|
636
|
+
%t658 = call core.clamp(%t649, %t657, %t656) :: integer
|
637
|
+
%t659 = gather %t646, %t658 :: integer
|
607
638
|
%t660 = const 0 :: integer
|
608
|
-
%t661 =
|
609
|
-
%t662 =
|
610
|
-
%t663 =
|
611
|
-
%t664 =
|
612
|
-
%t665 =
|
613
|
-
%t666 =
|
614
|
-
%t667 =
|
615
|
-
%t668 = call core.
|
616
|
-
%t669 =
|
617
|
-
%t670 =
|
618
|
-
%t671 = call core.
|
619
|
-
%t672 =
|
620
|
-
%t673 =
|
621
|
-
%t674 =
|
622
|
-
%t675 =
|
623
|
-
%t676 =
|
624
|
-
%t677 =
|
625
|
-
%t678 =
|
626
|
-
%t679 =
|
627
|
-
%t680 = call core.
|
628
|
-
%t681 =
|
629
|
-
%t682 = call core.
|
630
|
-
%t683 =
|
631
|
-
%t684 = call core.
|
632
|
-
%t685 =
|
633
|
-
%t686 =
|
634
|
-
%t687 =
|
639
|
+
%t661 = select %t654, %t659, %t660 :: integer
|
640
|
+
%t662 = load_input "rows" :: array
|
641
|
+
%t663 = length %t662 :: integer
|
642
|
+
%t664 = const 1 :: integer
|
643
|
+
%t665 = call core.sub(%rows_i_255, %t664) :: integer
|
644
|
+
%t666 = const 0 :: integer
|
645
|
+
%t667 = call core.gte(%t665, %t666) :: boolean
|
646
|
+
%t668 = call core.lt(%t665, %t663) :: boolean
|
647
|
+
%t669 = call core.and(%t667, %t668) :: boolean
|
648
|
+
%t670 = const 1 :: integer
|
649
|
+
%t671 = call core.sub(%t663, %t670) :: integer
|
650
|
+
%t672 = const 0 :: integer
|
651
|
+
%t673 = call core.clamp(%t665, %t672, %t671) :: integer
|
652
|
+
%t674 = gather %t662, %t673 :: any
|
653
|
+
%t675 = length %t674 :: integer
|
654
|
+
%t676 = const 1 :: integer
|
655
|
+
%t677 = call core.sub(%col_i_257, %t676) :: integer
|
656
|
+
%t678 = const 0 :: integer
|
657
|
+
%t679 = call core.gte(%t677, %t678) :: boolean
|
658
|
+
%t680 = call core.lt(%t677, %t675) :: boolean
|
659
|
+
%t681 = call core.and(%t679, %t680) :: boolean
|
660
|
+
%t682 = call core.and(%t669, %t681) :: boolean
|
661
|
+
%t683 = const 1 :: integer
|
662
|
+
%t684 = call core.sub(%t675, %t683) :: integer
|
663
|
+
%t685 = const 0 :: integer
|
664
|
+
%t686 = call core.clamp(%t677, %t685, %t684) :: integer
|
665
|
+
%t687 = gather %t674, %t686 :: integer
|
635
666
|
%t688 = const 0 :: integer
|
636
|
-
%t689 =
|
637
|
-
%
|
638
|
-
%
|
639
|
-
%t692 = select %t685, %t690, %t691 :: integer
|
640
|
-
%t693 = load_input "rows" :: array
|
641
|
-
%t694 = length %t693 :: integer
|
642
|
-
%t695 = const 1 :: integer
|
643
|
-
%t696 = call core.sub(%rows_i_255, %t695) :: integer
|
644
|
-
%t697 = const 0 :: integer
|
645
|
-
%t698 = call core.gte(%t696, %t697) :: boolean
|
646
|
-
%t699 = call core.lt(%t696, %t694) :: boolean
|
647
|
-
%t700 = call core.and(%t698, %t699) :: boolean
|
648
|
-
%t701 = const 1 :: integer
|
649
|
-
%t702 = call core.sub(%t694, %t701) :: integer
|
650
|
-
%t703 = const 0 :: integer
|
651
|
-
%t704 = call core.clamp(%t696, %t703, %t702) :: integer
|
652
|
-
%t705 = gather %t693, %t704 :: any
|
653
|
-
%t706 = length %t705 :: integer
|
654
|
-
%t707 = const 1 :: integer
|
655
|
-
%t708 = call core.sub(%col_i_257, %t707) :: integer
|
656
|
-
%t709 = const 0 :: integer
|
657
|
-
%t710 = call core.gte(%t708, %t709) :: boolean
|
658
|
-
%t711 = call core.lt(%t708, %t706) :: boolean
|
659
|
-
%t712 = call core.and(%t710, %t711) :: boolean
|
660
|
-
%t713 = call core.and(%t700, %t712) :: boolean
|
661
|
-
%t714 = const 1 :: integer
|
662
|
-
%t715 = call core.sub(%t706, %t714) :: integer
|
663
|
-
%t716 = const 0 :: integer
|
664
|
-
%t717 = call core.clamp(%t708, %t716, %t715) :: integer
|
665
|
-
%t718 = gather %t705, %t717 :: integer
|
666
|
-
%t719 = const 0 :: integer
|
667
|
-
%t720 = select %t713, %t718, %t719 :: integer
|
668
|
-
%t496 = make_tuple(%t548, %t568, %t588, %t608, %t636, %t664, %t692, %t720) :: tuple<integer>
|
669
|
-
%t497 = fold %t496 fn="agg.sum" ::
|
667
|
+
%t689 = select %t682, %t687, %t688 :: integer
|
668
|
+
%t496 = make_tuple(%t517, %t537, %t557, %t577, %t605, %t633, %t661, %t689) :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
669
|
+
%t497 = fold %t496 fn="agg.sum" :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
670
670
|
%t259 = const 3 :: integer
|
671
671
|
%t260 = call core.eq(%t497, %t259) :: boolean
|
672
672
|
yield %t260
|
@@ -677,10 +677,30 @@
|
|
677
677
|
%t261 = load_input "rows" :: array
|
678
678
|
loop rows id=L25 in %t261 as el=%rows_el_262, idx=%rows_i_263
|
679
679
|
loop col id=L26 in %rows_el_262 as el=%col_el_264, idx=%col_i_265
|
680
|
-
%
|
680
|
+
%t690 = load_input "rows" :: array
|
681
|
+
%t701 = load_input "rows" :: array
|
682
|
+
%t702 = length %t701 :: integer
|
683
|
+
%t703 = const -1 :: integer
|
684
|
+
%t704 = call core.sub(%rows_i_263, %t703) :: integer
|
685
|
+
%t705 = const 0 :: integer
|
686
|
+
%t706 = call core.gte(%t704, %t705) :: boolean
|
687
|
+
%t707 = call core.lt(%t704, %t702) :: boolean
|
688
|
+
%t708 = call core.and(%t706, %t707) :: boolean
|
689
|
+
%t709 = const 1 :: integer
|
690
|
+
%t710 = call core.sub(%t702, %t709) :: integer
|
691
|
+
%t711 = const 0 :: integer
|
692
|
+
%t712 = call core.clamp(%t704, %t711, %t710) :: integer
|
693
|
+
%t713 = gather %t701, %t712 :: any
|
694
|
+
%t714 = length %t713 :: integer
|
695
|
+
%t715 = call core.mod(%col_i_265, %t714) :: integer
|
696
|
+
%t716 = call core.add(%t715, %t714) :: integer
|
697
|
+
%t717 = call core.mod(%t716, %t714) :: integer
|
698
|
+
%t718 = gather %t713, %t717 :: integer
|
699
|
+
%t719 = const 0 :: integer
|
700
|
+
%t720 = select %t708, %t718, %t719 :: integer
|
681
701
|
%t721 = load_input "rows" :: array
|
682
702
|
%t722 = length %t721 :: integer
|
683
|
-
%t723 = const
|
703
|
+
%t723 = const 1 :: integer
|
684
704
|
%t724 = call core.sub(%rows_i_263, %t723) :: integer
|
685
705
|
%t725 = const 0 :: integer
|
686
706
|
%t726 = call core.gte(%t724, %t725) :: boolean
|
@@ -700,24 +720,24 @@
|
|
700
720
|
%t740 = select %t728, %t738, %t739 :: integer
|
701
721
|
%t741 = load_input "rows" :: array
|
702
722
|
%t742 = length %t741 :: integer
|
703
|
-
%t743 =
|
704
|
-
%t744 = call core.
|
705
|
-
%t745 =
|
706
|
-
%t746 =
|
707
|
-
%t747 =
|
708
|
-
%t748 =
|
709
|
-
%t749 =
|
710
|
-
%t750 =
|
711
|
-
%t751 =
|
712
|
-
%t752 = call core.
|
713
|
-
%t753 =
|
714
|
-
%t754 =
|
715
|
-
%t755 = call core.
|
716
|
-
%t756 =
|
717
|
-
%t757 = call core.
|
718
|
-
%t758 = gather %
|
723
|
+
%t743 = call core.mod(%rows_i_263, %t742) :: integer
|
724
|
+
%t744 = call core.add(%t743, %t742) :: integer
|
725
|
+
%t745 = call core.mod(%t744, %t742) :: integer
|
726
|
+
%t746 = gather %t741, %t745 :: any
|
727
|
+
%t747 = length %t746 :: integer
|
728
|
+
%t748 = const -1 :: integer
|
729
|
+
%t749 = call core.sub(%col_i_265, %t748) :: integer
|
730
|
+
%t750 = const 0 :: integer
|
731
|
+
%t751 = call core.gte(%t749, %t750) :: boolean
|
732
|
+
%t752 = call core.lt(%t749, %t747) :: boolean
|
733
|
+
%t753 = call core.and(%t751, %t752) :: boolean
|
734
|
+
%t754 = const 1 :: integer
|
735
|
+
%t755 = call core.sub(%t747, %t754) :: integer
|
736
|
+
%t756 = const 0 :: integer
|
737
|
+
%t757 = call core.clamp(%t749, %t756, %t755) :: integer
|
738
|
+
%t758 = gather %t746, %t757 :: integer
|
719
739
|
%t759 = const 0 :: integer
|
720
|
-
%t760 = select %
|
740
|
+
%t760 = select %t753, %t758, %t759 :: integer
|
721
741
|
%t761 = load_input "rows" :: array
|
722
742
|
%t762 = length %t761 :: integer
|
723
743
|
%t763 = call core.mod(%rows_i_263, %t762) :: integer
|
@@ -725,7 +745,7 @@
|
|
725
745
|
%t765 = call core.mod(%t764, %t762) :: integer
|
726
746
|
%t766 = gather %t761, %t765 :: any
|
727
747
|
%t767 = length %t766 :: integer
|
728
|
-
%t768 = const
|
748
|
+
%t768 = const 1 :: integer
|
729
749
|
%t769 = call core.sub(%col_i_265, %t768) :: integer
|
730
750
|
%t770 = const 0 :: integer
|
731
751
|
%t771 = call core.gte(%t769, %t770) :: boolean
|
@@ -740,140 +760,120 @@
|
|
740
760
|
%t780 = select %t773, %t778, %t779 :: integer
|
741
761
|
%t781 = load_input "rows" :: array
|
742
762
|
%t782 = length %t781 :: integer
|
743
|
-
%t783 =
|
744
|
-
%t784 = call core.
|
745
|
-
%t785 =
|
746
|
-
%t786 =
|
747
|
-
%t787 =
|
748
|
-
%t788 =
|
749
|
-
%t789 =
|
750
|
-
%t790 =
|
751
|
-
%t791 =
|
752
|
-
%t792 = call core.
|
753
|
-
%t793 =
|
754
|
-
%t794 =
|
755
|
-
%t795 =
|
756
|
-
%t796 =
|
757
|
-
%t797 =
|
758
|
-
%t798 =
|
759
|
-
%t799 =
|
760
|
-
%t800 =
|
761
|
-
%t801 =
|
762
|
-
%t802 =
|
763
|
-
%t803 =
|
764
|
-
%t804 =
|
765
|
-
%t805 =
|
766
|
-
%t806 =
|
767
|
-
%t807 =
|
768
|
-
%t808 =
|
769
|
-
%t809 =
|
770
|
-
%t810 =
|
771
|
-
%t811 = const
|
772
|
-
%t812 = call core.
|
773
|
-
%t813 =
|
774
|
-
%t814 =
|
775
|
-
%t815 =
|
776
|
-
%t816 = call core.
|
777
|
-
%t817 = const
|
778
|
-
%t818 = call core.
|
779
|
-
%t819 =
|
780
|
-
%t820 = call core.
|
781
|
-
%t821 =
|
782
|
-
%t822 =
|
783
|
-
%t823 =
|
784
|
-
%t824 =
|
785
|
-
%t825 =
|
786
|
-
%t826 =
|
787
|
-
%t827 =
|
788
|
-
%t828 =
|
789
|
-
%t829 =
|
790
|
-
%t830 =
|
791
|
-
%t831 =
|
792
|
-
%t832 =
|
793
|
-
%t833 =
|
794
|
-
%t834 =
|
795
|
-
%t835 =
|
796
|
-
%t836 =
|
797
|
-
%t837 =
|
798
|
-
%t838 =
|
799
|
-
%t839 = const
|
800
|
-
%t840 = call core.
|
801
|
-
%t841 =
|
802
|
-
%t842 =
|
803
|
-
%t843 =
|
804
|
-
%t844 = call core.
|
805
|
-
%t845 = const
|
806
|
-
%t846 = call core.
|
807
|
-
%t847 =
|
808
|
-
%t848 = call core.
|
809
|
-
%t849 =
|
810
|
-
%t850 =
|
811
|
-
%t851 =
|
812
|
-
%t852 =
|
813
|
-
%t853 =
|
814
|
-
%t854 =
|
815
|
-
%t855 =
|
816
|
-
%t856 =
|
817
|
-
%t857 =
|
818
|
-
%t858 =
|
819
|
-
%t859 =
|
820
|
-
%t860 =
|
821
|
-
%t861 =
|
822
|
-
%t862 =
|
823
|
-
%t863 =
|
824
|
-
%t864 =
|
825
|
-
%t865 =
|
826
|
-
%t866 =
|
827
|
-
%t867 = const
|
828
|
-
%t868 = call core.
|
829
|
-
%t869 =
|
830
|
-
%t870 =
|
831
|
-
%t871 =
|
832
|
-
%t872 = call core.
|
833
|
-
%t873 = const
|
834
|
-
%t874 = call core.
|
835
|
-
%t875 =
|
836
|
-
%t876 = call core.
|
837
|
-
%t877 =
|
838
|
-
%t878 =
|
839
|
-
%t879 =
|
840
|
-
%t880 =
|
841
|
-
%t881 =
|
842
|
-
%t882 =
|
843
|
-
%t883 =
|
844
|
-
%t884 =
|
845
|
-
%t885 =
|
846
|
-
%t886 =
|
847
|
-
%t887 =
|
848
|
-
%t888 =
|
849
|
-
%t889 =
|
850
|
-
%t890 =
|
851
|
-
%t891 =
|
852
|
-
%t892 =
|
853
|
-
%
|
854
|
-
%
|
855
|
-
%t895 = const 0 :: integer
|
856
|
-
%t896 = call core.clamp(%t888, %t895, %t894) :: integer
|
857
|
-
%t897 = gather %t885, %t896 :: any
|
858
|
-
%t898 = length %t897 :: integer
|
859
|
-
%t899 = const 1 :: integer
|
860
|
-
%t900 = call core.sub(%col_i_265, %t899) :: integer
|
861
|
-
%t901 = const 0 :: integer
|
862
|
-
%t902 = call core.gte(%t900, %t901) :: boolean
|
863
|
-
%t903 = call core.lt(%t900, %t898) :: boolean
|
864
|
-
%t904 = call core.and(%t902, %t903) :: boolean
|
865
|
-
%t905 = call core.and(%t892, %t904) :: boolean
|
866
|
-
%t906 = const 1 :: integer
|
867
|
-
%t907 = call core.sub(%t898, %t906) :: integer
|
868
|
-
%t908 = const 0 :: integer
|
869
|
-
%t909 = call core.clamp(%t900, %t908, %t907) :: integer
|
870
|
-
%t910 = gather %t897, %t909 :: integer
|
871
|
-
%t911 = const 0 :: integer
|
872
|
-
%t912 = select %t905, %t910, %t911 :: integer
|
873
|
-
%t507 = make_tuple(%t740, %t760, %t780, %t800, %t828, %t856, %t884, %t912) :: tuple<integer>
|
874
|
-
%t508 = fold %t507 fn="agg.sum" ::
|
763
|
+
%t783 = const -1 :: integer
|
764
|
+
%t784 = call core.sub(%rows_i_263, %t783) :: integer
|
765
|
+
%t785 = const 0 :: integer
|
766
|
+
%t786 = call core.gte(%t784, %t785) :: boolean
|
767
|
+
%t787 = call core.lt(%t784, %t782) :: boolean
|
768
|
+
%t788 = call core.and(%t786, %t787) :: boolean
|
769
|
+
%t789 = const 1 :: integer
|
770
|
+
%t790 = call core.sub(%t782, %t789) :: integer
|
771
|
+
%t791 = const 0 :: integer
|
772
|
+
%t792 = call core.clamp(%t784, %t791, %t790) :: integer
|
773
|
+
%t793 = gather %t781, %t792 :: any
|
774
|
+
%t794 = length %t793 :: integer
|
775
|
+
%t795 = const -1 :: integer
|
776
|
+
%t796 = call core.sub(%col_i_265, %t795) :: integer
|
777
|
+
%t797 = const 0 :: integer
|
778
|
+
%t798 = call core.gte(%t796, %t797) :: boolean
|
779
|
+
%t799 = call core.lt(%t796, %t794) :: boolean
|
780
|
+
%t800 = call core.and(%t798, %t799) :: boolean
|
781
|
+
%t801 = call core.and(%t788, %t800) :: boolean
|
782
|
+
%t802 = const 1 :: integer
|
783
|
+
%t803 = call core.sub(%t794, %t802) :: integer
|
784
|
+
%t804 = const 0 :: integer
|
785
|
+
%t805 = call core.clamp(%t796, %t804, %t803) :: integer
|
786
|
+
%t806 = gather %t793, %t805 :: integer
|
787
|
+
%t807 = const 0 :: integer
|
788
|
+
%t808 = select %t801, %t806, %t807 :: integer
|
789
|
+
%t809 = load_input "rows" :: array
|
790
|
+
%t810 = length %t809 :: integer
|
791
|
+
%t811 = const -1 :: integer
|
792
|
+
%t812 = call core.sub(%rows_i_263, %t811) :: integer
|
793
|
+
%t813 = const 0 :: integer
|
794
|
+
%t814 = call core.gte(%t812, %t813) :: boolean
|
795
|
+
%t815 = call core.lt(%t812, %t810) :: boolean
|
796
|
+
%t816 = call core.and(%t814, %t815) :: boolean
|
797
|
+
%t817 = const 1 :: integer
|
798
|
+
%t818 = call core.sub(%t810, %t817) :: integer
|
799
|
+
%t819 = const 0 :: integer
|
800
|
+
%t820 = call core.clamp(%t812, %t819, %t818) :: integer
|
801
|
+
%t821 = gather %t809, %t820 :: any
|
802
|
+
%t822 = length %t821 :: integer
|
803
|
+
%t823 = const 1 :: integer
|
804
|
+
%t824 = call core.sub(%col_i_265, %t823) :: integer
|
805
|
+
%t825 = const 0 :: integer
|
806
|
+
%t826 = call core.gte(%t824, %t825) :: boolean
|
807
|
+
%t827 = call core.lt(%t824, %t822) :: boolean
|
808
|
+
%t828 = call core.and(%t826, %t827) :: boolean
|
809
|
+
%t829 = call core.and(%t816, %t828) :: boolean
|
810
|
+
%t830 = const 1 :: integer
|
811
|
+
%t831 = call core.sub(%t822, %t830) :: integer
|
812
|
+
%t832 = const 0 :: integer
|
813
|
+
%t833 = call core.clamp(%t824, %t832, %t831) :: integer
|
814
|
+
%t834 = gather %t821, %t833 :: integer
|
815
|
+
%t835 = const 0 :: integer
|
816
|
+
%t836 = select %t829, %t834, %t835 :: integer
|
817
|
+
%t837 = load_input "rows" :: array
|
818
|
+
%t838 = length %t837 :: integer
|
819
|
+
%t839 = const 1 :: integer
|
820
|
+
%t840 = call core.sub(%rows_i_263, %t839) :: integer
|
821
|
+
%t841 = const 0 :: integer
|
822
|
+
%t842 = call core.gte(%t840, %t841) :: boolean
|
823
|
+
%t843 = call core.lt(%t840, %t838) :: boolean
|
824
|
+
%t844 = call core.and(%t842, %t843) :: boolean
|
825
|
+
%t845 = const 1 :: integer
|
826
|
+
%t846 = call core.sub(%t838, %t845) :: integer
|
827
|
+
%t847 = const 0 :: integer
|
828
|
+
%t848 = call core.clamp(%t840, %t847, %t846) :: integer
|
829
|
+
%t849 = gather %t837, %t848 :: any
|
830
|
+
%t850 = length %t849 :: integer
|
831
|
+
%t851 = const -1 :: integer
|
832
|
+
%t852 = call core.sub(%col_i_265, %t851) :: integer
|
833
|
+
%t853 = const 0 :: integer
|
834
|
+
%t854 = call core.gte(%t852, %t853) :: boolean
|
835
|
+
%t855 = call core.lt(%t852, %t850) :: boolean
|
836
|
+
%t856 = call core.and(%t854, %t855) :: boolean
|
837
|
+
%t857 = call core.and(%t844, %t856) :: boolean
|
838
|
+
%t858 = const 1 :: integer
|
839
|
+
%t859 = call core.sub(%t850, %t858) :: integer
|
840
|
+
%t860 = const 0 :: integer
|
841
|
+
%t861 = call core.clamp(%t852, %t860, %t859) :: integer
|
842
|
+
%t862 = gather %t849, %t861 :: integer
|
843
|
+
%t863 = const 0 :: integer
|
844
|
+
%t864 = select %t857, %t862, %t863 :: integer
|
845
|
+
%t865 = load_input "rows" :: array
|
846
|
+
%t866 = length %t865 :: integer
|
847
|
+
%t867 = const 1 :: integer
|
848
|
+
%t868 = call core.sub(%rows_i_263, %t867) :: integer
|
849
|
+
%t869 = const 0 :: integer
|
850
|
+
%t870 = call core.gte(%t868, %t869) :: boolean
|
851
|
+
%t871 = call core.lt(%t868, %t866) :: boolean
|
852
|
+
%t872 = call core.and(%t870, %t871) :: boolean
|
853
|
+
%t873 = const 1 :: integer
|
854
|
+
%t874 = call core.sub(%t866, %t873) :: integer
|
855
|
+
%t875 = const 0 :: integer
|
856
|
+
%t876 = call core.clamp(%t868, %t875, %t874) :: integer
|
857
|
+
%t877 = gather %t865, %t876 :: any
|
858
|
+
%t878 = length %t877 :: integer
|
859
|
+
%t879 = const 1 :: integer
|
860
|
+
%t880 = call core.sub(%col_i_265, %t879) :: integer
|
861
|
+
%t881 = const 0 :: integer
|
862
|
+
%t882 = call core.gte(%t880, %t881) :: boolean
|
863
|
+
%t883 = call core.lt(%t880, %t878) :: boolean
|
864
|
+
%t884 = call core.and(%t882, %t883) :: boolean
|
865
|
+
%t885 = call core.and(%t872, %t884) :: boolean
|
866
|
+
%t886 = const 1 :: integer
|
867
|
+
%t887 = call core.sub(%t878, %t886) :: integer
|
868
|
+
%t888 = const 0 :: integer
|
869
|
+
%t889 = call core.clamp(%t880, %t888, %t887) :: integer
|
870
|
+
%t890 = gather %t877, %t889 :: integer
|
871
|
+
%t891 = const 0 :: integer
|
872
|
+
%t892 = select %t885, %t890, %t891 :: integer
|
873
|
+
%t699 = make_tuple(%t720, %t740, %t760, %t780, %t808, %t836, %t864, %t892) :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
874
|
+
%t700 = fold %t699 fn="agg.sum" :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
875
875
|
%t267 = const 2 :: integer
|
876
|
-
%t268 = call core.eq(%
|
876
|
+
%t268 = call core.eq(%t700, %t267) :: boolean
|
877
877
|
yield %t268
|
878
878
|
end_loop
|
879
879
|
end_loop
|
@@ -882,209 +882,209 @@
|
|
882
882
|
%t269 = load_input "rows" :: array
|
883
883
|
loop rows id=L27 in %t269 as el=%rows_el_270, idx=%rows_i_271
|
884
884
|
loop col id=L28 in %rows_el_270 as el=%col_el_272, idx=%col_i_273
|
885
|
-
%
|
886
|
-
%
|
887
|
-
%
|
888
|
-
%
|
889
|
-
%
|
890
|
-
%
|
885
|
+
%t893 = load_input "rows" :: array
|
886
|
+
%t897 = load_input "rows" :: array
|
887
|
+
%t908 = load_input "rows" :: array
|
888
|
+
%t909 = length %t908 :: integer
|
889
|
+
%t910 = const -1 :: integer
|
890
|
+
%t911 = call core.sub(%rows_i_271, %t910) :: integer
|
891
|
+
%t912 = const 0 :: integer
|
892
|
+
%t913 = call core.gte(%t911, %t912) :: boolean
|
893
|
+
%t914 = call core.lt(%t911, %t909) :: boolean
|
894
|
+
%t915 = call core.and(%t913, %t914) :: boolean
|
895
|
+
%t916 = const 1 :: integer
|
896
|
+
%t917 = call core.sub(%t909, %t916) :: integer
|
891
897
|
%t918 = const 0 :: integer
|
892
|
-
%t919 = call core.
|
893
|
-
%t920 =
|
894
|
-
%t921 =
|
895
|
-
%t922 =
|
896
|
-
%t923 = call core.
|
897
|
-
%t924 =
|
898
|
-
%t925 =
|
899
|
-
%t926 =
|
900
|
-
%t927 =
|
901
|
-
%t928 =
|
902
|
-
%t929 =
|
903
|
-
%t930 =
|
904
|
-
%t931 =
|
898
|
+
%t919 = call core.clamp(%t911, %t918, %t917) :: integer
|
899
|
+
%t920 = gather %t908, %t919 :: any
|
900
|
+
%t921 = length %t920 :: integer
|
901
|
+
%t922 = call core.mod(%col_i_273, %t921) :: integer
|
902
|
+
%t923 = call core.add(%t922, %t921) :: integer
|
903
|
+
%t924 = call core.mod(%t923, %t921) :: integer
|
904
|
+
%t925 = gather %t920, %t924 :: integer
|
905
|
+
%t926 = const 0 :: integer
|
906
|
+
%t927 = select %t915, %t925, %t926 :: integer
|
907
|
+
%t928 = load_input "rows" :: array
|
908
|
+
%t929 = length %t928 :: integer
|
909
|
+
%t930 = const 1 :: integer
|
910
|
+
%t931 = call core.sub(%rows_i_271, %t930) :: integer
|
905
911
|
%t932 = const 0 :: integer
|
906
|
-
%t933 =
|
907
|
-
%t934 =
|
908
|
-
%t935 =
|
912
|
+
%t933 = call core.gte(%t931, %t932) :: boolean
|
913
|
+
%t934 = call core.lt(%t931, %t929) :: boolean
|
914
|
+
%t935 = call core.and(%t933, %t934) :: boolean
|
909
915
|
%t936 = const 1 :: integer
|
910
|
-
%t937 = call core.sub(%
|
916
|
+
%t937 = call core.sub(%t929, %t936) :: integer
|
911
917
|
%t938 = const 0 :: integer
|
912
|
-
%t939 = call core.
|
913
|
-
%t940 =
|
914
|
-
%t941 =
|
915
|
-
%t942 =
|
916
|
-
%t943 = call core.
|
917
|
-
%t944 =
|
918
|
-
%t945 =
|
919
|
-
%t946 =
|
920
|
-
%t947 =
|
921
|
-
%t948 =
|
922
|
-
%t949 =
|
923
|
-
%t950 = call core.mod(%
|
924
|
-
%t951 =
|
925
|
-
%t952 =
|
926
|
-
%t953 =
|
927
|
-
%t954 =
|
928
|
-
%t955 =
|
929
|
-
%t956 = call core.
|
930
|
-
%t957 =
|
931
|
-
%t958 = call core.
|
932
|
-
%t959 =
|
933
|
-
%t960 =
|
934
|
-
%t961 = const
|
935
|
-
%t962 = call core.sub(%
|
918
|
+
%t939 = call core.clamp(%t931, %t938, %t937) :: integer
|
919
|
+
%t940 = gather %t928, %t939 :: any
|
920
|
+
%t941 = length %t940 :: integer
|
921
|
+
%t942 = call core.mod(%col_i_273, %t941) :: integer
|
922
|
+
%t943 = call core.add(%t942, %t941) :: integer
|
923
|
+
%t944 = call core.mod(%t943, %t941) :: integer
|
924
|
+
%t945 = gather %t940, %t944 :: integer
|
925
|
+
%t946 = const 0 :: integer
|
926
|
+
%t947 = select %t935, %t945, %t946 :: integer
|
927
|
+
%t948 = load_input "rows" :: array
|
928
|
+
%t949 = length %t948 :: integer
|
929
|
+
%t950 = call core.mod(%rows_i_271, %t949) :: integer
|
930
|
+
%t951 = call core.add(%t950, %t949) :: integer
|
931
|
+
%t952 = call core.mod(%t951, %t949) :: integer
|
932
|
+
%t953 = gather %t948, %t952 :: any
|
933
|
+
%t954 = length %t953 :: integer
|
934
|
+
%t955 = const -1 :: integer
|
935
|
+
%t956 = call core.sub(%col_i_273, %t955) :: integer
|
936
|
+
%t957 = const 0 :: integer
|
937
|
+
%t958 = call core.gte(%t956, %t957) :: boolean
|
938
|
+
%t959 = call core.lt(%t956, %t954) :: boolean
|
939
|
+
%t960 = call core.and(%t958, %t959) :: boolean
|
940
|
+
%t961 = const 1 :: integer
|
941
|
+
%t962 = call core.sub(%t954, %t961) :: integer
|
936
942
|
%t963 = const 0 :: integer
|
937
|
-
%t964 = call core.
|
938
|
-
%t965 =
|
939
|
-
%t966 =
|
940
|
-
%t967 =
|
941
|
-
%t968 =
|
942
|
-
%t969 =
|
943
|
-
%t970 = call core.
|
944
|
-
%t971 =
|
945
|
-
%t972 =
|
946
|
-
%t973 =
|
947
|
-
%t974 =
|
948
|
-
%t975 =
|
949
|
-
%t976 = call core.
|
950
|
-
%t977 =
|
951
|
-
%t978 = call core.
|
952
|
-
%t979 =
|
953
|
-
%t980 =
|
943
|
+
%t964 = call core.clamp(%t956, %t963, %t962) :: integer
|
944
|
+
%t965 = gather %t953, %t964 :: integer
|
945
|
+
%t966 = const 0 :: integer
|
946
|
+
%t967 = select %t960, %t965, %t966 :: integer
|
947
|
+
%t968 = load_input "rows" :: array
|
948
|
+
%t969 = length %t968 :: integer
|
949
|
+
%t970 = call core.mod(%rows_i_271, %t969) :: integer
|
950
|
+
%t971 = call core.add(%t970, %t969) :: integer
|
951
|
+
%t972 = call core.mod(%t971, %t969) :: integer
|
952
|
+
%t973 = gather %t968, %t972 :: any
|
953
|
+
%t974 = length %t973 :: integer
|
954
|
+
%t975 = const 1 :: integer
|
955
|
+
%t976 = call core.sub(%col_i_273, %t975) :: integer
|
956
|
+
%t977 = const 0 :: integer
|
957
|
+
%t978 = call core.gte(%t976, %t977) :: boolean
|
958
|
+
%t979 = call core.lt(%t976, %t974) :: boolean
|
959
|
+
%t980 = call core.and(%t978, %t979) :: boolean
|
954
960
|
%t981 = const 1 :: integer
|
955
|
-
%t982 = call core.sub(%
|
961
|
+
%t982 = call core.sub(%t974, %t981) :: integer
|
956
962
|
%t983 = const 0 :: integer
|
957
|
-
%t984 = call core.
|
958
|
-
%t985 =
|
959
|
-
%t986 =
|
960
|
-
%t987 =
|
961
|
-
%t988 =
|
962
|
-
%t989 =
|
963
|
-
%t990 =
|
964
|
-
%t991 =
|
963
|
+
%t984 = call core.clamp(%t976, %t983, %t982) :: integer
|
964
|
+
%t985 = gather %t973, %t984 :: integer
|
965
|
+
%t986 = const 0 :: integer
|
966
|
+
%t987 = select %t980, %t985, %t986 :: integer
|
967
|
+
%t988 = load_input "rows" :: array
|
968
|
+
%t989 = length %t988 :: integer
|
969
|
+
%t990 = const -1 :: integer
|
970
|
+
%t991 = call core.sub(%rows_i_271, %t990) :: integer
|
965
971
|
%t992 = const 0 :: integer
|
966
|
-
%t993 =
|
967
|
-
%t994 =
|
968
|
-
%t995 =
|
969
|
-
%t996 = const
|
970
|
-
%t997 = call core.sub(%
|
972
|
+
%t993 = call core.gte(%t991, %t992) :: boolean
|
973
|
+
%t994 = call core.lt(%t991, %t989) :: boolean
|
974
|
+
%t995 = call core.and(%t993, %t994) :: boolean
|
975
|
+
%t996 = const 1 :: integer
|
976
|
+
%t997 = call core.sub(%t989, %t996) :: integer
|
971
977
|
%t998 = const 0 :: integer
|
972
|
-
%t999 = call core.
|
973
|
-
%t1000 =
|
974
|
-
%t1001 =
|
975
|
-
%t1002 = const 1 :: integer
|
976
|
-
%t1003 = call core.sub(%
|
978
|
+
%t999 = call core.clamp(%t991, %t998, %t997) :: integer
|
979
|
+
%t1000 = gather %t988, %t999 :: any
|
980
|
+
%t1001 = length %t1000 :: integer
|
981
|
+
%t1002 = const -1 :: integer
|
982
|
+
%t1003 = call core.sub(%col_i_273, %t1002) :: integer
|
977
983
|
%t1004 = const 0 :: integer
|
978
|
-
%t1005 = call core.
|
979
|
-
%t1006 =
|
980
|
-
%t1007 =
|
981
|
-
%t1008 =
|
982
|
-
%t1009 =
|
983
|
-
%t1010 =
|
984
|
-
%t1011 =
|
985
|
-
%t1012 = call core.
|
986
|
-
%t1013 =
|
987
|
-
%t1014 =
|
988
|
-
%t1015 =
|
989
|
-
%t1016 =
|
990
|
-
%t1017 =
|
991
|
-
%t1018 =
|
992
|
-
%t1019 =
|
984
|
+
%t1005 = call core.gte(%t1003, %t1004) :: boolean
|
985
|
+
%t1006 = call core.lt(%t1003, %t1001) :: boolean
|
986
|
+
%t1007 = call core.and(%t1005, %t1006) :: boolean
|
987
|
+
%t1008 = call core.and(%t995, %t1007) :: boolean
|
988
|
+
%t1009 = const 1 :: integer
|
989
|
+
%t1010 = call core.sub(%t1001, %t1009) :: integer
|
990
|
+
%t1011 = const 0 :: integer
|
991
|
+
%t1012 = call core.clamp(%t1003, %t1011, %t1010) :: integer
|
992
|
+
%t1013 = gather %t1000, %t1012 :: integer
|
993
|
+
%t1014 = const 0 :: integer
|
994
|
+
%t1015 = select %t1008, %t1013, %t1014 :: integer
|
995
|
+
%t1016 = load_input "rows" :: array
|
996
|
+
%t1017 = length %t1016 :: integer
|
997
|
+
%t1018 = const -1 :: integer
|
998
|
+
%t1019 = call core.sub(%rows_i_271, %t1018) :: integer
|
993
999
|
%t1020 = const 0 :: integer
|
994
|
-
%t1021 =
|
995
|
-
%t1022 =
|
996
|
-
%t1023 =
|
997
|
-
%t1024 = const
|
998
|
-
%t1025 = call core.sub(%
|
1000
|
+
%t1021 = call core.gte(%t1019, %t1020) :: boolean
|
1001
|
+
%t1022 = call core.lt(%t1019, %t1017) :: boolean
|
1002
|
+
%t1023 = call core.and(%t1021, %t1022) :: boolean
|
1003
|
+
%t1024 = const 1 :: integer
|
1004
|
+
%t1025 = call core.sub(%t1017, %t1024) :: integer
|
999
1005
|
%t1026 = const 0 :: integer
|
1000
|
-
%t1027 = call core.
|
1001
|
-
%t1028 =
|
1002
|
-
%t1029 =
|
1006
|
+
%t1027 = call core.clamp(%t1019, %t1026, %t1025) :: integer
|
1007
|
+
%t1028 = gather %t1016, %t1027 :: any
|
1008
|
+
%t1029 = length %t1028 :: integer
|
1003
1009
|
%t1030 = const 1 :: integer
|
1004
|
-
%t1031 = call core.sub(%
|
1010
|
+
%t1031 = call core.sub(%col_i_273, %t1030) :: integer
|
1005
1011
|
%t1032 = const 0 :: integer
|
1006
|
-
%t1033 = call core.
|
1007
|
-
%t1034 =
|
1008
|
-
%t1035 =
|
1009
|
-
%t1036 =
|
1010
|
-
%t1037 =
|
1011
|
-
%t1038 =
|
1012
|
-
%t1039 =
|
1013
|
-
%t1040 = call core.
|
1014
|
-
%t1041 =
|
1015
|
-
%t1042 =
|
1016
|
-
%t1043 =
|
1017
|
-
%t1044 =
|
1018
|
-
%t1045 =
|
1019
|
-
%t1046 =
|
1020
|
-
%t1047 =
|
1012
|
+
%t1033 = call core.gte(%t1031, %t1032) :: boolean
|
1013
|
+
%t1034 = call core.lt(%t1031, %t1029) :: boolean
|
1014
|
+
%t1035 = call core.and(%t1033, %t1034) :: boolean
|
1015
|
+
%t1036 = call core.and(%t1023, %t1035) :: boolean
|
1016
|
+
%t1037 = const 1 :: integer
|
1017
|
+
%t1038 = call core.sub(%t1029, %t1037) :: integer
|
1018
|
+
%t1039 = const 0 :: integer
|
1019
|
+
%t1040 = call core.clamp(%t1031, %t1039, %t1038) :: integer
|
1020
|
+
%t1041 = gather %t1028, %t1040 :: integer
|
1021
|
+
%t1042 = const 0 :: integer
|
1022
|
+
%t1043 = select %t1036, %t1041, %t1042 :: integer
|
1023
|
+
%t1044 = load_input "rows" :: array
|
1024
|
+
%t1045 = length %t1044 :: integer
|
1025
|
+
%t1046 = const 1 :: integer
|
1026
|
+
%t1047 = call core.sub(%rows_i_271, %t1046) :: integer
|
1021
1027
|
%t1048 = const 0 :: integer
|
1022
|
-
%t1049 =
|
1023
|
-
%t1050 =
|
1024
|
-
%t1051 =
|
1028
|
+
%t1049 = call core.gte(%t1047, %t1048) :: boolean
|
1029
|
+
%t1050 = call core.lt(%t1047, %t1045) :: boolean
|
1030
|
+
%t1051 = call core.and(%t1049, %t1050) :: boolean
|
1025
1031
|
%t1052 = const 1 :: integer
|
1026
|
-
%t1053 = call core.sub(%
|
1032
|
+
%t1053 = call core.sub(%t1045, %t1052) :: integer
|
1027
1033
|
%t1054 = const 0 :: integer
|
1028
|
-
%t1055 = call core.
|
1029
|
-
%t1056 =
|
1030
|
-
%t1057 =
|
1031
|
-
%t1058 = const 1 :: integer
|
1032
|
-
%t1059 = call core.sub(%
|
1034
|
+
%t1055 = call core.clamp(%t1047, %t1054, %t1053) :: integer
|
1035
|
+
%t1056 = gather %t1044, %t1055 :: any
|
1036
|
+
%t1057 = length %t1056 :: integer
|
1037
|
+
%t1058 = const -1 :: integer
|
1038
|
+
%t1059 = call core.sub(%col_i_273, %t1058) :: integer
|
1033
1039
|
%t1060 = const 0 :: integer
|
1034
|
-
%t1061 = call core.
|
1035
|
-
%t1062 =
|
1036
|
-
%t1063 =
|
1037
|
-
%t1064 =
|
1038
|
-
%t1065 =
|
1039
|
-
%t1066 =
|
1040
|
-
%t1067 =
|
1041
|
-
%t1068 = call core.
|
1042
|
-
%t1069 =
|
1043
|
-
%t1070 =
|
1044
|
-
%t1071 =
|
1045
|
-
%t1072 =
|
1046
|
-
%t1073 =
|
1047
|
-
%t1074 =
|
1048
|
-
%t1075 =
|
1040
|
+
%t1061 = call core.gte(%t1059, %t1060) :: boolean
|
1041
|
+
%t1062 = call core.lt(%t1059, %t1057) :: boolean
|
1042
|
+
%t1063 = call core.and(%t1061, %t1062) :: boolean
|
1043
|
+
%t1064 = call core.and(%t1051, %t1063) :: boolean
|
1044
|
+
%t1065 = const 1 :: integer
|
1045
|
+
%t1066 = call core.sub(%t1057, %t1065) :: integer
|
1046
|
+
%t1067 = const 0 :: integer
|
1047
|
+
%t1068 = call core.clamp(%t1059, %t1067, %t1066) :: integer
|
1048
|
+
%t1069 = gather %t1056, %t1068 :: integer
|
1049
|
+
%t1070 = const 0 :: integer
|
1050
|
+
%t1071 = select %t1064, %t1069, %t1070 :: integer
|
1051
|
+
%t1072 = load_input "rows" :: array
|
1052
|
+
%t1073 = length %t1072 :: integer
|
1053
|
+
%t1074 = const 1 :: integer
|
1054
|
+
%t1075 = call core.sub(%rows_i_271, %t1074) :: integer
|
1049
1055
|
%t1076 = const 0 :: integer
|
1050
|
-
%t1077 =
|
1051
|
-
%t1078 =
|
1052
|
-
%t1079 =
|
1056
|
+
%t1077 = call core.gte(%t1075, %t1076) :: boolean
|
1057
|
+
%t1078 = call core.lt(%t1075, %t1073) :: boolean
|
1058
|
+
%t1079 = call core.and(%t1077, %t1078) :: boolean
|
1053
1059
|
%t1080 = const 1 :: integer
|
1054
|
-
%t1081 = call core.sub(%
|
1060
|
+
%t1081 = call core.sub(%t1073, %t1080) :: integer
|
1055
1061
|
%t1082 = const 0 :: integer
|
1056
|
-
%t1083 = call core.
|
1057
|
-
%t1084 =
|
1058
|
-
%t1085 =
|
1062
|
+
%t1083 = call core.clamp(%t1075, %t1082, %t1081) :: integer
|
1063
|
+
%t1084 = gather %t1072, %t1083 :: any
|
1064
|
+
%t1085 = length %t1084 :: integer
|
1059
1065
|
%t1086 = const 1 :: integer
|
1060
|
-
%t1087 = call core.sub(%
|
1066
|
+
%t1087 = call core.sub(%col_i_273, %t1086) :: integer
|
1061
1067
|
%t1088 = const 0 :: integer
|
1062
|
-
%t1089 = call core.
|
1063
|
-
%t1090 =
|
1064
|
-
%t1091 =
|
1065
|
-
%t1092 =
|
1066
|
-
%t1093 =
|
1067
|
-
%t1094 =
|
1068
|
-
%t1095 =
|
1069
|
-
%t1096 = call core.
|
1070
|
-
%t1097 =
|
1071
|
-
%t1098 =
|
1072
|
-
%t1099 =
|
1073
|
-
%
|
1074
|
-
%
|
1075
|
-
%
|
1076
|
-
%
|
1077
|
-
%
|
1078
|
-
%
|
1079
|
-
%
|
1080
|
-
%
|
1081
|
-
%
|
1082
|
-
%t512 = call core.eq(%t1107, %t511) :: boolean
|
1083
|
-
%t513 = load_input "rows" :: array
|
1084
|
-
%t1108 = load_input "rows" :: array
|
1085
|
-
%t515 = const 0 :: integer
|
1086
|
-
%t516 = call core.gt(%col_el_272, %t515) :: boolean
|
1087
|
-
%t276 = call core.and(%t512, %t516) :: boolean
|
1068
|
+
%t1089 = call core.gte(%t1087, %t1088) :: boolean
|
1069
|
+
%t1090 = call core.lt(%t1087, %t1085) :: boolean
|
1070
|
+
%t1091 = call core.and(%t1089, %t1090) :: boolean
|
1071
|
+
%t1092 = call core.and(%t1079, %t1091) :: boolean
|
1072
|
+
%t1093 = const 1 :: integer
|
1073
|
+
%t1094 = call core.sub(%t1085, %t1093) :: integer
|
1074
|
+
%t1095 = const 0 :: integer
|
1075
|
+
%t1096 = call core.clamp(%t1087, %t1095, %t1094) :: integer
|
1076
|
+
%t1097 = gather %t1084, %t1096 :: integer
|
1077
|
+
%t1098 = const 0 :: integer
|
1078
|
+
%t1099 = select %t1092, %t1097, %t1098 :: integer
|
1079
|
+
%t906 = make_tuple(%t927, %t947, %t967, %t987, %t1015, %t1043, %t1071, %t1099) :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
1080
|
+
%t907 = fold %t906 fn="agg.sum" :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
1081
|
+
%t895 = const 2 :: integer
|
1082
|
+
%t896 = call core.eq(%t907, %t895) :: boolean
|
1083
|
+
%t1100 = load_input "rows" :: array
|
1084
|
+
%t1104 = load_input "rows" :: array
|
1085
|
+
%t1102 = const 0 :: integer
|
1086
|
+
%t1103 = call core.gt(%col_el_272, %t1102) :: boolean
|
1087
|
+
%t276 = call core.and(%t896, %t1103) :: boolean
|
1088
1088
|
yield %t276
|
1089
1089
|
end_loop
|
1090
1090
|
end_loop
|
@@ -1093,276 +1093,291 @@
|
|
1093
1093
|
%t277 = load_input "rows" :: array
|
1094
1094
|
loop rows id=L29 in %t277 as el=%rows_el_278, idx=%rows_i_279
|
1095
1095
|
loop col id=L30 in %rows_el_278 as el=%col_el_280, idx=%col_i_281
|
1096
|
-
%
|
1096
|
+
%t1105 = load_input "rows" :: array
|
1097
1097
|
%t1109 = load_input "rows" :: array
|
1098
|
-
%
|
1099
|
-
%
|
1100
|
-
%
|
1101
|
-
%
|
1102
|
-
%
|
1103
|
-
%
|
1104
|
-
%
|
1105
|
-
%
|
1106
|
-
%
|
1107
|
-
%
|
1108
|
-
%
|
1109
|
-
%
|
1110
|
-
%
|
1111
|
-
%
|
1112
|
-
%
|
1113
|
-
%
|
1114
|
-
%
|
1115
|
-
%
|
1116
|
-
%
|
1117
|
-
%
|
1118
|
-
%
|
1119
|
-
%
|
1120
|
-
%
|
1121
|
-
%
|
1122
|
-
%
|
1123
|
-
%
|
1124
|
-
%
|
1125
|
-
%
|
1126
|
-
%
|
1127
|
-
%
|
1128
|
-
%
|
1129
|
-
%
|
1130
|
-
%
|
1131
|
-
%
|
1132
|
-
%
|
1133
|
-
%
|
1134
|
-
%
|
1135
|
-
%
|
1136
|
-
%
|
1137
|
-
%
|
1138
|
-
%
|
1139
|
-
%
|
1140
|
-
%
|
1141
|
-
%
|
1142
|
-
%
|
1143
|
-
%
|
1144
|
-
%
|
1145
|
-
%
|
1146
|
-
%
|
1147
|
-
%
|
1148
|
-
%
|
1149
|
-
%
|
1150
|
-
%
|
1151
|
-
%
|
1152
|
-
%
|
1153
|
-
%
|
1154
|
-
%
|
1155
|
-
%
|
1156
|
-
%
|
1157
|
-
%
|
1158
|
-
%
|
1159
|
-
%
|
1160
|
-
%
|
1161
|
-
%
|
1162
|
-
%
|
1163
|
-
%
|
1164
|
-
%
|
1165
|
-
%
|
1166
|
-
%
|
1167
|
-
%
|
1168
|
-
%
|
1169
|
-
%
|
1170
|
-
%
|
1171
|
-
%
|
1172
|
-
%
|
1173
|
-
%
|
1174
|
-
%
|
1175
|
-
%
|
1176
|
-
%
|
1177
|
-
%
|
1178
|
-
%
|
1179
|
-
%
|
1180
|
-
%
|
1181
|
-
%
|
1182
|
-
%
|
1183
|
-
%
|
1184
|
-
%
|
1185
|
-
%
|
1186
|
-
%
|
1187
|
-
%
|
1188
|
-
%
|
1189
|
-
%
|
1190
|
-
%
|
1191
|
-
%
|
1192
|
-
%
|
1193
|
-
%
|
1194
|
-
%t1206 = const 0 :: integer
|
1195
|
-
%t1207 = call core.gte(%t1205, %t1206) :: boolean
|
1196
|
-
%t1208 = call core.lt(%t1205, %t1203) :: boolean
|
1197
|
-
%t1209 = call core.and(%t1207, %t1208) :: boolean
|
1198
|
-
%t1210 = call core.and(%t1197, %t1209) :: boolean
|
1199
|
-
%t1211 = const 1 :: integer
|
1200
|
-
%t1212 = call core.sub(%t1203, %t1211) :: integer
|
1201
|
-
%t1213 = const 0 :: integer
|
1202
|
-
%t1214 = call core.clamp(%t1205, %t1213, %t1212) :: integer
|
1203
|
-
%t1215 = gather %t1202, %t1214 :: integer
|
1098
|
+
%t1120 = load_input "rows" :: array
|
1099
|
+
%t1121 = length %t1120 :: integer
|
1100
|
+
%t1122 = const -1 :: integer
|
1101
|
+
%t1123 = call core.sub(%rows_i_279, %t1122) :: integer
|
1102
|
+
%t1124 = const 0 :: integer
|
1103
|
+
%t1125 = call core.gte(%t1123, %t1124) :: boolean
|
1104
|
+
%t1126 = call core.lt(%t1123, %t1121) :: boolean
|
1105
|
+
%t1127 = call core.and(%t1125, %t1126) :: boolean
|
1106
|
+
%t1128 = const 1 :: integer
|
1107
|
+
%t1129 = call core.sub(%t1121, %t1128) :: integer
|
1108
|
+
%t1130 = const 0 :: integer
|
1109
|
+
%t1131 = call core.clamp(%t1123, %t1130, %t1129) :: integer
|
1110
|
+
%t1132 = gather %t1120, %t1131 :: any
|
1111
|
+
%t1133 = length %t1132 :: integer
|
1112
|
+
%t1134 = call core.mod(%col_i_281, %t1133) :: integer
|
1113
|
+
%t1135 = call core.add(%t1134, %t1133) :: integer
|
1114
|
+
%t1136 = call core.mod(%t1135, %t1133) :: integer
|
1115
|
+
%t1137 = gather %t1132, %t1136 :: integer
|
1116
|
+
%t1138 = const 0 :: integer
|
1117
|
+
%t1139 = select %t1127, %t1137, %t1138 :: integer
|
1118
|
+
%t1140 = load_input "rows" :: array
|
1119
|
+
%t1141 = length %t1140 :: integer
|
1120
|
+
%t1142 = const 1 :: integer
|
1121
|
+
%t1143 = call core.sub(%rows_i_279, %t1142) :: integer
|
1122
|
+
%t1144 = const 0 :: integer
|
1123
|
+
%t1145 = call core.gte(%t1143, %t1144) :: boolean
|
1124
|
+
%t1146 = call core.lt(%t1143, %t1141) :: boolean
|
1125
|
+
%t1147 = call core.and(%t1145, %t1146) :: boolean
|
1126
|
+
%t1148 = const 1 :: integer
|
1127
|
+
%t1149 = call core.sub(%t1141, %t1148) :: integer
|
1128
|
+
%t1150 = const 0 :: integer
|
1129
|
+
%t1151 = call core.clamp(%t1143, %t1150, %t1149) :: integer
|
1130
|
+
%t1152 = gather %t1140, %t1151 :: any
|
1131
|
+
%t1153 = length %t1152 :: integer
|
1132
|
+
%t1154 = call core.mod(%col_i_281, %t1153) :: integer
|
1133
|
+
%t1155 = call core.add(%t1154, %t1153) :: integer
|
1134
|
+
%t1156 = call core.mod(%t1155, %t1153) :: integer
|
1135
|
+
%t1157 = gather %t1152, %t1156 :: integer
|
1136
|
+
%t1158 = const 0 :: integer
|
1137
|
+
%t1159 = select %t1147, %t1157, %t1158 :: integer
|
1138
|
+
%t1160 = load_input "rows" :: array
|
1139
|
+
%t1161 = length %t1160 :: integer
|
1140
|
+
%t1162 = call core.mod(%rows_i_279, %t1161) :: integer
|
1141
|
+
%t1163 = call core.add(%t1162, %t1161) :: integer
|
1142
|
+
%t1164 = call core.mod(%t1163, %t1161) :: integer
|
1143
|
+
%t1165 = gather %t1160, %t1164 :: any
|
1144
|
+
%t1166 = length %t1165 :: integer
|
1145
|
+
%t1167 = const -1 :: integer
|
1146
|
+
%t1168 = call core.sub(%col_i_281, %t1167) :: integer
|
1147
|
+
%t1169 = const 0 :: integer
|
1148
|
+
%t1170 = call core.gte(%t1168, %t1169) :: boolean
|
1149
|
+
%t1171 = call core.lt(%t1168, %t1166) :: boolean
|
1150
|
+
%t1172 = call core.and(%t1170, %t1171) :: boolean
|
1151
|
+
%t1173 = const 1 :: integer
|
1152
|
+
%t1174 = call core.sub(%t1166, %t1173) :: integer
|
1153
|
+
%t1175 = const 0 :: integer
|
1154
|
+
%t1176 = call core.clamp(%t1168, %t1175, %t1174) :: integer
|
1155
|
+
%t1177 = gather %t1165, %t1176 :: integer
|
1156
|
+
%t1178 = const 0 :: integer
|
1157
|
+
%t1179 = select %t1172, %t1177, %t1178 :: integer
|
1158
|
+
%t1180 = load_input "rows" :: array
|
1159
|
+
%t1181 = length %t1180 :: integer
|
1160
|
+
%t1182 = call core.mod(%rows_i_279, %t1181) :: integer
|
1161
|
+
%t1183 = call core.add(%t1182, %t1181) :: integer
|
1162
|
+
%t1184 = call core.mod(%t1183, %t1181) :: integer
|
1163
|
+
%t1185 = gather %t1180, %t1184 :: any
|
1164
|
+
%t1186 = length %t1185 :: integer
|
1165
|
+
%t1187 = const 1 :: integer
|
1166
|
+
%t1188 = call core.sub(%col_i_281, %t1187) :: integer
|
1167
|
+
%t1189 = const 0 :: integer
|
1168
|
+
%t1190 = call core.gte(%t1188, %t1189) :: boolean
|
1169
|
+
%t1191 = call core.lt(%t1188, %t1186) :: boolean
|
1170
|
+
%t1192 = call core.and(%t1190, %t1191) :: boolean
|
1171
|
+
%t1193 = const 1 :: integer
|
1172
|
+
%t1194 = call core.sub(%t1186, %t1193) :: integer
|
1173
|
+
%t1195 = const 0 :: integer
|
1174
|
+
%t1196 = call core.clamp(%t1188, %t1195, %t1194) :: integer
|
1175
|
+
%t1197 = gather %t1185, %t1196 :: integer
|
1176
|
+
%t1198 = const 0 :: integer
|
1177
|
+
%t1199 = select %t1192, %t1197, %t1198 :: integer
|
1178
|
+
%t1200 = load_input "rows" :: array
|
1179
|
+
%t1201 = length %t1200 :: integer
|
1180
|
+
%t1202 = const -1 :: integer
|
1181
|
+
%t1203 = call core.sub(%rows_i_279, %t1202) :: integer
|
1182
|
+
%t1204 = const 0 :: integer
|
1183
|
+
%t1205 = call core.gte(%t1203, %t1204) :: boolean
|
1184
|
+
%t1206 = call core.lt(%t1203, %t1201) :: boolean
|
1185
|
+
%t1207 = call core.and(%t1205, %t1206) :: boolean
|
1186
|
+
%t1208 = const 1 :: integer
|
1187
|
+
%t1209 = call core.sub(%t1201, %t1208) :: integer
|
1188
|
+
%t1210 = const 0 :: integer
|
1189
|
+
%t1211 = call core.clamp(%t1203, %t1210, %t1209) :: integer
|
1190
|
+
%t1212 = gather %t1200, %t1211 :: any
|
1191
|
+
%t1213 = length %t1212 :: integer
|
1192
|
+
%t1214 = const -1 :: integer
|
1193
|
+
%t1215 = call core.sub(%col_i_281, %t1214) :: integer
|
1204
1194
|
%t1216 = const 0 :: integer
|
1205
|
-
%t1217 =
|
1206
|
-
%t1218 =
|
1207
|
-
%t1219 =
|
1208
|
-
%t1220 =
|
1209
|
-
%t1221 =
|
1210
|
-
%t1222 =
|
1211
|
-
%t1223 =
|
1212
|
-
%t1224 = call core.
|
1213
|
-
%t1225 =
|
1214
|
-
%t1226 = const
|
1215
|
-
%t1227 =
|
1216
|
-
%t1228 =
|
1217
|
-
%t1229 =
|
1218
|
-
%t1230 =
|
1219
|
-
%t1231 =
|
1220
|
-
%t1232 = const
|
1221
|
-
%t1233 = call core.
|
1222
|
-
%t1234 =
|
1223
|
-
%t1235 = call core.
|
1224
|
-
%t1236 =
|
1225
|
-
%t1237 = call core.
|
1226
|
-
%t1238 =
|
1227
|
-
%t1239 =
|
1228
|
-
%t1240 =
|
1229
|
-
%t1241 =
|
1230
|
-
%t1242 =
|
1231
|
-
%t1243 =
|
1195
|
+
%t1217 = call core.gte(%t1215, %t1216) :: boolean
|
1196
|
+
%t1218 = call core.lt(%t1215, %t1213) :: boolean
|
1197
|
+
%t1219 = call core.and(%t1217, %t1218) :: boolean
|
1198
|
+
%t1220 = call core.and(%t1207, %t1219) :: boolean
|
1199
|
+
%t1221 = const 1 :: integer
|
1200
|
+
%t1222 = call core.sub(%t1213, %t1221) :: integer
|
1201
|
+
%t1223 = const 0 :: integer
|
1202
|
+
%t1224 = call core.clamp(%t1215, %t1223, %t1222) :: integer
|
1203
|
+
%t1225 = gather %t1212, %t1224 :: integer
|
1204
|
+
%t1226 = const 0 :: integer
|
1205
|
+
%t1227 = select %t1220, %t1225, %t1226 :: integer
|
1206
|
+
%t1228 = load_input "rows" :: array
|
1207
|
+
%t1229 = length %t1228 :: integer
|
1208
|
+
%t1230 = const -1 :: integer
|
1209
|
+
%t1231 = call core.sub(%rows_i_279, %t1230) :: integer
|
1210
|
+
%t1232 = const 0 :: integer
|
1211
|
+
%t1233 = call core.gte(%t1231, %t1232) :: boolean
|
1212
|
+
%t1234 = call core.lt(%t1231, %t1229) :: boolean
|
1213
|
+
%t1235 = call core.and(%t1233, %t1234) :: boolean
|
1214
|
+
%t1236 = const 1 :: integer
|
1215
|
+
%t1237 = call core.sub(%t1229, %t1236) :: integer
|
1216
|
+
%t1238 = const 0 :: integer
|
1217
|
+
%t1239 = call core.clamp(%t1231, %t1238, %t1237) :: integer
|
1218
|
+
%t1240 = gather %t1228, %t1239 :: any
|
1219
|
+
%t1241 = length %t1240 :: integer
|
1220
|
+
%t1242 = const 1 :: integer
|
1221
|
+
%t1243 = call core.sub(%col_i_281, %t1242) :: integer
|
1232
1222
|
%t1244 = const 0 :: integer
|
1233
|
-
%t1245 =
|
1234
|
-
%t1246 =
|
1235
|
-
%t1247 =
|
1236
|
-
%t1248 =
|
1237
|
-
%t1249 =
|
1238
|
-
%t1250 =
|
1239
|
-
%t1251 =
|
1240
|
-
%t1252 = call core.
|
1241
|
-
%t1253 =
|
1242
|
-
%t1254 = const
|
1243
|
-
%t1255 =
|
1244
|
-
%t1256 =
|
1245
|
-
%t1257 =
|
1246
|
-
%t1258 =
|
1247
|
-
%t1259 =
|
1248
|
-
%t1260 = const
|
1249
|
-
%t1261 = call core.
|
1250
|
-
%t1262 =
|
1251
|
-
%t1263 = call core.
|
1252
|
-
%t1264 =
|
1253
|
-
%t1265 = call core.
|
1254
|
-
%t1266 =
|
1255
|
-
%t1267 =
|
1256
|
-
%t1268 =
|
1257
|
-
%t1269 =
|
1258
|
-
%t1270 =
|
1259
|
-
%t1271 =
|
1223
|
+
%t1245 = call core.gte(%t1243, %t1244) :: boolean
|
1224
|
+
%t1246 = call core.lt(%t1243, %t1241) :: boolean
|
1225
|
+
%t1247 = call core.and(%t1245, %t1246) :: boolean
|
1226
|
+
%t1248 = call core.and(%t1235, %t1247) :: boolean
|
1227
|
+
%t1249 = const 1 :: integer
|
1228
|
+
%t1250 = call core.sub(%t1241, %t1249) :: integer
|
1229
|
+
%t1251 = const 0 :: integer
|
1230
|
+
%t1252 = call core.clamp(%t1243, %t1251, %t1250) :: integer
|
1231
|
+
%t1253 = gather %t1240, %t1252 :: integer
|
1232
|
+
%t1254 = const 0 :: integer
|
1233
|
+
%t1255 = select %t1248, %t1253, %t1254 :: integer
|
1234
|
+
%t1256 = load_input "rows" :: array
|
1235
|
+
%t1257 = length %t1256 :: integer
|
1236
|
+
%t1258 = const 1 :: integer
|
1237
|
+
%t1259 = call core.sub(%rows_i_279, %t1258) :: integer
|
1238
|
+
%t1260 = const 0 :: integer
|
1239
|
+
%t1261 = call core.gte(%t1259, %t1260) :: boolean
|
1240
|
+
%t1262 = call core.lt(%t1259, %t1257) :: boolean
|
1241
|
+
%t1263 = call core.and(%t1261, %t1262) :: boolean
|
1242
|
+
%t1264 = const 1 :: integer
|
1243
|
+
%t1265 = call core.sub(%t1257, %t1264) :: integer
|
1244
|
+
%t1266 = const 0 :: integer
|
1245
|
+
%t1267 = call core.clamp(%t1259, %t1266, %t1265) :: integer
|
1246
|
+
%t1268 = gather %t1256, %t1267 :: any
|
1247
|
+
%t1269 = length %t1268 :: integer
|
1248
|
+
%t1270 = const -1 :: integer
|
1249
|
+
%t1271 = call core.sub(%col_i_281, %t1270) :: integer
|
1260
1250
|
%t1272 = const 0 :: integer
|
1261
|
-
%t1273 =
|
1262
|
-
%t1274 =
|
1263
|
-
%t1275 =
|
1264
|
-
%t1276 =
|
1265
|
-
%t1277 =
|
1266
|
-
%t1278 =
|
1267
|
-
%t1279 =
|
1268
|
-
%t1280 = call core.
|
1269
|
-
%t1281 =
|
1270
|
-
%t1282 = const
|
1271
|
-
%t1283 =
|
1272
|
-
%t1284 =
|
1273
|
-
%t1285 =
|
1274
|
-
%t1286 =
|
1275
|
-
%t1287 =
|
1276
|
-
%t1288 = const
|
1277
|
-
%t1289 = call core.
|
1278
|
-
%t1290 =
|
1279
|
-
%t1291 = call core.
|
1280
|
-
%t1292 =
|
1281
|
-
%t1293 = call core.
|
1282
|
-
%t1294 =
|
1283
|
-
%t1295 =
|
1284
|
-
%t1296 =
|
1285
|
-
%t1297 =
|
1286
|
-
%t1298 =
|
1287
|
-
%t1299 =
|
1251
|
+
%t1273 = call core.gte(%t1271, %t1272) :: boolean
|
1252
|
+
%t1274 = call core.lt(%t1271, %t1269) :: boolean
|
1253
|
+
%t1275 = call core.and(%t1273, %t1274) :: boolean
|
1254
|
+
%t1276 = call core.and(%t1263, %t1275) :: boolean
|
1255
|
+
%t1277 = const 1 :: integer
|
1256
|
+
%t1278 = call core.sub(%t1269, %t1277) :: integer
|
1257
|
+
%t1279 = const 0 :: integer
|
1258
|
+
%t1280 = call core.clamp(%t1271, %t1279, %t1278) :: integer
|
1259
|
+
%t1281 = gather %t1268, %t1280 :: integer
|
1260
|
+
%t1282 = const 0 :: integer
|
1261
|
+
%t1283 = select %t1276, %t1281, %t1282 :: integer
|
1262
|
+
%t1284 = load_input "rows" :: array
|
1263
|
+
%t1285 = length %t1284 :: integer
|
1264
|
+
%t1286 = const 1 :: integer
|
1265
|
+
%t1287 = call core.sub(%rows_i_279, %t1286) :: integer
|
1266
|
+
%t1288 = const 0 :: integer
|
1267
|
+
%t1289 = call core.gte(%t1287, %t1288) :: boolean
|
1268
|
+
%t1290 = call core.lt(%t1287, %t1285) :: boolean
|
1269
|
+
%t1291 = call core.and(%t1289, %t1290) :: boolean
|
1270
|
+
%t1292 = const 1 :: integer
|
1271
|
+
%t1293 = call core.sub(%t1285, %t1292) :: integer
|
1272
|
+
%t1294 = const 0 :: integer
|
1273
|
+
%t1295 = call core.clamp(%t1287, %t1294, %t1293) :: integer
|
1274
|
+
%t1296 = gather %t1284, %t1295 :: any
|
1275
|
+
%t1297 = length %t1296 :: integer
|
1276
|
+
%t1298 = const 1 :: integer
|
1277
|
+
%t1299 = call core.sub(%col_i_281, %t1298) :: integer
|
1288
1278
|
%t1300 = const 0 :: integer
|
1289
|
-
%t1301 =
|
1290
|
-
%t1302 =
|
1291
|
-
%t1303 =
|
1292
|
-
%
|
1293
|
-
%
|
1294
|
-
%
|
1295
|
-
%
|
1296
|
-
%
|
1297
|
-
%
|
1298
|
-
%
|
1299
|
-
%
|
1300
|
-
%
|
1301
|
-
%
|
1302
|
-
%
|
1303
|
-
%
|
1304
|
-
%
|
1305
|
-
%
|
1306
|
-
%
|
1307
|
-
%
|
1308
|
-
%
|
1309
|
-
%
|
1310
|
-
%
|
1311
|
-
%
|
1312
|
-
%
|
1313
|
-
%
|
1314
|
-
%
|
1315
|
-
%
|
1316
|
-
%
|
1317
|
-
%
|
1318
|
-
%
|
1319
|
-
%
|
1320
|
-
%
|
1321
|
-
%
|
1322
|
-
%
|
1323
|
-
%
|
1324
|
-
%
|
1325
|
-
%
|
1326
|
-
%
|
1327
|
-
%
|
1328
|
-
%
|
1329
|
-
%
|
1330
|
-
%
|
1331
|
-
%
|
1332
|
-
%
|
1333
|
-
%
|
1334
|
-
%
|
1335
|
-
%
|
1336
|
-
%
|
1337
|
-
%
|
1338
|
-
%
|
1339
|
-
%
|
1340
|
-
%
|
1341
|
-
%
|
1342
|
-
%
|
1279
|
+
%t1301 = call core.gte(%t1299, %t1300) :: boolean
|
1280
|
+
%t1302 = call core.lt(%t1299, %t1297) :: boolean
|
1281
|
+
%t1303 = call core.and(%t1301, %t1302) :: boolean
|
1282
|
+
%t1304 = call core.and(%t1291, %t1303) :: boolean
|
1283
|
+
%t1305 = const 1 :: integer
|
1284
|
+
%t1306 = call core.sub(%t1297, %t1305) :: integer
|
1285
|
+
%t1307 = const 0 :: integer
|
1286
|
+
%t1308 = call core.clamp(%t1299, %t1307, %t1306) :: integer
|
1287
|
+
%t1309 = gather %t1296, %t1308 :: integer
|
1288
|
+
%t1310 = const 0 :: integer
|
1289
|
+
%t1311 = select %t1304, %t1309, %t1310 :: integer
|
1290
|
+
%t1118 = make_tuple(%t1139, %t1159, %t1179, %t1199, %t1227, %t1255, %t1283, %t1311) :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
1291
|
+
%t1119 = fold %t1118 fn="agg.sum" :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
1292
|
+
%t1107 = const 3 :: integer
|
1293
|
+
%t1108 = call core.eq(%t1119, %t1107) :: boolean
|
1294
|
+
%t1312 = load_input "rows" :: array
|
1295
|
+
%t1316 = load_input "rows" :: array
|
1296
|
+
%t1320 = load_input "rows" :: array
|
1297
|
+
%t1331 = load_input "rows" :: array
|
1298
|
+
%t1332 = length %t1331 :: integer
|
1299
|
+
%t1333 = const -1 :: integer
|
1300
|
+
%t1334 = call core.sub(%rows_i_279, %t1333) :: integer
|
1301
|
+
%t1335 = const 0 :: integer
|
1302
|
+
%t1336 = call core.gte(%t1334, %t1335) :: boolean
|
1303
|
+
%t1337 = call core.lt(%t1334, %t1332) :: boolean
|
1304
|
+
%t1338 = call core.and(%t1336, %t1337) :: boolean
|
1305
|
+
%t1339 = const 1 :: integer
|
1306
|
+
%t1340 = call core.sub(%t1332, %t1339) :: integer
|
1307
|
+
%t1341 = const 0 :: integer
|
1308
|
+
%t1342 = call core.clamp(%t1334, %t1341, %t1340) :: integer
|
1309
|
+
%t1343 = gather %t1331, %t1342 :: any
|
1310
|
+
%t1344 = length %t1343 :: integer
|
1311
|
+
%t1345 = call core.mod(%col_i_281, %t1344) :: integer
|
1312
|
+
%t1346 = call core.add(%t1345, %t1344) :: integer
|
1313
|
+
%t1347 = call core.mod(%t1346, %t1344) :: integer
|
1314
|
+
%t1348 = gather %t1343, %t1347 :: integer
|
1315
|
+
%t1349 = const 0 :: integer
|
1316
|
+
%t1350 = select %t1338, %t1348, %t1349 :: integer
|
1317
|
+
%t1351 = load_input "rows" :: array
|
1318
|
+
%t1352 = length %t1351 :: integer
|
1319
|
+
%t1353 = const 1 :: integer
|
1320
|
+
%t1354 = call core.sub(%rows_i_279, %t1353) :: integer
|
1321
|
+
%t1355 = const 0 :: integer
|
1322
|
+
%t1356 = call core.gte(%t1354, %t1355) :: boolean
|
1323
|
+
%t1357 = call core.lt(%t1354, %t1352) :: boolean
|
1324
|
+
%t1358 = call core.and(%t1356, %t1357) :: boolean
|
1325
|
+
%t1359 = const 1 :: integer
|
1326
|
+
%t1360 = call core.sub(%t1352, %t1359) :: integer
|
1327
|
+
%t1361 = const 0 :: integer
|
1328
|
+
%t1362 = call core.clamp(%t1354, %t1361, %t1360) :: integer
|
1329
|
+
%t1363 = gather %t1351, %t1362 :: any
|
1330
|
+
%t1364 = length %t1363 :: integer
|
1331
|
+
%t1365 = call core.mod(%col_i_281, %t1364) :: integer
|
1332
|
+
%t1366 = call core.add(%t1365, %t1364) :: integer
|
1333
|
+
%t1367 = call core.mod(%t1366, %t1364) :: integer
|
1334
|
+
%t1368 = gather %t1363, %t1367 :: integer
|
1335
|
+
%t1369 = const 0 :: integer
|
1336
|
+
%t1370 = select %t1358, %t1368, %t1369 :: integer
|
1337
|
+
%t1371 = load_input "rows" :: array
|
1338
|
+
%t1372 = length %t1371 :: integer
|
1339
|
+
%t1373 = call core.mod(%rows_i_279, %t1372) :: integer
|
1340
|
+
%t1374 = call core.add(%t1373, %t1372) :: integer
|
1341
|
+
%t1375 = call core.mod(%t1374, %t1372) :: integer
|
1342
|
+
%t1376 = gather %t1371, %t1375 :: any
|
1343
|
+
%t1377 = length %t1376 :: integer
|
1344
|
+
%t1378 = const -1 :: integer
|
1345
|
+
%t1379 = call core.sub(%col_i_281, %t1378) :: integer
|
1346
|
+
%t1380 = const 0 :: integer
|
1347
|
+
%t1381 = call core.gte(%t1379, %t1380) :: boolean
|
1348
|
+
%t1382 = call core.lt(%t1379, %t1377) :: boolean
|
1349
|
+
%t1383 = call core.and(%t1381, %t1382) :: boolean
|
1350
|
+
%t1384 = const 1 :: integer
|
1351
|
+
%t1385 = call core.sub(%t1377, %t1384) :: integer
|
1352
|
+
%t1386 = const 0 :: integer
|
1353
|
+
%t1387 = call core.clamp(%t1379, %t1386, %t1385) :: integer
|
1354
|
+
%t1388 = gather %t1376, %t1387 :: integer
|
1355
|
+
%t1389 = const 0 :: integer
|
1356
|
+
%t1390 = select %t1383, %t1388, %t1389 :: integer
|
1357
|
+
%t1391 = load_input "rows" :: array
|
1343
1358
|
%t1392 = length %t1391 :: integer
|
1344
|
-
%t1393 =
|
1345
|
-
%t1394 = call core.
|
1346
|
-
%t1395 =
|
1347
|
-
%t1396 =
|
1348
|
-
%t1397 =
|
1349
|
-
%t1398 =
|
1350
|
-
%t1399 =
|
1351
|
-
%t1400 =
|
1352
|
-
%t1401 =
|
1353
|
-
%t1402 = call core.
|
1354
|
-
%t1403 =
|
1355
|
-
%t1404 = const
|
1356
|
-
%t1405 =
|
1357
|
-
%t1406 =
|
1358
|
-
%t1407 =
|
1359
|
-
%t1408 =
|
1360
|
-
%t1409 =
|
1361
|
-
%t1410 =
|
1362
|
-
%t1411 =
|
1359
|
+
%t1393 = call core.mod(%rows_i_279, %t1392) :: integer
|
1360
|
+
%t1394 = call core.add(%t1393, %t1392) :: integer
|
1361
|
+
%t1395 = call core.mod(%t1394, %t1392) :: integer
|
1362
|
+
%t1396 = gather %t1391, %t1395 :: any
|
1363
|
+
%t1397 = length %t1396 :: integer
|
1364
|
+
%t1398 = const 1 :: integer
|
1365
|
+
%t1399 = call core.sub(%col_i_281, %t1398) :: integer
|
1366
|
+
%t1400 = const 0 :: integer
|
1367
|
+
%t1401 = call core.gte(%t1399, %t1400) :: boolean
|
1368
|
+
%t1402 = call core.lt(%t1399, %t1397) :: boolean
|
1369
|
+
%t1403 = call core.and(%t1401, %t1402) :: boolean
|
1370
|
+
%t1404 = const 1 :: integer
|
1371
|
+
%t1405 = call core.sub(%t1397, %t1404) :: integer
|
1372
|
+
%t1406 = const 0 :: integer
|
1373
|
+
%t1407 = call core.clamp(%t1399, %t1406, %t1405) :: integer
|
1374
|
+
%t1408 = gather %t1396, %t1407 :: integer
|
1375
|
+
%t1409 = const 0 :: integer
|
1376
|
+
%t1410 = select %t1403, %t1408, %t1409 :: integer
|
1377
|
+
%t1411 = load_input "rows" :: array
|
1363
1378
|
%t1412 = length %t1411 :: integer
|
1364
|
-
%t1413 = const 1 :: integer
|
1365
|
-
%t1414 = call core.sub(%
|
1379
|
+
%t1413 = const -1 :: integer
|
1380
|
+
%t1414 = call core.sub(%rows_i_279, %t1413) :: integer
|
1366
1381
|
%t1415 = const 0 :: integer
|
1367
1382
|
%t1416 = call core.gte(%t1414, %t1415) :: boolean
|
1368
1383
|
%t1417 = call core.lt(%t1414, %t1412) :: boolean
|
@@ -1371,131 +1386,116 @@
|
|
1371
1386
|
%t1420 = call core.sub(%t1412, %t1419) :: integer
|
1372
1387
|
%t1421 = const 0 :: integer
|
1373
1388
|
%t1422 = call core.clamp(%t1414, %t1421, %t1420) :: integer
|
1374
|
-
%t1423 = gather %t1411, %t1422 ::
|
1375
|
-
%t1424 =
|
1376
|
-
%t1425 =
|
1377
|
-
%t1426 =
|
1378
|
-
%t1427 =
|
1379
|
-
%t1428 =
|
1380
|
-
%t1429 = call core.
|
1381
|
-
%t1430 =
|
1382
|
-
%t1431 = call core.
|
1383
|
-
%t1432 =
|
1384
|
-
%t1433 = call core.
|
1385
|
-
%t1434 = const
|
1386
|
-
%t1435 = call core.
|
1387
|
-
%t1436 =
|
1388
|
-
%t1437 =
|
1389
|
-
%t1438 =
|
1390
|
-
%t1439 =
|
1391
|
-
%t1440 =
|
1392
|
-
%t1441 =
|
1393
|
-
%t1442 =
|
1394
|
-
%t1443 =
|
1395
|
-
%t1444 = call core.
|
1396
|
-
%t1445 = call core.
|
1397
|
-
%t1446 = call core.and(%
|
1389
|
+
%t1423 = gather %t1411, %t1422 :: any
|
1390
|
+
%t1424 = length %t1423 :: integer
|
1391
|
+
%t1425 = const -1 :: integer
|
1392
|
+
%t1426 = call core.sub(%col_i_281, %t1425) :: integer
|
1393
|
+
%t1427 = const 0 :: integer
|
1394
|
+
%t1428 = call core.gte(%t1426, %t1427) :: boolean
|
1395
|
+
%t1429 = call core.lt(%t1426, %t1424) :: boolean
|
1396
|
+
%t1430 = call core.and(%t1428, %t1429) :: boolean
|
1397
|
+
%t1431 = call core.and(%t1418, %t1430) :: boolean
|
1398
|
+
%t1432 = const 1 :: integer
|
1399
|
+
%t1433 = call core.sub(%t1424, %t1432) :: integer
|
1400
|
+
%t1434 = const 0 :: integer
|
1401
|
+
%t1435 = call core.clamp(%t1426, %t1434, %t1433) :: integer
|
1402
|
+
%t1436 = gather %t1423, %t1435 :: integer
|
1403
|
+
%t1437 = const 0 :: integer
|
1404
|
+
%t1438 = select %t1431, %t1436, %t1437 :: integer
|
1405
|
+
%t1439 = load_input "rows" :: array
|
1406
|
+
%t1440 = length %t1439 :: integer
|
1407
|
+
%t1441 = const -1 :: integer
|
1408
|
+
%t1442 = call core.sub(%rows_i_279, %t1441) :: integer
|
1409
|
+
%t1443 = const 0 :: integer
|
1410
|
+
%t1444 = call core.gte(%t1442, %t1443) :: boolean
|
1411
|
+
%t1445 = call core.lt(%t1442, %t1440) :: boolean
|
1412
|
+
%t1446 = call core.and(%t1444, %t1445) :: boolean
|
1398
1413
|
%t1447 = const 1 :: integer
|
1399
|
-
%t1448 = call core.sub(%
|
1414
|
+
%t1448 = call core.sub(%t1440, %t1447) :: integer
|
1400
1415
|
%t1449 = const 0 :: integer
|
1401
|
-
%t1450 = call core.clamp(%
|
1402
|
-
%t1451 = gather %
|
1403
|
-
%t1452 =
|
1404
|
-
%t1453 =
|
1405
|
-
%t1454 =
|
1406
|
-
%t1455 =
|
1407
|
-
%t1456 =
|
1408
|
-
%t1457 = call core.
|
1409
|
-
%t1458 =
|
1410
|
-
%t1459 = call core.
|
1411
|
-
%t1460 =
|
1412
|
-
%t1461 = call core.
|
1413
|
-
%t1462 = const
|
1414
|
-
%t1463 = call core.
|
1415
|
-
%t1464 =
|
1416
|
-
%t1465 =
|
1417
|
-
%t1466 =
|
1418
|
-
%t1467 =
|
1419
|
-
%t1468 =
|
1420
|
-
%t1469 =
|
1421
|
-
%t1470 =
|
1422
|
-
%t1471 =
|
1423
|
-
%t1472 = call core.
|
1424
|
-
%t1473 = call core.
|
1425
|
-
%t1474 = call core.and(%
|
1416
|
+
%t1450 = call core.clamp(%t1442, %t1449, %t1448) :: integer
|
1417
|
+
%t1451 = gather %t1439, %t1450 :: any
|
1418
|
+
%t1452 = length %t1451 :: integer
|
1419
|
+
%t1453 = const 1 :: integer
|
1420
|
+
%t1454 = call core.sub(%col_i_281, %t1453) :: integer
|
1421
|
+
%t1455 = const 0 :: integer
|
1422
|
+
%t1456 = call core.gte(%t1454, %t1455) :: boolean
|
1423
|
+
%t1457 = call core.lt(%t1454, %t1452) :: boolean
|
1424
|
+
%t1458 = call core.and(%t1456, %t1457) :: boolean
|
1425
|
+
%t1459 = call core.and(%t1446, %t1458) :: boolean
|
1426
|
+
%t1460 = const 1 :: integer
|
1427
|
+
%t1461 = call core.sub(%t1452, %t1460) :: integer
|
1428
|
+
%t1462 = const 0 :: integer
|
1429
|
+
%t1463 = call core.clamp(%t1454, %t1462, %t1461) :: integer
|
1430
|
+
%t1464 = gather %t1451, %t1463 :: integer
|
1431
|
+
%t1465 = const 0 :: integer
|
1432
|
+
%t1466 = select %t1459, %t1464, %t1465 :: integer
|
1433
|
+
%t1467 = load_input "rows" :: array
|
1434
|
+
%t1468 = length %t1467 :: integer
|
1435
|
+
%t1469 = const 1 :: integer
|
1436
|
+
%t1470 = call core.sub(%rows_i_279, %t1469) :: integer
|
1437
|
+
%t1471 = const 0 :: integer
|
1438
|
+
%t1472 = call core.gte(%t1470, %t1471) :: boolean
|
1439
|
+
%t1473 = call core.lt(%t1470, %t1468) :: boolean
|
1440
|
+
%t1474 = call core.and(%t1472, %t1473) :: boolean
|
1426
1441
|
%t1475 = const 1 :: integer
|
1427
|
-
%t1476 = call core.sub(%
|
1442
|
+
%t1476 = call core.sub(%t1468, %t1475) :: integer
|
1428
1443
|
%t1477 = const 0 :: integer
|
1429
|
-
%t1478 = call core.clamp(%
|
1430
|
-
%t1479 = gather %
|
1431
|
-
%t1480 =
|
1432
|
-
%t1481 =
|
1433
|
-
%t1482 =
|
1434
|
-
%t1483 =
|
1435
|
-
%t1484 =
|
1436
|
-
%t1485 = call core.
|
1437
|
-
%t1486 =
|
1438
|
-
%t1487 = call core.
|
1439
|
-
%t1488 =
|
1440
|
-
%t1489 = call core.
|
1441
|
-
%t1490 = const
|
1442
|
-
%t1491 = call core.
|
1443
|
-
%t1492 =
|
1444
|
-
%t1493 =
|
1445
|
-
%t1494 =
|
1446
|
-
%t1495 =
|
1447
|
-
%t1496 =
|
1448
|
-
%t1497 =
|
1449
|
-
%t1498 =
|
1450
|
-
%t1499 =
|
1451
|
-
%t1500 = call core.
|
1452
|
-
%t1501 = call core.
|
1453
|
-
%t1502 = call core.and(%
|
1444
|
+
%t1478 = call core.clamp(%t1470, %t1477, %t1476) :: integer
|
1445
|
+
%t1479 = gather %t1467, %t1478 :: any
|
1446
|
+
%t1480 = length %t1479 :: integer
|
1447
|
+
%t1481 = const -1 :: integer
|
1448
|
+
%t1482 = call core.sub(%col_i_281, %t1481) :: integer
|
1449
|
+
%t1483 = const 0 :: integer
|
1450
|
+
%t1484 = call core.gte(%t1482, %t1483) :: boolean
|
1451
|
+
%t1485 = call core.lt(%t1482, %t1480) :: boolean
|
1452
|
+
%t1486 = call core.and(%t1484, %t1485) :: boolean
|
1453
|
+
%t1487 = call core.and(%t1474, %t1486) :: boolean
|
1454
|
+
%t1488 = const 1 :: integer
|
1455
|
+
%t1489 = call core.sub(%t1480, %t1488) :: integer
|
1456
|
+
%t1490 = const 0 :: integer
|
1457
|
+
%t1491 = call core.clamp(%t1482, %t1490, %t1489) :: integer
|
1458
|
+
%t1492 = gather %t1479, %t1491 :: integer
|
1459
|
+
%t1493 = const 0 :: integer
|
1460
|
+
%t1494 = select %t1487, %t1492, %t1493 :: integer
|
1461
|
+
%t1495 = load_input "rows" :: array
|
1462
|
+
%t1496 = length %t1495 :: integer
|
1463
|
+
%t1497 = const 1 :: integer
|
1464
|
+
%t1498 = call core.sub(%rows_i_279, %t1497) :: integer
|
1465
|
+
%t1499 = const 0 :: integer
|
1466
|
+
%t1500 = call core.gte(%t1498, %t1499) :: boolean
|
1467
|
+
%t1501 = call core.lt(%t1498, %t1496) :: boolean
|
1468
|
+
%t1502 = call core.and(%t1500, %t1501) :: boolean
|
1454
1469
|
%t1503 = const 1 :: integer
|
1455
|
-
%t1504 = call core.sub(%
|
1470
|
+
%t1504 = call core.sub(%t1496, %t1503) :: integer
|
1456
1471
|
%t1505 = const 0 :: integer
|
1457
|
-
%t1506 = call core.clamp(%
|
1458
|
-
%t1507 = gather %
|
1459
|
-
%t1508 =
|
1460
|
-
%t1509 =
|
1461
|
-
%t1510 =
|
1462
|
-
%t1511 =
|
1463
|
-
%t1512 =
|
1464
|
-
%t1513 = call core.
|
1465
|
-
%t1514 =
|
1466
|
-
%t1515 = call core.
|
1467
|
-
%t1516 =
|
1468
|
-
%t1517 = call core.
|
1469
|
-
%t1518 = const
|
1470
|
-
%t1519 = call core.
|
1471
|
-
%t1520 =
|
1472
|
-
%t1521 =
|
1473
|
-
%t1522 =
|
1474
|
-
%
|
1475
|
-
%
|
1476
|
-
%
|
1477
|
-
%
|
1478
|
-
%
|
1479
|
-
%
|
1480
|
-
%
|
1481
|
-
%
|
1482
|
-
%
|
1483
|
-
%
|
1484
|
-
%t1533 = const 0 :: integer
|
1485
|
-
%t1534 = call core.clamp(%t1525, %t1533, %t1532) :: integer
|
1486
|
-
%t1535 = gather %t1522, %t1534 :: integer
|
1487
|
-
%t1536 = const 0 :: integer
|
1488
|
-
%t1537 = select %t1530, %t1535, %t1536 :: integer
|
1489
|
-
%t1314 = make_tuple(%t1365, %t1385, %t1405, %t1425, %t1453, %t1481, %t1509, %t1537) :: tuple<integer>
|
1490
|
-
%t1315 = fold %t1314 fn="agg.sum" ::
|
1491
|
-
%t1316 = const 2 :: integer
|
1492
|
-
%t1317 = call core.eq(%t1315, %t1316) :: boolean
|
1493
|
-
%t1318 = load_input "rows" :: array
|
1494
|
-
%t1319 = load_input "rows" :: array
|
1495
|
-
%t1320 = const 0 :: integer
|
1496
|
-
%t1321 = call core.gt(%col_el_280, %t1320) :: boolean
|
1497
|
-
%t524 = call core.and(%t1317, %t1321) :: boolean
|
1498
|
-
%t284 = call core.or(%t520, %t524) :: boolean
|
1472
|
+
%t1506 = call core.clamp(%t1498, %t1505, %t1504) :: integer
|
1473
|
+
%t1507 = gather %t1495, %t1506 :: any
|
1474
|
+
%t1508 = length %t1507 :: integer
|
1475
|
+
%t1509 = const 1 :: integer
|
1476
|
+
%t1510 = call core.sub(%col_i_281, %t1509) :: integer
|
1477
|
+
%t1511 = const 0 :: integer
|
1478
|
+
%t1512 = call core.gte(%t1510, %t1511) :: boolean
|
1479
|
+
%t1513 = call core.lt(%t1510, %t1508) :: boolean
|
1480
|
+
%t1514 = call core.and(%t1512, %t1513) :: boolean
|
1481
|
+
%t1515 = call core.and(%t1502, %t1514) :: boolean
|
1482
|
+
%t1516 = const 1 :: integer
|
1483
|
+
%t1517 = call core.sub(%t1508, %t1516) :: integer
|
1484
|
+
%t1518 = const 0 :: integer
|
1485
|
+
%t1519 = call core.clamp(%t1510, %t1518, %t1517) :: integer
|
1486
|
+
%t1520 = gather %t1507, %t1519 :: integer
|
1487
|
+
%t1521 = const 0 :: integer
|
1488
|
+
%t1522 = select %t1515, %t1520, %t1521 :: integer
|
1489
|
+
%t1329 = make_tuple(%t1350, %t1370, %t1390, %t1410, %t1438, %t1466, %t1494, %t1522) :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
1490
|
+
%t1330 = fold %t1329 fn="agg.sum" :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
1491
|
+
%t1318 = const 2 :: integer
|
1492
|
+
%t1319 = call core.eq(%t1330, %t1318) :: boolean
|
1493
|
+
%t1523 = load_input "rows" :: array
|
1494
|
+
%t1527 = load_input "rows" :: array
|
1495
|
+
%t1525 = const 0 :: integer
|
1496
|
+
%t1526 = call core.gt(%col_el_280, %t1525) :: boolean
|
1497
|
+
%t1315 = call core.and(%t1319, %t1526) :: boolean
|
1498
|
+
%t284 = call core.or(%t1108, %t1315) :: boolean
|
1499
1499
|
yield %t284
|
1500
1500
|
end_loop
|
1501
1501
|
end_loop
|
@@ -1504,413 +1504,413 @@
|
|
1504
1504
|
%t285 = load_input "rows" :: array
|
1505
1505
|
loop rows id=L31 in %t285 as el=%rows_el_286, idx=%rows_i_287
|
1506
1506
|
loop col id=L32 in %rows_el_286 as el=%col_el_288, idx=%col_i_289
|
1507
|
-
%
|
1508
|
-
%
|
1509
|
-
%
|
1510
|
-
%
|
1511
|
-
%
|
1512
|
-
%
|
1513
|
-
%
|
1514
|
-
%
|
1515
|
-
%
|
1516
|
-
%
|
1517
|
-
%
|
1518
|
-
%
|
1519
|
-
%
|
1520
|
-
%
|
1521
|
-
%
|
1522
|
-
%
|
1523
|
-
%
|
1524
|
-
%
|
1525
|
-
%
|
1526
|
-
%
|
1527
|
-
%
|
1528
|
-
%
|
1529
|
-
%
|
1530
|
-
%
|
1531
|
-
%
|
1532
|
-
%
|
1533
|
-
%
|
1534
|
-
%
|
1535
|
-
%
|
1536
|
-
%
|
1537
|
-
%
|
1538
|
-
%
|
1539
|
-
%
|
1540
|
-
%
|
1541
|
-
%
|
1542
|
-
%
|
1543
|
-
%
|
1544
|
-
%
|
1545
|
-
%
|
1546
|
-
%
|
1547
|
-
%
|
1548
|
-
%
|
1549
|
-
%
|
1550
|
-
%
|
1551
|
-
%
|
1552
|
-
%
|
1553
|
-
%
|
1554
|
-
%
|
1555
|
-
%
|
1556
|
-
%
|
1557
|
-
%
|
1558
|
-
%
|
1559
|
-
%t1587 = const 0 :: integer
|
1560
|
-
%t1588 = call core.gte(%t1586, %t1587) :: boolean
|
1561
|
-
%t1589 = call core.lt(%t1586, %t1584) :: boolean
|
1562
|
-
%t1590 = call core.and(%t1588, %t1589) :: boolean
|
1563
|
-
%t1591 = const 1 :: integer
|
1564
|
-
%t1592 = call core.sub(%t1584, %t1591) :: integer
|
1565
|
-
%t1593 = const 0 :: integer
|
1566
|
-
%t1594 = call core.clamp(%t1586, %t1593, %t1592) :: integer
|
1567
|
-
%t1595 = gather %t1583, %t1594 :: integer
|
1507
|
+
%t1528 = load_input "rows" :: array
|
1508
|
+
%t1532 = load_input "rows" :: array
|
1509
|
+
%t1536 = load_input "rows" :: array
|
1510
|
+
%t1547 = load_input "rows" :: array
|
1511
|
+
%t1548 = length %t1547 :: integer
|
1512
|
+
%t1549 = const -1 :: integer
|
1513
|
+
%t1550 = call core.sub(%rows_i_287, %t1549) :: integer
|
1514
|
+
%t1551 = const 0 :: integer
|
1515
|
+
%t1552 = call core.gte(%t1550, %t1551) :: boolean
|
1516
|
+
%t1553 = call core.lt(%t1550, %t1548) :: boolean
|
1517
|
+
%t1554 = call core.and(%t1552, %t1553) :: boolean
|
1518
|
+
%t1555 = const 1 :: integer
|
1519
|
+
%t1556 = call core.sub(%t1548, %t1555) :: integer
|
1520
|
+
%t1557 = const 0 :: integer
|
1521
|
+
%t1558 = call core.clamp(%t1550, %t1557, %t1556) :: integer
|
1522
|
+
%t1559 = gather %t1547, %t1558 :: any
|
1523
|
+
%t1560 = length %t1559 :: integer
|
1524
|
+
%t1561 = call core.mod(%col_i_289, %t1560) :: integer
|
1525
|
+
%t1562 = call core.add(%t1561, %t1560) :: integer
|
1526
|
+
%t1563 = call core.mod(%t1562, %t1560) :: integer
|
1527
|
+
%t1564 = gather %t1559, %t1563 :: integer
|
1528
|
+
%t1565 = const 0 :: integer
|
1529
|
+
%t1566 = select %t1554, %t1564, %t1565 :: integer
|
1530
|
+
%t1567 = load_input "rows" :: array
|
1531
|
+
%t1568 = length %t1567 :: integer
|
1532
|
+
%t1569 = const 1 :: integer
|
1533
|
+
%t1570 = call core.sub(%rows_i_287, %t1569) :: integer
|
1534
|
+
%t1571 = const 0 :: integer
|
1535
|
+
%t1572 = call core.gte(%t1570, %t1571) :: boolean
|
1536
|
+
%t1573 = call core.lt(%t1570, %t1568) :: boolean
|
1537
|
+
%t1574 = call core.and(%t1572, %t1573) :: boolean
|
1538
|
+
%t1575 = const 1 :: integer
|
1539
|
+
%t1576 = call core.sub(%t1568, %t1575) :: integer
|
1540
|
+
%t1577 = const 0 :: integer
|
1541
|
+
%t1578 = call core.clamp(%t1570, %t1577, %t1576) :: integer
|
1542
|
+
%t1579 = gather %t1567, %t1578 :: any
|
1543
|
+
%t1580 = length %t1579 :: integer
|
1544
|
+
%t1581 = call core.mod(%col_i_289, %t1580) :: integer
|
1545
|
+
%t1582 = call core.add(%t1581, %t1580) :: integer
|
1546
|
+
%t1583 = call core.mod(%t1582, %t1580) :: integer
|
1547
|
+
%t1584 = gather %t1579, %t1583 :: integer
|
1548
|
+
%t1585 = const 0 :: integer
|
1549
|
+
%t1586 = select %t1574, %t1584, %t1585 :: integer
|
1550
|
+
%t1587 = load_input "rows" :: array
|
1551
|
+
%t1588 = length %t1587 :: integer
|
1552
|
+
%t1589 = call core.mod(%rows_i_287, %t1588) :: integer
|
1553
|
+
%t1590 = call core.add(%t1589, %t1588) :: integer
|
1554
|
+
%t1591 = call core.mod(%t1590, %t1588) :: integer
|
1555
|
+
%t1592 = gather %t1587, %t1591 :: any
|
1556
|
+
%t1593 = length %t1592 :: integer
|
1557
|
+
%t1594 = const -1 :: integer
|
1558
|
+
%t1595 = call core.sub(%col_i_289, %t1594) :: integer
|
1568
1559
|
%t1596 = const 0 :: integer
|
1569
|
-
%t1597 =
|
1570
|
-
%t1598 =
|
1571
|
-
%t1599 =
|
1572
|
-
%t1600 =
|
1573
|
-
%t1601 = call core.
|
1574
|
-
%t1602 =
|
1575
|
-
%t1603 =
|
1576
|
-
%t1604 =
|
1577
|
-
%t1605 = const
|
1578
|
-
%t1606 =
|
1579
|
-
%t1607 =
|
1580
|
-
%t1608 =
|
1581
|
-
%t1609 = call core.
|
1582
|
-
%t1610 = call core.
|
1583
|
-
%t1611 =
|
1584
|
-
%t1612 =
|
1585
|
-
%t1613 =
|
1586
|
-
%t1614 =
|
1587
|
-
%t1615 =
|
1560
|
+
%t1597 = call core.gte(%t1595, %t1596) :: boolean
|
1561
|
+
%t1598 = call core.lt(%t1595, %t1593) :: boolean
|
1562
|
+
%t1599 = call core.and(%t1597, %t1598) :: boolean
|
1563
|
+
%t1600 = const 1 :: integer
|
1564
|
+
%t1601 = call core.sub(%t1593, %t1600) :: integer
|
1565
|
+
%t1602 = const 0 :: integer
|
1566
|
+
%t1603 = call core.clamp(%t1595, %t1602, %t1601) :: integer
|
1567
|
+
%t1604 = gather %t1592, %t1603 :: integer
|
1568
|
+
%t1605 = const 0 :: integer
|
1569
|
+
%t1606 = select %t1599, %t1604, %t1605 :: integer
|
1570
|
+
%t1607 = load_input "rows" :: array
|
1571
|
+
%t1608 = length %t1607 :: integer
|
1572
|
+
%t1609 = call core.mod(%rows_i_287, %t1608) :: integer
|
1573
|
+
%t1610 = call core.add(%t1609, %t1608) :: integer
|
1574
|
+
%t1611 = call core.mod(%t1610, %t1608) :: integer
|
1575
|
+
%t1612 = gather %t1607, %t1611 :: any
|
1576
|
+
%t1613 = length %t1612 :: integer
|
1577
|
+
%t1614 = const 1 :: integer
|
1578
|
+
%t1615 = call core.sub(%col_i_289, %t1614) :: integer
|
1588
1579
|
%t1616 = const 0 :: integer
|
1589
|
-
%t1617 =
|
1590
|
-
%t1618 =
|
1591
|
-
%t1619 =
|
1592
|
-
%t1620 = const
|
1593
|
-
%t1621 = call core.sub(%
|
1580
|
+
%t1617 = call core.gte(%t1615, %t1616) :: boolean
|
1581
|
+
%t1618 = call core.lt(%t1615, %t1613) :: boolean
|
1582
|
+
%t1619 = call core.and(%t1617, %t1618) :: boolean
|
1583
|
+
%t1620 = const 1 :: integer
|
1584
|
+
%t1621 = call core.sub(%t1613, %t1620) :: integer
|
1594
1585
|
%t1622 = const 0 :: integer
|
1595
|
-
%t1623 = call core.
|
1596
|
-
%t1624 =
|
1597
|
-
%t1625 =
|
1598
|
-
%t1626 =
|
1599
|
-
%t1627 =
|
1600
|
-
%t1628 =
|
1601
|
-
%t1629 =
|
1602
|
-
%t1630 =
|
1603
|
-
%t1631 =
|
1604
|
-
%t1632 =
|
1605
|
-
%t1633 = call core.
|
1606
|
-
%t1634 =
|
1607
|
-
%t1635 =
|
1608
|
-
%t1636 = call core.
|
1609
|
-
%t1637 =
|
1610
|
-
%t1638 = call core.
|
1611
|
-
%t1639 =
|
1612
|
-
%t1640 =
|
1613
|
-
%t1641 = const
|
1614
|
-
%t1642 = call core.
|
1615
|
-
%t1643 =
|
1616
|
-
%t1644 =
|
1617
|
-
%t1645 =
|
1618
|
-
%t1646 =
|
1619
|
-
%t1647 =
|
1620
|
-
%t1648 = const
|
1621
|
-
%t1649 = call core.sub(%
|
1586
|
+
%t1623 = call core.clamp(%t1615, %t1622, %t1621) :: integer
|
1587
|
+
%t1624 = gather %t1612, %t1623 :: integer
|
1588
|
+
%t1625 = const 0 :: integer
|
1589
|
+
%t1626 = select %t1619, %t1624, %t1625 :: integer
|
1590
|
+
%t1627 = load_input "rows" :: array
|
1591
|
+
%t1628 = length %t1627 :: integer
|
1592
|
+
%t1629 = const -1 :: integer
|
1593
|
+
%t1630 = call core.sub(%rows_i_287, %t1629) :: integer
|
1594
|
+
%t1631 = const 0 :: integer
|
1595
|
+
%t1632 = call core.gte(%t1630, %t1631) :: boolean
|
1596
|
+
%t1633 = call core.lt(%t1630, %t1628) :: boolean
|
1597
|
+
%t1634 = call core.and(%t1632, %t1633) :: boolean
|
1598
|
+
%t1635 = const 1 :: integer
|
1599
|
+
%t1636 = call core.sub(%t1628, %t1635) :: integer
|
1600
|
+
%t1637 = const 0 :: integer
|
1601
|
+
%t1638 = call core.clamp(%t1630, %t1637, %t1636) :: integer
|
1602
|
+
%t1639 = gather %t1627, %t1638 :: any
|
1603
|
+
%t1640 = length %t1639 :: integer
|
1604
|
+
%t1641 = const -1 :: integer
|
1605
|
+
%t1642 = call core.sub(%col_i_289, %t1641) :: integer
|
1606
|
+
%t1643 = const 0 :: integer
|
1607
|
+
%t1644 = call core.gte(%t1642, %t1643) :: boolean
|
1608
|
+
%t1645 = call core.lt(%t1642, %t1640) :: boolean
|
1609
|
+
%t1646 = call core.and(%t1644, %t1645) :: boolean
|
1610
|
+
%t1647 = call core.and(%t1634, %t1646) :: boolean
|
1611
|
+
%t1648 = const 1 :: integer
|
1612
|
+
%t1649 = call core.sub(%t1640, %t1648) :: integer
|
1622
1613
|
%t1650 = const 0 :: integer
|
1623
|
-
%t1651 = call core.
|
1624
|
-
%t1652 =
|
1625
|
-
%t1653 =
|
1626
|
-
%t1654 =
|
1627
|
-
%t1655 =
|
1628
|
-
%t1656 =
|
1629
|
-
%t1657 =
|
1630
|
-
%t1658 =
|
1631
|
-
%t1659 =
|
1632
|
-
%t1660 =
|
1633
|
-
%t1661 = call core.
|
1634
|
-
%t1662 =
|
1635
|
-
%t1663 =
|
1636
|
-
%t1664 = call core.
|
1637
|
-
%t1665 =
|
1638
|
-
%t1666 = call core.
|
1639
|
-
%t1667 =
|
1640
|
-
%t1668 =
|
1641
|
-
%t1669 = const
|
1642
|
-
%t1670 = call core.
|
1643
|
-
%t1671 =
|
1644
|
-
%t1672 =
|
1645
|
-
%t1673 =
|
1646
|
-
%t1674 =
|
1647
|
-
%t1675 =
|
1614
|
+
%t1651 = call core.clamp(%t1642, %t1650, %t1649) :: integer
|
1615
|
+
%t1652 = gather %t1639, %t1651 :: integer
|
1616
|
+
%t1653 = const 0 :: integer
|
1617
|
+
%t1654 = select %t1647, %t1652, %t1653 :: integer
|
1618
|
+
%t1655 = load_input "rows" :: array
|
1619
|
+
%t1656 = length %t1655 :: integer
|
1620
|
+
%t1657 = const -1 :: integer
|
1621
|
+
%t1658 = call core.sub(%rows_i_287, %t1657) :: integer
|
1622
|
+
%t1659 = const 0 :: integer
|
1623
|
+
%t1660 = call core.gte(%t1658, %t1659) :: boolean
|
1624
|
+
%t1661 = call core.lt(%t1658, %t1656) :: boolean
|
1625
|
+
%t1662 = call core.and(%t1660, %t1661) :: boolean
|
1626
|
+
%t1663 = const 1 :: integer
|
1627
|
+
%t1664 = call core.sub(%t1656, %t1663) :: integer
|
1628
|
+
%t1665 = const 0 :: integer
|
1629
|
+
%t1666 = call core.clamp(%t1658, %t1665, %t1664) :: integer
|
1630
|
+
%t1667 = gather %t1655, %t1666 :: any
|
1631
|
+
%t1668 = length %t1667 :: integer
|
1632
|
+
%t1669 = const 1 :: integer
|
1633
|
+
%t1670 = call core.sub(%col_i_289, %t1669) :: integer
|
1634
|
+
%t1671 = const 0 :: integer
|
1635
|
+
%t1672 = call core.gte(%t1670, %t1671) :: boolean
|
1636
|
+
%t1673 = call core.lt(%t1670, %t1668) :: boolean
|
1637
|
+
%t1674 = call core.and(%t1672, %t1673) :: boolean
|
1638
|
+
%t1675 = call core.and(%t1662, %t1674) :: boolean
|
1648
1639
|
%t1676 = const 1 :: integer
|
1649
|
-
%t1677 = call core.sub(%
|
1640
|
+
%t1677 = call core.sub(%t1668, %t1676) :: integer
|
1650
1641
|
%t1678 = const 0 :: integer
|
1651
|
-
%t1679 = call core.
|
1652
|
-
%t1680 =
|
1653
|
-
%t1681 =
|
1654
|
-
%t1682 =
|
1655
|
-
%t1683 =
|
1656
|
-
%t1684 =
|
1657
|
-
%t1685 =
|
1658
|
-
%t1686 =
|
1659
|
-
%t1687 =
|
1660
|
-
%t1688 =
|
1661
|
-
%t1689 = call core.
|
1662
|
-
%t1690 =
|
1663
|
-
%t1691 =
|
1664
|
-
%t1692 = call core.
|
1665
|
-
%t1693 =
|
1666
|
-
%t1694 = call core.
|
1667
|
-
%t1695 =
|
1668
|
-
%t1696 =
|
1669
|
-
%t1697 = const
|
1670
|
-
%t1698 = call core.
|
1671
|
-
%t1699 =
|
1672
|
-
%t1700 =
|
1673
|
-
%t1701 =
|
1674
|
-
%t1702 =
|
1675
|
-
%t1703 =
|
1642
|
+
%t1679 = call core.clamp(%t1670, %t1678, %t1677) :: integer
|
1643
|
+
%t1680 = gather %t1667, %t1679 :: integer
|
1644
|
+
%t1681 = const 0 :: integer
|
1645
|
+
%t1682 = select %t1675, %t1680, %t1681 :: integer
|
1646
|
+
%t1683 = load_input "rows" :: array
|
1647
|
+
%t1684 = length %t1683 :: integer
|
1648
|
+
%t1685 = const 1 :: integer
|
1649
|
+
%t1686 = call core.sub(%rows_i_287, %t1685) :: integer
|
1650
|
+
%t1687 = const 0 :: integer
|
1651
|
+
%t1688 = call core.gte(%t1686, %t1687) :: boolean
|
1652
|
+
%t1689 = call core.lt(%t1686, %t1684) :: boolean
|
1653
|
+
%t1690 = call core.and(%t1688, %t1689) :: boolean
|
1654
|
+
%t1691 = const 1 :: integer
|
1655
|
+
%t1692 = call core.sub(%t1684, %t1691) :: integer
|
1656
|
+
%t1693 = const 0 :: integer
|
1657
|
+
%t1694 = call core.clamp(%t1686, %t1693, %t1692) :: integer
|
1658
|
+
%t1695 = gather %t1683, %t1694 :: any
|
1659
|
+
%t1696 = length %t1695 :: integer
|
1660
|
+
%t1697 = const -1 :: integer
|
1661
|
+
%t1698 = call core.sub(%col_i_289, %t1697) :: integer
|
1662
|
+
%t1699 = const 0 :: integer
|
1663
|
+
%t1700 = call core.gte(%t1698, %t1699) :: boolean
|
1664
|
+
%t1701 = call core.lt(%t1698, %t1696) :: boolean
|
1665
|
+
%t1702 = call core.and(%t1700, %t1701) :: boolean
|
1666
|
+
%t1703 = call core.and(%t1690, %t1702) :: boolean
|
1676
1667
|
%t1704 = const 1 :: integer
|
1677
|
-
%t1705 = call core.sub(%
|
1668
|
+
%t1705 = call core.sub(%t1696, %t1704) :: integer
|
1678
1669
|
%t1706 = const 0 :: integer
|
1679
|
-
%t1707 = call core.
|
1680
|
-
%t1708 =
|
1681
|
-
%t1709 =
|
1682
|
-
%t1710 =
|
1683
|
-
%t1711 =
|
1684
|
-
%t1712 =
|
1685
|
-
%t1713 =
|
1686
|
-
%t1714 =
|
1687
|
-
%t1715 =
|
1688
|
-
%t1716 =
|
1689
|
-
%t1717 = call core.
|
1690
|
-
%t1718 =
|
1691
|
-
%t1719 =
|
1692
|
-
%t1720 = call core.
|
1693
|
-
%t1721 =
|
1694
|
-
%t1722 = call core.
|
1695
|
-
%t1723 =
|
1696
|
-
%t1724 =
|
1697
|
-
%t1725 = const
|
1698
|
-
%t1726 = call core.
|
1699
|
-
%t1727 =
|
1700
|
-
%t1728 =
|
1701
|
-
%t1729 =
|
1702
|
-
%
|
1703
|
-
%
|
1704
|
-
%
|
1705
|
-
%
|
1706
|
-
%
|
1707
|
-
%
|
1708
|
-
%
|
1709
|
-
%
|
1710
|
-
%
|
1711
|
-
%
|
1712
|
-
%
|
1713
|
-
%
|
1714
|
-
%
|
1715
|
-
%
|
1716
|
-
%
|
1717
|
-
%
|
1718
|
-
%
|
1719
|
-
%
|
1720
|
-
%
|
1721
|
-
%
|
1722
|
-
%
|
1723
|
-
%
|
1724
|
-
%
|
1725
|
-
%
|
1726
|
-
%
|
1727
|
-
%
|
1728
|
-
%
|
1729
|
-
%
|
1730
|
-
%
|
1731
|
-
%
|
1732
|
-
%
|
1733
|
-
%
|
1734
|
-
%
|
1735
|
-
%
|
1736
|
-
%
|
1737
|
-
%
|
1738
|
-
%
|
1739
|
-
%
|
1740
|
-
%
|
1741
|
-
%
|
1742
|
-
%
|
1743
|
-
%
|
1744
|
-
%
|
1745
|
-
%
|
1746
|
-
%
|
1747
|
-
%
|
1748
|
-
%
|
1749
|
-
%
|
1750
|
-
%
|
1751
|
-
%
|
1752
|
-
%
|
1753
|
-
%
|
1754
|
-
%
|
1755
|
-
%
|
1756
|
-
%
|
1757
|
-
%
|
1758
|
-
%
|
1759
|
-
%
|
1760
|
-
%
|
1761
|
-
%
|
1762
|
-
%
|
1763
|
-
%
|
1764
|
-
%
|
1765
|
-
%
|
1766
|
-
%
|
1767
|
-
%
|
1768
|
-
%
|
1769
|
-
%
|
1770
|
-
%
|
1771
|
-
%
|
1772
|
-
%
|
1773
|
-
%
|
1774
|
-
%
|
1775
|
-
%
|
1776
|
-
%
|
1777
|
-
%
|
1778
|
-
%
|
1779
|
-
%
|
1780
|
-
%
|
1781
|
-
%
|
1782
|
-
%
|
1783
|
-
%
|
1784
|
-
%t1806 = const 0 :: integer
|
1785
|
-
%t1807 = call core.clamp(%t1799, %t1806, %t1805) :: integer
|
1786
|
-
%t1808 = gather %t1796, %t1807 :: integer
|
1787
|
-
%t1809 = const 0 :: integer
|
1788
|
-
%t1810 = select %t1803, %t1808, %t1809 :: integer
|
1789
|
-
%t1811 = load_input "rows" :: array
|
1790
|
-
%t1812 = length %t1811 :: integer
|
1791
|
-
%t1813 = const -1 :: integer
|
1792
|
-
%t1814 = call core.sub(%rows_i_287, %t1813) :: integer
|
1793
|
-
%t1815 = const 0 :: integer
|
1794
|
-
%t1816 = call core.gte(%t1814, %t1815) :: boolean
|
1795
|
-
%t1817 = call core.lt(%t1814, %t1812) :: boolean
|
1796
|
-
%t1818 = call core.and(%t1816, %t1817) :: boolean
|
1797
|
-
%t1819 = const 1 :: integer
|
1798
|
-
%t1820 = call core.sub(%t1812, %t1819) :: integer
|
1799
|
-
%t1821 = const 0 :: integer
|
1800
|
-
%t1822 = call core.clamp(%t1814, %t1821, %t1820) :: integer
|
1801
|
-
%t1823 = gather %t1811, %t1822 :: any
|
1670
|
+
%t1707 = call core.clamp(%t1698, %t1706, %t1705) :: integer
|
1671
|
+
%t1708 = gather %t1695, %t1707 :: integer
|
1672
|
+
%t1709 = const 0 :: integer
|
1673
|
+
%t1710 = select %t1703, %t1708, %t1709 :: integer
|
1674
|
+
%t1711 = load_input "rows" :: array
|
1675
|
+
%t1712 = length %t1711 :: integer
|
1676
|
+
%t1713 = const 1 :: integer
|
1677
|
+
%t1714 = call core.sub(%rows_i_287, %t1713) :: integer
|
1678
|
+
%t1715 = const 0 :: integer
|
1679
|
+
%t1716 = call core.gte(%t1714, %t1715) :: boolean
|
1680
|
+
%t1717 = call core.lt(%t1714, %t1712) :: boolean
|
1681
|
+
%t1718 = call core.and(%t1716, %t1717) :: boolean
|
1682
|
+
%t1719 = const 1 :: integer
|
1683
|
+
%t1720 = call core.sub(%t1712, %t1719) :: integer
|
1684
|
+
%t1721 = const 0 :: integer
|
1685
|
+
%t1722 = call core.clamp(%t1714, %t1721, %t1720) :: integer
|
1686
|
+
%t1723 = gather %t1711, %t1722 :: any
|
1687
|
+
%t1724 = length %t1723 :: integer
|
1688
|
+
%t1725 = const 1 :: integer
|
1689
|
+
%t1726 = call core.sub(%col_i_289, %t1725) :: integer
|
1690
|
+
%t1727 = const 0 :: integer
|
1691
|
+
%t1728 = call core.gte(%t1726, %t1727) :: boolean
|
1692
|
+
%t1729 = call core.lt(%t1726, %t1724) :: boolean
|
1693
|
+
%t1730 = call core.and(%t1728, %t1729) :: boolean
|
1694
|
+
%t1731 = call core.and(%t1718, %t1730) :: boolean
|
1695
|
+
%t1732 = const 1 :: integer
|
1696
|
+
%t1733 = call core.sub(%t1724, %t1732) :: integer
|
1697
|
+
%t1734 = const 0 :: integer
|
1698
|
+
%t1735 = call core.clamp(%t1726, %t1734, %t1733) :: integer
|
1699
|
+
%t1736 = gather %t1723, %t1735 :: integer
|
1700
|
+
%t1737 = const 0 :: integer
|
1701
|
+
%t1738 = select %t1731, %t1736, %t1737 :: integer
|
1702
|
+
%t1545 = make_tuple(%t1566, %t1586, %t1606, %t1626, %t1654, %t1682, %t1710, %t1738) :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
1703
|
+
%t1546 = fold %t1545 fn="agg.sum" :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
1704
|
+
%t1534 = const 3 :: integer
|
1705
|
+
%t1535 = call core.eq(%t1546, %t1534) :: boolean
|
1706
|
+
%t1739 = load_input "rows" :: array
|
1707
|
+
%t1743 = load_input "rows" :: array
|
1708
|
+
%t1747 = load_input "rows" :: array
|
1709
|
+
%t1758 = load_input "rows" :: array
|
1710
|
+
%t1759 = length %t1758 :: integer
|
1711
|
+
%t1760 = const -1 :: integer
|
1712
|
+
%t1761 = call core.sub(%rows_i_287, %t1760) :: integer
|
1713
|
+
%t1762 = const 0 :: integer
|
1714
|
+
%t1763 = call core.gte(%t1761, %t1762) :: boolean
|
1715
|
+
%t1764 = call core.lt(%t1761, %t1759) :: boolean
|
1716
|
+
%t1765 = call core.and(%t1763, %t1764) :: boolean
|
1717
|
+
%t1766 = const 1 :: integer
|
1718
|
+
%t1767 = call core.sub(%t1759, %t1766) :: integer
|
1719
|
+
%t1768 = const 0 :: integer
|
1720
|
+
%t1769 = call core.clamp(%t1761, %t1768, %t1767) :: integer
|
1721
|
+
%t1770 = gather %t1758, %t1769 :: any
|
1722
|
+
%t1771 = length %t1770 :: integer
|
1723
|
+
%t1772 = call core.mod(%col_i_289, %t1771) :: integer
|
1724
|
+
%t1773 = call core.add(%t1772, %t1771) :: integer
|
1725
|
+
%t1774 = call core.mod(%t1773, %t1771) :: integer
|
1726
|
+
%t1775 = gather %t1770, %t1774 :: integer
|
1727
|
+
%t1776 = const 0 :: integer
|
1728
|
+
%t1777 = select %t1765, %t1775, %t1776 :: integer
|
1729
|
+
%t1778 = load_input "rows" :: array
|
1730
|
+
%t1779 = length %t1778 :: integer
|
1731
|
+
%t1780 = const 1 :: integer
|
1732
|
+
%t1781 = call core.sub(%rows_i_287, %t1780) :: integer
|
1733
|
+
%t1782 = const 0 :: integer
|
1734
|
+
%t1783 = call core.gte(%t1781, %t1782) :: boolean
|
1735
|
+
%t1784 = call core.lt(%t1781, %t1779) :: boolean
|
1736
|
+
%t1785 = call core.and(%t1783, %t1784) :: boolean
|
1737
|
+
%t1786 = const 1 :: integer
|
1738
|
+
%t1787 = call core.sub(%t1779, %t1786) :: integer
|
1739
|
+
%t1788 = const 0 :: integer
|
1740
|
+
%t1789 = call core.clamp(%t1781, %t1788, %t1787) :: integer
|
1741
|
+
%t1790 = gather %t1778, %t1789 :: any
|
1742
|
+
%t1791 = length %t1790 :: integer
|
1743
|
+
%t1792 = call core.mod(%col_i_289, %t1791) :: integer
|
1744
|
+
%t1793 = call core.add(%t1792, %t1791) :: integer
|
1745
|
+
%t1794 = call core.mod(%t1793, %t1791) :: integer
|
1746
|
+
%t1795 = gather %t1790, %t1794 :: integer
|
1747
|
+
%t1796 = const 0 :: integer
|
1748
|
+
%t1797 = select %t1785, %t1795, %t1796 :: integer
|
1749
|
+
%t1798 = load_input "rows" :: array
|
1750
|
+
%t1799 = length %t1798 :: integer
|
1751
|
+
%t1800 = call core.mod(%rows_i_287, %t1799) :: integer
|
1752
|
+
%t1801 = call core.add(%t1800, %t1799) :: integer
|
1753
|
+
%t1802 = call core.mod(%t1801, %t1799) :: integer
|
1754
|
+
%t1803 = gather %t1798, %t1802 :: any
|
1755
|
+
%t1804 = length %t1803 :: integer
|
1756
|
+
%t1805 = const -1 :: integer
|
1757
|
+
%t1806 = call core.sub(%col_i_289, %t1805) :: integer
|
1758
|
+
%t1807 = const 0 :: integer
|
1759
|
+
%t1808 = call core.gte(%t1806, %t1807) :: boolean
|
1760
|
+
%t1809 = call core.lt(%t1806, %t1804) :: boolean
|
1761
|
+
%t1810 = call core.and(%t1808, %t1809) :: boolean
|
1762
|
+
%t1811 = const 1 :: integer
|
1763
|
+
%t1812 = call core.sub(%t1804, %t1811) :: integer
|
1764
|
+
%t1813 = const 0 :: integer
|
1765
|
+
%t1814 = call core.clamp(%t1806, %t1813, %t1812) :: integer
|
1766
|
+
%t1815 = gather %t1803, %t1814 :: integer
|
1767
|
+
%t1816 = const 0 :: integer
|
1768
|
+
%t1817 = select %t1810, %t1815, %t1816 :: integer
|
1769
|
+
%t1818 = load_input "rows" :: array
|
1770
|
+
%t1819 = length %t1818 :: integer
|
1771
|
+
%t1820 = call core.mod(%rows_i_287, %t1819) :: integer
|
1772
|
+
%t1821 = call core.add(%t1820, %t1819) :: integer
|
1773
|
+
%t1822 = call core.mod(%t1821, %t1819) :: integer
|
1774
|
+
%t1823 = gather %t1818, %t1822 :: any
|
1802
1775
|
%t1824 = length %t1823 :: integer
|
1803
|
-
%t1825 = const
|
1776
|
+
%t1825 = const 1 :: integer
|
1804
1777
|
%t1826 = call core.sub(%col_i_289, %t1825) :: integer
|
1805
1778
|
%t1827 = const 0 :: integer
|
1806
1779
|
%t1828 = call core.gte(%t1826, %t1827) :: boolean
|
1807
1780
|
%t1829 = call core.lt(%t1826, %t1824) :: boolean
|
1808
1781
|
%t1830 = call core.and(%t1828, %t1829) :: boolean
|
1809
|
-
%t1831 =
|
1810
|
-
%t1832 =
|
1811
|
-
%t1833 =
|
1812
|
-
%t1834 =
|
1813
|
-
%t1835 =
|
1814
|
-
%t1836 =
|
1815
|
-
%t1837 =
|
1816
|
-
%t1838 =
|
1817
|
-
%t1839 =
|
1818
|
-
%t1840 =
|
1819
|
-
%t1841 =
|
1820
|
-
%t1842 =
|
1821
|
-
%t1843 =
|
1822
|
-
%t1844 = call core.
|
1823
|
-
%t1845 = call core.
|
1824
|
-
%t1846 =
|
1825
|
-
%t1847 =
|
1826
|
-
%t1848 =
|
1827
|
-
%t1849 =
|
1828
|
-
%t1850 =
|
1829
|
-
%t1851 =
|
1830
|
-
%t1852 =
|
1831
|
-
%t1853 =
|
1832
|
-
%t1854 =
|
1833
|
-
%t1855 =
|
1834
|
-
%t1856 = call core.
|
1835
|
-
%t1857 = call core.
|
1836
|
-
%t1858 = call core.and(%
|
1837
|
-
%t1859 =
|
1838
|
-
%t1860 =
|
1839
|
-
%t1861 =
|
1840
|
-
%t1862 =
|
1841
|
-
%t1863 =
|
1842
|
-
%t1864 =
|
1843
|
-
%t1865 =
|
1844
|
-
%t1866 =
|
1845
|
-
%t1867 =
|
1846
|
-
%t1868 =
|
1847
|
-
%t1869 =
|
1848
|
-
%t1870 =
|
1849
|
-
%t1871 =
|
1850
|
-
%t1872 = call core.
|
1851
|
-
%t1873 = call core.
|
1852
|
-
%t1874 =
|
1853
|
-
%t1875 =
|
1854
|
-
%t1876 =
|
1855
|
-
%t1877 =
|
1856
|
-
%t1878 =
|
1857
|
-
%t1879 =
|
1858
|
-
%t1880 =
|
1859
|
-
%t1881 =
|
1860
|
-
%t1882 =
|
1861
|
-
%t1883 =
|
1862
|
-
%t1884 = call core.
|
1863
|
-
%t1885 = call core.
|
1864
|
-
%t1886 = call core.and(%
|
1865
|
-
%t1887 =
|
1866
|
-
%t1888 =
|
1867
|
-
%t1889 =
|
1868
|
-
%t1890 =
|
1869
|
-
%t1891 =
|
1870
|
-
%t1892 =
|
1871
|
-
%t1893 =
|
1872
|
-
%t1894 =
|
1873
|
-
%t1895 =
|
1874
|
-
%t1896 =
|
1875
|
-
%t1897 =
|
1876
|
-
%t1898 =
|
1877
|
-
%t1899 =
|
1878
|
-
%t1900 = call core.
|
1879
|
-
%t1901 = call core.
|
1880
|
-
%t1902 =
|
1881
|
-
%t1903 =
|
1882
|
-
%t1904 =
|
1883
|
-
%t1905 =
|
1884
|
-
%t1906 =
|
1885
|
-
%t1907 =
|
1886
|
-
%t1908 =
|
1887
|
-
%t1909 =
|
1888
|
-
%t1910 =
|
1889
|
-
%t1911 =
|
1890
|
-
%t1912 = call core.
|
1891
|
-
%t1913 = call core.
|
1892
|
-
%t1914 = call core.and(%
|
1893
|
-
%t1915 =
|
1894
|
-
%t1916 =
|
1895
|
-
%t1917 =
|
1896
|
-
%t1918 =
|
1897
|
-
%t1919 =
|
1898
|
-
%t1920 =
|
1899
|
-
%t1921 =
|
1900
|
-
%t1922 =
|
1901
|
-
%t1923 =
|
1902
|
-
%t1924 =
|
1903
|
-
%
|
1904
|
-
%
|
1905
|
-
%
|
1906
|
-
%
|
1907
|
-
%
|
1908
|
-
%
|
1909
|
-
%
|
1910
|
-
%
|
1782
|
+
%t1831 = const 1 :: integer
|
1783
|
+
%t1832 = call core.sub(%t1824, %t1831) :: integer
|
1784
|
+
%t1833 = const 0 :: integer
|
1785
|
+
%t1834 = call core.clamp(%t1826, %t1833, %t1832) :: integer
|
1786
|
+
%t1835 = gather %t1823, %t1834 :: integer
|
1787
|
+
%t1836 = const 0 :: integer
|
1788
|
+
%t1837 = select %t1830, %t1835, %t1836 :: integer
|
1789
|
+
%t1838 = load_input "rows" :: array
|
1790
|
+
%t1839 = length %t1838 :: integer
|
1791
|
+
%t1840 = const -1 :: integer
|
1792
|
+
%t1841 = call core.sub(%rows_i_287, %t1840) :: integer
|
1793
|
+
%t1842 = const 0 :: integer
|
1794
|
+
%t1843 = call core.gte(%t1841, %t1842) :: boolean
|
1795
|
+
%t1844 = call core.lt(%t1841, %t1839) :: boolean
|
1796
|
+
%t1845 = call core.and(%t1843, %t1844) :: boolean
|
1797
|
+
%t1846 = const 1 :: integer
|
1798
|
+
%t1847 = call core.sub(%t1839, %t1846) :: integer
|
1799
|
+
%t1848 = const 0 :: integer
|
1800
|
+
%t1849 = call core.clamp(%t1841, %t1848, %t1847) :: integer
|
1801
|
+
%t1850 = gather %t1838, %t1849 :: any
|
1802
|
+
%t1851 = length %t1850 :: integer
|
1803
|
+
%t1852 = const -1 :: integer
|
1804
|
+
%t1853 = call core.sub(%col_i_289, %t1852) :: integer
|
1805
|
+
%t1854 = const 0 :: integer
|
1806
|
+
%t1855 = call core.gte(%t1853, %t1854) :: boolean
|
1807
|
+
%t1856 = call core.lt(%t1853, %t1851) :: boolean
|
1808
|
+
%t1857 = call core.and(%t1855, %t1856) :: boolean
|
1809
|
+
%t1858 = call core.and(%t1845, %t1857) :: boolean
|
1810
|
+
%t1859 = const 1 :: integer
|
1811
|
+
%t1860 = call core.sub(%t1851, %t1859) :: integer
|
1812
|
+
%t1861 = const 0 :: integer
|
1813
|
+
%t1862 = call core.clamp(%t1853, %t1861, %t1860) :: integer
|
1814
|
+
%t1863 = gather %t1850, %t1862 :: integer
|
1815
|
+
%t1864 = const 0 :: integer
|
1816
|
+
%t1865 = select %t1858, %t1863, %t1864 :: integer
|
1817
|
+
%t1866 = load_input "rows" :: array
|
1818
|
+
%t1867 = length %t1866 :: integer
|
1819
|
+
%t1868 = const -1 :: integer
|
1820
|
+
%t1869 = call core.sub(%rows_i_287, %t1868) :: integer
|
1821
|
+
%t1870 = const 0 :: integer
|
1822
|
+
%t1871 = call core.gte(%t1869, %t1870) :: boolean
|
1823
|
+
%t1872 = call core.lt(%t1869, %t1867) :: boolean
|
1824
|
+
%t1873 = call core.and(%t1871, %t1872) :: boolean
|
1825
|
+
%t1874 = const 1 :: integer
|
1826
|
+
%t1875 = call core.sub(%t1867, %t1874) :: integer
|
1827
|
+
%t1876 = const 0 :: integer
|
1828
|
+
%t1877 = call core.clamp(%t1869, %t1876, %t1875) :: integer
|
1829
|
+
%t1878 = gather %t1866, %t1877 :: any
|
1830
|
+
%t1879 = length %t1878 :: integer
|
1831
|
+
%t1880 = const 1 :: integer
|
1832
|
+
%t1881 = call core.sub(%col_i_289, %t1880) :: integer
|
1833
|
+
%t1882 = const 0 :: integer
|
1834
|
+
%t1883 = call core.gte(%t1881, %t1882) :: boolean
|
1835
|
+
%t1884 = call core.lt(%t1881, %t1879) :: boolean
|
1836
|
+
%t1885 = call core.and(%t1883, %t1884) :: boolean
|
1837
|
+
%t1886 = call core.and(%t1873, %t1885) :: boolean
|
1838
|
+
%t1887 = const 1 :: integer
|
1839
|
+
%t1888 = call core.sub(%t1879, %t1887) :: integer
|
1840
|
+
%t1889 = const 0 :: integer
|
1841
|
+
%t1890 = call core.clamp(%t1881, %t1889, %t1888) :: integer
|
1842
|
+
%t1891 = gather %t1878, %t1890 :: integer
|
1843
|
+
%t1892 = const 0 :: integer
|
1844
|
+
%t1893 = select %t1886, %t1891, %t1892 :: integer
|
1845
|
+
%t1894 = load_input "rows" :: array
|
1846
|
+
%t1895 = length %t1894 :: integer
|
1847
|
+
%t1896 = const 1 :: integer
|
1848
|
+
%t1897 = call core.sub(%rows_i_287, %t1896) :: integer
|
1849
|
+
%t1898 = const 0 :: integer
|
1850
|
+
%t1899 = call core.gte(%t1897, %t1898) :: boolean
|
1851
|
+
%t1900 = call core.lt(%t1897, %t1895) :: boolean
|
1852
|
+
%t1901 = call core.and(%t1899, %t1900) :: boolean
|
1853
|
+
%t1902 = const 1 :: integer
|
1854
|
+
%t1903 = call core.sub(%t1895, %t1902) :: integer
|
1855
|
+
%t1904 = const 0 :: integer
|
1856
|
+
%t1905 = call core.clamp(%t1897, %t1904, %t1903) :: integer
|
1857
|
+
%t1906 = gather %t1894, %t1905 :: any
|
1858
|
+
%t1907 = length %t1906 :: integer
|
1859
|
+
%t1908 = const -1 :: integer
|
1860
|
+
%t1909 = call core.sub(%col_i_289, %t1908) :: integer
|
1861
|
+
%t1910 = const 0 :: integer
|
1862
|
+
%t1911 = call core.gte(%t1909, %t1910) :: boolean
|
1863
|
+
%t1912 = call core.lt(%t1909, %t1907) :: boolean
|
1864
|
+
%t1913 = call core.and(%t1911, %t1912) :: boolean
|
1865
|
+
%t1914 = call core.and(%t1901, %t1913) :: boolean
|
1866
|
+
%t1915 = const 1 :: integer
|
1867
|
+
%t1916 = call core.sub(%t1907, %t1915) :: integer
|
1868
|
+
%t1917 = const 0 :: integer
|
1869
|
+
%t1918 = call core.clamp(%t1909, %t1917, %t1916) :: integer
|
1870
|
+
%t1919 = gather %t1906, %t1918 :: integer
|
1871
|
+
%t1920 = const 0 :: integer
|
1872
|
+
%t1921 = select %t1914, %t1919, %t1920 :: integer
|
1873
|
+
%t1922 = load_input "rows" :: array
|
1874
|
+
%t1923 = length %t1922 :: integer
|
1875
|
+
%t1924 = const 1 :: integer
|
1876
|
+
%t1925 = call core.sub(%rows_i_287, %t1924) :: integer
|
1877
|
+
%t1926 = const 0 :: integer
|
1878
|
+
%t1927 = call core.gte(%t1925, %t1926) :: boolean
|
1879
|
+
%t1928 = call core.lt(%t1925, %t1923) :: boolean
|
1880
|
+
%t1929 = call core.and(%t1927, %t1928) :: boolean
|
1881
|
+
%t1930 = const 1 :: integer
|
1882
|
+
%t1931 = call core.sub(%t1923, %t1930) :: integer
|
1883
|
+
%t1932 = const 0 :: integer
|
1884
|
+
%t1933 = call core.clamp(%t1925, %t1932, %t1931) :: integer
|
1885
|
+
%t1934 = gather %t1922, %t1933 :: any
|
1886
|
+
%t1935 = length %t1934 :: integer
|
1887
|
+
%t1936 = const 1 :: integer
|
1888
|
+
%t1937 = call core.sub(%col_i_289, %t1936) :: integer
|
1889
|
+
%t1938 = const 0 :: integer
|
1890
|
+
%t1939 = call core.gte(%t1937, %t1938) :: boolean
|
1891
|
+
%t1940 = call core.lt(%t1937, %t1935) :: boolean
|
1892
|
+
%t1941 = call core.and(%t1939, %t1940) :: boolean
|
1893
|
+
%t1942 = call core.and(%t1929, %t1941) :: boolean
|
1894
|
+
%t1943 = const 1 :: integer
|
1895
|
+
%t1944 = call core.sub(%t1935, %t1943) :: integer
|
1896
|
+
%t1945 = const 0 :: integer
|
1897
|
+
%t1946 = call core.clamp(%t1937, %t1945, %t1944) :: integer
|
1898
|
+
%t1947 = gather %t1934, %t1946 :: integer
|
1899
|
+
%t1948 = const 0 :: integer
|
1900
|
+
%t1949 = select %t1942, %t1947, %t1948 :: integer
|
1901
|
+
%t1756 = make_tuple(%t1777, %t1797, %t1817, %t1837, %t1865, %t1893, %t1921, %t1949) :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
1902
|
+
%t1757 = fold %t1756 fn="agg.sum" :: tuple<integer, integer, integer, integer, integer, integer, integer, integer>
|
1903
|
+
%t1745 = const 2 :: integer
|
1904
|
+
%t1746 = call core.eq(%t1757, %t1745) :: boolean
|
1905
|
+
%t1950 = load_input "rows" :: array
|
1906
|
+
%t1954 = load_input "rows" :: array
|
1907
|
+
%t1952 = const 0 :: integer
|
1908
|
+
%t1953 = call core.gt(%col_el_288, %t1952) :: boolean
|
1909
|
+
%t1742 = call core.and(%t1746, %t1953) :: boolean
|
1910
|
+
%t1531 = call core.or(%t1535, %t1742) :: boolean
|
1911
1911
|
%t291 = const 1 :: integer
|
1912
1912
|
%t292 = const 0 :: integer
|
1913
|
-
%t293 = select %
|
1913
|
+
%t293 = select %t1531, %t291, %t292 :: integer
|
1914
1914
|
yield %t293
|
1915
1915
|
end_loop
|
1916
1916
|
end_loop
|