;; NOTE: Assertions have been generated by update_lit_checks.py and should not be edited.
;; RUN: wasm-opt %s -all -S -o - | filecheck %s
;; RUN: wasm-opt %s -all --roundtrip -S -o - | filecheck %s --check-prefix=RTRIP
(module
  ;; CHECK:      (type $t (shared (struct (field (mut i32)))))
  ;; RTRIP:      (type $t (shared (struct (field (mut i32)))))
  (type $t (shared (struct (field (mut i32)))))

  ;; CHECK:      (global $g (ref $t) (struct.new $t
  ;; CHECK-NEXT:  (i32.const 0)
  ;; CHECK-NEXT: ))
  ;; RTRIP:      (global $g (ref $t) (struct.new $t
  ;; RTRIP-NEXT:  (i32.const 0)
  ;; RTRIP-NEXT: ))
  (global $g (ref $t) (struct.new $t (i32.const 0)))

  ;; CHECK:      (global $wq (mut (ref null (shared waitqueue))) (ref.null (shared nowaitqueue)))
  ;; RTRIP:      (global $wq (mut (ref null (shared waitqueue))) (ref.null (shared nowaitqueue)))
  (global $wq (mut (ref null (shared waitqueue))) (ref.null (shared waitqueue)))

  ;; CHECK:      (global $nwq (mut (ref null (shared nowaitqueue))) (ref.null (shared nowaitqueue)))
  ;; RTRIP:      (global $nwq (mut (ref null (shared nowaitqueue))) (ref.null (shared nowaitqueue)))
  (global $nwq (mut (ref null (shared nowaitqueue))) (ref.null (shared nowaitqueue)))

  ;; CHECK:      (func $wait (type $0)
  ;; CHECK-NEXT:  (drop
  ;; CHECK-NEXT:   (struct.wait $t 0
  ;; CHECK-NEXT:    (global.get $g)
  ;; CHECK-NEXT:    (global.get $wq)
  ;; CHECK-NEXT:    (i32.const 0)
  ;; CHECK-NEXT:    (i64.const 0)
  ;; CHECK-NEXT:   )
  ;; CHECK-NEXT:  )
  ;; CHECK-NEXT: )
  ;; RTRIP:      (func $wait (type $0)
  ;; RTRIP-NEXT:  (drop
  ;; RTRIP-NEXT:   (struct.wait $t 0
  ;; RTRIP-NEXT:    (global.get $g)
  ;; RTRIP-NEXT:    (global.get $wq)
  ;; RTRIP-NEXT:    (i32.const 0)
  ;; RTRIP-NEXT:    (i64.const 0)
  ;; RTRIP-NEXT:   )
  ;; RTRIP-NEXT:  )
  ;; RTRIP-NEXT: )
  (func $wait
    (drop (struct.wait $t 0 (global.get $g) (global.get $wq) (i32.const 0) (i64.const 0)))
  )

  ;; CHECK:      (func $notify (type $0)
  ;; CHECK-NEXT:  (drop
  ;; CHECK-NEXT:   (waitqueue.notify
  ;; CHECK-NEXT:    (global.get $wq)
  ;; CHECK-NEXT:    (i32.const 1)
  ;; CHECK-NEXT:   )
  ;; CHECK-NEXT:  )
  ;; CHECK-NEXT: )
  ;; RTRIP:      (func $notify (type $0)
  ;; RTRIP-NEXT:  (drop
  ;; RTRIP-NEXT:   (waitqueue.notify
  ;; RTRIP-NEXT:    (global.get $wq)
  ;; RTRIP-NEXT:    (i32.const 1)
  ;; RTRIP-NEXT:   )
  ;; RTRIP-NEXT:  )
  ;; RTRIP-NEXT: )
  (func $notify
    (drop (waitqueue.notify (global.get $wq) (i32.const 1)))
  )

  ;; CHECK:      (func $wait-unreachable (type $0)
  ;; CHECK-NEXT:  (drop
  ;; CHECK-NEXT:   (block ;; (replaces unreachable StructWait we can't emit)
  ;; CHECK-NEXT:    (drop
  ;; CHECK-NEXT:     (unreachable)
  ;; CHECK-NEXT:    )
  ;; CHECK-NEXT:    (drop
  ;; CHECK-NEXT:     (global.get $wq)
  ;; CHECK-NEXT:    )
  ;; CHECK-NEXT:    (drop
  ;; CHECK-NEXT:     (i32.const 0)
  ;; CHECK-NEXT:    )
  ;; CHECK-NEXT:    (drop
  ;; CHECK-NEXT:     (i64.const 0)
  ;; CHECK-NEXT:    )
  ;; CHECK-NEXT:    (unreachable)
  ;; CHECK-NEXT:   )
  ;; CHECK-NEXT:  )
  ;; CHECK-NEXT: )
  ;; RTRIP:      (func $wait-unreachable (type $0)
  ;; RTRIP-NEXT:  (unreachable)
  ;; RTRIP-NEXT: )
  (func $wait-unreachable
    (drop (struct.wait $t 0 (unreachable) (global.get $wq) (i32.const 0) (i64.const 0)))
  )

  ;; CHECK:      (func $notify-unreachable (type $0)
  ;; CHECK-NEXT:  (drop
  ;; CHECK-NEXT:   (waitqueue.notify
  ;; CHECK-NEXT:    (unreachable)
  ;; CHECK-NEXT:    (i32.const 1)
  ;; CHECK-NEXT:   )
  ;; CHECK-NEXT:  )
  ;; CHECK-NEXT: )
  ;; RTRIP:      (func $notify-unreachable (type $0)
  ;; RTRIP-NEXT:  (unreachable)
  ;; RTRIP-NEXT: )
  (func $notify-unreachable
    (drop (waitqueue.notify (unreachable) (i32.const 1)))
  )

  ;; CHECK:      (func $wait-none (type $0)
  ;; CHECK-NEXT:  (drop
  ;; CHECK-NEXT:   (block ;; (replaces unreachable StructWait we can't emit)
  ;; CHECK-NEXT:    (drop
  ;; CHECK-NEXT:     (ref.null (shared none))
  ;; CHECK-NEXT:    )
  ;; CHECK-NEXT:    (drop
  ;; CHECK-NEXT:     (global.get $wq)
  ;; CHECK-NEXT:    )
  ;; CHECK-NEXT:    (drop
  ;; CHECK-NEXT:     (i32.const 0)
  ;; CHECK-NEXT:    )
  ;; CHECK-NEXT:    (drop
  ;; CHECK-NEXT:     (i64.const 0)
  ;; CHECK-NEXT:    )
  ;; CHECK-NEXT:    (unreachable)
  ;; CHECK-NEXT:   )
  ;; CHECK-NEXT:  )
  ;; CHECK-NEXT: )
  ;; RTRIP:      (func $wait-none (type $0)
  ;; RTRIP-NEXT:  (drop
  ;; RTRIP-NEXT:   (ref.null (shared none))
  ;; RTRIP-NEXT:  )
  ;; RTRIP-NEXT:  (drop
  ;; RTRIP-NEXT:   (global.get $wq)
  ;; RTRIP-NEXT:  )
  ;; RTRIP-NEXT:  (drop
  ;; RTRIP-NEXT:   (i32.const 0)
  ;; RTRIP-NEXT:  )
  ;; RTRIP-NEXT:  (drop
  ;; RTRIP-NEXT:   (i64.const 0)
  ;; RTRIP-NEXT:  )
  ;; RTRIP-NEXT:  (drop
  ;; RTRIP-NEXT:   (unreachable)
  ;; RTRIP-NEXT:  )
  ;; RTRIP-NEXT: )
  (func $wait-none
    (drop (struct.wait $t 0 (ref.null $t) (global.get $wq) (i32.const 0) (i64.const 0)))
  )

  ;; CHECK:      (func $notify-none (type $0)
  ;; CHECK-NEXT:  (drop
  ;; CHECK-NEXT:   (waitqueue.notify
  ;; CHECK-NEXT:    (ref.null (shared nowaitqueue))
  ;; CHECK-NEXT:    (i32.const 1)
  ;; CHECK-NEXT:   )
  ;; CHECK-NEXT:  )
  ;; CHECK-NEXT: )
  ;; RTRIP:      (func $notify-none (type $0)
  ;; RTRIP-NEXT:  (drop
  ;; RTRIP-NEXT:   (waitqueue.notify
  ;; RTRIP-NEXT:    (ref.null (shared nowaitqueue))
  ;; RTRIP-NEXT:    (i32.const 1)
  ;; RTRIP-NEXT:   )
  ;; RTRIP-NEXT:  )
  ;; RTRIP-NEXT: )
  (func $notify-none
    (drop (waitqueue.notify (ref.null (shared waitqueue)) (i32.const 1)))
  )

  ;; CHECK:      (func $new (type $0)
  ;; CHECK-NEXT:  (drop
  ;; CHECK-NEXT:   (waitqueue.new)
  ;; CHECK-NEXT:  )
  ;; CHECK-NEXT: )
  ;; RTRIP:      (func $new (type $0)
  ;; RTRIP-NEXT:  (drop
  ;; RTRIP-NEXT:   (waitqueue.new)
  ;; RTRIP-NEXT:  )
  ;; RTRIP-NEXT: )
  (func $new
    (drop (waitqueue.new))
  )
)
