summaryrefslogtreecommitdiff
path: root/test/unit.fromasm.imprecise.no-opts
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit.fromasm.imprecise.no-opts')
-rw-r--r--test/unit.fromasm.imprecise.no-opts72
1 files changed, 72 insertions, 0 deletions
diff --git a/test/unit.fromasm.imprecise.no-opts b/test/unit.fromasm.imprecise.no-opts
index 45e758970..67c319f50 100644
--- a/test/unit.fromasm.imprecise.no-opts
+++ b/test/unit.fromasm.imprecise.no-opts
@@ -69,6 +69,7 @@
(export "jumpThreadDrop" (func $jumpThreadDrop))
(export "dropIgnoredImportInIf" (func $dropIgnoredImportInIf))
(export "dropIgnoredImportsInIf" (func $dropIgnoredImportsInIf))
+ (export "relooperJumpThreading_irreducible" (func $relooperJumpThreading_irreducible))
(func $big_negative
(local $temp f64)
(set_local $temp
@@ -1585,6 +1586,77 @@
)
)
)
+ (func $relooperJumpThreading_irreducible (param $x i32)
+ (local $label i32)
+ (if
+ (i32.eq
+ (get_local $x)
+ (i32.const 100)
+ )
+ (set_local $label
+ (i32.const 1)
+ )
+ (set_local $label
+ (i32.const 10)
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 1)
+ )
+ (loop $while-in
+ (block $while-out
+ (call $relooperJumpThreading_irreducible
+ (i32.const 1337)
+ )
+ (set_local $label
+ (i32.const 1)
+ )
+ (br $while-in)
+ )
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $x)
+ (i32.const 200)
+ )
+ (set_local $label
+ (i32.const 2)
+ )
+ (set_local $label
+ (i32.const 10)
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $x)
+ (i32.const 300)
+ )
+ (set_local $label
+ (i32.const 2)
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 2)
+ )
+ (call $relooperJumpThreading_irreducible
+ (i32.const 1448)
+ )
+ )
+ (if
+ (i32.eq
+ (get_local $label)
+ (i32.const 10)
+ )
+ (call $relooperJumpThreading_irreducible
+ (i32.const 2000)
+ )
+ )
+ )
(func $__Z12multi_varargiz (param $$0 i32)
(local $$2 i32)
(local $$$06$i4 i32)