(module
 (type $0 (func (param i32)))
 (type $1 (func (param i32) (result i32)))
 (memory $0 256 256)
 (export "load-off-2" (func $load-off-2))
 (func $b0 (type $0) (param $x i32)
  (drop
   (i32.load offset=1
    (get_local $x)
   )
  )
  (drop
   (i32.load offset=8
    (get_local $x)
   )
  )
  (drop
   (i32.load offset=1023
    (get_local $x)
   )
  )
  (drop
   (i32.load
    (i32.add
     (get_local $x)
     (i32.const 1024)
    )
   )
  )
  (drop
   (i32.load
    (i32.add
     (get_local $x)
     (i32.const 2048)
    )
   )
  )
  (drop
   (i32.load offset=4
    (get_local $x)
   )
  )
 )
 (func $load-off-2 (type $1) (param $0 i32) (result i32)
  (i32.store
   (i32.const 6)
   (get_local $0)
  )
  (i32.store
   (i32.const 6)
   (get_local $0)
  )
  (i32.store offset=7
   (get_local $0)
   (get_local $0)
  )
  (i32.store offset=9
   (get_local $0)
   (get_local $0)
  )
  (i32.store offset=2
   (i32.add
    (i32.const -11)
    (get_local $0)
   )
   (get_local $0)
  )
  (i32.store offset=2
   (i32.add
    (get_local $0)
    (i32.const -13)
   )
   (get_local $0)
  )
  (i32.store
   (i32.const 4)
   (get_local $0)
  )
  (i32.store
   (i32.const 0)
   (get_local $0)
  )
  (i32.store
   (i32.const 25)
   (get_local $0)
  )
  (i32.store
   (i32.const -23)
   (get_local $0)
  )
  (drop
   (i32.load
    (i32.const 8)
   )
  )
  (drop
   (i32.load
    (i32.const 8)
   )
  )
  (drop
   (i32.load offset=8
    (get_local $0)
   )
  )
  (drop
   (i32.load
    (i32.const 10)
   )
  )
  (i32.load offset=12
   (get_local $0)
  )
 )
)
