(module $bitonic.wasm (type (;0;) (func (param i32 i32))) (type (;1;) (func)) (type (;2;) (func (param i32 i32 i32))) (type (;3;) (func (result i32))) (import "__pragma" "loopbound" (func $__pragma_loopbound (type 0))) (func $__wasm_apply_data_relocs (type 1)) (func $bitonic_merge (type 2) (param i32 i32 i32) (local i32 i32 i32 i32 i32 i32 i32 i32 i32) i32.const 0 i32.const 16 call $__pragma_loopbound block ;; label = @1 local.get 1 i32.const 2 i32.lt_s br_if 0 (;@1;) local.get 1 i32.const 1 i32.shr_u local.tee 3 local.get 0 i32.add local.set 4 loop ;; label = @2 local.get 4 local.set 5 local.get 0 i32.const 2 i32.shl local.set 4 local.get 3 local.tee 6 i32.const 2 i32.shl i32.const 1024 i32.add local.set 7 local.get 0 local.set 3 loop ;; label = @3 block ;; label = @4 local.get 4 i32.const 1024 i32.add local.tee 8 i32.load local.tee 9 local.get 7 local.get 4 i32.add local.tee 10 i32.load local.tee 11 i32.gt_s local.get 2 i32.ne br_if 0 (;@4;) local.get 8 local.get 11 i32.store local.get 10 local.get 9 i32.store end local.get 4 i32.const 4 i32.add local.set 4 local.get 3 i32.const 1 i32.add local.tee 3 local.get 5 i32.lt_s br_if 0 (;@3;) end local.get 1 i32.const 4 i32.lt_s br_if 1 (;@1;) local.get 0 local.get 6 local.get 2 call $bitonic_merge i32.const 0 i32.const 16 call $__pragma_loopbound local.get 6 i32.const 2 i32.div_s local.tee 3 local.get 5 i32.add local.set 4 local.get 6 local.set 1 local.get 5 local.set 0 local.get 6 i32.const 1 i32.gt_s br_if 0 (;@2;) end end) (func $bitonic_sort (type 2) (param i32 i32 i32) (local i32) block ;; label = @1 local.get 1 i32.const 2 i32.lt_s br_if 0 (;@1;) local.get 0 local.get 1 i32.const 1 i32.shr_u local.tee 3 i32.const 1 call $bitonic_sort local.get 3 local.get 0 i32.add local.get 3 i32.const 0 call $bitonic_sort end local.get 0 local.get 1 local.get 2 call $bitonic_merge) (func $bitonic_main (type 1) i32.const 0 i32.const 32 i32.const 1 call $bitonic_sort i32.const 32 i32.const 32 call $__pragma_loopbound) (func $__original_main (type 3) (result i32) i32.const 32 i32.const 32 call $__pragma_loopbound i32.const 0 i64.const 4294967298 i64.store offset=1144 i32.const 0 i64.const 12884901892 i64.store offset=1136 i32.const 0 i64.const 21474836486 i64.store offset=1128 i32.const 0 i64.const 30064771080 i64.store offset=1120 i32.const 0 i64.const 38654705674 i64.store offset=1112 i32.const 0 i64.const 47244640268 i64.store offset=1104 i32.const 0 i64.const 55834574862 i64.store offset=1096 i32.const 0 i64.const 64424509456 i64.store offset=1088 i32.const 0 i64.const 73014444050 i64.store offset=1080 i32.const 0 i64.const 81604378644 i64.store offset=1072 i32.const 0 i64.const 90194313238 i64.store offset=1064 i32.const 0 i64.const 98784247832 i64.store offset=1056 i32.const 0 i64.const 107374182426 i64.store offset=1048 i32.const 0 i64.const 115964117020 i64.store offset=1040 i32.const 0 i64.const 124554051614 i64.store offset=1032 i32.const 0 i64.const 133143986208 i64.store offset=1024 call $bitonic_main i32.const -1 i32.const 0 i32.const 0 i32.load offset=1108 i32.const 0 i32.load offset=1024 i32.add i32.const 0 i32.load offset=1148 i32.add i32.const 55 i32.ne select) (table (;0;) 1 1 funcref) (memory (;0;) 1) (global $__stack_pointer (mut i32) (i32.const 5248)) (global (;1;) i32 (i32.const 1152)) (global (;2;) i32 (i32.const 5248)) (export "memory" (memory 0)) (export "__wasm_apply_data_relocs" (func $__wasm_apply_data_relocs)) (export "entrypoint" (func $bitonic_main)) (export "main" (func $__original_main)) (export "__data_end" (global 1)) (export "__heap_base" (global 2)))