(module
 (type $none_=>_none (func))
 (memory $0 1 1)
 (func $func_4 (; 0 ;)
  (local $0 i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (local $11 i32)
  (drop
   (i32.load
    (i32.const 4)
   )
  )
  (drop
   (block (result i32)
    (local.set $0
     (i32.const 4)
    )
    (i32.or
     (i32.or
      (i32.load8_u
       (local.get $0)
      )
      (i32.shl
       (i32.load8_u offset=1
        (local.get $0)
       )
       (i32.const 8)
      )
     )
     (i32.or
      (i32.shl
       (i32.load8_u offset=2
        (local.get $0)
       )
       (i32.const 16)
      )
      (i32.shl
       (i32.load8_u offset=3
        (local.get $0)
       )
       (i32.const 24)
      )
     )
    )
   )
  )
  (drop
   (block (result i32)
    (local.set $1
     (i32.const 4)
    )
    (i32.or
     (i32.load16_u
      (local.get $1)
     )
     (i32.shl
      (i32.load16_u offset=2
       (local.get $1)
      )
      (i32.const 16)
     )
    )
   )
  )
  (drop
   (i32.load
    (i32.const 4)
   )
  )
  (drop
   (i32.load offset=100
    (i32.const 4)
   )
  )
  (drop
   (block (result i32)
    (local.set $2
     (i32.const 4)
    )
    (i32.or
     (i32.or
      (i32.load8_u offset=100
       (local.get $2)
      )
      (i32.shl
       (i32.load8_u offset=101
        (local.get $2)
       )
       (i32.const 8)
      )
     )
     (i32.or
      (i32.shl
       (i32.load8_u offset=102
        (local.get $2)
       )
       (i32.const 16)
      )
      (i32.shl
       (i32.load8_u offset=103
        (local.get $2)
       )
       (i32.const 24)
      )
     )
    )
   )
  )
  (drop
   (block (result i32)
    (local.set $3
     (i32.const 4)
    )
    (i32.or
     (i32.load16_u offset=100
      (local.get $3)
     )
     (i32.shl
      (i32.load16_u offset=102
       (local.get $3)
      )
      (i32.const 16)
     )
    )
   )
  )
  (drop
   (i32.load offset=100
    (i32.const 4)
   )
  )
  (drop
   (unreachable)
  )
  (i32.store
   (i32.const 4)
   (i32.const 8)
  )
  (block
   (local.set $4
    (i32.const 4)
   )
   (local.set $5
    (i32.const 8)
   )
   (i32.store8
    (local.get $4)
    (local.get $5)
   )
   (i32.store8 offset=1
    (local.get $4)
    (i32.shr_u
     (local.get $5)
     (i32.const 8)
    )
   )
   (i32.store8 offset=2
    (local.get $4)
    (i32.shr_u
     (local.get $5)
     (i32.const 16)
    )
   )
   (i32.store8 offset=3
    (local.get $4)
    (i32.shr_u
     (local.get $5)
     (i32.const 24)
    )
   )
  )
  (block
   (local.set $6
    (i32.const 4)
   )
   (local.set $7
    (i32.const 8)
   )
   (i32.store16
    (local.get $6)
    (local.get $7)
   )
   (i32.store16 offset=2
    (local.get $6)
    (i32.shr_u
     (local.get $7)
     (i32.const 16)
    )
   )
  )
  (i32.store
   (i32.const 4)
   (i32.const 8)
  )
  (i32.store offset=100
   (i32.const 4)
   (i32.const 8)
  )
  (block
   (local.set $8
    (i32.const 4)
   )
   (local.set $9
    (i32.const 8)
   )
   (i32.store8 offset=100
    (local.get $8)
    (local.get $9)
   )
   (i32.store8 offset=101
    (local.get $8)
    (i32.shr_u
     (local.get $9)
     (i32.const 8)
    )
   )
   (i32.store8 offset=102
    (local.get $8)
    (i32.shr_u
     (local.get $9)
     (i32.const 16)
    )
   )
   (i32.store8 offset=103
    (local.get $8)
    (i32.shr_u
     (local.get $9)
     (i32.const 24)
    )
   )
  )
  (block
   (local.set $10
    (i32.const 4)
   )
   (local.set $11
    (i32.const 8)
   )
   (i32.store16 offset=100
    (local.get $10)
    (local.get $11)
   )
   (i32.store16 offset=102
    (local.get $10)
    (i32.shr_u
     (local.get $11)
     (i32.const 16)
    )
   )
  )
  (i32.store offset=100
   (i32.const 4)
   (i32.const 8)
  )
  (block
   (drop
    (unreachable)
   )
   (drop
    (i32.const 8)
   )
  )
  (block
   (drop
    (i32.const 4)
   )
   (drop
    (unreachable)
   )
  )
 )
 (func $func_2 (; 1 ;)
  (local $0 i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (drop
   (i32.load16_u
    (i32.const 4)
   )
  )
  (drop
   (block (result i32)
    (local.set $0
     (i32.const 4)
    )
    (i32.or
     (i32.load8_u
      (local.get $0)
     )
     (i32.shl
      (i32.load8_u offset=1
       (local.get $0)
      )
      (i32.const 8)
     )
    )
   )
  )
  (drop
   (i32.load16_u
    (i32.const 4)
   )
  )
  (drop
   (i32.load16_u offset=100
    (i32.const 4)
   )
  )
  (drop
   (block (result i32)
    (local.set $1
     (i32.const 4)
    )
    (i32.or
     (i32.load8_u offset=100
      (local.get $1)
     )
     (i32.shl
      (i32.load8_u offset=101
       (local.get $1)
      )
      (i32.const 8)
     )
    )
   )
  )
  (drop
   (i32.load16_u offset=100
    (i32.const 4)
   )
  )
  (drop
   (unreachable)
  )
  (i32.store16
   (i32.const 4)
   (i32.const 8)
  )
  (block
   (local.set $2
    (i32.const 4)
   )
   (local.set $3
    (i32.const 8)
   )
   (i32.store8
    (local.get $2)
    (local.get $3)
   )
   (i32.store8 offset=1
    (local.get $2)
    (i32.shr_u
     (local.get $3)
     (i32.const 8)
    )
   )
  )
  (i32.store16
   (i32.const 4)
   (i32.const 8)
  )
  (i32.store16 offset=100
   (i32.const 4)
   (i32.const 8)
  )
  (block
   (local.set $4
    (i32.const 4)
   )
   (local.set $5
    (i32.const 8)
   )
   (i32.store8 offset=100
    (local.get $4)
    (local.get $5)
   )
   (i32.store8 offset=101
    (local.get $4)
    (i32.shr_u
     (local.get $5)
     (i32.const 8)
    )
   )
  )
  (i32.store16 offset=100
   (i32.const 4)
   (i32.const 8)
  )
  (block
   (drop
    (unreachable)
   )
   (drop
    (i32.const 8)
   )
  )
  (block
   (drop
    (i32.const 4)
   )
   (drop
    (unreachable)
   )
  )
 )
 (func $func_1 (; 2 ;)
  (drop
   (i32.load8_u
    (i32.const 4)
   )
  )
  (drop
   (i32.load8_u
    (i32.const 4)
   )
  )
  (drop
   (i32.load8_u offset=100
    (i32.const 4)
   )
  )
  (drop
   (i32.load8_u offset=100
    (i32.const 4)
   )
  )
  (drop
   (i32.load offset=100
    (unreachable)
   )
  )
  (i32.store8
   (i32.const 4)
   (i32.const 8)
  )
  (i32.store8
   (i32.const 4)
   (i32.const 8)
  )
  (i32.store8 offset=100
   (i32.const 4)
   (i32.const 8)
  )
  (i32.store8 offset=100
   (i32.const 4)
   (i32.const 8)
  )
  (i32.store8 offset=100
   (unreachable)
   (i32.const 8)
  )
  (i32.store8 offset=100
   (i32.const 4)
   (unreachable)
  )
 )
 (func $func_signed (; 3 ;)
  (local $0 i32)
  (local $1 i32)
  (drop
   (i32.load16_s
    (i32.const 4)
   )
  )
  (drop
   (block (result i32)
    (local.set $0
     (i32.const 4)
    )
    (i32.shr_s
     (i32.shl
      (i32.or
       (i32.load8_u
        (local.get $0)
       )
       (i32.shl
        (i32.load8_u offset=1
         (local.get $0)
        )
        (i32.const 8)
       )
      )
      (i32.const 16)
     )
     (i32.const 16)
    )
   )
  )
  (drop
   (i32.load16_s
    (i32.const 4)
   )
  )
  (drop
   (i32.load16_s offset=100
    (i32.const 4)
   )
  )
  (drop
   (block (result i32)
    (local.set $1
     (i32.const 4)
    )
    (i32.shr_s
     (i32.shl
      (i32.or
       (i32.load8_u offset=100
        (local.get $1)
       )
       (i32.shl
        (i32.load8_u offset=101
         (local.get $1)
        )
        (i32.const 8)
       )
      )
      (i32.const 16)
     )
     (i32.const 16)
    )
   )
  )
  (drop
   (i32.load16_s offset=100
    (i32.const 4)
   )
  )
  (drop
   (unreachable)
  )
 )
)
