;; NOTE: Assertions have been generated by update_lit_checks.py and should not be edited. ;; Test that casts to basic types round trip properly. ;; RUN: wasm-opt %s -all --roundtrip -S -o - | filecheck %s (module ;; CHECK: (func $test (type $none_=>_i32) (result i32) ;; CHECK-NEXT: (ref.test data ;; CHECK-NEXT: (ref.null none) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) (func $test (result i32) (ref.test struct (ref.null none) ) ) ;; CHECK: (func $cast (type $none_=>_none) ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (ref.cast null data ;; CHECK-NEXT: (ref.null none) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) (func $cast (drop (ref.cast null struct (ref.null none) ) ) ) ;; CHECK: (func $br (type $none_=>_none) ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (block $label$1 (result dataref) ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (br_on_cast $label$1 data ;; CHECK-NEXT: (ref.null none) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (ref.null none) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) (func $br (drop (block $l (result structref) (drop (br_on_cast $l struct (ref.null none) ) ) (ref.null none) ) ) ) ;; CHECK: (func $br-fail (type $none_=>_none) ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (block $label$1 (result dataref) ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (br_on_cast_fail $label$1 data ;; CHECK-NEXT: (ref.null none) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (ref.null none) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) (func $br-fail (drop (block $l (result structref) (drop (br_on_cast_fail $l struct (ref.null none) ) ) (ref.null none) ) ) ) )