| ;; NOTE: Assertions have been generated by update_lit_checks.py --all-items and should not be edited. | |
| ;; NOTE: This test was ported using port_passes_tests_to_lit.py and could be cleaned up. | |
| ;; RUN: foreach %s %t wasm-opt --simplify-globals -all -S -o - | filecheck %s | |
| ;; Test that we propagate globals into nested children of other globals. | |
| (module | |
| ;; CHECK: (type $struct (struct (field i32) (field i32) (field i32))) | |
| (type $struct (struct i32 i32 i32)) | |
| ;; CHECK: (import "x" "y" (global $no i32)) | |
| (import "x" "y" (global $no i32)) | |
| ;; CHECK: (global $a i32 (i32.const 42)) | |
| (global $a i32 (i32.const 42)) | |
| ;; CHECK: (global $b i32 (i32.const 1337)) | |
| (global $b i32 (i32.const 1337)) | |
| ;; CHECK: (global $struct (ref $struct) (struct.new $struct | |
| ;; CHECK-NEXT: (i32.const 42) | |
| ;; CHECK-NEXT: (global.get $no) | |
| ;; CHECK-NEXT: (i32.const 1337) | |
| ;; CHECK-NEXT: )) | |
| (global $struct (ref $struct) (struct.new $struct | |
| (global.get $a) | |
| (global.get $no) ;; the middle item cannot be optimized | |
| (global.get $b) | |
| )) | |
| ) | |