Always try to eliminate branches if tree-shaking is enabled

This commit is contained in:
dcodeIO
2018-04-24 23:11:11 +02:00
parent 97e7158fff
commit 391db28fe2
38 changed files with 782 additions and 789 deletions

View File

@ -672,10 +672,10 @@
(loop $continue|0
(if
;;@ ~lib/allocator/buddy.ts:381:9
(i32.add
(i32.ne
(get_local $1)
;;@ ~lib/allocator/buddy.ts:381:18
(i32.const 1)
;;@ ~lib/allocator/buddy.ts:381:23
(i32.const -1)
)
;;@ ~lib/allocator/buddy.ts:381:26
(block

View File

@ -1,5 +1,6 @@
(module
(type $iiiiv (func (param i32 i32 i32 i32)))
(type $i (func (result i32)))
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $HEAP_BASE i32 (i32.const 56))

View File

@ -1,6 +1,7 @@
(module
(type $FFF (func (param f64 f64) (result f64)))
(type $F (func (result f64)))
(type $i (func (result i32)))
(type $FiF (func (param f64 i32) (result f64)))
(type $fff (func (param f32 f32) (result f32)))
(type $fi (func (param f32) (result i32)))

View File

@ -1,5 +1,6 @@
(module
(type $iiiiv (func (param i32 i32 i32 i32)))
(type $i (func (result i32)))
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))
(global $for/i (mut i32) (i32.const 0))

View File

@ -1,5 +1,6 @@
(module
(type $ii (func (param i32) (result i32)))
(type $i (func (result i32)))
(type $iiiiv (func (param i32 i32 i32 i32)))
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))

View File

@ -126,50 +126,6 @@
(unreachable)
)
)
(if
(i32.ne
(tee_local $0
(i32.add
(tee_local $0
(i32.const 2)
)
(i32.const 1)
)
)
(i32.const 3)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 65)
(i32.const 2)
)
(unreachable)
)
)
(if
(i32.ne
(tee_local $0
(i32.add
(tee_local $0
(i32.const 3)
)
(i32.const 1)
)
)
(i32.const 4)
)
(block
(call $abort
(i32.const 0)
(i32.const 4)
(i32.const 66)
(i32.const 2)
)
(unreachable)
)
)
(if
(block (result i32)
(set_global $~argc

View File

@ -223,20 +223,17 @@
(get_local $2)
)
(nop)
(if
(i32.const 1)
(block
(set_local $5
(get_local $3)
)
(set_local $6
(get_local $5)
)
(set_local $4
(i32.add
(get_local $6)
(i32.const 1)
)
(block
(set_local $5
(get_local $3)
)
(set_local $6
(get_local $5)
)
(set_local $4
(i32.add
(get_local $6)
(i32.const 1)
)
)
)
@ -268,20 +265,17 @@
(get_local $4)
)
(nop)
(if
(i32.const 1)
(block
(set_local $6
(get_local $3)
)
(set_local $5
(get_local $6)
)
(set_local $2
(i32.add
(get_local $5)
(i32.const 1)
)
(block
(set_local $6
(get_local $3)
)
(set_local $5
(get_local $6)
)
(set_local $2
(i32.add
(get_local $5)
(i32.const 1)
)
)
)

View File

@ -1,5 +1,6 @@
(module
(type $iiiiv (func (param i32 i32 i32 i32)))
(type $i (func (result i32)))
(type $FF (func (param f64) (result f64)))
(type $F (func (result f64)))
(type $Fi (func (param f64) (result i32)))

View File

@ -1,5 +1,6 @@
(module
(type $iiii (func (param i32 i32 i32) (result i32)))
(type $i (func (result i32)))
(type $iiiiv (func (param i32 i32 i32 i32)))
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))

View File

@ -1,5 +1,6 @@
(module
(type $iiii (func (param i32 i32 i32) (result i32)))
(type $i (func (result i32)))
(type $iiiiv (func (param i32 i32 i32 i32)))
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))

View File

@ -1,5 +1,6 @@
(module
(type $iiii (func (param i32 i32 i32) (result i32)))
(type $i (func (result i32)))
(type $iiiiv (func (param i32 i32 i32 i32)))
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))

View File

@ -1,5 +1,6 @@
(module
(type $ii (func (param i32) (result i32)))
(type $i (func (result i32)))
(global $HEAP_BASE i32 (i32.const 4))
(memory $0 1)
(export "fib" (func $recursive/fib))

View File

@ -1,6 +1,7 @@
(module
(type $FFF (func (param f64 f64) (result f64)))
(type $F (func (result f64)))
(type $i (func (result i32)))
(type $FiF (func (param f64 i32) (result f64)))
(type $fff (func (param f32 f32) (result f32)))
(type $fi (func (param f32) (result i32)))
@ -8,7 +9,6 @@
(type $fif (func (param f32 i32) (result f32)))
(type $Fi (func (param f64) (result i32)))
(type $iiiiv (func (param i32 i32 i32 i32)))
(type $i (func (result i32)))
(type $ii (func (param i32) (result i32)))
(type $iii (func (param i32 i32) (result i32)))
(type $v (func))

View File

@ -3014,19 +3014,19 @@
(if
(i32.and
(if (result i32)
(tee_local $3
(tee_local $4
(i32.eqz
(tee_local $4
(tee_local $3
(i32.load offset=4
(get_local $0)
)
)
)
)
(get_local $3)
(get_local $4)
(i32.ge_s
(get_local $2)
(get_local $4)
(get_local $3)
)
)
(i32.const 1)
@ -3042,9 +3042,9 @@
)
(set_local $2
(select
(tee_local $3
(tee_local $4
(i32.add
(get_local $4)
(get_local $3)
(get_local $2)
)
)
@ -3052,13 +3052,13 @@
(i32.const 0)
)
(i32.gt_s
(get_local $3)
(get_local $4)
(get_local $2)
)
)
)
)
(set_local $3
(set_local $0
(i32.load
(get_local $0)
)
@ -3067,14 +3067,14 @@
(if
(i32.lt_s
(get_local $2)
(get_local $4)
(get_local $3)
)
(block
(if
(i32.eq
(i32.load offset=8
(i32.add
(get_local $3)
(get_local $0)
(i32.shl
(get_local $2)
(i32.const 2)
@ -3128,19 +3128,19 @@
(if
(i32.and
(if (result i32)
(tee_local $3
(tee_local $4
(i32.eqz
(tee_local $4
(tee_local $3
(i32.load offset=4
(get_local $0)
)
)
)
)
(get_local $3)
(get_local $4)
(i32.ge_s
(get_local $2)
(get_local $4)
(get_local $3)
)
)
(i32.const 1)
@ -3156,9 +3156,9 @@
)
(set_local $2
(select
(tee_local $3
(tee_local $4
(i32.add
(get_local $4)
(get_local $3)
(get_local $2)
)
)
@ -3166,13 +3166,13 @@
(i32.const 0)
)
(i32.gt_s
(get_local $3)
(get_local $4)
(get_local $2)
)
)
)
)
(set_local $3
(set_local $0
(i32.load
(get_local $0)
)
@ -3181,14 +3181,14 @@
(if
(i32.lt_s
(get_local $2)
(get_local $4)
(get_local $3)
)
(block
(if
(i32.eq
(i32.load offset=8
(i32.add
(get_local $3)
(get_local $0)
(i32.shl
(get_local $2)
(i32.const 2)

View File

@ -3589,19 +3589,19 @@
(block
(if
(i32.eq
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.4 (result i32)
(set_local $4
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.5 (result i32)
(set_local $5
(get_local $6)
)
(set_local $5
(set_local $4
(get_local $2)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.4
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.5
(i32.load offset=8
(i32.add
(get_local $4)
(get_local $5)
(i32.shl
(get_local $5)
(get_local $4)
(i32.const 2)
)
)
@ -3723,19 +3723,19 @@
(block
(if
(i32.eq
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.5 (result i32)
(set_local $4
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.7 (result i32)
(set_local $5
(get_local $6)
)
(set_local $5
(set_local $4
(get_local $2)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.5
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.7
(i32.load offset=8
(i32.add
(get_local $4)
(get_local $5)
(i32.shl
(get_local $5)
(get_local $4)
(i32.const 2)
)
)
@ -4023,19 +4023,19 @@
(i32.const 3)
)
(call_indirect (type $iiii)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.6 (result i32)
(set_local $5
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.9 (result i32)
(set_local $6
(get_local $2)
)
(set_local $6
(set_local $5
(get_local $3)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.6
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.9
(i32.load offset=8
(i32.add
(get_local $5)
(get_local $6)
(i32.shl
(get_local $6)
(get_local $5)
(i32.const 2)
)
)
@ -4169,19 +4169,19 @@
(i32.const 3)
)
(call_indirect (type $iiii)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.7 (result i32)
(set_local $5
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.11 (result i32)
(set_local $6
(get_local $2)
)
(set_local $6
(set_local $5
(get_local $3)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.7
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.11
(i32.load offset=8
(i32.add
(get_local $5)
(get_local $6)
(i32.shl
(get_local $6)
(get_local $5)
(i32.const 2)
)
)
@ -4309,19 +4309,19 @@
(i32.const 3)
)
(call_indirect (type $iiii)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.8 (result i32)
(set_local $5
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.13 (result i32)
(set_local $6
(get_local $2)
)
(set_local $6
(set_local $5
(get_local $3)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.8
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.13
(i32.load offset=8
(i32.add
(get_local $5)
(get_local $6)
(i32.shl
(get_local $6)
(get_local $5)
(i32.const 2)
)
)
@ -4449,14 +4449,14 @@
(i32.const 3)
)
(call_indirect (type $iiiv)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.9 (result i32)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.14 (result i32)
(set_local $5
(get_local $2)
)
(set_local $6
(get_local $3)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.9
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.14
(i32.load offset=8
(i32.add
(get_local $5)
@ -4655,14 +4655,14 @@
(i32.const 3)
)
(call_indirect (type $iiif)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.10 (result i32)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.15 (result i32)
(set_local $10
(get_local $2)
)
(set_local $11
(get_local $6)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.10
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.15
(i32.load offset=8
(i32.add
(get_local $10)
@ -4833,14 +4833,14 @@
(i32.const 3)
)
(call_indirect (type $iiii)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.11 (result i32)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.16 (result i32)
(set_local $10
(get_local $2)
)
(set_local $11
(get_local $6)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.11
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.16
(i32.load offset=8
(i32.add
(get_local $10)
@ -4973,14 +4973,14 @@
(block
(block
(set_local $7
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.12 (result i32)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.17 (result i32)
(set_local $6
(get_local $2)
)
(set_local $7
(get_local $5)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.12
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.17
(i32.load offset=8
(i32.add
(get_local $6)
@ -5142,14 +5142,14 @@
)
(call_indirect (type $iiiii)
(get_local $3)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.13 (result i32)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.18 (result i32)
(set_local $7
(get_local $4)
)
(set_local $8
(get_local $5)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.13
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.18
(i32.load offset=8
(i32.add
(get_local $7)
@ -5257,14 +5257,14 @@
)
(call_indirect (type $iiiii)
(get_local $3)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.14 (result i32)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.19 (result i32)
(set_local $7
(get_local $4)
)
(set_local $8
(get_local $5)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.14
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.19
(i32.load offset=8
(i32.add
(get_local $7)
@ -5388,14 +5388,14 @@
)
(call_indirect (type $iiiii)
(get_local $3)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.15 (result i32)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.20 (result i32)
(set_local $6
(get_local $4)
)
(set_local $7
(get_local $5)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.15
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.20
(i32.load offset=8
(i32.add
(get_local $6)
@ -5486,14 +5486,14 @@
)
(call_indirect (type $iiiii)
(get_local $3)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.16 (result i32)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.21 (result i32)
(set_local $6
(get_local $4)
)
(set_local $7
(get_local $5)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.16
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.21
(i32.load offset=8
(i32.add
(get_local $6)
@ -5882,14 +5882,14 @@
(block
(block
(set_local $6
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.19 (result i32)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.24 (result i32)
(set_local $5
(get_local $2)
)
(set_local $6
(get_local $3)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.19
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.24
(i32.load offset=8
(i32.add
(get_local $5)
@ -5918,14 +5918,14 @@
(block
(block
(set_local $8
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.20 (result i32)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.25 (result i32)
(set_local $7
(get_local $2)
)
(set_local $8
(get_local $5)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.20
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.25
(i32.load offset=8
(i32.add
(get_local $7)
@ -6154,14 +6154,14 @@
)
)
(set_local $10
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.21 (result i32)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.26 (result i32)
(set_local $9
(get_local $5)
)
(set_local $10
(get_local $8)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.21
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.26
(i32.load offset=8
(i32.add
(get_local $9)
@ -6175,14 +6175,14 @@
)
)
(set_local $11
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.22 (result i32)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.27 (result i32)
(set_local $9
(get_local $5)
)
(set_local $11
(get_local $6)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.22
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.27
(i32.load offset=8
(i32.add
(get_local $9)
@ -6315,14 +6315,14 @@
(block
(block
(set_local $10
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.23 (result i32)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.28 (result i32)
(set_local $11
(get_local $5)
)
(set_local $10
(i32.const 0)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.23
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.28
(i32.load offset=8
(i32.add
(get_local $11)
@ -6343,14 +6343,14 @@
(i32.const 0)
)
(set_local $7
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.24 (result i32)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.29 (result i32)
(set_local $9
(get_local $5)
)
(set_local $12
(get_local $6)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.24
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.29
(i32.load offset=8
(i32.add
(get_local $9)
@ -6452,14 +6452,14 @@
(block
(block
(set_local $10
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.25 (result i32)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.30 (result i32)
(set_local $7
(get_local $5)
)
(set_local $12
(i32.const 0)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.25
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.30
(i32.load offset=8
(i32.add
(get_local $7)
@ -6473,14 +6473,14 @@
)
)
(set_local $7
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.26 (result i32)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.31 (result i32)
(set_local $12
(get_local $5)
)
(set_local $7
(get_local $11)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.26
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.31
(i32.load offset=8
(i32.add
(get_local $12)
@ -6613,14 +6613,14 @@
(get_local $4)
)
(set_local $14
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.27 (result i32)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.32 (result i32)
(set_local $6
(get_local $5)
)
(set_local $8
(i32.const 1)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.27
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.32
(i32.load offset=8
(i32.add
(get_local $6)
@ -6641,14 +6641,14 @@
(i32.const 1)
)
(set_local $11
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.28 (result i32)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.33 (result i32)
(set_local $10
(get_local $5)
)
(set_local $7
(i32.const 0)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.28
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.33
(i32.load offset=8
(i32.add
(get_local $10)
@ -6731,14 +6731,14 @@
)
(block
(set_local $5
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.17 (result i32)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.22 (result i32)
(set_local $4
(get_local $3)
)
(set_local $5
(i32.const 1)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.17
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.22
(i32.load offset=8
(i32.add
(get_local $4)
@ -6752,14 +6752,14 @@
)
)
(set_local $6
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.18 (result i32)
(block $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.23 (result i32)
(set_local $4
(get_local $3)
)
(set_local $6
(i32.const 0)
)
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.18
(br $~lib/internal/arraybuffer/loadUnsafe<i32>|inlined.23
(i32.load offset=8
(i32.add
(get_local $4)

View File

@ -2,9 +2,10 @@
(type $F (func (result f64)))
(type $FF (func (param f64) (result f64)))
(type $f (func (result f32)))
(type $i (func (result i32)))
(type $I (func (result i64)))
(type $Fi (func (param f64) (result i32)))
(type $FFF (func (param f64 f64) (result f64)))
(type $i (func (result i32)))
(type $FiF (func (param f64 i32) (result f64)))
(type $Ff (func (param f64) (result f32)))
(global $std/libm/E f64 (f64.const 2.718281828459045))

View File

@ -16,6 +16,7 @@
(type $fiffii (func (param f32 i32 f32 f32 i32) (result i32)))
(type $FF (func (param f64) (result f64)))
(type $ff (func (param f32) (result f32)))
(type $I (func (result i64)))
(type $FFFFii (func (param f64 f64 f64 f64 i32) (result i32)))
(type $FFF (func (param f64 f64) (result f64)))
(type $ffffii (func (param f32 f32 f32 f32 i32) (result i32)))

View File

@ -2,8 +2,8 @@
(type $FFFi (func (param f64 f64 f64) (result i32)))
(type $FFF (func (param f64 f64) (result f64)))
(type $Fi (func (param f64) (result i32)))
(type $FFi (func (param f64 f64) (result i32)))
(type $i (func (result i32)))
(type $FFi (func (param f64 f64) (result i32)))
(type $iiiiv (func (param i32 i32 i32 i32)))
(type $F (func (result f64)))
(type $fffi (func (param f32 f32 f32) (result i32)))

View File

@ -58,10 +58,16 @@
(i32.and
(if (result i32)
(tee_local $1
(i32.const 1)
(i32.eq
(i32.const 2)
(i32.const 2)
)
)
(get_local $1)
(i32.const 0)
(i32.eq
(i32.const 2)
(i32.const 4)
)
)
(i32.const 1)
)
@ -215,10 +221,16 @@
(i32.and
(if (result i32)
(tee_local $1
(i32.const 1)
(i32.eq
(i32.const 2)
(i32.const 2)
)
)
(get_local $1)
(i32.const 0)
(i32.eq
(i32.const 2)
(i32.const 4)
)
)
(i32.const 1)
)
@ -930,10 +942,16 @@
(i32.and
(if (result i32)
(tee_local $1
(i32.const 0)
(i32.eq
(i32.const 4)
(i32.const 2)
)
)
(get_local $1)
(i32.const 1)
(i32.eq
(i32.const 4)
(i32.const 4)
)
)
(i32.const 1)
)
@ -1013,10 +1031,16 @@
(i32.and
(if (result i32)
(tee_local $1
(i32.const 0)
(i32.eq
(i32.const 4)
(i32.const 2)
)
)
(get_local $1)
(i32.const 1)
(i32.eq
(i32.const 4)
(i32.const 4)
)
)
(i32.const 1)
)

View File

@ -1,4 +1,5 @@
(module
(type $i (func (result i32)))
(type $v (func))
(global $ternary/a (mut i32) (i32.const 0))
(global $HEAP_BASE i32 (i32.const 4))
@ -7,54 +8,22 @@
(start $start)
(func $start (; 0 ;) (type $v)
(drop
(if (result i32)
(i32.const 0)
(unreachable)
(i32.const 1)
)
(i32.const 1)
)
(drop
(if (result i32)
(i32.const 1)
(i32.const 1)
(unreachable)
)
(i32.const 1)
)
(drop
(if (result i32)
(if (result i32)
(i32.const 0)
(unreachable)
(i32.const 1)
)
(i32.const 1)
(unreachable)
)
(i32.const 1)
)
(set_global $ternary/a
(if (result i32)
(i32.const 0)
(unreachable)
(i32.const 1)
)
(i32.const 1)
)
(set_global $ternary/a
(if (result i32)
(i32.const 1)
(i32.const 1)
(unreachable)
)
(i32.const 1)
)
(set_global $ternary/a
(if (result i32)
(if (result i32)
(i32.const 0)
(unreachable)
(i32.const 1)
)
(i32.const 1)
(unreachable)
)
(i32.const 1)
)
)
)

View File

@ -1,4 +1,5 @@
(module
(type $i (func (result i32)))
(type $iiiiv (func (param i32 i32 i32 i32)))
(type $v (func))
(import "env" "abort" (func $abort (param i32 i32 i32 i32)))