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

;; Check that we still parse the deprecated instruction mnemonics for descriptor
;; casts

(module
  (rec
    ;; CHECK:      (rec
    ;; CHECK-NEXT:  (type $struct (descriptor $desc) (struct))
    (type $struct (descriptor $desc) (struct))
    ;; CHECK:       (type $desc (describes $struct) (struct))
    (type $desc (describes $struct) (struct))
  )

  ;; CHECK:      (func $ref-cast-desc (type $3) (param $0 anyref) (param $1 (ref $desc)) (result (ref $struct))
  ;; CHECK-NEXT:  (ref.cast_desc_eq (ref $struct)
  ;; CHECK-NEXT:   (local.get $0)
  ;; CHECK-NEXT:   (local.get $1)
  ;; CHECK-NEXT:  )
  ;; CHECK-NEXT: )
  (func $ref-cast-desc (param anyref) (param (ref $desc)) (result (ref $struct))
    (ref.cast_desc (ref $struct)
      (local.get 0)
      (local.get 1)
    )
  )

  ;; CHECK:      (func $br-on-cast-desc (type $2) (param $0 anyref) (param $1 (ref $desc)) (result anyref)
  ;; CHECK-NEXT:  (block $l (result anyref)
  ;; CHECK-NEXT:   (br_on_cast_desc_eq $l anyref (ref $struct)
  ;; CHECK-NEXT:    (local.get $0)
  ;; CHECK-NEXT:    (local.get $1)
  ;; CHECK-NEXT:   )
  ;; CHECK-NEXT:  )
  ;; CHECK-NEXT: )
  (func $br-on-cast-desc (param anyref) (param (ref $desc)) (result anyref)
    (block $l (result anyref)
      (br_on_cast_desc $l anyref (ref $struct)
        (local.get 0)
        (local.get 1)
      )
    )
  )

  ;; CHECK:      (func $br-on-cast-desc_fail (type $2) (param $0 anyref) (param $1 (ref $desc)) (result anyref)
  ;; CHECK-NEXT:  (block $l (result anyref)
  ;; CHECK-NEXT:   (br_on_cast_desc_eq_fail $l anyref (ref $struct)
  ;; CHECK-NEXT:    (local.get $0)
  ;; CHECK-NEXT:    (local.get $1)
  ;; CHECK-NEXT:   )
  ;; CHECK-NEXT:  )
  ;; CHECK-NEXT: )
  (func $br-on-cast-desc_fail (param anyref) (param (ref $desc)) (result anyref)
    (block $l (result anyref)
      (br_on_cast_desc_fail $l anyref (ref $struct)
        (local.get 0)
        (local.get 1)
      )
    )
  )
)
