(module (type $iiv (func (param i32 i32))) (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) (import "env" "abort" (func $abort (param i32 i32 i32 i32))) (global $retain-i32/si (mut i32) (i32.const 0)) (global $retain-i32/ui (mut i32) (i32.const 0)) (memory $0 1) (data (i32.const 4) "\0d\00\00\00r\00e\00t\00a\00i\00n\00-\00i\003\002\00.\00t\00s") (export "memory" (memory $0)) (start $start) (func $retain-i32/test (; 1 ;) (type $iiv) (param $0 i32) (param $1 i32) (if (i32.ne (i32.and (i32.add (get_local $0) (get_local $1) ) (i32.const 255) ) (i32.and (i32.add (i32.shr_s (i32.shl (get_local $0) (i32.const 24) ) (i32.const 24) ) (i32.shr_s (i32.shl (get_local $1) (i32.const 24) ) (i32.const 24) ) ) (i32.const 255) ) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 4) (i32.const 2) ) (unreachable) ) ) (if (i32.ne (i32.and (i32.sub (get_local $0) (get_local $1) ) (i32.const 255) ) (i32.and (i32.sub (i32.shr_s (i32.shl (get_local $0) (i32.const 24) ) (i32.const 24) ) (i32.shr_s (i32.shl (get_local $1) (i32.const 24) ) (i32.const 24) ) ) (i32.const 255) ) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 5) (i32.const 2) ) (unreachable) ) ) (if (i32.ne (i32.and (i32.mul (get_local $0) (get_local $1) ) (i32.const 255) ) (i32.and (i32.mul (i32.shr_s (i32.shl (get_local $0) (i32.const 24) ) (i32.const 24) ) (i32.shr_s (i32.shl (get_local $1) (i32.const 24) ) (i32.const 24) ) ) (i32.const 255) ) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 6) (i32.const 2) ) (unreachable) ) ) (if (i32.ne (i32.and (i32.and (get_local $0) (get_local $1) ) (i32.const 255) ) (i32.and (i32.and (i32.shr_s (i32.shl (get_local $0) (i32.const 24) ) (i32.const 24) ) (i32.shr_s (i32.shl (get_local $1) (i32.const 24) ) (i32.const 24) ) ) (i32.const 255) ) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 7) (i32.const 2) ) (unreachable) ) ) (if (i32.ne (i32.and (i32.or (get_local $0) (get_local $1) ) (i32.const 255) ) (i32.and (i32.or (i32.shr_s (i32.shl (get_local $0) (i32.const 24) ) (i32.const 24) ) (i32.shr_s (i32.shl (get_local $1) (i32.const 24) ) (i32.const 24) ) ) (i32.const 255) ) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 8) (i32.const 2) ) (unreachable) ) ) (if (i32.ne (i32.and (i32.xor (get_local $0) (get_local $1) ) (i32.const 255) ) (i32.and (i32.xor (i32.shr_s (i32.shl (get_local $0) (i32.const 24) ) (i32.const 24) ) (i32.shr_s (i32.shl (get_local $1) (i32.const 24) ) (i32.const 24) ) ) (i32.const 255) ) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 9) (i32.const 2) ) (unreachable) ) ) (if (i32.ne (i32.and (i32.shl (get_local $0) (get_local $1) ) (i32.const 255) ) (i32.and (i32.shl (i32.shr_s (i32.shl (get_local $0) (i32.const 24) ) (i32.const 24) ) (i32.shr_s (i32.shl (get_local $1) (i32.const 24) ) (i32.const 24) ) ) (i32.const 255) ) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 10) (i32.const 2) ) (unreachable) ) ) (if (i32.ne (i32.and (i32.add (get_local $0) (get_local $1) ) (i32.const 255) ) (i32.and (i32.add (i32.and (get_local $0) (i32.const 255) ) (i32.and (get_local $1) (i32.const 255) ) ) (i32.const 255) ) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 13) (i32.const 2) ) (unreachable) ) ) (if (i32.ne (i32.and (i32.sub (get_local $0) (get_local $1) ) (i32.const 255) ) (i32.and (i32.sub (i32.and (get_local $0) (i32.const 255) ) (i32.and (get_local $1) (i32.const 255) ) ) (i32.const 255) ) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 14) (i32.const 2) ) (unreachable) ) ) (if (i32.ne (i32.and (i32.mul (get_local $0) (get_local $1) ) (i32.const 255) ) (i32.and (i32.mul (i32.and (get_local $0) (i32.const 255) ) (i32.and (get_local $1) (i32.const 255) ) ) (i32.const 255) ) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 15) (i32.const 2) ) (unreachable) ) ) (if (i32.ne (i32.and (i32.and (get_local $0) (get_local $1) ) (i32.const 255) ) (i32.and (i32.and (get_local $0) (i32.const 255) ) (i32.and (get_local $1) (i32.const 255) ) ) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 16) (i32.const 2) ) (unreachable) ) ) (if (i32.ne (i32.and (i32.or (get_local $0) (get_local $1) ) (i32.const 255) ) (i32.or (i32.and (get_local $0) (i32.const 255) ) (i32.and (get_local $1) (i32.const 255) ) ) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 17) (i32.const 2) ) (unreachable) ) ) (if (i32.ne (i32.and (i32.xor (get_local $0) (get_local $1) ) (i32.const 255) ) (i32.xor (i32.and (get_local $0) (i32.const 255) ) (i32.and (get_local $1) (i32.const 255) ) ) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 18) (i32.const 2) ) (unreachable) ) ) (if (i32.ne (i32.and (i32.shl (get_local $0) (get_local $1) ) (i32.const 255) ) (i32.and (i32.shl (i32.and (get_local $0) (i32.const 255) ) (i32.and (get_local $1) (i32.const 255) ) ) (i32.const 255) ) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 19) (i32.const 2) ) (unreachable) ) ) ) (func $start (; 2 ;) (type $v) (local $0 i32) (call $retain-i32/test (i32.const 0) (i32.const 127) ) (call $retain-i32/test (i32.const 127) (i32.const 0) ) (call $retain-i32/test (i32.const 1) (i32.const 127) ) (call $retain-i32/test (i32.const 127) (i32.const 1) ) (call $retain-i32/test (i32.const -1) (i32.const 127) ) (call $retain-i32/test (i32.const 127) (i32.const -1) ) (call $retain-i32/test (i32.const 0) (i32.const -128) ) (call $retain-i32/test (i32.const -128) (i32.const 0) ) (call $retain-i32/test (i32.const 1) (i32.const -128) ) (call $retain-i32/test (i32.const -128) (i32.const 1) ) (call $retain-i32/test (i32.const -1) (i32.const -128) ) (call $retain-i32/test (i32.const -128) (i32.const -1) ) (call $retain-i32/test (i32.const 127) (i32.const 127) ) (call $retain-i32/test (i32.const -128) (i32.const -128) ) (call $retain-i32/test (i32.const 127) (i32.const -128) ) (call $retain-i32/test (i32.const -128) (i32.const 127) ) (call $retain-i32/test (i32.const 0) (i32.const 255) ) (call $retain-i32/test (i32.const 255) (i32.const 0) ) (call $retain-i32/test (i32.const 1) (i32.const 255) ) (call $retain-i32/test (i32.const 255) (i32.const 1) ) (call $retain-i32/test (i32.const -1) (i32.const 255) ) (call $retain-i32/test (i32.const 255) (i32.const -1) ) (call $retain-i32/test (i32.const 255) (i32.const 255) ) (set_local $0 (i32.const -128) ) (loop $continue|0 (if (i32.le_s (get_local $0) (i32.const 255) ) (block (call $retain-i32/test (i32.const 0) (get_local $0) ) (call $retain-i32/test (i32.const 1) (get_local $0) ) (call $retain-i32/test (i32.const -1) (get_local $0) ) (call $retain-i32/test (i32.const -128) (get_local $0) ) (call $retain-i32/test (i32.const 127) (get_local $0) ) (call $retain-i32/test (i32.const 255) (get_local $0) ) (call $retain-i32/test (i32.const -32768) (get_local $0) ) (call $retain-i32/test (i32.const 32767) (get_local $0) ) (call $retain-i32/test (i32.const 65535) (get_local $0) ) (call $retain-i32/test (i32.const 2147483647) (get_local $0) ) (call $retain-i32/test (i32.const -2147483648) (get_local $0) ) (call $retain-i32/test (i32.const -1) (get_local $0) ) (set_local $0 (i32.add (get_local $0) (i32.const 1) ) ) (br $continue|0) ) ) ) (set_global $retain-i32/si (i32.const -1) ) (if (i32.ne (get_global $retain-i32/si) (i32.const -1) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 78) (i32.const 0) ) (unreachable) ) ) (set_global $retain-i32/si (i32.const -1) ) (if (i32.ne (get_global $retain-i32/si) (i32.const -1) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 81) (i32.const 0) ) (unreachable) ) ) (set_global $retain-i32/si (i32.const -2) ) (if (i32.ne (get_global $retain-i32/si) (i32.const -2) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 84) (i32.const 0) ) (unreachable) ) ) (set_global $retain-i32/si (i32.const -128) ) (if (i32.ne (get_global $retain-i32/si) (i32.const -128) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 87) (i32.const 0) ) (unreachable) ) ) (set_global $retain-i32/si (i32.const -128) ) (if (i32.ne (get_global $retain-i32/si) (i32.const -128) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 90) (i32.const 0) ) (unreachable) ) ) (set_global $retain-i32/si (i32.const -127) ) (if (i32.ne (get_global $retain-i32/si) (i32.const -127) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 93) (i32.const 0) ) (unreachable) ) ) (set_global $retain-i32/si (i32.const -128) ) (if (i32.ne (get_global $retain-i32/si) (i32.const -128) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 96) (i32.const 0) ) (unreachable) ) ) (set_global $retain-i32/si (i32.const 1) ) (if (i32.ne (get_global $retain-i32/si) (i32.const 1) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 99) (i32.const 0) ) (unreachable) ) ) (set_global $retain-i32/si (i32.const 1) ) (if (i32.ne (get_global $retain-i32/si) (i32.const 1) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 102) (i32.const 0) ) (unreachable) ) ) (set_global $retain-i32/si (i32.const 0) ) (if (get_global $retain-i32/si) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 105) (i32.const 0) ) (unreachable) ) ) (set_global $retain-i32/si (i32.const 1) ) (if (i32.ne (get_global $retain-i32/si) (i32.const 1) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 108) (i32.const 0) ) (unreachable) ) ) (set_global $retain-i32/ui (i32.const 255) ) (if (i32.ne (get_global $retain-i32/ui) (i32.const 255) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 113) (i32.const 0) ) (unreachable) ) ) (set_global $retain-i32/ui (i32.const 255) ) (if (i32.ne (get_global $retain-i32/ui) (i32.const 255) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 116) (i32.const 0) ) (unreachable) ) ) (set_global $retain-i32/ui (i32.const 254) ) (if (i32.ne (get_global $retain-i32/ui) (i32.const 254) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 119) (i32.const 0) ) (unreachable) ) ) (set_global $retain-i32/ui (i32.const 1) ) (if (i32.ne (get_global $retain-i32/ui) (i32.const 1) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 122) (i32.const 0) ) (unreachable) ) ) (set_global $retain-i32/ui (i32.const 1) ) (if (i32.ne (get_global $retain-i32/ui) (i32.const 1) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 125) (i32.const 0) ) (unreachable) ) ) (set_global $retain-i32/ui (i32.const 1) ) (if (i32.ne (get_global $retain-i32/ui) (i32.const 1) ) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 128) (i32.const 0) ) (unreachable) ) ) (set_global $retain-i32/ui (i32.const 0) ) (if (get_global $retain-i32/ui) (block (call $abort (i32.const 0) (i32.const 4) (i32.const 131) (i32.const 0) ) (unreachable) ) ) ) )