(module
 (type $FUNCSIG$vi (func (param i32)))
 (import "env" "memory" (memory $memory (shared 256 256)))
 (data (global.get $__memory_base) "threads.wasm-only.asm.js")
 (import "env" "__memory_base" (global $__memory_base i32))
 (import "env" "setTempRet0" (func $setTempRet0 (param i32)))
 (export "test64" (func $legalstub$test64))
 (func $test64 (; 1 ;) (; has Stack IR ;) (result i64)
  (local $0 i64)
  (local $1 i64)
  (i64.atomic.store
   (i32.const 4656)
   (i64.const 92)
  )
  (drop
   (i64.atomic.load
    (i32.const 4656)
   )
  )
  (drop
   (i64.atomic.rmw.cmpxchg
    (i32.const 1024)
    (local.tee $1
     (i64.atomic.rmw.xchg
      (i32.const 1024)
      (local.tee $0
       (i64.atomic.rmw.xor
        (i32.const 1024)
        (i64.atomic.rmw.or
         (i32.const 1024)
         (i64.atomic.rmw.and
          (i32.const 1024)
          (i64.atomic.rmw.sub
           (i32.const 1024)
           (i64.atomic.rmw.add
            (i32.const 0)
            (i64.const 26)
           )
          )
         )
        )
       )
      )
     )
    )
    (local.get $0)
   )
  )
  (local.get $1)
 )
 (func $legalstub$test64 (; 2 ;) (; has Stack IR ;) (result i32)
  (local $0 i64)
  (local.set $0
   (call $test64)
  )
  (call $setTempRet0
   (i32.wrap_i64
    (i64.shr_u
     (local.get $0)
     (i64.const 32)
    )
   )
  )
  (i32.wrap_i64
   (local.get $0)
  )
 )
)
