(module
 (type $0 (func))
 (type $1 (func (result i32)))
 (memory $0 1)
 (func $a
  (local $y i32)
  (local.set $y
   (i32.load8_u
    (i32.const 1024)
   )
  )
  (drop
   (i32.and
    (local.get $y)
    (i32.const 255)
   )
  )
 )
 (func $b
  (local $y i32)
  (local.set $y
   (i32.load16_u
    (i32.const 1024)
   )
  )
  (drop
   (i32.and
    (local.get $y)
    (i32.const 65535)
   )
  )
 )
 (func $c
  (local $y i32)
  (local.set $y
   (i32.load8_u
    (i32.const 1024)
   )
  )
  (drop
   (i32.and
    (local.get $y)
    (i32.const 255)
   )
  )
 )
 (func $d
  (local $y i32)
  (local.set $y
   (i32.load16_u
    (i32.const 1024)
   )
  )
  (drop
   (i32.and
    (local.get $y)
    (i32.const 65535)
   )
  )
 )
 (func $one-of-each
  (local $y i32)
  (local.set $y
   (i32.load8_s
    (i32.const 1024)
   )
  )
  (drop
   (i32.and
    (local.get $y)
    (i32.const 255)
   )
  )
  (drop
   (i32.shr_s
    (i32.shl
     (local.get $y)
     (i32.const 24)
    )
    (i32.const 24)
   )
  )
 )
 (func $more-of-one
  (local $y i32)
  (local.set $y
   (i32.load8_s
    (i32.const 1024)
   )
  )
  (drop
   (i32.and
    (local.get $y)
    (i32.const 255)
   )
  )
  (drop
   (i32.and
    (local.get $y)
    (i32.const 255)
   )
  )
  (drop
   (i32.shr_s
    (i32.shl
     (local.get $y)
     (i32.const 24)
    )
    (i32.const 24)
   )
  )
 )
 (func $many-more-of-one
  (local $y i32)
  (local.set $y
   (i32.load8_u
    (i32.const 1024)
   )
  )
  (drop
   (i32.and
    (local.get $y)
    (i32.const 255)
   )
  )
  (drop
   (i32.and
    (local.get $y)
    (i32.const 255)
   )
  )
  (drop
   (i32.and
    (local.get $y)
    (i32.const 255)
   )
  )
  (drop
   (i32.shr_s
    (i32.shl
     (local.get $y)
     (i32.const 24)
    )
    (i32.const 24)
   )
  )
 )
 (func $a-sign
  (local $y i32)
  (local.set $y
   (i32.load8_s
    (i32.const 1024)
   )
  )
  (drop
   (i32.shr_s
    (i32.shl
     (local.get $y)
     (i32.const 24)
    )
    (i32.const 24)
   )
  )
 )
 (func $multivar
  (local $x i32)
  (local $y i32)
  (local.set $x
   (i32.load8_u
    (i32.const 1024)
   )
  )
  (drop
   (i32.and
    (local.get $x)
    (i32.const 255)
   )
  )
  (local.set $y
   (i32.load8_s
    (i32.const 1024)
   )
  )
  (drop
   (i32.shr_s
    (i32.shl
     (local.get $y)
     (i32.const 24)
    )
    (i32.const 24)
   )
  )
 )
 (func $corners
  (local $y i32)
  (drop
   (i32.load8_s
    (i32.const 1024)
   )
  )
  (drop
   (i32.load8_u
    (i32.const 1024)
   )
  )
  (local.set $y
   (i32.const 1024)
  )
 )
 (func $wrong-size
  (local $y i32)
  (local.set $y
   (i32.load8_s
    (i32.const 1024)
   )
  )
  (drop
   (i32.and
    (local.get $y)
    (i32.const 65535)
   )
  )
 )
 (func $wrong-size_s
  (local $y i32)
  (local.set $y
   (i32.load8_u
    (i32.const 1024)
   )
  )
  (drop
   (i32.shr_s
    (i32.shl
     (local.get $y)
     (i32.const 16)
    )
    (i32.const 16)
   )
  )
 )
 (func $non-sign-or-unsigned-use
  (local $y i32)
  (local.set $y
   (i32.load8_s
    (i32.const 1024)
   )
  )
  (drop
   (i32.and
    (local.get $y)
    (i32.const 255)
   )
  )
  (drop
   (local.get $y)
  )
 )
 (func $toplevel-load (result i32)
  (i32.load8_s
   (i32.const 1024)
  )
 )
 (func $tees
  (local $y i32)
  (drop
   (local.tee $y
    (i32.load8_s
     (i32.const 1024)
    )
   )
  )
  (drop
   (i32.and
    (local.get $y)
    (i32.const 255)
   )
  )
 )
)
