;; NOTE: Assertions have been generated by update_lit_checks.py and should not be edited.
;; RUN: wasm-opt -all --strip-toolchain-annotations %s -S -o - | filecheck %s

(module
  ;; CHECK:      (@metadata.code.inline "\00")
  ;; CHECK-NEXT: (func $test-func-a (type $0)
  ;; CHECK-NEXT: )
  (@metadata.code.inline "\00")
  (func $test-func-a
    ;; This VM annotation is kept.
  )

  ;; CHECK:      (func $test-func-b (type $0)
  ;; CHECK-NEXT: )
  (@binaryen.removable.if.unused)
  (func $test-func-b
    ;; Toolchain one is removed.
  )

  ;; CHECK:      (@metadata.code.inline "\00")
  ;; CHECK-NEXT: (func $test-func-c (type $0)
  ;; CHECK-NEXT: )
  (@metadata.code.inline "\00")
  (@binaryen.removable.if.unused)
  (func $test-func-c
    ;; Toolchain one is removed, VM one is kept.
  )

  ;; CHECK:      (@metadata.code.inline "\00")
  ;; CHECK-NEXT: (func $test-func-d (type $0)
  ;; CHECK-NEXT: )
  (@binaryen.removable.if.unused)
  (@metadata.code.inline "\00")
  (@binaryen.js.called)
  (func $test-func-d
    ;; Reverse order of above, and also includes js.called which is removed.
  )

  ;; CHECK:      (func $idempotent (type $0)
  ;; CHECK-NEXT: )
  (@binaryen.idempotent)
  (func $idempotent
    ;; This hint should be removed too.
  )
)


