(module
 (import "env" "memory" (memory $memory (shared 256 256)))
 (data (global.get $__memory_base) "threads.asm.js")
 (import "env" "__memory_base" (global $__memory_base i32))
 (export "test" (func $test))
 (func $test (; 0 ;) (; has Stack IR ;)
  (local $0 i32)
  (drop
   (i32.atomic.load
    (i32.const 4916)
   )
  )
  (drop
   (i32.atomic.rmw.xor
    (i32.atomic.rmw.or
     (i32.atomic.rmw.and
      (i32.atomic.rmw.sub
       (i32.atomic.rmw.add
        (i32.atomic.rmw.cmpxchg
         (block (result i32)
          (i32.atomic.store
           (i32.atomic.load16_u
            (i32.const 2458)
           )
           (i32.const 0)
          )
          (i32.atomic.rmw.xchg
           (local.get $0)
           (i32.const 1)
          )
         )
         (i32.const 1)
         (i32.const 2)
        )
        (i32.const 0)
       )
       (i32.const 0)
      )
      (i32.const 0)
     )
     (i32.const 0)
    )
    (i32.const 0)
   )
  )
  (drop
   (i32.atomic.rmw.xor
    (i32.const 4096)
    (i32.const 0)
   )
  )
  (drop
   (i32.atomic.rmw16.xor_u
    (i32.const 2048)
    (i32.const 0)
   )
  )
  (drop
   (i32.atomic.rmw8.cmpxchg_u
    (i32.atomic.rmw8.cmpxchg_u
     (i32.atomic.rmw8.xor_u
      (i32.const 1024)
      (i32.const 0)
     )
     (i32.const 1)
     (i32.const 2)
    )
    (i32.const 1)
    (i32.const 2)
   )
  )
 )
)
