summaryrefslogtreecommitdiff
path: root/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.txt
diff options
context:
space:
mode:
Diffstat (limited to 'test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.txt')
-rw-r--r--test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.txt1540
1 files changed, 1540 insertions, 0 deletions
diff --git a/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.txt b/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.txt
new file mode 100644
index 000000000..11c33366c
--- /dev/null
+++ b/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.txt
@@ -0,0 +1,1540 @@
+$big_negative:
+0 const (f64)
+1 set_local (none)
+2 const (f64)
+3 set_local (none)
+4 const (f64)
+5 set_local (none)
+6 const (f64)
+7 set_local (none)
+8 const (f64)
+9 set_local (none)
+
+$importedDoubles:
+0 block
+1 const (i32)
+2 load (f64)
+3 const (i32)
+4 load (f64)
+5 binary (f64)
+6 const (i32)
+7 load (f64)
+8 unary (f64)
+9 binary (f64)
+10 const (i32)
+11 load (f64)
+12 unary (f64)
+13 binary (f64)
+14 set_local (none)
+15 const (i32)
+16 load (i32)
+17 const (i32)
+18 binary (i32)
+19 if
+20 const (f64)
+21 break (unreachable)
+22 end (none)
+23 const (i32)
+24 load (f64)
+25 const (f64)
+26 binary (i32)
+27 if
+28 const (f64)
+29 break (unreachable)
+30 end (none)
+31 const (f64)
+32 end (f64)
+
+$doubleCompares:
+0 block
+1 get_local (f64)
+2 const (f64)
+3 binary (i32)
+4 if
+5 const (f64)
+6 break (unreachable)
+7 end (none)
+8 get_local (f64)
+9 const (f64)
+10 binary (i32)
+11 if
+12 const (f64)
+13 break (unreachable)
+14 end (none)
+15 get_local (i32)
+16 const (i32)
+17 binary (i32)
+18 if
+19 const (f64)
+20 break (unreachable)
+21 end (none)
+22 get_local (f64)
+23 get_local (f64)
+24 binary (i32)
+25 if
+26 get_local (f64)
+27 break (unreachable)
+28 end (none)
+29 get_local (f64)
+30 end (f64)
+
+$intOps:
+0 get_local (i32)
+1 const (i32)
+2 binary (i32)
+
+$hexLiterals:
+0 const (i32)
+1 const (i32)
+2 binary (i32)
+3 const (i32)
+4 binary (i32)
+5 drop (none)
+
+$conversions:
+0 get_local (f64)
+1 call_import (i32)
+2 set_local (none)
+3 get_local (i32)
+4 unary (f64)
+5 set_local (none)
+6 get_local (i32)
+7 const (i32)
+8 binary (i32)
+9 unary (f64)
+10 set_local (none)
+
+$seq:
+0 const (f64)
+1 drop (none)
+2 const (f64)
+3 const (f64)
+4 drop (none)
+5 const (f64)
+6 binary (f64)
+7 set_local (none)
+
+$switcher:
+0 block
+1 block
+2 block
+3 block
+4 get_local (i32)
+5 const (i32)
+6 binary (i32)
+7 switch (unreachable)
+8 end (none)
+9 const (i32)
+10 break (unreachable)
+11 end (none)
+12 const (i32)
+13 break (unreachable)
+14 end (none)
+15 nop (none)
+16 block
+17 block
+18 block
+19 get_local (i32)
+20 const (i32)
+21 binary (i32)
+22 switch (unreachable)
+23 end (none)
+24 const (i32)
+25 break (unreachable)
+26 end (none)
+27 const (i32)
+28 break (unreachable)
+29 end (none)
+30 nop (none)
+31 block
+32 block
+33 block
+34 block
+35 block
+36 block
+37 get_local (i32)
+38 const (i32)
+39 binary (i32)
+40 switch (unreachable)
+41 end (none)
+42 break (unreachable)
+43 end (none)
+44 break (unreachable)
+45 end (none)
+46 block
+47 loop
+48 break (unreachable)
+49 end (none)
+50 unreachable (unreachable)
+51 end (none)
+52 end (none)
+53 loop
+54 break (unreachable)
+55 end (none)
+56 unreachable (unreachable)
+57 end (none)
+58 nop (none)
+59 end (none)
+60 const (i32)
+61 end (i32)
+
+$blocker:
+0 block
+1 break (unreachable)
+2 end (none)
+
+$frem:
+0 const (f64)
+1 const (f64)
+2 call_import (f64)
+
+$big_uint_div_u:
+0 const (i32)
+1 const (i32)
+2 binary (i32)
+3 const (i32)
+4 binary (i32)
+
+$fr:
+0 get_local (f64)
+1 unary (f32)
+2 drop (none)
+3 get_local (f32)
+4 drop (none)
+5 const (f32)
+6 drop (none)
+7 const (f32)
+8 drop (none)
+9 const (f32)
+10 drop (none)
+11 const (f32)
+12 drop (none)
+
+$negZero:
+0 const (f64)
+
+$abs:
+0 const (i32)
+1 set_local (none)
+2 const (i32)
+3 get_local (i32)
+4 binary (i32)
+5 get_local (i32)
+6 get_local (i32)
+7 const (i32)
+8 binary (i32)
+9 select (i32)
+10 set_local (none)
+11 const (f64)
+12 unary (f64)
+13 set_local (none)
+14 const (f32)
+15 unary (f32)
+16 set_local (none)
+
+$neg:
+0 get_local (f32)
+1 unary (f32)
+2 const (i32)
+3 const (i32)
+4 binary (i32)
+5 const (i32)
+6 binary (i32)
+7 call_indirect (none)
+
+$cneg:
+0 get_local (f32)
+1 const (i32)
+2 const (i32)
+3 binary (i32)
+4 const (i32)
+5 binary (i32)
+6 call_indirect (none)
+
+$___syscall_ret:
+0 get_local (i32)
+1 const (i32)
+2 binary (i32)
+3 const (i32)
+4 binary (i32)
+5 drop (none)
+
+$z:
+0 nop (none)
+
+$w:
+0 nop (none)
+
+$block_and_after:
+0 block
+1 const (i32)
+2 drop (none)
+3 break (unreachable)
+4 end (none)
+5 const (i32)
+
+$loop-roundtrip:
+0 loop
+1 get_local (f64)
+2 drop (none)
+3 get_local (f64)
+4 end (f64)
+
+$big-i64:
+0 const (i64)
+
+$i64-store32:
+0 get_local (i32)
+1 get_local (i64)
+2 store (none)
+
+$return-unreachable:
+0 const (i32)
+1 return (unreachable)
+
+$unreachable-block:
+0 const (i32)
+1 drop (none)
+2 const (i32)
+3 return (unreachable)
+
+$unreachable-block-toplevel:
+0 const (i32)
+1 drop (none)
+2 const (i32)
+3 return (unreachable)
+
+$unreachable-block0:
+0 const (i32)
+1 return (unreachable)
+
+$unreachable-block0-toplevel:
+0 const (i32)
+1 return (unreachable)
+
+$unreachable-block-with-br:
+0 block
+1 const (i32)
+2 drop (none)
+3 break (unreachable)
+4 end (none)
+5 const (i32)
+
+$unreachable-if:
+0 const (i32)
+1 if
+2 const (i32)
+3 return (unreachable)
+4 else
+5 const (i32)
+6 return (unreachable)
+7 end (none)
+8 unreachable (unreachable)
+
+$unreachable-if-toplevel:
+0 const (i32)
+1 if
+2 const (i32)
+3 return (unreachable)
+4 else
+5 const (i32)
+6 return (unreachable)
+7 end (none)
+8 unreachable (unreachable)
+
+$unreachable-loop:
+0 loop
+1 nop (none)
+2 const (i32)
+3 return (unreachable)
+4 end (none)
+5 unreachable (unreachable)
+
+$unreachable-loop0:
+0 loop
+1 const (i32)
+2 return (unreachable)
+3 end (none)
+4 unreachable (unreachable)
+
+$unreachable-loop-toplevel:
+0 loop
+1 nop (none)
+2 const (i32)
+3 return (unreachable)
+4 end (none)
+5 unreachable (unreachable)
+
+$unreachable-loop0-toplevel:
+0 loop
+1 const (i32)
+2 return (unreachable)
+3 end (none)
+4 unreachable (unreachable)
+
+$unreachable-ifs:
+0 unreachable (unreachable)
+
+$unreachable-if-arm:
+0 const (i32)
+1 if
+2 nop (none)
+3 else
+4 unreachable (unreachable)
+5 end (none)
+
+$local-to-stack:
+0 const (i32)
+1 call (i32)
+2 const (i32)
+3 call (i32)
+4 drop (none)
+
+$local-to-stack-1:
+0 const (i32)
+1 call (i32)
+2 const (i32)
+3 call (i32)
+4 drop (none)
+5 unary (i32)
+
+$local-to-stack-1b:
+0 const (i32)
+1 call (i32)
+2 const (i32)
+3 call (i32)
+4 drop (none)
+5 const (i32)
+6 binary (i32)
+
+$local-to-stack-1c-no:
+0 const (i32)
+1 call (i32)
+2 set_local (none)
+3 const (i32)
+4 call (i32)
+5 drop (none)
+6 const (i32)
+7 get_local (i32)
+8 binary (i32)
+
+$local-to-stack-2-no:
+0 const (i32)
+1 call (i32)
+2 set_local (none)
+3 const (i32)
+4 call (i32)
+5 drop (none)
+6 get_local (i32)
+7 get_local (i32)
+8 binary (i32)
+
+$local-to-stack-3-no:
+0 const (i32)
+1 if
+2 const (i32)
+3 call (i32)
+4 set_local (none)
+5 else
+6 const (i32)
+7 call (i32)
+8 set_local (none)
+9 end (none)
+10 const (i32)
+11 call (i32)
+12 drop (none)
+13 get_local (i32)
+
+$local-to-stack-multi-4:
+0 const (i32)
+1 call (i32)
+2 const (i32)
+3 call (i32)
+4 drop (none)
+5 drop (none)
+6 const (i32)
+7 call (i32)
+8 const (i32)
+9 call (i32)
+10 drop (none)
+
+$local-to-stack-multi-5:
+0 const (i32)
+1 call (i32)
+2 const (i32)
+3 call (i32)
+4 drop (none)
+5 drop (none)
+6 const (i32)
+7 call (i32)
+8 const (i32)
+9 call (i32)
+10 drop (none)
+
+$local-to-stack-multi-6-justone:
+0 const (i32)
+1 call (i32)
+2 const (i32)
+3 call (i32)
+4 drop (none)
+5 drop (none)
+6 const (i32)
+7 call (i32)
+8 set_local (none)
+9 const (i32)
+10 call (i32)
+11 drop (none)
+12 get_local (i32)
+13 get_local (i32)
+14 binary (i32)
+
+$local-to-stack-multi-7-justone:
+0 const (i32)
+1 call (i32)
+2 set_local (none)
+3 const (i32)
+4 call (i32)
+5 drop (none)
+6 get_local (i32)
+7 get_local (i32)
+8 binary (i32)
+9 drop (none)
+10 const (i32)
+11 call (i32)
+12 const (i32)
+13 call (i32)
+14 drop (none)
+
+$local-to-stack-overlapping-multi-8-no:
+0 const (i32)
+1 call (i32)
+2 set_local (none)
+3 const (i32)
+4 call (i32)
+5 const (i32)
+6 call (i32)
+7 drop (none)
+8 get_local (i32)
+9 binary (i32)
+
+$local-to-stack-overlapping-multi-9-yes:
+0 const (i32)
+1 call (i32)
+2 const (i32)
+3 call (i32)
+4 const (i32)
+5 call (i32)
+6 drop (none)
+7 binary (i32)
+
+$local-to-stack-through-control-flow:
+0 const (i32)
+1 call (i32)
+2 const (i32)
+3 call (i32)
+4 const (i32)
+5 if
+6 nop (none)
+7 end (none)
+8 drop (none)
+9 const (i32)
+10 call (i32)
+11 block
+12 break (unreachable)
+13 end (none)
+14 drop (none)
+15 drop (none)
+
+$local-to-stack-in-control-flow:
+0 const (i32)
+1 if
+2 const (i32)
+3 call (i32)
+4 drop (none)
+5 else
+6 const (i32)
+7 call (i32)
+8 drop (none)
+9 end (none)
+
+$remove-block:
+0 const (i32)
+1 call (i32)
+2 const (i32)
+3 call (i32)
+4 const (i32)
+5 call (i32)
+6 drop (none)
+7 unary (i32)
+8 binary (i32)
+
+(module
+ (type $FUNCSIG$vf (func (param f32)))
+ (type $FUNCSIG$v (func))
+ (type $FUNCSIG$id (func (param f64) (result i32)))
+ (type $FUNCSIG$ddd (func (param f64 f64) (result f64)))
+ (type $4 (func (result f64)))
+ (type $5 (func (result i32)))
+ (type $6 (func (param i32) (result i32)))
+ (type $7 (func (param f64) (result f64)))
+ (type $8 (func (result i64)))
+ (type $9 (func (param i32 i64)))
+ (import "env" "_emscripten_asm_const_vi" (func $_emscripten_asm_const_vi))
+ (import "asm2wasm" "f64-to-int" (func $f64-to-int (param f64) (result i32)))
+ (import "asm2wasm" "f64-rem" (func $f64-rem (param f64 f64) (result f64)))
+ (table 10 anyfunc)
+ (elem (i32.const 0) $z $big_negative $z $z $w $w $importedDoubles $w $z $cneg)
+ (memory $0 4096 4096)
+ (data (i32.const 1026) "\14\00")
+ (export "big_negative" (func $big_negative))
+ (func $big_negative (; 3 ;) (; has Stack IR ;) (type $FUNCSIG$v)
+ (local $temp f64)
+ (block $block0
+ (set_local $temp
+ (f64.const -2147483648)
+ )
+ (set_local $temp
+ (f64.const -2147483648)
+ )
+ (set_local $temp
+ (f64.const -21474836480)
+ )
+ (set_local $temp
+ (f64.const 0.039625)
+ )
+ (set_local $temp
+ (f64.const -0.039625)
+ )
+ )
+ )
+ (func $importedDoubles (; 4 ;) (; has Stack IR ;) (type $4) (result f64)
+ (local $temp f64)
+ (block $topmost (result f64)
+ (set_local $temp
+ (f64.add
+ (f64.add
+ (f64.add
+ (f64.load
+ (i32.const 8)
+ )
+ (f64.load
+ (i32.const 16)
+ )
+ )
+ (f64.neg
+ (f64.load
+ (i32.const 16)
+ )
+ )
+ )
+ (f64.neg
+ (f64.load
+ (i32.const 8)
+ )
+ )
+ )
+ )
+ (if
+ (i32.gt_s
+ (i32.load
+ (i32.const 24)
+ )
+ (i32.const 0)
+ )
+ (br $topmost
+ (f64.const -3.4)
+ )
+ )
+ (if
+ (f64.gt
+ (f64.load
+ (i32.const 32)
+ )
+ (f64.const 0)
+ )
+ (br $topmost
+ (f64.const 5.6)
+ )
+ )
+ (f64.const 1.2)
+ )
+ )
+ (func $doubleCompares (; 5 ;) (; has Stack IR ;) (type $FUNCSIG$ddd) (param $x f64) (param $y f64) (result f64)
+ (local $t f64)
+ (local $Int f64)
+ (local $Double i32)
+ (block $topmost (result f64)
+ (if
+ (f64.gt
+ (get_local $x)
+ (f64.const 0)
+ )
+ (br $topmost
+ (f64.const 1.2)
+ )
+ )
+ (if
+ (f64.gt
+ (get_local $Int)
+ (f64.const 0)
+ )
+ (br $topmost
+ (f64.const -3.4)
+ )
+ )
+ (if
+ (i32.gt_s
+ (get_local $Double)
+ (i32.const 0)
+ )
+ (br $topmost
+ (f64.const 5.6)
+ )
+ )
+ (if
+ (f64.lt
+ (get_local $x)
+ (get_local $y)
+ )
+ (br $topmost
+ (get_local $x)
+ )
+ )
+ (get_local $y)
+ )
+ )
+ (func $intOps (; 6 ;) (; has Stack IR ;) (type $5) (result i32)
+ (local $x i32)
+ (i32.eq
+ (get_local $x)
+ (i32.const 0)
+ )
+ )
+ (func $hexLiterals (; 7 ;) (; has Stack IR ;) (type $FUNCSIG$v)
+ (drop
+ (i32.add
+ (i32.add
+ (i32.const 0)
+ (i32.const 313249263)
+ )
+ (i32.const -19088752)
+ )
+ )
+ )
+ (func $conversions (; 8 ;) (; has Stack IR ;) (type $FUNCSIG$v)
+ (local $i i32)
+ (local $d f64)
+ (block $block0
+ (set_local $i
+ (call $f64-to-int
+ (get_local $d)
+ )
+ )
+ (set_local $d
+ (f64.convert_s/i32
+ (get_local $i)
+ )
+ )
+ (set_local $d
+ (f64.convert_u/i32
+ (i32.shr_u
+ (get_local $i)
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ )
+ (func $seq (; 9 ;) (; has Stack IR ;) (type $FUNCSIG$v)
+ (local $J f64)
+ (set_local $J
+ (f64.sub
+ (block $block0 (result f64)
+ (drop
+ (f64.const 0.1)
+ )
+ (f64.const 5.1)
+ )
+ (block $block1 (result f64)
+ (drop
+ (f64.const 3.2)
+ )
+ (f64.const 4.2)
+ )
+ )
+ )
+ )
+ (func $switcher (; 10 ;) (; has Stack IR ;) (type $6) (param $x i32) (result i32)
+ (block $topmost (result i32)
+ (block $switch$0
+ (block $switch-default$3
+ (block $switch-case$2
+ (block $switch-case$1
+ (br_table $switch-case$1 $switch-case$2 $switch-default$3
+ (i32.sub
+ (get_local $x)
+ (i32.const 1)
+ )
+ )
+ )
+ (br $topmost
+ (i32.const 1)
+ )
+ )
+ (br $topmost
+ (i32.const 2)
+ )
+ )
+ (nop)
+ )
+ (block $switch$4
+ (block $switch-default$7
+ (block $switch-case$6
+ (block $switch-case$5
+ (br_table $switch-case$6 $switch-default$7 $switch-default$7 $switch-default$7 $switch-default$7 $switch-default$7 $switch-default$7 $switch-case$5 $switch-default$7
+ (i32.sub
+ (get_local $x)
+ (i32.const 5)
+ )
+ )
+ )
+ (br $topmost
+ (i32.const 121)
+ )
+ )
+ (br $topmost
+ (i32.const 51)
+ )
+ )
+ (nop)
+ )
+ (block $label$break$Lout
+ (block $switch-default$16
+ (block $switch-case$15
+ (block $switch-case$12
+ (block $switch-case$9
+ (block $switch-case$8
+ (br_table $switch-case$15 $switch-default$16 $switch-default$16 $switch-case$12 $switch-default$16 $switch-default$16 $switch-default$16 $switch-default$16 $switch-case$9 $switch-default$16 $switch-case$8 $switch-default$16
+ (i32.sub
+ (get_local $x)
+ (i32.const 2)
+ )
+ )
+ )
+ (br $label$break$Lout)
+ )
+ (br $label$break$Lout)
+ )
+ (block $while-out$10
+ (loop $while-in$11
+ (block $block1
+ (br $while-out$10)
+ (br $while-in$11)
+ )
+ )
+ (br $label$break$Lout)
+ )
+ )
+ (block $while-out$13
+ (loop $while-in$14
+ (block $block3
+ (br $label$break$Lout)
+ (br $while-in$14)
+ )
+ )
+ (br $label$break$Lout)
+ )
+ )
+ (nop)
+ )
+ (i32.const 0)
+ )
+ )
+ (func $blocker (; 11 ;) (; has Stack IR ;) (type $FUNCSIG$v)
+ (block $label$break$L
+ (br $label$break$L)
+ )
+ )
+ (func $frem (; 12 ;) (; has Stack IR ;) (type $4) (result f64)
+ (call $f64-rem
+ (f64.const 5.5)
+ (f64.const 1.2)
+ )
+ )
+ (func $big_uint_div_u (; 13 ;) (; has Stack IR ;) (type $5) (result i32)
+ (local $x i32)
+ (block $topmost (result i32)
+ (set_local $x
+ (i32.and
+ (i32.div_u
+ (i32.const -1)
+ (i32.const 2)
+ )
+ (i32.const -1)
+ )
+ )
+ (get_local $x)
+ )
+ )
+ (func $fr (; 14 ;) (; has Stack IR ;) (type $FUNCSIG$vf) (param $x f32)
+ (local $y f32)
+ (local $z f64)
+ (block $block0
+ (drop
+ (f32.demote/f64
+ (get_local $z)
+ )
+ )
+ (drop
+ (get_local $y)
+ )
+ (drop
+ (f32.const 5)
+ )
+ (drop
+ (f32.const 0)
+ )
+ (drop
+ (f32.const 5)
+ )
+ (drop
+ (f32.const 0)
+ )
+ )
+ )
+ (func $negZero (; 15 ;) (; has Stack IR ;) (type $4) (result f64)
+ (f64.const -0)
+ )
+ (func $abs (; 16 ;) (; has Stack IR ;) (type $FUNCSIG$v)
+ (local $x i32)
+ (local $y f64)
+ (local $z f32)
+ (local $asm2wasm_i32_temp i32)
+ (block $block0
+ (set_local $x
+ (block $block1 (result i32)
+ (set_local $asm2wasm_i32_temp
+ (i32.const 0)
+ )
+ (select
+ (i32.sub
+ (i32.const 0)
+ (get_local $asm2wasm_i32_temp)
+ )
+ (get_local $asm2wasm_i32_temp)
+ (i32.lt_s
+ (get_local $asm2wasm_i32_temp)
+ (i32.const 0)
+ )
+ )
+ )
+ )
+ (set_local $y
+ (f64.abs
+ (f64.const 0)
+ )
+ )
+ (set_local $z
+ (f32.abs
+ (f32.const 0)
+ )
+ )
+ )
+ )
+ (func $neg (; 17 ;) (; has Stack IR ;) (type $FUNCSIG$v)
+ (local $x f32)
+ (block $block0
+ (set_local $x
+ (f32.neg
+ (get_local $x)
+ )
+ )
+ (call_indirect (type $FUNCSIG$vf)
+ (get_local $x)
+ (i32.add
+ (i32.and
+ (i32.const 1)
+ (i32.const 7)
+ )
+ (i32.const 8)
+ )
+ )
+ )
+ )
+ (func $cneg (; 18 ;) (; has Stack IR ;) (type $FUNCSIG$vf) (param $x f32)
+ (call_indirect (type $FUNCSIG$vf)
+ (get_local $x)
+ (i32.add
+ (i32.and
+ (i32.const 1)
+ (i32.const 7)
+ )
+ (i32.const 8)
+ )
+ )
+ )
+ (func $___syscall_ret (; 19 ;) (; has Stack IR ;) (type $FUNCSIG$v)
+ (local $$0 i32)
+ (drop
+ (i32.gt_u
+ (i32.shr_u
+ (get_local $$0)
+ (i32.const 0)
+ )
+ (i32.const -4096)
+ )
+ )
+ )
+ (func $z (; 20 ;) (; has Stack IR ;) (type $FUNCSIG$v)
+ (nop)
+ )
+ (func $w (; 21 ;) (; has Stack IR ;) (type $FUNCSIG$v)
+ (nop)
+ )
+ (func $block_and_after (; 22 ;) (; has Stack IR ;) (type $5) (result i32)
+ (block $waka
+ (drop
+ (i32.const 1)
+ )
+ (br $waka)
+ )
+ (i32.const 0)
+ )
+ (func $loop-roundtrip (; 23 ;) (; has Stack IR ;) (type $7) (param $0 f64) (result f64)
+ (loop $loop-in1 (result f64)
+ (drop
+ (get_local $0)
+ )
+ (get_local $0)
+ )
+ )
+ (func $big-i64 (; 24 ;) (; has Stack IR ;) (type $8) (result i64)
+ (i64.const -9218868437227405313)
+ )
+ (func $i64-store32 (; 25 ;) (; has Stack IR ;) (type $9) (param $0 i32) (param $1 i64)
+ (i64.store32
+ (get_local $0)
+ (get_local $1)
+ )
+ )
+ (func $return-unreachable (; 26 ;) (; has Stack IR ;) (type $5) (result i32)
+ (return
+ (i32.const 1)
+ )
+ )
+ (func $unreachable-block (; 27 ;) (; has Stack IR ;) (type $5) (result i32)
+ (f64.abs
+ (block $block
+ (drop
+ (i32.const 1)
+ )
+ (return
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ (func $unreachable-block-toplevel (; 28 ;) (; has Stack IR ;) (type $5) (result i32)
+ (block $block
+ (drop
+ (i32.const 1)
+ )
+ (return
+ (i32.const 2)
+ )
+ )
+ )
+ (func $unreachable-block0 (; 29 ;) (; has Stack IR ;) (type $5) (result i32)
+ (f64.abs
+ (block $block
+ (return
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ (func $unreachable-block0-toplevel (; 30 ;) (; has Stack IR ;) (type $5) (result i32)
+ (block $block
+ (return
+ (i32.const 2)
+ )
+ )
+ )
+ (func $unreachable-block-with-br (; 31 ;) (; has Stack IR ;) (type $5) (result i32)
+ (block $block
+ (drop
+ (i32.const 1)
+ )
+ (br $block)
+ )
+ (i32.const 1)
+ )
+ (func $unreachable-if (; 32 ;) (; has Stack IR ;) (type $5) (result i32)
+ (f64.abs
+ (if
+ (i32.const 3)
+ (return
+ (i32.const 2)
+ )
+ (return
+ (i32.const 1)
+ )
+ )
+ )
+ )
+ (func $unreachable-if-toplevel (; 33 ;) (; has Stack IR ;) (type $5) (result i32)
+ (if
+ (i32.const 3)
+ (return
+ (i32.const 2)
+ )
+ (return
+ (i32.const 1)
+ )
+ )
+ )
+ (func $unreachable-loop (; 34 ;) (; has Stack IR ;) (type $5) (result i32)
+ (f64.abs
+ (loop $loop-in
+ (nop)
+ (return
+ (i32.const 1)
+ )
+ )
+ )
+ )
+ (func $unreachable-loop0 (; 35 ;) (; has Stack IR ;) (type $5) (result i32)
+ (f64.abs
+ (loop $loop-in
+ (return
+ (i32.const 1)
+ )
+ )
+ )
+ )
+ (func $unreachable-loop-toplevel (; 36 ;) (; has Stack IR ;) (type $5) (result i32)
+ (loop $loop-in
+ (nop)
+ (return
+ (i32.const 1)
+ )
+ )
+ )
+ (func $unreachable-loop0-toplevel (; 37 ;) (; has Stack IR ;) (type $5) (result i32)
+ (loop $loop-in
+ (return
+ (i32.const 1)
+ )
+ )
+ )
+ (func $unreachable-ifs (; 38 ;) (; has Stack IR ;) (type $FUNCSIG$v)
+ (if
+ (unreachable)
+ (nop)
+ )
+ (if
+ (unreachable)
+ (unreachable)
+ )
+ (if
+ (unreachable)
+ (nop)
+ (nop)
+ )
+ (if
+ (unreachable)
+ (unreachable)
+ (nop)
+ )
+ (if
+ (unreachable)
+ (nop)
+ (unreachable)
+ )
+ (if
+ (unreachable)
+ (unreachable)
+ (unreachable)
+ )
+ (if
+ (i32.const 1)
+ (unreachable)
+ (nop)
+ )
+ (if
+ (i32.const 1)
+ (nop)
+ (unreachable)
+ )
+ (if
+ (i32.const 1)
+ (unreachable)
+ (unreachable)
+ )
+ )
+ (func $unreachable-if-arm (; 39 ;) (; has Stack IR ;) (type $FUNCSIG$v)
+ (if
+ (i32.const 1)
+ (block $block
+ (nop)
+ )
+ (block $block12
+ (unreachable)
+ (drop
+ (i32.const 1)
+ )
+ )
+ )
+ )
+ (func $local-to-stack (; 40 ;) (; has Stack IR ;) (type $6) (param $x i32) (result i32)
+ (local $temp i32)
+ (set_local $temp
+ (call $local-to-stack
+ (i32.const 1)
+ )
+ )
+ (drop
+ (call $local-to-stack
+ (i32.const 2)
+ )
+ )
+ (get_local $temp)
+ )
+ (func $local-to-stack-1 (; 41 ;) (; has Stack IR ;) (type $6) (param $x i32) (result i32)
+ (local $temp i32)
+ (set_local $temp
+ (call $local-to-stack
+ (i32.const 1)
+ )
+ )
+ (drop
+ (call $local-to-stack
+ (i32.const 2)
+ )
+ )
+ (i32.eqz
+ (get_local $temp)
+ )
+ )
+ (func $local-to-stack-1b (; 42 ;) (; has Stack IR ;) (type $6) (param $x i32) (result i32)
+ (local $temp i32)
+ (set_local $temp
+ (call $local-to-stack
+ (i32.const 1)
+ )
+ )
+ (drop
+ (call $local-to-stack
+ (i32.const 2)
+ )
+ )
+ (i32.add
+ (get_local $temp)
+ (i32.const 3)
+ )
+ )
+ (func $local-to-stack-1c-no (; 43 ;) (; has Stack IR ;) (type $6) (param $x i32) (result i32)
+ (local $temp i32)
+ (set_local $temp
+ (call $local-to-stack
+ (i32.const 1)
+ )
+ )
+ (drop
+ (call $local-to-stack
+ (i32.const 2)
+ )
+ )
+ (i32.add
+ (i32.const 3)
+ (get_local $temp)
+ )
+ )
+ (func $local-to-stack-2-no (; 44 ;) (; has Stack IR ;) (type $6) (param $x i32) (result i32)
+ (local $temp i32)
+ (set_local $temp
+ (call $local-to-stack
+ (i32.const 1)
+ )
+ )
+ (drop
+ (call $local-to-stack
+ (i32.const 2)
+ )
+ )
+ (i32.add
+ (get_local $temp)
+ (get_local $temp)
+ )
+ )
+ (func $local-to-stack-3-no (; 45 ;) (; has Stack IR ;) (type $6) (param $x i32) (result i32)
+ (local $temp i32)
+ (if
+ (i32.const 1)
+ (set_local $temp
+ (call $local-to-stack
+ (i32.const 1)
+ )
+ )
+ (set_local $temp
+ (call $local-to-stack
+ (i32.const 2)
+ )
+ )
+ )
+ (drop
+ (call $local-to-stack
+ (i32.const 3)
+ )
+ )
+ (get_local $temp)
+ )
+ (func $local-to-stack-multi-4 (; 46 ;) (; has Stack IR ;) (type $6) (param $x i32) (result i32)
+ (local $temp1 i32)
+ (local $temp2 i32)
+ (set_local $temp1
+ (call $local-to-stack-multi-4
+ (i32.const 1)
+ )
+ )
+ (drop
+ (call $local-to-stack-multi-4
+ (i32.const 2)
+ )
+ )
+ (drop
+ (get_local $temp1)
+ )
+ (set_local $temp1
+ (call $local-to-stack-multi-4
+ (i32.const 3)
+ )
+ )
+ (drop
+ (call $local-to-stack-multi-4
+ (i32.const 4)
+ )
+ )
+ (get_local $temp1)
+ )
+ (func $local-to-stack-multi-5 (; 47 ;) (; has Stack IR ;) (type $6) (param $x i32) (result i32)
+ (local $temp1 i32)
+ (local $temp2 i32)
+ (set_local $temp1
+ (call $local-to-stack-multi-4
+ (i32.const 1)
+ )
+ )
+ (drop
+ (call $local-to-stack-multi-4
+ (i32.const 2)
+ )
+ )
+ (drop
+ (get_local $temp1)
+ )
+ (set_local $temp2
+ (call $local-to-stack-multi-4
+ (i32.const 3)
+ )
+ )
+ (drop
+ (call $local-to-stack-multi-4
+ (i32.const 4)
+ )
+ )
+ (get_local $temp2)
+ )
+ (func $local-to-stack-multi-6-justone (; 48 ;) (; has Stack IR ;) (type $6) (param $x i32) (result i32)
+ (local $temp1 i32)
+ (local $temp2 i32)
+ (set_local $temp1
+ (call $local-to-stack-multi-4
+ (i32.const 1)
+ )
+ )
+ (drop
+ (call $local-to-stack-multi-4
+ (i32.const 2)
+ )
+ )
+ (drop
+ (get_local $temp1)
+ )
+ (set_local $temp2
+ (call $local-to-stack-multi-4
+ (i32.const 3)
+ )
+ )
+ (drop
+ (call $local-to-stack-multi-4
+ (i32.const 4)
+ )
+ )
+ (i32.add
+ (get_local $temp2)
+ (get_local $temp2)
+ )
+ )
+ (func $local-to-stack-multi-7-justone (; 49 ;) (; has Stack IR ;) (type $6) (param $x i32) (result i32)
+ (local $temp1 i32)
+ (local $temp2 i32)
+ (set_local $temp1
+ (call $local-to-stack-multi-4
+ (i32.const 1)
+ )
+ )
+ (drop
+ (call $local-to-stack-multi-4
+ (i32.const 2)
+ )
+ )
+ (drop
+ (i32.add
+ (get_local $temp1)
+ (get_local $temp1)
+ )
+ )
+ (set_local $temp2
+ (call $local-to-stack-multi-4
+ (i32.const 3)
+ )
+ )
+ (drop
+ (call $local-to-stack-multi-4
+ (i32.const 4)
+ )
+ )
+ (get_local $temp2)
+ )
+ (func $local-to-stack-overlapping-multi-8-no (; 50 ;) (; has Stack IR ;) (type $6) (param $x i32) (result i32)
+ (local $temp1 i32)
+ (local $temp2 i32)
+ (set_local $temp1
+ (call $local-to-stack-multi-4
+ (i32.const 1)
+ )
+ )
+ (set_local $temp2
+ (call $local-to-stack-multi-4
+ (i32.const 1)
+ )
+ )
+ (drop
+ (call $local-to-stack-multi-4
+ (i32.const 3)
+ )
+ )
+ (i32.add
+ (get_local $temp2)
+ (get_local $temp1)
+ )
+ )
+ (func $local-to-stack-overlapping-multi-9-yes (; 51 ;) (; has Stack IR ;) (type $6) (param $x i32) (result i32)
+ (local $temp1 i32)
+ (local $temp2 i32)
+ (set_local $temp1
+ (call $local-to-stack-multi-4
+ (i32.const 1)
+ )
+ )
+ (set_local $temp2
+ (call $local-to-stack-multi-4
+ (i32.const 1)
+ )
+ )
+ (drop
+ (call $local-to-stack-multi-4
+ (i32.const 3)
+ )
+ )
+ (i32.add
+ (get_local $temp1)
+ (get_local $temp2)
+ )
+ )
+ (func $local-to-stack-through-control-flow (; 52 ;) (; has Stack IR ;) (type $FUNCSIG$v)
+ (local $temp1 i32)
+ (local $temp2 i32)
+ (set_local $temp2
+ (call $local-to-stack-multi-4
+ (i32.const 0)
+ )
+ )
+ (set_local $temp1
+ (call $local-to-stack-multi-4
+ (i32.const 1)
+ )
+ )
+ (if
+ (i32.const 0)
+ (nop)
+ )
+ (drop
+ (get_local $temp1)
+ )
+ (set_local $temp1
+ (call $local-to-stack-multi-4
+ (i32.const 2)
+ )
+ )
+ (block $block
+ (br $block)
+ )
+ (drop
+ (get_local $temp1)
+ )
+ (drop
+ (get_local $temp2)
+ )
+ )
+ (func $local-to-stack-in-control-flow (; 53 ;) (; has Stack IR ;) (type $FUNCSIG$v)
+ (local $temp1 i32)
+ (if
+ (i32.const 0)
+ (block $block
+ (set_local $temp1
+ (call $local-to-stack-multi-4
+ (i32.const 0)
+ )
+ )
+ (drop
+ (get_local $temp1)
+ )
+ )
+ (block $block13
+ (set_local $temp1
+ (call $local-to-stack-multi-4
+ (i32.const 1)
+ )
+ )
+ (drop
+ (get_local $temp1)
+ )
+ )
+ )
+ )
+ (func $remove-block (; 54 ;) (; has Stack IR ;) (type $6) (param $x i32) (result i32)
+ (local $temp i32)
+ (i32.add
+ (call $remove-block
+ (i32.const 0)
+ )
+ (i32.eqz
+ (block $block (result i32)
+ (set_local $temp
+ (call $remove-block
+ (i32.const 1)
+ )
+ )
+ (drop
+ (call $remove-block
+ (i32.const 2)
+ )
+ )
+ (get_local $temp)
+ )
+ )
+ )
+ )
+)