(module
 (type $none_=>_none (func))
 (import "env" "memory" (memory $memory (shared 256 256)))
 (import "env" "table" (table $table 0 0 funcref))
 (import "env" "__memory_base" (global $__memory_base i32))
 (import "env" "__table_base" (global $__table_base i32))
 (import "env" "DYNAMICTOP_PTR" (global $DYNAMICTOP_PTR$asm2wasm$import i32))
 (import "env" "tempDoublePtr" (global $tempDoublePtr$asm2wasm$import i32))
 (import "env" "ABORT" (global $ABORT$asm2wasm$import i32))
 (import "env" "STACKTOP" (global $STACKTOP$asm2wasm$import i32))
 (import "env" "STACK_MAX" (global $STACK_MAX$asm2wasm$import i32))
 (import "global" "NaN" (global $nan$asm2wasm$import f64))
 (import "global" "Infinity" (global $inf$asm2wasm$import f64))
 (global $DYNAMICTOP_PTR (mut i32) (global.get $DYNAMICTOP_PTR$asm2wasm$import))
 (global $tempDoublePtr (mut i32) (global.get $tempDoublePtr$asm2wasm$import))
 (global $ABORT (mut i32) (global.get $ABORT$asm2wasm$import))
 (global $STACKTOP (mut i32) (global.get $STACKTOP$asm2wasm$import))
 (global $STACK_MAX (mut i32) (global.get $STACK_MAX$asm2wasm$import))
 (global $__THREW__ (mut i32) (i32.const 0))
 (global $threwValue (mut i32) (i32.const 0))
 (global $setjmpId (mut i32) (i32.const 0))
 (global $undef (mut i32) (i32.const 0))
 (global $nan (mut f64) (global.get $nan$asm2wasm$import))
 (global $inf (mut f64) (global.get $inf$asm2wasm$import))
 (global $tempInt (mut i32) (i32.const 0))
 (global $tempBigInt (mut i32) (i32.const 0))
 (global $tempBigIntS (mut i32) (i32.const 0))
 (global $tempValue (mut i32) (i32.const 0))
 (global $tempDouble (mut f64) (f64.const 0))
 (global $tempRet0 (mut i32) (i32.const 0))
 (global $__pthread_ptr (mut i32) (i32.const 0))
 (global $__pthread_is_main_runtime_thread (mut i32) (i32.const 0))
 (global $__pthread_is_main_browser_thread (mut i32) (i32.const 0))
 (global $tempFloat (mut f32) (f32.const 0))
 (global $f0 (mut f32) (f32.const 0))
 (export "test" (func $test))
 (func $test (; 0 ;)
  (local $$temp i32)
  (local $1 i32)
  (local.set $$temp
   (i32.atomic.load
    (i32.const 4916)
   )
  )
  (local.set $$temp
   (i32.atomic.load16_u
    (i32.const 2458)
   )
  )
  (local.set $$temp
   (block (result i32)
    (i32.atomic.store
     (local.get $$temp)
     (local.tee $1
      (i32.const 0)
     )
    )
    (local.get $1)
   )
  )
  (local.set $$temp
   (i32.atomic.rmw.xchg
    (local.get $$temp)
    (i32.const 1)
   )
  )
  (local.set $$temp
   (i32.atomic.rmw.cmpxchg
    (local.get $$temp)
    (i32.const 1)
    (i32.const 2)
   )
  )
  (local.set $$temp
   (i32.atomic.rmw.add
    (local.get $$temp)
    (i32.const 0)
   )
  )
  (local.set $$temp
   (i32.atomic.rmw.sub
    (local.get $$temp)
    (i32.const 0)
   )
  )
  (local.set $$temp
   (i32.atomic.rmw.and
    (local.get $$temp)
    (i32.const 0)
   )
  )
  (local.set $$temp
   (i32.atomic.rmw.or
    (local.get $$temp)
    (i32.const 0)
   )
  )
  (local.set $$temp
   (i32.atomic.rmw.xor
    (local.get $$temp)
    (i32.const 0)
   )
  )
  (local.set $$temp
   (i32.atomic.rmw.xor
    (i32.const 4096)
    (i32.const 0)
   )
  )
  (local.set $$temp
   (i32.atomic.rmw16.xor_u
    (i32.const 2048)
    (i32.const 0)
   )
  )
  (local.set $$temp
   (i32.atomic.rmw8.xor_u
    (i32.const 1024)
    (i32.const 0)
   )
  )
  (local.set $$temp
   (i32.atomic.rmw8.cmpxchg_u
    (local.get $$temp)
    (i32.const 1)
    (i32.const 2)
   )
  )
  (local.set $$temp
   (i32.atomic.rmw8.cmpxchg_u
    (local.get $$temp)
    (i32.const 1)
    (i32.const 2)
   )
  )
 )
)
