diff --git a/tests/address.wast b/tests/address.wast index 08839874..320ea36b 100644 --- a/tests/address.wast +++ b/tests/address.wast @@ -608,4 +608,3 @@ (assert_trap (invoke "64_bad" (i32.const 0)) "out of bounds memory access") (assert_trap (invoke "64_bad" (i32.const 1)) "out of bounds memory access") - diff --git a/tests/align.wast b/tests/align.wast index 93064649..7753df8d 100644 --- a/tests/align.wast +++ b/tests/align.wast @@ -864,3 +864,120 @@ (assert_trap (invoke "store" (i32.const 65532) (i64.const -1)) "out of bounds memory access") ;; No memory was changed (assert_return (invoke "load" (i32.const 65532)) (i32.const 0)) + +;; Test invalid alignment values that may cause overflow when parsed. +;; These use the binary format, because it stores alignment as a base-2 exponent. + +;; Signed 32-bit overflow +(assert_invalid + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section: 1 type + "\03\02\01\00" ;; Function section: 1 function + "\05\03\01\00\01" ;; Memory section: 1 memory + "\0a\0a\01" ;; Code section: 1 function + + ;; function 0 + "\08\00" + "\41\00" ;; i32.const 0 + "\28\1f\00" ;; i32.load offset=0 align=2**31 + "\1a" ;; drop + "\0b" ;; end + ) + "alignment must not be larger than natural" +) + +;; Unsigned 32-bit overflow +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section: 1 type + "\03\02\01\00" ;; Function section: 1 function + "\05\03\01\00\01" ;; Memory section: 1 memory + "\0a\0a\01" ;; Code section: 1 function + + ;; function 0 + "\08\00" + "\41\00" ;; i32.const 0 + "\28\20\00" ;; i32.load offset=0 align=2**32 + "\1a" ;; drop + "\0b" ;; end + ) + "malformed memop flags" +) + +;; 32-bit out of range +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section: 1 type + "\03\02\01\00" ;; Function section: 1 function + "\05\03\01\00\01" ;; Memory section: 1 memory + "\0a\0a\01" ;; Code section: 1 function + + ;; function 0 + "\08\00" + "\41\00" ;; i32.const 0 + "\28\21\00" ;; i32.load offset=0 align=2**33 + "\1a" ;; drop + "\0b" ;; end + ) + "malformed memop flags" +) + +;; Signed 64-bit overflow +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section: 1 type + "\03\02\01\00" ;; Function section: 1 function + "\05\03\01\00\01" ;; Memory section: 1 memory + "\0a\0a\01" ;; Code section: 1 function + + ;; function 0 + "\08\00" + "\41\00" ;; i32.const 0 + "\28\3f\00" ;; i32.load offset=0 align=2**63 + "\1a" ;; drop + "\0b" ;; end + ) + "malformed memop flags" +) + +;; Unsigned 64-bit overflow +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section: 1 type + "\03\02\01\00" ;; Function section: 1 function + "\05\03\01\00\01" ;; Memory section: 1 memory + "\0a\0a\01" ;; Code section: 1 function + + ;; function 0 + "\08\00" + "\41\00" ;; i32.const 0 + "\28\40\00" ;; i32.load offset=0 align=2**64 + "\1a" ;; drop + "\0b" ;; end + ) + "malformed memop flags" +) + +;; 64-bit out of range +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section: 1 type + "\03\02\01\00" ;; Function section: 1 function + "\05\03\01\00\01" ;; Memory section: 1 memory + "\0a\0a\01" ;; Code section: 1 function + + ;; function 0 + "\08\00" + "\41\00" ;; i32.const 0 + "\28\41\00" ;; i32.load offset=0 align=2**65 + "\1a" ;; drop + "\0b" ;; end + ) + "malformed memop flags" +) diff --git a/tests/binary-leb128.wast b/tests/binary-leb128.wast new file mode 100644 index 00000000..154f6bde --- /dev/null +++ b/tests/binary-leb128.wast @@ -0,0 +1,1084 @@ +;; Unsigned LEB128 can have non-minimal length +(module binary + "\00asm" "\01\00\00\00" + "\05\04\01" ;; Memory section with 1 entry + "\00\82\00" ;; no max, minimum 2 +) +(module binary + "\00asm" "\01\00\00\00" + "\05\07\01" ;; Memory section with 1 entry + "\00\82\80\80\80\00" ;; no max, minimum 2 +) +(module binary + "\00asm" "\01\00\00\00" + "\05\06\01" ;; Memory section with 1 entry + "\01\82\00" ;; minimum 2 + "\82\00" ;; max 2 +) +(module binary + "\00asm" "\01\00\00\00" + "\05\09\01" ;; Memory section with 1 entry + "\01\82\00" ;; minimum 2 + "\82\80\80\80\00" ;; max 2 +) +(module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; Memory section with 1 entry + "\00\00" ;; no max, minimum 0 + "\0b\07\01" ;; Data section with 1 entry + "\80\00" ;; Memory index 0, encoded with 2 bytes + "\41\00\0b\00" ;; (i32.const 0) with contents "" +) +;; W2C2: No support for multiple tables +;; (module binary +;; "\00asm" "\01\00\00\00" +;; "\04\04\01" ;; Table section with 1 entry +;; "\70\00\00" ;; no max, minimum 0, funcref +;; "\09\09\01" ;; Element section with 1 entry +;; "\02" ;; Element with explicit table index +;; "\80\00" ;; Table index 0, encoded with 2 bytes +;; "\41\00\0b\00\00" ;; (i32.const 0) with no elements +;; ) +(module binary + "\00asm" "\01\00\00\00" + "\00" ;; custom section + "\8a\00" ;; section size 10, encoded with 2 bytes + "\01" ;; name byte count + "1" ;; name + "23456789" ;; sequence of bytes +) +(module binary + "\00asm" "\01\00\00\00" + "\00" ;; custom section + "\0b" ;; section size + "\88\00" ;; name byte count 8, encoded with 2 bytes + "12345678" ;; name + "9" ;; sequence of bytes +) +(module binary + "\00asm" "\01\00\00\00" + "\01\08\01" ;; type section + "\60" ;; func type + "\82\00" ;; num params 2, encoded with 2 bytes + "\7f\7e" ;; param type + "\01" ;; num results + "\7f" ;; result type +) +(module binary + "\00asm" "\01\00\00\00" + "\01\08\01" ;; type section + "\60" ;; func type + "\02" ;; num params + "\7f\7e" ;; param type + "\81\00" ;; num results 1, encoded with 2 bytes + "\7f" ;; result type +) +(module binary + "\00asm" "\01\00\00\00" + "\01\05\01" ;; type section + "\60\01\7f\00" ;; function type + "\02\17\01" ;; import section + "\88\00" ;; module name length 8, encoded with 2 bytes + "\73\70\65\63\74\65\73\74" ;; module name + "\09" ;; entity name length + "\70\72\69\6e\74\5f\69\33\32" ;; entity name + "\00" ;; import kind + "\00" ;; import signature index +) +(module binary + "\00asm" "\01\00\00\00" + "\01\05\01" ;; type section + "\60\01\7f\00" ;; function type + "\02\17\01" ;; import section + "\08" ;; module name length + "\73\70\65\63\74\65\73\74" ;; module name + "\89\00" ;; entity name length 9, encoded with 2 bytes + "\70\72\69\6e\74\5f\69\33\32" ;; entity name + "\00" ;; import kind + "\00" ;; import signature index +) +(module binary + "\00asm" "\01\00\00\00" + "\01\05\01" ;; type section + "\60\01\7f\00" ;; function type + "\02\17\01" ;; import section + "\08" ;; module name length + "\73\70\65\63\74\65\73\74" ;; module name + "\09" ;; entity name length 9 + "\70\72\69\6e\74\5f\69\33\32" ;; entity name + "\00" ;; import kind + "\80\00" ;; import signature index, encoded with 2 bytes +) +(module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; function type + "\03\03\01" ;; function section + "\80\00" ;; function 0 signature index, encoded with 2 bytes + "\0a\04\01" ;; code section + "\02\00\0b" ;; function body +) +(module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; fun type + "\03\02\01\00" ;; function section + "\07\07\01" ;; export section + "\82\00" ;; string length 2, encoded with 2 bytes + "\66\31" ;; export name f1 + "\00" ;; export kind + "\00" ;; export func index + "\0a\04\01" ;; code section + "\02\00\0b" ;; function body +) +(module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; fun type + "\03\02\01\00" ;; function section + "\07\07\01" ;; export section + "\02" ;; string length 2 + "\66\31" ;; export name f1 + "\00" ;; export kind + "\80\00" ;; export func index, encoded with 2 bytes + "\0a\04\01" ;; code section + "\02\00\0b" ;; function body +) +(module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; fun type + "\03\02\01\00" ;; function section + "\0a" ;; code section + "\05" ;; section size + "\81\00" ;; num functions, encoded with 2 bytes + "\02\00\0b" ;; function body +) + +;; Signed LEB128 can have non-minimal length +(module binary + "\00asm" "\01\00\00\00" + "\06\07\01" ;; Global section with 1 entry + "\7f\00" ;; i32, immutable + "\41\80\00" ;; i32.const 0 + "\0b" ;; end +) +(module binary + "\00asm" "\01\00\00\00" + "\06\07\01" ;; Global section with 1 entry + "\7f\00" ;; i32, immutable + "\41\ff\7f" ;; i32.const -1 + "\0b" ;; end +) +(module binary + "\00asm" "\01\00\00\00" + "\06\0a\01" ;; Global section with 1 entry + "\7f\00" ;; i32, immutable + "\41\80\80\80\80\00" ;; i32.const 0 + "\0b" ;; end +) +(module binary + "\00asm" "\01\00\00\00" + "\06\0a\01" ;; Global section with 1 entry + "\7f\00" ;; i32, immutable + "\41\ff\ff\ff\ff\7f" ;; i32.const -1 + "\0b" ;; end +) + +(module binary + "\00asm" "\01\00\00\00" + "\06\07\01" ;; Global section with 1 entry + "\7e\00" ;; i64, immutable + "\42\80\00" ;; i64.const 0 with unused bits set + "\0b" ;; end +) +(module binary + "\00asm" "\01\00\00\00" + "\06\07\01" ;; Global section with 1 entry + "\7e\00" ;; i64, immutable + "\42\ff\7f" ;; i64.const -1 with unused bits unset + "\0b" ;; end +) +(module binary + "\00asm" "\01\00\00\00" + "\06\0f\01" ;; Global section with 1 entry + "\7e\00" ;; i64, immutable + "\42\80\80\80\80\80\80\80\80\80\00" ;; i64.const 0 with unused bits set + "\0b" ;; end +) +(module binary + "\00asm" "\01\00\00\00" + "\06\0f\01" ;; Global section with 1 entry + "\7e\00" ;; i64, immutable + "\42\ff\ff\ff\ff\ff\ff\ff\ff\ff\7f" ;; i64.const -1 with unused bits unset + "\0b" ;; end +) + +;; Unsigned LEB128 must not be overlong +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\08\01" ;; Memory section with 1 entry + "\00\82\80\80\80\80\00" ;; no max, minimum 2 with one byte too many + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\0a\01" ;; Memory section with 1 entry + "\01\82\00" ;; minimum 2 + "\82\80\80\80\80\00" ;; max 2 with one byte too many + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; Memory section with 1 entry + "\00\00" ;; no max, minimum 0 + "\0b\0b\01" ;; Data section with 1 entry + "\80\80\80\80\80\00" ;; Memory index 0 with one byte too many + "\41\00\0b\00" ;; (i32.const 0) with contents "" + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\04\04\01" ;; Table section with 1 entry + "\70\00\00" ;; no max, minimum 0, funcref + "\09\0b\01" ;; Element section with 1 entry + "\80\80\80\80\80\00" ;; Table index 0 with one byte too many + "\41\00\0b\00" ;; (i32.const 0) with no elements + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\00" ;; custom section + "\83\80\80\80\80\00" ;; section size 3 with one byte too many + "\01" ;; name byte count + "1" ;; name + "2" ;; sequence of bytes + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\00" ;; custom section + "\0A" ;; section size + "\83\80\80\80\80\00" ;; name byte count 3 with one byte too many + "123" ;; name + "4" ;; sequence of bytes + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\0c\01" ;; type section + "\60" ;; func type + "\82\80\80\80\80\00" ;; num params 2 with one byte too many + "\7f\7e" ;; param type + "\01" ;; num result + "\7f" ;; result type + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\0c\01" ;; type section + "\60" ;; func type + "\02" ;; num params + "\7f\7e" ;; param type + "\81\80\80\80\80\00" ;; num result 1 with one byte too many + "\7f" ;; result type + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\05\01" ;; type section + "\60\01\7f\00" ;; function type + "\02\1b\01" ;; import section + "\88\80\80\80\80\00" ;; module name length 8 with one byte too many + "\73\70\65\63\74\65\73\74" ;; module name + "\09" ;; entity name length + "\70\72\69\6e\74\5f\69\33\32" ;; entity name + "\00" ;; import kind + "\00" ;; import signature index + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\05\01" ;; type section + "\60\01\7f\00" ;; function type + "\02\1b\01" ;; import section + "\08" ;; module name length + "\73\70\65\63\74\65\73\74" ;; module name + "\89\80\80\80\80\00" ;; entity name length 9 with one byte too many + "\70\72\69\6e\74\5f\69\33\32" ;; entity name + "\00" ;; import kind + "\00" ;; import signature index + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\05\01" ;; type section + "\60\01\7f\00" ;; function type + "\02\1b\01" ;; import section + "\08" ;; module name length + "\73\70\65\63\74\65\73\74" ;; module name + "\09" ;; entity name length 9 + "\70\72\69\6e\74\5f\69\33\32" ;; entity name + "\00" ;; import kind + "\80\80\80\80\80\00" ;; import signature index 0 with one byte too many + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; function type + "\03\03\01" ;; function section + "\80\80\80\80\80\00" ;; function 0 signature index with one byte too many + "\0a\04\01" ;; code section + "\02\00\0b" ;; function body + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; fun type + "\03\02\01\00" ;; function section + "\07\0b\01" ;; export section + "\82\80\80\80\80\00" ;; string length 2 with one byte too many + "\66\31" ;; export name f1 + "\00" ;; export kind + "\00" ;; export func index + "\0a\04\01" ;; code section + "\02\00\0b" ;; function body + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; fun type + "\03\02\01\00" ;; function section + "\07\0b\01" ;; export section + "\02" ;; string length 2 + "\66\31" ;; export name f1 + "\00" ;; export kind + "\80\80\80\80\80\00" ;; export func index 0 with one byte too many + "\0a\04\01" ;; code section + "\02\00\0b" ;; function body + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; fun type + "\03\02\01\00" ;; function section + "\0a" ;; code section + "\05" ;; section size + "\81\80\80\80\80\00" ;; num functions 1 with one byte too many + "\02\00\0b" ;; function body + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\01" ;; Memory section + "\0a\11\01" ;; Code section + ;; function 0 + "\0f\01\01" ;; local type count + "\7f" ;; i32 + "\41\00" ;; i32.const 0 + "\28" ;; i32.load + "\02" ;; alignment 2 + "\82\80\80\80\80\80\80\80\80\80\00" ;; offset 2 with one byte too many + "\1a" ;; drop + "\0b" ;; end + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\01" ;; Memory section + "\0a\11\01" ;; Code section + ;; function 0 + "\0f\01\01" ;; local type count + "\7f" ;; i32 + "\41\00" ;; i32.const 0 + "\28" ;; i32.load + "\82\80\80\80\80\00" ;; alignment 2 with one byte too many + "\00" ;; offset 0 + "\1a" ;; drop + "\0b" ;; end + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\01" ;; Memory section + "\0a\12\01" ;; Code section + ;; function 0 + "\10\01\01" ;; local type count + "\7f" ;; i32 + "\41\00" ;; i32.const 0 + "\41\03" ;; i32.const 3 + "\36" ;; i32.store + "\82\80\80\80\80\00" ;; alignment 2 with one byte too many + "\03" ;; offset 3 + "\0b" ;; end + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\01" ;; Memory section + "\0a\12\01" ;; Code section + ;; function 0 + "\10\01\01" ;; local type count + "\7f" ;; i32 + "\41\00" ;; i32.const 0 + "\41\03" ;; i32.const 3 + "\36" ;; i32.store + "\02" ;; alignment 2 + "\82\80\80\80\80\80\80\80\80\80\00" ;; offset 2 with one byte too many + "\0b" ;; end + ) + "integer representation too long" +) + +;; Signed LEB128 must not be overlong +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\0b\01" ;; Global section with 1 entry + "\7f\00" ;; i32, immutable + "\41\80\80\80\80\80\00" ;; i32.const 0 with one byte too many + "\0b" ;; end + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\0b\01" ;; Global section with 1 entry + "\7f\00" ;; i32, immutable + "\41\ff\ff\ff\ff\ff\7f" ;; i32.const -1 with one byte too many + "\0b" ;; end + ) + "integer representation too long" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\10\01" ;; Global section with 1 entry + "\7e\00" ;; i64, immutable + "\42\80\80\80\80\80\80\80\80\80\80\00" ;; i64.const 0 with one byte too many + "\0b" ;; end + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\10\01" ;; Global section with 1 entry + "\7e\00" ;; i64, immutable + "\42\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\7f" ;; i64.const -1 with one byte too many + "\0b" ;; end + ) + "integer representation too long" +) + +;; Unsigned LEB128s zero-extend +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\07\01" ;; Memory section with 1 entry + "\00\82\80\80\80\70" ;; no max, minimum 2 with unused bits set + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\07\01" ;; Memory section with 1 entry + "\00\82\80\80\80\40" ;; no max, minimum 2 with some unused bits set + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\09\01" ;; Memory section with 1 entry + "\01\82\00" ;; minimum 2 + "\82\80\80\80\10" ;; max 2 with unused bits set + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\09\01" ;; Memory section with 1 entry + "\01\82\00" ;; minimum 2 + "\82\80\80\80\40" ;; max 2 with some unused bits set + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; Memory section with 1 entry + "\00\00" ;; no max, minimum 0 + "\0b\0a\01" ;; Data section with 1 entry + "\80\80\80\80\10" ;; Memory index 0 with unused bits set + "\41\00\0b\00" ;; (i32.const 0) with contents "" + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\04\04\01" ;; Table section with 1 entry + "\70\00\00" ;; no max, minimum 0, funcref + "\09\0a\01" ;; Element section with 1 entry + "\80\80\80\80\10" ;; Table index 0 with unused bits set + "\41\00\0b\00" ;; (i32.const 0) with no elements + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\00" ;; custom section + "\83\80\80\80\10" ;; section size 3 with unused bits set + "\01" ;; name byte count + "1" ;; name + "2" ;; sequence of bytes + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\00" ;; custom section + "\09" ;; section size + "\83\80\80\80\40" ;; name byte count 3 with unused bits set + "123" ;; name + "4" ;; sequence of bytes + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\0b\01" ;; type section + "\60" ;; func type + "\82\80\80\80\10" ;; num params 2 with unused bits set + "\7f\7e" ;; param type + "\01" ;; num result + "\7f" ;; result type + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\0b\01" ;; type section + "\60" ;; func type + "\02" ;; num params + "\7f\7e" ;; param type + "\81\80\80\80\40" ;; num result 1 with unused bits set + "\7f" ;; result type + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\05\01" ;; type section + "\60\01\7f\00" ;; function type + "\02\1a\01" ;; import section + "\88\80\80\80\10" ;; module name length 8 with unused bits set + "\73\70\65\63\74\65\73\74" ;; module name + "\09" ;; entity name length + "\70\72\69\6e\74\5f\69\33\32" ;; entity name + "\00" ;; import kind + "\00" ;; import signature index + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\05\01" ;; type section + "\60\01\7f\00" ;; function type + "\02\1a\01" ;; import section + "\08" ;; module name length + "\73\70\65\63\74\65\73\74" ;; module name + "\89\80\80\80\40" ;; entity name length 9 with unused bits set + "\70\72\69\6e\74\5f\69\33\32" ;; entity name + "\00" ;; import kind + "\00" ;; import signature index + ) + "integer too large" +) +(assert_malformed +(module binary + "\00asm" "\01\00\00\00" + "\01\05\01" ;; type section + "\60\01\7f\00" ;; function type + "\02\1a\01" ;; import section + "\08" ;; module name length + "\73\70\65\63\74\65\73\74" ;; module name + "\09" ;; entity name length 9 + "\70\72\69\6e\74\5f\69\33\32" ;; entity name + "\00" ;; import kind + "\80\80\80\80\10" ;; import signature index 0 with unused bits set +) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; function type + "\03\06\01" ;; function section + "\80\80\80\80\10" ;; function 0 signature index with unused bits set + "\0a\04\01" ;; code section + "\02\00\0b" ;; function body + ) + "integer too large" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; fun type + "\03\02\01\00" ;; function section + "\07\0a\01" ;; export section + "\82\80\80\80\10" ;; string length 2 with unused bits set + "\66\31" ;; export name f1 + "\00" ;; export kind + "\00" ;; export func index + "\0a\04\01" ;; code section + "\02\00\0b" ;; function body + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; fun type + "\03\02\01\00" ;; function section + "\07\0a\01" ;; export section + "\02" ;; string length 2 + "\66\31" ;; export name f1 + "\00" ;; export kind + "\80\80\80\80\10" ;; export func index with unused bits set + "\0a\04\01" ;; code section + "\02\00\0b" ;; function body + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; fun type + "\03\02\01\00" ;; function section + "\0a" ;; code section + "\08" ;; section size + "\81\80\80\80\10" ;; num functions 1 with unused bits set + "\02\00\0b" ;; function body + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\01" ;; Memory section + "\0a\10\01" ;; Code section + ;; function 0 + "\0e\01\01" ;; local type count + "\7f" ;; i32 + "\41\00" ;; i32.const 0 + "\28" ;; i32.load + "\02" ;; alignment 2 + "\82\80\80\80\80\80\80\80\80\10" ;; offset 2 with unused bits set + "\1a" ;; drop + "\0b" ;; end + ) + ;; TODO: This changes to "integer too large" with memory64. + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\01" ;; Memory section + "\0a\10\01" ;; Code section + ;; function 0 + "\0e\01\01" ;; local type count + "\7f" ;; i32 + "\41\00" ;; i32.const 0 + "\28" ;; i32.load + "\02" ;; alignment 2 + "\82\80\80\80\80\80\80\80\80\40" ;; offset 2 with some unused bits set + "\1a" ;; drop + "\0b" ;; end + ) + ;; TODO: This changes to "integer too large" with memory64. + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\01" ;; Memory section + "\0a\10\01" ;; Code section + "\0e\01\01" ;; local type count + "\7f" ;; i32 + "\41\00" ;; i32.const 0 + "\28" ;; i32.load + "\82\80\80\80\10" ;; alignment 2 with unused bits set + "\00" ;; offset 0 + "\1a" ;; drop + "\0b" ;; end + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\01" ;; Memory section + "\0a\10\01" ;; Code section + ;; function 0 + "\0e\01\01" ;; local type count + "\7f" ;; i32 + "\41\00" ;; i32.const 0 + "\28" ;; i32.load + "\82\80\80\80\40" ;; alignment 2 with some unused bits set + "\00" ;; offset 0 + "\1a" ;; drop + "\0b" ;; end + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\01" ;; Memory section + "\0a\11\01" ;; Code section + ;; function 0 + "\0f\01\01" ;; local type count + "\7f" ;; i32 + "\41\00" ;; i32.const 0 + "\41\03" ;; i32.const 3 + "\36" ;; i32.store + "\82\80\80\80\10" ;; alignment 2 with unused bits set + "\03" ;; offset 3 + "\0b" ;; end + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\01" ;; Memory section + "\0a\11\01" ;; Code section + ;; function 0 + "\0f\01\01" ;; local type count + "\7f" ;; i32 + "\41\00" ;; i32.const 0 + "\41\03" ;; i32.const 3 + "\36" ;; i32.store + "\82\80\80\80\40" ;; alignment 2 with some unused bits set + "\03" ;; offset 3 + "\0b" ;; end + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\01" ;; Memory section + "\0a\11\01" ;; Code section + ;; function 0 + "\0f\01\01" ;; local type count + "\7f" ;; i32 + "\41\00" ;; i32.const 0 + "\41\03" ;; i32.const 3 + "\36" ;; i32.store + "\02" ;; alignment 2 + "\82\80\80\80\80\80\80\80\80\10" ;; offset 2 with unused bits set + "\0b" ;; end + ) + ;; TODO: This changes to "integer too large" with memory64. + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\01" ;; Memory section + "\0a\11\01" ;; Code section + ;; function 0 + "\0f\01\01" ;; local type count + "\7f" ;; i32 + "\41\00" ;; i32.const 0 + "\41\03" ;; i32.const 3 + "\36" ;; i32.store + "\02" ;; alignment 2 + "\82\80\80\80\80\80\80\80\80\40" ;; offset 2 with some unused bits set + "\0b" ;; end + ) + ;; TODO: This changes to "integer too large" with memory64. + "integer representation too long" +) + +;; Signed LEB128s sign-extend +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\0a\01" ;; Global section with 1 entry + "\7f\00" ;; i32, immutable + "\41\80\80\80\80\70" ;; i32.const 0 with unused bits set + "\0b" ;; end + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\0a\01" ;; Global section with 1 entry + "\7f\00" ;; i32, immutable + "\41\ff\ff\ff\ff\0f" ;; i32.const -1 with unused bits unset + "\0b" ;; end + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\0a\01" ;; Global section with 1 entry + "\7f\00" ;; i32, immutable + "\41\80\80\80\80\1f" ;; i32.const 0 with some unused bits set + "\0b" ;; end + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\0a\01" ;; Global section with 1 entry + "\7f\00" ;; i32, immutable + "\41\ff\ff\ff\ff\4f" ;; i32.const -1 with some unused bits unset + "\0b" ;; end + ) + "integer too large" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\0f\01" ;; Global section with 1 entry + "\7e\00" ;; i64, immutable + "\42\80\80\80\80\80\80\80\80\80\7e" ;; i64.const 0 with unused bits set + "\0b" ;; end + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\0f\01" ;; Global section with 1 entry + "\7e\00" ;; i64, immutable + "\42\ff\ff\ff\ff\ff\ff\ff\ff\ff\01" ;; i64.const -1 with unused bits unset + "\0b" ;; end + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\0f\01" ;; Global section with 1 entry + "\7e\00" ;; i64, immutable + "\42\80\80\80\80\80\80\80\80\80\02" ;; i64.const 0 with some unused bits set + "\0b" ;; end + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\0f\01" ;; Global section with 1 entry + "\7e\00" ;; i64, immutable + "\42\ff\ff\ff\ff\ff\ff\ff\ff\ff\41" ;; i64.const -1 with some unused bits unset + "\0b" ;; end + ) + "integer too large" +) + +(module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; empty function type + "\03\02\01" ;; function section + "\00" ;; function 0, type 0 + "\0a\1b\01\19" ;; code section + "\00" ;; no locals + "\00" ;; unreachable + "\fc\80\00" ;; i32_trunc_sat_f32_s with 2 bytes + "\00" ;; unreachable + "\fc\81\80\00" ;; i32_trunc_sat_f32_u with 3 bytes + "\00" ;; unreachable + "\fc\86\80\80\00" ;; i64_trunc_sat_f64_s with 4 bytes + "\00" ;; unreachable + "\fc\87\80\80\80\00" ;; i64_trunc_sat_f64_u with 5 bytes + "\00" ;; unreachable + "\0b" ;; end +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; empty function type + "\03\02\01" ;; function section + "\00" ;; function 0, type 0 + "\0a\0d\01\0b" ;; code section + "\00" ;; no locals + "\00" ;; unreachable + "\fc\87\80\80\80\80\00" ;; i64_trunc_sat_f64_u with 6 bytes + "\00" ;; unreachable + "\0b" ;; end + ) + "integer representation too long" +) + +;; Data segment tags and memory index can have non-minimal length +(module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; Memory section with 1 entry + "\00\00" ;; no max, minimum 0 + "\0b\07\01" ;; Data section with 1 entry + "\80\00" ;; Active segment, encoded with 2 bytes + "\41\00\0b\00" ;; (i32.const 0) with contents "" +) +(module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; Memory section with 1 entry + "\00\00" ;; no max, minimum 0 + "\0b\08\01" ;; Data section with 1 entry + "\82\00" ;; Active segment, encoded with 2 bytes + "\00" ;; explicit memory index + "\41\00\0b\00" ;; (i32.const 0) with contents "" +) +(module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; Memory section with 1 entry + "\00\00" ;; no max, minimum 0 + "\0b\09\01" ;; Data section with 1 entry + "\82\00" ;; Active segment, encoded with 2 bytes + "\80\00" ;; explicit memory index, encoded with 2 bytes + "\41\00\0b\00" ;; (i32.const 0) with contents "" +) + +;; W2C2: No support for multiple tables +;; ;; Element segment tags and table index can have non-minimal length +;; (module binary +;; "\00asm" "\01\00\00\00" +;; "\04\04\01" ;; Table section with 1 entry +;; "\70\00\00" ;; no max, minimum 0, funcref +;; "\09\07\01" ;; Element section with 1 entry +;; "\80\00" ;; Active segment +;; "\41\00\0b\00" ;; (i32.const 0) with no elements +;; ) +;; (module binary +;; "\00asm" "\01\00\00\00" +;; "\04\04\01" ;; Table section with 1 entry +;; "\70\00\00" ;; no max, minimum 0, funcref +;; "\09\09\01" ;; Element section with 1 entry +;; "\02" ;; Active segment +;; "\80\00" ;; explicit table index, encoded with 2 bytes +;; "\41\00\0b\00\00" ;; (i32.const 0) with no elements +;; ) +;; (module binary +;; "\00asm" "\01\00\00\00" +;; "\04\04\01" ;; Table section with 1 entry +;; "\70\00\00" ;; no max, minimum 0, funcref +;; "\09\09\01" ;; Element section with 1 entry +;; "\82\00" ;; Active segment, encoded with 2 bytes +;; "\00" ;; explicit table index +;; "\41\00\0b\00\00" ;; (i32.const 0) with no elements +;; ) +;; (module binary +;; "\00asm" "\01\00\00\00" +;; "\04\04\01" ;; Table section with 1 entry +;; "\70\00\00" ;; no max, minimum 0, funcref +;; "\09\0a\01" ;; Element section with 1 entry +;; "\82\00" ;; Active segment, encoded with 2 bytes +;; "\80\00" ;; explicit table index, encoded with 2 bytes +;; "\41\00\0b\00\00" ;; (i32.const 0) with no elements +;; ) + +;; Type section with signed LEB128 encoded type +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01" ;; Type section id + "\05" ;; Type section length + "\01" ;; Types vector length + "\e0\7f" ;; Malformed functype, -0x20 in signed LEB128 encoding + "\00\00" + ) + "integer representation too long" +) diff --git a/tests/binary.wast b/tests/binary.wast new file mode 100644 index 00000000..8ae4734e --- /dev/null +++ b/tests/binary.wast @@ -0,0 +1,1403 @@ +(module binary "\00asm\01\00\00\00") +(module binary "\00asm" "\01\00\00\00") +(module $M1 binary "\00asm\01\00\00\00") +(module $M2 binary "\00asm" "\01\00\00\00") + +(assert_malformed (module binary "") "unexpected end") +(assert_malformed (module binary "\01") "unexpected end") +(assert_malformed (module binary "\00as") "unexpected end") +(assert_malformed (module binary "asm\00") "magic header not detected") +(assert_malformed (module binary "msa\00") "magic header not detected") +(assert_malformed (module binary "msa\00\01\00\00\00") "magic header not detected") +(assert_malformed (module binary "msa\00\00\00\00\01") "magic header not detected") +(assert_malformed (module binary "asm\01\00\00\00\00") "magic header not detected") +(assert_malformed (module binary "wasm\01\00\00\00") "magic header not detected") +(assert_malformed (module binary "\7fasm\01\00\00\00") "magic header not detected") +(assert_malformed (module binary "\80asm\01\00\00\00") "magic header not detected") +(assert_malformed (module binary "\82asm\01\00\00\00") "magic header not detected") +(assert_malformed (module binary "\ffasm\01\00\00\00") "magic header not detected") + +;; 8-byte endian-reversed. +(assert_malformed (module binary "\00\00\00\01msa\00") "magic header not detected") + +;; Middle-endian byte orderings. +(assert_malformed (module binary "a\00ms\00\01\00\00") "magic header not detected") +(assert_malformed (module binary "sm\00a\00\00\01\00") "magic header not detected") + +;; Upper-cased. +(assert_malformed (module binary "\00ASM\01\00\00\00") "magic header not detected") + +;; EBCDIC-encoded magic. +(assert_malformed (module binary "\00\81\a2\94\01\00\00\00") "magic header not detected") + +;; Leading UTF-8 BOM. +(assert_malformed (module binary "\ef\bb\bf\00asm\01\00\00\00") "magic header not detected") + +;; Malformed binary version. +(assert_malformed (module binary "\00asm") "unexpected end") +(assert_malformed (module binary "\00asm\01") "unexpected end") +(assert_malformed (module binary "\00asm\01\00\00") "unexpected end") +(assert_malformed (module binary "\00asm\00\00\00\00") "unknown binary version") +(assert_malformed (module binary "\00asm\0d\00\00\00") "unknown binary version") +(assert_malformed (module binary "\00asm\0e\00\00\00") "unknown binary version") +(assert_malformed (module binary "\00asm\00\01\00\00") "unknown binary version") +(assert_malformed (module binary "\00asm\00\00\01\00") "unknown binary version") +(assert_malformed (module binary "\00asm\00\00\00\01") "unknown binary version") + +;; Invalid section id. +(assert_malformed (module binary "\00asm" "\01\00\00\00" "\0e\01\00") "malformed section id") +(assert_malformed (module binary "\00asm" "\01\00\00\00" "\7f\01\00") "malformed section id") +(assert_malformed (module binary "\00asm" "\01\00\00\00" "\80\01\00\01\01\00") "malformed section id") +(assert_malformed (module binary "\00asm" "\01\00\00\00" "\81\01\00\01\01\00") "malformed section id") +(assert_malformed (module binary "\00asm" "\01\00\00\00" "\ff\01\00\01\01\00") "malformed section id") + +;; Function with missing end marker (between two functions) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section: 1 type + "\03\03\02\00\00" ;; Function section: 2 functions + "\0a\0c\02" ;; Code section: 2 functions + ;; function 0 + "\04\00" ;; Function size and local type count + "\41\01" ;; i32.const 1 + "\1a" ;; drop + ;; Missing end marker here + ;; function 1 + "\05\00" ;; Function size and local type count + "\41\01" ;; i32.const 1 + "\1a" ;; drop + "\0b" ;; end + ) + "END opcode expected" +) + +;; Function with missing end marker (at EOF) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section: 1 type + "\03\02\01\00" ;; Function section: 1 function + "\0a\06\01" ;; Code section: 1 function + ;; function 0 + "\04\00" ;; Function size and local type count + "\41\01" ;; i32.const 1 + "\1a" ;; drop + ;; Missing end marker here + ) + "unexpected end of section or function" +) + +;; Function with missing end marker (at end of code sections) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section: 1 type + "\03\02\01\00" ;; Function section: 1 function + "\0a\06\01" ;; Code section: 1 function + ;; function 0 + "\04\00" ;; Function size and local type count + "\41\01" ;; i32.const 1 + "\1a" ;; drop + ;; Missing end marker here + "\0b\03\01\01\00" ;; Data section + ) + ;; The spec interpreter consumes the `\0b` (data section start) as an + ;; END instruction (also happens to be `\0b`) and reports the code section as + ;; being larger than declared. + "section size mismatch" +) + +;; Init expression with missing end marker +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section: 1 type + "\03\02\01\00" ;; Function section: 1 function + "\06\05\01\7f\00\41\00" ;; Global section: 1 entry with missing end marker + ;; Missing end marker here + "\0a\04\01\02\00\0b" ;; Code section: 1 function + ) + "illegal opcode" +) + +;; memory.grow reserved byte equal to zero. +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\00" ;; Memory section + "\0a\09\01" ;; Code section + + ;; function 0 + "\07\00" + "\41\00" ;; i32.const 0 + "\40" ;; memory.grow + "\01" ;; memory.grow reserved byte is not equal to zero! + "\1a" ;; drop + "\0b" ;; end + ) + "zero byte expected" +) + +;; memory.grow reserved byte should not be a "long" LEB128 zero. +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\00" ;; Memory section + "\0a\0a\01" ;; Code section + + ;; function 0 + "\08\00" + "\41\00" ;; i32.const 0 + "\40" ;; memory.grow + "\80\00" ;; memory.grow reserved byte + "\1a" ;; drop + "\0b" ;; end + ) + "zero byte expected" +) + +;; Same as above for 3, 4, and 5-byte zero encodings. +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\00" ;; Memory section + "\0a\0b\01" ;; Code section + + ;; function 0 + "\09\00" + "\41\00" ;; i32.const 0 + "\40" ;; memory.grow + "\80\80\00" ;; memory.grow reserved byte + "\1a" ;; drop + "\0b" ;; end + ) + "zero byte expected" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\00" ;; Memory section + "\0a\0c\01" ;; Code section + + ;; function 0 + "\0a\00" + "\41\00" ;; i32.const 0 + "\40" ;; memory.grow + "\80\80\80\00" ;; memory.grow reserved byte + "\1a" ;; drop + "\0b" ;; end + ) + "zero byte expected" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\00" ;; Memory section + "\0a\0d\01" ;; Code section + + ;; function 0 + "\0b\00" + "\41\00" ;; i32.const 0 + "\40" ;; memory.grow + "\80\80\80\80\00" ;; memory.grow reserved byte + "\1a" ;; drop + "\0b" ;; end + ) + "zero byte expected" +) + +;; memory.size reserved byte equal to zero. +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\00" ;; Memory section + "\0a\07\01" ;; Code section + + ;; function 0 + "\05\00" + "\3f" ;; memory.size + "\01" ;; memory.size reserved byte is not equal to zero! + "\1a" ;; drop + "\0b" ;; end + ) + "zero byte expected" +) + +;; memory.size reserved byte should not be a "long" LEB128 zero. +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\00" ;; Memory section + "\0a\08\01" ;; Code section + + ;; function 0 + "\06\00" + "\3f" ;; memory.size + "\80\00" ;; memory.size reserved byte + "\1a" ;; drop + "\0b" ;; end + ) + "zero byte expected" +) + +;; Same as above for 3, 4, and 5-byte zero encodings. +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\00" ;; Memory section + "\0a\09\01" ;; Code section + + ;; function 0 + "\07\00" + "\3f" ;; memory.size + "\80\80\00" ;; memory.size reserved byte + "\1a" ;; drop + "\0b" ;; end + ) + "zero byte expected" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\00" ;; Memory section + "\0a\0a\01" ;; Code section + + ;; function 0 + "\08\00" + "\3f" ;; memory.size + "\80\80\80\00" ;; memory.size reserved byte + "\1a" ;; drop + "\0b" ;; end + ) + "zero byte expected" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\00" ;; Memory section + "\0a\0b\01" ;; Code section + + ;; function 0 + "\09\00" + "\3f" ;; memory.size + "\80\80\80\80\00" ;; memory.size reserved byte + "\1a" ;; drop + "\0b" ;; end + ) + "zero byte expected" +) + +;; Local number is unsigned 32 bit +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\0a\0c\01" ;; Code section + + ;; function 0 + "\0a\02" + "\80\80\80\80\10\7f" ;; 0x100000000 i32 + "\02\7e" ;; 0x00000002 i64 + "\0b" ;; end + ) + "integer too large" +) + +;; Local number is unsigned 32 bit +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\0a\0c\01" ;; Code section + + ;; function 0 + "\0a\02" + "\80\80\80\80\10\7f" ;; 0x100000000 i32 + "\02\7e" ;; 0x00000002 i64 + "\0b" ;; end + ) + "integer too large" +) + +;; No more than 2^32-1 locals. +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\0a\0c\01" ;; Code section + + ;; function 0 + "\0a\02" + "\ff\ff\ff\ff\0f\7f" ;; 0xFFFFFFFF i32 + "\02\7e" ;; 0x00000002 i64 + "\0b" ;; end + ) + "too many locals" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\06\01\60\02\7f\7f\00" ;; Type section: (param i32 i32) + "\03\02\01\00" ;; Function section + "\0a\1c\01" ;; Code section + + ;; function 0 + "\1a\04" + "\80\80\80\80\04\7f" ;; 0x40000000 i32 + "\80\80\80\80\04\7e" ;; 0x40000000 i64 + "\80\80\80\80\04\7d" ;; 0x40000000 f32 + "\80\80\80\80\04\7c" ;; 0x40000000 f64 + "\0b" ;; end + ) + "too many locals" +) + +;; Local count can be 0. +(module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\0a\0a\01" ;; Code section + + ;; function 0 + "\08\03" + "\00\7f" ;; 0 i32 + "\00\7e" ;; 0 i64 + "\02\7d" ;; 2 f32 + "\0b" ;; end +) + +;; Function section has non-zero count, but code section is absent. +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\03\02\00\00" ;; Function section with 2 functions + ) + "function and code section have inconsistent lengths" +) + +;; Code section has non-zero count, but function section is absent. +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\0a\04\01\02\00\0b" ;; Code section with 1 empty function + ) + "function and code section have inconsistent lengths" +) + +;; Function section count > code section count +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\03\02\00\00" ;; Function section with 2 functions + "\0a\04\01\02\00\0b" ;; Code section with 1 empty function + ) + "function and code section have inconsistent lengths" +) + +;; Function section count < code section count +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section with 1 function + "\0a\07\02\02\00\0b\02\00\0b" ;; Code section with 2 empty functions + ) + "function and code section have inconsistent lengths" +) + +;; Function section has zero count, and code section is absent. +(module binary + "\00asm" "\01\00\00\00" + "\03\01\00" ;; Function section with 0 functions +) + +;; Code section has zero count, and function section is absent. +(module binary + "\00asm" "\01\00\00\00" + "\0a\01\00" ;; Code section with 0 functions +) + +;; Fewer passive segments than data count +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\0c\01\03" ;; Data count section with value 3 + "\0b\05\02" ;; Data section with two entries + "\01\00" ;; Passive data section + "\01\00" ;; Passive data section + ) + "data count and data section have inconsistent lengths" +) + +;; More passive segments than data count +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\0c\01\01" ;; Data count section with value 1 + "\0b\05\02" ;; Data section with two entries + "\01\00" ;; Passive data section + "\01\00" ;; Passive data section + ) + "data count and data section have inconsistent lengths" +) + +;; Non-zero data count section without data section +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\03\01\00\01" ;; Memory section with one entry + "\0c\01\01" ;; Data count section with value 1 + ) + "data count and data section have inconsistent lengths" +) + +;; WAST2JSON: error in binary module: @0x0000000a: invalid section code: 12 +;; ;; Zero data count section without data section +;; (module binary +;; "\00asm" "\01\00\00\00" +;; "\0c\01\00" ;; Data count section with value 0 +;; ) + +;; memory.init requires a data count section +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\00" ;; Memory section + "\0a\0e\01" ;; Code section + + ;; function 0 + "\0c\00" + "\41\00" ;; zero args + "\41\00" + "\41\00" + "\fc\08\00\00" ;; memory.init + "\0b" + + "\0b\03\01\01\00" ;; Data section + ) ;; end + "data count section required" +) + +;; data.drop requires a data count section +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\05\03\01\00\00" ;; Memory section + "\0a\07\01" ;; Code section + + ;; function 0 + "\05\00" + "\fc\09\00" ;; data.drop + "\0b" + + "\0b\03\01\01\00" ;; Data section + ) ;; end + "data count section required" +) + +;; passive element segment containing illegal opcode +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + + "\01\04\01\60\00\00" ;; Type section + + "\03\02\01\00" ;; Function section + + "\04\04\01" ;; Table section with 1 entry + "\70\00\00" ;; no max, minimum 0, funcref + + "\05\03\01\00\00" ;; Memory section + + "\09\07\01" ;; Element section with one segment + "\05\70" ;; Passive, funcref + "\01" ;; 1 element + "\f3\00\0b" ;; bad opcode, index 0, end + + "\0a\04\01" ;; Code section + + ;; function 0 + "\02\00" + "\0b" ;; end + ) + "illegal opcode" +) + +;; passive element segment containing type other than funcref +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + + "\01\04\01\60\00\00" ;; Type section + + "\03\02\01\00" ;; Function section + + "\04\04\01" ;; Table section with 1 entry + "\70\00\00" ;; no max, minimum 0, funcref + + "\05\03\01\00\00" ;; Memory section + + "\09\07\01" ;; Element section with one segment + "\05\7f" ;; Passive, i32 + "\01" ;; 1 element + "\d2\00\0b" ;; ref.func, index 0, end + + "\0a\04\01" ;; Code section + + ;; function 0 + "\02\00" + "\0b" ;; end + ) + "malformed reference type" +) + +;; W2C2: No support for function references +;; ;; passive element segment containing opcode ref.func +;; (module binary +;; "\00asm" "\01\00\00\00" +;; +;; "\01\04\01\60\00\00" ;; Type section +;; +;; "\03\02\01\00" ;; Function section +;; +;; "\04\04\01" ;; Table section with 1 entry +;; "\70\00\00" ;; no max, minimum 0, funcref +;; +;; "\05\03\01\00\00" ;; Memory section +;; +;; "\09\07\01" ;; Element section with one segment +;; "\05\70" ;; Passive, funcref +;; "\01" ;; 1 element +;; "\d2\00\0b" ;; ref.func, index 0, end +;; +;; "\0a\04\01" ;; Code section +;; +;; ;; function 0 +;; "\02\00" +;; "\0b" ;; end +;; ) +;; +;; ;; passive element segment containing opcode ref.null +;; (module binary +;; "\00asm" "\01\00\00\00" +;; +;; "\01\04\01\60\00\00" ;; Type section +;; +;; "\03\02\01\00" ;; Function section +;; +;; "\04\04\01" ;; Table section with 1 entry +;; "\70\00\00" ;; no max, minimum 0, funcref +;; +;; "\05\03\01\00\00" ;; Memory section +;; +;; "\09\07\01" ;; Element section with one segment +;; "\05\70" ;; Passive, funcref +;; "\01" ;; 1 element +;; "\d0\70\0b" ;; ref.null, end +;; +;; "\0a\04\01" ;; Code section +;; +;; ;; function 0 +;; "\02\00" +;; "\0b" ;; end +;; ) + + +;; Type count can be zero +(module binary + "\00asm" "\01\00\00\00" + "\01\01\00" ;; type count can be zero +) + +;; 2 type declared, 1 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\07\02" ;; type section with inconsistent count (2 declared, 1 given) + "\60\00\00" ;; 1st type + ;; "\60\00\00" ;; 2nd type (missed) + ) + "length out of bounds" +) + +;; 1 type declared, 2 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\07\01" ;; type section with inconsistent count (1 declared, 2 given) + "\60\00\00" ;; 1st type + "\60\00\00" ;; 2nd type (redundant) + ) + "section size mismatch" +) + +;; Import count can be zero +(module binary + "\00asm" "\01\00\00\00" + "\01\05\01" ;; type section + "\60\01\7f\00" ;; type 0 + "\02\01\00" ;; import count can be zero +) + +;; Malformed import kind +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\02\04\01" ;; import section with single entry + "\00" ;; string length 0 + "\00" ;; string length 0 + "\04" ;; malformed import kind + ) + "malformed import kind" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\02\05\01" ;; import section with single entry + "\00" ;; string length 0 + "\00" ;; string length 0 + "\04" ;; malformed import kind + "\00" ;; dummy byte + ) + "malformed import kind" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\02\04\01" ;; import section with single entry + "\00" ;; string length 0 + "\00" ;; string length 0 + "\05" ;; malformed import kind + ) + "malformed import kind" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\02\05\01" ;; import section with single entry + "\00" ;; string length 0 + "\00" ;; string length 0 + "\05" ;; malformed import kind + "\00" ;; dummy byte + ) + "malformed import kind" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\02\04\01" ;; import section with single entry + "\00" ;; string length 0 + "\00" ;; string length 0 + "\80" ;; malformed import kind + ) + "malformed import kind" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\02\05\01" ;; import section with single entry + "\00" ;; string length 0 + "\00" ;; string length 0 + "\80" ;; malformed import kind + "\00" ;; dummy byte + ) + "malformed import kind" +) + +;; 2 import declared, 1 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\05\01" ;; type section + "\60\01\7f\00" ;; type 0 + "\02\16\02" ;; import section with inconsistent count (2 declared, 1 given) + ;; 1st import + "\08" ;; string length + "\73\70\65\63\74\65\73\74" ;; spectest + "\09" ;; string length + "\70\72\69\6e\74\5f\69\33\32" ;; print_i32 + "\00\00" ;; import kind, import signature index + ;; 2nd import + ;; (missed) + ) + "unexpected end of section or function" +) + +;; 1 import declared, 2 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\09\02" ;; type section + "\60\01\7f\00" ;; type 0 + "\60\01\7d\00" ;; type 1 + "\02\2b\01" ;; import section with inconsistent count (1 declared, 2 given) + ;; 1st import + "\08" ;; string length + "\73\70\65\63\74\65\73\74" ;; spectest + "\09" ;; string length + "\70\72\69\6e\74\5f\69\33\32" ;; print_i32 + "\00\00" ;; import kind, import signature index + ;; 2nd import + ;; (redundant) + "\08" ;; string length + "\73\70\65\63\74\65\73\74" ;; spectest + "\09" ;; string length + "\70\72\69\6e\74\5f\66\33\32" ;; print_f32 + "\00\01" ;; import kind, import signature index + ) + "section size mismatch" +) + +;; Table count can be zero +(module binary + "\00asm" "\01\00\00\00" + "\04\01\00" ;; table count can be zero +) + +;; 1 table declared, 0 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\04\01\01" ;; table section with inconsistent count (1 declared, 0 given) + ;; "\70\01\00\00" ;; table entity + ) + "unexpected end of section or function" +) + +;; Malformed table limits flag +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\04\03\01" ;; table section with one entry + "\70" ;; anyfunc + "\02" ;; malformed table limits flag + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\04\04\01" ;; table section with one entry + "\70" ;; anyfunc + "\02" ;; malformed table limits flag + "\00" ;; dummy byte + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\04\06\01" ;; table section with one entry + "\70" ;; anyfunc + "\81\00" ;; malformed table limits flag as LEB128 + "\00\00" ;; dummy bytes + ) + "integer representation too long" +) + +;; Memory count can be zero +(module binary + "\00asm" "\01\00\00\00" + "\05\01\00" ;; memory count can be zero +) + +;; 1 memory declared, 0 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\01\01" ;; memory section with inconsistent count (1 declared, 0 given) + ;; "\00\00" ;; memory 0 (missed) + ) + "unexpected end of section or function" +) + +;; Malformed memory limits flag +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\02\01" ;; memory section with one entry + "\02" ;; malformed memory limits flag + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; memory section with one entry + "\02" ;; malformed memory limits flag + "\00" ;; dummy byte + ) + "integer too large" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\05\01" ;; memory section with one entry + "\81\00" ;; malformed memory limits flag as LEB128 + "\00\00" ;; dummy bytes + ) + "integer representation too long" +) +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\05\01" ;; memory section with one entry + "\81\01" ;; malformed memory limits flag as LEB128 + "\00\00" ;; dummy bytes + ) + "integer representation too long" +) + +;; Global count can be zero +(module binary + "\00asm" "\01\00\00\00" + "\06\01\00" ;; global count can be zero +) + +;; 2 global declared, 1 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\06\02" ;; global section with inconsistent count (2 declared, 1 given) + "\7f\00\41\00\0b" ;; global 0 + ;; "\7f\00\41\00\0b" ;; global 1 (missed) + ) + "unexpected end of section or function" +) + +;; 1 global declared, 2 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\0b\01" ;; global section with inconsistent count (1 declared, 2 given) + "\7f\00\41\00\0b" ;; global 0 + "\7f\00\41\00\0b" ;; global 1 (redundant) + ) + "section size mismatch" +) + +;; Export count can be 0 +(module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; type 0 + "\03\03\02\00\00" ;; func section + "\07\01\00" ;; export count can be zero + "\0a\07\02" ;; code section + "\02\00\0b" ;; function body 0 + "\02\00\0b" ;; function body 1 +) + +;; 2 export declared, 1 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; type 0 + "\03\03\02\00\00" ;; func section + "\07\06\02" ;; export section with inconsistent count (2 declared, 1 given) + "\02" ;; export 0 + "\66\31" ;; export name + "\00\00" ;; export kind, export func index + ;; "\02" ;; export 1 (missed) + ;; "\66\32" ;; export name + ;; "\00\01" ;; export kind, export func index + "\0a\07\02" ;; code section + "\02\00\0b" ;; function body 0 + "\02\00\0b" ;; function body 1 + ) + "length out of bounds" +) + +;; 1 export declared, 2 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; type 0 + "\03\03\02\00\00" ;; func section + "\07\0b\01" ;; export section with inconsistent count (1 declared, 2 given) + "\02" ;; export 0 + "\66\31" ;; export name + "\00\00" ;; export kind, export func index + "\02" ;; export 1 (redundant) + "\66\32" ;; export name + "\00\01" ;; export kind, export func index + "\0a\07\02" ;; code section + "\02\00\0b" ;; function body 0 + "\02\00\0b" ;; function body 1 + ) + "section size mismatch" +) + +;; elem segment count can be zero +(module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; type 0 + "\03\02\01\00" ;; func section + "\04\04\01" ;; table section + "\70\00\01" ;; table 0 + "\09\01\00" ;; elem segment count can be zero + "\0a\04\01" ;; code section + "\02\00\0b" ;; function body +) + +;; 2 elem segment declared, 1 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; type 0 + "\03\02\01\00" ;; func section + "\04\04\01" ;; table section + "\70\00\01" ;; table 0 + "\09\07\02" ;; elem with inconsistent segment count (2 declared, 1 given) + "\00\41\00\0b\01\00" ;; elem 0 + ;; "\00\41\00\0b\01\00" ;; elem 1 (missed) + ) + "unexpected end" +) + +;; 2 elem segment declared, 1.5 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; type 0 + "\03\02\01\00" ;; func section + "\04\04\01" ;; table section + "\70\00\01" ;; table 0 + "\09\0a\02" ;; elem with inconsistent segment count (2 declared, 1 given) + "\00\41\00\0b\01\00" ;; elem 0 + "\00\41\00" ;; elem 1 (partial) + ;; "\0b\01\00" ;; elem 1 (missing part) + ) + "unexpected end" +) + +;; 1 elem segment declared, 2 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; type 0 + "\03\02\01\00" ;; func section + "\04\04\01" ;; table section + "\70\00\01" ;; table 0 + "\09\0d\01" ;; elem with inconsistent segment count (1 declared, 2 given) + "\00\41\00\0b\01\00" ;; elem 0 + "\00\41\00\0b\01\00" ;; elem 1 (redundant) + "\0a\04\01" ;; code section + "\02\00\0b" ;; function body + ) + "section size mismatch" +) + +;; data segment count can be zero +(module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; memory section + "\00\01" ;; memory 0 + "\0b\01\00" ;; data segment count can be zero +) + +;; 2 data segment declared, 1 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; memory section + "\00\01" ;; memory 0 + "\0b\07\02" ;; data with inconsistent segment count (2 declared, 1 given) + "\00\41\00\0b\01\61" ;; data 0 + ;; "\00\41\01\0b\01\62" ;; data 1 (missed) + ) + "unexpected end of section or function" +) + +;; 1 data segment declared, 2 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; memory section + "\00\01" ;; memory 0 + "\0b\0d\01" ;; data with inconsistent segment count (1 declared, 2 given) + "\00\41\00\0b\01\61" ;; data 0 + "\00\41\01\0b\01\62" ;; data 1 (redundant) + ) + "section size mismatch" +) + +;; data segment has 7 bytes declared, but 6 bytes given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; memory section + "\00\01" ;; memory 0 + "\0b\0c\01" ;; data section + "\00\41\03\0b" ;; data segment 0 + "\07" ;; data segment size with inconsistent lengths (7 declared, 6 given) + "\61\62\63\64\65\66" ;; 6 bytes given + ) + "unexpected end of section or function" +) + +;; data segment has 5 bytes declared, but 6 bytes given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; memory section + "\00\01" ;; memory 0 + "\0b\0c\01" ;; data section + "\00\41\00\0b" ;; data segment 0 + "\05" ;; data segment size with inconsistent lengths (5 declared, 6 given) + "\61\62\63\64\65\66" ;; 6 bytes given + ) + "section size mismatch" +) + +;; br_table target count can be zero +(module binary + "\00asm" "\01\00\00\00" + "\01\04\01" ;; type section + "\60\00\00" ;; type 0 + "\03\02\01\00" ;; func section + "\0a\11\01" ;; code section + "\0f\00" ;; func 0 + "\02\40" ;; block 0 + "\41\01" ;; condition of if 0 + "\04\40" ;; if 0 + "\41\01" ;; index of br_table element + "\0e\00" ;; br_table target count can be zero + "\02" ;; break depth for default + "\0b\0b\0b" ;; end +) + +;; 1 br_table target declared, 2 given +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\25\0c" ;; type section + "\60\00\00" ;; type 0 + "\60\00\00" ;; type 1 + "\60\00\00" ;; type 2 + "\60\00\00" ;; type 3 + "\60\00\00" ;; type 4 + "\60\00\00" ;; type 5 + "\60\00\00" ;; type 6 + "\60\00\00" ;; type 7 + "\60\00\00" ;; type 8 + "\60\00\00" ;; type 9 + "\60\00\00" ;; type 10 + "\60\00\00" ;; type 11 + "\03\02\01\00" ;; func section + "\0a\13\01" ;; code section + "\11\00" ;; func 0 + "\02\40" ;; block 0 + "\41\01" ;; condition of if 0 + "\04\40" ;; if 0 + "\41\01" ;; index of br_table element + "\0e\01" ;; br_table with inconsistent target count (1 declared, 2 given) + "\00" ;; break depth 0 + "\01" ;; break depth 1 + "\02" ;; break depth for default, interpreted as a block + "\0b" ;; end, interpreted as type 11 for the block + "\0b\0b" ;; end + ) + "unexpected end" +) + +;; Start section +(module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\08\01\00" ;; Start section: function 0 + + "\0a\04\01" ;; Code section + ;; function 0 + "\02\00" + "\0b" ;; end +) + +;; Multiple start sections +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section + "\08\01\00" ;; Start section: function 0 + "\08\01\00" ;; Start section: function 0 + + "\0a\04\01" ;; Code section + ;; function 0 + "\02\00" + "\0b" ;; end + ) + "unexpected content after last section" +) + +;; Multiple function sections +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\02\01\00" ;; Function section with 1 function + "\03\02\01\00" ;; Function section with 1 function + "\0a\07\02\02\00\0b\02\00\0b" ;; Code section with 2 empty functions + ) + "unexpected content after last section" +) + +;; Multiple code sections +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\04\01\60\00\00" ;; Type section + "\03\03\02\00\00" ;; Function section with 2 functions + "\0a\04\01\02\00\0b" ;; Code section with 1 empty function + "\0a\04\01\02\00\0b" ;; Code section with 1 empty function + ) + "unexpected content after last section" +) + +;; Multiple data count sections +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\0c\01\01" ;; Data count section with value "1" + "\0c\01\01" ;; Data count section with value "1" + ) + "unexpected content after last section" +) + +;; Multiple data sections +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\0b\01\00" ;; Data section with zero entries + "\0b\01\00" ;; Data section with zero entries + ) + "unexpected content after last section" +) + +;; Multiple global sections +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\01\00" ;; Global section with zero entries + "\06\01\00" ;; Global section with zero entries + ) + "unexpected content after last section" +) + +;; Multiple export sections +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\07\01\00" ;; Export section with zero entries + "\07\01\00" ;; Export section with zero entries + ) + "unexpected content after last section" +) + +;; Multiple table sections +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\04\01\00" ;; Table section with zero entries + "\04\01\00" ;; Table section with zero entries + ) + "unexpected content after last section" +) + +;; Multiple element sections +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\09\01\00" ;; Element section with zero entries + "\09\01\00" ;; Element section with zero entries + ) + "unexpected content after last section" +) + +;; Multiple import sections +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\02\01\00" ;; Import section with zero entries + "\02\01\00" ;; Import section with zero entries + ) + "unexpected content after last section" +) + +;; Multiple type sections +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\01\00" ;; Type section with zero entries + "\01\01\00" ;; Type section with zero entries + ) + "unexpected content after last section" +) + +;; Multiple memory sections +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\01\00" ;; Memory section with zero entries + "\05\01\00" ;; Memory section with zero entries + ) + "unexpected content after last section" +) + +;; Type section out of order +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\02\01\00" ;; Import section with zero entries + "\01\01\00" ;; Type section with zero entries + ) + "unexpected content after last section" +) + +;; Import section out of order +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\03\01\00" ;; Function section with zero entries + "\02\01\00" ;; Import section with zero entries + ) + "unexpected content after last section" +) + +;; Function section out of order +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\04\01\00" ;; Table section with zero entries + "\03\01\00" ;; Function section with zero entries + ) + "unexpected content after last section" +) + +;; Table section out of order +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\01\00" ;; Memory section with zero entries + "\04\01\00" ;; Table section with zero entries + ) + "unexpected content after last section" +) + +;; Memory section out of order +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\06\01\00" ;; Global section with zero entries + "\05\01\00" ;; Memory section with zero entries + ) + "unexpected content after last section" +) + +;; Global section out of order +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\07\01\00" ;; Export section with zero entries + "\06\01\00" ;; Global section with zero entries + ) + "unexpected content after last section" +) + +;; Export section out of order +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\03\02\01\00" ;; Function section + "\08\01\00" ;; Start section: function 0 + "\07\01\00" ;; Export section with zero entries + ) + "unexpected content after last section" +) + +;; Start section out of order +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\03\02\01\00" ;; Function section + "\09\01\00" ;; Element section with zero entries + "\08\01\00" ;; Start section: function 0 + ) + "unexpected content after last section" +) + +;; Element section out of order +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\0c\01\01" ;; Data count section with value "1" + "\09\01\00" ;; Element section with zero entries + ) + "unexpected content after last section" +) + +;; Data count section out of order +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\0a\01\00" ;; Code section with zero entries + "\0c\01\01" ;; Data count section with value "1" + ) + "unexpected content after last section" +) + +;; Code section out of order +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\0b\01\00" ;; Data section with zero entries + "\0a\01\00" ;; Code section with zero entries + ) + "unexpected content after last section" +) + diff --git a/tests/block.wast b/tests/block.wast index 625dd98f..574b10d8 100644 --- a/tests/block.wast +++ b/tests/block.wast @@ -16,10 +16,20 @@ (block (result i32) (i32.const 7)) ) - (func (export "multi") (result i32) - (block (call $dummy) (call $dummy) (call $dummy) (call $dummy)) - (block (result i32) (call $dummy) (call $dummy) (call $dummy) (i32.const 8)) - ) + ;; W2C2: No support for blocks with multiple return values + ;; (func (export "multi") (result i32) + ;; (block (call $dummy) (call $dummy) (call $dummy) (call $dummy)) + ;; (block (result i32) + ;; (call $dummy) (call $dummy) (call $dummy) (i32.const 7) (call $dummy) + ;; ) + ;; (drop) + ;; (block (result i32 i64 i32) + ;; (call $dummy) (call $dummy) (call $dummy) (i32.const 8) (call $dummy) + ;; (call $dummy) (call $dummy) (call $dummy) (i64.const 7) (call $dummy) + ;; (call $dummy) (call $dummy) (call $dummy) (i32.const 9) (call $dummy) + ;; ) + ;; (drop) (drop) + ;; ) (func (export "nested") (result i32) (block (result i32) @@ -198,6 +208,29 @@ (block (result f32) (call $dummy) (f32.const 3)) ) ) + ;; W2C2: No support for blocks with multiple return values + ;; (func (export "as-binary-operands") (result i32) + ;; (i32.mul + ;; (block (result i32 i32) + ;; (call $dummy) (i32.const 3) (call $dummy) (i32.const 4) + ;; ) + ;; ) + ;; ) + ;; (func (export "as-compare-operands") (result i32) + ;; (f32.gt + ;; (block (result f32 f32) + ;; (call $dummy) (f32.const 3) (call $dummy) (f32.const 3) + ;; ) + ;; ) + ;; ) + ;; (func (export "as-mixed-operands") (result i32) + ;; (block (result i32 i32) + ;; (call $dummy) (i32.const 3) (call $dummy) (i32.const 4) + ;; ) + ;; (i32.const 5) + ;; (i32.add) + ;; (i32.mul) + ;; ) (func (export "break-bare") (result i32) (block (br 0) (unreachable)) @@ -209,6 +242,13 @@ (func (export "break-value") (result i32) (block (result i32) (br 0 (i32.const 18)) (i32.const 19)) ) + ;; W2C2: No support for blocks with multiple return values + ;; (func (export "break-multi-value") (result i32 i32 i64) + ;; (block (result i32 i32 i64) + ;; (br 0 (i32.const 18) (i32.const -18) (i64.const 18)) + ;; (i32.const 19) (i32.const -19) (i64.const 19) + ;; ) + ;; ) (func (export "break-repeated") (result i32) (block (result i32) (br 0 (i32.const 18)) @@ -235,6 +275,53 @@ (local.get 0) ) + ;; W2C2: No support for blocks with params + ;; (func (export "param") (result i32) + ;; (i32.const 1) + ;; (block (param i32) (result i32) + ;; (i32.const 2) + ;; (i32.add) + ;; ) + ;; ) + ;; W2C2: No support for blocks with multiple return values + ;; (func (export "params") (result i32) + ;; (i32.const 1) + ;; (i32.const 2) + ;; (block (param i32 i32) (result i32) + ;; (i32.add) + ;; ) + ;; ) + ;; (func (export "params-id") (result i32) + ;; (i32.const 1) + ;; (i32.const 2) + ;; (block (param i32 i32) (result i32 i32)) + ;; (i32.add) + ;; ) + ;; W2C2: No support for blocks with params + ;; (func (export "param-break") (result i32) + ;; (i32.const 1) + ;; (block (param i32) (result i32) + ;; (i32.const 2) + ;; (i32.add) + ;; (br 0) + ;; ) + ;; ) + ;; W2C2: No support for blocks with multiple return values + ;; (func (export "params-break") (result i32) + ;; (i32.const 1) + ;; (i32.const 2) + ;; (block (param i32 i32) (result i32) + ;; (i32.add) + ;; (br 0) + ;; ) + ;; ) + ;; (func (export "params-id-break") (result i32) + ;; (i32.const 1) + ;; (i32.const 2) + ;; (block (param i32 i32) (result i32 i32) (br 0)) + ;; (i32.add) + ;; ) + (func (export "effects") (result i32) (local i32) (block @@ -247,11 +334,34 @@ ) (i32.eq (local.get 0) (i32.const -14)) ) + + ;; W2C2: No support for func block types + ;; (type $block-sig-1 (func)) + ;; (type $block-sig-2 (func (result i32))) + ;; (type $block-sig-3 (func (param $x i32))) + ;; (type $block-sig-4 (func (param i32 f64 i32) (result i32 f64 i32))) + + ;; (func (export "type-use") + ;; (block (type $block-sig-1)) + ;; (block (type $block-sig-2) (i32.const 0)) + ;; (block (type $block-sig-3) (drop)) + ;; (i32.const 0) (f64.const 0) (i32.const 0) + ;; (block (type $block-sig-4)) + ;; (drop) (drop) (drop) + ;; (block (type $block-sig-2) (result i32) (i32.const 0)) + ;; (block (type $block-sig-3) (param i32) (drop)) + ;; (i32.const 0) (f64.const 0) (i32.const 0) + ;; (block (type $block-sig-4) + ;; (param i32) (param f64 i32) (result i32 f64) (result i32) + ;; ) + ;; (drop) (drop) (drop) + ;; ) ) (assert_return (invoke "empty")) (assert_return (invoke "singular") (i32.const 7)) -(assert_return (invoke "multi") (i32.const 8)) +;; W2C2: No support for blocks with multiple return values +;; (assert_return (invoke "multi") (i32.const 8)) (assert_return (invoke "nested") (i32.const 9)) (assert_return (invoke "deep") (i32.const 150)) @@ -294,14 +404,119 @@ (assert_return (invoke "as-binary-operand") (i32.const 12)) (assert_return (invoke "as-test-operand") (i32.const 0)) (assert_return (invoke "as-compare-operand") (i32.const 0)) +;; W2C2: No support for blocks with multiple return values +;; (assert_return (invoke "as-binary-operands") (i32.const 12)) +;; (assert_return (invoke "as-compare-operands") (i32.const 0)) +;; (assert_return (invoke "as-mixed-operands") (i32.const 27)) (assert_return (invoke "break-bare") (i32.const 19)) (assert_return (invoke "break-value") (i32.const 18)) +;; W2C2: No support for blocks with multiple return values +;; (assert_return (invoke "break-multi-value") +;; (i32.const 18) (i32.const -18) (i64.const 18) +;; ) (assert_return (invoke "break-repeated") (i32.const 18)) (assert_return (invoke "break-inner") (i32.const 0xf)) +;; W2C2: No support for blocks with params +;; (assert_return (invoke "param") (i32.const 3)) +;; W2C2: No support for blocks with multiple return values +;; (assert_return (invoke "params") (i32.const 3)) +;; (assert_return (invoke "params-id") (i32.const 3)) +;; W2C2: No support for blocks with params +;; (assert_return (invoke "param-break") (i32.const 3)) +;; W2C2: No support for blocks with multiple return values +;; (assert_return (invoke "params-break") (i32.const 3)) +;; (assert_return (invoke "params-id-break") (i32.const 3)) + (assert_return (invoke "effects") (i32.const 1)) +;; W2C2: No support for func block types +;; (assert_return (invoke "type-use")) + +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (block (type $sig) (result i32) (param i32)))" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (block (param i32) (type $sig) (result i32)))" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (block (param i32) (result i32) (type $sig)))" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (block (result i32) (type $sig) (param i32)))" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (block (result i32) (param i32) (type $sig)))" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(func (i32.const 0) (block (result i32) (param i32)))" + ) + "unexpected token" +) + +(assert_malformed + (module quote "(func (i32.const 0) (block (param $x i32) (drop)))") + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func))" + "(func (block (type $sig) (result i32) (i32.const 0)) (unreachable))" + ) + "inline function type" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (block (type $sig) (result i32) (i32.const 0)) (unreachable))" + ) + "inline function type" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (block (type $sig) (param i32) (drop)) (unreachable))" + ) + "inline function type" +) +(assert_malformed + (module quote + "(type $sig (func (param i32 i32) (result i32)))" + "(func (i32.const 0) (block (type $sig) (param i32) (result i32)) (unreachable))" + ) + "inline function type" +) + +(assert_invalid + (module + (type $sig (func)) + (func (block (type $sig) (i32.const 0))) + ) + "type mismatch" +) + (assert_invalid (module (func $type-empty-i32 (result i32) (block))) "type mismatch" @@ -343,7 +558,12 @@ )) "type mismatch" ) - +(assert_invalid + (module (func $type-value-nums-vs-void + (block (i32.const 1) (i32.const 2)) + )) + "type mismatch" +) (assert_invalid (module (func $type-value-empty-vs-i32 (result i32) (block (result i32)) @@ -368,6 +588,12 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-value-empty-vs-nums (result i32 i32) + (block (result i32 i32)) + )) + "type mismatch" +) (assert_invalid (module @@ -421,7 +647,12 @@ )) "type mismatch" ) - +(assert_invalid + (module (func $type-value-void-vs-nums (result i32 i32) + (block (result i32 i32) (nop)) + )) + "type mismatch" +) (assert_invalid (module (func $type-value-i32-vs-i64 (result i32) (block (result i32) (i64.const 0)) @@ -494,6 +725,24 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-value-num-vs-nums (result i32 i32) + (block (result i32 i32) (i32.const 0)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-value-partial-vs-nums (result i32 i32) + (i32.const 1) (block (result i32 i32) (i32.const 2)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-value-nums-vs-num (result i32) + (block (result i32) (i32.const 1) (i32.const 2)) + )) + "type mismatch" +) (assert_invalid (module (func $type-value-unreached-select-i32-i64 (result i32) @@ -592,6 +841,12 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-last-void-vs-nums (result i32 i32) + (block (result i32 i32) (br 0)) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-empty-vs-i32 (result i32) @@ -617,6 +872,12 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-empty-vs-nums (result i32 i32) + (block (result i32 i32) (br 0) (i32.const 1) (i32.const 2)) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-void-vs-i32 (result i32) @@ -715,6 +976,18 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-num-vs-nums (result i32 i32) + (block (result i32 i32) (br 0 (i32.const 0)) (i32.const 1) (i32.const 2)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-break-partial-vs-nums (result i32 i32) + (i32.const 1) (block (result i32 i32) (br 0 (i32.const 0)) (i32.const 2)) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-first-void-vs-i32 (result i32) @@ -740,6 +1013,12 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-first-void-vs-nums (result i32 i32) + (block (result i32 i32) (br 0 (nop)) (br 0 (i32.const 1) (i32.const 2))) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-first-i32-vs-i64 (result i32) @@ -813,6 +1092,12 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-first-num-vs-nums (result i32 i32) + (block (result i32 i32) (br 0 (i32.const 0)) (br 0 (i32.const 1) (i32.const 2))) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-nested-i32-vs-void @@ -838,6 +1123,12 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-nested-nums-vs-void + (block (result i32 i32) (block (result i32 i32) (br 1 (i32.const 1) (i32.const 2))) (br 0)) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-nested-empty-vs-i32 (result i32) @@ -863,6 +1154,12 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-nested-empty-vs-nums (result i32 i32) + (block (result i32 i32) (block (br 1)) (br 0 (i32.const 1) (i32.const 2))) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-nested-void-vs-i32 (result i32) @@ -888,6 +1185,12 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-nested-void-vs-nums (result i32 i32) + (block (result i32 i32) (block (result i32 i32) (br 1 (nop))) (br 0 (i32.const 1) (i32.const 2))) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-nested-i32-vs-i64 (result i32) @@ -985,6 +1288,14 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-nested-num-vs-nums (result i32 i32) + (block (result i32 i32) + (block (result i32 i32) (br 1 (i32.const 0))) (br 0 (i32.const 1) (i32.const 2)) + ) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-operand-empty-vs-i32 (result i32) @@ -1010,6 +1321,12 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-operand-empty-vs-nums (result i32) + (i32.add (block (br 0))) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-operand-void-vs-i32 (result i32) @@ -1035,6 +1352,12 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-operand-void-vs-nums (result i32) + (i32.add (block (br 0 (nop)))) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-operand-i32-vs-i64 (result i32) @@ -1108,6 +1431,70 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-operand-num-vs-nums (result i32) + (i32.add (block (br 0 (i64.const 9) (i32.const 10)))) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-param-void-vs-num + (block (param i32) (drop)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-void-vs-nums + (block (param i32 f64) (drop) (drop)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-num-vs-num + (f32.const 0) (block (param i32) (drop)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-num-vs-nums + (f32.const 0) (block (param f32 i32) (drop) (drop)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-nested-void-vs-num + (block (block (param i32) (drop))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-void-vs-nums + (block (block (param i32 f64) (drop) (drop))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-num-vs-num + (block (f32.const 0) (block (param i32) (drop))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-num-vs-nums + (block (f32.const 0) (block (param f32 i32) (drop) (drop))) + )) + "type mismatch" +) + +(assert_malformed + (module quote "(func (param i32) (result i32) block (param $x i32) end)") + "unexpected token" +) +(assert_malformed + (module quote "(func (param i32) (result i32) (block (param $x i32)))") + "unexpected token" +) (assert_malformed diff --git a/tests/br.wast b/tests/br.wast index d68b8716..385b9779 100644 --- a/tests/br.wast +++ b/tests/br.wast @@ -25,6 +25,12 @@ (func (export "type-f64-value") (result f64) (block (result f64) (f64.neg (br 0 (f64.const 4)))) ) + ;; W2C2: No support for blocks with multiple return values + ;; (func (export "type-f64-f64-value") (result f64 f64) + ;; (block (result f64 f64) + ;; (f64.add (br 0 (f64.const 4) (f64.const 5))) (f64.const 6) + ;; ) + ;; ) (func (export "as-block-first") (block (br 0) (call $dummy)) @@ -88,6 +94,11 @@ (func (export "as-return-value") (result i64) (block (result i64) (return (br 0 (i64.const 7)))) ) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "as-return-values") (result i32 i64) + ;; (i32.const 2) + ;; (block (result i64) (return (br 0 (i32.const 1) (i64.const 7)))) + ;; ) (func (export "as-if-cond") (result i32) (block (result i32) @@ -373,6 +384,7 @@ (assert_return (invoke "type-i64-value") (i64.const 2)) (assert_return (invoke "type-f32-value") (f32.const 3)) (assert_return (invoke "type-f64-value") (f64.const 4)) +;; W2C2: No support for blocks with multiple return values ;; (assert_return (invoke "type-f64-f64-value") (f64.const 4) (f64.const 5)) (assert_return (invoke "as-block-first")) @@ -395,6 +407,7 @@ (assert_return (invoke "as-br_table-value-index") (i32.const 11)) (assert_return (invoke "as-return-value") (i64.const 7)) +;; W2C2: No support for functions with multiple return values ;; (assert_return (invoke "as-return-values") (i32.const 2) (i64.const 7)) (assert_return (invoke "as-if-cond") (i32.const 2)) diff --git a/tests/br_if.wast b/tests/br_if.wast index bba5f8ab..fba5deb9 100644 --- a/tests/br_if.wast +++ b/tests/br_if.wast @@ -662,3 +662,4 @@ (module (func $large-label (br_if 0x10000001 (i32.const 1)))) "unknown label" ) + diff --git a/tests/br_table.wast b/tests/br_table.wast old mode 100755 new mode 100644 index 77d5adb8..58b4d65c --- a/tests/br_table.wast +++ b/tests/br_table.wast @@ -1,1628 +1,1393 @@ - -;; Test `br_table` operator - -(module - ;; Auxiliary definition - (func $dummy) - - (func (export "type-i32") - (block (drop (i32.ctz (br_table 0 0 (i32.const 0))))) - ) - (func (export "type-i64") - (block (drop (i64.ctz (br_table 0 0 (i32.const 0))))) - ) - (func (export "type-f32") - (block (drop (f32.neg (br_table 0 0 (i32.const 0))))) - ) - (func (export "type-f64") - (block (drop (f64.neg (br_table 0 0 (i32.const 0))))) - ) - - (func (export "type-i32-value") (result i32) - (block (result i32) (i32.ctz (br_table 0 0 (i32.const 1) (i32.const 0)))) - ) - (func (export "type-i64-value") (result i64) - (block (result i64) (i64.ctz (br_table 0 0 (i64.const 2) (i32.const 0)))) - ) - (func (export "type-f32-value") (result f32) - (block (result f32) (f32.neg (br_table 0 0 (f32.const 3) (i32.const 0)))) - ) - (func (export "type-f64-value") (result f64) - (block (result f64) (f64.neg (br_table 0 0 (f64.const 4) (i32.const 0)))) - ) - - (func (export "empty") (param i32) (result i32) - (block (br_table 0 (local.get 0)) (return (i32.const 21))) - (i32.const 22) - ) - (func (export "empty-value") (param i32) (result i32) - (block (result i32) - (br_table 0 (i32.const 33) (local.get 0)) (i32.const 31) - ) - ) - - (func (export "singleton") (param i32) (result i32) - (block - (block - (br_table 1 0 (local.get 0)) - (return (i32.const 21)) - ) - (return (i32.const 20)) - ) - (i32.const 22) - ) - - (func (export "singleton-value") (param i32) (result i32) - (block (result i32) - (drop - (block (result i32) - (br_table 0 1 (i32.const 33) (local.get 0)) - (return (i32.const 31)) - ) - ) - (i32.const 32) - ) - ) - - (func (export "multiple") (param i32) (result i32) - (block - (block - (block - (block - (block - (br_table 3 2 1 0 4 (local.get 0)) - (return (i32.const 99)) - ) - (return (i32.const 100)) - ) - (return (i32.const 101)) - ) - (return (i32.const 102)) - ) - (return (i32.const 103)) - ) - (i32.const 104) - ) - - (func (export "multiple-value") (param i32) (result i32) - (local i32) - (local.set 1 (block (result i32) - (local.set 1 (block (result i32) - (local.set 1 (block (result i32) - (local.set 1 (block (result i32) - (local.set 1 (block (result i32) - (br_table 3 2 1 0 4 (i32.const 200) (local.get 0)) - (return (i32.add (local.get 1) (i32.const 99))) - )) - (return (i32.add (local.get 1) (i32.const 10))) - )) - (return (i32.add (local.get 1) (i32.const 11))) - )) - (return (i32.add (local.get 1) (i32.const 12))) - )) - (return (i32.add (local.get 1) (i32.const 13))) - )) - (i32.add (local.get 1) (i32.const 14)) - ) - - (func (export "large") (param i32) (result i32) - (block - (block - (br_table - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - (local.get 0) - ) - (return (i32.const -1)) - ) - (return (i32.const 0)) - ) - (return (i32.const 1)) - ) - - (func (export "as-block-first") - (block (br_table 0 0 0 (i32.const 0)) (call $dummy)) - ) - (func (export "as-block-mid") - (block (call $dummy) (br_table 0 0 0 (i32.const 0)) (call $dummy)) - ) - (func (export "as-block-last") - (block (nop) (call $dummy) (br_table 0 0 0 (i32.const 0))) - ) - (func (export "as-block-value") (result i32) - (block (result i32) - (nop) (call $dummy) (br_table 0 0 0 (i32.const 2) (i32.const 0)) - ) - ) - - (func (export "as-loop-first") (result i32) - (loop (result i32) (br_table 1 1 (i32.const 3) (i32.const 0)) (i32.const 1)) - ) - (func (export "as-loop-mid") (result i32) - (loop (result i32) - (call $dummy) - (br_table 1 1 1 (i32.const 4) (i32.const -1)) - (i32.const 2) - ) - ) - (func (export "as-loop-last") (result i32) - (loop (result i32) - (nop) (call $dummy) (br_table 1 1 1 (i32.const 5) (i32.const 1)) - ) - ) - - (func (export "as-br-value") (result i32) - (block (result i32) (br 0 (br_table 0 (i32.const 9) (i32.const 0)))) - ) - - (func (export "as-br_if-cond") - (block (br_if 0 (br_table 0 0 0 (i32.const 1)))) - ) - (func (export "as-br_if-value") (result i32) - (block (result i32) - (drop (br_if 0 (br_table 0 (i32.const 8) (i32.const 0)) (i32.const 1))) - (i32.const 7) - ) - ) - (func (export "as-br_if-value-cond") (result i32) - (block (result i32) - (drop (br_if 0 (i32.const 6) (br_table 0 0 (i32.const 9) (i32.const 0)))) - (i32.const 7) - ) - ) - - (func (export "as-br_table-index") - (block (br_table 0 0 0 (br_table 0 (i32.const 1)))) - ) - (func (export "as-br_table-value") (result i32) - (block (result i32) - (br_table 0 0 0 (br_table 0 (i32.const 10) (i32.const 0)) (i32.const 1)) - (i32.const 7) - ) - ) - (func (export "as-br_table-value-index") (result i32) - (block (result i32) - (br_table 0 0 (i32.const 6) (br_table 0 (i32.const 11) (i32.const 1))) - (i32.const 7) - ) - ) - - (func (export "as-return-value") (result i64) - (block (result i64) (return (br_table 0 (i64.const 7) (i32.const 0)))) - ) - - (func (export "as-if-cond") (result i32) - (block (result i32) - (if (result i32) - (br_table 0 (i32.const 2) (i32.const 0)) - (then (i32.const 0)) - (else (i32.const 1)) - ) - ) - ) - (func (export "as-if-then") (param i32 i32) (result i32) - (block (result i32) - (if (result i32) - (local.get 0) - (then (br_table 1 (i32.const 3) (i32.const 0))) - (else (local.get 1)) - ) - ) - ) - (func (export "as-if-else") (param i32 i32) (result i32) - (block (result i32) - (if (result i32) - (local.get 0) - (then (local.get 1)) - (else (br_table 1 0 (i32.const 4) (i32.const 0))) - ) - ) - ) - - (func (export "as-select-first") (param i32 i32) (result i32) - (block (result i32) - (select - (br_table 0 (i32.const 5) (i32.const 0)) (local.get 0) (local.get 1) - ) - ) - ) - (func (export "as-select-second") (param i32 i32) (result i32) - (block (result i32) - (select - (local.get 0) (br_table 0 (i32.const 6) (i32.const 1)) (local.get 1) - ) - ) - ) - (func (export "as-select-cond") (result i32) - (block (result i32) - (select - (i32.const 0) (i32.const 1) (br_table 0 (i32.const 7) (i32.const 1)) - ) - ) - ) - - (func $f (param i32 i32 i32) (result i32) (i32.const -1)) - (func (export "as-call-first") (result i32) - (block (result i32) - (call $f - (br_table 0 (i32.const 12) (i32.const 1)) (i32.const 2) (i32.const 3) - ) - ) - ) - (func (export "as-call-mid") (result i32) - (block (result i32) - (call $f - (i32.const 1) (br_table 0 (i32.const 13) (i32.const 1)) (i32.const 3) - ) - ) - ) - (func (export "as-call-last") (result i32) - (block (result i32) - (call $f - (i32.const 1) (i32.const 2) (br_table 0 (i32.const 14) (i32.const 1)) - ) - ) - ) - - (type $sig (func (param i32 i32 i32) (result i32))) - (table funcref (elem $f)) - (func (export "as-call_indirect-first") (result i32) - (block (result i32) - (call_indirect (type $sig) - (br_table 0 (i32.const 20) (i32.const 1)) (i32.const 1) (i32.const 2) - (i32.const 3) - ) - ) - ) - (func (export "as-call_indirect-mid") (result i32) - (block (result i32) - (call_indirect (type $sig) - (i32.const 0) (br_table 0 (i32.const 21) (i32.const 1)) (i32.const 2) - (i32.const 3) - ) - ) - ) - (func (export "as-call_indirect-last") (result i32) - (block (result i32) - (call_indirect (type $sig) - (i32.const 0) (i32.const 1) (br_table 0 (i32.const 22) (i32.const 1)) - (i32.const 3) - ) - ) - ) - (func (export "as-call_indirect-func") (result i32) - (block (result i32) - (call_indirect (type $sig) - (i32.const 0) (i32.const 1) (i32.const 2) - (br_table 0 (i32.const 23) (i32.const 1)) - ) - ) - ) - - (func (export "as-local.set-value") (result i32) - (local f32) - (block (result i32) - (local.set 0 (br_table 0 (i32.const 17) (i32.const 1))) - (i32.const -1) - ) - ) - (func (export "as-local.tee-value") (result i32) - (local i32) - (block (result i32) - (local.set 0 (br_table 0 (i32.const 1) (i32.const 1))) - (i32.const -1) - ) - ) - (global $a (mut i32) (i32.const 10)) - (func (export "as-global.set-value") (result i32) - (block (result i32) - (global.set $a (br_table 0 (i32.const 1) (i32.const 1))) - (i32.const -1) - ) - ) - - (memory 1) - (func (export "as-load-address") (result f32) - (block (result f32) (f32.load (br_table 0 (f32.const 1.7) (i32.const 1)))) - ) - (func (export "as-loadN-address") (result i64) - (block (result i64) (i64.load8_s (br_table 0 (i64.const 30) (i32.const 1)))) - ) - - (func (export "as-store-address") (result i32) - (block (result i32) - (f64.store (br_table 0 (i32.const 30) (i32.const 1)) (f64.const 7)) - (i32.const -1) - ) - ) - (func (export "as-store-value") (result i32) - (block (result i32) - (i64.store (i32.const 2) (br_table 0 (i32.const 31) (i32.const 1))) - (i32.const -1) - ) - ) - - (func (export "as-storeN-address") (result i32) - (block (result i32) - (i32.store8 (br_table 0 (i32.const 32) (i32.const 0)) (i32.const 7)) - (i32.const -1) - ) - ) - (func (export "as-storeN-value") (result i32) - (block (result i32) - (i64.store16 (i32.const 2) (br_table 0 (i32.const 33) (i32.const 0))) - (i32.const -1) - ) - ) - - (func (export "as-unary-operand") (result f32) - (block (result f32) (f32.neg (br_table 0 (f32.const 3.4) (i32.const 0)))) - ) - - (func (export "as-binary-left") (result i32) - (block (result i32) - (i32.add (br_table 0 0 (i32.const 3) (i32.const 0)) (i32.const 10)) - ) - ) - (func (export "as-binary-right") (result i64) - (block (result i64) - (i64.sub (i64.const 10) (br_table 0 (i64.const 45) (i32.const 0))) - ) - ) - - (func (export "as-test-operand") (result i32) - (block (result i32) (i32.eqz (br_table 0 (i32.const 44) (i32.const 0)))) - ) - - (func (export "as-compare-left") (result i32) - (block (result i32) - (f64.le (br_table 0 0 (i32.const 43) (i32.const 0)) (f64.const 10)) - ) - ) - (func (export "as-compare-right") (result i32) - (block (result i32) - (f32.ne (f32.const 10) (br_table 0 (i32.const 42) (i32.const 0))) - ) - ) - - (func (export "as-convert-operand") (result i32) - (block (result i32) - (i32.wrap_i64 (br_table 0 (i32.const 41) (i32.const 0))) - ) - ) - - (func (export "as-memory.grow-size") (result i32) - (block (result i32) (memory.grow (br_table 0 (i32.const 40) (i32.const 0)))) - ) - - (func (export "nested-block-value") (param i32) (result i32) - (block (result i32) - (drop (i32.const -1)) - (i32.add - (i32.const 1) - (block (result i32) - (i32.add - (i32.const 2) - (block (result i32) - (drop (i32.const 4)) - (i32.add - (i32.const 8) - (br_table 0 1 2 (i32.const 16) (local.get 0)) - ) - ) - ) - ) - ) - ) - ) - - (func (export "nested-br-value") (param i32) (result i32) - (block (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop - (block (result i32) - (drop (i32.const 4)) - (br 0 (br_table 2 1 0 (i32.const 8) (local.get 0))) - ) - ) - (i32.const 16) - ) - ) - ) - ) - - (func (export "nested-br_if-value") (param i32) (result i32) - (block (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop - (block (result i32) - (drop (i32.const 4)) - (drop - (br_if 0 - (br_table 0 1 2 (i32.const 8) (local.get 0)) - (i32.const 1) - ) - ) - (i32.const 32) - ) - ) - (i32.const 16) - ) - ) - ) - ) - - (func (export "nested-br_if-value-cond") (param i32) (result i32) - (block (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop - (br_if 0 (i32.const 4) (br_table 0 1 0 (i32.const 8) (local.get 0))) - ) - (i32.const 16) - ) - ) - ) - ) - - (func (export "nested-br_table-value") (param i32) (result i32) - (block (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop - (block (result i32) - (drop (i32.const 4)) - (br_table 0 (br_table 0 1 2 (i32.const 8) (local.get 0)) (i32.const 1)) - (i32.const 32) - ) - ) - (i32.const 16) - ) - ) - ) - ) - - (func (export "nested-br_table-value-index") (param i32) (result i32) - (block (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (br_table 0 (i32.const 4) (br_table 0 1 0 (i32.const 8) (local.get 0))) - (i32.const 16) - ) - ) - ) - ) - - (func (export "nested-br_table-loop-block") (param i32) (result i32) - (local.set 0 - (loop (result i32) - (block - (br_table 1 0 0 (local.get 0)) - ) - (i32.const 0) - ) - ) - (loop (result i32) - (block - (br_table 0 1 1 (local.get 0)) - ) - (i32.const 3) - ) - ) -) - -(assert_return (invoke "type-i32")) -(assert_return (invoke "type-i64")) -(assert_return (invoke "type-f32")) -(assert_return (invoke "type-f64")) - -(assert_return (invoke "type-i32-value") (i32.const 1)) -(assert_return (invoke "type-i64-value") (i64.const 2)) -(assert_return (invoke "type-f32-value") (f32.const 3)) -(assert_return (invoke "type-f64-value") (f64.const 4)) - -(assert_return (invoke "empty" (i32.const 0)) (i32.const 22)) -(assert_return (invoke "empty" (i32.const 1)) (i32.const 22)) -(assert_return (invoke "empty" (i32.const 11)) (i32.const 22)) -(assert_return (invoke "empty" (i32.const -1)) (i32.const 22)) -(assert_return (invoke "empty" (i32.const -100)) (i32.const 22)) -(assert_return (invoke "empty" (i32.const 0xffffffff)) (i32.const 22)) - -(assert_return (invoke "empty-value" (i32.const 0)) (i32.const 33)) -(assert_return (invoke "empty-value" (i32.const 1)) (i32.const 33)) -(assert_return (invoke "empty-value" (i32.const 11)) (i32.const 33)) -(assert_return (invoke "empty-value" (i32.const -1)) (i32.const 33)) -(assert_return (invoke "empty-value" (i32.const -100)) (i32.const 33)) -(assert_return (invoke "empty-value" (i32.const 0xffffffff)) (i32.const 33)) - -(assert_return (invoke "singleton" (i32.const 0)) (i32.const 22)) -(assert_return (invoke "singleton" (i32.const 1)) (i32.const 20)) -(assert_return (invoke "singleton" (i32.const 11)) (i32.const 20)) -(assert_return (invoke "singleton" (i32.const -1)) (i32.const 20)) -(assert_return (invoke "singleton" (i32.const -100)) (i32.const 20)) -(assert_return (invoke "singleton" (i32.const 0xffffffff)) (i32.const 20)) - -(assert_return (invoke "singleton-value" (i32.const 0)) (i32.const 32)) -(assert_return (invoke "singleton-value" (i32.const 1)) (i32.const 33)) -(assert_return (invoke "singleton-value" (i32.const 11)) (i32.const 33)) -(assert_return (invoke "singleton-value" (i32.const -1)) (i32.const 33)) -(assert_return (invoke "singleton-value" (i32.const -100)) (i32.const 33)) -(assert_return (invoke "singleton-value" (i32.const 0xffffffff)) (i32.const 33)) - -(assert_return (invoke "multiple" (i32.const 0)) (i32.const 103)) -(assert_return (invoke "multiple" (i32.const 1)) (i32.const 102)) -(assert_return (invoke "multiple" (i32.const 2)) (i32.const 101)) -(assert_return (invoke "multiple" (i32.const 3)) (i32.const 100)) -(assert_return (invoke "multiple" (i32.const 4)) (i32.const 104)) -(assert_return (invoke "multiple" (i32.const 5)) (i32.const 104)) -(assert_return (invoke "multiple" (i32.const 6)) (i32.const 104)) -(assert_return (invoke "multiple" (i32.const 10)) (i32.const 104)) -(assert_return (invoke "multiple" (i32.const -1)) (i32.const 104)) -(assert_return (invoke "multiple" (i32.const 0xffffffff)) (i32.const 104)) - -(assert_return (invoke "multiple-value" (i32.const 0)) (i32.const 213)) -(assert_return (invoke "multiple-value" (i32.const 1)) (i32.const 212)) -(assert_return (invoke "multiple-value" (i32.const 2)) (i32.const 211)) -(assert_return (invoke "multiple-value" (i32.const 3)) (i32.const 210)) -(assert_return (invoke "multiple-value" (i32.const 4)) (i32.const 214)) -(assert_return (invoke "multiple-value" (i32.const 5)) (i32.const 214)) -(assert_return (invoke "multiple-value" (i32.const 6)) (i32.const 214)) -(assert_return (invoke "multiple-value" (i32.const 10)) (i32.const 214)) -(assert_return (invoke "multiple-value" (i32.const -1)) (i32.const 214)) -(assert_return (invoke "multiple-value" (i32.const 0xffffffff)) (i32.const 214)) - -(assert_return (invoke "large" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "large" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "large" (i32.const 100)) (i32.const 0)) -(assert_return (invoke "large" (i32.const 101)) (i32.const 1)) -(assert_return (invoke "large" (i32.const 10000)) (i32.const 0)) -(assert_return (invoke "large" (i32.const 10001)) (i32.const 1)) -(assert_return (invoke "large" (i32.const 1000000)) (i32.const 1)) -(assert_return (invoke "large" (i32.const 1000001)) (i32.const 1)) - -(assert_return (invoke "as-block-first")) -(assert_return (invoke "as-block-mid")) -(assert_return (invoke "as-block-last")) -(assert_return (invoke "as-block-value") (i32.const 2)) - -(assert_return (invoke "as-loop-first") (i32.const 3)) -(assert_return (invoke "as-loop-mid") (i32.const 4)) -(assert_return (invoke "as-loop-last") (i32.const 5)) - -(assert_return (invoke "as-br-value") (i32.const 9)) - -(assert_return (invoke "as-br_if-cond")) -(assert_return (invoke "as-br_if-value") (i32.const 8)) -(assert_return (invoke "as-br_if-value-cond") (i32.const 9)) - -(assert_return (invoke "as-br_table-index")) -(assert_return (invoke "as-br_table-value") (i32.const 10)) -(assert_return (invoke "as-br_table-value-index") (i32.const 11)) - -(assert_return (invoke "as-return-value") (i64.const 7)) - -(assert_return (invoke "as-if-cond") (i32.const 2)) -(assert_return (invoke "as-if-then" (i32.const 1) (i32.const 6)) (i32.const 3)) -(assert_return (invoke "as-if-then" (i32.const 0) (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-if-else" (i32.const 0) (i32.const 6)) (i32.const 4)) -(assert_return (invoke "as-if-else" (i32.const 1) (i32.const 6)) (i32.const 6)) - -(assert_return (invoke "as-select-first" (i32.const 0) (i32.const 6)) (i32.const 5)) -(assert_return (invoke "as-select-first" (i32.const 1) (i32.const 6)) (i32.const 5)) -(assert_return (invoke "as-select-second" (i32.const 0) (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-select-second" (i32.const 1) (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-select-cond") (i32.const 7)) - -(assert_return (invoke "as-call-first") (i32.const 12)) -(assert_return (invoke "as-call-mid") (i32.const 13)) -(assert_return (invoke "as-call-last") (i32.const 14)) - -(assert_return (invoke "as-call_indirect-first") (i32.const 20)) -(assert_return (invoke "as-call_indirect-mid") (i32.const 21)) -(assert_return (invoke "as-call_indirect-last") (i32.const 22)) -(assert_return (invoke "as-call_indirect-func") (i32.const 23)) - -(assert_return (invoke "as-local.set-value") (i32.const 17)) -(assert_return (invoke "as-local.tee-value") (i32.const 1)) -(assert_return (invoke "as-global.set-value") (i32.const 1)) - -(assert_return (invoke "as-load-address") (f32.const 1.7)) -(assert_return (invoke "as-loadN-address") (i64.const 30)) - -(assert_return (invoke "as-store-address") (i32.const 30)) -(assert_return (invoke "as-store-value") (i32.const 31)) -(assert_return (invoke "as-storeN-address") (i32.const 32)) -(assert_return (invoke "as-storeN-value") (i32.const 33)) - -(assert_return (invoke "as-unary-operand") (f32.const 3.4)) - -(assert_return (invoke "as-binary-left") (i32.const 3)) -(assert_return (invoke "as-binary-right") (i64.const 45)) - -(assert_return (invoke "as-test-operand") (i32.const 44)) - -(assert_return (invoke "as-compare-left") (i32.const 43)) -(assert_return (invoke "as-compare-right") (i32.const 42)) - -(assert_return (invoke "as-convert-operand") (i32.const 41)) - -(assert_return (invoke "as-memory.grow-size") (i32.const 40)) - -(assert_return (invoke "nested-block-value" (i32.const 0)) (i32.const 19)) -(assert_return (invoke "nested-block-value" (i32.const 1)) (i32.const 17)) -(assert_return (invoke "nested-block-value" (i32.const 2)) (i32.const 16)) -(assert_return (invoke "nested-block-value" (i32.const 10)) (i32.const 16)) -(assert_return (invoke "nested-block-value" (i32.const -1)) (i32.const 16)) -(assert_return (invoke "nested-block-value" (i32.const 100000)) (i32.const 16)) - -(assert_return (invoke "nested-br-value" (i32.const 0)) (i32.const 8)) -(assert_return (invoke "nested-br-value" (i32.const 1)) (i32.const 9)) -(assert_return (invoke "nested-br-value" (i32.const 2)) (i32.const 17)) -(assert_return (invoke "nested-br-value" (i32.const 11)) (i32.const 17)) -(assert_return (invoke "nested-br-value" (i32.const -4)) (i32.const 17)) -(assert_return (invoke "nested-br-value" (i32.const 10213210)) (i32.const 17)) - -(assert_return (invoke "nested-br_if-value" (i32.const 0)) (i32.const 17)) -(assert_return (invoke "nested-br_if-value" (i32.const 1)) (i32.const 9)) -(assert_return (invoke "nested-br_if-value" (i32.const 2)) (i32.const 8)) -(assert_return (invoke "nested-br_if-value" (i32.const 9)) (i32.const 8)) -(assert_return (invoke "nested-br_if-value" (i32.const -9)) (i32.const 8)) -(assert_return (invoke "nested-br_if-value" (i32.const 999999)) (i32.const 8)) - -(assert_return (invoke "nested-br_if-value-cond" (i32.const 0)) (i32.const 9)) -(assert_return (invoke "nested-br_if-value-cond" (i32.const 1)) (i32.const 8)) -(assert_return (invoke "nested-br_if-value-cond" (i32.const 2)) (i32.const 9)) -(assert_return (invoke "nested-br_if-value-cond" (i32.const 3)) (i32.const 9)) -(assert_return (invoke "nested-br_if-value-cond" (i32.const -1000000)) (i32.const 9)) -(assert_return (invoke "nested-br_if-value-cond" (i32.const 9423975)) (i32.const 9)) - -(assert_return (invoke "nested-br_table-value" (i32.const 0)) (i32.const 17)) -(assert_return (invoke "nested-br_table-value" (i32.const 1)) (i32.const 9)) -(assert_return (invoke "nested-br_table-value" (i32.const 2)) (i32.const 8)) -(assert_return (invoke "nested-br_table-value" (i32.const 9)) (i32.const 8)) -(assert_return (invoke "nested-br_table-value" (i32.const -9)) (i32.const 8)) -(assert_return (invoke "nested-br_table-value" (i32.const 999999)) (i32.const 8)) - -(assert_return (invoke "nested-br_table-value-index" (i32.const 0)) (i32.const 9)) -(assert_return (invoke "nested-br_table-value-index" (i32.const 1)) (i32.const 8)) -(assert_return (invoke "nested-br_table-value-index" (i32.const 2)) (i32.const 9)) -(assert_return (invoke "nested-br_table-value-index" (i32.const 3)) (i32.const 9)) -(assert_return (invoke "nested-br_table-value-index" (i32.const -1000000)) (i32.const 9)) -(assert_return (invoke "nested-br_table-value-index" (i32.const 9423975)) (i32.const 9)) - -(assert_return (invoke "nested-br_table-loop-block" (i32.const 1)) (i32.const 3)) - -(assert_invalid - (module (func $type-arg-void-vs-num (result i32) - (block (br_table 0 (i32.const 1)) (i32.const 1)) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-arg-empty-vs-num (result i32) - (block (br_table 0) (i32.const 1)) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-arg-void-vs-num (result i32) - (block (result i32) (br_table 0 (nop) (i32.const 1)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-num-vs-num (result i32) - (block (result i32) - (br_table 0 0 0 (i64.const 1) (i32.const 1)) (i32.const 1) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-num-vs-arg-num - (block - (block (result f32) - (br_table 0 1 (f32.const 0) (i32.const 0)) - ) - (drop) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func - (block (result i32) - (block (result i64) - (br_table 0 1 (i32.const 0) (i32.const 0)) - ) - ) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-index-void-vs-i32 - (block (br_table 0 0 0 (nop))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-index-num-vs-i32 - (block (br_table 0 (i64.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-index-void-vs-i32 (result i32) - (block (result i32) (br_table 0 0 (i32.const 0) (nop)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-void-vs-num-nested (result i32) - (block (result i32) (i32.const 0) (block (br_table 1 (i32.const 0)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-index-num-vs-i32 (result i32) - (block (result i32) - (br_table 0 0 (i32.const 0) (i64.const 0)) (i32.const 1) - ) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-arg-void-vs-num (result i32) - (block (br_table 0 (i32.const 1)) (i32.const 1)) - )) - "type mismatch" -) - -(assert_invalid - (module - (func $type-arg-index-empty-in-then - (block - (i32.const 0) (i32.const 0) - (if (result i32) (then (br_table 0))) - ) - (i32.eqz) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-arg-value-empty-in-then - (block - (i32.const 0) (i32.const 0) - (if (result i32) (then (br_table 0 (i32.const 1)))) - ) - (i32.eqz) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-arg-index-empty-in-return - (block (result i32) - (return (br_table 0)) - ) - (i32.eqz) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-arg-value-empty-in-return - (block (result i32) - (return (br_table 0 (i32.const 1))) - ) - (i32.eqz) (drop) - ) - ) - "type mismatch" -) - -(assert_invalid - (module - (func (param i32) (result i32) - (loop (result i32) - (block (result i32) - (br_table 0 1 (i32.const 1) (local.get 0)) - ) - ) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func (param i32) (result i32) - (block (result i32) - (loop (result i32) - (br_table 0 1 (i32.const 1) (local.get 0)) - ) - ) - ) - ) - "type mismatch" -) - - -(assert_invalid - (module (func $unbound-label - (block (br_table 2 1 (i32.const 1))) - )) - "unknown label" -) -(assert_invalid - (module (func $unbound-nested-label - (block (block (br_table 0 5 (i32.const 1)))) - )) - "unknown label" -) -(assert_invalid - (module (func $large-label - (block (br_table 0 0x10000001 0 (i32.const 1))) - )) - "unknown label" -) - -(assert_invalid - (module (func $unbound-label-default - (block (br_table 1 2 (i32.const 1))) - )) - "unknown label" -) -(assert_invalid - (module (func $unbound-nested-label-default - (block (block (br_table 0 5 (i32.const 1)))) - )) - "unknown label" -) -(assert_invalid - (module (func $large-label-default - (block (br_table 0 0 0x10000001 (i32.const 1))) - )) - "unknown label" -) \ No newline at end of file +;; Test `br_table` operator + +(module + ;; Auxiliary definition + (func $dummy) + + (func (export "type-i32") + (block (drop (i32.ctz (br_table 0 0 (i32.const 0))))) + ) + (func (export "type-i64") + (block (drop (i64.ctz (br_table 0 0 (i32.const 0))))) + ) + (func (export "type-f32") + (block (drop (f32.neg (br_table 0 0 (i32.const 0))))) + ) + (func (export "type-f64") + (block (drop (f64.neg (br_table 0 0 (i32.const 0))))) + ) + + (func (export "type-i32-value") (result i32) + (block (result i32) (i32.ctz (br_table 0 0 (i32.const 1) (i32.const 0)))) + ) + (func (export "type-i64-value") (result i64) + (block (result i64) (i64.ctz (br_table 0 0 (i64.const 2) (i32.const 0)))) + ) + (func (export "type-f32-value") (result f32) + (block (result f32) (f32.neg (br_table 0 0 (f32.const 3) (i32.const 0)))) + ) + (func (export "type-f64-value") (result f64) + (block (result f64) (f64.neg (br_table 0 0 (f64.const 4) (i32.const 0)))) + ) + + (func (export "empty") (param i32) (result i32) + (block (br_table 0 (local.get 0)) (return (i32.const 21))) + (i32.const 22) + ) + (func (export "empty-value") (param i32) (result i32) + (block (result i32) + (br_table 0 (i32.const 33) (local.get 0)) (i32.const 31) + ) + ) + + (func (export "singleton") (param i32) (result i32) + (block + (block + (br_table 1 0 (local.get 0)) + (return (i32.const 21)) + ) + (return (i32.const 20)) + ) + (i32.const 22) + ) + + (func (export "singleton-value") (param i32) (result i32) + (block (result i32) + (drop + (block (result i32) + (br_table 0 1 (i32.const 33) (local.get 0)) + (return (i32.const 31)) + ) + ) + (i32.const 32) + ) + ) + + (func (export "multiple") (param i32) (result i32) + (block + (block + (block + (block + (block + (br_table 3 2 1 0 4 (local.get 0)) + (return (i32.const 99)) + ) + (return (i32.const 100)) + ) + (return (i32.const 101)) + ) + (return (i32.const 102)) + ) + (return (i32.const 103)) + ) + (i32.const 104) + ) + + (func (export "multiple-value") (param i32) (result i32) + (local i32) + (local.set 1 (block (result i32) + (local.set 1 (block (result i32) + (local.set 1 (block (result i32) + (local.set 1 (block (result i32) + (local.set 1 (block (result i32) + (br_table 3 2 1 0 4 (i32.const 200) (local.get 0)) + (return (i32.add (local.get 1) (i32.const 99))) + )) + (return (i32.add (local.get 1) (i32.const 10))) + )) + (return (i32.add (local.get 1) (i32.const 11))) + )) + (return (i32.add (local.get 1) (i32.const 12))) + )) + (return (i32.add (local.get 1) (i32.const 13))) + )) + (i32.add (local.get 1) (i32.const 14)) + ) + + (func (export "large") (param i32) (result i32) + (block + (block + (br_table + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 + (local.get 0) + ) + (return (i32.const -1)) + ) + (return (i32.const 0)) + ) + (return (i32.const 1)) + ) + + (func (export "as-block-first") + (block (br_table 0 0 0 (i32.const 0)) (call $dummy)) + ) + (func (export "as-block-mid") + (block (call $dummy) (br_table 0 0 0 (i32.const 0)) (call $dummy)) + ) + (func (export "as-block-last") + (block (nop) (call $dummy) (br_table 0 0 0 (i32.const 0))) + ) + (func (export "as-block-value") (result i32) + (block (result i32) + (nop) (call $dummy) (br_table 0 0 0 (i32.const 2) (i32.const 0)) + ) + ) + + (func (export "as-loop-first") (result i32) + (loop (result i32) (br_table 1 1 (i32.const 3) (i32.const 0)) (i32.const 1)) + ) + (func (export "as-loop-mid") (result i32) + (loop (result i32) + (call $dummy) + (br_table 1 1 1 (i32.const 4) (i32.const -1)) + (i32.const 2) + ) + ) + (func (export "as-loop-last") (result i32) + (loop (result i32) + (nop) (call $dummy) (br_table 1 1 1 (i32.const 5) (i32.const 1)) + ) + ) + + (func (export "as-br-value") (result i32) + (block (result i32) (br 0 (br_table 0 (i32.const 9) (i32.const 0)))) + ) + + (func (export "as-br_if-cond") + (block (br_if 0 (br_table 0 0 0 (i32.const 1)))) + ) + (func (export "as-br_if-value") (result i32) + (block (result i32) + (drop (br_if 0 (br_table 0 (i32.const 8) (i32.const 0)) (i32.const 1))) + (i32.const 7) + ) + ) + (func (export "as-br_if-value-cond") (result i32) + (block (result i32) + (drop (br_if 0 (i32.const 6) (br_table 0 0 (i32.const 9) (i32.const 0)))) + (i32.const 7) + ) + ) + + (func (export "as-br_table-index") + (block (br_table 0 0 0 (br_table 0 (i32.const 1)))) + ) + (func (export "as-br_table-value") (result i32) + (block (result i32) + (br_table 0 0 0 (br_table 0 (i32.const 10) (i32.const 0)) (i32.const 1)) + (i32.const 7) + ) + ) + (func (export "as-br_table-value-index") (result i32) + (block (result i32) + (br_table 0 0 (i32.const 6) (br_table 0 (i32.const 11) (i32.const 1))) + (i32.const 7) + ) + ) + + (func (export "as-return-value") (result i64) + (block (result i64) (return (br_table 0 (i64.const 7) (i32.const 0)))) + ) + + (func (export "as-if-cond") (result i32) + (block (result i32) + (if (result i32) + (br_table 0 (i32.const 2) (i32.const 0)) + (then (i32.const 0)) + (else (i32.const 1)) + ) + ) + ) + (func (export "as-if-then") (param i32 i32) (result i32) + (block (result i32) + (if (result i32) + (local.get 0) + (then (br_table 1 (i32.const 3) (i32.const 0))) + (else (local.get 1)) + ) + ) + ) + (func (export "as-if-else") (param i32 i32) (result i32) + (block (result i32) + (if (result i32) + (local.get 0) + (then (local.get 1)) + (else (br_table 1 0 (i32.const 4) (i32.const 0))) + ) + ) + ) + + (func (export "as-select-first") (param i32 i32) (result i32) + (block (result i32) + (select + (br_table 0 (i32.const 5) (i32.const 0)) (local.get 0) (local.get 1) + ) + ) + ) + (func (export "as-select-second") (param i32 i32) (result i32) + (block (result i32) + (select + (local.get 0) (br_table 0 (i32.const 6) (i32.const 1)) (local.get 1) + ) + ) + ) + (func (export "as-select-cond") (result i32) + (block (result i32) + (select + (i32.const 0) (i32.const 1) (br_table 0 (i32.const 7) (i32.const 1)) + ) + ) + ) + + (func $f (param i32 i32 i32) (result i32) (i32.const -1)) + (func (export "as-call-first") (result i32) + (block (result i32) + (call $f + (br_table 0 (i32.const 12) (i32.const 1)) (i32.const 2) (i32.const 3) + ) + ) + ) + (func (export "as-call-mid") (result i32) + (block (result i32) + (call $f + (i32.const 1) (br_table 0 (i32.const 13) (i32.const 1)) (i32.const 3) + ) + ) + ) + (func (export "as-call-last") (result i32) + (block (result i32) + (call $f + (i32.const 1) (i32.const 2) (br_table 0 (i32.const 14) (i32.const 1)) + ) + ) + ) + + (type $sig (func (param i32 i32 i32) (result i32))) + (table funcref (elem $f)) + (func (export "as-call_indirect-first") (result i32) + (block (result i32) + (call_indirect (type $sig) + (br_table 0 (i32.const 20) (i32.const 1)) (i32.const 1) (i32.const 2) + (i32.const 3) + ) + ) + ) + (func (export "as-call_indirect-mid") (result i32) + (block (result i32) + (call_indirect (type $sig) + (i32.const 0) (br_table 0 (i32.const 21) (i32.const 1)) (i32.const 2) + (i32.const 3) + ) + ) + ) + (func (export "as-call_indirect-last") (result i32) + (block (result i32) + (call_indirect (type $sig) + (i32.const 0) (i32.const 1) (br_table 0 (i32.const 22) (i32.const 1)) + (i32.const 3) + ) + ) + ) + (func (export "as-call_indirect-func") (result i32) + (block (result i32) + (call_indirect (type $sig) + (i32.const 0) (i32.const 1) (i32.const 2) + (br_table 0 (i32.const 23) (i32.const 1)) + ) + ) + ) + + (func (export "as-local.set-value") (result i32) + (local f32) + (block (result i32) + (local.set 0 (br_table 0 (i32.const 17) (i32.const 1))) + (i32.const -1) + ) + ) + (func (export "as-local.tee-value") (result i32) + (local i32) + (block (result i32) + (local.set 0 (br_table 0 (i32.const 1) (i32.const 1))) + (i32.const -1) + ) + ) + (global $a (mut i32) (i32.const 10)) + (func (export "as-global.set-value") (result i32) + (block (result i32) + (global.set $a (br_table 0 (i32.const 1) (i32.const 1))) + (i32.const -1) + ) + ) + + (memory 1) + (func (export "as-load-address") (result f32) + (block (result f32) (f32.load (br_table 0 (f32.const 1.7) (i32.const 1)))) + ) + (func (export "as-loadN-address") (result i64) + (block (result i64) (i64.load8_s (br_table 0 (i64.const 30) (i32.const 1)))) + ) + + (func (export "as-store-address") (result i32) + (block (result i32) + (f64.store (br_table 0 (i32.const 30) (i32.const 1)) (f64.const 7)) + (i32.const -1) + ) + ) + (func (export "as-store-value") (result i32) + (block (result i32) + (i64.store (i32.const 2) (br_table 0 (i32.const 31) (i32.const 1))) + (i32.const -1) + ) + ) + + (func (export "as-storeN-address") (result i32) + (block (result i32) + (i32.store8 (br_table 0 (i32.const 32) (i32.const 0)) (i32.const 7)) + (i32.const -1) + ) + ) + (func (export "as-storeN-value") (result i32) + (block (result i32) + (i64.store16 (i32.const 2) (br_table 0 (i32.const 33) (i32.const 0))) + (i32.const -1) + ) + ) + + (func (export "as-unary-operand") (result f32) + (block (result f32) (f32.neg (br_table 0 (f32.const 3.4) (i32.const 0)))) + ) + + (func (export "as-binary-left") (result i32) + (block (result i32) + (i32.add (br_table 0 0 (i32.const 3) (i32.const 0)) (i32.const 10)) + ) + ) + (func (export "as-binary-right") (result i64) + (block (result i64) + (i64.sub (i64.const 10) (br_table 0 (i64.const 45) (i32.const 0))) + ) + ) + + (func (export "as-test-operand") (result i32) + (block (result i32) (i32.eqz (br_table 0 (i32.const 44) (i32.const 0)))) + ) + + (func (export "as-compare-left") (result i32) + (block (result i32) + (f64.le (br_table 0 0 (i32.const 43) (i32.const 0)) (f64.const 10)) + ) + ) + (func (export "as-compare-right") (result i32) + (block (result i32) + (f32.ne (f32.const 10) (br_table 0 (i32.const 42) (i32.const 0))) + ) + ) + + (func (export "as-convert-operand") (result i32) + (block (result i32) + (i32.wrap_i64 (br_table 0 (i32.const 41) (i32.const 0))) + ) + ) + + (func (export "as-memory.grow-size") (result i32) + (block (result i32) (memory.grow (br_table 0 (i32.const 40) (i32.const 0)))) + ) + + (func (export "nested-block-value") (param i32) (result i32) + (block (result i32) + (drop (i32.const -1)) + (i32.add + (i32.const 1) + (block (result i32) + (i32.add + (i32.const 2) + (block (result i32) + (drop (i32.const 4)) + (i32.add + (i32.const 8) + (br_table 0 1 2 (i32.const 16) (local.get 0)) + ) + ) + ) + ) + ) + ) + ) + + (func (export "nested-br-value") (param i32) (result i32) + (block (result i32) + (i32.add + (i32.const 1) + (block (result i32) + (drop (i32.const 2)) + (drop + (block (result i32) + (drop (i32.const 4)) + (br 0 (br_table 2 1 0 (i32.const 8) (local.get 0))) + ) + ) + (i32.const 16) + ) + ) + ) + ) + + (func (export "nested-br_if-value") (param i32) (result i32) + (block (result i32) + (i32.add + (i32.const 1) + (block (result i32) + (drop (i32.const 2)) + (drop + (block (result i32) + (drop (i32.const 4)) + (drop + (br_if 0 + (br_table 0 1 2 (i32.const 8) (local.get 0)) + (i32.const 1) + ) + ) + (i32.const 32) + ) + ) + (i32.const 16) + ) + ) + ) + ) + + (func (export "nested-br_if-value-cond") (param i32) (result i32) + (block (result i32) + (i32.add + (i32.const 1) + (block (result i32) + (drop (i32.const 2)) + (drop + (br_if 0 (i32.const 4) (br_table 0 1 0 (i32.const 8) (local.get 0))) + ) + (i32.const 16) + ) + ) + ) + ) + + (func (export "nested-br_table-value") (param i32) (result i32) + (block (result i32) + (i32.add + (i32.const 1) + (block (result i32) + (drop (i32.const 2)) + (drop + (block (result i32) + (drop (i32.const 4)) + (br_table 0 (br_table 0 1 2 (i32.const 8) (local.get 0)) (i32.const 1)) + (i32.const 32) + ) + ) + (i32.const 16) + ) + ) + ) + ) + + (func (export "nested-br_table-value-index") (param i32) (result i32) + (block (result i32) + (i32.add + (i32.const 1) + (block (result i32) + (drop (i32.const 2)) + (br_table 0 (i32.const 4) (br_table 0 1 0 (i32.const 8) (local.get 0))) + (i32.const 16) + ) + ) + ) + ) + + (func (export "nested-br_table-loop-block") (param i32) (result i32) + (local.set 0 + (loop (result i32) + (block + (br_table 1 0 0 (local.get 0)) + ) + (i32.const 0) + ) + ) + (loop (result i32) + (block + (br_table 0 1 1 (local.get 0)) + ) + (i32.const 3) + ) + ) + + ;; W2C2: No support for externref + ;; (func (export "meet-externref") (param i32) (param externref) (result externref) + ;; (block $l1 (result externref) + ;; (block $l2 (result externref) + ;; (br_table $l1 $l2 $l1 (local.get 1) (local.get 0)) + ;; ) + ;; ) + ;; ) +) + +(assert_return (invoke "type-i32")) +(assert_return (invoke "type-i64")) +(assert_return (invoke "type-f32")) +(assert_return (invoke "type-f64")) + +(assert_return (invoke "type-i32-value") (i32.const 1)) +(assert_return (invoke "type-i64-value") (i64.const 2)) +(assert_return (invoke "type-f32-value") (f32.const 3)) +(assert_return (invoke "type-f64-value") (f64.const 4)) + +(assert_return (invoke "empty" (i32.const 0)) (i32.const 22)) +(assert_return (invoke "empty" (i32.const 1)) (i32.const 22)) +(assert_return (invoke "empty" (i32.const 11)) (i32.const 22)) +(assert_return (invoke "empty" (i32.const -1)) (i32.const 22)) +(assert_return (invoke "empty" (i32.const -100)) (i32.const 22)) +(assert_return (invoke "empty" (i32.const 0xffffffff)) (i32.const 22)) + +(assert_return (invoke "empty-value" (i32.const 0)) (i32.const 33)) +(assert_return (invoke "empty-value" (i32.const 1)) (i32.const 33)) +(assert_return (invoke "empty-value" (i32.const 11)) (i32.const 33)) +(assert_return (invoke "empty-value" (i32.const -1)) (i32.const 33)) +(assert_return (invoke "empty-value" (i32.const -100)) (i32.const 33)) +(assert_return (invoke "empty-value" (i32.const 0xffffffff)) (i32.const 33)) + +(assert_return (invoke "singleton" (i32.const 0)) (i32.const 22)) +(assert_return (invoke "singleton" (i32.const 1)) (i32.const 20)) +(assert_return (invoke "singleton" (i32.const 11)) (i32.const 20)) +(assert_return (invoke "singleton" (i32.const -1)) (i32.const 20)) +(assert_return (invoke "singleton" (i32.const -100)) (i32.const 20)) +(assert_return (invoke "singleton" (i32.const 0xffffffff)) (i32.const 20)) + +(assert_return (invoke "singleton-value" (i32.const 0)) (i32.const 32)) +(assert_return (invoke "singleton-value" (i32.const 1)) (i32.const 33)) +(assert_return (invoke "singleton-value" (i32.const 11)) (i32.const 33)) +(assert_return (invoke "singleton-value" (i32.const -1)) (i32.const 33)) +(assert_return (invoke "singleton-value" (i32.const -100)) (i32.const 33)) +(assert_return (invoke "singleton-value" (i32.const 0xffffffff)) (i32.const 33)) + +(assert_return (invoke "multiple" (i32.const 0)) (i32.const 103)) +(assert_return (invoke "multiple" (i32.const 1)) (i32.const 102)) +(assert_return (invoke "multiple" (i32.const 2)) (i32.const 101)) +(assert_return (invoke "multiple" (i32.const 3)) (i32.const 100)) +(assert_return (invoke "multiple" (i32.const 4)) (i32.const 104)) +(assert_return (invoke "multiple" (i32.const 5)) (i32.const 104)) +(assert_return (invoke "multiple" (i32.const 6)) (i32.const 104)) +(assert_return (invoke "multiple" (i32.const 10)) (i32.const 104)) +(assert_return (invoke "multiple" (i32.const -1)) (i32.const 104)) +(assert_return (invoke "multiple" (i32.const 0xffffffff)) (i32.const 104)) + +(assert_return (invoke "multiple-value" (i32.const 0)) (i32.const 213)) +(assert_return (invoke "multiple-value" (i32.const 1)) (i32.const 212)) +(assert_return (invoke "multiple-value" (i32.const 2)) (i32.const 211)) +(assert_return (invoke "multiple-value" (i32.const 3)) (i32.const 210)) +(assert_return (invoke "multiple-value" (i32.const 4)) (i32.const 214)) +(assert_return (invoke "multiple-value" (i32.const 5)) (i32.const 214)) +(assert_return (invoke "multiple-value" (i32.const 6)) (i32.const 214)) +(assert_return (invoke "multiple-value" (i32.const 10)) (i32.const 214)) +(assert_return (invoke "multiple-value" (i32.const -1)) (i32.const 214)) +(assert_return (invoke "multiple-value" (i32.const 0xffffffff)) (i32.const 214)) + +(assert_return (invoke "large" (i32.const 0)) (i32.const 0)) +(assert_return (invoke "large" (i32.const 1)) (i32.const 1)) +(assert_return (invoke "large" (i32.const 100)) (i32.const 0)) +(assert_return (invoke "large" (i32.const 101)) (i32.const 1)) +(assert_return (invoke "large" (i32.const 10000)) (i32.const 0)) +(assert_return (invoke "large" (i32.const 10001)) (i32.const 1)) +(assert_return (invoke "large" (i32.const 1000000)) (i32.const 1)) +(assert_return (invoke "large" (i32.const 1000001)) (i32.const 1)) + +(assert_return (invoke "as-block-first")) +(assert_return (invoke "as-block-mid")) +(assert_return (invoke "as-block-last")) +(assert_return (invoke "as-block-value") (i32.const 2)) + +(assert_return (invoke "as-loop-first") (i32.const 3)) +(assert_return (invoke "as-loop-mid") (i32.const 4)) +(assert_return (invoke "as-loop-last") (i32.const 5)) + +(assert_return (invoke "as-br-value") (i32.const 9)) + +(assert_return (invoke "as-br_if-cond")) +(assert_return (invoke "as-br_if-value") (i32.const 8)) +(assert_return (invoke "as-br_if-value-cond") (i32.const 9)) + +(assert_return (invoke "as-br_table-index")) +(assert_return (invoke "as-br_table-value") (i32.const 10)) +(assert_return (invoke "as-br_table-value-index") (i32.const 11)) + +(assert_return (invoke "as-return-value") (i64.const 7)) + +(assert_return (invoke "as-if-cond") (i32.const 2)) +(assert_return (invoke "as-if-then" (i32.const 1) (i32.const 6)) (i32.const 3)) +(assert_return (invoke "as-if-then" (i32.const 0) (i32.const 6)) (i32.const 6)) +(assert_return (invoke "as-if-else" (i32.const 0) (i32.const 6)) (i32.const 4)) +(assert_return (invoke "as-if-else" (i32.const 1) (i32.const 6)) (i32.const 6)) + +(assert_return (invoke "as-select-first" (i32.const 0) (i32.const 6)) (i32.const 5)) +(assert_return (invoke "as-select-first" (i32.const 1) (i32.const 6)) (i32.const 5)) +(assert_return (invoke "as-select-second" (i32.const 0) (i32.const 6)) (i32.const 6)) +(assert_return (invoke "as-select-second" (i32.const 1) (i32.const 6)) (i32.const 6)) +(assert_return (invoke "as-select-cond") (i32.const 7)) + +(assert_return (invoke "as-call-first") (i32.const 12)) +(assert_return (invoke "as-call-mid") (i32.const 13)) +(assert_return (invoke "as-call-last") (i32.const 14)) + +(assert_return (invoke "as-call_indirect-first") (i32.const 20)) +(assert_return (invoke "as-call_indirect-mid") (i32.const 21)) +(assert_return (invoke "as-call_indirect-last") (i32.const 22)) +(assert_return (invoke "as-call_indirect-func") (i32.const 23)) + +(assert_return (invoke "as-local.set-value") (i32.const 17)) +(assert_return (invoke "as-local.tee-value") (i32.const 1)) +(assert_return (invoke "as-global.set-value") (i32.const 1)) + +(assert_return (invoke "as-load-address") (f32.const 1.7)) +(assert_return (invoke "as-loadN-address") (i64.const 30)) + +(assert_return (invoke "as-store-address") (i32.const 30)) +(assert_return (invoke "as-store-value") (i32.const 31)) +(assert_return (invoke "as-storeN-address") (i32.const 32)) +(assert_return (invoke "as-storeN-value") (i32.const 33)) + +(assert_return (invoke "as-unary-operand") (f32.const 3.4)) + +(assert_return (invoke "as-binary-left") (i32.const 3)) +(assert_return (invoke "as-binary-right") (i64.const 45)) + +(assert_return (invoke "as-test-operand") (i32.const 44)) + +(assert_return (invoke "as-compare-left") (i32.const 43)) +(assert_return (invoke "as-compare-right") (i32.const 42)) + +(assert_return (invoke "as-convert-operand") (i32.const 41)) + +(assert_return (invoke "as-memory.grow-size") (i32.const 40)) + +(assert_return (invoke "nested-block-value" (i32.const 0)) (i32.const 19)) +(assert_return (invoke "nested-block-value" (i32.const 1)) (i32.const 17)) +(assert_return (invoke "nested-block-value" (i32.const 2)) (i32.const 16)) +(assert_return (invoke "nested-block-value" (i32.const 10)) (i32.const 16)) +(assert_return (invoke "nested-block-value" (i32.const -1)) (i32.const 16)) +(assert_return (invoke "nested-block-value" (i32.const 100000)) (i32.const 16)) + +(assert_return (invoke "nested-br-value" (i32.const 0)) (i32.const 8)) +(assert_return (invoke "nested-br-value" (i32.const 1)) (i32.const 9)) +(assert_return (invoke "nested-br-value" (i32.const 2)) (i32.const 17)) +(assert_return (invoke "nested-br-value" (i32.const 11)) (i32.const 17)) +(assert_return (invoke "nested-br-value" (i32.const -4)) (i32.const 17)) +(assert_return (invoke "nested-br-value" (i32.const 10213210)) (i32.const 17)) + +(assert_return (invoke "nested-br_if-value" (i32.const 0)) (i32.const 17)) +(assert_return (invoke "nested-br_if-value" (i32.const 1)) (i32.const 9)) +(assert_return (invoke "nested-br_if-value" (i32.const 2)) (i32.const 8)) +(assert_return (invoke "nested-br_if-value" (i32.const 9)) (i32.const 8)) +(assert_return (invoke "nested-br_if-value" (i32.const -9)) (i32.const 8)) +(assert_return (invoke "nested-br_if-value" (i32.const 999999)) (i32.const 8)) + +(assert_return (invoke "nested-br_if-value-cond" (i32.const 0)) (i32.const 9)) +(assert_return (invoke "nested-br_if-value-cond" (i32.const 1)) (i32.const 8)) +(assert_return (invoke "nested-br_if-value-cond" (i32.const 2)) (i32.const 9)) +(assert_return (invoke "nested-br_if-value-cond" (i32.const 3)) (i32.const 9)) +(assert_return (invoke "nested-br_if-value-cond" (i32.const -1000000)) (i32.const 9)) +(assert_return (invoke "nested-br_if-value-cond" (i32.const 9423975)) (i32.const 9)) + +(assert_return (invoke "nested-br_table-value" (i32.const 0)) (i32.const 17)) +(assert_return (invoke "nested-br_table-value" (i32.const 1)) (i32.const 9)) +(assert_return (invoke "nested-br_table-value" (i32.const 2)) (i32.const 8)) +(assert_return (invoke "nested-br_table-value" (i32.const 9)) (i32.const 8)) +(assert_return (invoke "nested-br_table-value" (i32.const -9)) (i32.const 8)) +(assert_return (invoke "nested-br_table-value" (i32.const 999999)) (i32.const 8)) + +(assert_return (invoke "nested-br_table-value-index" (i32.const 0)) (i32.const 9)) +(assert_return (invoke "nested-br_table-value-index" (i32.const 1)) (i32.const 8)) +(assert_return (invoke "nested-br_table-value-index" (i32.const 2)) (i32.const 9)) +(assert_return (invoke "nested-br_table-value-index" (i32.const 3)) (i32.const 9)) +(assert_return (invoke "nested-br_table-value-index" (i32.const -1000000)) (i32.const 9)) +(assert_return (invoke "nested-br_table-value-index" (i32.const 9423975)) (i32.const 9)) + +(assert_return (invoke "nested-br_table-loop-block" (i32.const 1)) (i32.const 3)) + +;; W2C2: No support for externref +;; (assert_return (invoke "meet-externref" (i32.const 0) (ref.extern 1)) (ref.extern 1)) +;; (assert_return (invoke "meet-externref" (i32.const 1) (ref.extern 1)) (ref.extern 1)) +;; (assert_return (invoke "meet-externref" (i32.const 2) (ref.extern 1)) (ref.extern 1)) + +(assert_invalid + (module (func $type-arg-void-vs-num (result i32) + (block (br_table 0 (i32.const 1)) (i32.const 1)) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-arg-empty-vs-num (result i32) + (block (br_table 0) (i32.const 1)) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-arg-void-vs-num (result i32) + (block (result i32) (br_table 0 (nop) (i32.const 1)) (i32.const 1)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-arg-num-vs-num (result i32) + (block (result i32) + (br_table 0 0 0 (i64.const 1) (i32.const 1)) (i32.const 1) + ) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-arg-num-vs-arg-num + (block + (block (result f32) + (br_table 0 1 (f32.const 0) (i32.const 0)) + ) + (drop) + ) + )) + "type mismatch" +) +(assert_invalid + (module (func + (block (result i32) + (block (result i64) + (br_table 0 1 (i32.const 0) (i32.const 0)) + ) + ) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-index-void-vs-i32 + (block (br_table 0 0 0 (nop))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-index-num-vs-i32 + (block (br_table 0 (i64.const 0))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-arg-index-void-vs-i32 (result i32) + (block (result i32) (br_table 0 0 (i32.const 0) (nop)) (i32.const 1)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-arg-void-vs-num-nested (result i32) + (block (result i32) (i32.const 0) (block (br_table 1 (i32.const 0)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-arg-index-num-vs-i32 (result i32) + (block (result i32) + (br_table 0 0 (i32.const 0) (i64.const 0)) (i32.const 1) + ) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-arg-void-vs-num (result i32) + (block (br_table 0 (i32.const 1)) (i32.const 1)) + )) + "type mismatch" +) + +(assert_invalid + (module + (func $type-arg-index-empty-in-then + (block + (i32.const 0) (i32.const 0) + (if (result i32) (then (br_table 0))) + ) + (i32.eqz) (drop) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-arg-value-empty-in-then + (block + (i32.const 0) (i32.const 0) + (if (result i32) (then (br_table 0 (i32.const 1)))) + ) + (i32.eqz) (drop) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-arg-index-empty-in-return + (block (result i32) + (return (br_table 0)) + ) + (i32.eqz) (drop) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-arg-value-empty-in-return + (block (result i32) + (return (br_table 0 (i32.const 1))) + ) + (i32.eqz) (drop) + ) + ) + "type mismatch" +) + +(assert_invalid + (module + (func (param i32) (result i32) + (loop (result i32) + (block (result i32) + (br_table 0 1 (i32.const 1) (local.get 0)) + ) + ) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func (param i32) (result i32) + (block (result i32) + (loop (result i32) + (br_table 0 1 (i32.const 1) (local.get 0)) + ) + ) + ) + ) + "type mismatch" +) + + +(assert_invalid + (module (func $unbound-label + (block (br_table 2 1 (i32.const 1))) + )) + "unknown label" +) +(assert_invalid + (module (func $unbound-nested-label + (block (block (br_table 0 5 (i32.const 1)))) + )) + "unknown label" +) +(assert_invalid + (module (func $large-label + (block (br_table 0 0x10000001 0 (i32.const 1))) + )) + "unknown label" +) + +(assert_invalid + (module (func $unbound-label-default + (block (br_table 1 2 (i32.const 1))) + )) + "unknown label" +) +(assert_invalid + (module (func $unbound-nested-label-default + (block (block (br_table 0 5 (i32.const 1)))) + )) + "unknown label" +) +(assert_invalid + (module (func $large-label-default + (block (br_table 0 0 0x10000001 (i32.const 1))) + )) + "unknown label" +) + diff --git a/tests/bulk.wast b/tests/bulk.wast index 15910e32..659374fe 100644 --- a/tests/bulk.wast +++ b/tests/bulk.wast @@ -3,7 +3,7 @@ (memory 1) (data "foo")) -;; TODO: +;; W2C2: No support for reference types ;; (module ;; (table 3 funcref) ;; (elem funcref (ref.func 0) (ref.null func) (ref.func 1)) @@ -196,7 +196,7 @@ ;; No memory is required for the data.drop instruction. (module (data "goodbye") (func (data.drop 0))) -;; TODO: +;; W2C2: No support for reference types ;; ;; table.init ;; (module ;; (table 3 funcref) diff --git a/tests/call.wast b/tests/call.wast index 4d0f1a7c..3433869c 100644 --- a/tests/call.wast +++ b/tests/call.wast @@ -6,11 +6,27 @@ (func $const-i64 (result i64) (i64.const 0x164)) (func $const-f32 (result f32) (f32.const 0xf32)) (func $const-f64 (result f64) (f64.const 0xf64)) + ;; W2C2: No support for functions with multiple return values + ;; (func $const-i32-i64 (result i32 i64) (i32.const 0x132) (i64.const 0x164)) (func $id-i32 (param i32) (result i32) (local.get 0)) (func $id-i64 (param i64) (result i64) (local.get 0)) (func $id-f32 (param f32) (result f32) (local.get 0)) (func $id-f64 (param f64) (result f64) (local.get 0)) + ;; W2C2: No support for functions with multiple return values + ;; (func $id-i32-f64 (param i32 f64) (result i32 f64) + ;; (local.get 0) (local.get 1) + ;; ) + ;; + ;; (func $swap-i32-i32 (param i32 i32) (result i32 i32) + ;; (local.get 1) (local.get 0) + ;; ) + ;; (func $swap-f32-f64 (param f32 f64) (result f64 f32) + ;; (local.get 1) (local.get 0) + ;; ) + ;; (func $swap-f64-i32 (param f64 i32) (result i32 f64) + ;; (local.get 1) (local.get 0) + ;; ) (func $f32-i32 (param f32 i32) (result i32) (local.get 1)) (func $i32-i64 (param i32 i64) (result i64) (local.get 1)) @@ -23,6 +39,8 @@ (func (export "type-i64") (result i64) (call $const-i64)) (func (export "type-f32") (result f32) (call $const-f32)) (func (export "type-f64") (result f64) (call $const-f64)) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "type-i32-i64") (result i32 i64) (call $const-i32-i64)) (func (export "type-first-i32") (result i32) (call $id-i32 (i32.const 32))) (func (export "type-first-i64") (result i64) (call $id-i64 (i64.const 64))) @@ -42,6 +60,37 @@ (call $i64-f64 (i64.const 64) (f64.const 64.1)) ) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "type-all-i32-f64") (result i32 f64) + ;; (call $id-i32-f64 (i32.const 32) (f64.const 1.64)) + ;; ) + ;; (func (export "type-all-i32-i32") (result i32 i32) + ;; (call $swap-i32-i32 (i32.const 1) (i32.const 2)) + ;; ) + ;; (func (export "type-all-f32-f64") (result f64 f32) + ;; (call $swap-f32-f64 (f32.const 1) (f64.const 2)) + ;; ) + ;; (func (export "type-all-f64-i32") (result i32 f64) + ;; (call $swap-f64-i32 (f64.const 1) (i32.const 2)) + ;; ) + ;; + ;; ;; Composition + ;; + ;; (func (export "as-binary-all-operands") (result i32) + ;; (i32.add (call $swap-i32-i32 (i32.const 3) (i32.const 4))) + ;; ) + ;; + ;; (func (export "as-mixed-operands") (result i32) + ;; (call $swap-i32-i32 (i32.const 3) (i32.const 4)) + ;; (i32.const 5) + ;; (i32.add) + ;; (i32.mul) + ;; ) + ;; + ;; (func (export "as-call-all-operands") (result i32 i32) + ;; (call $swap-i32-i32 (call $swap-i32-i32 (i32.const 3) (i32.const 4))) + ;; ) + ;; Recursion (func $fac (export "fac") (param i64) (result i64) @@ -241,6 +290,8 @@ (assert_return (invoke "type-i64") (i64.const 0x164)) (assert_return (invoke "type-f32") (f32.const 0xf32)) (assert_return (invoke "type-f64") (f64.const 0xf64)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "type-i32-i64") (i32.const 0x132) (i64.const 0x164)) (assert_return (invoke "type-first-i32") (i32.const 32)) (assert_return (invoke "type-first-i64") (i64.const 64)) @@ -252,6 +303,16 @@ (assert_return (invoke "type-second-f32") (f32.const 32)) (assert_return (invoke "type-second-f64") (f64.const 64.1)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "type-all-i32-f64") (i32.const 32) (f64.const 1.64)) +;; (assert_return (invoke "type-all-i32-i32") (i32.const 2) (i32.const 1)) +;; (assert_return (invoke "type-all-f32-f64") (f64.const 2) (f32.const 1)) +;; (assert_return (invoke "type-all-f64-i32") (i32.const 2) (f64.const 1)) +;; +;; (assert_return (invoke "as-binary-all-operands") (i32.const 7)) +;; (assert_return (invoke "as-mixed-operands") (i32.const 32)) +;; (assert_return (invoke "as-call-all-operands") (i32.const 3) (i32.const 4)) + (assert_return (invoke "fac" (i64.const 0)) (i64.const 1)) (assert_return (invoke "fac" (i64.const 1)) (i64.const 1)) (assert_return (invoke "fac" (i64.const 5)) (i64.const 120)) diff --git a/tests/call_indirect.wast b/tests/call_indirect.wast index a899cea4..db1cdb96 100644 --- a/tests/call_indirect.wast +++ b/tests/call_indirect.wast @@ -7,10 +7,15 @@ (type $out-i64 (func (result i64))) (type $out-f32 (func (result f32))) (type $out-f64 (func (result f64))) + ;; W2C2: No support for functions with multiple return values + ;; (type $out-f64-i32 (func (result f64 i32))) (type $over-i32 (func (param i32) (result i32))) (type $over-i64 (func (param i64) (result i64))) (type $over-f32 (func (param f32) (result f32))) (type $over-f64 (func (param f64) (result f64))) + ;; W2C2: No support for functions with multiple return values + ;; (type $over-i32-f64 (func (param i32 f64) (result i32 f64))) + ;; (type $swap-i32-i64 (func (param i32 i64) (result i64 i32))) (type $f32-i32 (func (param f32 i32) (result i32))) (type $i32-i64 (func (param i32 i64) (result i64))) (type $f64-f32 (func (param f64 f32) (result f32))) @@ -24,11 +29,16 @@ (func $const-i64 (type $out-i64) (i64.const 0x164)) (func $const-f32 (type $out-f32) (f32.const 0xf32)) (func $const-f64 (type $out-f64) (f64.const 0xf64)) + ;; W2C2: No support for functions with multiple return values + ;; (func $const-f64-i32 (type $out-f64-i32) (f64.const 0xf64) (i32.const 32)) (func $id-i32 (type $over-i32) (local.get 0)) (func $id-i64 (type $over-i64) (local.get 0)) (func $id-f32 (type $over-f32) (local.get 0)) (func $id-f64 (type $over-f64) (local.get 0)) + ;; W2C2: No support for functions with multiple return values + ;; (func $id-i32-f64 (type $over-i32-f64) (local.get 0) (local.get 1)) + ;; (func $swap-i32-i64 (type $swap-i32-i64) (local.get 1) (local.get 0)) (func $i32-i64 (type $i32-i64) (local.get 1)) (func $i64-f64 (type $i64-f64) (local.get 1)) @@ -42,15 +52,17 @@ (table funcref (elem - $const-i32 $const-i64 $const-f32 $const-f64 - $id-i32 $id-i64 $id-f32 $id-f64 - $f32-i32 $i32-i64 $f64-f32 $i64-f64 - $fac-i64 $fib-i64 $even $odd - $runaway $mutual-runaway1 $mutual-runaway2 - $over-i32-duplicate $over-i64-duplicate - $over-f32-duplicate $over-f64-duplicate - $fac-i32 $fac-f32 $fac-f64 - $fib-i32 $fib-f32 $fib-f64 + $const-i32 $const-i64 $const-f32 $const-f64 ;; 0..3 + $id-i32 $id-i64 $id-f32 $id-f64 ;; 4..7 + $f32-i32 $i32-i64 $f64-f32 $i64-f64 ;; 9..11 + $fac-i64 $fib-i64 $even $odd ;; 12..15 + $runaway $mutual-runaway1 $mutual-runaway2 ;; 16..18 + $over-i32-duplicate $over-i64-duplicate ;; 19..20 + $over-f32-duplicate $over-f64-duplicate ;; 21..22 + $fac-i32 $fac-f32 $fac-f64 ;; 23..25 + $fib-i32 $fib-f32 $fib-f64 ;; 26..28 + ;; W2C2: No support for functions with multiple return values + ;; $const-f64-i32 $id-i32-f64 $swap-i32-i64 ;; 29..31 ) ) @@ -96,6 +108,10 @@ (func (export "type-f64") (result f64) (call_indirect (type $out-f64) (i32.const 3)) ) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "type-f64-i32") (result f64 i32) + ;; (call_indirect (type $out-f64-i32) (i32.const 29)) + ;; ) (func (export "type-index") (result i64) (call_indirect (type $over-i64) (i64.const 100) (i32.const 5)) @@ -127,6 +143,21 @@ (call_indirect (type $i64-f64) (i64.const 64) (f64.const 64.1) (i32.const 11)) ) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "type-all-f64-i32") (result f64 i32) + ;; (call_indirect (type $out-f64-i32) (i32.const 29)) + ;; ) + ;; (func (export "type-all-i32-f64") (result i32 f64) + ;; (call_indirect (type $over-i32-f64) + ;; (i32.const 1) (f64.const 2) (i32.const 30) + ;; ) + ;; ) + ;; (func (export "type-all-i32-i64") (result i64 i32) + ;; (call_indirect (type $swap-i32-i64) + ;; (i32.const 1) (i64.const 2) (i32.const 31) + ;; ) + ;; ) + ;; Dispatch (func (export "dispatch") (param i32 i64) (result i64) @@ -448,6 +479,8 @@ (assert_return (invoke "type-i64") (i64.const 0x164)) (assert_return (invoke "type-f32") (f32.const 0xf32)) (assert_return (invoke "type-f64") (f64.const 0xf64)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "type-f64-i32") (f64.const 0xf64) (i32.const 32)) (assert_return (invoke "type-index") (i64.const 100)) @@ -461,6 +494,11 @@ (assert_return (invoke "type-second-f32") (f32.const 32)) (assert_return (invoke "type-second-f64") (f64.const 64.1)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "type-all-f64-i32") (f64.const 0xf64) (i32.const 32)) +;; (assert_return (invoke "type-all-i32-f64") (i32.const 1) (f64.const 2)) +;; (assert_return (invoke "type-all-i32-i64") (i64.const 2) (i32.const 1)) + (assert_return (invoke "dispatch" (i32.const 5) (i64.const 2)) (i64.const 2)) (assert_return (invoke "dispatch" (i32.const 5) (i64.const 5)) (i64.const 5)) (assert_return (invoke "dispatch" (i32.const 12) (i64.const 5)) (i64.const 120)) @@ -468,7 +506,7 @@ (assert_return (invoke "dispatch" (i32.const 20) (i64.const 2)) (i64.const 2)) (assert_trap (invoke "dispatch" (i32.const 0) (i64.const 2)) "indirect call type mismatch") (assert_trap (invoke "dispatch" (i32.const 15) (i64.const 2)) "indirect call type mismatch") -(assert_trap (invoke "dispatch" (i32.const 29) (i64.const 2)) "undefined element") +(assert_trap (invoke "dispatch" (i32.const 32) (i64.const 2)) "undefined element") (assert_trap (invoke "dispatch" (i32.const -1) (i64.const 2)) "undefined element") (assert_trap (invoke "dispatch" (i32.const 1213432423) (i64.const 2)) "undefined element") @@ -588,6 +626,52 @@ (assert_return (invoke "as-compare-right") (i32.const 1)) (assert_return (invoke "as-convert-operand") (i64.const 1)) +;; W2C2: No support for functions with multiple tables +;; ;; Multiple tables +;; +;; (module +;; (type $ii-i (func (param i32 i32) (result i32))) +;; +;; (table $t1 funcref (elem $f $g)) +;; (table $t2 funcref (elem $h $i $j)) +;; (table $t3 4 funcref) +;; (elem (table $t3) (i32.const 0) func $g $h) +;; (elem (table $t3) (i32.const 3) func $z) +;; +;; (func $f (type $ii-i) (i32.add (local.get 0) (local.get 1))) +;; (func $g (type $ii-i) (i32.sub (local.get 0) (local.get 1))) +;; (func $h (type $ii-i) (i32.mul (local.get 0) (local.get 1))) +;; (func $i (type $ii-i) (i32.div_u (local.get 0) (local.get 1))) +;; (func $j (type $ii-i) (i32.rem_u (local.get 0) (local.get 1))) +;; (func $z) +;; +;; (func (export "call-1") (param i32 i32 i32) (result i32) +;; (call_indirect $t1 (type $ii-i) (local.get 0) (local.get 1) (local.get 2)) +;; ) +;; (func (export "call-2") (param i32 i32 i32) (result i32) +;; (call_indirect $t2 (type $ii-i) (local.get 0) (local.get 1) (local.get 2)) +;; ) +;; (func (export "call-3") (param i32 i32 i32) (result i32) +;; (call_indirect $t3 (type $ii-i) (local.get 0) (local.get 1) (local.get 2)) +;; ) +;; ) +;; +;; (assert_return (invoke "call-1" (i32.const 2) (i32.const 3) (i32.const 0)) (i32.const 5)) +;; (assert_return (invoke "call-1" (i32.const 2) (i32.const 3) (i32.const 1)) (i32.const -1)) +;; (assert_trap (invoke "call-1" (i32.const 2) (i32.const 3) (i32.const 2)) "undefined element") +;; +;; (assert_return (invoke "call-2" (i32.const 2) (i32.const 3) (i32.const 0)) (i32.const 6)) +;; (assert_return (invoke "call-2" (i32.const 2) (i32.const 3) (i32.const 1)) (i32.const 0)) +;; (assert_return (invoke "call-2" (i32.const 2) (i32.const 3) (i32.const 2)) (i32.const 2)) +;; (assert_trap (invoke "call-2" (i32.const 2) (i32.const 3) (i32.const 3)) "undefined element") +;; +;; (assert_return (invoke "call-3" (i32.const 2) (i32.const 3) (i32.const 0)) (i32.const -1)) +;; (assert_return (invoke "call-3" (i32.const 2) (i32.const 3) (i32.const 1)) (i32.const 6)) +;; (assert_trap (invoke "call-3" (i32.const 2) (i32.const 3) (i32.const 2)) "uninitialized element") +;; (assert_trap (invoke "call-3" (i32.const 2) (i32.const 3) (i32.const 3)) "indirect call type mismatch") +;; (assert_trap (invoke "call-3" (i32.const 2) (i32.const 3) (i32.const 4)) "undefined element") + + ;; Invalid syntax (assert_malformed @@ -938,5 +1022,25 @@ (assert_invalid (module (table funcref (elem 0 0))) - "unknown function 0" + "unknown function" +) + + + + +;; Flat syntax + +(module + (table 1 funcref) + (func unreachable call_indirect) + (func unreachable call_indirect nop) + (func unreachable call_indirect call_indirect) + (func unreachable call_indirect (call_indirect)) + (func unreachable call_indirect call_indirect call_indirect) + (func unreachable call_indirect (result)) + (func unreachable call_indirect (result) (result)) + (func unreachable call_indirect (result) (result) call_indirect) + (func unreachable call_indirect (result) (result) call_indirect (result)) + (func (result i32) unreachable call_indirect select) + (func (result i32) unreachable call_indirect select call_indirect) ) diff --git a/tests/const.wast b/tests/const.wast index 74443c23..56565029 100644 --- a/tests/const.wast +++ b/tests/const.wast @@ -1059,4 +1059,3 @@ (assert_return (invoke "f") (f64.const +0x1.fffffffffffffp1023)) (module (func (export "f") (result f64) (f64.const -0x1.fffffffffffff7ffffffp1023))) (assert_return (invoke "f") (f64.const -0x1.fffffffffffffp1023)) - diff --git a/tests/conversions.wast b/tests/conversions.wast index a926b74c..65d09339 100644 --- a/tests/conversions.wast +++ b/tests/conversions.wast @@ -253,6 +253,13 @@ (assert_trap (invoke "i64.trunc_f64_u" (f64.const -nan)) "invalid conversion to integer") (assert_trap (invoke "i64.trunc_f64_u" (f64.const -nan:0x4000000000000)) "invalid conversion to integer") +(assert_return (invoke "f32.convert_i32_s" (i32.const 1)) (f32.const 1.0)) +(assert_return (invoke "f32.convert_i32_s" (i32.const -1)) (f32.const -1.0)) +(assert_return (invoke "f32.convert_i32_s" (i32.const 0)) (f32.const 0.0)) +(assert_return (invoke "f32.convert_i32_s" (i32.const 2147483647)) (f32.const 2147483648)) +(assert_return (invoke "f32.convert_i32_s" (i32.const -2147483648)) (f32.const -2147483648)) +(assert_return (invoke "f32.convert_i32_s" (i32.const 1234567890)) (f32.const 0x1.26580cp+30)) + ;; Saturating conversions: test all the same values as the non-saturating conversions. (assert_return (invoke "i32.trunc_sat_f32_s" (f32.const 0.0)) (i32.const 0)) @@ -443,12 +450,6 @@ (assert_return (invoke "i64.trunc_sat_f64_u" (f64.const -nan)) (i64.const 0)) (assert_return (invoke "i64.trunc_sat_f64_u" (f64.const -nan:0x4000000000000)) (i64.const 0)) -(assert_return (invoke "f32.convert_i32_s" (i32.const 1)) (f32.const 1.0)) -(assert_return (invoke "f32.convert_i32_s" (i32.const -1)) (f32.const -1.0)) -(assert_return (invoke "f32.convert_i32_s" (i32.const 0)) (f32.const 0.0)) -(assert_return (invoke "f32.convert_i32_s" (i32.const 2147483647)) (f32.const 2147483648)) -(assert_return (invoke "f32.convert_i32_s" (i32.const -2147483648)) (f32.const -2147483648)) -(assert_return (invoke "f32.convert_i32_s" (i32.const 1234567890)) (f32.const 0x1.26580cp+30)) ;; Test rounding directions. (assert_return (invoke "f32.convert_i32_s" (i32.const 16777217)) (f32.const 16777216.0)) (assert_return (invoke "f32.convert_i32_s" (i32.const -16777217)) (f32.const -16777216.0)) diff --git a/tests/custom.wast b/tests/custom.wast new file mode 100644 index 00000000..12b04765 --- /dev/null +++ b/tests/custom.wast @@ -0,0 +1,130 @@ +(module binary + "\00asm" "\01\00\00\00" + "\00\24\10" "a custom section" "this is the payload" + "\00\20\10" "a custom section" "this is payload" + "\00\11\10" "a custom section" "" + "\00\10\00" "" "this is payload" + "\00\01\00" "" "" + "\00\24\10" "\00\00custom sectio\00" "this is the payload" + "\00\24\10" "\ef\bb\bfa custom sect" "this is the payload" + "\00\24\10" "a custom sect\e2\8c\a3" "this is the payload" + "\00\1f\16" "module within a module" "\00asm" "\01\00\00\00" +) + +(module binary + "\00asm" "\01\00\00\00" + "\00\0e\06" "custom" "payload" + "\00\0e\06" "custom" "payload" + "\01\01\00" ;; type section + "\00\0e\06" "custom" "payload" + "\00\0e\06" "custom" "payload" + "\02\01\00" ;; import section + "\00\0e\06" "custom" "payload" + "\00\0e\06" "custom" "payload" + "\03\01\00" ;; function section + "\00\0e\06" "custom" "payload" + "\00\0e\06" "custom" "payload" + "\04\01\00" ;; table section + "\00\0e\06" "custom" "payload" + "\00\0e\06" "custom" "payload" + "\05\01\00" ;; memory section + "\00\0e\06" "custom" "payload" + "\00\0e\06" "custom" "payload" + "\06\01\00" ;; global section + "\00\0e\06" "custom" "payload" + "\00\0e\06" "custom" "payload" + "\07\01\00" ;; export section + "\00\0e\06" "custom" "payload" + "\00\0e\06" "custom" "payload" + "\09\01\00" ;; element section + "\00\0e\06" "custom" "payload" + "\00\0e\06" "custom" "payload" + "\0a\01\00" ;; code section + "\00\0e\06" "custom" "payload" + "\00\0e\06" "custom" "payload" + "\0b\01\00" ;; data section + "\00\0e\06" "custom" "payload" + "\00\0e\06" "custom" "payload" +) + +(module binary + "\00asm" "\01\00\00\00" + "\01\07\01\60\02\7f\7f\01\7f" ;; type section + "\00\1a\06" "custom" "this is the payload" ;; custom section + "\03\02\01\00" ;; function section + "\07\0a\01\06\61\64\64\54\77\6f\00\00" ;; export section + "\0a\09\01\07\00\20\00\20\01\6a\0b" ;; code section + "\00\1b\07" "custom2" "this is the payload" ;; custom section +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\00" + ) + "unexpected end" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\00\00" + ) + "unexpected end" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\00\00\00\05\01\00\07\00\00" + ) + "unexpected end" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\00\26\10" "a custom section" "this is the payload" + ) + "length out of bounds" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\00\25\10" "a custom section" "this is the payload" + "\00\24\10" "a custom section" "this is the payload" + ) + "malformed section id" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\01\07\01\60\02\7f\7f\01\7f" ;; type section + "\00\25\10" "a custom section" "this is the payload" ;; wrong length! + "\03\02\01\00" ;; function section + "\0a\09\01\07\00\20\00\20\01\6a\0b" ;; code section + "\00\1b\07" "custom2" "this is the payload" ;; custom section + ) + "function and code section have inconsistent lengths" +) + +;; Test concatenated modules. +(assert_malformed + (module binary + "\00asm\01\00\00\00" + "\00asm\01\00\00\00" + ) + "length out of bounds" +) + +(assert_malformed + (module binary + "\00asm" "\01\00\00\00" + "\05\03\01\00\01" ;; memory section + "\0c\01\02" ;; data count section (2 segments) + "\0b\06\01\00\41\00\0b\00" ;; data section (1 segment) + ) + "data count and data section have inconsistent lengths" +) diff --git a/tests/data.wast b/tests/data.wast index 32d05f5e..0838b9fd 100644 --- a/tests/data.wast +++ b/tests/data.wast @@ -8,14 +8,26 @@ (data (i32.const 1) "a" "" "bcd") (data (offset (i32.const 0))) (data (offset (i32.const 0)) "" "a" "bc" "") - (data 0 (i32.const 0)) - (data 0x0 (i32.const 1) "a" "" "bcd") - (data 0x000 (offset (i32.const 0))) - (data 0 (offset (i32.const 0)) "" "a" "bc" "") - (data $m (i32.const 0)) - (data $m (i32.const 1) "a" "" "bcd") - (data $m (offset (i32.const 0))) - (data $m (offset (i32.const 0)) "" "a" "bc" "") + (data (memory 0) (i32.const 0)) + (data (memory 0x0) (i32.const 1) "a" "" "bcd") + (data (memory 0x000) (offset (i32.const 0))) + (data (memory 0) (offset (i32.const 0)) "" "a" "bc" "") + (data (memory $m) (i32.const 0)) + (data (memory $m) (i32.const 1) "a" "" "bcd") + (data (memory $m) (offset (i32.const 0))) + (data (memory $m) (offset (i32.const 0)) "" "a" "bc" "") + (data $d1 (i32.const 0)) + (data $d2 (i32.const 1) "a" "" "bcd") + (data $d3 (offset (i32.const 0))) + (data $d4 (offset (i32.const 0)) "" "a" "bc" "") + (data $d5 (memory 0) (i32.const 0)) + (data $d6 (memory 0x0) (i32.const 1) "a" "" "bcd") + (data $d7 (memory 0x000) (offset (i32.const 0))) + (data $d8 (memory 0) (offset (i32.const 0)) "" "a" "bc" "") + (data $d9 (memory $m) (i32.const 0)) + (data $d10 (memory $m) (i32.const 1) "a" "" "bcd") + (data $d11 (memory $m) (offset (i32.const 0))) + (data $d12 (memory $m) (offset (i32.const 0)) "" "a" "bc" "") ) ;; Basic use @@ -69,9 +81,15 @@ (data (global.get $g) "a") ) -;; Use of internal globals in constant expressions is not allowed in MVP. -;; (module (memory 1) (data (global.get 0) "a") (global i32 (i32.const 0))) -;; (module (memory 1) (data (global.get $g) "a") (global $g i32 (i32.const 0))) +(assert_invalid + (module (memory 1) (global i32 (i32.const 0)) (data (global.get 0) "a")) + "unknown global" +) +(assert_invalid + (module (memory 1) (global $g i32 (i32.const 0)) (data (global.get $g) "a")) + "unknown global" +) + ;; Corner cases @@ -158,44 +176,42 @@ ;; Invalid bounds for data -(assert_unlinkable +(assert_trap (module (memory 0) (data (i32.const 0) "a") ) - "data segment does not fit" + "out of bounds memory access" ) -(assert_unlinkable +(assert_trap (module (memory 0 0) (data (i32.const 0) "a") ) - "data segment does not fit" + "out of bounds memory access" ) -(assert_unlinkable +(assert_trap (module (memory 0 1) (data (i32.const 0) "a") ) - "data segment does not fit" + "out of bounds memory access" ) - -(assert_unlinkable +(assert_trap (module (memory 0) (data (i32.const 1)) ) - "data segment does not fit" + "out of bounds memory access" ) - -(assert_unlinkable +(assert_trap (module (memory 0 1) (data (i32.const 1)) ) - "data segment does not fit" + "out of bounds memory access" ) ;; This seems to cause a time-out on Travis. @@ -204,77 +220,77 @@ (memory 0x10000) (data (i32.const 0xffffffff) "ab") ) - "" ;; either out of memory or segment does not fit + "" ;; either out of memory or out of bounds ;) -(assert_unlinkable +(assert_trap (module (global (import "spectest" "global_i32") i32) (memory 0) (data (global.get 0) "a") ) - "data segment does not fit" + "out of bounds memory access" ) -(assert_unlinkable +(assert_trap (module (memory 1 2) (data (i32.const 0x1_0000) "a") ) - "data segment does not fit" + "out of bounds memory access" ) -(assert_unlinkable +(assert_trap (module (import "spectest" "memory" (memory 1)) (data (i32.const 0x1_0000) "a") ) - "data segment does not fit" + "out of bounds memory access" ) -(assert_unlinkable +(assert_trap (module (memory 2) (data (i32.const 0x2_0000) "a") ) - "data segment does not fit" + "out of bounds memory access" ) -(assert_unlinkable +(assert_trap (module (memory 2 3) (data (i32.const 0x2_0000) "a") ) - "data segment does not fit" + "out of bounds memory access" ) -(assert_unlinkable +(assert_trap (module (memory 1) (data (i32.const -1) "a") ) - "data segment does not fit" + "out of bounds memory access" ) -(assert_unlinkable +(assert_trap (module (import "spectest" "memory" (memory 1)) (data (i32.const -1) "a") ) - "data segment does not fit" + "out of bounds memory access" ) -(assert_unlinkable +(assert_trap (module (memory 2) (data (i32.const -100) "a") ) - "data segment does not fit" + "out of bounds memory access" ) -(assert_unlinkable +(assert_trap (module (import "spectest" "memory" (memory 1)) (data (i32.const -100) "a") ) - "data segment does not fit" + "out of bounds memory access" ) ;; Data without memory @@ -283,9 +299,85 @@ (module (data (i32.const 0) "") ) + "unknown memory" +) + +;; Data segment with memory index 1 (only memory 0 available) +(assert_invalid + (module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; memory section + "\00\00" ;; memory 0 + "\0b\07\01" ;; data section + "\02\01\41\00\0b" ;; active data segment 0 for memory 1 + "\00" ;; empty vec(byte) + ) + "unknown memory 1" +) + +;; Data segment with memory index 0 (no memory section) +(assert_invalid + (module binary + "\00asm" "\01\00\00\00" + "\0b\06\01" ;; data section + "\00\41\00\0b" ;; active data segment 0 for memory 0 + "\00" ;; empty vec(byte) + ) "unknown memory 0" ) +;; Data segment with memory index 1 (no memory section) +(assert_invalid + (module binary + "\00asm" "\01\00\00\00" + "\0b\07\01" ;; data section + "\02\01\41\00\0b" ;; active data segment 0 for memory 1 + "\00" ;; empty vec(byte) + ) + "unknown memory 1" +) + +;; Data segment with memory index 1 and vec(byte) as above, +;; only memory 0 available. +(assert_invalid + (module binary + "\00asm" "\01\00\00\00" + "\05\03\01" ;; memory section + "\00\00" ;; memory 0 + "\0b\45\01" ;; data section + "\02" ;; active segment + "\01" ;; memory index + "\41\00\0b" ;; offset constant expression + "\3e" ;; vec(byte) length + "\00\01\02\03\04\05\06\07\08\09\0a\0b\0c\0d\0e\0f" + "\10\11\12\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f" + "\20\21\22\23\24\25\26\27\28\29\2a\2b\2c\2d\2e\2f" + "\30\31\32\33\34\35\36\37\38\39\3a\3b\3c\3d" + ) + "unknown memory 1" +) + +;; Data segment with memory index 1 and specially crafted vec(byte) after. +;; This is to detect incorrect validation where memory index is interpreted +;; as a flag followed by "\41" interpreted as the size of vec(byte) +;; with the expected number of bytes following. +(assert_invalid + (module binary + "\00asm" "\01\00\00\00" + "\0b\45\01" ;; data section + "\02" ;; active segment + "\01" ;; memory index + "\41\00\0b" ;; offset constant expression + "\3e" ;; vec(byte) length + "\00\01\02\03\04\05\06\07\08\09\0a\0b\0c\0d\0e\0f" + "\10\11\12\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f" + "\20\21\22\23\24\25\26\27\28\29\2a\2b\2c\2d\2e\2f" + "\30\31\32\33\34\35\36\37\38\39\3a\3b\3c\3d" + ) + "unknown memory 1" +) + + ;; Invalid offsets (assert_invalid @@ -296,6 +388,49 @@ "type mismatch" ) +;; W2C2: No support for reference types +;; (assert_invalid +;; (module +;; (memory 1) +;; (data (ref.null func)) +;; ) +;; "type mismatch" +;; ) + +(assert_invalid + (module + (memory 1) + (data (offset (;empty instruction sequence;))) + ) + "type mismatch" +) + +(assert_invalid + (module + (memory 1) + (data (offset (i32.const 0) (i32.const 0))) + ) + "type mismatch" +) + +(assert_invalid + (module + (global (import "test" "global-i32") i32) + (memory 1) + (data (offset (global.get 0) (global.get 0))) + ) + "type mismatch" +) + +(assert_invalid + (module + (global (import "test" "global-i32") i32) + (memory 1) + (data (offset (global.get 0) (i32.const 0))) + ) + "type mismatch" +) + (assert_invalid (module (memory 1) @@ -328,8 +463,37 @@ "constant expression required" ) -;; Use of internal globals in constant expressions is not allowed in MVP. -;; (assert_invalid -;; (module (memory 1) (data (global.get $g)) (global $g (mut i32) (i32.const 0))) -;; "constant expression required" -;; ) +(assert_invalid + (module + (global $g (import "test" "g") (mut i32)) + (memory 1) + (data (global.get $g)) + ) + "constant expression required" +) + +(assert_invalid + (module + (memory 1) + (data (global.get 0)) + ) + "unknown global 0" +) + +(assert_invalid + (module + (global (import "test" "global-i32") i32) + (memory 1) + (data (global.get 1)) + ) + "unknown global 1" +) + +(assert_invalid + (module + (global (import "test" "global-mut-i32") (mut i32)) + (memory 1) + (data (global.get 0)) + ) + "constant expression required" +) diff --git a/tests/elem.wast b/tests/elem.wast old mode 100755 new mode 100644 index d2b2c23f..a5f9cdc2 --- a/tests/elem.wast +++ b/tests/elem.wast @@ -1,442 +1,710 @@ -;; Test the element section - -;; Syntax -(module - (table $t 10 funcref) - (func $f) - (elem (i32.const 0)) - (elem (i32.const 0) $f $f) - (elem (offset (i32.const 0))) - (elem (offset (i32.const 0)) $f $f) - (elem 0 (i32.const 0)) - (elem 0x0 (i32.const 0) $f $f) - (elem 0x000 (offset (i32.const 0))) - (elem 0 (offset (i32.const 0)) $f $f) - (elem $t (i32.const 0)) - (elem $t (i32.const 0) $f $f) - (elem $t (offset (i32.const 0))) - (elem $t (offset (i32.const 0)) $f $f) -) - -;; Basic use - -(module - (table 10 funcref) - (func $f) - (elem (i32.const 0) $f) -) -(module - (import "spectest" "table" (table 10 funcref)) - (func $f) - (elem (i32.const 0) $f) -) - -(module - (table 10 funcref) - (func $f) - (elem (i32.const 0) $f) - (elem (i32.const 3) $f) - (elem (i32.const 7) $f) - (elem (i32.const 5) $f) - (elem (i32.const 3) $f) -) -(module - (import "spectest" "table" (table 10 funcref)) - (func $f) - (elem (i32.const 9) $f) - (elem (i32.const 3) $f) - (elem (i32.const 7) $f) - (elem (i32.const 3) $f) - (elem (i32.const 5) $f) -) - -(module - (global (import "spectest" "global_i32") i32) - (table 1000 funcref) - (func $f) - (elem (global.get 0) $f) -) - -(module - (global $g (import "spectest" "global_i32") i32) - (table 1000 funcref) - (func $f) - (elem (global.get $g) $f) -) - -(module - (type $out-i32 (func (result i32))) - (table 10 funcref) - (elem (i32.const 7) $const-i32-a) - (elem (i32.const 9) $const-i32-b) - (func $const-i32-a (type $out-i32) (i32.const 65)) - (func $const-i32-b (type $out-i32) (i32.const 66)) - (func (export "call-7") (type $out-i32) - (call_indirect (type $out-i32) (i32.const 7)) - ) - (func (export "call-9") (type $out-i32) - (call_indirect (type $out-i32) (i32.const 9)) - ) -) -(assert_return (invoke "call-7") (i32.const 65)) -(assert_return (invoke "call-9") (i32.const 66)) - -;; Corner cases - -(module - (table 10 funcref) - (func $f) - (elem (i32.const 9) $f) -) -(module - (import "spectest" "table" (table 10 funcref)) - (func $f) - (elem (i32.const 9) $f) -) - -(module - (table 0 funcref) - (elem (i32.const 0)) -) -(module - (import "spectest" "table" (table 0 funcref)) - (elem (i32.const 0)) -) - -(module - (table 0 0 funcref) - (elem (i32.const 0)) -) - -(module - (table 20 funcref) - (elem (i32.const 20)) -) - -(module - (import "spectest" "table" (table 0 funcref)) - (func $f) - (elem (i32.const 0) $f) -) - -(module - (import "spectest" "table" (table 0 100 funcref)) - (func $f) - (elem (i32.const 0) $f) -) - -(module - (import "spectest" "table" (table 0 funcref)) - (func $f) - (elem (i32.const 1) $f) -) - -(module - (import "spectest" "table" (table 0 30 funcref)) - (func $f) - (elem (i32.const 1) $f) -) - -;; Invalid bounds for elements - -(assert_unlinkable - (module - (table 0 funcref) - (func $f) - (elem (i32.const 0) $f) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 0 0 funcref) - (func $f) - (elem (i32.const 0) $f) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 0 1 funcref) - (func $f) - (elem (i32.const 0) $f) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 0 funcref) - (elem (i32.const 1)) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 10 funcref) - (func $f) - (elem (i32.const 10) $f) - ) - "elements segment does not fit" -) -(assert_unlinkable - (module - (import "spectest" "table" (table 10 funcref)) - (func $f) - (elem (i32.const 10) $f) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 10 20 funcref) - (func $f) - (elem (i32.const 10) $f) - ) - "elements segment does not fit" -) -(assert_unlinkable - (module - (import "spectest" "table" (table 10 funcref)) - (func $f) - (elem (i32.const 10) $f) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 10 funcref) - (func $f) - (elem (i32.const -1) $f) - ) - "elements segment does not fit" -) -(assert_unlinkable - (module - (import "spectest" "table" (table 10 funcref)) - (func $f) - (elem (i32.const -1) $f) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 10 funcref) - (func $f) - (elem (i32.const -10) $f) - ) - "elements segment does not fit" -) -(assert_unlinkable - (module - (import "spectest" "table" (table 10 funcref)) - (func $f) - (elem (i32.const -10) $f) - ) - "elements segment does not fit" -) - -;; Element without table - -(assert_invalid - (module - (func $f) - (elem (i32.const 0) $f) - ) - "unknown table" -) - -;; Invalid offsets - -(assert_invalid - (module - (table 1 funcref) - (elem (i64.const 0)) - ) - "type mismatch" -) - -(assert_invalid - (module - (table 1 funcref) - (elem (offset (;empty instruction sequence;))) - ) - "type mismatch" -) - -(assert_invalid - (module - (table 1 funcref) - (elem (offset (i32.const 0) (i32.const 0))) - ) - "type mismatch" -) - -(assert_invalid - (module - (global (import "test" "global-i32") i32) - (table 1 funcref) - (elem (offset (global.get 0) (global.get 0))) - ) - "type mismatch" -) - -(assert_invalid - (module - (global (import "test" "global-i32") i32) - (table 1 funcref) - (elem (offset (global.get 0) (i32.const 0))) - ) - "type mismatch" -) - - -(assert_invalid - (module - (table 1 funcref) - (elem (i32.ctz (i32.const 0))) - ) - "constant expression required" -) - -(assert_invalid - (module - (table 1 funcref) - (elem (nop)) - ) - "constant expression required" -) - -(assert_invalid - (module - (table 1 funcref) - (elem (offset (nop) (i32.const 0))) - ) - "constant expression required" -) - -(assert_invalid - (module - (table 1 funcref) - (elem (offset (i32.const 0) (nop))) - ) - "constant expression required" -) - -;; Use of internal globals in constant expressions is not allowed in MVP. -;; (assert_invalid -;; (module (memory 1) (data (global.get $g)) (global $g (mut i32) (i32.const 0))) -;; "constant expression required" -;; ) - -(assert_invalid - (module - (table 1 funcref) - (elem (global.get 0)) - ) - "unknown global 0" -) - -(assert_invalid - (module - (global (import "test" "global-i32") i32) - (table 1 funcref) - (elem (global.get 1)) - ) - "unknown global 1" -) - -(assert_invalid - (module - (global (import "test" "global-mut-i32") (mut i32)) - (table 1 funcref) - (elem (global.get 0)) - ) - "constant expression required" -) - -;; Two elements target the same slot - -(module - (type $out-i32 (func (result i32))) - (table 10 funcref) - (elem (i32.const 9) $const-i32-a) - (elem (i32.const 9) $const-i32-b) - (func $const-i32-a (type $out-i32) (i32.const 65)) - (func $const-i32-b (type $out-i32) (i32.const 66)) - (func (export "call-overwritten") (type $out-i32) - (call_indirect (type $out-i32) (i32.const 9)) - ) -) -(assert_return (invoke "call-overwritten") (i32.const 66)) - -(module - (type $out-i32 (func (result i32))) - (import "spectest" "table" (table 10 funcref)) - (elem (i32.const 9) $const-i32-a) - (elem (i32.const 9) $const-i32-b) - (func $const-i32-a (type $out-i32) (i32.const 65)) - (func $const-i32-b (type $out-i32) (i32.const 66)) - (func (export "call-overwritten-element") (type $out-i32) - (call_indirect (type $out-i32) (i32.const 9)) - ) -) -(assert_return (invoke "call-overwritten-element") (i32.const 66)) - -;; ;; Element sections across multiple modules change the same table -;; -;; (module $module1 -;; (type $out-i32 (func (result i32))) -;; (table (export "shared-table") 10 funcref) -;; (elem (i32.const 8) $const-i32-a) -;; (elem (i32.const 9) $const-i32-b) -;; (func $const-i32-a (type $out-i32) (i32.const 65)) -;; (func $const-i32-b (type $out-i32) (i32.const 66)) -;; (func (export "call-7") (type $out-i32) -;; (call_indirect (type $out-i32) (i32.const 7)) -;; ) -;; (func (export "call-8") (type $out-i32) -;; (call_indirect (type $out-i32) (i32.const 8)) -;; ) -;; (func (export "call-9") (type $out-i32) -;; (call_indirect (type $out-i32) (i32.const 9)) -;; ) -;; ) -;; -;; (register "module1" $module1) -;; -;; (assert_trap (invoke $module1 "call-7") "uninitialized element") -;; (assert_return (invoke $module1 "call-8") (i32.const 65)) -;; (assert_return (invoke $module1 "call-9") (i32.const 66)) -;; -;; (module $module2 -;; (type $out-i32 (func (result i32))) -;; (import "module1" "shared-table" (table 10 funcref)) -;; (elem (i32.const 7) $const-i32-c) -;; (elem (i32.const 8) $const-i32-d) -;; (func $const-i32-c (type $out-i32) (i32.const 67)) -;; (func $const-i32-d (type $out-i32) (i32.const 68)) -;; ) -;; -;; (assert_return (invoke $module1 "call-7") (i32.const 67)) -;; (assert_return (invoke $module1 "call-8") (i32.const 68)) -;; (assert_return (invoke $module1 "call-9") (i32.const 66)) -;; -;; (module $module3 -;; (type $out-i32 (func (result i32))) -;; (import "module1" "shared-table" (table 10 funcref)) -;; (elem (i32.const 8) $const-i32-e) -;; (elem (i32.const 9) $const-i32-f) -;; (func $const-i32-e (type $out-i32) (i32.const 69)) -;; (func $const-i32-f (type $out-i32) (i32.const 70)) -;; ) -;; -;; (assert_return (invoke $module1 "call-7") (i32.const 67)) -;; (assert_return (invoke $module1 "call-8") (i32.const 69)) -;; (assert_return (invoke $module1 "call-9") (i32.const 70)) +;; Test the element section + +;; Syntax +(module + (table $t 10 funcref) + (func $f) + (func $g) + + ;; Passive + ;; W2C2: No support for function references + ;; (elem funcref) + ;; (elem funcref (ref.func $f) (item ref.func $f) (item (ref.null func)) (ref.func $g)) + ;; (elem func) + ;; (elem func $f $f $g $g) + + ;; W2C2: No support for function references + ;; (elem $p1 funcref) + ;; (elem $p2 funcref (ref.func $f) (ref.func $f) (ref.null func) (ref.func $g)) + ;; (elem $p3 func) + ;; (elem $p4 func $f $f $g $g) + + ;; Active + ;; W2C2: No support for multiple tables + ;; (elem (table $t) (i32.const 0) funcref) + ;; (elem (table $t) (i32.const 0) funcref (ref.func $f) (ref.null func)) + ;; (elem (table $t) (i32.const 0) func) + ;; (elem (table $t) (i32.const 0) func $f $g) + ;; (elem (table $t) (offset (i32.const 0)) funcref) + ;; (elem (table $t) (offset (i32.const 0)) func $f $g) + ;; (elem (table 0) (i32.const 0) func) + ;; (elem (table 0x0) (i32.const 0) func $f $f) + ;; (elem (table 0x000) (offset (i32.const 0)) func) + ;; (elem (table 0) (offset (i32.const 0)) func $f $f) + ;; (elem (table $t) (i32.const 0) func) + ;; (elem (table $t) (i32.const 0) func $f $f) + ;; (elem (table $t) (offset (i32.const 0)) func) + ;; (elem (table $t) (offset (i32.const 0)) func $f $f) + (elem (offset (i32.const 0))) + ;; W2C2: No support for function references + ;; (elem (offset (i32.const 0)) funcref (ref.func $f) (ref.null func)) + ;; (elem (offset (i32.const 0)) func $f $f) + (elem (offset (i32.const 0)) $f $f) + (elem (i32.const 0)) + ;; W2C2: No support for function references + ;; (elem (i32.const 0) funcref (ref.func $f) (ref.null func)) + ;; (elem (i32.const 0) func $f $f) + ;; (elem (i32.const 0) $f $f) + ;; (elem (i32.const 0) funcref (item (ref.func $f)) (item (ref.null func))) + + ;; W2C2: No support for multiple tables + ;; (elem $a1 (table $t) (i32.const 0) funcref) + ;; (elem $a2 (table $t) (i32.const 0) funcref (ref.func $f) (ref.null func)) + ;; (elem $a3 (table $t) (i32.const 0) func) + ;; (elem $a4 (table $t) (i32.const 0) func $f $g) + ;; (elem $a9 (table $t) (offset (i32.const 0)) funcref) + ;; (elem $a10 (table $t) (offset (i32.const 0)) func $f $g) + ;; (elem $a11 (table 0) (i32.const 0) func) + ;; (elem $a12 (table 0x0) (i32.const 0) func $f $f) + ;; (elem $a13 (table 0x000) (offset (i32.const 0)) func) + ;; (elem $a14 (table 0) (offset (i32.const 0)) func $f $f) + ;; (elem $a15 (table $t) (i32.const 0) func) + ;; (elem $a16 (table $t) (i32.const 0) func $f $f) + ;; (elem $a17 (table $t) (offset (i32.const 0)) func) + ;; (elem $a18 (table $t) (offset (i32.const 0)) func $f $f) + ;; (elem $a19 (offset (i32.const 0))) + ;; W2C2: No support for function references + ;; (elem $a20 (offset (i32.const 0)) funcref (ref.func $f) (ref.null func)) + ;; (elem $a21 (offset (i32.const 0)) func $f $f) + ;; (elem $a22 (offset (i32.const 0)) $f $f) + ;; (elem $a23 (i32.const 0)) + ;; W2C2: No support for function references + ;; (elem $a24 (i32.const 0) funcref (ref.func $f) (ref.null func)) + ;; (elem $a25 (i32.const 0) func $f $f) + ;; (elem $a26 (i32.const 0) $f $f) + + ;; Declarative + ;; W2C2: No support for declarative + ;; (elem declare funcref) + ;; (elem declare funcref (ref.func $f) (ref.func $f) (ref.null func) (ref.func $g)) + ;; (elem declare func) + ;; (elem declare func $f $f $g $g) + ;; + ;; (elem $d1 declare funcref) + ;; (elem $d2 declare funcref (ref.func $f) (ref.func $f) (ref.null func) (ref.func $g)) + ;; (elem $d3 declare func) + ;; (elem $d4 declare func $f $f $g $g) +) + +(module + (func $f) + (func $g) + + ;; W2C2: No support for function references + ;; (table $t funcref (elem (ref.func $f) (ref.null func) (ref.func $g))) +) + + +;; Basic use + +(module + (table 10 funcref) + (func $f) + (elem (i32.const 0) $f) +) +(module + (import "spectest" "table" (table 10 funcref)) + (func $f) + (elem (i32.const 0) $f) +) + +(module + (table 10 funcref) + (func $f) + (elem (i32.const 0) $f) + (elem (i32.const 3) $f) + (elem (i32.const 7) $f) + (elem (i32.const 5) $f) + (elem (i32.const 3) $f) +) +(module + (import "spectest" "table" (table 10 funcref)) + (func $f) + (elem (i32.const 9) $f) + (elem (i32.const 3) $f) + (elem (i32.const 7) $f) + (elem (i32.const 3) $f) + (elem (i32.const 5) $f) +) + +(module + (global (import "spectest" "global_i32") i32) + (table 1000 funcref) + (func $f) + (elem (global.get 0) $f) +) + +(module + (global $g (import "spectest" "global_i32") i32) + (table 1000 funcref) + (func $f) + (elem (global.get $g) $f) +) + +(module + (type $out-i32 (func (result i32))) + (table 10 funcref) + (elem (i32.const 7) $const-i32-a) + (elem (i32.const 9) $const-i32-b) + (func $const-i32-a (type $out-i32) (i32.const 65)) + (func $const-i32-b (type $out-i32) (i32.const 66)) + (func (export "call-7") (type $out-i32) + (call_indirect (type $out-i32) (i32.const 7)) + ) + (func (export "call-9") (type $out-i32) + (call_indirect (type $out-i32) (i32.const 9)) + ) +) +(assert_return (invoke "call-7") (i32.const 65)) +(assert_return (invoke "call-9") (i32.const 66)) + +;; W2C2: No support for function references +;; ;; Same as the above, but use ref.null to ensure the elements use exprs. +;; ;; Note: some tools like wast2json avoid using exprs when possible. +;; (module +;; (type $out-i32 (func (result i32))) +;; (table 11 funcref) +;; (elem (i32.const 6) funcref (ref.null func) (ref.func $const-i32-a)) +;; (elem (i32.const 9) funcref (ref.func $const-i32-b) (ref.null func)) +;; (func $const-i32-a (type $out-i32) (i32.const 65)) +;; (func $const-i32-b (type $out-i32) (i32.const 66)) +;; (func (export "call-7") (type $out-i32) +;; (call_indirect (type $out-i32) (i32.const 7)) +;; ) +;; (func (export "call-9") (type $out-i32) +;; (call_indirect (type $out-i32) (i32.const 9)) +;; ) +;; ) +;; (assert_return (invoke "call-7") (i32.const 65)) +;; (assert_return (invoke "call-9") (i32.const 66)) +;; +;; (assert_invalid +;; (module (table 1 funcref) (global i32 (i32.const 0)) (elem (global.get 0) $f) (func $f)) +;; "unknown global" +;; ) +;; (assert_invalid +;; (module (table 1 funcref) (global $g i32 (i32.const 0)) (elem (global.get $g) $f) (func $f)) +;; "unknown global" +;; ) + + +;; Corner cases + +(module + (table 10 funcref) + (func $f) + (elem (i32.const 9) $f) +) +(module + (import "spectest" "table" (table 10 funcref)) + (func $f) + (elem (i32.const 9) $f) +) + +(module + (table 0 funcref) + (elem (i32.const 0)) +) +(module + (import "spectest" "table" (table 0 funcref)) + (elem (i32.const 0)) +) + +(module + (table 0 0 funcref) + (elem (i32.const 0)) +) + +(module + (table 20 funcref) + (elem (i32.const 20)) +) + +(module + (import "spectest" "table" (table 0 funcref)) + (func $f) + (elem (i32.const 0) $f) +) + +(module + (import "spectest" "table" (table 0 100 funcref)) + (func $f) + (elem (i32.const 0) $f) +) + +(module + (import "spectest" "table" (table 0 funcref)) + (func $f) + (elem (i32.const 1) $f) +) + +(module + (import "spectest" "table" (table 0 30 funcref)) + (func $f) + (elem (i32.const 1) $f) +) + +;; Invalid bounds for elements + +(assert_trap + (module + (table 0 funcref) + (func $f) + (elem (i32.const 0) $f) + ) + "out of bounds table access" +) + +(assert_trap + (module + (table 0 0 funcref) + (func $f) + (elem (i32.const 0) $f) + ) + "out of bounds table access" +) + +(assert_trap + (module + (table 0 1 funcref) + (func $f) + (elem (i32.const 0) $f) + ) + "out of bounds table access" +) + +(assert_trap + (module + (table 0 funcref) + (elem (i32.const 1)) + ) + "out of bounds table access" +) +(assert_trap + (module + (table 10 funcref) + (func $f) + (elem (i32.const 10) $f) + ) + "out of bounds table access" +) +(assert_trap + (module + (import "spectest" "table" (table 10 funcref)) + (func $f) + (elem (i32.const 10) $f) + ) + "out of bounds table access" +) + +(assert_trap + (module + (table 10 20 funcref) + (func $f) + (elem (i32.const 10) $f) + ) + "out of bounds table access" +) +(assert_trap + (module + (import "spectest" "table" (table 10 funcref)) + (func $f) + (elem (i32.const 10) $f) + ) + "out of bounds table access" +) + +(assert_trap + (module + (table 10 funcref) + (func $f) + (elem (i32.const -1) $f) + ) + "out of bounds table access" +) +(assert_trap + (module + (import "spectest" "table" (table 10 funcref)) + (func $f) + (elem (i32.const -1) $f) + ) + "out of bounds table access" +) + +(assert_trap + (module + (table 10 funcref) + (func $f) + (elem (i32.const -10) $f) + ) + "out of bounds table access" +) +(assert_trap + (module + (import "spectest" "table" (table 10 funcref)) + (func $f) + (elem (i32.const -10) $f) + ) + "out of bounds table access" +) + +;; Implicitly dropped elements + +;; W2C2: No support for function references +;; (module +;; (table 10 funcref) +;; (elem $e (i32.const 0) func $f) +;; (func $f) +;; (func (export "init") +;; (table.init $e (i32.const 0) (i32.const 0) (i32.const 1)) +;; ) +;; ) +;; (assert_trap (invoke "init") "out of bounds table access") + +;; W2C2: No support for declarative +;; (module +;; (table 10 funcref) +;; (elem $e declare func $f) +;; (func $f) +;; (func (export "init") +;; (table.init $e (i32.const 0) (i32.const 0) (i32.const 1)) +;; ) +;; ) +;; (assert_trap (invoke "init") "out of bounds table access") + +;; Element without table + +(assert_invalid + (module + (func $f) + (elem (i32.const 0) $f) + ) + "unknown table" +) + +;; Invalid offsets + +(assert_invalid + (module + (table 1 funcref) + (elem (i64.const 0)) + ) + "type mismatch" +) + +;; W2C2: No support for function references +;; (assert_invalid +;; (module +;; (table 1 funcref) +;; (elem (ref.null func)) +;; ) +;; "type mismatch" +;; ) + +(assert_invalid + (module + (table 1 funcref) + (elem (offset (;empty instruction sequence;))) + ) + "type mismatch" +) + +(assert_invalid + (module + (table 1 funcref) + (elem (offset (i32.const 0) (i32.const 0))) + ) + "type mismatch" +) + +(assert_invalid + (module + (global (import "test" "global-i32") i32) + (table 1 funcref) + (elem (offset (global.get 0) (global.get 0))) + ) + "type mismatch" +) + +(assert_invalid + (module + (global (import "test" "global-i32") i32) + (table 1 funcref) + (elem (offset (global.get 0) (i32.const 0))) + ) + "type mismatch" +) + + +(assert_invalid + (module + (table 1 funcref) + (elem (i32.ctz (i32.const 0))) + ) + "constant expression required" +) + +(assert_invalid + (module + (table 1 funcref) + (elem (nop)) + ) + "constant expression required" +) + +(assert_invalid + (module + (table 1 funcref) + (elem (offset (nop) (i32.const 0))) + ) + "constant expression required" +) + +(assert_invalid + (module + (table 1 funcref) + (elem (offset (i32.const 0) (nop))) + ) + "constant expression required" +) + +(assert_invalid + (module + (global $g (import "test" "g") (mut i32)) + (table 1 funcref) + (elem (global.get $g)) + ) + "constant expression required" +) + +(assert_invalid + (module + (table 1 funcref) + (elem (global.get 0)) + ) + "unknown global 0" +) + +(assert_invalid + (module + (global (import "test" "global-i32") i32) + (table 1 funcref) + (elem (global.get 1)) + ) + "unknown global 1" +) + +(assert_invalid + (module + (global (import "test" "global-mut-i32") (mut i32)) + (table 1 funcref) + (elem (global.get 0)) + ) + "constant expression required" +) + +;; Invalid elements + +;; W2C2: No support for function references +;; (assert_invalid +;; (module +;; (table 1 funcref) +;; (elem (i32.const 0) funcref (ref.null extern)) +;; ) +;; "type mismatch" +;; ) +;; +;; (assert_invalid +;; (module +;; (table 1 funcref) +;; (elem (i32.const 0) funcref (item (ref.null func) (ref.null func))) +;; ) +;; "type mismatch" +;; ) + +(assert_invalid + (module + (table 1 funcref) + (elem (i32.const 0) funcref (i32.const 0)) + ) + "type mismatch" +) + +(assert_invalid + (module + (table 1 funcref) + (elem (i32.const 0) funcref (item (i32.const 0))) + ) + "type mismatch" +) + +;; W2C2: No support for function references +;; (assert_invalid +;; (module +;; (table 1 funcref) +;; (elem (i32.const 0) funcref (item (call $f))) +;; (func $f (result funcref) (ref.null func)) +;; ) +;; "constant expression required" +;; ) + +;; Two elements target the same slot + +(module + (type $out-i32 (func (result i32))) + (table 10 funcref) + (elem (i32.const 9) $const-i32-a) + (elem (i32.const 9) $const-i32-b) + (func $const-i32-a (type $out-i32) (i32.const 65)) + (func $const-i32-b (type $out-i32) (i32.const 66)) + (func (export "call-overwritten") (type $out-i32) + (call_indirect (type $out-i32) (i32.const 9)) + ) +) +(assert_return (invoke "call-overwritten") (i32.const 66)) + +(module + (type $out-i32 (func (result i32))) + (import "spectest" "table" (table 10 funcref)) + (elem (i32.const 9) $const-i32-a) + (elem (i32.const 9) $const-i32-b) + (func $const-i32-a (type $out-i32) (i32.const 65)) + (func $const-i32-b (type $out-i32) (i32.const 66)) + (func (export "call-overwritten-element") (type $out-i32) + (call_indirect (type $out-i32) (i32.const 9)) + ) +) +(assert_return (invoke "call-overwritten-element") (i32.const 66)) + +;; W2C2: No support for registering modules +;; ;; Element sections across multiple modules change the same table +;; +;; (module $module1 +;; (type $out-i32 (func (result i32))) +;; (table (export "shared-table") 10 funcref) +;; (elem (i32.const 8) $const-i32-a) +;; (elem (i32.const 9) $const-i32-b) +;; (func $const-i32-a (type $out-i32) (i32.const 65)) +;; (func $const-i32-b (type $out-i32) (i32.const 66)) +;; (func (export "call-7") (type $out-i32) +;; (call_indirect (type $out-i32) (i32.const 7)) +;; ) +;; (func (export "call-8") (type $out-i32) +;; (call_indirect (type $out-i32) (i32.const 8)) +;; ) +;; (func (export "call-9") (type $out-i32) +;; (call_indirect (type $out-i32) (i32.const 9)) +;; ) +;; ) +;; +;; (register "module1" $module1) +;; +;; (assert_trap (invoke $module1 "call-7") "uninitialized element") +;; (assert_return (invoke $module1 "call-8") (i32.const 65)) +;; (assert_return (invoke $module1 "call-9") (i32.const 66)) +;; +;; (module $module2 +;; (type $out-i32 (func (result i32))) +;; (import "module1" "shared-table" (table 10 funcref)) +;; (elem (i32.const 7) $const-i32-c) +;; (elem (i32.const 8) $const-i32-d) +;; (func $const-i32-c (type $out-i32) (i32.const 67)) +;; (func $const-i32-d (type $out-i32) (i32.const 68)) +;; ) +;; +;; (assert_return (invoke $module1 "call-7") (i32.const 67)) +;; (assert_return (invoke $module1 "call-8") (i32.const 68)) +;; (assert_return (invoke $module1 "call-9") (i32.const 66)) +;; +;; (module $module3 +;; (type $out-i32 (func (result i32))) +;; (import "module1" "shared-table" (table 10 funcref)) +;; (elem (i32.const 8) $const-i32-e) +;; (elem (i32.const 9) $const-i32-f) +;; (func $const-i32-e (type $out-i32) (i32.const 69)) +;; (func $const-i32-f (type $out-i32) (i32.const 70)) +;; ) +;; +;; (assert_return (invoke $module1 "call-7") (i32.const 67)) +;; (assert_return (invoke $module1 "call-8") (i32.const 69)) +;; (assert_return (invoke $module1 "call-9") (i32.const 70)) + +;; Element segments must match element type of table + +;; W2C2: No support for external references +;; (assert_invalid +;; (module (func $f) (table 1 externref) (elem (i32.const 0) $f)) +;; "type mismatch" +;; ) +;; +;; (assert_invalid +;; (module (table 1 funcref) (elem (i32.const 0) externref (ref.null extern))) +;; "type mismatch" +;; ) +;; +;; (assert_invalid +;; (module +;; (func $f) +;; (table $t 1 externref) +;; (elem $e funcref (ref.func $f)) +;; (func (table.init $t $e (i32.const 0) (i32.const 0) (i32.const 1)))) +;; "type mismatch" +;; ) +;; +;; (assert_invalid +;; (module +;; (table $t 1 funcref) +;; (elem $e externref (ref.null extern)) +;; (func (table.init $t $e (i32.const 0) (i32.const 0) (i32.const 1)))) +;; "type mismatch" +;; ) +;; +;; ;; Initializing a table with an externref-type element segment +;; +;; (module $m +;; (table $t (export "table") 2 externref) +;; (func (export "get") (param $i i32) (result externref) +;; (table.get $t (local.get $i))) +;; (func (export "set") (param $i i32) (param $x externref) +;; (table.set $t (local.get $i) (local.get $x)))) +;; +;; (register "exporter" $m) +;; +;; (assert_return (invoke $m "get" (i32.const 0)) (ref.null extern)) +;; (assert_return (invoke $m "get" (i32.const 1)) (ref.null extern)) +;; +;; (assert_return (invoke $m "set" (i32.const 0) (ref.extern 42))) +;; (assert_return (invoke $m "set" (i32.const 1) (ref.extern 137))) +;; +;; (assert_return (invoke $m "get" (i32.const 0)) (ref.extern 42)) +;; (assert_return (invoke $m "get" (i32.const 1)) (ref.extern 137)) +;; +;; (module +;; (import "exporter" "table" (table $t 2 externref)) +;; (elem (i32.const 0) externref (ref.null extern))) +;; +;; (assert_return (invoke $m "get" (i32.const 0)) (ref.null extern)) +;; (assert_return (invoke $m "get" (i32.const 1)) (ref.extern 137)) +;; +;; ;; Initializing a table with imported funcref global +;; +;; (module $module4 +;; (func (result i32) +;; i32.const 42 +;; ) +;; (global (export "f") funcref (ref.func 0)) +;; ) +;; +;; (register "module4" $module4) +;; +;; (module +;; (import "module4" "f" (global funcref)) +;; (type $out-i32 (func (result i32))) +;; (table 10 funcref) +;; (elem (offset (i32.const 0)) funcref (global.get 0)) +;; (func (export "call_imported_elem") (type $out-i32) +;; (call_indirect (type $out-i32) (i32.const 0)) +;; ) +;; ) +;; +;; (assert_return (invoke "call_imported_elem") (i32.const 42)) diff --git a/tests/exports.wast b/tests/exports.wast index e8d62ca5..694ae98a 100644 --- a/tests/exports.wast +++ b/tests/exports.wast @@ -13,6 +13,7 @@ (module (export "a" (func 0)) (func)) (module (export "a" (func $a)) (func $a)) +;; W2C2: unsupported test setup ;; (module $Func ;; (export "e" (func $f)) ;; (func $f (param $n i32) (result i32) @@ -25,10 +26,28 @@ ;; (module $Other1) ;; (assert_return (invoke $Func "e" (i32.const 42)) (i32.const 43)) +(module + (type (;0;) (func (result i32))) + (func (;0;) (type 0) (result i32) i32.const 42) + (export "a" (func 0)) + (export "b" (func 0)) + (export "c" (func 0))) +(assert_return (invoke "a") (i32.const 42)) +(assert_return (invoke "b") (i32.const 42)) +(assert_return (invoke "c") (i32.const 42)) + +(assert_invalid + (module (export "a" (func 0))) + "unknown function" +) (assert_invalid (module (func) (export "a" (func 1))) "unknown function" ) +(assert_invalid + (module (import "spectest" "print_i32" (func (param i32))) (export "a" (func 1))) + "unknown function" +) (assert_invalid (module (func) (export "a" (func 0)) (export "a" (func 0))) "duplicate export name" @@ -64,6 +83,7 @@ (module (export "a" (global 0)) (global i32 (i32.const 0))) (module (export "a" (global $a)) (global $a i32 (i32.const 0))) +;; W2C2: unsupported test setup ;; (module $Global ;; (export "e" (global $g)) ;; (global $g i32 (i32.const 42)) @@ -74,10 +94,18 @@ ;; (module $Other2) ;; (assert_return (get $Global "e") (i32.const 42)) +(assert_invalid + (module (export "a" (global 0))) + "unknown global" +) (assert_invalid (module (global i32 (i32.const 0)) (export "a" (global 1))) "unknown global" ) +(assert_invalid + (module (import "spectest" "global_i32" (global i32)) (export "a" (global 1))) + "unknown global" +) (assert_invalid (module (global i32 (i32.const 0)) (export "a" (global 0)) (export "a" (global 0))) "duplicate export name" @@ -104,7 +132,7 @@ (module (table 0 funcref) (export "a" (table 0))) (module (table 0 funcref) (export "a" (table 0)) (export "b" (table 0))) -;; No multiple tables yet. +;; W2C2: No support for multiple tables ;; (module (table 0 funcref) (table 0 funcref) (export "a" (table 0)) (export "b" (table 1))) (module (table (export "a") 0 funcref)) @@ -122,15 +150,23 @@ (; TODO: access table ;) +(assert_invalid + (module (export "a" (table 0))) + "unknown table" +) (assert_invalid (module (table 0 funcref) (export "a" (table 1))) "unknown table" ) +(assert_invalid + (module (import "spectest" "table" (table 10 20 funcref)) (export "a" (table 1))) + "unknown table" +) (assert_invalid (module (table 0 funcref) (export "a" (table 0)) (export "a" (table 0))) "duplicate export name" ) -;; No multiple tables yet. +;; W2C2: No support for multiple tables ;; (assert_invalid ;; (module (table 0 funcref) (table 0 funcref) (export "a" (table 0)) (export "a" (table 1))) ;; "duplicate export name" @@ -171,10 +207,18 @@ (; TODO: access memory ;) +(assert_invalid + (module (export "a" (memory 0))) + "unknown memory" +) (assert_invalid (module (memory 0) (export "a" (memory 1))) "unknown memory" ) +(assert_invalid + (module (import "spectest" "memory" (memory 1 2)) (export "a" (memory 1))) + "unknown memory" +) (assert_invalid (module (memory 0) (export "a" (memory 0)) (export "a" (memory 0))) "duplicate export name" diff --git a/tests/f32.wast b/tests/f32.wast index 4328f9d6..0f8ae0aa 100644 --- a/tests/f32.wast +++ b/tests/f32.wast @@ -2532,3 +2532,12 @@ (assert_invalid (module (func (result f32) (f32.sqrt (i64.const 0)))) "type mismatch") (assert_invalid (module (func (result f32) (f32.trunc (i64.const 0)))) "type mismatch") +;; These float literal patterns are only allowed in scripts, not in text format. +(assert_malformed + (module quote "(func (result f32) (f32.const nan:arithmetic))") + "unexpected token" +) +(assert_malformed + (module quote "(func (result f32) (f32.const nan:canonical))") + "unexpected token" +) diff --git a/tests/f64.wast b/tests/f64.wast index 70bb477c..afd2b2f7 100644 --- a/tests/f64.wast +++ b/tests/f64.wast @@ -2531,3 +2531,13 @@ (assert_invalid (module (func (result f64) (f64.nearest (i64.const 0)))) "type mismatch") (assert_invalid (module (func (result f64) (f64.sqrt (i64.const 0)))) "type mismatch") (assert_invalid (module (func (result f64) (f64.trunc (i64.const 0)))) "type mismatch") + +;; These float literal patterns are only allowed in scripts, not in text format. +(assert_malformed + (module quote "(func (result f64) (f64.const nan:arithmetic))") + "unexpected token" +) +(assert_malformed + (module quote "(func (result f64) (f64.const nan:canonical))") + "unexpected token" +) diff --git a/tests/fac.wast b/tests/fac.wast index ef10991a..9aad756a 100644 --- a/tests/fac.wast +++ b/tests/fac.wast @@ -79,6 +79,25 @@ ) (local.get 1) ) + + ;; W2C2: No support for functions with multiple return values + ;; ;; Iterative factorial without locals. + ;; (func $pick0 (param i64) (result i64 i64) + ;; (local.get 0) (local.get 0) + ;; ) + ;; (func $pick1 (param i64 i64) (result i64 i64 i64) + ;; (local.get 0) (local.get 1) (local.get 0) + ;; ) + ;; (func (export "fac-ssa") (param i64) (result i64) + ;; (i64.const 1) (local.get 0) + ;; (loop $l (param i64 i64) (result i64) + ;; (call $pick1) (call $pick1) (i64.mul) + ;; (call $pick1) (i64.const 1) (i64.sub) + ;; (call $pick0) (i64.const 0) (i64.gt_u) + ;; (br_if $l) + ;; (drop) (return) + ;; ) + ;; ) ) (assert_return (invoke "fac-rec" (i64.const 25)) (i64.const 7034535277573963776)) @@ -86,4 +105,7 @@ (assert_return (invoke "fac-rec-named" (i64.const 25)) (i64.const 7034535277573963776)) (assert_return (invoke "fac-iter-named" (i64.const 25)) (i64.const 7034535277573963776)) (assert_return (invoke "fac-opt" (i64.const 25)) (i64.const 7034535277573963776)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "fac-ssa" (i64.const 25)) (i64.const 7034535277573963776)) + (assert_exhaustion (invoke "fac-rec" (i64.const 1073741824)) "call stack exhausted") diff --git a/tests/float_exprs.wast b/tests/float_exprs.wast index 1f882992..274c9966 100644 --- a/tests/float_exprs.wast +++ b/tests/float_exprs.wast @@ -649,7 +649,8 @@ (assert_return (invoke "no_fold_promote_demote" (f32.const inf)) (f32.const inf)) (assert_return (invoke "no_fold_promote_demote" (f32.const -inf)) (f32.const -inf)) -;; Test that demote(x+promote(y)) is not folded to demote(x)+y. +;; Test that demote(x+promote(y)) is not folded to demote(x)+y, and that +;; demote(promote(y)+x) is not folded to y+demote(x). (module (func (export "no_demote_mixed_add") (param $x f64) (param $y f32) (result f32) @@ -670,11 +671,14 @@ (assert_return (invoke "no_demote_mixed_add_commuted" (f32.const 0x1.096f4ap-29) (f64.const -0x1.0d5110e3385bbp-20)) (f32.const -0x1.0ccc5ap-20)) (assert_return (invoke "no_demote_mixed_add_commuted" (f32.const -0x1.24e474p-41) (f64.const -0x1.73852db4e5075p-20)) (f32.const -0x1.738536p-20)) -;; Test that demote(x-promote(y)) is not folded to demote(x)-y. +;; Test that demote(x-promote(y)) is not folded to demote(x)-y, and that +;; demote(promote(y)-x) is not folded to y-demote(x). (module (func (export "no_demote_mixed_sub") (param $x f64) (param $y f32) (result f32) (f32.demote_f64 (f64.sub (local.get $x) (f64.promote_f32 (local.get $y))))) + (func (export "no_demote_mixed_sub_commuted") (param $y f32) (param $x f64) (result f32) + (f32.demote_f64 (f64.sub (f64.promote_f32 (local.get $y)) (local.get $x)))) ) (assert_return (invoke "no_demote_mixed_sub" (f64.const 0x1.a0a183220e9b1p+82) (f32.const 0x1.c5acf8p+61)) (f32.const 0x1.a0a174p+82)) @@ -683,6 +687,56 @@ (assert_return (invoke "no_demote_mixed_sub" (f64.const 0x1.0459f34091dbfp-54) (f32.const 0x1.61ad08p-71)) (f32.const 0x1.045942p-54)) (assert_return (invoke "no_demote_mixed_sub" (f64.const 0x1.a7498dca3fdb7p+14) (f32.const 0x1.ed21c8p+15)) (f32.const -0x1.197d02p+15)) +(assert_return (invoke "no_demote_mixed_sub_commuted" (f32.const 0x1.c5acf8p+61) (f64.const 0x1.a0a183220e9b1p+82)) (f32.const -0x1.a0a174p+82)) +(assert_return (invoke "no_demote_mixed_sub_commuted" (f32.const 0x1.d48ca4p+17) (f64.const -0x1.6e2c5ac39f63ep+30)) (f32.const 0x1.6e3bp+30)) +(assert_return (invoke "no_demote_mixed_sub_commuted" (f32.const 0x1.9d69bcp-12) (f64.const -0x1.98c74350dde6ap+6)) (f32.const 0x1.98c7aap+6)) +(assert_return (invoke "no_demote_mixed_sub_commuted" (f32.const 0x1.61ad08p-71) (f64.const 0x1.0459f34091dbfp-54)) (f32.const -0x1.045942p-54)) +(assert_return (invoke "no_demote_mixed_sub_commuted" (f32.const 0x1.ed21c8p+15) (f64.const 0x1.a7498dca3fdb7p+14)) (f32.const 0x1.197d02p+15)) + +;; Test that demote(x*promote(y)) is not folded to demote(x)*y, and that +;; demote(promote(y)*x) is not folded to y*demote(x). + +(module + (func (export "no_demote_mixed_mul") (param $x f64) (param $y f32) (result f32) + (f32.demote_f64 (f64.mul (local.get $x) (f64.promote_f32 (local.get $y))))) + (func (export "no_demote_mixed_mul_commuted") (param $y f32) (param $x f64) (result f32) + (f32.demote_f64 (f64.mul (f64.promote_f32 (local.get $y)) (local.get $x)))) +) + +(assert_return (invoke "no_demote_mixed_mul" (f64.const 0x1.a19789e5aa475p-202) (f32.const 0x1.858cbep+113)) (f32.const 0x1.3db86cp-88)) +(assert_return (invoke "no_demote_mixed_mul" (f64.const 0x1.8f0e6a5a53f15p+140) (f32.const 0x1.2ef826p-107)) (f32.const 0x1.d845d2p+33)) +(assert_return (invoke "no_demote_mixed_mul" (f64.const 0x1.f03aa769e296cp+176) (f32.const 0x1.a9255p-57)) (f32.const 0x1.9c0cdap+120)) +(assert_return (invoke "no_demote_mixed_mul" (f64.const 0x1.9cd70b636bc52p+221) (f32.const 0x1.3f3ac6p-122)) (f32.const 0x1.01676p+100)) +(assert_return (invoke "no_demote_mixed_mul" (f64.const 0x1.c56b4c2991a3cp-170) (f32.const 0x1.1ad242p+48)) (f32.const 0x1.f4ec98p-122)) + +(assert_return (invoke "no_demote_mixed_mul_commuted" (f32.const 0x1.858cbep+113) (f64.const 0x1.a19789e5aa475p-202)) (f32.const 0x1.3db86cp-88)) +(assert_return (invoke "no_demote_mixed_mul_commuted" (f32.const 0x1.2ef826p-107) (f64.const 0x1.8f0e6a5a53f15p+140)) (f32.const 0x1.d845d2p+33)) +(assert_return (invoke "no_demote_mixed_mul_commuted" (f32.const 0x1.a9255p-57) (f64.const 0x1.f03aa769e296cp+176)) (f32.const 0x1.9c0cdap+120)) +(assert_return (invoke "no_demote_mixed_mul_commuted" (f32.const 0x1.3f3ac6p-122) (f64.const 0x1.9cd70b636bc52p+221)) (f32.const 0x1.01676p+100)) +(assert_return (invoke "no_demote_mixed_mul_commuted" (f32.const 0x1.1ad242p+48) (f64.const 0x1.c56b4c2991a3cp-170)) (f32.const 0x1.f4ec98p-122)) + +;; Test that demote(x/promote(y)) is not folded to demote(x)/y, and that +;; demote(promote(y)/x) is not folded to y/demote(x). + +(module + (func (export "no_demote_mixed_div") (param $x f64) (param $y f32) (result f32) + (f32.demote_f64 (f64.div (local.get $x) (f64.promote_f32 (local.get $y))))) + (func (export "no_demote_mixed_div_commuted") (param $y f32) (param $x f64) (result f32) + (f32.demote_f64 (f64.div (f64.promote_f32 (local.get $y)) (local.get $x)))) +) + +(assert_return (invoke "no_demote_mixed_div" (f64.const 0x1.40d0b55d4cee1p+150) (f32.const 0x1.6c7496p+103)) (f32.const 0x1.c2b158p+46)) +(assert_return (invoke "no_demote_mixed_div" (f64.const 0x1.402750f34cd98p-153) (f32.const 0x1.3db8ep-82)) (f32.const 0x1.01f586p-71)) +(assert_return (invoke "no_demote_mixed_div" (f64.const 0x1.3f7ece1a790a7p-37) (f32.const 0x1.a5652p-128)) (f32.const 0x1.8430dp+90)) +(assert_return (invoke "no_demote_mixed_div" (f64.const 0x1.5171328e16885p-138) (f32.const 0x1.10636ap-88)) (f32.const 0x1.3d23cep-50)) +(assert_return (invoke "no_demote_mixed_div" (f64.const 0x1.d3a380fc986ccp+74) (f32.const 0x1.f095b6p+88)) (f32.const 0x1.e227c4p-15)) + +(assert_return (invoke "no_demote_mixed_div_commuted" (f32.const 0x1.d78ddcp-74) (f64.const 0x1.2c57e125069e2p-42)) (f32.const 0x1.91eed6p-32)) +(assert_return (invoke "no_demote_mixed_div_commuted" (f32.const 0x1.7db224p+26) (f64.const 0x1.1c291ec609ed4p+159)) (f32.const 0x1.57dfp-133)) +(assert_return (invoke "no_demote_mixed_div_commuted" (f32.const 0x1.e7a824p-40) (f64.const 0x1.f4bdb25ff00fcp-137)) (f32.const 0x1.f29f22p+96)) +(assert_return (invoke "no_demote_mixed_div_commuted" (f32.const 0x1.730b8p+80) (f64.const 0x1.880fb331a64cap+210)) (f32.const 0x1.e48ep-131)) +(assert_return (invoke "no_demote_mixed_div_commuted" (f32.const 0x1.7715fcp-73) (f64.const 0x1.6feb1fa66f11bp-198)) (f32.const 0x1.04fcb6p+125)) + ;; Test that converting between integer and float and back isn't folded away. (module @@ -1986,7 +2040,7 @@ (assert_return (invoke "f64.xkcd_better_sqrt_5" (f64.const 13.0) (f64.const 4.0) (f64.const 0x1.921fb54442d18p+1) (f64.const 24.0)) (f64.const 0x1.1e3778509a5a3p+1)) ;; Compute the floating-point radix. -;; M. A. Malcom. Algorithms to reveal properties of floating-point arithmetic. +;; M. A. Malcolm. Algorithms to reveal properties of floating-point arithmetic. ;; Communications of the ACM, 15(11):949-951, November 1972. (module (func (export "f32.compute_radix") (param $0 f32) (param $1 f32) (result f32) diff --git a/tests/float_literals.wast b/tests/float_literals.wast index 1a58f9f9..38a80d82 100644 --- a/tests/float_literals.wast +++ b/tests/float_literals.wast @@ -25,6 +25,10 @@ (func (export "f32.max_finite") (result i32) (i32.reinterpret_f32 (f32.const 0x1.fffffep+127))) (func (export "f32.max_subnormal") (result i32) (i32.reinterpret_f32 (f32.const 0x1.fffffcp-127))) (func (export "f32.trailing_dot") (result i32) (i32.reinterpret_f32 (f32.const 0x1.p10))) + (func (export "f32.misc_int") (result i32) (i32.reinterpret_f32 (f32.const 0x12345))) + (func (export "f32.large_int") (result i32) (i32.reinterpret_f32 (f32.const 0x1_0000_0000_0000_0000_0000))) + (func (export "f32.min_int32") (result i32) (i32.reinterpret_f32 (f32.const -0x8000_0000))) + (func (export "f32.min_int64") (result i32) (i32.reinterpret_f32 (f32.const -0x8000_0000_0000_0000))) ;; f32 in decimal format (func (export "f32_dec.zero") (result i32) (i32.reinterpret_f32 (f32.const 0.0e0))) @@ -36,6 +40,10 @@ (func (export "f32_dec.max_subnormal") (result i32) (i32.reinterpret_f32 (f32.const 1.1754942e-38))) (func (export "f32_dec.max_finite") (result i32) (i32.reinterpret_f32 (f32.const 3.4028234e+38))) (func (export "f32_dec.trailing_dot") (result i32) (i32.reinterpret_f32 (f32.const 1.e10))) + (func (export "f32_dec.misc_int") (result i32) (i32.reinterpret_f32 (f32.const 12345))) + (func (export "f32_dec.large_int") (result i32) (i32.reinterpret_f32 (f32.const 100_000_000_000_000_000_000))) + (func (export "f32_dec.min_int32") (result i32) (i32.reinterpret_f32 (f32.const -2147483648))) + (func (export "f32_dec.min_int64") (result i32) (i32.reinterpret_f32 (f32.const -9223372036854775808))) ;; https://twitter.com/Archivd/status/994637336506912768 (func (export "f32_dec.root_beer_float") (result i32) (i32.reinterpret_f32 (f32.const 1.000000119))) @@ -64,6 +72,10 @@ (func (export "f64.max_subnormal") (result i64) (i64.reinterpret_f64 (f64.const 0x0.fffffffffffffp-1022))) (func (export "f64.max_finite") (result i64) (i64.reinterpret_f64 (f64.const 0x1.fffffffffffffp+1023))) (func (export "f64.trailing_dot") (result i64) (i64.reinterpret_f64 (f64.const 0x1.p100))) + (func (export "f64.misc_int") (result i64) (i64.reinterpret_f64 (f64.const 0x12345))) + (func (export "f64.large_int") (result i64) (i64.reinterpret_f64 (f64.const 0x1_0000_0000_0000_0000_0000))) + (func (export "f64.min_int32") (result i64) (i64.reinterpret_f64 (f64.const -0x8000_0000))) + (func (export "f64.min_int64") (result i64) (i64.reinterpret_f64 (f64.const -0x8000_0000_0000_0000))) ;; f64 numbers in decimal format (func (export "f64_dec.zero") (result i64) (i64.reinterpret_f64 (f64.const 0.0e0))) @@ -75,6 +87,10 @@ (func (export "f64_dec.max_subnormal") (result i64) (i64.reinterpret_f64 (f64.const 2.2250738585072011e-308))) (func (export "f64_dec.max_finite") (result i64) (i64.reinterpret_f64 (f64.const 1.7976931348623157e+308))) (func (export "f64_dec.trailing_dot") (result i64) (i64.reinterpret_f64 (f64.const 1.e100))) + (func (export "f64_dec.misc_int") (result i64) (i64.reinterpret_f64 (f64.const 12345))) + (func (export "f64_dec.large_int") (result i64) (i64.reinterpret_f64 (f64.const 100_000_000_000_000_000_000))) + (func (export "f64_dec.min_int32") (result i64) (i64.reinterpret_f64 (f64.const -2147483648))) + (func (export "f64_dec.min_int64") (result i64) (i64.reinterpret_f64 (f64.const -9223372036854775808))) ;; https://twitter.com/Archivd/status/994637336506912768 (func (export "f64_dec.root_beer_float") (result i64) (i64.reinterpret_f64 (f64.const 1.000000119))) @@ -123,6 +139,10 @@ (assert_return (invoke "f32.max_subnormal") (i32.const 0x7fffff)) (assert_return (invoke "f32.max_finite") (i32.const 0x7f7fffff)) (assert_return (invoke "f32.trailing_dot") (i32.const 0x44800000)) +(assert_return (invoke "f32.misc_int") (i32.const 0x4791a280)) +(assert_return (invoke "f32.large_int") (i32.const 0x67800000)) +(assert_return (invoke "f32.min_int32") (i32.const 0xcf000000)) +(assert_return (invoke "f32.min_int64") (i32.const 0xdf000000)) (assert_return (invoke "f32_dec.zero") (i32.const 0)) (assert_return (invoke "f32_dec.positive_zero") (i32.const 0)) (assert_return (invoke "f32_dec.negative_zero") (i32.const 0x80000000)) @@ -133,12 +153,17 @@ (assert_return (invoke "f32_dec.max_finite") (i32.const 0x7f7fffff)) (assert_return (invoke "f32_dec.trailing_dot") (i32.const 0x501502f9)) (assert_return (invoke "f32_dec.root_beer_float") (i32.const 0x3f800001)) +(assert_return (invoke "f32_dec.misc_int") (i32.const 0x4640e400)) +(assert_return (invoke "f32_dec.large_int") (i32.const 0x60ad78ec)) +(assert_return (invoke "f32_dec.min_int32") (i32.const 0xcf000000)) +(assert_return (invoke "f32_dec.min_int64") (i32.const 0xdf000000)) -;; TODO: (assert_return (invoke "f64.nan") (i64.const 0x7ff8000000000000)) -;; TODO: (assert_return (invoke "f64.positive_nan") (i64.const 0x7ff8000000000000)) -;; TODO: (assert_return (invoke "f64.negative_nan") (i64.const 0xfff8000000000000)) -;; TODO: (assert_return (invoke "f64.plain_nan") (i64.const 0x7ff8000000000000)) -;; TODO: (assert_return (invoke "f64.informally_known_as_plain_snan") (i64.const 0x7ff4000000000000)) +;; W2C2: +;; (assert_return (invoke "f64.nan") (i64.const 0x7ff8000000000000)) +;; (assert_return (invoke "f64.positive_nan") (i64.const 0x7ff8000000000000)) +;; (assert_return (invoke "f64.negative_nan") (i64.const 0xfff8000000000000)) +;; (assert_return (invoke "f64.plain_nan") (i64.const 0x7ff8000000000000)) +;; (assert_return (invoke "f64.informally_known_as_plain_snan") (i64.const 0x7ff4000000000000)) (assert_return (invoke "f64.all_ones_nan") (i64.const 0xffffffffffffffff)) (assert_return (invoke "f64.misc_nan") (i64.const 0x7ff0123456789abc)) (assert_return (invoke "f64.misc_positive_nan") (i64.const 0x7ff3040506070809)) @@ -155,6 +180,10 @@ (assert_return (invoke "f64.max_subnormal") (i64.const 0xfffffffffffff)) (assert_return (invoke "f64.max_finite") (i64.const 0x7fefffffffffffff)) (assert_return (invoke "f64.trailing_dot") (i64.const 0x4630000000000000)) +(assert_return (invoke "f64.misc_int") (i64.const 0x40f2345000000000)) +(assert_return (invoke "f64.large_int") (i64.const 0x44f0000000000000)) +(assert_return (invoke "f64.min_int32") (i64.const 0xc1e0000000000000)) +(assert_return (invoke "f64.min_int64") (i64.const 0xc3e0000000000000)) (assert_return (invoke "f64_dec.zero") (i64.const 0)) (assert_return (invoke "f64_dec.positive_zero") (i64.const 0)) (assert_return (invoke "f64_dec.negative_zero") (i64.const 0x8000000000000000)) @@ -165,6 +194,10 @@ (assert_return (invoke "f64_dec.max_finite") (i64.const 0x7fefffffffffffff)) (assert_return (invoke "f64_dec.trailing_dot") (i64.const 0x54b249ad2594c37d)) (assert_return (invoke "f64_dec.root_beer_float") (i64.const 0x3ff000001ff19e24)) +(assert_return (invoke "f64_dec.misc_int") (i64.const 0x40c81c8000000000)) +(assert_return (invoke "f64_dec.large_int") (i64.const 0x4415af1d78b58c40)) +(assert_return (invoke "f64_dec.min_int32") (i64.const 0xc1e0000000000000)) +(assert_return (invoke "f64_dec.min_int64") (i64.const 0xc3e0000000000000)) (assert_return (invoke "f32-dec-sep1") (f32.const 1000000)) (assert_return (invoke "f32-dec-sep2") (f32.const 1000)) @@ -352,6 +385,10 @@ (module quote "(global f32 (f32.const 0x1.0p_+1))") "unknown operator" ) +(assert_malformed + (module quote "(global f32 (f32.const nan:0x80_0000))") + "constant out of range" +) (assert_malformed (module quote "(global f64 (f64.const _100))") @@ -505,3 +542,7 @@ (module quote "(global f64 (f64.const 0x1.0p_+1))") "unknown operator" ) +(assert_malformed + (module quote "(global f64 (f64.const nan:0x10_0000_0000_0000))") + "constant out of range" +) diff --git a/tests/float_misc.wast b/tests/float_misc.wast index 3d83281d..a2153cfa 100644 --- a/tests/float_misc.wast +++ b/tests/float_misc.wast @@ -587,6 +587,50 @@ (assert_return (invoke "f64.sqrt" (f64.const 0x1.ffffffffffffep-1)) (f64.const 0x1.fffffffffffffp-1)) (assert_return (invoke "f64.sqrt" (f64.const 0x1.ffffffffffffdp-1)) (f64.const 0x1.ffffffffffffep-1)) +;; Test the values of sqrt around ¼, where `sqrt(x) - x` is greatest. +(assert_return (invoke "f32.sqrt" (f32.const 0x1.fffffep-3)) (f32.const 0x1.fffffep-2)) +(assert_return (invoke "f32.sqrt" (f32.const 0x1p-2)) (f32.const 0x1p-1)) +(assert_return (invoke "f32.sqrt" (f32.const 0x1.000002p-2)) (f32.const 0x1p-1)) +(assert_return (invoke "f32.sqrt" (f32.const 0x1.000004p-2)) (f32.const 0x1.000002p-1)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.fffffffffffffp-3)) (f64.const 0x1.fffffffffffffp-2)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1p-2)) (f64.const 0x1p-1)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.0000000000001p-2)) (f64.const 0x1p-1)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.0000000000002p-2)) (f64.const 0x1.0000000000001p-1)) + +;; Test some values that in some systems differ between CPU and DSP. +;; https://e2e.ti.com/support/processors-group/processors/f/processors-forum/30725/sqrt-function-gives-slightly-different-results---may-be-rounding-problem +(assert_return (invoke "f32.sqrt" (f32.const 0x1.fb41d4p+37)) (f32.const 0x1.fd9f8p+18)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.fb41d442eeb1bp+37)) (f64.const 0x1.fd9f808a0b68dp+18)) + +;; Test some values that in some systems differ between CPU and GPU. +;; https://forums.developer.nvidia.com/t/sqrt-precision/18597 +(assert_return (invoke "f32.sqrt" (f32.const 0x1.3c61b2p+33)) (f32.const 0x1.927ap+16)) +(assert_return (invoke "f32.sqrt" (f32.const 0x1.56bd4ep+51)) (f32.const 0x1.a2e80cp+25)) +(assert_return (invoke "f32.sqrt" (f32.const 0x1.65f02cp+44)) (f32.const 0x1.2eb544p+22)) +(assert_return (invoke "f32.sqrt" (f32.const 0x1.26580cp+30)) (f32.const 0x1.1280d6p+15)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.3c61b112p+33)) (f64.const 0x1.927ap+16)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.56bd4e65c8548p+51)) (f64.const 0x1.a2e80dp+25)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.65f02cc93a1p+44)) (f64.const 0x1.2eb544p+22)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.26580b4cp+30)) (f64.const 0x1.1280d62b818cfp+15)) + +;; Test some values that in some systems differ between CPU and GPU. +;; https://github.com/pytorch/pytorch/issues/31250 +(assert_return (invoke "f32.sqrt" (f32.const 0x1.0817fcp-1)) (f32.const 0x1.6fb79ep-1)) +(assert_return (invoke "f32.sqrt" (f32.const 0x1.017b98p-1)) (f32.const 0x1.6b15eep-1)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.0817fcp-1)) (f64.const 0x1.6fb79d0dfaffap-1)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.017b98p-1)) (f64.const 0x1.6b15ed0071b95p-1)) + +;; Test that sqrt is not a "good enough" approximation. +;; https://sicp.sourceacademy.org/chapters/1.1.7.html +(assert_return (invoke "f32.sqrt" (f32.const 0x1.2p+3)) (f32.const 0x1.8p+1)) +(assert_return (invoke "f32.sqrt" (f32.const 0x1.12p+7)) (f32.const 0x1.768ce6p+3)) +(assert_return (invoke "f32.sqrt" (f32.const 0x1.c615dep+0)) (f32.const 0x1.54f2dp+0)) +(assert_return (invoke "f32.sqrt" (f32.const 0x1.f4p+9)) (f32.const 0x1.f9f6e4p+4)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.2p+3)) (f64.const 0x1.8p+1)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.12p+7)) (f64.const 0x1.768ce6d3c11ep+3)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.c615df07a57d3p+0)) (f64.const 0x1.54f2d015acf09p+0)) +(assert_return (invoke "f64.sqrt" (f64.const 0x1.f4p+9)) (f64.const 0x1.f9f6e4990f227p+4)) + ;; Test that the bitwise floating point operators are bitwise on NaN. (assert_return (invoke "f32.abs" (f32.const nan:0x0f1e2)) (f32.const nan:0x0f1e2)) diff --git a/tests/func.wast b/tests/func.wast index a6b05f53..ac0f6d55 100644 --- a/tests/func.wast +++ b/tests/func.wast @@ -28,7 +28,14 @@ (func (param i32) (param f64)) (func (param i32 f32) (param $x i64) (param) (param i32 f64)) + (func (result)) + ;; W2C2: No support for functions with multiple return values + ;; (func (result) (result)) (func (result i32) (unreachable)) + ;; W2C2: No support for functions with multiple return values + ;; (func (result i32 f64 f32) (unreachable)) + ;; (func (result i32) (result f64) (unreachable)) + ;; (func (result i32 f32) (result i64) (result) (result i32 f64) (unreachable)) (type $sig-1 (func)) (type $sig-2 (func (result i32))) @@ -48,12 +55,13 @@ (func (type $sig)) (func (type $forward)) ;; forward reference - (func $complex - (param i32 f32) (param $x i64) (param) (param i32) - (result) (result i32) (result) - (local f32) (local $y i32) (local i64 i32) (local) (local f64 i32) - (unreachable) (unreachable) - ) + ;; W2C2: No support for functions with multiple return values + ;; (func $complex + ;; (param i32 f32) (param $x i64) (param) (param i32) + ;; (result) (result i32) (result) (result i64 i32) + ;; (local f32) (local $y i32) (local i64 i32) (local) (local f64 i32) + ;; (unreachable) (unreachable) + ;; ) (func $complex-sig (type $sig) (local f32) (local $y i32) (local i64 i32) (local) (local f64 i32) @@ -104,7 +112,7 @@ (local.get 4) ) - ;; Typing of result + ;; Typing of results (func (export "empty")) (func (export "value-void") (call $dummy)) @@ -112,28 +120,59 @@ (func (export "value-i64") (result i64) (i64.const 7777)) (func (export "value-f32") (result f32) (f32.const 77.7)) (func (export "value-f64") (result f64) (f64.const 77.77)) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "value-i32-f64") (result i32 f64) (i32.const 77) (f64.const 7)) + ;; (func (export "value-i32-i32-i32") (result i32 i32 i32) + ;; (i32.const 1) (i32.const 2) (i32.const 3) + ;; ) (func (export "value-block-void") (block (call $dummy) (call $dummy))) (func (export "value-block-i32") (result i32) (block (result i32) (call $dummy) (i32.const 77)) ) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "value-block-i32-i64") (result i32 i64) + ;; (block (result i32 i64) (call $dummy) (i32.const 1) (i64.const 2)) + ;; ) (func (export "return-empty") (return)) (func (export "return-i32") (result i32) (return (i32.const 78))) (func (export "return-i64") (result i64) (return (i64.const 7878))) (func (export "return-f32") (result f32) (return (f32.const 78.7))) (func (export "return-f64") (result f64) (return (f64.const 78.78))) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "return-i32-f64") (result i32 f64) + ;; (return (i32.const 78) (f64.const 78.78)) + ;; ) + ;; (func (export "return-i32-i32-i32") (result i32 i32 i32) + ;; (return (i32.const 1) (i32.const 2) (i32.const 3)) + ;; ) (func (export "return-block-i32") (result i32) (return (block (result i32) (call $dummy) (i32.const 77))) ) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "return-block-i32-i64") (result i32 i64) + ;; (return (block (result i32 i64) (call $dummy) (i32.const 1) (i64.const 2))) + ;; ) (func (export "break-empty") (br 0)) (func (export "break-i32") (result i32) (br 0 (i32.const 79))) (func (export "break-i64") (result i64) (br 0 (i64.const 7979))) (func (export "break-f32") (result f32) (br 0 (f32.const 79.9))) (func (export "break-f64") (result f64) (br 0 (f64.const 79.79))) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "break-i32-f64") (result i32 f64) + ;; (br 0 (i32.const 79) (f64.const 79.79)) + ;; ) + ;; (func (export "break-i32-i32-i32") (result i32 i32 i32) + ;; (br 0 (i32.const 1) (i32.const 2) (i32.const 3)) + ;; ) (func (export "break-block-i32") (result i32) (br 0 (block (result i32) (call $dummy) (i32.const 77))) ) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "break-block-i32-i64") (result i32 i64) + ;; (br 0 (block (result i32 i64) (call $dummy) (i32.const 1) (i64.const 2))) + ;; ) (func (export "break-br_if-empty") (param i32) (br_if 0 (local.get 0)) @@ -141,6 +180,11 @@ (func (export "break-br_if-num") (param i32) (result i32) (drop (br_if 0 (i32.const 50) (local.get 0))) (i32.const 51) ) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "break-br_if-num-num") (param i32) (result i32 i64) + ;; (drop (drop (br_if 0 (i32.const 50) (i64.const 51) (local.get 0)))) + ;; (i32.const 51) (i64.const 52) + ;; ) (func (export "break-br_table-empty") (param i32) (br_table 0 0 0 (local.get 0)) @@ -148,6 +192,11 @@ (func (export "break-br_table-num") (param i32) (result i32) (br_table 0 0 (i32.const 50) (local.get 0)) (i32.const 51) ) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "break-br_table-num-num") (param i32) (result i32 i64) + ;; (br_table 0 0 (i32.const 50) (i64.const 51) (local.get 0)) + ;; (i32.const 51) (i64.const 52) + ;; ) (func (export "break-br_table-nested-empty") (param i32) (block (br_table 0 1 0 (local.get 0))) ) @@ -159,6 +208,39 @@ (i32.const 2) ) ) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "break-br_table-nested-num-num") (param i32) (result i32 i32) + ;; (i32.add + ;; (block (result i32 i32) + ;; (br_table 0 1 0 (i32.const 50) (i32.const 51) (local.get 0)) + ;; (i32.const 51) (i32.const -3) + ;; ) + ;; ) + ;; (i32.const 52) + ;; ) + ;; + ;; ;; Large signatures + ;; + ;; (func (export "large-sig") + ;; (param i32 i64 f32 f32 i32 f64 f32 i32 i32 i32 f32 f64 f64 f64 i32 i32 f32) + ;; (result f64 f32 i32 i32 i32 i64 f32 i32 i32 f32 f64 f64 i32 f32 i32 f64) + ;; (local.get 5) + ;; (local.get 2) + ;; (local.get 0) + ;; (local.get 8) + ;; (local.get 7) + ;; (local.get 1) + ;; (local.get 3) + ;; (local.get 9) + ;; (local.get 4) + ;; (local.get 6) + ;; (local.get 13) + ;; (local.get 11) + ;; (local.get 15) + ;; (local.get 16) + ;; (local.get 14) + ;; (local.get 12) + ;; ) ;; Default initialization of locals @@ -231,27 +313,55 @@ (assert_return (invoke "value-i64") (i64.const 7777)) (assert_return (invoke "value-f32") (f32.const 77.7)) (assert_return (invoke "value-f64") (f64.const 77.77)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "value-i32-f64") (i32.const 77) (f64.const 7)) +;; (assert_return (invoke "value-i32-i32-i32") +;; (i32.const 1) (i32.const 2) (i32.const 3) +;; ) (assert_return (invoke "value-block-void")) (assert_return (invoke "value-block-i32") (i32.const 77)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "value-block-i32-i64") (i32.const 1) (i64.const 2)) (assert_return (invoke "return-empty")) (assert_return (invoke "return-i32") (i32.const 78)) (assert_return (invoke "return-i64") (i64.const 7878)) (assert_return (invoke "return-f32") (f32.const 78.7)) (assert_return (invoke "return-f64") (f64.const 78.78)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "return-i32-f64") (i32.const 78) (f64.const 78.78)) +;; (assert_return (invoke "return-i32-i32-i32") +;; (i32.const 1) (i32.const 2) (i32.const 3) +;; ) (assert_return (invoke "return-block-i32") (i32.const 77)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "return-block-i32-i64") (i32.const 1) (i64.const 2)) (assert_return (invoke "break-empty")) (assert_return (invoke "break-i32") (i32.const 79)) (assert_return (invoke "break-i64") (i64.const 7979)) (assert_return (invoke "break-f32") (f32.const 79.9)) (assert_return (invoke "break-f64") (f64.const 79.79)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "break-i32-f64") (i32.const 79) (f64.const 79.79)) +;; (assert_return (invoke "break-i32-i32-i32") +;; (i32.const 1) (i32.const 2) (i32.const 3) +;; ) (assert_return (invoke "break-block-i32") (i32.const 77)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "break-block-i32-i64") (i32.const 1) (i64.const 2)) (assert_return (invoke "break-br_if-empty" (i32.const 0))) (assert_return (invoke "break-br_if-empty" (i32.const 2))) (assert_return (invoke "break-br_if-num" (i32.const 0)) (i32.const 51)) (assert_return (invoke "break-br_if-num" (i32.const 1)) (i32.const 50)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "break-br_if-num-num" (i32.const 0)) +;; (i32.const 51) (i64.const 52) +;; ) +;; (assert_return (invoke "break-br_if-num-num" (i32.const 1)) +;; (i32.const 50) (i64.const 51) +;; ) (assert_return (invoke "break-br_table-empty" (i32.const 0))) (assert_return (invoke "break-br_table-empty" (i32.const 1))) @@ -261,6 +371,19 @@ (assert_return (invoke "break-br_table-num" (i32.const 1)) (i32.const 50)) (assert_return (invoke "break-br_table-num" (i32.const 10)) (i32.const 50)) (assert_return (invoke "break-br_table-num" (i32.const -100)) (i32.const 50)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "break-br_table-num-num" (i32.const 0)) +;; (i32.const 50) (i64.const 51) +;; ) +;; (assert_return (invoke "break-br_table-num-num" (i32.const 1)) +;; (i32.const 50) (i64.const 51) +;; ) +;; (assert_return (invoke "break-br_table-num-num" (i32.const 10)) +;; (i32.const 50) (i64.const 51) +;; ) +;; (assert_return (invoke "break-br_table-num-num" (i32.const -100)) +;; (i32.const 50) (i64.const 51) +;; ) (assert_return (invoke "break-br_table-nested-empty" (i32.const 0))) (assert_return (invoke "break-br_table-nested-empty" (i32.const 1))) (assert_return (invoke "break-br_table-nested-empty" (i32.const 3))) @@ -277,6 +400,37 @@ (assert_return (invoke "break-br_table-nested-num" (i32.const -3)) (i32.const 52) ) +;; W2C2: No support for functions with multiple return values +;; (assert_return +;; (invoke "break-br_table-nested-num-num" (i32.const 0)) +;; (i32.const 101) (i32.const 52) +;; ) +;; (assert_return +;; (invoke "break-br_table-nested-num-num" (i32.const 1)) +;; (i32.const 50) (i32.const 51) +;; ) +;; (assert_return +;; (invoke "break-br_table-nested-num-num" (i32.const 2)) +;; (i32.const 101) (i32.const 52) +;; ) +;; (assert_return +;; (invoke "break-br_table-nested-num-num" (i32.const -3)) +;; (i32.const 101) (i32.const 52) +;; ) +;; +;; (assert_return +;; (invoke "large-sig" +;; (i32.const 0) (i64.const 1) (f32.const 2) (f32.const 3) +;; (i32.const 4) (f64.const 5) (f32.const 6) (i32.const 7) +;; (i32.const 8) (i32.const 9) (f32.const 10) (f64.const 11) +;; (f64.const 12) (f64.const 13) (i32.const 14) (i32.const 15) +;; (f32.const 16) +;; ) +;; (f64.const 5) (f32.const 2) (i32.const 0) (i32.const 8) +;; (i32.const 7) (i64.const 1) (f32.const 3) (i32.const 9) +;; (i32.const 4) (f32.const 6) (f64.const 13) (f64.const 11) +;; (i32.const 15) (f32.const 16) (i32.const 14) (f64.const 12) +;; ) (assert_return (invoke "init-local-i32") (i32.const 0)) (assert_return (invoke "init-local-i64") (i64.const 0)) @@ -311,6 +465,46 @@ "unknown type" ) +(assert_malformed + (module quote + "(func $f (result f64) (f64.const 0))" ;; adds implicit type definition + "(func $g (param i32))" ;; reuses explicit type definition + "(func $h (result f64) (f64.const 1))" ;; reuses implicit type definition + "(type $t (func (param i32)))" + + "(func (type 2) (param i32))" ;; does not exist + ) + "unknown type" +) + +(module + (type $proc (func (result i32))) + (type $sig (func (param i32) (result i32))) + + (func (export "f") (type $sig) + (local $var i32) + (local.get $var) + ) + + (func $g (type $sig) + (local $var i32) + (local.get $var) + ) + (func (export "g") (type $sig) + (call $g (local.get 0)) + ) + + (func (export "p") (type $proc) + (local $var i32) + (local.set 0 (i32.const 42)) + (local.get $var) + ) +) + +(assert_return (invoke "f" (i32.const 42)) (i32.const 0)) +(assert_return (invoke "g" (i32.const 42)) (i32.const 0)) +(assert_return (invoke "p") (i32.const 42)) + (module (type $sig (func)) @@ -489,19 +683,6 @@ ;; Invalid typing of result -(assert_invalid - (module (func $type-multiple-result (result i32 i32) (unreachable))) - "invalid result arity" -) -(assert_invalid - (module - (type (func (result i32 i32))) - (func $type-multiple-result (type 0) (unreachable)) - ) - "invalid result arity" -) - - (assert_invalid (module (func $type-empty-i32 (result i32))) "type mismatch" @@ -518,6 +699,10 @@ (module (func $type-empty-f64 (result f64))) "type mismatch" ) +(assert_invalid + (module (func $type-empty-f64-i32 (result f64 i32))) + "type mismatch" +) (assert_invalid (module (func $type-value-void-vs-num (result i32) @@ -525,18 +710,42 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-value-void-vs-nums (result i32 i32) + (nop) + )) + "type mismatch" +) (assert_invalid (module (func $type-value-num-vs-void (i32.const 0) )) "type mismatch" ) +(assert_invalid + (module (func $type-value-nums-vs-void + (i32.const 0) (i64.const 0) + )) + "type mismatch" +) (assert_invalid (module (func $type-value-num-vs-num (result i32) (f32.const 0) )) "type mismatch" ) +(assert_invalid + (module (func $type-value-num-vs-nums (result f32 f32) + (f32.const 0) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-value-nums-vs-num (result f32) + (f32.const 0) (f32.const 0) + )) + "type mismatch" +) (assert_invalid (module (func $type-return-last-empty-vs-num (result i32) @@ -544,18 +753,36 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-return-last-empty-vs-nums (result i32 i32) + (return) + )) + "type mismatch" +) (assert_invalid (module (func $type-return-last-void-vs-num (result i32) (return (nop)) )) "type mismatch" ) +(assert_invalid + (module (func $type-return-last-void-vs-nums (result i32 i64) + (return (nop)) + )) + "type mismatch" +) (assert_invalid (module (func $type-return-last-num-vs-num (result i32) (return (i64.const 0)) )) "type mismatch" ) +(assert_invalid + (module (func $type-return-last-num-vs-nums (result i64 i64) + (return (i64.const 0)) + )) + "type mismatch" +) (assert_invalid (module (func $type-return-empty-vs-num (result i32) @@ -563,24 +790,54 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-return-empty-vs-nums (result i32 i32) + (return) (i32.const 1) (i32.const 2) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-return-partial-vs-nums (result i32 i32) + (i32.const 1) (return) (i32.const 2) + )) + "type mismatch" +) (assert_invalid (module (func $type-return-void-vs-num (result i32) (return (nop)) (i32.const 1) )) "type mismatch" ) +(assert_invalid + (module (func $type-return-void-vs-nums (result i32 i32) + (return (nop)) (i32.const 1) + )) + "type mismatch" +) (assert_invalid (module (func $type-return-num-vs-num (result i32) (return (i64.const 1)) (i32.const 1) )) "type mismatch" ) +(assert_invalid + (module (func $type-return-num-vs-nums (result i32 i32) + (return (i64.const 1)) (i32.const 1) (i32.const 2) + )) + "type mismatch" +) (assert_invalid (module (func $type-return-first-num-vs-num (result i32) (return (i64.const 1)) (return (i32.const 1)) )) "type mismatch" ) +(assert_invalid + (module (func $type-return-first-num-vs-nums (result i32 i32) + (return (i32.const 1)) (return (i32.const 1) (i32.const 2)) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-last-void-vs-num (result i32) @@ -588,24 +845,48 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-last-void-vs-nums (result i32 i32) + (br 0) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-last-num-vs-num (result i32) (br 0 (f32.const 0)) )) "type mismatch" ) +(assert_invalid + (module (func $type-break-last-num-vs-nums (result i32 i32) + (br 0 (i32.const 0)) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-void-vs-num (result i32) (br 0) (i32.const 1) )) "type mismatch" ) +(assert_invalid + (module (func $type-break-void-vs-nums (result i32 i32) + (br 0) (i32.const 1) (i32.const 2) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-num-vs-num (result i32) (br 0 (i64.const 1)) (i32.const 1) )) "type mismatch" ) +(assert_invalid + (module (func $type-break-num-vs-nums (result i32 i32) + (br 0 (i32.const 1)) (i32.const 1) (i32.const 2) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-first-num-vs-num (result i32) (br 0 (i64.const 1)) (br 0 (i32.const 1)) @@ -619,18 +900,36 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-break-nested-empty-vs-nums (result i32 i32) + (block (br 1)) (br 0 (i32.const 1) (i32.const 2)) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-nested-void-vs-num (result i32) (block (br 1 (nop))) (br 0 (i32.const 1)) )) "type mismatch" ) +(assert_invalid + (module (func $type-break-nested-void-vs-nums (result i32 i32) + (block (br 1 (nop))) (br 0 (i32.const 1) (i32.const 2)) + )) + "type mismatch" +) (assert_invalid (module (func $type-break-nested-num-vs-num (result i32) (block (br 1 (i64.const 1))) (br 0 (i32.const 1)) )) "type mismatch" ) +(assert_invalid + (module (func $type-break-nested-num-vs-nums (result i32 i32) + (block (result i32) (br 1 (i32.const 1))) (br 0 (i32.const 1) (i32.const 2)) + )) + "type mismatch" +) ;; Syntax errors @@ -659,3 +958,25 @@ (module quote "(func (result i32) (param i32) (local.get 0))") "unexpected token" ) + +;; Duplicate name errors + +(assert_malformed (module quote + "(func $foo)" + "(func $foo)") + "duplicate func") +(assert_malformed (module quote + "(import \"\" \"\" (func $foo))" + "(func $foo)") + "duplicate func") +(assert_malformed (module quote + "(import \"\" \"\" (func $foo))" + "(import \"\" \"\" (func $foo))") + "duplicate func") + +(assert_malformed (module quote "(func (param $foo i32) (param $foo i32))") + "duplicate local") +(assert_malformed (module quote "(func (param $foo i32) (local $foo i32))") + "duplicate local") +(assert_malformed (module quote "(func (local $foo i32) (local $foo i32))") + "duplicate local") diff --git a/tests/gen.py b/tests/gen.py index f66052b0..b9864ed6 100644 --- a/tests/gen.py +++ b/tests/gen.py @@ -195,7 +195,13 @@ def gen(paths): wast2json_version = subprocess.check_output(['wast2json', '--version']).decode('utf-8').strip() has_new_wabt = compare_versions(wast2json_version, "1.0.25") > 0 - memory_files = {'memory_copy.wast', 'memory_fill.wast', 'bulk.wast'} + memory_files = { + 'memory_copy.wast', + 'memory_fill.wast', + 'memory_init.wast', + 'bulk.wast', + 'binary-leb128.wast' + } for wast_path in paths: print(wast_path) diff --git a/tests/gen/align.108.wasm b/tests/gen/align.108.wasm new file mode 100644 index 00000000..a9f89230 Binary files /dev/null and b/tests/gen/align.108.wasm differ diff --git a/tests/gen/align.109.wasm b/tests/gen/align.109.wasm new file mode 100644 index 00000000..b1b383a0 Binary files /dev/null and b/tests/gen/align.109.wasm differ diff --git a/tests/gen/align.110.wasm b/tests/gen/align.110.wasm new file mode 100644 index 00000000..02b2b337 Binary files /dev/null and b/tests/gen/align.110.wasm differ diff --git a/tests/gen/align.111.wasm b/tests/gen/align.111.wasm new file mode 100644 index 00000000..08891534 Binary files /dev/null and b/tests/gen/align.111.wasm differ diff --git a/tests/gen/align.112.wasm b/tests/gen/align.112.wasm new file mode 100644 index 00000000..2464ab1b Binary files /dev/null and b/tests/gen/align.112.wasm differ diff --git a/tests/gen/align.113.wasm b/tests/gen/align.113.wasm new file mode 100644 index 00000000..3b417eca Binary files /dev/null and b/tests/gen/align.113.wasm differ diff --git a/tests/gen/align.json b/tests/gen/align.json index fa54c9f3..4f813321 100644 --- a/tests/gen/align.json +++ b/tests/gen/align.json @@ -155,4 +155,10 @@ {"type": "assert_return", "line": 850, "action": {"type": "invoke", "field": "i64_align_switch", "args": [{"type": "i32", "value": "6"}, {"type": "i32", "value": "8"}]}, "expected": [{"type": "i64", "value": "10"}]}, {"type": "module", "line": 854, "filename": "align.107.wasm"}, {"type": "assert_trap", "line": 864, "action": {"type": "invoke", "field": "store", "args": [{"type": "i32", "value": "65532"}, {"type": "i64", "value": "18446744073709551615"}]}, "text": "out of bounds memory access", "expected": []}, - {"type": "assert_return", "line": 866, "action": {"type": "invoke", "field": "load", "args": [{"type": "i32", "value": "65532"}]}, "expected": [{"type": "i32", "value": "0"}]}]} + {"type": "assert_return", "line": 866, "action": {"type": "invoke", "field": "load", "args": [{"type": "i32", "value": "65532"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_invalid", "line": 873, "filename": "align.108.wasm", "text": "alignment must not be larger than natural", "module_type": "binary"}, + {"type": "assert_malformed", "line": 892, "filename": "align.109.wasm", "text": "malformed memop flags", "module_type": "binary"}, + {"type": "assert_malformed", "line": 911, "filename": "align.110.wasm", "text": "malformed memop flags", "module_type": "binary"}, + {"type": "assert_malformed", "line": 930, "filename": "align.111.wasm", "text": "malformed memop flags", "module_type": "binary"}, + {"type": "assert_malformed", "line": 949, "filename": "align.112.wasm", "text": "malformed memop flags", "module_type": "binary"}, + {"type": "assert_malformed", "line": 968, "filename": "align.113.wasm", "text": "malformed memop flags", "module_type": "binary"}]} diff --git a/tests/gen/assert_binary-leb128.0.c b/tests/gen/assert_binary-leb128.0.c new file mode 100644 index 00000000..d6f0490f --- /dev/null +++ b/tests/gen/assert_binary-leb128.0.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.0.h" + +void test() { + binaryleb1280Instance instance; + binaryleb1280Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.0.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.1.c b/tests/gen/assert_binary-leb128.1.c new file mode 100644 index 00000000..5f7ed95c --- /dev/null +++ b/tests/gen/assert_binary-leb128.1.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.1.h" + +void test() { + binaryleb1281Instance instance; + binaryleb1281Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.1.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.10.c b/tests/gen/assert_binary-leb128.10.c new file mode 100644 index 00000000..4ceb4c90 --- /dev/null +++ b/tests/gen/assert_binary-leb128.10.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.10.h" + +void test() { + binaryleb12810Instance instance; + binaryleb12810Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.10.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.11.c b/tests/gen/assert_binary-leb128.11.c new file mode 100644 index 00000000..45a44218 --- /dev/null +++ b/tests/gen/assert_binary-leb128.11.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.11.h" + +void test() { + binaryleb12811Instance instance; + binaryleb12811Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.11.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.12.c b/tests/gen/assert_binary-leb128.12.c new file mode 100644 index 00000000..906f7307 --- /dev/null +++ b/tests/gen/assert_binary-leb128.12.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.12.h" + +void test() { + binaryleb12812Instance instance; + binaryleb12812Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.12.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.13.c b/tests/gen/assert_binary-leb128.13.c new file mode 100644 index 00000000..17ffb28a --- /dev/null +++ b/tests/gen/assert_binary-leb128.13.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.13.h" + +void test() { + binaryleb12813Instance instance; + binaryleb12813Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.13.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.14.c b/tests/gen/assert_binary-leb128.14.c new file mode 100644 index 00000000..7e804e82 --- /dev/null +++ b/tests/gen/assert_binary-leb128.14.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.14.h" + +void test() { + binaryleb12814Instance instance; + binaryleb12814Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.14.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.15.c b/tests/gen/assert_binary-leb128.15.c new file mode 100644 index 00000000..408ef43a --- /dev/null +++ b/tests/gen/assert_binary-leb128.15.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.15.h" + +void test() { + binaryleb12815Instance instance; + binaryleb12815Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.15.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.16.c b/tests/gen/assert_binary-leb128.16.c new file mode 100644 index 00000000..16b26a9a --- /dev/null +++ b/tests/gen/assert_binary-leb128.16.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.16.h" + +void test() { + binaryleb12816Instance instance; + binaryleb12816Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.16.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.17.c b/tests/gen/assert_binary-leb128.17.c new file mode 100644 index 00000000..4e616fb6 --- /dev/null +++ b/tests/gen/assert_binary-leb128.17.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.17.h" + +void test() { + binaryleb12817Instance instance; + binaryleb12817Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.17.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.18.c b/tests/gen/assert_binary-leb128.18.c new file mode 100644 index 00000000..35aa4da9 --- /dev/null +++ b/tests/gen/assert_binary-leb128.18.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.18.h" + +void test() { + binaryleb12818Instance instance; + binaryleb12818Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.18.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.19.c b/tests/gen/assert_binary-leb128.19.c new file mode 100644 index 00000000..308ae218 --- /dev/null +++ b/tests/gen/assert_binary-leb128.19.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.19.h" + +void test() { + binaryleb12819Instance instance; + binaryleb12819Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.19.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.2.c b/tests/gen/assert_binary-leb128.2.c new file mode 100644 index 00000000..dfea0fb3 --- /dev/null +++ b/tests/gen/assert_binary-leb128.2.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.2.h" + +void test() { + binaryleb1282Instance instance; + binaryleb1282Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.2.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.20.c b/tests/gen/assert_binary-leb128.20.c new file mode 100644 index 00000000..04a4edec --- /dev/null +++ b/tests/gen/assert_binary-leb128.20.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.20.h" + +void test() { + binaryleb12820Instance instance; + binaryleb12820Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.20.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.21.c b/tests/gen/assert_binary-leb128.21.c new file mode 100644 index 00000000..c927d01e --- /dev/null +++ b/tests/gen/assert_binary-leb128.21.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.21.h" + +void test() { + binaryleb12821Instance instance; + binaryleb12821Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.21.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.22.c b/tests/gen/assert_binary-leb128.22.c new file mode 100644 index 00000000..abaabaf4 --- /dev/null +++ b/tests/gen/assert_binary-leb128.22.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.22.h" + +void test() { + binaryleb12822Instance instance; + binaryleb12822Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.22.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.23.c b/tests/gen/assert_binary-leb128.23.c new file mode 100644 index 00000000..0bb56858 --- /dev/null +++ b/tests/gen/assert_binary-leb128.23.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.23.h" + +void test() { + binaryleb12823Instance instance; + binaryleb12823Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.23.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.3.c b/tests/gen/assert_binary-leb128.3.c new file mode 100644 index 00000000..f27f7312 --- /dev/null +++ b/tests/gen/assert_binary-leb128.3.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.3.h" + +void test() { + binaryleb1283Instance instance; + binaryleb1283Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.3.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.4.c b/tests/gen/assert_binary-leb128.4.c new file mode 100644 index 00000000..a4c2954b --- /dev/null +++ b/tests/gen/assert_binary-leb128.4.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.4.h" + +void test() { + binaryleb1284Instance instance; + binaryleb1284Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.4.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.5.c b/tests/gen/assert_binary-leb128.5.c new file mode 100644 index 00000000..c135139a --- /dev/null +++ b/tests/gen/assert_binary-leb128.5.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.5.h" + +void test() { + binaryleb1285Instance instance; + binaryleb1285Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.5.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.6.c b/tests/gen/assert_binary-leb128.6.c new file mode 100644 index 00000000..7e884775 --- /dev/null +++ b/tests/gen/assert_binary-leb128.6.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.6.h" + +void test() { + binaryleb1286Instance instance; + binaryleb1286Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.6.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.7.c b/tests/gen/assert_binary-leb128.7.c new file mode 100644 index 00000000..68f30ec3 --- /dev/null +++ b/tests/gen/assert_binary-leb128.7.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.7.h" + +void test() { + binaryleb1287Instance instance; + binaryleb1287Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.7.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.8.c b/tests/gen/assert_binary-leb128.8.c new file mode 100644 index 00000000..c290d431 --- /dev/null +++ b/tests/gen/assert_binary-leb128.8.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.8.h" + +void test() { + binaryleb1288Instance instance; + binaryleb1288Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.8.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.80.c b/tests/gen/assert_binary-leb128.80.c new file mode 100644 index 00000000..06c2674e --- /dev/null +++ b/tests/gen/assert_binary-leb128.80.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.80.h" + +void test() { + binaryleb12880Instance instance; + binaryleb12880Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.80.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.82.c b/tests/gen/assert_binary-leb128.82.c new file mode 100644 index 00000000..5532baf7 --- /dev/null +++ b/tests/gen/assert_binary-leb128.82.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.82.h" + +void test() { + binaryleb12882Instance instance; + binaryleb12882Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.82.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.83.c b/tests/gen/assert_binary-leb128.83.c new file mode 100644 index 00000000..104208ec --- /dev/null +++ b/tests/gen/assert_binary-leb128.83.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.83.h" + +void test() { + binaryleb12883Instance instance; + binaryleb12883Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.83.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.84.c b/tests/gen/assert_binary-leb128.84.c new file mode 100644 index 00000000..a8ef8935 --- /dev/null +++ b/tests/gen/assert_binary-leb128.84.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.84.h" + +void test() { + binaryleb12884Instance instance; + binaryleb12884Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.84.wasm"); +} diff --git a/tests/gen/assert_binary-leb128.9.c b/tests/gen/assert_binary-leb128.9.c new file mode 100644 index 00000000..14a082c5 --- /dev/null +++ b/tests/gen/assert_binary-leb128.9.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary-leb128.9.h" + +void test() { + binaryleb1289Instance instance; + binaryleb1289Instantiate(&instance, resolveTestImports); + printStart("binary-leb128.9.wasm"); +} diff --git a/tests/gen/assert_binary.0.c b/tests/gen/assert_binary.0.c new file mode 100644 index 00000000..a170c809 --- /dev/null +++ b/tests/gen/assert_binary.0.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.0.h" + +void test() { + binary0Instance instance; + binary0Instantiate(&instance, resolveTestImports); + printStart("binary.0.wasm"); +} diff --git a/tests/gen/assert_binary.1.c b/tests/gen/assert_binary.1.c new file mode 100644 index 00000000..6454f688 --- /dev/null +++ b/tests/gen/assert_binary.1.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.1.h" + +void test() { + binary1Instance instance; + binary1Instantiate(&instance, resolveTestImports); + printStart("binary.1.wasm"); +} diff --git a/tests/gen/assert_binary.102.c b/tests/gen/assert_binary.102.c new file mode 100644 index 00000000..c48a6dcc --- /dev/null +++ b/tests/gen/assert_binary.102.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.102.h" + +void test() { + binary102Instance instance; + binary102Instantiate(&instance, resolveTestImports); + printStart("binary.102.wasm"); +} diff --git a/tests/gen/assert_binary.107.c b/tests/gen/assert_binary.107.c new file mode 100644 index 00000000..b8d56148 --- /dev/null +++ b/tests/gen/assert_binary.107.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.107.h" + +void test() { + binary107Instance instance; + binary107Instantiate(&instance, resolveTestImports); + printStart("binary.107.wasm"); +} diff --git a/tests/gen/assert_binary.109.c b/tests/gen/assert_binary.109.c new file mode 100644 index 00000000..bd99604b --- /dev/null +++ b/tests/gen/assert_binary.109.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.109.h" + +void test() { + binary109Instance instance; + binary109Instantiate(&instance, resolveTestImports); + printStart("binary.109.wasm"); +} diff --git a/tests/gen/assert_binary.2.c b/tests/gen/assert_binary.2.c new file mode 100644 index 00000000..5d7b9fff --- /dev/null +++ b/tests/gen/assert_binary.2.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.2.h" + +void test() { + binary2Instance instance; + binary2Instantiate(&instance, resolveTestImports); + printStart("binary.2.wasm"); +} diff --git a/tests/gen/assert_binary.3.c b/tests/gen/assert_binary.3.c new file mode 100644 index 00000000..6e52a123 --- /dev/null +++ b/tests/gen/assert_binary.3.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.3.h" + +void test() { + binary3Instance instance; + binary3Instantiate(&instance, resolveTestImports); + printStart("binary.3.wasm"); +} diff --git a/tests/gen/assert_binary.55.c b/tests/gen/assert_binary.55.c new file mode 100644 index 00000000..fb3edb99 --- /dev/null +++ b/tests/gen/assert_binary.55.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.55.h" + +void test() { + binary55Instance instance; + binary55Instantiate(&instance, resolveTestImports); + printStart("binary.55.wasm"); +} diff --git a/tests/gen/assert_binary.60.c b/tests/gen/assert_binary.60.c new file mode 100644 index 00000000..e35076ad --- /dev/null +++ b/tests/gen/assert_binary.60.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.60.h" + +void test() { + binary60Instance instance; + binary60Instantiate(&instance, resolveTestImports); + printStart("binary.60.wasm"); +} diff --git a/tests/gen/assert_binary.61.c b/tests/gen/assert_binary.61.c new file mode 100644 index 00000000..97d2b0f5 --- /dev/null +++ b/tests/gen/assert_binary.61.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.61.h" + +void test() { + binary61Instance instance; + binary61Instantiate(&instance, resolveTestImports); + printStart("binary.61.wasm"); +} diff --git a/tests/gen/assert_binary.69.c b/tests/gen/assert_binary.69.c new file mode 100644 index 00000000..5b3028d2 --- /dev/null +++ b/tests/gen/assert_binary.69.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.69.h" + +void test() { + binary69Instance instance; + binary69Instantiate(&instance, resolveTestImports); + printStart("binary.69.wasm"); +} diff --git a/tests/gen/assert_binary.72.c b/tests/gen/assert_binary.72.c new file mode 100644 index 00000000..5a1fbccc --- /dev/null +++ b/tests/gen/assert_binary.72.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.72.h" + +void test() { + binary72Instance instance; + binary72Instantiate(&instance, resolveTestImports); + printStart("binary.72.wasm"); +} diff --git a/tests/gen/assert_binary.81.c b/tests/gen/assert_binary.81.c new file mode 100644 index 00000000..c85e854a --- /dev/null +++ b/tests/gen/assert_binary.81.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.81.h" + +void test() { + binary81Instance instance; + binary81Instantiate(&instance, resolveTestImports); + printStart("binary.81.wasm"); +} diff --git a/tests/gen/assert_binary.86.c b/tests/gen/assert_binary.86.c new file mode 100644 index 00000000..95e0ef11 --- /dev/null +++ b/tests/gen/assert_binary.86.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.86.h" + +void test() { + binary86Instance instance; + binary86Instantiate(&instance, resolveTestImports); + printStart("binary.86.wasm"); +} diff --git a/tests/gen/assert_binary.92.c b/tests/gen/assert_binary.92.c new file mode 100644 index 00000000..44c3bf16 --- /dev/null +++ b/tests/gen/assert_binary.92.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.92.h" + +void test() { + binary92Instance instance; + binary92Instantiate(&instance, resolveTestImports); + printStart("binary.92.wasm"); +} diff --git a/tests/gen/assert_binary.95.c b/tests/gen/assert_binary.95.c new file mode 100644 index 00000000..d0d3a013 --- /dev/null +++ b/tests/gen/assert_binary.95.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.95.h" + +void test() { + binary95Instance instance; + binary95Instantiate(&instance, resolveTestImports); + printStart("binary.95.wasm"); +} diff --git a/tests/gen/assert_binary.98.c b/tests/gen/assert_binary.98.c new file mode 100644 index 00000000..8f9dc551 --- /dev/null +++ b/tests/gen/assert_binary.98.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_binary.98.h" + +void test() { + binary98Instance instance; + binary98Instantiate(&instance, resolveTestImports); + printStart("binary.98.wasm"); +} diff --git a/tests/gen/assert_block.0.c b/tests/gen/assert_block.0.c index 051b1979..04f3a075 100644 --- a/tests/gen/assert_block.0.c +++ b/tests/gen/assert_block.0.c @@ -14,11 +14,6 @@ void test() { 7u, "singular()" ); - assertEqualU32( - block0_multi(&instance), - 8u, - "multi()" - ); assertEqualU32( block0_nested(&instance), 9u, diff --git a/tests/gen/assert_call_indirect.34.c b/tests/gen/assert_call_indirect.34.c new file mode 100644 index 00000000..34b9ea83 --- /dev/null +++ b/tests/gen/assert_call_indirect.34.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_call_indirect.34.h" + +void test() { + callindirect34Instance instance; + callindirect34Instantiate(&instance, resolveTestImports); + printStart("call_indirect.34.wasm"); +} diff --git a/tests/gen/assert_conversions.0.c b/tests/gen/assert_conversions.0.c index f05e5cd5..73130b66 100644 --- a/tests/gen/assert_conversions.0.c +++ b/tests/gen/assert_conversions.0.c @@ -713,6 +713,36 @@ void test() { 9223372036854775808ull, "i64.trunc_f64_u(9.223372036854776e+18)" ); + assertEqualF32( + conversions0_f32X2Econvert_i32_s(&instance, 1u), + 1.0, + "f32.convert_i32_s(1u)" + ); + assertEqualF32( + conversions0_f32X2Econvert_i32_s(&instance, 4294967295u), + -1.0, + "f32.convert_i32_s(4294967295u)" + ); + assertEqualF32( + conversions0_f32X2Econvert_i32_s(&instance, 0u), + 0.0, + "f32.convert_i32_s(0u)" + ); + assertEqualF32( + conversions0_f32X2Econvert_i32_s(&instance, 2147483647u), + 2147483648.0, + "f32.convert_i32_s(2147483647u)" + ); + assertEqualF32( + conversions0_f32X2Econvert_i32_s(&instance, 2147483648u), + -2147483648.0, + "f32.convert_i32_s(2147483648u)" + ); + assertEqualF32( + conversions0_f32X2Econvert_i32_s(&instance, 1234567890u), + 1234567936.0, + "f32.convert_i32_s(1234567890u)" + ); assertEqualU32( conversions0_i32X2Etrunc_sat_f32_s(&instance, 0.0), 0u, @@ -1453,36 +1483,6 @@ void test() { 0ull, "i64.trunc_sat_f64_u(-INFINITY)" ); - assertEqualF32( - conversions0_f32X2Econvert_i32_s(&instance, 1u), - 1.0, - "f32.convert_i32_s(1u)" - ); - assertEqualF32( - conversions0_f32X2Econvert_i32_s(&instance, 4294967295u), - -1.0, - "f32.convert_i32_s(4294967295u)" - ); - assertEqualF32( - conversions0_f32X2Econvert_i32_s(&instance, 0u), - 0.0, - "f32.convert_i32_s(0u)" - ); - assertEqualF32( - conversions0_f32X2Econvert_i32_s(&instance, 2147483647u), - 2147483648.0, - "f32.convert_i32_s(2147483647u)" - ); - assertEqualF32( - conversions0_f32X2Econvert_i32_s(&instance, 2147483648u), - -2147483648.0, - "f32.convert_i32_s(2147483648u)" - ); - assertEqualF32( - conversions0_f32X2Econvert_i32_s(&instance, 1234567890u), - 1234567936.0, - "f32.convert_i32_s(1234567890u)" - ); assertEqualF32( conversions0_f32X2Econvert_i32_s(&instance, 16777217u), 16777216.0, diff --git a/tests/gen/assert_custom.0.c b/tests/gen/assert_custom.0.c new file mode 100644 index 00000000..c5f3584c --- /dev/null +++ b/tests/gen/assert_custom.0.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_custom.0.h" + +void test() { + custom0Instance instance; + custom0Instantiate(&instance, resolveTestImports); + printStart("custom.0.wasm"); +} diff --git a/tests/gen/assert_custom.1.c b/tests/gen/assert_custom.1.c new file mode 100644 index 00000000..bb62fef1 --- /dev/null +++ b/tests/gen/assert_custom.1.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_custom.1.h" + +void test() { + custom1Instance instance; + custom1Instantiate(&instance, resolveTestImports); + printStart("custom.1.wasm"); +} diff --git a/tests/gen/assert_custom.2.c b/tests/gen/assert_custom.2.c new file mode 100644 index 00000000..89c6ddbd --- /dev/null +++ b/tests/gen/assert_custom.2.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_custom.2.h" + +void test() { + custom2Instance instance; + custom2Instantiate(&instance, resolveTestImports); + printStart("custom.2.wasm"); +} diff --git a/tests/gen/assert_data.10.c b/tests/gen/assert_data.10.c deleted file mode 100644 index e49c55a1..00000000 --- a/tests/gen/assert_data.10.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_data.10.h" - -void test() { - data10Instance instance; - data10Instantiate(&instance, resolveTestImports); - printStart("data.10.wasm"); -} diff --git a/tests/gen/assert_data.25.c b/tests/gen/assert_data.25.c new file mode 100644 index 00000000..01a242e5 --- /dev/null +++ b/tests/gen/assert_data.25.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_data.25.h" + +void test() { + data25Instance instance; + data25Instantiate(&instance, resolveTestImports); + printStart("data.25.wasm"); +} diff --git a/tests/gen/assert_data.26.c b/tests/gen/assert_data.26.c new file mode 100644 index 00000000..9025489b --- /dev/null +++ b/tests/gen/assert_data.26.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_data.26.h" + +void test() { + data26Instance instance; + data26Instantiate(&instance, resolveTestImports); + printStart("data.26.wasm"); +} diff --git a/tests/gen/assert_data.9.c b/tests/gen/assert_data.9.c deleted file mode 100644 index 4a22d751..00000000 --- a/tests/gen/assert_data.9.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_data.9.h" - -void test() { - data9Instance instance; - data9Instantiate(&instance, resolveTestImports); - printStart("data.9.wasm"); -} diff --git a/tests/gen/assert_elem.18.c b/tests/gen/assert_elem.18.c new file mode 100644 index 00000000..1ccb9e1a --- /dev/null +++ b/tests/gen/assert_elem.18.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_elem.18.h" + +void test() { + elem18Instance instance; + elem18Instantiate(&instance, resolveTestImports); + printStart("elem.18.wasm"); +} diff --git a/tests/gen/assert_elem.43.c b/tests/gen/assert_elem.43.c deleted file mode 100644 index f5dee906..00000000 --- a/tests/gen/assert_elem.43.c +++ /dev/null @@ -1,16 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_elem.43.h" - -void test() { - elem43Instance instance; - elem43Instantiate(&instance, resolveTestImports); - printStart("elem.43.wasm"); - assertEqualU32( - elem43_callX2Doverwritten(&instance), - 66u, - "call-overwritten()" - ); -} diff --git a/tests/gen/assert_elem.44.c b/tests/gen/assert_elem.44.c deleted file mode 100644 index 634ea797..00000000 --- a/tests/gen/assert_elem.44.c +++ /dev/null @@ -1,16 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_elem.44.h" - -void test() { - elem44Instance instance; - elem44Instantiate(&instance, resolveTestImports); - printStart("elem.44.wasm"); - assertEqualU32( - elem44_callX2DoverwrittenX2Delement(&instance), - 66u, - "call-overwritten-element()" - ); -} diff --git a/tests/gen/assert_elem.47.c b/tests/gen/assert_elem.47.c new file mode 100644 index 00000000..b293b33e --- /dev/null +++ b/tests/gen/assert_elem.47.c @@ -0,0 +1,16 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_elem.47.h" + +void test() { + elem47Instance instance; + elem47Instantiate(&instance, resolveTestImports); + printStart("elem.47.wasm"); + assertEqualU32( + elem47_callX2Doverwritten(&instance), + 66u, + "call-overwritten()" + ); +} diff --git a/tests/gen/assert_elem.48.c b/tests/gen/assert_elem.48.c new file mode 100644 index 00000000..533c45c7 --- /dev/null +++ b/tests/gen/assert_elem.48.c @@ -0,0 +1,16 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_elem.48.h" + +void test() { + elem48Instance instance; + elem48Instantiate(&instance, resolveTestImports); + printStart("elem.48.wasm"); + assertEqualU32( + elem48_callX2DoverwrittenX2Delement(&instance), + 66u, + "call-overwritten-element()" + ); +} diff --git a/tests/gen/assert_elem.7.c b/tests/gen/assert_elem.7.c index 8fcfb706..aa56f739 100644 --- a/tests/gen/assert_elem.7.c +++ b/tests/gen/assert_elem.7.c @@ -8,14 +8,4 @@ void test() { elem7Instance instance; elem7Instantiate(&instance, resolveTestImports); printStart("elem.7.wasm"); - assertEqualU32( - elem7_callX2D7(&instance), - 65u, - "call-7()" - ); - assertEqualU32( - elem7_callX2D9(&instance), - 66u, - "call-9()" - ); } diff --git a/tests/gen/assert_elem.8.c b/tests/gen/assert_elem.8.c index 51fdd0fb..a7b00503 100644 --- a/tests/gen/assert_elem.8.c +++ b/tests/gen/assert_elem.8.c @@ -8,4 +8,14 @@ void test() { elem8Instance instance; elem8Instantiate(&instance, resolveTestImports); printStart("elem.8.wasm"); + assertEqualU32( + elem8_callX2D7(&instance), + 65u, + "call-7()" + ); + assertEqualU32( + elem8_callX2D9(&instance), + 66u, + "call-9()" + ); } diff --git a/tests/gen/assert_exports.11.c b/tests/gen/assert_exports.11.c new file mode 100644 index 00000000..f1053c2a --- /dev/null +++ b/tests/gen/assert_exports.11.c @@ -0,0 +1,26 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.11.h" + +void test() { + exports11Instance instance; + exports11Instantiate(&instance, resolveTestImports); + printStart("exports.11.wasm"); + assertEqualU32( + exports11_a(&instance), + 42u, + "a()" + ); + assertEqualU32( + exports11_b(&instance), + 42u, + "b()" + ); + assertEqualU32( + exports11_c(&instance), + 42u, + "c()" + ); +} diff --git a/tests/gen/assert_exports.17.c b/tests/gen/assert_exports.17.c deleted file mode 100644 index 230b458a..00000000 --- a/tests/gen/assert_exports.17.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.17.h" - -void test() { - exports17Instance instance; - exports17Instantiate(&instance, resolveTestImports); - printStart("exports.17.wasm"); -} diff --git a/tests/gen/assert_exports.18.c b/tests/gen/assert_exports.18.c deleted file mode 100644 index e79f6dee..00000000 --- a/tests/gen/assert_exports.18.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.18.h" - -void test() { - exports18Instance instance; - exports18Instantiate(&instance, resolveTestImports); - printStart("exports.18.wasm"); -} diff --git a/tests/gen/assert_exports.19.c b/tests/gen/assert_exports.19.c deleted file mode 100644 index 4ef9c7ab..00000000 --- a/tests/gen/assert_exports.19.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.19.h" - -void test() { - exports19Instance instance; - exports19Instantiate(&instance, resolveTestImports); - printStart("exports.19.wasm"); -} diff --git a/tests/gen/assert_exports.26.c b/tests/gen/assert_exports.26.c new file mode 100644 index 00000000..b4e8b654 --- /dev/null +++ b/tests/gen/assert_exports.26.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.26.h" + +void test() { + exports26Instance instance; + exports26Instantiate(&instance, resolveTestImports); + printStart("exports.26.wasm"); +} diff --git a/tests/gen/assert_exports.27.c b/tests/gen/assert_exports.27.c new file mode 100644 index 00000000..882afd48 --- /dev/null +++ b/tests/gen/assert_exports.27.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.27.h" + +void test() { + exports27Instance instance; + exports27Instantiate(&instance, resolveTestImports); + printStart("exports.27.wasm"); +} diff --git a/tests/gen/assert_exports.28.c b/tests/gen/assert_exports.28.c new file mode 100644 index 00000000..edbdad4c --- /dev/null +++ b/tests/gen/assert_exports.28.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.28.h" + +void test() { + exports28Instance instance; + exports28Instantiate(&instance, resolveTestImports); + printStart("exports.28.wasm"); +} diff --git a/tests/gen/assert_exports.32.c b/tests/gen/assert_exports.32.c deleted file mode 100644 index 5e2ecac1..00000000 --- a/tests/gen/assert_exports.32.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.32.h" - -void test() { - exports32Instance instance; - exports32Instantiate(&instance, resolveTestImports); - printStart("exports.32.wasm"); -} diff --git a/tests/gen/assert_exports.33.c b/tests/gen/assert_exports.33.c deleted file mode 100644 index f14e6092..00000000 --- a/tests/gen/assert_exports.33.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.33.h" - -void test() { - exports33Instance instance; - exports33Instantiate(&instance, resolveTestImports); - printStart("exports.33.wasm"); -} diff --git a/tests/gen/assert_exports.34.c b/tests/gen/assert_exports.34.c deleted file mode 100644 index 1b189d99..00000000 --- a/tests/gen/assert_exports.34.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.34.h" - -void test() { - exports34Instance instance; - exports34Instantiate(&instance, resolveTestImports); - printStart("exports.34.wasm"); -} diff --git a/tests/gen/assert_exports.35.c b/tests/gen/assert_exports.35.c deleted file mode 100644 index 98e46b05..00000000 --- a/tests/gen/assert_exports.35.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.35.h" - -void test() { - exports35Instance instance; - exports35Instantiate(&instance, resolveTestImports); - printStart("exports.35.wasm"); -} diff --git a/tests/gen/assert_exports.36.c b/tests/gen/assert_exports.36.c deleted file mode 100644 index db20c668..00000000 --- a/tests/gen/assert_exports.36.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.36.h" - -void test() { - exports36Instance instance; - exports36Instantiate(&instance, resolveTestImports); - printStart("exports.36.wasm"); -} diff --git a/tests/gen/assert_exports.46.c b/tests/gen/assert_exports.46.c new file mode 100644 index 00000000..7543a9e7 --- /dev/null +++ b/tests/gen/assert_exports.46.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.46.h" + +void test() { + exports46Instance instance; + exports46Instantiate(&instance, resolveTestImports); + printStart("exports.46.wasm"); +} diff --git a/tests/gen/assert_exports.47.c b/tests/gen/assert_exports.47.c new file mode 100644 index 00000000..547b5920 --- /dev/null +++ b/tests/gen/assert_exports.47.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.47.h" + +void test() { + exports47Instance instance; + exports47Instantiate(&instance, resolveTestImports); + printStart("exports.47.wasm"); +} diff --git a/tests/gen/assert_exports.48.c b/tests/gen/assert_exports.48.c new file mode 100644 index 00000000..23572d84 --- /dev/null +++ b/tests/gen/assert_exports.48.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.48.h" + +void test() { + exports48Instance instance; + exports48Instantiate(&instance, resolveTestImports); + printStart("exports.48.wasm"); +} diff --git a/tests/gen/assert_exports.49.c b/tests/gen/assert_exports.49.c new file mode 100644 index 00000000..380882e1 --- /dev/null +++ b/tests/gen/assert_exports.49.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.49.h" + +void test() { + exports49Instance instance; + exports49Instantiate(&instance, resolveTestImports); + printStart("exports.49.wasm"); +} diff --git a/tests/gen/assert_exports.50.c b/tests/gen/assert_exports.50.c new file mode 100644 index 00000000..29e0083a --- /dev/null +++ b/tests/gen/assert_exports.50.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.50.h" + +void test() { + exports50Instance instance; + exports50Instantiate(&instance, resolveTestImports); + printStart("exports.50.wasm"); +} diff --git a/tests/gen/assert_exports.51.c b/tests/gen/assert_exports.51.c deleted file mode 100644 index 12491ded..00000000 --- a/tests/gen/assert_exports.51.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.51.h" - -void test() { - exports51Instance instance; - exports51Instantiate(&instance, resolveTestImports); - printStart("exports.51.wasm"); -} diff --git a/tests/gen/assert_exports.52.c b/tests/gen/assert_exports.52.c deleted file mode 100644 index 59cb689b..00000000 --- a/tests/gen/assert_exports.52.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.52.h" - -void test() { - exports52Instance instance; - exports52Instantiate(&instance, resolveTestImports); - printStart("exports.52.wasm"); -} diff --git a/tests/gen/assert_exports.53.c b/tests/gen/assert_exports.53.c deleted file mode 100644 index 0799c278..00000000 --- a/tests/gen/assert_exports.53.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.53.h" - -void test() { - exports53Instance instance; - exports53Instantiate(&instance, resolveTestImports); - printStart("exports.53.wasm"); -} diff --git a/tests/gen/assert_exports.54.c b/tests/gen/assert_exports.54.c deleted file mode 100644 index 89193bfd..00000000 --- a/tests/gen/assert_exports.54.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.54.h" - -void test() { - exports54Instance instance; - exports54Instantiate(&instance, resolveTestImports); - printStart("exports.54.wasm"); -} diff --git a/tests/gen/assert_exports.55.c b/tests/gen/assert_exports.55.c deleted file mode 100644 index 3fd47ece..00000000 --- a/tests/gen/assert_exports.55.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.55.h" - -void test() { - exports55Instance instance; - exports55Instantiate(&instance, resolveTestImports); - printStart("exports.55.wasm"); -} diff --git a/tests/gen/assert_exports.56.c b/tests/gen/assert_exports.56.c deleted file mode 100644 index f888bab2..00000000 --- a/tests/gen/assert_exports.56.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.56.h" - -void test() { - exports56Instance instance; - exports56Instantiate(&instance, resolveTestImports); - printStart("exports.56.wasm"); -} diff --git a/tests/gen/assert_exports.57.c b/tests/gen/assert_exports.57.c deleted file mode 100644 index d4c29a87..00000000 --- a/tests/gen/assert_exports.57.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_exports.57.h" - -void test() { - exports57Instance instance; - exports57Instantiate(&instance, resolveTestImports); - printStart("exports.57.wasm"); -} diff --git a/tests/gen/assert_exports.65.c b/tests/gen/assert_exports.65.c new file mode 100644 index 00000000..ed8df586 --- /dev/null +++ b/tests/gen/assert_exports.65.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.65.h" + +void test() { + exports65Instance instance; + exports65Instantiate(&instance, resolveTestImports); + printStart("exports.65.wasm"); +} diff --git a/tests/gen/assert_exports.66.c b/tests/gen/assert_exports.66.c new file mode 100644 index 00000000..e48fff29 --- /dev/null +++ b/tests/gen/assert_exports.66.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.66.h" + +void test() { + exports66Instance instance; + exports66Instantiate(&instance, resolveTestImports); + printStart("exports.66.wasm"); +} diff --git a/tests/gen/assert_exports.67.c b/tests/gen/assert_exports.67.c new file mode 100644 index 00000000..58faa73e --- /dev/null +++ b/tests/gen/assert_exports.67.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.67.h" + +void test() { + exports67Instance instance; + exports67Instantiate(&instance, resolveTestImports); + printStart("exports.67.wasm"); +} diff --git a/tests/gen/assert_exports.68.c b/tests/gen/assert_exports.68.c new file mode 100644 index 00000000..8088a44b --- /dev/null +++ b/tests/gen/assert_exports.68.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.68.h" + +void test() { + exports68Instance instance; + exports68Instantiate(&instance, resolveTestImports); + printStart("exports.68.wasm"); +} diff --git a/tests/gen/assert_exports.69.c b/tests/gen/assert_exports.69.c new file mode 100644 index 00000000..848b6eaf --- /dev/null +++ b/tests/gen/assert_exports.69.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.69.h" + +void test() { + exports69Instance instance; + exports69Instantiate(&instance, resolveTestImports); + printStart("exports.69.wasm"); +} diff --git a/tests/gen/assert_exports.70.c b/tests/gen/assert_exports.70.c new file mode 100644 index 00000000..1426e9d2 --- /dev/null +++ b/tests/gen/assert_exports.70.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.70.h" + +void test() { + exports70Instance instance; + exports70Instantiate(&instance, resolveTestImports); + printStart("exports.70.wasm"); +} diff --git a/tests/gen/assert_exports.71.c b/tests/gen/assert_exports.71.c new file mode 100644 index 00000000..b40d5710 --- /dev/null +++ b/tests/gen/assert_exports.71.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_exports.71.h" + +void test() { + exports71Instance instance; + exports71Instantiate(&instance, resolveTestImports); + printStart("exports.71.wasm"); +} diff --git a/tests/gen/assert_float_exprs.38.c b/tests/gen/assert_float_exprs.38.c index 25aa93ec..ad64887a 100644 --- a/tests/gen/assert_float_exprs.38.c +++ b/tests/gen/assert_float_exprs.38.c @@ -33,4 +33,29 @@ void test() { -36030.50390625, "no_demote_mixed_sub(27090.388466832894, 63120.890625)" ); + assertEqualF32( + floatexprs38_no_demote_mixed_sub_commuted(&instance, 4.0863470592574095e+18, 7.869935327202668e+24), + -7.869930965402192e+24, + "no_demote_mixed_sub_commuted(4.0863470592574095e+18, 7.869935327202668e+24)" + ); + assertEqualF32( + floatexprs38_no_demote_mixed_sub_commuted(&instance, 239897.28125, -1535841968.9056544), + 1536081920.0, + "no_demote_mixed_sub_commuted(239897.28125, -1535841968.9056544)" + ); + assertEqualF32( + floatexprs38_no_demote_mixed_sub_commuted(&instance, 0.0003942613839171827, -102.19459272722602), + 102.19498443603516, + "no_demote_mixed_sub_commuted(0.0003942613839171827, -102.19459272722602)" + ); + assertEqualF32( + floatexprs38_no_demote_mixed_sub_commuted(&instance, 5.85107700707483e-22, 5.645470375565188e-17), + -5.645411727723358e-17, + "no_demote_mixed_sub_commuted(5.85107700707483e-22, 5.645470375565188e-17)" + ); + assertEqualF32( + floatexprs38_no_demote_mixed_sub_commuted(&instance, 63120.890625, 27090.388466832894), + 36030.50390625, + "no_demote_mixed_sub_commuted(63120.890625, 27090.388466832894)" + ); } diff --git a/tests/gen/assert_float_exprs.39.c b/tests/gen/assert_float_exprs.39.c index 442cace0..b0ec2874 100644 --- a/tests/gen/assert_float_exprs.39.c +++ b/tests/gen/assert_float_exprs.39.c @@ -9,163 +9,53 @@ void test() { floatexprs39Instantiate(&instance, resolveTestImports); printStart("float_exprs.39.wasm"); assertEqualF32( - floatexprs39_f32X2Ei32X2Eno_fold_trunc_s_convert_s(&instance, 1.5), - 1.0, - "f32.i32.no_fold_trunc_s_convert_s(1.5)" + floatexprs39_no_demote_mixed_mul(&instance, 2.5377744840344215e-61, 1.5802016161448726e+34), + 4.010195211734413e-27, + "no_demote_mixed_mul(2.5377744840344215e-61, 1.5802016161448726e+34)" ); assertEqualF32( - floatexprs39_f32X2Ei32X2Eno_fold_trunc_s_convert_s(&instance, -1.5), - -1.0, - "f32.i32.no_fold_trunc_s_convert_s(-1.5)" + floatexprs39_no_demote_mixed_mul(&instance, 2.1726692129428788e+42, 7.293721306977546e-33), + 15846843392.0, + "no_demote_mixed_mul(2.1726692129428788e+42, 7.293721306977546e-33)" ); assertEqualF32( - floatexprs39_f32X2Ei32X2Eno_fold_trunc_u_convert_s(&instance, 1.5), - 1.0, - "f32.i32.no_fold_trunc_u_convert_s(1.5)" + floatexprs39_no_demote_mixed_mul(&instance, 1.8566135475946957e+53, 1.1523598697264038e-17), + 2.139486966371021e+36, + "no_demote_mixed_mul(1.8566135475946957e+53, 1.1523598697264038e-17)" ); assertEqualF32( - floatexprs39_f32X2Ei32X2Eno_fold_trunc_u_convert_s(&instance, -0.5), - 0.0, - "f32.i32.no_fold_trunc_u_convert_s(-0.5)" + floatexprs39_no_demote_mixed_mul(&instance, 5.434641042224456e+66, 2.3453285768874742e-37), + 1.2746019236910135e+30, + "no_demote_mixed_mul(5.434641042224456e+66, 2.3453285768874742e-37)" ); assertEqualF32( - floatexprs39_f32X2Ei32X2Eno_fold_trunc_s_convert_u(&instance, 1.5), - 1.0, - "f32.i32.no_fold_trunc_s_convert_u(1.5)" + floatexprs39_no_demote_mixed_mul(&instance, 1.1834791522838056e-51, 310965329461248.0), + 3.6802097539506265e-37, + "no_demote_mixed_mul(1.1834791522838056e-51, 310965329461248.0)" ); assertEqualF32( - floatexprs39_f32X2Ei32X2Eno_fold_trunc_s_convert_u(&instance, -1.5), - 4294967296.0, - "f32.i32.no_fold_trunc_s_convert_u(-1.5)" + floatexprs39_no_demote_mixed_mul_commuted(&instance, 1.5802016161448726e+34, 2.5377744840344215e-61), + 4.010195211734413e-27, + "no_demote_mixed_mul_commuted(1.5802016161448726e+34, 2.5377744840344215e-61)" ); assertEqualF32( - floatexprs39_f32X2Ei32X2Eno_fold_trunc_u_convert_u(&instance, 1.5), - 1.0, - "f32.i32.no_fold_trunc_u_convert_u(1.5)" + floatexprs39_no_demote_mixed_mul_commuted(&instance, 7.293721306977546e-33, 2.1726692129428788e+42), + 15846843392.0, + "no_demote_mixed_mul_commuted(7.293721306977546e-33, 2.1726692129428788e+42)" ); assertEqualF32( - floatexprs39_f32X2Ei32X2Eno_fold_trunc_u_convert_u(&instance, -0.5), - 0.0, - "f32.i32.no_fold_trunc_u_convert_u(-0.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei32X2Eno_fold_trunc_s_convert_s(&instance, 1.5), - 1.0, - "f64.i32.no_fold_trunc_s_convert_s(1.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei32X2Eno_fold_trunc_s_convert_s(&instance, -1.5), - -1.0, - "f64.i32.no_fold_trunc_s_convert_s(-1.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei32X2Eno_fold_trunc_u_convert_s(&instance, 1.5), - 1.0, - "f64.i32.no_fold_trunc_u_convert_s(1.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei32X2Eno_fold_trunc_u_convert_s(&instance, -0.5), - 0.0, - "f64.i32.no_fold_trunc_u_convert_s(-0.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei32X2Eno_fold_trunc_s_convert_u(&instance, 1.5), - 1.0, - "f64.i32.no_fold_trunc_s_convert_u(1.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei32X2Eno_fold_trunc_s_convert_u(&instance, -1.5), - 4294967295.0, - "f64.i32.no_fold_trunc_s_convert_u(-1.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei32X2Eno_fold_trunc_u_convert_u(&instance, 1.5), - 1.0, - "f64.i32.no_fold_trunc_u_convert_u(1.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei32X2Eno_fold_trunc_u_convert_u(&instance, -0.5), - 0.0, - "f64.i32.no_fold_trunc_u_convert_u(-0.5)" - ); - assertEqualF32( - floatexprs39_f32X2Ei64X2Eno_fold_trunc_s_convert_s(&instance, 1.5), - 1.0, - "f32.i64.no_fold_trunc_s_convert_s(1.5)" - ); - assertEqualF32( - floatexprs39_f32X2Ei64X2Eno_fold_trunc_s_convert_s(&instance, -1.5), - -1.0, - "f32.i64.no_fold_trunc_s_convert_s(-1.5)" - ); - assertEqualF32( - floatexprs39_f32X2Ei64X2Eno_fold_trunc_u_convert_s(&instance, 1.5), - 1.0, - "f32.i64.no_fold_trunc_u_convert_s(1.5)" + floatexprs39_no_demote_mixed_mul_commuted(&instance, 1.1523598697264038e-17, 1.8566135475946957e+53), + 2.139486966371021e+36, + "no_demote_mixed_mul_commuted(1.1523598697264038e-17, 1.8566135475946957e+53)" ); assertEqualF32( - floatexprs39_f32X2Ei64X2Eno_fold_trunc_u_convert_s(&instance, -0.5), - 0.0, - "f32.i64.no_fold_trunc_u_convert_s(-0.5)" + floatexprs39_no_demote_mixed_mul_commuted(&instance, 2.3453285768874742e-37, 5.434641042224456e+66), + 1.2746019236910135e+30, + "no_demote_mixed_mul_commuted(2.3453285768874742e-37, 5.434641042224456e+66)" ); assertEqualF32( - floatexprs39_f32X2Ei64X2Eno_fold_trunc_s_convert_u(&instance, 1.5), - 1.0, - "f32.i64.no_fold_trunc_s_convert_u(1.5)" - ); - assertEqualF32( - floatexprs39_f32X2Ei64X2Eno_fold_trunc_s_convert_u(&instance, -1.5), - 1.8446744073709552e+19, - "f32.i64.no_fold_trunc_s_convert_u(-1.5)" - ); - assertEqualF32( - floatexprs39_f32X2Ei64X2Eno_fold_trunc_u_convert_u(&instance, 1.5), - 1.0, - "f32.i64.no_fold_trunc_u_convert_u(1.5)" - ); - assertEqualF32( - floatexprs39_f32X2Ei64X2Eno_fold_trunc_u_convert_u(&instance, -0.5), - 0.0, - "f32.i64.no_fold_trunc_u_convert_u(-0.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei64X2Eno_fold_trunc_s_convert_s(&instance, 1.5), - 1.0, - "f64.i64.no_fold_trunc_s_convert_s(1.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei64X2Eno_fold_trunc_s_convert_s(&instance, -1.5), - -1.0, - "f64.i64.no_fold_trunc_s_convert_s(-1.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei64X2Eno_fold_trunc_u_convert_s(&instance, 1.5), - 1.0, - "f64.i64.no_fold_trunc_u_convert_s(1.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei64X2Eno_fold_trunc_u_convert_s(&instance, -0.5), - 0.0, - "f64.i64.no_fold_trunc_u_convert_s(-0.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei64X2Eno_fold_trunc_s_convert_u(&instance, 1.5), - 1.0, - "f64.i64.no_fold_trunc_s_convert_u(1.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei64X2Eno_fold_trunc_s_convert_u(&instance, -1.5), - 1.8446744073709552e+19, - "f64.i64.no_fold_trunc_s_convert_u(-1.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei64X2Eno_fold_trunc_u_convert_u(&instance, 1.5), - 1.0, - "f64.i64.no_fold_trunc_u_convert_u(1.5)" - ); - assertEqualF64( - floatexprs39_f64X2Ei64X2Eno_fold_trunc_u_convert_u(&instance, -0.5), - 0.0, - "f64.i64.no_fold_trunc_u_convert_u(-0.5)" + floatexprs39_no_demote_mixed_mul_commuted(&instance, 310965329461248.0, 1.1834791522838056e-51), + 3.6802097539506265e-37, + "no_demote_mixed_mul_commuted(310965329461248.0, 1.1834791522838056e-51)" ); } diff --git a/tests/gen/assert_float_exprs.40.c b/tests/gen/assert_float_exprs.40.c index f2b60a28..394cda93 100644 --- a/tests/gen/assert_float_exprs.40.c +++ b/tests/gen/assert_float_exprs.40.c @@ -8,54 +8,54 @@ void test() { floatexprs40Instance instance; floatexprs40Instantiate(&instance, resolveTestImports); printStart("float_exprs.40.wasm"); - floatexprs40_init(&instance, 0u, 15.100000381469727); - printOK("init(0u, 15.100000381469727)"); - floatexprs40_init(&instance, 4u, 15.199999809265137); - printOK("init(4u, 15.199999809265137)"); - floatexprs40_init(&instance, 8u, 15.300000190734863); - printOK("init(8u, 15.300000190734863)"); - floatexprs40_init(&instance, 12u, 15.399999618530273); - printOK("init(12u, 15.399999618530273)"); assertEqualF32( - floatexprs40_check(&instance, 0u), - 15.100000381469727, - "check(0u)" + floatexprs40_no_demote_mixed_div(&instance, 1.7886048835324162e+45, 1.4437566377602219e+31), + 123885479526400.0, + "no_demote_mixed_div(1.7886048835324162e+45, 1.4437566377602219e+31)" ); assertEqualF32( - floatexprs40_check(&instance, 4u), - 15.199999809265137, - "check(4u)" + floatexprs40_no_demote_mixed_div(&instance, 1.0952898401798359e-46, 2.5665392336139314e-25), + 4.267574928790326e-22, + "no_demote_mixed_div(1.0952898401798359e-46, 2.5665392336139314e-25)" ); assertEqualF32( - floatexprs40_check(&instance, 8u), - 15.300000190734863, - "check(8u)" + floatexprs40_no_demote_mixed_div(&instance, 9.080603501514862e-12, 4.8373775871448426e-39), + 1.8771749140976848e+27, + "no_demote_mixed_div(9.080603501514862e-12, 4.8373775871448426e-39)" ); assertEqualF32( - floatexprs40_check(&instance, 12u), - 15.399999618530273, - "check(12u)" + floatexprs40_no_demote_mixed_div(&instance, 3.782857642810886e-42, 3.438024151230309e-27), + 1.100299927768954e-15, + "no_demote_mixed_div(3.782857642810886e-42, 3.438024151230309e-27)" ); - floatexprs40_run(&instance, 16u, 3.0); - printOK("run(16u, 3.0)"); assertEqualF32( - floatexprs40_check(&instance, 0u), - 5.0333333015441895, - "check(0u)" + floatexprs40_no_demote_mixed_div(&instance, 3.4505644707116606e+22, 6.0033419644222506e+26), + 5.747739487560466e-05, + "no_demote_mixed_div(3.4505644707116606e+22, 6.0033419644222506e+26)" ); assertEqualF32( - floatexprs40_check(&instance, 4u), - 5.066666603088379, - "check(4u)" + floatexprs40_no_demote_mixed_div_commuted(&instance, 9.751511021865503e-23, 2.6675841907359984e-13), + 3.655558911130896e-10, + "no_demote_mixed_div_commuted(9.751511021865503e-23, 2.6675841907359984e-13)" ); assertEqualF32( - floatexprs40_check(&instance, 8u), - 5.099999904632568, - "check(8u)" + floatexprs40_no_demote_mixed_div_commuted(&instance, 100059280.0, 8.111351951123959e+47), + 1.2335770511297797e-40, + "no_demote_mixed_div_commuted(100059280.0, 8.111351951123959e+47)" ); assertEqualF32( - floatexprs40_check(&instance, 12u), - 5.133333206176758, - "check(12u)" + floatexprs40_no_demote_mixed_div_commuted(&instance, 1.7325049814914673e-12, 1.1227001577189032e-41), + 1.5431591465680899e+29, + "no_demote_mixed_div_commuted(1.7325049814914673e-12, 1.1227001577189032e-41)" + ); + assertEqualF32( + floatexprs40_no_demote_mixed_div_commuted(&instance, 1.752210102701486e+24, 2.5200730547930863e+63), + 6.95301877222545e-40, + "no_demote_mixed_div_commuted(1.752210102701486e+24, 2.5200730547930863e+63)" + ); + assertEqualF32( + floatexprs40_no_demote_mixed_div_commuted(&instance, 1.5513188252708936e-22, 3.5774408529541256e-60), + 4.33639286388721e+37, + "no_demote_mixed_div_commuted(1.5513188252708936e-22, 3.5774408529541256e-60)" ); } diff --git a/tests/gen/assert_float_exprs.41.c b/tests/gen/assert_float_exprs.41.c index 1ce3733d..f28d9500 100644 --- a/tests/gen/assert_float_exprs.41.c +++ b/tests/gen/assert_float_exprs.41.c @@ -8,54 +8,164 @@ void test() { floatexprs41Instance instance; floatexprs41Instantiate(&instance, resolveTestImports); printStart("float_exprs.41.wasm"); - floatexprs41_init(&instance, 0u, 15.1); - printOK("init(0u, 15.1)"); - floatexprs41_init(&instance, 8u, 15.2); - printOK("init(8u, 15.2)"); - floatexprs41_init(&instance, 16u, 15.3); - printOK("init(16u, 15.3)"); - floatexprs41_init(&instance, 24u, 15.4); - printOK("init(24u, 15.4)"); + assertEqualF32( + floatexprs41_f32X2Ei32X2Eno_fold_trunc_s_convert_s(&instance, 1.5), + 1.0, + "f32.i32.no_fold_trunc_s_convert_s(1.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei32X2Eno_fold_trunc_s_convert_s(&instance, -1.5), + -1.0, + "f32.i32.no_fold_trunc_s_convert_s(-1.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei32X2Eno_fold_trunc_u_convert_s(&instance, 1.5), + 1.0, + "f32.i32.no_fold_trunc_u_convert_s(1.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei32X2Eno_fold_trunc_u_convert_s(&instance, -0.5), + 0.0, + "f32.i32.no_fold_trunc_u_convert_s(-0.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei32X2Eno_fold_trunc_s_convert_u(&instance, 1.5), + 1.0, + "f32.i32.no_fold_trunc_s_convert_u(1.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei32X2Eno_fold_trunc_s_convert_u(&instance, -1.5), + 4294967296.0, + "f32.i32.no_fold_trunc_s_convert_u(-1.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei32X2Eno_fold_trunc_u_convert_u(&instance, 1.5), + 1.0, + "f32.i32.no_fold_trunc_u_convert_u(1.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei32X2Eno_fold_trunc_u_convert_u(&instance, -0.5), + 0.0, + "f32.i32.no_fold_trunc_u_convert_u(-0.5)" + ); + assertEqualF64( + floatexprs41_f64X2Ei32X2Eno_fold_trunc_s_convert_s(&instance, 1.5), + 1.0, + "f64.i32.no_fold_trunc_s_convert_s(1.5)" + ); + assertEqualF64( + floatexprs41_f64X2Ei32X2Eno_fold_trunc_s_convert_s(&instance, -1.5), + -1.0, + "f64.i32.no_fold_trunc_s_convert_s(-1.5)" + ); + assertEqualF64( + floatexprs41_f64X2Ei32X2Eno_fold_trunc_u_convert_s(&instance, 1.5), + 1.0, + "f64.i32.no_fold_trunc_u_convert_s(1.5)" + ); + assertEqualF64( + floatexprs41_f64X2Ei32X2Eno_fold_trunc_u_convert_s(&instance, -0.5), + 0.0, + "f64.i32.no_fold_trunc_u_convert_s(-0.5)" + ); + assertEqualF64( + floatexprs41_f64X2Ei32X2Eno_fold_trunc_s_convert_u(&instance, 1.5), + 1.0, + "f64.i32.no_fold_trunc_s_convert_u(1.5)" + ); + assertEqualF64( + floatexprs41_f64X2Ei32X2Eno_fold_trunc_s_convert_u(&instance, -1.5), + 4294967295.0, + "f64.i32.no_fold_trunc_s_convert_u(-1.5)" + ); + assertEqualF64( + floatexprs41_f64X2Ei32X2Eno_fold_trunc_u_convert_u(&instance, 1.5), + 1.0, + "f64.i32.no_fold_trunc_u_convert_u(1.5)" + ); + assertEqualF64( + floatexprs41_f64X2Ei32X2Eno_fold_trunc_u_convert_u(&instance, -0.5), + 0.0, + "f64.i32.no_fold_trunc_u_convert_u(-0.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei64X2Eno_fold_trunc_s_convert_s(&instance, 1.5), + 1.0, + "f32.i64.no_fold_trunc_s_convert_s(1.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei64X2Eno_fold_trunc_s_convert_s(&instance, -1.5), + -1.0, + "f32.i64.no_fold_trunc_s_convert_s(-1.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei64X2Eno_fold_trunc_u_convert_s(&instance, 1.5), + 1.0, + "f32.i64.no_fold_trunc_u_convert_s(1.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei64X2Eno_fold_trunc_u_convert_s(&instance, -0.5), + 0.0, + "f32.i64.no_fold_trunc_u_convert_s(-0.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei64X2Eno_fold_trunc_s_convert_u(&instance, 1.5), + 1.0, + "f32.i64.no_fold_trunc_s_convert_u(1.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei64X2Eno_fold_trunc_s_convert_u(&instance, -1.5), + 1.8446744073709552e+19, + "f32.i64.no_fold_trunc_s_convert_u(-1.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei64X2Eno_fold_trunc_u_convert_u(&instance, 1.5), + 1.0, + "f32.i64.no_fold_trunc_u_convert_u(1.5)" + ); + assertEqualF32( + floatexprs41_f32X2Ei64X2Eno_fold_trunc_u_convert_u(&instance, -0.5), + 0.0, + "f32.i64.no_fold_trunc_u_convert_u(-0.5)" + ); assertEqualF64( - floatexprs41_check(&instance, 0u), - 15.1, - "check(0u)" + floatexprs41_f64X2Ei64X2Eno_fold_trunc_s_convert_s(&instance, 1.5), + 1.0, + "f64.i64.no_fold_trunc_s_convert_s(1.5)" ); assertEqualF64( - floatexprs41_check(&instance, 8u), - 15.2, - "check(8u)" + floatexprs41_f64X2Ei64X2Eno_fold_trunc_s_convert_s(&instance, -1.5), + -1.0, + "f64.i64.no_fold_trunc_s_convert_s(-1.5)" ); assertEqualF64( - floatexprs41_check(&instance, 16u), - 15.3, - "check(16u)" + floatexprs41_f64X2Ei64X2Eno_fold_trunc_u_convert_s(&instance, 1.5), + 1.0, + "f64.i64.no_fold_trunc_u_convert_s(1.5)" ); assertEqualF64( - floatexprs41_check(&instance, 24u), - 15.4, - "check(24u)" + floatexprs41_f64X2Ei64X2Eno_fold_trunc_u_convert_s(&instance, -0.5), + 0.0, + "f64.i64.no_fold_trunc_u_convert_s(-0.5)" ); - floatexprs41_run(&instance, 32u, 3.0); - printOK("run(32u, 3.0)"); assertEqualF64( - floatexprs41_check(&instance, 0u), - 5.033333333333333, - "check(0u)" + floatexprs41_f64X2Ei64X2Eno_fold_trunc_s_convert_u(&instance, 1.5), + 1.0, + "f64.i64.no_fold_trunc_s_convert_u(1.5)" ); assertEqualF64( - floatexprs41_check(&instance, 8u), - 5.066666666666666, - "check(8u)" + floatexprs41_f64X2Ei64X2Eno_fold_trunc_s_convert_u(&instance, -1.5), + 1.8446744073709552e+19, + "f64.i64.no_fold_trunc_s_convert_u(-1.5)" ); assertEqualF64( - floatexprs41_check(&instance, 16u), - 5.1000000000000005, - "check(16u)" + floatexprs41_f64X2Ei64X2Eno_fold_trunc_u_convert_u(&instance, 1.5), + 1.0, + "f64.i64.no_fold_trunc_u_convert_u(1.5)" ); assertEqualF64( - floatexprs41_check(&instance, 24u), - 5.133333333333334, - "check(24u)" + floatexprs41_f64X2Ei64X2Eno_fold_trunc_u_convert_u(&instance, -0.5), + 0.0, + "f64.i64.no_fold_trunc_u_convert_u(-0.5)" ); } diff --git a/tests/gen/assert_float_exprs.42.c b/tests/gen/assert_float_exprs.42.c index 28de63b9..1702e6fd 100644 --- a/tests/gen/assert_float_exprs.42.c +++ b/tests/gen/assert_float_exprs.42.c @@ -8,124 +8,54 @@ void test() { floatexprs42Instance instance; floatexprs42Instantiate(&instance, resolveTestImports); printStart("float_exprs.42.wasm"); - assertEqualU32( - floatexprs42_f32X2Eult(&instance, 3.0, 2.0), - 0u, - "f32.ult(3.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f32X2Eult(&instance, 2.0, 2.0), - 0u, - "f32.ult(2.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f32X2Eult(&instance, 2.0, 3.0), - 1u, - "f32.ult(2.0, 3.0)" - ); - assertEqualU32( - floatexprs42_f32X2Eule(&instance, 3.0, 2.0), - 0u, - "f32.ule(3.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f32X2Eule(&instance, 2.0, 2.0), - 1u, - "f32.ule(2.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f32X2Eule(&instance, 2.0, 3.0), - 1u, - "f32.ule(2.0, 3.0)" - ); - assertEqualU32( - floatexprs42_f32X2Eugt(&instance, 3.0, 2.0), - 1u, - "f32.ugt(3.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f32X2Eugt(&instance, 2.0, 2.0), - 0u, - "f32.ugt(2.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f32X2Eugt(&instance, 2.0, 3.0), - 0u, - "f32.ugt(2.0, 3.0)" - ); - assertEqualU32( - floatexprs42_f32X2Euge(&instance, 3.0, 2.0), - 1u, - "f32.uge(3.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f32X2Euge(&instance, 2.0, 2.0), - 1u, - "f32.uge(2.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f32X2Euge(&instance, 2.0, 3.0), - 0u, - "f32.uge(2.0, 3.0)" - ); - assertEqualU32( - floatexprs42_f64X2Eult(&instance, 3.0, 2.0), - 0u, - "f64.ult(3.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f64X2Eult(&instance, 2.0, 2.0), - 0u, - "f64.ult(2.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f64X2Eult(&instance, 2.0, 3.0), - 1u, - "f64.ult(2.0, 3.0)" - ); - assertEqualU32( - floatexprs42_f64X2Eule(&instance, 3.0, 2.0), - 0u, - "f64.ule(3.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f64X2Eule(&instance, 2.0, 2.0), - 1u, - "f64.ule(2.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f64X2Eule(&instance, 2.0, 3.0), - 1u, - "f64.ule(2.0, 3.0)" - ); - assertEqualU32( - floatexprs42_f64X2Eugt(&instance, 3.0, 2.0), - 1u, - "f64.ugt(3.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f64X2Eugt(&instance, 2.0, 2.0), - 0u, - "f64.ugt(2.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f64X2Eugt(&instance, 2.0, 3.0), - 0u, - "f64.ugt(2.0, 3.0)" - ); - assertEqualU32( - floatexprs42_f64X2Euge(&instance, 3.0, 2.0), - 1u, - "f64.uge(3.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f64X2Euge(&instance, 2.0, 2.0), - 1u, - "f64.uge(2.0, 2.0)" - ); - assertEqualU32( - floatexprs42_f64X2Euge(&instance, 2.0, 3.0), - 0u, - "f64.uge(2.0, 3.0)" + floatexprs42_init(&instance, 0u, 15.100000381469727); + printOK("init(0u, 15.100000381469727)"); + floatexprs42_init(&instance, 4u, 15.199999809265137); + printOK("init(4u, 15.199999809265137)"); + floatexprs42_init(&instance, 8u, 15.300000190734863); + printOK("init(8u, 15.300000190734863)"); + floatexprs42_init(&instance, 12u, 15.399999618530273); + printOK("init(12u, 15.399999618530273)"); + assertEqualF32( + floatexprs42_check(&instance, 0u), + 15.100000381469727, + "check(0u)" + ); + assertEqualF32( + floatexprs42_check(&instance, 4u), + 15.199999809265137, + "check(4u)" + ); + assertEqualF32( + floatexprs42_check(&instance, 8u), + 15.300000190734863, + "check(8u)" + ); + assertEqualF32( + floatexprs42_check(&instance, 12u), + 15.399999618530273, + "check(12u)" + ); + floatexprs42_run(&instance, 16u, 3.0); + printOK("run(16u, 3.0)"); + assertEqualF32( + floatexprs42_check(&instance, 0u), + 5.0333333015441895, + "check(0u)" + ); + assertEqualF32( + floatexprs42_check(&instance, 4u), + 5.066666603088379, + "check(4u)" + ); + assertEqualF32( + floatexprs42_check(&instance, 8u), + 5.099999904632568, + "check(8u)" + ); + assertEqualF32( + floatexprs42_check(&instance, 12u), + 5.133333206176758, + "check(12u)" ); } diff --git a/tests/gen/assert_float_exprs.43.c b/tests/gen/assert_float_exprs.43.c index 7312bd5b..3d3fa49c 100644 --- a/tests/gen/assert_float_exprs.43.c +++ b/tests/gen/assert_float_exprs.43.c @@ -8,84 +8,54 @@ void test() { floatexprs43Instance instance; floatexprs43Instantiate(&instance, resolveTestImports); printStart("float_exprs.43.wasm"); - assertEqualF32( - floatexprs43_f32X2Eno_fold_lt_select(&instance, 0.0, -0.0), - -0.0, - "f32.no_fold_lt_select(0.0, -0.0)" - ); - assertEqualF32( - floatexprs43_f32X2Eno_fold_lt_select(&instance, -0.0, 0.0), - 0.0, - "f32.no_fold_lt_select(-0.0, 0.0)" - ); - assertEqualF32( - floatexprs43_f32X2Eno_fold_le_select(&instance, 0.0, -0.0), - 0.0, - "f32.no_fold_le_select(0.0, -0.0)" - ); - assertEqualF32( - floatexprs43_f32X2Eno_fold_le_select(&instance, -0.0, 0.0), - -0.0, - "f32.no_fold_le_select(-0.0, 0.0)" - ); - assertEqualF32( - floatexprs43_f32X2Eno_fold_gt_select(&instance, 0.0, -0.0), - -0.0, - "f32.no_fold_gt_select(0.0, -0.0)" - ); - assertEqualF32( - floatexprs43_f32X2Eno_fold_gt_select(&instance, -0.0, 0.0), - 0.0, - "f32.no_fold_gt_select(-0.0, 0.0)" - ); - assertEqualF32( - floatexprs43_f32X2Eno_fold_ge_select(&instance, 0.0, -0.0), - 0.0, - "f32.no_fold_ge_select(0.0, -0.0)" - ); - assertEqualF32( - floatexprs43_f32X2Eno_fold_ge_select(&instance, -0.0, 0.0), - -0.0, - "f32.no_fold_ge_select(-0.0, 0.0)" - ); + floatexprs43_init(&instance, 0u, 15.1); + printOK("init(0u, 15.1)"); + floatexprs43_init(&instance, 8u, 15.2); + printOK("init(8u, 15.2)"); + floatexprs43_init(&instance, 16u, 15.3); + printOK("init(16u, 15.3)"); + floatexprs43_init(&instance, 24u, 15.4); + printOK("init(24u, 15.4)"); assertEqualF64( - floatexprs43_f64X2Eno_fold_lt_select(&instance, 0.0, -0.0), - -0.0, - "f64.no_fold_lt_select(0.0, -0.0)" + floatexprs43_check(&instance, 0u), + 15.1, + "check(0u)" ); assertEqualF64( - floatexprs43_f64X2Eno_fold_lt_select(&instance, -0.0, 0.0), - 0.0, - "f64.no_fold_lt_select(-0.0, 0.0)" + floatexprs43_check(&instance, 8u), + 15.2, + "check(8u)" ); assertEqualF64( - floatexprs43_f64X2Eno_fold_le_select(&instance, 0.0, -0.0), - 0.0, - "f64.no_fold_le_select(0.0, -0.0)" + floatexprs43_check(&instance, 16u), + 15.3, + "check(16u)" ); assertEqualF64( - floatexprs43_f64X2Eno_fold_le_select(&instance, -0.0, 0.0), - -0.0, - "f64.no_fold_le_select(-0.0, 0.0)" + floatexprs43_check(&instance, 24u), + 15.4, + "check(24u)" ); + floatexprs43_run(&instance, 32u, 3.0); + printOK("run(32u, 3.0)"); assertEqualF64( - floatexprs43_f64X2Eno_fold_gt_select(&instance, 0.0, -0.0), - -0.0, - "f64.no_fold_gt_select(0.0, -0.0)" + floatexprs43_check(&instance, 0u), + 5.033333333333333, + "check(0u)" ); assertEqualF64( - floatexprs43_f64X2Eno_fold_gt_select(&instance, -0.0, 0.0), - 0.0, - "f64.no_fold_gt_select(-0.0, 0.0)" + floatexprs43_check(&instance, 8u), + 5.066666666666666, + "check(8u)" ); assertEqualF64( - floatexprs43_f64X2Eno_fold_ge_select(&instance, 0.0, -0.0), - 0.0, - "f64.no_fold_ge_select(0.0, -0.0)" + floatexprs43_check(&instance, 16u), + 5.1000000000000005, + "check(16u)" ); assertEqualF64( - floatexprs43_f64X2Eno_fold_ge_select(&instance, -0.0, 0.0), - -0.0, - "f64.no_fold_ge_select(-0.0, 0.0)" + floatexprs43_check(&instance, 24u), + 5.133333333333334, + "check(24u)" ); } diff --git a/tests/gen/assert_float_exprs.44.c b/tests/gen/assert_float_exprs.44.c index 33b963e5..3e117c4f 100644 --- a/tests/gen/assert_float_exprs.44.c +++ b/tests/gen/assert_float_exprs.44.c @@ -8,84 +8,124 @@ void test() { floatexprs44Instance instance; floatexprs44Instantiate(&instance, resolveTestImports); printStart("float_exprs.44.wasm"); - assertEqualF32( - floatexprs44_f32X2Eno_fold_lt_if(&instance, 0.0, -0.0), - -0.0, - "f32.no_fold_lt_if(0.0, -0.0)" - ); - assertEqualF32( - floatexprs44_f32X2Eno_fold_lt_if(&instance, -0.0, 0.0), - 0.0, - "f32.no_fold_lt_if(-0.0, 0.0)" - ); - assertEqualF32( - floatexprs44_f32X2Eno_fold_le_if(&instance, 0.0, -0.0), - 0.0, - "f32.no_fold_le_if(0.0, -0.0)" - ); - assertEqualF32( - floatexprs44_f32X2Eno_fold_le_if(&instance, -0.0, 0.0), - -0.0, - "f32.no_fold_le_if(-0.0, 0.0)" - ); - assertEqualF32( - floatexprs44_f32X2Eno_fold_gt_if(&instance, 0.0, -0.0), - -0.0, - "f32.no_fold_gt_if(0.0, -0.0)" - ); - assertEqualF32( - floatexprs44_f32X2Eno_fold_gt_if(&instance, -0.0, 0.0), - 0.0, - "f32.no_fold_gt_if(-0.0, 0.0)" - ); - assertEqualF32( - floatexprs44_f32X2Eno_fold_ge_if(&instance, 0.0, -0.0), - 0.0, - "f32.no_fold_ge_if(0.0, -0.0)" - ); - assertEqualF32( - floatexprs44_f32X2Eno_fold_ge_if(&instance, -0.0, 0.0), - -0.0, - "f32.no_fold_ge_if(-0.0, 0.0)" - ); - assertEqualF64( - floatexprs44_f64X2Eno_fold_lt_if(&instance, 0.0, -0.0), - -0.0, - "f64.no_fold_lt_if(0.0, -0.0)" - ); - assertEqualF64( - floatexprs44_f64X2Eno_fold_lt_if(&instance, -0.0, 0.0), - 0.0, - "f64.no_fold_lt_if(-0.0, 0.0)" - ); - assertEqualF64( - floatexprs44_f64X2Eno_fold_le_if(&instance, 0.0, -0.0), - 0.0, - "f64.no_fold_le_if(0.0, -0.0)" - ); - assertEqualF64( - floatexprs44_f64X2Eno_fold_le_if(&instance, -0.0, 0.0), - -0.0, - "f64.no_fold_le_if(-0.0, 0.0)" - ); - assertEqualF64( - floatexprs44_f64X2Eno_fold_gt_if(&instance, 0.0, -0.0), - -0.0, - "f64.no_fold_gt_if(0.0, -0.0)" - ); - assertEqualF64( - floatexprs44_f64X2Eno_fold_gt_if(&instance, -0.0, 0.0), - 0.0, - "f64.no_fold_gt_if(-0.0, 0.0)" - ); - assertEqualF64( - floatexprs44_f64X2Eno_fold_ge_if(&instance, 0.0, -0.0), - 0.0, - "f64.no_fold_ge_if(0.0, -0.0)" - ); - assertEqualF64( - floatexprs44_f64X2Eno_fold_ge_if(&instance, -0.0, 0.0), - -0.0, - "f64.no_fold_ge_if(-0.0, 0.0)" + assertEqualU32( + floatexprs44_f32X2Eult(&instance, 3.0, 2.0), + 0u, + "f32.ult(3.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f32X2Eult(&instance, 2.0, 2.0), + 0u, + "f32.ult(2.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f32X2Eult(&instance, 2.0, 3.0), + 1u, + "f32.ult(2.0, 3.0)" + ); + assertEqualU32( + floatexprs44_f32X2Eule(&instance, 3.0, 2.0), + 0u, + "f32.ule(3.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f32X2Eule(&instance, 2.0, 2.0), + 1u, + "f32.ule(2.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f32X2Eule(&instance, 2.0, 3.0), + 1u, + "f32.ule(2.0, 3.0)" + ); + assertEqualU32( + floatexprs44_f32X2Eugt(&instance, 3.0, 2.0), + 1u, + "f32.ugt(3.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f32X2Eugt(&instance, 2.0, 2.0), + 0u, + "f32.ugt(2.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f32X2Eugt(&instance, 2.0, 3.0), + 0u, + "f32.ugt(2.0, 3.0)" + ); + assertEqualU32( + floatexprs44_f32X2Euge(&instance, 3.0, 2.0), + 1u, + "f32.uge(3.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f32X2Euge(&instance, 2.0, 2.0), + 1u, + "f32.uge(2.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f32X2Euge(&instance, 2.0, 3.0), + 0u, + "f32.uge(2.0, 3.0)" + ); + assertEqualU32( + floatexprs44_f64X2Eult(&instance, 3.0, 2.0), + 0u, + "f64.ult(3.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f64X2Eult(&instance, 2.0, 2.0), + 0u, + "f64.ult(2.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f64X2Eult(&instance, 2.0, 3.0), + 1u, + "f64.ult(2.0, 3.0)" + ); + assertEqualU32( + floatexprs44_f64X2Eule(&instance, 3.0, 2.0), + 0u, + "f64.ule(3.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f64X2Eule(&instance, 2.0, 2.0), + 1u, + "f64.ule(2.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f64X2Eule(&instance, 2.0, 3.0), + 1u, + "f64.ule(2.0, 3.0)" + ); + assertEqualU32( + floatexprs44_f64X2Eugt(&instance, 3.0, 2.0), + 1u, + "f64.ugt(3.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f64X2Eugt(&instance, 2.0, 2.0), + 0u, + "f64.ugt(2.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f64X2Eugt(&instance, 2.0, 3.0), + 0u, + "f64.ugt(2.0, 3.0)" + ); + assertEqualU32( + floatexprs44_f64X2Euge(&instance, 3.0, 2.0), + 1u, + "f64.uge(3.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f64X2Euge(&instance, 2.0, 2.0), + 1u, + "f64.uge(2.0, 2.0)" + ); + assertEqualU32( + floatexprs44_f64X2Euge(&instance, 2.0, 3.0), + 0u, + "f64.uge(2.0, 3.0)" ); } diff --git a/tests/gen/assert_float_exprs.45.c b/tests/gen/assert_float_exprs.45.c index 86950681..c0f151f4 100644 --- a/tests/gen/assert_float_exprs.45.c +++ b/tests/gen/assert_float_exprs.45.c @@ -9,83 +9,83 @@ void test() { floatexprs45Instantiate(&instance, resolveTestImports); printStart("float_exprs.45.wasm"); assertEqualF32( - floatexprs45_f32X2Eno_fold_lt_select_to_abs(&instance, 0.0), - 0.0, - "f32.no_fold_lt_select_to_abs(0.0)" - ); - assertEqualF32( - floatexprs45_f32X2Eno_fold_lt_select_to_abs(&instance, -0.0), + floatexprs45_f32X2Eno_fold_lt_select(&instance, 0.0, -0.0), -0.0, - "f32.no_fold_lt_select_to_abs(-0.0)" + "f32.no_fold_lt_select(0.0, -0.0)" ); assertEqualF32( - floatexprs45_f32X2Eno_fold_le_select_to_abs(&instance, 0.0), - -0.0, - "f32.no_fold_le_select_to_abs(0.0)" + floatexprs45_f32X2Eno_fold_lt_select(&instance, -0.0, 0.0), + 0.0, + "f32.no_fold_lt_select(-0.0, 0.0)" ); assertEqualF32( - floatexprs45_f32X2Eno_fold_le_select_to_abs(&instance, -0.0), + floatexprs45_f32X2Eno_fold_le_select(&instance, 0.0, -0.0), 0.0, - "f32.no_fold_le_select_to_abs(-0.0)" + "f32.no_fold_le_select(0.0, -0.0)" + ); + assertEqualF32( + floatexprs45_f32X2Eno_fold_le_select(&instance, -0.0, 0.0), + -0.0, + "f32.no_fold_le_select(-0.0, 0.0)" ); assertEqualF32( - floatexprs45_f32X2Eno_fold_gt_select_to_abs(&instance, 0.0), + floatexprs45_f32X2Eno_fold_gt_select(&instance, 0.0, -0.0), -0.0, - "f32.no_fold_gt_select_to_abs(0.0)" + "f32.no_fold_gt_select(0.0, -0.0)" ); assertEqualF32( - floatexprs45_f32X2Eno_fold_gt_select_to_abs(&instance, -0.0), + floatexprs45_f32X2Eno_fold_gt_select(&instance, -0.0, 0.0), 0.0, - "f32.no_fold_gt_select_to_abs(-0.0)" + "f32.no_fold_gt_select(-0.0, 0.0)" ); assertEqualF32( - floatexprs45_f32X2Eno_fold_ge_select_to_abs(&instance, 0.0), + floatexprs45_f32X2Eno_fold_ge_select(&instance, 0.0, -0.0), 0.0, - "f32.no_fold_ge_select_to_abs(0.0)" + "f32.no_fold_ge_select(0.0, -0.0)" ); assertEqualF32( - floatexprs45_f32X2Eno_fold_ge_select_to_abs(&instance, -0.0), + floatexprs45_f32X2Eno_fold_ge_select(&instance, -0.0, 0.0), -0.0, - "f32.no_fold_ge_select_to_abs(-0.0)" + "f32.no_fold_ge_select(-0.0, 0.0)" ); assertEqualF64( - floatexprs45_f64X2Eno_fold_lt_select_to_abs(&instance, 0.0), - 0.0, - "f64.no_fold_lt_select_to_abs(0.0)" - ); - assertEqualF64( - floatexprs45_f64X2Eno_fold_lt_select_to_abs(&instance, -0.0), + floatexprs45_f64X2Eno_fold_lt_select(&instance, 0.0, -0.0), -0.0, - "f64.no_fold_lt_select_to_abs(-0.0)" + "f64.no_fold_lt_select(0.0, -0.0)" ); assertEqualF64( - floatexprs45_f64X2Eno_fold_le_select_to_abs(&instance, 0.0), - -0.0, - "f64.no_fold_le_select_to_abs(0.0)" + floatexprs45_f64X2Eno_fold_lt_select(&instance, -0.0, 0.0), + 0.0, + "f64.no_fold_lt_select(-0.0, 0.0)" ); assertEqualF64( - floatexprs45_f64X2Eno_fold_le_select_to_abs(&instance, -0.0), + floatexprs45_f64X2Eno_fold_le_select(&instance, 0.0, -0.0), 0.0, - "f64.no_fold_le_select_to_abs(-0.0)" + "f64.no_fold_le_select(0.0, -0.0)" + ); + assertEqualF64( + floatexprs45_f64X2Eno_fold_le_select(&instance, -0.0, 0.0), + -0.0, + "f64.no_fold_le_select(-0.0, 0.0)" ); assertEqualF64( - floatexprs45_f64X2Eno_fold_gt_select_to_abs(&instance, 0.0), + floatexprs45_f64X2Eno_fold_gt_select(&instance, 0.0, -0.0), -0.0, - "f64.no_fold_gt_select_to_abs(0.0)" + "f64.no_fold_gt_select(0.0, -0.0)" ); assertEqualF64( - floatexprs45_f64X2Eno_fold_gt_select_to_abs(&instance, -0.0), + floatexprs45_f64X2Eno_fold_gt_select(&instance, -0.0, 0.0), 0.0, - "f64.no_fold_gt_select_to_abs(-0.0)" + "f64.no_fold_gt_select(-0.0, 0.0)" ); assertEqualF64( - floatexprs45_f64X2Eno_fold_ge_select_to_abs(&instance, 0.0), + floatexprs45_f64X2Eno_fold_ge_select(&instance, 0.0, -0.0), 0.0, - "f64.no_fold_ge_select_to_abs(0.0)" + "f64.no_fold_ge_select(0.0, -0.0)" ); assertEqualF64( - floatexprs45_f64X2Eno_fold_ge_select_to_abs(&instance, -0.0), + floatexprs45_f64X2Eno_fold_ge_select(&instance, -0.0, 0.0), -0.0, - "f64.no_fold_ge_select_to_abs(-0.0)" + "f64.no_fold_ge_select(-0.0, 0.0)" ); } diff --git a/tests/gen/assert_float_exprs.46.c b/tests/gen/assert_float_exprs.46.c index 586edd1b..90a1e421 100644 --- a/tests/gen/assert_float_exprs.46.c +++ b/tests/gen/assert_float_exprs.46.c @@ -9,83 +9,83 @@ void test() { floatexprs46Instantiate(&instance, resolveTestImports); printStart("float_exprs.46.wasm"); assertEqualF32( - floatexprs46_f32X2Eno_fold_lt_if_to_abs(&instance, 0.0), - 0.0, - "f32.no_fold_lt_if_to_abs(0.0)" - ); - assertEqualF32( - floatexprs46_f32X2Eno_fold_lt_if_to_abs(&instance, -0.0), + floatexprs46_f32X2Eno_fold_lt_if(&instance, 0.0, -0.0), -0.0, - "f32.no_fold_lt_if_to_abs(-0.0)" + "f32.no_fold_lt_if(0.0, -0.0)" ); assertEqualF32( - floatexprs46_f32X2Eno_fold_le_if_to_abs(&instance, 0.0), - -0.0, - "f32.no_fold_le_if_to_abs(0.0)" + floatexprs46_f32X2Eno_fold_lt_if(&instance, -0.0, 0.0), + 0.0, + "f32.no_fold_lt_if(-0.0, 0.0)" ); assertEqualF32( - floatexprs46_f32X2Eno_fold_le_if_to_abs(&instance, -0.0), + floatexprs46_f32X2Eno_fold_le_if(&instance, 0.0, -0.0), 0.0, - "f32.no_fold_le_if_to_abs(-0.0)" + "f32.no_fold_le_if(0.0, -0.0)" + ); + assertEqualF32( + floatexprs46_f32X2Eno_fold_le_if(&instance, -0.0, 0.0), + -0.0, + "f32.no_fold_le_if(-0.0, 0.0)" ); assertEqualF32( - floatexprs46_f32X2Eno_fold_gt_if_to_abs(&instance, 0.0), + floatexprs46_f32X2Eno_fold_gt_if(&instance, 0.0, -0.0), -0.0, - "f32.no_fold_gt_if_to_abs(0.0)" + "f32.no_fold_gt_if(0.0, -0.0)" ); assertEqualF32( - floatexprs46_f32X2Eno_fold_gt_if_to_abs(&instance, -0.0), + floatexprs46_f32X2Eno_fold_gt_if(&instance, -0.0, 0.0), 0.0, - "f32.no_fold_gt_if_to_abs(-0.0)" + "f32.no_fold_gt_if(-0.0, 0.0)" ); assertEqualF32( - floatexprs46_f32X2Eno_fold_ge_if_to_abs(&instance, 0.0), + floatexprs46_f32X2Eno_fold_ge_if(&instance, 0.0, -0.0), 0.0, - "f32.no_fold_ge_if_to_abs(0.0)" + "f32.no_fold_ge_if(0.0, -0.0)" ); assertEqualF32( - floatexprs46_f32X2Eno_fold_ge_if_to_abs(&instance, -0.0), + floatexprs46_f32X2Eno_fold_ge_if(&instance, -0.0, 0.0), -0.0, - "f32.no_fold_ge_if_to_abs(-0.0)" + "f32.no_fold_ge_if(-0.0, 0.0)" ); assertEqualF64( - floatexprs46_f64X2Eno_fold_lt_if_to_abs(&instance, 0.0), - 0.0, - "f64.no_fold_lt_if_to_abs(0.0)" - ); - assertEqualF64( - floatexprs46_f64X2Eno_fold_lt_if_to_abs(&instance, -0.0), + floatexprs46_f64X2Eno_fold_lt_if(&instance, 0.0, -0.0), -0.0, - "f64.no_fold_lt_if_to_abs(-0.0)" + "f64.no_fold_lt_if(0.0, -0.0)" ); assertEqualF64( - floatexprs46_f64X2Eno_fold_le_if_to_abs(&instance, 0.0), - -0.0, - "f64.no_fold_le_if_to_abs(0.0)" + floatexprs46_f64X2Eno_fold_lt_if(&instance, -0.0, 0.0), + 0.0, + "f64.no_fold_lt_if(-0.0, 0.0)" ); assertEqualF64( - floatexprs46_f64X2Eno_fold_le_if_to_abs(&instance, -0.0), + floatexprs46_f64X2Eno_fold_le_if(&instance, 0.0, -0.0), 0.0, - "f64.no_fold_le_if_to_abs(-0.0)" + "f64.no_fold_le_if(0.0, -0.0)" + ); + assertEqualF64( + floatexprs46_f64X2Eno_fold_le_if(&instance, -0.0, 0.0), + -0.0, + "f64.no_fold_le_if(-0.0, 0.0)" ); assertEqualF64( - floatexprs46_f64X2Eno_fold_gt_if_to_abs(&instance, 0.0), + floatexprs46_f64X2Eno_fold_gt_if(&instance, 0.0, -0.0), -0.0, - "f64.no_fold_gt_if_to_abs(0.0)" + "f64.no_fold_gt_if(0.0, -0.0)" ); assertEqualF64( - floatexprs46_f64X2Eno_fold_gt_if_to_abs(&instance, -0.0), + floatexprs46_f64X2Eno_fold_gt_if(&instance, -0.0, 0.0), 0.0, - "f64.no_fold_gt_if_to_abs(-0.0)" + "f64.no_fold_gt_if(-0.0, 0.0)" ); assertEqualF64( - floatexprs46_f64X2Eno_fold_ge_if_to_abs(&instance, 0.0), + floatexprs46_f64X2Eno_fold_ge_if(&instance, 0.0, -0.0), 0.0, - "f64.no_fold_ge_if_to_abs(0.0)" + "f64.no_fold_ge_if(0.0, -0.0)" ); assertEqualF64( - floatexprs46_f64X2Eno_fold_ge_if_to_abs(&instance, -0.0), + floatexprs46_f64X2Eno_fold_ge_if(&instance, -0.0, 0.0), -0.0, - "f64.no_fold_ge_if_to_abs(-0.0)" + "f64.no_fold_ge_if(-0.0, 0.0)" ); } diff --git a/tests/gen/assert_float_exprs.47.c b/tests/gen/assert_float_exprs.47.c index f34abbc2..aad03a0c 100644 --- a/tests/gen/assert_float_exprs.47.c +++ b/tests/gen/assert_float_exprs.47.c @@ -9,13 +9,83 @@ void test() { floatexprs47Instantiate(&instance, resolveTestImports); printStart("float_exprs.47.wasm"); assertEqualF32( - floatexprs47_f32X2Eincorrect_correction(&instance), - 1.1920928955078125e-07, - "f32.incorrect_correction()" + floatexprs47_f32X2Eno_fold_lt_select_to_abs(&instance, 0.0), + 0.0, + "f32.no_fold_lt_select_to_abs(0.0)" + ); + assertEqualF32( + floatexprs47_f32X2Eno_fold_lt_select_to_abs(&instance, -0.0), + -0.0, + "f32.no_fold_lt_select_to_abs(-0.0)" + ); + assertEqualF32( + floatexprs47_f32X2Eno_fold_le_select_to_abs(&instance, 0.0), + -0.0, + "f32.no_fold_le_select_to_abs(0.0)" + ); + assertEqualF32( + floatexprs47_f32X2Eno_fold_le_select_to_abs(&instance, -0.0), + 0.0, + "f32.no_fold_le_select_to_abs(-0.0)" + ); + assertEqualF32( + floatexprs47_f32X2Eno_fold_gt_select_to_abs(&instance, 0.0), + -0.0, + "f32.no_fold_gt_select_to_abs(0.0)" + ); + assertEqualF32( + floatexprs47_f32X2Eno_fold_gt_select_to_abs(&instance, -0.0), + 0.0, + "f32.no_fold_gt_select_to_abs(-0.0)" + ); + assertEqualF32( + floatexprs47_f32X2Eno_fold_ge_select_to_abs(&instance, 0.0), + 0.0, + "f32.no_fold_ge_select_to_abs(0.0)" + ); + assertEqualF32( + floatexprs47_f32X2Eno_fold_ge_select_to_abs(&instance, -0.0), + -0.0, + "f32.no_fold_ge_select_to_abs(-0.0)" + ); + assertEqualF64( + floatexprs47_f64X2Eno_fold_lt_select_to_abs(&instance, 0.0), + 0.0, + "f64.no_fold_lt_select_to_abs(0.0)" + ); + assertEqualF64( + floatexprs47_f64X2Eno_fold_lt_select_to_abs(&instance, -0.0), + -0.0, + "f64.no_fold_lt_select_to_abs(-0.0)" + ); + assertEqualF64( + floatexprs47_f64X2Eno_fold_le_select_to_abs(&instance, 0.0), + -0.0, + "f64.no_fold_le_select_to_abs(0.0)" + ); + assertEqualF64( + floatexprs47_f64X2Eno_fold_le_select_to_abs(&instance, -0.0), + 0.0, + "f64.no_fold_le_select_to_abs(-0.0)" + ); + assertEqualF64( + floatexprs47_f64X2Eno_fold_gt_select_to_abs(&instance, 0.0), + -0.0, + "f64.no_fold_gt_select_to_abs(0.0)" + ); + assertEqualF64( + floatexprs47_f64X2Eno_fold_gt_select_to_abs(&instance, -0.0), + 0.0, + "f64.no_fold_gt_select_to_abs(-0.0)" + ); + assertEqualF64( + floatexprs47_f64X2Eno_fold_ge_select_to_abs(&instance, 0.0), + 0.0, + "f64.no_fold_ge_select_to_abs(0.0)" ); assertEqualF64( - floatexprs47_f64X2Eincorrect_correction(&instance), - -2.220446049250313e-16, - "f64.incorrect_correction()" + floatexprs47_f64X2Eno_fold_ge_select_to_abs(&instance, -0.0), + -0.0, + "f64.no_fold_ge_select_to_abs(-0.0)" ); } diff --git a/tests/gen/assert_float_exprs.48.c b/tests/gen/assert_float_exprs.48.c index 5ab21f51..d60d05cb 100644 --- a/tests/gen/assert_float_exprs.48.c +++ b/tests/gen/assert_float_exprs.48.c @@ -9,8 +9,83 @@ void test() { floatexprs48Instantiate(&instance, resolveTestImports); printStart("float_exprs.48.wasm"); assertEqualF32( - floatexprs48_calculate(&instance), - -466.9268493652344, - "calculate()" + floatexprs48_f32X2Eno_fold_lt_if_to_abs(&instance, 0.0), + 0.0, + "f32.no_fold_lt_if_to_abs(0.0)" + ); + assertEqualF32( + floatexprs48_f32X2Eno_fold_lt_if_to_abs(&instance, -0.0), + -0.0, + "f32.no_fold_lt_if_to_abs(-0.0)" + ); + assertEqualF32( + floatexprs48_f32X2Eno_fold_le_if_to_abs(&instance, 0.0), + -0.0, + "f32.no_fold_le_if_to_abs(0.0)" + ); + assertEqualF32( + floatexprs48_f32X2Eno_fold_le_if_to_abs(&instance, -0.0), + 0.0, + "f32.no_fold_le_if_to_abs(-0.0)" + ); + assertEqualF32( + floatexprs48_f32X2Eno_fold_gt_if_to_abs(&instance, 0.0), + -0.0, + "f32.no_fold_gt_if_to_abs(0.0)" + ); + assertEqualF32( + floatexprs48_f32X2Eno_fold_gt_if_to_abs(&instance, -0.0), + 0.0, + "f32.no_fold_gt_if_to_abs(-0.0)" + ); + assertEqualF32( + floatexprs48_f32X2Eno_fold_ge_if_to_abs(&instance, 0.0), + 0.0, + "f32.no_fold_ge_if_to_abs(0.0)" + ); + assertEqualF32( + floatexprs48_f32X2Eno_fold_ge_if_to_abs(&instance, -0.0), + -0.0, + "f32.no_fold_ge_if_to_abs(-0.0)" + ); + assertEqualF64( + floatexprs48_f64X2Eno_fold_lt_if_to_abs(&instance, 0.0), + 0.0, + "f64.no_fold_lt_if_to_abs(0.0)" + ); + assertEqualF64( + floatexprs48_f64X2Eno_fold_lt_if_to_abs(&instance, -0.0), + -0.0, + "f64.no_fold_lt_if_to_abs(-0.0)" + ); + assertEqualF64( + floatexprs48_f64X2Eno_fold_le_if_to_abs(&instance, 0.0), + -0.0, + "f64.no_fold_le_if_to_abs(0.0)" + ); + assertEqualF64( + floatexprs48_f64X2Eno_fold_le_if_to_abs(&instance, -0.0), + 0.0, + "f64.no_fold_le_if_to_abs(-0.0)" + ); + assertEqualF64( + floatexprs48_f64X2Eno_fold_gt_if_to_abs(&instance, 0.0), + -0.0, + "f64.no_fold_gt_if_to_abs(0.0)" + ); + assertEqualF64( + floatexprs48_f64X2Eno_fold_gt_if_to_abs(&instance, -0.0), + 0.0, + "f64.no_fold_gt_if_to_abs(-0.0)" + ); + assertEqualF64( + floatexprs48_f64X2Eno_fold_ge_if_to_abs(&instance, 0.0), + 0.0, + "f64.no_fold_ge_if_to_abs(0.0)" + ); + assertEqualF64( + floatexprs48_f64X2Eno_fold_ge_if_to_abs(&instance, -0.0), + -0.0, + "f64.no_fold_ge_if_to_abs(-0.0)" ); } diff --git a/tests/gen/assert_float_exprs.49.c b/tests/gen/assert_float_exprs.49.c index 14a2a297..e6c8007e 100644 --- a/tests/gen/assert_float_exprs.49.c +++ b/tests/gen/assert_float_exprs.49.c @@ -8,9 +8,14 @@ void test() { floatexprs49Instance instance; floatexprs49Instantiate(&instance, resolveTestImports); printStart("float_exprs.49.wasm"); + assertEqualF32( + floatexprs49_f32X2Eincorrect_correction(&instance), + 1.1920928955078125e-07, + "f32.incorrect_correction()" + ); assertEqualF64( - floatexprs49_calculate(&instance), - -466.926956301738, - "calculate()" + floatexprs49_f64X2Eincorrect_correction(&instance), + -2.220446049250313e-16, + "f64.incorrect_correction()" ); } diff --git a/tests/gen/assert_float_exprs.50.c b/tests/gen/assert_float_exprs.50.c index c431e8b7..8c5950bc 100644 --- a/tests/gen/assert_float_exprs.50.c +++ b/tests/gen/assert_float_exprs.50.c @@ -9,8 +9,8 @@ void test() { floatexprs50Instantiate(&instance, resolveTestImports); printStart("float_exprs.50.wasm"); assertEqualF32( - floatexprs50_llvm_pr26746(&instance, -0.0), - 0.0, - "llvm_pr26746(-0.0)" + floatexprs50_calculate(&instance), + -466.9268493652344, + "calculate()" ); } diff --git a/tests/gen/assert_float_exprs.51.c b/tests/gen/assert_float_exprs.51.c index ed01c2f0..e9ec96b7 100644 --- a/tests/gen/assert_float_exprs.51.c +++ b/tests/gen/assert_float_exprs.51.c @@ -8,9 +8,9 @@ void test() { floatexprs51Instance instance; floatexprs51Instantiate(&instance, resolveTestImports); printStart("float_exprs.51.wasm"); - assertEqualF32( - floatexprs51_llvm_pr27153(&instance, 33554434u), - 25165824.0, - "llvm_pr27153(33554434u)" + assertEqualF64( + floatexprs51_calculate(&instance), + -466.926956301738, + "calculate()" ); } diff --git a/tests/gen/assert_float_exprs.52.c b/tests/gen/assert_float_exprs.52.c index d63b5604..e99ada49 100644 --- a/tests/gen/assert_float_exprs.52.c +++ b/tests/gen/assert_float_exprs.52.c @@ -9,8 +9,8 @@ void test() { floatexprs52Instantiate(&instance, resolveTestImports); printStart("float_exprs.52.wasm"); assertEqualF32( - floatexprs52_llvm_pr27036(&instance, 4269932491u, 14942208u), - -10092596.0, - "llvm_pr27036(4269932491u, 14942208u)" + floatexprs52_llvm_pr26746(&instance, -0.0), + 0.0, + "llvm_pr26746(-0.0)" ); } diff --git a/tests/gen/assert_float_exprs.53.c b/tests/gen/assert_float_exprs.53.c index 58d7f14e..c1bb6d65 100644 --- a/tests/gen/assert_float_exprs.53.c +++ b/tests/gen/assert_float_exprs.53.c @@ -8,19 +8,9 @@ void test() { floatexprs53Instance instance; floatexprs53Instantiate(&instance, resolveTestImports); printStart("float_exprs.53.wasm"); - assertEqualF64( - floatexprs53_thepast0(&instance, 4.450147717014403e-308, 0.9999999999999999, 2.0, 0.5), - 4.4501477170144023e-308, - "thepast0(4.450147717014403e-308, 0.9999999999999999, 2.0, 0.5)" - ); - assertEqualF64( - floatexprs53_thepast1(&instance, 5.551115123125783e-17, 0.9999999999999999, 5.551115123125783e-17), - -6.162975822039155e-33, - "thepast1(5.551115123125783e-17, 0.9999999999999999, 5.551115123125783e-17)" - ); assertEqualF32( - floatexprs53_thepast2(&instance, 2.350988701644575e-38, 0.5, 1.0), - 1.1754943508222875e-38, - "thepast2(2.350988701644575e-38, 0.5, 1.0)" + floatexprs53_llvm_pr27153(&instance, 33554434u), + 25165824.0, + "llvm_pr27153(33554434u)" ); } diff --git a/tests/gen/assert_float_exprs.54.c b/tests/gen/assert_float_exprs.54.c index ade7ff65..c0d8e37e 100644 --- a/tests/gen/assert_float_exprs.54.c +++ b/tests/gen/assert_float_exprs.54.c @@ -9,8 +9,8 @@ void test() { floatexprs54Instantiate(&instance, resolveTestImports); printStart("float_exprs.54.wasm"); assertEqualF32( - floatexprs54_inverse(&instance, 96.0), - 0.010416666977107525, - "inverse(96.0)" + floatexprs54_llvm_pr27036(&instance, 4269932491u, 14942208u), + -10092596.0, + "llvm_pr27036(4269932491u, 14942208u)" ); } diff --git a/tests/gen/assert_float_exprs.55.c b/tests/gen/assert_float_exprs.55.c index e4a9986c..b3f8de11 100644 --- a/tests/gen/assert_float_exprs.55.c +++ b/tests/gen/assert_float_exprs.55.c @@ -8,14 +8,19 @@ void test() { floatexprs55Instance instance; floatexprs55Instantiate(&instance, resolveTestImports); printStart("float_exprs.55.wasm"); - assertEqualF32( - floatexprs55_f32_sqrt_minus_2(&instance, 4.0), - 0.0, - "f32_sqrt_minus_2(4.0)" + assertEqualF64( + floatexprs55_thepast0(&instance, 4.450147717014403e-308, 0.9999999999999999, 2.0, 0.5), + 4.4501477170144023e-308, + "thepast0(4.450147717014403e-308, 0.9999999999999999, 2.0, 0.5)" ); assertEqualF64( - floatexprs55_f64_sqrt_minus_2(&instance, 4.0), - 0.0, - "f64_sqrt_minus_2(4.0)" + floatexprs55_thepast1(&instance, 5.551115123125783e-17, 0.9999999999999999, 5.551115123125783e-17), + -6.162975822039155e-33, + "thepast1(5.551115123125783e-17, 0.9999999999999999, 5.551115123125783e-17)" + ); + assertEqualF32( + floatexprs55_thepast2(&instance, 2.350988701644575e-38, 0.5, 1.0), + 1.1754943508222875e-38, + "thepast2(2.350988701644575e-38, 0.5, 1.0)" ); } diff --git a/tests/gen/assert_float_exprs.56.c b/tests/gen/assert_float_exprs.56.c index a500b297..4ecb0a93 100644 --- a/tests/gen/assert_float_exprs.56.c +++ b/tests/gen/assert_float_exprs.56.c @@ -9,93 +9,8 @@ void test() { floatexprs56Instantiate(&instance, resolveTestImports); printStart("float_exprs.56.wasm"); assertEqualF32( - floatexprs56_f32X2Eno_fold_recip_recip(&instance, -7.043578799867927e+19), - -7.043578360063276e+19, - "f32.no_fold_recip_recip(-7.043578799867927e+19)" - ); - assertEqualF32( - floatexprs56_f32X2Eno_fold_recip_recip(&instance, 1.2466100672499874e-23), - 1.2466099883638969e-23, - "f32.no_fold_recip_recip(1.2466100672499874e-23)" - ); - assertEqualF32( - floatexprs56_f32X2Eno_fold_recip_recip(&instance, 9.718454544006024e-20), - 9.718455190240878e-20, - "f32.no_fold_recip_recip(9.718454544006024e-20)" - ); - assertEqualF32( - floatexprs56_f32X2Eno_fold_recip_recip(&instance, -30.400758743286133), - -30.400760650634766, - "f32.no_fold_recip_recip(-30.400758743286133)" - ); - assertEqualF32( - floatexprs56_f32X2Eno_fold_recip_recip(&instance, 2.3316591903901535e+21), - 2.3316590496526652e+21, - "f32.no_fold_recip_recip(2.3316591903901535e+21)" - ); - assertEqualF32( - floatexprs56_f32X2Eno_fold_recip_recip(&instance, -0.0), - -0.0, - "f32.no_fold_recip_recip(-0.0)" - ); - assertEqualF32( - floatexprs56_f32X2Eno_fold_recip_recip(&instance, 0.0), - 0.0, - "f32.no_fold_recip_recip(0.0)" - ); - assertEqualF32( - floatexprs56_f32X2Eno_fold_recip_recip(&instance, -INFINITY), - -INFINITY, - "f32.no_fold_recip_recip(-INFINITY)" - ); - assertEqualF32( - floatexprs56_f32X2Eno_fold_recip_recip(&instance, INFINITY), - INFINITY, - "f32.no_fold_recip_recip(INFINITY)" - ); - assertEqualF64( - floatexprs56_f64X2Eno_fold_recip_recip(&instance, -6.5797153436288686e+44), - -6.579715343628869e+44, - "f64.no_fold_recip_recip(-6.5797153436288686e+44)" - ); - assertEqualF64( - floatexprs56_f64X2Eno_fold_recip_recip(&instance, -1.4424693186857643e+20), - -1.4424693186857642e+20, - "f64.no_fold_recip_recip(-1.4424693186857643e+20)" - ); - assertEqualF64( - floatexprs56_f64X2Eno_fold_recip_recip(&instance, 1.8499468920623135e+50), - 1.8499468920623133e+50, - "f64.no_fold_recip_recip(1.8499468920623135e+50)" - ); - assertEqualF64( - floatexprs56_f64X2Eno_fold_recip_recip(&instance, 5.779584288006583e-207), - 5.779584288006582e-207, - "f64.no_fold_recip_recip(5.779584288006583e-207)" - ); - assertEqualF64( - floatexprs56_f64X2Eno_fold_recip_recip(&instance, 5.150117869614164e+271), - 5.1501178696141634e+271, - "f64.no_fold_recip_recip(5.150117869614164e+271)" - ); - assertEqualF64( - floatexprs56_f64X2Eno_fold_recip_recip(&instance, -0.0), - -0.0, - "f64.no_fold_recip_recip(-0.0)" - ); - assertEqualF64( - floatexprs56_f64X2Eno_fold_recip_recip(&instance, 0.0), - 0.0, - "f64.no_fold_recip_recip(0.0)" - ); - assertEqualF64( - floatexprs56_f64X2Eno_fold_recip_recip(&instance, -INFINITY), - -INFINITY, - "f64.no_fold_recip_recip(-INFINITY)" - ); - assertEqualF64( - floatexprs56_f64X2Eno_fold_recip_recip(&instance, INFINITY), - INFINITY, - "f64.no_fold_recip_recip(INFINITY)" + floatexprs56_inverse(&instance, 96.0), + 0.010416666977107525, + "inverse(96.0)" ); } diff --git a/tests/gen/assert_float_exprs.57.c b/tests/gen/assert_float_exprs.57.c index b03dde23..65c8ee12 100644 --- a/tests/gen/assert_float_exprs.57.c +++ b/tests/gen/assert_float_exprs.57.c @@ -9,53 +9,13 @@ void test() { floatexprs57Instantiate(&instance, resolveTestImports); printStart("float_exprs.57.wasm"); assertEqualF32( - floatexprs57_f32X2Eno_algebraic_factoring(&instance, -5.371186465411003e-17, 9.744327905706555e-17), - -6.610228647323988e-33, - "f32.no_algebraic_factoring(-5.371186465411003e-17, 9.744327905706555e-17)" - ); - assertEqualF32( - floatexprs57_f32X2Eno_algebraic_factoring(&instance, -19756732.0, 32770204.0), - -683557802475520.0, - "f32.no_algebraic_factoring(-19756732.0, 32770204.0)" - ); - assertEqualF32( - floatexprs57_f32X2Eno_algebraic_factoring(&instance, 52314148700160.0, -145309984358400.0), - -1.8378221355451492e+28, - "f32.no_algebraic_factoring(52314148700160.0, -145309984358400.0)" - ); - assertEqualF32( - floatexprs57_f32X2Eno_algebraic_factoring(&instance, 195260.375, -227.75723266601562), - 38126563328.0, - "f32.no_algebraic_factoring(195260.375, -227.75723266601562)" - ); - assertEqualF32( - floatexprs57_f32X2Eno_algebraic_factoring(&instance, -237.487060546875, -972341.5), - -945447960576.0, - "f32.no_algebraic_factoring(-237.487060546875, -972341.5)" - ); - assertEqualF64( - floatexprs57_f64X2Eno_algebraic_factoring(&instance, 9.639720335949767e-144, 8.019175443606207e-140), - -6.430717386609473e-279, - "f64.no_algebraic_factoring(9.639720335949767e-144, 8.019175443606207e-140)" - ); - assertEqualF64( - floatexprs57_f64X2Eno_algebraic_factoring(&instance, 5.166066590392027e-114, 1.494333315888213e-120), - 2.6688244016362468e-227, - "f64.no_algebraic_factoring(5.166066590392027e-114, 1.494333315888213e-120)" - ); - assertEqualF64( - floatexprs57_f64X2Eno_algebraic_factoring(&instance, -2.866135870517635e-114, -1.2114355254268516e-111), - -1.4675678175314036e-222, - "f64.no_algebraic_factoring(-2.866135870517635e-114, -1.2114355254268516e-111)" - ); - assertEqualF64( - floatexprs57_f64X2Eno_algebraic_factoring(&instance, -1.2920992810078149e+54, 6.62717187728034e+56), - -4.391924013896023e+113, - "f64.no_algebraic_factoring(-1.2920992810078149e+54, 6.62717187728034e+56)" + floatexprs57_f32_sqrt_minus_2(&instance, 4.0), + 0.0, + "f32_sqrt_minus_2(4.0)" ); assertEqualF64( - floatexprs57_f64X2Eno_algebraic_factoring(&instance, 2.624279568901057e+34, -1.6250233986050802e+27), - 6.886843255751491e+68, - "f64.no_algebraic_factoring(2.624279568901057e+34, -1.6250233986050802e+27)" + floatexprs57_f64_sqrt_minus_2(&instance, 4.0), + 0.0, + "f64_sqrt_minus_2(4.0)" ); } diff --git a/tests/gen/assert_float_exprs.58.c b/tests/gen/assert_float_exprs.58.c index 0dfb196b..25f75a6b 100644 --- a/tests/gen/assert_float_exprs.58.c +++ b/tests/gen/assert_float_exprs.58.c @@ -9,53 +9,93 @@ void test() { floatexprs58Instantiate(&instance, resolveTestImports); printStart("float_exprs.58.wasm"); assertEqualF32( - floatexprs58_f32X2Eno_algebraic_factoring(&instance, 2.2102996109817433e-14, 3.146527526379228e-12), - -9.900147562538522e-24, - "f32.no_algebraic_factoring(2.2102996109817433e-14, 3.146527526379228e-12)" + floatexprs58_f32X2Eno_fold_recip_recip(&instance, -7.043578799867927e+19), + -7.043578360063276e+19, + "f32.no_fold_recip_recip(-7.043578799867927e+19)" ); assertEqualF32( - floatexprs58_f32X2Eno_algebraic_factoring(&instance, -3289460768768.0, -15941538816.0), - 1.082029860086528e+25, - "f32.no_algebraic_factoring(-3289460768768.0, -15941538816.0)" + floatexprs58_f32X2Eno_fold_recip_recip(&instance, 1.2466100672499874e-23), + 1.2466099883638969e-23, + "f32.no_fold_recip_recip(1.2466100672499874e-23)" ); assertEqualF32( - floatexprs58_f32X2Eno_algebraic_factoring(&instance, 0.00036497542168945074, -0.00016153714386746287), - 1.0711280395980793e-07, - "f32.no_algebraic_factoring(0.00036497542168945074, -0.00016153714386746287)" + floatexprs58_f32X2Eno_fold_recip_recip(&instance, 9.718454544006024e-20), + 9.718455190240878e-20, + "f32.no_fold_recip_recip(9.718454544006024e-20)" ); assertEqualF32( - floatexprs58_f32X2Eno_algebraic_factoring(&instance, 6.538326602139807e-14, -2.7412772911545626e-14), - 3.523511174043803e-27, - "f32.no_algebraic_factoring(6.538326602139807e-14, -2.7412772911545626e-14)" + floatexprs58_f32X2Eno_fold_recip_recip(&instance, -30.400758743286133), + -30.400760650634766, + "f32.no_fold_recip_recip(-30.400758743286133)" ); assertEqualF32( - floatexprs58_f32X2Eno_algebraic_factoring(&instance, 3609681910038528.0, -5260104429469696.0), - -1.463889604789756e+31, - "f32.no_algebraic_factoring(3609681910038528.0, -5260104429469696.0)" + floatexprs58_f32X2Eno_fold_recip_recip(&instance, 2.3316591903901535e+21), + 2.3316590496526652e+21, + "f32.no_fold_recip_recip(2.3316591903901535e+21)" + ); + assertEqualF32( + floatexprs58_f32X2Eno_fold_recip_recip(&instance, -0.0), + -0.0, + "f32.no_fold_recip_recip(-0.0)" + ); + assertEqualF32( + floatexprs58_f32X2Eno_fold_recip_recip(&instance, 0.0), + 0.0, + "f32.no_fold_recip_recip(0.0)" + ); + assertEqualF32( + floatexprs58_f32X2Eno_fold_recip_recip(&instance, -INFINITY), + -INFINITY, + "f32.no_fold_recip_recip(-INFINITY)" + ); + assertEqualF32( + floatexprs58_f32X2Eno_fold_recip_recip(&instance, INFINITY), + INFINITY, + "f32.no_fold_recip_recip(INFINITY)" + ); + assertEqualF64( + floatexprs58_f64X2Eno_fold_recip_recip(&instance, -6.5797153436288686e+44), + -6.579715343628869e+44, + "f64.no_fold_recip_recip(-6.5797153436288686e+44)" + ); + assertEqualF64( + floatexprs58_f64X2Eno_fold_recip_recip(&instance, -1.4424693186857643e+20), + -1.4424693186857642e+20, + "f64.no_fold_recip_recip(-1.4424693186857643e+20)" + ); + assertEqualF64( + floatexprs58_f64X2Eno_fold_recip_recip(&instance, 1.8499468920623135e+50), + 1.8499468920623133e+50, + "f64.no_fold_recip_recip(1.8499468920623135e+50)" + ); + assertEqualF64( + floatexprs58_f64X2Eno_fold_recip_recip(&instance, 5.779584288006583e-207), + 5.779584288006582e-207, + "f64.no_fold_recip_recip(5.779584288006583e-207)" ); assertEqualF64( - floatexprs58_f64X2Eno_algebraic_factoring(&instance, 2.136404543498951e+107, -2.928587558394428e+101), - 4.564224373474385e+214, - "f64.no_algebraic_factoring(2.136404543498951e+107, -2.928587558394428e+101)" + floatexprs58_f64X2Eno_fold_recip_recip(&instance, 5.150117869614164e+271), + 5.1501178696141634e+271, + "f64.no_fold_recip_recip(5.150117869614164e+271)" ); assertEqualF64( - floatexprs58_f64X2Eno_algebraic_factoring(&instance, -1.2290171159244358e+93, -8.2221589190166e+99), - -6.760389728956271e+199, - "f64.no_algebraic_factoring(-1.2290171159244358e+93, -8.2221589190166e+99)" + floatexprs58_f64X2Eno_fold_recip_recip(&instance, -0.0), + -0.0, + "f64.no_fold_recip_recip(-0.0)" ); assertEqualF64( - floatexprs58_f64X2Eno_algebraic_factoring(&instance, 5477733829752.252, -970738900948.5906), - 2.9063233895797397e+25, - "f64.no_algebraic_factoring(5477733829752.252, -970738900948.5906)" + floatexprs58_f64X2Eno_fold_recip_recip(&instance, 0.0), + 0.0, + "f64.no_fold_recip_recip(0.0)" ); assertEqualF64( - floatexprs58_f64X2Eno_algebraic_factoring(&instance, -1.0689141744923551e+55, -1.7337839359373804e+50), - 1.1425775121300724e+110, - "f64.no_algebraic_factoring(-1.0689141744923551e+55, -1.7337839359373804e+50)" + floatexprs58_f64X2Eno_fold_recip_recip(&instance, -INFINITY), + -INFINITY, + "f64.no_fold_recip_recip(-INFINITY)" ); assertEqualF64( - floatexprs58_f64X2Eno_algebraic_factoring(&instance, -1.0295699877022106e-71, -8.952274637805908e-72), - 2.5858214767010105e-143, - "f64.no_algebraic_factoring(-1.0295699877022106e-71, -8.952274637805908e-72)" + floatexprs58_f64X2Eno_fold_recip_recip(&instance, INFINITY), + INFINITY, + "f64.no_fold_recip_recip(INFINITY)" ); } diff --git a/tests/gen/assert_float_exprs.59.c b/tests/gen/assert_float_exprs.59.c index 876e2ffc..a9cb4f6b 100644 --- a/tests/gen/assert_float_exprs.59.c +++ b/tests/gen/assert_float_exprs.59.c @@ -8,25 +8,54 @@ void test() { floatexprs59Instance instance; floatexprs59Instantiate(&instance, resolveTestImports); printStart("float_exprs.59.wasm"); - floatexprs59_f32X2Esimple_x4_sum(&instance, 0u, 16u, 32u); assertEqualF32( - floatexprs59_f32X2Eload(&instance, 32u), - 2.802596928649634e-45, - "f32.load(32u)" + floatexprs59_f32X2Eno_algebraic_factoring(&instance, -5.371186465411003e-17, 9.744327905706555e-17), + -6.610228647323988e-33, + "f32.no_algebraic_factoring(-5.371186465411003e-17, 9.744327905706555e-17)" ); assertEqualF32( - floatexprs59_f32X2Eload(&instance, 36u), - 0.0, - "f32.load(36u)" + floatexprs59_f32X2Eno_algebraic_factoring(&instance, -19756732.0, 32770204.0), + -683557802475520.0, + "f32.no_algebraic_factoring(-19756732.0, 32770204.0)" ); assertEqualF32( - floatexprs59_f32X2Eload(&instance, 40u), - 1.401298464324817e-45, - "f32.load(40u)" + floatexprs59_f32X2Eno_algebraic_factoring(&instance, 52314148700160.0, -145309984358400.0), + -1.8378221355451492e+28, + "f32.no_algebraic_factoring(52314148700160.0, -145309984358400.0)" ); assertEqualF32( - floatexprs59_f32X2Eload(&instance, 44u), - -1.401298464324817e-45, - "f32.load(44u)" + floatexprs59_f32X2Eno_algebraic_factoring(&instance, 195260.375, -227.75723266601562), + 38126563328.0, + "f32.no_algebraic_factoring(195260.375, -227.75723266601562)" + ); + assertEqualF32( + floatexprs59_f32X2Eno_algebraic_factoring(&instance, -237.487060546875, -972341.5), + -945447960576.0, + "f32.no_algebraic_factoring(-237.487060546875, -972341.5)" + ); + assertEqualF64( + floatexprs59_f64X2Eno_algebraic_factoring(&instance, 9.639720335949767e-144, 8.019175443606207e-140), + -6.430717386609473e-279, + "f64.no_algebraic_factoring(9.639720335949767e-144, 8.019175443606207e-140)" + ); + assertEqualF64( + floatexprs59_f64X2Eno_algebraic_factoring(&instance, 5.166066590392027e-114, 1.494333315888213e-120), + 2.6688244016362468e-227, + "f64.no_algebraic_factoring(5.166066590392027e-114, 1.494333315888213e-120)" + ); + assertEqualF64( + floatexprs59_f64X2Eno_algebraic_factoring(&instance, -2.866135870517635e-114, -1.2114355254268516e-111), + -1.4675678175314036e-222, + "f64.no_algebraic_factoring(-2.866135870517635e-114, -1.2114355254268516e-111)" + ); + assertEqualF64( + floatexprs59_f64X2Eno_algebraic_factoring(&instance, -1.2920992810078149e+54, 6.62717187728034e+56), + -4.391924013896023e+113, + "f64.no_algebraic_factoring(-1.2920992810078149e+54, 6.62717187728034e+56)" + ); + assertEqualF64( + floatexprs59_f64X2Eno_algebraic_factoring(&instance, 2.624279568901057e+34, -1.6250233986050802e+27), + 6.886843255751491e+68, + "f64.no_algebraic_factoring(2.624279568901057e+34, -1.6250233986050802e+27)" ); } diff --git a/tests/gen/assert_float_exprs.60.c b/tests/gen/assert_float_exprs.60.c index 81715a66..e8ed0508 100644 --- a/tests/gen/assert_float_exprs.60.c +++ b/tests/gen/assert_float_exprs.60.c @@ -8,25 +8,54 @@ void test() { floatexprs60Instance instance; floatexprs60Instantiate(&instance, resolveTestImports); printStart("float_exprs.60.wasm"); - floatexprs60_f64X2Esimple_x4_sum(&instance, 0u, 32u, 64u); + assertEqualF32( + floatexprs60_f32X2Eno_algebraic_factoring(&instance, 2.2102996109817433e-14, 3.146527526379228e-12), + -9.900147562538522e-24, + "f32.no_algebraic_factoring(2.2102996109817433e-14, 3.146527526379228e-12)" + ); + assertEqualF32( + floatexprs60_f32X2Eno_algebraic_factoring(&instance, -3289460768768.0, -15941538816.0), + 1.082029860086528e+25, + "f32.no_algebraic_factoring(-3289460768768.0, -15941538816.0)" + ); + assertEqualF32( + floatexprs60_f32X2Eno_algebraic_factoring(&instance, 0.00036497542168945074, -0.00016153714386746287), + 1.0711280395980793e-07, + "f32.no_algebraic_factoring(0.00036497542168945074, -0.00016153714386746287)" + ); + assertEqualF32( + floatexprs60_f32X2Eno_algebraic_factoring(&instance, 6.538326602139807e-14, -2.7412772911545626e-14), + 3.523511174043803e-27, + "f32.no_algebraic_factoring(6.538326602139807e-14, -2.7412772911545626e-14)" + ); + assertEqualF32( + floatexprs60_f32X2Eno_algebraic_factoring(&instance, 3609681910038528.0, -5260104429469696.0), + -1.463889604789756e+31, + "f32.no_algebraic_factoring(3609681910038528.0, -5260104429469696.0)" + ); + assertEqualF64( + floatexprs60_f64X2Eno_algebraic_factoring(&instance, 2.136404543498951e+107, -2.928587558394428e+101), + 4.564224373474385e+214, + "f64.no_algebraic_factoring(2.136404543498951e+107, -2.928587558394428e+101)" + ); assertEqualF64( - floatexprs60_f64X2Eload(&instance, 64u), - 1e-323, - "f64.load(64u)" + floatexprs60_f64X2Eno_algebraic_factoring(&instance, -1.2290171159244358e+93, -8.2221589190166e+99), + -6.760389728956271e+199, + "f64.no_algebraic_factoring(-1.2290171159244358e+93, -8.2221589190166e+99)" ); assertEqualF64( - floatexprs60_f64X2Eload(&instance, 72u), - 0.0, - "f64.load(72u)" + floatexprs60_f64X2Eno_algebraic_factoring(&instance, 5477733829752.252, -970738900948.5906), + 2.9063233895797397e+25, + "f64.no_algebraic_factoring(5477733829752.252, -970738900948.5906)" ); assertEqualF64( - floatexprs60_f64X2Eload(&instance, 80u), - 5e-324, - "f64.load(80u)" + floatexprs60_f64X2Eno_algebraic_factoring(&instance, -1.0689141744923551e+55, -1.7337839359373804e+50), + 1.1425775121300724e+110, + "f64.no_algebraic_factoring(-1.0689141744923551e+55, -1.7337839359373804e+50)" ); assertEqualF64( - floatexprs60_f64X2Eload(&instance, 88u), - -5e-324, - "f64.load(88u)" + floatexprs60_f64X2Eno_algebraic_factoring(&instance, -1.0295699877022106e-71, -8.952274637805908e-72), + 2.5858214767010105e-143, + "f64.no_algebraic_factoring(-1.0295699877022106e-71, -8.952274637805908e-72)" ); } diff --git a/tests/gen/assert_float_exprs.61.c b/tests/gen/assert_float_exprs.61.c index 65860910..1df342da 100644 --- a/tests/gen/assert_float_exprs.61.c +++ b/tests/gen/assert_float_exprs.61.c @@ -8,14 +8,25 @@ void test() { floatexprs61Instance instance; floatexprs61Instantiate(&instance, resolveTestImports); printStart("float_exprs.61.wasm"); + floatexprs61_f32X2Esimple_x4_sum(&instance, 0u, 16u, 32u); assertEqualF32( - floatexprs61_f32X2Ekahan_sum(&instance, 0u, 256u), - -2.1558138246206565e+31, - "f32.kahan_sum(0u, 256u)" + floatexprs61_f32X2Eload(&instance, 32u), + 2.802596928649634e-45, + "f32.load(32u)" ); assertEqualF32( - floatexprs61_f32X2Eplain_sum(&instance, 0u, 256u), - -1.6487539472071106e+31, - "f32.plain_sum(0u, 256u)" + floatexprs61_f32X2Eload(&instance, 36u), + 0.0, + "f32.load(36u)" + ); + assertEqualF32( + floatexprs61_f32X2Eload(&instance, 40u), + 1.401298464324817e-45, + "f32.load(40u)" + ); + assertEqualF32( + floatexprs61_f32X2Eload(&instance, 44u), + -1.401298464324817e-45, + "f32.load(44u)" ); } diff --git a/tests/gen/assert_float_exprs.62.c b/tests/gen/assert_float_exprs.62.c index dfb38a54..c7ee8eb7 100644 --- a/tests/gen/assert_float_exprs.62.c +++ b/tests/gen/assert_float_exprs.62.c @@ -8,14 +8,25 @@ void test() { floatexprs62Instance instance; floatexprs62Instantiate(&instance, resolveTestImports); printStart("float_exprs.62.wasm"); + floatexprs62_f64X2Esimple_x4_sum(&instance, 0u, 32u, 64u); assertEqualF64( - floatexprs62_f64X2Ekahan_sum(&instance, 0u, 256u), - 4.996401743142033e+300, - "f64.kahan_sum(0u, 256u)" + floatexprs62_f64X2Eload(&instance, 64u), + 1e-323, + "f64.load(64u)" ); assertEqualF64( - floatexprs62_f64X2Eplain_sum(&instance, 0u, 256u), - 4.9964017432979576e+300, - "f64.plain_sum(0u, 256u)" + floatexprs62_f64X2Eload(&instance, 72u), + 0.0, + "f64.load(72u)" + ); + assertEqualF64( + floatexprs62_f64X2Eload(&instance, 80u), + 5e-324, + "f64.load(80u)" + ); + assertEqualF64( + floatexprs62_f64X2Eload(&instance, 88u), + -5e-324, + "f64.load(88u)" ); } diff --git a/tests/gen/assert_float_exprs.63.c b/tests/gen/assert_float_exprs.63.c index e1014154..ee471a21 100644 --- a/tests/gen/assert_float_exprs.63.c +++ b/tests/gen/assert_float_exprs.63.c @@ -9,43 +9,13 @@ void test() { floatexprs63Instantiate(&instance, resolveTestImports); printStart("float_exprs.63.wasm"); assertEqualF32( - floatexprs63_f32X2Eno_fold_neg_sub(&instance, -0.0, -0.0), - -0.0, - "f32.no_fold_neg_sub(-0.0, -0.0)" + floatexprs63_f32X2Ekahan_sum(&instance, 0u, 256u), + -2.1558138246206565e+31, + "f32.kahan_sum(0u, 256u)" ); assertEqualF32( - floatexprs63_f32X2Eno_fold_neg_sub(&instance, 0.0, -0.0), - -0.0, - "f32.no_fold_neg_sub(0.0, -0.0)" - ); - assertEqualF32( - floatexprs63_f32X2Eno_fold_neg_sub(&instance, -0.0, 0.0), - 0.0, - "f32.no_fold_neg_sub(-0.0, 0.0)" - ); - assertEqualF32( - floatexprs63_f32X2Eno_fold_neg_sub(&instance, 0.0, 0.0), - -0.0, - "f32.no_fold_neg_sub(0.0, 0.0)" - ); - assertEqualF64( - floatexprs63_f64X2Eno_fold_neg_sub(&instance, -0.0, -0.0), - -0.0, - "f64.no_fold_neg_sub(-0.0, -0.0)" - ); - assertEqualF64( - floatexprs63_f64X2Eno_fold_neg_sub(&instance, 0.0, -0.0), - -0.0, - "f64.no_fold_neg_sub(0.0, -0.0)" - ); - assertEqualF64( - floatexprs63_f64X2Eno_fold_neg_sub(&instance, -0.0, 0.0), - 0.0, - "f64.no_fold_neg_sub(-0.0, 0.0)" - ); - assertEqualF64( - floatexprs63_f64X2Eno_fold_neg_sub(&instance, 0.0, 0.0), - -0.0, - "f64.no_fold_neg_sub(0.0, 0.0)" + floatexprs63_f32X2Eplain_sum(&instance, 0u, 256u), + -1.6487539472071106e+31, + "f32.plain_sum(0u, 256u)" ); } diff --git a/tests/gen/assert_float_exprs.64.c b/tests/gen/assert_float_exprs.64.c index 7750b492..625f7075 100644 --- a/tests/gen/assert_float_exprs.64.c +++ b/tests/gen/assert_float_exprs.64.c @@ -8,44 +8,14 @@ void test() { floatexprs64Instance instance; floatexprs64Instantiate(&instance, resolveTestImports); printStart("float_exprs.64.wasm"); - assertEqualF32( - floatexprs64_f32X2Eno_fold_neg_add(&instance, -0.0, -0.0), - 0.0, - "f32.no_fold_neg_add(-0.0, -0.0)" - ); - assertEqualF32( - floatexprs64_f32X2Eno_fold_neg_add(&instance, 0.0, -0.0), - -0.0, - "f32.no_fold_neg_add(0.0, -0.0)" - ); - assertEqualF32( - floatexprs64_f32X2Eno_fold_neg_add(&instance, -0.0, 0.0), - -0.0, - "f32.no_fold_neg_add(-0.0, 0.0)" - ); - assertEqualF32( - floatexprs64_f32X2Eno_fold_neg_add(&instance, 0.0, 0.0), - -0.0, - "f32.no_fold_neg_add(0.0, 0.0)" - ); - assertEqualF64( - floatexprs64_f64X2Eno_fold_neg_add(&instance, -0.0, -0.0), - 0.0, - "f64.no_fold_neg_add(-0.0, -0.0)" - ); - assertEqualF64( - floatexprs64_f64X2Eno_fold_neg_add(&instance, 0.0, -0.0), - -0.0, - "f64.no_fold_neg_add(0.0, -0.0)" - ); assertEqualF64( - floatexprs64_f64X2Eno_fold_neg_add(&instance, -0.0, 0.0), - -0.0, - "f64.no_fold_neg_add(-0.0, 0.0)" + floatexprs64_f64X2Ekahan_sum(&instance, 0u, 256u), + 4.996401743142033e+300, + "f64.kahan_sum(0u, 256u)" ); assertEqualF64( - floatexprs64_f64X2Eno_fold_neg_add(&instance, 0.0, 0.0), - -0.0, - "f64.no_fold_neg_add(0.0, 0.0)" + floatexprs64_f64X2Eplain_sum(&instance, 0u, 256u), + 4.9964017432979576e+300, + "f64.plain_sum(0u, 256u)" ); } diff --git a/tests/gen/assert_float_exprs.65.c b/tests/gen/assert_float_exprs.65.c index 30fbb1f8..02fb0c35 100644 --- a/tests/gen/assert_float_exprs.65.c +++ b/tests/gen/assert_float_exprs.65.c @@ -9,43 +9,43 @@ void test() { floatexprs65Instantiate(&instance, resolveTestImports); printStart("float_exprs.65.wasm"); assertEqualF32( - floatexprs65_f32X2Eno_fold_add_neg_neg(&instance, -0.0, -0.0), - 0.0, - "f32.no_fold_add_neg_neg(-0.0, -0.0)" + floatexprs65_f32X2Eno_fold_neg_sub(&instance, -0.0, -0.0), + -0.0, + "f32.no_fold_neg_sub(-0.0, -0.0)" ); assertEqualF32( - floatexprs65_f32X2Eno_fold_add_neg_neg(&instance, 0.0, -0.0), - 0.0, - "f32.no_fold_add_neg_neg(0.0, -0.0)" + floatexprs65_f32X2Eno_fold_neg_sub(&instance, 0.0, -0.0), + -0.0, + "f32.no_fold_neg_sub(0.0, -0.0)" ); assertEqualF32( - floatexprs65_f32X2Eno_fold_add_neg_neg(&instance, -0.0, 0.0), + floatexprs65_f32X2Eno_fold_neg_sub(&instance, -0.0, 0.0), 0.0, - "f32.no_fold_add_neg_neg(-0.0, 0.0)" + "f32.no_fold_neg_sub(-0.0, 0.0)" ); assertEqualF32( - floatexprs65_f32X2Eno_fold_add_neg_neg(&instance, 0.0, 0.0), + floatexprs65_f32X2Eno_fold_neg_sub(&instance, 0.0, 0.0), -0.0, - "f32.no_fold_add_neg_neg(0.0, 0.0)" + "f32.no_fold_neg_sub(0.0, 0.0)" ); assertEqualF64( - floatexprs65_f64X2Eno_fold_add_neg_neg(&instance, -0.0, -0.0), - 0.0, - "f64.no_fold_add_neg_neg(-0.0, -0.0)" + floatexprs65_f64X2Eno_fold_neg_sub(&instance, -0.0, -0.0), + -0.0, + "f64.no_fold_neg_sub(-0.0, -0.0)" ); assertEqualF64( - floatexprs65_f64X2Eno_fold_add_neg_neg(&instance, 0.0, -0.0), - 0.0, - "f64.no_fold_add_neg_neg(0.0, -0.0)" + floatexprs65_f64X2Eno_fold_neg_sub(&instance, 0.0, -0.0), + -0.0, + "f64.no_fold_neg_sub(0.0, -0.0)" ); assertEqualF64( - floatexprs65_f64X2Eno_fold_add_neg_neg(&instance, -0.0, 0.0), + floatexprs65_f64X2Eno_fold_neg_sub(&instance, -0.0, 0.0), 0.0, - "f64.no_fold_add_neg_neg(-0.0, 0.0)" + "f64.no_fold_neg_sub(-0.0, 0.0)" ); assertEqualF64( - floatexprs65_f64X2Eno_fold_add_neg_neg(&instance, 0.0, 0.0), + floatexprs65_f64X2Eno_fold_neg_sub(&instance, 0.0, 0.0), -0.0, - "f64.no_fold_add_neg_neg(0.0, 0.0)" + "f64.no_fold_neg_sub(0.0, 0.0)" ); } diff --git a/tests/gen/assert_float_exprs.66.c b/tests/gen/assert_float_exprs.66.c index eaa04a8e..51cbbc11 100644 --- a/tests/gen/assert_float_exprs.66.c +++ b/tests/gen/assert_float_exprs.66.c @@ -9,23 +9,43 @@ void test() { floatexprs66Instantiate(&instance, resolveTestImports); printStart("float_exprs.66.wasm"); assertEqualF32( - floatexprs66_f32X2Eno_fold_add_neg(&instance, 0.0), + floatexprs66_f32X2Eno_fold_neg_add(&instance, -0.0, -0.0), 0.0, - "f32.no_fold_add_neg(0.0)" + "f32.no_fold_neg_add(-0.0, -0.0)" ); assertEqualF32( - floatexprs66_f32X2Eno_fold_add_neg(&instance, -0.0), - 0.0, - "f32.no_fold_add_neg(-0.0)" + floatexprs66_f32X2Eno_fold_neg_add(&instance, 0.0, -0.0), + -0.0, + "f32.no_fold_neg_add(0.0, -0.0)" + ); + assertEqualF32( + floatexprs66_f32X2Eno_fold_neg_add(&instance, -0.0, 0.0), + -0.0, + "f32.no_fold_neg_add(-0.0, 0.0)" + ); + assertEqualF32( + floatexprs66_f32X2Eno_fold_neg_add(&instance, 0.0, 0.0), + -0.0, + "f32.no_fold_neg_add(0.0, 0.0)" ); assertEqualF64( - floatexprs66_f64X2Eno_fold_add_neg(&instance, 0.0), + floatexprs66_f64X2Eno_fold_neg_add(&instance, -0.0, -0.0), 0.0, - "f64.no_fold_add_neg(0.0)" + "f64.no_fold_neg_add(-0.0, -0.0)" ); assertEqualF64( - floatexprs66_f64X2Eno_fold_add_neg(&instance, -0.0), - 0.0, - "f64.no_fold_add_neg(-0.0)" + floatexprs66_f64X2Eno_fold_neg_add(&instance, 0.0, -0.0), + -0.0, + "f64.no_fold_neg_add(0.0, -0.0)" + ); + assertEqualF64( + floatexprs66_f64X2Eno_fold_neg_add(&instance, -0.0, 0.0), + -0.0, + "f64.no_fold_neg_add(-0.0, 0.0)" + ); + assertEqualF64( + floatexprs66_f64X2Eno_fold_neg_add(&instance, 0.0, 0.0), + -0.0, + "f64.no_fold_neg_add(0.0, 0.0)" ); } diff --git a/tests/gen/assert_float_exprs.67.c b/tests/gen/assert_float_exprs.67.c index 23d27c79..bf442b1b 100644 --- a/tests/gen/assert_float_exprs.67.c +++ b/tests/gen/assert_float_exprs.67.c @@ -9,53 +9,43 @@ void test() { floatexprs67Instantiate(&instance, resolveTestImports); printStart("float_exprs.67.wasm"); assertEqualF32( - floatexprs67_f32X2Eno_fold_6x_via_add(&instance, -8.555137345589493e+29), - -5.133082709585151e+30, - "f32.no_fold_6x_via_add(-8.555137345589493e+29)" + floatexprs67_f32X2Eno_fold_add_neg_neg(&instance, -0.0, -0.0), + 0.0, + "f32.no_fold_add_neg_neg(-0.0, -0.0)" ); assertEqualF32( - floatexprs67_f32X2Eno_fold_6x_via_add(&instance, -1.2095059945729172e-23), - -7.257036282981865e-23, - "f32.no_fold_6x_via_add(-1.2095059945729172e-23)" + floatexprs67_f32X2Eno_fold_add_neg_neg(&instance, 0.0, -0.0), + 0.0, + "f32.no_fold_add_neg_neg(0.0, -0.0)" ); assertEqualF32( - floatexprs67_f32X2Eno_fold_6x_via_add(&instance, 6.642689238252199e-24), - 3.9856133851791384e-23, - "f32.no_fold_6x_via_add(6.642689238252199e-24)" + floatexprs67_f32X2Eno_fold_add_neg_neg(&instance, -0.0, 0.0), + 0.0, + "f32.no_fold_add_neg_neg(-0.0, 0.0)" ); assertEqualF32( - floatexprs67_f32X2Eno_fold_6x_via_add(&instance, -6.147345965601403e-10), - -3.688407357316237e-09, - "f32.no_fold_6x_via_add(-6.147345965601403e-10)" - ); - assertEqualF32( - floatexprs67_f32X2Eno_fold_6x_via_add(&instance, -1.209858100766292e+24), - -7.259148316367375e+24, - "f32.no_fold_6x_via_add(-1.209858100766292e+24)" - ); - assertEqualF64( - floatexprs67_f64X2Eno_fold_6x_via_add(&instance, -3.517044906027714e+20), - -2.1102269436166286e+21, - "f64.no_fold_6x_via_add(-3.517044906027714e+20)" + floatexprs67_f32X2Eno_fold_add_neg_neg(&instance, 0.0, 0.0), + -0.0, + "f32.no_fold_add_neg_neg(0.0, 0.0)" ); assertEqualF64( - floatexprs67_f64X2Eno_fold_6x_via_add(&instance, -1.4824294109868734e-161), - -8.894576465921239e-161, - "f64.no_fold_6x_via_add(-1.4824294109868734e-161)" + floatexprs67_f64X2Eno_fold_add_neg_neg(&instance, -0.0, -0.0), + 0.0, + "f64.no_fold_add_neg_neg(-0.0, -0.0)" ); assertEqualF64( - floatexprs67_f64X2Eno_fold_6x_via_add(&instance, -7.484567838781003e+81), - -4.4907407032686014e+82, - "f64.no_fold_6x_via_add(-7.484567838781003e+81)" + floatexprs67_f64X2Eno_fold_add_neg_neg(&instance, 0.0, -0.0), + 0.0, + "f64.no_fold_add_neg_neg(0.0, -0.0)" ); assertEqualF64( - floatexprs67_f64X2Eno_fold_6x_via_add(&instance, 1.7277868192936067e+226), - 1.0366720915761641e+227, - "f64.no_fold_6x_via_add(1.7277868192936067e+226)" + floatexprs67_f64X2Eno_fold_add_neg_neg(&instance, -0.0, 0.0), + 0.0, + "f64.no_fold_add_neg_neg(-0.0, 0.0)" ); assertEqualF64( - floatexprs67_f64X2Eno_fold_6x_via_add(&instance, -4.311639752519561e+70), - -2.5869838515117364e+71, - "f64.no_fold_6x_via_add(-4.311639752519561e+70)" + floatexprs67_f64X2Eno_fold_add_neg_neg(&instance, 0.0, 0.0), + -0.0, + "f64.no_fold_add_neg_neg(0.0, 0.0)" ); } diff --git a/tests/gen/assert_float_exprs.68.c b/tests/gen/assert_float_exprs.68.c index 1d6b3894..b2c686cf 100644 --- a/tests/gen/assert_float_exprs.68.c +++ b/tests/gen/assert_float_exprs.68.c @@ -9,53 +9,23 @@ void test() { floatexprs68Instantiate(&instance, resolveTestImports); printStart("float_exprs.68.wasm"); assertEqualF32( - floatexprs68_f32X2Eno_fold_div_div(&instance, -5.938475291688351e+23, -3.0265671739471145e-05, -1584.8681640625), - -1.2380308618298272e+25, - "f32.no_fold_div_div(-5.938475291688351e+23, -3.0265671739471145e-05, -1584.8681640625)" + floatexprs68_f32X2Eno_fold_add_neg(&instance, 0.0), + 0.0, + "f32.no_fold_add_neg(0.0)" ); assertEqualF32( - floatexprs68_f32X2Eno_fold_div_div(&instance, 1.5438961616455177e-21, 2.5334292803745544e+33, -2.684478285682781e-34), - -0.0, - "f32.no_fold_div_div(1.5438961616455177e-21, 2.5334292803745544e+33, -2.684478285682781e-34)" - ); - assertEqualF32( - floatexprs68_f32X2Eno_fold_div_div(&instance, 13417423306752.0, 2.933920464447575e-32, 7.638637444001918e+31), - INFINITY, - "f32.no_fold_div_div(13417423306752.0, 2.933920464447575e-32, 7.638637444001918e+31)" - ); - assertEqualF32( - floatexprs68_f32X2Eno_fold_div_div(&instance, -0.00010776529234135523, -3.422094290809958e+37, -1.656232388649176e-13), - -1.9011326935735888e-29, - "f32.no_fold_div_div(-0.00010776529234135523, -3.422094290809958e+37, -1.656232388649176e-13)" - ); - assertEqualF32( - floatexprs68_f32X2Eno_fold_div_div(&instance, 130582499557376.0, 9.624534661044634e+16, -4.146154510069999e+37), - -3.272312173891313e-41, - "f32.no_fold_div_div(130582499557376.0, 9.624534661044634e+16, -4.146154510069999e+37)" - ); - assertEqualF64( - floatexprs68_f64X2Eno_fold_div_div(&instance, 4.7776287467101434e+101, 1.0278672042040401e+176, -7.18999894988884e-236), - -6.464673011878799e+160, - "f64.no_fold_div_div(4.7776287467101434e+101, 1.0278672042040401e+176, -7.18999894988884e-236)" - ); - assertEqualF64( - floatexprs68_f64X2Eno_fold_div_div(&instance, -2.1790236783875714e+238, 2.8324436844616576e-09, 1.861107682598687e+95), - -4.133606807992067e+151, - "f64.no_fold_div_div(-2.1790236783875714e+238, 2.8324436844616576e-09, 1.861107682598687e+95)" - ); - assertEqualF64( - floatexprs68_f64X2Eno_fold_div_div(&instance, -7.287619347826683, -1.3467607316739855e+265, 2.462719007013688e+51), - 2.19725454e-316, - "f64.no_fold_div_div(-7.287619347826683, -1.3467607316739855e+265, 2.462719007013688e+51)" + floatexprs68_f32X2Eno_fold_add_neg(&instance, -0.0), + 0.0, + "f32.no_fold_add_neg(-0.0)" ); assertEqualF64( - floatexprs68_f64X2Eno_fold_div_div(&instance, -2.865523978629633e+248, 1.0211980370639414e-247, 2.876458648332401e+289), - -INFINITY, - "f64.no_fold_div_div(-2.865523978629633e+248, 1.0211980370639414e-247, 2.876458648332401e+289)" + floatexprs68_f64X2Eno_fold_add_neg(&instance, 0.0), + 0.0, + "f64.no_fold_add_neg(0.0)" ); assertEqualF64( - floatexprs68_f64X2Eno_fold_div_div(&instance, -9.525735602663874e-268, 5.0233948816631796e-180, -2.8304570228221077e-42), - 6.699534674970116e-47, - "f64.no_fold_div_div(-9.525735602663874e-268, 5.0233948816631796e-180, -2.8304570228221077e-42)" + floatexprs68_f64X2Eno_fold_add_neg(&instance, -0.0), + 0.0, + "f64.no_fold_add_neg(-0.0)" ); } diff --git a/tests/gen/assert_float_exprs.69.c b/tests/gen/assert_float_exprs.69.c index 80e4483e..c544c466 100644 --- a/tests/gen/assert_float_exprs.69.c +++ b/tests/gen/assert_float_exprs.69.c @@ -9,53 +9,53 @@ void test() { floatexprs69Instantiate(&instance, resolveTestImports); printStart("float_exprs.69.wasm"); assertEqualF32( - floatexprs69_f32X2Eno_fold_mul_divs(&instance, -2.723473290390395e-33, 3.8978429106441753e-28, 4.8471230913214525e-27, -25.35777473449707), - 1.3355854774737518e-33, - "f32.no_fold_mul_divs(-2.723473290390395e-33, 3.8978429106441753e-28, 4.8471230913214525e-27, -25.35777473449707)" + floatexprs69_f32X2Eno_fold_6x_via_add(&instance, -8.555137345589493e+29), + -5.133082709585151e+30, + "f32.no_fold_6x_via_add(-8.555137345589493e+29)" ); assertEqualF32( - floatexprs69_f32X2Eno_fold_mul_divs(&instance, -5.372844131686042e+30, 38340912.0, 1.4973162251408212e-05, 0.19213825464248657), - -1.0920474831396798e+19, - "f32.no_fold_mul_divs(-5.372844131686042e+30, 38340912.0, 1.4973162251408212e-05, 0.19213825464248657)" + floatexprs69_f32X2Eno_fold_6x_via_add(&instance, -1.2095059945729172e-23), + -7.257036282981865e-23, + "f32.no_fold_6x_via_add(-1.2095059945729172e-23)" ); assertEqualF32( - floatexprs69_f32X2Eno_fold_mul_divs(&instance, -16085042176.0, -1092920213504.0, -869606016.0, -1201.2060546875), - 10654.638671875, - "f32.no_fold_mul_divs(-16085042176.0, -1092920213504.0, -869606016.0, -1201.2060546875)" + floatexprs69_f32X2Eno_fold_6x_via_add(&instance, 6.642689238252199e-24), + 3.9856133851791384e-23, + "f32.no_fold_6x_via_add(6.642689238252199e-24)" ); assertEqualF32( - floatexprs69_f32X2Eno_fold_mul_divs(&instance, -1.2712231404391021e+33, 1.0768114178105748e-10, 1.857627103163395e-05, 4.9268619715816126e+23), - -INFINITY, - "f32.no_fold_mul_divs(-1.2712231404391021e+33, 1.0768114178105748e-10, 1.857627103163395e-05, 4.9268619715816126e+23)" + floatexprs69_f32X2Eno_fold_6x_via_add(&instance, -6.147345965601403e-10), + -3.688407357316237e-09, + "f32.no_fold_6x_via_add(-6.147345965601403e-10)" ); assertEqualF32( - floatexprs69_f32X2Eno_fold_mul_divs(&instance, 1.3783863765364776e-16, -6.504628450864499e-20, 6.816768371365373e-28, 2.2892627030146606e-11), - -6.310029538811324e-14, - "f32.no_fold_mul_divs(1.3783863765364776e-16, -6.504628450864499e-20, 6.816768371365373e-28, 2.2892627030146606e-11)" + floatexprs69_f32X2Eno_fold_6x_via_add(&instance, -1.209858100766292e+24), + -7.259148316367375e+24, + "f32.no_fold_6x_via_add(-1.209858100766292e+24)" ); assertEqualF64( - floatexprs69_f64X2Eno_fold_mul_divs(&instance, -3.466499805233369e-247, -4.045567512248635e-140, -6.462341070607592e+164, 1.0045589533354074e+56), - -55.12215321310017, - "f64.no_fold_mul_divs(-3.466499805233369e-247, -4.045567512248635e-140, -6.462341070607592e+164, 1.0045589533354074e+56)" + floatexprs69_f64X2Eno_fold_6x_via_add(&instance, -3.517044906027714e+20), + -2.1102269436166286e+21, + "f64.no_fold_6x_via_add(-3.517044906027714e+20)" ); assertEqualF64( - floatexprs69_f64X2Eno_fold_mul_divs(&instance, -5.054883907636325e+34, 2.2223781649976275e-277, -1.5029790371100852e+109, -6.994123759538121e+140), - -INFINITY, - "f64.no_fold_mul_divs(-5.054883907636325e+34, 2.2223781649976275e-277, -1.5029790371100852e+109, -6.994123759538121e+140)" + floatexprs69_f64X2Eno_fold_6x_via_add(&instance, -1.4824294109868734e-161), + -8.894576465921239e-161, + "f64.no_fold_6x_via_add(-1.4824294109868734e-161)" ); assertEqualF64( - floatexprs69_f64X2Eno_fold_mul_divs(&instance, -8.361116536344947e+92, -1.0029528876067567e+58, -1.2867801766038772e-42, -4.2230277746883753e+220), - 2.540178100556387e-228, - "f64.no_fold_mul_divs(-8.361116536344947e+92, -1.0029528876067567e+58, -1.2867801766038772e-42, -4.2230277746883753e+220)" + floatexprs69_f64X2Eno_fold_6x_via_add(&instance, -7.484567838781003e+81), + -4.4907407032686014e+82, + "f64.no_fold_6x_via_add(-7.484567838781003e+81)" ); assertEqualF64( - floatexprs69_f64X2Eno_fold_mul_divs(&instance, -1.2020032116411193e+39, -4.667409771338769e-105, 1.0888652376540085e-288, 1.8334948666517216e+67), - 0.0, - "f64.no_fold_mul_divs(-1.2020032116411193e+39, -4.667409771338769e-105, 1.0888652376540085e-288, 1.8334948666517216e+67)" + floatexprs69_f64X2Eno_fold_6x_via_add(&instance, 1.7277868192936067e+226), + 1.0366720915761641e+227, + "f64.no_fold_6x_via_add(1.7277868192936067e+226)" ); assertEqualF64( - floatexprs69_f64X2Eno_fold_mul_divs(&instance, 6.331839568840419e-06, 5.544474241905778e-84, 2.7822472480359097e-187, -1.4419321081893022e+106), - -2.2035374770746518e-215, - "f64.no_fold_mul_divs(6.331839568840419e-06, 5.544474241905778e-84, 2.7822472480359097e-187, -1.4419321081893022e+106)" + floatexprs69_f64X2Eno_fold_6x_via_add(&instance, -4.311639752519561e+70), + -2.5869838515117364e+71, + "f64.no_fold_6x_via_add(-4.311639752519561e+70)" ); } diff --git a/tests/gen/assert_float_exprs.70.c b/tests/gen/assert_float_exprs.70.c index 3b806081..8a288a07 100644 --- a/tests/gen/assert_float_exprs.70.c +++ b/tests/gen/assert_float_exprs.70.c @@ -9,53 +9,53 @@ void test() { floatexprs70Instantiate(&instance, resolveTestImports); printStart("float_exprs.70.wasm"); assertEqualF32( - floatexprs70_f32X2Eno_fold_add_divs(&instance, 377.368896484375, -0.04011818394064903, -1.3629298560546316e+38), - -2.768512148377355e-36, - "f32.no_fold_add_divs(377.368896484375, -0.04011818394064903, -1.3629298560546316e+38)" + floatexprs70_f32X2Eno_fold_div_div(&instance, -5.938475291688351e+23, -3.0265671739471145e-05, -1584.8681640625), + -1.2380308618298272e+25, + "f32.no_fold_div_div(-5.938475291688351e+23, -3.0265671739471145e-05, -1584.8681640625)" ); assertEqualF32( - floatexprs70_f32X2Eno_fold_add_divs(&instance, -1.8234023041237435e-19, -3.3970288113369237e-15, -170996707360768.0), - 1.9867115411157125e-29, - "f32.no_fold_add_divs(-1.8234023041237435e-19, -3.3970288113369237e-15, -170996707360768.0)" + floatexprs70_f32X2Eno_fold_div_div(&instance, 1.5438961616455177e-21, 2.5334292803745544e+33, -2.684478285682781e-34), + -0.0, + "f32.no_fold_div_div(1.5438961616455177e-21, 2.5334292803745544e+33, -2.684478285682781e-34)" ); assertEqualF32( - floatexprs70_f32X2Eno_fold_add_divs(&instance, -1.967263835557856e-14, 6.414098702699398e-20, -541989070176256.0), - 3.6296996567176507e-29, - "f32.no_fold_add_divs(-1.967263835557856e-14, 6.414098702699398e-20, -541989070176256.0)" + floatexprs70_f32X2Eno_fold_div_div(&instance, 13417423306752.0, 2.933920464447575e-32, 7.638637444001918e+31), + INFINITY, + "f32.no_fold_div_div(13417423306752.0, 2.933920464447575e-32, 7.638637444001918e+31)" ); assertEqualF32( - floatexprs70_f32X2Eno_fold_add_divs(&instance, -4.038505822193515e-31, 3.848228081428171e-30, -3.4523719791292376e+26), - 0.0, - "f32.no_fold_add_divs(-4.038505822193515e-31, 3.848228081428171e-30, -3.4523719791292376e+26)" + floatexprs70_f32X2Eno_fold_div_div(&instance, -0.00010776529234135523, -3.422094290809958e+37, -1.656232388649176e-13), + -1.9011326935735888e-29, + "f32.no_fold_div_div(-0.00010776529234135523, -3.422094290809958e+37, -1.656232388649176e-13)" ); assertEqualF32( - floatexprs70_f32X2Eno_fold_add_divs(&instance, 0.0010934415040537715, 0.2070312350988388, 1.3509783969902986e-37), - 1.540547727687837e+36, - "f32.no_fold_add_divs(0.0010934415040537715, 0.2070312350988388, 1.3509783969902986e-37)" + floatexprs70_f32X2Eno_fold_div_div(&instance, 130582499557376.0, 9.624534661044634e+16, -4.146154510069999e+37), + -3.272312173891313e-41, + "f32.no_fold_div_div(130582499557376.0, 9.624534661044634e+16, -4.146154510069999e+37)" ); assertEqualF64( - floatexprs70_f64X2Eno_fold_add_divs(&instance, -4.91701943214376e+129, 6.813215632201902e+130, 2.6125410100237784e+274), - 2.4196801752520584e-144, - "f64.no_fold_add_divs(-4.91701943214376e+129, 6.813215632201902e+130, 2.6125410100237784e+274)" + floatexprs70_f64X2Eno_fold_div_div(&instance, 4.7776287467101434e+101, 1.0278672042040401e+176, -7.18999894988884e-236), + -6.464673011878799e+160, + "f64.no_fold_div_div(4.7776287467101434e+101, 1.0278672042040401e+176, -7.18999894988884e-236)" ); assertEqualF64( - floatexprs70_f64X2Eno_fold_add_divs(&instance, -1.020646795322455e+16, 63.422616671746226, -1.6024747869814892e-288), - 6.369190976445851e+303, - "f64.no_fold_add_divs(-1.020646795322455e+16, 63.422616671746226, -1.6024747869814892e-288)" + floatexprs70_f64X2Eno_fold_div_div(&instance, -2.1790236783875714e+238, 2.8324436844616576e-09, 1.861107682598687e+95), + -4.133606807992067e+151, + "f64.no_fold_div_div(-2.1790236783875714e+238, 2.8324436844616576e-09, 1.861107682598687e+95)" ); assertEqualF64( - floatexprs70_f64X2Eno_fold_add_divs(&instance, -1.5270569633109837e-291, 2.5755503329232514e-294, 5.882693916421492e+151), - 0.0, - "f64.no_fold_add_divs(-1.5270569633109837e-291, 2.5755503329232514e-294, 5.882693916421492e+151)" + floatexprs70_f64X2Eno_fold_div_div(&instance, -7.287619347826683, -1.3467607316739855e+265, 2.462719007013688e+51), + 2.19725454e-316, + "f64.no_fold_div_div(-7.287619347826683, -1.3467607316739855e+265, 2.462719007013688e+51)" ); assertEqualF64( - floatexprs70_f64X2Eno_fold_add_divs(&instance, 2.666796487439464e+94, -2.1315692524936578e+99, 1.2377004518680012e-38), - -1.7221796932462534e+137, - "f64.no_fold_add_divs(2.666796487439464e+94, -2.1315692524936578e+99, 1.2377004518680012e-38)" + floatexprs70_f64X2Eno_fold_div_div(&instance, -2.865523978629633e+248, 1.0211980370639414e-247, 2.876458648332401e+289), + -INFINITY, + "f64.no_fold_div_div(-2.865523978629633e+248, 1.0211980370639414e-247, 2.876458648332401e+289)" ); assertEqualF64( - floatexprs70_f64X2Eno_fold_add_divs(&instance, -1.2952888377288216e-219, 5.808769259900048e-228, 1.6745741699443756e-21), - -7.735034106987796e-199, - "f64.no_fold_add_divs(-1.2952888377288216e-219, 5.808769259900048e-228, 1.6745741699443756e-21)" + floatexprs70_f64X2Eno_fold_div_div(&instance, -9.525735602663874e-268, 5.0233948816631796e-180, -2.8304570228221077e-42), + 6.699534674970116e-47, + "f64.no_fold_div_div(-9.525735602663874e-268, 5.0233948816631796e-180, -2.8304570228221077e-42)" ); } diff --git a/tests/gen/assert_float_exprs.71.c b/tests/gen/assert_float_exprs.71.c index d8a008aa..a2e1f2e6 100644 --- a/tests/gen/assert_float_exprs.71.c +++ b/tests/gen/assert_float_exprs.71.c @@ -9,53 +9,53 @@ void test() { floatexprs71Instantiate(&instance, resolveTestImports); printStart("float_exprs.71.wasm"); assertEqualF32( - floatexprs71_f32X2Eno_fold_sqrt_square(&instance, -1.8460000706651253e-20), - 1.8460010400174057e-20, - "f32.no_fold_sqrt_square(-1.8460000706651253e-20)" + floatexprs71_f32X2Eno_fold_mul_divs(&instance, -2.723473290390395e-33, 3.8978429106441753e-28, 4.8471230913214525e-27, -25.35777473449707), + 1.3355854774737518e-33, + "f32.no_fold_mul_divs(-2.723473290390395e-33, 3.8978429106441753e-28, 4.8471230913214525e-27, -25.35777473449707)" ); assertEqualF32( - floatexprs71_f32X2Eno_fold_sqrt_square(&instance, -1.7907473239008437e-22), - 1.7952678124321221e-22, - "f32.no_fold_sqrt_square(-1.7907473239008437e-22)" + floatexprs71_f32X2Eno_fold_mul_divs(&instance, -5.372844131686042e+30, 38340912.0, 1.4973162251408212e-05, 0.19213825464248657), + -1.0920474831396798e+19, + "f32.no_fold_mul_divs(-5.372844131686042e+30, 38340912.0, 1.4973162251408212e-05, 0.19213825464248657)" ); assertEqualF32( - floatexprs71_f32X2Eno_fold_sqrt_square(&instance, -7.912078484555785e-22), - 7.91442007615797e-22, - "f32.no_fold_sqrt_square(-7.912078484555785e-22)" + floatexprs71_f32X2Eno_fold_mul_divs(&instance, -16085042176.0, -1092920213504.0, -869606016.0, -1201.2060546875), + 10654.638671875, + "f32.no_fold_mul_divs(-16085042176.0, -1092920213504.0, -869606016.0, -1201.2060546875)" ); assertEqualF32( - floatexprs71_f32X2Eno_fold_sqrt_square(&instance, 1.8012937732222048e-26), - 0.0, - "f32.no_fold_sqrt_square(1.8012937732222048e-26)" + floatexprs71_f32X2Eno_fold_mul_divs(&instance, -1.2712231404391021e+33, 1.0768114178105748e-10, 1.857627103163395e-05, 4.9268619715816126e+23), + -INFINITY, + "f32.no_fold_mul_divs(-1.2712231404391021e+33, 1.0768114178105748e-10, 1.857627103163395e-05, 4.9268619715816126e+23)" ); assertEqualF32( - floatexprs71_f32X2Eno_fold_sqrt_square(&instance, 6.1050196817521095e+32), - INFINITY, - "f32.no_fold_sqrt_square(6.1050196817521095e+32)" + floatexprs71_f32X2Eno_fold_mul_divs(&instance, 1.3783863765364776e-16, -6.504628450864499e-20, 6.816768371365373e-28, 2.2892627030146606e-11), + -6.310029538811324e-14, + "f32.no_fold_mul_divs(1.3783863765364776e-16, -6.504628450864499e-20, 6.816768371365373e-28, 2.2892627030146606e-11)" ); assertEqualF64( - floatexprs71_f64X2Eno_fold_sqrt_square(&instance, 6.209297167747496e-160), - 6.209299542179727e-160, - "f64.no_fold_sqrt_square(6.209297167747496e-160)" + floatexprs71_f64X2Eno_fold_mul_divs(&instance, -3.466499805233369e-247, -4.045567512248635e-140, -6.462341070607592e+164, 1.0045589533354074e+56), + -55.12215321310017, + "f64.no_fold_mul_divs(-3.466499805233369e-247, -4.045567512248635e-140, -6.462341070607592e+164, 1.0045589533354074e+56)" ); assertEqualF64( - floatexprs71_f64X2Eno_fold_sqrt_square(&instance, -2.4211175303738945e-155), - 2.4211175303738937e-155, - "f64.no_fold_sqrt_square(-2.4211175303738945e-155)" + floatexprs71_f64X2Eno_fold_mul_divs(&instance, -5.054883907636325e+34, 2.2223781649976275e-277, -1.5029790371100852e+109, -6.994123759538121e+140), + -INFINITY, + "f64.no_fold_mul_divs(-5.054883907636325e+34, 2.2223781649976275e-277, -1.5029790371100852e+109, -6.994123759538121e+140)" ); assertEqualF64( - floatexprs71_f64X2Eno_fold_sqrt_square(&instance, -1.6460687611875645e-157), - 1.6460687611532367e-157, - "f64.no_fold_sqrt_square(-1.6460687611875645e-157)" + floatexprs71_f64X2Eno_fold_mul_divs(&instance, -8.361116536344947e+92, -1.0029528876067567e+58, -1.2867801766038772e-42, -4.2230277746883753e+220), + 2.540178100556387e-228, + "f64.no_fold_mul_divs(-8.361116536344947e+92, -1.0029528876067567e+58, -1.2867801766038772e-42, -4.2230277746883753e+220)" ); assertEqualF64( - floatexprs71_f64X2Eno_fold_sqrt_square(&instance, -3.797811613378828e-186), + floatexprs71_f64X2Eno_fold_mul_divs(&instance, -1.2020032116411193e+39, -4.667409771338769e-105, 1.0888652376540085e-288, 1.8334948666517216e+67), 0.0, - "f64.no_fold_sqrt_square(-3.797811613378828e-186)" + "f64.no_fold_mul_divs(-1.2020032116411193e+39, -4.667409771338769e-105, 1.0888652376540085e-288, 1.8334948666517216e+67)" ); assertEqualF64( - floatexprs71_f64X2Eno_fold_sqrt_square(&instance, 8.158084284605592e+257), - INFINITY, - "f64.no_fold_sqrt_square(8.158084284605592e+257)" + floatexprs71_f64X2Eno_fold_mul_divs(&instance, 6.331839568840419e-06, 5.544474241905778e-84, 2.7822472480359097e-187, -1.4419321081893022e+106), + -2.2035374770746518e-215, + "f64.no_fold_mul_divs(6.331839568840419e-06, 5.544474241905778e-84, 2.7822472480359097e-187, -1.4419321081893022e+106)" ); } diff --git a/tests/gen/assert_float_exprs.72.c b/tests/gen/assert_float_exprs.72.c index 0bacea24..db3bbe43 100644 --- a/tests/gen/assert_float_exprs.72.c +++ b/tests/gen/assert_float_exprs.72.c @@ -9,43 +9,53 @@ void test() { floatexprs72Instantiate(&instance, resolveTestImports); printStart("float_exprs.72.wasm"); assertEqualF32( - floatexprs72_f32X2Eno_fold_mul_sqrts(&instance, 2.536590811126416e-28, 4.132067465967282e-10), - 3.237493152183345e-19, - "f32.no_fold_mul_sqrts(2.536590811126416e-28, 4.132067465967282e-10)" + floatexprs72_f32X2Eno_fold_add_divs(&instance, 377.368896484375, -0.04011818394064903, -1.3629298560546316e+38), + -2.768512148377355e-36, + "f32.no_fold_add_divs(377.368896484375, -0.04011818394064903, -1.3629298560546316e+38)" ); assertEqualF32( - floatexprs72_f32X2Eno_fold_mul_sqrts(&instance, 4.2144832231674335e-27, 97.24911499023438), - 6.401990482879372e-13, - "f32.no_fold_mul_sqrts(4.2144832231674335e-27, 97.24911499023438)" + floatexprs72_f32X2Eno_fold_add_divs(&instance, -1.8234023041237435e-19, -3.3970288113369237e-15, -170996707360768.0), + 1.9867115411157125e-29, + "f32.no_fold_add_divs(-1.8234023041237435e-19, -3.3970288113369237e-15, -170996707360768.0)" ); assertEqualF32( - floatexprs72_f32X2Eno_fold_mul_sqrts(&instance, 3.7240763422782964e+30, 0.0029449081048369408), - 104723751370752.0, - "f32.no_fold_mul_sqrts(3.7240763422782964e+30, 0.0029449081048369408)" + floatexprs72_f32X2Eno_fold_add_divs(&instance, -1.967263835557856e-14, 6.414098702699398e-20, -541989070176256.0), + 3.6296996567176507e-29, + "f32.no_fold_add_divs(-1.967263835557856e-14, 6.414098702699398e-20, -541989070176256.0)" ); assertEqualF32( - floatexprs72_f32X2Eno_fold_mul_sqrts(&instance, 1.8660559344485864e-17, 0.002111261012032628), - 1.9848754584383954e-10, - "f32.no_fold_mul_sqrts(1.8660559344485864e-17, 0.002111261012032628)" + floatexprs72_f32X2Eno_fold_add_divs(&instance, -4.038505822193515e-31, 3.848228081428171e-30, -3.4523719791292376e+26), + 0.0, + "f32.no_fold_add_divs(-4.038505822193515e-31, 3.848228081428171e-30, -3.4523719791292376e+26)" + ); + assertEqualF32( + floatexprs72_f32X2Eno_fold_add_divs(&instance, 0.0010934415040537715, 0.2070312350988388, 1.3509783969902986e-37), + 1.540547727687837e+36, + "f32.no_fold_add_divs(0.0010934415040537715, 0.2070312350988388, 1.3509783969902986e-37)" + ); + assertEqualF64( + floatexprs72_f64X2Eno_fold_add_divs(&instance, -4.91701943214376e+129, 6.813215632201902e+130, 2.6125410100237784e+274), + 2.4196801752520584e-144, + "f64.no_fold_add_divs(-4.91701943214376e+129, 6.813215632201902e+130, 2.6125410100237784e+274)" ); assertEqualF64( - floatexprs72_f64X2Eno_fold_mul_sqrts(&instance, 3.7082569269527534e-194, 4.7183002857015043e-122), - 4.1829020688865954e-158, - "f64.no_fold_mul_sqrts(3.7082569269527534e-194, 4.7183002857015043e-122)" + floatexprs72_f64X2Eno_fold_add_divs(&instance, -1.020646795322455e+16, 63.422616671746226, -1.6024747869814892e-288), + 6.369190976445851e+303, + "f64.no_fold_add_divs(-1.020646795322455e+16, 63.422616671746226, -1.6024747869814892e-288)" ); assertEqualF64( - floatexprs72_f64X2Eno_fold_mul_sqrts(&instance, 2.329359505918655e-27, 2.0743399642806364e-275), - 2.1981545701574452e-151, - "f64.no_fold_mul_sqrts(2.329359505918655e-27, 2.0743399642806364e-275)" + floatexprs72_f64X2Eno_fold_add_divs(&instance, -1.5270569633109837e-291, 2.5755503329232514e-294, 5.882693916421492e+151), + 0.0, + "f64.no_fold_add_divs(-1.5270569633109837e-291, 2.5755503329232514e-294, 5.882693916421492e+151)" ); assertEqualF64( - floatexprs72_f64X2Eno_fold_mul_sqrts(&instance, 1.0541899336289437e-109, 5.98123819872803e-173), - 2.511047809129887e-141, - "f64.no_fold_mul_sqrts(1.0541899336289437e-109, 5.98123819872803e-173)" + floatexprs72_f64X2Eno_fold_add_divs(&instance, 2.666796487439464e+94, -2.1315692524936578e+99, 1.2377004518680012e-38), + -1.7221796932462534e+137, + "f64.no_fold_add_divs(2.666796487439464e+94, -2.1315692524936578e+99, 1.2377004518680012e-38)" ); assertEqualF64( - floatexprs72_f64X2Eno_fold_mul_sqrts(&instance, 25589482.717358638, 3.913891207119902e+154), - 1.0007719590506955e+81, - "f64.no_fold_mul_sqrts(25589482.717358638, 3.913891207119902e+154)" + floatexprs72_f64X2Eno_fold_add_divs(&instance, -1.2952888377288216e-219, 5.808769259900048e-228, 1.6745741699443756e-21), + -7.735034106987796e-199, + "f64.no_fold_add_divs(-1.2952888377288216e-219, 5.808769259900048e-228, 1.6745741699443756e-21)" ); } diff --git a/tests/gen/assert_float_exprs.73.c b/tests/gen/assert_float_exprs.73.c index e7b233cf..9e4257e9 100644 --- a/tests/gen/assert_float_exprs.73.c +++ b/tests/gen/assert_float_exprs.73.c @@ -9,43 +9,53 @@ void test() { floatexprs73Instantiate(&instance, resolveTestImports); printStart("float_exprs.73.wasm"); assertEqualF32( - floatexprs73_f32X2Eno_fold_div_sqrts(&instance, 7407384064.0, 209778928.0), - 5.942258358001709, - "f32.no_fold_div_sqrts(7407384064.0, 209778928.0)" + floatexprs73_f32X2Eno_fold_sqrt_square(&instance, -1.8460000706651253e-20), + 1.8460010400174057e-20, + "f32.no_fold_sqrt_square(-1.8460000706651253e-20)" ); assertEqualF32( - floatexprs73_f32X2Eno_fold_div_sqrts(&instance, 1.3764125694787306e-36, 54692.8984375), - 5.016592728986257e-21, - "f32.no_fold_div_sqrts(1.3764125694787306e-36, 54692.8984375)" + floatexprs73_f32X2Eno_fold_sqrt_square(&instance, -1.7907473239008437e-22), + 1.7952678124321221e-22, + "f32.no_fold_sqrt_square(-1.7907473239008437e-22)" ); assertEqualF32( - floatexprs73_f32X2Eno_fold_div_sqrts(&instance, 9.792889648106701e+17, 1.2643551761115646e-09), - 27830490497024.0, - "f32.no_fold_div_sqrts(9.792889648106701e+17, 1.2643551761115646e-09)" + floatexprs73_f32X2Eno_fold_sqrt_square(&instance, -7.912078484555785e-22), + 7.91442007615797e-22, + "f32.no_fold_sqrt_square(-7.912078484555785e-22)" ); assertEqualF32( - floatexprs73_f32X2Eno_fold_div_sqrts(&instance, 2.9141283262714446e-34, 1.7928174342978603e-31), - 0.04031682014465332, - "f32.no_fold_div_sqrts(2.9141283262714446e-34, 1.7928174342978603e-31)" + floatexprs73_f32X2Eno_fold_sqrt_square(&instance, 1.8012937732222048e-26), + 0.0, + "f32.no_fold_sqrt_square(1.8012937732222048e-26)" + ); + assertEqualF32( + floatexprs73_f32X2Eno_fold_sqrt_square(&instance, 6.1050196817521095e+32), + INFINITY, + "f32.no_fold_sqrt_square(6.1050196817521095e+32)" + ); + assertEqualF64( + floatexprs73_f64X2Eno_fold_sqrt_square(&instance, 6.209297167747496e-160), + 6.209299542179727e-160, + "f64.no_fold_sqrt_square(6.209297167747496e-160)" ); assertEqualF64( - floatexprs73_f64X2Eno_fold_div_sqrts(&instance, 3.3818852462305824e-177, 7.655783976315048e+162), - 2.1017671425665687e-170, - "f64.no_fold_div_sqrts(3.3818852462305824e-177, 7.655783976315048e+162)" + floatexprs73_f64X2Eno_fold_sqrt_square(&instance, -2.4211175303738945e-155), + 2.4211175303738937e-155, + "f64.no_fold_sqrt_square(-2.4211175303738945e-155)" ); assertEqualF64( - floatexprs73_f64X2Eno_fold_div_sqrts(&instance, 4.596333567064751e+157, 2.3932467846883046e-33), - 1.3858366017266315e+95, - "f64.no_fold_div_sqrts(4.596333567064751e+157, 2.3932467846883046e-33)" + floatexprs73_f64X2Eno_fold_sqrt_square(&instance, -1.6460687611875645e-157), + 1.6460687611532367e-157, + "f64.no_fold_sqrt_square(-1.6460687611875645e-157)" ); assertEqualF64( - floatexprs73_f64X2Eno_fold_div_sqrts(&instance, 2.5327340978668086e-244, 4.475305129961258e+87), - 2.3789399141325018e-166, - "f64.no_fold_div_sqrts(2.5327340978668086e-244, 4.475305129961258e+87)" + floatexprs73_f64X2Eno_fold_sqrt_square(&instance, -3.797811613378828e-186), + 0.0, + "f64.no_fold_sqrt_square(-3.797811613378828e-186)" ); assertEqualF64( - floatexprs73_f64X2Eno_fold_div_sqrts(&instance, 5.103070160197939e-238, 4.601576690980825e+284), - 1.0530826009924495e-261, - "f64.no_fold_div_sqrts(5.103070160197939e-238, 4.601576690980825e+284)" + floatexprs73_f64X2Eno_fold_sqrt_square(&instance, 8.158084284605592e+257), + INFINITY, + "f64.no_fold_sqrt_square(8.158084284605592e+257)" ); } diff --git a/tests/gen/assert_float_exprs.74.c b/tests/gen/assert_float_exprs.74.c index ff01cffc..7cc98781 100644 --- a/tests/gen/assert_float_exprs.74.c +++ b/tests/gen/assert_float_exprs.74.c @@ -9,53 +9,43 @@ void test() { floatexprs74Instantiate(&instance, resolveTestImports); printStart("float_exprs.74.wasm"); assertEqualF32( - floatexprs74_f32X2Eno_fold_mul_sqrt_div(&instance, -4.7285568066582555e+24, 8.677281708846403e+27), - -INFINITY, - "f32.no_fold_mul_sqrt_div(-4.7285568066582555e+24, 8.677281708846403e+27)" + floatexprs74_f32X2Eno_fold_mul_sqrts(&instance, 2.536590811126416e-28, 4.132067465967282e-10), + 3.237493152183345e-19, + "f32.no_fold_mul_sqrts(2.536590811126416e-28, 4.132067465967282e-10)" ); assertEqualF32( - floatexprs74_f32X2Eno_fold_mul_sqrt_div(&instance, -1.1776881788564836e-36, 9.805153097384004e-30), - -0.0, - "f32.no_fold_mul_sqrt_div(-1.1776881788564836e-36, 9.805153097384004e-30)" + floatexprs74_f32X2Eno_fold_mul_sqrts(&instance, 4.2144832231674335e-27, 97.24911499023438), + 6.401990482879372e-13, + "f32.no_fold_mul_sqrts(4.2144832231674335e-27, 97.24911499023438)" ); assertEqualF32( - floatexprs74_f32X2Eno_fold_mul_sqrt_div(&instance, 816717056.0, 3.323170900355518e-39), - 1.416756814348236e+28, - "f32.no_fold_mul_sqrt_div(816717056.0, 3.323170900355518e-39)" + floatexprs74_f32X2Eno_fold_mul_sqrts(&instance, 3.7240763422782964e+30, 0.0029449081048369408), + 104723751370752.0, + "f32.no_fold_mul_sqrts(3.7240763422782964e+30, 0.0029449081048369408)" ); assertEqualF32( - floatexprs74_f32X2Eno_fold_mul_sqrt_div(&instance, -11932267446272.0, 8.637066802072802e+33), - -0.0001283925521420315, - "f32.no_fold_mul_sqrt_div(-11932267446272.0, 8.637066802072802e+33)" - ); - assertEqualF32( - floatexprs74_f32X2Eno_fold_mul_sqrt_div(&instance, -401.02349853515625, 134.33021545410156), - -34.600547790527344, - "f32.no_fold_mul_sqrt_div(-401.02349853515625, 134.33021545410156)" - ); - assertEqualF64( - floatexprs74_f64X2Eno_fold_mul_sqrt_div(&instance, 1.4681346229104905e+210, 2.466074582285183e+228), - INFINITY, - "f64.no_fold_mul_sqrt_div(1.4681346229104905e+210, 2.466074582285183e+228)" + floatexprs74_f32X2Eno_fold_mul_sqrts(&instance, 1.8660559344485864e-17, 0.002111261012032628), + 1.9848754584383954e-10, + "f32.no_fold_mul_sqrts(1.8660559344485864e-17, 0.002111261012032628)" ); assertEqualF64( - floatexprs74_f64X2Eno_fold_mul_sqrt_div(&instance, -1.7254022016758028e-249, 5.5835540747130025e-202), - -0.0, - "f64.no_fold_mul_sqrt_div(-1.7254022016758028e-249, 5.5835540747130025e-202)" + floatexprs74_f64X2Eno_fold_mul_sqrts(&instance, 3.7082569269527534e-194, 4.7183002857015043e-122), + 4.1829020688865954e-158, + "f64.no_fold_mul_sqrts(3.7082569269527534e-194, 4.7183002857015043e-122)" ); assertEqualF64( - floatexprs74_f64X2Eno_fold_mul_sqrt_div(&instance, 1.6812810256029166e-128, 7.362783602442129e+168), - 6.196112486187196e-213, - "f64.no_fold_mul_sqrt_div(1.6812810256029166e-128, 7.362783602442129e+168)" + floatexprs74_f64X2Eno_fold_mul_sqrts(&instance, 2.329359505918655e-27, 2.0743399642806364e-275), + 2.1981545701574452e-151, + "f64.no_fold_mul_sqrts(2.329359505918655e-27, 2.0743399642806364e-275)" ); assertEqualF64( - floatexprs74_f64X2Eno_fold_mul_sqrt_div(&instance, -1.0605483729939836e+106, 6.22591783694072e-146), - -4.2503900822233765e+178, - "f64.no_fold_mul_sqrt_div(-1.0605483729939836e+106, 6.22591783694072e-146)" + floatexprs74_f64X2Eno_fold_mul_sqrts(&instance, 1.0541899336289437e-109, 5.98123819872803e-173), + 2.511047809129887e-141, + "f64.no_fold_mul_sqrts(1.0541899336289437e-109, 5.98123819872803e-173)" ); assertEqualF64( - floatexprs74_f64X2Eno_fold_mul_sqrt_div(&instance, 2.6336349695373093e+31, 3.07914132858533e+253), - 4.746142447510695e-96, - "f64.no_fold_mul_sqrt_div(2.6336349695373093e+31, 3.07914132858533e+253)" + floatexprs74_f64X2Eno_fold_mul_sqrts(&instance, 25589482.717358638, 3.913891207119902e+154), + 1.0007719590506955e+81, + "f64.no_fold_mul_sqrts(25589482.717358638, 3.913891207119902e+154)" ); } diff --git a/tests/gen/assert_float_exprs.75.c b/tests/gen/assert_float_exprs.75.c index 7ed31a18..8105cc2c 100644 --- a/tests/gen/assert_float_exprs.75.c +++ b/tests/gen/assert_float_exprs.75.c @@ -9,13 +9,43 @@ void test() { floatexprs75Instantiate(&instance, resolveTestImports); printStart("float_exprs.75.wasm"); assertEqualF32( - floatexprs75_f32X2Eno_flush_intermediate_subnormal(&instance, 1.1754943508222875e-38, 1.1920928955078125e-07, 8388608.0), - 1.1754943508222875e-38, - "f32.no_flush_intermediate_subnormal(1.1754943508222875e-38, 1.1920928955078125e-07, 8388608.0)" + floatexprs75_f32X2Eno_fold_div_sqrts(&instance, 7407384064.0, 209778928.0), + 5.942258358001709, + "f32.no_fold_div_sqrts(7407384064.0, 209778928.0)" + ); + assertEqualF32( + floatexprs75_f32X2Eno_fold_div_sqrts(&instance, 1.3764125694787306e-36, 54692.8984375), + 5.016592728986257e-21, + "f32.no_fold_div_sqrts(1.3764125694787306e-36, 54692.8984375)" + ); + assertEqualF32( + floatexprs75_f32X2Eno_fold_div_sqrts(&instance, 9.792889648106701e+17, 1.2643551761115646e-09), + 27830490497024.0, + "f32.no_fold_div_sqrts(9.792889648106701e+17, 1.2643551761115646e-09)" + ); + assertEqualF32( + floatexprs75_f32X2Eno_fold_div_sqrts(&instance, 2.9141283262714446e-34, 1.7928174342978603e-31), + 0.04031682014465332, + "f32.no_fold_div_sqrts(2.9141283262714446e-34, 1.7928174342978603e-31)" + ); + assertEqualF64( + floatexprs75_f64X2Eno_fold_div_sqrts(&instance, 3.3818852462305824e-177, 7.655783976315048e+162), + 2.1017671425665687e-170, + "f64.no_fold_div_sqrts(3.3818852462305824e-177, 7.655783976315048e+162)" + ); + assertEqualF64( + floatexprs75_f64X2Eno_fold_div_sqrts(&instance, 4.596333567064751e+157, 2.3932467846883046e-33), + 1.3858366017266315e+95, + "f64.no_fold_div_sqrts(4.596333567064751e+157, 2.3932467846883046e-33)" + ); + assertEqualF64( + floatexprs75_f64X2Eno_fold_div_sqrts(&instance, 2.5327340978668086e-244, 4.475305129961258e+87), + 2.3789399141325018e-166, + "f64.no_fold_div_sqrts(2.5327340978668086e-244, 4.475305129961258e+87)" ); assertEqualF64( - floatexprs75_f64X2Eno_flush_intermediate_subnormal(&instance, 2.2250738585072014e-308, 2.220446049250313e-16, 4503599627370496.0), - 2.2250738585072014e-308, - "f64.no_flush_intermediate_subnormal(2.2250738585072014e-308, 2.220446049250313e-16, 4503599627370496.0)" + floatexprs75_f64X2Eno_fold_div_sqrts(&instance, 5.103070160197939e-238, 4.601576690980825e+284), + 1.0530826009924495e-261, + "f64.no_fold_div_sqrts(5.103070160197939e-238, 4.601576690980825e+284)" ); } diff --git a/tests/gen/assert_float_exprs.76.c b/tests/gen/assert_float_exprs.76.c index 708770f7..ba641dd2 100644 --- a/tests/gen/assert_float_exprs.76.c +++ b/tests/gen/assert_float_exprs.76.c @@ -8,69 +8,54 @@ void test() { floatexprs76Instance instance; floatexprs76Instantiate(&instance, resolveTestImports); printStart("float_exprs.76.wasm"); - assertEqualU32( - floatexprs76_f32X2Erecoding_eq(&instance, -INFINITY, 3.0), - 1u, - "f32.recoding_eq(-INFINITY, 3.0)" - ); - assertEqualU32( - floatexprs76_f32X2Erecoding_le(&instance, -INFINITY, 3.0), - 1u, - "f32.recoding_le(-INFINITY, 3.0)" - ); - assertEqualU32( - floatexprs76_f32X2Erecoding_lt(&instance, -INFINITY, 3.0), - 0u, - "f32.recoding_lt(-INFINITY, 3.0)" - ); - assertEqualU32( - floatexprs76_f32X2Erecoding_eq(&instance, 0.0, 1.0), - 1u, - "f32.recoding_eq(0.0, 1.0)" - ); - assertEqualU32( - floatexprs76_f32X2Erecoding_le(&instance, 0.0, 1.0), - 1u, - "f32.recoding_le(0.0, 1.0)" - ); - assertEqualU32( - floatexprs76_f32X2Erecoding_lt(&instance, 0.0, 1.0), - 0u, - "f32.recoding_lt(0.0, 1.0)" - ); - assertEqualU32( - floatexprs76_f64X2Erecoding_eq(&instance, -INFINITY, 3.0), - 1u, - "f64.recoding_eq(-INFINITY, 3.0)" - ); - assertEqualU32( - floatexprs76_f64X2Erecoding_le(&instance, -INFINITY, 3.0), - 1u, - "f64.recoding_le(-INFINITY, 3.0)" - ); - assertEqualU32( - floatexprs76_f64X2Erecoding_lt(&instance, -INFINITY, 3.0), - 0u, - "f64.recoding_lt(-INFINITY, 3.0)" + assertEqualF32( + floatexprs76_f32X2Eno_fold_mul_sqrt_div(&instance, -4.7285568066582555e+24, 8.677281708846403e+27), + -INFINITY, + "f32.no_fold_mul_sqrt_div(-4.7285568066582555e+24, 8.677281708846403e+27)" ); - assertEqualU32( - floatexprs76_f64X2Erecoding_eq(&instance, 0.0, 1.0), - 1u, - "f64.recoding_eq(0.0, 1.0)" + assertEqualF32( + floatexprs76_f32X2Eno_fold_mul_sqrt_div(&instance, -1.1776881788564836e-36, 9.805153097384004e-30), + -0.0, + "f32.no_fold_mul_sqrt_div(-1.1776881788564836e-36, 9.805153097384004e-30)" ); - assertEqualU32( - floatexprs76_f64X2Erecoding_le(&instance, 0.0, 1.0), - 1u, - "f64.recoding_le(0.0, 1.0)" + assertEqualF32( + floatexprs76_f32X2Eno_fold_mul_sqrt_div(&instance, 816717056.0, 3.323170900355518e-39), + 1.416756814348236e+28, + "f32.no_fold_mul_sqrt_div(816717056.0, 3.323170900355518e-39)" ); - assertEqualU32( - floatexprs76_f64X2Erecoding_lt(&instance, 0.0, 1.0), - 0u, - "f64.recoding_lt(0.0, 1.0)" + assertEqualF32( + floatexprs76_f32X2Eno_fold_mul_sqrt_div(&instance, -11932267446272.0, 8.637066802072802e+33), + -0.0001283925521420315, + "f32.no_fold_mul_sqrt_div(-11932267446272.0, 8.637066802072802e+33)" ); assertEqualF32( - floatexprs76_recoding_demote(&instance, 2.3860049081905093e-40, 1221.0), - 2.913312062965535e-37, - "recoding_demote(2.3860049081905093e-40, 1221.0)" + floatexprs76_f32X2Eno_fold_mul_sqrt_div(&instance, -401.02349853515625, 134.33021545410156), + -34.600547790527344, + "f32.no_fold_mul_sqrt_div(-401.02349853515625, 134.33021545410156)" + ); + assertEqualF64( + floatexprs76_f64X2Eno_fold_mul_sqrt_div(&instance, 1.4681346229104905e+210, 2.466074582285183e+228), + INFINITY, + "f64.no_fold_mul_sqrt_div(1.4681346229104905e+210, 2.466074582285183e+228)" + ); + assertEqualF64( + floatexprs76_f64X2Eno_fold_mul_sqrt_div(&instance, -1.7254022016758028e-249, 5.5835540747130025e-202), + -0.0, + "f64.no_fold_mul_sqrt_div(-1.7254022016758028e-249, 5.5835540747130025e-202)" + ); + assertEqualF64( + floatexprs76_f64X2Eno_fold_mul_sqrt_div(&instance, 1.6812810256029166e-128, 7.362783602442129e+168), + 6.196112486187196e-213, + "f64.no_fold_mul_sqrt_div(1.6812810256029166e-128, 7.362783602442129e+168)" + ); + assertEqualF64( + floatexprs76_f64X2Eno_fold_mul_sqrt_div(&instance, -1.0605483729939836e+106, 6.22591783694072e-146), + -4.2503900822233765e+178, + "f64.no_fold_mul_sqrt_div(-1.0605483729939836e+106, 6.22591783694072e-146)" + ); + assertEqualF64( + floatexprs76_f64X2Eno_fold_mul_sqrt_div(&instance, 2.6336349695373093e+31, 3.07914132858533e+253), + 4.746142447510695e-96, + "f64.no_fold_mul_sqrt_div(2.6336349695373093e+31, 3.07914132858533e+253)" ); } diff --git a/tests/gen/assert_float_exprs.77.c b/tests/gen/assert_float_exprs.77.c index 513aceda..b72b81ff 100644 --- a/tests/gen/assert_float_exprs.77.c +++ b/tests/gen/assert_float_exprs.77.c @@ -8,14 +8,14 @@ void test() { floatexprs77Instance instance; floatexprs77Instantiate(&instance, resolveTestImports); printStart("float_exprs.77.wasm"); - assertEqualU32( - floatexprs77_f32X2Eno_extended_precision_div(&instance, 3.0, 7.0, 0.4285714328289032), - 1u, - "f32.no_extended_precision_div(3.0, 7.0, 0.4285714328289032)" + assertEqualF32( + floatexprs77_f32X2Eno_flush_intermediate_subnormal(&instance, 1.1754943508222875e-38, 1.1920928955078125e-07, 8388608.0), + 1.1754943508222875e-38, + "f32.no_flush_intermediate_subnormal(1.1754943508222875e-38, 1.1920928955078125e-07, 8388608.0)" ); - assertEqualU32( - floatexprs77_f64X2Eno_extended_precision_div(&instance, 3.0, 7.0, 0.42857142857142855), - 1u, - "f64.no_extended_precision_div(3.0, 7.0, 0.42857142857142855)" + assertEqualF64( + floatexprs77_f64X2Eno_flush_intermediate_subnormal(&instance, 2.2250738585072014e-308, 2.220446049250313e-16, 4503599627370496.0), + 2.2250738585072014e-308, + "f64.no_flush_intermediate_subnormal(2.2250738585072014e-308, 2.220446049250313e-16, 4503599627370496.0)" ); } diff --git a/tests/gen/assert_float_exprs.78.c b/tests/gen/assert_float_exprs.78.c index 74ab91bf..ae7b6c73 100644 --- a/tests/gen/assert_float_exprs.78.c +++ b/tests/gen/assert_float_exprs.78.c @@ -8,14 +8,69 @@ void test() { floatexprs78Instance instance; floatexprs78Instantiate(&instance, resolveTestImports); printStart("float_exprs.78.wasm"); + assertEqualU32( + floatexprs78_f32X2Erecoding_eq(&instance, -INFINITY, 3.0), + 1u, + "f32.recoding_eq(-INFINITY, 3.0)" + ); + assertEqualU32( + floatexprs78_f32X2Erecoding_le(&instance, -INFINITY, 3.0), + 1u, + "f32.recoding_le(-INFINITY, 3.0)" + ); + assertEqualU32( + floatexprs78_f32X2Erecoding_lt(&instance, -INFINITY, 3.0), + 0u, + "f32.recoding_lt(-INFINITY, 3.0)" + ); + assertEqualU32( + floatexprs78_f32X2Erecoding_eq(&instance, 0.0, 1.0), + 1u, + "f32.recoding_eq(0.0, 1.0)" + ); + assertEqualU32( + floatexprs78_f32X2Erecoding_le(&instance, 0.0, 1.0), + 1u, + "f32.recoding_le(0.0, 1.0)" + ); + assertEqualU32( + floatexprs78_f32X2Erecoding_lt(&instance, 0.0, 1.0), + 0u, + "f32.recoding_lt(0.0, 1.0)" + ); + assertEqualU32( + floatexprs78_f64X2Erecoding_eq(&instance, -INFINITY, 3.0), + 1u, + "f64.recoding_eq(-INFINITY, 3.0)" + ); + assertEqualU32( + floatexprs78_f64X2Erecoding_le(&instance, -INFINITY, 3.0), + 1u, + "f64.recoding_le(-INFINITY, 3.0)" + ); + assertEqualU32( + floatexprs78_f64X2Erecoding_lt(&instance, -INFINITY, 3.0), + 0u, + "f64.recoding_lt(-INFINITY, 3.0)" + ); + assertEqualU32( + floatexprs78_f64X2Erecoding_eq(&instance, 0.0, 1.0), + 1u, + "f64.recoding_eq(0.0, 1.0)" + ); + assertEqualU32( + floatexprs78_f64X2Erecoding_le(&instance, 0.0, 1.0), + 1u, + "f64.recoding_le(0.0, 1.0)" + ); + assertEqualU32( + floatexprs78_f64X2Erecoding_lt(&instance, 0.0, 1.0), + 0u, + "f64.recoding_lt(0.0, 1.0)" + ); assertEqualF32( - floatexprs78_f32X2Eno_distribute_exact(&instance, -0.0), - 0.0, - "f32.no_distribute_exact(-0.0)" - ); - assertEqualF64( - floatexprs78_f64X2Eno_distribute_exact(&instance, -0.0), - 0.0, - "f64.no_distribute_exact(-0.0)" + floatexprs78_recoding_demote(&instance, 2.3860049081905093e-40, 1221.0), + 2.913312062965535e-37, + "recoding_demote(2.3860049081905093e-40, 1221.0)" ); } diff --git a/tests/gen/assert_float_exprs.79.c b/tests/gen/assert_float_exprs.79.c index a4be8198..bcb03a44 100644 --- a/tests/gen/assert_float_exprs.79.c +++ b/tests/gen/assert_float_exprs.79.c @@ -8,74 +8,14 @@ void test() { floatexprs79Instance instance; floatexprs79Instantiate(&instance, resolveTestImports); printStart("float_exprs.79.wasm"); - assertEqualF32( - floatexprs79_f32X2Esqrt(&instance, 2.0), - 1.4142135381698608, - "f32.sqrt(2.0)" - ); - assertEqualF32( - floatexprs79_f32X2Exkcd_sqrt_2(&instance, 3.0, 5.0, 3.1415927410125732, 7.0), - 1.4142200946807861, - "f32.xkcd_sqrt_2(3.0, 5.0, 3.1415927410125732, 7.0)" - ); - assertEqualF32( - floatexprs79_f32X2Esqrt(&instance, 3.0), - 1.7320507764816284, - "f32.sqrt(3.0)" - ); - assertEqualF32( - floatexprs79_f32X2Exkcd_sqrt_3(&instance, 2.0, 2.7182817459106445, 3.1415927410125732), - 1.7305119037628174, - "f32.xkcd_sqrt_3(2.0, 2.7182817459106445, 3.1415927410125732)" - ); - assertEqualF32( - floatexprs79_f32X2Esqrt(&instance, 5.0), - 2.2360680103302, - "f32.sqrt(5.0)" - ); - assertEqualF32( - floatexprs79_f32X2Exkcd_sqrt_5(&instance, 2.0, 2.7182817459106445, 3.0), - 2.2357587814331055, - "f32.xkcd_sqrt_5(2.0, 2.7182817459106445, 3.0)" - ); - assertEqualF32( - floatexprs79_f32X2Exkcd_better_sqrt_5(&instance, 13.0, 4.0, 3.1415927410125732, 24.0), - 2.2360680103302, - "f32.xkcd_better_sqrt_5(13.0, 4.0, 3.1415927410125732, 24.0)" - ); - assertEqualF64( - floatexprs79_f64X2Esqrt(&instance, 2.0), - 1.4142135623730951, - "f64.sqrt(2.0)" - ); - assertEqualF64( - floatexprs79_f64X2Exkcd_sqrt_2(&instance, 3.0, 5.0, 3.141592653589793, 7.0), - 1.4142200580539208, - "f64.xkcd_sqrt_2(3.0, 5.0, 3.141592653589793, 7.0)" - ); - assertEqualF64( - floatexprs79_f64X2Esqrt(&instance, 3.0), - 1.7320508075688772, - "f64.sqrt(3.0)" - ); - assertEqualF64( - floatexprs79_f64X2Exkcd_sqrt_3(&instance, 2.0, 2.718281828459045, 3.141592653589793), - 1.7305119588645301, - "f64.xkcd_sqrt_3(2.0, 2.718281828459045, 3.141592653589793)" - ); - assertEqualF64( - floatexprs79_f64X2Esqrt(&instance, 5.0), - 2.23606797749979, - "f64.sqrt(5.0)" - ); - assertEqualF64( - floatexprs79_f64X2Exkcd_sqrt_5(&instance, 2.0, 2.718281828459045, 3.0), - 2.2357588823428847, - "f64.xkcd_sqrt_5(2.0, 2.718281828459045, 3.0)" - ); - assertEqualF64( - floatexprs79_f64X2Exkcd_better_sqrt_5(&instance, 13.0, 4.0, 3.141592653589793, 24.0), - 2.2360678094452893, - "f64.xkcd_better_sqrt_5(13.0, 4.0, 3.141592653589793, 24.0)" + assertEqualU32( + floatexprs79_f32X2Eno_extended_precision_div(&instance, 3.0, 7.0, 0.4285714328289032), + 1u, + "f32.no_extended_precision_div(3.0, 7.0, 0.4285714328289032)" + ); + assertEqualU32( + floatexprs79_f64X2Eno_extended_precision_div(&instance, 3.0, 7.0, 0.42857142857142855), + 1u, + "f64.no_extended_precision_div(3.0, 7.0, 0.42857142857142855)" ); } diff --git a/tests/gen/assert_float_exprs.80.c b/tests/gen/assert_float_exprs.80.c index 70f879d9..779a54eb 100644 --- a/tests/gen/assert_float_exprs.80.c +++ b/tests/gen/assert_float_exprs.80.c @@ -9,13 +9,13 @@ void test() { floatexprs80Instantiate(&instance, resolveTestImports); printStart("float_exprs.80.wasm"); assertEqualF32( - floatexprs80_f32X2Ecompute_radix(&instance, 1.0, 1.0), - 2.0, - "f32.compute_radix(1.0, 1.0)" + floatexprs80_f32X2Eno_distribute_exact(&instance, -0.0), + 0.0, + "f32.no_distribute_exact(-0.0)" ); assertEqualF64( - floatexprs80_f64X2Ecompute_radix(&instance, 1.0, 1.0), - 2.0, - "f64.compute_radix(1.0, 1.0)" + floatexprs80_f64X2Eno_distribute_exact(&instance, -0.0), + 0.0, + "f64.no_distribute_exact(-0.0)" ); } diff --git a/tests/gen/assert_float_exprs.81.c b/tests/gen/assert_float_exprs.81.c index 4e4d7012..b75e469d 100644 --- a/tests/gen/assert_float_exprs.81.c +++ b/tests/gen/assert_float_exprs.81.c @@ -9,13 +9,73 @@ void test() { floatexprs81Instantiate(&instance, resolveTestImports); printStart("float_exprs.81.wasm"); assertEqualF32( - floatexprs81_f32X2Eno_fold_sub1_mul_add(&instance, 2.3283064365386963e-10, 1.0), - 0.0, - "f32.no_fold_sub1_mul_add(2.3283064365386963e-10, 1.0)" + floatexprs81_f32X2Esqrt(&instance, 2.0), + 1.4142135381698608, + "f32.sqrt(2.0)" + ); + assertEqualF32( + floatexprs81_f32X2Exkcd_sqrt_2(&instance, 3.0, 5.0, 3.1415927410125732, 7.0), + 1.4142200946807861, + "f32.xkcd_sqrt_2(3.0, 5.0, 3.1415927410125732, 7.0)" + ); + assertEqualF32( + floatexprs81_f32X2Esqrt(&instance, 3.0), + 1.7320507764816284, + "f32.sqrt(3.0)" + ); + assertEqualF32( + floatexprs81_f32X2Exkcd_sqrt_3(&instance, 2.0, 2.7182817459106445, 3.1415927410125732), + 1.7305119037628174, + "f32.xkcd_sqrt_3(2.0, 2.7182817459106445, 3.1415927410125732)" + ); + assertEqualF32( + floatexprs81_f32X2Esqrt(&instance, 5.0), + 2.2360680103302, + "f32.sqrt(5.0)" + ); + assertEqualF32( + floatexprs81_f32X2Exkcd_sqrt_5(&instance, 2.0, 2.7182817459106445, 3.0), + 2.2357587814331055, + "f32.xkcd_sqrt_5(2.0, 2.7182817459106445, 3.0)" + ); + assertEqualF32( + floatexprs81_f32X2Exkcd_better_sqrt_5(&instance, 13.0, 4.0, 3.1415927410125732, 24.0), + 2.2360680103302, + "f32.xkcd_better_sqrt_5(13.0, 4.0, 3.1415927410125732, 24.0)" + ); + assertEqualF64( + floatexprs81_f64X2Esqrt(&instance, 2.0), + 1.4142135623730951, + "f64.sqrt(2.0)" + ); + assertEqualF64( + floatexprs81_f64X2Exkcd_sqrt_2(&instance, 3.0, 5.0, 3.141592653589793, 7.0), + 1.4142200580539208, + "f64.xkcd_sqrt_2(3.0, 5.0, 3.141592653589793, 7.0)" + ); + assertEqualF64( + floatexprs81_f64X2Esqrt(&instance, 3.0), + 1.7320508075688772, + "f64.sqrt(3.0)" + ); + assertEqualF64( + floatexprs81_f64X2Exkcd_sqrt_3(&instance, 2.0, 2.718281828459045, 3.141592653589793), + 1.7305119588645301, + "f64.xkcd_sqrt_3(2.0, 2.718281828459045, 3.141592653589793)" + ); + assertEqualF64( + floatexprs81_f64X2Esqrt(&instance, 5.0), + 2.23606797749979, + "f64.sqrt(5.0)" + ); + assertEqualF64( + floatexprs81_f64X2Exkcd_sqrt_5(&instance, 2.0, 2.718281828459045, 3.0), + 2.2357588823428847, + "f64.xkcd_sqrt_5(2.0, 2.718281828459045, 3.0)" ); assertEqualF64( - floatexprs81_f64X2Eno_fold_sub1_mul_add(&instance, 5.421010862427522e-20, 1.0), - 0.0, - "f64.no_fold_sub1_mul_add(5.421010862427522e-20, 1.0)" + floatexprs81_f64X2Exkcd_better_sqrt_5(&instance, 13.0, 4.0, 3.141592653589793, 24.0), + 2.2360678094452893, + "f64.xkcd_better_sqrt_5(13.0, 4.0, 3.141592653589793, 24.0)" ); } diff --git a/tests/gen/assert_float_exprs.82.c b/tests/gen/assert_float_exprs.82.c index 5b4580f5..0cb55355 100644 --- a/tests/gen/assert_float_exprs.82.c +++ b/tests/gen/assert_float_exprs.82.c @@ -8,14 +8,14 @@ void test() { floatexprs82Instance instance; floatexprs82Instantiate(&instance, resolveTestImports); printStart("float_exprs.82.wasm"); - assertEqualU32( - floatexprs82_f32X2Eno_fold_add_le_monotonicity(&instance, INFINITY, -INFINITY, INFINITY), - 0u, - "f32.no_fold_add_le_monotonicity(INFINITY, -INFINITY, INFINITY)" + assertEqualF32( + floatexprs82_f32X2Ecompute_radix(&instance, 1.0, 1.0), + 2.0, + "f32.compute_radix(1.0, 1.0)" ); - assertEqualU32( - floatexprs82_f64X2Eno_fold_add_le_monotonicity(&instance, INFINITY, -INFINITY, INFINITY), - 0u, - "f64.no_fold_add_le_monotonicity(INFINITY, -INFINITY, INFINITY)" + assertEqualF64( + floatexprs82_f64X2Ecompute_radix(&instance, 1.0, 1.0), + 2.0, + "f64.compute_radix(1.0, 1.0)" ); } diff --git a/tests/gen/assert_float_exprs.83.c b/tests/gen/assert_float_exprs.83.c index 0a3edb44..e5e72c7f 100644 --- a/tests/gen/assert_float_exprs.83.c +++ b/tests/gen/assert_float_exprs.83.c @@ -8,4 +8,14 @@ void test() { floatexprs83Instance instance; floatexprs83Instantiate(&instance, resolveTestImports); printStart("float_exprs.83.wasm"); + assertEqualF32( + floatexprs83_f32X2Eno_fold_sub1_mul_add(&instance, 2.3283064365386963e-10, 1.0), + 0.0, + "f32.no_fold_sub1_mul_add(2.3283064365386963e-10, 1.0)" + ); + assertEqualF64( + floatexprs83_f64X2Eno_fold_sub1_mul_add(&instance, 5.421010862427522e-20, 1.0), + 0.0, + "f64.no_fold_sub1_mul_add(5.421010862427522e-20, 1.0)" + ); } diff --git a/tests/gen/assert_float_exprs.84.c b/tests/gen/assert_float_exprs.84.c index b292c75b..90ad5840 100644 --- a/tests/gen/assert_float_exprs.84.c +++ b/tests/gen/assert_float_exprs.84.c @@ -8,14 +8,14 @@ void test() { floatexprs84Instance instance; floatexprs84Instantiate(&instance, resolveTestImports); printStart("float_exprs.84.wasm"); - assertEqualF32( - floatexprs84_f32X2Eepsilon(&instance), - -1.1920928955078125e-07, - "f32.epsilon()" + assertEqualU32( + floatexprs84_f32X2Eno_fold_add_le_monotonicity(&instance, INFINITY, -INFINITY, INFINITY), + 0u, + "f32.no_fold_add_le_monotonicity(INFINITY, -INFINITY, INFINITY)" ); - assertEqualF64( - floatexprs84_f64X2Eepsilon(&instance), - 2.220446049250313e-16, - "f64.epsilon()" + assertEqualU32( + floatexprs84_f64X2Eno_fold_add_le_monotonicity(&instance, INFINITY, -INFINITY, INFINITY), + 0u, + "f64.no_fold_add_le_monotonicity(INFINITY, -INFINITY, INFINITY)" ); } diff --git a/tests/gen/assert_float_exprs.85.c b/tests/gen/assert_float_exprs.85.c index 7eb1c237..160eae72 100644 --- a/tests/gen/assert_float_exprs.85.c +++ b/tests/gen/assert_float_exprs.85.c @@ -8,14 +8,4 @@ void test() { floatexprs85Instance instance; floatexprs85Instantiate(&instance, resolveTestImports); printStart("float_exprs.85.wasm"); - assertEqualF32( - floatexprs85_f32X2Eepsilon(&instance), - 1.1920928955078125e-07, - "f32.epsilon()" - ); - assertEqualF64( - floatexprs85_f64X2Eepsilon(&instance), - 2.220446049250313e-16, - "f64.epsilon()" - ); } diff --git a/tests/gen/assert_float_exprs.86.c b/tests/gen/assert_float_exprs.86.c index 5b649e91..141e02d6 100644 --- a/tests/gen/assert_float_exprs.86.c +++ b/tests/gen/assert_float_exprs.86.c @@ -8,4 +8,14 @@ void test() { floatexprs86Instance instance; floatexprs86Instantiate(&instance, resolveTestImports); printStart("float_exprs.86.wasm"); + assertEqualF32( + floatexprs86_f32X2Eepsilon(&instance), + -1.1920928955078125e-07, + "f32.epsilon()" + ); + assertEqualF64( + floatexprs86_f64X2Eepsilon(&instance), + 2.220446049250313e-16, + "f64.epsilon()" + ); } diff --git a/tests/gen/assert_float_exprs.87.c b/tests/gen/assert_float_exprs.87.c index c0947f18..da9f01eb 100644 --- a/tests/gen/assert_float_exprs.87.c +++ b/tests/gen/assert_float_exprs.87.c @@ -8,169 +8,14 @@ void test() { floatexprs87Instance instance; floatexprs87Instantiate(&instance, resolveTestImports); printStart("float_exprs.87.wasm"); - assertEqualU32( - floatexprs87_f32X2Earithmetic_nan_bitpattern(&instance, 2139107856u, 2139107856u), - 2143289344u, - "f32.arithmetic_nan_bitpattern(2139107856u, 2139107856u)" - ); - assertEqualU32( - floatexprs87_f32X2Ecanonical_nan_bitpattern(&instance, 0u, 0u), - 2143289344u, - "f32.canonical_nan_bitpattern(0u, 0u)" - ); - assertEqualU32( - floatexprs87_f32X2Ecanonical_nan_bitpattern(&instance, 2143289344u, 2143289344u), - 2143289344u, - "f32.canonical_nan_bitpattern(2143289344u, 2143289344u)" - ); - assertEqualU32( - floatexprs87_f32X2Ecanonical_nan_bitpattern(&instance, 4290772992u, 2143289344u), - 2143289344u, - "f32.canonical_nan_bitpattern(4290772992u, 2143289344u)" - ); - assertEqualU32( - floatexprs87_f32X2Ecanonical_nan_bitpattern(&instance, 2143289344u, 4290772992u), - 2143289344u, - "f32.canonical_nan_bitpattern(2143289344u, 4290772992u)" - ); - assertEqualU32( - floatexprs87_f32X2Ecanonical_nan_bitpattern(&instance, 4290772992u, 4290772992u), - 2143289344u, - "f32.canonical_nan_bitpattern(4290772992u, 4290772992u)" - ); - assertEqualU32( - floatexprs87_f32X2Enonarithmetic_nan_bitpattern(&instance, 2143302160u), - 4290785808u, - "f32.nonarithmetic_nan_bitpattern(2143302160u)" - ); - assertEqualU32( - floatexprs87_f32X2Enonarithmetic_nan_bitpattern(&instance, 4290785808u), - 2143302160u, - "f32.nonarithmetic_nan_bitpattern(4290785808u)" - ); - assertEqualU32( - floatexprs87_f32X2Enonarithmetic_nan_bitpattern(&instance, 2139107856u), - 4286591504u, - "f32.nonarithmetic_nan_bitpattern(2139107856u)" - ); - assertEqualU32( - floatexprs87_f32X2Enonarithmetic_nan_bitpattern(&instance, 4286591504u), - 2139107856u, - "f32.nonarithmetic_nan_bitpattern(4286591504u)" - ); - assertEqualU64( - floatexprs87_f64X2Earithmetic_nan_bitpattern(&instance, 9218868437227418128ull, 9218868437227418128ull), - 9221120237041090560ull, - "f64.arithmetic_nan_bitpattern(9218868437227418128ull, 9218868437227418128ull)" - ); - assertEqualU64( - floatexprs87_f64X2Ecanonical_nan_bitpattern(&instance, 0ull, 0ull), - 9221120237041090560ull, - "f64.canonical_nan_bitpattern(0ull, 0ull)" - ); - assertEqualU64( - floatexprs87_f64X2Ecanonical_nan_bitpattern(&instance, 9221120237041090560ull, 9221120237041090560ull), - 9221120237041090560ull, - "f64.canonical_nan_bitpattern(9221120237041090560ull, 9221120237041090560ull)" - ); - assertEqualU64( - floatexprs87_f64X2Ecanonical_nan_bitpattern(&instance, 18444492273895866368ull, 9221120237041090560ull), - 9221120237041090560ull, - "f64.canonical_nan_bitpattern(18444492273895866368ull, 9221120237041090560ull)" - ); - assertEqualU64( - floatexprs87_f64X2Ecanonical_nan_bitpattern(&instance, 9221120237041090560ull, 18444492273895866368ull), - 9221120237041090560ull, - "f64.canonical_nan_bitpattern(9221120237041090560ull, 18444492273895866368ull)" - ); - assertEqualU64( - floatexprs87_f64X2Ecanonical_nan_bitpattern(&instance, 18444492273895866368ull, 18444492273895866368ull), - 9221120237041090560ull, - "f64.canonical_nan_bitpattern(18444492273895866368ull, 18444492273895866368ull)" - ); - assertEqualU64( - floatexprs87_f64X2Enonarithmetic_nan_bitpattern(&instance, 9221120237041103376ull), - 18444492273895879184ull, - "f64.nonarithmetic_nan_bitpattern(9221120237041103376ull)" - ); - assertEqualU64( - floatexprs87_f64X2Enonarithmetic_nan_bitpattern(&instance, 18444492273895879184ull), - 9221120237041103376ull, - "f64.nonarithmetic_nan_bitpattern(18444492273895879184ull)" - ); - assertEqualU64( - floatexprs87_f64X2Enonarithmetic_nan_bitpattern(&instance, 9218868437227418128ull), - 18442240474082193936ull, - "f64.nonarithmetic_nan_bitpattern(9218868437227418128ull)" - ); - assertEqualU64( - floatexprs87_f64X2Enonarithmetic_nan_bitpattern(&instance, 18442240474082193936ull), - 9218868437227418128ull, - "f64.nonarithmetic_nan_bitpattern(18442240474082193936ull)" - ); - assertEqualU32( - floatexprs87_f32X2Eno_fold_sub_zero(&instance, 2141192192u), - 2143289344u, - "f32.no_fold_sub_zero(2141192192u)" - ); - assertEqualU32( - floatexprs87_f32X2Eno_fold_neg0_sub(&instance, 2141192192u), - 2143289344u, - "f32.no_fold_neg0_sub(2141192192u)" - ); - assertEqualU32( - floatexprs87_f32X2Eno_fold_mul_one(&instance, 2141192192u), - 2143289344u, - "f32.no_fold_mul_one(2141192192u)" - ); - assertEqualU32( - floatexprs87_f32X2Eno_fold_neg1_mul(&instance, 2141192192u), - 2143289344u, - "f32.no_fold_neg1_mul(2141192192u)" - ); - assertEqualU32( - floatexprs87_f32X2Eno_fold_div_one(&instance, 2141192192u), - 2143289344u, - "f32.no_fold_div_one(2141192192u)" - ); - assertEqualU32( - floatexprs87_f32X2Eno_fold_div_neg1(&instance, 2141192192u), - 2143289344u, - "f32.no_fold_div_neg1(2141192192u)" - ); - assertEqualU64( - floatexprs87_f64X2Eno_fold_sub_zero(&instance, 9219994337134247936ull), - 9221120237041090560ull, - "f64.no_fold_sub_zero(9219994337134247936ull)" - ); - assertEqualU64( - floatexprs87_f64X2Eno_fold_neg0_sub(&instance, 9219994337134247936ull), - 9221120237041090560ull, - "f64.no_fold_neg0_sub(9219994337134247936ull)" - ); - assertEqualU64( - floatexprs87_f64X2Eno_fold_mul_one(&instance, 9219994337134247936ull), - 9221120237041090560ull, - "f64.no_fold_mul_one(9219994337134247936ull)" - ); - assertEqualU64( - floatexprs87_f64X2Eno_fold_neg1_mul(&instance, 9219994337134247936ull), - 9221120237041090560ull, - "f64.no_fold_neg1_mul(9219994337134247936ull)" - ); - assertEqualU64( - floatexprs87_f64X2Eno_fold_div_one(&instance, 9219994337134247936ull), - 9221120237041090560ull, - "f64.no_fold_div_one(9219994337134247936ull)" - ); - assertEqualU64( - floatexprs87_f64X2Eno_fold_div_neg1(&instance, 9219994337134247936ull), - 9221120237041090560ull, - "f64.no_fold_div_neg1(9219994337134247936ull)" - ); - assertEqualU32( - floatexprs87_no_fold_promote_demote(&instance, 2141192192u), - 2143289344u, - "no_fold_promote_demote(2141192192u)" + assertEqualF32( + floatexprs87_f32X2Eepsilon(&instance), + 1.1920928955078125e-07, + "f32.epsilon()" + ); + assertEqualF64( + floatexprs87_f64X2Eepsilon(&instance), + 2.220446049250313e-16, + "f64.epsilon()" ); } diff --git a/tests/gen/assert_float_exprs.88.c b/tests/gen/assert_float_exprs.88.c index 6d49c2b4..be3fed70 100644 --- a/tests/gen/assert_float_exprs.88.c +++ b/tests/gen/assert_float_exprs.88.c @@ -8,14 +8,4 @@ void test() { floatexprs88Instance instance; floatexprs88Instantiate(&instance, resolveTestImports); printStart("float_exprs.88.wasm"); - assertEqualF64( - floatexprs88_dot_product_example(&instance, 32000000.0, 1.0, -1.0, 80000000.0, 40000000.0, 1.0, -1.0, -16000000.0), - 2.0, - "dot_product_example(32000000.0, 1.0, -1.0, 80000000.0, 40000000.0, 1.0, -1.0, -16000000.0)" - ); - assertEqualF64( - floatexprs88_with_binary_sum_collapse(&instance, 32000000.0, 1.0, -1.0, 80000000.0, 40000000.0, 1.0, -1.0, -16000000.0), - 2.0, - "with_binary_sum_collapse(32000000.0, 1.0, -1.0, 80000000.0, 40000000.0, 1.0, -1.0, -16000000.0)" - ); } diff --git a/tests/gen/assert_float_exprs.89.c b/tests/gen/assert_float_exprs.89.c index 6d67a8fb..fe6a7948 100644 --- a/tests/gen/assert_float_exprs.89.c +++ b/tests/gen/assert_float_exprs.89.c @@ -8,34 +8,169 @@ void test() { floatexprs89Instance instance; floatexprs89Instantiate(&instance, resolveTestImports); printStart("float_exprs.89.wasm"); - assertEqualF32( - floatexprs89_f32X2Econtract2fma(&instance, 1.0, 1.0), - 0.0, - "f32.contract2fma(1.0, 1.0)" - ); - assertEqualF32( - floatexprs89_f32X2Econtract2fma(&instance, 1.100000023841858, 1.100000023841858), - 0.0, - "f32.contract2fma(1.100000023841858, 1.100000023841858)" - ); - assertEqualF32( - floatexprs89_f32X2Econtract2fma(&instance, 1.1999999284744263, 1.1999999284744263), - 0.0, - "f32.contract2fma(1.1999999284744263, 1.1999999284744263)" - ); - assertEqualF64( - floatexprs89_f64X2Econtract2fma(&instance, 1.0, 1.0), - 0.0, - "f64.contract2fma(1.0, 1.0)" - ); - assertEqualF64( - floatexprs89_f64X2Econtract2fma(&instance, 1.1, 1.1), - 0.0, - "f64.contract2fma(1.1, 1.1)" - ); - assertEqualF64( - floatexprs89_f64X2Econtract2fma(&instance, 1.2, 1.2), - 0.0, - "f64.contract2fma(1.2, 1.2)" + assertEqualU32( + floatexprs89_f32X2Earithmetic_nan_bitpattern(&instance, 2139107856u, 2139107856u), + 2143289344u, + "f32.arithmetic_nan_bitpattern(2139107856u, 2139107856u)" + ); + assertEqualU32( + floatexprs89_f32X2Ecanonical_nan_bitpattern(&instance, 0u, 0u), + 2143289344u, + "f32.canonical_nan_bitpattern(0u, 0u)" + ); + assertEqualU32( + floatexprs89_f32X2Ecanonical_nan_bitpattern(&instance, 2143289344u, 2143289344u), + 2143289344u, + "f32.canonical_nan_bitpattern(2143289344u, 2143289344u)" + ); + assertEqualU32( + floatexprs89_f32X2Ecanonical_nan_bitpattern(&instance, 4290772992u, 2143289344u), + 2143289344u, + "f32.canonical_nan_bitpattern(4290772992u, 2143289344u)" + ); + assertEqualU32( + floatexprs89_f32X2Ecanonical_nan_bitpattern(&instance, 2143289344u, 4290772992u), + 2143289344u, + "f32.canonical_nan_bitpattern(2143289344u, 4290772992u)" + ); + assertEqualU32( + floatexprs89_f32X2Ecanonical_nan_bitpattern(&instance, 4290772992u, 4290772992u), + 2143289344u, + "f32.canonical_nan_bitpattern(4290772992u, 4290772992u)" + ); + assertEqualU32( + floatexprs89_f32X2Enonarithmetic_nan_bitpattern(&instance, 2143302160u), + 4290785808u, + "f32.nonarithmetic_nan_bitpattern(2143302160u)" + ); + assertEqualU32( + floatexprs89_f32X2Enonarithmetic_nan_bitpattern(&instance, 4290785808u), + 2143302160u, + "f32.nonarithmetic_nan_bitpattern(4290785808u)" + ); + assertEqualU32( + floatexprs89_f32X2Enonarithmetic_nan_bitpattern(&instance, 2139107856u), + 4286591504u, + "f32.nonarithmetic_nan_bitpattern(2139107856u)" + ); + assertEqualU32( + floatexprs89_f32X2Enonarithmetic_nan_bitpattern(&instance, 4286591504u), + 2139107856u, + "f32.nonarithmetic_nan_bitpattern(4286591504u)" + ); + assertEqualU64( + floatexprs89_f64X2Earithmetic_nan_bitpattern(&instance, 9218868437227418128ull, 9218868437227418128ull), + 9221120237041090560ull, + "f64.arithmetic_nan_bitpattern(9218868437227418128ull, 9218868437227418128ull)" + ); + assertEqualU64( + floatexprs89_f64X2Ecanonical_nan_bitpattern(&instance, 0ull, 0ull), + 9221120237041090560ull, + "f64.canonical_nan_bitpattern(0ull, 0ull)" + ); + assertEqualU64( + floatexprs89_f64X2Ecanonical_nan_bitpattern(&instance, 9221120237041090560ull, 9221120237041090560ull), + 9221120237041090560ull, + "f64.canonical_nan_bitpattern(9221120237041090560ull, 9221120237041090560ull)" + ); + assertEqualU64( + floatexprs89_f64X2Ecanonical_nan_bitpattern(&instance, 18444492273895866368ull, 9221120237041090560ull), + 9221120237041090560ull, + "f64.canonical_nan_bitpattern(18444492273895866368ull, 9221120237041090560ull)" + ); + assertEqualU64( + floatexprs89_f64X2Ecanonical_nan_bitpattern(&instance, 9221120237041090560ull, 18444492273895866368ull), + 9221120237041090560ull, + "f64.canonical_nan_bitpattern(9221120237041090560ull, 18444492273895866368ull)" + ); + assertEqualU64( + floatexprs89_f64X2Ecanonical_nan_bitpattern(&instance, 18444492273895866368ull, 18444492273895866368ull), + 9221120237041090560ull, + "f64.canonical_nan_bitpattern(18444492273895866368ull, 18444492273895866368ull)" + ); + assertEqualU64( + floatexprs89_f64X2Enonarithmetic_nan_bitpattern(&instance, 9221120237041103376ull), + 18444492273895879184ull, + "f64.nonarithmetic_nan_bitpattern(9221120237041103376ull)" + ); + assertEqualU64( + floatexprs89_f64X2Enonarithmetic_nan_bitpattern(&instance, 18444492273895879184ull), + 9221120237041103376ull, + "f64.nonarithmetic_nan_bitpattern(18444492273895879184ull)" + ); + assertEqualU64( + floatexprs89_f64X2Enonarithmetic_nan_bitpattern(&instance, 9218868437227418128ull), + 18442240474082193936ull, + "f64.nonarithmetic_nan_bitpattern(9218868437227418128ull)" + ); + assertEqualU64( + floatexprs89_f64X2Enonarithmetic_nan_bitpattern(&instance, 18442240474082193936ull), + 9218868437227418128ull, + "f64.nonarithmetic_nan_bitpattern(18442240474082193936ull)" + ); + assertEqualU32( + floatexprs89_f32X2Eno_fold_sub_zero(&instance, 2141192192u), + 2143289344u, + "f32.no_fold_sub_zero(2141192192u)" + ); + assertEqualU32( + floatexprs89_f32X2Eno_fold_neg0_sub(&instance, 2141192192u), + 2143289344u, + "f32.no_fold_neg0_sub(2141192192u)" + ); + assertEqualU32( + floatexprs89_f32X2Eno_fold_mul_one(&instance, 2141192192u), + 2143289344u, + "f32.no_fold_mul_one(2141192192u)" + ); + assertEqualU32( + floatexprs89_f32X2Eno_fold_neg1_mul(&instance, 2141192192u), + 2143289344u, + "f32.no_fold_neg1_mul(2141192192u)" + ); + assertEqualU32( + floatexprs89_f32X2Eno_fold_div_one(&instance, 2141192192u), + 2143289344u, + "f32.no_fold_div_one(2141192192u)" + ); + assertEqualU32( + floatexprs89_f32X2Eno_fold_div_neg1(&instance, 2141192192u), + 2143289344u, + "f32.no_fold_div_neg1(2141192192u)" + ); + assertEqualU64( + floatexprs89_f64X2Eno_fold_sub_zero(&instance, 9219994337134247936ull), + 9221120237041090560ull, + "f64.no_fold_sub_zero(9219994337134247936ull)" + ); + assertEqualU64( + floatexprs89_f64X2Eno_fold_neg0_sub(&instance, 9219994337134247936ull), + 9221120237041090560ull, + "f64.no_fold_neg0_sub(9219994337134247936ull)" + ); + assertEqualU64( + floatexprs89_f64X2Eno_fold_mul_one(&instance, 9219994337134247936ull), + 9221120237041090560ull, + "f64.no_fold_mul_one(9219994337134247936ull)" + ); + assertEqualU64( + floatexprs89_f64X2Eno_fold_neg1_mul(&instance, 9219994337134247936ull), + 9221120237041090560ull, + "f64.no_fold_neg1_mul(9219994337134247936ull)" + ); + assertEqualU64( + floatexprs89_f64X2Eno_fold_div_one(&instance, 9219994337134247936ull), + 9221120237041090560ull, + "f64.no_fold_div_one(9219994337134247936ull)" + ); + assertEqualU64( + floatexprs89_f64X2Eno_fold_div_neg1(&instance, 9219994337134247936ull), + 9221120237041090560ull, + "f64.no_fold_div_neg1(9219994337134247936ull)" + ); + assertEqualU32( + floatexprs89_no_fold_promote_demote(&instance, 2141192192u), + 2143289344u, + "no_fold_promote_demote(2141192192u)" ); } diff --git a/tests/gen/assert_float_exprs.90.c b/tests/gen/assert_float_exprs.90.c index 3b6de195..68522fc7 100644 --- a/tests/gen/assert_float_exprs.90.c +++ b/tests/gen/assert_float_exprs.90.c @@ -8,14 +8,14 @@ void test() { floatexprs90Instance instance; floatexprs90Instantiate(&instance, resolveTestImports); printStart("float_exprs.90.wasm"); - assertEqualF32( - floatexprs90_f32X2Edivision_by_small_number(&instance, 112000000.0, 100000.0, 0.0008999999845400453), - 888888.0, - "f32.division_by_small_number(112000000.0, 100000.0, 0.0008999999845400453)" + assertEqualF64( + floatexprs90_dot_product_example(&instance, 32000000.0, 1.0, -1.0, 80000000.0, 40000000.0, 1.0, -1.0, -16000000.0), + 2.0, + "dot_product_example(32000000.0, 1.0, -1.0, 80000000.0, 40000000.0, 1.0, -1.0, -16000000.0)" ); assertEqualF64( - floatexprs90_f64X2Edivision_by_small_number(&instance, 112000000.0, 100000.0, 0.0009), - 888888.8888888806, - "f64.division_by_small_number(112000000.0, 100000.0, 0.0009)" + floatexprs90_with_binary_sum_collapse(&instance, 32000000.0, 1.0, -1.0, 80000000.0, 40000000.0, 1.0, -1.0, -16000000.0), + 2.0, + "with_binary_sum_collapse(32000000.0, 1.0, -1.0, 80000000.0, 40000000.0, 1.0, -1.0, -16000000.0)" ); } diff --git a/tests/gen/assert_float_exprs.91.c b/tests/gen/assert_float_exprs.91.c index b9ff1607..79bd6df5 100644 --- a/tests/gen/assert_float_exprs.91.c +++ b/tests/gen/assert_float_exprs.91.c @@ -9,13 +9,33 @@ void test() { floatexprs91Instantiate(&instance, resolveTestImports); printStart("float_exprs.91.wasm"); assertEqualF32( - floatexprs91_f32X2Egolden_ratio(&instance, 0.5, 1.0, 5.0), - 1.6180340051651, - "f32.golden_ratio(0.5, 1.0, 5.0)" + floatexprs91_f32X2Econtract2fma(&instance, 1.0, 1.0), + 0.0, + "f32.contract2fma(1.0, 1.0)" + ); + assertEqualF32( + floatexprs91_f32X2Econtract2fma(&instance, 1.100000023841858, 1.100000023841858), + 0.0, + "f32.contract2fma(1.100000023841858, 1.100000023841858)" + ); + assertEqualF32( + floatexprs91_f32X2Econtract2fma(&instance, 1.1999999284744263, 1.1999999284744263), + 0.0, + "f32.contract2fma(1.1999999284744263, 1.1999999284744263)" + ); + assertEqualF64( + floatexprs91_f64X2Econtract2fma(&instance, 1.0, 1.0), + 0.0, + "f64.contract2fma(1.0, 1.0)" + ); + assertEqualF64( + floatexprs91_f64X2Econtract2fma(&instance, 1.1, 1.1), + 0.0, + "f64.contract2fma(1.1, 1.1)" ); assertEqualF64( - floatexprs91_f64X2Egolden_ratio(&instance, 0.5, 1.0, 5.0), - 1.618033988749895, - "f64.golden_ratio(0.5, 1.0, 5.0)" + floatexprs91_f64X2Econtract2fma(&instance, 1.2, 1.2), + 0.0, + "f64.contract2fma(1.2, 1.2)" ); } diff --git a/tests/gen/assert_float_exprs.92.c b/tests/gen/assert_float_exprs.92.c index 6d0a0386..b13bed0d 100644 --- a/tests/gen/assert_float_exprs.92.c +++ b/tests/gen/assert_float_exprs.92.c @@ -9,63 +9,13 @@ void test() { floatexprs92Instantiate(&instance, resolveTestImports); printStart("float_exprs.92.wasm"); assertEqualF32( - floatexprs92_f32X2Esilver_means(&instance, 0.0), - 1.0, - "f32.silver_means(0.0)" - ); - assertEqualF32( - floatexprs92_f32X2Esilver_means(&instance, 1.0), - 1.6180340051651, - "f32.silver_means(1.0)" - ); - assertEqualF32( - floatexprs92_f32X2Esilver_means(&instance, 2.0), - 2.4142136573791504, - "f32.silver_means(2.0)" - ); - assertEqualF32( - floatexprs92_f32X2Esilver_means(&instance, 3.0), - 3.3027756214141846, - "f32.silver_means(3.0)" - ); - assertEqualF32( - floatexprs92_f32X2Esilver_means(&instance, 4.0), - 4.236067771911621, - "f32.silver_means(4.0)" - ); - assertEqualF32( - floatexprs92_f32X2Esilver_means(&instance, 5.0), - 5.192582130432129, - "f32.silver_means(5.0)" - ); - assertEqualF64( - floatexprs92_f64X2Esilver_means(&instance, 0.0), - 1.0, - "f64.silver_means(0.0)" - ); - assertEqualF64( - floatexprs92_f64X2Esilver_means(&instance, 1.0), - 1.618033988749895, - "f64.silver_means(1.0)" - ); - assertEqualF64( - floatexprs92_f64X2Esilver_means(&instance, 2.0), - 2.414213562373095, - "f64.silver_means(2.0)" - ); - assertEqualF64( - floatexprs92_f64X2Esilver_means(&instance, 3.0), - 3.302775637731995, - "f64.silver_means(3.0)" - ); - assertEqualF64( - floatexprs92_f64X2Esilver_means(&instance, 4.0), - 4.23606797749979, - "f64.silver_means(4.0)" + floatexprs92_f32X2Edivision_by_small_number(&instance, 112000000.0, 100000.0, 0.0008999999845400453), + 888888.0, + "f32.division_by_small_number(112000000.0, 100000.0, 0.0008999999845400453)" ); assertEqualF64( - floatexprs92_f64X2Esilver_means(&instance, 5.0), - 5.192582403567252, - "f64.silver_means(5.0)" + floatexprs92_f64X2Edivision_by_small_number(&instance, 112000000.0, 100000.0, 0.0009), + 888888.8888888806, + "f64.division_by_small_number(112000000.0, 100000.0, 0.0009)" ); } diff --git a/tests/gen/assert_float_exprs.93.c b/tests/gen/assert_float_exprs.93.c index ecaaca0f..c454de28 100644 --- a/tests/gen/assert_float_exprs.93.c +++ b/tests/gen/assert_float_exprs.93.c @@ -8,9 +8,14 @@ void test() { floatexprs93Instance instance; floatexprs93Instantiate(&instance, resolveTestImports); printStart("float_exprs.93.wasm"); - assertEqualU32( - floatexprs93_point_four(&instance, 4.0, 10.0), - 0u, - "point_four(4.0, 10.0)" + assertEqualF32( + floatexprs93_f32X2Egolden_ratio(&instance, 0.5, 1.0, 5.0), + 1.6180340051651, + "f32.golden_ratio(0.5, 1.0, 5.0)" + ); + assertEqualF64( + floatexprs93_f64X2Egolden_ratio(&instance, 0.5, 1.0, 5.0), + 1.618033988749895, + "f64.golden_ratio(0.5, 1.0, 5.0)" ); } diff --git a/tests/gen/assert_float_exprs.94.c b/tests/gen/assert_float_exprs.94.c index 0c8a8e9e..e6d44503 100644 --- a/tests/gen/assert_float_exprs.94.c +++ b/tests/gen/assert_float_exprs.94.c @@ -8,14 +8,64 @@ void test() { floatexprs94Instance instance; floatexprs94Instantiate(&instance, resolveTestImports); printStart("float_exprs.94.wasm"); + assertEqualF32( + floatexprs94_f32X2Esilver_means(&instance, 0.0), + 1.0, + "f32.silver_means(0.0)" + ); + assertEqualF32( + floatexprs94_f32X2Esilver_means(&instance, 1.0), + 1.6180340051651, + "f32.silver_means(1.0)" + ); + assertEqualF32( + floatexprs94_f32X2Esilver_means(&instance, 2.0), + 2.4142136573791504, + "f32.silver_means(2.0)" + ); + assertEqualF32( + floatexprs94_f32X2Esilver_means(&instance, 3.0), + 3.3027756214141846, + "f32.silver_means(3.0)" + ); + assertEqualF32( + floatexprs94_f32X2Esilver_means(&instance, 4.0), + 4.236067771911621, + "f32.silver_means(4.0)" + ); + assertEqualF32( + floatexprs94_f32X2Esilver_means(&instance, 5.0), + 5.192582130432129, + "f32.silver_means(5.0)" + ); + assertEqualF64( + floatexprs94_f64X2Esilver_means(&instance, 0.0), + 1.0, + "f64.silver_means(0.0)" + ); + assertEqualF64( + floatexprs94_f64X2Esilver_means(&instance, 1.0), + 1.618033988749895, + "f64.silver_means(1.0)" + ); + assertEqualF64( + floatexprs94_f64X2Esilver_means(&instance, 2.0), + 2.414213562373095, + "f64.silver_means(2.0)" + ); + assertEqualF64( + floatexprs94_f64X2Esilver_means(&instance, 3.0), + 3.302775637731995, + "f64.silver_means(3.0)" + ); assertEqualF64( - floatexprs94_tau(&instance, 10u), - 6.283185307179583, - "tau(10u)" + floatexprs94_f64X2Esilver_means(&instance, 4.0), + 4.23606797749979, + "f64.silver_means(4.0)" ); assertEqualF64( - floatexprs94_tau(&instance, 11u), - 6.283185307179586, - "tau(11u)" + floatexprs94_f64X2Esilver_means(&instance, 5.0), + 5.192582403567252, + "f64.silver_means(5.0)" ); } diff --git a/tests/gen/assert_float_exprs.95.c b/tests/gen/assert_float_exprs.95.c index 93e47617..f28e8a5c 100644 --- a/tests/gen/assert_float_exprs.95.c +++ b/tests/gen/assert_float_exprs.95.c @@ -8,14 +8,9 @@ void test() { floatexprs95Instance instance; floatexprs95Instantiate(&instance, resolveTestImports); printStart("float_exprs.95.wasm"); - assertEqualF32( - floatexprs95_f32X2Eno_fold_conditional_inc(&instance, -0.0, -1.0), - -0.0, - "f32.no_fold_conditional_inc(-0.0, -1.0)" - ); - assertEqualF64( - floatexprs95_f64X2Eno_fold_conditional_inc(&instance, -0.0, -1.0), - -0.0, - "f64.no_fold_conditional_inc(-0.0, -1.0)" + assertEqualU32( + floatexprs95_point_four(&instance, 4.0, 10.0), + 0u, + "point_four(4.0, 10.0)" ); } diff --git a/tests/gen/assert_float_exprs.96.c b/tests/gen/assert_float_exprs.96.c new file mode 100644 index 00000000..7a169d14 --- /dev/null +++ b/tests/gen/assert_float_exprs.96.c @@ -0,0 +1,21 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_float_exprs.96.h" + +void test() { + floatexprs96Instance instance; + floatexprs96Instantiate(&instance, resolveTestImports); + printStart("float_exprs.96.wasm"); + assertEqualF64( + floatexprs96_tau(&instance, 10u), + 6.283185307179583, + "tau(10u)" + ); + assertEqualF64( + floatexprs96_tau(&instance, 11u), + 6.283185307179586, + "tau(11u)" + ); +} diff --git a/tests/gen/assert_float_exprs.97.c b/tests/gen/assert_float_exprs.97.c new file mode 100644 index 00000000..504bb325 --- /dev/null +++ b/tests/gen/assert_float_exprs.97.c @@ -0,0 +1,21 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_float_exprs.97.h" + +void test() { + floatexprs97Instance instance; + floatexprs97Instantiate(&instance, resolveTestImports); + printStart("float_exprs.97.wasm"); + assertEqualF32( + floatexprs97_f32X2Eno_fold_conditional_inc(&instance, -0.0, -1.0), + -0.0, + "f32.no_fold_conditional_inc(-0.0, -1.0)" + ); + assertEqualF64( + floatexprs97_f64X2Eno_fold_conditional_inc(&instance, -0.0, -1.0), + -0.0, + "f64.no_fold_conditional_inc(-0.0, -1.0)" + ); +} diff --git a/tests/gen/assert_float_literals.0.c b/tests/gen/assert_float_literals.0.c index 6148571e..06d23a30 100644 --- a/tests/gen/assert_float_literals.0.c +++ b/tests/gen/assert_float_literals.0.c @@ -113,6 +113,26 @@ void test() { 1149239296u, "f32.trailing_dot()" ); + assertEqualU32( + floatliterals0_f32X2Emisc_int(&instance), + 1200726656u, + "f32.misc_int()" + ); + assertEqualU32( + floatliterals0_f32X2Elarge_int(&instance), + 1736441856u, + "f32.large_int()" + ); + assertEqualU32( + floatliterals0_f32X2Emin_int32(&instance), + 3472883712u, + "f32.min_int32()" + ); + assertEqualU32( + floatliterals0_f32X2Emin_int64(&instance), + 3741319168u, + "f32.min_int64()" + ); assertEqualU32( floatliterals0_f32_decX2Ezero(&instance), 0u, @@ -163,6 +183,26 @@ void test() { 1065353217u, "f32_dec.root_beer_float()" ); + assertEqualU32( + floatliterals0_f32_decX2Emisc_int(&instance), + 1178657792u, + "f32_dec.misc_int()" + ); + assertEqualU32( + floatliterals0_f32_decX2Elarge_int(&instance), + 1621981420u, + "f32_dec.large_int()" + ); + assertEqualU32( + floatliterals0_f32_decX2Emin_int32(&instance), + 3472883712u, + "f32_dec.min_int32()" + ); + assertEqualU32( + floatliterals0_f32_decX2Emin_int64(&instance), + 3741319168u, + "f32_dec.min_int64()" + ); assertEqualU64( floatliterals0_f64X2Eall_ones_nan(&instance), 18446744073709551615ull, @@ -243,6 +283,26 @@ void test() { 5057542381537067008ull, "f64.trailing_dot()" ); + assertEqualU64( + floatliterals0_f64X2Emisc_int(&instance), + 4679860480993394688ull, + "f64.misc_int()" + ); + assertEqualU64( + floatliterals0_f64X2Elarge_int(&instance), + 4967470388989657088ull, + "f64.large_int()" + ); + assertEqualU64( + floatliterals0_f64X2Emin_int32(&instance), + 13970166044103278592ull, + "f64.min_int32()" + ); + assertEqualU64( + floatliterals0_f64X2Emin_int64(&instance), + 14114281232179134464ull, + "f64.min_int64()" + ); assertEqualU64( floatliterals0_f64_decX2Ezero(&instance), 0ull, @@ -293,6 +353,26 @@ void test() { 4607182419335945764ull, "f64_dec.root_beer_float()" ); + assertEqualU64( + floatliterals0_f64_decX2Emisc_int(&instance), + 4668012349850910720ull, + "f64_dec.misc_int()" + ); + assertEqualU64( + floatliterals0_f64_decX2Elarge_int(&instance), + 4906019910204099648ull, + "f64_dec.large_int()" + ); + assertEqualU64( + floatliterals0_f64_decX2Emin_int32(&instance), + 13970166044103278592ull, + "f64_dec.min_int32()" + ); + assertEqualU64( + floatliterals0_f64_decX2Emin_int64(&instance), + 14114281232179134464ull, + "f64_dec.min_int64()" + ); assertEqualF32( floatliterals0_f32X2DdecX2Dsep1(&instance), 1000000.0, diff --git a/tests/gen/assert_float_misc.0.c b/tests/gen/assert_float_misc.0.c index 970196ba..6adadac6 100644 --- a/tests/gen/assert_float_misc.0.c +++ b/tests/gen/assert_float_misc.0.c @@ -1903,6 +1903,156 @@ void test() { 0.9999999999999998, "f64.sqrt(0.9999999999999997)" ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 0.2499999850988388), + 0.4999999701976776, + "f32.sqrt(0.2499999850988388)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 0.25), + 0.5, + "f32.sqrt(0.25)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 0.2500000298023224), + 0.5, + "f32.sqrt(0.2500000298023224)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 0.2500000596046448), + 0.5000000596046448, + "f32.sqrt(0.2500000596046448)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 0.24999999999999997), + 0.49999999999999994, + "f64.sqrt(0.24999999999999997)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 0.25), + 0.5, + "f64.sqrt(0.25)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 0.25000000000000006), + 0.5, + "f64.sqrt(0.25000000000000006)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 0.2500000000000001), + 0.5000000000000001, + "f64.sqrt(0.2500000000000001)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 272331603968.0), + 521854.0, + "f32.sqrt(272331603968.0)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 272331606109.83676), + 521854.0084255718, + "f64.sqrt(272331606109.83676)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 10616005632.0), + 103034.0, + "f32.sqrt(10616005632.0)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 3014768273129472.0), + 54906904.0, + "f32.sqrt(3014768273129472.0)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 24597323841536.0), + 4959569.0, + "f32.sqrt(24597323841536.0)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 1234567936.0), + 35136.41796875, + "f32.sqrt(1234567936.0)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 10616005156.0), + 103034.0, + "f64.sqrt(10616005156.0)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 3014768326492836.0), + 54906906.0, + "f64.sqrt(3014768326492836.0)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 24597324665761.0), + 4959569.0, + "f64.sqrt(24597324665761.0)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 1234567891.0), + 35136.41830067487, + "f64.sqrt(1234567891.0)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 0.5158079862594604), + 0.718197762966156, + "f32.sqrt(0.5158079862594604)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 0.5028960704803467), + 0.7091516852378845, + "f32.sqrt(0.5028960704803467)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 0.5158079862594604), + 0.7181977347913737, + "f64.sqrt(0.5158079862594604)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 0.5028960704803467), + 0.7091516554872778, + "f64.sqrt(0.5028960704803467)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 9.0), + 3.0, + "f32.sqrt(9.0)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 137.0), + 11.704699516296387, + "f32.sqrt(137.0)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 1.7737711668014526), + 1.3318300247192383, + "f32.sqrt(1.7737711668014526)" + ); + assertEqualF32( + floatmisc0_f32X2Esqrt(&instance, 1000.0), + 31.62277603149414, + "f32.sqrt(1000.0)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 9.0), + 3.0, + "f64.sqrt(9.0)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 137.0), + 11.704699910719626, + "f64.sqrt(137.0)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 1.7737712281864233), + 1.3318300297659695, + "f64.sqrt(1.7737712281864233)" + ); + assertEqualF64( + floatmisc0_f64X2Esqrt(&instance, 1000.0), + 31.622776601683793, + "f64.sqrt(1000.0)" + ); assertEqualF32( floatmisc0_f32X2Eceil(&instance, 0.9999999403953552), 1.0, diff --git a/tests/gen/assert_func.3.c b/tests/gen/assert_func.3.c deleted file mode 100644 index 6c195c5b..00000000 --- a/tests/gen/assert_func.3.c +++ /dev/null @@ -1,15 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_func.3.h" - -void test() { - func3Instance instance; - func3Instantiate(&instance, resolveTestImports); - printStart("func.3.wasm"); - func3_signatureX2DexplicitX2Dreused(&instance); - func3_signatureX2DimplicitX2Dreused(&instance); - func3_signatureX2DexplicitX2Dduplicate(&instance); - func3_signatureX2DimplicitX2Dduplicate(&instance); -} diff --git a/tests/gen/assert_func.4.c b/tests/gen/assert_func.4.c new file mode 100644 index 00000000..8162a401 --- /dev/null +++ b/tests/gen/assert_func.4.c @@ -0,0 +1,26 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_func.4.h" + +void test() { + func4Instance instance; + func4Instantiate(&instance, resolveTestImports); + printStart("func.4.wasm"); + assertEqualU32( + func4_f(&instance, 42u), + 0u, + "f(42u)" + ); + assertEqualU32( + func4_g(&instance, 42u), + 0u, + "g(42u)" + ); + assertEqualU32( + func4_p(&instance), + 42u, + "p()" + ); +} diff --git a/tests/gen/assert_func.5.c b/tests/gen/assert_func.5.c new file mode 100644 index 00000000..5a68f54e --- /dev/null +++ b/tests/gen/assert_func.5.c @@ -0,0 +1,15 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_func.5.h" + +void test() { + func5Instance instance; + func5Instantiate(&instance, resolveTestImports); + printStart("func.5.wasm"); + func5_signatureX2DexplicitX2Dreused(&instance); + func5_signatureX2DimplicitX2Dreused(&instance); + func5_signatureX2DexplicitX2Dduplicate(&instance); + func5_signatureX2DimplicitX2Dduplicate(&instance); +} diff --git a/tests/gen/assert_global.0.c b/tests/gen/assert_global.0.c index d729d161..48622ea4 100644 --- a/tests/gen/assert_global.0.c +++ b/tests/gen/assert_global.0.c @@ -82,6 +82,28 @@ void test() { 9.0, "get-8()" ); + global0_setX2D7(&instance, 8.0); + global0_setX2D8(&instance, 9.0); + assertEqualU32( + global0_getX2Dx(&instance), + 6u, + "get-x()" + ); + assertEqualU64( + global0_getX2Dy(&instance), + 7ull, + "get-y()" + ); + assertEqualF32( + global0_getX2D7(&instance), + 8.0, + "get-7()" + ); + assertEqualF64( + global0_getX2D8(&instance), + 9.0, + "get-8()" + ); assertEqualU32( global0_asX2DselectX2Dfirst(&instance), 6u, diff --git a/tests/gen/assert_global.20.c b/tests/gen/assert_global.20.c deleted file mode 100644 index f083ed2a..00000000 --- a/tests/gen/assert_global.20.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_global.20.h" - -void test() { - global20Instance instance; - global20Instantiate(&instance, resolveTestImports); - printStart("global.20.wasm"); -} diff --git a/tests/gen/assert_global.22.c b/tests/gen/assert_global.22.c new file mode 100644 index 00000000..63b74b68 --- /dev/null +++ b/tests/gen/assert_global.22.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_global.22.h" + +void test() { + global22Instance instance; + global22Instantiate(&instance, resolveTestImports); + printStart("global.22.wasm"); +} diff --git a/tests/gen/assert_global.23.c b/tests/gen/assert_global.23.c deleted file mode 100644 index bbf27a0e..00000000 --- a/tests/gen/assert_global.23.c +++ /dev/null @@ -1,11 +0,0 @@ - -#include -#include "w2c2_base.h" -#include "test.h" -#include "test_global.23.h" - -void test() { - global23Instance instance; - global23Instantiate(&instance, resolveTestImports); - printStart("global.23.wasm"); -} diff --git a/tests/gen/assert_global.25.c b/tests/gen/assert_global.25.c new file mode 100644 index 00000000..666321ab --- /dev/null +++ b/tests/gen/assert_global.25.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_global.25.h" + +void test() { + global25Instance instance; + global25Instantiate(&instance, resolveTestImports); + printStart("global.25.wasm"); +} diff --git a/tests/gen/assert_if.0.c b/tests/gen/assert_if.0.c index d4255479..ada887f7 100644 --- a/tests/gen/assert_if.0.c +++ b/tests/gen/assert_if.0.c @@ -32,26 +32,6 @@ void test() { 7u, "singular(4294967286u)" ); - assertEqualU32( - if0_multi(&instance, 0u), - 9u, - "multi(0u)" - ); - assertEqualU32( - if0_multi(&instance, 1u), - 8u, - "multi(1u)" - ); - assertEqualU32( - if0_multi(&instance, 13u), - 8u, - "multi(13u)" - ); - assertEqualU32( - if0_multi(&instance, 4294967291u), - 8u, - "multi(4294967291u)" - ); assertEqualU32( if0_nested(&instance, 0u, 0u), 11u, @@ -403,4 +383,5 @@ void test() { 4294967290u, "effects(0u)" ); + if0_atypicalX2Dcondition(&instance); } diff --git a/tests/gen/assert_loop.0.c b/tests/gen/assert_loop.0.c index 204423e9..baef73cd 100644 --- a/tests/gen/assert_loop.0.c +++ b/tests/gen/assert_loop.0.c @@ -14,11 +14,6 @@ void test() { 7u, "singular()" ); - assertEqualU32( - loop0_multi(&instance), - 8u, - "multi()" - ); assertEqualU32( loop0_nested(&instance), 9u, @@ -158,16 +153,6 @@ void test() { 19u, "break-bare()" ); - assertEqualU32( - loop0_breakX2Dvalue(&instance), - 18u, - "break-value()" - ); - assertEqualU32( - loop0_breakX2Drepeated(&instance), - 18u, - "break-repeated()" - ); assertEqualU32( loop0_breakX2Dinner(&instance), 31u, diff --git a/tests/gen/assert_memory.34.c b/tests/gen/assert_memory.34.c new file mode 100644 index 00000000..68971e57 --- /dev/null +++ b/tests/gen/assert_memory.34.c @@ -0,0 +1,51 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory.34.h" + +void test() { + memory34Instance instance; + memory34Instantiate(&instance, resolveTestImports); + printStart("memory.34.wasm"); + assertEqualU32( + memory34_load(&instance, 0u), + 0u, + "load(0u)" + ); + assertEqualU32( + memory34_load(&instance, 10000u), + 0u, + "load(10000u)" + ); + assertEqualU32( + memory34_load(&instance, 20000u), + 0u, + "load(20000u)" + ); + assertEqualU32( + memory34_load(&instance, 30000u), + 0u, + "load(30000u)" + ); + assertEqualU32( + memory34_load(&instance, 40000u), + 0u, + "load(40000u)" + ); + assertEqualU32( + memory34_load(&instance, 50000u), + 0u, + "load(50000u)" + ); + assertEqualU32( + memory34_load(&instance, 60000u), + 0u, + "load(60000u)" + ); + assertEqualU32( + memory34_load(&instance, 65535u), + 0u, + "load(65535u)" + ); +} diff --git a/tests/gen/assert_memory_grow.5.c b/tests/gen/assert_memory_grow.5.c new file mode 100644 index 00000000..05ce5d7b --- /dev/null +++ b/tests/gen/assert_memory_grow.5.c @@ -0,0 +1,16 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_grow.5.h" + +void test() { + memorygrow5Instance instance; + memorygrow5Instantiate(&instance, resolveTestImports); + printStart("memory_grow.5.wasm"); + assertEqualU32( + memorygrow5_grow(&instance), + 1u, + "grow()" + ); +} diff --git a/tests/gen/assert_memory_init.0.c b/tests/gen/assert_memory_init.0.c new file mode 100644 index 00000000..48251dc7 --- /dev/null +++ b/tests/gen/assert_memory_init.0.c @@ -0,0 +1,163 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.0.h" + +void test() { + memoryinit0Instance instance; + memoryinit0Instantiate(&instance, resolveTestImports); + printStart("memory_init.0.wasm"); + memoryinit0_test(&instance); + printOK("test()"); + assertEqualU32( + memoryinit0_load8_u(&instance, 0u), + 0u, + "load8_u(0u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 1u), + 0u, + "load8_u(1u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 2u), + 3u, + "load8_u(2u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 3u), + 1u, + "load8_u(3u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 4u), + 4u, + "load8_u(4u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 5u), + 1u, + "load8_u(5u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 6u), + 0u, + "load8_u(6u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 7u), + 0u, + "load8_u(7u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 8u), + 0u, + "load8_u(8u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 9u), + 0u, + "load8_u(9u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 10u), + 0u, + "load8_u(10u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 11u), + 0u, + "load8_u(11u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 12u), + 7u, + "load8_u(12u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 13u), + 5u, + "load8_u(13u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 14u), + 2u, + "load8_u(14u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 15u), + 3u, + "load8_u(15u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 16u), + 6u, + "load8_u(16u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 17u), + 0u, + "load8_u(17u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 18u), + 0u, + "load8_u(18u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 19u), + 0u, + "load8_u(19u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 20u), + 0u, + "load8_u(20u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 21u), + 0u, + "load8_u(21u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 22u), + 0u, + "load8_u(22u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 23u), + 0u, + "load8_u(23u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 24u), + 0u, + "load8_u(24u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 25u), + 0u, + "load8_u(25u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 26u), + 0u, + "load8_u(26u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 27u), + 0u, + "load8_u(27u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 28u), + 0u, + "load8_u(28u)" + ); + assertEqualU32( + memoryinit0_load8_u(&instance, 29u), + 0u, + "load8_u(29u)" + ); +} diff --git a/tests/gen/assert_memory_init.1.c b/tests/gen/assert_memory_init.1.c new file mode 100644 index 00000000..87827d31 --- /dev/null +++ b/tests/gen/assert_memory_init.1.c @@ -0,0 +1,163 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.1.h" + +void test() { + memoryinit1Instance instance; + memoryinit1Instantiate(&instance, resolveTestImports); + printStart("memory_init.1.wasm"); + memoryinit1_test(&instance); + printOK("test()"); + assertEqualU32( + memoryinit1_load8_u(&instance, 0u), + 0u, + "load8_u(0u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 1u), + 0u, + "load8_u(1u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 2u), + 3u, + "load8_u(2u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 3u), + 1u, + "load8_u(3u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 4u), + 4u, + "load8_u(4u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 5u), + 1u, + "load8_u(5u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 6u), + 0u, + "load8_u(6u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 7u), + 2u, + "load8_u(7u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 8u), + 7u, + "load8_u(8u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 9u), + 1u, + "load8_u(9u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 10u), + 8u, + "load8_u(10u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 11u), + 0u, + "load8_u(11u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 12u), + 7u, + "load8_u(12u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 13u), + 5u, + "load8_u(13u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 14u), + 2u, + "load8_u(14u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 15u), + 3u, + "load8_u(15u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 16u), + 6u, + "load8_u(16u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 17u), + 0u, + "load8_u(17u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 18u), + 0u, + "load8_u(18u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 19u), + 0u, + "load8_u(19u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 20u), + 0u, + "load8_u(20u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 21u), + 0u, + "load8_u(21u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 22u), + 0u, + "load8_u(22u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 23u), + 0u, + "load8_u(23u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 24u), + 0u, + "load8_u(24u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 25u), + 0u, + "load8_u(25u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 26u), + 0u, + "load8_u(26u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 27u), + 0u, + "load8_u(27u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 28u), + 0u, + "load8_u(28u)" + ); + assertEqualU32( + memoryinit1_load8_u(&instance, 29u), + 0u, + "load8_u(29u)" + ); +} diff --git a/tests/gen/assert_memory_init.11.c b/tests/gen/assert_memory_init.11.c new file mode 100644 index 00000000..a0e2e810 --- /dev/null +++ b/tests/gen/assert_memory_init.11.c @@ -0,0 +1,13 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.11.h" + +void test() { + memoryinit11Instance instance; + memoryinit11Instantiate(&instance, resolveTestImports); + printStart("memory_init.11.wasm"); + memoryinit11_test(&instance); + printOK("test()"); +} diff --git a/tests/gen/assert_memory_init.12.c b/tests/gen/assert_memory_init.12.c new file mode 100644 index 00000000..a7a6106c --- /dev/null +++ b/tests/gen/assert_memory_init.12.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.12.h" + +void test() { + memoryinit12Instance instance; + memoryinit12Instantiate(&instance, resolveTestImports); + printStart("memory_init.12.wasm"); +} diff --git a/tests/gen/assert_memory_init.13.c b/tests/gen/assert_memory_init.13.c new file mode 100644 index 00000000..819d32a3 --- /dev/null +++ b/tests/gen/assert_memory_init.13.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.13.h" + +void test() { + memoryinit13Instance instance; + memoryinit13Instantiate(&instance, resolveTestImports); + printStart("memory_init.13.wasm"); +} diff --git a/tests/gen/assert_memory_init.14.c b/tests/gen/assert_memory_init.14.c new file mode 100644 index 00000000..5ba0d5c2 --- /dev/null +++ b/tests/gen/assert_memory_init.14.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.14.h" + +void test() { + memoryinit14Instance instance; + memoryinit14Instantiate(&instance, resolveTestImports); + printStart("memory_init.14.wasm"); +} diff --git a/tests/gen/assert_memory_init.15.c b/tests/gen/assert_memory_init.15.c new file mode 100644 index 00000000..526ab3bb --- /dev/null +++ b/tests/gen/assert_memory_init.15.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.15.h" + +void test() { + memoryinit15Instance instance; + memoryinit15Instantiate(&instance, resolveTestImports); + printStart("memory_init.15.wasm"); +} diff --git a/tests/gen/assert_memory_init.16.c b/tests/gen/assert_memory_init.16.c new file mode 100644 index 00000000..4c2d6b8c --- /dev/null +++ b/tests/gen/assert_memory_init.16.c @@ -0,0 +1,13 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.16.h" + +void test() { + memoryinit16Instance instance; + memoryinit16Instantiate(&instance, resolveTestImports); + printStart("memory_init.16.wasm"); + memoryinit16_test(&instance); + printOK("test()"); +} diff --git a/tests/gen/assert_memory_init.17.c b/tests/gen/assert_memory_init.17.c new file mode 100644 index 00000000..64b8d8cb --- /dev/null +++ b/tests/gen/assert_memory_init.17.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.17.h" + +void test() { + memoryinit17Instance instance; + memoryinit17Instantiate(&instance, resolveTestImports); + printStart("memory_init.17.wasm"); +} diff --git a/tests/gen/assert_memory_init.18.c b/tests/gen/assert_memory_init.18.c new file mode 100644 index 00000000..f42d4ee2 --- /dev/null +++ b/tests/gen/assert_memory_init.18.c @@ -0,0 +1,13 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.18.h" + +void test() { + memoryinit18Instance instance; + memoryinit18Instantiate(&instance, resolveTestImports); + printStart("memory_init.18.wasm"); + memoryinit18_test(&instance); + printOK("test()"); +} diff --git a/tests/gen/assert_memory_init.19.c b/tests/gen/assert_memory_init.19.c new file mode 100644 index 00000000..00d9185f --- /dev/null +++ b/tests/gen/assert_memory_init.19.c @@ -0,0 +1,13 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.19.h" + +void test() { + memoryinit19Instance instance; + memoryinit19Instantiate(&instance, resolveTestImports); + printStart("memory_init.19.wasm"); + memoryinit19_test(&instance); + printOK("test()"); +} diff --git a/tests/gen/assert_memory_init.2.c b/tests/gen/assert_memory_init.2.c new file mode 100644 index 00000000..21c51901 --- /dev/null +++ b/tests/gen/assert_memory_init.2.c @@ -0,0 +1,163 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.2.h" + +void test() { + memoryinit2Instance instance; + memoryinit2Instantiate(&instance, resolveTestImports); + printStart("memory_init.2.wasm"); + memoryinit2_test(&instance); + printOK("test()"); + assertEqualU32( + memoryinit2_load8_u(&instance, 0u), + 0u, + "load8_u(0u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 1u), + 0u, + "load8_u(1u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 2u), + 3u, + "load8_u(2u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 3u), + 1u, + "load8_u(3u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 4u), + 4u, + "load8_u(4u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 5u), + 1u, + "load8_u(5u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 6u), + 0u, + "load8_u(6u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 7u), + 0u, + "load8_u(7u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 8u), + 0u, + "load8_u(8u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 9u), + 0u, + "load8_u(9u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 10u), + 0u, + "load8_u(10u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 11u), + 0u, + "load8_u(11u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 12u), + 7u, + "load8_u(12u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 13u), + 5u, + "load8_u(13u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 14u), + 2u, + "load8_u(14u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 15u), + 9u, + "load8_u(15u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 16u), + 2u, + "load8_u(16u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 17u), + 7u, + "load8_u(17u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 18u), + 0u, + "load8_u(18u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 19u), + 0u, + "load8_u(19u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 20u), + 0u, + "load8_u(20u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 21u), + 0u, + "load8_u(21u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 22u), + 0u, + "load8_u(22u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 23u), + 0u, + "load8_u(23u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 24u), + 0u, + "load8_u(24u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 25u), + 0u, + "load8_u(25u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 26u), + 0u, + "load8_u(26u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 27u), + 0u, + "load8_u(27u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 28u), + 0u, + "load8_u(28u)" + ); + assertEqualU32( + memoryinit2_load8_u(&instance, 29u), + 0u, + "load8_u(29u)" + ); +} diff --git a/tests/gen/assert_memory_init.20.c b/tests/gen/assert_memory_init.20.c new file mode 100644 index 00000000..c31e211e --- /dev/null +++ b/tests/gen/assert_memory_init.20.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.20.h" + +void test() { + memoryinit20Instance instance; + memoryinit20Instantiate(&instance, resolveTestImports); + printStart("memory_init.20.wasm"); +} diff --git a/tests/gen/assert_memory_init.3.c b/tests/gen/assert_memory_init.3.c new file mode 100644 index 00000000..25f5ddca --- /dev/null +++ b/tests/gen/assert_memory_init.3.c @@ -0,0 +1,163 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.3.h" + +void test() { + memoryinit3Instance instance; + memoryinit3Instantiate(&instance, resolveTestImports); + printStart("memory_init.3.wasm"); + memoryinit3_test(&instance); + printOK("test()"); + assertEqualU32( + memoryinit3_load8_u(&instance, 0u), + 0u, + "load8_u(0u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 1u), + 0u, + "load8_u(1u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 2u), + 3u, + "load8_u(2u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 3u), + 1u, + "load8_u(3u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 4u), + 4u, + "load8_u(4u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 5u), + 1u, + "load8_u(5u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 6u), + 0u, + "load8_u(6u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 7u), + 2u, + "load8_u(7u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 8u), + 7u, + "load8_u(8u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 9u), + 1u, + "load8_u(9u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 10u), + 8u, + "load8_u(10u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 11u), + 0u, + "load8_u(11u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 12u), + 7u, + "load8_u(12u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 13u), + 0u, + "load8_u(13u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 14u), + 7u, + "load8_u(14u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 15u), + 5u, + "load8_u(15u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 16u), + 2u, + "load8_u(16u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 17u), + 7u, + "load8_u(17u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 18u), + 0u, + "load8_u(18u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 19u), + 9u, + "load8_u(19u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 20u), + 0u, + "load8_u(20u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 21u), + 7u, + "load8_u(21u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 22u), + 0u, + "load8_u(22u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 23u), + 8u, + "load8_u(23u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 24u), + 8u, + "load8_u(24u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 25u), + 0u, + "load8_u(25u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 26u), + 0u, + "load8_u(26u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 27u), + 0u, + "load8_u(27u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 28u), + 0u, + "load8_u(28u)" + ); + assertEqualU32( + memoryinit3_load8_u(&instance, 29u), + 0u, + "load8_u(29u)" + ); +} diff --git a/tests/gen/assert_memory_init.6.c b/tests/gen/assert_memory_init.6.c new file mode 100644 index 00000000..b34e0e30 --- /dev/null +++ b/tests/gen/assert_memory_init.6.c @@ -0,0 +1,13 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.6.h" + +void test() { + memoryinit6Instance instance; + memoryinit6Instantiate(&instance, resolveTestImports); + printStart("memory_init.6.wasm"); + memoryinit6_test(&instance); + printOK("test()"); +} diff --git a/tests/gen/assert_memory_init.7.c b/tests/gen/assert_memory_init.7.c new file mode 100644 index 00000000..73c2618a --- /dev/null +++ b/tests/gen/assert_memory_init.7.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.7.h" + +void test() { + memoryinit7Instance instance; + memoryinit7Instantiate(&instance, resolveTestImports); + printStart("memory_init.7.wasm"); +} diff --git a/tests/gen/assert_memory_init.8.c b/tests/gen/assert_memory_init.8.c new file mode 100644 index 00000000..c431acb3 --- /dev/null +++ b/tests/gen/assert_memory_init.8.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.8.h" + +void test() { + memoryinit8Instance instance; + memoryinit8Instantiate(&instance, resolveTestImports); + printStart("memory_init.8.wasm"); +} diff --git a/tests/gen/assert_memory_init.84.c b/tests/gen/assert_memory_init.84.c new file mode 100644 index 00000000..350bb25a --- /dev/null +++ b/tests/gen/assert_memory_init.84.c @@ -0,0 +1,16 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.84.h" + +void test() { + memoryinit84Instance instance; + memoryinit84Instantiate(&instance, resolveTestImports); + printStart("memory_init.84.wasm"); + assertEqualU32( + memoryinit84_checkRange(&instance, 0u, 1u, 0u), + 4294967295u, + "checkRange(0u, 1u, 0u)" + ); +} diff --git a/tests/gen/assert_memory_init.85.c b/tests/gen/assert_memory_init.85.c new file mode 100644 index 00000000..da188081 --- /dev/null +++ b/tests/gen/assert_memory_init.85.c @@ -0,0 +1,16 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.85.h" + +void test() { + memoryinit85Instance instance; + memoryinit85Instantiate(&instance, resolveTestImports); + printStart("memory_init.85.wasm"); + assertEqualU32( + memoryinit85_checkRange(&instance, 0u, 1u, 0u), + 4294967295u, + "checkRange(0u, 1u, 0u)" + ); +} diff --git a/tests/gen/assert_memory_init.86.c b/tests/gen/assert_memory_init.86.c new file mode 100644 index 00000000..2c583d37 --- /dev/null +++ b/tests/gen/assert_memory_init.86.c @@ -0,0 +1,16 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.86.h" + +void test() { + memoryinit86Instance instance; + memoryinit86Instantiate(&instance, resolveTestImports); + printStart("memory_init.86.wasm"); + assertEqualU32( + memoryinit86_checkRange(&instance, 0u, 1u, 0u), + 4294967295u, + "checkRange(0u, 1u, 0u)" + ); +} diff --git a/tests/gen/assert_memory_init.87.c b/tests/gen/assert_memory_init.87.c new file mode 100644 index 00000000..25896d89 --- /dev/null +++ b/tests/gen/assert_memory_init.87.c @@ -0,0 +1,16 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.87.h" + +void test() { + memoryinit87Instance instance; + memoryinit87Instantiate(&instance, resolveTestImports); + printStart("memory_init.87.wasm"); + assertEqualU32( + memoryinit87_checkRange(&instance, 0u, 1u, 0u), + 4294967295u, + "checkRange(0u, 1u, 0u)" + ); +} diff --git a/tests/gen/assert_memory_init.88.c b/tests/gen/assert_memory_init.88.c new file mode 100644 index 00000000..0acbbe28 --- /dev/null +++ b/tests/gen/assert_memory_init.88.c @@ -0,0 +1,16 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.88.h" + +void test() { + memoryinit88Instance instance; + memoryinit88Instantiate(&instance, resolveTestImports); + printStart("memory_init.88.wasm"); + assertEqualU32( + memoryinit88_checkRange(&instance, 0u, 1u, 0u), + 4294967295u, + "checkRange(0u, 1u, 0u)" + ); +} diff --git a/tests/gen/assert_memory_init.89.c b/tests/gen/assert_memory_init.89.c new file mode 100644 index 00000000..4df709d1 --- /dev/null +++ b/tests/gen/assert_memory_init.89.c @@ -0,0 +1,16 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.89.h" + +void test() { + memoryinit89Instance instance; + memoryinit89Instantiate(&instance, resolveTestImports); + printStart("memory_init.89.wasm"); + assertEqualU32( + memoryinit89_checkRange(&instance, 0u, 1u, 0u), + 4294967295u, + "checkRange(0u, 1u, 0u)" + ); +} diff --git a/tests/gen/assert_memory_init.90.c b/tests/gen/assert_memory_init.90.c new file mode 100644 index 00000000..340b5010 --- /dev/null +++ b/tests/gen/assert_memory_init.90.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_memory_init.90.h" + +void test() { + memoryinit90Instance instance; + memoryinit90Instantiate(&instance, resolveTestImports); + printStart("memory_init.90.wasm"); +} diff --git a/tests/gen/assert_memory_trap.1.c b/tests/gen/assert_memory_trap.1.c index ea95c6dd..24401ee3 100644 --- a/tests/gen/assert_memory_trap.1.c +++ b/tests/gen/assert_memory_trap.1.c @@ -18,4 +18,25 @@ void test() { 7523094288207667809ull, "i64.load(0u)" ); + memorytrap1_i64X2Estore(&instance, 65528u, 0ull); + assertEqualU32( + memorytrap1_i32X2Eload(&instance, 65532u), + 0u, + "i32.load(65532u)" + ); + assertEqualU64( + memorytrap1_i64X2Eload(&instance, 65528u), + 0ull, + "i64.load(65528u)" + ); + assertEqualF32( + memorytrap1_f32X2Eload(&instance, 65532u), + 0.0, + "f32.load(65532u)" + ); + assertEqualF64( + memorytrap1_f64X2Eload(&instance, 65528u), + 0.0, + "f64.load(65528u)" + ); } diff --git a/tests/gen/assert_select.0.c b/tests/gen/assert_select.0.c index 1917bc68..c4f71116 100644 --- a/tests/gen/assert_select.0.c +++ b/tests/gen/assert_select.0.c @@ -9,44 +9,44 @@ void test() { select0Instantiate(&instance, resolveTestImports); printStart("select.0.wasm"); assertEqualU32( - select0_select_i32(&instance, 1u, 2u, 1u), + select0_selectX2Di32(&instance, 1u, 2u, 1u), 1u, - "select_i32(1u, 2u, 1u)" + "select-i32(1u, 2u, 1u)" ); assertEqualU64( - select0_select_i64(&instance, 2ull, 1ull, 1u), + select0_selectX2Di64(&instance, 2ull, 1ull, 1u), 2ull, - "select_i64(2ull, 1ull, 1u)" + "select-i64(2ull, 1ull, 1u)" ); assertEqualF32( - select0_select_f32(&instance, 1.0, 2.0, 1u), + select0_selectX2Df32(&instance, 1.0, 2.0, 1u), 1.0, - "select_f32(1.0, 2.0, 1u)" + "select-f32(1.0, 2.0, 1u)" ); assertEqualF64( - select0_select_f64(&instance, 1.0, 2.0, 1u), + select0_selectX2Df64(&instance, 1.0, 2.0, 1u), 1.0, - "select_f64(1.0, 2.0, 1u)" + "select-f64(1.0, 2.0, 1u)" ); assertEqualU32( - select0_select_i32(&instance, 1u, 2u, 0u), + select0_selectX2Di32(&instance, 1u, 2u, 0u), 2u, - "select_i32(1u, 2u, 0u)" + "select-i32(1u, 2u, 0u)" ); assertEqualU32( - select0_select_i32(&instance, 2u, 1u, 0u), + select0_selectX2Di32(&instance, 2u, 1u, 0u), 1u, - "select_i32(2u, 1u, 0u)" + "select-i32(2u, 1u, 0u)" ); assertEqualU64( - select0_select_i64(&instance, 2ull, 1ull, 4294967295u), + select0_selectX2Di64(&instance, 2ull, 1ull, 4294967295u), 2ull, - "select_i64(2ull, 1ull, 4294967295u)" + "select-i64(2ull, 1ull, 4294967295u)" ); assertEqualU64( - select0_select_i64(&instance, 2ull, 1ull, 4042322160u), + select0_selectX2Di64(&instance, 2ull, 1ull, 4042322160u), 2ull, - "select_i64(2ull, 1ull, 4042322160u)" + "select-i64(2ull, 1ull, 4042322160u)" ); assertEqualU32( select0_asX2DselectX2Dfirst(&instance, 0u), @@ -170,26 +170,6 @@ void test() { 2u, "as-br_table-last(1u)" ); - assertEqualU32( - select0_asX2Dcall_indirectX2Dfirst(&instance, 0u), - 3u, - "as-call_indirect-first(0u)" - ); - assertEqualU32( - select0_asX2Dcall_indirectX2Dfirst(&instance, 1u), - 2u, - "as-call_indirect-first(1u)" - ); - assertEqualU32( - select0_asX2Dcall_indirectX2Dmid(&instance, 0u), - 1u, - "as-call_indirect-mid(0u)" - ); - assertEqualU32( - select0_asX2Dcall_indirectX2Dmid(&instance, 1u), - 1u, - "as-call_indirect-mid(1u)" - ); select0_asX2DstoreX2Dfirst(&instance, 0u); select0_asX2DstoreX2Dfirst(&instance, 1u); select0_asX2DstoreX2Dlast(&instance, 0u); diff --git a/tests/gen/assert_select.26.c b/tests/gen/assert_select.26.c new file mode 100644 index 00000000..c593a18c --- /dev/null +++ b/tests/gen/assert_select.26.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_select.26.h" + +void test() { + select26Instance instance; + select26Instantiate(&instance, resolveTestImports); + printStart("select.26.wasm"); +} diff --git a/tests/gen/assert_unreachable.0.c b/tests/gen/assert_unreachable.0.c new file mode 100644 index 00000000..9c13b62a --- /dev/null +++ b/tests/gen/assert_unreachable.0.c @@ -0,0 +1,36 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_unreachable.0.h" + +void test() { + unreachable0Instance instance; + unreachable0Instantiate(&instance, resolveTestImports); + printStart("unreachable.0.wasm"); + assertEqualU32( + unreachable0_asX2DblockX2Dbroke(&instance), + 1u, + "as-block-broke()" + ); + assertEqualU32( + unreachable0_asX2DloopX2Dbroke(&instance), + 1u, + "as-loop-broke()" + ); + assertEqualU32( + unreachable0_asX2DifX2Dthen(&instance, 0u, 6u), + 6u, + "as-if-then(0u, 6u)" + ); + assertEqualU32( + unreachable0_asX2DifX2Delse(&instance, 1u, 6u), + 6u, + "as-if-else(1u, 6u)" + ); + assertEqualU32( + unreachable0_asX2DifX2DthenX2DnoX2Delse(&instance, 0u, 6u), + 6u, + "as-if-then-no-else(0u, 6u)" + ); +} diff --git a/tests/gen/assert_unreached-valid.0.c b/tests/gen/assert_unreached-valid.0.c new file mode 100644 index 00000000..108862a6 --- /dev/null +++ b/tests/gen/assert_unreached-valid.0.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_unreached-valid.0.h" + +void test() { + unreachedvalid0Instance instance; + unreachedvalid0Instantiate(&instance, resolveTestImports); + printStart("unreached-valid.0.wasm"); +} diff --git a/tests/gen/assert_unreached-valid.1.c b/tests/gen/assert_unreached-valid.1.c new file mode 100644 index 00000000..271aaae6 --- /dev/null +++ b/tests/gen/assert_unreached-valid.1.c @@ -0,0 +1,11 @@ + +#include +#include "w2c2_base.h" +#include "test.h" +#include "test_unreached-valid.1.h" + +void test() { + unreachedvalid1Instance instance; + unreachedvalid1Instantiate(&instance, resolveTestImports); + printStart("unreached-valid.1.wasm"); +} diff --git a/tests/gen/binary-leb128.0.wasm b/tests/gen/binary-leb128.0.wasm new file mode 100644 index 00000000..3950f79a Binary files /dev/null and b/tests/gen/binary-leb128.0.wasm differ diff --git a/tests/gen/binary-leb128.1.wasm b/tests/gen/binary-leb128.1.wasm new file mode 100644 index 00000000..a53aabf7 Binary files /dev/null and b/tests/gen/binary-leb128.1.wasm differ diff --git a/tests/gen/binary-leb128.10.wasm b/tests/gen/binary-leb128.10.wasm new file mode 100644 index 00000000..980f2fc2 Binary files /dev/null and b/tests/gen/binary-leb128.10.wasm differ diff --git a/tests/gen/binary-leb128.11.wasm b/tests/gen/binary-leb128.11.wasm new file mode 100644 index 00000000..d37aa79e Binary files /dev/null and b/tests/gen/binary-leb128.11.wasm differ diff --git a/tests/gen/binary-leb128.12.wasm b/tests/gen/binary-leb128.12.wasm new file mode 100644 index 00000000..35532824 Binary files /dev/null and b/tests/gen/binary-leb128.12.wasm differ diff --git a/tests/gen/binary-leb128.13.wasm b/tests/gen/binary-leb128.13.wasm new file mode 100644 index 00000000..2d8a4f90 Binary files /dev/null and b/tests/gen/binary-leb128.13.wasm differ diff --git a/tests/gen/binary-leb128.14.wasm b/tests/gen/binary-leb128.14.wasm new file mode 100644 index 00000000..3f2de5b3 Binary files /dev/null and b/tests/gen/binary-leb128.14.wasm differ diff --git a/tests/gen/block.5.wasm b/tests/gen/binary-leb128.15.wasm similarity index 65% rename from tests/gen/block.5.wasm rename to tests/gen/binary-leb128.15.wasm index c724ec20..a16b6648 100644 Binary files a/tests/gen/block.5.wasm and b/tests/gen/binary-leb128.15.wasm differ diff --git a/tests/gen/binary-leb128.16.wasm b/tests/gen/binary-leb128.16.wasm new file mode 100644 index 00000000..14c28acc Binary files /dev/null and b/tests/gen/binary-leb128.16.wasm differ diff --git a/tests/gen/binary-leb128.17.wasm b/tests/gen/binary-leb128.17.wasm new file mode 100644 index 00000000..3ca4821d Binary files /dev/null and b/tests/gen/binary-leb128.17.wasm differ diff --git a/tests/gen/binary-leb128.18.wasm b/tests/gen/binary-leb128.18.wasm new file mode 100644 index 00000000..fac4e1ee Binary files /dev/null and b/tests/gen/binary-leb128.18.wasm differ diff --git a/tests/gen/binary-leb128.19.wasm b/tests/gen/binary-leb128.19.wasm new file mode 100644 index 00000000..ee7d313c Binary files /dev/null and b/tests/gen/binary-leb128.19.wasm differ diff --git a/tests/gen/binary-leb128.2.wasm b/tests/gen/binary-leb128.2.wasm new file mode 100644 index 00000000..faed5fbe Binary files /dev/null and b/tests/gen/binary-leb128.2.wasm differ diff --git a/tests/gen/binary-leb128.20.wasm b/tests/gen/binary-leb128.20.wasm new file mode 100644 index 00000000..93fb38a0 Binary files /dev/null and b/tests/gen/binary-leb128.20.wasm differ diff --git a/tests/gen/binary-leb128.21.wasm b/tests/gen/binary-leb128.21.wasm new file mode 100644 index 00000000..7ac145ef Binary files /dev/null and b/tests/gen/binary-leb128.21.wasm differ diff --git a/tests/gen/binary-leb128.22.wasm b/tests/gen/binary-leb128.22.wasm new file mode 100644 index 00000000..6779e7a2 Binary files /dev/null and b/tests/gen/binary-leb128.22.wasm differ diff --git a/tests/gen/binary-leb128.23.wasm b/tests/gen/binary-leb128.23.wasm new file mode 100644 index 00000000..708c663b Binary files /dev/null and b/tests/gen/binary-leb128.23.wasm differ diff --git a/tests/gen/binary-leb128.24.wasm b/tests/gen/binary-leb128.24.wasm new file mode 100644 index 00000000..e793dcbf Binary files /dev/null and b/tests/gen/binary-leb128.24.wasm differ diff --git a/tests/gen/binary-leb128.25.wasm b/tests/gen/binary-leb128.25.wasm new file mode 100644 index 00000000..7b34165f Binary files /dev/null and b/tests/gen/binary-leb128.25.wasm differ diff --git a/tests/gen/binary-leb128.26.wasm b/tests/gen/binary-leb128.26.wasm new file mode 100644 index 00000000..8e1811db Binary files /dev/null and b/tests/gen/binary-leb128.26.wasm differ diff --git a/tests/gen/binary-leb128.27.wasm b/tests/gen/binary-leb128.27.wasm new file mode 100644 index 00000000..eddf334d Binary files /dev/null and b/tests/gen/binary-leb128.27.wasm differ diff --git a/tests/gen/binary-leb128.28.wasm b/tests/gen/binary-leb128.28.wasm new file mode 100644 index 00000000..c1561b74 Binary files /dev/null and b/tests/gen/binary-leb128.28.wasm differ diff --git a/tests/gen/binary-leb128.29.wasm b/tests/gen/binary-leb128.29.wasm new file mode 100644 index 00000000..b7186d7d Binary files /dev/null and b/tests/gen/binary-leb128.29.wasm differ diff --git a/tests/gen/binary-leb128.3.wasm b/tests/gen/binary-leb128.3.wasm new file mode 100644 index 00000000..d83ba85f Binary files /dev/null and b/tests/gen/binary-leb128.3.wasm differ diff --git a/tests/gen/binary-leb128.30.wasm b/tests/gen/binary-leb128.30.wasm new file mode 100644 index 00000000..ba179584 Binary files /dev/null and b/tests/gen/binary-leb128.30.wasm differ diff --git a/tests/gen/binary-leb128.31.wasm b/tests/gen/binary-leb128.31.wasm new file mode 100644 index 00000000..c15d5aaa Binary files /dev/null and b/tests/gen/binary-leb128.31.wasm differ diff --git a/tests/gen/binary-leb128.32.wasm b/tests/gen/binary-leb128.32.wasm new file mode 100644 index 00000000..28dd08b0 Binary files /dev/null and b/tests/gen/binary-leb128.32.wasm differ diff --git a/tests/gen/binary-leb128.33.wasm b/tests/gen/binary-leb128.33.wasm new file mode 100644 index 00000000..53dcc008 Binary files /dev/null and b/tests/gen/binary-leb128.33.wasm differ diff --git a/tests/gen/binary-leb128.34.wasm b/tests/gen/binary-leb128.34.wasm new file mode 100644 index 00000000..4232a397 Binary files /dev/null and b/tests/gen/binary-leb128.34.wasm differ diff --git a/tests/gen/binary-leb128.35.wasm b/tests/gen/binary-leb128.35.wasm new file mode 100644 index 00000000..6cfe0b17 Binary files /dev/null and b/tests/gen/binary-leb128.35.wasm differ diff --git a/tests/gen/binary-leb128.36.wasm b/tests/gen/binary-leb128.36.wasm new file mode 100644 index 00000000..a6f8a97f Binary files /dev/null and b/tests/gen/binary-leb128.36.wasm differ diff --git a/tests/gen/binary-leb128.37.wasm b/tests/gen/binary-leb128.37.wasm new file mode 100644 index 00000000..74e14c52 Binary files /dev/null and b/tests/gen/binary-leb128.37.wasm differ diff --git a/tests/gen/block.6.wasm b/tests/gen/binary-leb128.38.wasm similarity index 65% rename from tests/gen/block.6.wasm rename to tests/gen/binary-leb128.38.wasm index 1d10f55c..62b666d0 100644 Binary files a/tests/gen/block.6.wasm and b/tests/gen/binary-leb128.38.wasm differ diff --git a/tests/gen/binary-leb128.39.wasm b/tests/gen/binary-leb128.39.wasm new file mode 100644 index 00000000..d098584c Binary files /dev/null and b/tests/gen/binary-leb128.39.wasm differ diff --git a/tests/gen/binary-leb128.4.wasm b/tests/gen/binary-leb128.4.wasm new file mode 100644 index 00000000..ba035c42 Binary files /dev/null and b/tests/gen/binary-leb128.4.wasm differ diff --git a/tests/gen/binary-leb128.40.wasm b/tests/gen/binary-leb128.40.wasm new file mode 100644 index 00000000..81dbfc07 Binary files /dev/null and b/tests/gen/binary-leb128.40.wasm differ diff --git a/tests/gen/binary-leb128.41.wasm b/tests/gen/binary-leb128.41.wasm new file mode 100644 index 00000000..dfc06872 Binary files /dev/null and b/tests/gen/binary-leb128.41.wasm differ diff --git a/tests/gen/binary-leb128.42.wasm b/tests/gen/binary-leb128.42.wasm new file mode 100644 index 00000000..6e03d8e1 Binary files /dev/null and b/tests/gen/binary-leb128.42.wasm differ diff --git a/tests/gen/binary-leb128.43.wasm b/tests/gen/binary-leb128.43.wasm new file mode 100644 index 00000000..cc6ec0cd Binary files /dev/null and b/tests/gen/binary-leb128.43.wasm differ diff --git a/tests/gen/binary-leb128.44.wasm b/tests/gen/binary-leb128.44.wasm new file mode 100644 index 00000000..a6ec0f0c Binary files /dev/null and b/tests/gen/binary-leb128.44.wasm differ diff --git a/tests/gen/binary-leb128.45.wasm b/tests/gen/binary-leb128.45.wasm new file mode 100644 index 00000000..06d3f715 Binary files /dev/null and b/tests/gen/binary-leb128.45.wasm differ diff --git a/tests/gen/binary-leb128.46.wasm b/tests/gen/binary-leb128.46.wasm new file mode 100644 index 00000000..c85d6544 Binary files /dev/null and b/tests/gen/binary-leb128.46.wasm differ diff --git a/tests/gen/binary-leb128.47.wasm b/tests/gen/binary-leb128.47.wasm new file mode 100644 index 00000000..2974bc6a Binary files /dev/null and b/tests/gen/binary-leb128.47.wasm differ diff --git a/tests/gen/binary-leb128.48.wasm b/tests/gen/binary-leb128.48.wasm new file mode 100644 index 00000000..61cc0ce6 Binary files /dev/null and b/tests/gen/binary-leb128.48.wasm differ diff --git a/tests/gen/binary-leb128.49.wasm b/tests/gen/binary-leb128.49.wasm new file mode 100644 index 00000000..55644ea3 Binary files /dev/null and b/tests/gen/binary-leb128.49.wasm differ diff --git a/tests/gen/binary-leb128.5.wasm b/tests/gen/binary-leb128.5.wasm new file mode 100644 index 00000000..02c4fabf Binary files /dev/null and b/tests/gen/binary-leb128.5.wasm differ diff --git a/tests/gen/binary-leb128.50.wasm b/tests/gen/binary-leb128.50.wasm new file mode 100644 index 00000000..f0c1b625 Binary files /dev/null and b/tests/gen/binary-leb128.50.wasm differ diff --git a/tests/gen/binary-leb128.51.wasm b/tests/gen/binary-leb128.51.wasm new file mode 100644 index 00000000..a8407664 Binary files /dev/null and b/tests/gen/binary-leb128.51.wasm differ diff --git a/tests/gen/binary-leb128.52.wasm b/tests/gen/binary-leb128.52.wasm new file mode 100644 index 00000000..0ca5f6c3 Binary files /dev/null and b/tests/gen/binary-leb128.52.wasm differ diff --git a/tests/gen/binary-leb128.53.wasm b/tests/gen/binary-leb128.53.wasm new file mode 100644 index 00000000..4b73d422 Binary files /dev/null and b/tests/gen/binary-leb128.53.wasm differ diff --git a/tests/gen/binary-leb128.54.wasm b/tests/gen/binary-leb128.54.wasm new file mode 100644 index 00000000..b9ab2ac3 Binary files /dev/null and b/tests/gen/binary-leb128.54.wasm differ diff --git a/tests/gen/binary-leb128.55.wasm b/tests/gen/binary-leb128.55.wasm new file mode 100644 index 00000000..140c8697 Binary files /dev/null and b/tests/gen/binary-leb128.55.wasm differ diff --git a/tests/gen/binary-leb128.56.wasm b/tests/gen/binary-leb128.56.wasm new file mode 100644 index 00000000..8b30eef4 Binary files /dev/null and b/tests/gen/binary-leb128.56.wasm differ diff --git a/tests/gen/binary-leb128.57.wasm b/tests/gen/binary-leb128.57.wasm new file mode 100644 index 00000000..f29dfa54 Binary files /dev/null and b/tests/gen/binary-leb128.57.wasm differ diff --git a/tests/gen/binary-leb128.58.wasm b/tests/gen/binary-leb128.58.wasm new file mode 100644 index 00000000..5c85c720 Binary files /dev/null and b/tests/gen/binary-leb128.58.wasm differ diff --git a/tests/gen/binary-leb128.59.wasm b/tests/gen/binary-leb128.59.wasm new file mode 100644 index 00000000..d45384df Binary files /dev/null and b/tests/gen/binary-leb128.59.wasm differ diff --git a/tests/gen/binary-leb128.6.wasm b/tests/gen/binary-leb128.6.wasm new file mode 100644 index 00000000..0013878a Binary files /dev/null and b/tests/gen/binary-leb128.6.wasm differ diff --git a/tests/gen/binary-leb128.60.wasm b/tests/gen/binary-leb128.60.wasm new file mode 100644 index 00000000..29e92e8c Binary files /dev/null and b/tests/gen/binary-leb128.60.wasm differ diff --git a/tests/gen/binary-leb128.61.wasm b/tests/gen/binary-leb128.61.wasm new file mode 100644 index 00000000..8c331d84 Binary files /dev/null and b/tests/gen/binary-leb128.61.wasm differ diff --git a/tests/gen/binary-leb128.62.wasm b/tests/gen/binary-leb128.62.wasm new file mode 100644 index 00000000..b70ba747 Binary files /dev/null and b/tests/gen/binary-leb128.62.wasm differ diff --git a/tests/gen/func.15.wasm b/tests/gen/binary-leb128.63.wasm similarity index 65% rename from tests/gen/func.15.wasm rename to tests/gen/binary-leb128.63.wasm index 3620ba11..bc269c1e 100644 Binary files a/tests/gen/func.15.wasm and b/tests/gen/binary-leb128.63.wasm differ diff --git a/tests/gen/binary-leb128.64.wasm b/tests/gen/binary-leb128.64.wasm new file mode 100644 index 00000000..4167a71d Binary files /dev/null and b/tests/gen/binary-leb128.64.wasm differ diff --git a/tests/gen/binary-leb128.65.wasm b/tests/gen/binary-leb128.65.wasm new file mode 100644 index 00000000..8c8dde90 Binary files /dev/null and b/tests/gen/binary-leb128.65.wasm differ diff --git a/tests/gen/binary-leb128.66.wasm b/tests/gen/binary-leb128.66.wasm new file mode 100644 index 00000000..adea9564 Binary files /dev/null and b/tests/gen/binary-leb128.66.wasm differ diff --git a/tests/gen/binary-leb128.67.wasm b/tests/gen/binary-leb128.67.wasm new file mode 100644 index 00000000..f7800684 Binary files /dev/null and b/tests/gen/binary-leb128.67.wasm differ diff --git a/tests/gen/binary-leb128.68.wasm b/tests/gen/binary-leb128.68.wasm new file mode 100644 index 00000000..0e796a50 Binary files /dev/null and b/tests/gen/binary-leb128.68.wasm differ diff --git a/tests/gen/binary-leb128.69.wasm b/tests/gen/binary-leb128.69.wasm new file mode 100644 index 00000000..c6633a70 Binary files /dev/null and b/tests/gen/binary-leb128.69.wasm differ diff --git a/tests/gen/binary-leb128.7.wasm b/tests/gen/binary-leb128.7.wasm new file mode 100644 index 00000000..3bdbc2c5 Binary files /dev/null and b/tests/gen/binary-leb128.7.wasm differ diff --git a/tests/gen/binary-leb128.70.wasm b/tests/gen/binary-leb128.70.wasm new file mode 100644 index 00000000..ef5d0758 Binary files /dev/null and b/tests/gen/binary-leb128.70.wasm differ diff --git a/tests/gen/binary-leb128.71.wasm b/tests/gen/binary-leb128.71.wasm new file mode 100644 index 00000000..2e489e5b Binary files /dev/null and b/tests/gen/binary-leb128.71.wasm differ diff --git a/tests/gen/binary-leb128.72.wasm b/tests/gen/binary-leb128.72.wasm new file mode 100644 index 00000000..a964e6fd Binary files /dev/null and b/tests/gen/binary-leb128.72.wasm differ diff --git a/tests/gen/binary-leb128.73.wasm b/tests/gen/binary-leb128.73.wasm new file mode 100644 index 00000000..48eed1dd Binary files /dev/null and b/tests/gen/binary-leb128.73.wasm differ diff --git a/tests/gen/binary-leb128.74.wasm b/tests/gen/binary-leb128.74.wasm new file mode 100644 index 00000000..3d14d314 Binary files /dev/null and b/tests/gen/binary-leb128.74.wasm differ diff --git a/tests/gen/binary-leb128.75.wasm b/tests/gen/binary-leb128.75.wasm new file mode 100644 index 00000000..c04dfc96 Binary files /dev/null and b/tests/gen/binary-leb128.75.wasm differ diff --git a/tests/gen/binary-leb128.76.wasm b/tests/gen/binary-leb128.76.wasm new file mode 100644 index 00000000..8fa2b9fa Binary files /dev/null and b/tests/gen/binary-leb128.76.wasm differ diff --git a/tests/gen/binary-leb128.77.wasm b/tests/gen/binary-leb128.77.wasm new file mode 100644 index 00000000..58074cc2 Binary files /dev/null and b/tests/gen/binary-leb128.77.wasm differ diff --git a/tests/gen/binary-leb128.78.wasm b/tests/gen/binary-leb128.78.wasm new file mode 100644 index 00000000..b751e779 Binary files /dev/null and b/tests/gen/binary-leb128.78.wasm differ diff --git a/tests/gen/binary-leb128.79.wasm b/tests/gen/binary-leb128.79.wasm new file mode 100644 index 00000000..e17873f4 Binary files /dev/null and b/tests/gen/binary-leb128.79.wasm differ diff --git a/tests/gen/binary-leb128.8.wasm b/tests/gen/binary-leb128.8.wasm new file mode 100644 index 00000000..5aa07d75 Binary files /dev/null and b/tests/gen/binary-leb128.8.wasm differ diff --git a/tests/gen/binary-leb128.80.wasm b/tests/gen/binary-leb128.80.wasm new file mode 100644 index 00000000..2c112f8a Binary files /dev/null and b/tests/gen/binary-leb128.80.wasm differ diff --git a/tests/gen/binary-leb128.81.wasm b/tests/gen/binary-leb128.81.wasm new file mode 100644 index 00000000..77f3a617 Binary files /dev/null and b/tests/gen/binary-leb128.81.wasm differ diff --git a/tests/gen/binary-leb128.82.wasm b/tests/gen/binary-leb128.82.wasm new file mode 100644 index 00000000..ba035c42 Binary files /dev/null and b/tests/gen/binary-leb128.82.wasm differ diff --git a/tests/gen/binary-leb128.83.wasm b/tests/gen/binary-leb128.83.wasm new file mode 100644 index 00000000..ea58eecf Binary files /dev/null and b/tests/gen/binary-leb128.83.wasm differ diff --git a/tests/gen/binary-leb128.84.wasm b/tests/gen/binary-leb128.84.wasm new file mode 100644 index 00000000..149a84cb Binary files /dev/null and b/tests/gen/binary-leb128.84.wasm differ diff --git a/tests/gen/binary-leb128.85.wasm b/tests/gen/binary-leb128.85.wasm new file mode 100644 index 00000000..99a50b57 Binary files /dev/null and b/tests/gen/binary-leb128.85.wasm differ diff --git a/tests/gen/binary-leb128.9.wasm b/tests/gen/binary-leb128.9.wasm new file mode 100644 index 00000000..e590d6d6 Binary files /dev/null and b/tests/gen/binary-leb128.9.wasm differ diff --git a/tests/gen/binary-leb128.json b/tests/gen/binary-leb128.json new file mode 100644 index 00000000..92e59761 --- /dev/null +++ b/tests/gen/binary-leb128.json @@ -0,0 +1,88 @@ +{"source_filename": "binary-leb128.wast", + "commands": [ + {"type": "module", "line": 2, "filename": "binary-leb128.0.wasm"}, + {"type": "module", "line": 7, "filename": "binary-leb128.1.wasm"}, + {"type": "module", "line": 12, "filename": "binary-leb128.2.wasm"}, + {"type": "module", "line": 18, "filename": "binary-leb128.3.wasm"}, + {"type": "module", "line": 24, "filename": "binary-leb128.4.wasm"}, + {"type": "module", "line": 42, "filename": "binary-leb128.5.wasm"}, + {"type": "module", "line": 50, "filename": "binary-leb128.6.wasm"}, + {"type": "module", "line": 58, "filename": "binary-leb128.7.wasm"}, + {"type": "module", "line": 67, "filename": "binary-leb128.8.wasm"}, + {"type": "module", "line": 76, "filename": "binary-leb128.9.wasm"}, + {"type": "module", "line": 88, "filename": "binary-leb128.10.wasm"}, + {"type": "module", "line": 100, "filename": "binary-leb128.11.wasm"}, + {"type": "module", "line": 112, "filename": "binary-leb128.12.wasm"}, + {"type": "module", "line": 121, "filename": "binary-leb128.13.wasm"}, + {"type": "module", "line": 134, "filename": "binary-leb128.14.wasm"}, + {"type": "module", "line": 147, "filename": "binary-leb128.15.wasm"}, + {"type": "module", "line": 159, "filename": "binary-leb128.16.wasm"}, + {"type": "module", "line": 166, "filename": "binary-leb128.17.wasm"}, + {"type": "module", "line": 173, "filename": "binary-leb128.18.wasm"}, + {"type": "module", "line": 180, "filename": "binary-leb128.19.wasm"}, + {"type": "module", "line": 188, "filename": "binary-leb128.20.wasm"}, + {"type": "module", "line": 195, "filename": "binary-leb128.21.wasm"}, + {"type": "module", "line": 202, "filename": "binary-leb128.22.wasm"}, + {"type": "module", "line": 209, "filename": "binary-leb128.23.wasm"}, + {"type": "assert_malformed", "line": 219, "filename": "binary-leb128.24.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 227, "filename": "binary-leb128.25.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 236, "filename": "binary-leb128.26.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 247, "filename": "binary-leb128.27.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 258, "filename": "binary-leb128.28.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 269, "filename": "binary-leb128.29.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 280, "filename": "binary-leb128.30.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 292, "filename": "binary-leb128.31.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 304, "filename": "binary-leb128.32.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 319, "filename": "binary-leb128.33.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 334, "filename": "binary-leb128.34.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 349, "filename": "binary-leb128.35.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 361, "filename": "binary-leb128.36.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 377, "filename": "binary-leb128.37.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 393, "filename": "binary-leb128.38.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 406, "filename": "binary-leb128.39.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 425, "filename": "binary-leb128.40.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 444, "filename": "binary-leb128.41.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 463, "filename": "binary-leb128.42.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 484, "filename": "binary-leb128.43.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 494, "filename": "binary-leb128.44.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 505, "filename": "binary-leb128.45.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 515, "filename": "binary-leb128.46.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 527, "filename": "binary-leb128.47.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 535, "filename": "binary-leb128.48.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 543, "filename": "binary-leb128.49.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 552, "filename": "binary-leb128.50.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 561, "filename": "binary-leb128.51.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 572, "filename": "binary-leb128.52.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 583, "filename": "binary-leb128.53.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 594, "filename": "binary-leb128.54.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 605, "filename": "binary-leb128.55.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 617, "filename": "binary-leb128.56.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 629, "filename": "binary-leb128.57.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 644, "filename": "binary-leb128.58.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 659, "filename": "binary-leb128.59.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 674, "filename": "binary-leb128.60.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 687, "filename": "binary-leb128.61.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 703, "filename": "binary-leb128.62.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 719, "filename": "binary-leb128.63.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 732, "filename": "binary-leb128.64.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 752, "filename": "binary-leb128.65.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 772, "filename": "binary-leb128.66.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 790, "filename": "binary-leb128.67.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 809, "filename": "binary-leb128.68.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 828, "filename": "binary-leb128.69.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 847, "filename": "binary-leb128.70.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 867, "filename": "binary-leb128.71.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 889, "filename": "binary-leb128.72.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 899, "filename": "binary-leb128.73.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 909, "filename": "binary-leb128.74.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 919, "filename": "binary-leb128.75.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 930, "filename": "binary-leb128.76.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 940, "filename": "binary-leb128.77.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 950, "filename": "binary-leb128.78.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 960, "filename": "binary-leb128.79.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "module", "line": 970, "filename": "binary-leb128.80.wasm"}, + {"type": "assert_malformed", "line": 991, "filename": "binary-leb128.81.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "module", "line": 1008, "filename": "binary-leb128.82.wasm"}, + {"type": "module", "line": 1016, "filename": "binary-leb128.83.wasm"}, + {"type": "module", "line": 1025, "filename": "binary-leb128.84.wasm"}, + {"type": "assert_malformed", "line": 1075, "filename": "binary-leb128.85.wasm", "text": "integer representation too long", "module_type": "binary"}]} diff --git a/tests/gen/binary.0.wasm b/tests/gen/binary.0.wasm new file mode 100644 index 00000000..d8fc92d0 Binary files /dev/null and b/tests/gen/binary.0.wasm differ diff --git a/tests/gen/binary.1.wasm b/tests/gen/binary.1.wasm new file mode 100644 index 00000000..d8fc92d0 Binary files /dev/null and b/tests/gen/binary.1.wasm differ diff --git a/tests/gen/binary.10.wasm b/tests/gen/binary.10.wasm new file mode 100644 index 00000000..3c3f3640 Binary files /dev/null and b/tests/gen/binary.10.wasm differ diff --git a/tests/gen/binary.100.wasm b/tests/gen/binary.100.wasm new file mode 100644 index 00000000..3741691e Binary files /dev/null and b/tests/gen/binary.100.wasm differ diff --git a/tests/gen/binary.101.wasm b/tests/gen/binary.101.wasm new file mode 100644 index 00000000..8b8e7081 Binary files /dev/null and b/tests/gen/binary.101.wasm differ diff --git a/tests/gen/binary.102.wasm b/tests/gen/binary.102.wasm new file mode 100644 index 00000000..f7b7b516 Binary files /dev/null and b/tests/gen/binary.102.wasm differ diff --git a/tests/gen/binary.103.wasm b/tests/gen/binary.103.wasm new file mode 100644 index 00000000..67642efb Binary files /dev/null and b/tests/gen/binary.103.wasm differ diff --git a/tests/gen/binary.104.wasm b/tests/gen/binary.104.wasm new file mode 100644 index 00000000..014d810f Binary files /dev/null and b/tests/gen/binary.104.wasm differ diff --git a/tests/gen/binary.105.wasm b/tests/gen/binary.105.wasm new file mode 100644 index 00000000..5183f19e Binary files /dev/null and b/tests/gen/binary.105.wasm differ diff --git a/tests/gen/binary.106.wasm b/tests/gen/binary.106.wasm new file mode 100644 index 00000000..9c3de579 Binary files /dev/null and b/tests/gen/binary.106.wasm differ diff --git a/tests/gen/binary.107.wasm b/tests/gen/binary.107.wasm new file mode 100644 index 00000000..ba53fd59 Binary files /dev/null and b/tests/gen/binary.107.wasm differ diff --git a/tests/gen/binary.108.wasm b/tests/gen/binary.108.wasm new file mode 100644 index 00000000..8d636efe Binary files /dev/null and b/tests/gen/binary.108.wasm differ diff --git a/tests/gen/binary.109.wasm b/tests/gen/binary.109.wasm new file mode 100644 index 00000000..0e1132c0 Binary files /dev/null and b/tests/gen/binary.109.wasm differ diff --git a/tests/gen/binary.11.wasm b/tests/gen/binary.11.wasm new file mode 100644 index 00000000..2af3890f Binary files /dev/null and b/tests/gen/binary.11.wasm differ diff --git a/tests/gen/binary.110.wasm b/tests/gen/binary.110.wasm new file mode 100644 index 00000000..309c6d82 Binary files /dev/null and b/tests/gen/binary.110.wasm differ diff --git a/tests/gen/binary.111.wasm b/tests/gen/binary.111.wasm new file mode 100644 index 00000000..78f4ac26 Binary files /dev/null and b/tests/gen/binary.111.wasm differ diff --git a/tests/gen/binary.112.wasm b/tests/gen/binary.112.wasm new file mode 100644 index 00000000..ea4c2060 Binary files /dev/null and b/tests/gen/binary.112.wasm differ diff --git a/tests/gen/binary.113.wasm b/tests/gen/binary.113.wasm new file mode 100644 index 00000000..bd7d08bc Binary files /dev/null and b/tests/gen/binary.113.wasm differ diff --git a/tests/gen/binary.114.wasm b/tests/gen/binary.114.wasm new file mode 100644 index 00000000..5ec6caac Binary files /dev/null and b/tests/gen/binary.114.wasm differ diff --git a/tests/gen/binary.115.wasm b/tests/gen/binary.115.wasm new file mode 100644 index 00000000..5088ac90 Binary files /dev/null and b/tests/gen/binary.115.wasm differ diff --git a/tests/gen/binary.116.wasm b/tests/gen/binary.116.wasm new file mode 100644 index 00000000..9828e5fb Binary files /dev/null and b/tests/gen/binary.116.wasm differ diff --git a/tests/gen/binary.117.wasm b/tests/gen/binary.117.wasm new file mode 100644 index 00000000..8bd1f57d Binary files /dev/null and b/tests/gen/binary.117.wasm differ diff --git a/tests/gen/binary.118.wasm b/tests/gen/binary.118.wasm new file mode 100644 index 00000000..3e25f2ee Binary files /dev/null and b/tests/gen/binary.118.wasm differ diff --git a/tests/gen/binary.119.wasm b/tests/gen/binary.119.wasm new file mode 100644 index 00000000..32ecb49b Binary files /dev/null and b/tests/gen/binary.119.wasm differ diff --git a/tests/gen/binary.12.wasm b/tests/gen/binary.12.wasm new file mode 100644 index 00000000..ef0ca33d Binary files /dev/null and b/tests/gen/binary.12.wasm differ diff --git a/tests/gen/binary.120.wasm b/tests/gen/binary.120.wasm new file mode 100644 index 00000000..7706cb16 Binary files /dev/null and b/tests/gen/binary.120.wasm differ diff --git a/tests/gen/binary.121.wasm b/tests/gen/binary.121.wasm new file mode 100644 index 00000000..e681e758 Binary files /dev/null and b/tests/gen/binary.121.wasm differ diff --git a/tests/gen/binary.122.wasm b/tests/gen/binary.122.wasm new file mode 100644 index 00000000..0a388464 Binary files /dev/null and b/tests/gen/binary.122.wasm differ diff --git a/tests/gen/binary.123.wasm b/tests/gen/binary.123.wasm new file mode 100644 index 00000000..4d1bc47b Binary files /dev/null and b/tests/gen/binary.123.wasm differ diff --git a/tests/gen/binary.124.wasm b/tests/gen/binary.124.wasm new file mode 100644 index 00000000..b85d7408 Binary files /dev/null and b/tests/gen/binary.124.wasm differ diff --git a/tests/gen/binary.125.wasm b/tests/gen/binary.125.wasm new file mode 100644 index 00000000..1fb9850a Binary files /dev/null and b/tests/gen/binary.125.wasm differ diff --git a/tests/gen/binary.126.wasm b/tests/gen/binary.126.wasm new file mode 100644 index 00000000..40e37ec8 Binary files /dev/null and b/tests/gen/binary.126.wasm differ diff --git a/tests/gen/binary.127.wasm b/tests/gen/binary.127.wasm new file mode 100644 index 00000000..ac4ac957 Binary files /dev/null and b/tests/gen/binary.127.wasm differ diff --git a/tests/gen/binary.128.wasm b/tests/gen/binary.128.wasm new file mode 100644 index 00000000..52e21e15 Binary files /dev/null and b/tests/gen/binary.128.wasm differ diff --git a/tests/gen/binary.129.wasm b/tests/gen/binary.129.wasm new file mode 100644 index 00000000..f3da613b Binary files /dev/null and b/tests/gen/binary.129.wasm differ diff --git a/tests/gen/binary.13.wasm b/tests/gen/binary.13.wasm new file mode 100644 index 00000000..57a3c132 Binary files /dev/null and b/tests/gen/binary.13.wasm differ diff --git a/tests/gen/binary.130.wasm b/tests/gen/binary.130.wasm new file mode 100644 index 00000000..c4262eb1 Binary files /dev/null and b/tests/gen/binary.130.wasm differ diff --git a/tests/gen/binary.131.wasm b/tests/gen/binary.131.wasm new file mode 100644 index 00000000..c3d2bf92 Binary files /dev/null and b/tests/gen/binary.131.wasm differ diff --git a/tests/gen/binary.132.wasm b/tests/gen/binary.132.wasm new file mode 100644 index 00000000..847f5346 Binary files /dev/null and b/tests/gen/binary.132.wasm differ diff --git a/tests/gen/binary.14.wasm b/tests/gen/binary.14.wasm new file mode 100644 index 00000000..555ca6f6 Binary files /dev/null and b/tests/gen/binary.14.wasm differ diff --git a/tests/gen/binary.15.wasm b/tests/gen/binary.15.wasm new file mode 100644 index 00000000..1a009110 Binary files /dev/null and b/tests/gen/binary.15.wasm differ diff --git a/tests/gen/binary.16.wasm b/tests/gen/binary.16.wasm new file mode 100644 index 00000000..8214c640 Binary files /dev/null and b/tests/gen/binary.16.wasm differ diff --git a/tests/gen/binary.17.wasm b/tests/gen/binary.17.wasm new file mode 100644 index 00000000..5c94b39d Binary files /dev/null and b/tests/gen/binary.17.wasm differ diff --git a/tests/gen/binary.18.wasm b/tests/gen/binary.18.wasm new file mode 100644 index 00000000..8121fe54 Binary files /dev/null and b/tests/gen/binary.18.wasm differ diff --git a/tests/gen/binary.19.wasm b/tests/gen/binary.19.wasm new file mode 100644 index 00000000..afb6cf53 Binary files /dev/null and b/tests/gen/binary.19.wasm differ diff --git a/tests/gen/binary.2.wasm b/tests/gen/binary.2.wasm new file mode 100644 index 00000000..d8fc92d0 Binary files /dev/null and b/tests/gen/binary.2.wasm differ diff --git a/tests/gen/binary.20.wasm b/tests/gen/binary.20.wasm new file mode 100644 index 00000000..7e591939 Binary files /dev/null and b/tests/gen/binary.20.wasm differ diff --git a/tests/gen/binary.21.wasm b/tests/gen/binary.21.wasm new file mode 100644 index 00000000..92fab3a7 Binary files /dev/null and b/tests/gen/binary.21.wasm differ diff --git a/tests/gen/binary.22.wasm b/tests/gen/binary.22.wasm new file mode 100644 index 00000000..6f46d02d Binary files /dev/null and b/tests/gen/binary.22.wasm differ diff --git a/tests/gen/binary.23.wasm b/tests/gen/binary.23.wasm new file mode 100644 index 00000000..e618c158 Binary files /dev/null and b/tests/gen/binary.23.wasm differ diff --git a/tests/gen/binary.24.wasm b/tests/gen/binary.24.wasm new file mode 100644 index 00000000..770c2dd5 Binary files /dev/null and b/tests/gen/binary.24.wasm differ diff --git a/tests/gen/binary.25.wasm b/tests/gen/binary.25.wasm new file mode 100644 index 00000000..58b611fc Binary files /dev/null and b/tests/gen/binary.25.wasm differ diff --git a/tests/gen/binary.26.wasm b/tests/gen/binary.26.wasm new file mode 100644 index 00000000..cf40ffe8 Binary files /dev/null and b/tests/gen/binary.26.wasm differ diff --git a/tests/gen/binary.27.wasm b/tests/gen/binary.27.wasm new file mode 100644 index 00000000..ab98a38a Binary files /dev/null and b/tests/gen/binary.27.wasm differ diff --git a/tests/gen/binary.28.wasm b/tests/gen/binary.28.wasm new file mode 100644 index 00000000..baa5a992 Binary files /dev/null and b/tests/gen/binary.28.wasm differ diff --git a/tests/gen/binary.29.wasm b/tests/gen/binary.29.wasm new file mode 100644 index 00000000..34afa700 Binary files /dev/null and b/tests/gen/binary.29.wasm differ diff --git a/tests/gen/binary.3.wasm b/tests/gen/binary.3.wasm new file mode 100644 index 00000000..d8fc92d0 Binary files /dev/null and b/tests/gen/binary.3.wasm differ diff --git a/tests/gen/binary.30.wasm b/tests/gen/binary.30.wasm new file mode 100644 index 00000000..18d9137e Binary files /dev/null and b/tests/gen/binary.30.wasm differ diff --git a/tests/gen/binary.31.wasm b/tests/gen/binary.31.wasm new file mode 100644 index 00000000..99e26291 Binary files /dev/null and b/tests/gen/binary.31.wasm differ diff --git a/tests/gen/binary.32.wasm b/tests/gen/binary.32.wasm new file mode 100644 index 00000000..95677bc6 Binary files /dev/null and b/tests/gen/binary.32.wasm differ diff --git a/tests/gen/binary.33.wasm b/tests/gen/binary.33.wasm new file mode 100644 index 00000000..485f1018 Binary files /dev/null and b/tests/gen/binary.33.wasm differ diff --git a/tests/gen/binary.34.wasm b/tests/gen/binary.34.wasm new file mode 100644 index 00000000..25135e26 Binary files /dev/null and b/tests/gen/binary.34.wasm differ diff --git a/tests/gen/binary.35.wasm b/tests/gen/binary.35.wasm new file mode 100644 index 00000000..15c7cbe1 Binary files /dev/null and b/tests/gen/binary.35.wasm differ diff --git a/tests/gen/binary.36.wasm b/tests/gen/binary.36.wasm new file mode 100644 index 00000000..47bc728a Binary files /dev/null and b/tests/gen/binary.36.wasm differ diff --git a/tests/gen/binary.37.wasm b/tests/gen/binary.37.wasm new file mode 100644 index 00000000..f8ecc3f9 Binary files /dev/null and b/tests/gen/binary.37.wasm differ diff --git a/tests/gen/if.10.wasm b/tests/gen/binary.38.wasm similarity index 61% rename from tests/gen/if.10.wasm rename to tests/gen/binary.38.wasm index 53c2a0f7..13262200 100644 Binary files a/tests/gen/if.10.wasm and b/tests/gen/binary.38.wasm differ diff --git a/tests/gen/binary.39.wasm b/tests/gen/binary.39.wasm new file mode 100644 index 00000000..a5cceaa5 Binary files /dev/null and b/tests/gen/binary.39.wasm differ diff --git a/tests/gen/binary.4.wasm b/tests/gen/binary.4.wasm new file mode 100644 index 00000000..e69de29b diff --git a/tests/gen/binary.40.wasm b/tests/gen/binary.40.wasm new file mode 100644 index 00000000..9a2ad599 Binary files /dev/null and b/tests/gen/binary.40.wasm differ diff --git a/tests/gen/binary.41.wasm b/tests/gen/binary.41.wasm new file mode 100644 index 00000000..890072c6 Binary files /dev/null and b/tests/gen/binary.41.wasm differ diff --git a/tests/gen/binary.42.wasm b/tests/gen/binary.42.wasm new file mode 100644 index 00000000..53106f9c Binary files /dev/null and b/tests/gen/binary.42.wasm differ diff --git a/tests/gen/binary.43.wasm b/tests/gen/binary.43.wasm new file mode 100644 index 00000000..05b63ebb Binary files /dev/null and b/tests/gen/binary.43.wasm differ diff --git a/tests/gen/binary.44.wasm b/tests/gen/binary.44.wasm new file mode 100644 index 00000000..ec187191 Binary files /dev/null and b/tests/gen/binary.44.wasm differ diff --git a/tests/gen/binary.45.wasm b/tests/gen/binary.45.wasm new file mode 100644 index 00000000..69e6cd10 Binary files /dev/null and b/tests/gen/binary.45.wasm differ diff --git a/tests/gen/binary.46.wasm b/tests/gen/binary.46.wasm new file mode 100644 index 00000000..5911b153 Binary files /dev/null and b/tests/gen/binary.46.wasm differ diff --git a/tests/gen/binary.47.wasm b/tests/gen/binary.47.wasm new file mode 100644 index 00000000..8c9b01bd Binary files /dev/null and b/tests/gen/binary.47.wasm differ diff --git a/tests/gen/binary.48.wasm b/tests/gen/binary.48.wasm new file mode 100644 index 00000000..33058f1c Binary files /dev/null and b/tests/gen/binary.48.wasm differ diff --git a/tests/gen/binary.49.wasm b/tests/gen/binary.49.wasm new file mode 100644 index 00000000..ee113209 Binary files /dev/null and b/tests/gen/binary.49.wasm differ diff --git a/tests/gen/binary.5.wasm b/tests/gen/binary.5.wasm new file mode 100644 index 00000000..6b2aaa76 --- /dev/null +++ b/tests/gen/binary.5.wasm @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tests/gen/binary.50.wasm b/tests/gen/binary.50.wasm new file mode 100644 index 00000000..e15591f6 Binary files /dev/null and b/tests/gen/binary.50.wasm differ diff --git a/tests/gen/if.11.wasm b/tests/gen/binary.51.wasm similarity index 68% rename from tests/gen/if.11.wasm rename to tests/gen/binary.51.wasm index f16045b3..30cb0f7e 100644 Binary files a/tests/gen/if.11.wasm and b/tests/gen/binary.51.wasm differ diff --git a/tests/gen/block.7.wasm b/tests/gen/binary.52.wasm similarity index 68% rename from tests/gen/block.7.wasm rename to tests/gen/binary.52.wasm index 65f0de50..30cb0f7e 100644 Binary files a/tests/gen/block.7.wasm and b/tests/gen/binary.52.wasm differ diff --git a/tests/gen/binary.53.wasm b/tests/gen/binary.53.wasm new file mode 100644 index 00000000..b68b0ac8 Binary files /dev/null and b/tests/gen/binary.53.wasm differ diff --git a/tests/gen/binary.54.wasm b/tests/gen/binary.54.wasm new file mode 100644 index 00000000..8e793cea Binary files /dev/null and b/tests/gen/binary.54.wasm differ diff --git a/tests/gen/binary.55.wasm b/tests/gen/binary.55.wasm new file mode 100644 index 00000000..daf30be1 Binary files /dev/null and b/tests/gen/binary.55.wasm differ diff --git a/tests/gen/binary.56.wasm b/tests/gen/binary.56.wasm new file mode 100644 index 00000000..7200d187 Binary files /dev/null and b/tests/gen/binary.56.wasm differ diff --git a/tests/gen/binary.57.wasm b/tests/gen/binary.57.wasm new file mode 100644 index 00000000..7e89cfa3 Binary files /dev/null and b/tests/gen/binary.57.wasm differ diff --git a/tests/gen/binary.58.wasm b/tests/gen/binary.58.wasm new file mode 100644 index 00000000..67daf5fa Binary files /dev/null and b/tests/gen/binary.58.wasm differ diff --git a/tests/gen/binary.59.wasm b/tests/gen/binary.59.wasm new file mode 100644 index 00000000..563c1ef2 Binary files /dev/null and b/tests/gen/binary.59.wasm differ diff --git a/tests/gen/binary.6.wasm b/tests/gen/binary.6.wasm new file mode 100644 index 00000000..d5f15228 Binary files /dev/null and b/tests/gen/binary.6.wasm differ diff --git a/tests/gen/binary.60.wasm b/tests/gen/binary.60.wasm new file mode 100644 index 00000000..a72bfb1b Binary files /dev/null and b/tests/gen/binary.60.wasm differ diff --git a/tests/gen/binary.61.wasm b/tests/gen/binary.61.wasm new file mode 100644 index 00000000..0fa05ec7 Binary files /dev/null and b/tests/gen/binary.61.wasm differ diff --git a/tests/gen/binary.62.wasm b/tests/gen/binary.62.wasm new file mode 100644 index 00000000..c18e5de5 Binary files /dev/null and b/tests/gen/binary.62.wasm differ diff --git a/tests/gen/binary.63.wasm b/tests/gen/binary.63.wasm new file mode 100644 index 00000000..60f5299f Binary files /dev/null and b/tests/gen/binary.63.wasm differ diff --git a/tests/gen/binary.64.wasm b/tests/gen/binary.64.wasm new file mode 100644 index 00000000..55d87da9 Binary files /dev/null and b/tests/gen/binary.64.wasm differ diff --git a/tests/gen/binary.65.wasm b/tests/gen/binary.65.wasm new file mode 100644 index 00000000..451a27b6 Binary files /dev/null and b/tests/gen/binary.65.wasm differ diff --git a/tests/gen/binary.66.wasm b/tests/gen/binary.66.wasm new file mode 100644 index 00000000..03d3ccfc Binary files /dev/null and b/tests/gen/binary.66.wasm differ diff --git a/tests/gen/binary.67.wasm b/tests/gen/binary.67.wasm new file mode 100644 index 00000000..7f64e5f1 Binary files /dev/null and b/tests/gen/binary.67.wasm differ diff --git a/tests/gen/binary.68.wasm b/tests/gen/binary.68.wasm new file mode 100644 index 00000000..726e720c Binary files /dev/null and b/tests/gen/binary.68.wasm differ diff --git a/tests/gen/binary.69.wasm b/tests/gen/binary.69.wasm new file mode 100644 index 00000000..bf252f59 Binary files /dev/null and b/tests/gen/binary.69.wasm differ diff --git a/tests/gen/binary.7.wasm b/tests/gen/binary.7.wasm new file mode 100644 index 00000000..ef2324c3 Binary files /dev/null and b/tests/gen/binary.7.wasm differ diff --git a/tests/gen/binary.70.wasm b/tests/gen/binary.70.wasm new file mode 100644 index 00000000..40a92f42 Binary files /dev/null and b/tests/gen/binary.70.wasm differ diff --git a/tests/gen/binary.71.wasm b/tests/gen/binary.71.wasm new file mode 100644 index 00000000..917edfc5 Binary files /dev/null and b/tests/gen/binary.71.wasm differ diff --git a/tests/gen/binary.72.wasm b/tests/gen/binary.72.wasm new file mode 100644 index 00000000..aa1bdd37 Binary files /dev/null and b/tests/gen/binary.72.wasm differ diff --git a/tests/gen/binary.73.wasm b/tests/gen/binary.73.wasm new file mode 100644 index 00000000..43a017a5 Binary files /dev/null and b/tests/gen/binary.73.wasm differ diff --git a/tests/gen/binary.74.wasm b/tests/gen/binary.74.wasm new file mode 100644 index 00000000..bb6fecd8 Binary files /dev/null and b/tests/gen/binary.74.wasm differ diff --git a/tests/gen/binary.75.wasm b/tests/gen/binary.75.wasm new file mode 100644 index 00000000..8677ca2f Binary files /dev/null and b/tests/gen/binary.75.wasm differ diff --git a/tests/gen/binary.76.wasm b/tests/gen/binary.76.wasm new file mode 100644 index 00000000..d10b25b7 Binary files /dev/null and b/tests/gen/binary.76.wasm differ diff --git a/tests/gen/binary.77.wasm b/tests/gen/binary.77.wasm new file mode 100644 index 00000000..13650510 Binary files /dev/null and b/tests/gen/binary.77.wasm differ diff --git a/tests/gen/binary.78.wasm b/tests/gen/binary.78.wasm new file mode 100644 index 00000000..30b6b32d Binary files /dev/null and b/tests/gen/binary.78.wasm differ diff --git a/tests/gen/binary.79.wasm b/tests/gen/binary.79.wasm new file mode 100644 index 00000000..65c77c11 Binary files /dev/null and b/tests/gen/binary.79.wasm differ diff --git a/tests/gen/binary.8.wasm b/tests/gen/binary.8.wasm new file mode 100644 index 00000000..10202fd5 Binary files /dev/null and b/tests/gen/binary.8.wasm differ diff --git a/tests/gen/binary.80.wasm b/tests/gen/binary.80.wasm new file mode 100644 index 00000000..a9ad72cb Binary files /dev/null and b/tests/gen/binary.80.wasm differ diff --git a/tests/gen/binary.81.wasm b/tests/gen/binary.81.wasm new file mode 100644 index 00000000..01571ab6 Binary files /dev/null and b/tests/gen/binary.81.wasm differ diff --git a/tests/gen/binary.82.wasm b/tests/gen/binary.82.wasm new file mode 100644 index 00000000..204f689c Binary files /dev/null and b/tests/gen/binary.82.wasm differ diff --git a/tests/gen/binary.83.wasm b/tests/gen/binary.83.wasm new file mode 100644 index 00000000..a2492cb9 Binary files /dev/null and b/tests/gen/binary.83.wasm differ diff --git a/tests/gen/binary.84.wasm b/tests/gen/binary.84.wasm new file mode 100644 index 00000000..2bb1999c Binary files /dev/null and b/tests/gen/binary.84.wasm differ diff --git a/tests/gen/binary.85.wasm b/tests/gen/binary.85.wasm new file mode 100644 index 00000000..cc2e20d4 Binary files /dev/null and b/tests/gen/binary.85.wasm differ diff --git a/tests/gen/binary.86.wasm b/tests/gen/binary.86.wasm new file mode 100644 index 00000000..cd4d6a3a Binary files /dev/null and b/tests/gen/binary.86.wasm differ diff --git a/tests/gen/binary.87.wasm b/tests/gen/binary.87.wasm new file mode 100644 index 00000000..a5eb4ed6 Binary files /dev/null and b/tests/gen/binary.87.wasm differ diff --git a/tests/gen/binary.88.wasm b/tests/gen/binary.88.wasm new file mode 100644 index 00000000..01387628 Binary files /dev/null and b/tests/gen/binary.88.wasm differ diff --git a/tests/gen/binary.89.wasm b/tests/gen/binary.89.wasm new file mode 100644 index 00000000..a0807106 Binary files /dev/null and b/tests/gen/binary.89.wasm differ diff --git a/tests/gen/binary.9.wasm b/tests/gen/binary.9.wasm new file mode 100644 index 00000000..8be372f7 Binary files /dev/null and b/tests/gen/binary.9.wasm differ diff --git a/tests/gen/binary.90.wasm b/tests/gen/binary.90.wasm new file mode 100644 index 00000000..5b354f5a Binary files /dev/null and b/tests/gen/binary.90.wasm differ diff --git a/tests/gen/binary.91.wasm b/tests/gen/binary.91.wasm new file mode 100644 index 00000000..84af5af1 Binary files /dev/null and b/tests/gen/binary.91.wasm differ diff --git a/tests/gen/binary.92.wasm b/tests/gen/binary.92.wasm new file mode 100644 index 00000000..78a70f52 Binary files /dev/null and b/tests/gen/binary.92.wasm differ diff --git a/tests/gen/binary.93.wasm b/tests/gen/binary.93.wasm new file mode 100644 index 00000000..11eadff0 Binary files /dev/null and b/tests/gen/binary.93.wasm differ diff --git a/tests/gen/binary.94.wasm b/tests/gen/binary.94.wasm new file mode 100644 index 00000000..4d27d5b5 Binary files /dev/null and b/tests/gen/binary.94.wasm differ diff --git a/tests/gen/binary.95.wasm b/tests/gen/binary.95.wasm new file mode 100644 index 00000000..26a8d65f Binary files /dev/null and b/tests/gen/binary.95.wasm differ diff --git a/tests/gen/binary.96.wasm b/tests/gen/binary.96.wasm new file mode 100644 index 00000000..2ca7f577 Binary files /dev/null and b/tests/gen/binary.96.wasm differ diff --git a/tests/gen/binary.97.wasm b/tests/gen/binary.97.wasm new file mode 100644 index 00000000..2a75cdb0 Binary files /dev/null and b/tests/gen/binary.97.wasm differ diff --git a/tests/gen/binary.98.wasm b/tests/gen/binary.98.wasm new file mode 100644 index 00000000..8a2f86bb Binary files /dev/null and b/tests/gen/binary.98.wasm differ diff --git a/tests/gen/binary.99.wasm b/tests/gen/binary.99.wasm new file mode 100644 index 00000000..37b74d25 Binary files /dev/null and b/tests/gen/binary.99.wasm differ diff --git a/tests/gen/binary.json b/tests/gen/binary.json new file mode 100644 index 00000000..9618a484 --- /dev/null +++ b/tests/gen/binary.json @@ -0,0 +1,135 @@ +{"source_filename": "binary.wast", + "commands": [ + {"type": "module", "line": 1, "filename": "binary.0.wasm"}, + {"type": "module", "line": 2, "filename": "binary.1.wasm"}, + {"type": "module", "line": 3, "name": "$M1", "filename": "binary.2.wasm"}, + {"type": "module", "line": 4, "name": "$M2", "filename": "binary.3.wasm"}, + {"type": "assert_malformed", "line": 6, "filename": "binary.4.wasm", "text": "unexpected end", "module_type": "binary"}, + {"type": "assert_malformed", "line": 7, "filename": "binary.5.wasm", "text": "unexpected end", "module_type": "binary"}, + {"type": "assert_malformed", "line": 8, "filename": "binary.6.wasm", "text": "unexpected end", "module_type": "binary"}, + {"type": "assert_malformed", "line": 9, "filename": "binary.7.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 10, "filename": "binary.8.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 11, "filename": "binary.9.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 12, "filename": "binary.10.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 13, "filename": "binary.11.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 14, "filename": "binary.12.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 15, "filename": "binary.13.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 16, "filename": "binary.14.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 17, "filename": "binary.15.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 18, "filename": "binary.16.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 21, "filename": "binary.17.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 24, "filename": "binary.18.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 25, "filename": "binary.19.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 28, "filename": "binary.20.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 31, "filename": "binary.21.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 34, "filename": "binary.22.wasm", "text": "magic header not detected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 37, "filename": "binary.23.wasm", "text": "unexpected end", "module_type": "binary"}, + {"type": "assert_malformed", "line": 38, "filename": "binary.24.wasm", "text": "unexpected end", "module_type": "binary"}, + {"type": "assert_malformed", "line": 39, "filename": "binary.25.wasm", "text": "unexpected end", "module_type": "binary"}, + {"type": "assert_malformed", "line": 40, "filename": "binary.26.wasm", "text": "unknown binary version", "module_type": "binary"}, + {"type": "assert_malformed", "line": 41, "filename": "binary.27.wasm", "text": "unknown binary version", "module_type": "binary"}, + {"type": "assert_malformed", "line": 42, "filename": "binary.28.wasm", "text": "unknown binary version", "module_type": "binary"}, + {"type": "assert_malformed", "line": 43, "filename": "binary.29.wasm", "text": "unknown binary version", "module_type": "binary"}, + {"type": "assert_malformed", "line": 44, "filename": "binary.30.wasm", "text": "unknown binary version", "module_type": "binary"}, + {"type": "assert_malformed", "line": 45, "filename": "binary.31.wasm", "text": "unknown binary version", "module_type": "binary"}, + {"type": "assert_malformed", "line": 48, "filename": "binary.32.wasm", "text": "malformed section id", "module_type": "binary"}, + {"type": "assert_malformed", "line": 49, "filename": "binary.33.wasm", "text": "malformed section id", "module_type": "binary"}, + {"type": "assert_malformed", "line": 50, "filename": "binary.34.wasm", "text": "malformed section id", "module_type": "binary"}, + {"type": "assert_malformed", "line": 51, "filename": "binary.35.wasm", "text": "malformed section id", "module_type": "binary"}, + {"type": "assert_malformed", "line": 52, "filename": "binary.36.wasm", "text": "malformed section id", "module_type": "binary"}, + {"type": "assert_malformed", "line": 56, "filename": "binary.37.wasm", "text": "END opcode expected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 77, "filename": "binary.38.wasm", "text": "unexpected end of section or function", "module_type": "binary"}, + {"type": "assert_malformed", "line": 93, "filename": "binary.39.wasm", "text": "section size mismatch", "module_type": "binary"}, + {"type": "assert_malformed", "line": 113, "filename": "binary.40.wasm", "text": "illegal opcode", "module_type": "binary"}, + {"type": "assert_malformed", "line": 126, "filename": "binary.41.wasm", "text": "zero byte expected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 146, "filename": "binary.42.wasm", "text": "zero byte expected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 166, "filename": "binary.43.wasm", "text": "zero byte expected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 185, "filename": "binary.44.wasm", "text": "zero byte expected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 204, "filename": "binary.45.wasm", "text": "zero byte expected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 224, "filename": "binary.46.wasm", "text": "zero byte expected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 243, "filename": "binary.47.wasm", "text": "zero byte expected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 262, "filename": "binary.48.wasm", "text": "zero byte expected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 280, "filename": "binary.49.wasm", "text": "zero byte expected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 298, "filename": "binary.50.wasm", "text": "zero byte expected", "module_type": "binary"}, + {"type": "assert_malformed", "line": 317, "filename": "binary.51.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 334, "filename": "binary.52.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 351, "filename": "binary.53.wasm", "text": "too many locals", "module_type": "binary"}, + {"type": "assert_malformed", "line": 367, "filename": "binary.54.wasm", "text": "too many locals", "module_type": "binary"}, + {"type": "module", "line": 385, "filename": "binary.55.wasm"}, + {"type": "assert_malformed", "line": 401, "filename": "binary.56.wasm", "text": "function and code section have inconsistent lengths", "module_type": "binary"}, + {"type": "assert_malformed", "line": 411, "filename": "binary.57.wasm", "text": "function and code section have inconsistent lengths", "module_type": "binary"}, + {"type": "assert_malformed", "line": 420, "filename": "binary.58.wasm", "text": "function and code section have inconsistent lengths", "module_type": "binary"}, + {"type": "assert_malformed", "line": 431, "filename": "binary.59.wasm", "text": "function and code section have inconsistent lengths", "module_type": "binary"}, + {"type": "module", "line": 441, "filename": "binary.60.wasm"}, + {"type": "module", "line": 447, "filename": "binary.61.wasm"}, + {"type": "assert_malformed", "line": 454, "filename": "binary.62.wasm", "text": "data count and data section have inconsistent lengths", "module_type": "binary"}, + {"type": "assert_malformed", "line": 466, "filename": "binary.63.wasm", "text": "data count and data section have inconsistent lengths", "module_type": "binary"}, + {"type": "assert_malformed", "line": 478, "filename": "binary.64.wasm", "text": "data count and data section have inconsistent lengths", "module_type": "binary"}, + {"type": "assert_malformed", "line": 495, "filename": "binary.65.wasm", "text": "data count section required", "module_type": "binary"}, + {"type": "assert_malformed", "line": 518, "filename": "binary.66.wasm", "text": "data count section required", "module_type": "binary"}, + {"type": "assert_malformed", "line": 538, "filename": "binary.67.wasm", "text": "illegal opcode", "module_type": "binary"}, + {"type": "assert_malformed", "line": 566, "filename": "binary.68.wasm", "text": "malformed reference type", "module_type": "binary"}, + {"type": "module", "line": 645, "filename": "binary.69.wasm"}, + {"type": "assert_malformed", "line": 652, "filename": "binary.70.wasm", "text": "length out of bounds", "module_type": "binary"}, + {"type": "assert_malformed", "line": 663, "filename": "binary.71.wasm", "text": "section size mismatch", "module_type": "binary"}, + {"type": "module", "line": 673, "filename": "binary.72.wasm"}, + {"type": "assert_malformed", "line": 682, "filename": "binary.73.wasm", "text": "malformed import kind", "module_type": "binary"}, + {"type": "assert_malformed", "line": 692, "filename": "binary.74.wasm", "text": "malformed import kind", "module_type": "binary"}, + {"type": "assert_malformed", "line": 703, "filename": "binary.75.wasm", "text": "malformed import kind", "module_type": "binary"}, + {"type": "assert_malformed", "line": 713, "filename": "binary.76.wasm", "text": "malformed import kind", "module_type": "binary"}, + {"type": "assert_malformed", "line": 724, "filename": "binary.77.wasm", "text": "malformed import kind", "module_type": "binary"}, + {"type": "assert_malformed", "line": 734, "filename": "binary.78.wasm", "text": "malformed import kind", "module_type": "binary"}, + {"type": "assert_malformed", "line": 747, "filename": "binary.79.wasm", "text": "unexpected end of section or function", "module_type": "binary"}, + {"type": "assert_malformed", "line": 766, "filename": "binary.80.wasm", "text": "section size mismatch", "module_type": "binary"}, + {"type": "module", "line": 790, "filename": "binary.81.wasm"}, + {"type": "assert_malformed", "line": 797, "filename": "binary.82.wasm", "text": "unexpected end of section or function", "module_type": "binary"}, + {"type": "assert_malformed", "line": 807, "filename": "binary.83.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 816, "filename": "binary.84.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 826, "filename": "binary.85.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "module", "line": 837, "filename": "binary.86.wasm"}, + {"type": "assert_malformed", "line": 844, "filename": "binary.87.wasm", "text": "unexpected end of section or function", "module_type": "binary"}, + {"type": "assert_malformed", "line": 854, "filename": "binary.88.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 862, "filename": "binary.89.wasm", "text": "integer too large", "module_type": "binary"}, + {"type": "assert_malformed", "line": 871, "filename": "binary.90.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "assert_malformed", "line": 880, "filename": "binary.91.wasm", "text": "integer representation too long", "module_type": "binary"}, + {"type": "module", "line": 890, "filename": "binary.92.wasm"}, + {"type": "assert_malformed", "line": 897, "filename": "binary.93.wasm", "text": "unexpected end of section or function", "module_type": "binary"}, + {"type": "assert_malformed", "line": 908, "filename": "binary.94.wasm", "text": "section size mismatch", "module_type": "binary"}, + {"type": "module", "line": 918, "filename": "binary.95.wasm"}, + {"type": "assert_malformed", "line": 931, "filename": "binary.96.wasm", "text": "length out of bounds", "module_type": "binary"}, + {"type": "assert_malformed", "line": 952, "filename": "binary.97.wasm", "text": "section size mismatch", "module_type": "binary"}, + {"type": "module", "line": 972, "filename": "binary.98.wasm"}, + {"type": "assert_malformed", "line": 986, "filename": "binary.99.wasm", "text": "unexpected end", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1002, "filename": "binary.100.wasm", "text": "unexpected end", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1019, "filename": "binary.101.wasm", "text": "section size mismatch", "module_type": "binary"}, + {"type": "module", "line": 1036, "filename": "binary.102.wasm"}, + {"type": "assert_malformed", "line": 1045, "filename": "binary.103.wasm", "text": "unexpected end of section or function", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1058, "filename": "binary.104.wasm", "text": "section size mismatch", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1071, "filename": "binary.105.wasm", "text": "unexpected end of section or function", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1085, "filename": "binary.106.wasm", "text": "section size mismatch", "module_type": "binary"}, + {"type": "module", "line": 1098, "filename": "binary.107.wasm"}, + {"type": "assert_malformed", "line": 1116, "filename": "binary.108.wasm", "text": "unexpected end", "module_type": "binary"}, + {"type": "module", "line": 1149, "filename": "binary.109.wasm"}, + {"type": "assert_malformed", "line": 1163, "filename": "binary.110.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1180, "filename": "binary.111.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1192, "filename": "binary.112.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1204, "filename": "binary.113.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1214, "filename": "binary.114.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1224, "filename": "binary.115.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1234, "filename": "binary.116.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1244, "filename": "binary.117.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1254, "filename": "binary.118.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1264, "filename": "binary.119.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1274, "filename": "binary.120.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1284, "filename": "binary.121.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1294, "filename": "binary.122.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1304, "filename": "binary.123.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1314, "filename": "binary.124.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1324, "filename": "binary.125.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1334, "filename": "binary.126.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1344, "filename": "binary.127.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1354, "filename": "binary.128.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1365, "filename": "binary.129.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1376, "filename": "binary.130.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1386, "filename": "binary.131.wasm", "text": "unexpected content after last section", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1396, "filename": "binary.132.wasm", "text": "unexpected content after last section", "module_type": "binary"}]} diff --git a/tests/gen/block.0.wasm b/tests/gen/block.0.wasm index 4e63eea4..490709eb 100644 Binary files a/tests/gen/block.0.wasm and b/tests/gen/block.0.wasm differ diff --git a/tests/gen/block.1.wat b/tests/gen/block.1.wat new file mode 100644 index 00000000..86a47b92 --- /dev/null +++ b/tests/gen/block.1.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (block (type $sig) (result i32) (param i32))) \ No newline at end of file diff --git a/tests/gen/block.10.wat b/tests/gen/block.10.wat new file mode 100644 index 00000000..303ffe99 --- /dev/null +++ b/tests/gen/block.10.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (block (type $sig) (param i32) (drop)) (unreachable)) \ No newline at end of file diff --git a/tests/gen/block.100.wasm b/tests/gen/block.100.wasm index 27bd5171..bef742ac 100644 Binary files a/tests/gen/block.100.wasm and b/tests/gen/block.100.wasm differ diff --git a/tests/gen/block.101.wasm b/tests/gen/block.101.wasm index 2bc53e6e..fb055734 100644 Binary files a/tests/gen/block.101.wasm and b/tests/gen/block.101.wasm differ diff --git a/tests/gen/block.102.wasm b/tests/gen/block.102.wasm index 7bf3e4d5..4250b459 100644 Binary files a/tests/gen/block.102.wasm and b/tests/gen/block.102.wasm differ diff --git a/tests/gen/block.103.wasm b/tests/gen/block.103.wasm index ccf092f4..8377b65b 100644 Binary files a/tests/gen/block.103.wasm and b/tests/gen/block.103.wasm differ diff --git a/tests/gen/block.104.wasm b/tests/gen/block.104.wasm index 24b707df..c99d446a 100644 Binary files a/tests/gen/block.104.wasm and b/tests/gen/block.104.wasm differ diff --git a/tests/gen/block.105.wasm b/tests/gen/block.105.wasm index b1563f54..42d83a4b 100644 Binary files a/tests/gen/block.105.wasm and b/tests/gen/block.105.wasm differ diff --git a/tests/gen/block.106.wasm b/tests/gen/block.106.wasm index 9de25228..723b5daa 100644 Binary files a/tests/gen/block.106.wasm and b/tests/gen/block.106.wasm differ diff --git a/tests/gen/block.107.wasm b/tests/gen/block.107.wasm index f5e6f22a..885fc878 100644 Binary files a/tests/gen/block.107.wasm and b/tests/gen/block.107.wasm differ diff --git a/tests/gen/block.108.wasm b/tests/gen/block.108.wasm index 768236df..5c8b4fdf 100644 Binary files a/tests/gen/block.108.wasm and b/tests/gen/block.108.wasm differ diff --git a/tests/gen/block.109.wasm b/tests/gen/block.109.wasm index 8e580dce..1753a554 100644 Binary files a/tests/gen/block.109.wasm and b/tests/gen/block.109.wasm differ diff --git a/tests/gen/block.11.wat b/tests/gen/block.11.wat new file mode 100644 index 00000000..f21c6586 --- /dev/null +++ b/tests/gen/block.11.wat @@ -0,0 +1 @@ +(type $sig (func (param i32 i32) (result i32)))(func (i32.const 0) (block (type $sig) (param i32) (result i32)) (unreachable)) \ No newline at end of file diff --git a/tests/gen/block.110.wasm b/tests/gen/block.110.wasm index 15039906..6895a38a 100644 Binary files a/tests/gen/block.110.wasm and b/tests/gen/block.110.wasm differ diff --git a/tests/gen/block.111.wasm b/tests/gen/block.111.wasm index dbf36226..e3d897f3 100644 Binary files a/tests/gen/block.111.wasm and b/tests/gen/block.111.wasm differ diff --git a/tests/gen/block.112.wasm b/tests/gen/block.112.wasm index 4a6cba00..582ae995 100644 Binary files a/tests/gen/block.112.wasm and b/tests/gen/block.112.wasm differ diff --git a/tests/gen/block.113.wasm b/tests/gen/block.113.wasm index cfd2a021..58996b86 100644 Binary files a/tests/gen/block.113.wasm and b/tests/gen/block.113.wasm differ diff --git a/tests/gen/block.114.wasm b/tests/gen/block.114.wasm index 08290f8c..a6b01be5 100644 Binary files a/tests/gen/block.114.wasm and b/tests/gen/block.114.wasm differ diff --git a/tests/gen/block.115.wasm b/tests/gen/block.115.wasm index 55642d59..008b0114 100644 Binary files a/tests/gen/block.115.wasm and b/tests/gen/block.115.wasm differ diff --git a/tests/gen/block.116.wasm b/tests/gen/block.116.wasm index 3423de22..a1967106 100644 Binary files a/tests/gen/block.116.wasm and b/tests/gen/block.116.wasm differ diff --git a/tests/gen/block.117.wasm b/tests/gen/block.117.wasm index ec05c32a..c7239057 100644 Binary files a/tests/gen/block.117.wasm and b/tests/gen/block.117.wasm differ diff --git a/tests/gen/block.118.wasm b/tests/gen/block.118.wasm index 826cce5c..47ca72d5 100644 Binary files a/tests/gen/block.118.wasm and b/tests/gen/block.118.wasm differ diff --git a/tests/gen/block.119.wasm b/tests/gen/block.119.wasm index 7dd84908..b55f9cce 100644 Binary files a/tests/gen/block.119.wasm and b/tests/gen/block.119.wasm differ diff --git a/tests/gen/block.12.wasm b/tests/gen/block.12.wasm index de0f3004..71d6c4af 100644 Binary files a/tests/gen/block.12.wasm and b/tests/gen/block.12.wasm differ diff --git a/tests/gen/block.120.wasm b/tests/gen/block.120.wasm index 234c239c..13a8a3be 100644 Binary files a/tests/gen/block.120.wasm and b/tests/gen/block.120.wasm differ diff --git a/tests/gen/block.121.wasm b/tests/gen/block.121.wasm index afdea851..5629e875 100644 Binary files a/tests/gen/block.121.wasm and b/tests/gen/block.121.wasm differ diff --git a/tests/gen/block.122.wasm b/tests/gen/block.122.wasm index 188d4b3a..cd76b884 100644 Binary files a/tests/gen/block.122.wasm and b/tests/gen/block.122.wasm differ diff --git a/tests/gen/block.123.wasm b/tests/gen/block.123.wasm index 10ffa998..4d9046af 100644 Binary files a/tests/gen/block.123.wasm and b/tests/gen/block.123.wasm differ diff --git a/tests/gen/block.124.wasm b/tests/gen/block.124.wasm index eba12f55..d4ee6b36 100644 Binary files a/tests/gen/block.124.wasm and b/tests/gen/block.124.wasm differ diff --git a/tests/gen/block.125.wasm b/tests/gen/block.125.wasm index 80fcded8..47c7129e 100644 Binary files a/tests/gen/block.125.wasm and b/tests/gen/block.125.wasm differ diff --git a/tests/gen/block.126.wasm b/tests/gen/block.126.wasm index 9a4e7f39..55bad0c8 100644 Binary files a/tests/gen/block.126.wasm and b/tests/gen/block.126.wasm differ diff --git a/tests/gen/block.127.wasm b/tests/gen/block.127.wasm index 07397d7b..27bd5171 100644 Binary files a/tests/gen/block.127.wasm and b/tests/gen/block.127.wasm differ diff --git a/tests/gen/block.128.wasm b/tests/gen/block.128.wasm new file mode 100644 index 00000000..2bc53e6e Binary files /dev/null and b/tests/gen/block.128.wasm differ diff --git a/tests/gen/block.129.wasm b/tests/gen/block.129.wasm new file mode 100644 index 00000000..7bf3e4d5 Binary files /dev/null and b/tests/gen/block.129.wasm differ diff --git a/tests/gen/block.13.wasm b/tests/gen/block.13.wasm index 31571819..a6c191f9 100644 Binary files a/tests/gen/block.13.wasm and b/tests/gen/block.13.wasm differ diff --git a/tests/gen/block.130.wasm b/tests/gen/block.130.wasm new file mode 100644 index 00000000..ccf092f4 Binary files /dev/null and b/tests/gen/block.130.wasm differ diff --git a/tests/gen/block.131.wasm b/tests/gen/block.131.wasm new file mode 100644 index 00000000..24b707df Binary files /dev/null and b/tests/gen/block.131.wasm differ diff --git a/tests/gen/block.132.wasm b/tests/gen/block.132.wasm new file mode 100644 index 00000000..b1563f54 Binary files /dev/null and b/tests/gen/block.132.wasm differ diff --git a/tests/gen/block.133.wasm b/tests/gen/block.133.wasm new file mode 100644 index 00000000..9de25228 Binary files /dev/null and b/tests/gen/block.133.wasm differ diff --git a/tests/gen/block.134.wasm b/tests/gen/block.134.wasm new file mode 100644 index 00000000..f5e6f22a Binary files /dev/null and b/tests/gen/block.134.wasm differ diff --git a/tests/gen/block.135.wasm b/tests/gen/block.135.wasm new file mode 100644 index 00000000..b0ce904c Binary files /dev/null and b/tests/gen/block.135.wasm differ diff --git a/tests/gen/if.5.wasm b/tests/gen/block.136.wasm similarity index 64% rename from tests/gen/if.5.wasm rename to tests/gen/block.136.wasm index cc5586a6..768236df 100644 Binary files a/tests/gen/if.5.wasm and b/tests/gen/block.136.wasm differ diff --git a/tests/gen/block.2.wasm b/tests/gen/block.137.wasm similarity index 64% rename from tests/gen/block.2.wasm rename to tests/gen/block.137.wasm index 94d5dc68..8e580dce 100644 Binary files a/tests/gen/block.2.wasm and b/tests/gen/block.137.wasm differ diff --git a/tests/gen/block.11.wasm b/tests/gen/block.138.wasm similarity index 64% rename from tests/gen/block.11.wasm rename to tests/gen/block.138.wasm index 6155ec9b..15039906 100644 Binary files a/tests/gen/block.11.wasm and b/tests/gen/block.138.wasm differ diff --git a/tests/gen/block.4.wasm b/tests/gen/block.139.wasm similarity index 64% rename from tests/gen/block.4.wasm rename to tests/gen/block.139.wasm index ac54d79a..dbf36226 100644 Binary files a/tests/gen/block.4.wasm and b/tests/gen/block.139.wasm differ diff --git a/tests/gen/block.14.wasm b/tests/gen/block.14.wasm index b70e96a1..94d5dc68 100644 Binary files a/tests/gen/block.14.wasm and b/tests/gen/block.14.wasm differ diff --git a/tests/gen/block.140.wasm b/tests/gen/block.140.wasm new file mode 100644 index 00000000..24238229 Binary files /dev/null and b/tests/gen/block.140.wasm differ diff --git a/tests/gen/block.141.wasm b/tests/gen/block.141.wasm new file mode 100644 index 00000000..4a6cba00 Binary files /dev/null and b/tests/gen/block.141.wasm differ diff --git a/tests/gen/func.14.wasm b/tests/gen/block.142.wasm similarity index 62% rename from tests/gen/func.14.wasm rename to tests/gen/block.142.wasm index 38b3ca8f..cfd2a021 100644 Binary files a/tests/gen/func.14.wasm and b/tests/gen/block.142.wasm differ diff --git a/tests/gen/block.3.wasm b/tests/gen/block.143.wasm similarity index 62% rename from tests/gen/block.3.wasm rename to tests/gen/block.143.wasm index fce1bd14..08290f8c 100644 Binary files a/tests/gen/block.3.wasm and b/tests/gen/block.143.wasm differ diff --git a/tests/gen/if.4.wasm b/tests/gen/block.144.wasm similarity index 62% rename from tests/gen/if.4.wasm rename to tests/gen/block.144.wasm index 0a2b0435..55642d59 100644 Binary files a/tests/gen/if.4.wasm and b/tests/gen/block.144.wasm differ diff --git a/tests/gen/block.145.wasm b/tests/gen/block.145.wasm new file mode 100644 index 00000000..d40f7bdd Binary files /dev/null and b/tests/gen/block.145.wasm differ diff --git a/tests/gen/block.146.wasm b/tests/gen/block.146.wasm new file mode 100644 index 00000000..3423de22 Binary files /dev/null and b/tests/gen/block.146.wasm differ diff --git a/tests/gen/block.147.wasm b/tests/gen/block.147.wasm new file mode 100644 index 00000000..ec05c32a Binary files /dev/null and b/tests/gen/block.147.wasm differ diff --git a/tests/gen/block.148.wasm b/tests/gen/block.148.wasm new file mode 100644 index 00000000..826cce5c Binary files /dev/null and b/tests/gen/block.148.wasm differ diff --git a/tests/gen/if.2.wasm b/tests/gen/block.149.wasm similarity index 60% rename from tests/gen/if.2.wasm rename to tests/gen/block.149.wasm index d21e5ffc..7dd84908 100644 Binary files a/tests/gen/if.2.wasm and b/tests/gen/block.149.wasm differ diff --git a/tests/gen/block.15.wasm b/tests/gen/block.15.wasm index f3ee25f5..fce1bd14 100644 Binary files a/tests/gen/block.15.wasm and b/tests/gen/block.15.wasm differ diff --git a/tests/gen/block.150.wasm b/tests/gen/block.150.wasm new file mode 100644 index 00000000..234c239c Binary files /dev/null and b/tests/gen/block.150.wasm differ diff --git a/tests/gen/block.151.wasm b/tests/gen/block.151.wasm new file mode 100644 index 00000000..afdea851 Binary files /dev/null and b/tests/gen/block.151.wasm differ diff --git a/tests/gen/if.3.wasm b/tests/gen/block.152.wasm similarity index 60% rename from tests/gen/if.3.wasm rename to tests/gen/block.152.wasm index 3c28b6b1..188d4b3a 100644 Binary files a/tests/gen/if.3.wasm and b/tests/gen/block.152.wasm differ diff --git a/tests/gen/if.7.wasm b/tests/gen/block.153.wasm similarity index 60% rename from tests/gen/if.7.wasm rename to tests/gen/block.153.wasm index 3c28b6b1..10ffa998 100644 Binary files a/tests/gen/if.7.wasm and b/tests/gen/block.153.wasm differ diff --git a/tests/gen/block.154.wasm b/tests/gen/block.154.wasm new file mode 100644 index 00000000..eba12f55 Binary files /dev/null and b/tests/gen/block.154.wasm differ diff --git a/tests/gen/if.8.wasm b/tests/gen/block.155.wasm similarity index 60% rename from tests/gen/if.8.wasm rename to tests/gen/block.155.wasm index 0a2b0435..80fcded8 100644 Binary files a/tests/gen/if.8.wasm and b/tests/gen/block.155.wasm differ diff --git a/tests/gen/block.156.wasm b/tests/gen/block.156.wasm new file mode 100644 index 00000000..9a4e7f39 Binary files /dev/null and b/tests/gen/block.156.wasm differ diff --git a/tests/gen/block.157.wasm b/tests/gen/block.157.wasm new file mode 100644 index 00000000..07397d7b Binary files /dev/null and b/tests/gen/block.157.wasm differ diff --git a/tests/gen/block.158.wasm b/tests/gen/block.158.wasm new file mode 100644 index 00000000..a7090581 Binary files /dev/null and b/tests/gen/block.158.wasm differ diff --git a/tests/gen/block.159.wasm b/tests/gen/block.159.wasm new file mode 100644 index 00000000..f2cb82da Binary files /dev/null and b/tests/gen/block.159.wasm differ diff --git a/tests/gen/block.16.wasm b/tests/gen/block.16.wasm index 24edec60..ac54d79a 100644 Binary files a/tests/gen/block.16.wasm and b/tests/gen/block.16.wasm differ diff --git a/tests/gen/block.160.wasm b/tests/gen/block.160.wasm new file mode 100644 index 00000000..98fd78b3 Binary files /dev/null and b/tests/gen/block.160.wasm differ diff --git a/tests/gen/block.161.wasm b/tests/gen/block.161.wasm new file mode 100644 index 00000000..8c02a13b Binary files /dev/null and b/tests/gen/block.161.wasm differ diff --git a/tests/gen/block.162.wasm b/tests/gen/block.162.wasm new file mode 100644 index 00000000..3b6a15a8 Binary files /dev/null and b/tests/gen/block.162.wasm differ diff --git a/tests/gen/block.163.wasm b/tests/gen/block.163.wasm new file mode 100644 index 00000000..c15e5b8e Binary files /dev/null and b/tests/gen/block.163.wasm differ diff --git a/tests/gen/block.164.wasm b/tests/gen/block.164.wasm new file mode 100644 index 00000000..df249630 Binary files /dev/null and b/tests/gen/block.164.wasm differ diff --git a/tests/gen/block.165.wasm b/tests/gen/block.165.wasm new file mode 100644 index 00000000..cbef245e Binary files /dev/null and b/tests/gen/block.165.wasm differ diff --git a/tests/gen/block.166.wasm b/tests/gen/block.166.wasm new file mode 100644 index 00000000..09301b7a Binary files /dev/null and b/tests/gen/block.166.wasm differ diff --git a/tests/gen/block.167.wat b/tests/gen/block.167.wat new file mode 100644 index 00000000..321e9114 --- /dev/null +++ b/tests/gen/block.167.wat @@ -0,0 +1 @@ +(func (param i32) (result i32) block (param $x i32) end) \ No newline at end of file diff --git a/tests/gen/block.168.wat b/tests/gen/block.168.wat new file mode 100644 index 00000000..8974dd40 --- /dev/null +++ b/tests/gen/block.168.wat @@ -0,0 +1 @@ +(func (param i32) (result i32) (block (param $x i32))) \ No newline at end of file diff --git a/tests/gen/block.128.wat b/tests/gen/block.169.wat similarity index 100% rename from tests/gen/block.128.wat rename to tests/gen/block.169.wat diff --git a/tests/gen/block.17.wasm b/tests/gen/block.17.wasm index d6183e30..c724ec20 100644 Binary files a/tests/gen/block.17.wasm and b/tests/gen/block.17.wasm differ diff --git a/tests/gen/block.129.wat b/tests/gen/block.170.wat similarity index 100% rename from tests/gen/block.129.wat rename to tests/gen/block.170.wat diff --git a/tests/gen/block.18.wasm b/tests/gen/block.18.wasm index 74a1d1e5..1d10f55c 100644 Binary files a/tests/gen/block.18.wasm and b/tests/gen/block.18.wasm differ diff --git a/tests/gen/block.19.wasm b/tests/gen/block.19.wasm index 7769db58..65f0de50 100644 Binary files a/tests/gen/block.19.wasm and b/tests/gen/block.19.wasm differ diff --git a/tests/gen/block.2.wat b/tests/gen/block.2.wat new file mode 100644 index 00000000..2cea0d5b --- /dev/null +++ b/tests/gen/block.2.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (block (param i32) (type $sig) (result i32))) \ No newline at end of file diff --git a/tests/gen/block.20.wasm b/tests/gen/block.20.wasm index ee1fc7e1..40f30bff 100644 Binary files a/tests/gen/block.20.wasm and b/tests/gen/block.20.wasm differ diff --git a/tests/gen/block.21.wasm b/tests/gen/block.21.wasm index 7c13f4a4..d25a611f 100644 Binary files a/tests/gen/block.21.wasm and b/tests/gen/block.21.wasm differ diff --git a/tests/gen/block.22.wasm b/tests/gen/block.22.wasm index ba70a739..023367e9 100644 Binary files a/tests/gen/block.22.wasm and b/tests/gen/block.22.wasm differ diff --git a/tests/gen/block.23.wasm b/tests/gen/block.23.wasm index d8abff0c..b06638b2 100644 Binary files a/tests/gen/block.23.wasm and b/tests/gen/block.23.wasm differ diff --git a/tests/gen/block.24.wasm b/tests/gen/block.24.wasm index 1004d521..6155ec9b 100644 Binary files a/tests/gen/block.24.wasm and b/tests/gen/block.24.wasm differ diff --git a/tests/gen/block.25.wasm b/tests/gen/block.25.wasm index a962f5d3..de0f3004 100644 Binary files a/tests/gen/block.25.wasm and b/tests/gen/block.25.wasm differ diff --git a/tests/gen/block.26.wasm b/tests/gen/block.26.wasm index dd6ad99c..b7c103a7 100644 Binary files a/tests/gen/block.26.wasm and b/tests/gen/block.26.wasm differ diff --git a/tests/gen/block.27.wasm b/tests/gen/block.27.wasm index 4cdec966..31571819 100644 Binary files a/tests/gen/block.27.wasm and b/tests/gen/block.27.wasm differ diff --git a/tests/gen/block.28.wasm b/tests/gen/block.28.wasm index 7c6ed67e..b70e96a1 100644 Binary files a/tests/gen/block.28.wasm and b/tests/gen/block.28.wasm differ diff --git a/tests/gen/block.29.wasm b/tests/gen/block.29.wasm index d10c3988..f3ee25f5 100644 Binary files a/tests/gen/block.29.wasm and b/tests/gen/block.29.wasm differ diff --git a/tests/gen/block.3.wat b/tests/gen/block.3.wat new file mode 100644 index 00000000..2c933081 --- /dev/null +++ b/tests/gen/block.3.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (block (param i32) (result i32) (type $sig))) \ No newline at end of file diff --git a/tests/gen/block.30.wasm b/tests/gen/block.30.wasm index 2f7de6b7..24edec60 100644 Binary files a/tests/gen/block.30.wasm and b/tests/gen/block.30.wasm differ diff --git a/tests/gen/block.31.wasm b/tests/gen/block.31.wasm index e25231dc..d6183e30 100644 Binary files a/tests/gen/block.31.wasm and b/tests/gen/block.31.wasm differ diff --git a/tests/gen/block.32.wasm b/tests/gen/block.32.wasm index 1a5b7a76..74a1d1e5 100644 Binary files a/tests/gen/block.32.wasm and b/tests/gen/block.32.wasm differ diff --git a/tests/gen/block.33.wasm b/tests/gen/block.33.wasm index d02e840c..7769db58 100644 Binary files a/tests/gen/block.33.wasm and b/tests/gen/block.33.wasm differ diff --git a/tests/gen/block.34.wasm b/tests/gen/block.34.wasm index 70b71511..5c888ea2 100644 Binary files a/tests/gen/block.34.wasm and b/tests/gen/block.34.wasm differ diff --git a/tests/gen/block.35.wasm b/tests/gen/block.35.wasm index a2129c39..ee1fc7e1 100644 Binary files a/tests/gen/block.35.wasm and b/tests/gen/block.35.wasm differ diff --git a/tests/gen/block.36.wasm b/tests/gen/block.36.wasm index b9bf19a7..7c13f4a4 100644 Binary files a/tests/gen/block.36.wasm and b/tests/gen/block.36.wasm differ diff --git a/tests/gen/block.37.wasm b/tests/gen/block.37.wasm index da21e9d4..ba70a739 100644 Binary files a/tests/gen/block.37.wasm and b/tests/gen/block.37.wasm differ diff --git a/tests/gen/block.38.wasm b/tests/gen/block.38.wasm index 96a85e0c..d8abff0c 100644 Binary files a/tests/gen/block.38.wasm and b/tests/gen/block.38.wasm differ diff --git a/tests/gen/block.39.wasm b/tests/gen/block.39.wasm index 7b1dc5bc..1004d521 100644 Binary files a/tests/gen/block.39.wasm and b/tests/gen/block.39.wasm differ diff --git a/tests/gen/block.4.wat b/tests/gen/block.4.wat new file mode 100644 index 00000000..0bc1cbe4 --- /dev/null +++ b/tests/gen/block.4.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (block (result i32) (type $sig) (param i32))) \ No newline at end of file diff --git a/tests/gen/block.40.wasm b/tests/gen/block.40.wasm index bd78b131..a962f5d3 100644 Binary files a/tests/gen/block.40.wasm and b/tests/gen/block.40.wasm differ diff --git a/tests/gen/block.41.wasm b/tests/gen/block.41.wasm index fae840d6..dd6ad99c 100644 Binary files a/tests/gen/block.41.wasm and b/tests/gen/block.41.wasm differ diff --git a/tests/gen/block.42.wasm b/tests/gen/block.42.wasm index 84a5c6f2..4cdec966 100644 Binary files a/tests/gen/block.42.wasm and b/tests/gen/block.42.wasm differ diff --git a/tests/gen/block.43.wasm b/tests/gen/block.43.wasm index 4e7dbf5d..7c6ed67e 100644 Binary files a/tests/gen/block.43.wasm and b/tests/gen/block.43.wasm differ diff --git a/tests/gen/block.44.wasm b/tests/gen/block.44.wasm index 42f226c1..d10c3988 100644 Binary files a/tests/gen/block.44.wasm and b/tests/gen/block.44.wasm differ diff --git a/tests/gen/block.45.wasm b/tests/gen/block.45.wasm index 6af5bc27..2f7de6b7 100644 Binary files a/tests/gen/block.45.wasm and b/tests/gen/block.45.wasm differ diff --git a/tests/gen/block.46.wasm b/tests/gen/block.46.wasm index 13446826..e25231dc 100644 Binary files a/tests/gen/block.46.wasm and b/tests/gen/block.46.wasm differ diff --git a/tests/gen/block.47.wasm b/tests/gen/block.47.wasm index 9c808a14..a6fd466a 100644 Binary files a/tests/gen/block.47.wasm and b/tests/gen/block.47.wasm differ diff --git a/tests/gen/block.48.wasm b/tests/gen/block.48.wasm index b4bf8db3..c4613b4e 100644 Binary files a/tests/gen/block.48.wasm and b/tests/gen/block.48.wasm differ diff --git a/tests/gen/block.49.wasm b/tests/gen/block.49.wasm index 8c5907f0..5cc4faf0 100644 Binary files a/tests/gen/block.49.wasm and b/tests/gen/block.49.wasm differ diff --git a/tests/gen/block.5.wat b/tests/gen/block.5.wat new file mode 100644 index 00000000..8199fe82 --- /dev/null +++ b/tests/gen/block.5.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (block (result i32) (param i32) (type $sig))) \ No newline at end of file diff --git a/tests/gen/block.50.wasm b/tests/gen/block.50.wasm index 1f25ff96..1a5b7a76 100644 Binary files a/tests/gen/block.50.wasm and b/tests/gen/block.50.wasm differ diff --git a/tests/gen/block.51.wasm b/tests/gen/block.51.wasm index 15be75d8..d02e840c 100644 Binary files a/tests/gen/block.51.wasm and b/tests/gen/block.51.wasm differ diff --git a/tests/gen/block.52.wasm b/tests/gen/block.52.wasm index 0b77cf78..70b71511 100644 Binary files a/tests/gen/block.52.wasm and b/tests/gen/block.52.wasm differ diff --git a/tests/gen/block.53.wasm b/tests/gen/block.53.wasm index d5e1b7bd..a2129c39 100644 Binary files a/tests/gen/block.53.wasm and b/tests/gen/block.53.wasm differ diff --git a/tests/gen/block.54.wasm b/tests/gen/block.54.wasm index a6cb225f..b9bf19a7 100644 Binary files a/tests/gen/block.54.wasm and b/tests/gen/block.54.wasm differ diff --git a/tests/gen/block.55.wasm b/tests/gen/block.55.wasm index 92af5e48..da21e9d4 100644 Binary files a/tests/gen/block.55.wasm and b/tests/gen/block.55.wasm differ diff --git a/tests/gen/block.56.wasm b/tests/gen/block.56.wasm index 5eb9779c..96a85e0c 100644 Binary files a/tests/gen/block.56.wasm and b/tests/gen/block.56.wasm differ diff --git a/tests/gen/block.57.wasm b/tests/gen/block.57.wasm index 3af756ac..7b1dc5bc 100644 Binary files a/tests/gen/block.57.wasm and b/tests/gen/block.57.wasm differ diff --git a/tests/gen/block.58.wasm b/tests/gen/block.58.wasm index 0f003dc7..bd78b131 100644 Binary files a/tests/gen/block.58.wasm and b/tests/gen/block.58.wasm differ diff --git a/tests/gen/block.59.wasm b/tests/gen/block.59.wasm index d1cb6888..fae840d6 100644 Binary files a/tests/gen/block.59.wasm and b/tests/gen/block.59.wasm differ diff --git a/tests/gen/block.6.wat b/tests/gen/block.6.wat new file mode 100644 index 00000000..5c65ee84 --- /dev/null +++ b/tests/gen/block.6.wat @@ -0,0 +1 @@ +(func (i32.const 0) (block (result i32) (param i32))) \ No newline at end of file diff --git a/tests/gen/block.60.wasm b/tests/gen/block.60.wasm index ae14b3d9..84a5c6f2 100644 Binary files a/tests/gen/block.60.wasm and b/tests/gen/block.60.wasm differ diff --git a/tests/gen/block.61.wasm b/tests/gen/block.61.wasm index c3d9e695..4e7dbf5d 100644 Binary files a/tests/gen/block.61.wasm and b/tests/gen/block.61.wasm differ diff --git a/tests/gen/block.62.wasm b/tests/gen/block.62.wasm index 93f2db57..42f226c1 100644 Binary files a/tests/gen/block.62.wasm and b/tests/gen/block.62.wasm differ diff --git a/tests/gen/block.63.wasm b/tests/gen/block.63.wasm index c880703d..6af5bc27 100644 Binary files a/tests/gen/block.63.wasm and b/tests/gen/block.63.wasm differ diff --git a/tests/gen/block.64.wasm b/tests/gen/block.64.wasm index 6e829263..13446826 100644 Binary files a/tests/gen/block.64.wasm and b/tests/gen/block.64.wasm differ diff --git a/tests/gen/block.65.wasm b/tests/gen/block.65.wasm index 21c69f8a..9c808a14 100644 Binary files a/tests/gen/block.65.wasm and b/tests/gen/block.65.wasm differ diff --git a/tests/gen/block.66.wasm b/tests/gen/block.66.wasm index c5977df7..83c27a56 100644 Binary files a/tests/gen/block.66.wasm and b/tests/gen/block.66.wasm differ diff --git a/tests/gen/block.67.wasm b/tests/gen/block.67.wasm index bd14646d..b4bf8db3 100644 Binary files a/tests/gen/block.67.wasm and b/tests/gen/block.67.wasm differ diff --git a/tests/gen/block.68.wasm b/tests/gen/block.68.wasm index 2348ab49..8c5907f0 100644 Binary files a/tests/gen/block.68.wasm and b/tests/gen/block.68.wasm differ diff --git a/tests/gen/block.69.wasm b/tests/gen/block.69.wasm index 0e0965c5..1f25ff96 100644 Binary files a/tests/gen/block.69.wasm and b/tests/gen/block.69.wasm differ diff --git a/tests/gen/block.7.wat b/tests/gen/block.7.wat new file mode 100644 index 00000000..4c77ee9c --- /dev/null +++ b/tests/gen/block.7.wat @@ -0,0 +1 @@ +(func (i32.const 0) (block (param $x i32) (drop))) \ No newline at end of file diff --git a/tests/gen/block.70.wasm b/tests/gen/block.70.wasm index 58f600d2..15be75d8 100644 Binary files a/tests/gen/block.70.wasm and b/tests/gen/block.70.wasm differ diff --git a/tests/gen/block.71.wasm b/tests/gen/block.71.wasm index d20a14f4..5f2f83d2 100644 Binary files a/tests/gen/block.71.wasm and b/tests/gen/block.71.wasm differ diff --git a/tests/gen/block.72.wasm b/tests/gen/block.72.wasm index 9fb79537..0b77cf78 100644 Binary files a/tests/gen/block.72.wasm and b/tests/gen/block.72.wasm differ diff --git a/tests/gen/block.73.wasm b/tests/gen/block.73.wasm index 70e9712f..d5e1b7bd 100644 Binary files a/tests/gen/block.73.wasm and b/tests/gen/block.73.wasm differ diff --git a/tests/gen/block.74.wasm b/tests/gen/block.74.wasm index 2f95f599..a6cb225f 100644 Binary files a/tests/gen/block.74.wasm and b/tests/gen/block.74.wasm differ diff --git a/tests/gen/block.75.wasm b/tests/gen/block.75.wasm index 7e00a888..92af5e48 100644 Binary files a/tests/gen/block.75.wasm and b/tests/gen/block.75.wasm differ diff --git a/tests/gen/block.76.wasm b/tests/gen/block.76.wasm index 55a6ab8c..5eb9779c 100644 Binary files a/tests/gen/block.76.wasm and b/tests/gen/block.76.wasm differ diff --git a/tests/gen/block.77.wasm b/tests/gen/block.77.wasm index bef742ac..3af756ac 100644 Binary files a/tests/gen/block.77.wasm and b/tests/gen/block.77.wasm differ diff --git a/tests/gen/block.78.wasm b/tests/gen/block.78.wasm index fb055734..0f003dc7 100644 Binary files a/tests/gen/block.78.wasm and b/tests/gen/block.78.wasm differ diff --git a/tests/gen/block.79.wasm b/tests/gen/block.79.wasm index 4250b459..d1cb6888 100644 Binary files a/tests/gen/block.79.wasm and b/tests/gen/block.79.wasm differ diff --git a/tests/gen/block.8.wat b/tests/gen/block.8.wat new file mode 100644 index 00000000..a7cef295 --- /dev/null +++ b/tests/gen/block.8.wat @@ -0,0 +1 @@ +(type $sig (func))(func (block (type $sig) (result i32) (i32.const 0)) (unreachable)) \ No newline at end of file diff --git a/tests/gen/block.80.wasm b/tests/gen/block.80.wasm index 8377b65b..ae14b3d9 100644 Binary files a/tests/gen/block.80.wasm and b/tests/gen/block.80.wasm differ diff --git a/tests/gen/block.81.wasm b/tests/gen/block.81.wasm index c99d446a..c3d9e695 100644 Binary files a/tests/gen/block.81.wasm and b/tests/gen/block.81.wasm differ diff --git a/tests/gen/block.82.wasm b/tests/gen/block.82.wasm index 42d83a4b..93f2db57 100644 Binary files a/tests/gen/block.82.wasm and b/tests/gen/block.82.wasm differ diff --git a/tests/gen/block.83.wasm b/tests/gen/block.83.wasm index 723b5daa..c880703d 100644 Binary files a/tests/gen/block.83.wasm and b/tests/gen/block.83.wasm differ diff --git a/tests/gen/block.84.wasm b/tests/gen/block.84.wasm index 5c8b4fdf..6e829263 100644 Binary files a/tests/gen/block.84.wasm and b/tests/gen/block.84.wasm differ diff --git a/tests/gen/block.85.wasm b/tests/gen/block.85.wasm index 1753a554..21c69f8a 100644 Binary files a/tests/gen/block.85.wasm and b/tests/gen/block.85.wasm differ diff --git a/tests/gen/block.86.wasm b/tests/gen/block.86.wasm index 6895a38a..c5977df7 100644 Binary files a/tests/gen/block.86.wasm and b/tests/gen/block.86.wasm differ diff --git a/tests/gen/block.87.wasm b/tests/gen/block.87.wasm index e3d897f3..bd14646d 100644 Binary files a/tests/gen/block.87.wasm and b/tests/gen/block.87.wasm differ diff --git a/tests/gen/block.88.wasm b/tests/gen/block.88.wasm index 58996b86..a6102733 100644 Binary files a/tests/gen/block.88.wasm and b/tests/gen/block.88.wasm differ diff --git a/tests/gen/block.89.wasm b/tests/gen/block.89.wasm index a6b01be5..1c7b3e8a 100644 Binary files a/tests/gen/block.89.wasm and b/tests/gen/block.89.wasm differ diff --git a/tests/gen/block.9.wat b/tests/gen/block.9.wat new file mode 100644 index 00000000..1c5846e4 --- /dev/null +++ b/tests/gen/block.9.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (block (type $sig) (result i32) (i32.const 0)) (unreachable)) \ No newline at end of file diff --git a/tests/gen/block.90.wasm b/tests/gen/block.90.wasm index 008b0114..2348ab49 100644 Binary files a/tests/gen/block.90.wasm and b/tests/gen/block.90.wasm differ diff --git a/tests/gen/block.91.wasm b/tests/gen/block.91.wasm index a1967106..0e0965c5 100644 Binary files a/tests/gen/block.91.wasm and b/tests/gen/block.91.wasm differ diff --git a/tests/gen/block.92.wasm b/tests/gen/block.92.wasm index 47ca72d5..58f600d2 100644 Binary files a/tests/gen/block.92.wasm and b/tests/gen/block.92.wasm differ diff --git a/tests/gen/block.93.wasm b/tests/gen/block.93.wasm index b55f9cce..d20a14f4 100644 Binary files a/tests/gen/block.93.wasm and b/tests/gen/block.93.wasm differ diff --git a/tests/gen/block.94.wasm b/tests/gen/block.94.wasm index 13a8a3be..4abf1f1a 100644 Binary files a/tests/gen/block.94.wasm and b/tests/gen/block.94.wasm differ diff --git a/tests/gen/block.95.wasm b/tests/gen/block.95.wasm index 5629e875..9fb79537 100644 Binary files a/tests/gen/block.95.wasm and b/tests/gen/block.95.wasm differ diff --git a/tests/gen/block.96.wasm b/tests/gen/block.96.wasm index 4d9046af..70e9712f 100644 Binary files a/tests/gen/block.96.wasm and b/tests/gen/block.96.wasm differ diff --git a/tests/gen/block.97.wasm b/tests/gen/block.97.wasm index d4ee6b36..2f95f599 100644 Binary files a/tests/gen/block.97.wasm and b/tests/gen/block.97.wasm differ diff --git a/tests/gen/block.98.wasm b/tests/gen/block.98.wasm index 47c7129e..7e00a888 100644 Binary files a/tests/gen/block.98.wasm and b/tests/gen/block.98.wasm differ diff --git a/tests/gen/block.99.wasm b/tests/gen/block.99.wasm index 55bad0c8..55a6ab8c 100644 Binary files a/tests/gen/block.99.wasm and b/tests/gen/block.99.wasm differ diff --git a/tests/gen/block.json b/tests/gen/block.json index 02c9bb78..4435b822 100644 --- a/tests/gen/block.json +++ b/tests/gen/block.json @@ -1,173 +1,213 @@ {"source_filename": "block.wast", "commands": [ {"type": "module", "line": 3, "filename": "block.0.wasm"}, - {"type": "assert_return", "line": 252, "action": {"type": "invoke", "field": "empty", "args": []}, "expected": []}, - {"type": "assert_return", "line": 253, "action": {"type": "invoke", "field": "singular", "args": []}, "expected": [{"type": "i32", "value": "7"}]}, - {"type": "assert_return", "line": 254, "action": {"type": "invoke", "field": "multi", "args": []}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 255, "action": {"type": "invoke", "field": "nested", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 256, "action": {"type": "invoke", "field": "deep", "args": []}, "expected": [{"type": "i32", "value": "150"}]}, - {"type": "assert_return", "line": 258, "action": {"type": "invoke", "field": "as-select-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 259, "action": {"type": "invoke", "field": "as-select-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 260, "action": {"type": "invoke", "field": "as-select-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 262, "action": {"type": "invoke", "field": "as-loop-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 263, "action": {"type": "invoke", "field": "as-loop-mid", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 264, "action": {"type": "invoke", "field": "as-loop-last", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 266, "action": {"type": "invoke", "field": "as-if-condition", "args": []}, "expected": []}, - {"type": "assert_return", "line": 267, "action": {"type": "invoke", "field": "as-if-then", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 268, "action": {"type": "invoke", "field": "as-if-else", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 270, "action": {"type": "invoke", "field": "as-br_if-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 271, "action": {"type": "invoke", "field": "as-br_if-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 273, "action": {"type": "invoke", "field": "as-br_table-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 274, "action": {"type": "invoke", "field": "as-br_table-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 276, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 277, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 278, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 280, "action": {"type": "invoke", "field": "as-store-first", "args": []}, "expected": []}, - {"type": "assert_return", "line": 281, "action": {"type": "invoke", "field": "as-store-last", "args": []}, "expected": []}, - {"type": "assert_return", "line": 283, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 284, "action": {"type": "invoke", "field": "as-call-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 285, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 286, "action": {"type": "invoke", "field": "as-drop-operand", "args": []}, "expected": []}, - {"type": "assert_return", "line": 287, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 288, "action": {"type": "invoke", "field": "as-local.set-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 289, "action": {"type": "invoke", "field": "as-local.tee-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 290, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 291, "action": {"type": "invoke", "field": "as-load-operand", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 293, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 294, "action": {"type": "invoke", "field": "as-binary-operand", "args": []}, "expected": [{"type": "i32", "value": "12"}]}, - {"type": "assert_return", "line": 295, "action": {"type": "invoke", "field": "as-test-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 296, "action": {"type": "invoke", "field": "as-compare-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 298, "action": {"type": "invoke", "field": "break-bare", "args": []}, "expected": [{"type": "i32", "value": "19"}]}, - {"type": "assert_return", "line": 299, "action": {"type": "invoke", "field": "break-value", "args": []}, "expected": [{"type": "i32", "value": "18"}]}, - {"type": "assert_return", "line": 300, "action": {"type": "invoke", "field": "break-repeated", "args": []}, "expected": [{"type": "i32", "value": "18"}]}, - {"type": "assert_return", "line": 301, "action": {"type": "invoke", "field": "break-inner", "args": []}, "expected": [{"type": "i32", "value": "15"}]}, - {"type": "assert_return", "line": 303, "action": {"type": "invoke", "field": "effects", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_invalid", "line": 306, "filename": "block.1.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 310, "filename": "block.2.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 314, "filename": "block.3.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 318, "filename": "block.4.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 323, "filename": "block.5.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 329, "filename": "block.6.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 335, "filename": "block.7.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 341, "filename": "block.8.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 348, "filename": "block.9.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 354, "filename": "block.10.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 360, "filename": "block.11.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 366, "filename": "block.12.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 373, "filename": "block.13.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 382, "filename": "block.14.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 391, "filename": "block.15.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 401, "filename": "block.16.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 407, "filename": "block.17.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 413, "filename": "block.18.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 419, "filename": "block.19.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 426, "filename": "block.20.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 432, "filename": "block.21.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 438, "filename": "block.22.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 444, "filename": "block.23.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 450, "filename": "block.24.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 456, "filename": "block.25.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 462, "filename": "block.26.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 468, "filename": "block.27.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 474, "filename": "block.28.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 480, "filename": "block.29.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 486, "filename": "block.30.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 492, "filename": "block.31.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 499, "filename": "block.32.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 505, "filename": "block.33.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 511, "filename": "block.34.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 517, "filename": "block.35.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 523, "filename": "block.36.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 529, "filename": "block.37.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 535, "filename": "block.38.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 541, "filename": "block.39.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 547, "filename": "block.40.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 553, "filename": "block.41.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 559, "filename": "block.42.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 565, "filename": "block.43.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 572, "filename": "block.44.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 578, "filename": "block.45.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 584, "filename": "block.46.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 590, "filename": "block.47.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 597, "filename": "block.48.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 603, "filename": "block.49.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 609, "filename": "block.50.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 615, "filename": "block.51.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 622, "filename": "block.52.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 628, "filename": "block.53.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 634, "filename": "block.54.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 640, "filename": "block.55.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 647, "filename": "block.56.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 653, "filename": "block.57.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 659, "filename": "block.58.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 665, "filename": "block.59.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 671, "filename": "block.60.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 677, "filename": "block.61.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 683, "filename": "block.62.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 689, "filename": "block.63.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 695, "filename": "block.64.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 701, "filename": "block.65.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 707, "filename": "block.66.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 713, "filename": "block.67.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 720, "filename": "block.68.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 726, "filename": "block.69.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 732, "filename": "block.70.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 738, "filename": "block.71.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 745, "filename": "block.72.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 751, "filename": "block.73.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 757, "filename": "block.74.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 763, "filename": "block.75.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 769, "filename": "block.76.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 775, "filename": "block.77.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 781, "filename": "block.78.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 787, "filename": "block.79.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 793, "filename": "block.80.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 799, "filename": "block.81.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 805, "filename": "block.82.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 811, "filename": "block.83.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 818, "filename": "block.84.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 824, "filename": "block.85.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 830, "filename": "block.86.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 836, "filename": "block.87.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 843, "filename": "block.88.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 849, "filename": "block.89.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 855, "filename": "block.90.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 861, "filename": "block.91.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 868, "filename": "block.92.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 874, "filename": "block.93.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 880, "filename": "block.94.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 886, "filename": "block.95.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 893, "filename": "block.96.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 901, "filename": "block.97.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 909, "filename": "block.98.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 917, "filename": "block.99.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 925, "filename": "block.100.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 933, "filename": "block.101.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 941, "filename": "block.102.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 949, "filename": "block.103.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 957, "filename": "block.104.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 965, "filename": "block.105.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 973, "filename": "block.106.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 981, "filename": "block.107.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 990, "filename": "block.108.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 996, "filename": "block.109.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1002, "filename": "block.110.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1008, "filename": "block.111.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1015, "filename": "block.112.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1021, "filename": "block.113.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1027, "filename": "block.114.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1033, "filename": "block.115.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1040, "filename": "block.116.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1046, "filename": "block.117.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1052, "filename": "block.118.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1058, "filename": "block.119.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1064, "filename": "block.120.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1070, "filename": "block.121.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1076, "filename": "block.122.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1082, "filename": "block.123.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1088, "filename": "block.124.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1094, "filename": "block.125.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1100, "filename": "block.126.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1106, "filename": "block.127.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_malformed", "line": 1114, "filename": "block.128.wat", "text": "mismatching label", "module_type": "text"}, - {"type": "assert_malformed", "line": 1118, "filename": "block.129.wat", "text": "mismatching label", "module_type": "text"}]} + {"type": "assert_return", "line": 361, "action": {"type": "invoke", "field": "empty", "args": []}, "expected": []}, + {"type": "assert_return", "line": 362, "action": {"type": "invoke", "field": "singular", "args": []}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 365, "action": {"type": "invoke", "field": "nested", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 366, "action": {"type": "invoke", "field": "deep", "args": []}, "expected": [{"type": "i32", "value": "150"}]}, + {"type": "assert_return", "line": 368, "action": {"type": "invoke", "field": "as-select-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 369, "action": {"type": "invoke", "field": "as-select-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 370, "action": {"type": "invoke", "field": "as-select-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 372, "action": {"type": "invoke", "field": "as-loop-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 373, "action": {"type": "invoke", "field": "as-loop-mid", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 374, "action": {"type": "invoke", "field": "as-loop-last", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 376, "action": {"type": "invoke", "field": "as-if-condition", "args": []}, "expected": []}, + {"type": "assert_return", "line": 377, "action": {"type": "invoke", "field": "as-if-then", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 378, "action": {"type": "invoke", "field": "as-if-else", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 380, "action": {"type": "invoke", "field": "as-br_if-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 381, "action": {"type": "invoke", "field": "as-br_if-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 383, "action": {"type": "invoke", "field": "as-br_table-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 384, "action": {"type": "invoke", "field": "as-br_table-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 386, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 387, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 388, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 390, "action": {"type": "invoke", "field": "as-store-first", "args": []}, "expected": []}, + {"type": "assert_return", "line": 391, "action": {"type": "invoke", "field": "as-store-last", "args": []}, "expected": []}, + {"type": "assert_return", "line": 393, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 394, "action": {"type": "invoke", "field": "as-call-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 395, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 396, "action": {"type": "invoke", "field": "as-drop-operand", "args": []}, "expected": []}, + {"type": "assert_return", "line": 397, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 398, "action": {"type": "invoke", "field": "as-local.set-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 399, "action": {"type": "invoke", "field": "as-local.tee-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 400, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 401, "action": {"type": "invoke", "field": "as-load-operand", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 403, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 404, "action": {"type": "invoke", "field": "as-binary-operand", "args": []}, "expected": [{"type": "i32", "value": "12"}]}, + {"type": "assert_return", "line": 405, "action": {"type": "invoke", "field": "as-test-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 406, "action": {"type": "invoke", "field": "as-compare-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 412, "action": {"type": "invoke", "field": "break-bare", "args": []}, "expected": [{"type": "i32", "value": "19"}]}, + {"type": "assert_return", "line": 413, "action": {"type": "invoke", "field": "break-value", "args": []}, "expected": [{"type": "i32", "value": "18"}]}, + {"type": "assert_return", "line": 418, "action": {"type": "invoke", "field": "break-repeated", "args": []}, "expected": [{"type": "i32", "value": "18"}]}, + {"type": "assert_return", "line": 419, "action": {"type": "invoke", "field": "break-inner", "args": []}, "expected": [{"type": "i32", "value": "15"}]}, + {"type": "assert_return", "line": 432, "action": {"type": "invoke", "field": "effects", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_malformed", "line": 438, "filename": "block.1.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 445, "filename": "block.2.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 452, "filename": "block.3.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 459, "filename": "block.4.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 466, "filename": "block.5.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 473, "filename": "block.6.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 480, "filename": "block.7.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 484, "filename": "block.8.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_malformed", "line": 491, "filename": "block.9.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_malformed", "line": 498, "filename": "block.10.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_malformed", "line": 505, "filename": "block.11.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_invalid", "line": 513, "filename": "block.12.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 521, "filename": "block.13.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 525, "filename": "block.14.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 529, "filename": "block.15.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 533, "filename": "block.16.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 538, "filename": "block.17.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 544, "filename": "block.18.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 550, "filename": "block.19.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 556, "filename": "block.20.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 562, "filename": "block.21.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 568, "filename": "block.22.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 574, "filename": "block.23.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 580, "filename": "block.24.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 586, "filename": "block.25.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 592, "filename": "block.26.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 599, "filename": "block.27.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 608, "filename": "block.28.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 617, "filename": "block.29.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 627, "filename": "block.30.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 633, "filename": "block.31.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 639, "filename": "block.32.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 645, "filename": "block.33.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 651, "filename": "block.34.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 657, "filename": "block.35.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 663, "filename": "block.36.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 669, "filename": "block.37.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 675, "filename": "block.38.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 681, "filename": "block.39.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 687, "filename": "block.40.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 693, "filename": "block.41.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 699, "filename": "block.42.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 705, "filename": "block.43.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 711, "filename": "block.44.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 717, "filename": "block.45.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 723, "filename": "block.46.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 729, "filename": "block.47.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 735, "filename": "block.48.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 741, "filename": "block.49.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 748, "filename": "block.50.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 754, "filename": "block.51.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 760, "filename": "block.52.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 766, "filename": "block.53.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 772, "filename": "block.54.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 778, "filename": "block.55.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 784, "filename": "block.56.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 790, "filename": "block.57.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 796, "filename": "block.58.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 802, "filename": "block.59.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 808, "filename": "block.60.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 814, "filename": "block.61.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 821, "filename": "block.62.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 827, "filename": "block.63.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 833, "filename": "block.64.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 839, "filename": "block.65.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 845, "filename": "block.66.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 852, "filename": "block.67.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 858, "filename": "block.68.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 864, "filename": "block.69.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 870, "filename": "block.70.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 876, "filename": "block.71.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 883, "filename": "block.72.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 889, "filename": "block.73.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 895, "filename": "block.74.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 901, "filename": "block.75.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 908, "filename": "block.76.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 914, "filename": "block.77.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 920, "filename": "block.78.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 926, "filename": "block.79.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 932, "filename": "block.80.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 938, "filename": "block.81.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 944, "filename": "block.82.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 950, "filename": "block.83.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 956, "filename": "block.84.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 962, "filename": "block.85.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 968, "filename": "block.86.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 974, "filename": "block.87.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 980, "filename": "block.88.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 986, "filename": "block.89.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 993, "filename": "block.90.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 999, "filename": "block.91.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1005, "filename": "block.92.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1011, "filename": "block.93.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1017, "filename": "block.94.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1024, "filename": "block.95.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1030, "filename": "block.96.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1036, "filename": "block.97.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1042, "filename": "block.98.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1048, "filename": "block.99.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1054, "filename": "block.100.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1060, "filename": "block.101.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1066, "filename": "block.102.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1072, "filename": "block.103.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1078, "filename": "block.104.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1084, "filename": "block.105.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1090, "filename": "block.106.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1096, "filename": "block.107.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1103, "filename": "block.108.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1109, "filename": "block.109.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1115, "filename": "block.110.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1121, "filename": "block.111.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1127, "filename": "block.112.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1134, "filename": "block.113.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1140, "filename": "block.114.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1146, "filename": "block.115.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1152, "filename": "block.116.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1158, "filename": "block.117.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1165, "filename": "block.118.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1171, "filename": "block.119.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1177, "filename": "block.120.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1183, "filename": "block.121.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1189, "filename": "block.122.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1196, "filename": "block.123.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1204, "filename": "block.124.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1212, "filename": "block.125.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1220, "filename": "block.126.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1228, "filename": "block.127.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1236, "filename": "block.128.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1244, "filename": "block.129.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1252, "filename": "block.130.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1260, "filename": "block.131.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1268, "filename": "block.132.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1276, "filename": "block.133.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1284, "filename": "block.134.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1292, "filename": "block.135.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1301, "filename": "block.136.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1307, "filename": "block.137.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1313, "filename": "block.138.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1319, "filename": "block.139.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1325, "filename": "block.140.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1332, "filename": "block.141.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1338, "filename": "block.142.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1344, "filename": "block.143.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1350, "filename": "block.144.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1356, "filename": "block.145.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1363, "filename": "block.146.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1369, "filename": "block.147.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1375, "filename": "block.148.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1381, "filename": "block.149.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1387, "filename": "block.150.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1393, "filename": "block.151.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1399, "filename": "block.152.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1405, "filename": "block.153.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1411, "filename": "block.154.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1417, "filename": "block.155.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1423, "filename": "block.156.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1429, "filename": "block.157.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1435, "filename": "block.158.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1442, "filename": "block.159.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1448, "filename": "block.160.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1454, "filename": "block.161.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1460, "filename": "block.162.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1466, "filename": "block.163.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1472, "filename": "block.164.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1478, "filename": "block.165.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1484, "filename": "block.166.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1491, "filename": "block.167.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 1495, "filename": "block.168.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 1501, "filename": "block.169.wat", "text": "mismatching label", "module_type": "text"}, + {"type": "assert_malformed", "line": 1505, "filename": "block.170.wat", "text": "mismatching label", "module_type": "text"}]} diff --git a/tests/gen/br.json b/tests/gen/br.json index bc436ee6..72935fed 100644 --- a/tests/gen/br.json +++ b/tests/gen/br.json @@ -1,97 +1,97 @@ {"source_filename": "br.wast", "commands": [ {"type": "module", "line": 3, "filename": "br.0.wasm"}, - {"type": "assert_return", "line": 363, "action": {"type": "invoke", "field": "type-i32", "args": []}, "expected": []}, - {"type": "assert_return", "line": 364, "action": {"type": "invoke", "field": "type-i64", "args": []}, "expected": []}, - {"type": "assert_return", "line": 365, "action": {"type": "invoke", "field": "type-f32", "args": []}, "expected": []}, - {"type": "assert_return", "line": 366, "action": {"type": "invoke", "field": "type-f64", "args": []}, "expected": []}, - {"type": "assert_return", "line": 367, "action": {"type": "invoke", "field": "type-i32-i32", "args": []}, "expected": []}, - {"type": "assert_return", "line": 368, "action": {"type": "invoke", "field": "type-i64-i64", "args": []}, "expected": []}, - {"type": "assert_return", "line": 369, "action": {"type": "invoke", "field": "type-f32-f32", "args": []}, "expected": []}, - {"type": "assert_return", "line": 370, "action": {"type": "invoke", "field": "type-f64-f64", "args": []}, "expected": []}, - {"type": "assert_return", "line": 372, "action": {"type": "invoke", "field": "type-i32-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 373, "action": {"type": "invoke", "field": "type-i64-value", "args": []}, "expected": [{"type": "i64", "value": "2"}]}, - {"type": "assert_return", "line": 374, "action": {"type": "invoke", "field": "type-f32-value", "args": []}, "expected": [{"type": "f32", "value": "1077936128"}]}, - {"type": "assert_return", "line": 375, "action": {"type": "invoke", "field": "type-f64-value", "args": []}, "expected": [{"type": "f64", "value": "4616189618054758400"}]}, - {"type": "assert_return", "line": 378, "action": {"type": "invoke", "field": "as-block-first", "args": []}, "expected": []}, - {"type": "assert_return", "line": 379, "action": {"type": "invoke", "field": "as-block-mid", "args": []}, "expected": []}, - {"type": "assert_return", "line": 380, "action": {"type": "invoke", "field": "as-block-last", "args": []}, "expected": []}, - {"type": "assert_return", "line": 381, "action": {"type": "invoke", "field": "as-block-value", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 383, "action": {"type": "invoke", "field": "as-loop-first", "args": []}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 384, "action": {"type": "invoke", "field": "as-loop-mid", "args": []}, "expected": [{"type": "i32", "value": "4"}]}, - {"type": "assert_return", "line": 385, "action": {"type": "invoke", "field": "as-loop-last", "args": []}, "expected": [{"type": "i32", "value": "5"}]}, - {"type": "assert_return", "line": 387, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 389, "action": {"type": "invoke", "field": "as-br_if-cond", "args": []}, "expected": []}, - {"type": "assert_return", "line": 390, "action": {"type": "invoke", "field": "as-br_if-value", "args": []}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 391, "action": {"type": "invoke", "field": "as-br_if-value-cond", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 393, "action": {"type": "invoke", "field": "as-br_table-index", "args": []}, "expected": []}, - {"type": "assert_return", "line": 394, "action": {"type": "invoke", "field": "as-br_table-value", "args": []}, "expected": [{"type": "i32", "value": "10"}]}, - {"type": "assert_return", "line": 395, "action": {"type": "invoke", "field": "as-br_table-value-index", "args": []}, "expected": [{"type": "i32", "value": "11"}]}, - {"type": "assert_return", "line": 397, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i64", "value": "7"}]}, - {"type": "assert_return", "line": 400, "action": {"type": "invoke", "field": "as-if-cond", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 401, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 402, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 403, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "4"}]}, - {"type": "assert_return", "line": 404, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 406, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "5"}]}, - {"type": "assert_return", "line": 407, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "5"}]}, - {"type": "assert_return", "line": 408, "action": {"type": "invoke", "field": "as-select-second", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 409, "action": {"type": "invoke", "field": "as-select-second", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 410, "action": {"type": "invoke", "field": "as-select-cond", "args": []}, "expected": [{"type": "i32", "value": "7"}]}, - {"type": "assert_return", "line": 411, "action": {"type": "invoke", "field": "as-select-all", "args": []}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 413, "action": {"type": "invoke", "field": "as-call-first", "args": []}, "expected": [{"type": "i32", "value": "12"}]}, - {"type": "assert_return", "line": 414, "action": {"type": "invoke", "field": "as-call-mid", "args": []}, "expected": [{"type": "i32", "value": "13"}]}, - {"type": "assert_return", "line": 415, "action": {"type": "invoke", "field": "as-call-last", "args": []}, "expected": [{"type": "i32", "value": "14"}]}, - {"type": "assert_return", "line": 416, "action": {"type": "invoke", "field": "as-call-all", "args": []}, "expected": [{"type": "i32", "value": "15"}]}, - {"type": "assert_return", "line": 418, "action": {"type": "invoke", "field": "as-call_indirect-func", "args": []}, "expected": [{"type": "i32", "value": "20"}]}, - {"type": "assert_return", "line": 419, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": []}, "expected": [{"type": "i32", "value": "21"}]}, - {"type": "assert_return", "line": 420, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": []}, "expected": [{"type": "i32", "value": "22"}]}, - {"type": "assert_return", "line": 421, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": []}, "expected": [{"type": "i32", "value": "23"}]}, - {"type": "assert_return", "line": 422, "action": {"type": "invoke", "field": "as-call_indirect-all", "args": []}, "expected": [{"type": "i32", "value": "24"}]}, - {"type": "assert_return", "line": 424, "action": {"type": "invoke", "field": "as-local.set-value", "args": []}, "expected": [{"type": "i32", "value": "17"}]}, - {"type": "assert_return", "line": 425, "action": {"type": "invoke", "field": "as-local.tee-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 426, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 428, "action": {"type": "invoke", "field": "as-load-address", "args": []}, "expected": [{"type": "f32", "value": "1071225242"}]}, - {"type": "assert_return", "line": 429, "action": {"type": "invoke", "field": "as-loadN-address", "args": []}, "expected": [{"type": "i64", "value": "30"}]}, - {"type": "assert_return", "line": 431, "action": {"type": "invoke", "field": "as-store-address", "args": []}, "expected": [{"type": "i32", "value": "30"}]}, - {"type": "assert_return", "line": 432, "action": {"type": "invoke", "field": "as-store-value", "args": []}, "expected": [{"type": "i32", "value": "31"}]}, - {"type": "assert_return", "line": 433, "action": {"type": "invoke", "field": "as-store-both", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, - {"type": "assert_return", "line": 434, "action": {"type": "invoke", "field": "as-storeN-address", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, - {"type": "assert_return", "line": 435, "action": {"type": "invoke", "field": "as-storeN-value", "args": []}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 436, "action": {"type": "invoke", "field": "as-storeN-both", "args": []}, "expected": [{"type": "i32", "value": "34"}]}, - {"type": "assert_return", "line": 438, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "f32", "value": "1079613850"}]}, - {"type": "assert_return", "line": 440, "action": {"type": "invoke", "field": "as-binary-left", "args": []}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 441, "action": {"type": "invoke", "field": "as-binary-right", "args": []}, "expected": [{"type": "i64", "value": "45"}]}, - {"type": "assert_return", "line": 442, "action": {"type": "invoke", "field": "as-binary-both", "args": []}, "expected": [{"type": "i32", "value": "46"}]}, - {"type": "assert_return", "line": 444, "action": {"type": "invoke", "field": "as-test-operand", "args": []}, "expected": [{"type": "i32", "value": "44"}]}, - {"type": "assert_return", "line": 446, "action": {"type": "invoke", "field": "as-compare-left", "args": []}, "expected": [{"type": "i32", "value": "43"}]}, - {"type": "assert_return", "line": 447, "action": {"type": "invoke", "field": "as-compare-right", "args": []}, "expected": [{"type": "i32", "value": "42"}]}, - {"type": "assert_return", "line": 448, "action": {"type": "invoke", "field": "as-compare-both", "args": []}, "expected": [{"type": "i32", "value": "44"}]}, - {"type": "assert_return", "line": 450, "action": {"type": "invoke", "field": "as-convert-operand", "args": []}, "expected": [{"type": "i32", "value": "41"}]}, - {"type": "assert_return", "line": 452, "action": {"type": "invoke", "field": "as-memory.grow-size", "args": []}, "expected": [{"type": "i32", "value": "40"}]}, - {"type": "assert_return", "line": 454, "action": {"type": "invoke", "field": "nested-block-value", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 455, "action": {"type": "invoke", "field": "nested-br-value", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 456, "action": {"type": "invoke", "field": "nested-br_if-value", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 457, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 458, "action": {"type": "invoke", "field": "nested-br_table-value", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 459, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_invalid", "line": 462, "filename": "br.1.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 469, "filename": "br.2.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 475, "filename": "br.3.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 481, "filename": "br.4.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 488, "filename": "br.5.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 497, "filename": "br.6.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 506, "filename": "br.7.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 515, "filename": "br.8.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 526, "filename": "br.9.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 537, "filename": "br.10.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 549, "filename": "br.11.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 565, "filename": "br.12.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 577, "filename": "br.13.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 589, "filename": "br.14.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 601, "filename": "br.15.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 613, "filename": "br.16.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 625, "filename": "br.17.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 638, "filename": "br.18.wasm", "text": "unknown label", "module_type": "binary"}, - {"type": "assert_invalid", "line": 642, "filename": "br.19.wasm", "text": "unknown label", "module_type": "binary"}, - {"type": "assert_invalid", "line": 646, "filename": "br.20.wasm", "text": "unknown label", "module_type": "binary"}]} + {"type": "assert_return", "line": 374, "action": {"type": "invoke", "field": "type-i32", "args": []}, "expected": []}, + {"type": "assert_return", "line": 375, "action": {"type": "invoke", "field": "type-i64", "args": []}, "expected": []}, + {"type": "assert_return", "line": 376, "action": {"type": "invoke", "field": "type-f32", "args": []}, "expected": []}, + {"type": "assert_return", "line": 377, "action": {"type": "invoke", "field": "type-f64", "args": []}, "expected": []}, + {"type": "assert_return", "line": 378, "action": {"type": "invoke", "field": "type-i32-i32", "args": []}, "expected": []}, + {"type": "assert_return", "line": 379, "action": {"type": "invoke", "field": "type-i64-i64", "args": []}, "expected": []}, + {"type": "assert_return", "line": 380, "action": {"type": "invoke", "field": "type-f32-f32", "args": []}, "expected": []}, + {"type": "assert_return", "line": 381, "action": {"type": "invoke", "field": "type-f64-f64", "args": []}, "expected": []}, + {"type": "assert_return", "line": 383, "action": {"type": "invoke", "field": "type-i32-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 384, "action": {"type": "invoke", "field": "type-i64-value", "args": []}, "expected": [{"type": "i64", "value": "2"}]}, + {"type": "assert_return", "line": 385, "action": {"type": "invoke", "field": "type-f32-value", "args": []}, "expected": [{"type": "f32", "value": "1077936128"}]}, + {"type": "assert_return", "line": 386, "action": {"type": "invoke", "field": "type-f64-value", "args": []}, "expected": [{"type": "f64", "value": "4616189618054758400"}]}, + {"type": "assert_return", "line": 390, "action": {"type": "invoke", "field": "as-block-first", "args": []}, "expected": []}, + {"type": "assert_return", "line": 391, "action": {"type": "invoke", "field": "as-block-mid", "args": []}, "expected": []}, + {"type": "assert_return", "line": 392, "action": {"type": "invoke", "field": "as-block-last", "args": []}, "expected": []}, + {"type": "assert_return", "line": 393, "action": {"type": "invoke", "field": "as-block-value", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 395, "action": {"type": "invoke", "field": "as-loop-first", "args": []}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 396, "action": {"type": "invoke", "field": "as-loop-mid", "args": []}, "expected": [{"type": "i32", "value": "4"}]}, + {"type": "assert_return", "line": 397, "action": {"type": "invoke", "field": "as-loop-last", "args": []}, "expected": [{"type": "i32", "value": "5"}]}, + {"type": "assert_return", "line": 399, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 401, "action": {"type": "invoke", "field": "as-br_if-cond", "args": []}, "expected": []}, + {"type": "assert_return", "line": 402, "action": {"type": "invoke", "field": "as-br_if-value", "args": []}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 403, "action": {"type": "invoke", "field": "as-br_if-value-cond", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 405, "action": {"type": "invoke", "field": "as-br_table-index", "args": []}, "expected": []}, + {"type": "assert_return", "line": 406, "action": {"type": "invoke", "field": "as-br_table-value", "args": []}, "expected": [{"type": "i32", "value": "10"}]}, + {"type": "assert_return", "line": 407, "action": {"type": "invoke", "field": "as-br_table-value-index", "args": []}, "expected": [{"type": "i32", "value": "11"}]}, + {"type": "assert_return", "line": 409, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i64", "value": "7"}]}, + {"type": "assert_return", "line": 413, "action": {"type": "invoke", "field": "as-if-cond", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 414, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 415, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 416, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "4"}]}, + {"type": "assert_return", "line": 417, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 419, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "5"}]}, + {"type": "assert_return", "line": 420, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "5"}]}, + {"type": "assert_return", "line": 421, "action": {"type": "invoke", "field": "as-select-second", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 422, "action": {"type": "invoke", "field": "as-select-second", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 423, "action": {"type": "invoke", "field": "as-select-cond", "args": []}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 424, "action": {"type": "invoke", "field": "as-select-all", "args": []}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 426, "action": {"type": "invoke", "field": "as-call-first", "args": []}, "expected": [{"type": "i32", "value": "12"}]}, + {"type": "assert_return", "line": 427, "action": {"type": "invoke", "field": "as-call-mid", "args": []}, "expected": [{"type": "i32", "value": "13"}]}, + {"type": "assert_return", "line": 428, "action": {"type": "invoke", "field": "as-call-last", "args": []}, "expected": [{"type": "i32", "value": "14"}]}, + {"type": "assert_return", "line": 429, "action": {"type": "invoke", "field": "as-call-all", "args": []}, "expected": [{"type": "i32", "value": "15"}]}, + {"type": "assert_return", "line": 431, "action": {"type": "invoke", "field": "as-call_indirect-func", "args": []}, "expected": [{"type": "i32", "value": "20"}]}, + {"type": "assert_return", "line": 432, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": []}, "expected": [{"type": "i32", "value": "21"}]}, + {"type": "assert_return", "line": 433, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": []}, "expected": [{"type": "i32", "value": "22"}]}, + {"type": "assert_return", "line": 434, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": []}, "expected": [{"type": "i32", "value": "23"}]}, + {"type": "assert_return", "line": 435, "action": {"type": "invoke", "field": "as-call_indirect-all", "args": []}, "expected": [{"type": "i32", "value": "24"}]}, + {"type": "assert_return", "line": 437, "action": {"type": "invoke", "field": "as-local.set-value", "args": []}, "expected": [{"type": "i32", "value": "17"}]}, + {"type": "assert_return", "line": 438, "action": {"type": "invoke", "field": "as-local.tee-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 439, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 441, "action": {"type": "invoke", "field": "as-load-address", "args": []}, "expected": [{"type": "f32", "value": "1071225242"}]}, + {"type": "assert_return", "line": 442, "action": {"type": "invoke", "field": "as-loadN-address", "args": []}, "expected": [{"type": "i64", "value": "30"}]}, + {"type": "assert_return", "line": 444, "action": {"type": "invoke", "field": "as-store-address", "args": []}, "expected": [{"type": "i32", "value": "30"}]}, + {"type": "assert_return", "line": 445, "action": {"type": "invoke", "field": "as-store-value", "args": []}, "expected": [{"type": "i32", "value": "31"}]}, + {"type": "assert_return", "line": 446, "action": {"type": "invoke", "field": "as-store-both", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, + {"type": "assert_return", "line": 447, "action": {"type": "invoke", "field": "as-storeN-address", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, + {"type": "assert_return", "line": 448, "action": {"type": "invoke", "field": "as-storeN-value", "args": []}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 449, "action": {"type": "invoke", "field": "as-storeN-both", "args": []}, "expected": [{"type": "i32", "value": "34"}]}, + {"type": "assert_return", "line": 451, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "f32", "value": "1079613850"}]}, + {"type": "assert_return", "line": 453, "action": {"type": "invoke", "field": "as-binary-left", "args": []}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 454, "action": {"type": "invoke", "field": "as-binary-right", "args": []}, "expected": [{"type": "i64", "value": "45"}]}, + {"type": "assert_return", "line": 455, "action": {"type": "invoke", "field": "as-binary-both", "args": []}, "expected": [{"type": "i32", "value": "46"}]}, + {"type": "assert_return", "line": 457, "action": {"type": "invoke", "field": "as-test-operand", "args": []}, "expected": [{"type": "i32", "value": "44"}]}, + {"type": "assert_return", "line": 459, "action": {"type": "invoke", "field": "as-compare-left", "args": []}, "expected": [{"type": "i32", "value": "43"}]}, + {"type": "assert_return", "line": 460, "action": {"type": "invoke", "field": "as-compare-right", "args": []}, "expected": [{"type": "i32", "value": "42"}]}, + {"type": "assert_return", "line": 461, "action": {"type": "invoke", "field": "as-compare-both", "args": []}, "expected": [{"type": "i32", "value": "44"}]}, + {"type": "assert_return", "line": 463, "action": {"type": "invoke", "field": "as-convert-operand", "args": []}, "expected": [{"type": "i32", "value": "41"}]}, + {"type": "assert_return", "line": 465, "action": {"type": "invoke", "field": "as-memory.grow-size", "args": []}, "expected": [{"type": "i32", "value": "40"}]}, + {"type": "assert_return", "line": 467, "action": {"type": "invoke", "field": "nested-block-value", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 468, "action": {"type": "invoke", "field": "nested-br-value", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 469, "action": {"type": "invoke", "field": "nested-br_if-value", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 470, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 471, "action": {"type": "invoke", "field": "nested-br_table-value", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 472, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_invalid", "line": 475, "filename": "br.1.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 482, "filename": "br.2.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 488, "filename": "br.3.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 494, "filename": "br.4.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 501, "filename": "br.5.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 510, "filename": "br.6.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 519, "filename": "br.7.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 528, "filename": "br.8.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 539, "filename": "br.9.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 550, "filename": "br.10.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 562, "filename": "br.11.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 578, "filename": "br.12.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 590, "filename": "br.13.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 602, "filename": "br.14.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 614, "filename": "br.15.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 626, "filename": "br.16.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 638, "filename": "br.17.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 651, "filename": "br.18.wasm", "text": "unknown label", "module_type": "binary"}, + {"type": "assert_invalid", "line": 655, "filename": "br.19.wasm", "text": "unknown label", "module_type": "binary"}, + {"type": "assert_invalid", "line": 659, "filename": "br.20.wasm", "text": "unknown label", "module_type": "binary"}]} diff --git a/tests/gen/br_table.0.wasm b/tests/gen/br_table.0.wasm index b26491fc..4460c120 100644 Binary files a/tests/gen/br_table.0.wasm and b/tests/gen/br_table.0.wasm differ diff --git a/tests/gen/br_table.json b/tests/gen/br_table.json index 9019b897..85047565 100644 --- a/tests/gen/br_table.json +++ b/tests/gen/br_table.json @@ -1,173 +1,173 @@ {"source_filename": "br_table.wast", "commands": [ - {"type": "module", "line": 4, "filename": "br_table.0.wasm"}, - {"type": "assert_return", "line": 1248, "action": {"type": "invoke", "field": "type-i32", "args": []}, "expected": []}, - {"type": "assert_return", "line": 1249, "action": {"type": "invoke", "field": "type-i64", "args": []}, "expected": []}, - {"type": "assert_return", "line": 1250, "action": {"type": "invoke", "field": "type-f32", "args": []}, "expected": []}, - {"type": "assert_return", "line": 1251, "action": {"type": "invoke", "field": "type-f64", "args": []}, "expected": []}, - {"type": "assert_return", "line": 1253, "action": {"type": "invoke", "field": "type-i32-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1254, "action": {"type": "invoke", "field": "type-i64-value", "args": []}, "expected": [{"type": "i64", "value": "2"}]}, - {"type": "assert_return", "line": 1255, "action": {"type": "invoke", "field": "type-f32-value", "args": []}, "expected": [{"type": "f32", "value": "1077936128"}]}, - {"type": "assert_return", "line": 1256, "action": {"type": "invoke", "field": "type-f64-value", "args": []}, "expected": [{"type": "f64", "value": "4616189618054758400"}]}, - {"type": "assert_return", "line": 1258, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "22"}]}, - {"type": "assert_return", "line": 1259, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "22"}]}, - {"type": "assert_return", "line": 1260, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "22"}]}, - {"type": "assert_return", "line": 1261, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "22"}]}, - {"type": "assert_return", "line": 1262, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "4294967196"}]}, "expected": [{"type": "i32", "value": "22"}]}, - {"type": "assert_return", "line": 1263, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "22"}]}, - {"type": "assert_return", "line": 1265, "action": {"type": "invoke", "field": "empty-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 1266, "action": {"type": "invoke", "field": "empty-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 1267, "action": {"type": "invoke", "field": "empty-value", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 1268, "action": {"type": "invoke", "field": "empty-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 1269, "action": {"type": "invoke", "field": "empty-value", "args": [{"type": "i32", "value": "4294967196"}]}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 1270, "action": {"type": "invoke", "field": "empty-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 1272, "action": {"type": "invoke", "field": "singleton", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "22"}]}, - {"type": "assert_return", "line": 1273, "action": {"type": "invoke", "field": "singleton", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "20"}]}, - {"type": "assert_return", "line": 1274, "action": {"type": "invoke", "field": "singleton", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "20"}]}, - {"type": "assert_return", "line": 1275, "action": {"type": "invoke", "field": "singleton", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "20"}]}, - {"type": "assert_return", "line": 1276, "action": {"type": "invoke", "field": "singleton", "args": [{"type": "i32", "value": "4294967196"}]}, "expected": [{"type": "i32", "value": "20"}]}, - {"type": "assert_return", "line": 1277, "action": {"type": "invoke", "field": "singleton", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "20"}]}, - {"type": "assert_return", "line": 1279, "action": {"type": "invoke", "field": "singleton-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "32"}]}, - {"type": "assert_return", "line": 1280, "action": {"type": "invoke", "field": "singleton-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 1281, "action": {"type": "invoke", "field": "singleton-value", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 1282, "action": {"type": "invoke", "field": "singleton-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 1283, "action": {"type": "invoke", "field": "singleton-value", "args": [{"type": "i32", "value": "4294967196"}]}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 1284, "action": {"type": "invoke", "field": "singleton-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 1286, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "103"}]}, - {"type": "assert_return", "line": 1287, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "102"}]}, - {"type": "assert_return", "line": 1288, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "101"}]}, - {"type": "assert_return", "line": 1289, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "100"}]}, - {"type": "assert_return", "line": 1290, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "i32", "value": "104"}]}, - {"type": "assert_return", "line": 1291, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i32", "value": "104"}]}, - {"type": "assert_return", "line": 1292, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "104"}]}, - {"type": "assert_return", "line": 1293, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "104"}]}, - {"type": "assert_return", "line": 1294, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "104"}]}, - {"type": "assert_return", "line": 1295, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "104"}]}, - {"type": "assert_return", "line": 1297, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "213"}]}, - {"type": "assert_return", "line": 1298, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "212"}]}, - {"type": "assert_return", "line": 1299, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "211"}]}, - {"type": "assert_return", "line": 1300, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "210"}]}, - {"type": "assert_return", "line": 1301, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "i32", "value": "214"}]}, - {"type": "assert_return", "line": 1302, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i32", "value": "214"}]}, - {"type": "assert_return", "line": 1303, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "214"}]}, - {"type": "assert_return", "line": 1304, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "214"}]}, - {"type": "assert_return", "line": 1305, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "214"}]}, - {"type": "assert_return", "line": 1306, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "214"}]}, - {"type": "assert_return", "line": 1308, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 1309, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1310, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "100"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 1311, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "101"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1312, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "10000"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 1313, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "10001"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1314, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "1000000"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1315, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "1000001"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1317, "action": {"type": "invoke", "field": "as-block-first", "args": []}, "expected": []}, - {"type": "assert_return", "line": 1318, "action": {"type": "invoke", "field": "as-block-mid", "args": []}, "expected": []}, - {"type": "assert_return", "line": 1319, "action": {"type": "invoke", "field": "as-block-last", "args": []}, "expected": []}, - {"type": "assert_return", "line": 1320, "action": {"type": "invoke", "field": "as-block-value", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 1322, "action": {"type": "invoke", "field": "as-loop-first", "args": []}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 1323, "action": {"type": "invoke", "field": "as-loop-mid", "args": []}, "expected": [{"type": "i32", "value": "4"}]}, - {"type": "assert_return", "line": 1324, "action": {"type": "invoke", "field": "as-loop-last", "args": []}, "expected": [{"type": "i32", "value": "5"}]}, - {"type": "assert_return", "line": 1326, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1328, "action": {"type": "invoke", "field": "as-br_if-cond", "args": []}, "expected": []}, - {"type": "assert_return", "line": 1329, "action": {"type": "invoke", "field": "as-br_if-value", "args": []}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 1330, "action": {"type": "invoke", "field": "as-br_if-value-cond", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1332, "action": {"type": "invoke", "field": "as-br_table-index", "args": []}, "expected": []}, - {"type": "assert_return", "line": 1333, "action": {"type": "invoke", "field": "as-br_table-value", "args": []}, "expected": [{"type": "i32", "value": "10"}]}, - {"type": "assert_return", "line": 1334, "action": {"type": "invoke", "field": "as-br_table-value-index", "args": []}, "expected": [{"type": "i32", "value": "11"}]}, - {"type": "assert_return", "line": 1336, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i64", "value": "7"}]}, - {"type": "assert_return", "line": 1338, "action": {"type": "invoke", "field": "as-if-cond", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 1339, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 1340, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 1341, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "4"}]}, - {"type": "assert_return", "line": 1342, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 1344, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "5"}]}, - {"type": "assert_return", "line": 1345, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "5"}]}, - {"type": "assert_return", "line": 1346, "action": {"type": "invoke", "field": "as-select-second", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 1347, "action": {"type": "invoke", "field": "as-select-second", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 1348, "action": {"type": "invoke", "field": "as-select-cond", "args": []}, "expected": [{"type": "i32", "value": "7"}]}, - {"type": "assert_return", "line": 1350, "action": {"type": "invoke", "field": "as-call-first", "args": []}, "expected": [{"type": "i32", "value": "12"}]}, - {"type": "assert_return", "line": 1351, "action": {"type": "invoke", "field": "as-call-mid", "args": []}, "expected": [{"type": "i32", "value": "13"}]}, - {"type": "assert_return", "line": 1352, "action": {"type": "invoke", "field": "as-call-last", "args": []}, "expected": [{"type": "i32", "value": "14"}]}, - {"type": "assert_return", "line": 1354, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": []}, "expected": [{"type": "i32", "value": "20"}]}, - {"type": "assert_return", "line": 1355, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": []}, "expected": [{"type": "i32", "value": "21"}]}, - {"type": "assert_return", "line": 1356, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": []}, "expected": [{"type": "i32", "value": "22"}]}, - {"type": "assert_return", "line": 1357, "action": {"type": "invoke", "field": "as-call_indirect-func", "args": []}, "expected": [{"type": "i32", "value": "23"}]}, - {"type": "assert_return", "line": 1359, "action": {"type": "invoke", "field": "as-local.set-value", "args": []}, "expected": [{"type": "i32", "value": "17"}]}, - {"type": "assert_return", "line": 1360, "action": {"type": "invoke", "field": "as-local.tee-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1361, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1363, "action": {"type": "invoke", "field": "as-load-address", "args": []}, "expected": [{"type": "f32", "value": "1071225242"}]}, - {"type": "assert_return", "line": 1364, "action": {"type": "invoke", "field": "as-loadN-address", "args": []}, "expected": [{"type": "i64", "value": "30"}]}, - {"type": "assert_return", "line": 1366, "action": {"type": "invoke", "field": "as-store-address", "args": []}, "expected": [{"type": "i32", "value": "30"}]}, - {"type": "assert_return", "line": 1367, "action": {"type": "invoke", "field": "as-store-value", "args": []}, "expected": [{"type": "i32", "value": "31"}]}, - {"type": "assert_return", "line": 1368, "action": {"type": "invoke", "field": "as-storeN-address", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, - {"type": "assert_return", "line": 1369, "action": {"type": "invoke", "field": "as-storeN-value", "args": []}, "expected": [{"type": "i32", "value": "33"}]}, - {"type": "assert_return", "line": 1371, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "f32", "value": "1079613850"}]}, - {"type": "assert_return", "line": 1373, "action": {"type": "invoke", "field": "as-binary-left", "args": []}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 1374, "action": {"type": "invoke", "field": "as-binary-right", "args": []}, "expected": [{"type": "i64", "value": "45"}]}, - {"type": "assert_return", "line": 1376, "action": {"type": "invoke", "field": "as-test-operand", "args": []}, "expected": [{"type": "i32", "value": "44"}]}, - {"type": "assert_return", "line": 1378, "action": {"type": "invoke", "field": "as-compare-left", "args": []}, "expected": [{"type": "i32", "value": "43"}]}, - {"type": "assert_return", "line": 1379, "action": {"type": "invoke", "field": "as-compare-right", "args": []}, "expected": [{"type": "i32", "value": "42"}]}, - {"type": "assert_return", "line": 1381, "action": {"type": "invoke", "field": "as-convert-operand", "args": []}, "expected": [{"type": "i32", "value": "41"}]}, - {"type": "assert_return", "line": 1383, "action": {"type": "invoke", "field": "as-memory.grow-size", "args": []}, "expected": [{"type": "i32", "value": "40"}]}, - {"type": "assert_return", "line": 1385, "action": {"type": "invoke", "field": "nested-block-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "19"}]}, - {"type": "assert_return", "line": 1386, "action": {"type": "invoke", "field": "nested-block-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "17"}]}, - {"type": "assert_return", "line": 1387, "action": {"type": "invoke", "field": "nested-block-value", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "16"}]}, - {"type": "assert_return", "line": 1388, "action": {"type": "invoke", "field": "nested-block-value", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "16"}]}, - {"type": "assert_return", "line": 1389, "action": {"type": "invoke", "field": "nested-block-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "16"}]}, - {"type": "assert_return", "line": 1390, "action": {"type": "invoke", "field": "nested-block-value", "args": [{"type": "i32", "value": "100000"}]}, "expected": [{"type": "i32", "value": "16"}]}, - {"type": "assert_return", "line": 1392, "action": {"type": "invoke", "field": "nested-br-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 1393, "action": {"type": "invoke", "field": "nested-br-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1394, "action": {"type": "invoke", "field": "nested-br-value", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "17"}]}, - {"type": "assert_return", "line": 1395, "action": {"type": "invoke", "field": "nested-br-value", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "17"}]}, - {"type": "assert_return", "line": 1396, "action": {"type": "invoke", "field": "nested-br-value", "args": [{"type": "i32", "value": "4294967292"}]}, "expected": [{"type": "i32", "value": "17"}]}, - {"type": "assert_return", "line": 1397, "action": {"type": "invoke", "field": "nested-br-value", "args": [{"type": "i32", "value": "10213210"}]}, "expected": [{"type": "i32", "value": "17"}]}, - {"type": "assert_return", "line": 1399, "action": {"type": "invoke", "field": "nested-br_if-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "17"}]}, - {"type": "assert_return", "line": 1400, "action": {"type": "invoke", "field": "nested-br_if-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1401, "action": {"type": "invoke", "field": "nested-br_if-value", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 1402, "action": {"type": "invoke", "field": "nested-br_if-value", "args": [{"type": "i32", "value": "9"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 1403, "action": {"type": "invoke", "field": "nested-br_if-value", "args": [{"type": "i32", "value": "4294967287"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 1404, "action": {"type": "invoke", "field": "nested-br_if-value", "args": [{"type": "i32", "value": "999999"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 1406, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1407, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 1408, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1409, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": [{"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1410, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": [{"type": "i32", "value": "4293967296"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1411, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": [{"type": "i32", "value": "9423975"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1413, "action": {"type": "invoke", "field": "nested-br_table-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "17"}]}, - {"type": "assert_return", "line": 1414, "action": {"type": "invoke", "field": "nested-br_table-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1415, "action": {"type": "invoke", "field": "nested-br_table-value", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 1416, "action": {"type": "invoke", "field": "nested-br_table-value", "args": [{"type": "i32", "value": "9"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 1417, "action": {"type": "invoke", "field": "nested-br_table-value", "args": [{"type": "i32", "value": "4294967287"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 1418, "action": {"type": "invoke", "field": "nested-br_table-value", "args": [{"type": "i32", "value": "999999"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 1420, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1421, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 1422, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1423, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": [{"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1424, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": [{"type": "i32", "value": "4293967296"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1425, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": [{"type": "i32", "value": "9423975"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 1427, "action": {"type": "invoke", "field": "nested-br_table-loop-block", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_invalid", "line": 1430, "filename": "br_table.1.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1437, "filename": "br_table.2.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1444, "filename": "br_table.3.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1450, "filename": "br_table.4.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1458, "filename": "br_table.5.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1469, "filename": "br_table.6.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1480, "filename": "br_table.7.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1486, "filename": "br_table.8.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1492, "filename": "br_table.9.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1498, "filename": "br_table.10.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1504, "filename": "br_table.11.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1513, "filename": "br_table.12.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1520, "filename": "br_table.13.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1532, "filename": "br_table.14.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1544, "filename": "br_table.15.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1555, "filename": "br_table.16.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1567, "filename": "br_table.17.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1579, "filename": "br_table.18.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1593, "filename": "br_table.19.wasm", "text": "unknown label", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1599, "filename": "br_table.20.wasm", "text": "unknown label", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1605, "filename": "br_table.21.wasm", "text": "unknown label", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1612, "filename": "br_table.22.wasm", "text": "unknown label", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1618, "filename": "br_table.23.wasm", "text": "unknown label", "module_type": "binary"}, - {"type": "assert_invalid", "line": 1624, "filename": "br_table.24.wasm", "text": "unknown label", "module_type": "binary"}]} + {"type": "module", "line": 3, "filename": "br_table.0.wasm"}, + {"type": "assert_return", "line": 1007, "action": {"type": "invoke", "field": "type-i32", "args": []}, "expected": []}, + {"type": "assert_return", "line": 1008, "action": {"type": "invoke", "field": "type-i64", "args": []}, "expected": []}, + {"type": "assert_return", "line": 1009, "action": {"type": "invoke", "field": "type-f32", "args": []}, "expected": []}, + {"type": "assert_return", "line": 1010, "action": {"type": "invoke", "field": "type-f64", "args": []}, "expected": []}, + {"type": "assert_return", "line": 1012, "action": {"type": "invoke", "field": "type-i32-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1013, "action": {"type": "invoke", "field": "type-i64-value", "args": []}, "expected": [{"type": "i64", "value": "2"}]}, + {"type": "assert_return", "line": 1014, "action": {"type": "invoke", "field": "type-f32-value", "args": []}, "expected": [{"type": "f32", "value": "1077936128"}]}, + {"type": "assert_return", "line": 1015, "action": {"type": "invoke", "field": "type-f64-value", "args": []}, "expected": [{"type": "f64", "value": "4616189618054758400"}]}, + {"type": "assert_return", "line": 1017, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "22"}]}, + {"type": "assert_return", "line": 1018, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "22"}]}, + {"type": "assert_return", "line": 1019, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "22"}]}, + {"type": "assert_return", "line": 1020, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "22"}]}, + {"type": "assert_return", "line": 1021, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "4294967196"}]}, "expected": [{"type": "i32", "value": "22"}]}, + {"type": "assert_return", "line": 1022, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "22"}]}, + {"type": "assert_return", "line": 1024, "action": {"type": "invoke", "field": "empty-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 1025, "action": {"type": "invoke", "field": "empty-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 1026, "action": {"type": "invoke", "field": "empty-value", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 1027, "action": {"type": "invoke", "field": "empty-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 1028, "action": {"type": "invoke", "field": "empty-value", "args": [{"type": "i32", "value": "4294967196"}]}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 1029, "action": {"type": "invoke", "field": "empty-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 1031, "action": {"type": "invoke", "field": "singleton", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "22"}]}, + {"type": "assert_return", "line": 1032, "action": {"type": "invoke", "field": "singleton", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "20"}]}, + {"type": "assert_return", "line": 1033, "action": {"type": "invoke", "field": "singleton", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "20"}]}, + {"type": "assert_return", "line": 1034, "action": {"type": "invoke", "field": "singleton", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "20"}]}, + {"type": "assert_return", "line": 1035, "action": {"type": "invoke", "field": "singleton", "args": [{"type": "i32", "value": "4294967196"}]}, "expected": [{"type": "i32", "value": "20"}]}, + {"type": "assert_return", "line": 1036, "action": {"type": "invoke", "field": "singleton", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "20"}]}, + {"type": "assert_return", "line": 1038, "action": {"type": "invoke", "field": "singleton-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "32"}]}, + {"type": "assert_return", "line": 1039, "action": {"type": "invoke", "field": "singleton-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 1040, "action": {"type": "invoke", "field": "singleton-value", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 1041, "action": {"type": "invoke", "field": "singleton-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 1042, "action": {"type": "invoke", "field": "singleton-value", "args": [{"type": "i32", "value": "4294967196"}]}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 1043, "action": {"type": "invoke", "field": "singleton-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 1045, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "103"}]}, + {"type": "assert_return", "line": 1046, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "102"}]}, + {"type": "assert_return", "line": 1047, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "101"}]}, + {"type": "assert_return", "line": 1048, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "100"}]}, + {"type": "assert_return", "line": 1049, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "i32", "value": "104"}]}, + {"type": "assert_return", "line": 1050, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i32", "value": "104"}]}, + {"type": "assert_return", "line": 1051, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "104"}]}, + {"type": "assert_return", "line": 1052, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "104"}]}, + {"type": "assert_return", "line": 1053, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "104"}]}, + {"type": "assert_return", "line": 1054, "action": {"type": "invoke", "field": "multiple", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "104"}]}, + {"type": "assert_return", "line": 1056, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "213"}]}, + {"type": "assert_return", "line": 1057, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "212"}]}, + {"type": "assert_return", "line": 1058, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "211"}]}, + {"type": "assert_return", "line": 1059, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "210"}]}, + {"type": "assert_return", "line": 1060, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "i32", "value": "214"}]}, + {"type": "assert_return", "line": 1061, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i32", "value": "214"}]}, + {"type": "assert_return", "line": 1062, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "214"}]}, + {"type": "assert_return", "line": 1063, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "214"}]}, + {"type": "assert_return", "line": 1064, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "214"}]}, + {"type": "assert_return", "line": 1065, "action": {"type": "invoke", "field": "multiple-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "214"}]}, + {"type": "assert_return", "line": 1067, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 1068, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1069, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "100"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 1070, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "101"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1071, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "10000"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 1072, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "10001"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1073, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "1000000"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1074, "action": {"type": "invoke", "field": "large", "args": [{"type": "i32", "value": "1000001"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1076, "action": {"type": "invoke", "field": "as-block-first", "args": []}, "expected": []}, + {"type": "assert_return", "line": 1077, "action": {"type": "invoke", "field": "as-block-mid", "args": []}, "expected": []}, + {"type": "assert_return", "line": 1078, "action": {"type": "invoke", "field": "as-block-last", "args": []}, "expected": []}, + {"type": "assert_return", "line": 1079, "action": {"type": "invoke", "field": "as-block-value", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 1081, "action": {"type": "invoke", "field": "as-loop-first", "args": []}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 1082, "action": {"type": "invoke", "field": "as-loop-mid", "args": []}, "expected": [{"type": "i32", "value": "4"}]}, + {"type": "assert_return", "line": 1083, "action": {"type": "invoke", "field": "as-loop-last", "args": []}, "expected": [{"type": "i32", "value": "5"}]}, + {"type": "assert_return", "line": 1085, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1087, "action": {"type": "invoke", "field": "as-br_if-cond", "args": []}, "expected": []}, + {"type": "assert_return", "line": 1088, "action": {"type": "invoke", "field": "as-br_if-value", "args": []}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 1089, "action": {"type": "invoke", "field": "as-br_if-value-cond", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1091, "action": {"type": "invoke", "field": "as-br_table-index", "args": []}, "expected": []}, + {"type": "assert_return", "line": 1092, "action": {"type": "invoke", "field": "as-br_table-value", "args": []}, "expected": [{"type": "i32", "value": "10"}]}, + {"type": "assert_return", "line": 1093, "action": {"type": "invoke", "field": "as-br_table-value-index", "args": []}, "expected": [{"type": "i32", "value": "11"}]}, + {"type": "assert_return", "line": 1095, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i64", "value": "7"}]}, + {"type": "assert_return", "line": 1097, "action": {"type": "invoke", "field": "as-if-cond", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 1098, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 1099, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 1100, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "4"}]}, + {"type": "assert_return", "line": 1101, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 1103, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "5"}]}, + {"type": "assert_return", "line": 1104, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "5"}]}, + {"type": "assert_return", "line": 1105, "action": {"type": "invoke", "field": "as-select-second", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 1106, "action": {"type": "invoke", "field": "as-select-second", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 1107, "action": {"type": "invoke", "field": "as-select-cond", "args": []}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 1109, "action": {"type": "invoke", "field": "as-call-first", "args": []}, "expected": [{"type": "i32", "value": "12"}]}, + {"type": "assert_return", "line": 1110, "action": {"type": "invoke", "field": "as-call-mid", "args": []}, "expected": [{"type": "i32", "value": "13"}]}, + {"type": "assert_return", "line": 1111, "action": {"type": "invoke", "field": "as-call-last", "args": []}, "expected": [{"type": "i32", "value": "14"}]}, + {"type": "assert_return", "line": 1113, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": []}, "expected": [{"type": "i32", "value": "20"}]}, + {"type": "assert_return", "line": 1114, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": []}, "expected": [{"type": "i32", "value": "21"}]}, + {"type": "assert_return", "line": 1115, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": []}, "expected": [{"type": "i32", "value": "22"}]}, + {"type": "assert_return", "line": 1116, "action": {"type": "invoke", "field": "as-call_indirect-func", "args": []}, "expected": [{"type": "i32", "value": "23"}]}, + {"type": "assert_return", "line": 1118, "action": {"type": "invoke", "field": "as-local.set-value", "args": []}, "expected": [{"type": "i32", "value": "17"}]}, + {"type": "assert_return", "line": 1119, "action": {"type": "invoke", "field": "as-local.tee-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1120, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1122, "action": {"type": "invoke", "field": "as-load-address", "args": []}, "expected": [{"type": "f32", "value": "1071225242"}]}, + {"type": "assert_return", "line": 1123, "action": {"type": "invoke", "field": "as-loadN-address", "args": []}, "expected": [{"type": "i64", "value": "30"}]}, + {"type": "assert_return", "line": 1125, "action": {"type": "invoke", "field": "as-store-address", "args": []}, "expected": [{"type": "i32", "value": "30"}]}, + {"type": "assert_return", "line": 1126, "action": {"type": "invoke", "field": "as-store-value", "args": []}, "expected": [{"type": "i32", "value": "31"}]}, + {"type": "assert_return", "line": 1127, "action": {"type": "invoke", "field": "as-storeN-address", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, + {"type": "assert_return", "line": 1128, "action": {"type": "invoke", "field": "as-storeN-value", "args": []}, "expected": [{"type": "i32", "value": "33"}]}, + {"type": "assert_return", "line": 1130, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "f32", "value": "1079613850"}]}, + {"type": "assert_return", "line": 1132, "action": {"type": "invoke", "field": "as-binary-left", "args": []}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 1133, "action": {"type": "invoke", "field": "as-binary-right", "args": []}, "expected": [{"type": "i64", "value": "45"}]}, + {"type": "assert_return", "line": 1135, "action": {"type": "invoke", "field": "as-test-operand", "args": []}, "expected": [{"type": "i32", "value": "44"}]}, + {"type": "assert_return", "line": 1137, "action": {"type": "invoke", "field": "as-compare-left", "args": []}, "expected": [{"type": "i32", "value": "43"}]}, + {"type": "assert_return", "line": 1138, "action": {"type": "invoke", "field": "as-compare-right", "args": []}, "expected": [{"type": "i32", "value": "42"}]}, + {"type": "assert_return", "line": 1140, "action": {"type": "invoke", "field": "as-convert-operand", "args": []}, "expected": [{"type": "i32", "value": "41"}]}, + {"type": "assert_return", "line": 1142, "action": {"type": "invoke", "field": "as-memory.grow-size", "args": []}, "expected": [{"type": "i32", "value": "40"}]}, + {"type": "assert_return", "line": 1144, "action": {"type": "invoke", "field": "nested-block-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "19"}]}, + {"type": "assert_return", "line": 1145, "action": {"type": "invoke", "field": "nested-block-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "17"}]}, + {"type": "assert_return", "line": 1146, "action": {"type": "invoke", "field": "nested-block-value", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "16"}]}, + {"type": "assert_return", "line": 1147, "action": {"type": "invoke", "field": "nested-block-value", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "16"}]}, + {"type": "assert_return", "line": 1148, "action": {"type": "invoke", "field": "nested-block-value", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "16"}]}, + {"type": "assert_return", "line": 1149, "action": {"type": "invoke", "field": "nested-block-value", "args": [{"type": "i32", "value": "100000"}]}, "expected": [{"type": "i32", "value": "16"}]}, + {"type": "assert_return", "line": 1151, "action": {"type": "invoke", "field": "nested-br-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 1152, "action": {"type": "invoke", "field": "nested-br-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1153, "action": {"type": "invoke", "field": "nested-br-value", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "17"}]}, + {"type": "assert_return", "line": 1154, "action": {"type": "invoke", "field": "nested-br-value", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "17"}]}, + {"type": "assert_return", "line": 1155, "action": {"type": "invoke", "field": "nested-br-value", "args": [{"type": "i32", "value": "4294967292"}]}, "expected": [{"type": "i32", "value": "17"}]}, + {"type": "assert_return", "line": 1156, "action": {"type": "invoke", "field": "nested-br-value", "args": [{"type": "i32", "value": "10213210"}]}, "expected": [{"type": "i32", "value": "17"}]}, + {"type": "assert_return", "line": 1158, "action": {"type": "invoke", "field": "nested-br_if-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "17"}]}, + {"type": "assert_return", "line": 1159, "action": {"type": "invoke", "field": "nested-br_if-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1160, "action": {"type": "invoke", "field": "nested-br_if-value", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 1161, "action": {"type": "invoke", "field": "nested-br_if-value", "args": [{"type": "i32", "value": "9"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 1162, "action": {"type": "invoke", "field": "nested-br_if-value", "args": [{"type": "i32", "value": "4294967287"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 1163, "action": {"type": "invoke", "field": "nested-br_if-value", "args": [{"type": "i32", "value": "999999"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 1165, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1166, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 1167, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1168, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": [{"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1169, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": [{"type": "i32", "value": "4293967296"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1170, "action": {"type": "invoke", "field": "nested-br_if-value-cond", "args": [{"type": "i32", "value": "9423975"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1172, "action": {"type": "invoke", "field": "nested-br_table-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "17"}]}, + {"type": "assert_return", "line": 1173, "action": {"type": "invoke", "field": "nested-br_table-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1174, "action": {"type": "invoke", "field": "nested-br_table-value", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 1175, "action": {"type": "invoke", "field": "nested-br_table-value", "args": [{"type": "i32", "value": "9"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 1176, "action": {"type": "invoke", "field": "nested-br_table-value", "args": [{"type": "i32", "value": "4294967287"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 1177, "action": {"type": "invoke", "field": "nested-br_table-value", "args": [{"type": "i32", "value": "999999"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 1179, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1180, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 1181, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1182, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": [{"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1183, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": [{"type": "i32", "value": "4293967296"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1184, "action": {"type": "invoke", "field": "nested-br_table-value-index", "args": [{"type": "i32", "value": "9423975"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 1186, "action": {"type": "invoke", "field": "nested-br_table-loop-block", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_invalid", "line": 1194, "filename": "br_table.1.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1201, "filename": "br_table.2.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1208, "filename": "br_table.3.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1214, "filename": "br_table.4.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1222, "filename": "br_table.5.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1233, "filename": "br_table.6.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1244, "filename": "br_table.7.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1250, "filename": "br_table.8.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1256, "filename": "br_table.9.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1262, "filename": "br_table.10.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1268, "filename": "br_table.11.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1277, "filename": "br_table.12.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1284, "filename": "br_table.13.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1296, "filename": "br_table.14.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1308, "filename": "br_table.15.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1319, "filename": "br_table.16.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1331, "filename": "br_table.17.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1343, "filename": "br_table.18.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1357, "filename": "br_table.19.wasm", "text": "unknown label", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1363, "filename": "br_table.20.wasm", "text": "unknown label", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1369, "filename": "br_table.21.wasm", "text": "unknown label", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1376, "filename": "br_table.22.wasm", "text": "unknown label", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1382, "filename": "br_table.23.wasm", "text": "unknown label", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1388, "filename": "br_table.24.wasm", "text": "unknown label", "module_type": "binary"}]} diff --git a/tests/gen/call.json b/tests/gen/call.json index 15a74324..23a4cbc1 100644 --- a/tests/gen/call.json +++ b/tests/gen/call.json @@ -1,85 +1,85 @@ {"source_filename": "call.wast", "commands": [ {"type": "module", "line": 3, "filename": "call.0.wasm"}, - {"type": "assert_return", "line": 240, "action": {"type": "invoke", "field": "type-i32", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, - {"type": "assert_return", "line": 241, "action": {"type": "invoke", "field": "type-i64", "args": []}, "expected": [{"type": "i64", "value": "356"}]}, - {"type": "assert_return", "line": 242, "action": {"type": "invoke", "field": "type-f32", "args": []}, "expected": [{"type": "f32", "value": "1165172736"}]}, - {"type": "assert_return", "line": 243, "action": {"type": "invoke", "field": "type-f64", "args": []}, "expected": [{"type": "f64", "value": "4660882566700597248"}]}, - {"type": "assert_return", "line": 245, "action": {"type": "invoke", "field": "type-first-i32", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, - {"type": "assert_return", "line": 246, "action": {"type": "invoke", "field": "type-first-i64", "args": []}, "expected": [{"type": "i64", "value": "64"}]}, - {"type": "assert_return", "line": 247, "action": {"type": "invoke", "field": "type-first-f32", "args": []}, "expected": [{"type": "f32", "value": "1068037571"}]}, - {"type": "assert_return", "line": 248, "action": {"type": "invoke", "field": "type-first-f64", "args": []}, "expected": [{"type": "f64", "value": "4610064722561534525"}]}, - {"type": "assert_return", "line": 250, "action": {"type": "invoke", "field": "type-second-i32", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, - {"type": "assert_return", "line": 251, "action": {"type": "invoke", "field": "type-second-i64", "args": []}, "expected": [{"type": "i64", "value": "64"}]}, - {"type": "assert_return", "line": 252, "action": {"type": "invoke", "field": "type-second-f32", "args": []}, "expected": [{"type": "f32", "value": "1107296256"}]}, - {"type": "assert_return", "line": 253, "action": {"type": "invoke", "field": "type-second-f64", "args": []}, "expected": [{"type": "f64", "value": "4634211053438658150"}]}, - {"type": "assert_return", "line": 255, "action": {"type": "invoke", "field": "fac", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 256, "action": {"type": "invoke", "field": "fac", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 257, "action": {"type": "invoke", "field": "fac", "args": [{"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "120"}]}, - {"type": "assert_return", "line": 258, "action": {"type": "invoke", "field": "fac", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, - {"type": "assert_return", "line": 259, "action": {"type": "invoke", "field": "fac-acc", "args": [{"type": "i64", "value": "0"}, {"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 260, "action": {"type": "invoke", "field": "fac-acc", "args": [{"type": "i64", "value": "1"}, {"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 261, "action": {"type": "invoke", "field": "fac-acc", "args": [{"type": "i64", "value": "5"}, {"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "120"}]}, - {"type": "assert_return", "line": 263, "action": {"type": "invoke", "field": "fac-acc", "args": [{"type": "i64", "value": "25"}, {"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, - {"type": "assert_return", "line": 267, "action": {"type": "invoke", "field": "fib", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 268, "action": {"type": "invoke", "field": "fib", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 269, "action": {"type": "invoke", "field": "fib", "args": [{"type": "i64", "value": "2"}]}, "expected": [{"type": "i64", "value": "2"}]}, - {"type": "assert_return", "line": 270, "action": {"type": "invoke", "field": "fib", "args": [{"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "8"}]}, - {"type": "assert_return", "line": 271, "action": {"type": "invoke", "field": "fib", "args": [{"type": "i64", "value": "20"}]}, "expected": [{"type": "i64", "value": "10946"}]}, - {"type": "assert_return", "line": 273, "action": {"type": "invoke", "field": "even", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i32", "value": "44"}]}, - {"type": "assert_return", "line": 274, "action": {"type": "invoke", "field": "even", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i32", "value": "99"}]}, - {"type": "assert_return", "line": 275, "action": {"type": "invoke", "field": "even", "args": [{"type": "i64", "value": "100"}]}, "expected": [{"type": "i32", "value": "44"}]}, - {"type": "assert_return", "line": 276, "action": {"type": "invoke", "field": "even", "args": [{"type": "i64", "value": "77"}]}, "expected": [{"type": "i32", "value": "99"}]}, - {"type": "assert_return", "line": 277, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i32", "value": "99"}]}, - {"type": "assert_return", "line": 278, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i32", "value": "44"}]}, - {"type": "assert_return", "line": 279, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i64", "value": "200"}]}, "expected": [{"type": "i32", "value": "99"}]}, - {"type": "assert_return", "line": 280, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i64", "value": "77"}]}, "expected": [{"type": "i32", "value": "44"}]}, - {"type": "assert_exhaustion", "line": 282, "action": {"type": "invoke", "field": "runaway", "args": []}, "text": "call stack exhausted", "expected": []}, - {"type": "assert_exhaustion", "line": 283, "action": {"type": "invoke", "field": "mutual-runaway", "args": []}, "text": "call stack exhausted", "expected": []}, - {"type": "assert_return", "line": 285, "action": {"type": "invoke", "field": "as-select-first", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, - {"type": "assert_return", "line": 286, "action": {"type": "invoke", "field": "as-select-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 287, "action": {"type": "invoke", "field": "as-select-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 289, "action": {"type": "invoke", "field": "as-if-condition", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 291, "action": {"type": "invoke", "field": "as-br_if-first", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, - {"type": "assert_return", "line": 292, "action": {"type": "invoke", "field": "as-br_if-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 294, "action": {"type": "invoke", "field": "as-br_table-first", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, - {"type": "assert_return", "line": 295, "action": {"type": "invoke", "field": "as-br_table-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 297, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, - {"type": "assert_return", "line": 298, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_trap", "line": 299, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": []}, "text": "undefined element", "expected": [{"type": "i32"}]}, - {"type": "assert_return", "line": 301, "action": {"type": "invoke", "field": "as-store-first", "args": []}, "expected": []}, - {"type": "assert_return", "line": 302, "action": {"type": "invoke", "field": "as-store-last", "args": []}, "expected": []}, - {"type": "assert_return", "line": 304, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 305, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, - {"type": "assert_return", "line": 306, "action": {"type": "invoke", "field": "as-drop-operand", "args": []}, "expected": []}, - {"type": "assert_return", "line": 307, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, - {"type": "assert_return", "line": 308, "action": {"type": "invoke", "field": "as-local.set-value", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, - {"type": "assert_return", "line": 309, "action": {"type": "invoke", "field": "as-local.tee-value", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, - {"type": "assert_return", "line": 310, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, - {"type": "assert_return", "line": 311, "action": {"type": "invoke", "field": "as-load-operand", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 313, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 314, "action": {"type": "invoke", "field": "as-binary-left", "args": []}, "expected": [{"type": "i32", "value": "11"}]}, - {"type": "assert_return", "line": 315, "action": {"type": "invoke", "field": "as-binary-right", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 316, "action": {"type": "invoke", "field": "as-test-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 317, "action": {"type": "invoke", "field": "as-compare-left", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 318, "action": {"type": "invoke", "field": "as-compare-right", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 319, "action": {"type": "invoke", "field": "as-convert-operand", "args": []}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 321, "action": {"type": "invoke", "field": "return-from-long-argument-list", "args": [{"type": "i32", "value": "42"}]}, "expected": [{"type": "i32", "value": "42"}]}, - {"type": "assert_invalid", "line": 326, "filename": "call.1.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 333, "filename": "call.2.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 341, "filename": "call.3.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 348, "filename": "call.4.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 355, "filename": "call.5.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 362, "filename": "call.6.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 370, "filename": "call.7.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 377, "filename": "call.8.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 384, "filename": "call.9.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 391, "filename": "call.10.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 399, "filename": "call.11.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 408, "filename": "call.12.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 417, "filename": "call.13.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 426, "filename": "call.14.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 435, "filename": "call.15.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 444, "filename": "call.16.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 457, "filename": "call.17.wasm", "text": "unknown function", "module_type": "binary"}, - {"type": "assert_invalid", "line": 461, "filename": "call.18.wasm", "text": "unknown function", "module_type": "binary"}]} + {"type": "assert_return", "line": 289, "action": {"type": "invoke", "field": "type-i32", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, + {"type": "assert_return", "line": 290, "action": {"type": "invoke", "field": "type-i64", "args": []}, "expected": [{"type": "i64", "value": "356"}]}, + {"type": "assert_return", "line": 291, "action": {"type": "invoke", "field": "type-f32", "args": []}, "expected": [{"type": "f32", "value": "1165172736"}]}, + {"type": "assert_return", "line": 292, "action": {"type": "invoke", "field": "type-f64", "args": []}, "expected": [{"type": "f64", "value": "4660882566700597248"}]}, + {"type": "assert_return", "line": 296, "action": {"type": "invoke", "field": "type-first-i32", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, + {"type": "assert_return", "line": 297, "action": {"type": "invoke", "field": "type-first-i64", "args": []}, "expected": [{"type": "i64", "value": "64"}]}, + {"type": "assert_return", "line": 298, "action": {"type": "invoke", "field": "type-first-f32", "args": []}, "expected": [{"type": "f32", "value": "1068037571"}]}, + {"type": "assert_return", "line": 299, "action": {"type": "invoke", "field": "type-first-f64", "args": []}, "expected": [{"type": "f64", "value": "4610064722561534525"}]}, + {"type": "assert_return", "line": 301, "action": {"type": "invoke", "field": "type-second-i32", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, + {"type": "assert_return", "line": 302, "action": {"type": "invoke", "field": "type-second-i64", "args": []}, "expected": [{"type": "i64", "value": "64"}]}, + {"type": "assert_return", "line": 303, "action": {"type": "invoke", "field": "type-second-f32", "args": []}, "expected": [{"type": "f32", "value": "1107296256"}]}, + {"type": "assert_return", "line": 304, "action": {"type": "invoke", "field": "type-second-f64", "args": []}, "expected": [{"type": "f64", "value": "4634211053438658150"}]}, + {"type": "assert_return", "line": 316, "action": {"type": "invoke", "field": "fac", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 317, "action": {"type": "invoke", "field": "fac", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 318, "action": {"type": "invoke", "field": "fac", "args": [{"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "120"}]}, + {"type": "assert_return", "line": 319, "action": {"type": "invoke", "field": "fac", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, + {"type": "assert_return", "line": 320, "action": {"type": "invoke", "field": "fac-acc", "args": [{"type": "i64", "value": "0"}, {"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 321, "action": {"type": "invoke", "field": "fac-acc", "args": [{"type": "i64", "value": "1"}, {"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 322, "action": {"type": "invoke", "field": "fac-acc", "args": [{"type": "i64", "value": "5"}, {"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "120"}]}, + {"type": "assert_return", "line": 324, "action": {"type": "invoke", "field": "fac-acc", "args": [{"type": "i64", "value": "25"}, {"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, + {"type": "assert_return", "line": 328, "action": {"type": "invoke", "field": "fib", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 329, "action": {"type": "invoke", "field": "fib", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 330, "action": {"type": "invoke", "field": "fib", "args": [{"type": "i64", "value": "2"}]}, "expected": [{"type": "i64", "value": "2"}]}, + {"type": "assert_return", "line": 331, "action": {"type": "invoke", "field": "fib", "args": [{"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "8"}]}, + {"type": "assert_return", "line": 332, "action": {"type": "invoke", "field": "fib", "args": [{"type": "i64", "value": "20"}]}, "expected": [{"type": "i64", "value": "10946"}]}, + {"type": "assert_return", "line": 334, "action": {"type": "invoke", "field": "even", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i32", "value": "44"}]}, + {"type": "assert_return", "line": 335, "action": {"type": "invoke", "field": "even", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i32", "value": "99"}]}, + {"type": "assert_return", "line": 336, "action": {"type": "invoke", "field": "even", "args": [{"type": "i64", "value": "100"}]}, "expected": [{"type": "i32", "value": "44"}]}, + {"type": "assert_return", "line": 337, "action": {"type": "invoke", "field": "even", "args": [{"type": "i64", "value": "77"}]}, "expected": [{"type": "i32", "value": "99"}]}, + {"type": "assert_return", "line": 338, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i32", "value": "99"}]}, + {"type": "assert_return", "line": 339, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i32", "value": "44"}]}, + {"type": "assert_return", "line": 340, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i64", "value": "200"}]}, "expected": [{"type": "i32", "value": "99"}]}, + {"type": "assert_return", "line": 341, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i64", "value": "77"}]}, "expected": [{"type": "i32", "value": "44"}]}, + {"type": "assert_exhaustion", "line": 343, "action": {"type": "invoke", "field": "runaway", "args": []}, "text": "call stack exhausted", "expected": []}, + {"type": "assert_exhaustion", "line": 344, "action": {"type": "invoke", "field": "mutual-runaway", "args": []}, "text": "call stack exhausted", "expected": []}, + {"type": "assert_return", "line": 346, "action": {"type": "invoke", "field": "as-select-first", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, + {"type": "assert_return", "line": 347, "action": {"type": "invoke", "field": "as-select-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 348, "action": {"type": "invoke", "field": "as-select-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 350, "action": {"type": "invoke", "field": "as-if-condition", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 352, "action": {"type": "invoke", "field": "as-br_if-first", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, + {"type": "assert_return", "line": 353, "action": {"type": "invoke", "field": "as-br_if-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 355, "action": {"type": "invoke", "field": "as-br_table-first", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, + {"type": "assert_return", "line": 356, "action": {"type": "invoke", "field": "as-br_table-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 358, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, + {"type": "assert_return", "line": 359, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_trap", "line": 360, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": []}, "text": "undefined element", "expected": [{"type": "i32"}]}, + {"type": "assert_return", "line": 362, "action": {"type": "invoke", "field": "as-store-first", "args": []}, "expected": []}, + {"type": "assert_return", "line": 363, "action": {"type": "invoke", "field": "as-store-last", "args": []}, "expected": []}, + {"type": "assert_return", "line": 365, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 366, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, + {"type": "assert_return", "line": 367, "action": {"type": "invoke", "field": "as-drop-operand", "args": []}, "expected": []}, + {"type": "assert_return", "line": 368, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, + {"type": "assert_return", "line": 369, "action": {"type": "invoke", "field": "as-local.set-value", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, + {"type": "assert_return", "line": 370, "action": {"type": "invoke", "field": "as-local.tee-value", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, + {"type": "assert_return", "line": 371, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, + {"type": "assert_return", "line": 372, "action": {"type": "invoke", "field": "as-load-operand", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 374, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 375, "action": {"type": "invoke", "field": "as-binary-left", "args": []}, "expected": [{"type": "i32", "value": "11"}]}, + {"type": "assert_return", "line": 376, "action": {"type": "invoke", "field": "as-binary-right", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 377, "action": {"type": "invoke", "field": "as-test-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 378, "action": {"type": "invoke", "field": "as-compare-left", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 379, "action": {"type": "invoke", "field": "as-compare-right", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 380, "action": {"type": "invoke", "field": "as-convert-operand", "args": []}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 382, "action": {"type": "invoke", "field": "return-from-long-argument-list", "args": [{"type": "i32", "value": "42"}]}, "expected": [{"type": "i32", "value": "42"}]}, + {"type": "assert_invalid", "line": 387, "filename": "call.1.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 394, "filename": "call.2.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 402, "filename": "call.3.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 409, "filename": "call.4.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 416, "filename": "call.5.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 423, "filename": "call.6.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 431, "filename": "call.7.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 438, "filename": "call.8.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 445, "filename": "call.9.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 452, "filename": "call.10.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 460, "filename": "call.11.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 469, "filename": "call.12.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 478, "filename": "call.13.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 487, "filename": "call.14.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 496, "filename": "call.15.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 505, "filename": "call.16.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 518, "filename": "call.17.wasm", "text": "unknown function", "module_type": "binary"}, + {"type": "assert_invalid", "line": 522, "filename": "call.18.wasm", "text": "unknown function", "module_type": "binary"}]} diff --git a/tests/gen/call_indirect.34.wasm b/tests/gen/call_indirect.34.wasm new file mode 100644 index 00000000..c9ac6264 Binary files /dev/null and b/tests/gen/call_indirect.34.wasm differ diff --git a/tests/gen/call_indirect.json b/tests/gen/call_indirect.json index 8039db9c..a38be460 100644 --- a/tests/gen/call_indirect.json +++ b/tests/gen/call_indirect.json @@ -1,154 +1,155 @@ {"source_filename": "call_indirect.wast", "commands": [ {"type": "module", "line": 3, "filename": "call_indirect.0.wasm"}, - {"type": "assert_return", "line": 447, "action": {"type": "invoke", "field": "type-i32", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, - {"type": "assert_return", "line": 448, "action": {"type": "invoke", "field": "type-i64", "args": []}, "expected": [{"type": "i64", "value": "356"}]}, - {"type": "assert_return", "line": 449, "action": {"type": "invoke", "field": "type-f32", "args": []}, "expected": [{"type": "f32", "value": "1165172736"}]}, - {"type": "assert_return", "line": 450, "action": {"type": "invoke", "field": "type-f64", "args": []}, "expected": [{"type": "f64", "value": "4660882566700597248"}]}, - {"type": "assert_return", "line": 452, "action": {"type": "invoke", "field": "type-index", "args": []}, "expected": [{"type": "i64", "value": "100"}]}, - {"type": "assert_return", "line": 454, "action": {"type": "invoke", "field": "type-first-i32", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, - {"type": "assert_return", "line": 455, "action": {"type": "invoke", "field": "type-first-i64", "args": []}, "expected": [{"type": "i64", "value": "64"}]}, - {"type": "assert_return", "line": 456, "action": {"type": "invoke", "field": "type-first-f32", "args": []}, "expected": [{"type": "f32", "value": "1068037571"}]}, - {"type": "assert_return", "line": 457, "action": {"type": "invoke", "field": "type-first-f64", "args": []}, "expected": [{"type": "f64", "value": "4610064722561534525"}]}, - {"type": "assert_return", "line": 459, "action": {"type": "invoke", "field": "type-second-i32", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, - {"type": "assert_return", "line": 460, "action": {"type": "invoke", "field": "type-second-i64", "args": []}, "expected": [{"type": "i64", "value": "64"}]}, - {"type": "assert_return", "line": 461, "action": {"type": "invoke", "field": "type-second-f32", "args": []}, "expected": [{"type": "f32", "value": "1107296256"}]}, - {"type": "assert_return", "line": 462, "action": {"type": "invoke", "field": "type-second-f64", "args": []}, "expected": [{"type": "f64", "value": "4634211053438658150"}]}, - {"type": "assert_return", "line": 464, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "5"}, {"type": "i64", "value": "2"}]}, "expected": [{"type": "i64", "value": "2"}]}, - {"type": "assert_return", "line": 465, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "5"}, {"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "5"}]}, - {"type": "assert_return", "line": 466, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "12"}, {"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "120"}]}, - {"type": "assert_return", "line": 467, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "13"}, {"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "8"}]}, - {"type": "assert_return", "line": 468, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "20"}, {"type": "i64", "value": "2"}]}, "expected": [{"type": "i64", "value": "2"}]}, - {"type": "assert_trap", "line": 469, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "0"}, {"type": "i64", "value": "2"}]}, "text": "indirect call type mismatch", "expected": [{"type": "i64"}]}, - {"type": "assert_trap", "line": 470, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "15"}, {"type": "i64", "value": "2"}]}, "text": "indirect call type mismatch", "expected": [{"type": "i64"}]}, - {"type": "assert_trap", "line": 471, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "29"}, {"type": "i64", "value": "2"}]}, "text": "undefined element", "expected": [{"type": "i64"}]}, - {"type": "assert_trap", "line": 472, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "4294967295"}, {"type": "i64", "value": "2"}]}, "text": "undefined element", "expected": [{"type": "i64"}]}, - {"type": "assert_trap", "line": 473, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "1213432423"}, {"type": "i64", "value": "2"}]}, "text": "undefined element", "expected": [{"type": "i64"}]}, - {"type": "assert_return", "line": 475, "action": {"type": "invoke", "field": "dispatch-structural-i64", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i64", "value": "9"}]}, - {"type": "assert_return", "line": 476, "action": {"type": "invoke", "field": "dispatch-structural-i64", "args": [{"type": "i32", "value": "12"}]}, "expected": [{"type": "i64", "value": "362880"}]}, - {"type": "assert_return", "line": 477, "action": {"type": "invoke", "field": "dispatch-structural-i64", "args": [{"type": "i32", "value": "13"}]}, "expected": [{"type": "i64", "value": "55"}]}, - {"type": "assert_return", "line": 478, "action": {"type": "invoke", "field": "dispatch-structural-i64", "args": [{"type": "i32", "value": "20"}]}, "expected": [{"type": "i64", "value": "9"}]}, - {"type": "assert_trap", "line": 479, "action": {"type": "invoke", "field": "dispatch-structural-i64", "args": [{"type": "i32", "value": "11"}]}, "text": "indirect call type mismatch", "expected": [{"type": "i64"}]}, - {"type": "assert_trap", "line": 480, "action": {"type": "invoke", "field": "dispatch-structural-i64", "args": [{"type": "i32", "value": "22"}]}, "text": "indirect call type mismatch", "expected": [{"type": "i64"}]}, - {"type": "assert_return", "line": 482, "action": {"type": "invoke", "field": "dispatch-structural-i32", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 483, "action": {"type": "invoke", "field": "dispatch-structural-i32", "args": [{"type": "i32", "value": "23"}]}, "expected": [{"type": "i32", "value": "362880"}]}, - {"type": "assert_return", "line": 484, "action": {"type": "invoke", "field": "dispatch-structural-i32", "args": [{"type": "i32", "value": "26"}]}, "expected": [{"type": "i32", "value": "55"}]}, - {"type": "assert_return", "line": 485, "action": {"type": "invoke", "field": "dispatch-structural-i32", "args": [{"type": "i32", "value": "19"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_trap", "line": 486, "action": {"type": "invoke", "field": "dispatch-structural-i32", "args": [{"type": "i32", "value": "9"}]}, "text": "indirect call type mismatch", "expected": [{"type": "i32"}]}, - {"type": "assert_trap", "line": 487, "action": {"type": "invoke", "field": "dispatch-structural-i32", "args": [{"type": "i32", "value": "21"}]}, "text": "indirect call type mismatch", "expected": [{"type": "i32"}]}, - {"type": "assert_return", "line": 489, "action": {"type": "invoke", "field": "dispatch-structural-f32", "args": [{"type": "i32", "value": "6"}]}, "expected": [{"type": "f32", "value": "1091567616"}]}, - {"type": "assert_return", "line": 490, "action": {"type": "invoke", "field": "dispatch-structural-f32", "args": [{"type": "i32", "value": "24"}]}, "expected": [{"type": "f32", "value": "1219571712"}]}, - {"type": "assert_return", "line": 491, "action": {"type": "invoke", "field": "dispatch-structural-f32", "args": [{"type": "i32", "value": "27"}]}, "expected": [{"type": "f32", "value": "1113325568"}]}, - {"type": "assert_return", "line": 492, "action": {"type": "invoke", "field": "dispatch-structural-f32", "args": [{"type": "i32", "value": "21"}]}, "expected": [{"type": "f32", "value": "1091567616"}]}, - {"type": "assert_trap", "line": 493, "action": {"type": "invoke", "field": "dispatch-structural-f32", "args": [{"type": "i32", "value": "8"}]}, "text": "indirect call type mismatch", "expected": [{"type": "f32"}]}, - {"type": "assert_trap", "line": 494, "action": {"type": "invoke", "field": "dispatch-structural-f32", "args": [{"type": "i32", "value": "19"}]}, "text": "indirect call type mismatch", "expected": [{"type": "f32"}]}, - {"type": "assert_return", "line": 496, "action": {"type": "invoke", "field": "dispatch-structural-f64", "args": [{"type": "i32", "value": "7"}]}, "expected": [{"type": "f64", "value": "4621256167635550208"}]}, - {"type": "assert_return", "line": 497, "action": {"type": "invoke", "field": "dispatch-structural-f64", "args": [{"type": "i32", "value": "25"}]}, "expected": [{"type": "f64", "value": "4689977843394805760"}]}, - {"type": "assert_return", "line": 498, "action": {"type": "invoke", "field": "dispatch-structural-f64", "args": [{"type": "i32", "value": "28"}]}, "expected": [{"type": "f64", "value": "4632937379169042432"}]}, - {"type": "assert_return", "line": 499, "action": {"type": "invoke", "field": "dispatch-structural-f64", "args": [{"type": "i32", "value": "22"}]}, "expected": [{"type": "f64", "value": "4621256167635550208"}]}, - {"type": "assert_trap", "line": 500, "action": {"type": "invoke", "field": "dispatch-structural-f64", "args": [{"type": "i32", "value": "10"}]}, "text": "indirect call type mismatch", "expected": [{"type": "f64"}]}, - {"type": "assert_trap", "line": 501, "action": {"type": "invoke", "field": "dispatch-structural-f64", "args": [{"type": "i32", "value": "18"}]}, "text": "indirect call type mismatch", "expected": [{"type": "f64"}]}, - {"type": "assert_return", "line": 503, "action": {"type": "invoke", "field": "fac-i64", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 504, "action": {"type": "invoke", "field": "fac-i64", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 505, "action": {"type": "invoke", "field": "fac-i64", "args": [{"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "120"}]}, - {"type": "assert_return", "line": 506, "action": {"type": "invoke", "field": "fac-i64", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, - {"type": "assert_return", "line": 508, "action": {"type": "invoke", "field": "fac-i32", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 509, "action": {"type": "invoke", "field": "fac-i32", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 510, "action": {"type": "invoke", "field": "fac-i32", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i32", "value": "120"}]}, - {"type": "assert_return", "line": 511, "action": {"type": "invoke", "field": "fac-i32", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "3628800"}]}, - {"type": "assert_return", "line": 513, "action": {"type": "invoke", "field": "fac-f32", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 514, "action": {"type": "invoke", "field": "fac-f32", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 515, "action": {"type": "invoke", "field": "fac-f32", "args": [{"type": "f32", "value": "1084227584"}]}, "expected": [{"type": "f32", "value": "1123024896"}]}, - {"type": "assert_return", "line": 516, "action": {"type": "invoke", "field": "fac-f32", "args": [{"type": "f32", "value": "1092616192"}]}, "expected": [{"type": "f32", "value": "1247640576"}]}, - {"type": "assert_return", "line": 518, "action": {"type": "invoke", "field": "fac-f64", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 519, "action": {"type": "invoke", "field": "fac-f64", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 520, "action": {"type": "invoke", "field": "fac-f64", "args": [{"type": "f64", "value": "4617315517961601024"}]}, "expected": [{"type": "f64", "value": "4638144666238189568"}]}, - {"type": "assert_return", "line": 521, "action": {"type": "invoke", "field": "fac-f64", "args": [{"type": "f64", "value": "4621819117588971520"}]}, "expected": [{"type": "f64", "value": "4705047200009289728"}]}, - {"type": "assert_return", "line": 523, "action": {"type": "invoke", "field": "fib-i64", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 524, "action": {"type": "invoke", "field": "fib-i64", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 525, "action": {"type": "invoke", "field": "fib-i64", "args": [{"type": "i64", "value": "2"}]}, "expected": [{"type": "i64", "value": "2"}]}, - {"type": "assert_return", "line": 526, "action": {"type": "invoke", "field": "fib-i64", "args": [{"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "8"}]}, - {"type": "assert_return", "line": 527, "action": {"type": "invoke", "field": "fib-i64", "args": [{"type": "i64", "value": "20"}]}, "expected": [{"type": "i64", "value": "10946"}]}, - {"type": "assert_return", "line": 529, "action": {"type": "invoke", "field": "fib-i32", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 530, "action": {"type": "invoke", "field": "fib-i32", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 531, "action": {"type": "invoke", "field": "fib-i32", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 532, "action": {"type": "invoke", "field": "fib-i32", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 533, "action": {"type": "invoke", "field": "fib-i32", "args": [{"type": "i32", "value": "20"}]}, "expected": [{"type": "i32", "value": "10946"}]}, - {"type": "assert_return", "line": 535, "action": {"type": "invoke", "field": "fib-f32", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 536, "action": {"type": "invoke", "field": "fib-f32", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 537, "action": {"type": "invoke", "field": "fib-f32", "args": [{"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "f32", "value": "1073741824"}]}, - {"type": "assert_return", "line": 538, "action": {"type": "invoke", "field": "fib-f32", "args": [{"type": "f32", "value": "1084227584"}]}, "expected": [{"type": "f32", "value": "1090519040"}]}, - {"type": "assert_return", "line": 539, "action": {"type": "invoke", "field": "fib-f32", "args": [{"type": "f32", "value": "1101004800"}]}, "expected": [{"type": "f32", "value": "1177225216"}]}, - {"type": "assert_return", "line": 541, "action": {"type": "invoke", "field": "fib-f64", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 542, "action": {"type": "invoke", "field": "fib-f64", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 543, "action": {"type": "invoke", "field": "fib-f64", "args": [{"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, - {"type": "assert_return", "line": 544, "action": {"type": "invoke", "field": "fib-f64", "args": [{"type": "f64", "value": "4617315517961601024"}]}, "expected": [{"type": "f64", "value": "4620693217682128896"}]}, - {"type": "assert_return", "line": 545, "action": {"type": "invoke", "field": "fib-f64", "args": [{"type": "f64", "value": "4626322717216342016"}]}, "expected": [{"type": "f64", "value": "4667243241467281408"}]}, - {"type": "assert_return", "line": 547, "action": {"type": "invoke", "field": "even", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "44"}]}, - {"type": "assert_return", "line": 548, "action": {"type": "invoke", "field": "even", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "99"}]}, - {"type": "assert_return", "line": 549, "action": {"type": "invoke", "field": "even", "args": [{"type": "i32", "value": "100"}]}, "expected": [{"type": "i32", "value": "44"}]}, - {"type": "assert_return", "line": 550, "action": {"type": "invoke", "field": "even", "args": [{"type": "i32", "value": "77"}]}, "expected": [{"type": "i32", "value": "99"}]}, - {"type": "assert_return", "line": 551, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "99"}]}, - {"type": "assert_return", "line": 552, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "44"}]}, - {"type": "assert_return", "line": 553, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i32", "value": "200"}]}, "expected": [{"type": "i32", "value": "99"}]}, - {"type": "assert_return", "line": 554, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i32", "value": "77"}]}, "expected": [{"type": "i32", "value": "44"}]}, - {"type": "assert_exhaustion", "line": 556, "action": {"type": "invoke", "field": "runaway", "args": []}, "text": "call stack exhausted", "expected": []}, - {"type": "assert_exhaustion", "line": 557, "action": {"type": "invoke", "field": "mutual-runaway", "args": []}, "text": "call stack exhausted", "expected": []}, - {"type": "assert_return", "line": 559, "action": {"type": "invoke", "field": "as-select-first", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, - {"type": "assert_return", "line": 560, "action": {"type": "invoke", "field": "as-select-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 561, "action": {"type": "invoke", "field": "as-select-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 563, "action": {"type": "invoke", "field": "as-if-condition", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 565, "action": {"type": "invoke", "field": "as-br_if-first", "args": []}, "expected": [{"type": "i64", "value": "356"}]}, - {"type": "assert_return", "line": 566, "action": {"type": "invoke", "field": "as-br_if-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 568, "action": {"type": "invoke", "field": "as-br_table-first", "args": []}, "expected": [{"type": "f32", "value": "1165172736"}]}, - {"type": "assert_return", "line": 569, "action": {"type": "invoke", "field": "as-br_table-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 571, "action": {"type": "invoke", "field": "as-store-first", "args": []}, "expected": []}, - {"type": "assert_return", "line": 572, "action": {"type": "invoke", "field": "as-store-last", "args": []}, "expected": []}, - {"type": "assert_return", "line": 574, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 575, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 576, "action": {"type": "invoke", "field": "as-drop-operand", "args": []}, "expected": []}, - {"type": "assert_return", "line": 577, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 578, "action": {"type": "invoke", "field": "as-local.set-value", "args": []}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 579, "action": {"type": "invoke", "field": "as-local.tee-value", "args": []}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 580, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 581, "action": {"type": "invoke", "field": "as-load-operand", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 583, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 584, "action": {"type": "invoke", "field": "as-binary-left", "args": []}, "expected": [{"type": "i32", "value": "11"}]}, - {"type": "assert_return", "line": 585, "action": {"type": "invoke", "field": "as-binary-right", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 586, "action": {"type": "invoke", "field": "as-test-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 587, "action": {"type": "invoke", "field": "as-compare-left", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 588, "action": {"type": "invoke", "field": "as-compare-right", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 589, "action": {"type": "invoke", "field": "as-convert-operand", "args": []}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_malformed", "line": 594, "filename": "call_indirect.1.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 606, "filename": "call_indirect.2.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 618, "filename": "call_indirect.3.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 630, "filename": "call_indirect.4.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 642, "filename": "call_indirect.5.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 654, "filename": "call_indirect.6.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 664, "filename": "call_indirect.7.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 671, "filename": "call_indirect.8.wat", "text": "inline function type", "module_type": "text"}, - {"type": "assert_malformed", "line": 681, "filename": "call_indirect.9.wat", "text": "inline function type", "module_type": "text"}, - {"type": "assert_malformed", "line": 691, "filename": "call_indirect.10.wat", "text": "inline function type", "module_type": "text"}, - {"type": "assert_malformed", "line": 701, "filename": "call_indirect.11.wat", "text": "inline function type", "module_type": "text"}, - {"type": "assert_invalid", "line": 716, "filename": "call_indirect.12.wasm", "text": "unknown table", "module_type": "binary"}, - {"type": "assert_invalid", "line": 724, "filename": "call_indirect.13.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 732, "filename": "call_indirect.14.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 741, "filename": "call_indirect.15.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 749, "filename": "call_indirect.16.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 757, "filename": "call_indirect.17.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 765, "filename": "call_indirect.18.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 776, "filename": "call_indirect.19.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 784, "filename": "call_indirect.20.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 793, "filename": "call_indirect.21.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 803, "filename": "call_indirect.22.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 813, "filename": "call_indirect.23.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 823, "filename": "call_indirect.24.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 834, "filename": "call_indirect.25.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 847, "filename": "call_indirect.26.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 860, "filename": "call_indirect.27.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 873, "filename": "call_indirect.28.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 886, "filename": "call_indirect.29.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 902, "filename": "call_indirect.30.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 922, "filename": "call_indirect.31.wasm", "text": "unknown type", "module_type": "binary"}, - {"type": "assert_invalid", "line": 929, "filename": "call_indirect.32.wasm", "text": "unknown type", "module_type": "binary"}, - {"type": "assert_invalid", "line": 940, "filename": "call_indirect.33.wasm", "text": "unknown function 0", "module_type": "binary"}]} + {"type": "assert_return", "line": 478, "action": {"type": "invoke", "field": "type-i32", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, + {"type": "assert_return", "line": 479, "action": {"type": "invoke", "field": "type-i64", "args": []}, "expected": [{"type": "i64", "value": "356"}]}, + {"type": "assert_return", "line": 480, "action": {"type": "invoke", "field": "type-f32", "args": []}, "expected": [{"type": "f32", "value": "1165172736"}]}, + {"type": "assert_return", "line": 481, "action": {"type": "invoke", "field": "type-f64", "args": []}, "expected": [{"type": "f64", "value": "4660882566700597248"}]}, + {"type": "assert_return", "line": 485, "action": {"type": "invoke", "field": "type-index", "args": []}, "expected": [{"type": "i64", "value": "100"}]}, + {"type": "assert_return", "line": 487, "action": {"type": "invoke", "field": "type-first-i32", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, + {"type": "assert_return", "line": 488, "action": {"type": "invoke", "field": "type-first-i64", "args": []}, "expected": [{"type": "i64", "value": "64"}]}, + {"type": "assert_return", "line": 489, "action": {"type": "invoke", "field": "type-first-f32", "args": []}, "expected": [{"type": "f32", "value": "1068037571"}]}, + {"type": "assert_return", "line": 490, "action": {"type": "invoke", "field": "type-first-f64", "args": []}, "expected": [{"type": "f64", "value": "4610064722561534525"}]}, + {"type": "assert_return", "line": 492, "action": {"type": "invoke", "field": "type-second-i32", "args": []}, "expected": [{"type": "i32", "value": "32"}]}, + {"type": "assert_return", "line": 493, "action": {"type": "invoke", "field": "type-second-i64", "args": []}, "expected": [{"type": "i64", "value": "64"}]}, + {"type": "assert_return", "line": 494, "action": {"type": "invoke", "field": "type-second-f32", "args": []}, "expected": [{"type": "f32", "value": "1107296256"}]}, + {"type": "assert_return", "line": 495, "action": {"type": "invoke", "field": "type-second-f64", "args": []}, "expected": [{"type": "f64", "value": "4634211053438658150"}]}, + {"type": "assert_return", "line": 502, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "5"}, {"type": "i64", "value": "2"}]}, "expected": [{"type": "i64", "value": "2"}]}, + {"type": "assert_return", "line": 503, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "5"}, {"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "5"}]}, + {"type": "assert_return", "line": 504, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "12"}, {"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "120"}]}, + {"type": "assert_return", "line": 505, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "13"}, {"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "8"}]}, + {"type": "assert_return", "line": 506, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "20"}, {"type": "i64", "value": "2"}]}, "expected": [{"type": "i64", "value": "2"}]}, + {"type": "assert_trap", "line": 507, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "0"}, {"type": "i64", "value": "2"}]}, "text": "indirect call type mismatch", "expected": [{"type": "i64"}]}, + {"type": "assert_trap", "line": 508, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "15"}, {"type": "i64", "value": "2"}]}, "text": "indirect call type mismatch", "expected": [{"type": "i64"}]}, + {"type": "assert_trap", "line": 509, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "32"}, {"type": "i64", "value": "2"}]}, "text": "undefined element", "expected": [{"type": "i64"}]}, + {"type": "assert_trap", "line": 510, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "4294967295"}, {"type": "i64", "value": "2"}]}, "text": "undefined element", "expected": [{"type": "i64"}]}, + {"type": "assert_trap", "line": 511, "action": {"type": "invoke", "field": "dispatch", "args": [{"type": "i32", "value": "1213432423"}, {"type": "i64", "value": "2"}]}, "text": "undefined element", "expected": [{"type": "i64"}]}, + {"type": "assert_return", "line": 513, "action": {"type": "invoke", "field": "dispatch-structural-i64", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i64", "value": "9"}]}, + {"type": "assert_return", "line": 514, "action": {"type": "invoke", "field": "dispatch-structural-i64", "args": [{"type": "i32", "value": "12"}]}, "expected": [{"type": "i64", "value": "362880"}]}, + {"type": "assert_return", "line": 515, "action": {"type": "invoke", "field": "dispatch-structural-i64", "args": [{"type": "i32", "value": "13"}]}, "expected": [{"type": "i64", "value": "55"}]}, + {"type": "assert_return", "line": 516, "action": {"type": "invoke", "field": "dispatch-structural-i64", "args": [{"type": "i32", "value": "20"}]}, "expected": [{"type": "i64", "value": "9"}]}, + {"type": "assert_trap", "line": 517, "action": {"type": "invoke", "field": "dispatch-structural-i64", "args": [{"type": "i32", "value": "11"}]}, "text": "indirect call type mismatch", "expected": [{"type": "i64"}]}, + {"type": "assert_trap", "line": 518, "action": {"type": "invoke", "field": "dispatch-structural-i64", "args": [{"type": "i32", "value": "22"}]}, "text": "indirect call type mismatch", "expected": [{"type": "i64"}]}, + {"type": "assert_return", "line": 520, "action": {"type": "invoke", "field": "dispatch-structural-i32", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 521, "action": {"type": "invoke", "field": "dispatch-structural-i32", "args": [{"type": "i32", "value": "23"}]}, "expected": [{"type": "i32", "value": "362880"}]}, + {"type": "assert_return", "line": 522, "action": {"type": "invoke", "field": "dispatch-structural-i32", "args": [{"type": "i32", "value": "26"}]}, "expected": [{"type": "i32", "value": "55"}]}, + {"type": "assert_return", "line": 523, "action": {"type": "invoke", "field": "dispatch-structural-i32", "args": [{"type": "i32", "value": "19"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_trap", "line": 524, "action": {"type": "invoke", "field": "dispatch-structural-i32", "args": [{"type": "i32", "value": "9"}]}, "text": "indirect call type mismatch", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 525, "action": {"type": "invoke", "field": "dispatch-structural-i32", "args": [{"type": "i32", "value": "21"}]}, "text": "indirect call type mismatch", "expected": [{"type": "i32"}]}, + {"type": "assert_return", "line": 527, "action": {"type": "invoke", "field": "dispatch-structural-f32", "args": [{"type": "i32", "value": "6"}]}, "expected": [{"type": "f32", "value": "1091567616"}]}, + {"type": "assert_return", "line": 528, "action": {"type": "invoke", "field": "dispatch-structural-f32", "args": [{"type": "i32", "value": "24"}]}, "expected": [{"type": "f32", "value": "1219571712"}]}, + {"type": "assert_return", "line": 529, "action": {"type": "invoke", "field": "dispatch-structural-f32", "args": [{"type": "i32", "value": "27"}]}, "expected": [{"type": "f32", "value": "1113325568"}]}, + {"type": "assert_return", "line": 530, "action": {"type": "invoke", "field": "dispatch-structural-f32", "args": [{"type": "i32", "value": "21"}]}, "expected": [{"type": "f32", "value": "1091567616"}]}, + {"type": "assert_trap", "line": 531, "action": {"type": "invoke", "field": "dispatch-structural-f32", "args": [{"type": "i32", "value": "8"}]}, "text": "indirect call type mismatch", "expected": [{"type": "f32"}]}, + {"type": "assert_trap", "line": 532, "action": {"type": "invoke", "field": "dispatch-structural-f32", "args": [{"type": "i32", "value": "19"}]}, "text": "indirect call type mismatch", "expected": [{"type": "f32"}]}, + {"type": "assert_return", "line": 534, "action": {"type": "invoke", "field": "dispatch-structural-f64", "args": [{"type": "i32", "value": "7"}]}, "expected": [{"type": "f64", "value": "4621256167635550208"}]}, + {"type": "assert_return", "line": 535, "action": {"type": "invoke", "field": "dispatch-structural-f64", "args": [{"type": "i32", "value": "25"}]}, "expected": [{"type": "f64", "value": "4689977843394805760"}]}, + {"type": "assert_return", "line": 536, "action": {"type": "invoke", "field": "dispatch-structural-f64", "args": [{"type": "i32", "value": "28"}]}, "expected": [{"type": "f64", "value": "4632937379169042432"}]}, + {"type": "assert_return", "line": 537, "action": {"type": "invoke", "field": "dispatch-structural-f64", "args": [{"type": "i32", "value": "22"}]}, "expected": [{"type": "f64", "value": "4621256167635550208"}]}, + {"type": "assert_trap", "line": 538, "action": {"type": "invoke", "field": "dispatch-structural-f64", "args": [{"type": "i32", "value": "10"}]}, "text": "indirect call type mismatch", "expected": [{"type": "f64"}]}, + {"type": "assert_trap", "line": 539, "action": {"type": "invoke", "field": "dispatch-structural-f64", "args": [{"type": "i32", "value": "18"}]}, "text": "indirect call type mismatch", "expected": [{"type": "f64"}]}, + {"type": "assert_return", "line": 541, "action": {"type": "invoke", "field": "fac-i64", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 542, "action": {"type": "invoke", "field": "fac-i64", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 543, "action": {"type": "invoke", "field": "fac-i64", "args": [{"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "120"}]}, + {"type": "assert_return", "line": 544, "action": {"type": "invoke", "field": "fac-i64", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, + {"type": "assert_return", "line": 546, "action": {"type": "invoke", "field": "fac-i32", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 547, "action": {"type": "invoke", "field": "fac-i32", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 548, "action": {"type": "invoke", "field": "fac-i32", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i32", "value": "120"}]}, + {"type": "assert_return", "line": 549, "action": {"type": "invoke", "field": "fac-i32", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "3628800"}]}, + {"type": "assert_return", "line": 551, "action": {"type": "invoke", "field": "fac-f32", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 552, "action": {"type": "invoke", "field": "fac-f32", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 553, "action": {"type": "invoke", "field": "fac-f32", "args": [{"type": "f32", "value": "1084227584"}]}, "expected": [{"type": "f32", "value": "1123024896"}]}, + {"type": "assert_return", "line": 554, "action": {"type": "invoke", "field": "fac-f32", "args": [{"type": "f32", "value": "1092616192"}]}, "expected": [{"type": "f32", "value": "1247640576"}]}, + {"type": "assert_return", "line": 556, "action": {"type": "invoke", "field": "fac-f64", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 557, "action": {"type": "invoke", "field": "fac-f64", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 558, "action": {"type": "invoke", "field": "fac-f64", "args": [{"type": "f64", "value": "4617315517961601024"}]}, "expected": [{"type": "f64", "value": "4638144666238189568"}]}, + {"type": "assert_return", "line": 559, "action": {"type": "invoke", "field": "fac-f64", "args": [{"type": "f64", "value": "4621819117588971520"}]}, "expected": [{"type": "f64", "value": "4705047200009289728"}]}, + {"type": "assert_return", "line": 561, "action": {"type": "invoke", "field": "fib-i64", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 562, "action": {"type": "invoke", "field": "fib-i64", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 563, "action": {"type": "invoke", "field": "fib-i64", "args": [{"type": "i64", "value": "2"}]}, "expected": [{"type": "i64", "value": "2"}]}, + {"type": "assert_return", "line": 564, "action": {"type": "invoke", "field": "fib-i64", "args": [{"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "8"}]}, + {"type": "assert_return", "line": 565, "action": {"type": "invoke", "field": "fib-i64", "args": [{"type": "i64", "value": "20"}]}, "expected": [{"type": "i64", "value": "10946"}]}, + {"type": "assert_return", "line": 567, "action": {"type": "invoke", "field": "fib-i32", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 568, "action": {"type": "invoke", "field": "fib-i32", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 569, "action": {"type": "invoke", "field": "fib-i32", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 570, "action": {"type": "invoke", "field": "fib-i32", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 571, "action": {"type": "invoke", "field": "fib-i32", "args": [{"type": "i32", "value": "20"}]}, "expected": [{"type": "i32", "value": "10946"}]}, + {"type": "assert_return", "line": 573, "action": {"type": "invoke", "field": "fib-f32", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 574, "action": {"type": "invoke", "field": "fib-f32", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 575, "action": {"type": "invoke", "field": "fib-f32", "args": [{"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "f32", "value": "1073741824"}]}, + {"type": "assert_return", "line": 576, "action": {"type": "invoke", "field": "fib-f32", "args": [{"type": "f32", "value": "1084227584"}]}, "expected": [{"type": "f32", "value": "1090519040"}]}, + {"type": "assert_return", "line": 577, "action": {"type": "invoke", "field": "fib-f32", "args": [{"type": "f32", "value": "1101004800"}]}, "expected": [{"type": "f32", "value": "1177225216"}]}, + {"type": "assert_return", "line": 579, "action": {"type": "invoke", "field": "fib-f64", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 580, "action": {"type": "invoke", "field": "fib-f64", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 581, "action": {"type": "invoke", "field": "fib-f64", "args": [{"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, + {"type": "assert_return", "line": 582, "action": {"type": "invoke", "field": "fib-f64", "args": [{"type": "f64", "value": "4617315517961601024"}]}, "expected": [{"type": "f64", "value": "4620693217682128896"}]}, + {"type": "assert_return", "line": 583, "action": {"type": "invoke", "field": "fib-f64", "args": [{"type": "f64", "value": "4626322717216342016"}]}, "expected": [{"type": "f64", "value": "4667243241467281408"}]}, + {"type": "assert_return", "line": 585, "action": {"type": "invoke", "field": "even", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "44"}]}, + {"type": "assert_return", "line": 586, "action": {"type": "invoke", "field": "even", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "99"}]}, + {"type": "assert_return", "line": 587, "action": {"type": "invoke", "field": "even", "args": [{"type": "i32", "value": "100"}]}, "expected": [{"type": "i32", "value": "44"}]}, + {"type": "assert_return", "line": 588, "action": {"type": "invoke", "field": "even", "args": [{"type": "i32", "value": "77"}]}, "expected": [{"type": "i32", "value": "99"}]}, + {"type": "assert_return", "line": 589, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "99"}]}, + {"type": "assert_return", "line": 590, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "44"}]}, + {"type": "assert_return", "line": 591, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i32", "value": "200"}]}, "expected": [{"type": "i32", "value": "99"}]}, + {"type": "assert_return", "line": 592, "action": {"type": "invoke", "field": "odd", "args": [{"type": "i32", "value": "77"}]}, "expected": [{"type": "i32", "value": "44"}]}, + {"type": "assert_exhaustion", "line": 594, "action": {"type": "invoke", "field": "runaway", "args": []}, "text": "call stack exhausted", "expected": []}, + {"type": "assert_exhaustion", "line": 595, "action": {"type": "invoke", "field": "mutual-runaway", "args": []}, "text": "call stack exhausted", "expected": []}, + {"type": "assert_return", "line": 597, "action": {"type": "invoke", "field": "as-select-first", "args": []}, "expected": [{"type": "i32", "value": "306"}]}, + {"type": "assert_return", "line": 598, "action": {"type": "invoke", "field": "as-select-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 599, "action": {"type": "invoke", "field": "as-select-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 601, "action": {"type": "invoke", "field": "as-if-condition", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 603, "action": {"type": "invoke", "field": "as-br_if-first", "args": []}, "expected": [{"type": "i64", "value": "356"}]}, + {"type": "assert_return", "line": 604, "action": {"type": "invoke", "field": "as-br_if-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 606, "action": {"type": "invoke", "field": "as-br_table-first", "args": []}, "expected": [{"type": "f32", "value": "1165172736"}]}, + {"type": "assert_return", "line": 607, "action": {"type": "invoke", "field": "as-br_table-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 609, "action": {"type": "invoke", "field": "as-store-first", "args": []}, "expected": []}, + {"type": "assert_return", "line": 610, "action": {"type": "invoke", "field": "as-store-last", "args": []}, "expected": []}, + {"type": "assert_return", "line": 612, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 613, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 614, "action": {"type": "invoke", "field": "as-drop-operand", "args": []}, "expected": []}, + {"type": "assert_return", "line": 615, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 616, "action": {"type": "invoke", "field": "as-local.set-value", "args": []}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 617, "action": {"type": "invoke", "field": "as-local.tee-value", "args": []}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 618, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 619, "action": {"type": "invoke", "field": "as-load-operand", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 621, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 622, "action": {"type": "invoke", "field": "as-binary-left", "args": []}, "expected": [{"type": "i32", "value": "11"}]}, + {"type": "assert_return", "line": 623, "action": {"type": "invoke", "field": "as-binary-right", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 624, "action": {"type": "invoke", "field": "as-test-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 625, "action": {"type": "invoke", "field": "as-compare-left", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 626, "action": {"type": "invoke", "field": "as-compare-right", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 627, "action": {"type": "invoke", "field": "as-convert-operand", "args": []}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_malformed", "line": 678, "filename": "call_indirect.1.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 690, "filename": "call_indirect.2.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 702, "filename": "call_indirect.3.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 714, "filename": "call_indirect.4.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 726, "filename": "call_indirect.5.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 738, "filename": "call_indirect.6.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 748, "filename": "call_indirect.7.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 755, "filename": "call_indirect.8.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_malformed", "line": 765, "filename": "call_indirect.9.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_malformed", "line": 775, "filename": "call_indirect.10.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_malformed", "line": 785, "filename": "call_indirect.11.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_invalid", "line": 800, "filename": "call_indirect.12.wasm", "text": "unknown table", "module_type": "binary"}, + {"type": "assert_invalid", "line": 808, "filename": "call_indirect.13.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 816, "filename": "call_indirect.14.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 825, "filename": "call_indirect.15.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 833, "filename": "call_indirect.16.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 841, "filename": "call_indirect.17.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 849, "filename": "call_indirect.18.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 860, "filename": "call_indirect.19.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 868, "filename": "call_indirect.20.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 877, "filename": "call_indirect.21.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 887, "filename": "call_indirect.22.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 897, "filename": "call_indirect.23.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 907, "filename": "call_indirect.24.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 918, "filename": "call_indirect.25.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 931, "filename": "call_indirect.26.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 944, "filename": "call_indirect.27.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 957, "filename": "call_indirect.28.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 970, "filename": "call_indirect.29.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 986, "filename": "call_indirect.30.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1006, "filename": "call_indirect.31.wasm", "text": "unknown type", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1013, "filename": "call_indirect.32.wasm", "text": "unknown type", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1024, "filename": "call_indirect.33.wasm", "text": "unknown function", "module_type": "binary"}, + {"type": "module", "line": 1033, "filename": "call_indirect.34.wasm"}]} diff --git a/tests/gen/conversions.json b/tests/gen/conversions.json index 6ef6a9b6..ed9a709a 100644 --- a/tests/gen/conversions.json +++ b/tests/gen/conversions.json @@ -209,413 +209,413 @@ {"type": "assert_trap", "line": 252, "action": {"type": "invoke", "field": "i64.trunc_f64_u", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "text": "invalid conversion to integer", "expected": [{"type": "i64"}]}, {"type": "assert_trap", "line": 253, "action": {"type": "invoke", "field": "i64.trunc_f64_u", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "text": "invalid conversion to integer", "expected": [{"type": "i64"}]}, {"type": "assert_trap", "line": 254, "action": {"type": "invoke", "field": "i64.trunc_f64_u", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "text": "invalid conversion to integer", "expected": [{"type": "i64"}]}, - {"type": "assert_return", "line": 258, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 259, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 260, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 261, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2147483649"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 262, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 263, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1066192077"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 264, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 265, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3212836864"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 266, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3213675725"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 267, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3217031168"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 268, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3220386611"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 269, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3221225472"}]}, "expected": [{"type": "i32", "value": "4294967294"}]}, - {"type": "assert_return", "line": 270, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1325400063"}]}, "expected": [{"type": "i32", "value": "2147483520"}]}, - {"type": "assert_return", "line": 271, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3472883712"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 272, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1325400064"}]}, "expected": [{"type": "i32", "value": "2147483647"}]}, - {"type": "assert_return", "line": 273, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3472883713"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 274, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "i32", "value": "2147483647"}]}, - {"type": "assert_return", "line": 275, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 276, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 277, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 278, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 279, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "4288675840"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 281, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 282, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 283, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 284, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2147483649"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 285, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 286, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1066192077"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 287, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 288, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1072902963"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 289, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 290, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1325400064"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 291, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1333788671"}]}, "expected": [{"type": "i32", "value": "4294967040"}]}, - {"type": "assert_return", "line": 292, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "3211159142"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 293, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "3212836863"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 294, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1333788672"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 295, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "3212836864"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 296, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 297, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 298, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 299, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 300, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 301, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "4288675840"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 303, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 304, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 305, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 306, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9223372036854775809"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 307, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 308, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4607632778762754458"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 309, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 310, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13830554455654793216"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 311, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13831004815617530266"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 312, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13832806255468478464"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 313, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13834607695319426662"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 314, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13835058055282163712"}]}, "expected": [{"type": "i32", "value": "4294967294"}]}, - {"type": "assert_return", "line": 315, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4746794007244308480"}]}, "expected": [{"type": "i32", "value": "2147483647"}]}, - {"type": "assert_return", "line": 316, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13970166044103278592"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 317, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4746794007248502784"}]}, "expected": [{"type": "i32", "value": "2147483647"}]}, - {"type": "assert_return", "line": 318, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13970166044105375744"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 319, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "i32", "value": "2147483647"}]}, - {"type": "assert_return", "line": 320, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 321, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 322, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 323, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 324, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 326, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 327, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 328, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 329, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9223372036854775809"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 330, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 331, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4607632778762754458"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 332, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 333, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4611235658464650854"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 334, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 335, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4746794007248502784"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 336, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4751297606873776128"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 337, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "13829653735729319117"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 338, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "13830554455654793215"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 339, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4726483295884279808"}]}, "expected": [{"type": "i32", "value": "100000000"}]}, - {"type": "assert_return", "line": 340, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4751297606875873280"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 341, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "13830554455654793216"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 342, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4846369599423283200"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 343, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "5055640609639927018"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 344, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4890909195324358656"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 345, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 346, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 347, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 348, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 349, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 350, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 352, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 353, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 354, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 355, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2147483649"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 356, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 357, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1066192077"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 358, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 359, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3212836864"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 360, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3213675725"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 361, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3217031168"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 362, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3220386611"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 363, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3221225472"}]}, "expected": [{"type": "i64", "value": "18446744073709551614"}]}, - {"type": "assert_return", "line": 364, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1333788672"}]}, "expected": [{"type": "i64", "value": "4294967296"}]}, - {"type": "assert_return", "line": 365, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3481272320"}]}, "expected": [{"type": "i64", "value": "18446744069414584320"}]}, - {"type": "assert_return", "line": 366, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1593835519"}]}, "expected": [{"type": "i64", "value": "9223371487098961920"}]}, - {"type": "assert_return", "line": 367, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3741319168"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 368, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1593835520"}]}, "expected": [{"type": "i64", "value": "9223372036854775807"}]}, - {"type": "assert_return", "line": 369, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3741319169"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 370, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "i64", "value": "9223372036854775807"}]}, - {"type": "assert_return", "line": 371, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 372, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 373, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 374, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 375, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "4288675840"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 377, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 378, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 379, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 380, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2147483649"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 381, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 382, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1066192077"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 383, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 384, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1333788672"}]}, "expected": [{"type": "i64", "value": "4294967296"}]}, - {"type": "assert_return", "line": 385, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1602224127"}]}, "expected": [{"type": "i64", "value": "18446742974197923840"}]}, - {"type": "assert_return", "line": 386, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "3211159142"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 387, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "3212836863"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 388, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1602224128"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 389, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "3212836864"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 390, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 391, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 392, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 393, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 394, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 395, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "4288675840"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 397, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 398, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 399, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "1"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 400, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9223372036854775809"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 401, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 402, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4607632778762754458"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 403, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 404, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13830554455654793216"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 405, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13831004815617530266"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 406, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13832806255468478464"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 407, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13834607695319426662"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 408, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13835058055282163712"}]}, "expected": [{"type": "i64", "value": "18446744073709551614"}]}, - {"type": "assert_return", "line": 409, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4751297606875873280"}]}, "expected": [{"type": "i64", "value": "4294967296"}]}, - {"type": "assert_return", "line": 410, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13974669643730649088"}]}, "expected": [{"type": "i64", "value": "18446744069414584320"}]}, - {"type": "assert_return", "line": 411, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4890909195324358655"}]}, "expected": [{"type": "i64", "value": "9223372036854774784"}]}, - {"type": "assert_return", "line": 412, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "14114281232179134464"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 413, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4890909195324358656"}]}, "expected": [{"type": "i64", "value": "9223372036854775807"}]}, - {"type": "assert_return", "line": 414, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "14114281232179134465"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 415, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "i64", "value": "9223372036854775807"}]}, - {"type": "assert_return", "line": 416, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 417, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 418, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 419, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 420, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 422, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 423, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 424, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "1"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 425, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9223372036854775809"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 426, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 427, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4607632778762754458"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 428, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 429, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4751297606873776128"}]}, "expected": [{"type": "i64", "value": "4294967295"}]}, - {"type": "assert_return", "line": 430, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4751297606875873280"}]}, "expected": [{"type": "i64", "value": "4294967296"}]}, - {"type": "assert_return", "line": 431, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4895412794951729151"}]}, "expected": [{"type": "i64", "value": "18446744073709549568"}]}, - {"type": "assert_return", "line": 432, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "13829653735729319117"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 433, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "13830554455654793215"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 434, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4726483295884279808"}]}, "expected": [{"type": "i64", "value": "100000000"}]}, - {"type": "assert_return", "line": 435, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4846369599423283200"}]}, "expected": [{"type": "i64", "value": "10000000000000000"}]}, - {"type": "assert_return", "line": 436, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4890909195324358656"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 437, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4895412794951729152"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 438, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "13830554455654793216"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 439, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 440, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 441, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 442, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 443, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 444, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 446, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 447, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "f32", "value": "3212836864"}]}, - {"type": "assert_return", "line": 448, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 449, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "2147483647"}]}, "expected": [{"type": "f32", "value": "1325400064"}]}, - {"type": "assert_return", "line": 450, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "3472883712"}]}, - {"type": "assert_return", "line": 451, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "1234567890"}]}, "expected": [{"type": "f32", "value": "1318267910"}]}, - {"type": "assert_return", "line": 453, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "16777217"}]}, "expected": [{"type": "f32", "value": "1266679808"}]}, - {"type": "assert_return", "line": 454, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "4278190079"}]}, "expected": [{"type": "f32", "value": "3414163456"}]}, - {"type": "assert_return", "line": 455, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "16777219"}]}, "expected": [{"type": "f32", "value": "1266679810"}]}, - {"type": "assert_return", "line": 456, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "4278190077"}]}, "expected": [{"type": "f32", "value": "3414163458"}]}, - {"type": "assert_return", "line": 458, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 459, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "18446744073709551615"}]}, "expected": [{"type": "f32", "value": "3212836864"}]}, - {"type": "assert_return", "line": 460, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 461, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "9223372036854775807"}]}, "expected": [{"type": "f32", "value": "1593835520"}]}, - {"type": "assert_return", "line": 462, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "9223372036854775808"}]}, "expected": [{"type": "f32", "value": "3741319168"}]}, - {"type": "assert_return", "line": 463, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "314159265358979"}]}, "expected": [{"type": "f32", "value": "1468980468"}]}, - {"type": "assert_return", "line": 465, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "16777217"}]}, "expected": [{"type": "f32", "value": "1266679808"}]}, - {"type": "assert_return", "line": 466, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "18446744073692774399"}]}, "expected": [{"type": "f32", "value": "3414163456"}]}, - {"type": "assert_return", "line": 467, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "16777219"}]}, "expected": [{"type": "f32", "value": "1266679810"}]}, - {"type": "assert_return", "line": 468, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "18446744073692774397"}]}, "expected": [{"type": "f32", "value": "3414163458"}]}, - {"type": "assert_return", "line": 470, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "9223371212221054977"}]}, "expected": [{"type": "f32", "value": "1593835519"}]}, - {"type": "assert_return", "line": 471, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "9223372311732682753"}]}, "expected": [{"type": "f32", "value": "3741319167"}]}, - {"type": "assert_return", "line": 472, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "9007199791611905"}]}, "expected": [{"type": "f32", "value": "1509949441"}]}, - {"type": "assert_return", "line": 473, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "18437736873917939711"}]}, "expected": [{"type": "f32", "value": "3657433089"}]}, - {"type": "assert_return", "line": 475, "action": {"type": "invoke", "field": "f64.convert_i32_s", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 476, "action": {"type": "invoke", "field": "f64.convert_i32_s", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "f64", "value": "13830554455654793216"}]}, - {"type": "assert_return", "line": 477, "action": {"type": "invoke", "field": "f64.convert_i32_s", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 478, "action": {"type": "invoke", "field": "f64.convert_i32_s", "args": [{"type": "i32", "value": "2147483647"}]}, "expected": [{"type": "f64", "value": "4746794007244308480"}]}, - {"type": "assert_return", "line": 479, "action": {"type": "invoke", "field": "f64.convert_i32_s", "args": [{"type": "i32", "value": "2147483648"}]}, "expected": [{"type": "f64", "value": "13970166044103278592"}]}, - {"type": "assert_return", "line": 480, "action": {"type": "invoke", "field": "f64.convert_i32_s", "args": [{"type": "i32", "value": "987654321"}]}, "expected": [{"type": "f64", "value": "4741568253304766464"}]}, - {"type": "assert_return", "line": 482, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 483, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "18446744073709551615"}]}, "expected": [{"type": "f64", "value": "13830554455654793216"}]}, - {"type": "assert_return", "line": 484, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 485, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "9223372036854775807"}]}, "expected": [{"type": "f64", "value": "4890909195324358656"}]}, - {"type": "assert_return", "line": 486, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "14114281232179134464"}]}, - {"type": "assert_return", "line": 487, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "4669201609102990"}]}, "expected": [{"type": "f64", "value": "4841535201405015694"}]}, - {"type": "assert_return", "line": 489, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "9007199254740993"}]}, "expected": [{"type": "f64", "value": "4845873199050653696"}]}, - {"type": "assert_return", "line": 490, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "18437736874454810623"}]}, "expected": [{"type": "f64", "value": "14069245235905429504"}]}, - {"type": "assert_return", "line": 491, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "9007199254740995"}]}, "expected": [{"type": "f64", "value": "4845873199050653698"}]}, - {"type": "assert_return", "line": 492, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "18437736874454810621"}]}, "expected": [{"type": "f64", "value": "14069245235905429506"}]}, - {"type": "assert_return", "line": 494, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 495, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 496, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "2147483647"}]}, "expected": [{"type": "f32", "value": "1325400064"}]}, - {"type": "assert_return", "line": 497, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "1325400064"}]}, - {"type": "assert_return", "line": 498, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "305419896"}]}, "expected": [{"type": "f32", "value": "1301390004"}]}, - {"type": "assert_return", "line": 499, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "f32", "value": "1333788672"}]}, - {"type": "assert_return", "line": 500, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "2147483776"}]}, "expected": [{"type": "f32", "value": "1325400064"}]}, - {"type": "assert_return", "line": 501, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "2147483777"}]}, "expected": [{"type": "f32", "value": "1325400065"}]}, - {"type": "assert_return", "line": 502, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "2147483778"}]}, "expected": [{"type": "f32", "value": "1325400065"}]}, - {"type": "assert_return", "line": 503, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "4294966912"}]}, "expected": [{"type": "f32", "value": "1333788670"}]}, - {"type": "assert_return", "line": 504, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "4294966913"}]}, "expected": [{"type": "f32", "value": "1333788671"}]}, - {"type": "assert_return", "line": 505, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "4294966914"}]}, "expected": [{"type": "f32", "value": "1333788671"}]}, - {"type": "assert_return", "line": 507, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "16777217"}]}, "expected": [{"type": "f32", "value": "1266679808"}]}, - {"type": "assert_return", "line": 508, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "16777219"}]}, "expected": [{"type": "f32", "value": "1266679810"}]}, - {"type": "assert_return", "line": 510, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 511, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 512, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854775807"}]}, "expected": [{"type": "f32", "value": "1593835520"}]}, - {"type": "assert_return", "line": 513, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854775808"}]}, "expected": [{"type": "f32", "value": "1593835520"}]}, - {"type": "assert_return", "line": 514, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "18446744073709551615"}]}, "expected": [{"type": "f32", "value": "1602224128"}]}, - {"type": "assert_return", "line": 516, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "16777217"}]}, "expected": [{"type": "f32", "value": "1266679808"}]}, - {"type": "assert_return", "line": 517, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "16777219"}]}, "expected": [{"type": "f32", "value": "1266679810"}]}, - {"type": "assert_return", "line": 519, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "9007199791611905"}]}, "expected": [{"type": "f32", "value": "1509949441"}]}, - {"type": "assert_return", "line": 520, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "9223371761976868863"}]}, "expected": [{"type": "f32", "value": "1593835519"}]}, - {"type": "assert_return", "line": 521, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "9223372586610589697"}]}, "expected": [{"type": "f32", "value": "1593835521"}]}, - {"type": "assert_return", "line": 522, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "18446742424442109953"}]}, "expected": [{"type": "f32", "value": "1602224127"}]}, - {"type": "assert_return", "line": 524, "action": {"type": "invoke", "field": "f64.convert_i32_u", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 525, "action": {"type": "invoke", "field": "f64.convert_i32_u", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 526, "action": {"type": "invoke", "field": "f64.convert_i32_u", "args": [{"type": "i32", "value": "2147483647"}]}, "expected": [{"type": "f64", "value": "4746794007244308480"}]}, - {"type": "assert_return", "line": 527, "action": {"type": "invoke", "field": "f64.convert_i32_u", "args": [{"type": "i32", "value": "2147483648"}]}, "expected": [{"type": "f64", "value": "4746794007248502784"}]}, - {"type": "assert_return", "line": 528, "action": {"type": "invoke", "field": "f64.convert_i32_u", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "f64", "value": "4751297606873776128"}]}, - {"type": "assert_return", "line": 530, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 531, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 532, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854775807"}]}, "expected": [{"type": "f64", "value": "4890909195324358656"}]}, - {"type": "assert_return", "line": 533, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "4890909195324358656"}]}, - {"type": "assert_return", "line": 534, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "18446744073709551615"}]}, "expected": [{"type": "f64", "value": "4895412794951729152"}]}, - {"type": "assert_return", "line": 535, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854776832"}]}, "expected": [{"type": "f64", "value": "4890909195324358656"}]}, - {"type": "assert_return", "line": 536, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854776833"}]}, "expected": [{"type": "f64", "value": "4890909195324358657"}]}, - {"type": "assert_return", "line": 537, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854776834"}]}, "expected": [{"type": "f64", "value": "4890909195324358657"}]}, - {"type": "assert_return", "line": 538, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "18446744073709548544"}]}, "expected": [{"type": "f64", "value": "4895412794951729150"}]}, - {"type": "assert_return", "line": 539, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "18446744073709548545"}]}, "expected": [{"type": "f64", "value": "4895412794951729151"}]}, - {"type": "assert_return", "line": 540, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "18446744073709548546"}]}, "expected": [{"type": "f64", "value": "4895412794951729151"}]}, - {"type": "assert_return", "line": 542, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9007199254740993"}]}, "expected": [{"type": "f64", "value": "4845873199050653696"}]}, - {"type": "assert_return", "line": 543, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9007199254740995"}]}, "expected": [{"type": "f64", "value": "4845873199050653698"}]}, - {"type": "assert_return", "line": 545, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 546, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 547, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "1"}]}, "expected": [{"type": "f64", "value": "3936146074321813504"}]}, - {"type": "assert_return", "line": 548, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2147483649"}]}, "expected": [{"type": "f64", "value": "13159518111176589312"}]}, - {"type": "assert_return", "line": 549, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 550, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "3212836864"}]}, "expected": [{"type": "f64", "value": "13830554455654793216"}]}, - {"type": "assert_return", "line": 551, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "4286578687"}]}, "expected": [{"type": "f64", "value": "14407015207421345792"}]}, - {"type": "assert_return", "line": 552, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2139095039"}]}, "expected": [{"type": "f64", "value": "5183643170566569984"}]}, - {"type": "assert_return", "line": 554, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "67108864"}]}, "expected": [{"type": "f64", "value": "4071254063142928384"}]}, - {"type": "assert_return", "line": 556, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2118632255"}]}, "expected": [{"type": "f64", "value": "5172657297058430976"}]}, - {"type": "assert_return", "line": 557, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "f64", "value": "9218868437227405312"}]}, - {"type": "assert_return", "line": 558, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "f64", "value": "18442240474082181120"}]}, - {"type": "assert_return", "line": 559, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f64", "value": "nan:canonical"}]}, - {"type": "assert_return", "line": 560, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f64", "value": "nan:arithmetic"}]}, - {"type": "assert_return", "line": 561, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f64", "value": "nan:canonical"}]}, - {"type": "assert_return", "line": 562, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "4288675840"}]}, "expected": [{"type": "f64", "value": "nan:arithmetic"}]}, - {"type": "assert_return", "line": 564, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 565, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 566, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "1"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 567, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "9223372036854775809"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 568, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 569, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13830554455654793216"}]}, "expected": [{"type": "f32", "value": "3212836864"}]}, - {"type": "assert_return", "line": 570, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4039728865214464000"}]}, "expected": [{"type": "f32", "value": "8388608"}]}, - {"type": "assert_return", "line": 571, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13263100902069239808"}]}, "expected": [{"type": "f32", "value": "2155872256"}]}, - {"type": "assert_return", "line": 572, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4039728865214463999"}]}, "expected": [{"type": "f32", "value": "8388607"}]}, - {"type": "assert_return", "line": 573, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13263100902069239807"}]}, "expected": [{"type": "f32", "value": "2155872255"}]}, - {"type": "assert_return", "line": 574, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "3936146074321813504"}]}, "expected": [{"type": "f32", "value": "1"}]}, - {"type": "assert_return", "line": 575, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13159518111176589312"}]}, "expected": [{"type": "f32", "value": "2147483649"}]}, - {"type": "assert_return", "line": 576, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5183643170298134528"}]}, "expected": [{"type": "f32", "value": "2139095038"}]}, - {"type": "assert_return", "line": 577, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "14407015207152910336"}]}, "expected": [{"type": "f32", "value": "4286578686"}]}, - {"type": "assert_return", "line": 578, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5183643170298134529"}]}, "expected": [{"type": "f32", "value": "2139095039"}]}, - {"type": "assert_return", "line": 579, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "14407015207152910337"}]}, "expected": [{"type": "f32", "value": "4286578687"}]}, - {"type": "assert_return", "line": 580, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5183643170566569984"}]}, "expected": [{"type": "f32", "value": "2139095039"}]}, - {"type": "assert_return", "line": 581, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "14407015207421345792"}]}, "expected": [{"type": "f32", "value": "4286578687"}]}, - {"type": "assert_return", "line": 582, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5183643170835005439"}]}, "expected": [{"type": "f32", "value": "2139095039"}]}, - {"type": "assert_return", "line": 583, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "14407015207689781247"}]}, "expected": [{"type": "f32", "value": "4286578687"}]}, - {"type": "assert_return", "line": 584, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5183643170835005440"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, - {"type": "assert_return", "line": 585, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "14407015207689781248"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, - {"type": "assert_return", "line": 586, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4071254063142928384"}]}, "expected": [{"type": "f32", "value": "67108864"}]}, - {"type": "assert_return", "line": 587, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5172657297058430976"}]}, "expected": [{"type": "f32", "value": "2118632255"}]}, - {"type": "assert_return", "line": 588, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, - {"type": "assert_return", "line": 589, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, - {"type": "assert_return", "line": 590, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182418800017409"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 591, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182418800017407"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 592, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182419068452864"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 593, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182419068452865"}]}, "expected": [{"type": "f32", "value": "1065353217"}]}, - {"type": "assert_return", "line": 594, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182419605323775"}]}, "expected": [{"type": "f32", "value": "1065353217"}]}, - {"type": "assert_return", "line": 595, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182419605323776"}]}, "expected": [{"type": "f32", "value": "1065353218"}]}, - {"type": "assert_return", "line": 596, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182420142194688"}]}, "expected": [{"type": "f32", "value": "1065353218"}]}, - {"type": "assert_return", "line": 597, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4715268810125344768"}]}, "expected": [{"type": "f32", "value": "1266679808"}]}, - {"type": "assert_return", "line": 598, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4715268810125344769"}]}, "expected": [{"type": "f32", "value": "1266679809"}]}, - {"type": "assert_return", "line": 599, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4715268810662215679"}]}, "expected": [{"type": "f32", "value": "1266679809"}]}, - {"type": "assert_return", "line": 600, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4715268810662215680"}]}, "expected": [{"type": "f32", "value": "1266679810"}]}, - {"type": "assert_return", "line": 601, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5094955347580439664"}]}, "expected": [{"type": "f32", "value": "1973901096"}]}, - {"type": "assert_return", "line": 602, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4101111194527827589"}]}, "expected": [{"type": "f32", "value": "122722105"}]}, - {"type": "assert_return", "line": 603, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4038806939559600639"}]}, "expected": [{"type": "f32", "value": "7529997"}]}, - {"type": "assert_return", "line": 604, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13836913116900734306"}]}, "expected": [{"type": "f32", "value": "3224680794"}]}, - {"type": "assert_return", "line": 605, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "14338315240173327556"}]}, "expected": [{"type": "f32", "value": "4158615026"}]}, - {"type": "assert_return", "line": 606, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f32", "value": "nan:canonical"}]}, - {"type": "assert_return", "line": 607, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f32", "value": "nan:arithmetic"}]}, - {"type": "assert_return", "line": 608, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f32", "value": "nan:canonical"}]}, - {"type": "assert_return", "line": 609, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "expected": [{"type": "f32", "value": "nan:arithmetic"}]}, - {"type": "assert_return", "line": 610, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4503599627370496"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 611, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "9227875636482146304"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 612, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "3931642474694443008"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 613, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13155014511549218816"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 614, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "3931642474694443009"}]}, "expected": [{"type": "f32", "value": "1"}]}, - {"type": "assert_return", "line": 615, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13155014511549218817"}]}, "expected": [{"type": "f32", "value": "2147483649"}]}, - {"type": "assert_return", "line": 617, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 618, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 619, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "1"}]}, - {"type": "assert_return", "line": 620, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "f32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 621, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "123456789"}]}, "expected": [{"type": "f32", "value": "123456789"}]}, - {"type": "assert_return", "line": 622, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "2147483649"}]}, "expected": [{"type": "f32", "value": "2147483649"}]}, - {"type": "assert_return", "line": 623, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "2139095040"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, - {"type": "assert_return", "line": 624, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "4286578688"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, - {"type": "assert_return", "line": 625, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 626, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "4290772992"}]}, - {"type": "assert_return", "line": 627, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "2141192192"}]}, - {"type": "assert_return", "line": 628, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "4288675840"}]}, "expected": [{"type": "f32", "value": "4288675840"}]}, - {"type": "assert_return", "line": 630, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 631, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "f64", "value": "1"}]}, - {"type": "assert_return", "line": 632, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "18446744073709551615"}]}, "expected": [{"type": "f64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 633, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 634, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "1234567890"}]}, "expected": [{"type": "f64", "value": "1234567890"}]}, - {"type": "assert_return", "line": 635, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "9223372036854775809"}]}, "expected": [{"type": "f64", "value": "9223372036854775809"}]}, - {"type": "assert_return", "line": 636, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "9218868437227405312"}]}, "expected": [{"type": "f64", "value": "9218868437227405312"}]}, - {"type": "assert_return", "line": 637, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "18442240474082181120"}]}, "expected": [{"type": "f64", "value": "18442240474082181120"}]}, - {"type": "assert_return", "line": 638, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 639, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "18444492273895866368"}]}, - {"type": "assert_return", "line": 640, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "9219994337134247936"}]}, - {"type": "assert_return", "line": 641, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "18443366373989023744"}]}, "expected": [{"type": "f64", "value": "18443366373989023744"}]}, - {"type": "assert_return", "line": 643, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 644, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 645, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 646, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 647, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "2147483649"}]}, "expected": [{"type": "i32", "value": "2147483649"}]}, - {"type": "assert_return", "line": 648, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 649, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "1078530010"}]}, "expected": [{"type": "i32", "value": "1078530010"}]}, - {"type": "assert_return", "line": 650, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "2139095039"}]}, "expected": [{"type": "i32", "value": "2139095039"}]}, - {"type": "assert_return", "line": 651, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "4286578687"}]}, "expected": [{"type": "i32", "value": "4286578687"}]}, - {"type": "assert_return", "line": 652, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "i32", "value": "2139095040"}]}, - {"type": "assert_return", "line": 653, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "i32", "value": "4286578688"}]}, - {"type": "assert_return", "line": 654, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 655, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "i32", "value": "4290772992"}]}, - {"type": "assert_return", "line": 656, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2141192192"}]}, - {"type": "assert_return", "line": 657, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "4288675840"}]}, "expected": [{"type": "i32", "value": "4288675840"}]}, - {"type": "assert_return", "line": 659, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 660, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 661, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 662, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "18446744073709551615"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 663, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "9223372036854775809"}]}, "expected": [{"type": "i64", "value": "9223372036854775809"}]}, - {"type": "assert_return", "line": 664, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 665, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "4614256656552045841"}]}, "expected": [{"type": "i64", "value": "4614256656552045841"}]}, - {"type": "assert_return", "line": 666, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "9218868437227405311"}]}, "expected": [{"type": "i64", "value": "9218868437227405311"}]}, - {"type": "assert_return", "line": 667, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "18442240474082181119"}]}, "expected": [{"type": "i64", "value": "18442240474082181119"}]}, - {"type": "assert_return", "line": 668, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "i64", "value": "9218868437227405312"}]}, - {"type": "assert_return", "line": 669, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "i64", "value": "18442240474082181120"}]}, - {"type": "assert_return", "line": 670, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 671, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "i64", "value": "18444492273895866368"}]}, - {"type": "assert_return", "line": 672, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9219994337134247936"}]}, - {"type": "assert_return", "line": 673, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "expected": [{"type": "i64", "value": "18443366373989023744"}]}, - {"type": "assert_invalid", "line": 677, "filename": "conversions.1.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 678, "filename": "conversions.2.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 679, "filename": "conversions.3.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 680, "filename": "conversions.4.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 681, "filename": "conversions.5.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 682, "filename": "conversions.6.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 683, "filename": "conversions.7.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 684, "filename": "conversions.8.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 685, "filename": "conversions.9.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 686, "filename": "conversions.10.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 687, "filename": "conversions.11.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 688, "filename": "conversions.12.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 689, "filename": "conversions.13.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 690, "filename": "conversions.14.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 691, "filename": "conversions.15.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 692, "filename": "conversions.16.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 693, "filename": "conversions.17.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 694, "filename": "conversions.18.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 695, "filename": "conversions.19.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 696, "filename": "conversions.20.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 697, "filename": "conversions.21.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 698, "filename": "conversions.22.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 699, "filename": "conversions.23.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 700, "filename": "conversions.24.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 701, "filename": "conversions.25.wasm", "text": "type mismatch", "module_type": "binary"}]} + {"type": "assert_return", "line": 256, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 257, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "f32", "value": "3212836864"}]}, + {"type": "assert_return", "line": 258, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 259, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "2147483647"}]}, "expected": [{"type": "f32", "value": "1325400064"}]}, + {"type": "assert_return", "line": 260, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "3472883712"}]}, + {"type": "assert_return", "line": 261, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "1234567890"}]}, "expected": [{"type": "f32", "value": "1318267910"}]}, + {"type": "assert_return", "line": 265, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 266, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 267, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 268, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2147483649"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 269, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 270, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1066192077"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 271, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 272, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3212836864"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 273, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3213675725"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 274, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3217031168"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 275, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3220386611"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 276, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3221225472"}]}, "expected": [{"type": "i32", "value": "4294967294"}]}, + {"type": "assert_return", "line": 277, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1325400063"}]}, "expected": [{"type": "i32", "value": "2147483520"}]}, + {"type": "assert_return", "line": 278, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3472883712"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 279, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1325400064"}]}, "expected": [{"type": "i32", "value": "2147483647"}]}, + {"type": "assert_return", "line": 280, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3472883713"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 281, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "i32", "value": "2147483647"}]}, + {"type": "assert_return", "line": 282, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 283, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 284, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 285, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 286, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_s", "args": [{"type": "f32", "value": "4288675840"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 288, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 289, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 290, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 291, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2147483649"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 292, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 293, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1066192077"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 294, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 295, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1072902963"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 296, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 297, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1325400064"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 298, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1333788671"}]}, "expected": [{"type": "i32", "value": "4294967040"}]}, + {"type": "assert_return", "line": 299, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "3211159142"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 300, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "3212836863"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 301, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1333788672"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 302, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "3212836864"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 303, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 304, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 305, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 306, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 307, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 308, "action": {"type": "invoke", "field": "i32.trunc_sat_f32_u", "args": [{"type": "f32", "value": "4288675840"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 310, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 311, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 312, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 313, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9223372036854775809"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 314, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 315, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4607632778762754458"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 316, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 317, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13830554455654793216"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 318, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13831004815617530266"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 319, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13832806255468478464"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 320, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13834607695319426662"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 321, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13835058055282163712"}]}, "expected": [{"type": "i32", "value": "4294967294"}]}, + {"type": "assert_return", "line": 322, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4746794007244308480"}]}, "expected": [{"type": "i32", "value": "2147483647"}]}, + {"type": "assert_return", "line": 323, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13970166044103278592"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 324, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4746794007248502784"}]}, "expected": [{"type": "i32", "value": "2147483647"}]}, + {"type": "assert_return", "line": 325, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13970166044105375744"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 326, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "i32", "value": "2147483647"}]}, + {"type": "assert_return", "line": 327, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 328, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 329, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 330, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 331, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_s", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 333, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 334, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 335, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 336, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9223372036854775809"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 337, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 338, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4607632778762754458"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 339, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 340, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4611235658464650854"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 341, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 342, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4746794007248502784"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 343, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4751297606873776128"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 344, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "13829653735729319117"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 345, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "13830554455654793215"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 346, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4726483295884279808"}]}, "expected": [{"type": "i32", "value": "100000000"}]}, + {"type": "assert_return", "line": 347, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4751297606875873280"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 348, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "13830554455654793216"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 349, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4846369599423283200"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 350, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "5055640609639927018"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 351, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4890909195324358656"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 352, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 353, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 354, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 355, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 356, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 357, "action": {"type": "invoke", "field": "i32.trunc_sat_f64_u", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 359, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 360, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 361, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 362, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2147483649"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 363, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 364, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1066192077"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 365, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 366, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3212836864"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 367, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3213675725"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 368, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3217031168"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 369, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3220386611"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 370, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3221225472"}]}, "expected": [{"type": "i64", "value": "18446744073709551614"}]}, + {"type": "assert_return", "line": 371, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1333788672"}]}, "expected": [{"type": "i64", "value": "4294967296"}]}, + {"type": "assert_return", "line": 372, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3481272320"}]}, "expected": [{"type": "i64", "value": "18446744069414584320"}]}, + {"type": "assert_return", "line": 373, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1593835519"}]}, "expected": [{"type": "i64", "value": "9223371487098961920"}]}, + {"type": "assert_return", "line": 374, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3741319168"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 375, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "1593835520"}]}, "expected": [{"type": "i64", "value": "9223372036854775807"}]}, + {"type": "assert_return", "line": 376, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "3741319169"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 377, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "i64", "value": "9223372036854775807"}]}, + {"type": "assert_return", "line": 378, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 379, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 380, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 381, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 382, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_s", "args": [{"type": "f32", "value": "4288675840"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 384, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 385, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 386, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 387, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2147483649"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 388, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 389, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1066192077"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 390, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 391, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1333788672"}]}, "expected": [{"type": "i64", "value": "4294967296"}]}, + {"type": "assert_return", "line": 392, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1602224127"}]}, "expected": [{"type": "i64", "value": "18446742974197923840"}]}, + {"type": "assert_return", "line": 393, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "3211159142"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 394, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "3212836863"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 395, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "1602224128"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 396, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "3212836864"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 397, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 398, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 399, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 400, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 401, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 402, "action": {"type": "invoke", "field": "i64.trunc_sat_f32_u", "args": [{"type": "f32", "value": "4288675840"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 404, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 405, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 406, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "1"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 407, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9223372036854775809"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 408, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 409, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4607632778762754458"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 410, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 411, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13830554455654793216"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 412, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13831004815617530266"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 413, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13832806255468478464"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 414, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13834607695319426662"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 415, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13835058055282163712"}]}, "expected": [{"type": "i64", "value": "18446744073709551614"}]}, + {"type": "assert_return", "line": 416, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4751297606875873280"}]}, "expected": [{"type": "i64", "value": "4294967296"}]}, + {"type": "assert_return", "line": 417, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "13974669643730649088"}]}, "expected": [{"type": "i64", "value": "18446744069414584320"}]}, + {"type": "assert_return", "line": 418, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4890909195324358655"}]}, "expected": [{"type": "i64", "value": "9223372036854774784"}]}, + {"type": "assert_return", "line": 419, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "14114281232179134464"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 420, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "4890909195324358656"}]}, "expected": [{"type": "i64", "value": "9223372036854775807"}]}, + {"type": "assert_return", "line": 421, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "14114281232179134465"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 422, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "i64", "value": "9223372036854775807"}]}, + {"type": "assert_return", "line": 423, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 424, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 425, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 426, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 427, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_s", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 429, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 430, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 431, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "1"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 432, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9223372036854775809"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 433, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 434, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4607632778762754458"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 435, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 436, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4751297606873776128"}]}, "expected": [{"type": "i64", "value": "4294967295"}]}, + {"type": "assert_return", "line": 437, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4751297606875873280"}]}, "expected": [{"type": "i64", "value": "4294967296"}]}, + {"type": "assert_return", "line": 438, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4895412794951729151"}]}, "expected": [{"type": "i64", "value": "18446744073709549568"}]}, + {"type": "assert_return", "line": 439, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "13829653735729319117"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 440, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "13830554455654793215"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 441, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4726483295884279808"}]}, "expected": [{"type": "i64", "value": "100000000"}]}, + {"type": "assert_return", "line": 442, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4846369599423283200"}]}, "expected": [{"type": "i64", "value": "10000000000000000"}]}, + {"type": "assert_return", "line": 443, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4890909195324358656"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 444, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "4895412794951729152"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 445, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "13830554455654793216"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 446, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 447, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 448, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 449, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 450, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 451, "action": {"type": "invoke", "field": "i64.trunc_sat_f64_u", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 454, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "16777217"}]}, "expected": [{"type": "f32", "value": "1266679808"}]}, + {"type": "assert_return", "line": 455, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "4278190079"}]}, "expected": [{"type": "f32", "value": "3414163456"}]}, + {"type": "assert_return", "line": 456, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "16777219"}]}, "expected": [{"type": "f32", "value": "1266679810"}]}, + {"type": "assert_return", "line": 457, "action": {"type": "invoke", "field": "f32.convert_i32_s", "args": [{"type": "i32", "value": "4278190077"}]}, "expected": [{"type": "f32", "value": "3414163458"}]}, + {"type": "assert_return", "line": 459, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 460, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "18446744073709551615"}]}, "expected": [{"type": "f32", "value": "3212836864"}]}, + {"type": "assert_return", "line": 461, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 462, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "9223372036854775807"}]}, "expected": [{"type": "f32", "value": "1593835520"}]}, + {"type": "assert_return", "line": 463, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "9223372036854775808"}]}, "expected": [{"type": "f32", "value": "3741319168"}]}, + {"type": "assert_return", "line": 464, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "314159265358979"}]}, "expected": [{"type": "f32", "value": "1468980468"}]}, + {"type": "assert_return", "line": 466, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "16777217"}]}, "expected": [{"type": "f32", "value": "1266679808"}]}, + {"type": "assert_return", "line": 467, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "18446744073692774399"}]}, "expected": [{"type": "f32", "value": "3414163456"}]}, + {"type": "assert_return", "line": 468, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "16777219"}]}, "expected": [{"type": "f32", "value": "1266679810"}]}, + {"type": "assert_return", "line": 469, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "18446744073692774397"}]}, "expected": [{"type": "f32", "value": "3414163458"}]}, + {"type": "assert_return", "line": 471, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "9223371212221054977"}]}, "expected": [{"type": "f32", "value": "1593835519"}]}, + {"type": "assert_return", "line": 472, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "9223372311732682753"}]}, "expected": [{"type": "f32", "value": "3741319167"}]}, + {"type": "assert_return", "line": 473, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "9007199791611905"}]}, "expected": [{"type": "f32", "value": "1509949441"}]}, + {"type": "assert_return", "line": 474, "action": {"type": "invoke", "field": "f32.convert_i64_s", "args": [{"type": "i64", "value": "18437736873917939711"}]}, "expected": [{"type": "f32", "value": "3657433089"}]}, + {"type": "assert_return", "line": 476, "action": {"type": "invoke", "field": "f64.convert_i32_s", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 477, "action": {"type": "invoke", "field": "f64.convert_i32_s", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "f64", "value": "13830554455654793216"}]}, + {"type": "assert_return", "line": 478, "action": {"type": "invoke", "field": "f64.convert_i32_s", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 479, "action": {"type": "invoke", "field": "f64.convert_i32_s", "args": [{"type": "i32", "value": "2147483647"}]}, "expected": [{"type": "f64", "value": "4746794007244308480"}]}, + {"type": "assert_return", "line": 480, "action": {"type": "invoke", "field": "f64.convert_i32_s", "args": [{"type": "i32", "value": "2147483648"}]}, "expected": [{"type": "f64", "value": "13970166044103278592"}]}, + {"type": "assert_return", "line": 481, "action": {"type": "invoke", "field": "f64.convert_i32_s", "args": [{"type": "i32", "value": "987654321"}]}, "expected": [{"type": "f64", "value": "4741568253304766464"}]}, + {"type": "assert_return", "line": 483, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 484, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "18446744073709551615"}]}, "expected": [{"type": "f64", "value": "13830554455654793216"}]}, + {"type": "assert_return", "line": 485, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 486, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "9223372036854775807"}]}, "expected": [{"type": "f64", "value": "4890909195324358656"}]}, + {"type": "assert_return", "line": 487, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "14114281232179134464"}]}, + {"type": "assert_return", "line": 488, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "4669201609102990"}]}, "expected": [{"type": "f64", "value": "4841535201405015694"}]}, + {"type": "assert_return", "line": 490, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "9007199254740993"}]}, "expected": [{"type": "f64", "value": "4845873199050653696"}]}, + {"type": "assert_return", "line": 491, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "18437736874454810623"}]}, "expected": [{"type": "f64", "value": "14069245235905429504"}]}, + {"type": "assert_return", "line": 492, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "9007199254740995"}]}, "expected": [{"type": "f64", "value": "4845873199050653698"}]}, + {"type": "assert_return", "line": 493, "action": {"type": "invoke", "field": "f64.convert_i64_s", "args": [{"type": "i64", "value": "18437736874454810621"}]}, "expected": [{"type": "f64", "value": "14069245235905429506"}]}, + {"type": "assert_return", "line": 495, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 496, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 497, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "2147483647"}]}, "expected": [{"type": "f32", "value": "1325400064"}]}, + {"type": "assert_return", "line": 498, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "1325400064"}]}, + {"type": "assert_return", "line": 499, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "305419896"}]}, "expected": [{"type": "f32", "value": "1301390004"}]}, + {"type": "assert_return", "line": 500, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "f32", "value": "1333788672"}]}, + {"type": "assert_return", "line": 501, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "2147483776"}]}, "expected": [{"type": "f32", "value": "1325400064"}]}, + {"type": "assert_return", "line": 502, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "2147483777"}]}, "expected": [{"type": "f32", "value": "1325400065"}]}, + {"type": "assert_return", "line": 503, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "2147483778"}]}, "expected": [{"type": "f32", "value": "1325400065"}]}, + {"type": "assert_return", "line": 504, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "4294966912"}]}, "expected": [{"type": "f32", "value": "1333788670"}]}, + {"type": "assert_return", "line": 505, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "4294966913"}]}, "expected": [{"type": "f32", "value": "1333788671"}]}, + {"type": "assert_return", "line": 506, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "4294966914"}]}, "expected": [{"type": "f32", "value": "1333788671"}]}, + {"type": "assert_return", "line": 508, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "16777217"}]}, "expected": [{"type": "f32", "value": "1266679808"}]}, + {"type": "assert_return", "line": 509, "action": {"type": "invoke", "field": "f32.convert_i32_u", "args": [{"type": "i32", "value": "16777219"}]}, "expected": [{"type": "f32", "value": "1266679810"}]}, + {"type": "assert_return", "line": 511, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 512, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 513, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854775807"}]}, "expected": [{"type": "f32", "value": "1593835520"}]}, + {"type": "assert_return", "line": 514, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854775808"}]}, "expected": [{"type": "f32", "value": "1593835520"}]}, + {"type": "assert_return", "line": 515, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "18446744073709551615"}]}, "expected": [{"type": "f32", "value": "1602224128"}]}, + {"type": "assert_return", "line": 517, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "16777217"}]}, "expected": [{"type": "f32", "value": "1266679808"}]}, + {"type": "assert_return", "line": 518, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "16777219"}]}, "expected": [{"type": "f32", "value": "1266679810"}]}, + {"type": "assert_return", "line": 520, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "9007199791611905"}]}, "expected": [{"type": "f32", "value": "1509949441"}]}, + {"type": "assert_return", "line": 521, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "9223371761976868863"}]}, "expected": [{"type": "f32", "value": "1593835519"}]}, + {"type": "assert_return", "line": 522, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "9223372586610589697"}]}, "expected": [{"type": "f32", "value": "1593835521"}]}, + {"type": "assert_return", "line": 523, "action": {"type": "invoke", "field": "f32.convert_i64_u", "args": [{"type": "i64", "value": "18446742424442109953"}]}, "expected": [{"type": "f32", "value": "1602224127"}]}, + {"type": "assert_return", "line": 525, "action": {"type": "invoke", "field": "f64.convert_i32_u", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 526, "action": {"type": "invoke", "field": "f64.convert_i32_u", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 527, "action": {"type": "invoke", "field": "f64.convert_i32_u", "args": [{"type": "i32", "value": "2147483647"}]}, "expected": [{"type": "f64", "value": "4746794007244308480"}]}, + {"type": "assert_return", "line": 528, "action": {"type": "invoke", "field": "f64.convert_i32_u", "args": [{"type": "i32", "value": "2147483648"}]}, "expected": [{"type": "f64", "value": "4746794007248502784"}]}, + {"type": "assert_return", "line": 529, "action": {"type": "invoke", "field": "f64.convert_i32_u", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "f64", "value": "4751297606873776128"}]}, + {"type": "assert_return", "line": 531, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 532, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 533, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854775807"}]}, "expected": [{"type": "f64", "value": "4890909195324358656"}]}, + {"type": "assert_return", "line": 534, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "4890909195324358656"}]}, + {"type": "assert_return", "line": 535, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "18446744073709551615"}]}, "expected": [{"type": "f64", "value": "4895412794951729152"}]}, + {"type": "assert_return", "line": 536, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854776832"}]}, "expected": [{"type": "f64", "value": "4890909195324358656"}]}, + {"type": "assert_return", "line": 537, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854776833"}]}, "expected": [{"type": "f64", "value": "4890909195324358657"}]}, + {"type": "assert_return", "line": 538, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9223372036854776834"}]}, "expected": [{"type": "f64", "value": "4890909195324358657"}]}, + {"type": "assert_return", "line": 539, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "18446744073709548544"}]}, "expected": [{"type": "f64", "value": "4895412794951729150"}]}, + {"type": "assert_return", "line": 540, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "18446744073709548545"}]}, "expected": [{"type": "f64", "value": "4895412794951729151"}]}, + {"type": "assert_return", "line": 541, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "18446744073709548546"}]}, "expected": [{"type": "f64", "value": "4895412794951729151"}]}, + {"type": "assert_return", "line": 543, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9007199254740993"}]}, "expected": [{"type": "f64", "value": "4845873199050653696"}]}, + {"type": "assert_return", "line": 544, "action": {"type": "invoke", "field": "f64.convert_i64_u", "args": [{"type": "i64", "value": "9007199254740995"}]}, "expected": [{"type": "f64", "value": "4845873199050653698"}]}, + {"type": "assert_return", "line": 546, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 547, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 548, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "1"}]}, "expected": [{"type": "f64", "value": "3936146074321813504"}]}, + {"type": "assert_return", "line": 549, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2147483649"}]}, "expected": [{"type": "f64", "value": "13159518111176589312"}]}, + {"type": "assert_return", "line": 550, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 551, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "3212836864"}]}, "expected": [{"type": "f64", "value": "13830554455654793216"}]}, + {"type": "assert_return", "line": 552, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "4286578687"}]}, "expected": [{"type": "f64", "value": "14407015207421345792"}]}, + {"type": "assert_return", "line": 553, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2139095039"}]}, "expected": [{"type": "f64", "value": "5183643170566569984"}]}, + {"type": "assert_return", "line": 555, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "67108864"}]}, "expected": [{"type": "f64", "value": "4071254063142928384"}]}, + {"type": "assert_return", "line": 557, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2118632255"}]}, "expected": [{"type": "f64", "value": "5172657297058430976"}]}, + {"type": "assert_return", "line": 558, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "f64", "value": "9218868437227405312"}]}, + {"type": "assert_return", "line": 559, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "f64", "value": "18442240474082181120"}]}, + {"type": "assert_return", "line": 560, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f64", "value": "nan:canonical"}]}, + {"type": "assert_return", "line": 561, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f64", "value": "nan:arithmetic"}]}, + {"type": "assert_return", "line": 562, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f64", "value": "nan:canonical"}]}, + {"type": "assert_return", "line": 563, "action": {"type": "invoke", "field": "f64.promote_f32", "args": [{"type": "f32", "value": "4288675840"}]}, "expected": [{"type": "f64", "value": "nan:arithmetic"}]}, + {"type": "assert_return", "line": 565, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 566, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 567, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "1"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 568, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "9223372036854775809"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 569, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 570, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13830554455654793216"}]}, "expected": [{"type": "f32", "value": "3212836864"}]}, + {"type": "assert_return", "line": 571, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4039728865214464000"}]}, "expected": [{"type": "f32", "value": "8388608"}]}, + {"type": "assert_return", "line": 572, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13263100902069239808"}]}, "expected": [{"type": "f32", "value": "2155872256"}]}, + {"type": "assert_return", "line": 573, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4039728865214463999"}]}, "expected": [{"type": "f32", "value": "8388607"}]}, + {"type": "assert_return", "line": 574, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13263100902069239807"}]}, "expected": [{"type": "f32", "value": "2155872255"}]}, + {"type": "assert_return", "line": 575, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "3936146074321813504"}]}, "expected": [{"type": "f32", "value": "1"}]}, + {"type": "assert_return", "line": 576, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13159518111176589312"}]}, "expected": [{"type": "f32", "value": "2147483649"}]}, + {"type": "assert_return", "line": 577, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5183643170298134528"}]}, "expected": [{"type": "f32", "value": "2139095038"}]}, + {"type": "assert_return", "line": 578, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "14407015207152910336"}]}, "expected": [{"type": "f32", "value": "4286578686"}]}, + {"type": "assert_return", "line": 579, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5183643170298134529"}]}, "expected": [{"type": "f32", "value": "2139095039"}]}, + {"type": "assert_return", "line": 580, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "14407015207152910337"}]}, "expected": [{"type": "f32", "value": "4286578687"}]}, + {"type": "assert_return", "line": 581, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5183643170566569984"}]}, "expected": [{"type": "f32", "value": "2139095039"}]}, + {"type": "assert_return", "line": 582, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "14407015207421345792"}]}, "expected": [{"type": "f32", "value": "4286578687"}]}, + {"type": "assert_return", "line": 583, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5183643170835005439"}]}, "expected": [{"type": "f32", "value": "2139095039"}]}, + {"type": "assert_return", "line": 584, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "14407015207689781247"}]}, "expected": [{"type": "f32", "value": "4286578687"}]}, + {"type": "assert_return", "line": 585, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5183643170835005440"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, + {"type": "assert_return", "line": 586, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "14407015207689781248"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, + {"type": "assert_return", "line": 587, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4071254063142928384"}]}, "expected": [{"type": "f32", "value": "67108864"}]}, + {"type": "assert_return", "line": 588, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5172657297058430976"}]}, "expected": [{"type": "f32", "value": "2118632255"}]}, + {"type": "assert_return", "line": 589, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, + {"type": "assert_return", "line": 590, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, + {"type": "assert_return", "line": 591, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182418800017409"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 592, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182418800017407"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 593, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182419068452864"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 594, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182419068452865"}]}, "expected": [{"type": "f32", "value": "1065353217"}]}, + {"type": "assert_return", "line": 595, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182419605323775"}]}, "expected": [{"type": "f32", "value": "1065353217"}]}, + {"type": "assert_return", "line": 596, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182419605323776"}]}, "expected": [{"type": "f32", "value": "1065353218"}]}, + {"type": "assert_return", "line": 597, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4607182420142194688"}]}, "expected": [{"type": "f32", "value": "1065353218"}]}, + {"type": "assert_return", "line": 598, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4715268810125344768"}]}, "expected": [{"type": "f32", "value": "1266679808"}]}, + {"type": "assert_return", "line": 599, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4715268810125344769"}]}, "expected": [{"type": "f32", "value": "1266679809"}]}, + {"type": "assert_return", "line": 600, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4715268810662215679"}]}, "expected": [{"type": "f32", "value": "1266679809"}]}, + {"type": "assert_return", "line": 601, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4715268810662215680"}]}, "expected": [{"type": "f32", "value": "1266679810"}]}, + {"type": "assert_return", "line": 602, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "5094955347580439664"}]}, "expected": [{"type": "f32", "value": "1973901096"}]}, + {"type": "assert_return", "line": 603, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4101111194527827589"}]}, "expected": [{"type": "f32", "value": "122722105"}]}, + {"type": "assert_return", "line": 604, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4038806939559600639"}]}, "expected": [{"type": "f32", "value": "7529997"}]}, + {"type": "assert_return", "line": 605, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13836913116900734306"}]}, "expected": [{"type": "f32", "value": "3224680794"}]}, + {"type": "assert_return", "line": 606, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "14338315240173327556"}]}, "expected": [{"type": "f32", "value": "4158615026"}]}, + {"type": "assert_return", "line": 607, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f32", "value": "nan:canonical"}]}, + {"type": "assert_return", "line": 608, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f32", "value": "nan:arithmetic"}]}, + {"type": "assert_return", "line": 609, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f32", "value": "nan:canonical"}]}, + {"type": "assert_return", "line": 610, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "expected": [{"type": "f32", "value": "nan:arithmetic"}]}, + {"type": "assert_return", "line": 611, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "4503599627370496"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 612, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "9227875636482146304"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 613, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "3931642474694443008"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 614, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13155014511549218816"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 615, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "3931642474694443009"}]}, "expected": [{"type": "f32", "value": "1"}]}, + {"type": "assert_return", "line": 616, "action": {"type": "invoke", "field": "f32.demote_f64", "args": [{"type": "f64", "value": "13155014511549218817"}]}, "expected": [{"type": "f32", "value": "2147483649"}]}, + {"type": "assert_return", "line": 618, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 619, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 620, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "1"}]}, + {"type": "assert_return", "line": 621, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "f32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 622, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "123456789"}]}, "expected": [{"type": "f32", "value": "123456789"}]}, + {"type": "assert_return", "line": 623, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "2147483649"}]}, "expected": [{"type": "f32", "value": "2147483649"}]}, + {"type": "assert_return", "line": 624, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "2139095040"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, + {"type": "assert_return", "line": 625, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "4286578688"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, + {"type": "assert_return", "line": 626, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 627, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "4290772992"}]}, + {"type": "assert_return", "line": 628, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "2141192192"}]}, + {"type": "assert_return", "line": 629, "action": {"type": "invoke", "field": "f32.reinterpret_i32", "args": [{"type": "i32", "value": "4288675840"}]}, "expected": [{"type": "f32", "value": "4288675840"}]}, + {"type": "assert_return", "line": 631, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 632, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "f64", "value": "1"}]}, + {"type": "assert_return", "line": 633, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "18446744073709551615"}]}, "expected": [{"type": "f64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 634, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 635, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "1234567890"}]}, "expected": [{"type": "f64", "value": "1234567890"}]}, + {"type": "assert_return", "line": 636, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "9223372036854775809"}]}, "expected": [{"type": "f64", "value": "9223372036854775809"}]}, + {"type": "assert_return", "line": 637, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "9218868437227405312"}]}, "expected": [{"type": "f64", "value": "9218868437227405312"}]}, + {"type": "assert_return", "line": 638, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "18442240474082181120"}]}, "expected": [{"type": "f64", "value": "18442240474082181120"}]}, + {"type": "assert_return", "line": 639, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 640, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "18444492273895866368"}]}, + {"type": "assert_return", "line": 641, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "9219994337134247936"}]}, + {"type": "assert_return", "line": 642, "action": {"type": "invoke", "field": "f64.reinterpret_i64", "args": [{"type": "i64", "value": "18443366373989023744"}]}, "expected": [{"type": "f64", "value": "18443366373989023744"}]}, + {"type": "assert_return", "line": 644, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 645, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "i32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 646, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 647, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 648, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "2147483649"}]}, "expected": [{"type": "i32", "value": "2147483649"}]}, + {"type": "assert_return", "line": 649, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 650, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "1078530010"}]}, "expected": [{"type": "i32", "value": "1078530010"}]}, + {"type": "assert_return", "line": 651, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "2139095039"}]}, "expected": [{"type": "i32", "value": "2139095039"}]}, + {"type": "assert_return", "line": 652, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "4286578687"}]}, "expected": [{"type": "i32", "value": "4286578687"}]}, + {"type": "assert_return", "line": 653, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "i32", "value": "2139095040"}]}, + {"type": "assert_return", "line": 654, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "i32", "value": "4286578688"}]}, + {"type": "assert_return", "line": 655, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 656, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "i32", "value": "4290772992"}]}, + {"type": "assert_return", "line": 657, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2141192192"}]}, + {"type": "assert_return", "line": 658, "action": {"type": "invoke", "field": "i32.reinterpret_f32", "args": [{"type": "f32", "value": "4288675840"}]}, "expected": [{"type": "i32", "value": "4288675840"}]}, + {"type": "assert_return", "line": 660, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 661, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 662, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 663, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "18446744073709551615"}]}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 664, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "9223372036854775809"}]}, "expected": [{"type": "i64", "value": "9223372036854775809"}]}, + {"type": "assert_return", "line": 665, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 666, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "4614256656552045841"}]}, "expected": [{"type": "i64", "value": "4614256656552045841"}]}, + {"type": "assert_return", "line": 667, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "9218868437227405311"}]}, "expected": [{"type": "i64", "value": "9218868437227405311"}]}, + {"type": "assert_return", "line": 668, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "18442240474082181119"}]}, "expected": [{"type": "i64", "value": "18442240474082181119"}]}, + {"type": "assert_return", "line": 669, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "i64", "value": "9218868437227405312"}]}, + {"type": "assert_return", "line": 670, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "i64", "value": "18442240474082181120"}]}, + {"type": "assert_return", "line": 671, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 672, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "i64", "value": "18444492273895866368"}]}, + {"type": "assert_return", "line": 673, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9219994337134247936"}]}, + {"type": "assert_return", "line": 674, "action": {"type": "invoke", "field": "i64.reinterpret_f64", "args": [{"type": "f64", "value": "18443366373989023744"}]}, "expected": [{"type": "i64", "value": "18443366373989023744"}]}, + {"type": "assert_invalid", "line": 678, "filename": "conversions.1.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 679, "filename": "conversions.2.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 680, "filename": "conversions.3.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 681, "filename": "conversions.4.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 682, "filename": "conversions.5.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 683, "filename": "conversions.6.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 684, "filename": "conversions.7.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 685, "filename": "conversions.8.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 686, "filename": "conversions.9.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 687, "filename": "conversions.10.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 688, "filename": "conversions.11.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 689, "filename": "conversions.12.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 690, "filename": "conversions.13.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 691, "filename": "conversions.14.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 692, "filename": "conversions.15.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 693, "filename": "conversions.16.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 694, "filename": "conversions.17.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 695, "filename": "conversions.18.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 696, "filename": "conversions.19.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 697, "filename": "conversions.20.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 698, "filename": "conversions.21.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 699, "filename": "conversions.22.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 700, "filename": "conversions.23.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 701, "filename": "conversions.24.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 702, "filename": "conversions.25.wasm", "text": "type mismatch", "module_type": "binary"}]} diff --git a/tests/gen/custom.0.wasm b/tests/gen/custom.0.wasm new file mode 100644 index 00000000..a085caac Binary files /dev/null and b/tests/gen/custom.0.wasm differ diff --git a/tests/gen/custom.1.wasm b/tests/gen/custom.1.wasm new file mode 100644 index 00000000..51ee53be Binary files /dev/null and b/tests/gen/custom.1.wasm differ diff --git a/tests/gen/custom.10.wasm b/tests/gen/custom.10.wasm new file mode 100644 index 00000000..39071487 Binary files /dev/null and b/tests/gen/custom.10.wasm differ diff --git a/tests/gen/custom.2.wasm b/tests/gen/custom.2.wasm new file mode 100644 index 00000000..19edae6b Binary files /dev/null and b/tests/gen/custom.2.wasm differ diff --git a/tests/gen/custom.3.wasm b/tests/gen/custom.3.wasm new file mode 100644 index 00000000..0094e1e9 Binary files /dev/null and b/tests/gen/custom.3.wasm differ diff --git a/tests/gen/custom.4.wasm b/tests/gen/custom.4.wasm new file mode 100644 index 00000000..0bd6b63b Binary files /dev/null and b/tests/gen/custom.4.wasm differ diff --git a/tests/gen/custom.5.wasm b/tests/gen/custom.5.wasm new file mode 100644 index 00000000..80c08090 Binary files /dev/null and b/tests/gen/custom.5.wasm differ diff --git a/tests/gen/custom.6.wasm b/tests/gen/custom.6.wasm new file mode 100644 index 00000000..9620ace6 Binary files /dev/null and b/tests/gen/custom.6.wasm differ diff --git a/tests/gen/custom.7.wasm b/tests/gen/custom.7.wasm new file mode 100644 index 00000000..7dc21eac Binary files /dev/null and b/tests/gen/custom.7.wasm differ diff --git a/tests/gen/custom.8.wasm b/tests/gen/custom.8.wasm new file mode 100644 index 00000000..fb954f48 Binary files /dev/null and b/tests/gen/custom.8.wasm differ diff --git a/tests/gen/custom.9.wasm b/tests/gen/custom.9.wasm new file mode 100644 index 00000000..8e93abeb Binary files /dev/null and b/tests/gen/custom.9.wasm differ diff --git a/tests/gen/custom.json b/tests/gen/custom.json new file mode 100644 index 00000000..11126444 --- /dev/null +++ b/tests/gen/custom.json @@ -0,0 +1,13 @@ +{"source_filename": "custom.wast", + "commands": [ + {"type": "module", "line": 1, "filename": "custom.0.wasm"}, + {"type": "module", "line": 14, "filename": "custom.1.wasm"}, + {"type": "module", "line": 50, "filename": "custom.2.wasm"}, + {"type": "assert_malformed", "line": 61, "filename": "custom.3.wasm", "text": "unexpected end", "module_type": "binary"}, + {"type": "assert_malformed", "line": 69, "filename": "custom.4.wasm", "text": "unexpected end", "module_type": "binary"}, + {"type": "assert_malformed", "line": 77, "filename": "custom.5.wasm", "text": "unexpected end", "module_type": "binary"}, + {"type": "assert_malformed", "line": 85, "filename": "custom.6.wasm", "text": "length out of bounds", "module_type": "binary"}, + {"type": "assert_malformed", "line": 93, "filename": "custom.7.wasm", "text": "malformed section id", "module_type": "binary"}, + {"type": "assert_malformed", "line": 102, "filename": "custom.8.wasm", "text": "function and code section have inconsistent lengths", "module_type": "binary"}, + {"type": "assert_malformed", "line": 115, "filename": "custom.9.wasm", "text": "length out of bounds", "module_type": "binary"}, + {"type": "assert_malformed", "line": 123, "filename": "custom.10.wasm", "text": "data count and data section have inconsistent lengths", "module_type": "binary"}]} diff --git a/tests/gen/data.0.wasm b/tests/gen/data.0.wasm index 7aec0a6d..f5dae0f9 100644 Binary files a/tests/gen/data.0.wasm and b/tests/gen/data.0.wasm differ diff --git a/tests/gen/data.10.wasm b/tests/gen/data.10.wasm index 35e1076d..18ed2c82 100644 Binary files a/tests/gen/data.10.wasm and b/tests/gen/data.10.wasm differ diff --git a/tests/gen/data.11.wasm b/tests/gen/data.11.wasm index a27b4feb..ce9dd9bb 100644 Binary files a/tests/gen/data.11.wasm and b/tests/gen/data.11.wasm differ diff --git a/tests/gen/data.12.wasm b/tests/gen/data.12.wasm index 16b29787..35e1076d 100644 Binary files a/tests/gen/data.12.wasm and b/tests/gen/data.12.wasm differ diff --git a/tests/gen/data.13.wasm b/tests/gen/data.13.wasm index 5b30856e..a27b4feb 100644 Binary files a/tests/gen/data.13.wasm and b/tests/gen/data.13.wasm differ diff --git a/tests/gen/data.14.wasm b/tests/gen/data.14.wasm index 99d1297a..16b29787 100644 Binary files a/tests/gen/data.14.wasm and b/tests/gen/data.14.wasm differ diff --git a/tests/gen/data.15.wasm b/tests/gen/data.15.wasm index 2f335cb3..5b30856e 100644 Binary files a/tests/gen/data.15.wasm and b/tests/gen/data.15.wasm differ diff --git a/tests/gen/data.16.wasm b/tests/gen/data.16.wasm index 16b29787..99d1297a 100644 Binary files a/tests/gen/data.16.wasm and b/tests/gen/data.16.wasm differ diff --git a/tests/gen/data.17.wasm b/tests/gen/data.17.wasm index 5b30856e..2f335cb3 100644 Binary files a/tests/gen/data.17.wasm and b/tests/gen/data.17.wasm differ diff --git a/tests/gen/data.18.wasm b/tests/gen/data.18.wasm index 99d1297a..16b29787 100644 Binary files a/tests/gen/data.18.wasm and b/tests/gen/data.18.wasm differ diff --git a/tests/gen/data.19.wasm b/tests/gen/data.19.wasm index 2b9f8d01..5b30856e 100644 Binary files a/tests/gen/data.19.wasm and b/tests/gen/data.19.wasm differ diff --git a/tests/gen/data.20.wasm b/tests/gen/data.20.wasm index 4e16452e..99d1297a 100644 Binary files a/tests/gen/data.20.wasm and b/tests/gen/data.20.wasm differ diff --git a/tests/gen/data.21.wasm b/tests/gen/data.21.wasm index 54addd2c..2b9f8d01 100644 Binary files a/tests/gen/data.21.wasm and b/tests/gen/data.21.wasm differ diff --git a/tests/gen/data.22.wasm b/tests/gen/data.22.wasm index 899b501d..4e16452e 100644 Binary files a/tests/gen/data.22.wasm and b/tests/gen/data.22.wasm differ diff --git a/tests/gen/data.23.wasm b/tests/gen/data.23.wasm index 1b418825..54addd2c 100644 Binary files a/tests/gen/data.23.wasm and b/tests/gen/data.23.wasm differ diff --git a/tests/gen/data.24.wasm b/tests/gen/data.24.wasm index b9b37af7..899b501d 100644 Binary files a/tests/gen/data.24.wasm and b/tests/gen/data.24.wasm differ diff --git a/tests/gen/data.25.wasm b/tests/gen/data.25.wasm index 7ba207e5..1b418825 100644 Binary files a/tests/gen/data.25.wasm and b/tests/gen/data.25.wasm differ diff --git a/tests/gen/data.26.wasm b/tests/gen/data.26.wasm index cfb111d1..b9b37af7 100644 Binary files a/tests/gen/data.26.wasm and b/tests/gen/data.26.wasm differ diff --git a/tests/gen/data.27.wasm b/tests/gen/data.27.wasm index 7a81b390..7ba207e5 100644 Binary files a/tests/gen/data.27.wasm and b/tests/gen/data.27.wasm differ diff --git a/tests/gen/data.28.wasm b/tests/gen/data.28.wasm index 4d69a483..cfb111d1 100644 Binary files a/tests/gen/data.28.wasm and b/tests/gen/data.28.wasm differ diff --git a/tests/gen/data.29.wasm b/tests/gen/data.29.wasm index 731ed5f1..7a81b390 100644 Binary files a/tests/gen/data.29.wasm and b/tests/gen/data.29.wasm differ diff --git a/tests/gen/data.30.wasm b/tests/gen/data.30.wasm index 22ad3fcb..4d69a483 100644 Binary files a/tests/gen/data.30.wasm and b/tests/gen/data.30.wasm differ diff --git a/tests/gen/data.31.wasm b/tests/gen/data.31.wasm index d614b912..731ed5f1 100644 Binary files a/tests/gen/data.31.wasm and b/tests/gen/data.31.wasm differ diff --git a/tests/gen/data.32.wasm b/tests/gen/data.32.wasm index e3714e49..22ad3fcb 100644 Binary files a/tests/gen/data.32.wasm and b/tests/gen/data.32.wasm differ diff --git a/tests/gen/data.33.wasm b/tests/gen/data.33.wasm index 4c0fa405..d614b912 100644 Binary files a/tests/gen/data.33.wasm and b/tests/gen/data.33.wasm differ diff --git a/tests/gen/data.34.wasm b/tests/gen/data.34.wasm index 6717ce25..e3714e49 100644 Binary files a/tests/gen/data.34.wasm and b/tests/gen/data.34.wasm differ diff --git a/tests/gen/data.35.wasm b/tests/gen/data.35.wasm index af905905..4c0fa405 100644 Binary files a/tests/gen/data.35.wasm and b/tests/gen/data.35.wasm differ diff --git a/tests/gen/data.36.wasm b/tests/gen/data.36.wasm index 3488bfee..6717ce25 100644 Binary files a/tests/gen/data.36.wasm and b/tests/gen/data.36.wasm differ diff --git a/tests/gen/data.37.wasm b/tests/gen/data.37.wasm index 0ec7bcfb..af905905 100644 Binary files a/tests/gen/data.37.wasm and b/tests/gen/data.37.wasm differ diff --git a/tests/gen/data.38.wasm b/tests/gen/data.38.wasm index 0d15760c..3488bfee 100644 Binary files a/tests/gen/data.38.wasm and b/tests/gen/data.38.wasm differ diff --git a/tests/gen/data.39.wasm b/tests/gen/data.39.wasm index e00ce9ca..0ec7bcfb 100644 Binary files a/tests/gen/data.39.wasm and b/tests/gen/data.39.wasm differ diff --git a/tests/gen/data.40.wasm b/tests/gen/data.40.wasm index 9feb627c..0d15760c 100644 Binary files a/tests/gen/data.40.wasm and b/tests/gen/data.40.wasm differ diff --git a/tests/gen/data.41.wasm b/tests/gen/data.41.wasm index 22c6f1ff..e00ce9ca 100644 Binary files a/tests/gen/data.41.wasm and b/tests/gen/data.41.wasm differ diff --git a/tests/gen/data.42.wasm b/tests/gen/data.42.wasm index 5ecf5fa2..8b7546ce 100644 Binary files a/tests/gen/data.42.wasm and b/tests/gen/data.42.wasm differ diff --git a/tests/gen/data.43.wasm b/tests/gen/data.43.wasm index 276373cf..e00ce9ca 100644 Binary files a/tests/gen/data.43.wasm and b/tests/gen/data.43.wasm differ diff --git a/tests/gen/data.44.wasm b/tests/gen/data.44.wasm index c4ff31f3..450fb730 100644 Binary files a/tests/gen/data.44.wasm and b/tests/gen/data.44.wasm differ diff --git a/tests/gen/data.45.wasm b/tests/gen/data.45.wasm new file mode 100644 index 00000000..d8371516 Binary files /dev/null and b/tests/gen/data.45.wasm differ diff --git a/tests/gen/data.46.wasm b/tests/gen/data.46.wasm new file mode 100644 index 00000000..f69ac8da Binary files /dev/null and b/tests/gen/data.46.wasm differ diff --git a/tests/gen/data.47.wasm b/tests/gen/data.47.wasm new file mode 100644 index 00000000..9feb627c Binary files /dev/null and b/tests/gen/data.47.wasm differ diff --git a/tests/gen/data.48.wasm b/tests/gen/data.48.wasm new file mode 100644 index 00000000..765de6ff Binary files /dev/null and b/tests/gen/data.48.wasm differ diff --git a/tests/gen/data.49.wasm b/tests/gen/data.49.wasm new file mode 100644 index 00000000..9cab2fcd Binary files /dev/null and b/tests/gen/data.49.wasm differ diff --git a/tests/gen/data.50.wasm b/tests/gen/data.50.wasm new file mode 100644 index 00000000..9ff01bf4 Binary files /dev/null and b/tests/gen/data.50.wasm differ diff --git a/tests/gen/data.51.wasm b/tests/gen/data.51.wasm new file mode 100644 index 00000000..9ec7b417 Binary files /dev/null and b/tests/gen/data.51.wasm differ diff --git a/tests/gen/data.52.wasm b/tests/gen/data.52.wasm new file mode 100644 index 00000000..22c6f1ff Binary files /dev/null and b/tests/gen/data.52.wasm differ diff --git a/tests/gen/data.53.wasm b/tests/gen/data.53.wasm new file mode 100644 index 00000000..5ecf5fa2 Binary files /dev/null and b/tests/gen/data.53.wasm differ diff --git a/tests/gen/data.54.wasm b/tests/gen/data.54.wasm new file mode 100644 index 00000000..276373cf Binary files /dev/null and b/tests/gen/data.54.wasm differ diff --git a/tests/gen/data.55.wasm b/tests/gen/data.55.wasm new file mode 100644 index 00000000..c4ff31f3 Binary files /dev/null and b/tests/gen/data.55.wasm differ diff --git a/tests/gen/data.56.wasm b/tests/gen/data.56.wasm new file mode 100644 index 00000000..6dba53e4 Binary files /dev/null and b/tests/gen/data.56.wasm differ diff --git a/tests/gen/data.57.wasm b/tests/gen/data.57.wasm new file mode 100644 index 00000000..e0a54941 Binary files /dev/null and b/tests/gen/data.57.wasm differ diff --git a/tests/gen/data.58.wasm b/tests/gen/data.58.wasm new file mode 100644 index 00000000..6bdf9ca8 Binary files /dev/null and b/tests/gen/data.58.wasm differ diff --git a/tests/gen/data.59.wasm b/tests/gen/data.59.wasm new file mode 100644 index 00000000..bcf57cae Binary files /dev/null and b/tests/gen/data.59.wasm differ diff --git a/tests/gen/data.9.wasm b/tests/gen/data.9.wasm index ce9dd9bb..18ed2c82 100644 Binary files a/tests/gen/data.9.wasm and b/tests/gen/data.9.wasm differ diff --git a/tests/gen/data.json b/tests/gen/data.json index a087b070..13345e84 100644 --- a/tests/gen/data.json +++ b/tests/gen/data.json @@ -1,47 +1,62 @@ {"source_filename": "data.wast", "commands": [ {"type": "module", "line": 5, "filename": "data.0.wasm"}, - {"type": "module", "line": 23, "filename": "data.1.wasm"}, - {"type": "module", "line": 27, "filename": "data.2.wasm"}, - {"type": "module", "line": 32, "filename": "data.3.wasm"}, - {"type": "module", "line": 40, "filename": "data.4.wasm"}, - {"type": "module", "line": 50, "filename": "data.5.wasm"}, - {"type": "module", "line": 55, "filename": "data.6.wasm"}, - {"type": "module", "line": 61, "filename": "data.7.wasm"}, - {"type": "module", "line": 66, "filename": "data.8.wasm"}, - {"type": "module", "line": 78, "filename": "data.9.wasm"}, - {"type": "module", "line": 83, "filename": "data.10.wasm"}, - {"type": "module", "line": 89, "filename": "data.11.wasm"}, - {"type": "module", "line": 94, "filename": "data.12.wasm"}, - {"type": "module", "line": 98, "filename": "data.13.wasm"}, - {"type": "module", "line": 103, "filename": "data.14.wasm"}, - {"type": "module", "line": 108, "filename": "data.15.wasm"}, - {"type": "module", "line": 113, "filename": "data.16.wasm"}, - {"type": "module", "line": 117, "filename": "data.17.wasm"}, - {"type": "module", "line": 122, "filename": "data.18.wasm"}, - {"type": "module", "line": 127, "filename": "data.19.wasm"}, - {"type": "module", "line": 132, "filename": "data.20.wasm"}, - {"type": "module", "line": 137, "filename": "data.21.wasm"}, - {"type": "module", "line": 143, "filename": "data.22.wasm"}, - {"type": "module", "line": 149, "filename": "data.23.wasm"}, - {"type": "module", "line": 154, "filename": "data.24.wasm"}, - {"type": "assert_unlinkable", "line": 162, "filename": "data.25.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 170, "filename": "data.26.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 178, "filename": "data.27.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 186, "filename": "data.28.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 194, "filename": "data.29.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 211, "filename": "data.30.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 220, "filename": "data.31.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 227, "filename": "data.32.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 235, "filename": "data.33.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 243, "filename": "data.34.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 251, "filename": "data.35.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 258, "filename": "data.36.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 266, "filename": "data.37.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 273, "filename": "data.38.wasm", "text": "data segment does not fit", "module_type": "binary"}, - {"type": "assert_invalid", "line": 283, "filename": "data.39.wasm", "text": "unknown memory 0", "module_type": "binary"}, - {"type": "assert_invalid", "line": 292, "filename": "data.40.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 300, "filename": "data.41.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "assert_invalid", "line": 308, "filename": "data.42.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "assert_invalid", "line": 316, "filename": "data.43.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "assert_invalid", "line": 324, "filename": "data.44.wasm", "text": "constant expression required", "module_type": "binary"}]} + {"type": "module", "line": 35, "filename": "data.1.wasm"}, + {"type": "module", "line": 39, "filename": "data.2.wasm"}, + {"type": "module", "line": 44, "filename": "data.3.wasm"}, + {"type": "module", "line": 52, "filename": "data.4.wasm"}, + {"type": "module", "line": 62, "filename": "data.5.wasm"}, + {"type": "module", "line": 67, "filename": "data.6.wasm"}, + {"type": "module", "line": 73, "filename": "data.7.wasm"}, + {"type": "module", "line": 78, "filename": "data.8.wasm"}, + {"type": "assert_invalid", "line": 85, "filename": "data.9.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 89, "filename": "data.10.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "module", "line": 96, "filename": "data.11.wasm"}, + {"type": "module", "line": 101, "filename": "data.12.wasm"}, + {"type": "module", "line": 107, "filename": "data.13.wasm"}, + {"type": "module", "line": 112, "filename": "data.14.wasm"}, + {"type": "module", "line": 116, "filename": "data.15.wasm"}, + {"type": "module", "line": 121, "filename": "data.16.wasm"}, + {"type": "module", "line": 126, "filename": "data.17.wasm"}, + {"type": "module", "line": 131, "filename": "data.18.wasm"}, + {"type": "module", "line": 135, "filename": "data.19.wasm"}, + {"type": "module", "line": 140, "filename": "data.20.wasm"}, + {"type": "module", "line": 145, "filename": "data.21.wasm"}, + {"type": "module", "line": 150, "filename": "data.22.wasm"}, + {"type": "module", "line": 155, "filename": "data.23.wasm"}, + {"type": "module", "line": 161, "filename": "data.24.wasm"}, + {"type": "module", "line": 167, "filename": "data.25.wasm"}, + {"type": "module", "line": 172, "filename": "data.26.wasm"}, + {"type": "assert_uninstantiable", "line": 180, "filename": "data.27.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 188, "filename": "data.28.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 196, "filename": "data.29.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 203, "filename": "data.30.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 210, "filename": "data.31.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 227, "filename": "data.32.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 236, "filename": "data.33.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 243, "filename": "data.34.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 251, "filename": "data.35.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 259, "filename": "data.36.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 267, "filename": "data.37.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 274, "filename": "data.38.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 282, "filename": "data.39.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 289, "filename": "data.40.wasm", "text": "out of bounds memory access", "module_type": "binary"}, + {"type": "assert_invalid", "line": 299, "filename": "data.41.wasm", "text": "unknown memory", "module_type": "binary"}, + {"type": "assert_invalid", "line": 307, "filename": "data.42.wasm", "text": "unknown memory 1", "module_type": "binary"}, + {"type": "assert_invalid", "line": 320, "filename": "data.43.wasm", "text": "unknown memory 0", "module_type": "binary"}, + {"type": "assert_invalid", "line": 331, "filename": "data.44.wasm", "text": "unknown memory 1", "module_type": "binary"}, + {"type": "assert_invalid", "line": 343, "filename": "data.45.wasm", "text": "unknown memory 1", "module_type": "binary"}, + {"type": "assert_invalid", "line": 365, "filename": "data.46.wasm", "text": "unknown memory 1", "module_type": "binary"}, + {"type": "assert_invalid", "line": 384, "filename": "data.47.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 401, "filename": "data.48.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 409, "filename": "data.49.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 417, "filename": "data.50.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 426, "filename": "data.51.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 435, "filename": "data.52.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 443, "filename": "data.53.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 451, "filename": "data.54.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 459, "filename": "data.55.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 467, "filename": "data.56.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 476, "filename": "data.57.wasm", "text": "unknown global 0", "module_type": "binary"}, + {"type": "assert_invalid", "line": 484, "filename": "data.58.wasm", "text": "unknown global 1", "module_type": "binary"}, + {"type": "assert_invalid", "line": 493, "filename": "data.59.wasm", "text": "constant expression required", "module_type": "binary"}]} diff --git a/tests/gen/elem.0.wasm b/tests/gen/elem.0.wasm index 76374840..5fbe3d12 100644 Binary files a/tests/gen/elem.0.wasm and b/tests/gen/elem.0.wasm differ diff --git a/tests/gen/elem.1.wasm b/tests/gen/elem.1.wasm index df5fa30f..63c8e94d 100644 Binary files a/tests/gen/elem.1.wasm and b/tests/gen/elem.1.wasm differ diff --git a/tests/gen/elem.10.wasm b/tests/gen/elem.10.wasm index bb833b24..a1726fbe 100644 Binary files a/tests/gen/elem.10.wasm and b/tests/gen/elem.10.wasm differ diff --git a/tests/gen/elem.11.wasm b/tests/gen/elem.11.wasm index 9275bf73..bb833b24 100644 Binary files a/tests/gen/elem.11.wasm and b/tests/gen/elem.11.wasm differ diff --git a/tests/gen/elem.12.wasm b/tests/gen/elem.12.wasm index 67dbb349..9275bf73 100644 Binary files a/tests/gen/elem.12.wasm and b/tests/gen/elem.12.wasm differ diff --git a/tests/gen/elem.13.wasm b/tests/gen/elem.13.wasm index 3506d6ed..67dbb349 100644 Binary files a/tests/gen/elem.13.wasm and b/tests/gen/elem.13.wasm differ diff --git a/tests/gen/elem.14.wasm b/tests/gen/elem.14.wasm index 9b750fca..3506d6ed 100644 Binary files a/tests/gen/elem.14.wasm and b/tests/gen/elem.14.wasm differ diff --git a/tests/gen/elem.15.wasm b/tests/gen/elem.15.wasm index 5b5ed0c7..9b750fca 100644 Binary files a/tests/gen/elem.15.wasm and b/tests/gen/elem.15.wasm differ diff --git a/tests/gen/elem.16.wasm b/tests/gen/elem.16.wasm index 301df73f..5b5ed0c7 100644 Binary files a/tests/gen/elem.16.wasm and b/tests/gen/elem.16.wasm differ diff --git a/tests/gen/elem.17.wasm b/tests/gen/elem.17.wasm index 4d1e8441..301df73f 100644 Binary files a/tests/gen/elem.17.wasm and b/tests/gen/elem.17.wasm differ diff --git a/tests/gen/elem.18.wasm b/tests/gen/elem.18.wasm index 1b814947..4d1e8441 100644 Binary files a/tests/gen/elem.18.wasm and b/tests/gen/elem.18.wasm differ diff --git a/tests/gen/elem.19.wasm b/tests/gen/elem.19.wasm index a900630b..1b814947 100644 Binary files a/tests/gen/elem.19.wasm and b/tests/gen/elem.19.wasm differ diff --git a/tests/gen/elem.2.wasm b/tests/gen/elem.2.wasm index 5b83d936..df5fa30f 100644 Binary files a/tests/gen/elem.2.wasm and b/tests/gen/elem.2.wasm differ diff --git a/tests/gen/elem.20.wasm b/tests/gen/elem.20.wasm index 81d76695..a900630b 100644 Binary files a/tests/gen/elem.20.wasm and b/tests/gen/elem.20.wasm differ diff --git a/tests/gen/elem.21.wasm b/tests/gen/elem.21.wasm index 421a5ec7..81d76695 100644 Binary files a/tests/gen/elem.21.wasm and b/tests/gen/elem.21.wasm differ diff --git a/tests/gen/elem.22.wasm b/tests/gen/elem.22.wasm index 3ed8ed32..421a5ec7 100644 Binary files a/tests/gen/elem.22.wasm and b/tests/gen/elem.22.wasm differ diff --git a/tests/gen/elem.23.wasm b/tests/gen/elem.23.wasm index 27cb9b70..3ed8ed32 100644 Binary files a/tests/gen/elem.23.wasm and b/tests/gen/elem.23.wasm differ diff --git a/tests/gen/elem.24.wasm b/tests/gen/elem.24.wasm index bdf0bf9e..27cb9b70 100644 Binary files a/tests/gen/elem.24.wasm and b/tests/gen/elem.24.wasm differ diff --git a/tests/gen/elem.25.wasm b/tests/gen/elem.25.wasm index 27cb9b70..bdf0bf9e 100644 Binary files a/tests/gen/elem.25.wasm and b/tests/gen/elem.25.wasm differ diff --git a/tests/gen/elem.26.wasm b/tests/gen/elem.26.wasm index 7acf72e1..27cb9b70 100644 Binary files a/tests/gen/elem.26.wasm and b/tests/gen/elem.26.wasm differ diff --git a/tests/gen/elem.27.wasm b/tests/gen/elem.27.wasm index e1bcd3ee..7acf72e1 100644 Binary files a/tests/gen/elem.27.wasm and b/tests/gen/elem.27.wasm differ diff --git a/tests/gen/elem.28.wasm b/tests/gen/elem.28.wasm index b4b768fb..e1bcd3ee 100644 Binary files a/tests/gen/elem.28.wasm and b/tests/gen/elem.28.wasm differ diff --git a/tests/gen/elem.29.wasm b/tests/gen/elem.29.wasm index 4f1cdd8e..b4b768fb 100644 Binary files a/tests/gen/elem.29.wasm and b/tests/gen/elem.29.wasm differ diff --git a/tests/gen/elem.3.wasm b/tests/gen/elem.3.wasm index 78af4cf1..5b83d936 100644 Binary files a/tests/gen/elem.3.wasm and b/tests/gen/elem.3.wasm differ diff --git a/tests/gen/elem.30.wasm b/tests/gen/elem.30.wasm index 57f2049a..4f1cdd8e 100644 Binary files a/tests/gen/elem.30.wasm and b/tests/gen/elem.30.wasm differ diff --git a/tests/gen/elem.31.wasm b/tests/gen/elem.31.wasm index d0d7cca6..57f2049a 100644 Binary files a/tests/gen/elem.31.wasm and b/tests/gen/elem.31.wasm differ diff --git a/tests/gen/elem.32.wasm b/tests/gen/elem.32.wasm index 4961f99c..d0d7cca6 100644 Binary files a/tests/gen/elem.32.wasm and b/tests/gen/elem.32.wasm differ diff --git a/tests/gen/elem.33.wasm b/tests/gen/elem.33.wasm index 9902698d..4961f99c 100644 Binary files a/tests/gen/elem.33.wasm and b/tests/gen/elem.33.wasm differ diff --git a/tests/gen/elem.34.wasm b/tests/gen/elem.34.wasm index d25c0fe3..9902698d 100644 Binary files a/tests/gen/elem.34.wasm and b/tests/gen/elem.34.wasm differ diff --git a/tests/gen/elem.35.wasm b/tests/gen/elem.35.wasm index 351efbf8..d25c0fe3 100644 Binary files a/tests/gen/elem.35.wasm and b/tests/gen/elem.35.wasm differ diff --git a/tests/gen/elem.36.wasm b/tests/gen/elem.36.wasm index 4ae54a1b..351efbf8 100644 Binary files a/tests/gen/elem.36.wasm and b/tests/gen/elem.36.wasm differ diff --git a/tests/gen/elem.37.wasm b/tests/gen/elem.37.wasm index 4308a9ed..4ae54a1b 100644 Binary files a/tests/gen/elem.37.wasm and b/tests/gen/elem.37.wasm differ diff --git a/tests/gen/elem.38.wasm b/tests/gen/elem.38.wasm index e473987c..4308a9ed 100644 Binary files a/tests/gen/elem.38.wasm and b/tests/gen/elem.38.wasm differ diff --git a/tests/gen/elem.39.wasm b/tests/gen/elem.39.wasm index 882b16dc..e473987c 100644 Binary files a/tests/gen/elem.39.wasm and b/tests/gen/elem.39.wasm differ diff --git a/tests/gen/elem.4.wasm b/tests/gen/elem.4.wasm index dc502877..78af4cf1 100644 Binary files a/tests/gen/elem.4.wasm and b/tests/gen/elem.4.wasm differ diff --git a/tests/gen/elem.40.wasm b/tests/gen/elem.40.wasm index bbe414a1..882b16dc 100644 Binary files a/tests/gen/elem.40.wasm and b/tests/gen/elem.40.wasm differ diff --git a/tests/gen/elem.41.wasm b/tests/gen/elem.41.wasm index 9b320f41..7c251b86 100644 Binary files a/tests/gen/elem.41.wasm and b/tests/gen/elem.41.wasm differ diff --git a/tests/gen/elem.42.wasm b/tests/gen/elem.42.wasm index 4b8a7689..bbe414a1 100644 Binary files a/tests/gen/elem.42.wasm and b/tests/gen/elem.42.wasm differ diff --git a/tests/gen/elem.43.wasm b/tests/gen/elem.43.wasm index 5fc0f79e..9b320f41 100644 Binary files a/tests/gen/elem.43.wasm and b/tests/gen/elem.43.wasm differ diff --git a/tests/gen/elem.44.wasm b/tests/gen/elem.44.wasm index 258518c6..4b8a7689 100644 Binary files a/tests/gen/elem.44.wasm and b/tests/gen/elem.44.wasm differ diff --git a/tests/gen/elem.45.wasm b/tests/gen/elem.45.wasm new file mode 100644 index 00000000..6ffdec2e Binary files /dev/null and b/tests/gen/elem.45.wasm differ diff --git a/tests/gen/elem.46.wasm b/tests/gen/elem.46.wasm new file mode 100644 index 00000000..6ffdec2e Binary files /dev/null and b/tests/gen/elem.46.wasm differ diff --git a/tests/gen/elem.47.wasm b/tests/gen/elem.47.wasm new file mode 100644 index 00000000..5fc0f79e Binary files /dev/null and b/tests/gen/elem.47.wasm differ diff --git a/tests/gen/elem.48.wasm b/tests/gen/elem.48.wasm new file mode 100644 index 00000000..258518c6 Binary files /dev/null and b/tests/gen/elem.48.wasm differ diff --git a/tests/gen/elem.5.wasm b/tests/gen/elem.5.wasm index e377d5f6..dc502877 100644 Binary files a/tests/gen/elem.5.wasm and b/tests/gen/elem.5.wasm differ diff --git a/tests/gen/elem.7.wasm b/tests/gen/elem.7.wasm index 2cca27ec..e377d5f6 100644 Binary files a/tests/gen/elem.7.wasm and b/tests/gen/elem.7.wasm differ diff --git a/tests/gen/elem.8.wasm b/tests/gen/elem.8.wasm index 4ece8ed1..2cca27ec 100644 Binary files a/tests/gen/elem.8.wasm and b/tests/gen/elem.8.wasm differ diff --git a/tests/gen/elem.9.wasm b/tests/gen/elem.9.wasm index a1726fbe..4ece8ed1 100644 Binary files a/tests/gen/elem.9.wasm and b/tests/gen/elem.9.wasm differ diff --git a/tests/gen/elem.json b/tests/gen/elem.json index 23c50d7b..9a28e860 100644 --- a/tests/gen/elem.json +++ b/tests/gen/elem.json @@ -1,51 +1,55 @@ {"source_filename": "elem.wast", "commands": [ {"type": "module", "line": 4, "filename": "elem.0.wasm"}, - {"type": "module", "line": 23, "filename": "elem.1.wasm"}, - {"type": "module", "line": 28, "filename": "elem.2.wasm"}, - {"type": "module", "line": 34, "filename": "elem.3.wasm"}, - {"type": "module", "line": 43, "filename": "elem.4.wasm"}, - {"type": "module", "line": 53, "filename": "elem.5.wasm"}, - {"type": "module", "line": 60, "filename": "elem.6.wasm"}, - {"type": "module", "line": 67, "filename": "elem.7.wasm"}, - {"type": "assert_return", "line": 81, "action": {"type": "invoke", "field": "call-7", "args": []}, "expected": [{"type": "i32", "value": "65"}]}, - {"type": "assert_return", "line": 82, "action": {"type": "invoke", "field": "call-9", "args": []}, "expected": [{"type": "i32", "value": "66"}]}, - {"type": "module", "line": 86, "filename": "elem.8.wasm"}, - {"type": "module", "line": 91, "filename": "elem.9.wasm"}, - {"type": "module", "line": 97, "filename": "elem.10.wasm"}, - {"type": "module", "line": 101, "filename": "elem.11.wasm"}, - {"type": "module", "line": 106, "filename": "elem.12.wasm"}, - {"type": "module", "line": 111, "filename": "elem.13.wasm"}, - {"type": "module", "line": 116, "filename": "elem.14.wasm"}, - {"type": "module", "line": 122, "filename": "elem.15.wasm"}, - {"type": "module", "line": 128, "filename": "elem.16.wasm"}, - {"type": "module", "line": 134, "filename": "elem.17.wasm"}, - {"type": "assert_unlinkable", "line": 143, "filename": "elem.18.wasm", "text": "elements segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 152, "filename": "elem.19.wasm", "text": "elements segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 161, "filename": "elem.20.wasm", "text": "elements segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 170, "filename": "elem.21.wasm", "text": "elements segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 178, "filename": "elem.22.wasm", "text": "elements segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 186, "filename": "elem.23.wasm", "text": "elements segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 195, "filename": "elem.24.wasm", "text": "elements segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 203, "filename": "elem.25.wasm", "text": "elements segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 212, "filename": "elem.26.wasm", "text": "elements segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 220, "filename": "elem.27.wasm", "text": "elements segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 229, "filename": "elem.28.wasm", "text": "elements segment does not fit", "module_type": "binary"}, - {"type": "assert_unlinkable", "line": 237, "filename": "elem.29.wasm", "text": "elements segment does not fit", "module_type": "binary"}, - {"type": "assert_invalid", "line": 248, "filename": "elem.30.wasm", "text": "unknown table", "module_type": "binary"}, - {"type": "assert_invalid", "line": 258, "filename": "elem.31.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 266, "filename": "elem.32.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 274, "filename": "elem.33.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 282, "filename": "elem.34.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 291, "filename": "elem.35.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 301, "filename": "elem.36.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "assert_invalid", "line": 309, "filename": "elem.37.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "assert_invalid", "line": 317, "filename": "elem.38.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "assert_invalid", "line": 325, "filename": "elem.39.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "assert_invalid", "line": 339, "filename": "elem.40.wasm", "text": "unknown global 0", "module_type": "binary"}, - {"type": "assert_invalid", "line": 347, "filename": "elem.41.wasm", "text": "unknown global 1", "module_type": "binary"}, - {"type": "assert_invalid", "line": 356, "filename": "elem.42.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "module", "line": 366, "filename": "elem.43.wasm"}, - {"type": "assert_return", "line": 377, "action": {"type": "invoke", "field": "call-overwritten", "args": []}, "expected": [{"type": "i32", "value": "66"}]}, - {"type": "module", "line": 379, "filename": "elem.44.wasm"}, - {"type": "assert_return", "line": 390, "action": {"type": "invoke", "field": "call-overwritten-element", "args": []}, "expected": [{"type": "i32", "value": "66"}]}]} + {"type": "module", "line": 89, "filename": "elem.1.wasm"}, + {"type": "module", "line": 100, "filename": "elem.2.wasm"}, + {"type": "module", "line": 105, "filename": "elem.3.wasm"}, + {"type": "module", "line": 111, "filename": "elem.4.wasm"}, + {"type": "module", "line": 120, "filename": "elem.5.wasm"}, + {"type": "module", "line": 130, "filename": "elem.6.wasm"}, + {"type": "module", "line": 137, "filename": "elem.7.wasm"}, + {"type": "module", "line": 144, "filename": "elem.8.wasm"}, + {"type": "assert_return", "line": 158, "action": {"type": "invoke", "field": "call-7", "args": []}, "expected": [{"type": "i32", "value": "65"}]}, + {"type": "assert_return", "line": 159, "action": {"type": "invoke", "field": "call-9", "args": []}, "expected": [{"type": "i32", "value": "66"}]}, + {"type": "module", "line": 193, "filename": "elem.9.wasm"}, + {"type": "module", "line": 198, "filename": "elem.10.wasm"}, + {"type": "module", "line": 204, "filename": "elem.11.wasm"}, + {"type": "module", "line": 208, "filename": "elem.12.wasm"}, + {"type": "module", "line": 213, "filename": "elem.13.wasm"}, + {"type": "module", "line": 218, "filename": "elem.14.wasm"}, + {"type": "module", "line": 223, "filename": "elem.15.wasm"}, + {"type": "module", "line": 229, "filename": "elem.16.wasm"}, + {"type": "module", "line": 235, "filename": "elem.17.wasm"}, + {"type": "module", "line": 241, "filename": "elem.18.wasm"}, + {"type": "assert_uninstantiable", "line": 250, "filename": "elem.19.wasm", "text": "out of bounds table access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 259, "filename": "elem.20.wasm", "text": "out of bounds table access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 268, "filename": "elem.21.wasm", "text": "out of bounds table access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 277, "filename": "elem.22.wasm", "text": "out of bounds table access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 284, "filename": "elem.23.wasm", "text": "out of bounds table access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 292, "filename": "elem.24.wasm", "text": "out of bounds table access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 301, "filename": "elem.25.wasm", "text": "out of bounds table access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 309, "filename": "elem.26.wasm", "text": "out of bounds table access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 318, "filename": "elem.27.wasm", "text": "out of bounds table access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 326, "filename": "elem.28.wasm", "text": "out of bounds table access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 335, "filename": "elem.29.wasm", "text": "out of bounds table access", "module_type": "binary"}, + {"type": "assert_uninstantiable", "line": 343, "filename": "elem.30.wasm", "text": "out of bounds table access", "module_type": "binary"}, + {"type": "assert_invalid", "line": 378, "filename": "elem.31.wasm", "text": "unknown table", "module_type": "binary"}, + {"type": "assert_invalid", "line": 388, "filename": "elem.32.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 405, "filename": "elem.33.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 413, "filename": "elem.34.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 421, "filename": "elem.35.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 430, "filename": "elem.36.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 440, "filename": "elem.37.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 448, "filename": "elem.38.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 456, "filename": "elem.39.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 464, "filename": "elem.40.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 472, "filename": "elem.41.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 481, "filename": "elem.42.wasm", "text": "unknown global 0", "module_type": "binary"}, + {"type": "assert_invalid", "line": 489, "filename": "elem.43.wasm", "text": "unknown global 1", "module_type": "binary"}, + {"type": "assert_invalid", "line": 498, "filename": "elem.44.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 526, "filename": "elem.45.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 534, "filename": "elem.46.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "module", "line": 553, "filename": "elem.47.wasm"}, + {"type": "assert_return", "line": 564, "action": {"type": "invoke", "field": "call-overwritten", "args": []}, "expected": [{"type": "i32", "value": "66"}]}, + {"type": "module", "line": 566, "filename": "elem.48.wasm"}, + {"type": "assert_return", "line": 577, "action": {"type": "invoke", "field": "call-overwritten-element", "args": []}, "expected": [{"type": "i32", "value": "66"}]}]} diff --git a/tests/gen/exports.11.wasm b/tests/gen/exports.11.wasm index bdbe2fe5..f7ea7e89 100644 Binary files a/tests/gen/exports.11.wasm and b/tests/gen/exports.11.wasm differ diff --git a/tests/gen/exports.12.wasm b/tests/gen/exports.12.wasm index 5ff35c41..1ea99a77 100644 Binary files a/tests/gen/exports.12.wasm and b/tests/gen/exports.12.wasm differ diff --git a/tests/gen/exports.13.wasm b/tests/gen/exports.13.wasm index 526226b5..bdbe2fe5 100644 Binary files a/tests/gen/exports.13.wasm and b/tests/gen/exports.13.wasm differ diff --git a/tests/gen/exports.14.wasm b/tests/gen/exports.14.wasm index fd54b55a..4670c7c1 100644 Binary files a/tests/gen/exports.14.wasm and b/tests/gen/exports.14.wasm differ diff --git a/tests/gen/exports.15.wasm b/tests/gen/exports.15.wasm index 4abb7ed1..5ff35c41 100644 Binary files a/tests/gen/exports.15.wasm and b/tests/gen/exports.15.wasm differ diff --git a/tests/gen/exports.16.wasm b/tests/gen/exports.16.wasm index 775694a6..526226b5 100644 Binary files a/tests/gen/exports.16.wasm and b/tests/gen/exports.16.wasm differ diff --git a/tests/gen/exports.17.wasm b/tests/gen/exports.17.wasm index a2f90fe1..fd54b55a 100644 Binary files a/tests/gen/exports.17.wasm and b/tests/gen/exports.17.wasm differ diff --git a/tests/gen/exports.18.wasm b/tests/gen/exports.18.wasm index f1bae6aa..4abb7ed1 100644 Binary files a/tests/gen/exports.18.wasm and b/tests/gen/exports.18.wasm differ diff --git a/tests/gen/exports.19.wasm b/tests/gen/exports.19.wasm index 3c2410be..775694a6 100644 Binary files a/tests/gen/exports.19.wasm and b/tests/gen/exports.19.wasm differ diff --git a/tests/gen/exports.21.wasm b/tests/gen/exports.21.wasm index a2f90fe1..f1bae6aa 100644 Binary files a/tests/gen/exports.21.wasm and b/tests/gen/exports.21.wasm differ diff --git a/tests/gen/exports.22.wasm b/tests/gen/exports.22.wasm index a2f90fe1..3c2410be 100644 Binary files a/tests/gen/exports.22.wasm and b/tests/gen/exports.22.wasm differ diff --git a/tests/gen/exports.26.wasm b/tests/gen/exports.26.wasm index 38002d4a..a2f90fe1 100644 Binary files a/tests/gen/exports.26.wasm and b/tests/gen/exports.26.wasm differ diff --git a/tests/gen/exports.27.wasm b/tests/gen/exports.27.wasm index 545e7b7d..a2f90fe1 100644 Binary files a/tests/gen/exports.27.wasm and b/tests/gen/exports.27.wasm differ diff --git a/tests/gen/exports.28.wasm b/tests/gen/exports.28.wasm index 834177e7..a2f90fe1 100644 Binary files a/tests/gen/exports.28.wasm and b/tests/gen/exports.28.wasm differ diff --git a/tests/gen/exports.29.wasm b/tests/gen/exports.29.wasm index ca38a77c..e429246d 100644 Binary files a/tests/gen/exports.29.wasm and b/tests/gen/exports.29.wasm differ diff --git a/tests/gen/exports.30.wasm b/tests/gen/exports.30.wasm index 8cbe00e5..38002d4a 100644 Binary files a/tests/gen/exports.30.wasm and b/tests/gen/exports.30.wasm differ diff --git a/tests/gen/exports.31.wasm b/tests/gen/exports.31.wasm index af239591..728410f5 100644 Binary files a/tests/gen/exports.31.wasm and b/tests/gen/exports.31.wasm differ diff --git a/tests/gen/exports.32.wasm b/tests/gen/exports.32.wasm index 539a89bf..545e7b7d 100644 Binary files a/tests/gen/exports.32.wasm and b/tests/gen/exports.32.wasm differ diff --git a/tests/gen/exports.33.wasm b/tests/gen/exports.33.wasm index 1f2cfccf..834177e7 100644 Binary files a/tests/gen/exports.33.wasm and b/tests/gen/exports.33.wasm differ diff --git a/tests/gen/exports.34.wasm b/tests/gen/exports.34.wasm index 539a89bf..ca38a77c 100644 Binary files a/tests/gen/exports.34.wasm and b/tests/gen/exports.34.wasm differ diff --git a/tests/gen/exports.35.wasm b/tests/gen/exports.35.wasm index 48fb7293..8cbe00e5 100644 Binary files a/tests/gen/exports.35.wasm and b/tests/gen/exports.35.wasm differ diff --git a/tests/gen/exports.36.wasm b/tests/gen/exports.36.wasm index 539a89bf..af239591 100644 Binary files a/tests/gen/exports.36.wasm and b/tests/gen/exports.36.wasm differ diff --git a/tests/gen/exports.37.wasm b/tests/gen/exports.37.wasm index 48fb7293..539a89bf 100644 Binary files a/tests/gen/exports.37.wasm and b/tests/gen/exports.37.wasm differ diff --git a/tests/gen/exports.38.wasm b/tests/gen/exports.38.wasm index 539a89bf..1f2cfccf 100644 Binary files a/tests/gen/exports.38.wasm and b/tests/gen/exports.38.wasm differ diff --git a/tests/gen/exports.39.wasm b/tests/gen/exports.39.wasm index 48fb7293..539a89bf 100644 Binary files a/tests/gen/exports.39.wasm and b/tests/gen/exports.39.wasm differ diff --git a/tests/gen/exports.40.wasm b/tests/gen/exports.40.wasm index 539a89bf..48fb7293 100644 Binary files a/tests/gen/exports.40.wasm and b/tests/gen/exports.40.wasm differ diff --git a/tests/gen/exports.41.wasm b/tests/gen/exports.41.wasm index 48fb7293..539a89bf 100644 Binary files a/tests/gen/exports.41.wasm and b/tests/gen/exports.41.wasm differ diff --git a/tests/gen/exports.42.wasm b/tests/gen/exports.42.wasm index 539a89bf..48fb7293 100644 Binary files a/tests/gen/exports.42.wasm and b/tests/gen/exports.42.wasm differ diff --git a/tests/gen/exports.43.wasm b/tests/gen/exports.43.wasm index 48fb7293..539a89bf 100644 Binary files a/tests/gen/exports.43.wasm and b/tests/gen/exports.43.wasm differ diff --git a/tests/gen/exports.44.wasm b/tests/gen/exports.44.wasm index 539a89bf..48fb7293 100644 Binary files a/tests/gen/exports.44.wasm and b/tests/gen/exports.44.wasm differ diff --git a/tests/gen/exports.45.wasm b/tests/gen/exports.45.wasm index 48fb7293..539a89bf 100644 Binary files a/tests/gen/exports.45.wasm and b/tests/gen/exports.45.wasm differ diff --git a/tests/gen/exports.46.wasm b/tests/gen/exports.46.wasm index 9dec9ee5..48fb7293 100644 Binary files a/tests/gen/exports.46.wasm and b/tests/gen/exports.46.wasm differ diff --git a/tests/gen/exports.47.wasm b/tests/gen/exports.47.wasm index 7b16c9dd..539a89bf 100644 Binary files a/tests/gen/exports.47.wasm and b/tests/gen/exports.47.wasm differ diff --git a/tests/gen/exports.48.wasm b/tests/gen/exports.48.wasm index 94a8e1b7..48fb7293 100644 Binary files a/tests/gen/exports.48.wasm and b/tests/gen/exports.48.wasm differ diff --git a/tests/gen/exports.49.wasm b/tests/gen/exports.49.wasm index 9733b5e7..539a89bf 100644 Binary files a/tests/gen/exports.49.wasm and b/tests/gen/exports.49.wasm differ diff --git a/tests/gen/exports.50.wasm b/tests/gen/exports.50.wasm index f28390c7..48fb7293 100644 Binary files a/tests/gen/exports.50.wasm and b/tests/gen/exports.50.wasm differ diff --git a/tests/gen/exports.51.wasm b/tests/gen/exports.51.wasm index 2981c246..4ab93b29 100644 Binary files a/tests/gen/exports.51.wasm and b/tests/gen/exports.51.wasm differ diff --git a/tests/gen/exports.52.wasm b/tests/gen/exports.52.wasm index 6696dc1f..9dec9ee5 100644 Binary files a/tests/gen/exports.52.wasm and b/tests/gen/exports.52.wasm differ diff --git a/tests/gen/exports.53.wasm b/tests/gen/exports.53.wasm index 2981c246..f45b5aa6 100644 Binary files a/tests/gen/exports.53.wasm and b/tests/gen/exports.53.wasm differ diff --git a/tests/gen/exports.54.wasm b/tests/gen/exports.54.wasm index f6bda9d1..7b16c9dd 100644 Binary files a/tests/gen/exports.54.wasm and b/tests/gen/exports.54.wasm differ diff --git a/tests/gen/exports.55.wasm b/tests/gen/exports.55.wasm index 2981c246..94a8e1b7 100644 Binary files a/tests/gen/exports.55.wasm and b/tests/gen/exports.55.wasm differ diff --git a/tests/gen/exports.56.wasm b/tests/gen/exports.56.wasm index f6bda9d1..9733b5e7 100644 Binary files a/tests/gen/exports.56.wasm and b/tests/gen/exports.56.wasm differ diff --git a/tests/gen/exports.57.wasm b/tests/gen/exports.57.wasm index 2981c246..f28390c7 100644 Binary files a/tests/gen/exports.57.wasm and b/tests/gen/exports.57.wasm differ diff --git a/tests/gen/exports.58.wasm b/tests/gen/exports.58.wasm index f6bda9d1..2981c246 100644 Binary files a/tests/gen/exports.58.wasm and b/tests/gen/exports.58.wasm differ diff --git a/tests/gen/exports.59.wasm b/tests/gen/exports.59.wasm index 2981c246..6696dc1f 100644 Binary files a/tests/gen/exports.59.wasm and b/tests/gen/exports.59.wasm differ diff --git a/tests/gen/exports.60.wasm b/tests/gen/exports.60.wasm index f6bda9d1..2981c246 100644 Binary files a/tests/gen/exports.60.wasm and b/tests/gen/exports.60.wasm differ diff --git a/tests/gen/exports.61.wasm b/tests/gen/exports.61.wasm index 2981c246..f6bda9d1 100644 Binary files a/tests/gen/exports.61.wasm and b/tests/gen/exports.61.wasm differ diff --git a/tests/gen/exports.62.wasm b/tests/gen/exports.62.wasm index f6bda9d1..2981c246 100644 Binary files a/tests/gen/exports.62.wasm and b/tests/gen/exports.62.wasm differ diff --git a/tests/gen/exports.63.wasm b/tests/gen/exports.63.wasm index 2981c246..f6bda9d1 100644 Binary files a/tests/gen/exports.63.wasm and b/tests/gen/exports.63.wasm differ diff --git a/tests/gen/exports.64.wasm b/tests/gen/exports.64.wasm index f6bda9d1..2981c246 100644 Binary files a/tests/gen/exports.64.wasm and b/tests/gen/exports.64.wasm differ diff --git a/tests/gen/exports.65.wasm b/tests/gen/exports.65.wasm index 699526de..f6bda9d1 100644 Binary files a/tests/gen/exports.65.wasm and b/tests/gen/exports.65.wasm differ diff --git a/tests/gen/exports.66.wasm b/tests/gen/exports.66.wasm index 0e6c0299..2981c246 100644 Binary files a/tests/gen/exports.66.wasm and b/tests/gen/exports.66.wasm differ diff --git a/tests/gen/exports.67.wasm b/tests/gen/exports.67.wasm index fbded776..f6bda9d1 100644 Binary files a/tests/gen/exports.67.wasm and b/tests/gen/exports.67.wasm differ diff --git a/tests/gen/exports.68.wasm b/tests/gen/exports.68.wasm index 0520a4ad..2981c246 100644 Binary files a/tests/gen/exports.68.wasm and b/tests/gen/exports.68.wasm differ diff --git a/tests/gen/exports.69.wasm b/tests/gen/exports.69.wasm index 1e327f93..f6bda9d1 100644 Binary files a/tests/gen/exports.69.wasm and b/tests/gen/exports.69.wasm differ diff --git a/tests/gen/exports.70.wasm b/tests/gen/exports.70.wasm new file mode 100644 index 00000000..2981c246 Binary files /dev/null and b/tests/gen/exports.70.wasm differ diff --git a/tests/gen/exports.71.wasm b/tests/gen/exports.71.wasm new file mode 100644 index 00000000..f6bda9d1 Binary files /dev/null and b/tests/gen/exports.71.wasm differ diff --git a/tests/gen/exports.72.wasm b/tests/gen/exports.72.wasm new file mode 100644 index 00000000..04759b47 Binary files /dev/null and b/tests/gen/exports.72.wasm differ diff --git a/tests/gen/exports.73.wasm b/tests/gen/exports.73.wasm new file mode 100644 index 00000000..699526de Binary files /dev/null and b/tests/gen/exports.73.wasm differ diff --git a/tests/gen/exports.74.wasm b/tests/gen/exports.74.wasm new file mode 100644 index 00000000..9692101e Binary files /dev/null and b/tests/gen/exports.74.wasm differ diff --git a/tests/gen/exports.75.wasm b/tests/gen/exports.75.wasm new file mode 100644 index 00000000..0e6c0299 Binary files /dev/null and b/tests/gen/exports.75.wasm differ diff --git a/tests/gen/exports.76.wasm b/tests/gen/exports.76.wasm new file mode 100644 index 00000000..fbded776 Binary files /dev/null and b/tests/gen/exports.76.wasm differ diff --git a/tests/gen/exports.77.wasm b/tests/gen/exports.77.wasm new file mode 100644 index 00000000..0520a4ad Binary files /dev/null and b/tests/gen/exports.77.wasm differ diff --git a/tests/gen/exports.78.wasm b/tests/gen/exports.78.wasm new file mode 100644 index 00000000..1e327f93 Binary files /dev/null and b/tests/gen/exports.78.wasm differ diff --git a/tests/gen/exports.json b/tests/gen/exports.json index 4f1e1702..85305c87 100644 --- a/tests/gen/exports.json +++ b/tests/gen/exports.json @@ -11,62 +11,74 @@ {"type": "module", "line": 12, "filename": "exports.8.wasm"}, {"type": "module", "line": 13, "filename": "exports.9.wasm"}, {"type": "module", "line": 14, "filename": "exports.10.wasm"}, - {"type": "assert_invalid", "line": 29, "filename": "exports.11.wasm", "text": "unknown function", "module_type": "binary"}, - {"type": "assert_invalid", "line": 33, "filename": "exports.12.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 37, "filename": "exports.13.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 41, "filename": "exports.14.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 45, "filename": "exports.15.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 49, "filename": "exports.16.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "module", "line": 56, "filename": "exports.17.wasm"}, - {"type": "module", "line": 57, "filename": "exports.18.wasm"}, - {"type": "module", "line": 58, "filename": "exports.19.wasm"}, - {"type": "module", "line": 60, "filename": "exports.20.wasm"}, - {"type": "module", "line": 61, "filename": "exports.21.wasm"}, - {"type": "module", "line": 62, "filename": "exports.22.wasm"}, - {"type": "module", "line": 63, "filename": "exports.23.wasm"}, - {"type": "module", "line": 64, "filename": "exports.24.wasm"}, - {"type": "module", "line": 65, "filename": "exports.25.wasm"}, - {"type": "assert_invalid", "line": 78, "filename": "exports.26.wasm", "text": "unknown global", "module_type": "binary"}, - {"type": "assert_invalid", "line": 82, "filename": "exports.27.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 86, "filename": "exports.28.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 90, "filename": "exports.29.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 94, "filename": "exports.30.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 98, "filename": "exports.31.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "module", "line": 105, "filename": "exports.32.wasm"}, - {"type": "module", "line": 106, "filename": "exports.33.wasm"}, - {"type": "module", "line": 110, "filename": "exports.34.wasm"}, - {"type": "module", "line": 111, "filename": "exports.35.wasm"}, - {"type": "module", "line": 112, "filename": "exports.36.wasm"}, - {"type": "module", "line": 113, "filename": "exports.37.wasm"}, - {"type": "module", "line": 114, "filename": "exports.38.wasm"}, - {"type": "module", "line": 115, "filename": "exports.39.wasm"}, - {"type": "module", "line": 116, "filename": "exports.40.wasm"}, - {"type": "module", "line": 117, "filename": "exports.41.wasm"}, - {"type": "module", "line": 118, "filename": "exports.42.wasm"}, - {"type": "module", "line": 119, "filename": "exports.43.wasm"}, - {"type": "module", "line": 120, "filename": "exports.44.wasm"}, - {"type": "module", "line": 121, "filename": "exports.45.wasm"}, - {"type": "assert_invalid", "line": 126, "filename": "exports.46.wasm", "text": "unknown table", "module_type": "binary"}, - {"type": "assert_invalid", "line": 130, "filename": "exports.47.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 139, "filename": "exports.48.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 143, "filename": "exports.49.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 147, "filename": "exports.50.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "module", "line": 154, "filename": "exports.51.wasm"}, - {"type": "module", "line": 155, "filename": "exports.52.wasm"}, - {"type": "module", "line": 159, "filename": "exports.53.wasm"}, - {"type": "module", "line": 160, "filename": "exports.54.wasm"}, - {"type": "module", "line": 161, "filename": "exports.55.wasm"}, - {"type": "module", "line": 162, "filename": "exports.56.wasm"}, - {"type": "module", "line": 163, "filename": "exports.57.wasm"}, - {"type": "module", "line": 164, "filename": "exports.58.wasm"}, - {"type": "module", "line": 165, "filename": "exports.59.wasm"}, - {"type": "module", "line": 166, "filename": "exports.60.wasm"}, - {"type": "module", "line": 167, "filename": "exports.61.wasm"}, - {"type": "module", "line": 168, "filename": "exports.62.wasm"}, - {"type": "module", "line": 169, "filename": "exports.63.wasm"}, - {"type": "module", "line": 170, "filename": "exports.64.wasm"}, - {"type": "assert_invalid", "line": 175, "filename": "exports.65.wasm", "text": "unknown memory", "module_type": "binary"}, - {"type": "assert_invalid", "line": 179, "filename": "exports.66.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 188, "filename": "exports.67.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 192, "filename": "exports.68.wasm", "text": "duplicate export name", "module_type": "binary"}, - {"type": "assert_invalid", "line": 196, "filename": "exports.69.wasm", "text": "duplicate export name", "module_type": "binary"}]} + {"type": "module", "line": 29, "filename": "exports.11.wasm"}, + {"type": "assert_return", "line": 35, "action": {"type": "invoke", "field": "a", "args": []}, "expected": [{"type": "i32", "value": "42"}]}, + {"type": "assert_return", "line": 36, "action": {"type": "invoke", "field": "b", "args": []}, "expected": [{"type": "i32", "value": "42"}]}, + {"type": "assert_return", "line": 37, "action": {"type": "invoke", "field": "c", "args": []}, "expected": [{"type": "i32", "value": "42"}]}, + {"type": "assert_invalid", "line": 40, "filename": "exports.12.wasm", "text": "unknown function", "module_type": "binary"}, + {"type": "assert_invalid", "line": 44, "filename": "exports.13.wasm", "text": "unknown function", "module_type": "binary"}, + {"type": "assert_invalid", "line": 48, "filename": "exports.14.wasm", "text": "unknown function", "module_type": "binary"}, + {"type": "assert_invalid", "line": 52, "filename": "exports.15.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 56, "filename": "exports.16.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 60, "filename": "exports.17.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 64, "filename": "exports.18.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 68, "filename": "exports.19.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "module", "line": 75, "filename": "exports.20.wasm"}, + {"type": "module", "line": 76, "filename": "exports.21.wasm"}, + {"type": "module", "line": 77, "filename": "exports.22.wasm"}, + {"type": "module", "line": 79, "filename": "exports.23.wasm"}, + {"type": "module", "line": 80, "filename": "exports.24.wasm"}, + {"type": "module", "line": 81, "filename": "exports.25.wasm"}, + {"type": "module", "line": 82, "filename": "exports.26.wasm"}, + {"type": "module", "line": 83, "filename": "exports.27.wasm"}, + {"type": "module", "line": 84, "filename": "exports.28.wasm"}, + {"type": "assert_invalid", "line": 98, "filename": "exports.29.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 102, "filename": "exports.30.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 106, "filename": "exports.31.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 110, "filename": "exports.32.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 114, "filename": "exports.33.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 118, "filename": "exports.34.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 122, "filename": "exports.35.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 126, "filename": "exports.36.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "module", "line": 133, "filename": "exports.37.wasm"}, + {"type": "module", "line": 134, "filename": "exports.38.wasm"}, + {"type": "module", "line": 138, "filename": "exports.39.wasm"}, + {"type": "module", "line": 139, "filename": "exports.40.wasm"}, + {"type": "module", "line": 140, "filename": "exports.41.wasm"}, + {"type": "module", "line": 141, "filename": "exports.42.wasm"}, + {"type": "module", "line": 142, "filename": "exports.43.wasm"}, + {"type": "module", "line": 143, "filename": "exports.44.wasm"}, + {"type": "module", "line": 144, "filename": "exports.45.wasm"}, + {"type": "module", "line": 145, "filename": "exports.46.wasm"}, + {"type": "module", "line": 146, "filename": "exports.47.wasm"}, + {"type": "module", "line": 147, "filename": "exports.48.wasm"}, + {"type": "module", "line": 148, "filename": "exports.49.wasm"}, + {"type": "module", "line": 149, "filename": "exports.50.wasm"}, + {"type": "assert_invalid", "line": 154, "filename": "exports.51.wasm", "text": "unknown table", "module_type": "binary"}, + {"type": "assert_invalid", "line": 158, "filename": "exports.52.wasm", "text": "unknown table", "module_type": "binary"}, + {"type": "assert_invalid", "line": 162, "filename": "exports.53.wasm", "text": "unknown table", "module_type": "binary"}, + {"type": "assert_invalid", "line": 166, "filename": "exports.54.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 175, "filename": "exports.55.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 179, "filename": "exports.56.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 183, "filename": "exports.57.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "module", "line": 190, "filename": "exports.58.wasm"}, + {"type": "module", "line": 191, "filename": "exports.59.wasm"}, + {"type": "module", "line": 195, "filename": "exports.60.wasm"}, + {"type": "module", "line": 196, "filename": "exports.61.wasm"}, + {"type": "module", "line": 197, "filename": "exports.62.wasm"}, + {"type": "module", "line": 198, "filename": "exports.63.wasm"}, + {"type": "module", "line": 199, "filename": "exports.64.wasm"}, + {"type": "module", "line": 200, "filename": "exports.65.wasm"}, + {"type": "module", "line": 201, "filename": "exports.66.wasm"}, + {"type": "module", "line": 202, "filename": "exports.67.wasm"}, + {"type": "module", "line": 203, "filename": "exports.68.wasm"}, + {"type": "module", "line": 204, "filename": "exports.69.wasm"}, + {"type": "module", "line": 205, "filename": "exports.70.wasm"}, + {"type": "module", "line": 206, "filename": "exports.71.wasm"}, + {"type": "assert_invalid", "line": 211, "filename": "exports.72.wasm", "text": "unknown memory", "module_type": "binary"}, + {"type": "assert_invalid", "line": 215, "filename": "exports.73.wasm", "text": "unknown memory", "module_type": "binary"}, + {"type": "assert_invalid", "line": 219, "filename": "exports.74.wasm", "text": "unknown memory", "module_type": "binary"}, + {"type": "assert_invalid", "line": 223, "filename": "exports.75.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 232, "filename": "exports.76.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 236, "filename": "exports.77.wasm", "text": "duplicate export name", "module_type": "binary"}, + {"type": "assert_invalid", "line": 240, "filename": "exports.78.wasm", "text": "duplicate export name", "module_type": "binary"}]} diff --git a/tests/gen/f32.12.wat b/tests/gen/f32.12.wat new file mode 100644 index 00000000..5795ecaa --- /dev/null +++ b/tests/gen/f32.12.wat @@ -0,0 +1 @@ +(func (result f32) (f32.const nan:arithmetic)) \ No newline at end of file diff --git a/tests/gen/f32.13.wat b/tests/gen/f32.13.wat new file mode 100644 index 00000000..01437fd1 --- /dev/null +++ b/tests/gen/f32.13.wat @@ -0,0 +1 @@ +(func (result f32) (f32.const nan:canonical)) \ No newline at end of file diff --git a/tests/gen/f32.json b/tests/gen/f32.json index ce94b219..0d0e4833 100644 --- a/tests/gen/f32.json +++ b/tests/gen/f32.json @@ -2511,4 +2511,6 @@ {"type": "assert_invalid", "line": 2530, "filename": "f32.8.wasm", "text": "type mismatch", "module_type": "binary"}, {"type": "assert_invalid", "line": 2531, "filename": "f32.9.wasm", "text": "type mismatch", "module_type": "binary"}, {"type": "assert_invalid", "line": 2532, "filename": "f32.10.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 2533, "filename": "f32.11.wasm", "text": "type mismatch", "module_type": "binary"}]} + {"type": "assert_invalid", "line": 2533, "filename": "f32.11.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_malformed", "line": 2537, "filename": "f32.12.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 2541, "filename": "f32.13.wat", "text": "unexpected token", "module_type": "text"}]} diff --git a/tests/gen/f64.12.wat b/tests/gen/f64.12.wat new file mode 100644 index 00000000..0f0efec9 --- /dev/null +++ b/tests/gen/f64.12.wat @@ -0,0 +1 @@ +(func (result f64) (f64.const nan:arithmetic)) \ No newline at end of file diff --git a/tests/gen/f64.13.wat b/tests/gen/f64.13.wat new file mode 100644 index 00000000..dea52cb0 --- /dev/null +++ b/tests/gen/f64.13.wat @@ -0,0 +1 @@ +(func (result f64) (f64.const nan:canonical)) \ No newline at end of file diff --git a/tests/gen/f64.json b/tests/gen/f64.json index a5f2a512..28699edb 100644 --- a/tests/gen/f64.json +++ b/tests/gen/f64.json @@ -2511,4 +2511,6 @@ {"type": "assert_invalid", "line": 2530, "filename": "f64.8.wasm", "text": "type mismatch", "module_type": "binary"}, {"type": "assert_invalid", "line": 2531, "filename": "f64.9.wasm", "text": "type mismatch", "module_type": "binary"}, {"type": "assert_invalid", "line": 2532, "filename": "f64.10.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 2533, "filename": "f64.11.wasm", "text": "type mismatch", "module_type": "binary"}]} + {"type": "assert_invalid", "line": 2533, "filename": "f64.11.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_malformed", "line": 2537, "filename": "f64.12.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 2541, "filename": "f64.13.wat", "text": "unexpected token", "module_type": "text"}]} diff --git a/tests/gen/fac.json b/tests/gen/fac.json index 0004e356..9f1158a5 100644 --- a/tests/gen/fac.json +++ b/tests/gen/fac.json @@ -1,9 +1,9 @@ {"source_filename": "fac.wast", "commands": [ {"type": "module", "line": 1, "filename": "fac.0.wasm"}, - {"type": "assert_return", "line": 84, "action": {"type": "invoke", "field": "fac-rec", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, - {"type": "assert_return", "line": 85, "action": {"type": "invoke", "field": "fac-iter", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, - {"type": "assert_return", "line": 86, "action": {"type": "invoke", "field": "fac-rec-named", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, - {"type": "assert_return", "line": 87, "action": {"type": "invoke", "field": "fac-iter-named", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, - {"type": "assert_return", "line": 88, "action": {"type": "invoke", "field": "fac-opt", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, - {"type": "assert_exhaustion", "line": 89, "action": {"type": "invoke", "field": "fac-rec", "args": [{"type": "i64", "value": "1073741824"}]}, "text": "call stack exhausted", "expected": [{"type": "i64"}]}]} + {"type": "assert_return", "line": 103, "action": {"type": "invoke", "field": "fac-rec", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, + {"type": "assert_return", "line": 104, "action": {"type": "invoke", "field": "fac-iter", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, + {"type": "assert_return", "line": 105, "action": {"type": "invoke", "field": "fac-rec-named", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, + {"type": "assert_return", "line": 106, "action": {"type": "invoke", "field": "fac-iter-named", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, + {"type": "assert_return", "line": 107, "action": {"type": "invoke", "field": "fac-opt", "args": [{"type": "i64", "value": "25"}]}, "expected": [{"type": "i64", "value": "7034535277573963776"}]}, + {"type": "assert_exhaustion", "line": 111, "action": {"type": "invoke", "field": "fac-rec", "args": [{"type": "i64", "value": "1073741824"}]}, "text": "call stack exhausted", "expected": [{"type": "i64"}]}]} diff --git a/tests/gen/float_exprs.38.wasm b/tests/gen/float_exprs.38.wasm index ca28d5e4..952dab25 100644 Binary files a/tests/gen/float_exprs.38.wasm and b/tests/gen/float_exprs.38.wasm differ diff --git a/tests/gen/float_exprs.39.wasm b/tests/gen/float_exprs.39.wasm index 20d1715b..e147759c 100644 Binary files a/tests/gen/float_exprs.39.wasm and b/tests/gen/float_exprs.39.wasm differ diff --git a/tests/gen/float_exprs.40.wasm b/tests/gen/float_exprs.40.wasm index d363f76f..4504b4ff 100644 Binary files a/tests/gen/float_exprs.40.wasm and b/tests/gen/float_exprs.40.wasm differ diff --git a/tests/gen/float_exprs.41.wasm b/tests/gen/float_exprs.41.wasm index c6b9e24f..20d1715b 100644 Binary files a/tests/gen/float_exprs.41.wasm and b/tests/gen/float_exprs.41.wasm differ diff --git a/tests/gen/float_exprs.42.wasm b/tests/gen/float_exprs.42.wasm index f194fc14..d363f76f 100644 Binary files a/tests/gen/float_exprs.42.wasm and b/tests/gen/float_exprs.42.wasm differ diff --git a/tests/gen/float_exprs.43.wasm b/tests/gen/float_exprs.43.wasm index ce2b73f7..c6b9e24f 100644 Binary files a/tests/gen/float_exprs.43.wasm and b/tests/gen/float_exprs.43.wasm differ diff --git a/tests/gen/float_exprs.44.wasm b/tests/gen/float_exprs.44.wasm index 9650b94d..f194fc14 100644 Binary files a/tests/gen/float_exprs.44.wasm and b/tests/gen/float_exprs.44.wasm differ diff --git a/tests/gen/float_exprs.45.wasm b/tests/gen/float_exprs.45.wasm index d8d69bbb..ce2b73f7 100644 Binary files a/tests/gen/float_exprs.45.wasm and b/tests/gen/float_exprs.45.wasm differ diff --git a/tests/gen/float_exprs.46.wasm b/tests/gen/float_exprs.46.wasm index b0176556..9650b94d 100644 Binary files a/tests/gen/float_exprs.46.wasm and b/tests/gen/float_exprs.46.wasm differ diff --git a/tests/gen/float_exprs.47.wasm b/tests/gen/float_exprs.47.wasm index 33dc257f..d8d69bbb 100644 Binary files a/tests/gen/float_exprs.47.wasm and b/tests/gen/float_exprs.47.wasm differ diff --git a/tests/gen/float_exprs.48.wasm b/tests/gen/float_exprs.48.wasm index 5be5f22c..b0176556 100644 Binary files a/tests/gen/float_exprs.48.wasm and b/tests/gen/float_exprs.48.wasm differ diff --git a/tests/gen/float_exprs.49.wasm b/tests/gen/float_exprs.49.wasm index b754cc9d..33dc257f 100644 Binary files a/tests/gen/float_exprs.49.wasm and b/tests/gen/float_exprs.49.wasm differ diff --git a/tests/gen/float_exprs.50.wasm b/tests/gen/float_exprs.50.wasm index 3fd1baca..5be5f22c 100644 Binary files a/tests/gen/float_exprs.50.wasm and b/tests/gen/float_exprs.50.wasm differ diff --git a/tests/gen/float_exprs.51.wasm b/tests/gen/float_exprs.51.wasm index f39c98d0..b754cc9d 100644 Binary files a/tests/gen/float_exprs.51.wasm and b/tests/gen/float_exprs.51.wasm differ diff --git a/tests/gen/float_exprs.52.wasm b/tests/gen/float_exprs.52.wasm index 61021fcf..3fd1baca 100644 Binary files a/tests/gen/float_exprs.52.wasm and b/tests/gen/float_exprs.52.wasm differ diff --git a/tests/gen/float_exprs.53.wasm b/tests/gen/float_exprs.53.wasm index 4e3bde48..f39c98d0 100644 Binary files a/tests/gen/float_exprs.53.wasm and b/tests/gen/float_exprs.53.wasm differ diff --git a/tests/gen/float_exprs.54.wasm b/tests/gen/float_exprs.54.wasm index 1572cc42..61021fcf 100644 Binary files a/tests/gen/float_exprs.54.wasm and b/tests/gen/float_exprs.54.wasm differ diff --git a/tests/gen/float_exprs.55.wasm b/tests/gen/float_exprs.55.wasm index fa832af0..4e3bde48 100644 Binary files a/tests/gen/float_exprs.55.wasm and b/tests/gen/float_exprs.55.wasm differ diff --git a/tests/gen/float_exprs.56.wasm b/tests/gen/float_exprs.56.wasm index ef8bec6e..1572cc42 100644 Binary files a/tests/gen/float_exprs.56.wasm and b/tests/gen/float_exprs.56.wasm differ diff --git a/tests/gen/float_exprs.57.wasm b/tests/gen/float_exprs.57.wasm index 15959e63..fa832af0 100644 Binary files a/tests/gen/float_exprs.57.wasm and b/tests/gen/float_exprs.57.wasm differ diff --git a/tests/gen/float_exprs.58.wasm b/tests/gen/float_exprs.58.wasm index b8870a87..ef8bec6e 100644 Binary files a/tests/gen/float_exprs.58.wasm and b/tests/gen/float_exprs.58.wasm differ diff --git a/tests/gen/float_exprs.59.wasm b/tests/gen/float_exprs.59.wasm index 11842796..15959e63 100644 Binary files a/tests/gen/float_exprs.59.wasm and b/tests/gen/float_exprs.59.wasm differ diff --git a/tests/gen/float_exprs.60.wasm b/tests/gen/float_exprs.60.wasm index 2387d2d9..b8870a87 100644 Binary files a/tests/gen/float_exprs.60.wasm and b/tests/gen/float_exprs.60.wasm differ diff --git a/tests/gen/float_exprs.61.wasm b/tests/gen/float_exprs.61.wasm index c17811c1..11842796 100644 Binary files a/tests/gen/float_exprs.61.wasm and b/tests/gen/float_exprs.61.wasm differ diff --git a/tests/gen/float_exprs.62.wasm b/tests/gen/float_exprs.62.wasm index 3e6561f5..2387d2d9 100644 Binary files a/tests/gen/float_exprs.62.wasm and b/tests/gen/float_exprs.62.wasm differ diff --git a/tests/gen/float_exprs.63.wasm b/tests/gen/float_exprs.63.wasm index fba3bcf9..c17811c1 100644 Binary files a/tests/gen/float_exprs.63.wasm and b/tests/gen/float_exprs.63.wasm differ diff --git a/tests/gen/float_exprs.64.wasm b/tests/gen/float_exprs.64.wasm index ca400ce4..3e6561f5 100644 Binary files a/tests/gen/float_exprs.64.wasm and b/tests/gen/float_exprs.64.wasm differ diff --git a/tests/gen/float_exprs.65.wasm b/tests/gen/float_exprs.65.wasm index f5ddcf46..fba3bcf9 100644 Binary files a/tests/gen/float_exprs.65.wasm and b/tests/gen/float_exprs.65.wasm differ diff --git a/tests/gen/float_exprs.66.wasm b/tests/gen/float_exprs.66.wasm index 13ba4d5a..ca400ce4 100644 Binary files a/tests/gen/float_exprs.66.wasm and b/tests/gen/float_exprs.66.wasm differ diff --git a/tests/gen/float_exprs.67.wasm b/tests/gen/float_exprs.67.wasm index 5b0cb31b..f5ddcf46 100644 Binary files a/tests/gen/float_exprs.67.wasm and b/tests/gen/float_exprs.67.wasm differ diff --git a/tests/gen/float_exprs.68.wasm b/tests/gen/float_exprs.68.wasm index 39d64d72..13ba4d5a 100644 Binary files a/tests/gen/float_exprs.68.wasm and b/tests/gen/float_exprs.68.wasm differ diff --git a/tests/gen/float_exprs.69.wasm b/tests/gen/float_exprs.69.wasm index 410dfbc2..5b0cb31b 100644 Binary files a/tests/gen/float_exprs.69.wasm and b/tests/gen/float_exprs.69.wasm differ diff --git a/tests/gen/float_exprs.70.wasm b/tests/gen/float_exprs.70.wasm index 05c68452..39d64d72 100644 Binary files a/tests/gen/float_exprs.70.wasm and b/tests/gen/float_exprs.70.wasm differ diff --git a/tests/gen/float_exprs.71.wasm b/tests/gen/float_exprs.71.wasm index fe18d15d..410dfbc2 100644 Binary files a/tests/gen/float_exprs.71.wasm and b/tests/gen/float_exprs.71.wasm differ diff --git a/tests/gen/float_exprs.72.wasm b/tests/gen/float_exprs.72.wasm index eef37686..05c68452 100644 Binary files a/tests/gen/float_exprs.72.wasm and b/tests/gen/float_exprs.72.wasm differ diff --git a/tests/gen/float_exprs.73.wasm b/tests/gen/float_exprs.73.wasm index abbf750b..fe18d15d 100644 Binary files a/tests/gen/float_exprs.73.wasm and b/tests/gen/float_exprs.73.wasm differ diff --git a/tests/gen/float_exprs.74.wasm b/tests/gen/float_exprs.74.wasm index add2c0ab..eef37686 100644 Binary files a/tests/gen/float_exprs.74.wasm and b/tests/gen/float_exprs.74.wasm differ diff --git a/tests/gen/float_exprs.75.wasm b/tests/gen/float_exprs.75.wasm index 315d6494..abbf750b 100644 Binary files a/tests/gen/float_exprs.75.wasm and b/tests/gen/float_exprs.75.wasm differ diff --git a/tests/gen/float_exprs.76.wasm b/tests/gen/float_exprs.76.wasm index 10b81956..add2c0ab 100644 Binary files a/tests/gen/float_exprs.76.wasm and b/tests/gen/float_exprs.76.wasm differ diff --git a/tests/gen/float_exprs.77.wasm b/tests/gen/float_exprs.77.wasm index 18103680..315d6494 100644 Binary files a/tests/gen/float_exprs.77.wasm and b/tests/gen/float_exprs.77.wasm differ diff --git a/tests/gen/float_exprs.78.wasm b/tests/gen/float_exprs.78.wasm index c25f9c43..10b81956 100644 Binary files a/tests/gen/float_exprs.78.wasm and b/tests/gen/float_exprs.78.wasm differ diff --git a/tests/gen/float_exprs.79.wasm b/tests/gen/float_exprs.79.wasm index 687aad0d..18103680 100644 Binary files a/tests/gen/float_exprs.79.wasm and b/tests/gen/float_exprs.79.wasm differ diff --git a/tests/gen/float_exprs.80.wasm b/tests/gen/float_exprs.80.wasm index 226f08ce..c25f9c43 100644 Binary files a/tests/gen/float_exprs.80.wasm and b/tests/gen/float_exprs.80.wasm differ diff --git a/tests/gen/float_exprs.81.wasm b/tests/gen/float_exprs.81.wasm index e6489b12..687aad0d 100644 Binary files a/tests/gen/float_exprs.81.wasm and b/tests/gen/float_exprs.81.wasm differ diff --git a/tests/gen/float_exprs.82.wasm b/tests/gen/float_exprs.82.wasm index b0ba33f9..226f08ce 100644 Binary files a/tests/gen/float_exprs.82.wasm and b/tests/gen/float_exprs.82.wasm differ diff --git a/tests/gen/float_exprs.83.wasm b/tests/gen/float_exprs.83.wasm index b3480113..e6489b12 100644 Binary files a/tests/gen/float_exprs.83.wasm and b/tests/gen/float_exprs.83.wasm differ diff --git a/tests/gen/float_exprs.84.wasm b/tests/gen/float_exprs.84.wasm index 413a3841..b0ba33f9 100644 Binary files a/tests/gen/float_exprs.84.wasm and b/tests/gen/float_exprs.84.wasm differ diff --git a/tests/gen/float_exprs.85.wasm b/tests/gen/float_exprs.85.wasm index 7f542c92..b3480113 100644 Binary files a/tests/gen/float_exprs.85.wasm and b/tests/gen/float_exprs.85.wasm differ diff --git a/tests/gen/float_exprs.86.wasm b/tests/gen/float_exprs.86.wasm index f8608e0c..413a3841 100644 Binary files a/tests/gen/float_exprs.86.wasm and b/tests/gen/float_exprs.86.wasm differ diff --git a/tests/gen/float_exprs.87.wasm b/tests/gen/float_exprs.87.wasm index 8bc5cd88..7f542c92 100644 Binary files a/tests/gen/float_exprs.87.wasm and b/tests/gen/float_exprs.87.wasm differ diff --git a/tests/gen/float_exprs.88.wasm b/tests/gen/float_exprs.88.wasm index 66f2bfa6..f8608e0c 100644 Binary files a/tests/gen/float_exprs.88.wasm and b/tests/gen/float_exprs.88.wasm differ diff --git a/tests/gen/float_exprs.89.wasm b/tests/gen/float_exprs.89.wasm index 7fefd64c..8bc5cd88 100644 Binary files a/tests/gen/float_exprs.89.wasm and b/tests/gen/float_exprs.89.wasm differ diff --git a/tests/gen/float_exprs.90.wasm b/tests/gen/float_exprs.90.wasm index 7e53886a..66f2bfa6 100644 Binary files a/tests/gen/float_exprs.90.wasm and b/tests/gen/float_exprs.90.wasm differ diff --git a/tests/gen/float_exprs.91.wasm b/tests/gen/float_exprs.91.wasm index 97da0e6c..7fefd64c 100644 Binary files a/tests/gen/float_exprs.91.wasm and b/tests/gen/float_exprs.91.wasm differ diff --git a/tests/gen/float_exprs.92.wasm b/tests/gen/float_exprs.92.wasm index be60329b..7e53886a 100644 Binary files a/tests/gen/float_exprs.92.wasm and b/tests/gen/float_exprs.92.wasm differ diff --git a/tests/gen/float_exprs.93.wasm b/tests/gen/float_exprs.93.wasm index da5cc6ed..97da0e6c 100644 Binary files a/tests/gen/float_exprs.93.wasm and b/tests/gen/float_exprs.93.wasm differ diff --git a/tests/gen/float_exprs.94.wasm b/tests/gen/float_exprs.94.wasm index 7403a43d..be60329b 100644 Binary files a/tests/gen/float_exprs.94.wasm and b/tests/gen/float_exprs.94.wasm differ diff --git a/tests/gen/float_exprs.95.wasm b/tests/gen/float_exprs.95.wasm index 5933e654..da5cc6ed 100644 Binary files a/tests/gen/float_exprs.95.wasm and b/tests/gen/float_exprs.95.wasm differ diff --git a/tests/gen/float_exprs.96.wasm b/tests/gen/float_exprs.96.wasm new file mode 100644 index 00000000..7403a43d Binary files /dev/null and b/tests/gen/float_exprs.96.wasm differ diff --git a/tests/gen/float_exprs.97.wasm b/tests/gen/float_exprs.97.wasm new file mode 100644 index 00000000..5933e654 Binary files /dev/null and b/tests/gen/float_exprs.97.wasm differ diff --git a/tests/gen/float_exprs.json b/tests/gen/float_exprs.json index eafb9a8c..80b3472e 100644 --- a/tests/gen/float_exprs.json +++ b/tests/gen/float_exprs.json @@ -308,595 +308,622 @@ {"type": "assert_return", "line": 648, "action": {"type": "invoke", "field": "no_fold_promote_demote", "args": [{"type": "f32", "value": "4286578687"}]}, "expected": [{"type": "f32", "value": "4286578687"}]}, {"type": "assert_return", "line": 649, "action": {"type": "invoke", "field": "no_fold_promote_demote", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, {"type": "assert_return", "line": 650, "action": {"type": "invoke", "field": "no_fold_promote_demote", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, - {"type": "module", "line": 654, "filename": "float_exprs.37.wasm"}, - {"type": "assert_return", "line": 661, "action": {"type": "invoke", "field": "no_demote_mixed_add", "args": [{"type": "f64", "value": "4183652368636204281"}, {"type": "f32", "value": "69183310"}]}, "expected": [{"type": "f32", "value": "276467023"}]}, - {"type": "assert_return", "line": 662, "action": {"type": "invoke", "field": "no_demote_mixed_add", "args": [{"type": "f64", "value": "4773927428111915216"}, {"type": "f32", "value": "1387972204"}]}, "expected": [{"type": "f32", "value": "1392270651"}]}, - {"type": "assert_return", "line": 663, "action": {"type": "invoke", "field": "no_demote_mixed_add", "args": [{"type": "f64", "value": "4072985553596038423"}, {"type": "f32", "value": "2202918851"}]}, "expected": [{"type": "f32", "value": "66813087"}]}, - {"type": "assert_return", "line": 664, "action": {"type": "invoke", "field": "no_demote_mixed_add", "args": [{"type": "f64", "value": "13740716732336801211"}, {"type": "f32", "value": "822392741"}]}, "expected": [{"type": "f32", "value": "3045484077"}]}, - {"type": "assert_return", "line": 665, "action": {"type": "invoke", "field": "no_demote_mixed_add", "args": [{"type": "f64", "value": "13742514716462174325"}, {"type": "f32", "value": "2870112826"}]}, "expected": [{"type": "f32", "value": "3048850075"}]}, - {"type": "assert_return", "line": 667, "action": {"type": "invoke", "field": "no_demote_mixed_add_commuted", "args": [{"type": "f32", "value": "69183310"}, {"type": "f64", "value": "4183652368636204281"}]}, "expected": [{"type": "f32", "value": "276467023"}]}, - {"type": "assert_return", "line": 668, "action": {"type": "invoke", "field": "no_demote_mixed_add_commuted", "args": [{"type": "f32", "value": "1387972204"}, {"type": "f64", "value": "4773927428111915216"}]}, "expected": [{"type": "f32", "value": "1392270651"}]}, - {"type": "assert_return", "line": 669, "action": {"type": "invoke", "field": "no_demote_mixed_add_commuted", "args": [{"type": "f32", "value": "2202918851"}, {"type": "f64", "value": "4072985553596038423"}]}, "expected": [{"type": "f32", "value": "66813087"}]}, - {"type": "assert_return", "line": 670, "action": {"type": "invoke", "field": "no_demote_mixed_add_commuted", "args": [{"type": "f32", "value": "822392741"}, {"type": "f64", "value": "13740716732336801211"}]}, "expected": [{"type": "f32", "value": "3045484077"}]}, - {"type": "assert_return", "line": 671, "action": {"type": "invoke", "field": "no_demote_mixed_add_commuted", "args": [{"type": "f32", "value": "2870112826"}, {"type": "f64", "value": "13742514716462174325"}]}, "expected": [{"type": "f32", "value": "3048850075"}]}, - {"type": "module", "line": 675, "filename": "float_exprs.38.wasm"}, - {"type": "assert_return", "line": 680, "action": {"type": "invoke", "field": "no_demote_mixed_sub", "args": [{"type": "f64", "value": "4979303437048015281"}, {"type": "f32", "value": "1583535740"}]}, "expected": [{"type": "f32", "value": "1758482618"}]}, - {"type": "assert_return", "line": 681, "action": {"type": "invoke", "field": "no_demote_mixed_sub", "args": [{"type": "f64", "value": "13967600632962086462"}, {"type": "f32", "value": "1214924370"}]}, "expected": [{"type": "f32", "value": "3468107136"}]}, - {"type": "assert_return", "line": 682, "action": {"type": "invoke", "field": "no_demote_mixed_sub", "args": [{"type": "f64", "value": "13860263758943608426"}, {"type": "f32", "value": "969848030"}]}, "expected": [{"type": "f32", "value": "3268174805"}]}, - {"type": "assert_return", "line": 683, "action": {"type": "invoke", "field": "no_demote_mixed_sub", "args": [{"type": "f64", "value": "4364064588997139903"}, {"type": "f32", "value": "472962692"}]}, "expected": [{"type": "f32", "value": "612510881"}]}, - {"type": "assert_return", "line": 684, "action": {"type": "invoke", "field": "no_demote_mixed_sub", "args": [{"type": "f64", "value": "4673175763235896759"}, {"type": "f32", "value": "1198952676"}]}, "expected": [{"type": "f32", "value": "3339501185"}]}, - {"type": "module", "line": 688, "filename": "float_exprs.39.wasm"}, - {"type": "assert_return", "line": 723, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_s_convert_s", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 724, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_s_convert_s", "args": [{"type": "f32", "value": "3217031168"}]}, "expected": [{"type": "f32", "value": "3212836864"}]}, - {"type": "assert_return", "line": 725, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_u_convert_s", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 726, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_u_convert_s", "args": [{"type": "f32", "value": "3204448256"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 727, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_s_convert_u", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 728, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_s_convert_u", "args": [{"type": "f32", "value": "3217031168"}]}, "expected": [{"type": "f32", "value": "1333788672"}]}, - {"type": "assert_return", "line": 729, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_u_convert_u", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 730, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_u_convert_u", "args": [{"type": "f32", "value": "3204448256"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 732, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_s_convert_s", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 733, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_s_convert_s", "args": [{"type": "f64", "value": "13832806255468478464"}]}, "expected": [{"type": "f64", "value": "13830554455654793216"}]}, - {"type": "assert_return", "line": 734, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_u_convert_s", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 735, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_u_convert_s", "args": [{"type": "f64", "value": "13826050856027422720"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 736, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_s_convert_u", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 737, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_s_convert_u", "args": [{"type": "f64", "value": "13832806255468478464"}]}, "expected": [{"type": "f64", "value": "4751297606873776128"}]}, - {"type": "assert_return", "line": 738, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_u_convert_u", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 739, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_u_convert_u", "args": [{"type": "f64", "value": "13826050856027422720"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 741, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_s_convert_s", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 742, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_s_convert_s", "args": [{"type": "f32", "value": "3217031168"}]}, "expected": [{"type": "f32", "value": "3212836864"}]}, - {"type": "assert_return", "line": 743, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_u_convert_s", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 744, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_u_convert_s", "args": [{"type": "f32", "value": "3204448256"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 745, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_s_convert_u", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 746, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_s_convert_u", "args": [{"type": "f32", "value": "3217031168"}]}, "expected": [{"type": "f32", "value": "1602224128"}]}, - {"type": "assert_return", "line": 747, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_u_convert_u", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 748, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_u_convert_u", "args": [{"type": "f32", "value": "3204448256"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 750, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_s_convert_s", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 751, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_s_convert_s", "args": [{"type": "f64", "value": "13832806255468478464"}]}, "expected": [{"type": "f64", "value": "13830554455654793216"}]}, - {"type": "assert_return", "line": 752, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_u_convert_s", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 753, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_u_convert_s", "args": [{"type": "f64", "value": "13826050856027422720"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 754, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_s_convert_u", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 755, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_s_convert_u", "args": [{"type": "f64", "value": "13832806255468478464"}]}, "expected": [{"type": "f64", "value": "4895412794951729152"}]}, - {"type": "assert_return", "line": 756, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_u_convert_u", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 757, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_u_convert_u", "args": [{"type": "f64", "value": "13826050856027422720"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "module", "line": 763, "filename": "float_exprs.40.wasm"}, - {"type": "action", "line": 784, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "0"}, {"type": "f32", "value": "1097963930"}]}, "expected": []}, - {"type": "action", "line": 785, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "4"}, {"type": "f32", "value": "1098068787"}]}, "expected": []}, - {"type": "action", "line": 786, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "8"}, {"type": "f32", "value": "1098173645"}]}, "expected": []}, - {"type": "action", "line": 787, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "12"}, {"type": "f32", "value": "1098278502"}]}, "expected": []}, - {"type": "assert_return", "line": 788, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1097963930"}]}, - {"type": "assert_return", "line": 789, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "f32", "value": "1098068787"}]}, - {"type": "assert_return", "line": 790, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "8"}]}, "expected": [{"type": "f32", "value": "1098173645"}]}, - {"type": "assert_return", "line": 791, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "12"}]}, "expected": [{"type": "f32", "value": "1098278502"}]}, - {"type": "action", "line": 792, "action": {"type": "invoke", "field": "run", "args": [{"type": "i32", "value": "16"}, {"type": "f32", "value": "1077936128"}]}, "expected": []}, - {"type": "assert_return", "line": 793, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1084297489"}]}, - {"type": "assert_return", "line": 794, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "f32", "value": "1084367394"}]}, - {"type": "assert_return", "line": 795, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "8"}]}, "expected": [{"type": "f32", "value": "1084437299"}]}, - {"type": "assert_return", "line": 796, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "12"}]}, "expected": [{"type": "f32", "value": "1084507204"}]}, - {"type": "module", "line": 798, "filename": "float_exprs.41.wasm"}, - {"type": "action", "line": 819, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "0"}, {"type": "f64", "value": "4624690162351420211"}]}, "expected": []}, - {"type": "action", "line": 820, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "8"}, {"type": "f64", "value": "4624746457346762342"}]}, "expected": []}, - {"type": "action", "line": 821, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "16"}, {"type": "f64", "value": "4624802752342104474"}]}, "expected": []}, - {"type": "action", "line": 822, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "24"}, {"type": "f64", "value": "4624859047337446605"}]}, "expected": []}, - {"type": "assert_return", "line": 823, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "4624690162351420211"}]}, - {"type": "assert_return", "line": 824, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "8"}]}, "expected": [{"type": "f64", "value": "4624746457346762342"}]}, - {"type": "assert_return", "line": 825, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "16"}]}, "expected": [{"type": "f64", "value": "4624802752342104474"}]}, - {"type": "assert_return", "line": 826, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "24"}]}, "expected": [{"type": "f64", "value": "4624859047337446605"}]}, - {"type": "action", "line": 827, "action": {"type": "invoke", "field": "run", "args": [{"type": "i32", "value": "32"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": []}, - {"type": "assert_return", "line": 828, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "4617353047958495778"}]}, - {"type": "assert_return", "line": 829, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "8"}]}, "expected": [{"type": "f64", "value": "4617390577955390532"}]}, - {"type": "assert_return", "line": 830, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "16"}]}, "expected": [{"type": "f64", "value": "4617428107952285287"}]}, - {"type": "assert_return", "line": 831, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "24"}]}, "expected": [{"type": "f64", "value": "4617465637949180041"}]}, - {"type": "module", "line": 835, "filename": "float_exprs.42.wasm"}, - {"type": "assert_return", "line": 847, "action": {"type": "invoke", "field": "f32.ult", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 848, "action": {"type": "invoke", "field": "f32.ult", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 849, "action": {"type": "invoke", "field": "f32.ult", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 850, "action": {"type": "invoke", "field": "f32.ult", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 851, "action": {"type": "invoke", "field": "f32.ule", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 852, "action": {"type": "invoke", "field": "f32.ule", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 853, "action": {"type": "invoke", "field": "f32.ule", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 854, "action": {"type": "invoke", "field": "f32.ule", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 855, "action": {"type": "invoke", "field": "f32.ugt", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 856, "action": {"type": "invoke", "field": "f32.ugt", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 857, "action": {"type": "invoke", "field": "f32.ugt", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 858, "action": {"type": "invoke", "field": "f32.ugt", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 859, "action": {"type": "invoke", "field": "f32.uge", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 860, "action": {"type": "invoke", "field": "f32.uge", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 861, "action": {"type": "invoke", "field": "f32.uge", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 862, "action": {"type": "invoke", "field": "f32.uge", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 863, "action": {"type": "invoke", "field": "f64.ult", "args": [{"type": "f64", "value": "4613937818241073152"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 864, "action": {"type": "invoke", "field": "f64.ult", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 865, "action": {"type": "invoke", "field": "f64.ult", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 866, "action": {"type": "invoke", "field": "f64.ult", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 867, "action": {"type": "invoke", "field": "f64.ule", "args": [{"type": "f64", "value": "4613937818241073152"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 868, "action": {"type": "invoke", "field": "f64.ule", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 869, "action": {"type": "invoke", "field": "f64.ule", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 870, "action": {"type": "invoke", "field": "f64.ule", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 871, "action": {"type": "invoke", "field": "f64.ugt", "args": [{"type": "f64", "value": "4613937818241073152"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 872, "action": {"type": "invoke", "field": "f64.ugt", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 873, "action": {"type": "invoke", "field": "f64.ugt", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 874, "action": {"type": "invoke", "field": "f64.ugt", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 875, "action": {"type": "invoke", "field": "f64.uge", "args": [{"type": "f64", "value": "4613937818241073152"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 876, "action": {"type": "invoke", "field": "f64.uge", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 877, "action": {"type": "invoke", "field": "f64.uge", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 878, "action": {"type": "invoke", "field": "f64.uge", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "module", "line": 882, "filename": "float_exprs.43.wasm"}, - {"type": "assert_return", "line": 894, "action": {"type": "invoke", "field": "f32.no_fold_lt_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 895, "action": {"type": "invoke", "field": "f32.no_fold_lt_select", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 896, "action": {"type": "invoke", "field": "f32.no_fold_lt_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 897, "action": {"type": "invoke", "field": "f32.no_fold_lt_select", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 898, "action": {"type": "invoke", "field": "f32.no_fold_le_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 899, "action": {"type": "invoke", "field": "f32.no_fold_le_select", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 900, "action": {"type": "invoke", "field": "f32.no_fold_le_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 901, "action": {"type": "invoke", "field": "f32.no_fold_le_select", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 902, "action": {"type": "invoke", "field": "f32.no_fold_gt_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 903, "action": {"type": "invoke", "field": "f32.no_fold_gt_select", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 904, "action": {"type": "invoke", "field": "f32.no_fold_gt_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 905, "action": {"type": "invoke", "field": "f32.no_fold_gt_select", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 906, "action": {"type": "invoke", "field": "f32.no_fold_ge_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 907, "action": {"type": "invoke", "field": "f32.no_fold_ge_select", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 908, "action": {"type": "invoke", "field": "f32.no_fold_ge_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 909, "action": {"type": "invoke", "field": "f32.no_fold_ge_select", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 910, "action": {"type": "invoke", "field": "f64.no_fold_lt_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 911, "action": {"type": "invoke", "field": "f64.no_fold_lt_select", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 912, "action": {"type": "invoke", "field": "f64.no_fold_lt_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 913, "action": {"type": "invoke", "field": "f64.no_fold_lt_select", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 914, "action": {"type": "invoke", "field": "f64.no_fold_le_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 915, "action": {"type": "invoke", "field": "f64.no_fold_le_select", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 916, "action": {"type": "invoke", "field": "f64.no_fold_le_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 917, "action": {"type": "invoke", "field": "f64.no_fold_le_select", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 918, "action": {"type": "invoke", "field": "f64.no_fold_gt_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 919, "action": {"type": "invoke", "field": "f64.no_fold_gt_select", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 920, "action": {"type": "invoke", "field": "f64.no_fold_gt_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 921, "action": {"type": "invoke", "field": "f64.no_fold_gt_select", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 922, "action": {"type": "invoke", "field": "f64.no_fold_ge_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 923, "action": {"type": "invoke", "field": "f64.no_fold_ge_select", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 924, "action": {"type": "invoke", "field": "f64.no_fold_ge_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 925, "action": {"type": "invoke", "field": "f64.no_fold_ge_select", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "module", "line": 929, "filename": "float_exprs.44.wasm"}, - {"type": "assert_return", "line": 973, "action": {"type": "invoke", "field": "f32.no_fold_lt_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 974, "action": {"type": "invoke", "field": "f32.no_fold_lt_if", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 975, "action": {"type": "invoke", "field": "f32.no_fold_lt_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 976, "action": {"type": "invoke", "field": "f32.no_fold_lt_if", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 977, "action": {"type": "invoke", "field": "f32.no_fold_le_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 978, "action": {"type": "invoke", "field": "f32.no_fold_le_if", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 979, "action": {"type": "invoke", "field": "f32.no_fold_le_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 980, "action": {"type": "invoke", "field": "f32.no_fold_le_if", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 981, "action": {"type": "invoke", "field": "f32.no_fold_gt_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 982, "action": {"type": "invoke", "field": "f32.no_fold_gt_if", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 983, "action": {"type": "invoke", "field": "f32.no_fold_gt_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 984, "action": {"type": "invoke", "field": "f32.no_fold_gt_if", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 985, "action": {"type": "invoke", "field": "f32.no_fold_ge_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 986, "action": {"type": "invoke", "field": "f32.no_fold_ge_if", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 987, "action": {"type": "invoke", "field": "f32.no_fold_ge_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 988, "action": {"type": "invoke", "field": "f32.no_fold_ge_if", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 989, "action": {"type": "invoke", "field": "f64.no_fold_lt_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 990, "action": {"type": "invoke", "field": "f64.no_fold_lt_if", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 991, "action": {"type": "invoke", "field": "f64.no_fold_lt_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 992, "action": {"type": "invoke", "field": "f64.no_fold_lt_if", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 993, "action": {"type": "invoke", "field": "f64.no_fold_le_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 994, "action": {"type": "invoke", "field": "f64.no_fold_le_if", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 995, "action": {"type": "invoke", "field": "f64.no_fold_le_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 996, "action": {"type": "invoke", "field": "f64.no_fold_le_if", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 997, "action": {"type": "invoke", "field": "f64.no_fold_gt_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 998, "action": {"type": "invoke", "field": "f64.no_fold_gt_if", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 999, "action": {"type": "invoke", "field": "f64.no_fold_gt_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1000, "action": {"type": "invoke", "field": "f64.no_fold_gt_if", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1001, "action": {"type": "invoke", "field": "f64.no_fold_ge_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 1002, "action": {"type": "invoke", "field": "f64.no_fold_ge_if", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1003, "action": {"type": "invoke", "field": "f64.no_fold_ge_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1004, "action": {"type": "invoke", "field": "f64.no_fold_ge_if", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "module", "line": 1008, "filename": "float_exprs.45.wasm"}, - {"type": "assert_return", "line": 1020, "action": {"type": "invoke", "field": "f32.no_fold_lt_select_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "2141192192"}]}, - {"type": "assert_return", "line": 1021, "action": {"type": "invoke", "field": "f32.no_fold_lt_select_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "4290772992"}]}, - {"type": "assert_return", "line": 1022, "action": {"type": "invoke", "field": "f32.no_fold_lt_select_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1023, "action": {"type": "invoke", "field": "f32.no_fold_lt_select_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1024, "action": {"type": "invoke", "field": "f32.no_fold_le_select_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "2141192192"}]}, - {"type": "assert_return", "line": 1025, "action": {"type": "invoke", "field": "f32.no_fold_le_select_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "4290772992"}]}, - {"type": "assert_return", "line": 1026, "action": {"type": "invoke", "field": "f32.no_fold_le_select_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1027, "action": {"type": "invoke", "field": "f32.no_fold_le_select_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1028, "action": {"type": "invoke", "field": "f32.no_fold_gt_select_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "4288675840"}]}, - {"type": "assert_return", "line": 1029, "action": {"type": "invoke", "field": "f32.no_fold_gt_select_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 1030, "action": {"type": "invoke", "field": "f32.no_fold_gt_select_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1031, "action": {"type": "invoke", "field": "f32.no_fold_gt_select_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1032, "action": {"type": "invoke", "field": "f32.no_fold_ge_select_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "4288675840"}]}, - {"type": "assert_return", "line": 1033, "action": {"type": "invoke", "field": "f32.no_fold_ge_select_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 1034, "action": {"type": "invoke", "field": "f32.no_fold_ge_select_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1035, "action": {"type": "invoke", "field": "f32.no_fold_ge_select_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1036, "action": {"type": "invoke", "field": "f64.no_fold_lt_select_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "9219994337134247936"}]}, - {"type": "assert_return", "line": 1037, "action": {"type": "invoke", "field": "f64.no_fold_lt_select_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "18444492273895866368"}]}, - {"type": "assert_return", "line": 1038, "action": {"type": "invoke", "field": "f64.no_fold_lt_select_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1039, "action": {"type": "invoke", "field": "f64.no_fold_lt_select_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1040, "action": {"type": "invoke", "field": "f64.no_fold_le_select_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "9219994337134247936"}]}, - {"type": "assert_return", "line": 1041, "action": {"type": "invoke", "field": "f64.no_fold_le_select_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "18444492273895866368"}]}, - {"type": "assert_return", "line": 1042, "action": {"type": "invoke", "field": "f64.no_fold_le_select_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1043, "action": {"type": "invoke", "field": "f64.no_fold_le_select_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1044, "action": {"type": "invoke", "field": "f64.no_fold_gt_select_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "18443366373989023744"}]}, - {"type": "assert_return", "line": 1045, "action": {"type": "invoke", "field": "f64.no_fold_gt_select_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 1046, "action": {"type": "invoke", "field": "f64.no_fold_gt_select_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1047, "action": {"type": "invoke", "field": "f64.no_fold_gt_select_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1048, "action": {"type": "invoke", "field": "f64.no_fold_ge_select_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "18443366373989023744"}]}, - {"type": "assert_return", "line": 1049, "action": {"type": "invoke", "field": "f64.no_fold_ge_select_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 1050, "action": {"type": "invoke", "field": "f64.no_fold_ge_select_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1051, "action": {"type": "invoke", "field": "f64.no_fold_ge_select_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "module", "line": 1055, "filename": "float_exprs.46.wasm"}, - {"type": "assert_return", "line": 1099, "action": {"type": "invoke", "field": "f32.no_fold_lt_if_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "2141192192"}]}, - {"type": "assert_return", "line": 1100, "action": {"type": "invoke", "field": "f32.no_fold_lt_if_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "4290772992"}]}, - {"type": "assert_return", "line": 1101, "action": {"type": "invoke", "field": "f32.no_fold_lt_if_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1102, "action": {"type": "invoke", "field": "f32.no_fold_lt_if_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1103, "action": {"type": "invoke", "field": "f32.no_fold_le_if_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "2141192192"}]}, - {"type": "assert_return", "line": 1104, "action": {"type": "invoke", "field": "f32.no_fold_le_if_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "4290772992"}]}, - {"type": "assert_return", "line": 1105, "action": {"type": "invoke", "field": "f32.no_fold_le_if_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1106, "action": {"type": "invoke", "field": "f32.no_fold_le_if_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1107, "action": {"type": "invoke", "field": "f32.no_fold_gt_if_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "4288675840"}]}, - {"type": "assert_return", "line": 1108, "action": {"type": "invoke", "field": "f32.no_fold_gt_if_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 1109, "action": {"type": "invoke", "field": "f32.no_fold_gt_if_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1110, "action": {"type": "invoke", "field": "f32.no_fold_gt_if_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1111, "action": {"type": "invoke", "field": "f32.no_fold_ge_if_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "4288675840"}]}, - {"type": "assert_return", "line": 1112, "action": {"type": "invoke", "field": "f32.no_fold_ge_if_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 1113, "action": {"type": "invoke", "field": "f32.no_fold_ge_if_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1114, "action": {"type": "invoke", "field": "f32.no_fold_ge_if_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1115, "action": {"type": "invoke", "field": "f64.no_fold_lt_if_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "9219994337134247936"}]}, - {"type": "assert_return", "line": 1116, "action": {"type": "invoke", "field": "f64.no_fold_lt_if_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "18444492273895866368"}]}, - {"type": "assert_return", "line": 1117, "action": {"type": "invoke", "field": "f64.no_fold_lt_if_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1118, "action": {"type": "invoke", "field": "f64.no_fold_lt_if_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1119, "action": {"type": "invoke", "field": "f64.no_fold_le_if_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "9219994337134247936"}]}, - {"type": "assert_return", "line": 1120, "action": {"type": "invoke", "field": "f64.no_fold_le_if_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "18444492273895866368"}]}, - {"type": "assert_return", "line": 1121, "action": {"type": "invoke", "field": "f64.no_fold_le_if_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1122, "action": {"type": "invoke", "field": "f64.no_fold_le_if_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1123, "action": {"type": "invoke", "field": "f64.no_fold_gt_if_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "18443366373989023744"}]}, - {"type": "assert_return", "line": 1124, "action": {"type": "invoke", "field": "f64.no_fold_gt_if_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 1125, "action": {"type": "invoke", "field": "f64.no_fold_gt_if_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1126, "action": {"type": "invoke", "field": "f64.no_fold_gt_if_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1127, "action": {"type": "invoke", "field": "f64.no_fold_ge_if_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "18443366373989023744"}]}, - {"type": "assert_return", "line": 1128, "action": {"type": "invoke", "field": "f64.no_fold_ge_if_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 1129, "action": {"type": "invoke", "field": "f64.no_fold_ge_if_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1130, "action": {"type": "invoke", "field": "f64.no_fold_ge_if_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "module", "line": 1135, "filename": "float_exprs.47.wasm"}, - {"type": "assert_return", "line": 1144, "action": {"type": "invoke", "field": "f32.incorrect_correction", "args": []}, "expected": [{"type": "f32", "value": "872415232"}]}, - {"type": "assert_return", "line": 1145, "action": {"type": "invoke", "field": "f64.incorrect_correction", "args": []}, "expected": [{"type": "f64", "value": "13596367275031527424"}]}, - {"type": "module", "line": 1150, "filename": "float_exprs.48.wasm"}, - {"type": "assert_return", "line": 1167, "action": {"type": "invoke", "field": "calculate", "args": []}, "expected": [{"type": "f32", "value": "3286857379"}]}, - {"type": "module", "line": 1169, "filename": "float_exprs.49.wasm"}, - {"type": "assert_return", "line": 1186, "action": {"type": "invoke", "field": "calculate", "args": []}, "expected": [{"type": "f64", "value": "13870293918930799763"}]}, - {"type": "module", "line": 1191, "filename": "float_exprs.50.wasm"}, - {"type": "assert_return", "line": 1197, "action": {"type": "invoke", "field": "llvm_pr26746", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "module", "line": 1202, "filename": "float_exprs.51.wasm"}, - {"type": "assert_return", "line": 1208, "action": {"type": "invoke", "field": "llvm_pr27153", "args": [{"type": "i32", "value": "33554434"}]}, "expected": [{"type": "f32", "value": "1270874112"}]}, - {"type": "module", "line": 1213, "filename": "float_exprs.52.wasm"}, - {"type": "assert_return", "line": 1220, "action": {"type": "invoke", "field": "llvm_pr27036", "args": [{"type": "i32", "value": "4269932491"}, {"type": "i32", "value": "14942208"}]}, "expected": [{"type": "f32", "value": "3407478836"}]}, - {"type": "module", "line": 1230, "filename": "float_exprs.53.wasm"}, - {"type": "assert_return", "line": 1244, "action": {"type": "invoke", "field": "thepast0", "args": [{"type": "f64", "value": "9007199254740992"}, {"type": "f64", "value": "4607182418800017407"}, {"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4602678819172646912"}]}, "expected": [{"type": "f64", "value": "9007199254740991"}]}, - {"type": "assert_return", "line": 1245, "action": {"type": "invoke", "field": "thepast1", "args": [{"type": "f64", "value": "4363988038922010624"}, {"type": "f64", "value": "4607182418800017407"}, {"type": "f64", "value": "4363988038922010624"}]}, "expected": [{"type": "f64", "value": "13348669295526150144"}]}, - {"type": "assert_return", "line": 1246, "action": {"type": "invoke", "field": "thepast2", "args": [{"type": "f32", "value": "16777216"}, {"type": "f32", "value": "1056964608"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "8388608"}]}, - {"type": "module", "line": 1251, "filename": "float_exprs.54.wasm"}, - {"type": "assert_return", "line": 1257, "action": {"type": "invoke", "field": "inverse", "args": [{"type": "f32", "value": "1119879168"}]}, "expected": [{"type": "f32", "value": "1009429163"}]}, - {"type": "module", "line": 1262, "filename": "float_exprs.55.wasm"}, - {"type": "assert_return", "line": 1272, "action": {"type": "invoke", "field": "f32_sqrt_minus_2", "args": [{"type": "f32", "value": "1082130432"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1273, "action": {"type": "invoke", "field": "f64_sqrt_minus_2", "args": [{"type": "f64", "value": "4616189618054758400"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "module", "line": 1277, "filename": "float_exprs.56.wasm"}, - {"type": "assert_return", "line": 1285, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "3765723020"}]}, "expected": [{"type": "f32", "value": "3765723019"}]}, - {"type": "assert_return", "line": 1286, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "426844452"}]}, "expected": [{"type": "f32", "value": "426844451"}]}, - {"type": "assert_return", "line": 1287, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "535132276"}]}, "expected": [{"type": "f32", "value": "535132277"}]}, - {"type": "assert_return", "line": 1288, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "3253941441"}]}, "expected": [{"type": "f32", "value": "3253941442"}]}, - {"type": "assert_return", "line": 1289, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "1660734603"}]}, "expected": [{"type": "f32", "value": "1660734602"}]}, - {"type": "assert_return", "line": 1291, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1292, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1293, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, - {"type": "assert_return", "line": 1294, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, - {"type": "assert_return", "line": 1296, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "14500888369201570768"}]}, "expected": [{"type": "f64", "value": "14500888369201570769"}]}, - {"type": "assert_return", "line": 1297, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "14132092565459057123"}]}, "expected": [{"type": "f64", "value": "14132092565459057122"}]}, - {"type": "assert_return", "line": 1298, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "5359183527603521526"}]}, "expected": [{"type": "f64", "value": "5359183527603521525"}]}, - {"type": "assert_return", "line": 1299, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "1521566147669375634"}]}, "expected": [{"type": "f64", "value": "1521566147669375633"}]}, - {"type": "assert_return", "line": 1300, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "8671785631545870379"}]}, "expected": [{"type": "f64", "value": "8671785631545870378"}]}, - {"type": "assert_return", "line": 1302, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1303, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1304, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "f64", "value": "18442240474082181120"}]}, - {"type": "assert_return", "line": 1305, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "f64", "value": "9218868437227405312"}]}, - {"type": "module", "line": 1309, "filename": "float_exprs.57.wasm"}, - {"type": "assert_return", "line": 1319, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "2759308231"}, {"type": "f32", "value": "618704988"}]}, "expected": [{"type": "f32", "value": "2315864577"}]}, - {"type": "assert_return", "line": 1320, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "3415653214"}, {"type": "f32", "value": "1274676302"}]}, "expected": [{"type": "f32", "value": "3625675853"}]}, - {"type": "assert_return", "line": 1321, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "1446924633"}, {"type": "f32", "value": "3607373982"}]}, "expected": [{"type": "f32", "value": "4000155759"}]}, - {"type": "assert_return", "line": 1322, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "1212067608"}, {"type": "f32", "value": "3278094810"}]}, "expected": [{"type": "f32", "value": "1359874131"}]}, - {"type": "assert_return", "line": 1323, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "3278732464"}, {"type": "f32", "value": "3379389272"}]}, "expected": [{"type": "f32", "value": "3546030359"}]}, - {"type": "assert_return", "line": 1325, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "2467435761933928117"}, {"type": "f64", "value": "2526113756828458004"}]}, "expected": [{"type": "f64", "value": "9668435399096543331"}]}, - {"type": "assert_return", "line": 1326, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "2911983657790464931"}, {"type": "f64", "value": "2814431682419759911"}]}, "expected": [{"type": "f64", "value": "1217162942843921803"}]}, - {"type": "assert_return", "line": 1327, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "12131637044948792058"}, {"type": "f64", "value": "12170782965730311956"}]}, "expected": [{"type": "f64", "value": "10511676135434922533"}]}, - {"type": "assert_return", "line": 1328, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "14639789466354372633"}, {"type": "f64", "value": "5456963169336729236"}]}, "expected": [{"type": "f64", "value": "15530333405173431543"}]}, - {"type": "assert_return", "line": 1329, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "5121779675912507154"}, {"type": "f64", "value": "14237286623175920791"}]}, "expected": [{"type": "f64", "value": "5636689734063865714"}]}, - {"type": "module", "line": 1333, "filename": "float_exprs.58.wasm"}, - {"type": "assert_return", "line": 1343, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "684135946"}, {"type": "f32", "value": "744319693"}]}, "expected": [{"type": "f32", "value": "2571075368"}]}, - {"type": "assert_return", "line": 1344, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "3560929481"}, {"type": "f32", "value": "3496840229"}]}, "expected": [{"type": "f32", "value": "1762604185"}]}, - {"type": "assert_return", "line": 1345, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "968841772"}, {"type": "f32", "value": "3106497100"}]}, "expected": [{"type": "f32", "value": "870712803"}]}, - {"type": "assert_return", "line": 1346, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "697514723"}, {"type": "f32", "value": "2834753933"}]}, "expected": [{"type": "f32", "value": "327914662"}]}, - {"type": "assert_return", "line": 1347, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "1498230729"}, {"type": "f32", "value": "3650453580"}]}, "expected": [{"type": "f32", "value": "4080583891"}]}, - {"type": "assert_return", "line": 1349, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "6212515167506370409"}, {"type": "f64", "value": "15348474890798978273"}]}, "expected": [{"type": "f64", "value": "7818515589337550196"}]}, - {"type": "assert_return", "line": 1350, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "15222970140370015722"}, {"type": "f64", "value": "15325207139996136125"}]}, "expected": [{"type": "f64", "value": "16819892485880140289"}]}, - {"type": "assert_return", "line": 1351, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "4797439202963874050"}, {"type": "f64", "value": "14009643534571442918"}]}, "expected": [{"type": "f64", "value": "4987747999326390045"}]}, - {"type": "assert_return", "line": 1352, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "14653559129294038194"}, {"type": "f64", "value": "14581996260169223461"}]}, "expected": [{"type": "f64", "value": "6253339631158964222"}]}, - {"type": "assert_return", "line": 1353, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "12768321634751930140"}, {"type": "f64", "value": "12767602092732820937"}]}, "expected": [{"type": "f64", "value": "2473652960990319032"}]}, - {"type": "module", "line": 1358, "filename": "float_exprs.59.wasm"}, - {"type": "assert_return", "line": 1391, "action": {"type": "invoke", "field": "f32.simple_x4_sum", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "16"}, {"type": "i32", "value": "32"}]}, "expected": []}, - {"type": "assert_return", "line": 1392, "action": {"type": "invoke", "field": "f32.load", "args": [{"type": "i32", "value": "32"}]}, "expected": [{"type": "f32", "value": "2"}]}, - {"type": "assert_return", "line": 1393, "action": {"type": "invoke", "field": "f32.load", "args": [{"type": "i32", "value": "36"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1394, "action": {"type": "invoke", "field": "f32.load", "args": [{"type": "i32", "value": "40"}]}, "expected": [{"type": "f32", "value": "1"}]}, - {"type": "assert_return", "line": 1395, "action": {"type": "invoke", "field": "f32.load", "args": [{"type": "i32", "value": "44"}]}, "expected": [{"type": "f32", "value": "2147483649"}]}, - {"type": "module", "line": 1397, "filename": "float_exprs.60.wasm"}, - {"type": "assert_return", "line": 1430, "action": {"type": "invoke", "field": "f64.simple_x4_sum", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "32"}, {"type": "i32", "value": "64"}]}, "expected": []}, - {"type": "assert_return", "line": 1431, "action": {"type": "invoke", "field": "f64.load", "args": [{"type": "i32", "value": "64"}]}, "expected": [{"type": "f64", "value": "2"}]}, - {"type": "assert_return", "line": 1432, "action": {"type": "invoke", "field": "f64.load", "args": [{"type": "i32", "value": "72"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1433, "action": {"type": "invoke", "field": "f64.load", "args": [{"type": "i32", "value": "80"}]}, "expected": [{"type": "f64", "value": "1"}]}, - {"type": "assert_return", "line": 1434, "action": {"type": "invoke", "field": "f64.load", "args": [{"type": "i32", "value": "88"}]}, "expected": [{"type": "f64", "value": "9223372036854775809"}]}, - {"type": "module", "line": 1439, "filename": "float_exprs.61.wasm"}, - {"type": "assert_return", "line": 1530, "action": {"type": "invoke", "field": "f32.kahan_sum", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "256"}]}, "expected": [{"type": "f32", "value": "4085779725"}]}, - {"type": "assert_return", "line": 1531, "action": {"type": "invoke", "field": "f32.plain_sum", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "256"}]}, "expected": [{"type": "f32", "value": "4082113053"}]}, - {"type": "module", "line": 1533, "filename": "float_exprs.62.wasm"}, - {"type": "assert_return", "line": 1581, "action": {"type": "invoke", "field": "f64.kahan_sum", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "256"}]}, "expected": [{"type": "f64", "value": "9105671289202277512"}]}, - {"type": "assert_return", "line": 1582, "action": {"type": "invoke", "field": "f64.plain_sum", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "256"}]}, "expected": [{"type": "f64", "value": "9105671289202539655"}]}, - {"type": "module", "line": 1586, "filename": "float_exprs.63.wasm"}, - {"type": "assert_return", "line": 1594, "action": {"type": "invoke", "field": "f32.no_fold_neg_sub", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1595, "action": {"type": "invoke", "field": "f32.no_fold_neg_sub", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1596, "action": {"type": "invoke", "field": "f32.no_fold_neg_sub", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1597, "action": {"type": "invoke", "field": "f32.no_fold_neg_sub", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1599, "action": {"type": "invoke", "field": "f64.no_fold_neg_sub", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1600, "action": {"type": "invoke", "field": "f64.no_fold_neg_sub", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1601, "action": {"type": "invoke", "field": "f64.no_fold_neg_sub", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1602, "action": {"type": "invoke", "field": "f64.no_fold_neg_sub", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "module", "line": 1606, "filename": "float_exprs.64.wasm"}, - {"type": "assert_return", "line": 1614, "action": {"type": "invoke", "field": "f32.no_fold_neg_add", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1615, "action": {"type": "invoke", "field": "f32.no_fold_neg_add", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1616, "action": {"type": "invoke", "field": "f32.no_fold_neg_add", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1617, "action": {"type": "invoke", "field": "f32.no_fold_neg_add", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1619, "action": {"type": "invoke", "field": "f64.no_fold_neg_add", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1620, "action": {"type": "invoke", "field": "f64.no_fold_neg_add", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1621, "action": {"type": "invoke", "field": "f64.no_fold_neg_add", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1622, "action": {"type": "invoke", "field": "f64.no_fold_neg_add", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "module", "line": 1626, "filename": "float_exprs.65.wasm"}, - {"type": "assert_return", "line": 1634, "action": {"type": "invoke", "field": "f32.no_fold_add_neg_neg", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1635, "action": {"type": "invoke", "field": "f32.no_fold_add_neg_neg", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1636, "action": {"type": "invoke", "field": "f32.no_fold_add_neg_neg", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1637, "action": {"type": "invoke", "field": "f32.no_fold_add_neg_neg", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1639, "action": {"type": "invoke", "field": "f64.no_fold_add_neg_neg", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1640, "action": {"type": "invoke", "field": "f64.no_fold_add_neg_neg", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1641, "action": {"type": "invoke", "field": "f64.no_fold_add_neg_neg", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1642, "action": {"type": "invoke", "field": "f64.no_fold_add_neg_neg", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "module", "line": 1646, "filename": "float_exprs.66.wasm"}, - {"type": "assert_return", "line": 1654, "action": {"type": "invoke", "field": "f32.no_fold_add_neg", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1655, "action": {"type": "invoke", "field": "f32.no_fold_add_neg", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1656, "action": {"type": "invoke", "field": "f32.no_fold_add_neg", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "f32", "value": "nan:canonical"}]}, - {"type": "assert_return", "line": 1657, "action": {"type": "invoke", "field": "f32.no_fold_add_neg", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "f32", "value": "nan:canonical"}]}, - {"type": "assert_return", "line": 1659, "action": {"type": "invoke", "field": "f64.no_fold_add_neg", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1660, "action": {"type": "invoke", "field": "f64.no_fold_add_neg", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1661, "action": {"type": "invoke", "field": "f64.no_fold_add_neg", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "f64", "value": "nan:canonical"}]}, - {"type": "assert_return", "line": 1662, "action": {"type": "invoke", "field": "f64.no_fold_add_neg", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "f64", "value": "nan:canonical"}]}, - {"type": "module", "line": 1666, "filename": "float_exprs.67.wasm"}, - {"type": "assert_return", "line": 1680, "action": {"type": "invoke", "field": "f32.no_fold_6x_via_add", "args": [{"type": "f32", "value": "4046243078"}]}, "expected": [{"type": "f32", "value": "4068578245"}]}, - {"type": "assert_return", "line": 1681, "action": {"type": "invoke", "field": "f32.no_fold_6x_via_add", "args": [{"type": "f32", "value": "2573857750"}]}, "expected": [{"type": "f32", "value": "2595190497"}]}, - {"type": "assert_return", "line": 1682, "action": {"type": "invoke", "field": "f32.no_fold_6x_via_add", "args": [{"type": "f32", "value": "419462401"}]}, "expected": [{"type": "f32", "value": "440449921"}]}, - {"type": "assert_return", "line": 1683, "action": {"type": "invoke", "field": "f32.no_fold_6x_via_add", "args": [{"type": "f32", "value": "2955475482"}]}, "expected": [{"type": "f32", "value": "2977789734"}]}, - {"type": "assert_return", "line": 1684, "action": {"type": "invoke", "field": "f32.no_fold_6x_via_add", "args": [{"type": "f32", "value": "3883931973"}]}, "expected": [{"type": "f32", "value": "3904906727"}]}, - {"type": "assert_return", "line": 1686, "action": {"type": "invoke", "field": "f64.no_fold_6x_via_add", "args": [{"type": "f64", "value": "14137662215323058150"}]}, "expected": [{"type": "f64", "value": "14149352706895019994"}]}, - {"type": "assert_return", "line": 1687, "action": {"type": "invoke", "field": "f64.no_fold_6x_via_add", "args": [{"type": "f64", "value": "11424134044545165748"}]}, "expected": [{"type": "f64", "value": "11435767596137037638"}]}, - {"type": "assert_return", "line": 1688, "action": {"type": "invoke", "field": "f64.no_fold_6x_via_add", "args": [{"type": "f64", "value": "15055410132664937138"}]}, "expected": [{"type": "f64", "value": "15066699987142021125"}]}, - {"type": "assert_return", "line": 1689, "action": {"type": "invoke", "field": "f64.no_fold_6x_via_add", "args": [{"type": "f64", "value": "7991451501228919438"}]}, "expected": [{"type": "f64", "value": "8003319959635773419"}]}, - {"type": "assert_return", "line": 1690, "action": {"type": "invoke", "field": "f64.no_fold_6x_via_add", "args": [{"type": "f64", "value": "14886926859367497770"}]}, "expected": [{"type": "f64", "value": "14898679235615764511"}]}, - {"type": "module", "line": 1695, "filename": "float_exprs.68.wasm"}, - {"type": "assert_return", "line": 1703, "action": {"type": "invoke", "field": "f32.no_fold_div_div", "args": [{"type": "f32", "value": "3875242260"}, {"type": "f32", "value": "3086869257"}, {"type": "f32", "value": "3301317576"}]}, "expected": [{"type": "f32", "value": "3911440926"}]}, - {"type": "assert_return", "line": 1704, "action": {"type": "invoke", "field": "f32.no_fold_div_div", "args": [{"type": "f32", "value": "485052055"}, {"type": "f32", "value": "1996083391"}, {"type": "f32", "value": "2276616712"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1705, "action": {"type": "invoke", "field": "f32.no_fold_div_div", "args": [{"type": "f32", "value": "1430470604"}, {"type": "f32", "value": "186144382"}, {"type": "f32", "value": "1953564780"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, - {"type": "assert_return", "line": 1706, "action": {"type": "invoke", "field": "f32.no_fold_div_div", "args": [{"type": "f32", "value": "3101818893"}, {"type": "f32", "value": "4258133430"}, {"type": "f32", "value": "2855958950"}]}, "expected": [{"type": "f32", "value": "2411777082"}]}, - {"type": "assert_return", "line": 1707, "action": {"type": "invoke", "field": "f32.no_fold_div_div", "args": [{"type": "f32", "value": "1458407223"}, {"type": "f32", "value": "1537931089"}, {"type": "f32", "value": "4260989344"}]}, "expected": [{"type": "f32", "value": "2147507000"}]}, - {"type": "assert_return", "line": 1709, "action": {"type": "invoke", "field": "f64.no_fold_div_div", "args": [{"type": "f64", "value": "6128077243319875447"}, {"type": "f64", "value": "7240092044185667120"}, {"type": "f64", "value": "10312472494987686942"}]}, "expected": [{"type": "f64", "value": "16236150182064455170"}]}, - {"type": "assert_return", "line": 1710, "action": {"type": "invoke", "field": "f64.no_fold_div_div", "args": [{"type": "f64", "value": "17395933367696573535"}, {"type": "f64", "value": "4478922858584402707"}, {"type": "f64", "value": "6032094754408482817"}]}, "expected": [{"type": "f64", "value": "16098470347548634769"}]}, - {"type": "assert_return", "line": 1711, "action": {"type": "invoke", "field": "f64.no_fold_div_div", "args": [{"type": "f64", "value": "13843263185226986279"}, {"type": "f64", "value": "17796742619038211051"}, {"type": "f64", "value": "5375701731263473827"}]}, "expected": [{"type": "f64", "value": "44472927"}]}, - {"type": "assert_return", "line": 1712, "action": {"type": "invoke", "field": "f64.no_fold_div_div", "args": [{"type": "f64", "value": "17547288444310957340"}, {"type": "f64", "value": "911654786857739111"}, {"type": "f64", "value": "8937284546802896640"}]}, "expected": [{"type": "f64", "value": "18442240474082181120"}]}, - {"type": "assert_return", "line": 1713, "action": {"type": "invoke", "field": "f64.no_fold_div_div", "args": [{"type": "f64", "value": "9835707468114203513"}, {"type": "f64", "value": "1924400690116523912"}, {"type": "f64", "value": "13208934041167870811"}]}, "expected": [{"type": "f64", "value": "3916014548332337260"}]}, - {"type": "module", "line": 1719, "filename": "float_exprs.69.wasm"}, - {"type": "assert_return", "line": 1727, "action": {"type": "invoke", "field": "f32.no_fold_mul_divs", "args": [{"type": "f32", "value": "2304917983"}, {"type": "f32", "value": "301403678"}, {"type": "f32", "value": "331350955"}, {"type": "f32", "value": "3251297465"}]}, "expected": [{"type": "f32", "value": "148760966"}]}, - {"type": "assert_return", "line": 1728, "action": {"type": "invoke", "field": "f32.no_fold_mul_divs", "args": [{"type": "f32", "value": "4068974897"}, {"type": "f32", "value": "1276265036"}, {"type": "f32", "value": "930821438"}, {"type": "f32", "value": "1044692964"}]}, "expected": [{"type": "f32", "value": "3742862674"}]}, - {"type": "assert_return", "line": 1729, "action": {"type": "invoke", "field": "f32.no_fold_mul_divs", "args": [{"type": "f32", "value": "3496980369"}, {"type": "f32", "value": "3548280607"}, {"type": "f32", "value": "3461305482"}, {"type": "f32", "value": "3298174616"}]}, "expected": [{"type": "f32", "value": "1176926862"}]}, - {"type": "assert_return", "line": 1730, "action": {"type": "invoke", "field": "f32.no_fold_mul_divs", "args": [{"type": "f32", "value": "4135236702"}, {"type": "f32", "value": "787270424"}, {"type": "f32", "value": "932959293"}, {"type": "f32", "value": "1724950821"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, - {"type": "assert_return", "line": 1731, "action": {"type": "invoke", "field": "f32.no_fold_mul_divs", "args": [{"type": "f32", "value": "622783177"}, {"type": "f32", "value": "2677642769"}, {"type": "f32", "value": "307759154"}, {"type": "f32", "value": "768171421"}]}, "expected": [{"type": "f32", "value": "2844661464"}]}, - {"type": "assert_return", "line": 1733, "action": {"type": "invoke", "field": "f64.no_fold_mul_divs", "args": [{"type": "f64", "value": "10143060558527560466"}, {"type": "f64", "value": "11745059379675007839"}, {"type": "f64", "value": "16295837305232663584"}, {"type": "f64", "value": "5444961058358534642"}]}, "expected": [{"type": "f64", "value": "13856326607560224491"}]}, - {"type": "assert_return", "line": 1734, "action": {"type": "invoke", "field": "f64.no_fold_mul_divs", "args": [{"type": "f64", "value": "14349445329289351080"}, {"type": "f64", "value": "468238185841254727"}, {"type": "f64", "value": "15463559257629249878"}, {"type": "f64", "value": "15937497686185055572"}]}, "expected": [{"type": "f64", "value": "18442240474082181120"}]}, - {"type": "assert_return", "line": 1735, "action": {"type": "invoke", "field": "f64.no_fold_mul_divs", "args": [{"type": "f64", "value": "15220380342429201729"}, {"type": "f64", "value": "14697937818549468616"}, {"type": "f64", "value": "13203624158275174657"}, {"type": "f64", "value": "17131104131485469546"}]}, "expected": [{"type": "f64", "value": "1202126128702318245"}]}, - {"type": "assert_return", "line": 1736, "action": {"type": "invoke", "field": "f64.no_fold_mul_divs", "args": [{"type": "f64", "value": "14414969397981384765"}, {"type": "f64", "value": "12269327994486371199"}, {"type": "f64", "value": "298707625567048656"}, {"type": "f64", "value": "5613107161545919917"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1737, "action": {"type": "invoke", "field": "f64.no_fold_mul_divs", "args": [{"type": "f64", "value": "4529089342618677929"}, {"type": "f64", "value": "3361245300043094097"}, {"type": "f64", "value": "1815899012046749567"}, {"type": "f64", "value": "15418396504351552390"}]}, "expected": [{"type": "f64", "value": "10619033301585441215"}]}, - {"type": "module", "line": 1741, "filename": "float_exprs.70.wasm"}, - {"type": "assert_return", "line": 1749, "action": {"type": "invoke", "field": "f32.no_fold_add_divs", "args": [{"type": "f32", "value": "1136439096"}, {"type": "f32", "value": "3173274359"}, {"type": "f32", "value": "4274852390"}]}, "expected": [{"type": "f32", "value": "2221638875"}]}, - {"type": "assert_return", "line": 1750, "action": {"type": "invoke", "field": "f32.no_fold_add_divs", "args": [{"type": "f32", "value": "2690073844"}, {"type": "f32", "value": "2809448479"}, {"type": "f32", "value": "3608905030"}]}, "expected": [{"type": "f32", "value": "264862203"}]}, - {"type": "assert_return", "line": 1751, "action": {"type": "invoke", "field": "f32.no_fold_add_divs", "args": [{"type": "f32", "value": "2830184964"}, {"type": "f32", "value": "530019033"}, {"type": "f32", "value": "3623253973"}]}, "expected": [{"type": "f32", "value": "272108594"}]}, - {"type": "assert_return", "line": 1752, "action": {"type": "invoke", "field": "f32.no_fold_add_divs", "args": [{"type": "f32", "value": "2365787800"}, {"type": "f32", "value": "245111369"}, {"type": "f32", "value": "3952003433"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1753, "action": {"type": "invoke", "field": "f32.no_fold_add_divs", "args": [{"type": "f32", "value": "982471119"}, {"type": "f32", "value": "1045692415"}, {"type": "f32", "value": "37216954"}]}, "expected": [{"type": "f32", "value": "2073319791"}]}, - {"type": "assert_return", "line": 1755, "action": {"type": "invoke", "field": "f64.no_fold_add_divs", "args": [{"type": "f64", "value": "15770585325769044278"}, {"type": "f64", "value": "6564157675451289455"}, {"type": "f64", "value": "8712254759989822359"}]}, "expected": [{"type": "f64", "value": "2458462832069881218"}]}, - {"type": "assert_return", "line": 1756, "action": {"type": "invoke", "field": "f64.no_fold_add_divs", "args": [{"type": "f64", "value": "14069844870254671283"}, {"type": "f64", "value": "4634122757084803708"}, {"type": "f64", "value": "9524897388132352235"}]}, "expected": [{"type": "f64", "value": "9152039358940941283"}]}, - {"type": "assert_return", "line": 1757, "action": {"type": "invoke", "field": "f64.no_fold_add_divs", "args": [{"type": "f64", "value": "9479648703296052622"}, {"type": "f64", "value": "214573661502224386"}, {"type": "f64", "value": "6877551490107761946"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1758, "action": {"type": "invoke", "field": "f64.no_fold_add_divs", "args": [{"type": "f64", "value": "6019502660029506228"}, {"type": "f64", "value": "15316513033818836241"}, {"type": "f64", "value": "4039967192182502935"}]}, "expected": [{"type": "f64", "value": "15883525310425977300"}]}, - {"type": "assert_return", "line": 1759, "action": {"type": "invoke", "field": "f64.no_fold_add_divs", "args": [{"type": "f64", "value": "10555667216821129841"}, {"type": "f64", "value": "1207418919037494573"}, {"type": "f64", "value": "4296330408727545598"}]}, "expected": [{"type": "f64", "value": "10866511466898347555"}]}, - {"type": "module", "line": 1763, "filename": "float_exprs.71.wasm"}, - {"type": "assert_return", "line": 1771, "action": {"type": "invoke", "field": "f32.no_fold_sqrt_square", "args": [{"type": "f32", "value": "2662226315"}]}, "expected": [{"type": "f32", "value": "514742673"}]}, - {"type": "assert_return", "line": 1772, "action": {"type": "invoke", "field": "f32.no_fold_sqrt_square", "args": [{"type": "f32", "value": "2606267634"}]}, "expected": [{"type": "f32", "value": "458819801"}]}, - {"type": "assert_return", "line": 1773, "action": {"type": "invoke", "field": "f32.no_fold_sqrt_square", "args": [{"type": "f32", "value": "2624528574"}]}, "expected": [{"type": "f32", "value": "477049564"}]}, - {"type": "assert_return", "line": 1774, "action": {"type": "invoke", "field": "f32.no_fold_sqrt_square", "args": [{"type": "f32", "value": "347235385"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1775, "action": {"type": "invoke", "field": "f32.no_fold_sqrt_square", "args": [{"type": "f32", "value": "1978715378"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, - {"type": "assert_return", "line": 1777, "action": {"type": "invoke", "field": "f64.no_fold_sqrt_square", "args": [{"type": "f64", "value": "2225189009770021885"}]}, "expected": [{"type": "f64", "value": "2225189011649283571"}]}, - {"type": "assert_return", "line": 1778, "action": {"type": "invoke", "field": "f64.no_fold_sqrt_square", "args": [{"type": "f64", "value": "11517048459773840771"}]}, "expected": [{"type": "f64", "value": "2293676422919064961"}]}, - {"type": "assert_return", "line": 1779, "action": {"type": "invoke", "field": "f64.no_fold_sqrt_square", "args": [{"type": "f64", "value": "11484764485761855006"}]}, "expected": [{"type": "f64", "value": "2261392448906973069"}]}, - {"type": "assert_return", "line": 1780, "action": {"type": "invoke", "field": "f64.no_fold_sqrt_square", "args": [{"type": "f64", "value": "11056484744549647728"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 1781, "action": {"type": "invoke", "field": "f64.no_fold_sqrt_square", "args": [{"type": "f64", "value": "8465406758332488378"}]}, "expected": [{"type": "f64", "value": "9218868437227405312"}]}, - {"type": "module", "line": 1785, "filename": "float_exprs.72.wasm"}, - {"type": "assert_return", "line": 1793, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrts", "args": [{"type": "f32", "value": "24047316"}, {"type": "f32", "value": "2517821717"}]}, "expected": [{"type": "f32", "value": "nan:canonical"}]}, - {"type": "assert_return", "line": 1794, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrts", "args": [{"type": "f32", "value": "295749258"}, {"type": "f32", "value": "803416494"}]}, "expected": [{"type": "f32", "value": "549395357"}]}, - {"type": "assert_return", "line": 1795, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrts", "args": [{"type": "f32", "value": "329708528"}, {"type": "f32", "value": "1120042892"}]}, "expected": [{"type": "f32", "value": "724841268"}]}, - {"type": "assert_return", "line": 1796, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrts", "args": [{"type": "f32", "value": "1916535951"}, {"type": "f32", "value": "994115420"}]}, "expected": [{"type": "f32", "value": "1455324620"}]}, - {"type": "assert_return", "line": 1797, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrts", "args": [{"type": "f32", "value": "598482176"}, {"type": "f32", "value": "990534933"}]}, "expected": [{"type": "f32", "value": "794443079"}]}, - {"type": "assert_return", "line": 1799, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrts", "args": [{"type": "f64", "value": "10974446854152441278"}, {"type": "f64", "value": "13797896470155574122"}]}, "expected": [{"type": "f64", "value": "nan:canonical"}]}, - {"type": "assert_return", "line": 1800, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrts", "args": [{"type": "f64", "value": "1712959863583927241"}, {"type": "f64", "value": "2792003944717853898"}]}, "expected": [{"type": "f64", "value": "2252469008297979510"}]}, - {"type": "assert_return", "line": 1801, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrts", "args": [{"type": "f64", "value": "4208351758938831157"}, {"type": "f64", "value": "497361189565243603"}]}, "expected": [{"type": "f64", "value": "2352856462697312748"}]}, - {"type": "assert_return", "line": 1802, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrts", "args": [{"type": "f64", "value": "2976792199849816182"}, {"type": "f64", "value": "2030444188042608984"}]}, "expected": [{"type": "f64", "value": "2503613111125550255"}]}, - {"type": "assert_return", "line": 1803, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrts", "args": [{"type": "f64", "value": "4717634334691577101"}, {"type": "f64", "value": "6919598687070693285"}]}, "expected": [{"type": "f64", "value": "5818898567902921651"}]}, - {"type": "module", "line": 1807, "filename": "float_exprs.73.wasm"}, - {"type": "assert_return", "line": 1815, "action": {"type": "invoke", "field": "f32.no_fold_div_sqrts", "args": [{"type": "f32", "value": "3428799709"}, {"type": "f32", "value": "2733489079"}]}, "expected": [{"type": "f32", "value": "nan:canonical"}]}, - {"type": "assert_return", "line": 1816, "action": {"type": "invoke", "field": "f32.no_fold_div_sqrts", "args": [{"type": "f32", "value": "1339867611"}, {"type": "f32", "value": "1296568207"}]}, "expected": [{"type": "f32", "value": "1086203643"}]}, - {"type": "assert_return", "line": 1817, "action": {"type": "invoke", "field": "f32.no_fold_div_sqrts", "args": [{"type": "f32", "value": "65679161"}, {"type": "f32", "value": "1196795110"}]}, "expected": [{"type": "f32", "value": "498959746"}]}, - {"type": "assert_return", "line": 1818, "action": {"type": "invoke", "field": "f32.no_fold_div_sqrts", "args": [{"type": "f32", "value": "1566143010"}, {"type": "f32", "value": "816694667"}]}, "expected": [{"type": "f32", "value": "1439333972"}]}, - {"type": "assert_return", "line": 1819, "action": {"type": "invoke", "field": "f32.no_fold_div_sqrts", "args": [{"type": "f32", "value": "130133331"}, {"type": "f32", "value": "208189588"}]}, "expected": [{"type": "f32", "value": "1025844032"}]}, - {"type": "assert_return", "line": 1821, "action": {"type": "invoke", "field": "f64.no_fold_div_sqrts", "args": [{"type": "f64", "value": "10629913473787695463"}, {"type": "f64", "value": "12991130264919696663"}]}, "expected": [{"type": "f64", "value": "nan:canonical"}]}, - {"type": "assert_return", "line": 1822, "action": {"type": "invoke", "field": "f64.no_fold_div_sqrts", "args": [{"type": "f64", "value": "1966780663211935584"}, {"type": "f64", "value": "7043916066229883379"}]}, "expected": [{"type": "f64", "value": "2068364230648818889"}]}, - {"type": "assert_return", "line": 1823, "action": {"type": "invoke", "field": "f64.no_fold_div_sqrts", "args": [{"type": "f64", "value": "6965599900716272009"}, {"type": "f64", "value": "4118781927977980600"}]}, "expected": [{"type": "f64", "value": "6030491425828883991"}]}, - {"type": "assert_return", "line": 1824, "action": {"type": "invoke", "field": "f64.no_fold_div_sqrts", "args": [{"type": "f64", "value": "962551478168675351"}, {"type": "f64", "value": "5918292176617055751"}]}, "expected": [{"type": "f64", "value": "2129092583060403799"}]}, - {"type": "assert_return", "line": 1825, "action": {"type": "invoke", "field": "f64.no_fold_div_sqrts", "args": [{"type": "f64", "value": "1056821405580891413"}, {"type": "f64", "value": "8865548665903786673"}]}, "expected": [{"type": "f64", "value": "702724841785532050"}]}, - {"type": "module", "line": 1829, "filename": "float_exprs.74.wasm"}, - {"type": "assert_return", "line": 1837, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrt_div", "args": [{"type": "f32", "value": "3900330981"}, {"type": "f32", "value": "1843416431"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, - {"type": "assert_return", "line": 1838, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrt_div", "args": [{"type": "f32", "value": "2210946958"}, {"type": "f32", "value": "256302916"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 1839, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrt_div", "args": [{"type": "f32", "value": "1312995444"}, {"type": "f32", "value": "2371494"}]}, "expected": [{"type": "f32", "value": "1849105549"}]}, - {"type": "assert_return", "line": 1840, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrt_div", "args": [{"type": "f32", "value": "3576537897"}, {"type": "f32", "value": "2010442638"}]}, "expected": [{"type": "f32", "value": "3104219421"}]}, - {"type": "assert_return", "line": 1841, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrt_div", "args": [{"type": "f32", "value": "3284697858"}, {"type": "f32", "value": "1124488329"}]}, "expected": [{"type": "f32", "value": "3255461622"}]}, - {"type": "assert_return", "line": 1843, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrt_div", "args": [{"type": "f64", "value": "7751219282814906463"}, {"type": "f64", "value": "8023732701704228537"}]}, "expected": [{"type": "f64", "value": "9218868437227405312"}]}, - {"type": "assert_return", "line": 1844, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrt_div", "args": [{"type": "f64", "value": "10108528314069607083"}, {"type": "f64", "value": "1595930056995453707"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 1845, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrt_div", "args": [{"type": "f64", "value": "2695209648295623224"}, {"type": "f64", "value": "7133480874314061811"}]}, "expected": [{"type": "f64", "value": "1432338140829931582"}]}, - {"type": "assert_return", "line": 1846, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrt_div", "args": [{"type": "f64", "value": "15416524255949334213"}, {"type": "f64", "value": "2434442666062773630"}]}, "expected": [{"type": "f64", "value": "16502590179898118478"}]}, - {"type": "assert_return", "line": 1847, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrt_div", "args": [{"type": "f64", "value": "5076901024782455083"}, {"type": "f64", "value": "8399438310541178654"}]}, "expected": [{"type": "f64", "value": "3180744754328846996"}]}, - {"type": "module", "line": 1852, "filename": "float_exprs.75.wasm"}, - {"type": "assert_return", "line": 1860, "action": {"type": "invoke", "field": "f32.no_flush_intermediate_subnormal", "args": [{"type": "f32", "value": "8388608"}, {"type": "f32", "value": "872415232"}, {"type": "f32", "value": "1258291200"}]}, "expected": [{"type": "f32", "value": "8388608"}]}, - {"type": "assert_return", "line": 1861, "action": {"type": "invoke", "field": "f64.no_flush_intermediate_subnormal", "args": [{"type": "f64", "value": "4503599627370496"}, {"type": "f64", "value": "4372995238176751616"}, {"type": "f64", "value": "4841369599423283200"}]}, "expected": [{"type": "f64", "value": "4503599627370496"}]}, - {"type": "module", "line": 1866, "filename": "float_exprs.76.wasm"}, - {"type": "assert_return", "line": 1889, "action": {"type": "invoke", "field": "f32.recoding_eq", "args": [{"type": "f32", "value": "4286578688"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1890, "action": {"type": "invoke", "field": "f32.recoding_le", "args": [{"type": "f32", "value": "4286578688"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1891, "action": {"type": "invoke", "field": "f32.recoding_lt", "args": [{"type": "f32", "value": "4286578688"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 1893, "action": {"type": "invoke", "field": "f32.recoding_eq", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1894, "action": {"type": "invoke", "field": "f32.recoding_le", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1895, "action": {"type": "invoke", "field": "f32.recoding_lt", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 1897, "action": {"type": "invoke", "field": "f64.recoding_eq", "args": [{"type": "f64", "value": "18442240474082181120"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1898, "action": {"type": "invoke", "field": "f64.recoding_le", "args": [{"type": "f64", "value": "18442240474082181120"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1899, "action": {"type": "invoke", "field": "f64.recoding_lt", "args": [{"type": "f64", "value": "18442240474082181120"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 1901, "action": {"type": "invoke", "field": "f64.recoding_eq", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1902, "action": {"type": "invoke", "field": "f64.recoding_le", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1903, "action": {"type": "invoke", "field": "f64.recoding_lt", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 1905, "action": {"type": "invoke", "field": "recoding_demote", "args": [{"type": "f64", "value": "4014054135371399168"}, {"type": "f32", "value": "1150853120"}]}, "expected": [{"type": "f32", "value": "46548238"}]}, - {"type": "module", "line": 1910, "filename": "float_exprs.77.wasm"}, - {"type": "assert_return", "line": 1918, "action": {"type": "invoke", "field": "f32.no_extended_precision_div", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1088421888"}, {"type": "f32", "value": "1054567863"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 1919, "action": {"type": "invoke", "field": "f64.no_extended_precision_div", "args": [{"type": "f64", "value": "4613937818241073152"}, {"type": "f64", "value": "4619567317775286272"}, {"type": "f64", "value": "4601392076421969627"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "module", "line": 1926, "filename": "float_exprs.78.wasm"}, - {"type": "assert_return", "line": 1934, "action": {"type": "invoke", "field": "f32.no_distribute_exact", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 1935, "action": {"type": "invoke", "field": "f64.no_distribute_exact", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "module", "line": 1940, "filename": "float_exprs.79.wasm"}, - {"type": "assert_return", "line": 1972, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "f32", "value": "1068827891"}]}, - {"type": "assert_return", "line": 1973, "action": {"type": "invoke", "field": "f32.xkcd_sqrt_2", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1084227584"}, {"type": "f32", "value": "1078530011"}, {"type": "f32", "value": "1088421888"}]}, "expected": [{"type": "f32", "value": "1068827946"}]}, - {"type": "assert_return", "line": 1974, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "f32", "value": "1071494103"}]}, - {"type": "assert_return", "line": 1975, "action": {"type": "invoke", "field": "f32.xkcd_sqrt_3", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1076754516"}, {"type": "f32", "value": "1078530011"}]}, "expected": [{"type": "f32", "value": "1071481194"}]}, - {"type": "assert_return", "line": 1976, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1084227584"}]}, "expected": [{"type": "f32", "value": "1074731965"}]}, - {"type": "assert_return", "line": 1977, "action": {"type": "invoke", "field": "f32.xkcd_sqrt_5", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1076754516"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "f32", "value": "1074730668"}]}, - {"type": "assert_return", "line": 1978, "action": {"type": "invoke", "field": "f32.xkcd_better_sqrt_5", "args": [{"type": "f32", "value": "1095761920"}, {"type": "f32", "value": "1082130432"}, {"type": "f32", "value": "1078530011"}, {"type": "f32", "value": "1103101952"}]}, "expected": [{"type": "f32", "value": "1074731965"}]}, - {"type": "assert_return", "line": 1980, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "f64", "value": "4609047870845172685"}]}, - {"type": "assert_return", "line": 1981, "action": {"type": "invoke", "field": "f64.xkcd_sqrt_2", "args": [{"type": "f64", "value": "4613937818241073152"}, {"type": "f64", "value": "4617315517961601024"}, {"type": "f64", "value": "4614256656552045848"}, {"type": "f64", "value": "4619567317775286272"}]}, "expected": [{"type": "f64", "value": "4609047900099118431"}]}, - {"type": "assert_return", "line": 1982, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "f64", "value": "4610479282544200874"}]}, - {"type": "assert_return", "line": 1983, "action": {"type": "invoke", "field": "f64.xkcd_sqrt_3", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613303445314885481"}, {"type": "f64", "value": "4614256656552045848"}]}, "expected": [{"type": "f64", "value": "4610472352185749397"}]}, - {"type": "assert_return", "line": 1984, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4617315517961601024"}]}, "expected": [{"type": "f64", "value": "4612217596255138984"}]}, - {"type": "assert_return", "line": 1985, "action": {"type": "invoke", "field": "f64.xkcd_sqrt_5", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613303445314885481"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "f64", "value": "4612216900234722254"}]}, - {"type": "assert_return", "line": 1986, "action": {"type": "invoke", "field": "f64.xkcd_better_sqrt_5", "args": [{"type": "f64", "value": "4623507967449235456"}, {"type": "f64", "value": "4616189618054758400"}, {"type": "f64", "value": "4614256656552045848"}, {"type": "f64", "value": "4627448617123184640"}]}, "expected": [{"type": "f64", "value": "4612217595876713891"}]}, - {"type": "module", "line": 1991, "filename": "float_exprs.80.wasm"}, - {"type": "assert_return", "line": 2069, "action": {"type": "invoke", "field": "f32.compute_radix", "args": [{"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "1073741824"}]}, - {"type": "assert_return", "line": 2070, "action": {"type": "invoke", "field": "f64.compute_radix", "args": [{"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, - {"type": "module", "line": 2075, "filename": "float_exprs.81.wasm"}, - {"type": "assert_return", "line": 2083, "action": {"type": "invoke", "field": "f32.no_fold_sub1_mul_add", "args": [{"type": "f32", "value": "796917760"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 2084, "action": {"type": "invoke", "field": "f64.no_fold_sub1_mul_add", "args": [{"type": "f64", "value": "4318952042648305664"}, {"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "module", "line": 2089, "filename": "float_exprs.82.wasm"}, - {"type": "assert_return", "line": 2103, "action": {"type": "invoke", "field": "f32.no_fold_add_le_monotonicity", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 2104, "action": {"type": "invoke", "field": "f32.no_fold_add_le_monotonicity", "args": [{"type": "f32", "value": "2139095040"}, {"type": "f32", "value": "4286578688"}, {"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 2105, "action": {"type": "invoke", "field": "f64.no_fold_add_le_monotonicity", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 2106, "action": {"type": "invoke", "field": "f64.no_fold_add_le_monotonicity", "args": [{"type": "f64", "value": "9218868437227405312"}, {"type": "f64", "value": "18442240474082181120"}, {"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "module", "line": 2110, "filename": "float_exprs.83.wasm"}, - {"type": "assert_return", "line": 2136, "action": {"type": "invoke", "field": "f32.not_lt", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 2137, "action": {"type": "invoke", "field": "f32.not_le", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 2138, "action": {"type": "invoke", "field": "f32.not_gt", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 2139, "action": {"type": "invoke", "field": "f32.not_ge", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 2140, "action": {"type": "invoke", "field": "f64.not_lt", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 2141, "action": {"type": "invoke", "field": "f64.not_le", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 2142, "action": {"type": "invoke", "field": "f64.not_gt", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 2143, "action": {"type": "invoke", "field": "f64.not_ge", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "module", "line": 2149, "filename": "float_exprs.84.wasm"}, - {"type": "assert_return", "line": 2157, "action": {"type": "invoke", "field": "f32.epsilon", "args": []}, "expected": [{"type": "f32", "value": "3019898880"}]}, - {"type": "assert_return", "line": 2158, "action": {"type": "invoke", "field": "f64.epsilon", "args": []}, "expected": [{"type": "f64", "value": "4372995238176751616"}]}, + {"type": "module", "line": 655, "filename": "float_exprs.37.wasm"}, + {"type": "assert_return", "line": 662, "action": {"type": "invoke", "field": "no_demote_mixed_add", "args": [{"type": "f64", "value": "4183652368636204281"}, {"type": "f32", "value": "69183310"}]}, "expected": [{"type": "f32", "value": "276467023"}]}, + {"type": "assert_return", "line": 663, "action": {"type": "invoke", "field": "no_demote_mixed_add", "args": [{"type": "f64", "value": "4773927428111915216"}, {"type": "f32", "value": "1387972204"}]}, "expected": [{"type": "f32", "value": "1392270651"}]}, + {"type": "assert_return", "line": 664, "action": {"type": "invoke", "field": "no_demote_mixed_add", "args": [{"type": "f64", "value": "4072985553596038423"}, {"type": "f32", "value": "2202918851"}]}, "expected": [{"type": "f32", "value": "66813087"}]}, + {"type": "assert_return", "line": 665, "action": {"type": "invoke", "field": "no_demote_mixed_add", "args": [{"type": "f64", "value": "13740716732336801211"}, {"type": "f32", "value": "822392741"}]}, "expected": [{"type": "f32", "value": "3045484077"}]}, + {"type": "assert_return", "line": 666, "action": {"type": "invoke", "field": "no_demote_mixed_add", "args": [{"type": "f64", "value": "13742514716462174325"}, {"type": "f32", "value": "2870112826"}]}, "expected": [{"type": "f32", "value": "3048850075"}]}, + {"type": "assert_return", "line": 668, "action": {"type": "invoke", "field": "no_demote_mixed_add_commuted", "args": [{"type": "f32", "value": "69183310"}, {"type": "f64", "value": "4183652368636204281"}]}, "expected": [{"type": "f32", "value": "276467023"}]}, + {"type": "assert_return", "line": 669, "action": {"type": "invoke", "field": "no_demote_mixed_add_commuted", "args": [{"type": "f32", "value": "1387972204"}, {"type": "f64", "value": "4773927428111915216"}]}, "expected": [{"type": "f32", "value": "1392270651"}]}, + {"type": "assert_return", "line": 670, "action": {"type": "invoke", "field": "no_demote_mixed_add_commuted", "args": [{"type": "f32", "value": "2202918851"}, {"type": "f64", "value": "4072985553596038423"}]}, "expected": [{"type": "f32", "value": "66813087"}]}, + {"type": "assert_return", "line": 671, "action": {"type": "invoke", "field": "no_demote_mixed_add_commuted", "args": [{"type": "f32", "value": "822392741"}, {"type": "f64", "value": "13740716732336801211"}]}, "expected": [{"type": "f32", "value": "3045484077"}]}, + {"type": "assert_return", "line": 672, "action": {"type": "invoke", "field": "no_demote_mixed_add_commuted", "args": [{"type": "f32", "value": "2870112826"}, {"type": "f64", "value": "13742514716462174325"}]}, "expected": [{"type": "f32", "value": "3048850075"}]}, + {"type": "module", "line": 677, "filename": "float_exprs.38.wasm"}, + {"type": "assert_return", "line": 684, "action": {"type": "invoke", "field": "no_demote_mixed_sub", "args": [{"type": "f64", "value": "4979303437048015281"}, {"type": "f32", "value": "1583535740"}]}, "expected": [{"type": "f32", "value": "1758482618"}]}, + {"type": "assert_return", "line": 685, "action": {"type": "invoke", "field": "no_demote_mixed_sub", "args": [{"type": "f64", "value": "13967600632962086462"}, {"type": "f32", "value": "1214924370"}]}, "expected": [{"type": "f32", "value": "3468107136"}]}, + {"type": "assert_return", "line": 686, "action": {"type": "invoke", "field": "no_demote_mixed_sub", "args": [{"type": "f64", "value": "13860263758943608426"}, {"type": "f32", "value": "969848030"}]}, "expected": [{"type": "f32", "value": "3268174805"}]}, + {"type": "assert_return", "line": 687, "action": {"type": "invoke", "field": "no_demote_mixed_sub", "args": [{"type": "f64", "value": "4364064588997139903"}, {"type": "f32", "value": "472962692"}]}, "expected": [{"type": "f32", "value": "612510881"}]}, + {"type": "assert_return", "line": 688, "action": {"type": "invoke", "field": "no_demote_mixed_sub", "args": [{"type": "f64", "value": "4673175763235896759"}, {"type": "f32", "value": "1198952676"}]}, "expected": [{"type": "f32", "value": "3339501185"}]}, + {"type": "assert_return", "line": 690, "action": {"type": "invoke", "field": "no_demote_mixed_sub_commuted", "args": [{"type": "f32", "value": "1583535740"}, {"type": "f64", "value": "4979303437048015281"}]}, "expected": [{"type": "f32", "value": "3905966266"}]}, + {"type": "assert_return", "line": 691, "action": {"type": "invoke", "field": "no_demote_mixed_sub_commuted", "args": [{"type": "f32", "value": "1214924370"}, {"type": "f64", "value": "13967600632962086462"}]}, "expected": [{"type": "f32", "value": "1320623488"}]}, + {"type": "assert_return", "line": 692, "action": {"type": "invoke", "field": "no_demote_mixed_sub_commuted", "args": [{"type": "f32", "value": "969848030"}, {"type": "f64", "value": "13860263758943608426"}]}, "expected": [{"type": "f32", "value": "1120691157"}]}, + {"type": "assert_return", "line": 693, "action": {"type": "invoke", "field": "no_demote_mixed_sub_commuted", "args": [{"type": "f32", "value": "472962692"}, {"type": "f64", "value": "4364064588997139903"}]}, "expected": [{"type": "f32", "value": "2759994529"}]}, + {"type": "assert_return", "line": 694, "action": {"type": "invoke", "field": "no_demote_mixed_sub_commuted", "args": [{"type": "f32", "value": "1198952676"}, {"type": "f64", "value": "4673175763235896759"}]}, "expected": [{"type": "f32", "value": "1192017537"}]}, + {"type": "module", "line": 699, "filename": "float_exprs.39.wasm"}, + {"type": "assert_return", "line": 706, "action": {"type": "invoke", "field": "no_demote_mixed_mul", "args": [{"type": "f64", "value": "3700298049681794165"}, {"type": "f32", "value": "2017642079"}]}, "expected": [{"type": "f32", "value": "329178166"}]}, + {"type": "assert_return", "line": 707, "action": {"type": "invoke", "field": "no_demote_mixed_mul", "args": [{"type": "f64", "value": "5240203039857786645"}, {"type": "f32", "value": "169311251"}]}, "expected": [{"type": "f32", "value": "1349264105"}]}, + {"type": "assert_return", "line": 708, "action": {"type": "invoke", "field": "no_demote_mixed_mul", "args": [{"type": "f64", "value": "5404042108537284972"}, {"type": "f32", "value": "592745128"}]}, "expected": [{"type": "f32", "value": "2077099629"}]}, + {"type": "assert_return", "line": 709, "action": {"type": "invoke", "field": "no_demote_mixed_mul", "args": [{"type": "f64", "value": "5605237095216364626"}, {"type": "f32", "value": "44014947"}]}, "expected": [{"type": "f32", "value": "1904260016"}]}, + {"type": "assert_return", "line": 710, "action": {"type": "invoke", "field": "no_demote_mixed_mul", "args": [{"type": "f64", "value": "3845043516226476604"}, {"type": "f32", "value": "1468885281"}]}, "expected": [{"type": "f32", "value": "49968716"}]}, + {"type": "assert_return", "line": 712, "action": {"type": "invoke", "field": "no_demote_mixed_mul_commuted", "args": [{"type": "f32", "value": "2017642079"}, {"type": "f64", "value": "3700298049681794165"}]}, "expected": [{"type": "f32", "value": "329178166"}]}, + {"type": "assert_return", "line": 713, "action": {"type": "invoke", "field": "no_demote_mixed_mul_commuted", "args": [{"type": "f32", "value": "169311251"}, {"type": "f64", "value": "5240203039857786645"}]}, "expected": [{"type": "f32", "value": "1349264105"}]}, + {"type": "assert_return", "line": 714, "action": {"type": "invoke", "field": "no_demote_mixed_mul_commuted", "args": [{"type": "f32", "value": "592745128"}, {"type": "f64", "value": "5404042108537284972"}]}, "expected": [{"type": "f32", "value": "2077099629"}]}, + {"type": "assert_return", "line": 715, "action": {"type": "invoke", "field": "no_demote_mixed_mul_commuted", "args": [{"type": "f32", "value": "44014947"}, {"type": "f64", "value": "5605237095216364626"}]}, "expected": [{"type": "f32", "value": "1904260016"}]}, + {"type": "assert_return", "line": 716, "action": {"type": "invoke", "field": "no_demote_mixed_mul_commuted", "args": [{"type": "f32", "value": "1468885281"}, {"type": "f64", "value": "3845043516226476604"}]}, "expected": [{"type": "f32", "value": "49968716"}]}, + {"type": "module", "line": 721, "filename": "float_exprs.40.wasm"}, + {"type": "assert_return", "line": 728, "action": {"type": "invoke", "field": "no_demote_mixed_div", "args": [{"type": "f64", "value": "5283862605148245729"}, {"type": "f32", "value": "1932933707"}]}, "expected": [{"type": "f32", "value": "1457608876"}]}, + {"type": "assert_return", "line": 729, "action": {"type": "invoke", "field": "no_demote_mixed_div", "args": [{"type": "f64", "value": "3919260277508722072"}, {"type": "f32", "value": "379509872"}]}, "expected": [{"type": "f32", "value": "469826243"}]}, + {"type": "assert_return", "line": 730, "action": {"type": "invoke", "field": "no_demote_mixed_div", "args": [{"type": "f64", "value": "4441666254287638695"}, {"type": "f32", "value": "3452068"}]}, "expected": [{"type": "f32", "value": "1824659560"}]}, + {"type": "assert_return", "line": 731, "action": {"type": "invoke", "field": "no_demote_mixed_div", "args": [{"type": "f64", "value": "3987118416164120709"}, {"type": "f32", "value": "327692725"}]}, "expected": [{"type": "f32", "value": "647926247"}]}, + {"type": "assert_return", "line": 732, "action": {"type": "invoke", "field": "no_demote_mixed_div", "args": [{"type": "f64", "value": "4944171978380117708"}, {"type": "f32", "value": "1811434203"}]}, "expected": [{"type": "f32", "value": "946934754"}]}, + {"type": "assert_return", "line": 734, "action": {"type": "invoke", "field": "no_demote_mixed_div_commuted", "args": [{"type": "f32", "value": "451659502"}, {"type": "f64", "value": "4418811329667688930"}]}, "expected": [{"type": "f32", "value": "801699691"}]}, + {"type": "assert_return", "line": 735, "action": {"type": "invoke", "field": "no_demote_mixed_div_commuted", "args": [{"type": "f32", "value": "1287575826"}, {"type": "f64", "value": "5323750166520438484"}]}, "expected": [{"type": "f32", "value": "88031"}]}, + {"type": "assert_return", "line": 736, "action": {"type": "invoke", "field": "no_demote_mixed_div_commuted", "args": [{"type": "f32", "value": "737399826"}, {"type": "f64", "value": "3994494799108309244"}]}, "expected": [{"type": "f32", "value": "1878609809"}]}, + {"type": "assert_return", "line": 737, "action": {"type": "invoke", "field": "no_demote_mixed_div_commuted", "args": [{"type": "f32", "value": "1740211648"}, {"type": "f64", "value": "5555331956744021194"}]}, "expected": [{"type": "f32", "value": "496184"}]}, + {"type": "assert_return", "line": 738, "action": {"type": "invoke", "field": "no_demote_mixed_div_commuted", "args": [{"type": "f32", "value": "456887038"}, {"type": "f64", "value": "3717438582804640027"}]}, "expected": [{"type": "f32", "value": "2114092635"}]}, + {"type": "module", "line": 742, "filename": "float_exprs.41.wasm"}, + {"type": "assert_return", "line": 777, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_s_convert_s", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 778, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_s_convert_s", "args": [{"type": "f32", "value": "3217031168"}]}, "expected": [{"type": "f32", "value": "3212836864"}]}, + {"type": "assert_return", "line": 779, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_u_convert_s", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 780, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_u_convert_s", "args": [{"type": "f32", "value": "3204448256"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 781, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_s_convert_u", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 782, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_s_convert_u", "args": [{"type": "f32", "value": "3217031168"}]}, "expected": [{"type": "f32", "value": "1333788672"}]}, + {"type": "assert_return", "line": 783, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_u_convert_u", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 784, "action": {"type": "invoke", "field": "f32.i32.no_fold_trunc_u_convert_u", "args": [{"type": "f32", "value": "3204448256"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 786, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_s_convert_s", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 787, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_s_convert_s", "args": [{"type": "f64", "value": "13832806255468478464"}]}, "expected": [{"type": "f64", "value": "13830554455654793216"}]}, + {"type": "assert_return", "line": 788, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_u_convert_s", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 789, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_u_convert_s", "args": [{"type": "f64", "value": "13826050856027422720"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 790, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_s_convert_u", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 791, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_s_convert_u", "args": [{"type": "f64", "value": "13832806255468478464"}]}, "expected": [{"type": "f64", "value": "4751297606873776128"}]}, + {"type": "assert_return", "line": 792, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_u_convert_u", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 793, "action": {"type": "invoke", "field": "f64.i32.no_fold_trunc_u_convert_u", "args": [{"type": "f64", "value": "13826050856027422720"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 795, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_s_convert_s", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 796, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_s_convert_s", "args": [{"type": "f32", "value": "3217031168"}]}, "expected": [{"type": "f32", "value": "3212836864"}]}, + {"type": "assert_return", "line": 797, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_u_convert_s", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 798, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_u_convert_s", "args": [{"type": "f32", "value": "3204448256"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 799, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_s_convert_u", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 800, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_s_convert_u", "args": [{"type": "f32", "value": "3217031168"}]}, "expected": [{"type": "f32", "value": "1602224128"}]}, + {"type": "assert_return", "line": 801, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_u_convert_u", "args": [{"type": "f32", "value": "1069547520"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 802, "action": {"type": "invoke", "field": "f32.i64.no_fold_trunc_u_convert_u", "args": [{"type": "f32", "value": "3204448256"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 804, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_s_convert_s", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 805, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_s_convert_s", "args": [{"type": "f64", "value": "13832806255468478464"}]}, "expected": [{"type": "f64", "value": "13830554455654793216"}]}, + {"type": "assert_return", "line": 806, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_u_convert_s", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 807, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_u_convert_s", "args": [{"type": "f64", "value": "13826050856027422720"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 808, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_s_convert_u", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 809, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_s_convert_u", "args": [{"type": "f64", "value": "13832806255468478464"}]}, "expected": [{"type": "f64", "value": "4895412794951729152"}]}, + {"type": "assert_return", "line": 810, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_u_convert_u", "args": [{"type": "f64", "value": "4609434218613702656"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 811, "action": {"type": "invoke", "field": "f64.i64.no_fold_trunc_u_convert_u", "args": [{"type": "f64", "value": "13826050856027422720"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "module", "line": 817, "filename": "float_exprs.42.wasm"}, + {"type": "action", "line": 838, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "0"}, {"type": "f32", "value": "1097963930"}]}, "expected": []}, + {"type": "action", "line": 839, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "4"}, {"type": "f32", "value": "1098068787"}]}, "expected": []}, + {"type": "action", "line": 840, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "8"}, {"type": "f32", "value": "1098173645"}]}, "expected": []}, + {"type": "action", "line": 841, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "12"}, {"type": "f32", "value": "1098278502"}]}, "expected": []}, + {"type": "assert_return", "line": 842, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1097963930"}]}, + {"type": "assert_return", "line": 843, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "f32", "value": "1098068787"}]}, + {"type": "assert_return", "line": 844, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "8"}]}, "expected": [{"type": "f32", "value": "1098173645"}]}, + {"type": "assert_return", "line": 845, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "12"}]}, "expected": [{"type": "f32", "value": "1098278502"}]}, + {"type": "action", "line": 846, "action": {"type": "invoke", "field": "run", "args": [{"type": "i32", "value": "16"}, {"type": "f32", "value": "1077936128"}]}, "expected": []}, + {"type": "assert_return", "line": 847, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1084297489"}]}, + {"type": "assert_return", "line": 848, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "f32", "value": "1084367394"}]}, + {"type": "assert_return", "line": 849, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "8"}]}, "expected": [{"type": "f32", "value": "1084437299"}]}, + {"type": "assert_return", "line": 850, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "12"}]}, "expected": [{"type": "f32", "value": "1084507204"}]}, + {"type": "module", "line": 852, "filename": "float_exprs.43.wasm"}, + {"type": "action", "line": 873, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "0"}, {"type": "f64", "value": "4624690162351420211"}]}, "expected": []}, + {"type": "action", "line": 874, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "8"}, {"type": "f64", "value": "4624746457346762342"}]}, "expected": []}, + {"type": "action", "line": 875, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "16"}, {"type": "f64", "value": "4624802752342104474"}]}, "expected": []}, + {"type": "action", "line": 876, "action": {"type": "invoke", "field": "init", "args": [{"type": "i32", "value": "24"}, {"type": "f64", "value": "4624859047337446605"}]}, "expected": []}, + {"type": "assert_return", "line": 877, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "4624690162351420211"}]}, + {"type": "assert_return", "line": 878, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "8"}]}, "expected": [{"type": "f64", "value": "4624746457346762342"}]}, + {"type": "assert_return", "line": 879, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "16"}]}, "expected": [{"type": "f64", "value": "4624802752342104474"}]}, + {"type": "assert_return", "line": 880, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "24"}]}, "expected": [{"type": "f64", "value": "4624859047337446605"}]}, + {"type": "action", "line": 881, "action": {"type": "invoke", "field": "run", "args": [{"type": "i32", "value": "32"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": []}, + {"type": "assert_return", "line": 882, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "4617353047958495778"}]}, + {"type": "assert_return", "line": 883, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "8"}]}, "expected": [{"type": "f64", "value": "4617390577955390532"}]}, + {"type": "assert_return", "line": 884, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "16"}]}, "expected": [{"type": "f64", "value": "4617428107952285287"}]}, + {"type": "assert_return", "line": 885, "action": {"type": "invoke", "field": "check", "args": [{"type": "i32", "value": "24"}]}, "expected": [{"type": "f64", "value": "4617465637949180041"}]}, + {"type": "module", "line": 889, "filename": "float_exprs.44.wasm"}, + {"type": "assert_return", "line": 901, "action": {"type": "invoke", "field": "f32.ult", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 902, "action": {"type": "invoke", "field": "f32.ult", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 903, "action": {"type": "invoke", "field": "f32.ult", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 904, "action": {"type": "invoke", "field": "f32.ult", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 905, "action": {"type": "invoke", "field": "f32.ule", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 906, "action": {"type": "invoke", "field": "f32.ule", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 907, "action": {"type": "invoke", "field": "f32.ule", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 908, "action": {"type": "invoke", "field": "f32.ule", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 909, "action": {"type": "invoke", "field": "f32.ugt", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 910, "action": {"type": "invoke", "field": "f32.ugt", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 911, "action": {"type": "invoke", "field": "f32.ugt", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 912, "action": {"type": "invoke", "field": "f32.ugt", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 913, "action": {"type": "invoke", "field": "f32.uge", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 914, "action": {"type": "invoke", "field": "f32.uge", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 915, "action": {"type": "invoke", "field": "f32.uge", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 916, "action": {"type": "invoke", "field": "f32.uge", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 917, "action": {"type": "invoke", "field": "f64.ult", "args": [{"type": "f64", "value": "4613937818241073152"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 918, "action": {"type": "invoke", "field": "f64.ult", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 919, "action": {"type": "invoke", "field": "f64.ult", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 920, "action": {"type": "invoke", "field": "f64.ult", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 921, "action": {"type": "invoke", "field": "f64.ule", "args": [{"type": "f64", "value": "4613937818241073152"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 922, "action": {"type": "invoke", "field": "f64.ule", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 923, "action": {"type": "invoke", "field": "f64.ule", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 924, "action": {"type": "invoke", "field": "f64.ule", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 925, "action": {"type": "invoke", "field": "f64.ugt", "args": [{"type": "f64", "value": "4613937818241073152"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 926, "action": {"type": "invoke", "field": "f64.ugt", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 927, "action": {"type": "invoke", "field": "f64.ugt", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 928, "action": {"type": "invoke", "field": "f64.ugt", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 929, "action": {"type": "invoke", "field": "f64.uge", "args": [{"type": "f64", "value": "4613937818241073152"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 930, "action": {"type": "invoke", "field": "f64.uge", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 931, "action": {"type": "invoke", "field": "f64.uge", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 932, "action": {"type": "invoke", "field": "f64.uge", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "module", "line": 936, "filename": "float_exprs.45.wasm"}, + {"type": "assert_return", "line": 948, "action": {"type": "invoke", "field": "f32.no_fold_lt_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 949, "action": {"type": "invoke", "field": "f32.no_fold_lt_select", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 950, "action": {"type": "invoke", "field": "f32.no_fold_lt_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 951, "action": {"type": "invoke", "field": "f32.no_fold_lt_select", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 952, "action": {"type": "invoke", "field": "f32.no_fold_le_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 953, "action": {"type": "invoke", "field": "f32.no_fold_le_select", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 954, "action": {"type": "invoke", "field": "f32.no_fold_le_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 955, "action": {"type": "invoke", "field": "f32.no_fold_le_select", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 956, "action": {"type": "invoke", "field": "f32.no_fold_gt_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 957, "action": {"type": "invoke", "field": "f32.no_fold_gt_select", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 958, "action": {"type": "invoke", "field": "f32.no_fold_gt_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 959, "action": {"type": "invoke", "field": "f32.no_fold_gt_select", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 960, "action": {"type": "invoke", "field": "f32.no_fold_ge_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 961, "action": {"type": "invoke", "field": "f32.no_fold_ge_select", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 962, "action": {"type": "invoke", "field": "f32.no_fold_ge_select", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 963, "action": {"type": "invoke", "field": "f32.no_fold_ge_select", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 964, "action": {"type": "invoke", "field": "f64.no_fold_lt_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 965, "action": {"type": "invoke", "field": "f64.no_fold_lt_select", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 966, "action": {"type": "invoke", "field": "f64.no_fold_lt_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 967, "action": {"type": "invoke", "field": "f64.no_fold_lt_select", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 968, "action": {"type": "invoke", "field": "f64.no_fold_le_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 969, "action": {"type": "invoke", "field": "f64.no_fold_le_select", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 970, "action": {"type": "invoke", "field": "f64.no_fold_le_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 971, "action": {"type": "invoke", "field": "f64.no_fold_le_select", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 972, "action": {"type": "invoke", "field": "f64.no_fold_gt_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 973, "action": {"type": "invoke", "field": "f64.no_fold_gt_select", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 974, "action": {"type": "invoke", "field": "f64.no_fold_gt_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 975, "action": {"type": "invoke", "field": "f64.no_fold_gt_select", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 976, "action": {"type": "invoke", "field": "f64.no_fold_ge_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 977, "action": {"type": "invoke", "field": "f64.no_fold_ge_select", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 978, "action": {"type": "invoke", "field": "f64.no_fold_ge_select", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 979, "action": {"type": "invoke", "field": "f64.no_fold_ge_select", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "module", "line": 983, "filename": "float_exprs.46.wasm"}, + {"type": "assert_return", "line": 1027, "action": {"type": "invoke", "field": "f32.no_fold_lt_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 1028, "action": {"type": "invoke", "field": "f32.no_fold_lt_if", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1029, "action": {"type": "invoke", "field": "f32.no_fold_lt_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1030, "action": {"type": "invoke", "field": "f32.no_fold_lt_if", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1031, "action": {"type": "invoke", "field": "f32.no_fold_le_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 1032, "action": {"type": "invoke", "field": "f32.no_fold_le_if", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1033, "action": {"type": "invoke", "field": "f32.no_fold_le_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1034, "action": {"type": "invoke", "field": "f32.no_fold_le_if", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1035, "action": {"type": "invoke", "field": "f32.no_fold_gt_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 1036, "action": {"type": "invoke", "field": "f32.no_fold_gt_if", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1037, "action": {"type": "invoke", "field": "f32.no_fold_gt_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1038, "action": {"type": "invoke", "field": "f32.no_fold_gt_if", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1039, "action": {"type": "invoke", "field": "f32.no_fold_ge_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 1040, "action": {"type": "invoke", "field": "f32.no_fold_ge_if", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1041, "action": {"type": "invoke", "field": "f32.no_fold_ge_if", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1042, "action": {"type": "invoke", "field": "f32.no_fold_ge_if", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1043, "action": {"type": "invoke", "field": "f64.no_fold_lt_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 1044, "action": {"type": "invoke", "field": "f64.no_fold_lt_if", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1045, "action": {"type": "invoke", "field": "f64.no_fold_lt_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1046, "action": {"type": "invoke", "field": "f64.no_fold_lt_if", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1047, "action": {"type": "invoke", "field": "f64.no_fold_le_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 1048, "action": {"type": "invoke", "field": "f64.no_fold_le_if", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1049, "action": {"type": "invoke", "field": "f64.no_fold_le_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1050, "action": {"type": "invoke", "field": "f64.no_fold_le_if", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1051, "action": {"type": "invoke", "field": "f64.no_fold_gt_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 1052, "action": {"type": "invoke", "field": "f64.no_fold_gt_if", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1053, "action": {"type": "invoke", "field": "f64.no_fold_gt_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1054, "action": {"type": "invoke", "field": "f64.no_fold_gt_if", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1055, "action": {"type": "invoke", "field": "f64.no_fold_ge_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 1056, "action": {"type": "invoke", "field": "f64.no_fold_ge_if", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1057, "action": {"type": "invoke", "field": "f64.no_fold_ge_if", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1058, "action": {"type": "invoke", "field": "f64.no_fold_ge_if", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "module", "line": 1062, "filename": "float_exprs.47.wasm"}, + {"type": "assert_return", "line": 1074, "action": {"type": "invoke", "field": "f32.no_fold_lt_select_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "2141192192"}]}, + {"type": "assert_return", "line": 1075, "action": {"type": "invoke", "field": "f32.no_fold_lt_select_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "4290772992"}]}, + {"type": "assert_return", "line": 1076, "action": {"type": "invoke", "field": "f32.no_fold_lt_select_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1077, "action": {"type": "invoke", "field": "f32.no_fold_lt_select_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1078, "action": {"type": "invoke", "field": "f32.no_fold_le_select_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "2141192192"}]}, + {"type": "assert_return", "line": 1079, "action": {"type": "invoke", "field": "f32.no_fold_le_select_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "4290772992"}]}, + {"type": "assert_return", "line": 1080, "action": {"type": "invoke", "field": "f32.no_fold_le_select_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1081, "action": {"type": "invoke", "field": "f32.no_fold_le_select_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1082, "action": {"type": "invoke", "field": "f32.no_fold_gt_select_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "4288675840"}]}, + {"type": "assert_return", "line": 1083, "action": {"type": "invoke", "field": "f32.no_fold_gt_select_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 1084, "action": {"type": "invoke", "field": "f32.no_fold_gt_select_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1085, "action": {"type": "invoke", "field": "f32.no_fold_gt_select_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1086, "action": {"type": "invoke", "field": "f32.no_fold_ge_select_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "4288675840"}]}, + {"type": "assert_return", "line": 1087, "action": {"type": "invoke", "field": "f32.no_fold_ge_select_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 1088, "action": {"type": "invoke", "field": "f32.no_fold_ge_select_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1089, "action": {"type": "invoke", "field": "f32.no_fold_ge_select_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1090, "action": {"type": "invoke", "field": "f64.no_fold_lt_select_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "9219994337134247936"}]}, + {"type": "assert_return", "line": 1091, "action": {"type": "invoke", "field": "f64.no_fold_lt_select_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "18444492273895866368"}]}, + {"type": "assert_return", "line": 1092, "action": {"type": "invoke", "field": "f64.no_fold_lt_select_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1093, "action": {"type": "invoke", "field": "f64.no_fold_lt_select_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1094, "action": {"type": "invoke", "field": "f64.no_fold_le_select_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "9219994337134247936"}]}, + {"type": "assert_return", "line": 1095, "action": {"type": "invoke", "field": "f64.no_fold_le_select_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "18444492273895866368"}]}, + {"type": "assert_return", "line": 1096, "action": {"type": "invoke", "field": "f64.no_fold_le_select_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1097, "action": {"type": "invoke", "field": "f64.no_fold_le_select_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1098, "action": {"type": "invoke", "field": "f64.no_fold_gt_select_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "18443366373989023744"}]}, + {"type": "assert_return", "line": 1099, "action": {"type": "invoke", "field": "f64.no_fold_gt_select_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 1100, "action": {"type": "invoke", "field": "f64.no_fold_gt_select_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1101, "action": {"type": "invoke", "field": "f64.no_fold_gt_select_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1102, "action": {"type": "invoke", "field": "f64.no_fold_ge_select_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "18443366373989023744"}]}, + {"type": "assert_return", "line": 1103, "action": {"type": "invoke", "field": "f64.no_fold_ge_select_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 1104, "action": {"type": "invoke", "field": "f64.no_fold_ge_select_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1105, "action": {"type": "invoke", "field": "f64.no_fold_ge_select_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "module", "line": 1109, "filename": "float_exprs.48.wasm"}, + {"type": "assert_return", "line": 1153, "action": {"type": "invoke", "field": "f32.no_fold_lt_if_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "2141192192"}]}, + {"type": "assert_return", "line": 1154, "action": {"type": "invoke", "field": "f32.no_fold_lt_if_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "4290772992"}]}, + {"type": "assert_return", "line": 1155, "action": {"type": "invoke", "field": "f32.no_fold_lt_if_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1156, "action": {"type": "invoke", "field": "f32.no_fold_lt_if_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1157, "action": {"type": "invoke", "field": "f32.no_fold_le_if_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "2141192192"}]}, + {"type": "assert_return", "line": 1158, "action": {"type": "invoke", "field": "f32.no_fold_le_if_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "4290772992"}]}, + {"type": "assert_return", "line": 1159, "action": {"type": "invoke", "field": "f32.no_fold_le_if_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1160, "action": {"type": "invoke", "field": "f32.no_fold_le_if_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1161, "action": {"type": "invoke", "field": "f32.no_fold_gt_if_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "4288675840"}]}, + {"type": "assert_return", "line": 1162, "action": {"type": "invoke", "field": "f32.no_fold_gt_if_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 1163, "action": {"type": "invoke", "field": "f32.no_fold_gt_if_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1164, "action": {"type": "invoke", "field": "f32.no_fold_gt_if_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1165, "action": {"type": "invoke", "field": "f32.no_fold_ge_if_to_abs", "args": [{"type": "f32", "value": "2141192192"}]}, "expected": [{"type": "f32", "value": "4288675840"}]}, + {"type": "assert_return", "line": 1166, "action": {"type": "invoke", "field": "f32.no_fold_ge_if_to_abs", "args": [{"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 1167, "action": {"type": "invoke", "field": "f32.no_fold_ge_if_to_abs", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1168, "action": {"type": "invoke", "field": "f32.no_fold_ge_if_to_abs", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1169, "action": {"type": "invoke", "field": "f64.no_fold_lt_if_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "9219994337134247936"}]}, + {"type": "assert_return", "line": 1170, "action": {"type": "invoke", "field": "f64.no_fold_lt_if_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "18444492273895866368"}]}, + {"type": "assert_return", "line": 1171, "action": {"type": "invoke", "field": "f64.no_fold_lt_if_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1172, "action": {"type": "invoke", "field": "f64.no_fold_lt_if_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1173, "action": {"type": "invoke", "field": "f64.no_fold_le_if_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "9219994337134247936"}]}, + {"type": "assert_return", "line": 1174, "action": {"type": "invoke", "field": "f64.no_fold_le_if_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "18444492273895866368"}]}, + {"type": "assert_return", "line": 1175, "action": {"type": "invoke", "field": "f64.no_fold_le_if_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1176, "action": {"type": "invoke", "field": "f64.no_fold_le_if_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1177, "action": {"type": "invoke", "field": "f64.no_fold_gt_if_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "18443366373989023744"}]}, + {"type": "assert_return", "line": 1178, "action": {"type": "invoke", "field": "f64.no_fold_gt_if_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 1179, "action": {"type": "invoke", "field": "f64.no_fold_gt_if_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1180, "action": {"type": "invoke", "field": "f64.no_fold_gt_if_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1181, "action": {"type": "invoke", "field": "f64.no_fold_ge_if_to_abs", "args": [{"type": "f64", "value": "9219994337134247936"}]}, "expected": [{"type": "f64", "value": "18443366373989023744"}]}, + {"type": "assert_return", "line": 1182, "action": {"type": "invoke", "field": "f64.no_fold_ge_if_to_abs", "args": [{"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 1183, "action": {"type": "invoke", "field": "f64.no_fold_ge_if_to_abs", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1184, "action": {"type": "invoke", "field": "f64.no_fold_ge_if_to_abs", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "module", "line": 1189, "filename": "float_exprs.49.wasm"}, + {"type": "assert_return", "line": 1198, "action": {"type": "invoke", "field": "f32.incorrect_correction", "args": []}, "expected": [{"type": "f32", "value": "872415232"}]}, + {"type": "assert_return", "line": 1199, "action": {"type": "invoke", "field": "f64.incorrect_correction", "args": []}, "expected": [{"type": "f64", "value": "13596367275031527424"}]}, + {"type": "module", "line": 1204, "filename": "float_exprs.50.wasm"}, + {"type": "assert_return", "line": 1221, "action": {"type": "invoke", "field": "calculate", "args": []}, "expected": [{"type": "f32", "value": "3286857379"}]}, + {"type": "module", "line": 1223, "filename": "float_exprs.51.wasm"}, + {"type": "assert_return", "line": 1240, "action": {"type": "invoke", "field": "calculate", "args": []}, "expected": [{"type": "f64", "value": "13870293918930799763"}]}, + {"type": "module", "line": 1245, "filename": "float_exprs.52.wasm"}, + {"type": "assert_return", "line": 1251, "action": {"type": "invoke", "field": "llvm_pr26746", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "module", "line": 1256, "filename": "float_exprs.53.wasm"}, + {"type": "assert_return", "line": 1262, "action": {"type": "invoke", "field": "llvm_pr27153", "args": [{"type": "i32", "value": "33554434"}]}, "expected": [{"type": "f32", "value": "1270874112"}]}, + {"type": "module", "line": 1267, "filename": "float_exprs.54.wasm"}, + {"type": "assert_return", "line": 1274, "action": {"type": "invoke", "field": "llvm_pr27036", "args": [{"type": "i32", "value": "4269932491"}, {"type": "i32", "value": "14942208"}]}, "expected": [{"type": "f32", "value": "3407478836"}]}, + {"type": "module", "line": 1284, "filename": "float_exprs.55.wasm"}, + {"type": "assert_return", "line": 1298, "action": {"type": "invoke", "field": "thepast0", "args": [{"type": "f64", "value": "9007199254740992"}, {"type": "f64", "value": "4607182418800017407"}, {"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4602678819172646912"}]}, "expected": [{"type": "f64", "value": "9007199254740991"}]}, + {"type": "assert_return", "line": 1299, "action": {"type": "invoke", "field": "thepast1", "args": [{"type": "f64", "value": "4363988038922010624"}, {"type": "f64", "value": "4607182418800017407"}, {"type": "f64", "value": "4363988038922010624"}]}, "expected": [{"type": "f64", "value": "13348669295526150144"}]}, + {"type": "assert_return", "line": 1300, "action": {"type": "invoke", "field": "thepast2", "args": [{"type": "f32", "value": "16777216"}, {"type": "f32", "value": "1056964608"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "8388608"}]}, + {"type": "module", "line": 1305, "filename": "float_exprs.56.wasm"}, + {"type": "assert_return", "line": 1311, "action": {"type": "invoke", "field": "inverse", "args": [{"type": "f32", "value": "1119879168"}]}, "expected": [{"type": "f32", "value": "1009429163"}]}, + {"type": "module", "line": 1316, "filename": "float_exprs.57.wasm"}, + {"type": "assert_return", "line": 1326, "action": {"type": "invoke", "field": "f32_sqrt_minus_2", "args": [{"type": "f32", "value": "1082130432"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1327, "action": {"type": "invoke", "field": "f64_sqrt_minus_2", "args": [{"type": "f64", "value": "4616189618054758400"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "module", "line": 1331, "filename": "float_exprs.58.wasm"}, + {"type": "assert_return", "line": 1339, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "3765723020"}]}, "expected": [{"type": "f32", "value": "3765723019"}]}, + {"type": "assert_return", "line": 1340, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "426844452"}]}, "expected": [{"type": "f32", "value": "426844451"}]}, + {"type": "assert_return", "line": 1341, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "535132276"}]}, "expected": [{"type": "f32", "value": "535132277"}]}, + {"type": "assert_return", "line": 1342, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "3253941441"}]}, "expected": [{"type": "f32", "value": "3253941442"}]}, + {"type": "assert_return", "line": 1343, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "1660734603"}]}, "expected": [{"type": "f32", "value": "1660734602"}]}, + {"type": "assert_return", "line": 1345, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1346, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1347, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, + {"type": "assert_return", "line": 1348, "action": {"type": "invoke", "field": "f32.no_fold_recip_recip", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, + {"type": "assert_return", "line": 1350, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "14500888369201570768"}]}, "expected": [{"type": "f64", "value": "14500888369201570769"}]}, + {"type": "assert_return", "line": 1351, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "14132092565459057123"}]}, "expected": [{"type": "f64", "value": "14132092565459057122"}]}, + {"type": "assert_return", "line": 1352, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "5359183527603521526"}]}, "expected": [{"type": "f64", "value": "5359183527603521525"}]}, + {"type": "assert_return", "line": 1353, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "1521566147669375634"}]}, "expected": [{"type": "f64", "value": "1521566147669375633"}]}, + {"type": "assert_return", "line": 1354, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "8671785631545870379"}]}, "expected": [{"type": "f64", "value": "8671785631545870378"}]}, + {"type": "assert_return", "line": 1356, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1357, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1358, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "f64", "value": "18442240474082181120"}]}, + {"type": "assert_return", "line": 1359, "action": {"type": "invoke", "field": "f64.no_fold_recip_recip", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "f64", "value": "9218868437227405312"}]}, + {"type": "module", "line": 1363, "filename": "float_exprs.59.wasm"}, + {"type": "assert_return", "line": 1373, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "2759308231"}, {"type": "f32", "value": "618704988"}]}, "expected": [{"type": "f32", "value": "2315864577"}]}, + {"type": "assert_return", "line": 1374, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "3415653214"}, {"type": "f32", "value": "1274676302"}]}, "expected": [{"type": "f32", "value": "3625675853"}]}, + {"type": "assert_return", "line": 1375, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "1446924633"}, {"type": "f32", "value": "3607373982"}]}, "expected": [{"type": "f32", "value": "4000155759"}]}, + {"type": "assert_return", "line": 1376, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "1212067608"}, {"type": "f32", "value": "3278094810"}]}, "expected": [{"type": "f32", "value": "1359874131"}]}, + {"type": "assert_return", "line": 1377, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "3278732464"}, {"type": "f32", "value": "3379389272"}]}, "expected": [{"type": "f32", "value": "3546030359"}]}, + {"type": "assert_return", "line": 1379, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "2467435761933928117"}, {"type": "f64", "value": "2526113756828458004"}]}, "expected": [{"type": "f64", "value": "9668435399096543331"}]}, + {"type": "assert_return", "line": 1380, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "2911983657790464931"}, {"type": "f64", "value": "2814431682419759911"}]}, "expected": [{"type": "f64", "value": "1217162942843921803"}]}, + {"type": "assert_return", "line": 1381, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "12131637044948792058"}, {"type": "f64", "value": "12170782965730311956"}]}, "expected": [{"type": "f64", "value": "10511676135434922533"}]}, + {"type": "assert_return", "line": 1382, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "14639789466354372633"}, {"type": "f64", "value": "5456963169336729236"}]}, "expected": [{"type": "f64", "value": "15530333405173431543"}]}, + {"type": "assert_return", "line": 1383, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "5121779675912507154"}, {"type": "f64", "value": "14237286623175920791"}]}, "expected": [{"type": "f64", "value": "5636689734063865714"}]}, + {"type": "module", "line": 1387, "filename": "float_exprs.60.wasm"}, + {"type": "assert_return", "line": 1397, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "684135946"}, {"type": "f32", "value": "744319693"}]}, "expected": [{"type": "f32", "value": "2571075368"}]}, + {"type": "assert_return", "line": 1398, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "3560929481"}, {"type": "f32", "value": "3496840229"}]}, "expected": [{"type": "f32", "value": "1762604185"}]}, + {"type": "assert_return", "line": 1399, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "968841772"}, {"type": "f32", "value": "3106497100"}]}, "expected": [{"type": "f32", "value": "870712803"}]}, + {"type": "assert_return", "line": 1400, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "697514723"}, {"type": "f32", "value": "2834753933"}]}, "expected": [{"type": "f32", "value": "327914662"}]}, + {"type": "assert_return", "line": 1401, "action": {"type": "invoke", "field": "f32.no_algebraic_factoring", "args": [{"type": "f32", "value": "1498230729"}, {"type": "f32", "value": "3650453580"}]}, "expected": [{"type": "f32", "value": "4080583891"}]}, + {"type": "assert_return", "line": 1403, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "6212515167506370409"}, {"type": "f64", "value": "15348474890798978273"}]}, "expected": [{"type": "f64", "value": "7818515589337550196"}]}, + {"type": "assert_return", "line": 1404, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "15222970140370015722"}, {"type": "f64", "value": "15325207139996136125"}]}, "expected": [{"type": "f64", "value": "16819892485880140289"}]}, + {"type": "assert_return", "line": 1405, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "4797439202963874050"}, {"type": "f64", "value": "14009643534571442918"}]}, "expected": [{"type": "f64", "value": "4987747999326390045"}]}, + {"type": "assert_return", "line": 1406, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "14653559129294038194"}, {"type": "f64", "value": "14581996260169223461"}]}, "expected": [{"type": "f64", "value": "6253339631158964222"}]}, + {"type": "assert_return", "line": 1407, "action": {"type": "invoke", "field": "f64.no_algebraic_factoring", "args": [{"type": "f64", "value": "12768321634751930140"}, {"type": "f64", "value": "12767602092732820937"}]}, "expected": [{"type": "f64", "value": "2473652960990319032"}]}, + {"type": "module", "line": 1412, "filename": "float_exprs.61.wasm"}, + {"type": "assert_return", "line": 1445, "action": {"type": "invoke", "field": "f32.simple_x4_sum", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "16"}, {"type": "i32", "value": "32"}]}, "expected": []}, + {"type": "assert_return", "line": 1446, "action": {"type": "invoke", "field": "f32.load", "args": [{"type": "i32", "value": "32"}]}, "expected": [{"type": "f32", "value": "2"}]}, + {"type": "assert_return", "line": 1447, "action": {"type": "invoke", "field": "f32.load", "args": [{"type": "i32", "value": "36"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1448, "action": {"type": "invoke", "field": "f32.load", "args": [{"type": "i32", "value": "40"}]}, "expected": [{"type": "f32", "value": "1"}]}, + {"type": "assert_return", "line": 1449, "action": {"type": "invoke", "field": "f32.load", "args": [{"type": "i32", "value": "44"}]}, "expected": [{"type": "f32", "value": "2147483649"}]}, + {"type": "module", "line": 1451, "filename": "float_exprs.62.wasm"}, + {"type": "assert_return", "line": 1484, "action": {"type": "invoke", "field": "f64.simple_x4_sum", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "32"}, {"type": "i32", "value": "64"}]}, "expected": []}, + {"type": "assert_return", "line": 1485, "action": {"type": "invoke", "field": "f64.load", "args": [{"type": "i32", "value": "64"}]}, "expected": [{"type": "f64", "value": "2"}]}, + {"type": "assert_return", "line": 1486, "action": {"type": "invoke", "field": "f64.load", "args": [{"type": "i32", "value": "72"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1487, "action": {"type": "invoke", "field": "f64.load", "args": [{"type": "i32", "value": "80"}]}, "expected": [{"type": "f64", "value": "1"}]}, + {"type": "assert_return", "line": 1488, "action": {"type": "invoke", "field": "f64.load", "args": [{"type": "i32", "value": "88"}]}, "expected": [{"type": "f64", "value": "9223372036854775809"}]}, + {"type": "module", "line": 1493, "filename": "float_exprs.63.wasm"}, + {"type": "assert_return", "line": 1584, "action": {"type": "invoke", "field": "f32.kahan_sum", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "256"}]}, "expected": [{"type": "f32", "value": "4085779725"}]}, + {"type": "assert_return", "line": 1585, "action": {"type": "invoke", "field": "f32.plain_sum", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "256"}]}, "expected": [{"type": "f32", "value": "4082113053"}]}, + {"type": "module", "line": 1587, "filename": "float_exprs.64.wasm"}, + {"type": "assert_return", "line": 1635, "action": {"type": "invoke", "field": "f64.kahan_sum", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "256"}]}, "expected": [{"type": "f64", "value": "9105671289202277512"}]}, + {"type": "assert_return", "line": 1636, "action": {"type": "invoke", "field": "f64.plain_sum", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "256"}]}, "expected": [{"type": "f64", "value": "9105671289202539655"}]}, + {"type": "module", "line": 1640, "filename": "float_exprs.65.wasm"}, + {"type": "assert_return", "line": 1648, "action": {"type": "invoke", "field": "f32.no_fold_neg_sub", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1649, "action": {"type": "invoke", "field": "f32.no_fold_neg_sub", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1650, "action": {"type": "invoke", "field": "f32.no_fold_neg_sub", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1651, "action": {"type": "invoke", "field": "f32.no_fold_neg_sub", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1653, "action": {"type": "invoke", "field": "f64.no_fold_neg_sub", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1654, "action": {"type": "invoke", "field": "f64.no_fold_neg_sub", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1655, "action": {"type": "invoke", "field": "f64.no_fold_neg_sub", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1656, "action": {"type": "invoke", "field": "f64.no_fold_neg_sub", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "module", "line": 1660, "filename": "float_exprs.66.wasm"}, + {"type": "assert_return", "line": 1668, "action": {"type": "invoke", "field": "f32.no_fold_neg_add", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1669, "action": {"type": "invoke", "field": "f32.no_fold_neg_add", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1670, "action": {"type": "invoke", "field": "f32.no_fold_neg_add", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1671, "action": {"type": "invoke", "field": "f32.no_fold_neg_add", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1673, "action": {"type": "invoke", "field": "f64.no_fold_neg_add", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1674, "action": {"type": "invoke", "field": "f64.no_fold_neg_add", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1675, "action": {"type": "invoke", "field": "f64.no_fold_neg_add", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1676, "action": {"type": "invoke", "field": "f64.no_fold_neg_add", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "module", "line": 1680, "filename": "float_exprs.67.wasm"}, + {"type": "assert_return", "line": 1688, "action": {"type": "invoke", "field": "f32.no_fold_add_neg_neg", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1689, "action": {"type": "invoke", "field": "f32.no_fold_add_neg_neg", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1690, "action": {"type": "invoke", "field": "f32.no_fold_add_neg_neg", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1691, "action": {"type": "invoke", "field": "f32.no_fold_add_neg_neg", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1693, "action": {"type": "invoke", "field": "f64.no_fold_add_neg_neg", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1694, "action": {"type": "invoke", "field": "f64.no_fold_add_neg_neg", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1695, "action": {"type": "invoke", "field": "f64.no_fold_add_neg_neg", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1696, "action": {"type": "invoke", "field": "f64.no_fold_add_neg_neg", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "module", "line": 1700, "filename": "float_exprs.68.wasm"}, + {"type": "assert_return", "line": 1708, "action": {"type": "invoke", "field": "f32.no_fold_add_neg", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1709, "action": {"type": "invoke", "field": "f32.no_fold_add_neg", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1710, "action": {"type": "invoke", "field": "f32.no_fold_add_neg", "args": [{"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "f32", "value": "nan:canonical"}]}, + {"type": "assert_return", "line": 1711, "action": {"type": "invoke", "field": "f32.no_fold_add_neg", "args": [{"type": "f32", "value": "4286578688"}]}, "expected": [{"type": "f32", "value": "nan:canonical"}]}, + {"type": "assert_return", "line": 1713, "action": {"type": "invoke", "field": "f64.no_fold_add_neg", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1714, "action": {"type": "invoke", "field": "f64.no_fold_add_neg", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1715, "action": {"type": "invoke", "field": "f64.no_fold_add_neg", "args": [{"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "f64", "value": "nan:canonical"}]}, + {"type": "assert_return", "line": 1716, "action": {"type": "invoke", "field": "f64.no_fold_add_neg", "args": [{"type": "f64", "value": "18442240474082181120"}]}, "expected": [{"type": "f64", "value": "nan:canonical"}]}, + {"type": "module", "line": 1720, "filename": "float_exprs.69.wasm"}, + {"type": "assert_return", "line": 1734, "action": {"type": "invoke", "field": "f32.no_fold_6x_via_add", "args": [{"type": "f32", "value": "4046243078"}]}, "expected": [{"type": "f32", "value": "4068578245"}]}, + {"type": "assert_return", "line": 1735, "action": {"type": "invoke", "field": "f32.no_fold_6x_via_add", "args": [{"type": "f32", "value": "2573857750"}]}, "expected": [{"type": "f32", "value": "2595190497"}]}, + {"type": "assert_return", "line": 1736, "action": {"type": "invoke", "field": "f32.no_fold_6x_via_add", "args": [{"type": "f32", "value": "419462401"}]}, "expected": [{"type": "f32", "value": "440449921"}]}, + {"type": "assert_return", "line": 1737, "action": {"type": "invoke", "field": "f32.no_fold_6x_via_add", "args": [{"type": "f32", "value": "2955475482"}]}, "expected": [{"type": "f32", "value": "2977789734"}]}, + {"type": "assert_return", "line": 1738, "action": {"type": "invoke", "field": "f32.no_fold_6x_via_add", "args": [{"type": "f32", "value": "3883931973"}]}, "expected": [{"type": "f32", "value": "3904906727"}]}, + {"type": "assert_return", "line": 1740, "action": {"type": "invoke", "field": "f64.no_fold_6x_via_add", "args": [{"type": "f64", "value": "14137662215323058150"}]}, "expected": [{"type": "f64", "value": "14149352706895019994"}]}, + {"type": "assert_return", "line": 1741, "action": {"type": "invoke", "field": "f64.no_fold_6x_via_add", "args": [{"type": "f64", "value": "11424134044545165748"}]}, "expected": [{"type": "f64", "value": "11435767596137037638"}]}, + {"type": "assert_return", "line": 1742, "action": {"type": "invoke", "field": "f64.no_fold_6x_via_add", "args": [{"type": "f64", "value": "15055410132664937138"}]}, "expected": [{"type": "f64", "value": "15066699987142021125"}]}, + {"type": "assert_return", "line": 1743, "action": {"type": "invoke", "field": "f64.no_fold_6x_via_add", "args": [{"type": "f64", "value": "7991451501228919438"}]}, "expected": [{"type": "f64", "value": "8003319959635773419"}]}, + {"type": "assert_return", "line": 1744, "action": {"type": "invoke", "field": "f64.no_fold_6x_via_add", "args": [{"type": "f64", "value": "14886926859367497770"}]}, "expected": [{"type": "f64", "value": "14898679235615764511"}]}, + {"type": "module", "line": 1749, "filename": "float_exprs.70.wasm"}, + {"type": "assert_return", "line": 1757, "action": {"type": "invoke", "field": "f32.no_fold_div_div", "args": [{"type": "f32", "value": "3875242260"}, {"type": "f32", "value": "3086869257"}, {"type": "f32", "value": "3301317576"}]}, "expected": [{"type": "f32", "value": "3911440926"}]}, + {"type": "assert_return", "line": 1758, "action": {"type": "invoke", "field": "f32.no_fold_div_div", "args": [{"type": "f32", "value": "485052055"}, {"type": "f32", "value": "1996083391"}, {"type": "f32", "value": "2276616712"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1759, "action": {"type": "invoke", "field": "f32.no_fold_div_div", "args": [{"type": "f32", "value": "1430470604"}, {"type": "f32", "value": "186144382"}, {"type": "f32", "value": "1953564780"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, + {"type": "assert_return", "line": 1760, "action": {"type": "invoke", "field": "f32.no_fold_div_div", "args": [{"type": "f32", "value": "3101818893"}, {"type": "f32", "value": "4258133430"}, {"type": "f32", "value": "2855958950"}]}, "expected": [{"type": "f32", "value": "2411777082"}]}, + {"type": "assert_return", "line": 1761, "action": {"type": "invoke", "field": "f32.no_fold_div_div", "args": [{"type": "f32", "value": "1458407223"}, {"type": "f32", "value": "1537931089"}, {"type": "f32", "value": "4260989344"}]}, "expected": [{"type": "f32", "value": "2147507000"}]}, + {"type": "assert_return", "line": 1763, "action": {"type": "invoke", "field": "f64.no_fold_div_div", "args": [{"type": "f64", "value": "6128077243319875447"}, {"type": "f64", "value": "7240092044185667120"}, {"type": "f64", "value": "10312472494987686942"}]}, "expected": [{"type": "f64", "value": "16236150182064455170"}]}, + {"type": "assert_return", "line": 1764, "action": {"type": "invoke", "field": "f64.no_fold_div_div", "args": [{"type": "f64", "value": "17395933367696573535"}, {"type": "f64", "value": "4478922858584402707"}, {"type": "f64", "value": "6032094754408482817"}]}, "expected": [{"type": "f64", "value": "16098470347548634769"}]}, + {"type": "assert_return", "line": 1765, "action": {"type": "invoke", "field": "f64.no_fold_div_div", "args": [{"type": "f64", "value": "13843263185226986279"}, {"type": "f64", "value": "17796742619038211051"}, {"type": "f64", "value": "5375701731263473827"}]}, "expected": [{"type": "f64", "value": "44472927"}]}, + {"type": "assert_return", "line": 1766, "action": {"type": "invoke", "field": "f64.no_fold_div_div", "args": [{"type": "f64", "value": "17547288444310957340"}, {"type": "f64", "value": "911654786857739111"}, {"type": "f64", "value": "8937284546802896640"}]}, "expected": [{"type": "f64", "value": "18442240474082181120"}]}, + {"type": "assert_return", "line": 1767, "action": {"type": "invoke", "field": "f64.no_fold_div_div", "args": [{"type": "f64", "value": "9835707468114203513"}, {"type": "f64", "value": "1924400690116523912"}, {"type": "f64", "value": "13208934041167870811"}]}, "expected": [{"type": "f64", "value": "3916014548332337260"}]}, + {"type": "module", "line": 1773, "filename": "float_exprs.71.wasm"}, + {"type": "assert_return", "line": 1781, "action": {"type": "invoke", "field": "f32.no_fold_mul_divs", "args": [{"type": "f32", "value": "2304917983"}, {"type": "f32", "value": "301403678"}, {"type": "f32", "value": "331350955"}, {"type": "f32", "value": "3251297465"}]}, "expected": [{"type": "f32", "value": "148760966"}]}, + {"type": "assert_return", "line": 1782, "action": {"type": "invoke", "field": "f32.no_fold_mul_divs", "args": [{"type": "f32", "value": "4068974897"}, {"type": "f32", "value": "1276265036"}, {"type": "f32", "value": "930821438"}, {"type": "f32", "value": "1044692964"}]}, "expected": [{"type": "f32", "value": "3742862674"}]}, + {"type": "assert_return", "line": 1783, "action": {"type": "invoke", "field": "f32.no_fold_mul_divs", "args": [{"type": "f32", "value": "3496980369"}, {"type": "f32", "value": "3548280607"}, {"type": "f32", "value": "3461305482"}, {"type": "f32", "value": "3298174616"}]}, "expected": [{"type": "f32", "value": "1176926862"}]}, + {"type": "assert_return", "line": 1784, "action": {"type": "invoke", "field": "f32.no_fold_mul_divs", "args": [{"type": "f32", "value": "4135236702"}, {"type": "f32", "value": "787270424"}, {"type": "f32", "value": "932959293"}, {"type": "f32", "value": "1724950821"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, + {"type": "assert_return", "line": 1785, "action": {"type": "invoke", "field": "f32.no_fold_mul_divs", "args": [{"type": "f32", "value": "622783177"}, {"type": "f32", "value": "2677642769"}, {"type": "f32", "value": "307759154"}, {"type": "f32", "value": "768171421"}]}, "expected": [{"type": "f32", "value": "2844661464"}]}, + {"type": "assert_return", "line": 1787, "action": {"type": "invoke", "field": "f64.no_fold_mul_divs", "args": [{"type": "f64", "value": "10143060558527560466"}, {"type": "f64", "value": "11745059379675007839"}, {"type": "f64", "value": "16295837305232663584"}, {"type": "f64", "value": "5444961058358534642"}]}, "expected": [{"type": "f64", "value": "13856326607560224491"}]}, + {"type": "assert_return", "line": 1788, "action": {"type": "invoke", "field": "f64.no_fold_mul_divs", "args": [{"type": "f64", "value": "14349445329289351080"}, {"type": "f64", "value": "468238185841254727"}, {"type": "f64", "value": "15463559257629249878"}, {"type": "f64", "value": "15937497686185055572"}]}, "expected": [{"type": "f64", "value": "18442240474082181120"}]}, + {"type": "assert_return", "line": 1789, "action": {"type": "invoke", "field": "f64.no_fold_mul_divs", "args": [{"type": "f64", "value": "15220380342429201729"}, {"type": "f64", "value": "14697937818549468616"}, {"type": "f64", "value": "13203624158275174657"}, {"type": "f64", "value": "17131104131485469546"}]}, "expected": [{"type": "f64", "value": "1202126128702318245"}]}, + {"type": "assert_return", "line": 1790, "action": {"type": "invoke", "field": "f64.no_fold_mul_divs", "args": [{"type": "f64", "value": "14414969397981384765"}, {"type": "f64", "value": "12269327994486371199"}, {"type": "f64", "value": "298707625567048656"}, {"type": "f64", "value": "5613107161545919917"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1791, "action": {"type": "invoke", "field": "f64.no_fold_mul_divs", "args": [{"type": "f64", "value": "4529089342618677929"}, {"type": "f64", "value": "3361245300043094097"}, {"type": "f64", "value": "1815899012046749567"}, {"type": "f64", "value": "15418396504351552390"}]}, "expected": [{"type": "f64", "value": "10619033301585441215"}]}, + {"type": "module", "line": 1795, "filename": "float_exprs.72.wasm"}, + {"type": "assert_return", "line": 1803, "action": {"type": "invoke", "field": "f32.no_fold_add_divs", "args": [{"type": "f32", "value": "1136439096"}, {"type": "f32", "value": "3173274359"}, {"type": "f32", "value": "4274852390"}]}, "expected": [{"type": "f32", "value": "2221638875"}]}, + {"type": "assert_return", "line": 1804, "action": {"type": "invoke", "field": "f32.no_fold_add_divs", "args": [{"type": "f32", "value": "2690073844"}, {"type": "f32", "value": "2809448479"}, {"type": "f32", "value": "3608905030"}]}, "expected": [{"type": "f32", "value": "264862203"}]}, + {"type": "assert_return", "line": 1805, "action": {"type": "invoke", "field": "f32.no_fold_add_divs", "args": [{"type": "f32", "value": "2830184964"}, {"type": "f32", "value": "530019033"}, {"type": "f32", "value": "3623253973"}]}, "expected": [{"type": "f32", "value": "272108594"}]}, + {"type": "assert_return", "line": 1806, "action": {"type": "invoke", "field": "f32.no_fold_add_divs", "args": [{"type": "f32", "value": "2365787800"}, {"type": "f32", "value": "245111369"}, {"type": "f32", "value": "3952003433"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1807, "action": {"type": "invoke", "field": "f32.no_fold_add_divs", "args": [{"type": "f32", "value": "982471119"}, {"type": "f32", "value": "1045692415"}, {"type": "f32", "value": "37216954"}]}, "expected": [{"type": "f32", "value": "2073319791"}]}, + {"type": "assert_return", "line": 1809, "action": {"type": "invoke", "field": "f64.no_fold_add_divs", "args": [{"type": "f64", "value": "15770585325769044278"}, {"type": "f64", "value": "6564157675451289455"}, {"type": "f64", "value": "8712254759989822359"}]}, "expected": [{"type": "f64", "value": "2458462832069881218"}]}, + {"type": "assert_return", "line": 1810, "action": {"type": "invoke", "field": "f64.no_fold_add_divs", "args": [{"type": "f64", "value": "14069844870254671283"}, {"type": "f64", "value": "4634122757084803708"}, {"type": "f64", "value": "9524897388132352235"}]}, "expected": [{"type": "f64", "value": "9152039358940941283"}]}, + {"type": "assert_return", "line": 1811, "action": {"type": "invoke", "field": "f64.no_fold_add_divs", "args": [{"type": "f64", "value": "9479648703296052622"}, {"type": "f64", "value": "214573661502224386"}, {"type": "f64", "value": "6877551490107761946"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1812, "action": {"type": "invoke", "field": "f64.no_fold_add_divs", "args": [{"type": "f64", "value": "6019502660029506228"}, {"type": "f64", "value": "15316513033818836241"}, {"type": "f64", "value": "4039967192182502935"}]}, "expected": [{"type": "f64", "value": "15883525310425977300"}]}, + {"type": "assert_return", "line": 1813, "action": {"type": "invoke", "field": "f64.no_fold_add_divs", "args": [{"type": "f64", "value": "10555667216821129841"}, {"type": "f64", "value": "1207418919037494573"}, {"type": "f64", "value": "4296330408727545598"}]}, "expected": [{"type": "f64", "value": "10866511466898347555"}]}, + {"type": "module", "line": 1817, "filename": "float_exprs.73.wasm"}, + {"type": "assert_return", "line": 1825, "action": {"type": "invoke", "field": "f32.no_fold_sqrt_square", "args": [{"type": "f32", "value": "2662226315"}]}, "expected": [{"type": "f32", "value": "514742673"}]}, + {"type": "assert_return", "line": 1826, "action": {"type": "invoke", "field": "f32.no_fold_sqrt_square", "args": [{"type": "f32", "value": "2606267634"}]}, "expected": [{"type": "f32", "value": "458819801"}]}, + {"type": "assert_return", "line": 1827, "action": {"type": "invoke", "field": "f32.no_fold_sqrt_square", "args": [{"type": "f32", "value": "2624528574"}]}, "expected": [{"type": "f32", "value": "477049564"}]}, + {"type": "assert_return", "line": 1828, "action": {"type": "invoke", "field": "f32.no_fold_sqrt_square", "args": [{"type": "f32", "value": "347235385"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1829, "action": {"type": "invoke", "field": "f32.no_fold_sqrt_square", "args": [{"type": "f32", "value": "1978715378"}]}, "expected": [{"type": "f32", "value": "2139095040"}]}, + {"type": "assert_return", "line": 1831, "action": {"type": "invoke", "field": "f64.no_fold_sqrt_square", "args": [{"type": "f64", "value": "2225189009770021885"}]}, "expected": [{"type": "f64", "value": "2225189011649283571"}]}, + {"type": "assert_return", "line": 1832, "action": {"type": "invoke", "field": "f64.no_fold_sqrt_square", "args": [{"type": "f64", "value": "11517048459773840771"}]}, "expected": [{"type": "f64", "value": "2293676422919064961"}]}, + {"type": "assert_return", "line": 1833, "action": {"type": "invoke", "field": "f64.no_fold_sqrt_square", "args": [{"type": "f64", "value": "11484764485761855006"}]}, "expected": [{"type": "f64", "value": "2261392448906973069"}]}, + {"type": "assert_return", "line": 1834, "action": {"type": "invoke", "field": "f64.no_fold_sqrt_square", "args": [{"type": "f64", "value": "11056484744549647728"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 1835, "action": {"type": "invoke", "field": "f64.no_fold_sqrt_square", "args": [{"type": "f64", "value": "8465406758332488378"}]}, "expected": [{"type": "f64", "value": "9218868437227405312"}]}, + {"type": "module", "line": 1839, "filename": "float_exprs.74.wasm"}, + {"type": "assert_return", "line": 1847, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrts", "args": [{"type": "f32", "value": "24047316"}, {"type": "f32", "value": "2517821717"}]}, "expected": [{"type": "f32", "value": "nan:canonical"}]}, + {"type": "assert_return", "line": 1848, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrts", "args": [{"type": "f32", "value": "295749258"}, {"type": "f32", "value": "803416494"}]}, "expected": [{"type": "f32", "value": "549395357"}]}, + {"type": "assert_return", "line": 1849, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrts", "args": [{"type": "f32", "value": "329708528"}, {"type": "f32", "value": "1120042892"}]}, "expected": [{"type": "f32", "value": "724841268"}]}, + {"type": "assert_return", "line": 1850, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrts", "args": [{"type": "f32", "value": "1916535951"}, {"type": "f32", "value": "994115420"}]}, "expected": [{"type": "f32", "value": "1455324620"}]}, + {"type": "assert_return", "line": 1851, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrts", "args": [{"type": "f32", "value": "598482176"}, {"type": "f32", "value": "990534933"}]}, "expected": [{"type": "f32", "value": "794443079"}]}, + {"type": "assert_return", "line": 1853, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrts", "args": [{"type": "f64", "value": "10974446854152441278"}, {"type": "f64", "value": "13797896470155574122"}]}, "expected": [{"type": "f64", "value": "nan:canonical"}]}, + {"type": "assert_return", "line": 1854, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrts", "args": [{"type": "f64", "value": "1712959863583927241"}, {"type": "f64", "value": "2792003944717853898"}]}, "expected": [{"type": "f64", "value": "2252469008297979510"}]}, + {"type": "assert_return", "line": 1855, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrts", "args": [{"type": "f64", "value": "4208351758938831157"}, {"type": "f64", "value": "497361189565243603"}]}, "expected": [{"type": "f64", "value": "2352856462697312748"}]}, + {"type": "assert_return", "line": 1856, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrts", "args": [{"type": "f64", "value": "2976792199849816182"}, {"type": "f64", "value": "2030444188042608984"}]}, "expected": [{"type": "f64", "value": "2503613111125550255"}]}, + {"type": "assert_return", "line": 1857, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrts", "args": [{"type": "f64", "value": "4717634334691577101"}, {"type": "f64", "value": "6919598687070693285"}]}, "expected": [{"type": "f64", "value": "5818898567902921651"}]}, + {"type": "module", "line": 1861, "filename": "float_exprs.75.wasm"}, + {"type": "assert_return", "line": 1869, "action": {"type": "invoke", "field": "f32.no_fold_div_sqrts", "args": [{"type": "f32", "value": "3428799709"}, {"type": "f32", "value": "2733489079"}]}, "expected": [{"type": "f32", "value": "nan:canonical"}]}, + {"type": "assert_return", "line": 1870, "action": {"type": "invoke", "field": "f32.no_fold_div_sqrts", "args": [{"type": "f32", "value": "1339867611"}, {"type": "f32", "value": "1296568207"}]}, "expected": [{"type": "f32", "value": "1086203643"}]}, + {"type": "assert_return", "line": 1871, "action": {"type": "invoke", "field": "f32.no_fold_div_sqrts", "args": [{"type": "f32", "value": "65679161"}, {"type": "f32", "value": "1196795110"}]}, "expected": [{"type": "f32", "value": "498959746"}]}, + {"type": "assert_return", "line": 1872, "action": {"type": "invoke", "field": "f32.no_fold_div_sqrts", "args": [{"type": "f32", "value": "1566143010"}, {"type": "f32", "value": "816694667"}]}, "expected": [{"type": "f32", "value": "1439333972"}]}, + {"type": "assert_return", "line": 1873, "action": {"type": "invoke", "field": "f32.no_fold_div_sqrts", "args": [{"type": "f32", "value": "130133331"}, {"type": "f32", "value": "208189588"}]}, "expected": [{"type": "f32", "value": "1025844032"}]}, + {"type": "assert_return", "line": 1875, "action": {"type": "invoke", "field": "f64.no_fold_div_sqrts", "args": [{"type": "f64", "value": "10629913473787695463"}, {"type": "f64", "value": "12991130264919696663"}]}, "expected": [{"type": "f64", "value": "nan:canonical"}]}, + {"type": "assert_return", "line": 1876, "action": {"type": "invoke", "field": "f64.no_fold_div_sqrts", "args": [{"type": "f64", "value": "1966780663211935584"}, {"type": "f64", "value": "7043916066229883379"}]}, "expected": [{"type": "f64", "value": "2068364230648818889"}]}, + {"type": "assert_return", "line": 1877, "action": {"type": "invoke", "field": "f64.no_fold_div_sqrts", "args": [{"type": "f64", "value": "6965599900716272009"}, {"type": "f64", "value": "4118781927977980600"}]}, "expected": [{"type": "f64", "value": "6030491425828883991"}]}, + {"type": "assert_return", "line": 1878, "action": {"type": "invoke", "field": "f64.no_fold_div_sqrts", "args": [{"type": "f64", "value": "962551478168675351"}, {"type": "f64", "value": "5918292176617055751"}]}, "expected": [{"type": "f64", "value": "2129092583060403799"}]}, + {"type": "assert_return", "line": 1879, "action": {"type": "invoke", "field": "f64.no_fold_div_sqrts", "args": [{"type": "f64", "value": "1056821405580891413"}, {"type": "f64", "value": "8865548665903786673"}]}, "expected": [{"type": "f64", "value": "702724841785532050"}]}, + {"type": "module", "line": 1883, "filename": "float_exprs.76.wasm"}, + {"type": "assert_return", "line": 1891, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrt_div", "args": [{"type": "f32", "value": "3900330981"}, {"type": "f32", "value": "1843416431"}]}, "expected": [{"type": "f32", "value": "4286578688"}]}, + {"type": "assert_return", "line": 1892, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrt_div", "args": [{"type": "f32", "value": "2210946958"}, {"type": "f32", "value": "256302916"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 1893, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrt_div", "args": [{"type": "f32", "value": "1312995444"}, {"type": "f32", "value": "2371494"}]}, "expected": [{"type": "f32", "value": "1849105549"}]}, + {"type": "assert_return", "line": 1894, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrt_div", "args": [{"type": "f32", "value": "3576537897"}, {"type": "f32", "value": "2010442638"}]}, "expected": [{"type": "f32", "value": "3104219421"}]}, + {"type": "assert_return", "line": 1895, "action": {"type": "invoke", "field": "f32.no_fold_mul_sqrt_div", "args": [{"type": "f32", "value": "3284697858"}, {"type": "f32", "value": "1124488329"}]}, "expected": [{"type": "f32", "value": "3255461622"}]}, + {"type": "assert_return", "line": 1897, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrt_div", "args": [{"type": "f64", "value": "7751219282814906463"}, {"type": "f64", "value": "8023732701704228537"}]}, "expected": [{"type": "f64", "value": "9218868437227405312"}]}, + {"type": "assert_return", "line": 1898, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrt_div", "args": [{"type": "f64", "value": "10108528314069607083"}, {"type": "f64", "value": "1595930056995453707"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 1899, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrt_div", "args": [{"type": "f64", "value": "2695209648295623224"}, {"type": "f64", "value": "7133480874314061811"}]}, "expected": [{"type": "f64", "value": "1432338140829931582"}]}, + {"type": "assert_return", "line": 1900, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrt_div", "args": [{"type": "f64", "value": "15416524255949334213"}, {"type": "f64", "value": "2434442666062773630"}]}, "expected": [{"type": "f64", "value": "16502590179898118478"}]}, + {"type": "assert_return", "line": 1901, "action": {"type": "invoke", "field": "f64.no_fold_mul_sqrt_div", "args": [{"type": "f64", "value": "5076901024782455083"}, {"type": "f64", "value": "8399438310541178654"}]}, "expected": [{"type": "f64", "value": "3180744754328846996"}]}, + {"type": "module", "line": 1906, "filename": "float_exprs.77.wasm"}, + {"type": "assert_return", "line": 1914, "action": {"type": "invoke", "field": "f32.no_flush_intermediate_subnormal", "args": [{"type": "f32", "value": "8388608"}, {"type": "f32", "value": "872415232"}, {"type": "f32", "value": "1258291200"}]}, "expected": [{"type": "f32", "value": "8388608"}]}, + {"type": "assert_return", "line": 1915, "action": {"type": "invoke", "field": "f64.no_flush_intermediate_subnormal", "args": [{"type": "f64", "value": "4503599627370496"}, {"type": "f64", "value": "4372995238176751616"}, {"type": "f64", "value": "4841369599423283200"}]}, "expected": [{"type": "f64", "value": "4503599627370496"}]}, + {"type": "module", "line": 1920, "filename": "float_exprs.78.wasm"}, + {"type": "assert_return", "line": 1943, "action": {"type": "invoke", "field": "f32.recoding_eq", "args": [{"type": "f32", "value": "4286578688"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1944, "action": {"type": "invoke", "field": "f32.recoding_le", "args": [{"type": "f32", "value": "4286578688"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1945, "action": {"type": "invoke", "field": "f32.recoding_lt", "args": [{"type": "f32", "value": "4286578688"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 1947, "action": {"type": "invoke", "field": "f32.recoding_eq", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1948, "action": {"type": "invoke", "field": "f32.recoding_le", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1949, "action": {"type": "invoke", "field": "f32.recoding_lt", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 1951, "action": {"type": "invoke", "field": "f64.recoding_eq", "args": [{"type": "f64", "value": "18442240474082181120"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1952, "action": {"type": "invoke", "field": "f64.recoding_le", "args": [{"type": "f64", "value": "18442240474082181120"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1953, "action": {"type": "invoke", "field": "f64.recoding_lt", "args": [{"type": "f64", "value": "18442240474082181120"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 1955, "action": {"type": "invoke", "field": "f64.recoding_eq", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1956, "action": {"type": "invoke", "field": "f64.recoding_le", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1957, "action": {"type": "invoke", "field": "f64.recoding_lt", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 1959, "action": {"type": "invoke", "field": "recoding_demote", "args": [{"type": "f64", "value": "4014054135371399168"}, {"type": "f32", "value": "1150853120"}]}, "expected": [{"type": "f32", "value": "46548238"}]}, + {"type": "module", "line": 1964, "filename": "float_exprs.79.wasm"}, + {"type": "assert_return", "line": 1972, "action": {"type": "invoke", "field": "f32.no_extended_precision_div", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1088421888"}, {"type": "f32", "value": "1054567863"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 1973, "action": {"type": "invoke", "field": "f64.no_extended_precision_div", "args": [{"type": "f64", "value": "4613937818241073152"}, {"type": "f64", "value": "4619567317775286272"}, {"type": "f64", "value": "4601392076421969627"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "module", "line": 1980, "filename": "float_exprs.80.wasm"}, + {"type": "assert_return", "line": 1988, "action": {"type": "invoke", "field": "f32.no_distribute_exact", "args": [{"type": "f32", "value": "2147483648"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 1989, "action": {"type": "invoke", "field": "f64.no_distribute_exact", "args": [{"type": "f64", "value": "9223372036854775808"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "module", "line": 1994, "filename": "float_exprs.81.wasm"}, + {"type": "assert_return", "line": 2026, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "f32", "value": "1068827891"}]}, + {"type": "assert_return", "line": 2027, "action": {"type": "invoke", "field": "f32.xkcd_sqrt_2", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1084227584"}, {"type": "f32", "value": "1078530011"}, {"type": "f32", "value": "1088421888"}]}, "expected": [{"type": "f32", "value": "1068827946"}]}, + {"type": "assert_return", "line": 2028, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "f32", "value": "1071494103"}]}, + {"type": "assert_return", "line": 2029, "action": {"type": "invoke", "field": "f32.xkcd_sqrt_3", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1076754516"}, {"type": "f32", "value": "1078530011"}]}, "expected": [{"type": "f32", "value": "1071481194"}]}, + {"type": "assert_return", "line": 2030, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1084227584"}]}, "expected": [{"type": "f32", "value": "1074731965"}]}, + {"type": "assert_return", "line": 2031, "action": {"type": "invoke", "field": "f32.xkcd_sqrt_5", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1076754516"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "f32", "value": "1074730668"}]}, + {"type": "assert_return", "line": 2032, "action": {"type": "invoke", "field": "f32.xkcd_better_sqrt_5", "args": [{"type": "f32", "value": "1095761920"}, {"type": "f32", "value": "1082130432"}, {"type": "f32", "value": "1078530011"}, {"type": "f32", "value": "1103101952"}]}, "expected": [{"type": "f32", "value": "1074731965"}]}, + {"type": "assert_return", "line": 2034, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "f64", "value": "4609047870845172685"}]}, + {"type": "assert_return", "line": 2035, "action": {"type": "invoke", "field": "f64.xkcd_sqrt_2", "args": [{"type": "f64", "value": "4613937818241073152"}, {"type": "f64", "value": "4617315517961601024"}, {"type": "f64", "value": "4614256656552045848"}, {"type": "f64", "value": "4619567317775286272"}]}, "expected": [{"type": "f64", "value": "4609047900099118431"}]}, + {"type": "assert_return", "line": 2036, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "f64", "value": "4610479282544200874"}]}, + {"type": "assert_return", "line": 2037, "action": {"type": "invoke", "field": "f64.xkcd_sqrt_3", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613303445314885481"}, {"type": "f64", "value": "4614256656552045848"}]}, "expected": [{"type": "f64", "value": "4610472352185749397"}]}, + {"type": "assert_return", "line": 2038, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4617315517961601024"}]}, "expected": [{"type": "f64", "value": "4612217596255138984"}]}, + {"type": "assert_return", "line": 2039, "action": {"type": "invoke", "field": "f64.xkcd_sqrt_5", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613303445314885481"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "f64", "value": "4612216900234722254"}]}, + {"type": "assert_return", "line": 2040, "action": {"type": "invoke", "field": "f64.xkcd_better_sqrt_5", "args": [{"type": "f64", "value": "4623507967449235456"}, {"type": "f64", "value": "4616189618054758400"}, {"type": "f64", "value": "4614256656552045848"}, {"type": "f64", "value": "4627448617123184640"}]}, "expected": [{"type": "f64", "value": "4612217595876713891"}]}, + {"type": "module", "line": 2045, "filename": "float_exprs.82.wasm"}, + {"type": "assert_return", "line": 2123, "action": {"type": "invoke", "field": "f32.compute_radix", "args": [{"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "1073741824"}]}, + {"type": "assert_return", "line": 2124, "action": {"type": "invoke", "field": "f64.compute_radix", "args": [{"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, + {"type": "module", "line": 2129, "filename": "float_exprs.83.wasm"}, + {"type": "assert_return", "line": 2137, "action": {"type": "invoke", "field": "f32.no_fold_sub1_mul_add", "args": [{"type": "f32", "value": "796917760"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 2138, "action": {"type": "invoke", "field": "f64.no_fold_sub1_mul_add", "args": [{"type": "f64", "value": "4318952042648305664"}, {"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "module", "line": 2143, "filename": "float_exprs.84.wasm"}, + {"type": "assert_return", "line": 2157, "action": {"type": "invoke", "field": "f32.no_fold_add_le_monotonicity", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 2158, "action": {"type": "invoke", "field": "f32.no_fold_add_le_monotonicity", "args": [{"type": "f32", "value": "2139095040"}, {"type": "f32", "value": "4286578688"}, {"type": "f32", "value": "2139095040"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 2159, "action": {"type": "invoke", "field": "f64.no_fold_add_le_monotonicity", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 2160, "action": {"type": "invoke", "field": "f64.no_fold_add_le_monotonicity", "args": [{"type": "f64", "value": "9218868437227405312"}, {"type": "f64", "value": "18442240474082181120"}, {"type": "f64", "value": "9218868437227405312"}]}, "expected": [{"type": "i32", "value": "0"}]}, {"type": "module", "line": 2164, "filename": "float_exprs.85.wasm"}, - {"type": "assert_return", "line": 2212, "action": {"type": "invoke", "field": "f32.epsilon", "args": []}, "expected": [{"type": "f32", "value": "872415232"}]}, - {"type": "assert_return", "line": 2213, "action": {"type": "invoke", "field": "f64.epsilon", "args": []}, "expected": [{"type": "f64", "value": "4372995238176751616"}]}, - {"type": "module", "line": 2218, "filename": "float_exprs.86.wasm"}, - {"type": "assert_return", "line": 2238, "action": {"type": "invoke", "field": "f32.no_trichotomy_lt", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 2239, "action": {"type": "invoke", "field": "f32.no_trichotomy_le", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 2240, "action": {"type": "invoke", "field": "f32.no_trichotomy_gt", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 2241, "action": {"type": "invoke", "field": "f32.no_trichotomy_ge", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 2242, "action": {"type": "invoke", "field": "f64.no_trichotomy_lt", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 2243, "action": {"type": "invoke", "field": "f64.no_trichotomy_le", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 2244, "action": {"type": "invoke", "field": "f64.no_trichotomy_gt", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 2245, "action": {"type": "invoke", "field": "f64.no_trichotomy_ge", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "module", "line": 2250, "filename": "float_exprs.87.wasm"}, - {"type": "assert_return", "line": 2329, "action": {"type": "invoke", "field": "f32.arithmetic_nan_bitpattern", "args": [{"type": "i32", "value": "2139107856"}, {"type": "i32", "value": "2139107856"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 2330, "action": {"type": "invoke", "field": "f32.canonical_nan_bitpattern", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 2331, "action": {"type": "invoke", "field": "f32.canonical_nan_bitpattern", "args": [{"type": "i32", "value": "2143289344"}, {"type": "i32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 2332, "action": {"type": "invoke", "field": "f32.canonical_nan_bitpattern", "args": [{"type": "i32", "value": "4290772992"}, {"type": "i32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 2333, "action": {"type": "invoke", "field": "f32.canonical_nan_bitpattern", "args": [{"type": "i32", "value": "2143289344"}, {"type": "i32", "value": "4290772992"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 2334, "action": {"type": "invoke", "field": "f32.canonical_nan_bitpattern", "args": [{"type": "i32", "value": "4290772992"}, {"type": "i32", "value": "4290772992"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 2335, "action": {"type": "invoke", "field": "f32.nonarithmetic_nan_bitpattern", "args": [{"type": "i32", "value": "2143302160"}]}, "expected": [{"type": "i32", "value": "4290785808"}]}, - {"type": "assert_return", "line": 2336, "action": {"type": "invoke", "field": "f32.nonarithmetic_nan_bitpattern", "args": [{"type": "i32", "value": "4290785808"}]}, "expected": [{"type": "i32", "value": "2143302160"}]}, - {"type": "assert_return", "line": 2337, "action": {"type": "invoke", "field": "f32.nonarithmetic_nan_bitpattern", "args": [{"type": "i32", "value": "2139107856"}]}, "expected": [{"type": "i32", "value": "4286591504"}]}, - {"type": "assert_return", "line": 2338, "action": {"type": "invoke", "field": "f32.nonarithmetic_nan_bitpattern", "args": [{"type": "i32", "value": "4286591504"}]}, "expected": [{"type": "i32", "value": "2139107856"}]}, - {"type": "assert_return", "line": 2339, "action": {"type": "invoke", "field": "f64.arithmetic_nan_bitpattern", "args": [{"type": "i64", "value": "9218868437227418128"}, {"type": "i64", "value": "9218868437227418128"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 2340, "action": {"type": "invoke", "field": "f64.canonical_nan_bitpattern", "args": [{"type": "i64", "value": "0"}, {"type": "i64", "value": "0"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 2341, "action": {"type": "invoke", "field": "f64.canonical_nan_bitpattern", "args": [{"type": "i64", "value": "9221120237041090560"}, {"type": "i64", "value": "9221120237041090560"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 2342, "action": {"type": "invoke", "field": "f64.canonical_nan_bitpattern", "args": [{"type": "i64", "value": "18444492273895866368"}, {"type": "i64", "value": "9221120237041090560"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 2343, "action": {"type": "invoke", "field": "f64.canonical_nan_bitpattern", "args": [{"type": "i64", "value": "9221120237041090560"}, {"type": "i64", "value": "18444492273895866368"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 2344, "action": {"type": "invoke", "field": "f64.canonical_nan_bitpattern", "args": [{"type": "i64", "value": "18444492273895866368"}, {"type": "i64", "value": "18444492273895866368"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 2345, "action": {"type": "invoke", "field": "f64.nonarithmetic_nan_bitpattern", "args": [{"type": "i64", "value": "9221120237041103376"}]}, "expected": [{"type": "i64", "value": "18444492273895879184"}]}, - {"type": "assert_return", "line": 2346, "action": {"type": "invoke", "field": "f64.nonarithmetic_nan_bitpattern", "args": [{"type": "i64", "value": "18444492273895879184"}]}, "expected": [{"type": "i64", "value": "9221120237041103376"}]}, - {"type": "assert_return", "line": 2347, "action": {"type": "invoke", "field": "f64.nonarithmetic_nan_bitpattern", "args": [{"type": "i64", "value": "9218868437227418128"}]}, "expected": [{"type": "i64", "value": "18442240474082193936"}]}, - {"type": "assert_return", "line": 2348, "action": {"type": "invoke", "field": "f64.nonarithmetic_nan_bitpattern", "args": [{"type": "i64", "value": "18442240474082193936"}]}, "expected": [{"type": "i64", "value": "9218868437227418128"}]}, - {"type": "assert_return", "line": 2349, "action": {"type": "invoke", "field": "f32.no_fold_sub_zero", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 2350, "action": {"type": "invoke", "field": "f32.no_fold_neg0_sub", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 2351, "action": {"type": "invoke", "field": "f32.no_fold_mul_one", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 2352, "action": {"type": "invoke", "field": "f32.no_fold_neg1_mul", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 2353, "action": {"type": "invoke", "field": "f32.no_fold_div_one", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 2354, "action": {"type": "invoke", "field": "f32.no_fold_div_neg1", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 2355, "action": {"type": "invoke", "field": "f64.no_fold_sub_zero", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 2356, "action": {"type": "invoke", "field": "f64.no_fold_neg0_sub", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 2357, "action": {"type": "invoke", "field": "f64.no_fold_mul_one", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 2358, "action": {"type": "invoke", "field": "f64.no_fold_neg1_mul", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 2359, "action": {"type": "invoke", "field": "f64.no_fold_div_one", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 2360, "action": {"type": "invoke", "field": "f64.no_fold_div_neg1", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 2361, "action": {"type": "invoke", "field": "no_fold_promote_demote", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "module", "line": 2366, "filename": "float_exprs.88.wasm"}, - {"type": "assert_return", "line": 2389, "action": {"type": "invoke", "field": "dot_product_example", "args": [{"type": "f64", "value": "4719355144821538816"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "13830554455654793216"}, {"type": "f64", "value": "4725141118604279808"}, {"type": "f64", "value": "4720637518976909312"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "13830554455654793216"}, {"type": "f64", "value": "13938223582048944128"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, - {"type": "assert_return", "line": 2393, "action": {"type": "invoke", "field": "with_binary_sum_collapse", "args": [{"type": "f64", "value": "4719355144821538816"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "13830554455654793216"}, {"type": "f64", "value": "4725141118604279808"}, {"type": "f64", "value": "4720637518976909312"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "13830554455654793216"}, {"type": "f64", "value": "13938223582048944128"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, - {"type": "module", "line": 2400, "filename": "float_exprs.89.wasm"}, - {"type": "assert_return", "line": 2411, "action": {"type": "invoke", "field": "f32.contract2fma", "args": [{"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 2412, "action": {"type": "invoke", "field": "f32.contract2fma", "args": [{"type": "f32", "value": "1066192077"}, {"type": "f32", "value": "1066192077"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 2413, "action": {"type": "invoke", "field": "f32.contract2fma", "args": [{"type": "f32", "value": "1067030937"}, {"type": "f32", "value": "1067030937"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 2414, "action": {"type": "invoke", "field": "f64.contract2fma", "args": [{"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 2415, "action": {"type": "invoke", "field": "f64.contract2fma", "args": [{"type": "f64", "value": "4607632778762754458"}, {"type": "f64", "value": "4607632778762754458"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 2416, "action": {"type": "invoke", "field": "f64.contract2fma", "args": [{"type": "f64", "value": "4608083138725491507"}, {"type": "f64", "value": "4608083138725491507"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "module", "line": 2421, "filename": "float_exprs.90.wasm"}, - {"type": "assert_return", "line": 2430, "action": {"type": "invoke", "field": "f32.division_by_small_number", "args": [{"type": "f32", "value": "1289068416"}, {"type": "f32", "value": "1203982336"}, {"type": "f32", "value": "980151802"}]}, "expected": [{"type": "f32", "value": "1230570368"}]}, - {"type": "assert_return", "line": 2431, "action": {"type": "invoke", "field": "f64.division_by_small_number", "args": [{"type": "f64", "value": "4727288602252279808"}, {"type": "f64", "value": "4681608360884174848"}, {"type": "f64", "value": "4561440258104740754"}]}, "expected": [{"type": "f64", "value": "4695882709507797376"}]}, - {"type": "module", "line": 2436, "filename": "float_exprs.91.wasm"}, - {"type": "assert_return", "line": 2443, "action": {"type": "invoke", "field": "f32.golden_ratio", "args": [{"type": "f32", "value": "1056964608"}, {"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1084227584"}]}, "expected": [{"type": "f32", "value": "1070537661"}]}, - {"type": "assert_return", "line": 2444, "action": {"type": "invoke", "field": "f64.golden_ratio", "args": [{"type": "f64", "value": "4602678819172646912"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "4617315517961601024"}]}, "expected": [{"type": "f64", "value": "4609965796441453736"}]}, - {"type": "module", "line": 2449, "filename": "float_exprs.92.wasm"}, - {"type": "assert_return", "line": 2462, "action": {"type": "invoke", "field": "f32.silver_means", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 2463, "action": {"type": "invoke", "field": "f32.silver_means", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "1070537661"}]}, - {"type": "assert_return", "line": 2464, "action": {"type": "invoke", "field": "f32.silver_means", "args": [{"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "f32", "value": "1075479162"}]}, - {"type": "assert_return", "line": 2465, "action": {"type": "invoke", "field": "f32.silver_means", "args": [{"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "f32", "value": "1079206061"}]}, - {"type": "assert_return", "line": 2466, "action": {"type": "invoke", "field": "f32.silver_means", "args": [{"type": "f32", "value": "1082130432"}]}, "expected": [{"type": "f32", "value": "1082625502"}]}, - {"type": "assert_return", "line": 2467, "action": {"type": "invoke", "field": "f32.silver_means", "args": [{"type": "f32", "value": "1084227584"}]}, "expected": [{"type": "f32", "value": "1084631458"}]}, - {"type": "assert_return", "line": 2468, "action": {"type": "invoke", "field": "f64.silver_means", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 2469, "action": {"type": "invoke", "field": "f64.silver_means", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f64", "value": "4609965796441453736"}]}, - {"type": "assert_return", "line": 2470, "action": {"type": "invoke", "field": "f64.silver_means", "args": [{"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "f64", "value": "4612618744449965542"}]}, - {"type": "assert_return", "line": 2471, "action": {"type": "invoke", "field": "f64.silver_means", "args": [{"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "f64", "value": "4614619608365706490"}]}, - {"type": "assert_return", "line": 2472, "action": {"type": "invoke", "field": "f64.silver_means", "args": [{"type": "f64", "value": "4616189618054758400"}]}, "expected": [{"type": "f64", "value": "4616455406968633940"}]}, - {"type": "assert_return", "line": 2473, "action": {"type": "invoke", "field": "f64.silver_means", "args": [{"type": "f64", "value": "4617315517961601024"}]}, "expected": [{"type": "f64", "value": "4617532346471836922"}]}, - {"type": "module", "line": 2478, "filename": "float_exprs.93.wasm"}, - {"type": "assert_return", "line": 2483, "action": {"type": "invoke", "field": "point_four", "args": [{"type": "f64", "value": "4616189618054758400"}, {"type": "f64", "value": "4621819117588971520"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "module", "line": 2488, "filename": "float_exprs.94.wasm"}, - {"type": "assert_return", "line": 2553, "action": {"type": "invoke", "field": "tau", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "f64", "value": "4618760256179416340"}]}, - {"type": "assert_return", "line": 2554, "action": {"type": "invoke", "field": "tau", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "f64", "value": "4618760256179416344"}]}, - {"type": "module", "line": 2558, "filename": "float_exprs.95.wasm"}, - {"type": "assert_return", "line": 2569, "action": {"type": "invoke", "field": "f32.no_fold_conditional_inc", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "3212836864"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 2570, "action": {"type": "invoke", "field": "f64.no_fold_conditional_inc", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "13830554455654793216"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}]} + {"type": "assert_return", "line": 2190, "action": {"type": "invoke", "field": "f32.not_lt", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 2191, "action": {"type": "invoke", "field": "f32.not_le", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 2192, "action": {"type": "invoke", "field": "f32.not_gt", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 2193, "action": {"type": "invoke", "field": "f32.not_ge", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 2194, "action": {"type": "invoke", "field": "f64.not_lt", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 2195, "action": {"type": "invoke", "field": "f64.not_le", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 2196, "action": {"type": "invoke", "field": "f64.not_gt", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 2197, "action": {"type": "invoke", "field": "f64.not_ge", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "module", "line": 2203, "filename": "float_exprs.86.wasm"}, + {"type": "assert_return", "line": 2211, "action": {"type": "invoke", "field": "f32.epsilon", "args": []}, "expected": [{"type": "f32", "value": "3019898880"}]}, + {"type": "assert_return", "line": 2212, "action": {"type": "invoke", "field": "f64.epsilon", "args": []}, "expected": [{"type": "f64", "value": "4372995238176751616"}]}, + {"type": "module", "line": 2218, "filename": "float_exprs.87.wasm"}, + {"type": "assert_return", "line": 2266, "action": {"type": "invoke", "field": "f32.epsilon", "args": []}, "expected": [{"type": "f32", "value": "872415232"}]}, + {"type": "assert_return", "line": 2267, "action": {"type": "invoke", "field": "f64.epsilon", "args": []}, "expected": [{"type": "f64", "value": "4372995238176751616"}]}, + {"type": "module", "line": 2272, "filename": "float_exprs.88.wasm"}, + {"type": "assert_return", "line": 2292, "action": {"type": "invoke", "field": "f32.no_trichotomy_lt", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 2293, "action": {"type": "invoke", "field": "f32.no_trichotomy_le", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 2294, "action": {"type": "invoke", "field": "f32.no_trichotomy_gt", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 2295, "action": {"type": "invoke", "field": "f32.no_trichotomy_ge", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 2296, "action": {"type": "invoke", "field": "f64.no_trichotomy_lt", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 2297, "action": {"type": "invoke", "field": "f64.no_trichotomy_le", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 2298, "action": {"type": "invoke", "field": "f64.no_trichotomy_gt", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 2299, "action": {"type": "invoke", "field": "f64.no_trichotomy_ge", "args": [{"type": "f64", "value": "0"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "module", "line": 2304, "filename": "float_exprs.89.wasm"}, + {"type": "assert_return", "line": 2383, "action": {"type": "invoke", "field": "f32.arithmetic_nan_bitpattern", "args": [{"type": "i32", "value": "2139107856"}, {"type": "i32", "value": "2139107856"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 2384, "action": {"type": "invoke", "field": "f32.canonical_nan_bitpattern", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 2385, "action": {"type": "invoke", "field": "f32.canonical_nan_bitpattern", "args": [{"type": "i32", "value": "2143289344"}, {"type": "i32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 2386, "action": {"type": "invoke", "field": "f32.canonical_nan_bitpattern", "args": [{"type": "i32", "value": "4290772992"}, {"type": "i32", "value": "2143289344"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 2387, "action": {"type": "invoke", "field": "f32.canonical_nan_bitpattern", "args": [{"type": "i32", "value": "2143289344"}, {"type": "i32", "value": "4290772992"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 2388, "action": {"type": "invoke", "field": "f32.canonical_nan_bitpattern", "args": [{"type": "i32", "value": "4290772992"}, {"type": "i32", "value": "4290772992"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 2389, "action": {"type": "invoke", "field": "f32.nonarithmetic_nan_bitpattern", "args": [{"type": "i32", "value": "2143302160"}]}, "expected": [{"type": "i32", "value": "4290785808"}]}, + {"type": "assert_return", "line": 2390, "action": {"type": "invoke", "field": "f32.nonarithmetic_nan_bitpattern", "args": [{"type": "i32", "value": "4290785808"}]}, "expected": [{"type": "i32", "value": "2143302160"}]}, + {"type": "assert_return", "line": 2391, "action": {"type": "invoke", "field": "f32.nonarithmetic_nan_bitpattern", "args": [{"type": "i32", "value": "2139107856"}]}, "expected": [{"type": "i32", "value": "4286591504"}]}, + {"type": "assert_return", "line": 2392, "action": {"type": "invoke", "field": "f32.nonarithmetic_nan_bitpattern", "args": [{"type": "i32", "value": "4286591504"}]}, "expected": [{"type": "i32", "value": "2139107856"}]}, + {"type": "assert_return", "line": 2393, "action": {"type": "invoke", "field": "f64.arithmetic_nan_bitpattern", "args": [{"type": "i64", "value": "9218868437227418128"}, {"type": "i64", "value": "9218868437227418128"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 2394, "action": {"type": "invoke", "field": "f64.canonical_nan_bitpattern", "args": [{"type": "i64", "value": "0"}, {"type": "i64", "value": "0"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 2395, "action": {"type": "invoke", "field": "f64.canonical_nan_bitpattern", "args": [{"type": "i64", "value": "9221120237041090560"}, {"type": "i64", "value": "9221120237041090560"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 2396, "action": {"type": "invoke", "field": "f64.canonical_nan_bitpattern", "args": [{"type": "i64", "value": "18444492273895866368"}, {"type": "i64", "value": "9221120237041090560"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 2397, "action": {"type": "invoke", "field": "f64.canonical_nan_bitpattern", "args": [{"type": "i64", "value": "9221120237041090560"}, {"type": "i64", "value": "18444492273895866368"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 2398, "action": {"type": "invoke", "field": "f64.canonical_nan_bitpattern", "args": [{"type": "i64", "value": "18444492273895866368"}, {"type": "i64", "value": "18444492273895866368"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 2399, "action": {"type": "invoke", "field": "f64.nonarithmetic_nan_bitpattern", "args": [{"type": "i64", "value": "9221120237041103376"}]}, "expected": [{"type": "i64", "value": "18444492273895879184"}]}, + {"type": "assert_return", "line": 2400, "action": {"type": "invoke", "field": "f64.nonarithmetic_nan_bitpattern", "args": [{"type": "i64", "value": "18444492273895879184"}]}, "expected": [{"type": "i64", "value": "9221120237041103376"}]}, + {"type": "assert_return", "line": 2401, "action": {"type": "invoke", "field": "f64.nonarithmetic_nan_bitpattern", "args": [{"type": "i64", "value": "9218868437227418128"}]}, "expected": [{"type": "i64", "value": "18442240474082193936"}]}, + {"type": "assert_return", "line": 2402, "action": {"type": "invoke", "field": "f64.nonarithmetic_nan_bitpattern", "args": [{"type": "i64", "value": "18442240474082193936"}]}, "expected": [{"type": "i64", "value": "9218868437227418128"}]}, + {"type": "assert_return", "line": 2403, "action": {"type": "invoke", "field": "f32.no_fold_sub_zero", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 2404, "action": {"type": "invoke", "field": "f32.no_fold_neg0_sub", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 2405, "action": {"type": "invoke", "field": "f32.no_fold_mul_one", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 2406, "action": {"type": "invoke", "field": "f32.no_fold_neg1_mul", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 2407, "action": {"type": "invoke", "field": "f32.no_fold_div_one", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 2408, "action": {"type": "invoke", "field": "f32.no_fold_div_neg1", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 2409, "action": {"type": "invoke", "field": "f64.no_fold_sub_zero", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 2410, "action": {"type": "invoke", "field": "f64.no_fold_neg0_sub", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 2411, "action": {"type": "invoke", "field": "f64.no_fold_mul_one", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 2412, "action": {"type": "invoke", "field": "f64.no_fold_neg1_mul", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 2413, "action": {"type": "invoke", "field": "f64.no_fold_div_one", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 2414, "action": {"type": "invoke", "field": "f64.no_fold_div_neg1", "args": [{"type": "i64", "value": "9219994337134247936"}]}, "expected": [{"type": "i64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 2415, "action": {"type": "invoke", "field": "no_fold_promote_demote", "args": [{"type": "i32", "value": "2141192192"}]}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "module", "line": 2420, "filename": "float_exprs.90.wasm"}, + {"type": "assert_return", "line": 2443, "action": {"type": "invoke", "field": "dot_product_example", "args": [{"type": "f64", "value": "4719355144821538816"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "13830554455654793216"}, {"type": "f64", "value": "4725141118604279808"}, {"type": "f64", "value": "4720637518976909312"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "13830554455654793216"}, {"type": "f64", "value": "13938223582048944128"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, + {"type": "assert_return", "line": 2447, "action": {"type": "invoke", "field": "with_binary_sum_collapse", "args": [{"type": "f64", "value": "4719355144821538816"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "13830554455654793216"}, {"type": "f64", "value": "4725141118604279808"}, {"type": "f64", "value": "4720637518976909312"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "13830554455654793216"}, {"type": "f64", "value": "13938223582048944128"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, + {"type": "module", "line": 2454, "filename": "float_exprs.91.wasm"}, + {"type": "assert_return", "line": 2465, "action": {"type": "invoke", "field": "f32.contract2fma", "args": [{"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 2466, "action": {"type": "invoke", "field": "f32.contract2fma", "args": [{"type": "f32", "value": "1066192077"}, {"type": "f32", "value": "1066192077"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 2467, "action": {"type": "invoke", "field": "f32.contract2fma", "args": [{"type": "f32", "value": "1067030937"}, {"type": "f32", "value": "1067030937"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 2468, "action": {"type": "invoke", "field": "f64.contract2fma", "args": [{"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 2469, "action": {"type": "invoke", "field": "f64.contract2fma", "args": [{"type": "f64", "value": "4607632778762754458"}, {"type": "f64", "value": "4607632778762754458"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 2470, "action": {"type": "invoke", "field": "f64.contract2fma", "args": [{"type": "f64", "value": "4608083138725491507"}, {"type": "f64", "value": "4608083138725491507"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "module", "line": 2475, "filename": "float_exprs.92.wasm"}, + {"type": "assert_return", "line": 2484, "action": {"type": "invoke", "field": "f32.division_by_small_number", "args": [{"type": "f32", "value": "1289068416"}, {"type": "f32", "value": "1203982336"}, {"type": "f32", "value": "980151802"}]}, "expected": [{"type": "f32", "value": "1230570368"}]}, + {"type": "assert_return", "line": 2485, "action": {"type": "invoke", "field": "f64.division_by_small_number", "args": [{"type": "f64", "value": "4727288602252279808"}, {"type": "f64", "value": "4681608360884174848"}, {"type": "f64", "value": "4561440258104740754"}]}, "expected": [{"type": "f64", "value": "4695882709507797376"}]}, + {"type": "module", "line": 2490, "filename": "float_exprs.93.wasm"}, + {"type": "assert_return", "line": 2497, "action": {"type": "invoke", "field": "f32.golden_ratio", "args": [{"type": "f32", "value": "1056964608"}, {"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1084227584"}]}, "expected": [{"type": "f32", "value": "1070537661"}]}, + {"type": "assert_return", "line": 2498, "action": {"type": "invoke", "field": "f64.golden_ratio", "args": [{"type": "f64", "value": "4602678819172646912"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "4617315517961601024"}]}, "expected": [{"type": "f64", "value": "4609965796441453736"}]}, + {"type": "module", "line": 2503, "filename": "float_exprs.94.wasm"}, + {"type": "assert_return", "line": 2516, "action": {"type": "invoke", "field": "f32.silver_means", "args": [{"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 2517, "action": {"type": "invoke", "field": "f32.silver_means", "args": [{"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "1070537661"}]}, + {"type": "assert_return", "line": 2518, "action": {"type": "invoke", "field": "f32.silver_means", "args": [{"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "f32", "value": "1075479162"}]}, + {"type": "assert_return", "line": 2519, "action": {"type": "invoke", "field": "f32.silver_means", "args": [{"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "f32", "value": "1079206061"}]}, + {"type": "assert_return", "line": 2520, "action": {"type": "invoke", "field": "f32.silver_means", "args": [{"type": "f32", "value": "1082130432"}]}, "expected": [{"type": "f32", "value": "1082625502"}]}, + {"type": "assert_return", "line": 2521, "action": {"type": "invoke", "field": "f32.silver_means", "args": [{"type": "f32", "value": "1084227584"}]}, "expected": [{"type": "f32", "value": "1084631458"}]}, + {"type": "assert_return", "line": 2522, "action": {"type": "invoke", "field": "f64.silver_means", "args": [{"type": "f64", "value": "0"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 2523, "action": {"type": "invoke", "field": "f64.silver_means", "args": [{"type": "f64", "value": "4607182418800017408"}]}, "expected": [{"type": "f64", "value": "4609965796441453736"}]}, + {"type": "assert_return", "line": 2524, "action": {"type": "invoke", "field": "f64.silver_means", "args": [{"type": "f64", "value": "4611686018427387904"}]}, "expected": [{"type": "f64", "value": "4612618744449965542"}]}, + {"type": "assert_return", "line": 2525, "action": {"type": "invoke", "field": "f64.silver_means", "args": [{"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "f64", "value": "4614619608365706490"}]}, + {"type": "assert_return", "line": 2526, "action": {"type": "invoke", "field": "f64.silver_means", "args": [{"type": "f64", "value": "4616189618054758400"}]}, "expected": [{"type": "f64", "value": "4616455406968633940"}]}, + {"type": "assert_return", "line": 2527, "action": {"type": "invoke", "field": "f64.silver_means", "args": [{"type": "f64", "value": "4617315517961601024"}]}, "expected": [{"type": "f64", "value": "4617532346471836922"}]}, + {"type": "module", "line": 2532, "filename": "float_exprs.95.wasm"}, + {"type": "assert_return", "line": 2537, "action": {"type": "invoke", "field": "point_four", "args": [{"type": "f64", "value": "4616189618054758400"}, {"type": "f64", "value": "4621819117588971520"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "module", "line": 2542, "filename": "float_exprs.96.wasm"}, + {"type": "assert_return", "line": 2607, "action": {"type": "invoke", "field": "tau", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "f64", "value": "4618760256179416340"}]}, + {"type": "assert_return", "line": 2608, "action": {"type": "invoke", "field": "tau", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "f64", "value": "4618760256179416344"}]}, + {"type": "module", "line": 2612, "filename": "float_exprs.97.wasm"}, + {"type": "assert_return", "line": 2623, "action": {"type": "invoke", "field": "f32.no_fold_conditional_inc", "args": [{"type": "f32", "value": "2147483648"}, {"type": "f32", "value": "3212836864"}]}, "expected": [{"type": "f32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 2624, "action": {"type": "invoke", "field": "f64.no_fold_conditional_inc", "args": [{"type": "f64", "value": "9223372036854775808"}, {"type": "f64", "value": "13830554455654793216"}]}, "expected": [{"type": "f64", "value": "9223372036854775808"}]}]} diff --git a/tests/gen/float_literals.0.wasm b/tests/gen/float_literals.0.wasm index c524a6bb..a3ecb1a1 100644 Binary files a/tests/gen/float_literals.0.wasm and b/tests/gen/float_literals.0.wasm differ diff --git a/tests/gen/float_literals.40.wat b/tests/gen/float_literals.40.wat index a693cae6..9a509f80 100644 --- a/tests/gen/float_literals.40.wat +++ b/tests/gen/float_literals.40.wat @@ -1 +1 @@ -(global f64 (f64.const _100)) \ No newline at end of file +(global f32 (f32.const nan:0x80_0000)) \ No newline at end of file diff --git a/tests/gen/float_literals.41.wat b/tests/gen/float_literals.41.wat index 0c05fbdd..a693cae6 100644 --- a/tests/gen/float_literals.41.wat +++ b/tests/gen/float_literals.41.wat @@ -1 +1 @@ -(global f64 (f64.const +_100)) \ No newline at end of file +(global f64 (f64.const _100)) \ No newline at end of file diff --git a/tests/gen/float_literals.42.wat b/tests/gen/float_literals.42.wat index 1bd93199..0c05fbdd 100644 --- a/tests/gen/float_literals.42.wat +++ b/tests/gen/float_literals.42.wat @@ -1 +1 @@ -(global f64 (f64.const -_100)) \ No newline at end of file +(global f64 (f64.const +_100)) \ No newline at end of file diff --git a/tests/gen/float_literals.43.wat b/tests/gen/float_literals.43.wat index a7eace78..1bd93199 100644 --- a/tests/gen/float_literals.43.wat +++ b/tests/gen/float_literals.43.wat @@ -1 +1 @@ -(global f64 (f64.const 99_)) \ No newline at end of file +(global f64 (f64.const -_100)) \ No newline at end of file diff --git a/tests/gen/float_literals.44.wat b/tests/gen/float_literals.44.wat index 6779af43..a7eace78 100644 --- a/tests/gen/float_literals.44.wat +++ b/tests/gen/float_literals.44.wat @@ -1 +1 @@ -(global f64 (f64.const 1__000)) \ No newline at end of file +(global f64 (f64.const 99_)) \ No newline at end of file diff --git a/tests/gen/float_literals.45.wat b/tests/gen/float_literals.45.wat index fc9639b8..6779af43 100644 --- a/tests/gen/float_literals.45.wat +++ b/tests/gen/float_literals.45.wat @@ -1 +1 @@ -(global f64 (f64.const _1.0)) \ No newline at end of file +(global f64 (f64.const 1__000)) \ No newline at end of file diff --git a/tests/gen/float_literals.46.wat b/tests/gen/float_literals.46.wat index d1812e29..fc9639b8 100644 --- a/tests/gen/float_literals.46.wat +++ b/tests/gen/float_literals.46.wat @@ -1 +1 @@ -(global f64 (f64.const 1.0_)) \ No newline at end of file +(global f64 (f64.const _1.0)) \ No newline at end of file diff --git a/tests/gen/float_literals.47.wat b/tests/gen/float_literals.47.wat index 009eff33..d1812e29 100644 --- a/tests/gen/float_literals.47.wat +++ b/tests/gen/float_literals.47.wat @@ -1 +1 @@ -(global f64 (f64.const 1_.0)) \ No newline at end of file +(global f64 (f64.const 1.0_)) \ No newline at end of file diff --git a/tests/gen/float_literals.48.wat b/tests/gen/float_literals.48.wat index 02b36ab4..009eff33 100644 --- a/tests/gen/float_literals.48.wat +++ b/tests/gen/float_literals.48.wat @@ -1 +1 @@ -(global f64 (f64.const 1._0)) \ No newline at end of file +(global f64 (f64.const 1_.0)) \ No newline at end of file diff --git a/tests/gen/float_literals.49.wat b/tests/gen/float_literals.49.wat index 03337998..02b36ab4 100644 --- a/tests/gen/float_literals.49.wat +++ b/tests/gen/float_literals.49.wat @@ -1 +1 @@ -(global f64 (f64.const _1e1)) \ No newline at end of file +(global f64 (f64.const 1._0)) \ No newline at end of file diff --git a/tests/gen/float_literals.50.wat b/tests/gen/float_literals.50.wat index 1abe21ec..03337998 100644 --- a/tests/gen/float_literals.50.wat +++ b/tests/gen/float_literals.50.wat @@ -1 +1 @@ -(global f64 (f64.const 1e1_)) \ No newline at end of file +(global f64 (f64.const _1e1)) \ No newline at end of file diff --git a/tests/gen/float_literals.51.wat b/tests/gen/float_literals.51.wat index 943f72f3..1abe21ec 100644 --- a/tests/gen/float_literals.51.wat +++ b/tests/gen/float_literals.51.wat @@ -1 +1 @@ -(global f64 (f64.const 1_e1)) \ No newline at end of file +(global f64 (f64.const 1e1_)) \ No newline at end of file diff --git a/tests/gen/float_literals.52.wat b/tests/gen/float_literals.52.wat index 4065b3cf..943f72f3 100644 --- a/tests/gen/float_literals.52.wat +++ b/tests/gen/float_literals.52.wat @@ -1 +1 @@ -(global f64 (f64.const 1e_1)) \ No newline at end of file +(global f64 (f64.const 1_e1)) \ No newline at end of file diff --git a/tests/gen/float_literals.53.wat b/tests/gen/float_literals.53.wat index cb4aed15..4065b3cf 100644 --- a/tests/gen/float_literals.53.wat +++ b/tests/gen/float_literals.53.wat @@ -1 +1 @@ -(global f64 (f64.const _1.0e1)) \ No newline at end of file +(global f64 (f64.const 1e_1)) \ No newline at end of file diff --git a/tests/gen/float_literals.54.wat b/tests/gen/float_literals.54.wat index 39849844..cb4aed15 100644 --- a/tests/gen/float_literals.54.wat +++ b/tests/gen/float_literals.54.wat @@ -1 +1 @@ -(global f64 (f64.const 1.0e1_)) \ No newline at end of file +(global f64 (f64.const _1.0e1)) \ No newline at end of file diff --git a/tests/gen/float_literals.55.wat b/tests/gen/float_literals.55.wat index d7026b17..39849844 100644 --- a/tests/gen/float_literals.55.wat +++ b/tests/gen/float_literals.55.wat @@ -1 +1 @@ -(global f64 (f64.const 1.0_e1)) \ No newline at end of file +(global f64 (f64.const 1.0e1_)) \ No newline at end of file diff --git a/tests/gen/float_literals.56.wat b/tests/gen/float_literals.56.wat index 09ef16ce..d7026b17 100644 --- a/tests/gen/float_literals.56.wat +++ b/tests/gen/float_literals.56.wat @@ -1 +1 @@ -(global f64 (f64.const 1.0e_1)) \ No newline at end of file +(global f64 (f64.const 1.0_e1)) \ No newline at end of file diff --git a/tests/gen/float_literals.57.wat b/tests/gen/float_literals.57.wat index 3b6c1634..09ef16ce 100644 --- a/tests/gen/float_literals.57.wat +++ b/tests/gen/float_literals.57.wat @@ -1 +1 @@ -(global f64 (f64.const 1.0e+_1)) \ No newline at end of file +(global f64 (f64.const 1.0e_1)) \ No newline at end of file diff --git a/tests/gen/float_literals.58.wat b/tests/gen/float_literals.58.wat index 9962ae54..3b6c1634 100644 --- a/tests/gen/float_literals.58.wat +++ b/tests/gen/float_literals.58.wat @@ -1 +1 @@ -(global f64 (f64.const 1.0e_+1)) \ No newline at end of file +(global f64 (f64.const 1.0e+_1)) \ No newline at end of file diff --git a/tests/gen/float_literals.59.wat b/tests/gen/float_literals.59.wat index f2d17fba..9962ae54 100644 --- a/tests/gen/float_literals.59.wat +++ b/tests/gen/float_literals.59.wat @@ -1 +1 @@ -(global f64 (f64.const _0x100)) \ No newline at end of file +(global f64 (f64.const 1.0e_+1)) \ No newline at end of file diff --git a/tests/gen/float_literals.60.wat b/tests/gen/float_literals.60.wat index 2d587560..f2d17fba 100644 --- a/tests/gen/float_literals.60.wat +++ b/tests/gen/float_literals.60.wat @@ -1 +1 @@ -(global f64 (f64.const 0_x100)) \ No newline at end of file +(global f64 (f64.const _0x100)) \ No newline at end of file diff --git a/tests/gen/float_literals.61.wat b/tests/gen/float_literals.61.wat index f415fae8..2d587560 100644 --- a/tests/gen/float_literals.61.wat +++ b/tests/gen/float_literals.61.wat @@ -1 +1 @@ -(global f64 (f64.const 0x_100)) \ No newline at end of file +(global f64 (f64.const 0_x100)) \ No newline at end of file diff --git a/tests/gen/float_literals.62.wat b/tests/gen/float_literals.62.wat index 616bcf4b..f415fae8 100644 --- a/tests/gen/float_literals.62.wat +++ b/tests/gen/float_literals.62.wat @@ -1 +1 @@ -(global f64 (f64.const 0x00_)) \ No newline at end of file +(global f64 (f64.const 0x_100)) \ No newline at end of file diff --git a/tests/gen/float_literals.63.wat b/tests/gen/float_literals.63.wat index 16b3dfcb..616bcf4b 100644 --- a/tests/gen/float_literals.63.wat +++ b/tests/gen/float_literals.63.wat @@ -1 +1 @@ -(global f64 (f64.const 0xff__ffff)) \ No newline at end of file +(global f64 (f64.const 0x00_)) \ No newline at end of file diff --git a/tests/gen/float_literals.64.wat b/tests/gen/float_literals.64.wat index 30ab06c8..16b3dfcb 100644 --- a/tests/gen/float_literals.64.wat +++ b/tests/gen/float_literals.64.wat @@ -1 +1 @@ -(global f64 (f64.const 0x_1.0)) \ No newline at end of file +(global f64 (f64.const 0xff__ffff)) \ No newline at end of file diff --git a/tests/gen/float_literals.65.wat b/tests/gen/float_literals.65.wat index a8455347..30ab06c8 100644 --- a/tests/gen/float_literals.65.wat +++ b/tests/gen/float_literals.65.wat @@ -1 +1 @@ -(global f64 (f64.const 0x1.0_)) \ No newline at end of file +(global f64 (f64.const 0x_1.0)) \ No newline at end of file diff --git a/tests/gen/float_literals.66.wat b/tests/gen/float_literals.66.wat index 2b0898b2..a8455347 100644 --- a/tests/gen/float_literals.66.wat +++ b/tests/gen/float_literals.66.wat @@ -1 +1 @@ -(global f64 (f64.const 0x1_.0)) \ No newline at end of file +(global f64 (f64.const 0x1.0_)) \ No newline at end of file diff --git a/tests/gen/float_literals.67.wat b/tests/gen/float_literals.67.wat index d9d9e9a6..2b0898b2 100644 --- a/tests/gen/float_literals.67.wat +++ b/tests/gen/float_literals.67.wat @@ -1 +1 @@ -(global f64 (f64.const 0x1._0)) \ No newline at end of file +(global f64 (f64.const 0x1_.0)) \ No newline at end of file diff --git a/tests/gen/float_literals.68.wat b/tests/gen/float_literals.68.wat index 9e418732..d9d9e9a6 100644 --- a/tests/gen/float_literals.68.wat +++ b/tests/gen/float_literals.68.wat @@ -1 +1 @@ -(global f64 (f64.const 0x_1p1)) \ No newline at end of file +(global f64 (f64.const 0x1._0)) \ No newline at end of file diff --git a/tests/gen/float_literals.69.wat b/tests/gen/float_literals.69.wat index 8436c081..9e418732 100644 --- a/tests/gen/float_literals.69.wat +++ b/tests/gen/float_literals.69.wat @@ -1 +1 @@ -(global f64 (f64.const 0x1p1_)) \ No newline at end of file +(global f64 (f64.const 0x_1p1)) \ No newline at end of file diff --git a/tests/gen/float_literals.70.wat b/tests/gen/float_literals.70.wat index b6acb2fa..8436c081 100644 --- a/tests/gen/float_literals.70.wat +++ b/tests/gen/float_literals.70.wat @@ -1 +1 @@ -(global f64 (f64.const 0x1_p1)) \ No newline at end of file +(global f64 (f64.const 0x1p1_)) \ No newline at end of file diff --git a/tests/gen/float_literals.71.wat b/tests/gen/float_literals.71.wat index 30724aa2..b6acb2fa 100644 --- a/tests/gen/float_literals.71.wat +++ b/tests/gen/float_literals.71.wat @@ -1 +1 @@ -(global f64 (f64.const 0x1p_1)) \ No newline at end of file +(global f64 (f64.const 0x1_p1)) \ No newline at end of file diff --git a/tests/gen/float_literals.72.wat b/tests/gen/float_literals.72.wat index 1210f968..30724aa2 100644 --- a/tests/gen/float_literals.72.wat +++ b/tests/gen/float_literals.72.wat @@ -1 +1 @@ -(global f64 (f64.const 0x_1.0p1)) \ No newline at end of file +(global f64 (f64.const 0x1p_1)) \ No newline at end of file diff --git a/tests/gen/float_literals.73.wat b/tests/gen/float_literals.73.wat index d342d2bc..1210f968 100644 --- a/tests/gen/float_literals.73.wat +++ b/tests/gen/float_literals.73.wat @@ -1 +1 @@ -(global f64 (f64.const 0x1.0p1_)) \ No newline at end of file +(global f64 (f64.const 0x_1.0p1)) \ No newline at end of file diff --git a/tests/gen/float_literals.74.wat b/tests/gen/float_literals.74.wat index 3cc71931..d342d2bc 100644 --- a/tests/gen/float_literals.74.wat +++ b/tests/gen/float_literals.74.wat @@ -1 +1 @@ -(global f64 (f64.const 0x1.0_p1)) \ No newline at end of file +(global f64 (f64.const 0x1.0p1_)) \ No newline at end of file diff --git a/tests/gen/float_literals.75.wat b/tests/gen/float_literals.75.wat index 60b79f27..3cc71931 100644 --- a/tests/gen/float_literals.75.wat +++ b/tests/gen/float_literals.75.wat @@ -1 +1 @@ -(global f64 (f64.const 0x1.0p_1)) \ No newline at end of file +(global f64 (f64.const 0x1.0_p1)) \ No newline at end of file diff --git a/tests/gen/float_literals.76.wat b/tests/gen/float_literals.76.wat index 01001491..60b79f27 100644 --- a/tests/gen/float_literals.76.wat +++ b/tests/gen/float_literals.76.wat @@ -1 +1 @@ -(global f64 (f64.const 0x1.0p+_1)) \ No newline at end of file +(global f64 (f64.const 0x1.0p_1)) \ No newline at end of file diff --git a/tests/gen/float_literals.77.wat b/tests/gen/float_literals.77.wat index 448eb59c..01001491 100644 --- a/tests/gen/float_literals.77.wat +++ b/tests/gen/float_literals.77.wat @@ -1 +1 @@ -(global f64 (f64.const 0x1.0p_+1)) \ No newline at end of file +(global f64 (f64.const 0x1.0p+_1)) \ No newline at end of file diff --git a/tests/gen/float_literals.78.wat b/tests/gen/float_literals.78.wat new file mode 100644 index 00000000..448eb59c --- /dev/null +++ b/tests/gen/float_literals.78.wat @@ -0,0 +1 @@ +(global f64 (f64.const 0x1.0p_+1)) \ No newline at end of file diff --git a/tests/gen/float_literals.79.wat b/tests/gen/float_literals.79.wat new file mode 100644 index 00000000..58374995 --- /dev/null +++ b/tests/gen/float_literals.79.wat @@ -0,0 +1 @@ +(global f64 (f64.const nan:0x10_0000_0000_0000)) \ No newline at end of file diff --git a/tests/gen/float_literals.json b/tests/gen/float_literals.json index 1e3148ac..3231d477 100644 --- a/tests/gen/float_literals.json +++ b/tests/gen/float_literals.json @@ -1,158 +1,176 @@ {"source_filename": "float_literals.wast", "commands": [ {"type": "module", "line": 3, "filename": "float_literals.0.wasm"}, - {"type": "assert_return", "line": 105, "action": {"type": "invoke", "field": "f32.nan", "args": []}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 106, "action": {"type": "invoke", "field": "f32.positive_nan", "args": []}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 107, "action": {"type": "invoke", "field": "f32.negative_nan", "args": []}, "expected": [{"type": "i32", "value": "4290772992"}]}, - {"type": "assert_return", "line": 108, "action": {"type": "invoke", "field": "f32.plain_nan", "args": []}, "expected": [{"type": "i32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 109, "action": {"type": "invoke", "field": "f32.informally_known_as_plain_snan", "args": []}, "expected": [{"type": "i32", "value": "2141192192"}]}, - {"type": "assert_return", "line": 110, "action": {"type": "invoke", "field": "f32.all_ones_nan", "args": []}, "expected": [{"type": "i32", "value": "4294967295"}]}, - {"type": "assert_return", "line": 111, "action": {"type": "invoke", "field": "f32.misc_nan", "args": []}, "expected": [{"type": "i32", "value": "2139169605"}]}, - {"type": "assert_return", "line": 112, "action": {"type": "invoke", "field": "f32.misc_positive_nan", "args": []}, "expected": [{"type": "i32", "value": "2142257232"}]}, - {"type": "assert_return", "line": 113, "action": {"type": "invoke", "field": "f32.misc_negative_nan", "args": []}, "expected": [{"type": "i32", "value": "4289379550"}]}, - {"type": "assert_return", "line": 114, "action": {"type": "invoke", "field": "f32.infinity", "args": []}, "expected": [{"type": "i32", "value": "2139095040"}]}, - {"type": "assert_return", "line": 115, "action": {"type": "invoke", "field": "f32.positive_infinity", "args": []}, "expected": [{"type": "i32", "value": "2139095040"}]}, - {"type": "assert_return", "line": 116, "action": {"type": "invoke", "field": "f32.negative_infinity", "args": []}, "expected": [{"type": "i32", "value": "4286578688"}]}, - {"type": "assert_return", "line": 117, "action": {"type": "invoke", "field": "f32.zero", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 118, "action": {"type": "invoke", "field": "f32.positive_zero", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 119, "action": {"type": "invoke", "field": "f32.negative_zero", "args": []}, "expected": [{"type": "i32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 120, "action": {"type": "invoke", "field": "f32.misc", "args": []}, "expected": [{"type": "i32", "value": "1086918619"}]}, - {"type": "assert_return", "line": 121, "action": {"type": "invoke", "field": "f32.min_positive", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 122, "action": {"type": "invoke", "field": "f32.min_normal", "args": []}, "expected": [{"type": "i32", "value": "8388608"}]}, - {"type": "assert_return", "line": 123, "action": {"type": "invoke", "field": "f32.max_subnormal", "args": []}, "expected": [{"type": "i32", "value": "8388607"}]}, - {"type": "assert_return", "line": 124, "action": {"type": "invoke", "field": "f32.max_finite", "args": []}, "expected": [{"type": "i32", "value": "2139095039"}]}, - {"type": "assert_return", "line": 125, "action": {"type": "invoke", "field": "f32.trailing_dot", "args": []}, "expected": [{"type": "i32", "value": "1149239296"}]}, - {"type": "assert_return", "line": 126, "action": {"type": "invoke", "field": "f32_dec.zero", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 127, "action": {"type": "invoke", "field": "f32_dec.positive_zero", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 128, "action": {"type": "invoke", "field": "f32_dec.negative_zero", "args": []}, "expected": [{"type": "i32", "value": "2147483648"}]}, - {"type": "assert_return", "line": 129, "action": {"type": "invoke", "field": "f32_dec.misc", "args": []}, "expected": [{"type": "i32", "value": "1086918619"}]}, - {"type": "assert_return", "line": 130, "action": {"type": "invoke", "field": "f32_dec.min_positive", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 131, "action": {"type": "invoke", "field": "f32_dec.min_normal", "args": []}, "expected": [{"type": "i32", "value": "8388608"}]}, - {"type": "assert_return", "line": 132, "action": {"type": "invoke", "field": "f32_dec.max_subnormal", "args": []}, "expected": [{"type": "i32", "value": "8388607"}]}, - {"type": "assert_return", "line": 133, "action": {"type": "invoke", "field": "f32_dec.max_finite", "args": []}, "expected": [{"type": "i32", "value": "2139095039"}]}, - {"type": "assert_return", "line": 134, "action": {"type": "invoke", "field": "f32_dec.trailing_dot", "args": []}, "expected": [{"type": "i32", "value": "1343554297"}]}, - {"type": "assert_return", "line": 135, "action": {"type": "invoke", "field": "f32_dec.root_beer_float", "args": []}, "expected": [{"type": "i32", "value": "1065353217"}]}, - {"type": "assert_return", "line": 142, "action": {"type": "invoke", "field": "f64.all_ones_nan", "args": []}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, - {"type": "assert_return", "line": 143, "action": {"type": "invoke", "field": "f64.misc_nan", "args": []}, "expected": [{"type": "i64", "value": "9218888453225749180"}]}, - {"type": "assert_return", "line": 144, "action": {"type": "invoke", "field": "f64.misc_positive_nan", "args": []}, "expected": [{"type": "i64", "value": "9219717281780008969"}]}, - {"type": "assert_return", "line": 145, "action": {"type": "invoke", "field": "f64.misc_negative_nan", "args": []}, "expected": [{"type": "i64", "value": "18442992325002076997"}]}, - {"type": "assert_return", "line": 146, "action": {"type": "invoke", "field": "f64.infinity", "args": []}, "expected": [{"type": "i64", "value": "9218868437227405312"}]}, - {"type": "assert_return", "line": 147, "action": {"type": "invoke", "field": "f64.positive_infinity", "args": []}, "expected": [{"type": "i64", "value": "9218868437227405312"}]}, - {"type": "assert_return", "line": 148, "action": {"type": "invoke", "field": "f64.negative_infinity", "args": []}, "expected": [{"type": "i64", "value": "18442240474082181120"}]}, - {"type": "assert_return", "line": 149, "action": {"type": "invoke", "field": "f64.zero", "args": []}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 150, "action": {"type": "invoke", "field": "f64.positive_zero", "args": []}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 151, "action": {"type": "invoke", "field": "f64.negative_zero", "args": []}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 152, "action": {"type": "invoke", "field": "f64.misc", "args": []}, "expected": [{"type": "i64", "value": "4618760256179416344"}]}, - {"type": "assert_return", "line": 153, "action": {"type": "invoke", "field": "f64.min_positive", "args": []}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 154, "action": {"type": "invoke", "field": "f64.min_normal", "args": []}, "expected": [{"type": "i64", "value": "4503599627370496"}]}, - {"type": "assert_return", "line": 155, "action": {"type": "invoke", "field": "f64.max_subnormal", "args": []}, "expected": [{"type": "i64", "value": "4503599627370495"}]}, - {"type": "assert_return", "line": 156, "action": {"type": "invoke", "field": "f64.max_finite", "args": []}, "expected": [{"type": "i64", "value": "9218868437227405311"}]}, - {"type": "assert_return", "line": 157, "action": {"type": "invoke", "field": "f64.trailing_dot", "args": []}, "expected": [{"type": "i64", "value": "5057542381537067008"}]}, - {"type": "assert_return", "line": 158, "action": {"type": "invoke", "field": "f64_dec.zero", "args": []}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 159, "action": {"type": "invoke", "field": "f64_dec.positive_zero", "args": []}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 160, "action": {"type": "invoke", "field": "f64_dec.negative_zero", "args": []}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, - {"type": "assert_return", "line": 161, "action": {"type": "invoke", "field": "f64_dec.misc", "args": []}, "expected": [{"type": "i64", "value": "4618760256179416344"}]}, - {"type": "assert_return", "line": 162, "action": {"type": "invoke", "field": "f64_dec.min_positive", "args": []}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 163, "action": {"type": "invoke", "field": "f64_dec.min_normal", "args": []}, "expected": [{"type": "i64", "value": "4503599627370496"}]}, - {"type": "assert_return", "line": 164, "action": {"type": "invoke", "field": "f64_dec.max_subnormal", "args": []}, "expected": [{"type": "i64", "value": "4503599627370495"}]}, - {"type": "assert_return", "line": 165, "action": {"type": "invoke", "field": "f64_dec.max_finite", "args": []}, "expected": [{"type": "i64", "value": "9218868437227405311"}]}, - {"type": "assert_return", "line": 166, "action": {"type": "invoke", "field": "f64_dec.trailing_dot", "args": []}, "expected": [{"type": "i64", "value": "6103021453049119613"}]}, - {"type": "assert_return", "line": 167, "action": {"type": "invoke", "field": "f64_dec.root_beer_float", "args": []}, "expected": [{"type": "i64", "value": "4607182419335945764"}]}, - {"type": "assert_return", "line": 169, "action": {"type": "invoke", "field": "f32-dec-sep1", "args": []}, "expected": [{"type": "f32", "value": "1232348160"}]}, - {"type": "assert_return", "line": 170, "action": {"type": "invoke", "field": "f32-dec-sep2", "args": []}, "expected": [{"type": "f32", "value": "1148846080"}]}, - {"type": "assert_return", "line": 171, "action": {"type": "invoke", "field": "f32-dec-sep3", "args": []}, "expected": [{"type": "f32", "value": "1148897552"}]}, - {"type": "assert_return", "line": 172, "action": {"type": "invoke", "field": "f32-dec-sep4", "args": []}, "expected": [{"type": "f32", "value": "1482758550"}]}, - {"type": "assert_return", "line": 173, "action": {"type": "invoke", "field": "f32-dec-sep5", "args": []}, "expected": [{"type": "f32", "value": "1847438964"}]}, - {"type": "assert_return", "line": 174, "action": {"type": "invoke", "field": "f32-hex-sep1", "args": []}, "expected": [{"type": "f32", "value": "1294004234"}]}, - {"type": "assert_return", "line": 175, "action": {"type": "invoke", "field": "f32-hex-sep2", "args": []}, "expected": [{"type": "f32", "value": "1205143424"}]}, - {"type": "assert_return", "line": 176, "action": {"type": "invoke", "field": "f32-hex-sep3", "args": []}, "expected": [{"type": "f32", "value": "1193345009"}]}, - {"type": "assert_return", "line": 177, "action": {"type": "invoke", "field": "f32-hex-sep4", "args": []}, "expected": [{"type": "f32", "value": "1240465408"}]}, - {"type": "assert_return", "line": 178, "action": {"type": "invoke", "field": "f32-hex-sep5", "args": []}, "expected": [{"type": "f32", "value": "1437319208"}]}, - {"type": "assert_return", "line": 180, "action": {"type": "invoke", "field": "f64-dec-sep1", "args": []}, "expected": [{"type": "f64", "value": "4696837146684686336"}]}, - {"type": "assert_return", "line": 181, "action": {"type": "invoke", "field": "f64-dec-sep2", "args": []}, "expected": [{"type": "f64", "value": "4652007308841189376"}]}, - {"type": "assert_return", "line": 182, "action": {"type": "invoke", "field": "f64-dec-sep3", "args": []}, "expected": [{"type": "f64", "value": "4652034942576659200"}]}, - {"type": "assert_return", "line": 183, "action": {"type": "invoke", "field": "f64-dec-sep4", "args": []}, "expected": [{"type": "f64", "value": "2796837019126844485"}]}, - {"type": "assert_return", "line": 184, "action": {"type": "invoke", "field": "f64-dec-sep5", "args": []}, "expected": [{"type": "f64", "value": "5027061507362119324"}]}, - {"type": "assert_return", "line": 185, "action": {"type": "invoke", "field": "f64-hex-sep1", "args": []}, "expected": [{"type": "f64", "value": "4838519794133185330"}]}, - {"type": "assert_return", "line": 186, "action": {"type": "invoke", "field": "f64-hex-sep2", "args": []}, "expected": [{"type": "f64", "value": "4682231715257647104"}]}, - {"type": "assert_return", "line": 187, "action": {"type": "invoke", "field": "f64-hex-sep3", "args": []}, "expected": [{"type": "f64", "value": "4675897489574114112"}]}, - {"type": "assert_return", "line": 188, "action": {"type": "invoke", "field": "f64-hex-sep4", "args": []}, "expected": [{"type": "f64", "value": "4701195061021376512"}]}, - {"type": "assert_return", "line": 189, "action": {"type": "invoke", "field": "f64-hex-sep5", "args": []}, "expected": [{"type": "f64", "value": "4806880140420149248"}]}, - {"type": "module", "line": 192, "filename": "float_literals.1.wasm"}, - {"type": "assert_return", "line": 201, "action": {"type": "invoke", "field": "4294967249", "args": []}, "expected": [{"type": "f64", "value": "4751297606777307136"}]}, - {"type": "assert_malformed", "line": 204, "filename": "float_literals.2.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 208, "filename": "float_literals.3.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 212, "filename": "float_literals.4.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 216, "filename": "float_literals.5.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 220, "filename": "float_literals.6.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 224, "filename": "float_literals.7.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 228, "filename": "float_literals.8.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 232, "filename": "float_literals.9.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 236, "filename": "float_literals.10.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 240, "filename": "float_literals.11.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 244, "filename": "float_literals.12.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 248, "filename": "float_literals.13.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 252, "filename": "float_literals.14.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 256, "filename": "float_literals.15.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 260, "filename": "float_literals.16.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 264, "filename": "float_literals.17.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 268, "filename": "float_literals.18.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 272, "filename": "float_literals.19.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 276, "filename": "float_literals.20.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 280, "filename": "float_literals.21.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 284, "filename": "float_literals.22.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 288, "filename": "float_literals.23.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 292, "filename": "float_literals.24.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 296, "filename": "float_literals.25.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 300, "filename": "float_literals.26.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 304, "filename": "float_literals.27.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 308, "filename": "float_literals.28.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 312, "filename": "float_literals.29.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 316, "filename": "float_literals.30.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 320, "filename": "float_literals.31.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 324, "filename": "float_literals.32.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 328, "filename": "float_literals.33.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 332, "filename": "float_literals.34.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 336, "filename": "float_literals.35.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 340, "filename": "float_literals.36.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 344, "filename": "float_literals.37.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 348, "filename": "float_literals.38.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 352, "filename": "float_literals.39.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 357, "filename": "float_literals.40.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 361, "filename": "float_literals.41.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 365, "filename": "float_literals.42.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 369, "filename": "float_literals.43.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 373, "filename": "float_literals.44.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 377, "filename": "float_literals.45.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 381, "filename": "float_literals.46.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 385, "filename": "float_literals.47.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 389, "filename": "float_literals.48.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 393, "filename": "float_literals.49.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 397, "filename": "float_literals.50.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 401, "filename": "float_literals.51.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 405, "filename": "float_literals.52.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 409, "filename": "float_literals.53.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 413, "filename": "float_literals.54.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 417, "filename": "float_literals.55.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 421, "filename": "float_literals.56.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 425, "filename": "float_literals.57.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 429, "filename": "float_literals.58.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 433, "filename": "float_literals.59.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 437, "filename": "float_literals.60.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 441, "filename": "float_literals.61.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 445, "filename": "float_literals.62.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 449, "filename": "float_literals.63.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 453, "filename": "float_literals.64.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 457, "filename": "float_literals.65.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 461, "filename": "float_literals.66.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 465, "filename": "float_literals.67.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 469, "filename": "float_literals.68.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 473, "filename": "float_literals.69.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 477, "filename": "float_literals.70.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 481, "filename": "float_literals.71.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 485, "filename": "float_literals.72.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 489, "filename": "float_literals.73.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 493, "filename": "float_literals.74.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 497, "filename": "float_literals.75.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 501, "filename": "float_literals.76.wat", "text": "unknown operator", "module_type": "text"}, - {"type": "assert_malformed", "line": 505, "filename": "float_literals.77.wat", "text": "unknown operator", "module_type": "text"}]} + {"type": "assert_return", "line": 121, "action": {"type": "invoke", "field": "f32.nan", "args": []}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 122, "action": {"type": "invoke", "field": "f32.positive_nan", "args": []}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 123, "action": {"type": "invoke", "field": "f32.negative_nan", "args": []}, "expected": [{"type": "i32", "value": "4290772992"}]}, + {"type": "assert_return", "line": 124, "action": {"type": "invoke", "field": "f32.plain_nan", "args": []}, "expected": [{"type": "i32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 125, "action": {"type": "invoke", "field": "f32.informally_known_as_plain_snan", "args": []}, "expected": [{"type": "i32", "value": "2141192192"}]}, + {"type": "assert_return", "line": 126, "action": {"type": "invoke", "field": "f32.all_ones_nan", "args": []}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "assert_return", "line": 127, "action": {"type": "invoke", "field": "f32.misc_nan", "args": []}, "expected": [{"type": "i32", "value": "2139169605"}]}, + {"type": "assert_return", "line": 128, "action": {"type": "invoke", "field": "f32.misc_positive_nan", "args": []}, "expected": [{"type": "i32", "value": "2142257232"}]}, + {"type": "assert_return", "line": 129, "action": {"type": "invoke", "field": "f32.misc_negative_nan", "args": []}, "expected": [{"type": "i32", "value": "4289379550"}]}, + {"type": "assert_return", "line": 130, "action": {"type": "invoke", "field": "f32.infinity", "args": []}, "expected": [{"type": "i32", "value": "2139095040"}]}, + {"type": "assert_return", "line": 131, "action": {"type": "invoke", "field": "f32.positive_infinity", "args": []}, "expected": [{"type": "i32", "value": "2139095040"}]}, + {"type": "assert_return", "line": 132, "action": {"type": "invoke", "field": "f32.negative_infinity", "args": []}, "expected": [{"type": "i32", "value": "4286578688"}]}, + {"type": "assert_return", "line": 133, "action": {"type": "invoke", "field": "f32.zero", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 134, "action": {"type": "invoke", "field": "f32.positive_zero", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 135, "action": {"type": "invoke", "field": "f32.negative_zero", "args": []}, "expected": [{"type": "i32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 136, "action": {"type": "invoke", "field": "f32.misc", "args": []}, "expected": [{"type": "i32", "value": "1086918619"}]}, + {"type": "assert_return", "line": 137, "action": {"type": "invoke", "field": "f32.min_positive", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 138, "action": {"type": "invoke", "field": "f32.min_normal", "args": []}, "expected": [{"type": "i32", "value": "8388608"}]}, + {"type": "assert_return", "line": 139, "action": {"type": "invoke", "field": "f32.max_subnormal", "args": []}, "expected": [{"type": "i32", "value": "8388607"}]}, + {"type": "assert_return", "line": 140, "action": {"type": "invoke", "field": "f32.max_finite", "args": []}, "expected": [{"type": "i32", "value": "2139095039"}]}, + {"type": "assert_return", "line": 141, "action": {"type": "invoke", "field": "f32.trailing_dot", "args": []}, "expected": [{"type": "i32", "value": "1149239296"}]}, + {"type": "assert_return", "line": 142, "action": {"type": "invoke", "field": "f32.misc_int", "args": []}, "expected": [{"type": "i32", "value": "1200726656"}]}, + {"type": "assert_return", "line": 143, "action": {"type": "invoke", "field": "f32.large_int", "args": []}, "expected": [{"type": "i32", "value": "1736441856"}]}, + {"type": "assert_return", "line": 144, "action": {"type": "invoke", "field": "f32.min_int32", "args": []}, "expected": [{"type": "i32", "value": "3472883712"}]}, + {"type": "assert_return", "line": 145, "action": {"type": "invoke", "field": "f32.min_int64", "args": []}, "expected": [{"type": "i32", "value": "3741319168"}]}, + {"type": "assert_return", "line": 146, "action": {"type": "invoke", "field": "f32_dec.zero", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 147, "action": {"type": "invoke", "field": "f32_dec.positive_zero", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 148, "action": {"type": "invoke", "field": "f32_dec.negative_zero", "args": []}, "expected": [{"type": "i32", "value": "2147483648"}]}, + {"type": "assert_return", "line": 149, "action": {"type": "invoke", "field": "f32_dec.misc", "args": []}, "expected": [{"type": "i32", "value": "1086918619"}]}, + {"type": "assert_return", "line": 150, "action": {"type": "invoke", "field": "f32_dec.min_positive", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 151, "action": {"type": "invoke", "field": "f32_dec.min_normal", "args": []}, "expected": [{"type": "i32", "value": "8388608"}]}, + {"type": "assert_return", "line": 152, "action": {"type": "invoke", "field": "f32_dec.max_subnormal", "args": []}, "expected": [{"type": "i32", "value": "8388607"}]}, + {"type": "assert_return", "line": 153, "action": {"type": "invoke", "field": "f32_dec.max_finite", "args": []}, "expected": [{"type": "i32", "value": "2139095039"}]}, + {"type": "assert_return", "line": 154, "action": {"type": "invoke", "field": "f32_dec.trailing_dot", "args": []}, "expected": [{"type": "i32", "value": "1343554297"}]}, + {"type": "assert_return", "line": 155, "action": {"type": "invoke", "field": "f32_dec.root_beer_float", "args": []}, "expected": [{"type": "i32", "value": "1065353217"}]}, + {"type": "assert_return", "line": 156, "action": {"type": "invoke", "field": "f32_dec.misc_int", "args": []}, "expected": [{"type": "i32", "value": "1178657792"}]}, + {"type": "assert_return", "line": 157, "action": {"type": "invoke", "field": "f32_dec.large_int", "args": []}, "expected": [{"type": "i32", "value": "1621981420"}]}, + {"type": "assert_return", "line": 158, "action": {"type": "invoke", "field": "f32_dec.min_int32", "args": []}, "expected": [{"type": "i32", "value": "3472883712"}]}, + {"type": "assert_return", "line": 159, "action": {"type": "invoke", "field": "f32_dec.min_int64", "args": []}, "expected": [{"type": "i32", "value": "3741319168"}]}, + {"type": "assert_return", "line": 167, "action": {"type": "invoke", "field": "f64.all_ones_nan", "args": []}, "expected": [{"type": "i64", "value": "18446744073709551615"}]}, + {"type": "assert_return", "line": 168, "action": {"type": "invoke", "field": "f64.misc_nan", "args": []}, "expected": [{"type": "i64", "value": "9218888453225749180"}]}, + {"type": "assert_return", "line": 169, "action": {"type": "invoke", "field": "f64.misc_positive_nan", "args": []}, "expected": [{"type": "i64", "value": "9219717281780008969"}]}, + {"type": "assert_return", "line": 170, "action": {"type": "invoke", "field": "f64.misc_negative_nan", "args": []}, "expected": [{"type": "i64", "value": "18442992325002076997"}]}, + {"type": "assert_return", "line": 171, "action": {"type": "invoke", "field": "f64.infinity", "args": []}, "expected": [{"type": "i64", "value": "9218868437227405312"}]}, + {"type": "assert_return", "line": 172, "action": {"type": "invoke", "field": "f64.positive_infinity", "args": []}, "expected": [{"type": "i64", "value": "9218868437227405312"}]}, + {"type": "assert_return", "line": 173, "action": {"type": "invoke", "field": "f64.negative_infinity", "args": []}, "expected": [{"type": "i64", "value": "18442240474082181120"}]}, + {"type": "assert_return", "line": 174, "action": {"type": "invoke", "field": "f64.zero", "args": []}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 175, "action": {"type": "invoke", "field": "f64.positive_zero", "args": []}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 176, "action": {"type": "invoke", "field": "f64.negative_zero", "args": []}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 177, "action": {"type": "invoke", "field": "f64.misc", "args": []}, "expected": [{"type": "i64", "value": "4618760256179416344"}]}, + {"type": "assert_return", "line": 178, "action": {"type": "invoke", "field": "f64.min_positive", "args": []}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 179, "action": {"type": "invoke", "field": "f64.min_normal", "args": []}, "expected": [{"type": "i64", "value": "4503599627370496"}]}, + {"type": "assert_return", "line": 180, "action": {"type": "invoke", "field": "f64.max_subnormal", "args": []}, "expected": [{"type": "i64", "value": "4503599627370495"}]}, + {"type": "assert_return", "line": 181, "action": {"type": "invoke", "field": "f64.max_finite", "args": []}, "expected": [{"type": "i64", "value": "9218868437227405311"}]}, + {"type": "assert_return", "line": 182, "action": {"type": "invoke", "field": "f64.trailing_dot", "args": []}, "expected": [{"type": "i64", "value": "5057542381537067008"}]}, + {"type": "assert_return", "line": 183, "action": {"type": "invoke", "field": "f64.misc_int", "args": []}, "expected": [{"type": "i64", "value": "4679860480993394688"}]}, + {"type": "assert_return", "line": 184, "action": {"type": "invoke", "field": "f64.large_int", "args": []}, "expected": [{"type": "i64", "value": "4967470388989657088"}]}, + {"type": "assert_return", "line": 185, "action": {"type": "invoke", "field": "f64.min_int32", "args": []}, "expected": [{"type": "i64", "value": "13970166044103278592"}]}, + {"type": "assert_return", "line": 186, "action": {"type": "invoke", "field": "f64.min_int64", "args": []}, "expected": [{"type": "i64", "value": "14114281232179134464"}]}, + {"type": "assert_return", "line": 187, "action": {"type": "invoke", "field": "f64_dec.zero", "args": []}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 188, "action": {"type": "invoke", "field": "f64_dec.positive_zero", "args": []}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 189, "action": {"type": "invoke", "field": "f64_dec.negative_zero", "args": []}, "expected": [{"type": "i64", "value": "9223372036854775808"}]}, + {"type": "assert_return", "line": 190, "action": {"type": "invoke", "field": "f64_dec.misc", "args": []}, "expected": [{"type": "i64", "value": "4618760256179416344"}]}, + {"type": "assert_return", "line": 191, "action": {"type": "invoke", "field": "f64_dec.min_positive", "args": []}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 192, "action": {"type": "invoke", "field": "f64_dec.min_normal", "args": []}, "expected": [{"type": "i64", "value": "4503599627370496"}]}, + {"type": "assert_return", "line": 193, "action": {"type": "invoke", "field": "f64_dec.max_subnormal", "args": []}, "expected": [{"type": "i64", "value": "4503599627370495"}]}, + {"type": "assert_return", "line": 194, "action": {"type": "invoke", "field": "f64_dec.max_finite", "args": []}, "expected": [{"type": "i64", "value": "9218868437227405311"}]}, + {"type": "assert_return", "line": 195, "action": {"type": "invoke", "field": "f64_dec.trailing_dot", "args": []}, "expected": [{"type": "i64", "value": "6103021453049119613"}]}, + {"type": "assert_return", "line": 196, "action": {"type": "invoke", "field": "f64_dec.root_beer_float", "args": []}, "expected": [{"type": "i64", "value": "4607182419335945764"}]}, + {"type": "assert_return", "line": 197, "action": {"type": "invoke", "field": "f64_dec.misc_int", "args": []}, "expected": [{"type": "i64", "value": "4668012349850910720"}]}, + {"type": "assert_return", "line": 198, "action": {"type": "invoke", "field": "f64_dec.large_int", "args": []}, "expected": [{"type": "i64", "value": "4906019910204099648"}]}, + {"type": "assert_return", "line": 199, "action": {"type": "invoke", "field": "f64_dec.min_int32", "args": []}, "expected": [{"type": "i64", "value": "13970166044103278592"}]}, + {"type": "assert_return", "line": 200, "action": {"type": "invoke", "field": "f64_dec.min_int64", "args": []}, "expected": [{"type": "i64", "value": "14114281232179134464"}]}, + {"type": "assert_return", "line": 202, "action": {"type": "invoke", "field": "f32-dec-sep1", "args": []}, "expected": [{"type": "f32", "value": "1232348160"}]}, + {"type": "assert_return", "line": 203, "action": {"type": "invoke", "field": "f32-dec-sep2", "args": []}, "expected": [{"type": "f32", "value": "1148846080"}]}, + {"type": "assert_return", "line": 204, "action": {"type": "invoke", "field": "f32-dec-sep3", "args": []}, "expected": [{"type": "f32", "value": "1148897552"}]}, + {"type": "assert_return", "line": 205, "action": {"type": "invoke", "field": "f32-dec-sep4", "args": []}, "expected": [{"type": "f32", "value": "1482758550"}]}, + {"type": "assert_return", "line": 206, "action": {"type": "invoke", "field": "f32-dec-sep5", "args": []}, "expected": [{"type": "f32", "value": "1847438964"}]}, + {"type": "assert_return", "line": 207, "action": {"type": "invoke", "field": "f32-hex-sep1", "args": []}, "expected": [{"type": "f32", "value": "1294004234"}]}, + {"type": "assert_return", "line": 208, "action": {"type": "invoke", "field": "f32-hex-sep2", "args": []}, "expected": [{"type": "f32", "value": "1205143424"}]}, + {"type": "assert_return", "line": 209, "action": {"type": "invoke", "field": "f32-hex-sep3", "args": []}, "expected": [{"type": "f32", "value": "1193345009"}]}, + {"type": "assert_return", "line": 210, "action": {"type": "invoke", "field": "f32-hex-sep4", "args": []}, "expected": [{"type": "f32", "value": "1240465408"}]}, + {"type": "assert_return", "line": 211, "action": {"type": "invoke", "field": "f32-hex-sep5", "args": []}, "expected": [{"type": "f32", "value": "1437319208"}]}, + {"type": "assert_return", "line": 213, "action": {"type": "invoke", "field": "f64-dec-sep1", "args": []}, "expected": [{"type": "f64", "value": "4696837146684686336"}]}, + {"type": "assert_return", "line": 214, "action": {"type": "invoke", "field": "f64-dec-sep2", "args": []}, "expected": [{"type": "f64", "value": "4652007308841189376"}]}, + {"type": "assert_return", "line": 215, "action": {"type": "invoke", "field": "f64-dec-sep3", "args": []}, "expected": [{"type": "f64", "value": "4652034942576659200"}]}, + {"type": "assert_return", "line": 216, "action": {"type": "invoke", "field": "f64-dec-sep4", "args": []}, "expected": [{"type": "f64", "value": "2796837019126844485"}]}, + {"type": "assert_return", "line": 217, "action": {"type": "invoke", "field": "f64-dec-sep5", "args": []}, "expected": [{"type": "f64", "value": "5027061507362119324"}]}, + {"type": "assert_return", "line": 218, "action": {"type": "invoke", "field": "f64-hex-sep1", "args": []}, "expected": [{"type": "f64", "value": "4838519794133185330"}]}, + {"type": "assert_return", "line": 219, "action": {"type": "invoke", "field": "f64-hex-sep2", "args": []}, "expected": [{"type": "f64", "value": "4682231715257647104"}]}, + {"type": "assert_return", "line": 220, "action": {"type": "invoke", "field": "f64-hex-sep3", "args": []}, "expected": [{"type": "f64", "value": "4675897489574114112"}]}, + {"type": "assert_return", "line": 221, "action": {"type": "invoke", "field": "f64-hex-sep4", "args": []}, "expected": [{"type": "f64", "value": "4701195061021376512"}]}, + {"type": "assert_return", "line": 222, "action": {"type": "invoke", "field": "f64-hex-sep5", "args": []}, "expected": [{"type": "f64", "value": "4806880140420149248"}]}, + {"type": "module", "line": 225, "filename": "float_literals.1.wasm"}, + {"type": "assert_return", "line": 234, "action": {"type": "invoke", "field": "4294967249", "args": []}, "expected": [{"type": "f64", "value": "4751297606777307136"}]}, + {"type": "assert_malformed", "line": 237, "filename": "float_literals.2.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 241, "filename": "float_literals.3.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 245, "filename": "float_literals.4.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 249, "filename": "float_literals.5.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 253, "filename": "float_literals.6.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 257, "filename": "float_literals.7.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 261, "filename": "float_literals.8.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 265, "filename": "float_literals.9.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 269, "filename": "float_literals.10.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 273, "filename": "float_literals.11.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 277, "filename": "float_literals.12.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 281, "filename": "float_literals.13.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 285, "filename": "float_literals.14.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 289, "filename": "float_literals.15.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 293, "filename": "float_literals.16.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 297, "filename": "float_literals.17.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 301, "filename": "float_literals.18.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 305, "filename": "float_literals.19.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 309, "filename": "float_literals.20.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 313, "filename": "float_literals.21.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 317, "filename": "float_literals.22.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 321, "filename": "float_literals.23.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 325, "filename": "float_literals.24.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 329, "filename": "float_literals.25.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 333, "filename": "float_literals.26.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 337, "filename": "float_literals.27.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 341, "filename": "float_literals.28.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 345, "filename": "float_literals.29.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 349, "filename": "float_literals.30.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 353, "filename": "float_literals.31.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 357, "filename": "float_literals.32.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 361, "filename": "float_literals.33.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 365, "filename": "float_literals.34.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 369, "filename": "float_literals.35.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 373, "filename": "float_literals.36.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 377, "filename": "float_literals.37.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 381, "filename": "float_literals.38.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 385, "filename": "float_literals.39.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 389, "filename": "float_literals.40.wat", "text": "constant out of range", "module_type": "text"}, + {"type": "assert_malformed", "line": 394, "filename": "float_literals.41.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 398, "filename": "float_literals.42.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 402, "filename": "float_literals.43.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 406, "filename": "float_literals.44.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 410, "filename": "float_literals.45.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 414, "filename": "float_literals.46.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 418, "filename": "float_literals.47.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 422, "filename": "float_literals.48.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 426, "filename": "float_literals.49.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 430, "filename": "float_literals.50.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 434, "filename": "float_literals.51.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 438, "filename": "float_literals.52.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 442, "filename": "float_literals.53.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 446, "filename": "float_literals.54.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 450, "filename": "float_literals.55.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 454, "filename": "float_literals.56.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 458, "filename": "float_literals.57.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 462, "filename": "float_literals.58.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 466, "filename": "float_literals.59.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 470, "filename": "float_literals.60.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 474, "filename": "float_literals.61.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 478, "filename": "float_literals.62.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 482, "filename": "float_literals.63.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 486, "filename": "float_literals.64.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 490, "filename": "float_literals.65.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 494, "filename": "float_literals.66.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 498, "filename": "float_literals.67.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 502, "filename": "float_literals.68.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 506, "filename": "float_literals.69.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 510, "filename": "float_literals.70.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 514, "filename": "float_literals.71.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 518, "filename": "float_literals.72.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 522, "filename": "float_literals.73.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 526, "filename": "float_literals.74.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 530, "filename": "float_literals.75.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 534, "filename": "float_literals.76.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 538, "filename": "float_literals.77.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 542, "filename": "float_literals.78.wat", "text": "unknown operator", "module_type": "text"}, + {"type": "assert_malformed", "line": 546, "filename": "float_literals.79.wat", "text": "constant out of range", "module_type": "text"}]} diff --git a/tests/gen/float_misc.json b/tests/gen/float_misc.json index cd981279..8fa6eaf4 100644 --- a/tests/gen/float_misc.json +++ b/tests/gen/float_misc.json @@ -381,63 +381,93 @@ {"type": "assert_return", "line": 586, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1065353213"}]}, "expected": [{"type": "f32", "value": "1065353214"}]}, {"type": "assert_return", "line": 587, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4607182418800017406"}]}, "expected": [{"type": "f64", "value": "4607182418800017407"}]}, {"type": "assert_return", "line": 588, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4607182418800017405"}]}, "expected": [{"type": "f64", "value": "4607182418800017406"}]}, - {"type": "assert_return", "line": 592, "action": {"type": "invoke", "field": "f32.abs", "args": [{"type": "f32", "value": "2139156962"}]}, "expected": [{"type": "f32", "value": "2139156962"}]}, - {"type": "assert_return", "line": 593, "action": {"type": "invoke", "field": "f32.abs", "args": [{"type": "f32", "value": "4286640610"}]}, "expected": [{"type": "f32", "value": "2139156962"}]}, - {"type": "assert_return", "line": 594, "action": {"type": "invoke", "field": "f64.abs", "args": [{"type": "f64", "value": "9218868441285556843"}]}, "expected": [{"type": "f64", "value": "9218868441285556843"}]}, - {"type": "assert_return", "line": 595, "action": {"type": "invoke", "field": "f64.abs", "args": [{"type": "f64", "value": "18442240478140332651"}]}, "expected": [{"type": "f64", "value": "9218868441285556843"}]}, - {"type": "assert_return", "line": 597, "action": {"type": "invoke", "field": "f32.neg", "args": [{"type": "f32", "value": "2139156962"}]}, "expected": [{"type": "f32", "value": "4286640610"}]}, - {"type": "assert_return", "line": 598, "action": {"type": "invoke", "field": "f32.neg", "args": [{"type": "f32", "value": "4286640610"}]}, "expected": [{"type": "f32", "value": "2139156962"}]}, - {"type": "assert_return", "line": 599, "action": {"type": "invoke", "field": "f64.neg", "args": [{"type": "f64", "value": "9218868441285556843"}]}, "expected": [{"type": "f64", "value": "18442240478140332651"}]}, - {"type": "assert_return", "line": 600, "action": {"type": "invoke", "field": "f64.neg", "args": [{"type": "f64", "value": "18442240478140332651"}]}, "expected": [{"type": "f64", "value": "9218868441285556843"}]}, - {"type": "assert_return", "line": 602, "action": {"type": "invoke", "field": "f32.copysign", "args": [{"type": "f32", "value": "2139156962"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2139156962"}]}, - {"type": "assert_return", "line": 603, "action": {"type": "invoke", "field": "f32.copysign", "args": [{"type": "f32", "value": "2139156962"}, {"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "4286640610"}]}, - {"type": "assert_return", "line": 604, "action": {"type": "invoke", "field": "f32.copysign", "args": [{"type": "f32", "value": "4286640610"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2139156962"}]}, - {"type": "assert_return", "line": 605, "action": {"type": "invoke", "field": "f32.copysign", "args": [{"type": "f32", "value": "4286640610"}, {"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "4286640610"}]}, - {"type": "assert_return", "line": 606, "action": {"type": "invoke", "field": "f64.copysign", "args": [{"type": "f64", "value": "9218868441285556843"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9218868441285556843"}]}, - {"type": "assert_return", "line": 607, "action": {"type": "invoke", "field": "f64.copysign", "args": [{"type": "f64", "value": "9218868441285556843"}, {"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "18442240478140332651"}]}, - {"type": "assert_return", "line": 608, "action": {"type": "invoke", "field": "f64.copysign", "args": [{"type": "f64", "value": "18442240478140332651"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9218868441285556843"}]}, - {"type": "assert_return", "line": 609, "action": {"type": "invoke", "field": "f64.copysign", "args": [{"type": "f64", "value": "18442240478140332651"}, {"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "18442240478140332651"}]}, - {"type": "assert_return", "line": 612, "action": {"type": "invoke", "field": "f32.ceil", "args": [{"type": "f32", "value": "1065353215"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 613, "action": {"type": "invoke", "field": "f32.ceil", "args": [{"type": "f32", "value": "1065353217"}]}, "expected": [{"type": "f32", "value": "1073741824"}]}, - {"type": "assert_return", "line": 614, "action": {"type": "invoke", "field": "f64.ceil", "args": [{"type": "f64", "value": "4607182418800017407"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 615, "action": {"type": "invoke", "field": "f64.ceil", "args": [{"type": "f64", "value": "4607182418800017409"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, - {"type": "assert_return", "line": 618, "action": {"type": "invoke", "field": "f32.ceil", "args": [{"type": "f32", "value": "1258291199"}]}, "expected": [{"type": "f32", "value": "1258291200"}]}, - {"type": "assert_return", "line": 619, "action": {"type": "invoke", "field": "f32.ceil", "args": [{"type": "f32", "value": "3405774847"}]}, "expected": [{"type": "f32", "value": "3405774846"}]}, - {"type": "assert_return", "line": 620, "action": {"type": "invoke", "field": "f64.ceil", "args": [{"type": "f64", "value": "4841369599423283199"}]}, "expected": [{"type": "f64", "value": "4841369599423283200"}]}, - {"type": "assert_return", "line": 621, "action": {"type": "invoke", "field": "f64.ceil", "args": [{"type": "f64", "value": "14064741636278059007"}]}, "expected": [{"type": "f64", "value": "14064741636278059006"}]}, - {"type": "assert_return", "line": 625, "action": {"type": "invoke", "field": "f32.ceil", "args": [{"type": "f32", "value": "1266679807"}]}, "expected": [{"type": "f32", "value": "1266679807"}]}, - {"type": "assert_return", "line": 626, "action": {"type": "invoke", "field": "f32.ceil", "args": [{"type": "f32", "value": "3414163455"}]}, "expected": [{"type": "f32", "value": "3414163455"}]}, - {"type": "assert_return", "line": 627, "action": {"type": "invoke", "field": "f64.ceil", "args": [{"type": "f64", "value": "4845873199050653695"}]}, "expected": [{"type": "f64", "value": "4845873199050653695"}]}, - {"type": "assert_return", "line": 628, "action": {"type": "invoke", "field": "f64.ceil", "args": [{"type": "f64", "value": "14069245235905429503"}]}, "expected": [{"type": "f64", "value": "14069245235905429503"}]}, - {"type": "assert_return", "line": 631, "action": {"type": "invoke", "field": "f32.floor", "args": [{"type": "f32", "value": "3212836863"}]}, "expected": [{"type": "f32", "value": "3212836864"}]}, - {"type": "assert_return", "line": 632, "action": {"type": "invoke", "field": "f32.floor", "args": [{"type": "f32", "value": "3212836865"}]}, "expected": [{"type": "f32", "value": "3221225472"}]}, - {"type": "assert_return", "line": 633, "action": {"type": "invoke", "field": "f64.floor", "args": [{"type": "f64", "value": "13830554455654793215"}]}, "expected": [{"type": "f64", "value": "13830554455654793216"}]}, - {"type": "assert_return", "line": 634, "action": {"type": "invoke", "field": "f64.floor", "args": [{"type": "f64", "value": "13830554455654793217"}]}, "expected": [{"type": "f64", "value": "13835058055282163712"}]}, - {"type": "assert_return", "line": 637, "action": {"type": "invoke", "field": "f32.floor", "args": [{"type": "f32", "value": "3405774847"}]}, "expected": [{"type": "f32", "value": "3405774848"}]}, - {"type": "assert_return", "line": 638, "action": {"type": "invoke", "field": "f32.floor", "args": [{"type": "f32", "value": "1258291199"}]}, "expected": [{"type": "f32", "value": "1258291198"}]}, - {"type": "assert_return", "line": 639, "action": {"type": "invoke", "field": "f64.floor", "args": [{"type": "f64", "value": "14064741636278059007"}]}, "expected": [{"type": "f64", "value": "14064741636278059008"}]}, - {"type": "assert_return", "line": 640, "action": {"type": "invoke", "field": "f64.floor", "args": [{"type": "f64", "value": "4841369599423283199"}]}, "expected": [{"type": "f64", "value": "4841369599423283198"}]}, - {"type": "assert_return", "line": 644, "action": {"type": "invoke", "field": "f32.floor", "args": [{"type": "f32", "value": "1202524032"}]}, "expected": [{"type": "f32", "value": "1202524032"}]}, - {"type": "assert_return", "line": 645, "action": {"type": "invoke", "field": "f64.floor", "args": [{"type": "f64", "value": "4680825439885721600"}]}, "expected": [{"type": "f64", "value": "4680825439885721600"}]}, - {"type": "assert_return", "line": 648, "action": {"type": "invoke", "field": "f32.trunc", "args": [{"type": "f32", "value": "3405774847"}]}, "expected": [{"type": "f32", "value": "3405774846"}]}, - {"type": "assert_return", "line": 649, "action": {"type": "invoke", "field": "f32.trunc", "args": [{"type": "f32", "value": "1258291199"}]}, "expected": [{"type": "f32", "value": "1258291198"}]}, - {"type": "assert_return", "line": 650, "action": {"type": "invoke", "field": "f64.trunc", "args": [{"type": "f64", "value": "14064741636278059007"}]}, "expected": [{"type": "f64", "value": "14064741636278059006"}]}, - {"type": "assert_return", "line": 651, "action": {"type": "invoke", "field": "f64.trunc", "args": [{"type": "f64", "value": "4841369599423283199"}]}, "expected": [{"type": "f64", "value": "4841369599423283198"}]}, - {"type": "assert_return", "line": 656, "action": {"type": "invoke", "field": "f32.nearest", "args": [{"type": "f32", "value": "1258291201"}]}, "expected": [{"type": "f32", "value": "1258291201"}]}, - {"type": "assert_return", "line": 657, "action": {"type": "invoke", "field": "f32.nearest", "args": [{"type": "f32", "value": "1258291202"}]}, "expected": [{"type": "f32", "value": "1258291202"}]}, - {"type": "assert_return", "line": 658, "action": {"type": "invoke", "field": "f32.nearest", "args": [{"type": "f32", "value": "1056964607"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 659, "action": {"type": "invoke", "field": "f32.nearest", "args": [{"type": "f32", "value": "1468006399"}]}, "expected": [{"type": "f32", "value": "1468006399"}]}, - {"type": "assert_return", "line": 660, "action": {"type": "invoke", "field": "f64.nearest", "args": [{"type": "f64", "value": "4841369599423283201"}]}, "expected": [{"type": "f64", "value": "4841369599423283201"}]}, - {"type": "assert_return", "line": 661, "action": {"type": "invoke", "field": "f64.nearest", "args": [{"type": "f64", "value": "4841369599423283202"}]}, "expected": [{"type": "f64", "value": "4841369599423283202"}]}, - {"type": "assert_return", "line": 662, "action": {"type": "invoke", "field": "f64.nearest", "args": [{"type": "f64", "value": "4602678819172646911"}]}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 663, "action": {"type": "invoke", "field": "f64.nearest", "args": [{"type": "f64", "value": "5084563979301289983"}]}, "expected": [{"type": "f64", "value": "5084563979301289983"}]}, - {"type": "assert_return", "line": 667, "action": {"type": "invoke", "field": "f32.nearest", "args": [{"type": "f32", "value": "1083179008"}]}, "expected": [{"type": "f32", "value": "1082130432"}]}, - {"type": "assert_return", "line": 668, "action": {"type": "invoke", "field": "f32.nearest", "args": [{"type": "f32", "value": "3230662656"}]}, "expected": [{"type": "f32", "value": "3229614080"}]}, - {"type": "assert_return", "line": 669, "action": {"type": "invoke", "field": "f32.nearest", "args": [{"type": "f32", "value": "3227516928"}]}, "expected": [{"type": "f32", "value": "3229614080"}]}, - {"type": "assert_return", "line": 670, "action": {"type": "invoke", "field": "f64.nearest", "args": [{"type": "f64", "value": "4616752568008179712"}]}, "expected": [{"type": "f64", "value": "4616189618054758400"}]}, - {"type": "assert_return", "line": 671, "action": {"type": "invoke", "field": "f64.nearest", "args": [{"type": "f64", "value": "13840124604862955520"}]}, "expected": [{"type": "f64", "value": "13839561654909534208"}]}, - {"type": "assert_return", "line": 672, "action": {"type": "invoke", "field": "f64.nearest", "args": [{"type": "f64", "value": "13838435755002691584"}]}, "expected": [{"type": "f64", "value": "13839561654909534208"}]}, - {"type": "assert_return", "line": 675, "action": {"type": "invoke", "field": "f32.nearest", "args": [{"type": "f32", "value": "3405774847"}]}, "expected": [{"type": "f32", "value": "3405774848"}]}, - {"type": "assert_return", "line": 676, "action": {"type": "invoke", "field": "f32.nearest", "args": [{"type": "f32", "value": "1258291199"}]}, "expected": [{"type": "f32", "value": "1258291200"}]}, - {"type": "assert_return", "line": 677, "action": {"type": "invoke", "field": "f64.nearest", "args": [{"type": "f64", "value": "14064741636278059007"}]}, "expected": [{"type": "f64", "value": "14064741636278059008"}]}, - {"type": "assert_return", "line": 678, "action": {"type": "invoke", "field": "f64.nearest", "args": [{"type": "f64", "value": "4841369599423283199"}]}, "expected": [{"type": "f64", "value": "4841369599423283200"}]}]} + {"type": "assert_return", "line": 591, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1048575999"}]}, "expected": [{"type": "f32", "value": "1056964607"}]}, + {"type": "assert_return", "line": 592, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1048576000"}]}, "expected": [{"type": "f32", "value": "1056964608"}]}, + {"type": "assert_return", "line": 593, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1048576001"}]}, "expected": [{"type": "f32", "value": "1056964608"}]}, + {"type": "assert_return", "line": 594, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1048576002"}]}, "expected": [{"type": "f32", "value": "1056964609"}]}, + {"type": "assert_return", "line": 595, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4598175219545276415"}]}, "expected": [{"type": "f64", "value": "4602678819172646911"}]}, + {"type": "assert_return", "line": 596, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4598175219545276416"}]}, "expected": [{"type": "f64", "value": "4602678819172646912"}]}, + {"type": "assert_return", "line": 597, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4598175219545276417"}]}, "expected": [{"type": "f64", "value": "4602678819172646912"}]}, + {"type": "assert_return", "line": 598, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4598175219545276418"}]}, "expected": [{"type": "f64", "value": "4602678819172646913"}]}, + {"type": "assert_return", "line": 602, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1383964906"}]}, "expected": [{"type": "f32", "value": "1224658880"}]}, + {"type": "assert_return", "line": 603, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4778235767454362395"}]}, "expected": [{"type": "f64", "value": "4692708996063213197"}]}, + {"type": "assert_return", "line": 607, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1344155865"}]}, "expected": [{"type": "f32", "value": "1204370688"}]}, + {"type": "assert_return", "line": 608, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1496014503"}]}, "expected": [{"type": "f32", "value": "1280406534"}]}, + {"type": "assert_return", "line": 609, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1437792278"}]}, "expected": [{"type": "f32", "value": "1251433122"}]}, + {"type": "assert_return", "line": 610, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1318267910"}]}, "expected": [{"type": "f32", "value": "1191788651"}]}, + {"type": "assert_return", "line": 611, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4756863450987102208"}]}, "expected": [{"type": "f64", "value": "4681816855776591872"}]}, + {"type": "assert_return", "line": 612, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4838391936821527880"}]}, "expected": [{"type": "f64", "value": "4722638290031738880"}]}, + {"type": "assert_return", "line": 613, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4807134117891383552"}]}, "expected": [{"type": "f64", "value": "4707083307639111680"}]}, + {"type": "assert_return", "line": 614, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4742964961037254656"}]}, "expected": [{"type": "f64", "value": "4675061926143203535"}]}, + {"type": "assert_return", "line": 618, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1057229822"}]}, "expected": [{"type": "f32", "value": "1060625359"}]}, + {"type": "assert_return", "line": 619, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1057013196"}]}, "expected": [{"type": "f32", "value": "1060473591"}]}, + {"type": "assert_return", "line": 620, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4602821204854702080"}]}, "expected": [{"type": "f64", "value": "4604644169646845946"}]}, + {"type": "assert_return", "line": 621, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4602704904656519168"}]}, "expected": [{"type": "f64", "value": "4604562689808079765"}]}, + {"type": "assert_return", "line": 625, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1091567616"}]}, "expected": [{"type": "f32", "value": "1077936128"}]}, + {"type": "assert_return", "line": 626, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1124663296"}]}, "expected": [{"type": "f32", "value": "1094403699"}]}, + {"type": "assert_return", "line": 627, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1071844079"}]}, "expected": [{"type": "f32", "value": "1068136808"}]}, + {"type": "assert_return", "line": 628, "action": {"type": "invoke", "field": "f32.sqrt", "args": [{"type": "f32", "value": "1148846080"}]}, "expected": [{"type": "f32", "value": "1107098482"}]}, + {"type": "assert_return", "line": 629, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4621256167635550208"}]}, "expected": [{"type": "f64", "value": "4613937818241073152"}]}, + {"type": "assert_return", "line": 630, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4639024275540410368"}]}, "expected": [{"type": "f64", "value": "4622778778324308448"}]}, + {"type": "assert_return", "line": 631, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4610667174614947795"}]}, "expected": [{"type": "f64", "value": "4608676848398421769"}]}, + {"type": "assert_return", "line": 632, "action": {"type": "invoke", "field": "f64.sqrt", "args": [{"type": "f64", "value": "4652007308841189376"}]}, "expected": [{"type": "f64", "value": "4629594237989614119"}]}, + {"type": "assert_return", "line": 636, "action": {"type": "invoke", "field": "f32.abs", "args": [{"type": "f32", "value": "2139156962"}]}, "expected": [{"type": "f32", "value": "2139156962"}]}, + {"type": "assert_return", "line": 637, "action": {"type": "invoke", "field": "f32.abs", "args": [{"type": "f32", "value": "4286640610"}]}, "expected": [{"type": "f32", "value": "2139156962"}]}, + {"type": "assert_return", "line": 638, "action": {"type": "invoke", "field": "f64.abs", "args": [{"type": "f64", "value": "9218868441285556843"}]}, "expected": [{"type": "f64", "value": "9218868441285556843"}]}, + {"type": "assert_return", "line": 639, "action": {"type": "invoke", "field": "f64.abs", "args": [{"type": "f64", "value": "18442240478140332651"}]}, "expected": [{"type": "f64", "value": "9218868441285556843"}]}, + {"type": "assert_return", "line": 641, "action": {"type": "invoke", "field": "f32.neg", "args": [{"type": "f32", "value": "2139156962"}]}, "expected": [{"type": "f32", "value": "4286640610"}]}, + {"type": "assert_return", "line": 642, "action": {"type": "invoke", "field": "f32.neg", "args": [{"type": "f32", "value": "4286640610"}]}, "expected": [{"type": "f32", "value": "2139156962"}]}, + {"type": "assert_return", "line": 643, "action": {"type": "invoke", "field": "f64.neg", "args": [{"type": "f64", "value": "9218868441285556843"}]}, "expected": [{"type": "f64", "value": "18442240478140332651"}]}, + {"type": "assert_return", "line": 644, "action": {"type": "invoke", "field": "f64.neg", "args": [{"type": "f64", "value": "18442240478140332651"}]}, "expected": [{"type": "f64", "value": "9218868441285556843"}]}, + {"type": "assert_return", "line": 646, "action": {"type": "invoke", "field": "f32.copysign", "args": [{"type": "f32", "value": "2139156962"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2139156962"}]}, + {"type": "assert_return", "line": 647, "action": {"type": "invoke", "field": "f32.copysign", "args": [{"type": "f32", "value": "2139156962"}, {"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "4286640610"}]}, + {"type": "assert_return", "line": 648, "action": {"type": "invoke", "field": "f32.copysign", "args": [{"type": "f32", "value": "4286640610"}, {"type": "f32", "value": "2143289344"}]}, "expected": [{"type": "f32", "value": "2139156962"}]}, + {"type": "assert_return", "line": 649, "action": {"type": "invoke", "field": "f32.copysign", "args": [{"type": "f32", "value": "4286640610"}, {"type": "f32", "value": "4290772992"}]}, "expected": [{"type": "f32", "value": "4286640610"}]}, + {"type": "assert_return", "line": 650, "action": {"type": "invoke", "field": "f64.copysign", "args": [{"type": "f64", "value": "9218868441285556843"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9218868441285556843"}]}, + {"type": "assert_return", "line": 651, "action": {"type": "invoke", "field": "f64.copysign", "args": [{"type": "f64", "value": "9218868441285556843"}, {"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "18442240478140332651"}]}, + {"type": "assert_return", "line": 652, "action": {"type": "invoke", "field": "f64.copysign", "args": [{"type": "f64", "value": "18442240478140332651"}, {"type": "f64", "value": "9221120237041090560"}]}, "expected": [{"type": "f64", "value": "9218868441285556843"}]}, + {"type": "assert_return", "line": 653, "action": {"type": "invoke", "field": "f64.copysign", "args": [{"type": "f64", "value": "18442240478140332651"}, {"type": "f64", "value": "18444492273895866368"}]}, "expected": [{"type": "f64", "value": "18442240478140332651"}]}, + {"type": "assert_return", "line": 656, "action": {"type": "invoke", "field": "f32.ceil", "args": [{"type": "f32", "value": "1065353215"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 657, "action": {"type": "invoke", "field": "f32.ceil", "args": [{"type": "f32", "value": "1065353217"}]}, "expected": [{"type": "f32", "value": "1073741824"}]}, + {"type": "assert_return", "line": 658, "action": {"type": "invoke", "field": "f64.ceil", "args": [{"type": "f64", "value": "4607182418800017407"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 659, "action": {"type": "invoke", "field": "f64.ceil", "args": [{"type": "f64", "value": "4607182418800017409"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, + {"type": "assert_return", "line": 662, "action": {"type": "invoke", "field": "f32.ceil", "args": [{"type": "f32", "value": "1258291199"}]}, "expected": [{"type": "f32", "value": "1258291200"}]}, + {"type": "assert_return", "line": 663, "action": {"type": "invoke", "field": "f32.ceil", "args": [{"type": "f32", "value": "3405774847"}]}, "expected": [{"type": "f32", "value": "3405774846"}]}, + {"type": "assert_return", "line": 664, "action": {"type": "invoke", "field": "f64.ceil", "args": [{"type": "f64", "value": "4841369599423283199"}]}, "expected": [{"type": "f64", "value": "4841369599423283200"}]}, + {"type": "assert_return", "line": 665, "action": {"type": "invoke", "field": "f64.ceil", "args": [{"type": "f64", "value": "14064741636278059007"}]}, "expected": [{"type": "f64", "value": "14064741636278059006"}]}, + {"type": "assert_return", "line": 669, "action": {"type": "invoke", "field": "f32.ceil", "args": [{"type": "f32", "value": "1266679807"}]}, "expected": [{"type": "f32", "value": "1266679807"}]}, + {"type": "assert_return", "line": 670, "action": {"type": "invoke", "field": "f32.ceil", "args": [{"type": "f32", "value": "3414163455"}]}, "expected": [{"type": "f32", "value": "3414163455"}]}, + {"type": "assert_return", "line": 671, "action": {"type": "invoke", "field": "f64.ceil", "args": [{"type": "f64", "value": "4845873199050653695"}]}, "expected": [{"type": "f64", "value": "4845873199050653695"}]}, + {"type": "assert_return", "line": 672, "action": {"type": "invoke", "field": "f64.ceil", "args": [{"type": "f64", "value": "14069245235905429503"}]}, "expected": [{"type": "f64", "value": "14069245235905429503"}]}, + {"type": "assert_return", "line": 675, "action": {"type": "invoke", "field": "f32.floor", "args": [{"type": "f32", "value": "3212836863"}]}, "expected": [{"type": "f32", "value": "3212836864"}]}, + {"type": "assert_return", "line": 676, "action": {"type": "invoke", "field": "f32.floor", "args": [{"type": "f32", "value": "3212836865"}]}, "expected": [{"type": "f32", "value": "3221225472"}]}, + {"type": "assert_return", "line": 677, "action": {"type": "invoke", "field": "f64.floor", "args": [{"type": "f64", "value": "13830554455654793215"}]}, "expected": [{"type": "f64", "value": "13830554455654793216"}]}, + {"type": "assert_return", "line": 678, "action": {"type": "invoke", "field": "f64.floor", "args": [{"type": "f64", "value": "13830554455654793217"}]}, "expected": [{"type": "f64", "value": "13835058055282163712"}]}, + {"type": "assert_return", "line": 681, "action": {"type": "invoke", "field": "f32.floor", "args": [{"type": "f32", "value": "3405774847"}]}, "expected": [{"type": "f32", "value": "3405774848"}]}, + {"type": "assert_return", "line": 682, "action": {"type": "invoke", "field": "f32.floor", "args": [{"type": "f32", "value": "1258291199"}]}, "expected": [{"type": "f32", "value": "1258291198"}]}, + {"type": "assert_return", "line": 683, "action": {"type": "invoke", "field": "f64.floor", "args": [{"type": "f64", "value": "14064741636278059007"}]}, "expected": [{"type": "f64", "value": "14064741636278059008"}]}, + {"type": "assert_return", "line": 684, "action": {"type": "invoke", "field": "f64.floor", "args": [{"type": "f64", "value": "4841369599423283199"}]}, "expected": [{"type": "f64", "value": "4841369599423283198"}]}, + {"type": "assert_return", "line": 688, "action": {"type": "invoke", "field": "f32.floor", "args": [{"type": "f32", "value": "1202524032"}]}, "expected": [{"type": "f32", "value": "1202524032"}]}, + {"type": "assert_return", "line": 689, "action": {"type": "invoke", "field": "f64.floor", "args": [{"type": "f64", "value": "4680825439885721600"}]}, "expected": [{"type": "f64", "value": "4680825439885721600"}]}, + {"type": "assert_return", "line": 692, "action": {"type": "invoke", "field": "f32.trunc", "args": [{"type": "f32", "value": "3405774847"}]}, "expected": [{"type": "f32", "value": "3405774846"}]}, + {"type": "assert_return", "line": 693, "action": {"type": "invoke", "field": "f32.trunc", "args": [{"type": "f32", "value": "1258291199"}]}, "expected": [{"type": "f32", "value": "1258291198"}]}, + {"type": "assert_return", "line": 694, "action": {"type": "invoke", "field": "f64.trunc", "args": [{"type": "f64", "value": "14064741636278059007"}]}, "expected": [{"type": "f64", "value": "14064741636278059006"}]}, + {"type": "assert_return", "line": 695, "action": {"type": "invoke", "field": "f64.trunc", "args": [{"type": "f64", "value": "4841369599423283199"}]}, "expected": [{"type": "f64", "value": "4841369599423283198"}]}, + {"type": "assert_return", "line": 700, "action": {"type": "invoke", "field": "f32.nearest", "args": [{"type": "f32", "value": "1258291201"}]}, "expected": [{"type": "f32", "value": "1258291201"}]}, + {"type": "assert_return", "line": 701, "action": {"type": "invoke", "field": "f32.nearest", "args": [{"type": "f32", "value": "1258291202"}]}, "expected": [{"type": "f32", "value": "1258291202"}]}, + {"type": "assert_return", "line": 702, "action": {"type": "invoke", "field": "f32.nearest", "args": [{"type": "f32", "value": "1056964607"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 703, "action": {"type": "invoke", "field": "f32.nearest", "args": [{"type": "f32", "value": "1468006399"}]}, "expected": [{"type": "f32", "value": "1468006399"}]}, + {"type": "assert_return", "line": 704, "action": {"type": "invoke", "field": "f64.nearest", "args": [{"type": "f64", "value": "4841369599423283201"}]}, "expected": [{"type": "f64", "value": "4841369599423283201"}]}, + {"type": "assert_return", "line": 705, "action": {"type": "invoke", "field": "f64.nearest", "args": [{"type": "f64", "value": "4841369599423283202"}]}, "expected": [{"type": "f64", "value": "4841369599423283202"}]}, + {"type": "assert_return", "line": 706, "action": {"type": "invoke", "field": "f64.nearest", "args": [{"type": "f64", "value": "4602678819172646911"}]}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 707, "action": {"type": "invoke", "field": "f64.nearest", "args": [{"type": "f64", "value": "5084563979301289983"}]}, "expected": [{"type": "f64", "value": "5084563979301289983"}]}, + {"type": "assert_return", "line": 711, "action": {"type": "invoke", "field": "f32.nearest", "args": [{"type": "f32", "value": "1083179008"}]}, "expected": [{"type": "f32", "value": "1082130432"}]}, + {"type": "assert_return", "line": 712, "action": {"type": "invoke", "field": "f32.nearest", "args": [{"type": "f32", "value": "3230662656"}]}, "expected": [{"type": "f32", "value": "3229614080"}]}, + {"type": "assert_return", "line": 713, "action": {"type": "invoke", "field": "f32.nearest", "args": [{"type": "f32", "value": "3227516928"}]}, "expected": [{"type": "f32", "value": "3229614080"}]}, + {"type": "assert_return", "line": 714, "action": {"type": "invoke", "field": "f64.nearest", "args": [{"type": "f64", "value": "4616752568008179712"}]}, "expected": [{"type": "f64", "value": "4616189618054758400"}]}, + {"type": "assert_return", "line": 715, "action": {"type": "invoke", "field": "f64.nearest", "args": [{"type": "f64", "value": "13840124604862955520"}]}, "expected": [{"type": "f64", "value": "13839561654909534208"}]}, + {"type": "assert_return", "line": 716, "action": {"type": "invoke", "field": "f64.nearest", "args": [{"type": "f64", "value": "13838435755002691584"}]}, "expected": [{"type": "f64", "value": "13839561654909534208"}]}, + {"type": "assert_return", "line": 719, "action": {"type": "invoke", "field": "f32.nearest", "args": [{"type": "f32", "value": "3405774847"}]}, "expected": [{"type": "f32", "value": "3405774848"}]}, + {"type": "assert_return", "line": 720, "action": {"type": "invoke", "field": "f32.nearest", "args": [{"type": "f32", "value": "1258291199"}]}, "expected": [{"type": "f32", "value": "1258291200"}]}, + {"type": "assert_return", "line": 721, "action": {"type": "invoke", "field": "f64.nearest", "args": [{"type": "f64", "value": "14064741636278059007"}]}, "expected": [{"type": "f64", "value": "14064741636278059008"}]}, + {"type": "assert_return", "line": 722, "action": {"type": "invoke", "field": "f64.nearest", "args": [{"type": "f64", "value": "4841369599423283199"}]}, "expected": [{"type": "f64", "value": "4841369599423283200"}]}]} diff --git a/tests/gen/func.0.wasm b/tests/gen/func.0.wasm index 61360eec..a325ec77 100644 Binary files a/tests/gen/func.0.wasm and b/tests/gen/func.0.wasm differ diff --git a/tests/gen/func.10.wat b/tests/gen/func.10.wat index 736825ff..cf722c86 100644 --- a/tests/gen/func.10.wat +++ b/tests/gen/func.10.wat @@ -1 +1 @@ -(type $sig (func))(func (type $sig) (result i32) (i32.const 0)) \ No newline at end of file +(type $sig (func (param i32) (result i32)))(func (result i32) (param i32) (type $sig) (i32.const 0)) \ No newline at end of file diff --git a/tests/gen/func.11.wat b/tests/gen/func.11.wat index c01e2737..1b64863e 100644 --- a/tests/gen/func.11.wat +++ b/tests/gen/func.11.wat @@ -1 +1 @@ -(type $sig (func (param i32) (result i32)))(func (type $sig) (result i32) (i32.const 0)) \ No newline at end of file +(func (result i32) (param i32) (i32.const 0)) \ No newline at end of file diff --git a/tests/gen/func.12.wat b/tests/gen/func.12.wat index 51aa782e..736825ff 100644 --- a/tests/gen/func.12.wat +++ b/tests/gen/func.12.wat @@ -1 +1 @@ -(type $sig (func (param i32) (result i32)))(func (type $sig) (param i32) (i32.const 0)) \ No newline at end of file +(type $sig (func))(func (type $sig) (result i32) (i32.const 0)) \ No newline at end of file diff --git a/tests/gen/func.13.wat b/tests/gen/func.13.wat index 6eb6cf27..c01e2737 100644 --- a/tests/gen/func.13.wat +++ b/tests/gen/func.13.wat @@ -1 +1 @@ -(type $sig (func (param i32 i32) (result i32)))(func (type $sig) (param i32) (result i32) (unreachable)) \ No newline at end of file +(type $sig (func (param i32) (result i32)))(func (type $sig) (result i32) (i32.const 0)) \ No newline at end of file diff --git a/tests/gen/func.14.wat b/tests/gen/func.14.wat new file mode 100644 index 00000000..51aa782e --- /dev/null +++ b/tests/gen/func.14.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (type $sig) (param i32) (i32.const 0)) \ No newline at end of file diff --git a/tests/gen/func.15.wat b/tests/gen/func.15.wat new file mode 100644 index 00000000..6eb6cf27 --- /dev/null +++ b/tests/gen/func.15.wat @@ -0,0 +1 @@ +(type $sig (func (param i32 i32) (result i32)))(func (type $sig) (param i32) (result i32) (unreachable)) \ No newline at end of file diff --git a/tests/gen/func.16.wasm b/tests/gen/func.16.wasm index e2a0c636..38b3ca8f 100644 Binary files a/tests/gen/func.16.wasm and b/tests/gen/func.16.wasm differ diff --git a/tests/gen/func.17.wasm b/tests/gen/func.17.wasm index 7ab9f08d..3620ba11 100644 Binary files a/tests/gen/func.17.wasm and b/tests/gen/func.17.wasm differ diff --git a/tests/gen/func.18.wasm b/tests/gen/func.18.wasm index d07afb6d..e2a0c636 100644 Binary files a/tests/gen/func.18.wasm and b/tests/gen/func.18.wasm differ diff --git a/tests/gen/func.19.wasm b/tests/gen/func.19.wasm index 992752b0..7ab9f08d 100644 Binary files a/tests/gen/func.19.wasm and b/tests/gen/func.19.wasm differ diff --git a/tests/gen/func.20.wasm b/tests/gen/func.20.wasm index 9a93fd9d..d07afb6d 100644 Binary files a/tests/gen/func.20.wasm and b/tests/gen/func.20.wasm differ diff --git a/tests/gen/func.21.wasm b/tests/gen/func.21.wasm index 9a93fd9d..992752b0 100644 Binary files a/tests/gen/func.21.wasm and b/tests/gen/func.21.wasm differ diff --git a/tests/gen/func.26.wasm b/tests/gen/func.26.wasm index 09d13fc9..80e18bb3 100644 Binary files a/tests/gen/func.26.wasm and b/tests/gen/func.26.wasm differ diff --git a/tests/gen/func.27.wasm b/tests/gen/func.27.wasm index ab3441a7..09d13fc9 100644 Binary files a/tests/gen/func.27.wasm and b/tests/gen/func.27.wasm differ diff --git a/tests/gen/func.28.wasm b/tests/gen/func.28.wasm index a3d334e2..646739a7 100644 Binary files a/tests/gen/func.28.wasm and b/tests/gen/func.28.wasm differ diff --git a/tests/gen/func.29.wasm b/tests/gen/func.29.wasm index 6abd763d..ab3441a7 100644 Binary files a/tests/gen/func.29.wasm and b/tests/gen/func.29.wasm differ diff --git a/tests/gen/func.3.wat b/tests/gen/func.3.wat new file mode 100644 index 00000000..d726cb45 --- /dev/null +++ b/tests/gen/func.3.wat @@ -0,0 +1 @@ +(func $f (result f64) (f64.const 0))(func $g (param i32))(func $h (result f64) (f64.const 1))(type $t (func (param i32)))(func (type 2) (param i32)) \ No newline at end of file diff --git a/tests/gen/func.30.wasm b/tests/gen/func.30.wasm index 98c9e897..5a698e1b 100644 Binary files a/tests/gen/func.30.wasm and b/tests/gen/func.30.wasm differ diff --git a/tests/gen/func.31.wasm b/tests/gen/func.31.wasm index f6857534..a3d334e2 100644 Binary files a/tests/gen/func.31.wasm and b/tests/gen/func.31.wasm differ diff --git a/tests/gen/func.32.wasm b/tests/gen/func.32.wasm index 82b74070..7682938c 100644 Binary files a/tests/gen/func.32.wasm and b/tests/gen/func.32.wasm differ diff --git a/tests/gen/func.33.wasm b/tests/gen/func.33.wasm index f0f716dd..e2a518df 100644 Binary files a/tests/gen/func.33.wasm and b/tests/gen/func.33.wasm differ diff --git a/tests/gen/func.34.wasm b/tests/gen/func.34.wasm index c81f53e0..6abd763d 100644 Binary files a/tests/gen/func.34.wasm and b/tests/gen/func.34.wasm differ diff --git a/tests/gen/func.35.wasm b/tests/gen/func.35.wasm index 74fd3e5d..f26c4036 100644 Binary files a/tests/gen/func.35.wasm and b/tests/gen/func.35.wasm differ diff --git a/tests/gen/func.36.wasm b/tests/gen/func.36.wasm index 5d365aab..98c9e897 100644 Binary files a/tests/gen/func.36.wasm and b/tests/gen/func.36.wasm differ diff --git a/tests/gen/func.37.wasm b/tests/gen/func.37.wasm index 53113be7..34d1cc34 100644 Binary files a/tests/gen/func.37.wasm and b/tests/gen/func.37.wasm differ diff --git a/tests/gen/func.38.wasm b/tests/gen/func.38.wasm index 45f4c918..f6857534 100644 Binary files a/tests/gen/func.38.wasm and b/tests/gen/func.38.wasm differ diff --git a/tests/gen/func.39.wasm b/tests/gen/func.39.wasm index 50a91fac..8e905f22 100644 Binary files a/tests/gen/func.39.wasm and b/tests/gen/func.39.wasm differ diff --git a/tests/gen/func.4.wasm b/tests/gen/func.4.wasm new file mode 100644 index 00000000..a94b23e9 Binary files /dev/null and b/tests/gen/func.4.wasm differ diff --git a/tests/gen/func.4.wat b/tests/gen/func.4.wat deleted file mode 100644 index 6f0f4ab7..00000000 --- a/tests/gen/func.4.wat +++ /dev/null @@ -1 +0,0 @@ -(type $sig (func (param i32) (result i32)))(func (type $sig) (result i32) (param i32) (i32.const 0)) \ No newline at end of file diff --git a/tests/gen/func.40.wasm b/tests/gen/func.40.wasm index 6fbeefd9..82b74070 100644 Binary files a/tests/gen/func.40.wasm and b/tests/gen/func.40.wasm differ diff --git a/tests/gen/func.41.wasm b/tests/gen/func.41.wasm index 631be69c..d87d814a 100644 Binary files a/tests/gen/func.41.wasm and b/tests/gen/func.41.wasm differ diff --git a/tests/gen/func.42.wasm b/tests/gen/func.42.wasm index c11a44e3..bf168f86 100644 Binary files a/tests/gen/func.42.wasm and b/tests/gen/func.42.wasm differ diff --git a/tests/gen/func.43.wasm b/tests/gen/func.43.wasm index fb88f96e..f0f716dd 100644 Binary files a/tests/gen/func.43.wasm and b/tests/gen/func.43.wasm differ diff --git a/tests/gen/func.44.wasm b/tests/gen/func.44.wasm new file mode 100644 index 00000000..2042bd91 Binary files /dev/null and b/tests/gen/func.44.wasm differ diff --git a/tests/gen/if.1.wasm b/tests/gen/func.45.wasm similarity index 66% rename from tests/gen/if.1.wasm rename to tests/gen/func.45.wasm index cc5586a6..c81f53e0 100644 Binary files a/tests/gen/if.1.wasm and b/tests/gen/func.45.wasm differ diff --git a/tests/gen/func.46.wasm b/tests/gen/func.46.wasm new file mode 100644 index 00000000..dcd43c26 Binary files /dev/null and b/tests/gen/func.46.wasm differ diff --git a/tests/gen/func.47.wasm b/tests/gen/func.47.wasm new file mode 100644 index 00000000..74fd3e5d Binary files /dev/null and b/tests/gen/func.47.wasm differ diff --git a/tests/gen/func.48.wasm b/tests/gen/func.48.wasm new file mode 100644 index 00000000..263fd003 Binary files /dev/null and b/tests/gen/func.48.wasm differ diff --git a/tests/gen/block.1.wasm b/tests/gen/func.49.wasm similarity index 71% rename from tests/gen/block.1.wasm rename to tests/gen/func.49.wasm index a6c191f9..5d365aab 100644 Binary files a/tests/gen/block.1.wasm and b/tests/gen/func.49.wasm differ diff --git a/tests/gen/func.3.wasm b/tests/gen/func.5.wasm similarity index 100% rename from tests/gen/func.3.wasm rename to tests/gen/func.5.wasm diff --git a/tests/gen/func.5.wat b/tests/gen/func.5.wat deleted file mode 100644 index 2b934fe8..00000000 --- a/tests/gen/func.5.wat +++ /dev/null @@ -1 +0,0 @@ -(type $sig (func (param i32) (result i32)))(func (param i32) (type $sig) (result i32) (i32.const 0)) \ No newline at end of file diff --git a/tests/gen/func.50.wasm b/tests/gen/func.50.wasm new file mode 100644 index 00000000..9d11adcb Binary files /dev/null and b/tests/gen/func.50.wasm differ diff --git a/tests/gen/func.51.wasm b/tests/gen/func.51.wasm new file mode 100644 index 00000000..53113be7 Binary files /dev/null and b/tests/gen/func.51.wasm differ diff --git a/tests/gen/func.52.wasm b/tests/gen/func.52.wasm new file mode 100644 index 00000000..cf191a04 Binary files /dev/null and b/tests/gen/func.52.wasm differ diff --git a/tests/gen/block.9.wasm b/tests/gen/func.53.wasm similarity index 68% rename from tests/gen/block.9.wasm rename to tests/gen/func.53.wasm index 023367e9..45f4c918 100644 Binary files a/tests/gen/block.9.wasm and b/tests/gen/func.53.wasm differ diff --git a/tests/gen/func.54.wasm b/tests/gen/func.54.wasm new file mode 100644 index 00000000..71047e8c Binary files /dev/null and b/tests/gen/func.54.wasm differ diff --git a/tests/gen/func.55.wasm b/tests/gen/func.55.wasm new file mode 100644 index 00000000..50a91fac Binary files /dev/null and b/tests/gen/func.55.wasm differ diff --git a/tests/gen/func.56.wasm b/tests/gen/func.56.wasm new file mode 100644 index 00000000..fcf1a4ac Binary files /dev/null and b/tests/gen/func.56.wasm differ diff --git a/tests/gen/func.57.wasm b/tests/gen/func.57.wasm new file mode 100644 index 00000000..6fbeefd9 Binary files /dev/null and b/tests/gen/func.57.wasm differ diff --git a/tests/gen/func.58.wasm b/tests/gen/func.58.wasm new file mode 100644 index 00000000..631be69c Binary files /dev/null and b/tests/gen/func.58.wasm differ diff --git a/tests/gen/func.59.wasm b/tests/gen/func.59.wasm new file mode 100644 index 00000000..82dc26a2 Binary files /dev/null and b/tests/gen/func.59.wasm differ diff --git a/tests/gen/func.6.wat b/tests/gen/func.6.wat index 614d95f8..6f0f4ab7 100644 --- a/tests/gen/func.6.wat +++ b/tests/gen/func.6.wat @@ -1 +1 @@ -(type $sig (func (param i32) (result i32)))(func (param i32) (result i32) (type $sig) (i32.const 0)) \ No newline at end of file +(type $sig (func (param i32) (result i32)))(func (type $sig) (result i32) (param i32) (i32.const 0)) \ No newline at end of file diff --git a/tests/gen/func.60.wasm b/tests/gen/func.60.wasm new file mode 100644 index 00000000..c11a44e3 Binary files /dev/null and b/tests/gen/func.60.wasm differ diff --git a/tests/gen/func.61.wasm b/tests/gen/func.61.wasm new file mode 100644 index 00000000..ee33e1a0 Binary files /dev/null and b/tests/gen/func.61.wasm differ diff --git a/tests/gen/func.62.wasm b/tests/gen/func.62.wasm new file mode 100644 index 00000000..fb88f96e Binary files /dev/null and b/tests/gen/func.62.wasm differ diff --git a/tests/gen/func.63.wasm b/tests/gen/func.63.wasm new file mode 100644 index 00000000..60a003f7 Binary files /dev/null and b/tests/gen/func.63.wasm differ diff --git a/tests/gen/func.44.wat b/tests/gen/func.64.wat similarity index 100% rename from tests/gen/func.44.wat rename to tests/gen/func.64.wat diff --git a/tests/gen/func.45.wat b/tests/gen/func.65.wat similarity index 100% rename from tests/gen/func.45.wat rename to tests/gen/func.65.wat diff --git a/tests/gen/func.46.wat b/tests/gen/func.66.wat similarity index 100% rename from tests/gen/func.46.wat rename to tests/gen/func.66.wat diff --git a/tests/gen/func.47.wat b/tests/gen/func.67.wat similarity index 100% rename from tests/gen/func.47.wat rename to tests/gen/func.67.wat diff --git a/tests/gen/func.48.wat b/tests/gen/func.68.wat similarity index 100% rename from tests/gen/func.48.wat rename to tests/gen/func.68.wat diff --git a/tests/gen/func.49.wat b/tests/gen/func.69.wat similarity index 100% rename from tests/gen/func.49.wat rename to tests/gen/func.69.wat diff --git a/tests/gen/func.7.wat b/tests/gen/func.7.wat index dd76752e..2b934fe8 100644 --- a/tests/gen/func.7.wat +++ b/tests/gen/func.7.wat @@ -1 +1 @@ -(type $sig (func (param i32) (result i32)))(func (result i32) (type $sig) (param i32) (i32.const 0)) \ No newline at end of file +(type $sig (func (param i32) (result i32)))(func (param i32) (type $sig) (result i32) (i32.const 0)) \ No newline at end of file diff --git a/tests/gen/func.70.wat b/tests/gen/func.70.wat new file mode 100644 index 00000000..43c98e30 --- /dev/null +++ b/tests/gen/func.70.wat @@ -0,0 +1 @@ +(func $foo)(func $foo) \ No newline at end of file diff --git a/tests/gen/func.71.wat b/tests/gen/func.71.wat new file mode 100644 index 00000000..abf0a9ee --- /dev/null +++ b/tests/gen/func.71.wat @@ -0,0 +1 @@ +(import "" "" (func $foo))(func $foo) \ No newline at end of file diff --git a/tests/gen/func.72.wat b/tests/gen/func.72.wat new file mode 100644 index 00000000..4f48d881 --- /dev/null +++ b/tests/gen/func.72.wat @@ -0,0 +1 @@ +(import "" "" (func $foo))(import "" "" (func $foo)) \ No newline at end of file diff --git a/tests/gen/func.73.wat b/tests/gen/func.73.wat new file mode 100644 index 00000000..5bb60e48 --- /dev/null +++ b/tests/gen/func.73.wat @@ -0,0 +1 @@ +(func (param $foo i32) (param $foo i32)) \ No newline at end of file diff --git a/tests/gen/func.74.wat b/tests/gen/func.74.wat new file mode 100644 index 00000000..5fcb2de7 --- /dev/null +++ b/tests/gen/func.74.wat @@ -0,0 +1 @@ +(func (param $foo i32) (local $foo i32)) \ No newline at end of file diff --git a/tests/gen/func.75.wat b/tests/gen/func.75.wat new file mode 100644 index 00000000..82ff71d0 --- /dev/null +++ b/tests/gen/func.75.wat @@ -0,0 +1 @@ +(func (local $foo i32) (local $foo i32)) \ No newline at end of file diff --git a/tests/gen/func.8.wat b/tests/gen/func.8.wat index cf722c86..614d95f8 100644 --- a/tests/gen/func.8.wat +++ b/tests/gen/func.8.wat @@ -1 +1 @@ -(type $sig (func (param i32) (result i32)))(func (result i32) (param i32) (type $sig) (i32.const 0)) \ No newline at end of file +(type $sig (func (param i32) (result i32)))(func (param i32) (result i32) (type $sig) (i32.const 0)) \ No newline at end of file diff --git a/tests/gen/func.9.wat b/tests/gen/func.9.wat index 1b64863e..dd76752e 100644 --- a/tests/gen/func.9.wat +++ b/tests/gen/func.9.wat @@ -1 +1 @@ -(func (result i32) (param i32) (i32.const 0)) \ No newline at end of file +(type $sig (func (param i32) (result i32)))(func (result i32) (type $sig) (param i32) (i32.const 0)) \ No newline at end of file diff --git a/tests/gen/func.json b/tests/gen/func.json index 09b44a86..9ceff5cf 100644 --- a/tests/gen/func.json +++ b/tests/gen/func.json @@ -1,125 +1,154 @@ {"source_filename": "func.wast", "commands": [ {"type": "module", "line": 3, "filename": "func.0.wasm"}, - {"type": "assert_return", "line": 171, "action": {"type": "invoke", "field": "type-use-1", "args": []}, "expected": []}, - {"type": "assert_return", "line": 172, "action": {"type": "invoke", "field": "type-use-2", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 173, "action": {"type": "invoke", "field": "type-use-3", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, - {"type": "assert_return", "line": 175, "action": {"type": "invoke", "field": "type-use-4", "args": [{"type": "i32", "value": "1"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 178, "action": {"type": "invoke", "field": "type-use-5", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 179, "action": {"type": "invoke", "field": "type-use-6", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, - {"type": "assert_return", "line": 181, "action": {"type": "invoke", "field": "type-use-7", "args": [{"type": "i32", "value": "1"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 185, "action": {"type": "invoke", "field": "local-first-i32", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 186, "action": {"type": "invoke", "field": "local-first-i64", "args": []}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 187, "action": {"type": "invoke", "field": "local-first-f32", "args": []}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 188, "action": {"type": "invoke", "field": "local-first-f64", "args": []}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 189, "action": {"type": "invoke", "field": "local-second-i32", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 190, "action": {"type": "invoke", "field": "local-second-i64", "args": []}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 191, "action": {"type": "invoke", "field": "local-second-f32", "args": []}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 192, "action": {"type": "invoke", "field": "local-second-f64", "args": []}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 193, "action": {"type": "invoke", "field": "local-mixed", "args": []}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "assert_return", "line": 196, "action": {"type": "invoke", "field": "param-first-i32", "args": [{"type": "i32", "value": "2"}, {"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 199, "action": {"type": "invoke", "field": "param-first-i64", "args": [{"type": "i64", "value": "2"}, {"type": "i64", "value": "3"}]}, "expected": [{"type": "i64", "value": "2"}]}, - {"type": "assert_return", "line": 202, "action": {"type": "invoke", "field": "param-first-f32", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "f32", "value": "1073741824"}]}, - {"type": "assert_return", "line": 205, "action": {"type": "invoke", "field": "param-first-f64", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, - {"type": "assert_return", "line": 208, "action": {"type": "invoke", "field": "param-second-i32", "args": [{"type": "i32", "value": "2"}, {"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 211, "action": {"type": "invoke", "field": "param-second-i64", "args": [{"type": "i64", "value": "2"}, {"type": "i64", "value": "3"}]}, "expected": [{"type": "i64", "value": "3"}]}, - {"type": "assert_return", "line": 214, "action": {"type": "invoke", "field": "param-second-f32", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "f32", "value": "1077936128"}]}, - {"type": "assert_return", "line": 217, "action": {"type": "invoke", "field": "param-second-f64", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "f64", "value": "4613937818241073152"}]}, - {"type": "assert_return", "line": 221, "action": {"type": "invoke", "field": "param-mixed", "args": [{"type": "f32", "value": "1065353216"}, {"type": "i32", "value": "2"}, {"type": "i64", "value": "3"}, {"type": "i32", "value": "4"}, {"type": "f64", "value": "4617878467915022336"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "f64", "value": "4617878467915022336"}]}, - {"type": "assert_return", "line": 228, "action": {"type": "invoke", "field": "empty", "args": []}, "expected": []}, - {"type": "assert_return", "line": 229, "action": {"type": "invoke", "field": "value-void", "args": []}, "expected": []}, - {"type": "assert_return", "line": 230, "action": {"type": "invoke", "field": "value-i32", "args": []}, "expected": [{"type": "i32", "value": "77"}]}, - {"type": "assert_return", "line": 231, "action": {"type": "invoke", "field": "value-i64", "args": []}, "expected": [{"type": "i64", "value": "7777"}]}, - {"type": "assert_return", "line": 232, "action": {"type": "invoke", "field": "value-f32", "args": []}, "expected": [{"type": "f32", "value": "1117480550"}]}, - {"type": "assert_return", "line": 233, "action": {"type": "invoke", "field": "value-f64", "args": []}, "expected": [{"type": "f64", "value": "4635172994171566817"}]}, - {"type": "assert_return", "line": 234, "action": {"type": "invoke", "field": "value-block-void", "args": []}, "expected": []}, - {"type": "assert_return", "line": 235, "action": {"type": "invoke", "field": "value-block-i32", "args": []}, "expected": [{"type": "i32", "value": "77"}]}, - {"type": "assert_return", "line": 237, "action": {"type": "invoke", "field": "return-empty", "args": []}, "expected": []}, - {"type": "assert_return", "line": 238, "action": {"type": "invoke", "field": "return-i32", "args": []}, "expected": [{"type": "i32", "value": "78"}]}, - {"type": "assert_return", "line": 239, "action": {"type": "invoke", "field": "return-i64", "args": []}, "expected": [{"type": "i64", "value": "7878"}]}, - {"type": "assert_return", "line": 240, "action": {"type": "invoke", "field": "return-f32", "args": []}, "expected": [{"type": "f32", "value": "1117611622"}]}, - {"type": "assert_return", "line": 241, "action": {"type": "invoke", "field": "return-f64", "args": []}, "expected": [{"type": "f64", "value": "4635244066603186258"}]}, - {"type": "assert_return", "line": 242, "action": {"type": "invoke", "field": "return-block-i32", "args": []}, "expected": [{"type": "i32", "value": "77"}]}, - {"type": "assert_return", "line": 244, "action": {"type": "invoke", "field": "break-empty", "args": []}, "expected": []}, - {"type": "assert_return", "line": 245, "action": {"type": "invoke", "field": "break-i32", "args": []}, "expected": [{"type": "i32", "value": "79"}]}, - {"type": "assert_return", "line": 246, "action": {"type": "invoke", "field": "break-i64", "args": []}, "expected": [{"type": "i64", "value": "7979"}]}, - {"type": "assert_return", "line": 247, "action": {"type": "invoke", "field": "break-f32", "args": []}, "expected": [{"type": "f32", "value": "1117768909"}]}, - {"type": "assert_return", "line": 248, "action": {"type": "invoke", "field": "break-f64", "args": []}, "expected": [{"type": "f64", "value": "4635315139034805699"}]}, - {"type": "assert_return", "line": 249, "action": {"type": "invoke", "field": "break-block-i32", "args": []}, "expected": [{"type": "i32", "value": "77"}]}, - {"type": "assert_return", "line": 251, "action": {"type": "invoke", "field": "break-br_if-empty", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, - {"type": "assert_return", "line": 252, "action": {"type": "invoke", "field": "break-br_if-empty", "args": [{"type": "i32", "value": "2"}]}, "expected": []}, - {"type": "assert_return", "line": 253, "action": {"type": "invoke", "field": "break-br_if-num", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "51"}]}, - {"type": "assert_return", "line": 254, "action": {"type": "invoke", "field": "break-br_if-num", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "50"}]}, - {"type": "assert_return", "line": 256, "action": {"type": "invoke", "field": "break-br_table-empty", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, - {"type": "assert_return", "line": 257, "action": {"type": "invoke", "field": "break-br_table-empty", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, - {"type": "assert_return", "line": 258, "action": {"type": "invoke", "field": "break-br_table-empty", "args": [{"type": "i32", "value": "5"}]}, "expected": []}, - {"type": "assert_return", "line": 259, "action": {"type": "invoke", "field": "break-br_table-empty", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": []}, - {"type": "assert_return", "line": 260, "action": {"type": "invoke", "field": "break-br_table-num", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "50"}]}, - {"type": "assert_return", "line": 261, "action": {"type": "invoke", "field": "break-br_table-num", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "50"}]}, - {"type": "assert_return", "line": 262, "action": {"type": "invoke", "field": "break-br_table-num", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "50"}]}, - {"type": "assert_return", "line": 263, "action": {"type": "invoke", "field": "break-br_table-num", "args": [{"type": "i32", "value": "4294967196"}]}, "expected": [{"type": "i32", "value": "50"}]}, - {"type": "assert_return", "line": 264, "action": {"type": "invoke", "field": "break-br_table-nested-empty", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, - {"type": "assert_return", "line": 265, "action": {"type": "invoke", "field": "break-br_table-nested-empty", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, - {"type": "assert_return", "line": 266, "action": {"type": "invoke", "field": "break-br_table-nested-empty", "args": [{"type": "i32", "value": "3"}]}, "expected": []}, - {"type": "assert_return", "line": 267, "action": {"type": "invoke", "field": "break-br_table-nested-empty", "args": [{"type": "i32", "value": "4294967294"}]}, "expected": []}, - {"type": "assert_return", "line": 269, "action": {"type": "invoke", "field": "break-br_table-nested-num", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "52"}]}, - {"type": "assert_return", "line": 272, "action": {"type": "invoke", "field": "break-br_table-nested-num", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "50"}]}, - {"type": "assert_return", "line": 275, "action": {"type": "invoke", "field": "break-br_table-nested-num", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "52"}]}, - {"type": "assert_return", "line": 278, "action": {"type": "invoke", "field": "break-br_table-nested-num", "args": [{"type": "i32", "value": "4294967293"}]}, "expected": [{"type": "i32", "value": "52"}]}, - {"type": "assert_return", "line": 281, "action": {"type": "invoke", "field": "init-local-i32", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 282, "action": {"type": "invoke", "field": "init-local-i64", "args": []}, "expected": [{"type": "i64", "value": "0"}]}, - {"type": "assert_return", "line": 283, "action": {"type": "invoke", "field": "init-local-f32", "args": []}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 284, "action": {"type": "invoke", "field": "init-local-f64", "args": []}, "expected": [{"type": "f64", "value": "0"}]}, - {"type": "module", "line": 289, "filename": "func.1.wasm"}, - {"type": "assert_invalid", "line": 303, "filename": "func.2.wasm", "text": "unknown type", "module_type": "binary"}, - {"type": "module", "line": 315, "filename": "func.3.wasm"}, - {"type": "assert_return", "line": 378, "action": {"type": "invoke", "field": "signature-explicit-reused", "args": []}, "expected": []}, - {"type": "assert_return", "line": 379, "action": {"type": "invoke", "field": "signature-implicit-reused", "args": []}, "expected": []}, - {"type": "assert_return", "line": 380, "action": {"type": "invoke", "field": "signature-explicit-duplicate", "args": []}, "expected": []}, - {"type": "assert_return", "line": 381, "action": {"type": "invoke", "field": "signature-implicit-duplicate", "args": []}, "expected": []}, - {"type": "assert_malformed", "line": 387, "filename": "func.4.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 394, "filename": "func.5.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 401, "filename": "func.6.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 408, "filename": "func.7.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 415, "filename": "func.8.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 422, "filename": "func.9.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 429, "filename": "func.10.wat", "text": "inline function type", "module_type": "text"}, - {"type": "assert_malformed", "line": 436, "filename": "func.11.wat", "text": "inline function type", "module_type": "text"}, - {"type": "assert_malformed", "line": 443, "filename": "func.12.wat", "text": "inline function type", "module_type": "text"}, - {"type": "assert_malformed", "line": 450, "filename": "func.13.wat", "text": "inline function type", "module_type": "text"}, - {"type": "assert_invalid", "line": 461, "filename": "func.14.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 465, "filename": "func.15.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 469, "filename": "func.16.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 477, "filename": "func.17.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 481, "filename": "func.18.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 485, "filename": "func.19.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 493, "filename": "func.20.wasm", "text": "invalid result arity", "module_type": "binary"}, - {"type": "assert_invalid", "line": 497, "filename": "func.21.wasm", "text": "invalid result arity", "module_type": "binary"}, - {"type": "assert_invalid", "line": 506, "filename": "func.22.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 510, "filename": "func.23.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 514, "filename": "func.24.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 518, "filename": "func.25.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 523, "filename": "func.26.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 529, "filename": "func.27.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 535, "filename": "func.28.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 542, "filename": "func.29.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 548, "filename": "func.30.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 554, "filename": "func.31.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 561, "filename": "func.32.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 567, "filename": "func.33.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 573, "filename": "func.34.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 579, "filename": "func.35.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 586, "filename": "func.36.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 592, "filename": "func.37.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 598, "filename": "func.38.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 604, "filename": "func.39.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 610, "filename": "func.40.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 617, "filename": "func.41.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 623, "filename": "func.42.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 629, "filename": "func.43.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_malformed", "line": 639, "filename": "func.44.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 643, "filename": "func.45.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 647, "filename": "func.46.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 651, "filename": "func.47.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 655, "filename": "func.48.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_malformed", "line": 659, "filename": "func.49.wat", "text": "unexpected token", "module_type": "text"}]} + {"type": "assert_return", "line": 253, "action": {"type": "invoke", "field": "type-use-1", "args": []}, "expected": []}, + {"type": "assert_return", "line": 254, "action": {"type": "invoke", "field": "type-use-2", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 255, "action": {"type": "invoke", "field": "type-use-3", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, + {"type": "assert_return", "line": 257, "action": {"type": "invoke", "field": "type-use-4", "args": [{"type": "i32", "value": "1"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 260, "action": {"type": "invoke", "field": "type-use-5", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 261, "action": {"type": "invoke", "field": "type-use-6", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, + {"type": "assert_return", "line": 263, "action": {"type": "invoke", "field": "type-use-7", "args": [{"type": "i32", "value": "1"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 267, "action": {"type": "invoke", "field": "local-first-i32", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 268, "action": {"type": "invoke", "field": "local-first-i64", "args": []}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 269, "action": {"type": "invoke", "field": "local-first-f32", "args": []}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 270, "action": {"type": "invoke", "field": "local-first-f64", "args": []}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 271, "action": {"type": "invoke", "field": "local-second-i32", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 272, "action": {"type": "invoke", "field": "local-second-i64", "args": []}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 273, "action": {"type": "invoke", "field": "local-second-f32", "args": []}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 274, "action": {"type": "invoke", "field": "local-second-f64", "args": []}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 275, "action": {"type": "invoke", "field": "local-mixed", "args": []}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "assert_return", "line": 278, "action": {"type": "invoke", "field": "param-first-i32", "args": [{"type": "i32", "value": "2"}, {"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 281, "action": {"type": "invoke", "field": "param-first-i64", "args": [{"type": "i64", "value": "2"}, {"type": "i64", "value": "3"}]}, "expected": [{"type": "i64", "value": "2"}]}, + {"type": "assert_return", "line": 284, "action": {"type": "invoke", "field": "param-first-f32", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "f32", "value": "1073741824"}]}, + {"type": "assert_return", "line": 287, "action": {"type": "invoke", "field": "param-first-f64", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, + {"type": "assert_return", "line": 290, "action": {"type": "invoke", "field": "param-second-i32", "args": [{"type": "i32", "value": "2"}, {"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 293, "action": {"type": "invoke", "field": "param-second-i64", "args": [{"type": "i64", "value": "2"}, {"type": "i64", "value": "3"}]}, "expected": [{"type": "i64", "value": "3"}]}, + {"type": "assert_return", "line": 296, "action": {"type": "invoke", "field": "param-second-f32", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "f32", "value": "1077936128"}]}, + {"type": "assert_return", "line": 299, "action": {"type": "invoke", "field": "param-second-f64", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "4613937818241073152"}]}, "expected": [{"type": "f64", "value": "4613937818241073152"}]}, + {"type": "assert_return", "line": 303, "action": {"type": "invoke", "field": "param-mixed", "args": [{"type": "f32", "value": "1065353216"}, {"type": "i32", "value": "2"}, {"type": "i64", "value": "3"}, {"type": "i32", "value": "4"}, {"type": "f64", "value": "4617878467915022336"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "f64", "value": "4617878467915022336"}]}, + {"type": "assert_return", "line": 310, "action": {"type": "invoke", "field": "empty", "args": []}, "expected": []}, + {"type": "assert_return", "line": 311, "action": {"type": "invoke", "field": "value-void", "args": []}, "expected": []}, + {"type": "assert_return", "line": 312, "action": {"type": "invoke", "field": "value-i32", "args": []}, "expected": [{"type": "i32", "value": "77"}]}, + {"type": "assert_return", "line": 313, "action": {"type": "invoke", "field": "value-i64", "args": []}, "expected": [{"type": "i64", "value": "7777"}]}, + {"type": "assert_return", "line": 314, "action": {"type": "invoke", "field": "value-f32", "args": []}, "expected": [{"type": "f32", "value": "1117480550"}]}, + {"type": "assert_return", "line": 315, "action": {"type": "invoke", "field": "value-f64", "args": []}, "expected": [{"type": "f64", "value": "4635172994171566817"}]}, + {"type": "assert_return", "line": 321, "action": {"type": "invoke", "field": "value-block-void", "args": []}, "expected": []}, + {"type": "assert_return", "line": 322, "action": {"type": "invoke", "field": "value-block-i32", "args": []}, "expected": [{"type": "i32", "value": "77"}]}, + {"type": "assert_return", "line": 326, "action": {"type": "invoke", "field": "return-empty", "args": []}, "expected": []}, + {"type": "assert_return", "line": 327, "action": {"type": "invoke", "field": "return-i32", "args": []}, "expected": [{"type": "i32", "value": "78"}]}, + {"type": "assert_return", "line": 328, "action": {"type": "invoke", "field": "return-i64", "args": []}, "expected": [{"type": "i64", "value": "7878"}]}, + {"type": "assert_return", "line": 329, "action": {"type": "invoke", "field": "return-f32", "args": []}, "expected": [{"type": "f32", "value": "1117611622"}]}, + {"type": "assert_return", "line": 330, "action": {"type": "invoke", "field": "return-f64", "args": []}, "expected": [{"type": "f64", "value": "4635244066603186258"}]}, + {"type": "assert_return", "line": 336, "action": {"type": "invoke", "field": "return-block-i32", "args": []}, "expected": [{"type": "i32", "value": "77"}]}, + {"type": "assert_return", "line": 340, "action": {"type": "invoke", "field": "break-empty", "args": []}, "expected": []}, + {"type": "assert_return", "line": 341, "action": {"type": "invoke", "field": "break-i32", "args": []}, "expected": [{"type": "i32", "value": "79"}]}, + {"type": "assert_return", "line": 342, "action": {"type": "invoke", "field": "break-i64", "args": []}, "expected": [{"type": "i64", "value": "7979"}]}, + {"type": "assert_return", "line": 343, "action": {"type": "invoke", "field": "break-f32", "args": []}, "expected": [{"type": "f32", "value": "1117768909"}]}, + {"type": "assert_return", "line": 344, "action": {"type": "invoke", "field": "break-f64", "args": []}, "expected": [{"type": "f64", "value": "4635315139034805699"}]}, + {"type": "assert_return", "line": 350, "action": {"type": "invoke", "field": "break-block-i32", "args": []}, "expected": [{"type": "i32", "value": "77"}]}, + {"type": "assert_return", "line": 354, "action": {"type": "invoke", "field": "break-br_if-empty", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, + {"type": "assert_return", "line": 355, "action": {"type": "invoke", "field": "break-br_if-empty", "args": [{"type": "i32", "value": "2"}]}, "expected": []}, + {"type": "assert_return", "line": 356, "action": {"type": "invoke", "field": "break-br_if-num", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "51"}]}, + {"type": "assert_return", "line": 357, "action": {"type": "invoke", "field": "break-br_if-num", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "50"}]}, + {"type": "assert_return", "line": 366, "action": {"type": "invoke", "field": "break-br_table-empty", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, + {"type": "assert_return", "line": 367, "action": {"type": "invoke", "field": "break-br_table-empty", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, + {"type": "assert_return", "line": 368, "action": {"type": "invoke", "field": "break-br_table-empty", "args": [{"type": "i32", "value": "5"}]}, "expected": []}, + {"type": "assert_return", "line": 369, "action": {"type": "invoke", "field": "break-br_table-empty", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": []}, + {"type": "assert_return", "line": 370, "action": {"type": "invoke", "field": "break-br_table-num", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "50"}]}, + {"type": "assert_return", "line": 371, "action": {"type": "invoke", "field": "break-br_table-num", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "50"}]}, + {"type": "assert_return", "line": 372, "action": {"type": "invoke", "field": "break-br_table-num", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "50"}]}, + {"type": "assert_return", "line": 373, "action": {"type": "invoke", "field": "break-br_table-num", "args": [{"type": "i32", "value": "4294967196"}]}, "expected": [{"type": "i32", "value": "50"}]}, + {"type": "assert_return", "line": 387, "action": {"type": "invoke", "field": "break-br_table-nested-empty", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, + {"type": "assert_return", "line": 388, "action": {"type": "invoke", "field": "break-br_table-nested-empty", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, + {"type": "assert_return", "line": 389, "action": {"type": "invoke", "field": "break-br_table-nested-empty", "args": [{"type": "i32", "value": "3"}]}, "expected": []}, + {"type": "assert_return", "line": 390, "action": {"type": "invoke", "field": "break-br_table-nested-empty", "args": [{"type": "i32", "value": "4294967294"}]}, "expected": []}, + {"type": "assert_return", "line": 392, "action": {"type": "invoke", "field": "break-br_table-nested-num", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "52"}]}, + {"type": "assert_return", "line": 395, "action": {"type": "invoke", "field": "break-br_table-nested-num", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "50"}]}, + {"type": "assert_return", "line": 398, "action": {"type": "invoke", "field": "break-br_table-nested-num", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "52"}]}, + {"type": "assert_return", "line": 401, "action": {"type": "invoke", "field": "break-br_table-nested-num", "args": [{"type": "i32", "value": "4294967293"}]}, "expected": [{"type": "i32", "value": "52"}]}, + {"type": "assert_return", "line": 435, "action": {"type": "invoke", "field": "init-local-i32", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 436, "action": {"type": "invoke", "field": "init-local-i64", "args": []}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_return", "line": 437, "action": {"type": "invoke", "field": "init-local-f32", "args": []}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 438, "action": {"type": "invoke", "field": "init-local-f64", "args": []}, "expected": [{"type": "f64", "value": "0"}]}, + {"type": "module", "line": 443, "filename": "func.1.wasm"}, + {"type": "assert_invalid", "line": 457, "filename": "func.2.wasm", "text": "unknown type", "module_type": "binary"}, + {"type": "assert_malformed", "line": 469, "filename": "func.3.wat", "text": "unknown type", "module_type": "text"}, + {"type": "module", "line": 480, "filename": "func.4.wasm"}, + {"type": "assert_return", "line": 504, "action": {"type": "invoke", "field": "f", "args": [{"type": "i32", "value": "42"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 505, "action": {"type": "invoke", "field": "g", "args": [{"type": "i32", "value": "42"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 506, "action": {"type": "invoke", "field": "p", "args": []}, "expected": [{"type": "i32", "value": "42"}]}, + {"type": "module", "line": 509, "filename": "func.5.wasm"}, + {"type": "assert_return", "line": 572, "action": {"type": "invoke", "field": "signature-explicit-reused", "args": []}, "expected": []}, + {"type": "assert_return", "line": 573, "action": {"type": "invoke", "field": "signature-implicit-reused", "args": []}, "expected": []}, + {"type": "assert_return", "line": 574, "action": {"type": "invoke", "field": "signature-explicit-duplicate", "args": []}, "expected": []}, + {"type": "assert_return", "line": 575, "action": {"type": "invoke", "field": "signature-implicit-duplicate", "args": []}, "expected": []}, + {"type": "assert_malformed", "line": 581, "filename": "func.6.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 588, "filename": "func.7.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 595, "filename": "func.8.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 602, "filename": "func.9.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 609, "filename": "func.10.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 616, "filename": "func.11.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 623, "filename": "func.12.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_malformed", "line": 630, "filename": "func.13.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_malformed", "line": 637, "filename": "func.14.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_malformed", "line": 644, "filename": "func.15.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_invalid", "line": 655, "filename": "func.16.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 659, "filename": "func.17.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 663, "filename": "func.18.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 671, "filename": "func.19.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 675, "filename": "func.20.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 679, "filename": "func.21.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 687, "filename": "func.22.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 691, "filename": "func.23.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 695, "filename": "func.24.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 699, "filename": "func.25.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 703, "filename": "func.26.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 708, "filename": "func.27.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 714, "filename": "func.28.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 720, "filename": "func.29.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 726, "filename": "func.30.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 732, "filename": "func.31.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 738, "filename": "func.32.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 744, "filename": "func.33.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 751, "filename": "func.34.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 757, "filename": "func.35.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 763, "filename": "func.36.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 769, "filename": "func.37.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 775, "filename": "func.38.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 781, "filename": "func.39.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 788, "filename": "func.40.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 794, "filename": "func.41.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 800, "filename": "func.42.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 806, "filename": "func.43.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 812, "filename": "func.44.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 818, "filename": "func.45.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 824, "filename": "func.46.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 830, "filename": "func.47.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 836, "filename": "func.48.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 843, "filename": "func.49.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 849, "filename": "func.50.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 855, "filename": "func.51.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 861, "filename": "func.52.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 867, "filename": "func.53.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 873, "filename": "func.54.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 879, "filename": "func.55.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 885, "filename": "func.56.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 891, "filename": "func.57.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 898, "filename": "func.58.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 904, "filename": "func.59.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 910, "filename": "func.60.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 916, "filename": "func.61.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 922, "filename": "func.62.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 928, "filename": "func.63.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_malformed", "line": 938, "filename": "func.64.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 942, "filename": "func.65.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 946, "filename": "func.66.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 950, "filename": "func.67.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 954, "filename": "func.68.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 958, "filename": "func.69.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 964, "filename": "func.70.wat", "text": "duplicate func", "module_type": "text"}, + {"type": "assert_malformed", "line": 968, "filename": "func.71.wat", "text": "duplicate func", "module_type": "text"}, + {"type": "assert_malformed", "line": 972, "filename": "func.72.wat", "text": "duplicate func", "module_type": "text"}, + {"type": "assert_malformed", "line": 977, "filename": "func.73.wat", "text": "duplicate local", "module_type": "text"}, + {"type": "assert_malformed", "line": 979, "filename": "func.74.wat", "text": "duplicate local", "module_type": "text"}, + {"type": "assert_malformed", "line": 981, "filename": "func.75.wat", "text": "duplicate local", "module_type": "text"}]} diff --git a/tests/gen/global.17.wasm b/tests/gen/global.17.wasm index ec156cfd..82f6b95c 100644 Binary files a/tests/gen/global.17.wasm and b/tests/gen/global.17.wasm differ diff --git a/tests/gen/global.18.wasm b/tests/gen/global.18.wasm index 07b59aac..82f6b95c 100644 Binary files a/tests/gen/global.18.wasm and b/tests/gen/global.18.wasm differ diff --git a/tests/gen/global.19.wasm b/tests/gen/global.19.wasm index 8c2284f7..ec156cfd 100644 Binary files a/tests/gen/global.19.wasm and b/tests/gen/global.19.wasm differ diff --git a/tests/gen/global.20.wasm b/tests/gen/global.20.wasm index 4b98efd1..07b59aac 100644 Binary files a/tests/gen/global.20.wasm and b/tests/gen/global.20.wasm differ diff --git a/tests/gen/global.21.wasm b/tests/gen/global.21.wasm index f6e96259..8c2284f7 100644 Binary files a/tests/gen/global.21.wasm and b/tests/gen/global.21.wasm differ diff --git a/tests/gen/global.22.wasm b/tests/gen/global.22.wasm index dd30818b..4b98efd1 100644 Binary files a/tests/gen/global.22.wasm and b/tests/gen/global.22.wasm differ diff --git a/tests/gen/global.23.wasm b/tests/gen/global.23.wasm index f634698e..f6e96259 100644 Binary files a/tests/gen/global.23.wasm and b/tests/gen/global.23.wasm differ diff --git a/tests/gen/global.24.wasm b/tests/gen/global.24.wasm index e49f6684..dd30818b 100644 Binary files a/tests/gen/global.24.wasm and b/tests/gen/global.24.wasm differ diff --git a/tests/gen/global.25.wasm b/tests/gen/global.25.wasm index f7f54b88..f634698e 100644 Binary files a/tests/gen/global.25.wasm and b/tests/gen/global.25.wasm differ diff --git a/tests/gen/global.26.wasm b/tests/gen/global.26.wasm index 95d1e550..e49f6684 100644 Binary files a/tests/gen/global.26.wasm and b/tests/gen/global.26.wasm differ diff --git a/tests/gen/global.27.wasm b/tests/gen/global.27.wasm index a7193d18..f7f54b88 100644 Binary files a/tests/gen/global.27.wasm and b/tests/gen/global.27.wasm differ diff --git a/tests/gen/global.28.wasm b/tests/gen/global.28.wasm index 6db8cec1..95d1e550 100644 Binary files a/tests/gen/global.28.wasm and b/tests/gen/global.28.wasm differ diff --git a/tests/gen/global.29.wasm b/tests/gen/global.29.wasm index 3bcbca49..a7193d18 100644 Binary files a/tests/gen/global.29.wasm and b/tests/gen/global.29.wasm differ diff --git a/tests/gen/global.30.wasm b/tests/gen/global.30.wasm index 996f3b1e..6db8cec1 100644 Binary files a/tests/gen/global.30.wasm and b/tests/gen/global.30.wasm differ diff --git a/tests/gen/global.31.wasm b/tests/gen/global.31.wasm index dde8474b..3bcbca49 100644 Binary files a/tests/gen/global.31.wasm and b/tests/gen/global.31.wasm differ diff --git a/tests/gen/global.32.wasm b/tests/gen/global.32.wasm index 6eb4a99b..996f3b1e 100644 Binary files a/tests/gen/global.32.wasm and b/tests/gen/global.32.wasm differ diff --git a/tests/gen/global.33.wasm b/tests/gen/global.33.wasm index ae6821b2..dde8474b 100644 Binary files a/tests/gen/global.33.wasm and b/tests/gen/global.33.wasm differ diff --git a/tests/gen/global.34.wasm b/tests/gen/global.34.wasm index 9596b6f6..6eb4a99b 100644 Binary files a/tests/gen/global.34.wasm and b/tests/gen/global.34.wasm differ diff --git a/tests/gen/global.35.wasm b/tests/gen/global.35.wasm index 812b82c1..ae6821b2 100644 Binary files a/tests/gen/global.35.wasm and b/tests/gen/global.35.wasm differ diff --git a/tests/gen/global.36.wasm b/tests/gen/global.36.wasm index f1f2afdf..9596b6f6 100644 Binary files a/tests/gen/global.36.wasm and b/tests/gen/global.36.wasm differ diff --git a/tests/gen/global.37.wasm b/tests/gen/global.37.wasm index 2be59896..812b82c1 100644 Binary files a/tests/gen/global.37.wasm and b/tests/gen/global.37.wasm differ diff --git a/tests/gen/global.38.wasm b/tests/gen/global.38.wasm index 3b5313be..f1f2afdf 100644 Binary files a/tests/gen/global.38.wasm and b/tests/gen/global.38.wasm differ diff --git a/tests/gen/global.39.wasm b/tests/gen/global.39.wasm index 57031c88..2be59896 100644 Binary files a/tests/gen/global.39.wasm and b/tests/gen/global.39.wasm differ diff --git a/tests/gen/global.40.wasm b/tests/gen/global.40.wasm index d61c8812..3b5313be 100644 Binary files a/tests/gen/global.40.wasm and b/tests/gen/global.40.wasm differ diff --git a/tests/gen/global.41.wasm b/tests/gen/global.41.wasm index c466c9fa..57031c88 100644 Binary files a/tests/gen/global.41.wasm and b/tests/gen/global.41.wasm differ diff --git a/tests/gen/global.42.wasm b/tests/gen/global.42.wasm index 908519ff..d61c8812 100644 Binary files a/tests/gen/global.42.wasm and b/tests/gen/global.42.wasm differ diff --git a/tests/gen/global.43.wasm b/tests/gen/global.43.wasm index b9c97f0f..c466c9fa 100644 Binary files a/tests/gen/global.43.wasm and b/tests/gen/global.43.wasm differ diff --git a/tests/gen/global.44.wasm b/tests/gen/global.44.wasm index 550efbe2..908519ff 100644 Binary files a/tests/gen/global.44.wasm and b/tests/gen/global.44.wasm differ diff --git a/tests/gen/global.45.wasm b/tests/gen/global.45.wasm index 20e3ab45..b9c97f0f 100644 Binary files a/tests/gen/global.45.wasm and b/tests/gen/global.45.wasm differ diff --git a/tests/gen/global.46.wasm b/tests/gen/global.46.wasm new file mode 100644 index 00000000..550efbe2 Binary files /dev/null and b/tests/gen/global.46.wasm differ diff --git a/tests/gen/global.46.wat b/tests/gen/global.46.wat deleted file mode 100644 index f0be4a59..00000000 --- a/tests/gen/global.46.wat +++ /dev/null @@ -1 +0,0 @@ -(global $foo i32 (i32.const 0))(global $foo i32 (i32.const 0)) \ No newline at end of file diff --git a/tests/gen/global.47.wasm b/tests/gen/global.47.wasm new file mode 100644 index 00000000..20e3ab45 Binary files /dev/null and b/tests/gen/global.47.wasm differ diff --git a/tests/gen/global.48.wat b/tests/gen/global.48.wat index 7c7a305e..f0be4a59 100644 --- a/tests/gen/global.48.wat +++ b/tests/gen/global.48.wat @@ -1 +1 @@ -(import "" "" (global $foo i32))(import "" "" (global $foo i32)) \ No newline at end of file +(global $foo i32 (i32.const 0))(global $foo i32 (i32.const 0)) \ No newline at end of file diff --git a/tests/gen/global.47.wat b/tests/gen/global.49.wat similarity index 100% rename from tests/gen/global.47.wat rename to tests/gen/global.49.wat diff --git a/tests/gen/global.50.wat b/tests/gen/global.50.wat new file mode 100644 index 00000000..7c7a305e --- /dev/null +++ b/tests/gen/global.50.wat @@ -0,0 +1 @@ +(import "" "" (global $foo i32))(import "" "" (global $foo i32)) \ No newline at end of file diff --git a/tests/gen/global.json b/tests/gen/global.json index 995dfe15..39bb06d6 100644 --- a/tests/gen/global.json +++ b/tests/gen/global.json @@ -1,99 +1,107 @@ {"source_filename": "global.wast", "commands": [ {"type": "module", "line": 3, "filename": "global.0.wasm"}, - {"type": "assert_return", "line": 189, "action": {"type": "invoke", "field": "get-a", "args": []}, "expected": [{"type": "i32", "value": "4294967294"}]}, - {"type": "assert_return", "line": 190, "action": {"type": "invoke", "field": "get-b", "args": []}, "expected": [{"type": "i64", "value": "18446744073709551611"}]}, - {"type": "assert_return", "line": 191, "action": {"type": "invoke", "field": "get-x", "args": []}, "expected": [{"type": "i32", "value": "4294967284"}]}, - {"type": "assert_return", "line": 192, "action": {"type": "invoke", "field": "get-y", "args": []}, "expected": [{"type": "i64", "value": "18446744073709551601"}]}, - {"type": "assert_return", "line": 193, "action": {"type": "invoke", "field": "get-z1", "args": []}, "expected": [{"type": "i32", "value": "666"}]}, - {"type": "assert_return", "line": 194, "action": {"type": "invoke", "field": "get-z2", "args": []}, "expected": [{"type": "i64", "value": "666"}]}, - {"type": "assert_return", "line": 196, "action": {"type": "invoke", "field": "get-3", "args": []}, "expected": [{"type": "f32", "value": "3225419776"}]}, - {"type": "assert_return", "line": 197, "action": {"type": "invoke", "field": "get-4", "args": []}, "expected": [{"type": "f64", "value": "13839561654909534208"}]}, - {"type": "assert_return", "line": 198, "action": {"type": "invoke", "field": "get-7", "args": []}, "expected": [{"type": "f32", "value": "3243245568"}]}, - {"type": "assert_return", "line": 199, "action": {"type": "invoke", "field": "get-8", "args": []}, "expected": [{"type": "f64", "value": "13847442954257432576"}]}, - {"type": "assert_return", "line": 201, "action": {"type": "invoke", "field": "set-x", "args": [{"type": "i32", "value": "6"}]}, "expected": []}, - {"type": "assert_return", "line": 202, "action": {"type": "invoke", "field": "set-y", "args": [{"type": "i64", "value": "7"}]}, "expected": []}, - {"type": "assert_return", "line": 203, "action": {"type": "invoke", "field": "set-7", "args": [{"type": "f32", "value": "1090519040"}]}, "expected": []}, - {"type": "assert_return", "line": 204, "action": {"type": "invoke", "field": "set-8", "args": [{"type": "f64", "value": "4621256167635550208"}]}, "expected": []}, - {"type": "assert_return", "line": 206, "action": {"type": "invoke", "field": "get-x", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 207, "action": {"type": "invoke", "field": "get-y", "args": []}, "expected": [{"type": "i64", "value": "7"}]}, - {"type": "assert_return", "line": 208, "action": {"type": "invoke", "field": "get-7", "args": []}, "expected": [{"type": "f32", "value": "1090519040"}]}, - {"type": "assert_return", "line": 209, "action": {"type": "invoke", "field": "get-8", "args": []}, "expected": [{"type": "f64", "value": "4621256167635550208"}]}, - {"type": "assert_return", "line": 211, "action": {"type": "invoke", "field": "as-select-first", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 212, "action": {"type": "invoke", "field": "as-select-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 213, "action": {"type": "invoke", "field": "as-select-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 215, "action": {"type": "invoke", "field": "as-loop-first", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 216, "action": {"type": "invoke", "field": "as-loop-mid", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 217, "action": {"type": "invoke", "field": "as-loop-last", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 219, "action": {"type": "invoke", "field": "as-if-condition", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 220, "action": {"type": "invoke", "field": "as-if-then", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 221, "action": {"type": "invoke", "field": "as-if-else", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 223, "action": {"type": "invoke", "field": "as-br_if-first", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 224, "action": {"type": "invoke", "field": "as-br_if-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 226, "action": {"type": "invoke", "field": "as-br_table-first", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 227, "action": {"type": "invoke", "field": "as-br_table-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 229, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 230, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_trap", "line": 231, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": []}, "text": "undefined element", "expected": [{"type": "i32"}]}, - {"type": "assert_return", "line": 233, "action": {"type": "invoke", "field": "as-store-first", "args": []}, "expected": []}, - {"type": "assert_return", "line": 234, "action": {"type": "invoke", "field": "as-store-last", "args": []}, "expected": []}, - {"type": "assert_return", "line": 235, "action": {"type": "invoke", "field": "as-load-operand", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 236, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 238, "action": {"type": "invoke", "field": "as-call-value", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 240, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 241, "action": {"type": "invoke", "field": "as-drop-operand", "args": []}, "expected": []}, - {"type": "assert_return", "line": 242, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 244, "action": {"type": "invoke", "field": "as-local.set-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 245, "action": {"type": "invoke", "field": "as-local.tee-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 246, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, - {"type": "assert_return", "line": 248, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 249, "action": {"type": "invoke", "field": "as-binary-operand", "args": []}, "expected": [{"type": "i32", "value": "36"}]}, - {"type": "assert_return", "line": 250, "action": {"type": "invoke", "field": "as-compare-operand", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_invalid", "line": 253, "filename": "global.1.wasm", "text": "global is immutable", "module_type": "binary"}, - {"type": "assert_invalid", "line": 258, "filename": "global.2.wasm", "text": "global is immutable", "module_type": "binary"}, - {"type": "module", "line": 263, "filename": "global.3.wasm"}, - {"type": "module", "line": 264, "filename": "global.4.wasm"}, - {"type": "assert_invalid", "line": 267, "filename": "global.5.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "assert_invalid", "line": 272, "filename": "global.6.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "assert_invalid", "line": 277, "filename": "global.7.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "assert_invalid", "line": 282, "filename": "global.8.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "assert_invalid", "line": 287, "filename": "global.9.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "assert_invalid", "line": 292, "filename": "global.10.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "assert_invalid", "line": 297, "filename": "global.11.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 302, "filename": "global.12.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 307, "filename": "global.13.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 312, "filename": "global.14.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 317, "filename": "global.15.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 322, "filename": "global.16.wasm", "text": "unknown global", "module_type": "binary"}, - {"type": "assert_invalid", "line": 327, "filename": "global.17.wasm", "text": "unknown global", "module_type": "binary"}, - {"type": "assert_invalid", "line": 332, "filename": "global.18.wasm", "text": "unknown global", "module_type": "binary"}, - {"type": "assert_invalid", "line": 337, "filename": "global.19.wasm", "text": "constant expression required", "module_type": "binary"}, - {"type": "module", "line": 341, "filename": "global.20.wasm"}, - {"type": "assert_malformed", "line": 345, "filename": "global.21.wasm", "text": "malformed mutability", "module_type": "binary"}, - {"type": "assert_malformed", "line": 358, "filename": "global.22.wasm", "text": "malformed mutability", "module_type": "binary"}, - {"type": "module", "line": 371, "filename": "global.23.wasm"}, - {"type": "assert_malformed", "line": 375, "filename": "global.24.wasm", "text": "malformed mutability", "module_type": "binary"}, - {"type": "assert_malformed", "line": 387, "filename": "global.25.wasm", "text": "malformed mutability", "module_type": "binary"}, - {"type": "assert_invalid", "line": 401, "filename": "global.26.wasm", "text": "unknown global", "module_type": "binary"}, - {"type": "assert_invalid", "line": 406, "filename": "global.27.wasm", "text": "unknown global", "module_type": "binary"}, - {"type": "assert_invalid", "line": 414, "filename": "global.28.wasm", "text": "unknown global", "module_type": "binary"}, - {"type": "assert_invalid", "line": 422, "filename": "global.29.wasm", "text": "unknown global", "module_type": "binary"}, - {"type": "assert_invalid", "line": 432, "filename": "global.30.wasm", "text": "unknown global", "module_type": "binary"}, - {"type": "assert_invalid", "line": 437, "filename": "global.31.wasm", "text": "unknown global", "module_type": "binary"}, - {"type": "assert_invalid", "line": 445, "filename": "global.32.wasm", "text": "unknown global", "module_type": "binary"}, - {"type": "assert_invalid", "line": 453, "filename": "global.33.wasm", "text": "unknown global", "module_type": "binary"}, - {"type": "assert_invalid", "line": 463, "filename": "global.34.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 472, "filename": "global.35.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 482, "filename": "global.36.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 492, "filename": "global.37.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 502, "filename": "global.38.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 512, "filename": "global.39.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 522, "filename": "global.40.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 532, "filename": "global.41.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 542, "filename": "global.42.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 551, "filename": "global.43.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 560, "filename": "global.44.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 570, "filename": "global.45.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_malformed", "line": 588, "filename": "global.46.wat", "text": "duplicate global", "module_type": "text"}, - {"type": "assert_malformed", "line": 592, "filename": "global.47.wat", "text": "duplicate global", "module_type": "text"}, - {"type": "assert_malformed", "line": 596, "filename": "global.48.wat", "text": "duplicate global", "module_type": "text"}]} + {"type": "assert_return", "line": 199, "action": {"type": "invoke", "field": "get-a", "args": []}, "expected": [{"type": "i32", "value": "4294967294"}]}, + {"type": "assert_return", "line": 200, "action": {"type": "invoke", "field": "get-b", "args": []}, "expected": [{"type": "i64", "value": "18446744073709551611"}]}, + {"type": "assert_return", "line": 204, "action": {"type": "invoke", "field": "get-x", "args": []}, "expected": [{"type": "i32", "value": "4294967284"}]}, + {"type": "assert_return", "line": 205, "action": {"type": "invoke", "field": "get-y", "args": []}, "expected": [{"type": "i64", "value": "18446744073709551601"}]}, + {"type": "assert_return", "line": 206, "action": {"type": "invoke", "field": "get-z1", "args": []}, "expected": [{"type": "i32", "value": "666"}]}, + {"type": "assert_return", "line": 207, "action": {"type": "invoke", "field": "get-z2", "args": []}, "expected": [{"type": "i64", "value": "666"}]}, + {"type": "assert_return", "line": 209, "action": {"type": "invoke", "field": "get-3", "args": []}, "expected": [{"type": "f32", "value": "3225419776"}]}, + {"type": "assert_return", "line": 210, "action": {"type": "invoke", "field": "get-4", "args": []}, "expected": [{"type": "f64", "value": "13839561654909534208"}]}, + {"type": "assert_return", "line": 211, "action": {"type": "invoke", "field": "get-7", "args": []}, "expected": [{"type": "f32", "value": "3243245568"}]}, + {"type": "assert_return", "line": 212, "action": {"type": "invoke", "field": "get-8", "args": []}, "expected": [{"type": "f64", "value": "13847442954257432576"}]}, + {"type": "assert_return", "line": 214, "action": {"type": "invoke", "field": "set-x", "args": [{"type": "i32", "value": "6"}]}, "expected": []}, + {"type": "assert_return", "line": 215, "action": {"type": "invoke", "field": "set-y", "args": [{"type": "i64", "value": "7"}]}, "expected": []}, + {"type": "assert_return", "line": 217, "action": {"type": "invoke", "field": "set-7", "args": [{"type": "f32", "value": "1090519040"}]}, "expected": []}, + {"type": "assert_return", "line": 218, "action": {"type": "invoke", "field": "set-8", "args": [{"type": "f64", "value": "4621256167635550208"}]}, "expected": []}, + {"type": "assert_return", "line": 220, "action": {"type": "invoke", "field": "get-x", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 221, "action": {"type": "invoke", "field": "get-y", "args": []}, "expected": [{"type": "i64", "value": "7"}]}, + {"type": "assert_return", "line": 222, "action": {"type": "invoke", "field": "get-7", "args": []}, "expected": [{"type": "f32", "value": "1090519040"}]}, + {"type": "assert_return", "line": 223, "action": {"type": "invoke", "field": "get-8", "args": []}, "expected": [{"type": "f64", "value": "4621256167635550208"}]}, + {"type": "assert_return", "line": 225, "action": {"type": "invoke", "field": "set-7", "args": [{"type": "f32", "value": "1090519040"}]}, "expected": []}, + {"type": "assert_return", "line": 226, "action": {"type": "invoke", "field": "set-8", "args": [{"type": "f64", "value": "4621256167635550208"}]}, "expected": []}, + {"type": "assert_return", "line": 230, "action": {"type": "invoke", "field": "get-x", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 231, "action": {"type": "invoke", "field": "get-y", "args": []}, "expected": [{"type": "i64", "value": "7"}]}, + {"type": "assert_return", "line": 232, "action": {"type": "invoke", "field": "get-7", "args": []}, "expected": [{"type": "f32", "value": "1090519040"}]}, + {"type": "assert_return", "line": 233, "action": {"type": "invoke", "field": "get-8", "args": []}, "expected": [{"type": "f64", "value": "4621256167635550208"}]}, + {"type": "assert_return", "line": 237, "action": {"type": "invoke", "field": "as-select-first", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 238, "action": {"type": "invoke", "field": "as-select-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 239, "action": {"type": "invoke", "field": "as-select-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 241, "action": {"type": "invoke", "field": "as-loop-first", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 242, "action": {"type": "invoke", "field": "as-loop-mid", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 243, "action": {"type": "invoke", "field": "as-loop-last", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 245, "action": {"type": "invoke", "field": "as-if-condition", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 246, "action": {"type": "invoke", "field": "as-if-then", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 247, "action": {"type": "invoke", "field": "as-if-else", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 249, "action": {"type": "invoke", "field": "as-br_if-first", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 250, "action": {"type": "invoke", "field": "as-br_if-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 252, "action": {"type": "invoke", "field": "as-br_table-first", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 253, "action": {"type": "invoke", "field": "as-br_table-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 255, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 256, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_trap", "line": 257, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": []}, "text": "undefined element", "expected": [{"type": "i32"}]}, + {"type": "assert_return", "line": 259, "action": {"type": "invoke", "field": "as-store-first", "args": []}, "expected": []}, + {"type": "assert_return", "line": 260, "action": {"type": "invoke", "field": "as-store-last", "args": []}, "expected": []}, + {"type": "assert_return", "line": 261, "action": {"type": "invoke", "field": "as-load-operand", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 262, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 264, "action": {"type": "invoke", "field": "as-call-value", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 266, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 267, "action": {"type": "invoke", "field": "as-drop-operand", "args": []}, "expected": []}, + {"type": "assert_return", "line": 268, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 270, "action": {"type": "invoke", "field": "as-local.set-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 271, "action": {"type": "invoke", "field": "as-local.tee-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 272, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 274, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 275, "action": {"type": "invoke", "field": "as-binary-operand", "args": []}, "expected": [{"type": "i32", "value": "36"}]}, + {"type": "assert_return", "line": 276, "action": {"type": "invoke", "field": "as-compare-operand", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_invalid", "line": 279, "filename": "global.1.wasm", "text": "global is immutable", "module_type": "binary"}, + {"type": "assert_invalid", "line": 284, "filename": "global.2.wasm", "text": "global is immutable", "module_type": "binary"}, + {"type": "module", "line": 289, "filename": "global.3.wasm"}, + {"type": "module", "line": 290, "filename": "global.4.wasm"}, + {"type": "assert_invalid", "line": 293, "filename": "global.5.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 298, "filename": "global.6.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 303, "filename": "global.7.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 308, "filename": "global.8.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 313, "filename": "global.9.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 318, "filename": "global.10.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "assert_invalid", "line": 323, "filename": "global.11.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 328, "filename": "global.12.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 333, "filename": "global.13.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 344, "filename": "global.14.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 349, "filename": "global.15.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 354, "filename": "global.16.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 359, "filename": "global.17.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 363, "filename": "global.18.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 368, "filename": "global.19.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 373, "filename": "global.20.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 378, "filename": "global.21.wasm", "text": "constant expression required", "module_type": "binary"}, + {"type": "module", "line": 382, "filename": "global.22.wasm"}, + {"type": "assert_malformed", "line": 386, "filename": "global.23.wasm", "text": "malformed mutability", "module_type": "binary"}, + {"type": "assert_malformed", "line": 399, "filename": "global.24.wasm", "text": "malformed mutability", "module_type": "binary"}, + {"type": "module", "line": 412, "filename": "global.25.wasm"}, + {"type": "assert_malformed", "line": 416, "filename": "global.26.wasm", "text": "malformed mutability", "module_type": "binary"}, + {"type": "assert_malformed", "line": 428, "filename": "global.27.wasm", "text": "malformed mutability", "module_type": "binary"}, + {"type": "assert_invalid", "line": 442, "filename": "global.28.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 447, "filename": "global.29.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 455, "filename": "global.30.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 463, "filename": "global.31.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 473, "filename": "global.32.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 478, "filename": "global.33.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 486, "filename": "global.34.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 494, "filename": "global.35.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 504, "filename": "global.36.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 513, "filename": "global.37.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 523, "filename": "global.38.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 533, "filename": "global.39.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 543, "filename": "global.40.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 553, "filename": "global.41.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 563, "filename": "global.42.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 573, "filename": "global.43.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 583, "filename": "global.44.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 592, "filename": "global.45.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 601, "filename": "global.46.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 611, "filename": "global.47.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_malformed", "line": 629, "filename": "global.48.wat", "text": "duplicate global", "module_type": "text"}, + {"type": "assert_malformed", "line": 633, "filename": "global.49.wat", "text": "duplicate global", "module_type": "text"}, + {"type": "assert_malformed", "line": 637, "filename": "global.50.wat", "text": "duplicate global", "module_type": "text"}]} diff --git a/tests/gen/i32.84.wat b/tests/gen/i32.84.wat new file mode 100644 index 00000000..a95ce255 --- /dev/null +++ b/tests/gen/i32.84.wat @@ -0,0 +1 @@ +(func (result i32) (i32.const nan:arithmetic)) \ No newline at end of file diff --git a/tests/gen/i32.85.wat b/tests/gen/i32.85.wat new file mode 100644 index 00000000..dae044cd --- /dev/null +++ b/tests/gen/i32.85.wat @@ -0,0 +1 @@ +(func (result i32) (i32.const nan:canonical)) \ No newline at end of file diff --git a/tests/gen/i32.json b/tests/gen/i32.json index 76ba9c16..9d4f19ad 100644 --- a/tests/gen/i32.json +++ b/tests/gen/i32.json @@ -457,4 +457,6 @@ {"type": "assert_invalid", "line": 973, "filename": "i32.80.wasm", "text": "type mismatch", "module_type": "binary"}, {"type": "assert_invalid", "line": 974, "filename": "i32.81.wasm", "text": "type mismatch", "module_type": "binary"}, {"type": "assert_invalid", "line": 975, "filename": "i32.82.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 976, "filename": "i32.83.wasm", "text": "type mismatch", "module_type": "binary"}]} + {"type": "assert_invalid", "line": 976, "filename": "i32.83.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_malformed", "line": 979, "filename": "i32.84.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 983, "filename": "i32.85.wat", "text": "unexpected token", "module_type": "text"}]} diff --git a/tests/gen/i64.30.wat b/tests/gen/i64.30.wat new file mode 100644 index 00000000..296d73cf --- /dev/null +++ b/tests/gen/i64.30.wat @@ -0,0 +1 @@ +(func (result i64) (i64.const nan:arithmetic)) \ No newline at end of file diff --git a/tests/gen/i64.31.wat b/tests/gen/i64.31.wat new file mode 100644 index 00000000..03bc86ff --- /dev/null +++ b/tests/gen/i64.31.wat @@ -0,0 +1 @@ +(func (result i64) (i64.const nan:canonical)) \ No newline at end of file diff --git a/tests/gen/i64.json b/tests/gen/i64.json index 3f2016e8..bacce55f 100644 --- a/tests/gen/i64.json +++ b/tests/gen/i64.json @@ -413,4 +413,6 @@ {"type": "assert_invalid", "line": 482, "filename": "i64.26.wasm", "text": "type mismatch", "module_type": "binary"}, {"type": "assert_invalid", "line": 483, "filename": "i64.27.wasm", "text": "type mismatch", "module_type": "binary"}, {"type": "assert_invalid", "line": 484, "filename": "i64.28.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 485, "filename": "i64.29.wasm", "text": "type mismatch", "module_type": "binary"}]} + {"type": "assert_invalid", "line": 485, "filename": "i64.29.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_malformed", "line": 488, "filename": "i64.30.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 492, "filename": "i64.31.wat", "text": "unexpected token", "module_type": "text"}]} diff --git a/tests/gen/if.0.wasm b/tests/gen/if.0.wasm index bf2ae2e6..8606f229 100644 Binary files a/tests/gen/if.0.wasm and b/tests/gen/if.0.wasm differ diff --git a/tests/gen/if.1.wat b/tests/gen/if.1.wat new file mode 100644 index 00000000..072c0753 --- /dev/null +++ b/tests/gen/if.1.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (if (type $sig) (result i32) (param i32) (i32.const 1) (then))) \ No newline at end of file diff --git a/tests/gen/if.10.wat b/tests/gen/if.10.wat new file mode 100644 index 00000000..3f8ae479 --- /dev/null +++ b/tests/gen/if.10.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (i32.const 1) (if (type $sig) (param i32) (then (drop)) (else (drop))) (unreachable)) \ No newline at end of file diff --git a/tests/gen/if.100.wasm b/tests/gen/if.100.wasm new file mode 100644 index 00000000..289eb850 Binary files /dev/null and b/tests/gen/if.100.wasm differ diff --git a/tests/gen/if.101.wasm b/tests/gen/if.101.wasm new file mode 100644 index 00000000..00f4e714 Binary files /dev/null and b/tests/gen/if.101.wasm differ diff --git a/tests/gen/if.102.wasm b/tests/gen/if.102.wasm new file mode 100644 index 00000000..24840215 Binary files /dev/null and b/tests/gen/if.102.wasm differ diff --git a/tests/gen/if.103.wasm b/tests/gen/if.103.wasm new file mode 100644 index 00000000..ac25620f Binary files /dev/null and b/tests/gen/if.103.wasm differ diff --git a/tests/gen/if.104.wat b/tests/gen/if.104.wat new file mode 100644 index 00000000..22432a61 --- /dev/null +++ b/tests/gen/if.104.wat @@ -0,0 +1 @@ +(func (param i32) (result i32) if (param $x i32) end) \ No newline at end of file diff --git a/tests/gen/if.105.wat b/tests/gen/if.105.wat new file mode 100644 index 00000000..de70fc45 --- /dev/null +++ b/tests/gen/if.105.wat @@ -0,0 +1 @@ +(func (param i32) (result i32) (if (param $x i32) (then))) \ No newline at end of file diff --git a/tests/gen/if.106.wat b/tests/gen/if.106.wat new file mode 100644 index 00000000..b4af9226 --- /dev/null +++ b/tests/gen/if.106.wat @@ -0,0 +1 @@ +(func i32.const 0 if end $l) \ No newline at end of file diff --git a/tests/gen/if.107.wat b/tests/gen/if.107.wat new file mode 100644 index 00000000..f96b3f64 --- /dev/null +++ b/tests/gen/if.107.wat @@ -0,0 +1 @@ +(func i32.const 0 if $a end $l) \ No newline at end of file diff --git a/tests/gen/if.108.wat b/tests/gen/if.108.wat new file mode 100644 index 00000000..b6fa74ef --- /dev/null +++ b/tests/gen/if.108.wat @@ -0,0 +1 @@ +(func i32.const 0 if else $l end) \ No newline at end of file diff --git a/tests/gen/if.109.wat b/tests/gen/if.109.wat new file mode 100644 index 00000000..d3727503 --- /dev/null +++ b/tests/gen/if.109.wat @@ -0,0 +1 @@ +(func i32.const 0 if $a else $l end) \ No newline at end of file diff --git a/tests/gen/if.11.wat b/tests/gen/if.11.wat new file mode 100644 index 00000000..e0660e54 --- /dev/null +++ b/tests/gen/if.11.wat @@ -0,0 +1 @@ +(type $sig (func (param i32 i32) (result i32)))(func (i32.const 0) (i32.const 1) (if (type $sig) (param i32) (result i32) (then)) (unreachable)) \ No newline at end of file diff --git a/tests/gen/if.110.wat b/tests/gen/if.110.wat new file mode 100644 index 00000000..9b9439d5 --- /dev/null +++ b/tests/gen/if.110.wat @@ -0,0 +1 @@ +(func i32.const 0 if else end $l) \ No newline at end of file diff --git a/tests/gen/if.111.wat b/tests/gen/if.111.wat new file mode 100644 index 00000000..1067ffcc --- /dev/null +++ b/tests/gen/if.111.wat @@ -0,0 +1 @@ +(func i32.const 0 if else $l end $l) \ No newline at end of file diff --git a/tests/gen/if.112.wat b/tests/gen/if.112.wat new file mode 100644 index 00000000..7982880e --- /dev/null +++ b/tests/gen/if.112.wat @@ -0,0 +1 @@ +(func i32.const 0 if else $l1 end $l2) \ No newline at end of file diff --git a/tests/gen/if.113.wat b/tests/gen/if.113.wat new file mode 100644 index 00000000..cf803aab --- /dev/null +++ b/tests/gen/if.113.wat @@ -0,0 +1 @@ +(func i32.const 0 if $a else end $l) \ No newline at end of file diff --git a/tests/gen/if.114.wat b/tests/gen/if.114.wat new file mode 100644 index 00000000..5c28ca57 --- /dev/null +++ b/tests/gen/if.114.wat @@ -0,0 +1 @@ +(func i32.const 0 if $a else $a end $l) \ No newline at end of file diff --git a/tests/gen/if.115.wat b/tests/gen/if.115.wat new file mode 100644 index 00000000..def7c8aa --- /dev/null +++ b/tests/gen/if.115.wat @@ -0,0 +1 @@ +(func i32.const 0 if $a else $l end $l) \ No newline at end of file diff --git a/tests/gen/if.116.wat b/tests/gen/if.116.wat new file mode 100644 index 00000000..4a5ec6ed --- /dev/null +++ b/tests/gen/if.116.wat @@ -0,0 +1 @@ +(func (if i32.const 0 (then) (else))) \ No newline at end of file diff --git a/tests/gen/if.12.wasm b/tests/gen/if.12.wasm index 7ff46d8c..af9266d3 100644 Binary files a/tests/gen/if.12.wasm and b/tests/gen/if.12.wasm differ diff --git a/tests/gen/if.13.wasm b/tests/gen/if.13.wasm index a1d8bfd8..cc5586a6 100644 Binary files a/tests/gen/if.13.wasm and b/tests/gen/if.13.wasm differ diff --git a/tests/gen/if.14.wasm b/tests/gen/if.14.wasm index 3c843597..d21e5ffc 100644 Binary files a/tests/gen/if.14.wasm and b/tests/gen/if.14.wasm differ diff --git a/tests/gen/if.15.wasm b/tests/gen/if.15.wasm index c517634e..3c28b6b1 100644 Binary files a/tests/gen/if.15.wasm and b/tests/gen/if.15.wasm differ diff --git a/tests/gen/if.16.wasm b/tests/gen/if.16.wasm index 60e3519a..0a2b0435 100644 Binary files a/tests/gen/if.16.wasm and b/tests/gen/if.16.wasm differ diff --git a/tests/gen/if.17.wasm b/tests/gen/if.17.wasm index a4751ebe..cc5586a6 100644 Binary files a/tests/gen/if.17.wasm and b/tests/gen/if.17.wasm differ diff --git a/tests/gen/if.18.wasm b/tests/gen/if.18.wasm index 4c9189fc..d21e5ffc 100644 Binary files a/tests/gen/if.18.wasm and b/tests/gen/if.18.wasm differ diff --git a/tests/gen/if.19.wasm b/tests/gen/if.19.wasm index dfb1749b..3c28b6b1 100644 Binary files a/tests/gen/if.19.wasm and b/tests/gen/if.19.wasm differ diff --git a/tests/gen/if.2.wat b/tests/gen/if.2.wat new file mode 100644 index 00000000..06bed210 --- /dev/null +++ b/tests/gen/if.2.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (if (param i32) (type $sig) (result i32) (i32.const 1) (then))) \ No newline at end of file diff --git a/tests/gen/if.20.wasm b/tests/gen/if.20.wasm index dccdf66a..0a2b0435 100644 Binary files a/tests/gen/if.20.wasm and b/tests/gen/if.20.wasm differ diff --git a/tests/gen/if.21.wasm b/tests/gen/if.21.wasm index ed3dd5bf..53c2a0f7 100644 Binary files a/tests/gen/if.21.wasm and b/tests/gen/if.21.wasm differ diff --git a/tests/gen/if.22.wasm b/tests/gen/if.22.wasm index 956d2543..53c2a0f7 100644 Binary files a/tests/gen/if.22.wasm and b/tests/gen/if.22.wasm differ diff --git a/tests/gen/if.23.wasm b/tests/gen/if.23.wasm index 67a0194d..f16045b3 100644 Binary files a/tests/gen/if.23.wasm and b/tests/gen/if.23.wasm differ diff --git a/tests/gen/if.24.wasm b/tests/gen/if.24.wasm index df42f941..7ff46d8c 100644 Binary files a/tests/gen/if.24.wasm and b/tests/gen/if.24.wasm differ diff --git a/tests/gen/if.25.wasm b/tests/gen/if.25.wasm index 3ef0513a..92752ecb 100644 Binary files a/tests/gen/if.25.wasm and b/tests/gen/if.25.wasm differ diff --git a/tests/gen/if.26.wasm b/tests/gen/if.26.wasm index 873d66a6..92752ecb 100644 Binary files a/tests/gen/if.26.wasm and b/tests/gen/if.26.wasm differ diff --git a/tests/gen/if.27.wasm b/tests/gen/if.27.wasm index d43da66c..bae469f7 100644 Binary files a/tests/gen/if.27.wasm and b/tests/gen/if.27.wasm differ diff --git a/tests/gen/if.28.wasm b/tests/gen/if.28.wasm index c6353c67..fc9f1e0a 100644 Binary files a/tests/gen/if.28.wasm and b/tests/gen/if.28.wasm differ diff --git a/tests/gen/if.29.wasm b/tests/gen/if.29.wasm index dc586ea1..a1d8bfd8 100644 Binary files a/tests/gen/if.29.wasm and b/tests/gen/if.29.wasm differ diff --git a/tests/gen/if.3.wat b/tests/gen/if.3.wat new file mode 100644 index 00000000..16666b7b --- /dev/null +++ b/tests/gen/if.3.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (if (param i32) (result i32) (type $sig) (i32.const 1) (then))) \ No newline at end of file diff --git a/tests/gen/if.30.wasm b/tests/gen/if.30.wasm index ab49c466..3c843597 100644 Binary files a/tests/gen/if.30.wasm and b/tests/gen/if.30.wasm differ diff --git a/tests/gen/if.31.wasm b/tests/gen/if.31.wasm index f64ebb83..c517634e 100644 Binary files a/tests/gen/if.31.wasm and b/tests/gen/if.31.wasm differ diff --git a/tests/gen/if.32.wasm b/tests/gen/if.32.wasm index b4c76d6e..ee769566 100644 Binary files a/tests/gen/if.32.wasm and b/tests/gen/if.32.wasm differ diff --git a/tests/gen/if.33.wasm b/tests/gen/if.33.wasm index 45f4a25a..44c255ab 100644 Binary files a/tests/gen/if.33.wasm and b/tests/gen/if.33.wasm differ diff --git a/tests/gen/if.34.wasm b/tests/gen/if.34.wasm index 49adfa4a..a5682a94 100644 Binary files a/tests/gen/if.34.wasm and b/tests/gen/if.34.wasm differ diff --git a/tests/gen/if.35.wasm b/tests/gen/if.35.wasm index 6712ce37..60e3519a 100644 Binary files a/tests/gen/if.35.wasm and b/tests/gen/if.35.wasm differ diff --git a/tests/gen/if.36.wasm b/tests/gen/if.36.wasm index 1350d1b7..10b93d89 100644 Binary files a/tests/gen/if.36.wasm and b/tests/gen/if.36.wasm differ diff --git a/tests/gen/if.37.wasm b/tests/gen/if.37.wasm index 6abdf563..a4751ebe 100644 Binary files a/tests/gen/if.37.wasm and b/tests/gen/if.37.wasm differ diff --git a/tests/gen/if.38.wasm b/tests/gen/if.38.wasm index 6ebf3305..4c9189fc 100644 Binary files a/tests/gen/if.38.wasm and b/tests/gen/if.38.wasm differ diff --git a/tests/gen/if.39.wasm b/tests/gen/if.39.wasm index 2749cb52..dfb1749b 100644 Binary files a/tests/gen/if.39.wasm and b/tests/gen/if.39.wasm differ diff --git a/tests/gen/if.4.wat b/tests/gen/if.4.wat new file mode 100644 index 00000000..dbdfc90a --- /dev/null +++ b/tests/gen/if.4.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (if (result i32) (type $sig) (param i32) (i32.const 1) (then))) \ No newline at end of file diff --git a/tests/gen/if.40.wasm b/tests/gen/if.40.wasm index 28af597c..1b0f0164 100644 Binary files a/tests/gen/if.40.wasm and b/tests/gen/if.40.wasm differ diff --git a/tests/gen/if.41.wasm b/tests/gen/if.41.wasm index 48b97862..6698a3f2 100644 Binary files a/tests/gen/if.41.wasm and b/tests/gen/if.41.wasm differ diff --git a/tests/gen/if.42.wasm b/tests/gen/if.42.wasm index 79cee182..53f3ae63 100644 Binary files a/tests/gen/if.42.wasm and b/tests/gen/if.42.wasm differ diff --git a/tests/gen/if.43.wasm b/tests/gen/if.43.wasm index f1fb5069..dccdf66a 100644 Binary files a/tests/gen/if.43.wasm and b/tests/gen/if.43.wasm differ diff --git a/tests/gen/if.44.wasm b/tests/gen/if.44.wasm index ece64f60..ed3dd5bf 100644 Binary files a/tests/gen/if.44.wasm and b/tests/gen/if.44.wasm differ diff --git a/tests/gen/if.45.wasm b/tests/gen/if.45.wasm index 0ccea05b..956d2543 100644 Binary files a/tests/gen/if.45.wasm and b/tests/gen/if.45.wasm differ diff --git a/tests/gen/if.46.wasm b/tests/gen/if.46.wasm index db22aa7f..27d44712 100644 Binary files a/tests/gen/if.46.wasm and b/tests/gen/if.46.wasm differ diff --git a/tests/gen/if.47.wasm b/tests/gen/if.47.wasm index 11cf121f..fcb432cb 100644 Binary files a/tests/gen/if.47.wasm and b/tests/gen/if.47.wasm differ diff --git a/tests/gen/if.48.wasm b/tests/gen/if.48.wasm index e2599e10..d883e6b9 100644 Binary files a/tests/gen/if.48.wasm and b/tests/gen/if.48.wasm differ diff --git a/tests/gen/if.49.wasm b/tests/gen/if.49.wasm index f59e2113..82df12b9 100644 Binary files a/tests/gen/if.49.wasm and b/tests/gen/if.49.wasm differ diff --git a/tests/gen/if.5.wat b/tests/gen/if.5.wat new file mode 100644 index 00000000..bdb8440e --- /dev/null +++ b/tests/gen/if.5.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (if (result i32) (param i32) (type $sig) (i32.const 1) (then))) \ No newline at end of file diff --git a/tests/gen/if.50.wasm b/tests/gen/if.50.wasm index 2f7f719c..606b4a12 100644 Binary files a/tests/gen/if.50.wasm and b/tests/gen/if.50.wasm differ diff --git a/tests/gen/if.51.wasm b/tests/gen/if.51.wasm index 61107b78..c1d26493 100644 Binary files a/tests/gen/if.51.wasm and b/tests/gen/if.51.wasm differ diff --git a/tests/gen/if.52.wasm b/tests/gen/if.52.wasm index 2f6a47c8..773703d9 100644 Binary files a/tests/gen/if.52.wasm and b/tests/gen/if.52.wasm differ diff --git a/tests/gen/if.53.wasm b/tests/gen/if.53.wasm new file mode 100644 index 00000000..8aaee3f9 Binary files /dev/null and b/tests/gen/if.53.wasm differ diff --git a/tests/gen/if.53.wat b/tests/gen/if.53.wat deleted file mode 100644 index e288c1fe..00000000 --- a/tests/gen/if.53.wat +++ /dev/null @@ -1 +0,0 @@ -(func if end $l) \ No newline at end of file diff --git a/tests/gen/if.54.wasm b/tests/gen/if.54.wasm new file mode 100644 index 00000000..691cda38 Binary files /dev/null and b/tests/gen/if.54.wasm differ diff --git a/tests/gen/if.54.wat b/tests/gen/if.54.wat deleted file mode 100644 index 5be51116..00000000 --- a/tests/gen/if.54.wat +++ /dev/null @@ -1 +0,0 @@ -(func if $a end $l) \ No newline at end of file diff --git a/tests/gen/if.55.wasm b/tests/gen/if.55.wasm new file mode 100644 index 00000000..67a0194d Binary files /dev/null and b/tests/gen/if.55.wasm differ diff --git a/tests/gen/if.55.wat b/tests/gen/if.55.wat deleted file mode 100644 index 2bbe4f31..00000000 --- a/tests/gen/if.55.wat +++ /dev/null @@ -1 +0,0 @@ -(func if else $l end) \ No newline at end of file diff --git a/tests/gen/if.56.wasm b/tests/gen/if.56.wasm new file mode 100644 index 00000000..cf2e3fa1 Binary files /dev/null and b/tests/gen/if.56.wasm differ diff --git a/tests/gen/if.56.wat b/tests/gen/if.56.wat deleted file mode 100644 index 3fa6fe2c..00000000 --- a/tests/gen/if.56.wat +++ /dev/null @@ -1 +0,0 @@ -(func if $a else $l end) \ No newline at end of file diff --git a/tests/gen/if.57.wasm b/tests/gen/if.57.wasm new file mode 100644 index 00000000..df42f941 Binary files /dev/null and b/tests/gen/if.57.wasm differ diff --git a/tests/gen/if.57.wat b/tests/gen/if.57.wat deleted file mode 100644 index 888c5140..00000000 --- a/tests/gen/if.57.wat +++ /dev/null @@ -1 +0,0 @@ -(func if else end $l) \ No newline at end of file diff --git a/tests/gen/if.58.wasm b/tests/gen/if.58.wasm new file mode 100644 index 00000000..3ef0513a Binary files /dev/null and b/tests/gen/if.58.wasm differ diff --git a/tests/gen/if.58.wat b/tests/gen/if.58.wat deleted file mode 100644 index 988140f6..00000000 --- a/tests/gen/if.58.wat +++ /dev/null @@ -1 +0,0 @@ -(func if else $l end $l) \ No newline at end of file diff --git a/tests/gen/if.59.wasm b/tests/gen/if.59.wasm new file mode 100644 index 00000000..873d66a6 Binary files /dev/null and b/tests/gen/if.59.wasm differ diff --git a/tests/gen/if.59.wat b/tests/gen/if.59.wat deleted file mode 100644 index 57b12f47..00000000 --- a/tests/gen/if.59.wat +++ /dev/null @@ -1 +0,0 @@ -(func if else $l1 end $l2) \ No newline at end of file diff --git a/tests/gen/if.6.wasm b/tests/gen/if.6.wasm deleted file mode 100644 index d21e5ffc..00000000 Binary files a/tests/gen/if.6.wasm and /dev/null differ diff --git a/tests/gen/if.6.wat b/tests/gen/if.6.wat new file mode 100644 index 00000000..de86a2dd --- /dev/null +++ b/tests/gen/if.6.wat @@ -0,0 +1 @@ +(func (i32.const 0) (if (result i32) (param i32) (i32.const 1) (then))) \ No newline at end of file diff --git a/tests/gen/if.60.wasm b/tests/gen/if.60.wasm new file mode 100644 index 00000000..d43da66c Binary files /dev/null and b/tests/gen/if.60.wasm differ diff --git a/tests/gen/if.60.wat b/tests/gen/if.60.wat deleted file mode 100644 index 721311f9..00000000 --- a/tests/gen/if.60.wat +++ /dev/null @@ -1 +0,0 @@ -(func if $a else end $l) \ No newline at end of file diff --git a/tests/gen/if.61.wasm b/tests/gen/if.61.wasm new file mode 100644 index 00000000..c6353c67 Binary files /dev/null and b/tests/gen/if.61.wasm differ diff --git a/tests/gen/if.61.wat b/tests/gen/if.61.wat deleted file mode 100644 index eac1ee0c..00000000 --- a/tests/gen/if.61.wat +++ /dev/null @@ -1 +0,0 @@ -(func if $a else $a end $l) \ No newline at end of file diff --git a/tests/gen/if.62.wasm b/tests/gen/if.62.wasm new file mode 100644 index 00000000..72553ded Binary files /dev/null and b/tests/gen/if.62.wasm differ diff --git a/tests/gen/if.62.wat b/tests/gen/if.62.wat deleted file mode 100644 index 9b82ae19..00000000 --- a/tests/gen/if.62.wat +++ /dev/null @@ -1 +0,0 @@ -(func if $a else $l end $l) \ No newline at end of file diff --git a/tests/gen/if.63.wasm b/tests/gen/if.63.wasm new file mode 100644 index 00000000..eacf95ee Binary files /dev/null and b/tests/gen/if.63.wasm differ diff --git a/tests/gen/if.64.wasm b/tests/gen/if.64.wasm new file mode 100644 index 00000000..dc586ea1 Binary files /dev/null and b/tests/gen/if.64.wasm differ diff --git a/tests/gen/if.65.wasm b/tests/gen/if.65.wasm new file mode 100644 index 00000000..ab49c466 Binary files /dev/null and b/tests/gen/if.65.wasm differ diff --git a/tests/gen/if.66.wasm b/tests/gen/if.66.wasm new file mode 100644 index 00000000..037bb779 Binary files /dev/null and b/tests/gen/if.66.wasm differ diff --git a/tests/gen/if.67.wasm b/tests/gen/if.67.wasm new file mode 100644 index 00000000..7161fbb0 Binary files /dev/null and b/tests/gen/if.67.wasm differ diff --git a/tests/gen/if.68.wasm b/tests/gen/if.68.wasm new file mode 100644 index 00000000..f64ebb83 Binary files /dev/null and b/tests/gen/if.68.wasm differ diff --git a/tests/gen/if.69.wasm b/tests/gen/if.69.wasm new file mode 100644 index 00000000..b4c76d6e Binary files /dev/null and b/tests/gen/if.69.wasm differ diff --git a/tests/gen/if.7.wat b/tests/gen/if.7.wat new file mode 100644 index 00000000..5f9235fb --- /dev/null +++ b/tests/gen/if.7.wat @@ -0,0 +1 @@ +(func (i32.const 0) (i32.const 1) (if (param $x i32) (then (drop)) (else (drop)))) \ No newline at end of file diff --git a/tests/gen/if.70.wasm b/tests/gen/if.70.wasm new file mode 100644 index 00000000..f581c3e4 Binary files /dev/null and b/tests/gen/if.70.wasm differ diff --git a/tests/gen/if.71.wasm b/tests/gen/if.71.wasm new file mode 100644 index 00000000..e625db67 Binary files /dev/null and b/tests/gen/if.71.wasm differ diff --git a/tests/gen/if.72.wasm b/tests/gen/if.72.wasm new file mode 100644 index 00000000..45f4a25a Binary files /dev/null and b/tests/gen/if.72.wasm differ diff --git a/tests/gen/if.73.wasm b/tests/gen/if.73.wasm new file mode 100644 index 00000000..49adfa4a Binary files /dev/null and b/tests/gen/if.73.wasm differ diff --git a/tests/gen/if.74.wasm b/tests/gen/if.74.wasm new file mode 100644 index 00000000..4f4c6ee5 Binary files /dev/null and b/tests/gen/if.74.wasm differ diff --git a/tests/gen/if.75.wasm b/tests/gen/if.75.wasm new file mode 100644 index 00000000..720ea6e6 Binary files /dev/null and b/tests/gen/if.75.wasm differ diff --git a/tests/gen/if.76.wasm b/tests/gen/if.76.wasm new file mode 100644 index 00000000..c99eaf2c Binary files /dev/null and b/tests/gen/if.76.wasm differ diff --git a/tests/gen/if.77.wasm b/tests/gen/if.77.wasm new file mode 100644 index 00000000..b8e64b17 Binary files /dev/null and b/tests/gen/if.77.wasm differ diff --git a/tests/gen/if.78.wasm b/tests/gen/if.78.wasm new file mode 100644 index 00000000..6712ce37 Binary files /dev/null and b/tests/gen/if.78.wasm differ diff --git a/tests/gen/if.79.wasm b/tests/gen/if.79.wasm new file mode 100644 index 00000000..1350d1b7 Binary files /dev/null and b/tests/gen/if.79.wasm differ diff --git a/tests/gen/if.8.wat b/tests/gen/if.8.wat new file mode 100644 index 00000000..66e12046 --- /dev/null +++ b/tests/gen/if.8.wat @@ -0,0 +1 @@ +(type $sig (func))(func (i32.const 1) (if (type $sig) (result i32) (then (i32.const 0)) (else (i32.const 2))) (unreachable)) \ No newline at end of file diff --git a/tests/gen/if.80.wasm b/tests/gen/if.80.wasm new file mode 100644 index 00000000..6abdf563 Binary files /dev/null and b/tests/gen/if.80.wasm differ diff --git a/tests/gen/if.81.wasm b/tests/gen/if.81.wasm new file mode 100644 index 00000000..6ebf3305 Binary files /dev/null and b/tests/gen/if.81.wasm differ diff --git a/tests/gen/if.82.wasm b/tests/gen/if.82.wasm new file mode 100644 index 00000000..2749cb52 Binary files /dev/null and b/tests/gen/if.82.wasm differ diff --git a/tests/gen/if.83.wasm b/tests/gen/if.83.wasm new file mode 100644 index 00000000..28af597c Binary files /dev/null and b/tests/gen/if.83.wasm differ diff --git a/tests/gen/if.84.wasm b/tests/gen/if.84.wasm new file mode 100644 index 00000000..48b97862 Binary files /dev/null and b/tests/gen/if.84.wasm differ diff --git a/tests/gen/block.8.wasm b/tests/gen/if.85.wasm similarity index 52% rename from tests/gen/block.8.wasm rename to tests/gen/if.85.wasm index 40f30bff..79cee182 100644 Binary files a/tests/gen/block.8.wasm and b/tests/gen/if.85.wasm differ diff --git a/tests/gen/if.86.wasm b/tests/gen/if.86.wasm new file mode 100644 index 00000000..f1fb5069 Binary files /dev/null and b/tests/gen/if.86.wasm differ diff --git a/tests/gen/if.87.wasm b/tests/gen/if.87.wasm new file mode 100644 index 00000000..ece64f60 Binary files /dev/null and b/tests/gen/if.87.wasm differ diff --git a/tests/gen/if.88.wasm b/tests/gen/if.88.wasm new file mode 100644 index 00000000..0ccea05b Binary files /dev/null and b/tests/gen/if.88.wasm differ diff --git a/tests/gen/if.89.wasm b/tests/gen/if.89.wasm new file mode 100644 index 00000000..db22aa7f Binary files /dev/null and b/tests/gen/if.89.wasm differ diff --git a/tests/gen/if.9.wasm b/tests/gen/if.9.wasm deleted file mode 100644 index 53c2a0f7..00000000 Binary files a/tests/gen/if.9.wasm and /dev/null differ diff --git a/tests/gen/if.9.wat b/tests/gen/if.9.wat new file mode 100644 index 00000000..66ce268e --- /dev/null +++ b/tests/gen/if.9.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 1) (if (type $sig) (result i32) (then (i32.const 0)) (else (i32.const 2))) (unreachable)) \ No newline at end of file diff --git a/tests/gen/if.90.wasm b/tests/gen/if.90.wasm new file mode 100644 index 00000000..11cf121f Binary files /dev/null and b/tests/gen/if.90.wasm differ diff --git a/tests/gen/if.91.wasm b/tests/gen/if.91.wasm new file mode 100644 index 00000000..e2599e10 Binary files /dev/null and b/tests/gen/if.91.wasm differ diff --git a/tests/gen/if.92.wasm b/tests/gen/if.92.wasm new file mode 100644 index 00000000..f59e2113 Binary files /dev/null and b/tests/gen/if.92.wasm differ diff --git a/tests/gen/if.93.wasm b/tests/gen/if.93.wasm new file mode 100644 index 00000000..2f7f719c Binary files /dev/null and b/tests/gen/if.93.wasm differ diff --git a/tests/gen/if.94.wasm b/tests/gen/if.94.wasm new file mode 100644 index 00000000..61107b78 Binary files /dev/null and b/tests/gen/if.94.wasm differ diff --git a/tests/gen/if.95.wasm b/tests/gen/if.95.wasm new file mode 100644 index 00000000..2f6a47c8 Binary files /dev/null and b/tests/gen/if.95.wasm differ diff --git a/tests/gen/if.96.wasm b/tests/gen/if.96.wasm new file mode 100644 index 00000000..831a2a7f Binary files /dev/null and b/tests/gen/if.96.wasm differ diff --git a/tests/gen/if.97.wasm b/tests/gen/if.97.wasm new file mode 100644 index 00000000..fa89fb4a Binary files /dev/null and b/tests/gen/if.97.wasm differ diff --git a/tests/gen/if.98.wasm b/tests/gen/if.98.wasm new file mode 100644 index 00000000..7910320c Binary files /dev/null and b/tests/gen/if.98.wasm differ diff --git a/tests/gen/if.99.wasm b/tests/gen/if.99.wasm new file mode 100644 index 00000000..d758ef6c Binary files /dev/null and b/tests/gen/if.99.wasm differ diff --git a/tests/gen/if.json b/tests/gen/if.json index 5a93c3da..4cf184a6 100644 --- a/tests/gen/if.json +++ b/tests/gen/if.json @@ -1,153 +1,204 @@ {"source_filename": "if.wast", "commands": [ {"type": "module", "line": 3, "filename": "if.0.wasm"}, - {"type": "assert_return", "line": 384, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, - {"type": "assert_return", "line": 385, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, - {"type": "assert_return", "line": 386, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "100"}]}, "expected": []}, - {"type": "assert_return", "line": 387, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "4294967294"}]}, "expected": []}, - {"type": "assert_return", "line": 389, "action": {"type": "invoke", "field": "singular", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 390, "action": {"type": "invoke", "field": "singular", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "7"}]}, - {"type": "assert_return", "line": 391, "action": {"type": "invoke", "field": "singular", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "7"}]}, - {"type": "assert_return", "line": 392, "action": {"type": "invoke", "field": "singular", "args": [{"type": "i32", "value": "4294967286"}]}, "expected": [{"type": "i32", "value": "7"}]}, - {"type": "assert_return", "line": 394, "action": {"type": "invoke", "field": "multi", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 395, "action": {"type": "invoke", "field": "multi", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 396, "action": {"type": "invoke", "field": "multi", "args": [{"type": "i32", "value": "13"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 397, "action": {"type": "invoke", "field": "multi", "args": [{"type": "i32", "value": "4294967291"}]}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 399, "action": {"type": "invoke", "field": "nested", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "11"}]}, - {"type": "assert_return", "line": 400, "action": {"type": "invoke", "field": "nested", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "10"}]}, - {"type": "assert_return", "line": 401, "action": {"type": "invoke", "field": "nested", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "10"}]}, - {"type": "assert_return", "line": 402, "action": {"type": "invoke", "field": "nested", "args": [{"type": "i32", "value": "3"}, {"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 403, "action": {"type": "invoke", "field": "nested", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "4294967196"}]}, "expected": [{"type": "i32", "value": "10"}]}, - {"type": "assert_return", "line": 404, "action": {"type": "invoke", "field": "nested", "args": [{"type": "i32", "value": "10"}, {"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 405, "action": {"type": "invoke", "field": "nested", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "10"}]}, - {"type": "assert_return", "line": 406, "action": {"type": "invoke", "field": "nested", "args": [{"type": "i32", "value": "4294967185"}, {"type": "i32", "value": "4294967294"}]}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 408, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 409, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 410, "action": {"type": "invoke", "field": "as-select-mid", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 411, "action": {"type": "invoke", "field": "as-select-mid", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 412, "action": {"type": "invoke", "field": "as-select-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 413, "action": {"type": "invoke", "field": "as-select-last", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 415, "action": {"type": "invoke", "field": "as-loop-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 416, "action": {"type": "invoke", "field": "as-loop-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 417, "action": {"type": "invoke", "field": "as-loop-mid", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 418, "action": {"type": "invoke", "field": "as-loop-mid", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 419, "action": {"type": "invoke", "field": "as-loop-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 420, "action": {"type": "invoke", "field": "as-loop-last", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 422, "action": {"type": "invoke", "field": "as-if-condition", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 423, "action": {"type": "invoke", "field": "as-if-condition", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 425, "action": {"type": "invoke", "field": "as-br_if-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 426, "action": {"type": "invoke", "field": "as-br_if-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 427, "action": {"type": "invoke", "field": "as-br_if-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 428, "action": {"type": "invoke", "field": "as-br_if-last", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 430, "action": {"type": "invoke", "field": "as-br_table-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 431, "action": {"type": "invoke", "field": "as-br_table-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 432, "action": {"type": "invoke", "field": "as-br_table-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 433, "action": {"type": "invoke", "field": "as-br_table-last", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 435, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 436, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 437, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 438, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 439, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_trap", "line": 440, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": [{"type": "i32", "value": "1"}]}, "text": "undefined element", "expected": [{"type": "i32"}]}, - {"type": "assert_return", "line": 442, "action": {"type": "invoke", "field": "as-store-first", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, - {"type": "assert_return", "line": 443, "action": {"type": "invoke", "field": "as-store-first", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, - {"type": "assert_return", "line": 444, "action": {"type": "invoke", "field": "as-store-last", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, - {"type": "assert_return", "line": 445, "action": {"type": "invoke", "field": "as-store-last", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, - {"type": "assert_return", "line": 447, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 448, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 450, "action": {"type": "invoke", "field": "as-call-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 451, "action": {"type": "invoke", "field": "as-call-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 453, "action": {"type": "invoke", "field": "as-return-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 454, "action": {"type": "invoke", "field": "as-return-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 456, "action": {"type": "invoke", "field": "as-drop-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, - {"type": "assert_return", "line": 457, "action": {"type": "invoke", "field": "as-drop-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, - {"type": "assert_return", "line": 459, "action": {"type": "invoke", "field": "as-br-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 460, "action": {"type": "invoke", "field": "as-br-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 462, "action": {"type": "invoke", "field": "as-local.set-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 463, "action": {"type": "invoke", "field": "as-local.set-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 465, "action": {"type": "invoke", "field": "as-local.tee-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 466, "action": {"type": "invoke", "field": "as-local.tee-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 468, "action": {"type": "invoke", "field": "as-global.set-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 469, "action": {"type": "invoke", "field": "as-global.set-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 471, "action": {"type": "invoke", "field": "as-load-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 472, "action": {"type": "invoke", "field": "as-load-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 474, "action": {"type": "invoke", "field": "as-unary-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 475, "action": {"type": "invoke", "field": "as-unary-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 476, "action": {"type": "invoke", "field": "as-unary-operand", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 478, "action": {"type": "invoke", "field": "as-binary-operand", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "15"}]}, - {"type": "assert_return", "line": 479, "action": {"type": "invoke", "field": "as-binary-operand", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "4294967284"}]}, - {"type": "assert_return", "line": 480, "action": {"type": "invoke", "field": "as-binary-operand", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "4294967281"}]}, - {"type": "assert_return", "line": 481, "action": {"type": "invoke", "field": "as-binary-operand", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "12"}]}, - {"type": "assert_return", "line": 483, "action": {"type": "invoke", "field": "as-test-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 484, "action": {"type": "invoke", "field": "as-test-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 486, "action": {"type": "invoke", "field": "as-compare-operand", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 487, "action": {"type": "invoke", "field": "as-compare-operand", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 488, "action": {"type": "invoke", "field": "as-compare-operand", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 489, "action": {"type": "invoke", "field": "as-compare-operand", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 491, "action": {"type": "invoke", "field": "break-bare", "args": []}, "expected": [{"type": "i32", "value": "19"}]}, - {"type": "assert_return", "line": 492, "action": {"type": "invoke", "field": "break-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "18"}]}, - {"type": "assert_return", "line": 493, "action": {"type": "invoke", "field": "break-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "21"}]}, - {"type": "assert_return", "line": 495, "action": {"type": "invoke", "field": "effects", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "4294967282"}]}, - {"type": "assert_return", "line": 496, "action": {"type": "invoke", "field": "effects", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "4294967290"}]}, - {"type": "assert_invalid", "line": 499, "filename": "if.1.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 503, "filename": "if.2.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 507, "filename": "if.3.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 511, "filename": "if.4.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 516, "filename": "if.5.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 520, "filename": "if.6.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 524, "filename": "if.7.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 528, "filename": "if.8.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 533, "filename": "if.9.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 539, "filename": "if.10.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 545, "filename": "if.11.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 551, "filename": "if.12.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 558, "filename": "if.13.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 564, "filename": "if.14.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 570, "filename": "if.15.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 576, "filename": "if.16.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 583, "filename": "if.17.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 589, "filename": "if.18.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 595, "filename": "if.19.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 602, "filename": "if.20.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 608, "filename": "if.21.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 614, "filename": "if.22.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 620, "filename": "if.23.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 627, "filename": "if.24.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 637, "filename": "if.25.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 647, "filename": "if.26.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 658, "filename": "if.27.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 664, "filename": "if.28.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 670, "filename": "if.29.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 679, "filename": "if.30.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 688, "filename": "if.31.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 697, "filename": "if.32.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 707, "filename": "if.33.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 716, "filename": "if.34.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 726, "filename": "if.35.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 734, "filename": "if.36.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 743, "filename": "if.37.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 752, "filename": "if.38.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 761, "filename": "if.39.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 771, "filename": "if.40.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 780, "filename": "if.41.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 789, "filename": "if.42.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 798, "filename": "if.43.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 806, "filename": "if.44.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 814, "filename": "if.45.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 823, "filename": "if.46.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 839, "filename": "if.47.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 848, "filename": "if.48.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 857, "filename": "if.49.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 866, "filename": "if.50.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 875, "filename": "if.51.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 884, "filename": "if.52.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_malformed", "line": 895, "filename": "if.53.wat", "text": "mismatching label", "module_type": "text"}, - {"type": "assert_malformed", "line": 899, "filename": "if.54.wat", "text": "mismatching label", "module_type": "text"}, - {"type": "assert_malformed", "line": 903, "filename": "if.55.wat", "text": "mismatching label", "module_type": "text"}, - {"type": "assert_malformed", "line": 907, "filename": "if.56.wat", "text": "mismatching label", "module_type": "text"}, - {"type": "assert_malformed", "line": 911, "filename": "if.57.wat", "text": "mismatching label", "module_type": "text"}, - {"type": "assert_malformed", "line": 915, "filename": "if.58.wat", "text": "mismatching label", "module_type": "text"}, - {"type": "assert_malformed", "line": 919, "filename": "if.59.wat", "text": "mismatching label", "module_type": "text"}, - {"type": "assert_malformed", "line": 923, "filename": "if.60.wat", "text": "mismatching label", "module_type": "text"}, - {"type": "assert_malformed", "line": 927, "filename": "if.61.wat", "text": "mismatching label", "module_type": "text"}, - {"type": "assert_malformed", "line": 931, "filename": "if.62.wat", "text": "mismatching label", "module_type": "text"}]} + {"type": "assert_return", "line": 545, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, + {"type": "assert_return", "line": 546, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, + {"type": "assert_return", "line": 547, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "100"}]}, "expected": []}, + {"type": "assert_return", "line": 548, "action": {"type": "invoke", "field": "empty", "args": [{"type": "i32", "value": "4294967294"}]}, "expected": []}, + {"type": "assert_return", "line": 550, "action": {"type": "invoke", "field": "singular", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 551, "action": {"type": "invoke", "field": "singular", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 552, "action": {"type": "invoke", "field": "singular", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 553, "action": {"type": "invoke", "field": "singular", "args": [{"type": "i32", "value": "4294967286"}]}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 561, "action": {"type": "invoke", "field": "nested", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "11"}]}, + {"type": "assert_return", "line": 562, "action": {"type": "invoke", "field": "nested", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "10"}]}, + {"type": "assert_return", "line": 563, "action": {"type": "invoke", "field": "nested", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "10"}]}, + {"type": "assert_return", "line": 564, "action": {"type": "invoke", "field": "nested", "args": [{"type": "i32", "value": "3"}, {"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 565, "action": {"type": "invoke", "field": "nested", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "4294967196"}]}, "expected": [{"type": "i32", "value": "10"}]}, + {"type": "assert_return", "line": 566, "action": {"type": "invoke", "field": "nested", "args": [{"type": "i32", "value": "10"}, {"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 567, "action": {"type": "invoke", "field": "nested", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "10"}]}, + {"type": "assert_return", "line": 568, "action": {"type": "invoke", "field": "nested", "args": [{"type": "i32", "value": "4294967185"}, {"type": "i32", "value": "4294967294"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 570, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 571, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 572, "action": {"type": "invoke", "field": "as-select-mid", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 573, "action": {"type": "invoke", "field": "as-select-mid", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 574, "action": {"type": "invoke", "field": "as-select-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 575, "action": {"type": "invoke", "field": "as-select-last", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 577, "action": {"type": "invoke", "field": "as-loop-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 578, "action": {"type": "invoke", "field": "as-loop-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 579, "action": {"type": "invoke", "field": "as-loop-mid", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 580, "action": {"type": "invoke", "field": "as-loop-mid", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 581, "action": {"type": "invoke", "field": "as-loop-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 582, "action": {"type": "invoke", "field": "as-loop-last", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 584, "action": {"type": "invoke", "field": "as-if-condition", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 585, "action": {"type": "invoke", "field": "as-if-condition", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 587, "action": {"type": "invoke", "field": "as-br_if-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 588, "action": {"type": "invoke", "field": "as-br_if-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 589, "action": {"type": "invoke", "field": "as-br_if-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 590, "action": {"type": "invoke", "field": "as-br_if-last", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 592, "action": {"type": "invoke", "field": "as-br_table-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 593, "action": {"type": "invoke", "field": "as-br_table-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 594, "action": {"type": "invoke", "field": "as-br_table-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 595, "action": {"type": "invoke", "field": "as-br_table-last", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 597, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 598, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 599, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 600, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 601, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_trap", "line": 602, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": [{"type": "i32", "value": "1"}]}, "text": "undefined element", "expected": [{"type": "i32"}]}, + {"type": "assert_return", "line": 604, "action": {"type": "invoke", "field": "as-store-first", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, + {"type": "assert_return", "line": 605, "action": {"type": "invoke", "field": "as-store-first", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, + {"type": "assert_return", "line": 606, "action": {"type": "invoke", "field": "as-store-last", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, + {"type": "assert_return", "line": 607, "action": {"type": "invoke", "field": "as-store-last", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, + {"type": "assert_return", "line": 609, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 610, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 612, "action": {"type": "invoke", "field": "as-call-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 613, "action": {"type": "invoke", "field": "as-call-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 615, "action": {"type": "invoke", "field": "as-return-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 616, "action": {"type": "invoke", "field": "as-return-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 618, "action": {"type": "invoke", "field": "as-drop-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, + {"type": "assert_return", "line": 619, "action": {"type": "invoke", "field": "as-drop-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, + {"type": "assert_return", "line": 621, "action": {"type": "invoke", "field": "as-br-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 622, "action": {"type": "invoke", "field": "as-br-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 624, "action": {"type": "invoke", "field": "as-local.set-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 625, "action": {"type": "invoke", "field": "as-local.set-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 627, "action": {"type": "invoke", "field": "as-local.tee-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 628, "action": {"type": "invoke", "field": "as-local.tee-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 630, "action": {"type": "invoke", "field": "as-global.set-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 631, "action": {"type": "invoke", "field": "as-global.set-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 633, "action": {"type": "invoke", "field": "as-load-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 634, "action": {"type": "invoke", "field": "as-load-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 636, "action": {"type": "invoke", "field": "as-unary-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 637, "action": {"type": "invoke", "field": "as-unary-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 638, "action": {"type": "invoke", "field": "as-unary-operand", "args": [{"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 640, "action": {"type": "invoke", "field": "as-binary-operand", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "15"}]}, + {"type": "assert_return", "line": 641, "action": {"type": "invoke", "field": "as-binary-operand", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "4294967284"}]}, + {"type": "assert_return", "line": 642, "action": {"type": "invoke", "field": "as-binary-operand", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "4294967281"}]}, + {"type": "assert_return", "line": 643, "action": {"type": "invoke", "field": "as-binary-operand", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "12"}]}, + {"type": "assert_return", "line": 645, "action": {"type": "invoke", "field": "as-test-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 646, "action": {"type": "invoke", "field": "as-test-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 648, "action": {"type": "invoke", "field": "as-compare-operand", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 649, "action": {"type": "invoke", "field": "as-compare-operand", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 650, "action": {"type": "invoke", "field": "as-compare-operand", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 651, "action": {"type": "invoke", "field": "as-compare-operand", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 663, "action": {"type": "invoke", "field": "break-bare", "args": []}, "expected": [{"type": "i32", "value": "19"}]}, + {"type": "assert_return", "line": 664, "action": {"type": "invoke", "field": "break-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "18"}]}, + {"type": "assert_return", "line": 665, "action": {"type": "invoke", "field": "break-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "21"}]}, + {"type": "assert_return", "line": 688, "action": {"type": "invoke", "field": "effects", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "4294967282"}]}, + {"type": "assert_return", "line": 689, "action": {"type": "invoke", "field": "effects", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "4294967290"}]}, + {"type": "assert_return", "line": 746, "action": {"type": "invoke", "field": "atypical-condition", "args": []}, "expected": []}, + {"type": "assert_malformed", "line": 749, "filename": "if.1.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 758, "filename": "if.2.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 767, "filename": "if.3.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 776, "filename": "if.4.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 785, "filename": "if.5.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 794, "filename": "if.6.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 801, "filename": "if.7.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 809, "filename": "if.8.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_malformed", "line": 819, "filename": "if.9.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_malformed", "line": 829, "filename": "if.10.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_malformed", "line": 839, "filename": "if.11.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_invalid", "line": 849, "filename": "if.12.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 857, "filename": "if.13.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 861, "filename": "if.14.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 865, "filename": "if.15.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 869, "filename": "if.16.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 874, "filename": "if.17.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 878, "filename": "if.18.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 882, "filename": "if.19.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 886, "filename": "if.20.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 891, "filename": "if.21.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 897, "filename": "if.22.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 903, "filename": "if.23.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 909, "filename": "if.24.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 916, "filename": "if.25.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 922, "filename": "if.26.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 928, "filename": "if.27.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 934, "filename": "if.28.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 941, "filename": "if.29.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 947, "filename": "if.30.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 953, "filename": "if.31.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 960, "filename": "if.32.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 966, "filename": "if.33.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 972, "filename": "if.34.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 979, "filename": "if.35.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 985, "filename": "if.36.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 992, "filename": "if.37.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 998, "filename": "if.38.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1004, "filename": "if.39.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1011, "filename": "if.40.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1017, "filename": "if.41.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1023, "filename": "if.42.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1030, "filename": "if.43.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1036, "filename": "if.44.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1042, "filename": "if.45.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1049, "filename": "if.46.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1055, "filename": "if.47.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1061, "filename": "if.48.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1068, "filename": "if.49.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1075, "filename": "if.50.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1082, "filename": "if.51.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1090, "filename": "if.52.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1096, "filename": "if.53.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1102, "filename": "if.54.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1109, "filename": "if.55.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1115, "filename": "if.56.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1122, "filename": "if.57.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1132, "filename": "if.58.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1142, "filename": "if.59.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1153, "filename": "if.60.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1159, "filename": "if.61.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1165, "filename": "if.62.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1171, "filename": "if.63.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1178, "filename": "if.64.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1187, "filename": "if.65.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1196, "filename": "if.66.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1205, "filename": "if.67.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1215, "filename": "if.68.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1224, "filename": "if.69.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1233, "filename": "if.70.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1242, "filename": "if.71.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1252, "filename": "if.72.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1261, "filename": "if.73.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1270, "filename": "if.74.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1279, "filename": "if.75.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1288, "filename": "if.76.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1298, "filename": "if.77.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1309, "filename": "if.78.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1317, "filename": "if.79.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1326, "filename": "if.80.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1335, "filename": "if.81.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1344, "filename": "if.82.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1354, "filename": "if.83.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1363, "filename": "if.84.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1372, "filename": "if.85.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1381, "filename": "if.86.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1389, "filename": "if.87.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1397, "filename": "if.88.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1406, "filename": "if.89.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1422, "filename": "if.90.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1431, "filename": "if.91.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1440, "filename": "if.92.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1449, "filename": "if.93.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1458, "filename": "if.94.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1467, "filename": "if.95.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1477, "filename": "if.96.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1483, "filename": "if.97.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1489, "filename": "if.98.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1495, "filename": "if.99.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1501, "filename": "if.100.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1507, "filename": "if.101.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1513, "filename": "if.102.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 1519, "filename": "if.103.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_malformed", "line": 1526, "filename": "if.104.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 1530, "filename": "if.105.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 1535, "filename": "if.106.wat", "text": "mismatching label", "module_type": "text"}, + {"type": "assert_malformed", "line": 1539, "filename": "if.107.wat", "text": "mismatching label", "module_type": "text"}, + {"type": "assert_malformed", "line": 1543, "filename": "if.108.wat", "text": "mismatching label", "module_type": "text"}, + {"type": "assert_malformed", "line": 1547, "filename": "if.109.wat", "text": "mismatching label", "module_type": "text"}, + {"type": "assert_malformed", "line": 1551, "filename": "if.110.wat", "text": "mismatching label", "module_type": "text"}, + {"type": "assert_malformed", "line": 1555, "filename": "if.111.wat", "text": "mismatching label", "module_type": "text"}, + {"type": "assert_malformed", "line": 1559, "filename": "if.112.wat", "text": "mismatching label", "module_type": "text"}, + {"type": "assert_malformed", "line": 1563, "filename": "if.113.wat", "text": "mismatching label", "module_type": "text"}, + {"type": "assert_malformed", "line": 1567, "filename": "if.114.wat", "text": "mismatching label", "module_type": "text"}, + {"type": "assert_malformed", "line": 1571, "filename": "if.115.wat", "text": "mismatching label", "module_type": "text"}, + {"type": "assert_malformed", "line": 1575, "filename": "if.116.wat", "text": "unexpected token", "module_type": "text"}]} diff --git a/tests/gen/loop.0.wasm b/tests/gen/loop.0.wasm index 3193a750..9248927a 100644 Binary files a/tests/gen/loop.0.wasm and b/tests/gen/loop.0.wasm differ diff --git a/tests/gen/loop.1.wat b/tests/gen/loop.1.wat new file mode 100644 index 00000000..1693aa8b --- /dev/null +++ b/tests/gen/loop.1.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (loop (type $sig) (result i32) (param i32))) \ No newline at end of file diff --git a/tests/gen/loop.10.wat b/tests/gen/loop.10.wat new file mode 100644 index 00000000..28b61ca5 --- /dev/null +++ b/tests/gen/loop.10.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (loop (type $sig) (param i32) (drop)) (unreachable)) \ No newline at end of file diff --git a/tests/gen/loop.11.wat b/tests/gen/loop.11.wat new file mode 100644 index 00000000..02e94715 --- /dev/null +++ b/tests/gen/loop.11.wat @@ -0,0 +1 @@ +(type $sig (func (param i32 i32) (result i32)))(func (i32.const 0) (loop (type $sig) (param i32) (result i32)) (unreachable)) \ No newline at end of file diff --git a/tests/gen/loop.12.wasm b/tests/gen/loop.12.wasm index 7e67be18..f1fddaa6 100644 Binary files a/tests/gen/loop.12.wasm and b/tests/gen/loop.12.wasm differ diff --git a/tests/gen/loop.1.wasm b/tests/gen/loop.13.wasm similarity index 100% rename from tests/gen/loop.1.wasm rename to tests/gen/loop.13.wasm diff --git a/tests/gen/loop.2.wasm b/tests/gen/loop.14.wasm similarity index 100% rename from tests/gen/loop.2.wasm rename to tests/gen/loop.14.wasm diff --git a/tests/gen/loop.3.wasm b/tests/gen/loop.15.wasm similarity index 100% rename from tests/gen/loop.3.wasm rename to tests/gen/loop.15.wasm diff --git a/tests/gen/loop.4.wasm b/tests/gen/loop.16.wasm similarity index 100% rename from tests/gen/loop.4.wasm rename to tests/gen/loop.16.wasm diff --git a/tests/gen/loop.5.wasm b/tests/gen/loop.17.wasm similarity index 100% rename from tests/gen/loop.5.wasm rename to tests/gen/loop.17.wasm diff --git a/tests/gen/loop.18.wasm b/tests/gen/loop.18.wasm new file mode 100644 index 00000000..70cf1ed7 Binary files /dev/null and b/tests/gen/loop.18.wasm differ diff --git a/tests/gen/loop.6.wasm b/tests/gen/loop.19.wasm similarity index 100% rename from tests/gen/loop.6.wasm rename to tests/gen/loop.19.wasm diff --git a/tests/gen/loop.2.wat b/tests/gen/loop.2.wat new file mode 100644 index 00000000..de602653 --- /dev/null +++ b/tests/gen/loop.2.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (loop (param i32) (type $sig) (result i32))) \ No newline at end of file diff --git a/tests/gen/loop.20.wasm b/tests/gen/loop.20.wasm new file mode 100644 index 00000000..d80c5285 Binary files /dev/null and b/tests/gen/loop.20.wasm differ diff --git a/tests/gen/loop.7.wasm b/tests/gen/loop.21.wasm similarity index 100% rename from tests/gen/loop.7.wasm rename to tests/gen/loop.21.wasm diff --git a/tests/gen/loop.22.wasm b/tests/gen/loop.22.wasm new file mode 100644 index 00000000..56725257 Binary files /dev/null and b/tests/gen/loop.22.wasm differ diff --git a/tests/gen/loop.8.wasm b/tests/gen/loop.23.wasm similarity index 100% rename from tests/gen/loop.8.wasm rename to tests/gen/loop.23.wasm diff --git a/tests/gen/loop.24.wasm b/tests/gen/loop.24.wasm new file mode 100644 index 00000000..076322b3 Binary files /dev/null and b/tests/gen/loop.24.wasm differ diff --git a/tests/gen/loop.25.wasm b/tests/gen/loop.25.wasm new file mode 100644 index 00000000..682a2e57 Binary files /dev/null and b/tests/gen/loop.25.wasm differ diff --git a/tests/gen/loop.26.wasm b/tests/gen/loop.26.wasm new file mode 100644 index 00000000..6704caab Binary files /dev/null and b/tests/gen/loop.26.wasm differ diff --git a/tests/gen/loop.9.wasm b/tests/gen/loop.27.wasm similarity index 100% rename from tests/gen/loop.9.wasm rename to tests/gen/loop.27.wasm diff --git a/tests/gen/loop.10.wasm b/tests/gen/loop.28.wasm similarity index 100% rename from tests/gen/loop.10.wasm rename to tests/gen/loop.28.wasm diff --git a/tests/gen/loop.11.wasm b/tests/gen/loop.29.wasm similarity index 100% rename from tests/gen/loop.11.wasm rename to tests/gen/loop.29.wasm diff --git a/tests/gen/loop.3.wat b/tests/gen/loop.3.wat new file mode 100644 index 00000000..922bff30 --- /dev/null +++ b/tests/gen/loop.3.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (loop (param i32) (result i32) (type $sig))) \ No newline at end of file diff --git a/tests/gen/loop.30.wasm b/tests/gen/loop.30.wasm new file mode 100644 index 00000000..7e67be18 Binary files /dev/null and b/tests/gen/loop.30.wasm differ diff --git a/tests/gen/loop.31.wasm b/tests/gen/loop.31.wasm new file mode 100644 index 00000000..f5aa428a Binary files /dev/null and b/tests/gen/loop.31.wasm differ diff --git a/tests/gen/loop.32.wasm b/tests/gen/loop.32.wasm new file mode 100644 index 00000000..dd8bdc49 Binary files /dev/null and b/tests/gen/loop.32.wasm differ diff --git a/tests/gen/loop.33.wasm b/tests/gen/loop.33.wasm new file mode 100644 index 00000000..a3aabb97 Binary files /dev/null and b/tests/gen/loop.33.wasm differ diff --git a/tests/gen/loop.34.wasm b/tests/gen/loop.34.wasm new file mode 100644 index 00000000..71cfb90b Binary files /dev/null and b/tests/gen/loop.34.wasm differ diff --git a/tests/gen/loop.35.wasm b/tests/gen/loop.35.wasm new file mode 100644 index 00000000..13a803cb Binary files /dev/null and b/tests/gen/loop.35.wasm differ diff --git a/tests/gen/loop.36.wasm b/tests/gen/loop.36.wasm new file mode 100644 index 00000000..2f190cc3 Binary files /dev/null and b/tests/gen/loop.36.wasm differ diff --git a/tests/gen/loop.37.wasm b/tests/gen/loop.37.wasm new file mode 100644 index 00000000..a682d7ea Binary files /dev/null and b/tests/gen/loop.37.wasm differ diff --git a/tests/gen/loop.38.wasm b/tests/gen/loop.38.wasm new file mode 100644 index 00000000..be646501 Binary files /dev/null and b/tests/gen/loop.38.wasm differ diff --git a/tests/gen/loop.39.wat b/tests/gen/loop.39.wat new file mode 100644 index 00000000..5b9ac526 --- /dev/null +++ b/tests/gen/loop.39.wat @@ -0,0 +1 @@ +(func (param i32) (result i32) loop (param $x i32) end) \ No newline at end of file diff --git a/tests/gen/loop.4.wat b/tests/gen/loop.4.wat new file mode 100644 index 00000000..86bae91c --- /dev/null +++ b/tests/gen/loop.4.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (loop (result i32) (type $sig) (param i32))) \ No newline at end of file diff --git a/tests/gen/loop.40.wat b/tests/gen/loop.40.wat new file mode 100644 index 00000000..218c5b4a --- /dev/null +++ b/tests/gen/loop.40.wat @@ -0,0 +1 @@ +(func (param i32) (result i32) (loop (param $x i32))) \ No newline at end of file diff --git a/tests/gen/loop.13.wat b/tests/gen/loop.41.wat similarity index 100% rename from tests/gen/loop.13.wat rename to tests/gen/loop.41.wat diff --git a/tests/gen/loop.14.wat b/tests/gen/loop.42.wat similarity index 100% rename from tests/gen/loop.14.wat rename to tests/gen/loop.42.wat diff --git a/tests/gen/loop.5.wat b/tests/gen/loop.5.wat new file mode 100644 index 00000000..c61f24ab --- /dev/null +++ b/tests/gen/loop.5.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (i32.const 0) (loop (result i32) (param i32) (type $sig))) \ No newline at end of file diff --git a/tests/gen/loop.6.wat b/tests/gen/loop.6.wat new file mode 100644 index 00000000..145d9ff0 --- /dev/null +++ b/tests/gen/loop.6.wat @@ -0,0 +1 @@ +(func (i32.const 0) (loop (result i32) (param i32))) \ No newline at end of file diff --git a/tests/gen/loop.7.wat b/tests/gen/loop.7.wat new file mode 100644 index 00000000..6ef8baae --- /dev/null +++ b/tests/gen/loop.7.wat @@ -0,0 +1 @@ +(func (i32.const 0) (loop (param $x i32) (drop))) \ No newline at end of file diff --git a/tests/gen/loop.8.wat b/tests/gen/loop.8.wat new file mode 100644 index 00000000..bf8de2f4 --- /dev/null +++ b/tests/gen/loop.8.wat @@ -0,0 +1 @@ +(type $sig (func))(func (loop (type $sig) (result i32) (i32.const 0)) (unreachable)) \ No newline at end of file diff --git a/tests/gen/loop.9.wat b/tests/gen/loop.9.wat new file mode 100644 index 00000000..1420f64c --- /dev/null +++ b/tests/gen/loop.9.wat @@ -0,0 +1 @@ +(type $sig (func (param i32) (result i32)))(func (loop (type $sig) (result i32) (i32.const 0)) (unreachable)) \ No newline at end of file diff --git a/tests/gen/loop.json b/tests/gen/loop.json index abe67e84..1cfe62f3 100644 --- a/tests/gen/loop.json +++ b/tests/gen/loop.json @@ -1,83 +1,108 @@ {"source_filename": "loop.wast", "commands": [ {"type": "module", "line": 3, "filename": "loop.0.wasm"}, - {"type": "assert_return", "line": 305, "action": {"type": "invoke", "field": "empty", "args": []}, "expected": []}, - {"type": "assert_return", "line": 306, "action": {"type": "invoke", "field": "singular", "args": []}, "expected": [{"type": "i32", "value": "7"}]}, - {"type": "assert_return", "line": 307, "action": {"type": "invoke", "field": "multi", "args": []}, "expected": [{"type": "i32", "value": "8"}]}, - {"type": "assert_return", "line": 308, "action": {"type": "invoke", "field": "nested", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, - {"type": "assert_return", "line": 309, "action": {"type": "invoke", "field": "deep", "args": []}, "expected": [{"type": "i32", "value": "150"}]}, - {"type": "assert_return", "line": 311, "action": {"type": "invoke", "field": "as-select-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 312, "action": {"type": "invoke", "field": "as-select-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 313, "action": {"type": "invoke", "field": "as-select-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 315, "action": {"type": "invoke", "field": "as-if-condition", "args": []}, "expected": []}, - {"type": "assert_return", "line": 316, "action": {"type": "invoke", "field": "as-if-then", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 317, "action": {"type": "invoke", "field": "as-if-else", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 319, "action": {"type": "invoke", "field": "as-br_if-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 320, "action": {"type": "invoke", "field": "as-br_if-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 322, "action": {"type": "invoke", "field": "as-br_table-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 323, "action": {"type": "invoke", "field": "as-br_table-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 325, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 326, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 327, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 329, "action": {"type": "invoke", "field": "as-store-first", "args": []}, "expected": []}, - {"type": "assert_return", "line": 330, "action": {"type": "invoke", "field": "as-store-last", "args": []}, "expected": []}, - {"type": "assert_return", "line": 332, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 333, "action": {"type": "invoke", "field": "as-call-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 334, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 335, "action": {"type": "invoke", "field": "as-drop-operand", "args": []}, "expected": []}, - {"type": "assert_return", "line": 336, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 337, "action": {"type": "invoke", "field": "as-local.set-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 338, "action": {"type": "invoke", "field": "as-local.tee-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 339, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 340, "action": {"type": "invoke", "field": "as-load-operand", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 342, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 343, "action": {"type": "invoke", "field": "as-binary-operand", "args": []}, "expected": [{"type": "i32", "value": "12"}]}, - {"type": "assert_return", "line": 344, "action": {"type": "invoke", "field": "as-test-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 345, "action": {"type": "invoke", "field": "as-compare-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 347, "action": {"type": "invoke", "field": "break-bare", "args": []}, "expected": [{"type": "i32", "value": "19"}]}, - {"type": "assert_return", "line": 348, "action": {"type": "invoke", "field": "break-value", "args": []}, "expected": [{"type": "i32", "value": "18"}]}, - {"type": "assert_return", "line": 349, "action": {"type": "invoke", "field": "break-repeated", "args": []}, "expected": [{"type": "i32", "value": "18"}]}, - {"type": "assert_return", "line": 350, "action": {"type": "invoke", "field": "break-inner", "args": []}, "expected": [{"type": "i32", "value": "31"}]}, - {"type": "assert_return", "line": 352, "action": {"type": "invoke", "field": "effects", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 354, "action": {"type": "invoke", "field": "while", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 355, "action": {"type": "invoke", "field": "while", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 356, "action": {"type": "invoke", "field": "while", "args": [{"type": "i64", "value": "2"}]}, "expected": [{"type": "i64", "value": "2"}]}, - {"type": "assert_return", "line": 357, "action": {"type": "invoke", "field": "while", "args": [{"type": "i64", "value": "3"}]}, "expected": [{"type": "i64", "value": "6"}]}, - {"type": "assert_return", "line": 358, "action": {"type": "invoke", "field": "while", "args": [{"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "120"}]}, - {"type": "assert_return", "line": 359, "action": {"type": "invoke", "field": "while", "args": [{"type": "i64", "value": "20"}]}, "expected": [{"type": "i64", "value": "2432902008176640000"}]}, - {"type": "assert_return", "line": 361, "action": {"type": "invoke", "field": "for", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 362, "action": {"type": "invoke", "field": "for", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, - {"type": "assert_return", "line": 363, "action": {"type": "invoke", "field": "for", "args": [{"type": "i64", "value": "2"}]}, "expected": [{"type": "i64", "value": "2"}]}, - {"type": "assert_return", "line": 364, "action": {"type": "invoke", "field": "for", "args": [{"type": "i64", "value": "3"}]}, "expected": [{"type": "i64", "value": "6"}]}, - {"type": "assert_return", "line": 365, "action": {"type": "invoke", "field": "for", "args": [{"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "120"}]}, - {"type": "assert_return", "line": 366, "action": {"type": "invoke", "field": "for", "args": [{"type": "i64", "value": "20"}]}, "expected": [{"type": "i64", "value": "2432902008176640000"}]}, - {"type": "assert_return", "line": 368, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "1088421888"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 369, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1088421888"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, - {"type": "assert_return", "line": 370, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 371, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "f32", "value": "1073741824"}]}, - {"type": "assert_return", "line": 372, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "f32", "value": "1082130432"}]}, - {"type": "assert_return", "line": 373, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1082130432"}]}, "expected": [{"type": "f32", "value": "1086324736"}]}, - {"type": "assert_return", "line": 374, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1120403456"}]}, "expected": [{"type": "f32", "value": "1159684096"}]}, - {"type": "assert_return", "line": 375, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1120534528"}]}, "expected": [{"type": "f32", "value": "1159892992"}]}, - {"type": "assert_return", "line": 376, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 377, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 378, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1092616192"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 379, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "f32", "value": "1077936128"}]}, - {"type": "assert_return", "line": 380, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "f32", "value": "1082130432"}]}, - {"type": "assert_return", "line": 381, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1088421888"}, {"type": "f32", "value": "1082130432"}]}, "expected": [{"type": "f32", "value": "1092940751"}]}, - {"type": "assert_return", "line": 382, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1088421888"}, {"type": "f32", "value": "1120403456"}]}, "expected": [{"type": "f32", "value": "1166601314"}]}, - {"type": "assert_return", "line": 383, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1088421888"}, {"type": "f32", "value": "1120534528"}]}, "expected": [{"type": "f32", "value": "1159892992"}]}, - {"type": "assert_invalid", "line": 386, "filename": "loop.1.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 390, "filename": "loop.2.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 394, "filename": "loop.3.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 398, "filename": "loop.4.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 403, "filename": "loop.5.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 409, "filename": "loop.6.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 415, "filename": "loop.7.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 421, "filename": "loop.8.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 427, "filename": "loop.9.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 434, "filename": "loop.10.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 443, "filename": "loop.11.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 452, "filename": "loop.12.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_malformed", "line": 463, "filename": "loop.13.wat", "text": "mismatching label", "module_type": "text"}, - {"type": "assert_malformed", "line": 467, "filename": "loop.14.wat", "text": "mismatching label", "module_type": "text"}]} + {"type": "assert_return", "line": 436, "action": {"type": "invoke", "field": "empty", "args": []}, "expected": []}, + {"type": "assert_return", "line": 437, "action": {"type": "invoke", "field": "singular", "args": []}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 440, "action": {"type": "invoke", "field": "nested", "args": []}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 441, "action": {"type": "invoke", "field": "deep", "args": []}, "expected": [{"type": "i32", "value": "150"}]}, + {"type": "assert_return", "line": 443, "action": {"type": "invoke", "field": "as-select-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 444, "action": {"type": "invoke", "field": "as-select-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 445, "action": {"type": "invoke", "field": "as-select-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 447, "action": {"type": "invoke", "field": "as-if-condition", "args": []}, "expected": []}, + {"type": "assert_return", "line": 448, "action": {"type": "invoke", "field": "as-if-then", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 449, "action": {"type": "invoke", "field": "as-if-else", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 451, "action": {"type": "invoke", "field": "as-br_if-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 452, "action": {"type": "invoke", "field": "as-br_if-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 454, "action": {"type": "invoke", "field": "as-br_table-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 455, "action": {"type": "invoke", "field": "as-br_table-last", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 457, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 458, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": []}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 459, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 461, "action": {"type": "invoke", "field": "as-store-first", "args": []}, "expected": []}, + {"type": "assert_return", "line": 462, "action": {"type": "invoke", "field": "as-store-last", "args": []}, "expected": []}, + {"type": "assert_return", "line": 464, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 465, "action": {"type": "invoke", "field": "as-call-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 466, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 467, "action": {"type": "invoke", "field": "as-drop-operand", "args": []}, "expected": []}, + {"type": "assert_return", "line": 468, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 469, "action": {"type": "invoke", "field": "as-local.set-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 470, "action": {"type": "invoke", "field": "as-local.tee-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 471, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 472, "action": {"type": "invoke", "field": "as-load-operand", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 474, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 475, "action": {"type": "invoke", "field": "as-binary-operand", "args": []}, "expected": [{"type": "i32", "value": "12"}]}, + {"type": "assert_return", "line": 476, "action": {"type": "invoke", "field": "as-test-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 477, "action": {"type": "invoke", "field": "as-compare-operand", "args": []}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 483, "action": {"type": "invoke", "field": "break-bare", "args": []}, "expected": [{"type": "i32", "value": "19"}]}, + {"type": "assert_return", "line": 490, "action": {"type": "invoke", "field": "break-inner", "args": []}, "expected": [{"type": "i32", "value": "31"}]}, + {"type": "assert_return", "line": 500, "action": {"type": "invoke", "field": "effects", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 502, "action": {"type": "invoke", "field": "while", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 503, "action": {"type": "invoke", "field": "while", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 504, "action": {"type": "invoke", "field": "while", "args": [{"type": "i64", "value": "2"}]}, "expected": [{"type": "i64", "value": "2"}]}, + {"type": "assert_return", "line": 505, "action": {"type": "invoke", "field": "while", "args": [{"type": "i64", "value": "3"}]}, "expected": [{"type": "i64", "value": "6"}]}, + {"type": "assert_return", "line": 506, "action": {"type": "invoke", "field": "while", "args": [{"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "120"}]}, + {"type": "assert_return", "line": 507, "action": {"type": "invoke", "field": "while", "args": [{"type": "i64", "value": "20"}]}, "expected": [{"type": "i64", "value": "2432902008176640000"}]}, + {"type": "assert_return", "line": 509, "action": {"type": "invoke", "field": "for", "args": [{"type": "i64", "value": "0"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 510, "action": {"type": "invoke", "field": "for", "args": [{"type": "i64", "value": "1"}]}, "expected": [{"type": "i64", "value": "1"}]}, + {"type": "assert_return", "line": 511, "action": {"type": "invoke", "field": "for", "args": [{"type": "i64", "value": "2"}]}, "expected": [{"type": "i64", "value": "2"}]}, + {"type": "assert_return", "line": 512, "action": {"type": "invoke", "field": "for", "args": [{"type": "i64", "value": "3"}]}, "expected": [{"type": "i64", "value": "6"}]}, + {"type": "assert_return", "line": 513, "action": {"type": "invoke", "field": "for", "args": [{"type": "i64", "value": "5"}]}, "expected": [{"type": "i64", "value": "120"}]}, + {"type": "assert_return", "line": 514, "action": {"type": "invoke", "field": "for", "args": [{"type": "i64", "value": "20"}]}, "expected": [{"type": "i64", "value": "2432902008176640000"}]}, + {"type": "assert_return", "line": 516, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "0"}, {"type": "f32", "value": "1088421888"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 517, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1088421888"}, {"type": "f32", "value": "0"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_return", "line": 518, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 519, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "f32", "value": "1073741824"}]}, + {"type": "assert_return", "line": 520, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "f32", "value": "1082130432"}]}, + {"type": "assert_return", "line": 521, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1082130432"}]}, "expected": [{"type": "f32", "value": "1086324736"}]}, + {"type": "assert_return", "line": 522, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1120403456"}]}, "expected": [{"type": "f32", "value": "1159684096"}]}, + {"type": "assert_return", "line": 523, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1120534528"}]}, "expected": [{"type": "f32", "value": "1159892992"}]}, + {"type": "assert_return", "line": 524, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 525, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1077936128"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 526, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1092616192"}, {"type": "f32", "value": "1065353216"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 527, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1073741824"}]}, "expected": [{"type": "f32", "value": "1077936128"}]}, + {"type": "assert_return", "line": 528, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "1077936128"}]}, "expected": [{"type": "f32", "value": "1082130432"}]}, + {"type": "assert_return", "line": 529, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1088421888"}, {"type": "f32", "value": "1082130432"}]}, "expected": [{"type": "f32", "value": "1092940751"}]}, + {"type": "assert_return", "line": 530, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1088421888"}, {"type": "f32", "value": "1120403456"}]}, "expected": [{"type": "f32", "value": "1166601314"}]}, + {"type": "assert_return", "line": 531, "action": {"type": "invoke", "field": "nesting", "args": [{"type": "f32", "value": "1088421888"}, {"type": "f32", "value": "1120534528"}]}, "expected": [{"type": "f32", "value": "1159892992"}]}, + {"type": "assert_malformed", "line": 537, "filename": "loop.1.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 544, "filename": "loop.2.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 551, "filename": "loop.3.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 558, "filename": "loop.4.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 565, "filename": "loop.5.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 572, "filename": "loop.6.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 579, "filename": "loop.7.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 583, "filename": "loop.8.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_malformed", "line": 590, "filename": "loop.9.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_malformed", "line": 597, "filename": "loop.10.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_malformed", "line": 604, "filename": "loop.11.wat", "text": "inline function type", "module_type": "text"}, + {"type": "assert_invalid", "line": 612, "filename": "loop.12.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 620, "filename": "loop.13.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 624, "filename": "loop.14.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 628, "filename": "loop.15.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 632, "filename": "loop.16.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 637, "filename": "loop.17.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 643, "filename": "loop.18.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 649, "filename": "loop.19.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 655, "filename": "loop.20.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 661, "filename": "loop.21.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 667, "filename": "loop.22.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 673, "filename": "loop.23.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 679, "filename": "loop.24.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 685, "filename": "loop.25.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 691, "filename": "loop.26.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 697, "filename": "loop.27.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 704, "filename": "loop.28.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 713, "filename": "loop.29.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 722, "filename": "loop.30.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 732, "filename": "loop.31.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 738, "filename": "loop.32.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 744, "filename": "loop.33.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 750, "filename": "loop.34.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 756, "filename": "loop.35.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 762, "filename": "loop.36.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 768, "filename": "loop.37.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 774, "filename": "loop.38.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_malformed", "line": 781, "filename": "loop.39.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 785, "filename": "loop.40.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 790, "filename": "loop.41.wat", "text": "mismatching label", "module_type": "text"}, + {"type": "assert_malformed", "line": 794, "filename": "loop.42.wat", "text": "mismatching label", "module_type": "text"}]} diff --git a/tests/gen/memory.34.wasm b/tests/gen/memory.34.wasm new file mode 100644 index 00000000..d55916df Binary files /dev/null and b/tests/gen/memory.34.wasm differ diff --git a/tests/gen/memory.json b/tests/gen/memory.json index f76e22e2..027a4263 100644 --- a/tests/gen/memory.json +++ b/tests/gen/memory.json @@ -78,4 +78,13 @@ {"type": "assert_return", "line": 227, "action": {"type": "invoke", "field": "i64_load32_u", "args": [{"type": "i64", "value": "3771275841602506223"}]}, "expected": [{"type": "i64", "value": "2562379247"}]}, {"type": "assert_malformed", "line": 231, "filename": "memory.31.wat", "text": "duplicate memory", "module_type": "text"}, {"type": "assert_malformed", "line": 235, "filename": "memory.32.wat", "text": "duplicate memory", "module_type": "text"}, - {"type": "assert_malformed", "line": 239, "filename": "memory.33.wat", "text": "duplicate memory", "module_type": "text"}]} + {"type": "assert_malformed", "line": 239, "filename": "memory.33.wat", "text": "duplicate memory", "module_type": "text"}, + {"type": "module", "line": 246, "filename": "memory.34.wasm"}, + {"type": "assert_return", "line": 260, "action": {"type": "invoke", "field": "load", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 261, "action": {"type": "invoke", "field": "load", "args": [{"type": "i32", "value": "10000"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 262, "action": {"type": "invoke", "field": "load", "args": [{"type": "i32", "value": "20000"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 263, "action": {"type": "invoke", "field": "load", "args": [{"type": "i32", "value": "30000"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 264, "action": {"type": "invoke", "field": "load", "args": [{"type": "i32", "value": "40000"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 265, "action": {"type": "invoke", "field": "load", "args": [{"type": "i32", "value": "50000"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 266, "action": {"type": "invoke", "field": "load", "args": [{"type": "i32", "value": "60000"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 267, "action": {"type": "invoke", "field": "load", "args": [{"type": "i32", "value": "65535"}]}, "expected": [{"type": "i32", "value": "0"}]}]} diff --git a/tests/gen/memory_grow.10.wasm b/tests/gen/memory_grow.10.wasm new file mode 100644 index 00000000..98f783cc Binary files /dev/null and b/tests/gen/memory_grow.10.wasm differ diff --git a/tests/gen/memory_grow.11.wasm b/tests/gen/memory_grow.11.wasm new file mode 100644 index 00000000..95394ad8 Binary files /dev/null and b/tests/gen/memory_grow.11.wasm differ diff --git a/tests/gen/memory_grow.12.wasm b/tests/gen/memory_grow.12.wasm new file mode 100644 index 00000000..5a42efe2 Binary files /dev/null and b/tests/gen/memory_grow.12.wasm differ diff --git a/tests/gen/memory_grow.5.wasm b/tests/gen/memory_grow.5.wasm index 4381ce8b..d5ef36b2 100644 Binary files a/tests/gen/memory_grow.5.wasm and b/tests/gen/memory_grow.5.wasm differ diff --git a/tests/gen/memory_grow.6.wasm b/tests/gen/memory_grow.6.wasm index d208854d..1acdfe38 100644 Binary files a/tests/gen/memory_grow.6.wasm and b/tests/gen/memory_grow.6.wasm differ diff --git a/tests/gen/memory_grow.7.wasm b/tests/gen/memory_grow.7.wasm index 6e4e59f0..7ee8af77 100644 Binary files a/tests/gen/memory_grow.7.wasm and b/tests/gen/memory_grow.7.wasm differ diff --git a/tests/gen/memory_grow.8.wasm b/tests/gen/memory_grow.8.wasm index 66653f89..daf91409 100644 Binary files a/tests/gen/memory_grow.8.wasm and b/tests/gen/memory_grow.8.wasm differ diff --git a/tests/gen/memory_grow.9.wasm b/tests/gen/memory_grow.9.wasm index 98f783cc..a532dd62 100644 Binary files a/tests/gen/memory_grow.9.wasm and b/tests/gen/memory_grow.9.wasm differ diff --git a/tests/gen/memory_grow.json b/tests/gen/memory_grow.json index 1ab81919..52d67c54 100644 --- a/tests/gen/memory_grow.json +++ b/tests/gen/memory_grow.json @@ -89,8 +89,13 @@ {"type": "assert_return", "line": 306, "action": {"type": "invoke", "field": "as-compare-left", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, {"type": "assert_return", "line": 307, "action": {"type": "invoke", "field": "as-compare-right", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, {"type": "assert_return", "line": 309, "action": {"type": "invoke", "field": "as-memory.grow-size", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_invalid", "line": 313, "filename": "memory_grow.5.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 322, "filename": "memory_grow.6.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 332, "filename": "memory_grow.7.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 342, "filename": "memory_grow.8.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 355, "filename": "memory_grow.9.wasm", "text": "type mismatch", "module_type": "binary"}]} + {"type": "module", "line": 312, "name": "$Mgm", "filename": "memory_grow.5.wasm"}, + {"type": "register", "line": 316, "name": "$Mgm", "as": "grown-memory"}, + {"type": "assert_return", "line": 317, "action": {"type": "invoke", "module": "$Mgm", "field": "grow", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_invalid", "line": 335, "filename": "memory_grow.6.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 344, "filename": "memory_grow.7.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 354, "filename": "memory_grow.8.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 364, "filename": "memory_grow.9.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 375, "filename": "memory_grow.10.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 385, "filename": "memory_grow.11.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 394, "filename": "memory_grow.12.wasm", "text": "type mismatch", "module_type": "binary"}]} diff --git a/tests/gen/memory_init.0.wasm b/tests/gen/memory_init.0.wasm new file mode 100644 index 00000000..a72bf610 Binary files /dev/null and b/tests/gen/memory_init.0.wasm differ diff --git a/tests/gen/memory_init.1.wasm b/tests/gen/memory_init.1.wasm new file mode 100644 index 00000000..e2bc5368 Binary files /dev/null and b/tests/gen/memory_init.1.wasm differ diff --git a/tests/gen/memory_init.10.wasm b/tests/gen/memory_init.10.wasm new file mode 100644 index 00000000..5287d0b5 Binary files /dev/null and b/tests/gen/memory_init.10.wasm differ diff --git a/tests/gen/memory_init.11.wasm b/tests/gen/memory_init.11.wasm new file mode 100644 index 00000000..a8dec564 Binary files /dev/null and b/tests/gen/memory_init.11.wasm differ diff --git a/tests/gen/memory_init.12.wasm b/tests/gen/memory_init.12.wasm new file mode 100644 index 00000000..26397b3d Binary files /dev/null and b/tests/gen/memory_init.12.wasm differ diff --git a/tests/gen/memory_init.13.wasm b/tests/gen/memory_init.13.wasm new file mode 100644 index 00000000..d046a8d4 Binary files /dev/null and b/tests/gen/memory_init.13.wasm differ diff --git a/tests/gen/memory_init.14.wasm b/tests/gen/memory_init.14.wasm new file mode 100644 index 00000000..51d80802 Binary files /dev/null and b/tests/gen/memory_init.14.wasm differ diff --git a/tests/gen/memory_init.15.wasm b/tests/gen/memory_init.15.wasm new file mode 100644 index 00000000..ccef7041 Binary files /dev/null and b/tests/gen/memory_init.15.wasm differ diff --git a/tests/gen/memory_init.16.wasm b/tests/gen/memory_init.16.wasm new file mode 100644 index 00000000..ab456e02 Binary files /dev/null and b/tests/gen/memory_init.16.wasm differ diff --git a/tests/gen/memory_init.17.wasm b/tests/gen/memory_init.17.wasm new file mode 100644 index 00000000..95585f37 Binary files /dev/null and b/tests/gen/memory_init.17.wasm differ diff --git a/tests/gen/memory_init.18.wasm b/tests/gen/memory_init.18.wasm new file mode 100644 index 00000000..d27974d4 Binary files /dev/null and b/tests/gen/memory_init.18.wasm differ diff --git a/tests/gen/memory_init.19.wasm b/tests/gen/memory_init.19.wasm new file mode 100644 index 00000000..69d64b6b Binary files /dev/null and b/tests/gen/memory_init.19.wasm differ diff --git a/tests/gen/memory_init.2.wasm b/tests/gen/memory_init.2.wasm new file mode 100644 index 00000000..1b725e16 Binary files /dev/null and b/tests/gen/memory_init.2.wasm differ diff --git a/tests/gen/memory_init.20.wasm b/tests/gen/memory_init.20.wasm new file mode 100644 index 00000000..3b5e9d26 Binary files /dev/null and b/tests/gen/memory_init.20.wasm differ diff --git a/tests/gen/memory_init.21.wasm b/tests/gen/memory_init.21.wasm new file mode 100644 index 00000000..9d671463 Binary files /dev/null and b/tests/gen/memory_init.21.wasm differ diff --git a/tests/gen/memory_init.22.wasm b/tests/gen/memory_init.22.wasm new file mode 100644 index 00000000..c3ce5b71 Binary files /dev/null and b/tests/gen/memory_init.22.wasm differ diff --git a/tests/gen/memory_init.23.wasm b/tests/gen/memory_init.23.wasm new file mode 100644 index 00000000..8d9643bf Binary files /dev/null and b/tests/gen/memory_init.23.wasm differ diff --git a/tests/gen/memory_init.24.wasm b/tests/gen/memory_init.24.wasm new file mode 100644 index 00000000..a8c9390e Binary files /dev/null and b/tests/gen/memory_init.24.wasm differ diff --git a/tests/gen/memory_init.25.wasm b/tests/gen/memory_init.25.wasm new file mode 100644 index 00000000..dcf889e7 Binary files /dev/null and b/tests/gen/memory_init.25.wasm differ diff --git a/tests/gen/memory_init.26.wasm b/tests/gen/memory_init.26.wasm new file mode 100644 index 00000000..5872d77e Binary files /dev/null and b/tests/gen/memory_init.26.wasm differ diff --git a/tests/gen/memory_init.27.wasm b/tests/gen/memory_init.27.wasm new file mode 100644 index 00000000..bec609ad Binary files /dev/null and b/tests/gen/memory_init.27.wasm differ diff --git a/tests/gen/memory_init.28.wasm b/tests/gen/memory_init.28.wasm new file mode 100644 index 00000000..50ac23b3 Binary files /dev/null and b/tests/gen/memory_init.28.wasm differ diff --git a/tests/gen/memory_init.29.wasm b/tests/gen/memory_init.29.wasm new file mode 100644 index 00000000..ac13793d Binary files /dev/null and b/tests/gen/memory_init.29.wasm differ diff --git a/tests/gen/memory_init.3.wasm b/tests/gen/memory_init.3.wasm new file mode 100644 index 00000000..bf52c264 Binary files /dev/null and b/tests/gen/memory_init.3.wasm differ diff --git a/tests/gen/memory_init.30.wasm b/tests/gen/memory_init.30.wasm new file mode 100644 index 00000000..308d9ebb Binary files /dev/null and b/tests/gen/memory_init.30.wasm differ diff --git a/tests/gen/memory_init.31.wasm b/tests/gen/memory_init.31.wasm new file mode 100644 index 00000000..22eb4cac Binary files /dev/null and b/tests/gen/memory_init.31.wasm differ diff --git a/tests/gen/memory_init.32.wasm b/tests/gen/memory_init.32.wasm new file mode 100644 index 00000000..5c856adf Binary files /dev/null and b/tests/gen/memory_init.32.wasm differ diff --git a/tests/gen/memory_init.33.wasm b/tests/gen/memory_init.33.wasm new file mode 100644 index 00000000..eee60611 Binary files /dev/null and b/tests/gen/memory_init.33.wasm differ diff --git a/tests/gen/memory_init.34.wasm b/tests/gen/memory_init.34.wasm new file mode 100644 index 00000000..2e7b6f36 Binary files /dev/null and b/tests/gen/memory_init.34.wasm differ diff --git a/tests/gen/memory_init.35.wasm b/tests/gen/memory_init.35.wasm new file mode 100644 index 00000000..e2a78c94 Binary files /dev/null and b/tests/gen/memory_init.35.wasm differ diff --git a/tests/gen/memory_init.36.wasm b/tests/gen/memory_init.36.wasm new file mode 100644 index 00000000..2ebb242c Binary files /dev/null and b/tests/gen/memory_init.36.wasm differ diff --git a/tests/gen/memory_init.37.wasm b/tests/gen/memory_init.37.wasm new file mode 100644 index 00000000..53024663 Binary files /dev/null and b/tests/gen/memory_init.37.wasm differ diff --git a/tests/gen/memory_init.38.wasm b/tests/gen/memory_init.38.wasm new file mode 100644 index 00000000..aeefdd29 Binary files /dev/null and b/tests/gen/memory_init.38.wasm differ diff --git a/tests/gen/memory_init.39.wasm b/tests/gen/memory_init.39.wasm new file mode 100644 index 00000000..4c2c494e Binary files /dev/null and b/tests/gen/memory_init.39.wasm differ diff --git a/tests/gen/memory_init.4.wasm b/tests/gen/memory_init.4.wasm new file mode 100644 index 00000000..97880c9a Binary files /dev/null and b/tests/gen/memory_init.4.wasm differ diff --git a/tests/gen/memory_init.40.wasm b/tests/gen/memory_init.40.wasm new file mode 100644 index 00000000..468ef9ec Binary files /dev/null and b/tests/gen/memory_init.40.wasm differ diff --git a/tests/gen/memory_init.41.wasm b/tests/gen/memory_init.41.wasm new file mode 100644 index 00000000..4665c891 Binary files /dev/null and b/tests/gen/memory_init.41.wasm differ diff --git a/tests/gen/memory_init.42.wasm b/tests/gen/memory_init.42.wasm new file mode 100644 index 00000000..884d1920 Binary files /dev/null and b/tests/gen/memory_init.42.wasm differ diff --git a/tests/gen/memory_init.43.wasm b/tests/gen/memory_init.43.wasm new file mode 100644 index 00000000..eab7c05d Binary files /dev/null and b/tests/gen/memory_init.43.wasm differ diff --git a/tests/gen/memory_init.44.wasm b/tests/gen/memory_init.44.wasm new file mode 100644 index 00000000..6ebd6320 Binary files /dev/null and b/tests/gen/memory_init.44.wasm differ diff --git a/tests/gen/memory_init.45.wasm b/tests/gen/memory_init.45.wasm new file mode 100644 index 00000000..dd1d0202 Binary files /dev/null and b/tests/gen/memory_init.45.wasm differ diff --git a/tests/gen/memory_init.46.wasm b/tests/gen/memory_init.46.wasm new file mode 100644 index 00000000..ba4fc614 Binary files /dev/null and b/tests/gen/memory_init.46.wasm differ diff --git a/tests/gen/memory_init.47.wasm b/tests/gen/memory_init.47.wasm new file mode 100644 index 00000000..87e9f4e9 Binary files /dev/null and b/tests/gen/memory_init.47.wasm differ diff --git a/tests/gen/memory_init.48.wasm b/tests/gen/memory_init.48.wasm new file mode 100644 index 00000000..9e922739 Binary files /dev/null and b/tests/gen/memory_init.48.wasm differ diff --git a/tests/gen/memory_init.49.wasm b/tests/gen/memory_init.49.wasm new file mode 100644 index 00000000..8588c100 Binary files /dev/null and b/tests/gen/memory_init.49.wasm differ diff --git a/tests/gen/memory_init.5.wasm b/tests/gen/memory_init.5.wasm new file mode 100644 index 00000000..2fb1cbcd Binary files /dev/null and b/tests/gen/memory_init.5.wasm differ diff --git a/tests/gen/memory_init.50.wasm b/tests/gen/memory_init.50.wasm new file mode 100644 index 00000000..a642fd7b Binary files /dev/null and b/tests/gen/memory_init.50.wasm differ diff --git a/tests/gen/memory_init.51.wasm b/tests/gen/memory_init.51.wasm new file mode 100644 index 00000000..3dbc71e1 Binary files /dev/null and b/tests/gen/memory_init.51.wasm differ diff --git a/tests/gen/memory_init.52.wasm b/tests/gen/memory_init.52.wasm new file mode 100644 index 00000000..a40632da Binary files /dev/null and b/tests/gen/memory_init.52.wasm differ diff --git a/tests/gen/memory_init.53.wasm b/tests/gen/memory_init.53.wasm new file mode 100644 index 00000000..1ec14b85 Binary files /dev/null and b/tests/gen/memory_init.53.wasm differ diff --git a/tests/gen/memory_init.54.wasm b/tests/gen/memory_init.54.wasm new file mode 100644 index 00000000..fd7faa1c Binary files /dev/null and b/tests/gen/memory_init.54.wasm differ diff --git a/tests/gen/memory_init.55.wasm b/tests/gen/memory_init.55.wasm new file mode 100644 index 00000000..f8a6d4da Binary files /dev/null and b/tests/gen/memory_init.55.wasm differ diff --git a/tests/gen/memory_init.56.wasm b/tests/gen/memory_init.56.wasm new file mode 100644 index 00000000..dc379521 Binary files /dev/null and b/tests/gen/memory_init.56.wasm differ diff --git a/tests/gen/memory_init.57.wasm b/tests/gen/memory_init.57.wasm new file mode 100644 index 00000000..f053549f Binary files /dev/null and b/tests/gen/memory_init.57.wasm differ diff --git a/tests/gen/memory_init.58.wasm b/tests/gen/memory_init.58.wasm new file mode 100644 index 00000000..a501abbf Binary files /dev/null and b/tests/gen/memory_init.58.wasm differ diff --git a/tests/gen/memory_init.59.wasm b/tests/gen/memory_init.59.wasm new file mode 100644 index 00000000..912558bc Binary files /dev/null and b/tests/gen/memory_init.59.wasm differ diff --git a/tests/gen/memory_init.6.wasm b/tests/gen/memory_init.6.wasm new file mode 100644 index 00000000..d1970014 Binary files /dev/null and b/tests/gen/memory_init.6.wasm differ diff --git a/tests/gen/memory_init.60.wasm b/tests/gen/memory_init.60.wasm new file mode 100644 index 00000000..6cfa4f7e Binary files /dev/null and b/tests/gen/memory_init.60.wasm differ diff --git a/tests/gen/memory_init.61.wasm b/tests/gen/memory_init.61.wasm new file mode 100644 index 00000000..70e31739 Binary files /dev/null and b/tests/gen/memory_init.61.wasm differ diff --git a/tests/gen/memory_init.62.wasm b/tests/gen/memory_init.62.wasm new file mode 100644 index 00000000..f8f2203c Binary files /dev/null and b/tests/gen/memory_init.62.wasm differ diff --git a/tests/gen/memory_init.63.wasm b/tests/gen/memory_init.63.wasm new file mode 100644 index 00000000..2e1baf4e Binary files /dev/null and b/tests/gen/memory_init.63.wasm differ diff --git a/tests/gen/memory_init.64.wasm b/tests/gen/memory_init.64.wasm new file mode 100644 index 00000000..2a082aed Binary files /dev/null and b/tests/gen/memory_init.64.wasm differ diff --git a/tests/gen/memory_init.65.wasm b/tests/gen/memory_init.65.wasm new file mode 100644 index 00000000..a07bcc7f Binary files /dev/null and b/tests/gen/memory_init.65.wasm differ diff --git a/tests/gen/memory_init.66.wasm b/tests/gen/memory_init.66.wasm new file mode 100644 index 00000000..88bdb2c3 Binary files /dev/null and b/tests/gen/memory_init.66.wasm differ diff --git a/tests/gen/memory_init.67.wasm b/tests/gen/memory_init.67.wasm new file mode 100644 index 00000000..f8e1a8f7 Binary files /dev/null and b/tests/gen/memory_init.67.wasm differ diff --git a/tests/gen/memory_init.68.wasm b/tests/gen/memory_init.68.wasm new file mode 100644 index 00000000..d4aa510a Binary files /dev/null and b/tests/gen/memory_init.68.wasm differ diff --git a/tests/gen/memory_init.69.wasm b/tests/gen/memory_init.69.wasm new file mode 100644 index 00000000..12368506 Binary files /dev/null and b/tests/gen/memory_init.69.wasm differ diff --git a/tests/gen/memory_init.7.wasm b/tests/gen/memory_init.7.wasm new file mode 100644 index 00000000..3c1d05f7 Binary files /dev/null and b/tests/gen/memory_init.7.wasm differ diff --git a/tests/gen/memory_init.70.wasm b/tests/gen/memory_init.70.wasm new file mode 100644 index 00000000..ade47939 Binary files /dev/null and b/tests/gen/memory_init.70.wasm differ diff --git a/tests/gen/memory_init.71.wasm b/tests/gen/memory_init.71.wasm new file mode 100644 index 00000000..3c5e9265 Binary files /dev/null and b/tests/gen/memory_init.71.wasm differ diff --git a/tests/gen/memory_init.72.wasm b/tests/gen/memory_init.72.wasm new file mode 100644 index 00000000..234d7223 Binary files /dev/null and b/tests/gen/memory_init.72.wasm differ diff --git a/tests/gen/memory_init.73.wasm b/tests/gen/memory_init.73.wasm new file mode 100644 index 00000000..b155c303 Binary files /dev/null and b/tests/gen/memory_init.73.wasm differ diff --git a/tests/gen/memory_init.74.wasm b/tests/gen/memory_init.74.wasm new file mode 100644 index 00000000..8fc73e1f Binary files /dev/null and b/tests/gen/memory_init.74.wasm differ diff --git a/tests/gen/memory_init.75.wasm b/tests/gen/memory_init.75.wasm new file mode 100644 index 00000000..264cd318 Binary files /dev/null and b/tests/gen/memory_init.75.wasm differ diff --git a/tests/gen/memory_init.76.wasm b/tests/gen/memory_init.76.wasm new file mode 100644 index 00000000..0fac0522 Binary files /dev/null and b/tests/gen/memory_init.76.wasm differ diff --git a/tests/gen/memory_init.77.wasm b/tests/gen/memory_init.77.wasm new file mode 100644 index 00000000..99f98b11 Binary files /dev/null and b/tests/gen/memory_init.77.wasm differ diff --git a/tests/gen/memory_init.78.wasm b/tests/gen/memory_init.78.wasm new file mode 100644 index 00000000..6cdb1c0b Binary files /dev/null and b/tests/gen/memory_init.78.wasm differ diff --git a/tests/gen/memory_init.79.wasm b/tests/gen/memory_init.79.wasm new file mode 100644 index 00000000..68a36d90 Binary files /dev/null and b/tests/gen/memory_init.79.wasm differ diff --git a/tests/gen/memory_init.8.wasm b/tests/gen/memory_init.8.wasm new file mode 100644 index 00000000..e19033dd Binary files /dev/null and b/tests/gen/memory_init.8.wasm differ diff --git a/tests/gen/memory_init.80.wasm b/tests/gen/memory_init.80.wasm new file mode 100644 index 00000000..1afbfb5d Binary files /dev/null and b/tests/gen/memory_init.80.wasm differ diff --git a/tests/gen/memory_init.81.wasm b/tests/gen/memory_init.81.wasm new file mode 100644 index 00000000..107df956 Binary files /dev/null and b/tests/gen/memory_init.81.wasm differ diff --git a/tests/gen/memory_init.82.wasm b/tests/gen/memory_init.82.wasm new file mode 100644 index 00000000..43c778fd Binary files /dev/null and b/tests/gen/memory_init.82.wasm differ diff --git a/tests/gen/memory_init.83.wasm b/tests/gen/memory_init.83.wasm new file mode 100644 index 00000000..b3720634 Binary files /dev/null and b/tests/gen/memory_init.83.wasm differ diff --git a/tests/gen/memory_init.84.wasm b/tests/gen/memory_init.84.wasm new file mode 100644 index 00000000..a3cd4ff2 Binary files /dev/null and b/tests/gen/memory_init.84.wasm differ diff --git a/tests/gen/memory_init.85.wasm b/tests/gen/memory_init.85.wasm new file mode 100644 index 00000000..a3cd4ff2 Binary files /dev/null and b/tests/gen/memory_init.85.wasm differ diff --git a/tests/gen/memory_init.86.wasm b/tests/gen/memory_init.86.wasm new file mode 100644 index 00000000..a3cd4ff2 Binary files /dev/null and b/tests/gen/memory_init.86.wasm differ diff --git a/tests/gen/memory_init.87.wasm b/tests/gen/memory_init.87.wasm new file mode 100644 index 00000000..a3cd4ff2 Binary files /dev/null and b/tests/gen/memory_init.87.wasm differ diff --git a/tests/gen/memory_init.88.wasm b/tests/gen/memory_init.88.wasm new file mode 100644 index 00000000..8071fef6 Binary files /dev/null and b/tests/gen/memory_init.88.wasm differ diff --git a/tests/gen/memory_init.89.wasm b/tests/gen/memory_init.89.wasm new file mode 100644 index 00000000..8071fef6 Binary files /dev/null and b/tests/gen/memory_init.89.wasm differ diff --git a/tests/gen/memory_init.9.wasm b/tests/gen/memory_init.9.wasm new file mode 100644 index 00000000..aebc7715 Binary files /dev/null and b/tests/gen/memory_init.9.wasm differ diff --git a/tests/gen/memory_init.90.wasm b/tests/gen/memory_init.90.wasm new file mode 100644 index 00000000..31e43458 Binary files /dev/null and b/tests/gen/memory_init.90.wasm differ diff --git a/tests/gen/memory_init.json b/tests/gen/memory_init.json new file mode 100644 index 00000000..d31cd941 --- /dev/null +++ b/tests/gen/memory_init.json @@ -0,0 +1,242 @@ +{"source_filename": "memory_init.wast", + "commands": [ + {"type": "module", "line": 6, "filename": "memory_init.0.wasm"}, + {"type": "action", "line": 17, "action": {"type": "invoke", "field": "test", "args": []}, "expected": []}, + {"type": "assert_return", "line": 19, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 20, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 21, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 22, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 23, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "i32", "value": "4"}]}, + {"type": "assert_return", "line": 24, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 25, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 26, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "7"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 27, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "8"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 28, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "9"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 29, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 30, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 31, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "12"}]}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 32, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "13"}]}, "expected": [{"type": "i32", "value": "5"}]}, + {"type": "assert_return", "line": 33, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "14"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 34, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "15"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 35, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "16"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 36, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "17"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 37, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "18"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 38, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "19"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 39, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "20"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 40, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "21"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 41, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "22"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 42, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "23"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 43, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "24"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 44, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "25"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 45, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "26"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 46, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "27"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 47, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "28"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 48, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "29"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "module", "line": 50, "filename": "memory_init.1.wasm"}, + {"type": "action", "line": 61, "action": {"type": "invoke", "field": "test", "args": []}, "expected": []}, + {"type": "assert_return", "line": 63, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 64, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 65, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 66, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 67, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "i32", "value": "4"}]}, + {"type": "assert_return", "line": 68, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 69, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 70, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "7"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 71, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "8"}]}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 72, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "9"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 73, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 74, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 75, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "12"}]}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 76, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "13"}]}, "expected": [{"type": "i32", "value": "5"}]}, + {"type": "assert_return", "line": 77, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "14"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 78, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "15"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 79, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "16"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_return", "line": 80, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "17"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 81, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "18"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 82, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "19"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 83, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "20"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 84, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "21"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 85, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "22"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 86, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "23"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 87, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "24"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 88, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "25"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 89, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "26"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 90, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "27"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 91, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "28"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 92, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "29"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "module", "line": 94, "filename": "memory_init.2.wasm"}, + {"type": "action", "line": 105, "action": {"type": "invoke", "field": "test", "args": []}, "expected": []}, + {"type": "assert_return", "line": 107, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 108, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 109, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 110, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 111, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "i32", "value": "4"}]}, + {"type": "assert_return", "line": 112, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 113, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 114, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "7"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 115, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "8"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 116, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "9"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 117, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 118, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 119, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "12"}]}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 120, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "13"}]}, "expected": [{"type": "i32", "value": "5"}]}, + {"type": "assert_return", "line": 121, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "14"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 122, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "15"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 123, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "16"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 124, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "17"}]}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 125, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "18"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 126, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "19"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 127, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "20"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 128, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "21"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 129, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "22"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 130, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "23"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 131, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "24"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 132, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "25"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 133, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "26"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 134, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "27"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 135, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "28"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 136, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "29"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "module", "line": 138, "filename": "memory_init.3.wasm"}, + {"type": "action", "line": 157, "action": {"type": "invoke", "field": "test", "args": []}, "expected": []}, + {"type": "assert_return", "line": 159, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 160, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 161, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "2"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 162, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "3"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 163, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "4"}]}, "expected": [{"type": "i32", "value": "4"}]}, + {"type": "assert_return", "line": 164, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "5"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 165, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 166, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "7"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 167, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "8"}]}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 168, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "9"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 169, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "10"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 170, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "11"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 171, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "12"}]}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 172, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "13"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 173, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "14"}]}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 174, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "15"}]}, "expected": [{"type": "i32", "value": "5"}]}, + {"type": "assert_return", "line": 175, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "16"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 176, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "17"}]}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 177, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "18"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 178, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "19"}]}, "expected": [{"type": "i32", "value": "9"}]}, + {"type": "assert_return", "line": 179, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "20"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 180, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "21"}]}, "expected": [{"type": "i32", "value": "7"}]}, + {"type": "assert_return", "line": 181, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "22"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 182, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "23"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 183, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "24"}]}, "expected": [{"type": "i32", "value": "8"}]}, + {"type": "assert_return", "line": 184, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "25"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 185, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "26"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 186, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "27"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 187, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "28"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 188, "action": {"type": "invoke", "field": "load8_u", "args": [{"type": "i32", "value": "29"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_invalid", "line": 190, "filename": "memory_init.4.wasm", "text": "unknown data segment", "module_type": "binary"}, + {"type": "assert_invalid", "line": 196, "filename": "memory_init.5.wasm", "text": "unknown data segment", "module_type": "binary"}, + {"type": "module", "line": 203, "filename": "memory_init.6.wasm"}, + {"type": "action", "line": 209, "action": {"type": "invoke", "field": "test", "args": []}, "expected": []}, + {"type": "module", "line": 211, "filename": "memory_init.7.wasm"}, + {"type": "assert_trap", "line": 217, "action": {"type": "invoke", "field": "test", "args": []}, "text": "out of bounds memory access", "expected": []}, + {"type": "module", "line": 219, "filename": "memory_init.8.wasm"}, + {"type": "assert_trap", "line": 224, "action": {"type": "invoke", "field": "test", "args": []}, "text": "out of bounds memory access", "expected": []}, + {"type": "assert_invalid", "line": 227, "filename": "memory_init.9.wasm", "text": "unknown memory 0", "module_type": "binary"}, + {"type": "assert_invalid", "line": 233, "filename": "memory_init.10.wasm", "text": "unknown data segment 1", "module_type": "binary"}, + {"type": "module", "line": 240, "filename": "memory_init.11.wasm"}, + {"type": "action", "line": 246, "action": {"type": "invoke", "field": "test", "args": []}, "expected": []}, + {"type": "module", "line": 248, "filename": "memory_init.12.wasm"}, + {"type": "assert_trap", "line": 253, "action": {"type": "invoke", "field": "test", "args": []}, "text": "out of bounds memory access", "expected": []}, + {"type": "module", "line": 255, "filename": "memory_init.13.wasm"}, + {"type": "assert_trap", "line": 260, "action": {"type": "invoke", "field": "test", "args": []}, "text": "out of bounds memory access", "expected": []}, + {"type": "module", "line": 262, "filename": "memory_init.14.wasm"}, + {"type": "assert_trap", "line": 267, "action": {"type": "invoke", "field": "test", "args": []}, "text": "out of bounds memory access", "expected": []}, + {"type": "module", "line": 269, "filename": "memory_init.15.wasm"}, + {"type": "assert_trap", "line": 274, "action": {"type": "invoke", "field": "test", "args": []}, "text": "out of bounds memory access", "expected": []}, + {"type": "module", "line": 276, "filename": "memory_init.16.wasm"}, + {"type": "action", "line": 281, "action": {"type": "invoke", "field": "test", "args": []}, "expected": []}, + {"type": "module", "line": 283, "filename": "memory_init.17.wasm"}, + {"type": "assert_trap", "line": 288, "action": {"type": "invoke", "field": "test", "args": []}, "text": "out of bounds memory access", "expected": []}, + {"type": "module", "line": 290, "filename": "memory_init.18.wasm"}, + {"type": "action", "line": 295, "action": {"type": "invoke", "field": "test", "args": []}, "expected": []}, + {"type": "module", "line": 297, "filename": "memory_init.19.wasm"}, + {"type": "action", "line": 302, "action": {"type": "invoke", "field": "test", "args": []}, "expected": []}, + {"type": "module", "line": 304, "filename": "memory_init.20.wasm"}, + {"type": "assert_trap", "line": 309, "action": {"type": "invoke", "field": "test", "args": []}, "text": "out of bounds memory access", "expected": []}, + {"type": "assert_invalid", "line": 312, "filename": "memory_init.21.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 320, "filename": "memory_init.22.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 328, "filename": "memory_init.23.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 336, "filename": "memory_init.24.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 344, "filename": "memory_init.25.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 352, "filename": "memory_init.26.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 360, "filename": "memory_init.27.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 368, "filename": "memory_init.28.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 376, "filename": "memory_init.29.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 384, "filename": "memory_init.30.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 392, "filename": "memory_init.31.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 400, "filename": "memory_init.32.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 408, "filename": "memory_init.33.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 416, "filename": "memory_init.34.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 424, "filename": "memory_init.35.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 432, "filename": "memory_init.36.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 440, "filename": "memory_init.37.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 448, "filename": "memory_init.38.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 456, "filename": "memory_init.39.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 464, "filename": "memory_init.40.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 472, "filename": "memory_init.41.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 480, "filename": "memory_init.42.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 488, "filename": "memory_init.43.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 496, "filename": "memory_init.44.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 504, "filename": "memory_init.45.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 512, "filename": "memory_init.46.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 520, "filename": "memory_init.47.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 528, "filename": "memory_init.48.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 536, "filename": "memory_init.49.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 544, "filename": "memory_init.50.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 552, "filename": "memory_init.51.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 560, "filename": "memory_init.52.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 568, "filename": "memory_init.53.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 576, "filename": "memory_init.54.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 584, "filename": "memory_init.55.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 592, "filename": "memory_init.56.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 600, "filename": "memory_init.57.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 608, "filename": "memory_init.58.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 616, "filename": "memory_init.59.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 624, "filename": "memory_init.60.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 632, "filename": "memory_init.61.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 640, "filename": "memory_init.62.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 648, "filename": "memory_init.63.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 656, "filename": "memory_init.64.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 664, "filename": "memory_init.65.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 672, "filename": "memory_init.66.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 680, "filename": "memory_init.67.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 688, "filename": "memory_init.68.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 696, "filename": "memory_init.69.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 704, "filename": "memory_init.70.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 712, "filename": "memory_init.71.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 720, "filename": "memory_init.72.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 728, "filename": "memory_init.73.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 736, "filename": "memory_init.74.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 744, "filename": "memory_init.75.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 752, "filename": "memory_init.76.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 760, "filename": "memory_init.77.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 768, "filename": "memory_init.78.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 776, "filename": "memory_init.79.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 784, "filename": "memory_init.80.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 792, "filename": "memory_init.81.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 800, "filename": "memory_init.82.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 808, "filename": "memory_init.83.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "module", "line": 815, "filename": "memory_init.84.wasm"}, + {"type": "assert_trap", "line": 833, "action": {"type": "invoke", "field": "run", "args": [{"type": "i32", "value": "65528"}, {"type": "i32", "value": "16"}]}, "text": "out of bounds memory access", "expected": []}, + {"type": "assert_return", "line": 836, "action": {"type": "invoke", "field": "checkRange", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "1"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "module", "line": 838, "filename": "memory_init.85.wasm"}, + {"type": "assert_trap", "line": 856, "action": {"type": "invoke", "field": "run", "args": [{"type": "i32", "value": "65527"}, {"type": "i32", "value": "16"}]}, "text": "out of bounds memory access", "expected": []}, + {"type": "assert_return", "line": 859, "action": {"type": "invoke", "field": "checkRange", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "1"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "module", "line": 861, "filename": "memory_init.86.wasm"}, + {"type": "assert_trap", "line": 879, "action": {"type": "invoke", "field": "run", "args": [{"type": "i32", "value": "65472"}, {"type": "i32", "value": "30"}]}, "text": "out of bounds memory access", "expected": []}, + {"type": "assert_return", "line": 882, "action": {"type": "invoke", "field": "checkRange", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "1"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "module", "line": 884, "filename": "memory_init.87.wasm"}, + {"type": "assert_trap", "line": 902, "action": {"type": "invoke", "field": "run", "args": [{"type": "i32", "value": "65473"}, {"type": "i32", "value": "31"}]}, "text": "out of bounds memory access", "expected": []}, + {"type": "assert_return", "line": 905, "action": {"type": "invoke", "field": "checkRange", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "1"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "module", "line": 907, "filename": "memory_init.88.wasm"}, + {"type": "assert_trap", "line": 925, "action": {"type": "invoke", "field": "run", "args": [{"type": "i32", "value": "65528"}, {"type": "i32", "value": "4294967040"}]}, "text": "out of bounds memory access", "expected": []}, + {"type": "assert_return", "line": 928, "action": {"type": "invoke", "field": "checkRange", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "1"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "module", "line": 930, "filename": "memory_init.89.wasm"}, + {"type": "assert_trap", "line": 948, "action": {"type": "invoke", "field": "run", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "4294967292"}]}, "text": "out of bounds memory access", "expected": []}, + {"type": "assert_return", "line": 951, "action": {"type": "invoke", "field": "checkRange", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "1"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "4294967295"}]}, + {"type": "module", "line": 954, "filename": "memory_init.90.wasm"}]} diff --git a/tests/gen/memory_trap.json b/tests/gen/memory_trap.json index 57406922..00d802fe 100644 --- a/tests/gen/memory_trap.json +++ b/tests/gen/memory_trap.json @@ -3,7 +3,7 @@ {"type": "module", "line": 1, "filename": "memory_trap.0.wasm"}, {"type": "assert_return", "line": 21, "action": {"type": "invoke", "field": "store", "args": [{"type": "i32", "value": "4294967292"}, {"type": "i32", "value": "42"}]}, "expected": []}, {"type": "assert_return", "line": 22, "action": {"type": "invoke", "field": "load", "args": [{"type": "i32", "value": "4294967292"}]}, "expected": [{"type": "i32", "value": "42"}]}, - {"type": "assert_trap", "line": 23, "action": {"type": "invoke", "field": "store", "args": [{"type": "i32", "value": "4294967293"}, {"type": "i32", "value": "13"}]}, "text": "out of bounds memory access", "expected": []}, + {"type": "assert_trap", "line": 23, "action": {"type": "invoke", "field": "store", "args": [{"type": "i32", "value": "4294967293"}, {"type": "i32", "value": "305419896"}]}, "text": "out of bounds memory access", "expected": []}, {"type": "assert_trap", "line": 24, "action": {"type": "invoke", "field": "load", "args": [{"type": "i32", "value": "4294967293"}]}, "text": "out of bounds memory access", "expected": [{"type": "i32"}]}, {"type": "assert_trap", "line": 25, "action": {"type": "invoke", "field": "store", "args": [{"type": "i32", "value": "4294967294"}, {"type": "i32", "value": "13"}]}, "text": "out of bounds memory access", "expected": []}, {"type": "assert_trap", "line": 26, "action": {"type": "invoke", "field": "load", "args": [{"type": "i32", "value": "4294967294"}]}, "text": "out of bounds memory access", "expected": [{"type": "i32"}]}, @@ -172,4 +172,13 @@ {"type": "assert_trap", "line": 265, "action": {"type": "invoke", "field": "i64.load32_u", "args": [{"type": "i32", "value": "4294967293"}]}, "text": "out of bounds memory access", "expected": [{"type": "i64"}]}, {"type": "assert_trap", "line": 266, "action": {"type": "invoke", "field": "i64.load32_u", "args": [{"type": "i32", "value": "4294967292"}]}, "text": "out of bounds memory access", "expected": [{"type": "i64"}]}, {"type": "assert_return", "line": 269, "action": {"type": "invoke", "field": "i64.load", "args": [{"type": "i32", "value": "65528"}]}, "expected": [{"type": "i64", "value": "7523094288207667809"}]}, - {"type": "assert_return", "line": 270, "action": {"type": "invoke", "field": "i64.load", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i64", "value": "7523094288207667809"}]}]} + {"type": "assert_return", "line": 270, "action": {"type": "invoke", "field": "i64.load", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i64", "value": "7523094288207667809"}]}, + {"type": "assert_return", "line": 274, "action": {"type": "invoke", "field": "i64.store", "args": [{"type": "i32", "value": "65528"}, {"type": "i64", "value": "0"}]}, "expected": []}, + {"type": "assert_trap", "line": 275, "action": {"type": "invoke", "field": "i32.store", "args": [{"type": "i32", "value": "65533"}, {"type": "i32", "value": "305419896"}]}, "text": "out of bounds memory access", "expected": []}, + {"type": "assert_return", "line": 276, "action": {"type": "invoke", "field": "i32.load", "args": [{"type": "i32", "value": "65532"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_trap", "line": 277, "action": {"type": "invoke", "field": "i64.store", "args": [{"type": "i32", "value": "65529"}, {"type": "i64", "value": "1311768467294899695"}]}, "text": "out of bounds memory access", "expected": []}, + {"type": "assert_return", "line": 278, "action": {"type": "invoke", "field": "i64.load", "args": [{"type": "i32", "value": "65528"}]}, "expected": [{"type": "i64", "value": "0"}]}, + {"type": "assert_trap", "line": 279, "action": {"type": "invoke", "field": "f32.store", "args": [{"type": "i32", "value": "65533"}, {"type": "f32", "value": "1301390004"}]}, "text": "out of bounds memory access", "expected": []}, + {"type": "assert_return", "line": 280, "action": {"type": "invoke", "field": "f32.load", "args": [{"type": "i32", "value": "65532"}]}, "expected": [{"type": "f32", "value": "0"}]}, + {"type": "assert_trap", "line": 281, "action": {"type": "invoke", "field": "f64.store", "args": [{"type": "i32", "value": "65529"}, {"type": "f64", "value": "4878018892390247374"}]}, "text": "out of bounds memory access", "expected": []}, + {"type": "assert_return", "line": 282, "action": {"type": "invoke", "field": "f64.load", "args": [{"type": "i32", "value": "65528"}]}, "expected": [{"type": "f64", "value": "0"}]}]} diff --git a/tests/gen/select.0.wasm b/tests/gen/select.0.wasm index 7454d7a4..b64eab2e 100644 Binary files a/tests/gen/select.0.wasm and b/tests/gen/select.0.wasm differ diff --git a/tests/gen/select.1.wasm b/tests/gen/select.1.wasm index a9e16064..e4f57259 100644 Binary files a/tests/gen/select.1.wasm and b/tests/gen/select.1.wasm differ diff --git a/tests/gen/select.10.wasm b/tests/gen/select.10.wasm index 89bca8fe..6ebc0834 100644 Binary files a/tests/gen/select.10.wasm and b/tests/gen/select.10.wasm differ diff --git a/tests/gen/select.11.wasm b/tests/gen/select.11.wasm index 8a824326..2f5aceef 100644 Binary files a/tests/gen/select.11.wasm and b/tests/gen/select.11.wasm differ diff --git a/tests/gen/select.12.wasm b/tests/gen/select.12.wasm index 43b8e1bd..200ef4e5 100644 Binary files a/tests/gen/select.12.wasm and b/tests/gen/select.12.wasm differ diff --git a/tests/gen/select.13.wasm b/tests/gen/select.13.wasm index 17d0903e..cf678bb3 100644 Binary files a/tests/gen/select.13.wasm and b/tests/gen/select.13.wasm differ diff --git a/tests/gen/select.14.wasm b/tests/gen/select.14.wasm index c9ace6d3..388b8568 100644 Binary files a/tests/gen/select.14.wasm and b/tests/gen/select.14.wasm differ diff --git a/tests/gen/select.15.wasm b/tests/gen/select.15.wasm index 25aa097d..89bca8fe 100644 Binary files a/tests/gen/select.15.wasm and b/tests/gen/select.15.wasm differ diff --git a/tests/gen/select.16.wasm b/tests/gen/select.16.wasm index cc81f10d..8a824326 100644 Binary files a/tests/gen/select.16.wasm and b/tests/gen/select.16.wasm differ diff --git a/tests/gen/select.17.wasm b/tests/gen/select.17.wasm index 2b4bd141..43b8e1bd 100644 Binary files a/tests/gen/select.17.wasm and b/tests/gen/select.17.wasm differ diff --git a/tests/gen/select.18.wasm b/tests/gen/select.18.wasm index a6712116..17d0903e 100644 Binary files a/tests/gen/select.18.wasm and b/tests/gen/select.18.wasm differ diff --git a/tests/gen/select.19.wasm b/tests/gen/select.19.wasm index 82e334b6..c9ace6d3 100644 Binary files a/tests/gen/select.19.wasm and b/tests/gen/select.19.wasm differ diff --git a/tests/gen/select.20.wasm b/tests/gen/select.20.wasm index 4b43c9d1..25aa097d 100644 Binary files a/tests/gen/select.20.wasm and b/tests/gen/select.20.wasm differ diff --git a/tests/gen/select.21.wasm b/tests/gen/select.21.wasm index 2b82ad87..cc81f10d 100644 Binary files a/tests/gen/select.21.wasm and b/tests/gen/select.21.wasm differ diff --git a/tests/gen/select.22.wasm b/tests/gen/select.22.wasm index 0cf52ed5..2b4bd141 100644 Binary files a/tests/gen/select.22.wasm and b/tests/gen/select.22.wasm differ diff --git a/tests/gen/select.23.wasm b/tests/gen/select.23.wasm index 6d5c2526..a6712116 100644 Binary files a/tests/gen/select.23.wasm and b/tests/gen/select.23.wasm differ diff --git a/tests/gen/select.24.wasm b/tests/gen/select.24.wasm index 9036db1c..82e334b6 100644 Binary files a/tests/gen/select.24.wasm and b/tests/gen/select.24.wasm differ diff --git a/tests/gen/select.25.wasm b/tests/gen/select.25.wasm index 88b4d57b..4b43c9d1 100644 Binary files a/tests/gen/select.25.wasm and b/tests/gen/select.25.wasm differ diff --git a/tests/gen/select.26.wasm b/tests/gen/select.26.wasm index e8b22eb0..486ffb67 100644 Binary files a/tests/gen/select.26.wasm and b/tests/gen/select.26.wasm differ diff --git a/tests/gen/select.5.wasm b/tests/gen/select.5.wasm index 6ebc0834..e6951269 100644 Binary files a/tests/gen/select.5.wasm and b/tests/gen/select.5.wasm differ diff --git a/tests/gen/select.6.wasm b/tests/gen/select.6.wasm index 2f5aceef..c31e85f8 100644 Binary files a/tests/gen/select.6.wasm and b/tests/gen/select.6.wasm differ diff --git a/tests/gen/select.7.wasm b/tests/gen/select.7.wasm index 200ef4e5..e6951269 100644 Binary files a/tests/gen/select.7.wasm and b/tests/gen/select.7.wasm differ diff --git a/tests/gen/select.8.wasm b/tests/gen/select.8.wasm index cf678bb3..c31e85f8 100644 Binary files a/tests/gen/select.8.wasm and b/tests/gen/select.8.wasm differ diff --git a/tests/gen/select.9.wasm b/tests/gen/select.9.wasm index 388b8568..ba6d8e4a 100644 Binary files a/tests/gen/select.9.wasm and b/tests/gen/select.9.wasm differ diff --git a/tests/gen/select.json b/tests/gen/select.json index c797a9f9..8cdf139e 100644 --- a/tests/gen/select.json +++ b/tests/gen/select.json @@ -1,124 +1,113 @@ {"source_filename": "select.wast", "commands": [ {"type": "module", "line": 1, "filename": "select.0.wasm"}, - {"type": "assert_return", "line": 189, "action": {"type": "invoke", "field": "select_i32", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "2"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 190, "action": {"type": "invoke", "field": "select_i64", "args": [{"type": "i64", "value": "2"}, {"type": "i64", "value": "1"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "i64", "value": "2"}]}, - {"type": "assert_return", "line": 191, "action": {"type": "invoke", "field": "select_f32", "args": [{"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1073741824"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 192, "action": {"type": "invoke", "field": "select_f64", "args": [{"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "4611686018427387904"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 194, "action": {"type": "invoke", "field": "select_i32", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "2"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 195, "action": {"type": "invoke", "field": "select_i32", "args": [{"type": "i32", "value": "2"}, {"type": "i32", "value": "1"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 196, "action": {"type": "invoke", "field": "select_i64", "args": [{"type": "i64", "value": "2"}, {"type": "i64", "value": "1"}, {"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i64", "value": "2"}]}, - {"type": "assert_return", "line": 197, "action": {"type": "invoke", "field": "select_i64", "args": [{"type": "i64", "value": "2"}, {"type": "i64", "value": "1"}, {"type": "i32", "value": "4042322160"}]}, "expected": [{"type": "i64", "value": "2"}]}, - {"type": "assert_return", "line": 199, "action": {"type": "invoke", "field": "select_f32", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "1065353216"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 200, "action": {"type": "invoke", "field": "select_f32", "args": [{"type": "f32", "value": "2139226884"}, {"type": "f32", "value": "1065353216"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "2139226884"}]}, - {"type": "assert_return", "line": 201, "action": {"type": "invoke", "field": "select_f32", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "1065353216"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 202, "action": {"type": "invoke", "field": "select_f32", "args": [{"type": "f32", "value": "2139226884"}, {"type": "f32", "value": "1065353216"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, - {"type": "assert_return", "line": 203, "action": {"type": "invoke", "field": "select_f32", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2143289344"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "1073741824"}]}, - {"type": "assert_return", "line": 204, "action": {"type": "invoke", "field": "select_f32", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2139226884"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "1073741824"}]}, - {"type": "assert_return", "line": 205, "action": {"type": "invoke", "field": "select_f32", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2143289344"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, - {"type": "assert_return", "line": 206, "action": {"type": "invoke", "field": "select_f32", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2139226884"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2139226884"}]}, - {"type": "assert_return", "line": 208, "action": {"type": "invoke", "field": "select_f64", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 209, "action": {"type": "invoke", "field": "select_f64", "args": [{"type": "f64", "value": "9218868437227537156"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "9218868437227537156"}]}, - {"type": "assert_return", "line": 210, "action": {"type": "invoke", "field": "select_f64", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 211, "action": {"type": "invoke", "field": "select_f64", "args": [{"type": "f64", "value": "9218868437227537156"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, - {"type": "assert_return", "line": 212, "action": {"type": "invoke", "field": "select_f64", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9221120237041090560"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, - {"type": "assert_return", "line": 213, "action": {"type": "invoke", "field": "select_f64", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9218868437227537156"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, - {"type": "assert_return", "line": 214, "action": {"type": "invoke", "field": "select_f64", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9221120237041090560"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, - {"type": "assert_return", "line": 215, "action": {"type": "invoke", "field": "select_f64", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9218868437227537156"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "9218868437227537156"}]}, - {"type": "assert_trap", "line": 217, "action": {"type": "invoke", "field": "select_trap_l", "args": [{"type": "i32", "value": "1"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, - {"type": "assert_trap", "line": 218, "action": {"type": "invoke", "field": "select_trap_l", "args": [{"type": "i32", "value": "0"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, - {"type": "assert_trap", "line": 219, "action": {"type": "invoke", "field": "select_trap_r", "args": [{"type": "i32", "value": "1"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, - {"type": "assert_trap", "line": 220, "action": {"type": "invoke", "field": "select_trap_r", "args": [{"type": "i32", "value": "0"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, - {"type": "assert_return", "line": 222, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 223, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 224, "action": {"type": "invoke", "field": "as-select-mid", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 225, "action": {"type": "invoke", "field": "as-select-mid", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 226, "action": {"type": "invoke", "field": "as-select-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 227, "action": {"type": "invoke", "field": "as-select-last", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 229, "action": {"type": "invoke", "field": "as-loop-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 230, "action": {"type": "invoke", "field": "as-loop-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 231, "action": {"type": "invoke", "field": "as-loop-mid", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 232, "action": {"type": "invoke", "field": "as-loop-mid", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 233, "action": {"type": "invoke", "field": "as-loop-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 234, "action": {"type": "invoke", "field": "as-loop-last", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 236, "action": {"type": "invoke", "field": "as-if-condition", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, - {"type": "assert_return", "line": 237, "action": {"type": "invoke", "field": "as-if-condition", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, - {"type": "assert_return", "line": 238, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 239, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 240, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 241, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 243, "action": {"type": "invoke", "field": "as-br_if-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 244, "action": {"type": "invoke", "field": "as-br_if-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 245, "action": {"type": "invoke", "field": "as-br_if-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 246, "action": {"type": "invoke", "field": "as-br_if-last", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 248, "action": {"type": "invoke", "field": "as-br_table-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 249, "action": {"type": "invoke", "field": "as-br_table-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 250, "action": {"type": "invoke", "field": "as-br_table-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 251, "action": {"type": "invoke", "field": "as-br_table-last", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 253, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 254, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 255, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 256, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_trap", "line": 257, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": [{"type": "i32", "value": "0"}]}, "text": "undefined element", "expected": [{"type": "i32"}]}, - {"type": "assert_trap", "line": 258, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": [{"type": "i32", "value": "1"}]}, "text": "undefined element", "expected": [{"type": "i32"}]}, - {"type": "assert_return", "line": 260, "action": {"type": "invoke", "field": "as-store-first", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, - {"type": "assert_return", "line": 261, "action": {"type": "invoke", "field": "as-store-first", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, - {"type": "assert_return", "line": 262, "action": {"type": "invoke", "field": "as-store-last", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, - {"type": "assert_return", "line": 263, "action": {"type": "invoke", "field": "as-store-last", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, - {"type": "assert_return", "line": 265, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 266, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "3"}]}, - {"type": "assert_return", "line": 268, "action": {"type": "invoke", "field": "as-call-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 269, "action": {"type": "invoke", "field": "as-call-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 270, "action": {"type": "invoke", "field": "as-return-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 271, "action": {"type": "invoke", "field": "as-return-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 272, "action": {"type": "invoke", "field": "as-drop-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, - {"type": "assert_return", "line": 273, "action": {"type": "invoke", "field": "as-drop-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, - {"type": "assert_return", "line": 274, "action": {"type": "invoke", "field": "as-br-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 275, "action": {"type": "invoke", "field": "as-br-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 276, "action": {"type": "invoke", "field": "as-local.set-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 277, "action": {"type": "invoke", "field": "as-local.set-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 278, "action": {"type": "invoke", "field": "as-local.tee-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 279, "action": {"type": "invoke", "field": "as-local.tee-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 280, "action": {"type": "invoke", "field": "as-global.set-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, - {"type": "assert_return", "line": 281, "action": {"type": "invoke", "field": "as-global.set-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 282, "action": {"type": "invoke", "field": "as-load-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 283, "action": {"type": "invoke", "field": "as-load-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 285, "action": {"type": "invoke", "field": "as-unary-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 286, "action": {"type": "invoke", "field": "as-unary-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 287, "action": {"type": "invoke", "field": "as-binary-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "4"}]}, - {"type": "assert_return", "line": 288, "action": {"type": "invoke", "field": "as-binary-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 289, "action": {"type": "invoke", "field": "as-test-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 290, "action": {"type": "invoke", "field": "as-test-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 291, "action": {"type": "invoke", "field": "as-compare-left", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 292, "action": {"type": "invoke", "field": "as-compare-left", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 293, "action": {"type": "invoke", "field": "as-compare-right", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 294, "action": {"type": "invoke", "field": "as-compare-right", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_return", "line": 295, "action": {"type": "invoke", "field": "as-convert-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, - {"type": "assert_return", "line": 296, "action": {"type": "invoke", "field": "as-convert-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, - {"type": "assert_invalid", "line": 299, "filename": "select.1.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 306, "filename": "select.2.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 310, "filename": "select.3.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 314, "filename": "select.4.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 320, "filename": "select.5.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 328, "filename": "select.6.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 336, "filename": "select.7.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 344, "filename": "select.8.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 353, "filename": "select.9.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 362, "filename": "select.10.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 371, "filename": "select.11.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 380, "filename": "select.12.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 389, "filename": "select.13.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 398, "filename": "select.14.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 407, "filename": "select.15.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 416, "filename": "select.16.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 428, "filename": "select.17.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 432, "filename": "select.18.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 436, "filename": "select.19.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 443, "filename": "select.20.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 451, "filename": "select.21.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 456, "filename": "select.22.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 462, "filename": "select.23.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 467, "filename": "select.24.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 472, "filename": "select.25.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 478, "filename": "select.26.wasm", "text": "type mismatch", "module_type": "binary"}, - {"type": "assert_invalid", "line": 484, "filename": "select.27.wasm", "text": "type mismatch", "module_type": "binary"}]} + {"type": "assert_return", "line": 185, "action": {"type": "invoke", "field": "select-i32", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "2"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 186, "action": {"type": "invoke", "field": "select-i64", "args": [{"type": "i64", "value": "2"}, {"type": "i64", "value": "1"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "i64", "value": "2"}]}, + {"type": "assert_return", "line": 187, "action": {"type": "invoke", "field": "select-f32", "args": [{"type": "f32", "value": "1065353216"}, {"type": "f32", "value": "1073741824"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 188, "action": {"type": "invoke", "field": "select-f64", "args": [{"type": "f64", "value": "4607182418800017408"}, {"type": "f64", "value": "4611686018427387904"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 190, "action": {"type": "invoke", "field": "select-i32", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "2"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 191, "action": {"type": "invoke", "field": "select-i32", "args": [{"type": "i32", "value": "2"}, {"type": "i32", "value": "1"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 192, "action": {"type": "invoke", "field": "select-i64", "args": [{"type": "i64", "value": "2"}, {"type": "i64", "value": "1"}, {"type": "i32", "value": "4294967295"}]}, "expected": [{"type": "i64", "value": "2"}]}, + {"type": "assert_return", "line": 193, "action": {"type": "invoke", "field": "select-i64", "args": [{"type": "i64", "value": "2"}, {"type": "i64", "value": "1"}, {"type": "i32", "value": "4042322160"}]}, "expected": [{"type": "i64", "value": "2"}]}, + {"type": "assert_return", "line": 195, "action": {"type": "invoke", "field": "select-f32", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "1065353216"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 196, "action": {"type": "invoke", "field": "select-f32", "args": [{"type": "f32", "value": "2139226884"}, {"type": "f32", "value": "1065353216"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "2139226884"}]}, + {"type": "assert_return", "line": 197, "action": {"type": "invoke", "field": "select-f32", "args": [{"type": "f32", "value": "2143289344"}, {"type": "f32", "value": "1065353216"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 198, "action": {"type": "invoke", "field": "select-f32", "args": [{"type": "f32", "value": "2139226884"}, {"type": "f32", "value": "1065353216"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "1065353216"}]}, + {"type": "assert_return", "line": 199, "action": {"type": "invoke", "field": "select-f32", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2143289344"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "1073741824"}]}, + {"type": "assert_return", "line": 200, "action": {"type": "invoke", "field": "select-f32", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2139226884"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f32", "value": "1073741824"}]}, + {"type": "assert_return", "line": 201, "action": {"type": "invoke", "field": "select-f32", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2143289344"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2143289344"}]}, + {"type": "assert_return", "line": 202, "action": {"type": "invoke", "field": "select-f32", "args": [{"type": "f32", "value": "1073741824"}, {"type": "f32", "value": "2139226884"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f32", "value": "2139226884"}]}, + {"type": "assert_return", "line": 204, "action": {"type": "invoke", "field": "select-f64", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 205, "action": {"type": "invoke", "field": "select-f64", "args": [{"type": "f64", "value": "9218868437227537156"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "9218868437227537156"}]}, + {"type": "assert_return", "line": 206, "action": {"type": "invoke", "field": "select-f64", "args": [{"type": "f64", "value": "9221120237041090560"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 207, "action": {"type": "invoke", "field": "select-f64", "args": [{"type": "f64", "value": "9218868437227537156"}, {"type": "f64", "value": "4607182418800017408"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "4607182418800017408"}]}, + {"type": "assert_return", "line": 208, "action": {"type": "invoke", "field": "select-f64", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9221120237041090560"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, + {"type": "assert_return", "line": 209, "action": {"type": "invoke", "field": "select-f64", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9218868437227537156"}, {"type": "i32", "value": "1"}]}, "expected": [{"type": "f64", "value": "4611686018427387904"}]}, + {"type": "assert_return", "line": 210, "action": {"type": "invoke", "field": "select-f64", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9221120237041090560"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "9221120237041090560"}]}, + {"type": "assert_return", "line": 211, "action": {"type": "invoke", "field": "select-f64", "args": [{"type": "f64", "value": "4611686018427387904"}, {"type": "f64", "value": "9218868437227537156"}, {"type": "i32", "value": "0"}]}, "expected": [{"type": "f64", "value": "9218868437227537156"}]}, + {"type": "assert_return", "line": 246, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 247, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 248, "action": {"type": "invoke", "field": "as-select-mid", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 249, "action": {"type": "invoke", "field": "as-select-mid", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 250, "action": {"type": "invoke", "field": "as-select-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 251, "action": {"type": "invoke", "field": "as-select-last", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 253, "action": {"type": "invoke", "field": "as-loop-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 254, "action": {"type": "invoke", "field": "as-loop-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 255, "action": {"type": "invoke", "field": "as-loop-mid", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 256, "action": {"type": "invoke", "field": "as-loop-mid", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 257, "action": {"type": "invoke", "field": "as-loop-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 258, "action": {"type": "invoke", "field": "as-loop-last", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 260, "action": {"type": "invoke", "field": "as-if-condition", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, + {"type": "assert_return", "line": 261, "action": {"type": "invoke", "field": "as-if-condition", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, + {"type": "assert_return", "line": 262, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 263, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 264, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 265, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 267, "action": {"type": "invoke", "field": "as-br_if-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 268, "action": {"type": "invoke", "field": "as-br_if-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 269, "action": {"type": "invoke", "field": "as-br_if-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 270, "action": {"type": "invoke", "field": "as-br_if-last", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 272, "action": {"type": "invoke", "field": "as-br_table-first", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 273, "action": {"type": "invoke", "field": "as-br_table-first", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 274, "action": {"type": "invoke", "field": "as-br_table-last", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 275, "action": {"type": "invoke", "field": "as-br_table-last", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 285, "action": {"type": "invoke", "field": "as-store-first", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, + {"type": "assert_return", "line": 286, "action": {"type": "invoke", "field": "as-store-first", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, + {"type": "assert_return", "line": 287, "action": {"type": "invoke", "field": "as-store-last", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, + {"type": "assert_return", "line": 288, "action": {"type": "invoke", "field": "as-store-last", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, + {"type": "assert_return", "line": 290, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 291, "action": {"type": "invoke", "field": "as-memory.grow-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "3"}]}, + {"type": "assert_return", "line": 293, "action": {"type": "invoke", "field": "as-call-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 294, "action": {"type": "invoke", "field": "as-call-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 295, "action": {"type": "invoke", "field": "as-return-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 296, "action": {"type": "invoke", "field": "as-return-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 297, "action": {"type": "invoke", "field": "as-drop-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": []}, + {"type": "assert_return", "line": 298, "action": {"type": "invoke", "field": "as-drop-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": []}, + {"type": "assert_return", "line": 299, "action": {"type": "invoke", "field": "as-br-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 300, "action": {"type": "invoke", "field": "as-br-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 301, "action": {"type": "invoke", "field": "as-local.set-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 302, "action": {"type": "invoke", "field": "as-local.set-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 303, "action": {"type": "invoke", "field": "as-local.tee-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 304, "action": {"type": "invoke", "field": "as-local.tee-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 305, "action": {"type": "invoke", "field": "as-global.set-value", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "2"}]}, + {"type": "assert_return", "line": 306, "action": {"type": "invoke", "field": "as-global.set-value", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 307, "action": {"type": "invoke", "field": "as-load-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 308, "action": {"type": "invoke", "field": "as-load-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 310, "action": {"type": "invoke", "field": "as-unary-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 311, "action": {"type": "invoke", "field": "as-unary-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 312, "action": {"type": "invoke", "field": "as-binary-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "4"}]}, + {"type": "assert_return", "line": 313, "action": {"type": "invoke", "field": "as-binary-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 314, "action": {"type": "invoke", "field": "as-test-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 315, "action": {"type": "invoke", "field": "as-test-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 316, "action": {"type": "invoke", "field": "as-compare-left", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 317, "action": {"type": "invoke", "field": "as-compare-left", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 318, "action": {"type": "invoke", "field": "as-compare-right", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 319, "action": {"type": "invoke", "field": "as-compare-right", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_return", "line": 320, "action": {"type": "invoke", "field": "as-convert-operand", "args": [{"type": "i32", "value": "0"}]}, "expected": [{"type": "i32", "value": "0"}]}, + {"type": "assert_return", "line": 321, "action": {"type": "invoke", "field": "as-convert-operand", "args": [{"type": "i32", "value": "1"}]}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_invalid", "line": 324, "filename": "select.1.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 352, "filename": "select.2.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 358, "filename": "select.3.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 364, "filename": "select.4.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 371, "filename": "select.5.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 375, "filename": "select.6.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 379, "filename": "select.7.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 383, "filename": "select.8.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 387, "filename": "select.9.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 393, "filename": "select.10.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 401, "filename": "select.11.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 409, "filename": "select.12.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 417, "filename": "select.13.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 426, "filename": "select.14.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 435, "filename": "select.15.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 444, "filename": "select.16.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 453, "filename": "select.17.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 462, "filename": "select.18.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 471, "filename": "select.19.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 480, "filename": "select.20.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 489, "filename": "select.21.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 501, "filename": "select.22.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 505, "filename": "select.23.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 509, "filename": "select.24.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 516, "filename": "select.25.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "module", "line": 523, "filename": "select.26.wasm"}]} diff --git a/tests/gen/type.3.wasm b/tests/gen/type.3.wasm deleted file mode 100644 index aee2178f..00000000 Binary files a/tests/gen/type.3.wasm and /dev/null differ diff --git a/tests/gen/type.4.wasm b/tests/gen/type.4.wasm deleted file mode 100644 index aee2178f..00000000 Binary files a/tests/gen/type.4.wasm and /dev/null differ diff --git a/tests/gen/type.json b/tests/gen/type.json index 5c0fa8a9..e0d905eb 100644 --- a/tests/gen/type.json +++ b/tests/gen/type.json @@ -1,7 +1,5 @@ {"source_filename": "type.wast", "commands": [ {"type": "module", "line": 3, "filename": "type.0.wasm"}, - {"type": "assert_malformed", "line": 44, "filename": "type.1.wat", "text": "result before parameter", "module_type": "text"}, - {"type": "assert_malformed", "line": 48, "filename": "type.2.wat", "text": "unexpected token", "module_type": "text"}, - {"type": "assert_invalid", "line": 53, "filename": "type.3.wasm", "text": "invalid result arity", "module_type": "binary"}, - {"type": "assert_invalid", "line": 57, "filename": "type.4.wasm", "text": "invalid result arity", "module_type": "binary"}]} + {"type": "assert_malformed", "line": 48, "filename": "type.1.wat", "text": "unexpected token", "module_type": "text"}, + {"type": "assert_malformed", "line": 52, "filename": "type.2.wat", "text": "unexpected token", "module_type": "text"}]} diff --git a/tests/gen/unreachable.0.wasm b/tests/gen/unreachable.0.wasm new file mode 100644 index 00000000..19ca27e9 Binary files /dev/null and b/tests/gen/unreachable.0.wasm differ diff --git a/tests/gen/unreachable.json b/tests/gen/unreachable.json new file mode 100644 index 00000000..6fe55b6b --- /dev/null +++ b/tests/gen/unreachable.json @@ -0,0 +1,66 @@ +{"source_filename": "unreachable.wast", + "commands": [ + {"type": "module", "line": 3, "filename": "unreachable.0.wasm"}, + {"type": "assert_trap", "line": 221, "action": {"type": "invoke", "field": "type-i32", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 222, "action": {"type": "invoke", "field": "type-i64", "args": []}, "text": "unreachable", "expected": [{"type": "i64"}]}, + {"type": "assert_trap", "line": 223, "action": {"type": "invoke", "field": "type-f32", "args": []}, "text": "unreachable", "expected": [{"type": "f32"}]}, + {"type": "assert_trap", "line": 224, "action": {"type": "invoke", "field": "type-f64", "args": []}, "text": "unreachable", "expected": [{"type": "f64"}]}, + {"type": "assert_trap", "line": 226, "action": {"type": "invoke", "field": "as-func-first", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 227, "action": {"type": "invoke", "field": "as-func-mid", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 228, "action": {"type": "invoke", "field": "as-func-last", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 229, "action": {"type": "invoke", "field": "as-func-value", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 231, "action": {"type": "invoke", "field": "as-block-first", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 232, "action": {"type": "invoke", "field": "as-block-mid", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 233, "action": {"type": "invoke", "field": "as-block-last", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 234, "action": {"type": "invoke", "field": "as-block-value", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_return", "line": 235, "action": {"type": "invoke", "field": "as-block-broke", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_trap", "line": 237, "action": {"type": "invoke", "field": "as-loop-first", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 238, "action": {"type": "invoke", "field": "as-loop-mid", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 239, "action": {"type": "invoke", "field": "as-loop-last", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_return", "line": 240, "action": {"type": "invoke", "field": "as-loop-broke", "args": []}, "expected": [{"type": "i32", "value": "1"}]}, + {"type": "assert_trap", "line": 242, "action": {"type": "invoke", "field": "as-br-value", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 244, "action": {"type": "invoke", "field": "as-br_if-cond", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 245, "action": {"type": "invoke", "field": "as-br_if-value", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 246, "action": {"type": "invoke", "field": "as-br_if-value-cond", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 248, "action": {"type": "invoke", "field": "as-br_table-index", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 249, "action": {"type": "invoke", "field": "as-br_table-value", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 250, "action": {"type": "invoke", "field": "as-br_table-value-2", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 251, "action": {"type": "invoke", "field": "as-br_table-value-index", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 252, "action": {"type": "invoke", "field": "as-br_table-value-and-index", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 254, "action": {"type": "invoke", "field": "as-return-value", "args": []}, "text": "unreachable", "expected": [{"type": "i64"}]}, + {"type": "assert_trap", "line": 256, "action": {"type": "invoke", "field": "as-if-cond", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 257, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_return", "line": 258, "action": {"type": "invoke", "field": "as-if-then", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_trap", "line": 259, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_return", "line": 260, "action": {"type": "invoke", "field": "as-if-else", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_trap", "line": 261, "action": {"type": "invoke", "field": "as-if-then-no-else", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_return", "line": 262, "action": {"type": "invoke", "field": "as-if-then-no-else", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "expected": [{"type": "i32", "value": "6"}]}, + {"type": "assert_trap", "line": 264, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 265, "action": {"type": "invoke", "field": "as-select-first", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 266, "action": {"type": "invoke", "field": "as-select-second", "args": [{"type": "i32", "value": "0"}, {"type": "i32", "value": "6"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 267, "action": {"type": "invoke", "field": "as-select-second", "args": [{"type": "i32", "value": "1"}, {"type": "i32", "value": "6"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 268, "action": {"type": "invoke", "field": "as-select-cond", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 270, "action": {"type": "invoke", "field": "as-call-first", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 271, "action": {"type": "invoke", "field": "as-call-mid", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 272, "action": {"type": "invoke", "field": "as-call-last", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 274, "action": {"type": "invoke", "field": "as-call_indirect-func", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 275, "action": {"type": "invoke", "field": "as-call_indirect-first", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 276, "action": {"type": "invoke", "field": "as-call_indirect-mid", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 277, "action": {"type": "invoke", "field": "as-call_indirect-last", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 279, "action": {"type": "invoke", "field": "as-local.set-value", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 280, "action": {"type": "invoke", "field": "as-local.tee-value", "args": []}, "text": "unreachable", "expected": [{"type": "f32"}]}, + {"type": "assert_trap", "line": 281, "action": {"type": "invoke", "field": "as-global.set-value", "args": []}, "text": "unreachable", "expected": [{"type": "f32"}]}, + {"type": "assert_trap", "line": 283, "action": {"type": "invoke", "field": "as-load-address", "args": []}, "text": "unreachable", "expected": [{"type": "f32"}]}, + {"type": "assert_trap", "line": 284, "action": {"type": "invoke", "field": "as-loadN-address", "args": []}, "text": "unreachable", "expected": [{"type": "i64"}]}, + {"type": "assert_trap", "line": 286, "action": {"type": "invoke", "field": "as-store-address", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 287, "action": {"type": "invoke", "field": "as-store-value", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 288, "action": {"type": "invoke", "field": "as-storeN-address", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 289, "action": {"type": "invoke", "field": "as-storeN-value", "args": []}, "text": "unreachable", "expected": []}, + {"type": "assert_trap", "line": 291, "action": {"type": "invoke", "field": "as-unary-operand", "args": []}, "text": "unreachable", "expected": [{"type": "f32"}]}, + {"type": "assert_trap", "line": 293, "action": {"type": "invoke", "field": "as-binary-left", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 294, "action": {"type": "invoke", "field": "as-binary-right", "args": []}, "text": "unreachable", "expected": [{"type": "i64"}]}, + {"type": "assert_trap", "line": 296, "action": {"type": "invoke", "field": "as-test-operand", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 298, "action": {"type": "invoke", "field": "as-compare-left", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 299, "action": {"type": "invoke", "field": "as-compare-right", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 301, "action": {"type": "invoke", "field": "as-convert-operand", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 303, "action": {"type": "invoke", "field": "as-memory.grow-size", "args": []}, "text": "unreachable", "expected": [{"type": "i32"}]}]} diff --git a/tests/gen/unreached-invalid.0.wasm b/tests/gen/unreached-invalid.0.wasm new file mode 100644 index 00000000..2e4c5051 Binary files /dev/null and b/tests/gen/unreached-invalid.0.wasm differ diff --git a/tests/gen/unreached-invalid.1.wasm b/tests/gen/unreached-invalid.1.wasm new file mode 100644 index 00000000..41276fd4 Binary files /dev/null and b/tests/gen/unreached-invalid.1.wasm differ diff --git a/tests/gen/select.27.wasm b/tests/gen/unreached-invalid.10.wasm similarity index 100% rename from tests/gen/select.27.wasm rename to tests/gen/unreached-invalid.10.wasm diff --git a/tests/gen/unreached-invalid.100.wasm b/tests/gen/unreached-invalid.100.wasm new file mode 100644 index 00000000..50d68639 Binary files /dev/null and b/tests/gen/unreached-invalid.100.wasm differ diff --git a/tests/gen/unreached-invalid.101.wasm b/tests/gen/unreached-invalid.101.wasm new file mode 100644 index 00000000..449750b4 Binary files /dev/null and b/tests/gen/unreached-invalid.101.wasm differ diff --git a/tests/gen/unreached-invalid.102.wasm b/tests/gen/unreached-invalid.102.wasm new file mode 100644 index 00000000..aaa2163a Binary files /dev/null and b/tests/gen/unreached-invalid.102.wasm differ diff --git a/tests/gen/unreached-invalid.103.wasm b/tests/gen/unreached-invalid.103.wasm new file mode 100644 index 00000000..2bfee50c Binary files /dev/null and b/tests/gen/unreached-invalid.103.wasm differ diff --git a/tests/gen/unreached-invalid.104.wasm b/tests/gen/unreached-invalid.104.wasm new file mode 100644 index 00000000..b6722da7 Binary files /dev/null and b/tests/gen/unreached-invalid.104.wasm differ diff --git a/tests/gen/unreached-invalid.105.wasm b/tests/gen/unreached-invalid.105.wasm new file mode 100644 index 00000000..e5e33cc3 Binary files /dev/null and b/tests/gen/unreached-invalid.105.wasm differ diff --git a/tests/gen/unreached-invalid.106.wasm b/tests/gen/unreached-invalid.106.wasm new file mode 100644 index 00000000..f9859d7d Binary files /dev/null and b/tests/gen/unreached-invalid.106.wasm differ diff --git a/tests/gen/unreached-invalid.107.wasm b/tests/gen/unreached-invalid.107.wasm new file mode 100644 index 00000000..a31deb55 Binary files /dev/null and b/tests/gen/unreached-invalid.107.wasm differ diff --git a/tests/gen/unreached-invalid.108.wasm b/tests/gen/unreached-invalid.108.wasm new file mode 100644 index 00000000..e3f9cbe1 Binary files /dev/null and b/tests/gen/unreached-invalid.108.wasm differ diff --git a/tests/gen/block.10.wasm b/tests/gen/unreached-invalid.109.wasm similarity index 68% rename from tests/gen/block.10.wasm rename to tests/gen/unreached-invalid.109.wasm index b06638b2..15912bbd 100644 Binary files a/tests/gen/block.10.wasm and b/tests/gen/unreached-invalid.109.wasm differ diff --git a/tests/gen/unreached-invalid.11.wasm b/tests/gen/unreached-invalid.11.wasm new file mode 100644 index 00000000..0dbc2a05 Binary files /dev/null and b/tests/gen/unreached-invalid.11.wasm differ diff --git a/tests/gen/unreached-invalid.110.wasm b/tests/gen/unreached-invalid.110.wasm new file mode 100644 index 00000000..2b82ad87 Binary files /dev/null and b/tests/gen/unreached-invalid.110.wasm differ diff --git a/tests/gen/unreached-invalid.111.wasm b/tests/gen/unreached-invalid.111.wasm new file mode 100644 index 00000000..0cf52ed5 Binary files /dev/null and b/tests/gen/unreached-invalid.111.wasm differ diff --git a/tests/gen/unreached-invalid.112.wasm b/tests/gen/unreached-invalid.112.wasm new file mode 100644 index 00000000..6d5c2526 Binary files /dev/null and b/tests/gen/unreached-invalid.112.wasm differ diff --git a/tests/gen/unreached-invalid.113.wasm b/tests/gen/unreached-invalid.113.wasm new file mode 100644 index 00000000..9036db1c Binary files /dev/null and b/tests/gen/unreached-invalid.113.wasm differ diff --git a/tests/gen/unreached-invalid.114.wasm b/tests/gen/unreached-invalid.114.wasm new file mode 100644 index 00000000..88b4d57b Binary files /dev/null and b/tests/gen/unreached-invalid.114.wasm differ diff --git a/tests/gen/unreached-invalid.115.wasm b/tests/gen/unreached-invalid.115.wasm new file mode 100644 index 00000000..e8b22eb0 Binary files /dev/null and b/tests/gen/unreached-invalid.115.wasm differ diff --git a/tests/gen/unreached-invalid.116.wasm b/tests/gen/unreached-invalid.116.wasm new file mode 100644 index 00000000..6612a863 Binary files /dev/null and b/tests/gen/unreached-invalid.116.wasm differ diff --git a/tests/gen/unreached-invalid.12.wasm b/tests/gen/unreached-invalid.12.wasm new file mode 100644 index 00000000..75f60e40 Binary files /dev/null and b/tests/gen/unreached-invalid.12.wasm differ diff --git a/tests/gen/unreached-invalid.13.wasm b/tests/gen/unreached-invalid.13.wasm new file mode 100644 index 00000000..f99c4900 Binary files /dev/null and b/tests/gen/unreached-invalid.13.wasm differ diff --git a/tests/gen/unreached-invalid.14.wasm b/tests/gen/unreached-invalid.14.wasm new file mode 100644 index 00000000..9adf1591 Binary files /dev/null and b/tests/gen/unreached-invalid.14.wasm differ diff --git a/tests/gen/unreached-invalid.15.wasm b/tests/gen/unreached-invalid.15.wasm new file mode 100644 index 00000000..1c4ee717 Binary files /dev/null and b/tests/gen/unreached-invalid.15.wasm differ diff --git a/tests/gen/unreached-invalid.16.wasm b/tests/gen/unreached-invalid.16.wasm new file mode 100644 index 00000000..a1b02de1 Binary files /dev/null and b/tests/gen/unreached-invalid.16.wasm differ diff --git a/tests/gen/unreached-invalid.17.wasm b/tests/gen/unreached-invalid.17.wasm new file mode 100644 index 00000000..effd7692 Binary files /dev/null and b/tests/gen/unreached-invalid.17.wasm differ diff --git a/tests/gen/unreached-invalid.18.wasm b/tests/gen/unreached-invalid.18.wasm new file mode 100644 index 00000000..3427ea70 Binary files /dev/null and b/tests/gen/unreached-invalid.18.wasm differ diff --git a/tests/gen/unreached-invalid.19.wasm b/tests/gen/unreached-invalid.19.wasm new file mode 100644 index 00000000..7870c321 Binary files /dev/null and b/tests/gen/unreached-invalid.19.wasm differ diff --git a/tests/gen/unreached-invalid.2.wasm b/tests/gen/unreached-invalid.2.wasm new file mode 100644 index 00000000..0dd11578 Binary files /dev/null and b/tests/gen/unreached-invalid.2.wasm differ diff --git a/tests/gen/unreached-invalid.20.wasm b/tests/gen/unreached-invalid.20.wasm new file mode 100644 index 00000000..ab9f526c Binary files /dev/null and b/tests/gen/unreached-invalid.20.wasm differ diff --git a/tests/gen/unreached-invalid.21.wasm b/tests/gen/unreached-invalid.21.wasm new file mode 100644 index 00000000..f1925bf6 Binary files /dev/null and b/tests/gen/unreached-invalid.21.wasm differ diff --git a/tests/gen/unreached-invalid.22.wasm b/tests/gen/unreached-invalid.22.wasm new file mode 100644 index 00000000..7303c5a3 Binary files /dev/null and b/tests/gen/unreached-invalid.22.wasm differ diff --git a/tests/gen/unreached-invalid.23.wasm b/tests/gen/unreached-invalid.23.wasm new file mode 100644 index 00000000..86805d3e Binary files /dev/null and b/tests/gen/unreached-invalid.23.wasm differ diff --git a/tests/gen/unreached-invalid.24.wasm b/tests/gen/unreached-invalid.24.wasm new file mode 100644 index 00000000..ba57794c Binary files /dev/null and b/tests/gen/unreached-invalid.24.wasm differ diff --git a/tests/gen/unreached-invalid.25.wasm b/tests/gen/unreached-invalid.25.wasm new file mode 100644 index 00000000..0bddd276 Binary files /dev/null and b/tests/gen/unreached-invalid.25.wasm differ diff --git a/tests/gen/unreached-invalid.26.wasm b/tests/gen/unreached-invalid.26.wasm new file mode 100644 index 00000000..8bfdb428 Binary files /dev/null and b/tests/gen/unreached-invalid.26.wasm differ diff --git a/tests/gen/unreached-invalid.27.wasm b/tests/gen/unreached-invalid.27.wasm new file mode 100644 index 00000000..20baa4f5 Binary files /dev/null and b/tests/gen/unreached-invalid.27.wasm differ diff --git a/tests/gen/unreached-invalid.28.wasm b/tests/gen/unreached-invalid.28.wasm new file mode 100644 index 00000000..9e7048ce Binary files /dev/null and b/tests/gen/unreached-invalid.28.wasm differ diff --git a/tests/gen/unreached-invalid.29.wasm b/tests/gen/unreached-invalid.29.wasm new file mode 100644 index 00000000..90742d01 Binary files /dev/null and b/tests/gen/unreached-invalid.29.wasm differ diff --git a/tests/gen/unreached-invalid.3.wasm b/tests/gen/unreached-invalid.3.wasm new file mode 100644 index 00000000..6f56eb61 Binary files /dev/null and b/tests/gen/unreached-invalid.3.wasm differ diff --git a/tests/gen/unreached-invalid.30.wasm b/tests/gen/unreached-invalid.30.wasm new file mode 100644 index 00000000..8e7c28b6 Binary files /dev/null and b/tests/gen/unreached-invalid.30.wasm differ diff --git a/tests/gen/unreached-invalid.31.wasm b/tests/gen/unreached-invalid.31.wasm new file mode 100644 index 00000000..413ed8f7 Binary files /dev/null and b/tests/gen/unreached-invalid.31.wasm differ diff --git a/tests/gen/unreached-invalid.32.wasm b/tests/gen/unreached-invalid.32.wasm new file mode 100644 index 00000000..11dc77ac Binary files /dev/null and b/tests/gen/unreached-invalid.32.wasm differ diff --git a/tests/gen/unreached-invalid.33.wasm b/tests/gen/unreached-invalid.33.wasm new file mode 100644 index 00000000..50000010 Binary files /dev/null and b/tests/gen/unreached-invalid.33.wasm differ diff --git a/tests/gen/unreached-invalid.34.wasm b/tests/gen/unreached-invalid.34.wasm new file mode 100644 index 00000000..25cc535a Binary files /dev/null and b/tests/gen/unreached-invalid.34.wasm differ diff --git a/tests/gen/unreached-invalid.35.wasm b/tests/gen/unreached-invalid.35.wasm new file mode 100644 index 00000000..7d1af936 Binary files /dev/null and b/tests/gen/unreached-invalid.35.wasm differ diff --git a/tests/gen/unreached-invalid.36.wasm b/tests/gen/unreached-invalid.36.wasm new file mode 100644 index 00000000..2b84fa9d Binary files /dev/null and b/tests/gen/unreached-invalid.36.wasm differ diff --git a/tests/gen/unreached-invalid.37.wasm b/tests/gen/unreached-invalid.37.wasm new file mode 100644 index 00000000..48caa1ec Binary files /dev/null and b/tests/gen/unreached-invalid.37.wasm differ diff --git a/tests/gen/unreached-invalid.38.wasm b/tests/gen/unreached-invalid.38.wasm new file mode 100644 index 00000000..a837d09a Binary files /dev/null and b/tests/gen/unreached-invalid.38.wasm differ diff --git a/tests/gen/unreached-invalid.39.wasm b/tests/gen/unreached-invalid.39.wasm new file mode 100644 index 00000000..e7006226 Binary files /dev/null and b/tests/gen/unreached-invalid.39.wasm differ diff --git a/tests/gen/unreached-invalid.4.wasm b/tests/gen/unreached-invalid.4.wasm new file mode 100644 index 00000000..2ff168c7 Binary files /dev/null and b/tests/gen/unreached-invalid.4.wasm differ diff --git a/tests/gen/unreached-invalid.40.wasm b/tests/gen/unreached-invalid.40.wasm new file mode 100644 index 00000000..ddb290b4 Binary files /dev/null and b/tests/gen/unreached-invalid.40.wasm differ diff --git a/tests/gen/unreached-invalid.41.wasm b/tests/gen/unreached-invalid.41.wasm new file mode 100644 index 00000000..fb8b1658 Binary files /dev/null and b/tests/gen/unreached-invalid.41.wasm differ diff --git a/tests/gen/unreached-invalid.42.wasm b/tests/gen/unreached-invalid.42.wasm new file mode 100644 index 00000000..4249388a Binary files /dev/null and b/tests/gen/unreached-invalid.42.wasm differ diff --git a/tests/gen/unreached-invalid.43.wasm b/tests/gen/unreached-invalid.43.wasm new file mode 100644 index 00000000..947cc704 Binary files /dev/null and b/tests/gen/unreached-invalid.43.wasm differ diff --git a/tests/gen/unreached-invalid.44.wasm b/tests/gen/unreached-invalid.44.wasm new file mode 100644 index 00000000..c774bede Binary files /dev/null and b/tests/gen/unreached-invalid.44.wasm differ diff --git a/tests/gen/unreached-invalid.45.wasm b/tests/gen/unreached-invalid.45.wasm new file mode 100644 index 00000000..834053c5 Binary files /dev/null and b/tests/gen/unreached-invalid.45.wasm differ diff --git a/tests/gen/unreached-invalid.46.wasm b/tests/gen/unreached-invalid.46.wasm new file mode 100644 index 00000000..22c62e53 Binary files /dev/null and b/tests/gen/unreached-invalid.46.wasm differ diff --git a/tests/gen/unreached-invalid.47.wasm b/tests/gen/unreached-invalid.47.wasm new file mode 100644 index 00000000..f9fbe6db Binary files /dev/null and b/tests/gen/unreached-invalid.47.wasm differ diff --git a/tests/gen/unreached-invalid.48.wasm b/tests/gen/unreached-invalid.48.wasm new file mode 100644 index 00000000..3b9d66ec Binary files /dev/null and b/tests/gen/unreached-invalid.48.wasm differ diff --git a/tests/gen/unreached-invalid.49.wasm b/tests/gen/unreached-invalid.49.wasm new file mode 100644 index 00000000..8a0ecaaa Binary files /dev/null and b/tests/gen/unreached-invalid.49.wasm differ diff --git a/tests/gen/unreached-invalid.5.wasm b/tests/gen/unreached-invalid.5.wasm new file mode 100644 index 00000000..21be0b48 Binary files /dev/null and b/tests/gen/unreached-invalid.5.wasm differ diff --git a/tests/gen/unreached-invalid.50.wasm b/tests/gen/unreached-invalid.50.wasm new file mode 100644 index 00000000..d1a82ed5 Binary files /dev/null and b/tests/gen/unreached-invalid.50.wasm differ diff --git a/tests/gen/unreached-invalid.51.wasm b/tests/gen/unreached-invalid.51.wasm new file mode 100644 index 00000000..372486e3 Binary files /dev/null and b/tests/gen/unreached-invalid.51.wasm differ diff --git a/tests/gen/unreached-invalid.52.wasm b/tests/gen/unreached-invalid.52.wasm new file mode 100644 index 00000000..50bcc612 Binary files /dev/null and b/tests/gen/unreached-invalid.52.wasm differ diff --git a/tests/gen/unreached-invalid.53.wasm b/tests/gen/unreached-invalid.53.wasm new file mode 100644 index 00000000..df2ff29d Binary files /dev/null and b/tests/gen/unreached-invalid.53.wasm differ diff --git a/tests/gen/unreached-invalid.54.wasm b/tests/gen/unreached-invalid.54.wasm new file mode 100644 index 00000000..24d1f0e6 Binary files /dev/null and b/tests/gen/unreached-invalid.54.wasm differ diff --git a/tests/gen/unreached-invalid.55.wasm b/tests/gen/unreached-invalid.55.wasm new file mode 100644 index 00000000..2e9c39e9 Binary files /dev/null and b/tests/gen/unreached-invalid.55.wasm differ diff --git a/tests/gen/unreached-invalid.56.wasm b/tests/gen/unreached-invalid.56.wasm new file mode 100644 index 00000000..49b7aba6 Binary files /dev/null and b/tests/gen/unreached-invalid.56.wasm differ diff --git a/tests/gen/unreached-invalid.57.wasm b/tests/gen/unreached-invalid.57.wasm new file mode 100644 index 00000000..6d3dfca9 Binary files /dev/null and b/tests/gen/unreached-invalid.57.wasm differ diff --git a/tests/gen/unreached-invalid.58.wasm b/tests/gen/unreached-invalid.58.wasm new file mode 100644 index 00000000..0b7a13ac Binary files /dev/null and b/tests/gen/unreached-invalid.58.wasm differ diff --git a/tests/gen/unreached-invalid.59.wasm b/tests/gen/unreached-invalid.59.wasm new file mode 100644 index 00000000..59a268a2 Binary files /dev/null and b/tests/gen/unreached-invalid.59.wasm differ diff --git a/tests/gen/unreached-invalid.6.wasm b/tests/gen/unreached-invalid.6.wasm new file mode 100644 index 00000000..41b9e532 Binary files /dev/null and b/tests/gen/unreached-invalid.6.wasm differ diff --git a/tests/gen/unreached-invalid.60.wasm b/tests/gen/unreached-invalid.60.wasm new file mode 100644 index 00000000..d92ce640 Binary files /dev/null and b/tests/gen/unreached-invalid.60.wasm differ diff --git a/tests/gen/unreached-invalid.61.wasm b/tests/gen/unreached-invalid.61.wasm new file mode 100644 index 00000000..67acd6d6 Binary files /dev/null and b/tests/gen/unreached-invalid.61.wasm differ diff --git a/tests/gen/unreached-invalid.62.wasm b/tests/gen/unreached-invalid.62.wasm new file mode 100644 index 00000000..79bc24ce Binary files /dev/null and b/tests/gen/unreached-invalid.62.wasm differ diff --git a/tests/gen/unreached-invalid.63.wasm b/tests/gen/unreached-invalid.63.wasm new file mode 100644 index 00000000..cdcd37f8 Binary files /dev/null and b/tests/gen/unreached-invalid.63.wasm differ diff --git a/tests/gen/unreached-invalid.64.wasm b/tests/gen/unreached-invalid.64.wasm new file mode 100644 index 00000000..a0726c92 Binary files /dev/null and b/tests/gen/unreached-invalid.64.wasm differ diff --git a/tests/gen/unreached-invalid.65.wasm b/tests/gen/unreached-invalid.65.wasm new file mode 100644 index 00000000..a9c1937d Binary files /dev/null and b/tests/gen/unreached-invalid.65.wasm differ diff --git a/tests/gen/unreached-invalid.66.wasm b/tests/gen/unreached-invalid.66.wasm new file mode 100644 index 00000000..fe85d7f7 Binary files /dev/null and b/tests/gen/unreached-invalid.66.wasm differ diff --git a/tests/gen/unreached-invalid.67.wasm b/tests/gen/unreached-invalid.67.wasm new file mode 100644 index 00000000..429c1703 Binary files /dev/null and b/tests/gen/unreached-invalid.67.wasm differ diff --git a/tests/gen/unreached-invalid.68.wasm b/tests/gen/unreached-invalid.68.wasm new file mode 100644 index 00000000..1bf8a37c Binary files /dev/null and b/tests/gen/unreached-invalid.68.wasm differ diff --git a/tests/gen/unreached-invalid.69.wasm b/tests/gen/unreached-invalid.69.wasm new file mode 100644 index 00000000..a710af8c Binary files /dev/null and b/tests/gen/unreached-invalid.69.wasm differ diff --git a/tests/gen/unreached-invalid.7.wasm b/tests/gen/unreached-invalid.7.wasm new file mode 100644 index 00000000..45b3699f Binary files /dev/null and b/tests/gen/unreached-invalid.7.wasm differ diff --git a/tests/gen/unreached-invalid.70.wasm b/tests/gen/unreached-invalid.70.wasm new file mode 100644 index 00000000..12689eee Binary files /dev/null and b/tests/gen/unreached-invalid.70.wasm differ diff --git a/tests/gen/unreached-invalid.71.wasm b/tests/gen/unreached-invalid.71.wasm new file mode 100644 index 00000000..d23f85c7 Binary files /dev/null and b/tests/gen/unreached-invalid.71.wasm differ diff --git a/tests/gen/unreached-invalid.72.wasm b/tests/gen/unreached-invalid.72.wasm new file mode 100644 index 00000000..478051e6 Binary files /dev/null and b/tests/gen/unreached-invalid.72.wasm differ diff --git a/tests/gen/unreached-invalid.73.wasm b/tests/gen/unreached-invalid.73.wasm new file mode 100644 index 00000000..03e64937 Binary files /dev/null and b/tests/gen/unreached-invalid.73.wasm differ diff --git a/tests/gen/unreached-invalid.74.wasm b/tests/gen/unreached-invalid.74.wasm new file mode 100644 index 00000000..a574e706 Binary files /dev/null and b/tests/gen/unreached-invalid.74.wasm differ diff --git a/tests/gen/unreached-invalid.75.wasm b/tests/gen/unreached-invalid.75.wasm new file mode 100644 index 00000000..e014fcdf Binary files /dev/null and b/tests/gen/unreached-invalid.75.wasm differ diff --git a/tests/gen/unreached-invalid.76.wasm b/tests/gen/unreached-invalid.76.wasm new file mode 100644 index 00000000..efb6af93 Binary files /dev/null and b/tests/gen/unreached-invalid.76.wasm differ diff --git a/tests/gen/unreached-invalid.77.wasm b/tests/gen/unreached-invalid.77.wasm new file mode 100644 index 00000000..b336a9a3 Binary files /dev/null and b/tests/gen/unreached-invalid.77.wasm differ diff --git a/tests/gen/unreached-invalid.78.wasm b/tests/gen/unreached-invalid.78.wasm new file mode 100644 index 00000000..84583bde Binary files /dev/null and b/tests/gen/unreached-invalid.78.wasm differ diff --git a/tests/gen/unreached-invalid.79.wasm b/tests/gen/unreached-invalid.79.wasm new file mode 100644 index 00000000..40df4ca8 Binary files /dev/null and b/tests/gen/unreached-invalid.79.wasm differ diff --git a/tests/gen/unreached-invalid.8.wasm b/tests/gen/unreached-invalid.8.wasm new file mode 100644 index 00000000..aca7f1a0 Binary files /dev/null and b/tests/gen/unreached-invalid.8.wasm differ diff --git a/tests/gen/unreached-invalid.80.wasm b/tests/gen/unreached-invalid.80.wasm new file mode 100644 index 00000000..04529a0c Binary files /dev/null and b/tests/gen/unreached-invalid.80.wasm differ diff --git a/tests/gen/unreached-invalid.81.wasm b/tests/gen/unreached-invalid.81.wasm new file mode 100644 index 00000000..08469eb7 Binary files /dev/null and b/tests/gen/unreached-invalid.81.wasm differ diff --git a/tests/gen/unreached-invalid.82.wasm b/tests/gen/unreached-invalid.82.wasm new file mode 100644 index 00000000..2bcbd1e4 Binary files /dev/null and b/tests/gen/unreached-invalid.82.wasm differ diff --git a/tests/gen/unreached-invalid.83.wasm b/tests/gen/unreached-invalid.83.wasm new file mode 100644 index 00000000..c7afb623 Binary files /dev/null and b/tests/gen/unreached-invalid.83.wasm differ diff --git a/tests/gen/unreached-invalid.84.wasm b/tests/gen/unreached-invalid.84.wasm new file mode 100644 index 00000000..fffc4537 Binary files /dev/null and b/tests/gen/unreached-invalid.84.wasm differ diff --git a/tests/gen/unreached-invalid.85.wasm b/tests/gen/unreached-invalid.85.wasm new file mode 100644 index 00000000..8d377121 Binary files /dev/null and b/tests/gen/unreached-invalid.85.wasm differ diff --git a/tests/gen/unreached-invalid.86.wasm b/tests/gen/unreached-invalid.86.wasm new file mode 100644 index 00000000..81090061 Binary files /dev/null and b/tests/gen/unreached-invalid.86.wasm differ diff --git a/tests/gen/unreached-invalid.87.wasm b/tests/gen/unreached-invalid.87.wasm new file mode 100644 index 00000000..1c019e58 Binary files /dev/null and b/tests/gen/unreached-invalid.87.wasm differ diff --git a/tests/gen/unreached-invalid.88.wasm b/tests/gen/unreached-invalid.88.wasm new file mode 100644 index 00000000..2144aa34 Binary files /dev/null and b/tests/gen/unreached-invalid.88.wasm differ diff --git a/tests/gen/unreached-invalid.89.wasm b/tests/gen/unreached-invalid.89.wasm new file mode 100644 index 00000000..665cd961 Binary files /dev/null and b/tests/gen/unreached-invalid.89.wasm differ diff --git a/tests/gen/unreached-invalid.9.wasm b/tests/gen/unreached-invalid.9.wasm new file mode 100644 index 00000000..ae2f89ea Binary files /dev/null and b/tests/gen/unreached-invalid.9.wasm differ diff --git a/tests/gen/unreached-invalid.90.wasm b/tests/gen/unreached-invalid.90.wasm new file mode 100644 index 00000000..e4411829 Binary files /dev/null and b/tests/gen/unreached-invalid.90.wasm differ diff --git a/tests/gen/unreached-invalid.91.wasm b/tests/gen/unreached-invalid.91.wasm new file mode 100644 index 00000000..caf5e55f Binary files /dev/null and b/tests/gen/unreached-invalid.91.wasm differ diff --git a/tests/gen/unreached-invalid.92.wasm b/tests/gen/unreached-invalid.92.wasm new file mode 100644 index 00000000..1a65664a Binary files /dev/null and b/tests/gen/unreached-invalid.92.wasm differ diff --git a/tests/gen/unreached-invalid.93.wasm b/tests/gen/unreached-invalid.93.wasm new file mode 100644 index 00000000..c449ad8e Binary files /dev/null and b/tests/gen/unreached-invalid.93.wasm differ diff --git a/tests/gen/unreached-invalid.94.wasm b/tests/gen/unreached-invalid.94.wasm new file mode 100644 index 00000000..647973f6 Binary files /dev/null and b/tests/gen/unreached-invalid.94.wasm differ diff --git a/tests/gen/unreached-invalid.95.wasm b/tests/gen/unreached-invalid.95.wasm new file mode 100644 index 00000000..8c79e9ea Binary files /dev/null and b/tests/gen/unreached-invalid.95.wasm differ diff --git a/tests/gen/unreached-invalid.96.wasm b/tests/gen/unreached-invalid.96.wasm new file mode 100644 index 00000000..4c474499 Binary files /dev/null and b/tests/gen/unreached-invalid.96.wasm differ diff --git a/tests/gen/unreached-invalid.97.wasm b/tests/gen/unreached-invalid.97.wasm new file mode 100644 index 00000000..608ea7c4 Binary files /dev/null and b/tests/gen/unreached-invalid.97.wasm differ diff --git a/tests/gen/unreached-invalid.98.wasm b/tests/gen/unreached-invalid.98.wasm new file mode 100644 index 00000000..3cb74891 Binary files /dev/null and b/tests/gen/unreached-invalid.98.wasm differ diff --git a/tests/gen/unreached-invalid.99.wasm b/tests/gen/unreached-invalid.99.wasm new file mode 100644 index 00000000..36b8b97d Binary files /dev/null and b/tests/gen/unreached-invalid.99.wasm differ diff --git a/tests/gen/unreached-invalid.json b/tests/gen/unreached-invalid.json new file mode 100644 index 00000000..f47b1445 --- /dev/null +++ b/tests/gen/unreached-invalid.json @@ -0,0 +1,119 @@ +{"source_filename": "unreached-invalid.wast", + "commands": [ + {"type": "assert_invalid", "line": 4, "filename": "unreached-invalid.0.wasm", "text": "unknown local", "module_type": "binary"}, + {"type": "assert_invalid", "line": 8, "filename": "unreached-invalid.1.wasm", "text": "unknown global", "module_type": "binary"}, + {"type": "assert_invalid", "line": 12, "filename": "unreached-invalid.2.wasm", "text": "unknown function", "module_type": "binary"}, + {"type": "assert_invalid", "line": 16, "filename": "unreached-invalid.3.wasm", "text": "unknown label", "module_type": "binary"}, + {"type": "assert_invalid", "line": 21, "filename": "unreached-invalid.4.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 27, "filename": "unreached-invalid.5.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 33, "filename": "unreached-invalid.6.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 42, "filename": "unreached-invalid.7.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 46, "filename": "unreached-invalid.8.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 50, "filename": "unreached-invalid.9.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 56, "filename": "unreached-invalid.10.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 60, "filename": "unreached-invalid.11.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 64, "filename": "unreached-invalid.12.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 71, "filename": "unreached-invalid.13.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 77, "filename": "unreached-invalid.14.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 83, "filename": "unreached-invalid.15.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 89, "filename": "unreached-invalid.16.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 95, "filename": "unreached-invalid.17.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 101, "filename": "unreached-invalid.18.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 107, "filename": "unreached-invalid.19.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 113, "filename": "unreached-invalid.20.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 119, "filename": "unreached-invalid.21.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 125, "filename": "unreached-invalid.22.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 132, "filename": "unreached-invalid.23.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 138, "filename": "unreached-invalid.24.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 144, "filename": "unreached-invalid.25.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 150, "filename": "unreached-invalid.26.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 156, "filename": "unreached-invalid.27.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 162, "filename": "unreached-invalid.28.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 168, "filename": "unreached-invalid.29.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 174, "filename": "unreached-invalid.30.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 180, "filename": "unreached-invalid.31.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 186, "filename": "unreached-invalid.32.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 193, "filename": "unreached-invalid.33.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 199, "filename": "unreached-invalid.34.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 205, "filename": "unreached-invalid.35.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 211, "filename": "unreached-invalid.36.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 217, "filename": "unreached-invalid.37.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 223, "filename": "unreached-invalid.38.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 229, "filename": "unreached-invalid.39.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 235, "filename": "unreached-invalid.40.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 241, "filename": "unreached-invalid.41.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 247, "filename": "unreached-invalid.42.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 253, "filename": "unreached-invalid.43.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 259, "filename": "unreached-invalid.44.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 265, "filename": "unreached-invalid.45.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 271, "filename": "unreached-invalid.46.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 277, "filename": "unreached-invalid.47.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 284, "filename": "unreached-invalid.48.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 290, "filename": "unreached-invalid.49.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 296, "filename": "unreached-invalid.50.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 302, "filename": "unreached-invalid.51.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 308, "filename": "unreached-invalid.52.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 314, "filename": "unreached-invalid.53.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 321, "filename": "unreached-invalid.54.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 327, "filename": "unreached-invalid.55.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 334, "filename": "unreached-invalid.56.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 340, "filename": "unreached-invalid.57.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 348, "filename": "unreached-invalid.58.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 354, "filename": "unreached-invalid.59.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 360, "filename": "unreached-invalid.60.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 366, "filename": "unreached-invalid.61.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 372, "filename": "unreached-invalid.62.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 378, "filename": "unreached-invalid.63.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 384, "filename": "unreached-invalid.64.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 390, "filename": "unreached-invalid.65.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 396, "filename": "unreached-invalid.66.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 402, "filename": "unreached-invalid.67.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 409, "filename": "unreached-invalid.68.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 415, "filename": "unreached-invalid.69.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 421, "filename": "unreached-invalid.70.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 427, "filename": "unreached-invalid.71.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 433, "filename": "unreached-invalid.72.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 439, "filename": "unreached-invalid.73.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 445, "filename": "unreached-invalid.74.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 451, "filename": "unreached-invalid.75.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 457, "filename": "unreached-invalid.76.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 463, "filename": "unreached-invalid.77.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 470, "filename": "unreached-invalid.78.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 477, "filename": "unreached-invalid.79.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 484, "filename": "unreached-invalid.80.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 490, "filename": "unreached-invalid.81.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 498, "filename": "unreached-invalid.82.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 507, "filename": "unreached-invalid.83.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 515, "filename": "unreached-invalid.84.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 521, "filename": "unreached-invalid.85.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 527, "filename": "unreached-invalid.86.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 540, "filename": "unreached-invalid.87.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 546, "filename": "unreached-invalid.88.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 552, "filename": "unreached-invalid.89.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 558, "filename": "unreached-invalid.90.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 565, "filename": "unreached-invalid.91.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 571, "filename": "unreached-invalid.92.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 577, "filename": "unreached-invalid.93.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 584, "filename": "unreached-invalid.94.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 590, "filename": "unreached-invalid.95.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 596, "filename": "unreached-invalid.96.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 604, "filename": "unreached-invalid.97.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 611, "filename": "unreached-invalid.98.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 617, "filename": "unreached-invalid.99.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 623, "filename": "unreached-invalid.100.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 629, "filename": "unreached-invalid.101.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 637, "filename": "unreached-invalid.102.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 643, "filename": "unreached-invalid.103.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 649, "filename": "unreached-invalid.104.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 656, "filename": "unreached-invalid.105.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 662, "filename": "unreached-invalid.106.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 669, "filename": "unreached-invalid.107.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 676, "filename": "unreached-invalid.108.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 687, "filename": "unreached-invalid.109.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 699, "filename": "unreached-invalid.110.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 704, "filename": "unreached-invalid.111.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 710, "filename": "unreached-invalid.112.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 715, "filename": "unreached-invalid.113.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 720, "filename": "unreached-invalid.114.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 726, "filename": "unreached-invalid.115.wasm", "text": "type mismatch", "module_type": "binary"}, + {"type": "assert_invalid", "line": 733, "filename": "unreached-invalid.116.wasm", "text": "type mismatch", "module_type": "binary"}]} diff --git a/tests/gen/unreached-valid.0.wasm b/tests/gen/unreached-valid.0.wasm new file mode 100644 index 00000000..edec94f8 Binary files /dev/null and b/tests/gen/unreached-valid.0.wasm differ diff --git a/tests/gen/unreached-valid.1.wasm b/tests/gen/unreached-valid.1.wasm new file mode 100644 index 00000000..7a48446b Binary files /dev/null and b/tests/gen/unreached-valid.1.wasm differ diff --git a/tests/gen/unreached-valid.json b/tests/gen/unreached-valid.json new file mode 100644 index 00000000..30a2dad6 --- /dev/null +++ b/tests/gen/unreached-valid.json @@ -0,0 +1,9 @@ +{"source_filename": "unreached-valid.wast", + "commands": [ + {"type": "module", "line": 1, "filename": "unreached-valid.0.wasm"}, + {"type": "assert_trap", "line": 43, "action": {"type": "invoke", "field": "select-trap-left", "args": [{"type": "i32", "value": "1"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 44, "action": {"type": "invoke", "field": "select-trap-left", "args": [{"type": "i32", "value": "0"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 45, "action": {"type": "invoke", "field": "select-trap-right", "args": [{"type": "i32", "value": "1"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "assert_trap", "line": 46, "action": {"type": "invoke", "field": "select-trap-right", "args": [{"type": "i32", "value": "0"}]}, "text": "unreachable", "expected": [{"type": "i32"}]}, + {"type": "module", "line": 50, "filename": "unreached-valid.1.wasm"}, + {"type": "assert_trap", "line": 64, "action": {"type": "invoke", "field": "meet-bottom", "args": []}, "text": "unreachable", "expected": []}]} diff --git a/tests/global.wast b/tests/global.wast index f3808174..3a6c200e 100644 --- a/tests/global.wast +++ b/tests/global.wast @@ -17,14 +17,24 @@ (global $z1 i32 (global.get 0)) (global $z2 i64 (global.get 1)) + ;; W2C2: No support for external references + ;; (global $r externref (ref.null extern)) + ;; (global $mr (mut externref) (ref.null extern)) + ;; (global funcref (ref.null func)) + (func (export "get-a") (result i32) (global.get $a)) (func (export "get-b") (result i64) (global.get $b)) + ;; W2C2: No support for external references + ;; (func (export "get-r") (result externref) (global.get $r)) + ;; (func (export "get-mr") (result externref) (global.get $mr)) (func (export "get-x") (result i32) (global.get $x)) (func (export "get-y") (result i64) (global.get $y)) (func (export "get-z1") (result i32) (global.get $z1)) (func (export "get-z2") (result i64) (global.get $z2)) (func (export "set-x") (param i32) (global.set $x (local.get 0))) (func (export "set-y") (param i64) (global.set $y (local.get 0))) + ;; W2C2: No support for external references + ;; (func (export "set-mr") (param externref) (global.set $mr (local.get 0))) (func (export "get-3") (result f32) (global.get 3)) (func (export "get-4") (result f64) (global.get 4)) @@ -188,6 +198,9 @@ (assert_return (invoke "get-a") (i32.const -2)) (assert_return (invoke "get-b") (i64.const -5)) +;; W2C2: No support for external references +;; (assert_return (invoke "get-r") (ref.null extern)) +;; (assert_return (invoke "get-mr") (ref.null extern)) (assert_return (invoke "get-x") (i32.const -12)) (assert_return (invoke "get-y") (i64.const -15)) (assert_return (invoke "get-z1") (i32.const 666)) @@ -200,13 +213,26 @@ (assert_return (invoke "set-x" (i32.const 6))) (assert_return (invoke "set-y" (i64.const 7))) + +(assert_return (invoke "set-7" (f32.const 8))) +(assert_return (invoke "set-8" (f64.const 9))) + +(assert_return (invoke "get-x") (i32.const 6)) +(assert_return (invoke "get-y") (i64.const 7)) +(assert_return (invoke "get-7") (f32.const 8)) +(assert_return (invoke "get-8") (f64.const 9)) + (assert_return (invoke "set-7" (f32.const 8))) (assert_return (invoke "set-8" (f64.const 9))) +;; W2C2: No support for external references +;; (assert_return (invoke "set-mr" (ref.extern 10))) (assert_return (invoke "get-x") (i32.const 6)) (assert_return (invoke "get-y") (i64.const 7)) (assert_return (invoke "get-7") (f32.const 8)) (assert_return (invoke "get-8") (f64.const 9)) +;; W2C2: No support for external references +;; (assert_return (invoke "get-mr") (ref.extern 10)) (assert_return (invoke "as-select-first") (i32.const 6)) (assert_return (invoke "as-select-mid") (i32.const 2)) @@ -308,6 +334,12 @@ "type mismatch" ) +;; W2C2: No support for external references +;; (assert_invalid +;; (module (global (import "" "") externref) (global funcref (global.get 0))) +;; "type mismatch" +;; ) + (assert_invalid (module (global (import "test" "global-i32") i32) (global i32 (global.get 0) (global.get 0))) "type mismatch" @@ -323,6 +355,15 @@ "unknown global" ) +(assert_invalid + (module (global i32 (i32.const 0)) (global i32 (global.get 0))) + "unknown global" +) +(assert_invalid + (module (global $g i32 (i32.const 0)) (global i32 (global.get $g))) + "unknown global" +) + (assert_invalid (module (global i32 (global.get 1)) (global i32 (i32.const 0))) "unknown global" diff --git a/tests/i32.wast b/tests/i32.wast index 32862c34..2e8ab700 100644 --- a/tests/i32.wast +++ b/tests/i32.wast @@ -974,3 +974,12 @@ (assert_invalid (module (func (result i32) (i32.lt_s (i64.const 0) (f32.const 0)))) "type mismatch") (assert_invalid (module (func (result i32) (i32.lt_u (i64.const 0) (f32.const 0)))) "type mismatch") (assert_invalid (module (func (result i32) (i32.ne (i64.const 0) (f32.const 0)))) "type mismatch") + +(assert_malformed + (module quote "(func (result i32) (i32.const nan:arithmetic))") + "unexpected token" +) +(assert_malformed + (module quote "(func (result i32) (i32.const nan:canonical))") + "unexpected token" +) diff --git a/tests/i64.wast b/tests/i64.wast index baeed0ce..b662f3d9 100644 --- a/tests/i64.wast +++ b/tests/i64.wast @@ -483,3 +483,12 @@ (assert_invalid (module (func (result i64) (i64.lt_s (i32.const 0) (f32.const 0)))) "type mismatch") (assert_invalid (module (func (result i64) (i64.lt_u (i32.const 0) (f32.const 0)))) "type mismatch") (assert_invalid (module (func (result i64) (i64.ne (i32.const 0) (f32.const 0)))) "type mismatch") + +(assert_malformed + (module quote "(func (result i64) (i64.const nan:arithmetic))") + "unexpected token" +) +(assert_malformed + (module quote "(func (result i64) (i64.const nan:canonical))") + "unexpected token" +) diff --git a/tests/if.wast b/tests/if.wast index dc6e90c3..63b73f7a 100644 --- a/tests/if.wast +++ b/tests/if.wast @@ -19,14 +19,28 @@ (if (result i32) (local.get 0) (then (i32.const 7)) (else (i32.const 8))) ) - (func (export "multi") (param i32) (result i32) - (if (local.get 0) (then (call $dummy) (call $dummy) (call $dummy))) - (if (local.get 0) (then) (else (call $dummy) (call $dummy) (call $dummy))) - (if (result i32) (local.get 0) - (then (call $dummy) (call $dummy) (i32.const 8)) - (else (call $dummy) (call $dummy) (i32.const 9)) - ) - ) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "multi") (param i32) (result i32 i32) + ;; (if (local.get 0) (then (call $dummy) (call $dummy) (call $dummy))) + ;; (if (local.get 0) (then) (else (call $dummy) (call $dummy) (call $dummy))) + ;; (if (result i32) (local.get 0) + ;; (then (call $dummy) (call $dummy) (i32.const 8) (call $dummy)) + ;; (else (call $dummy) (call $dummy) (i32.const 9) (call $dummy)) + ;; ) + ;; (if (result i32 i64 i32) (local.get 0) + ;; (then + ;; (call $dummy) (call $dummy) (i32.const 1) (call $dummy) + ;; (call $dummy) (call $dummy) (i64.const 2) (call $dummy) + ;; (call $dummy) (call $dummy) (i32.const 3) (call $dummy) + ;; ) + ;; (else + ;; (call $dummy) (call $dummy) (i32.const -1) (call $dummy) + ;; (call $dummy) (call $dummy) (i64.const -2) (call $dummy) + ;; (call $dummy) (call $dummy) (i32.const -3) (call $dummy) + ;; ) + ;; ) + ;; (drop) (drop) + ;; ) (func (export "nested") (param i32 i32) (result i32) (if (result i32) (local.get 0) @@ -338,6 +352,33 @@ ) ) + ;; W2C2: No support for if with multiple return values + ;; (func (export "as-binary-operands") (param i32) (result i32) + ;; (i32.mul + ;; (if (result i32 i32) (local.get 0) + ;; (then (call $dummy) (i32.const 3) (call $dummy) (i32.const 4)) + ;; (else (call $dummy) (i32.const 3) (call $dummy) (i32.const -4)) + ;; ) + ;; ) + ;; ) + ;; (func (export "as-compare-operands") (param i32) (result i32) + ;; (f32.gt + ;; (if (result f32 f32) (local.get 0) + ;; (then (call $dummy) (f32.const 3) (call $dummy) (f32.const 3)) + ;; (else (call $dummy) (f32.const -2) (call $dummy) (f32.const -3)) + ;; ) + ;; ) + ;; ) + ;; (func (export "as-mixed-operands") (param i32) (result i32) + ;; (if (result i32 i32) (local.get 0) + ;; (then (call $dummy) (i32.const 3) (call $dummy) (i32.const 4)) + ;; (else (call $dummy) (i32.const -3) (call $dummy) (i32.const -4)) + ;; ) + ;; (i32.const 5) + ;; (i32.add) + ;; (i32.mul) + ;; ) + (func (export "break-bare") (result i32) (if (i32.const 1) (then (br 0) (unreachable))) (if (i32.const 1) (then (br 0) (unreachable)) (else (unreachable))) @@ -357,6 +398,64 @@ (else (br 0 (i32.const 21)) (i32.const 20)) ) ) + ;; W2C2: No support for functions with multiple return values + ;; (func (export "break-multi-value") (param i32) (result i32 i32 i64) + ;; (if (result i32 i32 i64) (local.get 0) + ;; (then + ;; (br 0 (i32.const 18) (i32.const -18) (i64.const 18)) + ;; (i32.const 19) (i32.const -19) (i64.const 19) + ;; ) + ;; (else + ;; (br 0 (i32.const -18) (i32.const 18) (i64.const -18)) + ;; (i32.const -19) (i32.const 19) (i64.const -19) + ;; ) + ;; ) + ;; ) + + ;; W2C2: No support for if with params + ;; (func (export "param") (param i32) (result i32) + ;; (i32.const 1) + ;; (if (param i32) (result i32) (local.get 0) + ;; (then (i32.const 2) (i32.add)) + ;; (else (i32.const -2) (i32.add)) + ;; ) + ;; ) + ;; (func (export "params") (param i32) (result i32) + ;; (i32.const 1) + ;; (i32.const 2) + ;; (if (param i32 i32) (result i32) (local.get 0) + ;; (then (i32.add)) + ;; (else (i32.sub)) + ;; ) + ;; ) + ;; (func (export "params-id") (param i32) (result i32) + ;; (i32.const 1) + ;; (i32.const 2) + ;; (if (param i32 i32) (result i32 i32) (local.get 0) (then)) + ;; (i32.add) + ;; ) + ;; (func (export "param-break") (param i32) (result i32) + ;; (i32.const 1) + ;; (if (param i32) (result i32) (local.get 0) + ;; (then (i32.const 2) (i32.add) (br 0)) + ;; (else (i32.const -2) (i32.add) (br 0)) + ;; ) + ;; ) + ;; W2C2: No support for if with multiple return values + ;; (func (export "params-break") (param i32) (result i32) + ;; (i32.const 1) + ;; (i32.const 2) + ;; (if (param i32 i32) (result i32) (local.get 0) + ;; (then (i32.add) (br 0)) + ;; (else (i32.sub) (br 0)) + ;; ) + ;; ) + ;; (func (export "params-id-break") (param i32) (result i32) + ;; (i32.const 1) + ;; (i32.const 2) + ;; (if (param i32 i32) (result i32 i32) (local.get 0) (then (br 0))) + ;; (i32.add) + ;; ) (func (export "effects") (param i32) (result i32) (local i32) @@ -379,6 +478,68 @@ ) (local.get 1) ) + + ;; ;; Examples + + ;; W2C2: No support for funtions with multiple return values + ;; (func $add64_u_with_carry (export "add64_u_with_carry") + ;; (param $i i64) (param $j i64) (param $c i32) (result i64 i32) + ;; (local $k i64) + ;; (local.set $k + ;; (i64.add + ;; (i64.add (local.get $i) (local.get $j)) + ;; (i64.extend_i32_u (local.get $c)) + ;; ) + ;; ) + ;; (return (local.get $k) (i64.lt_u (local.get $k) (local.get $i))) + ;; ) + ;; + ;; (func $add64_u_saturated (export "add64_u_saturated") + ;; (param i64 i64) (result i64) + ;; (call $add64_u_with_carry (local.get 0) (local.get 1) (i32.const 0)) + ;; (if (param i64) (result i64) + ;; (then (drop) (i64.const -1)) + ;; ) + ;; ) + + ;; W2C2: No support for func if types + ;; ;; Block signature syntax + ;; + ;; (type $block-sig-1 (func)) + ;; (type $block-sig-2 (func (result i32))) + ;; (type $block-sig-3 (func (param $x i32))) + ;; (type $block-sig-4 (func (param i32 f64 i32) (result i32 f64 i32))) + ;; + ;; (func (export "type-use") + ;; (if (type $block-sig-1) (i32.const 1) (then)) + ;; (if (type $block-sig-2) (i32.const 1) + ;; (then (i32.const 0)) (else (i32.const 2)) + ;; ) + ;; (if (type $block-sig-3) (i32.const 1) (then (drop)) (else (drop))) + ;; (i32.const 0) (f64.const 0) (i32.const 0) + ;; (if (type $block-sig-4) (i32.const 1) (then)) + ;; (drop) (drop) (drop) + ;; (if (type $block-sig-2) (result i32) (i32.const 1) + ;; (then (i32.const 0)) (else (i32.const 2)) + ;; ) + ;; (if (type $block-sig-3) (param i32) (i32.const 1) + ;; (then (drop)) (else (drop)) + ;; ) + ;; (i32.const 0) (f64.const 0) (i32.const 0) + ;; (if (type $block-sig-4) + ;; (param i32) (param f64 i32) (result i32 f64) (result i32) + ;; (i32.const 1) (then) + ;; ) + ;; (drop) (drop) (drop) + ;; ) + + ;; Atypical folded condition syntax + + (func (export "atypical-condition") + i32.const 0 + (if (then) (else)) + (if (i32.const 1) (i32.eqz) (then) (else)) + ) ) (assert_return (invoke "empty" (i32.const 0))) @@ -391,10 +552,11 @@ (assert_return (invoke "singular" (i32.const 10)) (i32.const 7)) (assert_return (invoke "singular" (i32.const -10)) (i32.const 7)) -(assert_return (invoke "multi" (i32.const 0)) (i32.const 9)) -(assert_return (invoke "multi" (i32.const 1)) (i32.const 8)) -(assert_return (invoke "multi" (i32.const 13)) (i32.const 8)) -(assert_return (invoke "multi" (i32.const -5)) (i32.const 8)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "multi" (i32.const 0)) (i32.const 9) (i32.const -1)) +;; (assert_return (invoke "multi" (i32.const 1)) (i32.const 8) (i32.const 1)) +;; (assert_return (invoke "multi" (i32.const 13)) (i32.const 8) (i32.const 1)) +;; (assert_return (invoke "multi" (i32.const -5)) (i32.const 8) (i32.const 1)) (assert_return (invoke "nested" (i32.const 0) (i32.const 0)) (i32.const 11)) (assert_return (invoke "nested" (i32.const 1) (i32.const 0)) (i32.const 10)) @@ -488,13 +650,209 @@ (assert_return (invoke "as-compare-operand" (i32.const 1) (i32.const 0)) (i32.const 1)) (assert_return (invoke "as-compare-operand" (i32.const 1) (i32.const 1)) (i32.const 0)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "as-binary-operands" (i32.const 0)) (i32.const -12)) +;; (assert_return (invoke "as-binary-operands" (i32.const 1)) (i32.const 12)) +;; +;; (assert_return (invoke "as-compare-operands" (i32.const 0)) (i32.const 1)) +;; (assert_return (invoke "as-compare-operands" (i32.const 1)) (i32.const 0)) +;; +;; (assert_return (invoke "as-mixed-operands" (i32.const 0)) (i32.const -3)) +;; (assert_return (invoke "as-mixed-operands" (i32.const 1)) (i32.const 27)) + (assert_return (invoke "break-bare") (i32.const 19)) (assert_return (invoke "break-value" (i32.const 1)) (i32.const 18)) (assert_return (invoke "break-value" (i32.const 0)) (i32.const 21)) +;; W2C2: No support for functions with multiple return values +;; (assert_return (invoke "break-multi-value" (i32.const 0)) +;; (i32.const -18) (i32.const 18) (i64.const -18) +;; ) +;; (assert_return (invoke "break-multi-value" (i32.const 1)) +;; (i32.const 18) (i32.const -18) (i64.const 18) +;; ) + +;; W2C2: No support for if with params +;; (assert_return (invoke "param" (i32.const 0)) (i32.const -1)) +;; (assert_return (invoke "param" (i32.const 1)) (i32.const 3)) +;; (assert_return (invoke "params" (i32.const 0)) (i32.const -1)) +;; (assert_return (invoke "params" (i32.const 1)) (i32.const 3)) +;; (assert_return (invoke "params-id" (i32.const 0)) (i32.const 3)) +;; (assert_return (invoke "params-id" (i32.const 1)) (i32.const 3)) +;; (assert_return (invoke "param-break" (i32.const 0)) (i32.const -1)) +;; (assert_return (invoke "param-break" (i32.const 1)) (i32.const 3)) +;; (assert_return (invoke "params-break" (i32.const 0)) (i32.const -1)) +;; (assert_return (invoke "params-break" (i32.const 1)) (i32.const 3)) +;; (assert_return (invoke "params-id-break" (i32.const 0)) (i32.const 3)) +;; (assert_return (invoke "params-id-break" (i32.const 1)) (i32.const 3)) (assert_return (invoke "effects" (i32.const 1)) (i32.const -14)) (assert_return (invoke "effects" (i32.const 0)) (i32.const -6)) +;; W2C2: No support for funtions with multiple return values +;; (assert_return +;; (invoke "add64_u_with_carry" (i64.const 0) (i64.const 0) (i32.const 0)) +;; (i64.const 0) (i32.const 0) +;; ) +;; (assert_return +;; (invoke "add64_u_with_carry" (i64.const 100) (i64.const 124) (i32.const 0)) +;; (i64.const 224) (i32.const 0) +;; ) +;; (assert_return +;; (invoke "add64_u_with_carry" (i64.const -1) (i64.const 0) (i32.const 0)) +;; (i64.const -1) (i32.const 0) +;; ) +;; (assert_return +;; (invoke "add64_u_with_carry" (i64.const -1) (i64.const 1) (i32.const 0)) +;; (i64.const 0) (i32.const 1) +;; ) +;; (assert_return +;; (invoke "add64_u_with_carry" (i64.const -1) (i64.const -1) (i32.const 0)) +;; (i64.const -2) (i32.const 1) +;; ) +;; (assert_return +;; (invoke "add64_u_with_carry" (i64.const -1) (i64.const 0) (i32.const 1)) +;; (i64.const 0) (i32.const 1) +;; ) +;; (assert_return +;; (invoke "add64_u_with_carry" (i64.const -1) (i64.const 1) (i32.const 1)) +;; (i64.const 1) (i32.const 1) +;; ) +;; (assert_return +;; (invoke "add64_u_with_carry" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000) (i32.const 0)) +;; (i64.const 0) (i32.const 1) +;; ) +;; +;; (assert_return +;; (invoke "add64_u_saturated" (i64.const 0) (i64.const 0)) (i64.const 0) +;; ) +;; (assert_return +;; (invoke "add64_u_saturated" (i64.const 1230) (i64.const 23)) (i64.const 1253) +;; ) +;; (assert_return +;; (invoke "add64_u_saturated" (i64.const -1) (i64.const 0)) (i64.const -1) +;; ) +;; (assert_return +;; (invoke "add64_u_saturated" (i64.const -1) (i64.const 1)) (i64.const -1) +;; ) +;; (assert_return +;; (invoke "add64_u_saturated" (i64.const -1) (i64.const -1)) (i64.const -1) +;; ) +;; (assert_return +;; (invoke "add64_u_saturated" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i64.const -1) +;; ) +;; W2C2: No support for func if types +;; (assert_return (invoke "type-use")) + +(assert_return (invoke "atypical-condition")) + +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0)" + " (if (type $sig) (result i32) (param i32) (i32.const 1) (then))" + ")" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0)" + " (if (param i32) (type $sig) (result i32) (i32.const 1) (then))" + ")" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0)" + " (if (param i32) (result i32) (type $sig) (i32.const 1) (then))" + ")" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0)" + " (if (result i32) (type $sig) (param i32) (i32.const 1) (then))" + ")" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0)" + " (if (result i32) (param i32) (type $sig) (i32.const 1) (then))" + ")" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(func (i32.const 0) (if (result i32) (param i32) (i32.const 1) (then)))" + ) + "unexpected token" +) + +(assert_malformed + (module quote + "(func (i32.const 0) (i32.const 1)" + " (if (param $x i32) (then (drop)) (else (drop)))" + ")" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func))" + "(func (i32.const 1)" + " (if (type $sig) (result i32) (then (i32.const 0)) (else (i32.const 2)))" + " (unreachable)" + ")" + ) + "inline function type" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 1)" + " (if (type $sig) (result i32) (then (i32.const 0)) (else (i32.const 2)))" + " (unreachable)" + ")" + ) + "inline function type" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (i32.const 1)" + " (if (type $sig) (param i32) (then (drop)) (else (drop)))" + " (unreachable)" + ")" + ) + "inline function type" +) +(assert_malformed + (module quote + "(type $sig (func (param i32 i32) (result i32)))" + "(func (i32.const 0) (i32.const 1)" + " (if (type $sig) (param i32) (result i32) (then)) (unreachable)" + ")" + ) + "inline function type" +) + +(assert_invalid + (module + (type $sig (func)) + (func (i32.const 1) (if (type $sig) (i32.const 0) (then))) + ) + "type mismatch" +) + (assert_invalid (module (func $type-empty-i32 (result i32) (if (i32.const 0) (then)))) "type mismatch" @@ -536,7 +894,7 @@ "type mismatch" ) (assert_invalid - (module (func $type-then-value-num-vs-void + (module (func $type-then-value-num-vs-void-else (if (i32.const 1) (then (i32.const 1)) (else)) )) "type mismatch" @@ -554,6 +912,31 @@ "type mismatch" ) +(assert_invalid + (module (func $type-then-value-nums-vs-void + (if (i32.const 1) (then (i32.const 1) (i32.const 2))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-then-value-nums-vs-void-else + (if (i32.const 1) (then (i32.const 1) (i32.const 2)) (else)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-else-value-nums-vs-void + (if (i32.const 1) (then) (else (i32.const 1) (i32.const 2))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-both-value-nums-vs-void + (if (i32.const 1) (then (i32.const 1) (i32.const 2)) (else (i32.const 2) (i32.const 1))) + )) + "type mismatch" +) + (assert_invalid (module (func $type-then-value-empty-vs-num (result i32) (if (result i32) (i32.const 1) (then) (else (i32.const 0))) @@ -561,7 +944,7 @@ "type mismatch" ) (assert_invalid - (module (func $type-then-value-empty-vs-num (result i32) + (module (func $type-else-value-empty-vs-num (result i32) (if (result i32) (i32.const 1) (then (i32.const 0)) (else)) )) "type mismatch" @@ -572,12 +955,38 @@ )) "type mismatch" ) + +(assert_invalid + (module (func $type-then-value-empty-vs-nums (result i32 i32) + (if (result i32 i32) (i32.const 1) (then) (else (i32.const 0) (i32.const 2))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-else-value-empty-vs-nums (result i32 i32) + (if (result i32 i32) (i32.const 1) (then (i32.const 0) (i32.const 1)) (else)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-both-value-empty-vs-nums (result i32 i32) + (if (result i32 i32) (i32.const 1) (then) (else)) + )) + "type mismatch" +) + (assert_invalid (module (func $type-no-else-vs-num (result i32) (if (result i32) (i32.const 1) (then (i32.const 1))) )) "type mismatch" ) +(assert_invalid + (module (func $type-no-else-vs-nums (result i32 i32) + (if (result i32 i32) (i32.const 1) (then (i32.const 1) (i32.const 1))) + )) + "type mismatch" +) (assert_invalid (module (func $type-then-value-void-vs-num (result i32) @@ -586,7 +995,7 @@ "type mismatch" ) (assert_invalid - (module (func $type-then-value-void-vs-num (result i32) + (module (func $type-else-value-void-vs-num (result i32) (if (result i32) (i32.const 1) (then (i32.const 0)) (else (nop))) )) "type mismatch" @@ -598,6 +1007,25 @@ "type mismatch" ) +(assert_invalid + (module (func $type-then-value-void-vs-nums (result i32 i32) + (if (result i32 i32) (i32.const 1) (then (nop)) (else (i32.const 0) (i32.const 0))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-else-value-void-vs-nums (result i32 i32) + (if (result i32 i32) (i32.const 1) (then (i32.const 0) (i32.const 0)) (else (nop))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-both-value-void-vs-nums (result i32 i32) + (if (result i32 i32) (i32.const 1) (then (nop)) (else (nop))) + )) + "type mismatch" +) + (assert_invalid (module (func $type-then-value-num-vs-num (result i32) (if (result i32) (i32.const 1) (then (i64.const 1)) (else (i32.const 1))) @@ -605,7 +1033,7 @@ "type mismatch" ) (assert_invalid - (module (func $type-then-value-num-vs-num (result i32) + (module (func $type-else-value-num-vs-num (result i32) (if (result i32) (i32.const 1) (then (i32.const 1)) (else (i64.const 1))) )) "type mismatch" @@ -616,12 +1044,79 @@ )) "type mismatch" ) + +(assert_invalid + (module (func $type-then-value-num-vs-nums (result i32 i32) + (if (result i32 i32) (i32.const 1) (then (i32.const 1)) (else (i32.const 1) (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-else-value-num-vs-nums (result i32 i32) + (if (result i32 i32) (i32.const 1) (then (i32.const 1) (i32.const 1)) (else (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-both-value-num-vs-nums (result i32 i32) + (if (result i32 i32) (i32.const 1) (then (i32.const 1)) (else (i32.const 1))) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-then-value-partial-vs-nums (result i32 i32) + (i32.const 0) + (if (result i32 i32) (i32.const 1) (then (i32.const 1)) (else (i32.const 1) (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-else-value-partial-vs-nums (result i32 i32) + (i32.const 0) + (if (result i32 i32) (i32.const 1) (then (i32.const 1) (i32.const 1)) (else (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-both-value-partial-vs-nums (result i32 i32) + (i32.const 0) + (if (result i32 i32) (i32.const 1) (then (i32.const 1)) (else (i32.const 1))) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-then-value-nums-vs-num (result i32) + (if (result i32) (i32.const 1) (then (i32.const 1) (i32.const 1)) (else (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-else-value-nums-vs-num (result i32) + (if (result i32) (i32.const 1) (then (i32.const 1)) (else (i32.const 1) (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-both-value-nums-vs-num (result i32) + (if (result i32) (i32.const 1) (then (i32.const 1) (i32.const 1)) (else (i32.const 1) (i32.const 1))) + )) + "type mismatch" +) + (assert_invalid (module (func $type-both-different-value-num-vs-num (result i32) (if (result i32) (i32.const 1) (then (i64.const 1)) (else (f64.const 1))) )) "type mismatch" ) +(assert_invalid + (module (func $type-both-different-value-nums-vs-nums (result i32 i32) + (if (result i32 i32) (i32.const 1) (then (i32.const 1) (i32.const 1) (i32.const 1)) (else (i32.const 1))) + )) + "type mismatch" +) (assert_invalid (module (func $type-then-value-unreached-select (result i32) @@ -666,6 +1161,19 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-then-break-last-void-vs-nums (result i32 i32) + (if (result i32 i32) (i32.const 1) (then (br 0)) (else (i32.const 1) (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-else-break-last-void-vs-nums (result i32 i32) + (if (result i32 i32) (i32.const 1) (then (i32.const 1) (i32.const 1)) (else (br 0))) + )) + "type mismatch" +) + (assert_invalid (module (func $type-then-break-empty-vs-num (result i32) (if (result i32) (i32.const 1) @@ -684,6 +1192,25 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-then-break-empty-vs-nums (result i32 i32) + (if (result i32 i32) (i32.const 1) + (then (br 0) (i32.const 1) (i32.const 1)) + (else (i32.const 1) (i32.const 1)) + ) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-else-break-empty-vs-nums (result i32 i32) + (if (result i32 i32) (i32.const 1) + (then (i32.const 1) (i32.const 1)) + (else (br 0) (i32.const 1) (i32.const 1)) + ) + )) + "type mismatch" +) + (assert_invalid (module (func $type-then-break-void-vs-num (result i32) (if (result i32) (i32.const 1) @@ -702,6 +1229,24 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-then-break-void-vs-nums (result i32 i32) + (if (result i32 i32) (i32.const 1) + (then (br 0 (nop)) (i32.const 1) (i32.const 1)) + (else (i32.const 1) (i32.const 1)) + ) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-else-break-void-vs-nums (result i32 i32) + (if (result i32 i32) (i32.const 1) + (then (i32.const 1) (i32.const 1)) + (else (br 0 (nop)) (i32.const 1) (i32.const 1)) + ) + )) + "type mismatch" +) (assert_invalid (module (func $type-then-break-num-vs-num (result i32) @@ -721,6 +1266,44 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-then-break-num-vs-nums (result i32 i32) + (if (result i32 i32) (i32.const 1) + (then (br 0 (i64.const 1)) (i32.const 1) (i32.const 1)) + (else (i32.const 1) (i32.const 1)) + ) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-else-break-num-vs-nums (result i32 i32) + (if (result i32 i32) (i32.const 1) + (then (i32.const 1) (i32.const 1)) + (else (br 0 (i64.const 1)) (i32.const 1) (i32.const 1)) + ) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-then-break-partial-vs-nums (result i32 i32) + (i32.const 1) + (if (result i32 i32) (i32.const 1) + (then (br 0 (i64.const 1)) (i32.const 1)) + (else (i32.const 1)) + ) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-else-break-partial-vs-nums (result i32 i32) + (i32.const 1) + (if (result i32 i32) (i32.const 1) + (then (i32.const 1)) + (else (br 0 (i64.const 1)) (i32.const 1)) + ) + )) + "type mismatch" +) (assert_invalid (module @@ -890,44 +1473,105 @@ "type mismatch" ) +(assert_invalid + (module (func $type-param-void-vs-num + (if (param i32) (i32.const 1) (then (drop))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-void-vs-nums + (if (param i32 f64) (i32.const 1) (then (drop) (drop))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-num-vs-num + (f32.const 0) (if (param i32) (i32.const 1) (then (drop))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-num-vs-nums + (f32.const 0) (if (param f32 i32) (i32.const 1) (then (drop) (drop))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-nested-void-vs-num + (block (if (param i32) (i32.const 1) (then (drop)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-void-vs-nums + (block (if (param i32 f64) (i32.const 1) (then (drop) (drop)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-num-vs-num + (block (f32.const 0) (if (param i32) (i32.const 1) (then (drop)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-num-vs-nums + (block (f32.const 0) (if (param f32 i32) (i32.const 1) (then (drop) (drop)))) + )) + "type mismatch" +) (assert_malformed - (module quote "(func if end $l)") + (module quote "(func (param i32) (result i32) if (param $x i32) end)") + "unexpected token" +) +(assert_malformed + (module quote "(func (param i32) (result i32) (if (param $x i32) (then)))") + "unexpected token" +) + +(assert_malformed + (module quote "(func i32.const 0 if end $l)") "mismatching label" ) (assert_malformed - (module quote "(func if $a end $l)") + (module quote "(func i32.const 0 if $a end $l)") "mismatching label" ) (assert_malformed - (module quote "(func if else $l end)") + (module quote "(func i32.const 0 if else $l end)") "mismatching label" ) (assert_malformed - (module quote "(func if $a else $l end)") + (module quote "(func i32.const 0 if $a else $l end)") "mismatching label" ) (assert_malformed - (module quote "(func if else end $l)") + (module quote "(func i32.const 0 if else end $l)") "mismatching label" ) (assert_malformed - (module quote "(func if else $l end $l)") + (module quote "(func i32.const 0 if else $l end $l)") "mismatching label" ) (assert_malformed - (module quote "(func if else $l1 end $l2)") + (module quote "(func i32.const 0 if else $l1 end $l2)") "mismatching label" ) (assert_malformed - (module quote "(func if $a else end $l)") + (module quote "(func i32.const 0 if $a else end $l)") "mismatching label" ) (assert_malformed - (module quote "(func if $a else $a end $l)") + (module quote "(func i32.const 0 if $a else $a end $l)") "mismatching label" ) (assert_malformed - (module quote "(func if $a else $l end $l)") + (module quote "(func i32.const 0 if $a else $l end $l)") "mismatching label" ) +(assert_malformed + (module quote "(func (if i32.const 0 (then) (else)))") + "unexpected token" +) \ No newline at end of file diff --git a/tests/local_get.wast b/tests/local_get.wast index 681245f5..6acab398 100644 --- a/tests/local_get.wast +++ b/tests/local_get.wast @@ -223,3 +223,4 @@ (module (func $large-mixed (param i64) (local i32 i64) (local.get 214324343) drop)) "unknown local" ) + diff --git a/tests/local_set.wast b/tests/local_set.wast index c8dfdc23..ce9cf77f 100644 --- a/tests/local_set.wast +++ b/tests/local_set.wast @@ -359,3 +359,4 @@ (module (func $large-mixed (param i64) (local i32 i64) (local.set 214324343 (i32.const 0)))) "unknown local" ) + diff --git a/tests/loop.wast b/tests/loop.wast index 9141d00e..ff06e59f 100644 --- a/tests/loop.wast +++ b/tests/loop.wast @@ -15,10 +15,18 @@ (loop (result i32) (i32.const 7)) ) - (func (export "multi") (result i32) - (loop (call $dummy) (call $dummy) (call $dummy) (call $dummy)) - (loop (result i32) (call $dummy) (call $dummy) (call $dummy) (i32.const 8)) - ) + ;; W2C2: No support for loops with multiple return values + ;; (func (export "multi") (result i32) + ;; (loop (call $dummy) (call $dummy) (call $dummy) (call $dummy)) + ;; (loop (result i32) (call $dummy) (call $dummy) (i32.const 8) (call $dummy)) + ;; (drop) + ;; (loop (result i32 i64 i32) + ;; (call $dummy) (call $dummy) (call $dummy) (i32.const 8) (call $dummy) + ;; (call $dummy) (call $dummy) (call $dummy) (i64.const 7) (call $dummy) + ;; (call $dummy) (call $dummy) (call $dummy) (i32.const 9) (call $dummy) + ;; ) + ;; (drop) (drop) + ;; ) (func (export "nested") (result i32) (loop (result i32) @@ -189,6 +197,30 @@ ) ) + ;; W2C2: No support for loops with multiple return values + ;; (func (export "as-binary-operands") (result i32) + ;; (i32.mul + ;; (loop (result i32 i32) + ;; (call $dummy) (i32.const 3) (call $dummy) (i32.const 4) + ;; ) + ;; ) + ;; ) + ;; (func (export "as-compare-operands") (result i32) + ;; (f32.gt + ;; (loop (result f32 f32) + ;; (call $dummy) (f32.const 3) (call $dummy) (f32.const 3) + ;; ) + ;; ) + ;; ) + ;; (func (export "as-mixed-operands") (result i32) + ;; (loop (result i32 i32) + ;; (call $dummy) (i32.const 3) (call $dummy) (i32.const 4) + ;; ) + ;; (i32.const 5) + ;; (i32.add) + ;; (i32.mul) + ;; ) + (func (export "break-bare") (result i32) (block (loop (br 1) (br 0) (unreachable))) (block (loop (br_if 1 (i32.const 1)) (unreachable))) @@ -196,11 +228,27 @@ (block (loop (br_table 1 1 1 (i32.const 1)) (unreachable))) (i32.const 19) ) - (func (export "break-value") (result i32) - (block (result i32) - (loop (result i32) (br 1 (i32.const 18)) (br 0) (i32.const 19)) - ) - ) + ;; W2C2: No support for loops with params + ;; (func (export "break-value") (result i32) + ;; (block (result i32) + ;; (i32.const 0) + ;; (loop (param i32) + ;; (block (br 2 (i32.const 18))) + ;; (br 0 (i32.const 20)) + ;; ) + ;; (i32.const 19) + ;; ) + ;; ) + ;; (func (export "break-multi-value") (result i32 i32 i64) + ;; (block (result i32 i32 i64) + ;; (i32.const 0) (i32.const 0) (i64.const 0) + ;; (loop (param i32 i32 i64) + ;; (block (br 2 (i32.const 18) (i32.const -18) (i64.const 18))) + ;; (br 0 (i32.const 20) (i32.const -20) (i64.const 20)) + ;; ) + ;; (i32.const 19) (i32.const -19) (i64.const 19) + ;; ) + ;; ) (func (export "break-repeated") (result i32) (block (result i32) (loop (result i32) @@ -234,6 +282,67 @@ (local.get 0) ) + ;; W2C2: No support for loops with params + ;; (func (export "param") (result i32) + ;; (i32.const 1) + ;; (loop (param i32) (result i32) + ;; (i32.const 2) + ;; (i32.add) + ;; ) + ;; ) + ;; (func (export "params") (result i32) + ;; (i32.const 1) + ;; (i32.const 2) + ;; (loop (param i32 i32) (result i32) + ;; (i32.add) + ;; ) + ;; ) + ;; (func (export "params-id") (result i32) + ;; (i32.const 1) + ;; (i32.const 2) + ;; (loop (param i32 i32) (result i32 i32)) + ;; (i32.add) + ;; ) + ;; (func (export "param-break") (result i32) + ;; (local $x i32) + ;; (i32.const 1) + ;; (loop (param i32) (result i32) + ;; (i32.const 4) + ;; (i32.add) + ;; (local.tee $x) + ;; (local.get $x) + ;; (i32.const 10) + ;; (i32.lt_u) + ;; (br_if 0) + ;; ) + ;; ) + ;; (func (export "params-break") (result i32) + ;; (local $x i32) + ;; (i32.const 1) + ;; (i32.const 2) + ;; (loop (param i32 i32) (result i32) + ;; (i32.add) + ;; (local.tee $x) + ;; (i32.const 3) + ;; (local.get $x) + ;; (i32.const 10) + ;; (i32.lt_u) + ;; (br_if 0) + ;; (drop) + ;; ) + ;; ) + ;; (func (export "params-id-break") (result i32) + ;; (local $x i32) + ;; (local.set $x (i32.const 0)) + ;; (i32.const 1) + ;; (i32.const 2) + ;; (loop (param i32 i32) (result i32 i32) + ;; (local.set $x (i32.add (local.get $x) (i32.const 1))) + ;; (br_if 0 (i32.lt_u (local.get $x) (i32.const 10))) + ;; ) + ;; (i32.add) + ;; ) + (func $fx (export "effects") (result i32) (local i32) (block @@ -300,11 +409,34 @@ ) (local.get 3) ) + + ;; W2C2: No support for func loop types + ;; (type $block-sig-1 (func)) + ;; (type $block-sig-2 (func (result i32))) + ;; (type $block-sig-3 (func (param $x i32))) + ;; (type $block-sig-4 (func (param i32 f64 i32) (result i32 f64 i32))) + ;; + ;; (func (export "type-use") + ;; (loop (type $block-sig-1)) + ;; (loop (type $block-sig-2) (i32.const 0)) + ;; (loop (type $block-sig-3) (drop)) + ;; (i32.const 0) (f64.const 0) (i32.const 0) + ;; (loop (type $block-sig-4)) + ;; (drop) (drop) (drop) + ;; (loop (type $block-sig-2) (result i32) (i32.const 0)) + ;; (loop (type $block-sig-3) (param i32) (drop)) + ;; (i32.const 0) (f64.const 0) (i32.const 0) + ;; (loop (type $block-sig-4) + ;; (param i32) (param f64 i32) (result i32 f64) (result i32) + ;; ) + ;; (drop) (drop) (drop) + ;; ) ) (assert_return (invoke "empty")) (assert_return (invoke "singular") (i32.const 7)) -(assert_return (invoke "multi") (i32.const 8)) +;; W2C2: No support for loops with multiple return values +;; (assert_return (invoke "multi") (i32.const 8)) (assert_return (invoke "nested") (i32.const 9)) (assert_return (invoke "deep") (i32.const 150)) @@ -343,12 +475,28 @@ (assert_return (invoke "as-binary-operand") (i32.const 12)) (assert_return (invoke "as-test-operand") (i32.const 0)) (assert_return (invoke "as-compare-operand") (i32.const 0)) +;; W2C2: No support for loops with multiple return values +;; (assert_return (invoke "as-binary-operands") (i32.const 12)) +;; (assert_return (invoke "as-compare-operands") (i32.const 0)) +;; (assert_return (invoke "as-mixed-operands") (i32.const 27)) (assert_return (invoke "break-bare") (i32.const 19)) -(assert_return (invoke "break-value") (i32.const 18)) -(assert_return (invoke "break-repeated") (i32.const 18)) +;; W2C2: No support for loops with params +;; (assert_return (invoke "break-value") (i32.const 18)) +;; (assert_return (invoke "break-multi-value") +;; (i32.const 18) (i32.const -18) (i64.const 18) +;; ) +;; (assert_return (invoke "break-repeated") (i32.const 18)) (assert_return (invoke "break-inner") (i32.const 0x1f)) +;; W2C2: No support for loops with params +;; (assert_return (invoke "param") (i32.const 3)) +;; (assert_return (invoke "params") (i32.const 3)) +;; (assert_return (invoke "params-id") (i32.const 3)) +;; (assert_return (invoke "param-break") (i32.const 13)) +;; (assert_return (invoke "params-break") (i32.const 12)) +;; (assert_return (invoke "params-id-break") (i32.const 3)) + (assert_return (invoke "effects") (i32.const 1)) (assert_return (invoke "while" (i64.const 0)) (i64.const 1)) @@ -382,6 +530,92 @@ (assert_return (invoke "nesting" (f32.const 7) (f32.const 100)) (f32.const 4381.54785156)) (assert_return (invoke "nesting" (f32.const 7) (f32.const 101)) (f32.const 2601)) +;; W2C2: No support for func loop types +;; (assert_return (invoke "type-use")) + +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (loop (type $sig) (result i32) (param i32)))" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (loop (param i32) (type $sig) (result i32)))" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (loop (param i32) (result i32) (type $sig)))" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (loop (result i32) (type $sig) (param i32)))" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (loop (result i32) (param i32) (type $sig)))" + ) + "unexpected token" +) +(assert_malformed + (module quote + "(func (i32.const 0) (loop (result i32) (param i32)))" + ) + "unexpected token" +) + +(assert_malformed + (module quote "(func (i32.const 0) (loop (param $x i32) (drop)))") + "unexpected token" +) +(assert_malformed + (module quote + "(type $sig (func))" + "(func (loop (type $sig) (result i32) (i32.const 0)) (unreachable))" + ) + "inline function type" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (loop (type $sig) (result i32) (i32.const 0)) (unreachable))" + ) + "inline function type" +) +(assert_malformed + (module quote + "(type $sig (func (param i32) (result i32)))" + "(func (i32.const 0) (loop (type $sig) (param i32) (drop)) (unreachable))" + ) + "inline function type" +) +(assert_malformed + (module quote + "(type $sig (func (param i32 i32) (result i32)))" + "(func (i32.const 0) (loop (type $sig) (param i32) (result i32)) (unreachable))" + ) + "inline function type" +) + +(assert_invalid + (module + (type $sig (func)) + (func (loop (type $sig) (i32.const 0))) + ) + "type mismatch" +) + (assert_invalid (module (func $type-empty-i32 (result i32) (loop))) "type mismatch" @@ -405,24 +639,60 @@ )) "type mismatch" ) +(assert_invalid + (module (func $type-value-nums-vs-void + (loop (i32.const 1) (i32.const 2)) + )) + "type mismatch" +) (assert_invalid (module (func $type-value-empty-vs-num (result i32) (loop (result i32)) )) "type mismatch" ) +(assert_invalid + (module (func $type-value-empty-vs-nums (result i32 i32) + (loop (result i32 i32)) + )) + "type mismatch" +) (assert_invalid (module (func $type-value-void-vs-num (result i32) (loop (result i32) (nop)) )) "type mismatch" ) +(assert_invalid + (module (func $type-value-void-vs-nums (result i32 i32) + (loop (result i32 i32) (nop)) + )) + "type mismatch" +) (assert_invalid (module (func $type-value-num-vs-num (result i32) (loop (result i32) (f32.const 0)) )) "type mismatch" ) +(assert_invalid + (module (func $type-value-num-vs-nums (result i32 i32) + (loop (result i32 i32) (i32.const 0)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-value-partial-vs-nums (result i32 i32) + (i32.const 1) (loop (result i32 i32) (i32.const 2)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-value-nums-vs-num (result i32) + (loop (result i32) (i32.const 1) (i32.const 2)) + )) + "type mismatch" +) (assert_invalid (module (func $type-value-unreached-select (result i32) (loop (result i64) (select (unreachable) (unreachable) (unreachable))) @@ -458,6 +728,63 @@ "type mismatch" ) +(assert_invalid + (module (func $type-param-void-vs-num + (loop (param i32) (drop)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-void-vs-nums + (loop (param i32 f64) (drop) (drop)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-num-vs-num + (f32.const 0) (loop (param i32) (drop)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-num-vs-nums + (f32.const 0) (loop (param f32 i32) (drop) (drop)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-nested-void-vs-num + (block (loop (param i32) (drop))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-void-vs-nums + (block (loop (param i32 f64) (drop) (drop))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-num-vs-num + (block (f32.const 0) (loop (param i32) (drop))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-param-num-vs-nums + (block (f32.const 0) (loop (param f32 i32) (drop) (drop))) + )) + "type mismatch" +) + +(assert_malformed + (module quote "(func (param i32) (result i32) loop (param $x i32) end)") + "unexpected token" +) +(assert_malformed + (module quote "(func (param i32) (result i32) (loop (param $x i32)))") + "unexpected token" +) (assert_malformed (module quote "(func loop end $l)") diff --git a/tests/memory.wast b/tests/memory.wast index 37579dd5..baebde35 100644 --- a/tests/memory.wast +++ b/tests/memory.wast @@ -136,44 +136,44 @@ ;; Sign and zero extending memory loads (func (export "i32_load8_s") (param $i i32) (result i32) - (i32.store8 (i32.const 8) (local.get $i)) - (i32.load8_s (i32.const 8)) + (i32.store8 (i32.const 8) (local.get $i)) + (i32.load8_s (i32.const 8)) ) (func (export "i32_load8_u") (param $i i32) (result i32) - (i32.store8 (i32.const 8) (local.get $i)) - (i32.load8_u (i32.const 8)) + (i32.store8 (i32.const 8) (local.get $i)) + (i32.load8_u (i32.const 8)) ) (func (export "i32_load16_s") (param $i i32) (result i32) - (i32.store16 (i32.const 8) (local.get $i)) - (i32.load16_s (i32.const 8)) + (i32.store16 (i32.const 8) (local.get $i)) + (i32.load16_s (i32.const 8)) ) (func (export "i32_load16_u") (param $i i32) (result i32) - (i32.store16 (i32.const 8) (local.get $i)) - (i32.load16_u (i32.const 8)) + (i32.store16 (i32.const 8) (local.get $i)) + (i32.load16_u (i32.const 8)) ) (func (export "i64_load8_s") (param $i i64) (result i64) - (i64.store8 (i32.const 8) (local.get $i)) - (i64.load8_s (i32.const 8)) + (i64.store8 (i32.const 8) (local.get $i)) + (i64.load8_s (i32.const 8)) ) (func (export "i64_load8_u") (param $i i64) (result i64) - (i64.store8 (i32.const 8) (local.get $i)) - (i64.load8_u (i32.const 8)) + (i64.store8 (i32.const 8) (local.get $i)) + (i64.load8_u (i32.const 8)) ) (func (export "i64_load16_s") (param $i i64) (result i64) - (i64.store16 (i32.const 8) (local.get $i)) - (i64.load16_s (i32.const 8)) + (i64.store16 (i32.const 8) (local.get $i)) + (i64.load16_s (i32.const 8)) ) (func (export "i64_load16_u") (param $i i64) (result i64) - (i64.store16 (i32.const 8) (local.get $i)) - (i64.load16_u (i32.const 8)) + (i64.store16 (i32.const 8) (local.get $i)) + (i64.load16_u (i32.const 8)) ) (func (export "i64_load32_s") (param $i i64) (result i64) - (i64.store32 (i32.const 8) (local.get $i)) - (i64.load32_s (i32.const 8)) + (i64.store32 (i32.const 8) (local.get $i)) + (i64.load32_s (i32.const 8)) ) (func (export "i64_load32_u") (param $i i64) (result i64) - (i64.store32 (i32.const 8) (local.get $i)) - (i64.load32_u (i32.const 8)) + (i64.store32 (i32.const 8) (local.get $i)) + (i64.load32_u (i32.const 8)) ) ) @@ -239,4 +239,29 @@ (assert_malformed (module quote "(import \"\" \"\" (memory $foo 1))" "(import \"\" \"\" (memory $foo 1))") - "duplicate memory") \ No newline at end of file + "duplicate memory") + +;; Test that exporting random globals does not change a memory's semantics. + +(module + (memory (export "memory") 1 1) + + ;; These should not change the behavior of memory accesses. + (global (export "__data_end") i32 (i32.const 10000)) + (global (export "__stack_top") i32 (i32.const 10000)) + (global (export "__heap_base") i32 (i32.const 10000)) + + (func (export "load") (param i32) (result i32) + (i32.load8_u (local.get 0)) + ) +) + +;; None of these memory accesses should trap. +(assert_return (invoke "load" (i32.const 0)) (i32.const 0)) +(assert_return (invoke "load" (i32.const 10000)) (i32.const 0)) +(assert_return (invoke "load" (i32.const 20000)) (i32.const 0)) +(assert_return (invoke "load" (i32.const 30000)) (i32.const 0)) +(assert_return (invoke "load" (i32.const 40000)) (i32.const 0)) +(assert_return (invoke "load" (i32.const 50000)) (i32.const 0)) +(assert_return (invoke "load" (i32.const 60000)) (i32.const 0)) +(assert_return (invoke "load" (i32.const 65535)) (i32.const 0)) diff --git a/tests/memory_grow.wast b/tests/memory_grow.wast index 8a87c77c..8023133c 100644 --- a/tests/memory_grow.wast +++ b/tests/memory_grow.wast @@ -309,11 +309,33 @@ (assert_return (invoke "as-memory.grow-size") (i32.const 1)) +(module $Mgm + (memory (export "memory") 1) ;; initial size is 1 + (func (export "grow") (result i32) (memory.grow (i32.const 1))) +) +(register "grown-memory" $Mgm) +(assert_return (invoke $Mgm "grow") (i32.const 1)) ;; now size is 2 + +;; W2C2: TODO: test imported memory +;; (module $Mgim1 +;; ;; imported memory limits should match, because external memory size is 2 now +;; (memory (export "memory") (import "grown-memory" "memory") 2) +;; (func (export "grow") (result i32) (memory.grow (i32.const 1))) +;; ) +;; (register "grown-imported-memory" $Mgim1) +;; (assert_return (invoke $Mgim1 "grow") (i32.const 2)) ;; now size is 3 +;; (module $Mgim2 +;; ;; imported memory limits should match, because external memory size is 3 now +;; (import "grown-imported-memory" "memory" (memory 3)) +;; (func (export "size") (result i32) (memory.size)) +;; ) +;; (assert_return (invoke $Mgim2 "size") (i32.const 3)) + (assert_invalid (module (memory 0) - (func $type-size-empty - (memory.grow) (drop) + (func $type-size-empty-vs-i32 (result i32) + (memory.grow) ) ) "type mismatch" @@ -321,9 +343,9 @@ (assert_invalid (module (memory 0) - (func $type-size-empty-in-block + (func $type-size-empty-vs-i32-in-block (result i32) (i32.const 0) - (block (memory.grow) (drop)) + (block (result i32) (memory.grow)) ) ) "type mismatch" @@ -331,9 +353,9 @@ (assert_invalid (module (memory 0) - (func $type-size-empty-in-loop + (func $type-size-empty-vs-i32-in-loop (result i32) (i32.const 0) - (loop (memory.grow) (drop)) + (loop (result i32) (memory.grow)) ) ) "type mismatch" @@ -341,15 +363,39 @@ (assert_invalid (module (memory 0) - (func $type-size-empty-in-then + (func $type-size-empty-vs-i32-in-then (result i32) (i32.const 0) (i32.const 0) - (if (then (memory.grow) (drop))) + (if (result i32) (then (memory.grow))) ) ) "type mismatch" ) +(assert_invalid + (module + (memory 1) + (func $type-size-f32-vs-i32 (result i32) + (memory.grow (f32.const 0)) + ) + ) + "type mismatch" +) -;; Type check - -(assert_invalid (module (memory 1) (func (result i32) (memory.grow (f32.const 0)))) "type mismatch") +(assert_invalid + (module + (memory 1) + (func $type-result-i32-vs-empty + (memory.grow (i32.const 0)) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (memory 1) + (func $type-result-i32-vs-f32 (result f32) + (memory.grow (i32.const 0)) + ) + ) + "type mismatch" +) diff --git a/tests/memory_init.wast b/tests/memory_init.wast new file mode 100644 index 00000000..672b1c50 --- /dev/null +++ b/tests/memory_init.wast @@ -0,0 +1,967 @@ +;; +;; Generated by ../meta/generate_memory_init.js +;; DO NOT EDIT THIS FILE. CHANGE THE SOURCE AND REGENERATE. +;; + +(module + (memory (export "memory0") 1 1) + (data (i32.const 2) "\03\01\04\01") + (data "\02\07\01\08") + (data (i32.const 12) "\07\05\02\03\06") + (data "\05\09\02\07\06") + (func (export "test") + (nop)) + (func (export "load8_u") (param i32) (result i32) + (i32.load8_u (local.get 0)))) + +(invoke "test") + +(assert_return (invoke "load8_u" (i32.const 0)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 1)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 2)) (i32.const 3)) +(assert_return (invoke "load8_u" (i32.const 3)) (i32.const 1)) +(assert_return (invoke "load8_u" (i32.const 4)) (i32.const 4)) +(assert_return (invoke "load8_u" (i32.const 5)) (i32.const 1)) +(assert_return (invoke "load8_u" (i32.const 6)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 7)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 8)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 9)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 10)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 11)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 12)) (i32.const 7)) +(assert_return (invoke "load8_u" (i32.const 13)) (i32.const 5)) +(assert_return (invoke "load8_u" (i32.const 14)) (i32.const 2)) +(assert_return (invoke "load8_u" (i32.const 15)) (i32.const 3)) +(assert_return (invoke "load8_u" (i32.const 16)) (i32.const 6)) +(assert_return (invoke "load8_u" (i32.const 17)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 18)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 19)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 20)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 21)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 22)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 23)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 24)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 25)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 26)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 27)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 28)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 29)) (i32.const 0)) + +(module + (memory (export "memory0") 1 1) + (data (i32.const 2) "\03\01\04\01") + (data "\02\07\01\08") + (data (i32.const 12) "\07\05\02\03\06") + (data "\05\09\02\07\06") + (func (export "test") + (memory.init 1 (i32.const 7) (i32.const 0) (i32.const 4))) + (func (export "load8_u") (param i32) (result i32) + (i32.load8_u (local.get 0)))) + +(invoke "test") + +(assert_return (invoke "load8_u" (i32.const 0)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 1)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 2)) (i32.const 3)) +(assert_return (invoke "load8_u" (i32.const 3)) (i32.const 1)) +(assert_return (invoke "load8_u" (i32.const 4)) (i32.const 4)) +(assert_return (invoke "load8_u" (i32.const 5)) (i32.const 1)) +(assert_return (invoke "load8_u" (i32.const 6)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 7)) (i32.const 2)) +(assert_return (invoke "load8_u" (i32.const 8)) (i32.const 7)) +(assert_return (invoke "load8_u" (i32.const 9)) (i32.const 1)) +(assert_return (invoke "load8_u" (i32.const 10)) (i32.const 8)) +(assert_return (invoke "load8_u" (i32.const 11)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 12)) (i32.const 7)) +(assert_return (invoke "load8_u" (i32.const 13)) (i32.const 5)) +(assert_return (invoke "load8_u" (i32.const 14)) (i32.const 2)) +(assert_return (invoke "load8_u" (i32.const 15)) (i32.const 3)) +(assert_return (invoke "load8_u" (i32.const 16)) (i32.const 6)) +(assert_return (invoke "load8_u" (i32.const 17)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 18)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 19)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 20)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 21)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 22)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 23)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 24)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 25)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 26)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 27)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 28)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 29)) (i32.const 0)) + +(module + (memory (export "memory0") 1 1) + (data (i32.const 2) "\03\01\04\01") + (data "\02\07\01\08") + (data (i32.const 12) "\07\05\02\03\06") + (data "\05\09\02\07\06") + (func (export "test") + (memory.init 3 (i32.const 15) (i32.const 1) (i32.const 3))) + (func (export "load8_u") (param i32) (result i32) + (i32.load8_u (local.get 0)))) + +(invoke "test") + +(assert_return (invoke "load8_u" (i32.const 0)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 1)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 2)) (i32.const 3)) +(assert_return (invoke "load8_u" (i32.const 3)) (i32.const 1)) +(assert_return (invoke "load8_u" (i32.const 4)) (i32.const 4)) +(assert_return (invoke "load8_u" (i32.const 5)) (i32.const 1)) +(assert_return (invoke "load8_u" (i32.const 6)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 7)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 8)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 9)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 10)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 11)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 12)) (i32.const 7)) +(assert_return (invoke "load8_u" (i32.const 13)) (i32.const 5)) +(assert_return (invoke "load8_u" (i32.const 14)) (i32.const 2)) +(assert_return (invoke "load8_u" (i32.const 15)) (i32.const 9)) +(assert_return (invoke "load8_u" (i32.const 16)) (i32.const 2)) +(assert_return (invoke "load8_u" (i32.const 17)) (i32.const 7)) +(assert_return (invoke "load8_u" (i32.const 18)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 19)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 20)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 21)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 22)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 23)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 24)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 25)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 26)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 27)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 28)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 29)) (i32.const 0)) + +(module + (memory (export "memory0") 1 1) + (data (i32.const 2) "\03\01\04\01") + (data "\02\07\01\08") + (data (i32.const 12) "\07\05\02\03\06") + (data "\05\09\02\07\06") + (func (export "test") + (memory.init 1 (i32.const 7) (i32.const 0) (i32.const 4)) + (data.drop 1) + (memory.init 3 (i32.const 15) (i32.const 1) (i32.const 3)) + (data.drop 3) + (memory.copy (i32.const 20) (i32.const 15) (i32.const 5)) + (memory.copy (i32.const 21) (i32.const 29) (i32.const 1)) + (memory.copy (i32.const 24) (i32.const 10) (i32.const 1)) + (memory.copy (i32.const 13) (i32.const 11) (i32.const 4)) + (memory.copy (i32.const 19) (i32.const 20) (i32.const 5))) + (func (export "load8_u") (param i32) (result i32) + (i32.load8_u (local.get 0)))) + +(invoke "test") + +(assert_return (invoke "load8_u" (i32.const 0)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 1)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 2)) (i32.const 3)) +(assert_return (invoke "load8_u" (i32.const 3)) (i32.const 1)) +(assert_return (invoke "load8_u" (i32.const 4)) (i32.const 4)) +(assert_return (invoke "load8_u" (i32.const 5)) (i32.const 1)) +(assert_return (invoke "load8_u" (i32.const 6)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 7)) (i32.const 2)) +(assert_return (invoke "load8_u" (i32.const 8)) (i32.const 7)) +(assert_return (invoke "load8_u" (i32.const 9)) (i32.const 1)) +(assert_return (invoke "load8_u" (i32.const 10)) (i32.const 8)) +(assert_return (invoke "load8_u" (i32.const 11)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 12)) (i32.const 7)) +(assert_return (invoke "load8_u" (i32.const 13)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 14)) (i32.const 7)) +(assert_return (invoke "load8_u" (i32.const 15)) (i32.const 5)) +(assert_return (invoke "load8_u" (i32.const 16)) (i32.const 2)) +(assert_return (invoke "load8_u" (i32.const 17)) (i32.const 7)) +(assert_return (invoke "load8_u" (i32.const 18)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 19)) (i32.const 9)) +(assert_return (invoke "load8_u" (i32.const 20)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 21)) (i32.const 7)) +(assert_return (invoke "load8_u" (i32.const 22)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 23)) (i32.const 8)) +(assert_return (invoke "load8_u" (i32.const 24)) (i32.const 8)) +(assert_return (invoke "load8_u" (i32.const 25)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 26)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 27)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 28)) (i32.const 0)) +(assert_return (invoke "load8_u" (i32.const 29)) (i32.const 0)) +(assert_invalid + (module + (func (export "test") + (data.drop 0))) + "unknown data segment") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (data.drop 4))) + "unknown data segment") + +(module + (memory 1) + (data "\37") + (func (export "test") + (data.drop 0) + (data.drop 0))) +(invoke "test") + +(module + (memory 1) + (data "\37") + (func (export "test") + (data.drop 0) + (memory.init 0 (i32.const 1234) (i32.const 1) (i32.const 1)))) +(assert_trap (invoke "test") "out of bounds memory access") + +(module + (memory 1) + (data (i32.const 0) "\37") + (func (export "test") + (memory.init 0 (i32.const 1234) (i32.const 1) (i32.const 1)))) +(assert_trap (invoke "test") "out of bounds memory access") + +(assert_invalid + (module + (func (export "test") + (memory.init 1 (i32.const 1234) (i32.const 1) (i32.const 1)))) + "unknown memory 0") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 1 (i32.const 1234) (i32.const 1) (i32.const 1)))) + "unknown data segment 1") + +(module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (i32.const 0) (i32.const 1)) + (memory.init 0 (i32.const 1) (i32.const 0) (i32.const 1)))) +(invoke "test") + +(module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1234) (i32.const 0) (i32.const 5)))) +(assert_trap (invoke "test") "out of bounds memory access") + +(module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1234) (i32.const 2) (i32.const 3)))) +(assert_trap (invoke "test") "out of bounds memory access") + +(module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 0xFFFE) (i32.const 1) (i32.const 3)))) +(assert_trap (invoke "test") "out of bounds memory access") + +(module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1234) (i32.const 4) (i32.const 0)))) +(assert_trap (invoke "test") "out of bounds memory access") + +(module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1234) (i32.const 1) (i32.const 0)))) +(invoke "test") + +(module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 0x10001) (i32.const 0) (i32.const 0)))) +(assert_trap (invoke "test") "out of bounds memory access") + +(module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 0x10000) (i32.const 0) (i32.const 0)))) +(invoke "test") + +(module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 0x10000) (i32.const 1) (i32.const 0)))) +(invoke "test") + +(module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 0x10001) (i32.const 4) (i32.const 0)))) +(assert_trap (invoke "test") "out of bounds memory access") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (i32.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (i32.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (i32.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (f32.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (f32.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (f32.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (f32.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (i64.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (i64.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (i64.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (i64.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (f64.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (f64.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (f64.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i32.const 1) (f64.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (i32.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (i32.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (i32.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (i32.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (f32.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (f32.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (f32.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (f32.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (i64.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (i64.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (i64.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (i64.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (f64.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (f64.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (f64.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f32.const 1) (f64.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (i32.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (i32.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (i32.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (i32.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (f32.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (f32.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (f32.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (f32.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (i64.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (i64.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (i64.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (i64.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (f64.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (f64.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (f64.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (i64.const 1) (f64.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (i32.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (i32.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (i32.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (i32.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (f32.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (f32.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (f32.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (f32.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (i64.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (i64.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (i64.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (i64.const 1) (f64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (f64.const 1) (i32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (f64.const 1) (f32.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (f64.const 1) (i64.const 1)))) + "type mismatch") + +(assert_invalid + (module + (memory 1) + (data "\37") + (func (export "test") + (memory.init 0 (f64.const 1) (f64.const 1) (f64.const 1)))) + "type mismatch") + +(module + (memory 1 1 ) + (data "\42\42\42\42\42\42\42\42\42\42\42\42\42\42\42\42") + + (func (export "checkRange") (param $from i32) (param $to i32) (param $expected i32) (result i32) + (loop $cont + (if (i32.eq (local.get $from) (local.get $to)) + (then + (return (i32.const -1)))) + (if (i32.eq (i32.load8_u (local.get $from)) (local.get $expected)) + (then + (local.set $from (i32.add (local.get $from) (i32.const 1))) + (br $cont)))) + (return (local.get $from))) + + (func (export "run") (param $offs i32) (param $len i32) + (memory.init 0 (local.get $offs) (i32.const 0) (local.get $len)))) + +(assert_trap (invoke "run" (i32.const 65528) (i32.const 16)) + "out of bounds memory access") + +(assert_return (invoke "checkRange" (i32.const 0) (i32.const 1) (i32.const 0)) + (i32.const -1)) +(module + (memory 1 1 ) + (data "\42\42\42\42\42\42\42\42\42\42\42\42\42\42\42\42") + + (func (export "checkRange") (param $from i32) (param $to i32) (param $expected i32) (result i32) + (loop $cont + (if (i32.eq (local.get $from) (local.get $to)) + (then + (return (i32.const -1)))) + (if (i32.eq (i32.load8_u (local.get $from)) (local.get $expected)) + (then + (local.set $from (i32.add (local.get $from) (i32.const 1))) + (br $cont)))) + (return (local.get $from))) + + (func (export "run") (param $offs i32) (param $len i32) + (memory.init 0 (local.get $offs) (i32.const 0) (local.get $len)))) + +(assert_trap (invoke "run" (i32.const 65527) (i32.const 16)) + "out of bounds memory access") + +(assert_return (invoke "checkRange" (i32.const 0) (i32.const 1) (i32.const 0)) + (i32.const -1)) +(module + (memory 1 1 ) + (data "\42\42\42\42\42\42\42\42\42\42\42\42\42\42\42\42") + + (func (export "checkRange") (param $from i32) (param $to i32) (param $expected i32) (result i32) + (loop $cont + (if (i32.eq (local.get $from) (local.get $to)) + (then + (return (i32.const -1)))) + (if (i32.eq (i32.load8_u (local.get $from)) (local.get $expected)) + (then + (local.set $from (i32.add (local.get $from) (i32.const 1))) + (br $cont)))) + (return (local.get $from))) + + (func (export "run") (param $offs i32) (param $len i32) + (memory.init 0 (local.get $offs) (i32.const 0) (local.get $len)))) + +(assert_trap (invoke "run" (i32.const 65472) (i32.const 30)) + "out of bounds memory access") + +(assert_return (invoke "checkRange" (i32.const 0) (i32.const 1) (i32.const 0)) + (i32.const -1)) +(module + (memory 1 1 ) + (data "\42\42\42\42\42\42\42\42\42\42\42\42\42\42\42\42") + + (func (export "checkRange") (param $from i32) (param $to i32) (param $expected i32) (result i32) + (loop $cont + (if (i32.eq (local.get $from) (local.get $to)) + (then + (return (i32.const -1)))) + (if (i32.eq (i32.load8_u (local.get $from)) (local.get $expected)) + (then + (local.set $from (i32.add (local.get $from) (i32.const 1))) + (br $cont)))) + (return (local.get $from))) + + (func (export "run") (param $offs i32) (param $len i32) + (memory.init 0 (local.get $offs) (i32.const 0) (local.get $len)))) + +(assert_trap (invoke "run" (i32.const 65473) (i32.const 31)) + "out of bounds memory access") + +(assert_return (invoke "checkRange" (i32.const 0) (i32.const 1) (i32.const 0)) + (i32.const -1)) +(module + (memory 1 ) + (data "\42\42\42\42\42\42\42\42\42\42\42\42\42\42\42\42") + + (func (export "checkRange") (param $from i32) (param $to i32) (param $expected i32) (result i32) + (loop $cont + (if (i32.eq (local.get $from) (local.get $to)) + (then + (return (i32.const -1)))) + (if (i32.eq (i32.load8_u (local.get $from)) (local.get $expected)) + (then + (local.set $from (i32.add (local.get $from) (i32.const 1))) + (br $cont)))) + (return (local.get $from))) + + (func (export "run") (param $offs i32) (param $len i32) + (memory.init 0 (local.get $offs) (i32.const 0) (local.get $len)))) + +(assert_trap (invoke "run" (i32.const 65528) (i32.const 4294967040)) + "out of bounds memory access") + +(assert_return (invoke "checkRange" (i32.const 0) (i32.const 1) (i32.const 0)) + (i32.const -1)) +(module + (memory 1 ) + (data "\42\42\42\42\42\42\42\42\42\42\42\42\42\42\42\42") + + (func (export "checkRange") (param $from i32) (param $to i32) (param $expected i32) (result i32) + (loop $cont + (if (i32.eq (local.get $from) (local.get $to)) + (then + (return (i32.const -1)))) + (if (i32.eq (i32.load8_u (local.get $from)) (local.get $expected)) + (then + (local.set $from (i32.add (local.get $from) (i32.const 1))) + (br $cont)))) + (return (local.get $from))) + + (func (export "run") (param $offs i32) (param $len i32) + (memory.init 0 (local.get $offs) (i32.const 0) (local.get $len)))) + +(assert_trap (invoke "run" (i32.const 0) (i32.const 4294967292)) + "out of bounds memory access") + +(assert_return (invoke "checkRange" (i32.const 0) (i32.const 1) (i32.const 0)) + (i32.const -1)) + +(module + (memory 1) + ;; 65 data segments. 64 is the smallest positive number that is encoded + ;; differently as a signed LEB. + (data "") (data "") (data "") (data "") (data "") (data "") (data "") (data "") + (data "") (data "") (data "") (data "") (data "") (data "") (data "") (data "") + (data "") (data "") (data "") (data "") (data "") (data "") (data "") (data "") + (data "") (data "") (data "") (data "") (data "") (data "") (data "") (data "") + (data "") (data "") (data "") (data "") (data "") (data "") (data "") (data "") + (data "") (data "") (data "") (data "") (data "") (data "") (data "") (data "") + (data "") (data "") (data "") (data "") (data "") (data "") (data "") (data "") + (data "") (data "") (data "") (data "") (data "") (data "") (data "") (data "") + (data "") + (func (memory.init 64 (i32.const 0) (i32.const 0) (i32.const 0)))) diff --git a/tests/memory_trap.wast b/tests/memory_trap.wast index a4156fe2..5ce8f5c3 100644 --- a/tests/memory_trap.wast +++ b/tests/memory_trap.wast @@ -20,7 +20,7 @@ (assert_return (invoke "store" (i32.const -4) (i32.const 42))) (assert_return (invoke "load" (i32.const -4)) (i32.const 42)) -(assert_trap (invoke "store" (i32.const -3) (i32.const 13)) "out of bounds memory access") +(assert_trap (invoke "store" (i32.const -3) (i32.const 0x12345678)) "out of bounds memory access") (assert_trap (invoke "load" (i32.const -3)) "out of bounds memory access") (assert_trap (invoke "store" (i32.const -2) (i32.const 13)) "out of bounds memory access") (assert_trap (invoke "load" (i32.const -2)) "out of bounds memory access") @@ -268,3 +268,15 @@ ;; No memory was changed (assert_return (invoke "i64.load" (i32.const 0xfff8)) (i64.const 0x6867666564636261)) (assert_return (invoke "i64.load" (i32.const 0)) (i64.const 0x6867666564636261)) + +;; Check that out of bounds store do not store partial data. +;; Zero last 8 bytes. +(assert_return (invoke "i64.store" (i32.const 0xfff8) (i64.const 0))) +(assert_trap (invoke "i32.store" (i32.const 0xfffd) (i32.const 0x12345678)) "out of bounds memory access") +(assert_return (invoke "i32.load" (i32.const 0xfffc)) (i32.const 0)) +(assert_trap (invoke "i64.store" (i32.const 0xfff9) (i64.const 0x1234567890abcdef)) "out of bounds memory access") +(assert_return (invoke "i64.load" (i32.const 0xfff8)) (i64.const 0)) +(assert_trap (invoke "f32.store" (i32.const 0xfffd) (f32.const 0x12345678)) "out of bounds memory access") +(assert_return (invoke "f32.load" (i32.const 0xfffc)) (f32.const 0)) +(assert_trap (invoke "f64.store" (i32.const 0xfff9) (f64.const 0x1234567890abcdef)) "out of bounds memory access") +(assert_return (invoke "f64.load" (i32.const 0xfff8)) (f64.const 0)) diff --git a/tests/return.wast b/tests/return.wast index 550762ea..7077f25b 100644 --- a/tests/return.wast +++ b/tests/return.wast @@ -476,3 +476,4 @@ (module (func $type-value-num-vs-num (result f64) (return (i64.const 1)))) "type mismatch" ) + diff --git a/tests/select.wast b/tests/select.wast old mode 100755 new mode 100644 index 6f9e899f..835bb25c --- a/tests/select.wast +++ b/tests/select.wast @@ -1,487 +1,537 @@ -(module - - (memory 1) - - (func $dummy) - - (func (export "select_i32") (param $lhs i32) (param $rhs i32) (param $cond i32) (result i32) - (select (local.get $lhs) (local.get $rhs) (local.get $cond))) - - (func (export "select_i64") (param $lhs i64) (param $rhs i64) (param $cond i32) (result i64) - (select (local.get $lhs) (local.get $rhs) (local.get $cond))) - - (func (export "select_f32") (param $lhs f32) (param $rhs f32) (param $cond i32) (result f32) - (select (local.get $lhs) (local.get $rhs) (local.get $cond))) - - (func (export "select_f64") (param $lhs f64) (param $rhs f64) (param $cond i32) (result f64) - (select (local.get $lhs) (local.get $rhs) (local.get $cond))) - - ;; Check that both sides of the select are evaluated - (func (export "select_trap_l") (param $cond i32) (result i32) - (select (unreachable) (i32.const 0) (local.get $cond)) - ) - (func (export "select_trap_r") (param $cond i32) (result i32) - (select (i32.const 0) (unreachable) (local.get $cond)) - ) - - (func (export "select_unreached") - (unreachable) (select) - (unreachable) (i32.const 0) (select) - (unreachable) (i32.const 0) (i32.const 0) (select) - (unreachable) (i32.const 0) (i32.const 0) (i32.const 0) (select) - (unreachable) (f32.const 0) (i32.const 0) (select) - (unreachable) - ) - - (func (export "select_unreached_result_1") (result i32) - (unreachable) (i32.add (select)) - ) - - (func (export "select_unreached_result_2") (result i64) - (unreachable) (i64.add (select (i64.const 0) (i32.const 0))) - ) - - ;; As the argument of control constructs and instructions - - (func (export "as-select-first") (param i32) (result i32) - (select (select (i32.const 0) (i32.const 1) (local.get 0)) (i32.const 2) (i32.const 3)) - ) - (func (export "as-select-mid") (param i32) (result i32) - (select (i32.const 2) (select (i32.const 0) (i32.const 1) (local.get 0)) (i32.const 3)) - ) - (func (export "as-select-last") (param i32) (result i32) - (select (i32.const 2) (i32.const 3) (select (i32.const 0) (i32.const 1) (local.get 0))) - ) - - (func (export "as-loop-first") (param i32) (result i32) - (loop (result i32) (select (i32.const 2) (i32.const 3) (local.get 0)) (call $dummy) (call $dummy)) - ) - (func (export "as-loop-mid") (param i32) (result i32) - (loop (result i32) (call $dummy) (select (i32.const 2) (i32.const 3) (local.get 0)) (call $dummy)) - ) - (func (export "as-loop-last") (param i32) (result i32) - (loop (result i32) (call $dummy) (call $dummy) (select (i32.const 2) (i32.const 3) (local.get 0))) - ) - - (func (export "as-if-condition") (param i32) - (select (i32.const 2) (i32.const 3) (local.get 0)) (if (then (call $dummy))) - ) - (func (export "as-if-then") (param i32) (result i32) - (if (result i32) (i32.const 1) (then (select (i32.const 2) (i32.const 3) (local.get 0))) (else (i32.const 4))) - ) - (func (export "as-if-else") (param i32) (result i32) - (if (result i32) (i32.const 0) (then (i32.const 2)) (else (select (i32.const 2) (i32.const 3) (local.get 0)))) - ) - - (func (export "as-br_if-first") (param i32) (result i32) - (block (result i32) (br_if 0 (select (i32.const 2) (i32.const 3) (local.get 0)) (i32.const 4))) - ) - (func (export "as-br_if-last") (param i32) (result i32) - (block (result i32) (br_if 0 (i32.const 2) (select (i32.const 2) (i32.const 3) (local.get 0)))) - ) - - (func (export "as-br_table-first") (param i32) (result i32) - (block (result i32) (select (i32.const 2) (i32.const 3) (local.get 0)) (i32.const 2) (br_table 0 0)) - ) - (func (export "as-br_table-last") (param i32) (result i32) - (block (result i32) (i32.const 2) (select (i32.const 2) (i32.const 3) (local.get 0)) (br_table 0 0)) - ) - - (func $func (param i32 i32) (result i32) (local.get 0)) - (type $check (func (param i32 i32) (result i32))) - (table funcref (elem $func)) - (func (export "as-call_indirect-first") (param i32) (result i32) - (block (result i32) - (call_indirect (type $check) - (select (i32.const 2) (i32.const 3) (local.get 0)) (i32.const 1) (i32.const 0) - ) - ) - ) - (func (export "as-call_indirect-mid") (param i32) (result i32) - (block (result i32) - (call_indirect (type $check) - (i32.const 1) (select (i32.const 2) (i32.const 3) (local.get 0)) (i32.const 0) - ) - ) - ) - (func (export "as-call_indirect-last") (param i32) (result i32) - (block (result i32) - (call_indirect (type $check) - (i32.const 1) (i32.const 4) (select (i32.const 2) (i32.const 3) (local.get 0)) - ) - ) - ) - - (func (export "as-store-first") (param i32) - (select (i32.const 0) (i32.const 4) (local.get 0)) (i32.const 1) (i32.store) - ) - (func (export "as-store-last") (param i32) - (i32.const 8) (select (i32.const 1) (i32.const 2) (local.get 0)) (i32.store) - ) - - (func (export "as-memory.grow-value") (param i32) (result i32) - (memory.grow (select (i32.const 1) (i32.const 2) (local.get 0))) - ) - - (func $f (param i32) (result i32) (local.get 0)) - - (func (export "as-call-value") (param i32) (result i32) - (call $f (select (i32.const 1) (i32.const 2) (local.get 0))) - ) - (func (export "as-return-value") (param i32) (result i32) - (select (i32.const 1) (i32.const 2) (local.get 0)) (return) - ) - (func (export "as-drop-operand") (param i32) - (drop (select (i32.const 1) (i32.const 2) (local.get 0))) - ) - (func (export "as-br-value") (param i32) (result i32) - (block (result i32) (br 0 (select (i32.const 1) (i32.const 2) (local.get 0)))) - ) - (func (export "as-local.set-value") (param i32) (result i32) - (local i32) (local.set 0 (select (i32.const 1) (i32.const 2) (local.get 0))) (local.get 0) - ) - (func (export "as-local.tee-value") (param i32) (result i32) - (local.tee 0 (select (i32.const 1) (i32.const 2) (local.get 0))) - ) - (global $a (mut i32) (i32.const 10)) - (func (export "as-global.set-value") (param i32) (result i32) - (global.set $a (select (i32.const 1) (i32.const 2) (local.get 0))) - (global.get $a) - ) - (func (export "as-load-operand") (param i32) (result i32) - (i32.load (select (i32.const 0) (i32.const 4) (local.get 0))) - ) - - (func (export "as-unary-operand") (param i32) (result i32) - (i32.eqz (select (i32.const 0) (i32.const 1) (local.get 0))) - ) - (func (export "as-binary-operand") (param i32) (result i32) - (i32.mul - (select (i32.const 1) (i32.const 2) (local.get 0)) - (select (i32.const 1) (i32.const 2) (local.get 0)) - ) - ) - (func (export "as-test-operand") (param i32) (result i32) - (block (result i32) - (i32.eqz (select (i32.const 0) (i32.const 1) (local.get 0))) - ) - ) - - (func (export "as-compare-left") (param i32) (result i32) - (block (result i32) - (i32.le_s (select (i32.const 1) (i32.const 2) (local.get 0)) (i32.const 1)) - ) - ) - (func (export "as-compare-right") (param i32) (result i32) - (block (result i32) - (i32.ne (i32.const 1) (select (i32.const 0) (i32.const 1) (local.get 0))) - ) - ) - - (func (export "as-convert-operand") (param i32) (result i32) - (block (result i32) - (i32.wrap_i64 (select (i64.const 1) (i64.const 0) (local.get 0))) - ) - ) - -) - -(assert_return (invoke "select_i32" (i32.const 1) (i32.const 2) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "select_i64" (i64.const 2) (i64.const 1) (i32.const 1)) (i64.const 2)) -(assert_return (invoke "select_f32" (f32.const 1) (f32.const 2) (i32.const 1)) (f32.const 1)) -(assert_return (invoke "select_f64" (f64.const 1) (f64.const 2) (i32.const 1)) (f64.const 1)) - -(assert_return (invoke "select_i32" (i32.const 1) (i32.const 2) (i32.const 0)) (i32.const 2)) -(assert_return (invoke "select_i32" (i32.const 2) (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "select_i64" (i64.const 2) (i64.const 1) (i32.const -1)) (i64.const 2)) -(assert_return (invoke "select_i64" (i64.const 2) (i64.const 1) (i32.const 0xf0f0f0f0)) (i64.const 2)) - -(assert_return (invoke "select_f32" (f32.const nan) (f32.const 1) (i32.const 1)) (f32.const nan)) -(assert_return (invoke "select_f32" (f32.const nan:0x20304) (f32.const 1) (i32.const 1)) (f32.const nan:0x20304)) -(assert_return (invoke "select_f32" (f32.const nan) (f32.const 1) (i32.const 0)) (f32.const 1)) -(assert_return (invoke "select_f32" (f32.const nan:0x20304) (f32.const 1) (i32.const 0)) (f32.const 1)) -(assert_return (invoke "select_f32" (f32.const 2) (f32.const nan) (i32.const 1)) (f32.const 2)) -(assert_return (invoke "select_f32" (f32.const 2) (f32.const nan:0x20304) (i32.const 1)) (f32.const 2)) -(assert_return (invoke "select_f32" (f32.const 2) (f32.const nan) (i32.const 0)) (f32.const nan)) -(assert_return (invoke "select_f32" (f32.const 2) (f32.const nan:0x20304) (i32.const 0)) (f32.const nan:0x20304)) - -(assert_return (invoke "select_f64" (f64.const nan) (f64.const 1) (i32.const 1)) (f64.const nan)) -(assert_return (invoke "select_f64" (f64.const nan:0x20304) (f64.const 1) (i32.const 1)) (f64.const nan:0x20304)) -(assert_return (invoke "select_f64" (f64.const nan) (f64.const 1) (i32.const 0)) (f64.const 1)) -(assert_return (invoke "select_f64" (f64.const nan:0x20304) (f64.const 1) (i32.const 0)) (f64.const 1)) -(assert_return (invoke "select_f64" (f64.const 2) (f64.const nan) (i32.const 1)) (f64.const 2)) -(assert_return (invoke "select_f64" (f64.const 2) (f64.const nan:0x20304) (i32.const 1)) (f64.const 2)) -(assert_return (invoke "select_f64" (f64.const 2) (f64.const nan) (i32.const 0)) (f64.const nan)) -(assert_return (invoke "select_f64" (f64.const 2) (f64.const nan:0x20304) (i32.const 0)) (f64.const nan:0x20304)) - -(assert_trap (invoke "select_trap_l" (i32.const 1)) "unreachable") -(assert_trap (invoke "select_trap_l" (i32.const 0)) "unreachable") -(assert_trap (invoke "select_trap_r" (i32.const 1)) "unreachable") -(assert_trap (invoke "select_trap_r" (i32.const 0)) "unreachable") - -(assert_return (invoke "as-select-first" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "as-select-first" (i32.const 1)) (i32.const 0)) -(assert_return (invoke "as-select-mid" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-select-mid" (i32.const 1)) (i32.const 2)) -(assert_return (invoke "as-select-last" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-select-last" (i32.const 1)) (i32.const 3)) - -(assert_return (invoke "as-loop-first" (i32.const 0)) (i32.const 3)) -(assert_return (invoke "as-loop-first" (i32.const 1)) (i32.const 2)) -(assert_return (invoke "as-loop-mid" (i32.const 0)) (i32.const 3)) -(assert_return (invoke "as-loop-mid" (i32.const 1)) (i32.const 2)) -(assert_return (invoke "as-loop-last" (i32.const 0)) (i32.const 3)) -(assert_return (invoke "as-loop-last" (i32.const 1)) (i32.const 2)) - -(assert_return (invoke "as-if-condition" (i32.const 0))) -(assert_return (invoke "as-if-condition" (i32.const 1))) -(assert_return (invoke "as-if-then" (i32.const 0)) (i32.const 3)) -(assert_return (invoke "as-if-then" (i32.const 1)) (i32.const 2)) -(assert_return (invoke "as-if-else" (i32.const 0)) (i32.const 3)) -(assert_return (invoke "as-if-else" (i32.const 1)) (i32.const 2)) - -(assert_return (invoke "as-br_if-first" (i32.const 0)) (i32.const 3)) -(assert_return (invoke "as-br_if-first" (i32.const 1)) (i32.const 2)) -(assert_return (invoke "as-br_if-last" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-br_if-last" (i32.const 1)) (i32.const 2)) - -(assert_return (invoke "as-br_table-first" (i32.const 0)) (i32.const 3)) -(assert_return (invoke "as-br_table-first" (i32.const 1)) (i32.const 2)) -(assert_return (invoke "as-br_table-last" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-br_table-last" (i32.const 1)) (i32.const 2)) - -(assert_return (invoke "as-call_indirect-first" (i32.const 0)) (i32.const 3)) -(assert_return (invoke "as-call_indirect-first" (i32.const 1)) (i32.const 2)) -(assert_return (invoke "as-call_indirect-mid" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "as-call_indirect-mid" (i32.const 1)) (i32.const 1)) -(assert_trap (invoke "as-call_indirect-last" (i32.const 0)) "undefined element") -(assert_trap (invoke "as-call_indirect-last" (i32.const 1)) "undefined element") - -(assert_return (invoke "as-store-first" (i32.const 0))) -(assert_return (invoke "as-store-first" (i32.const 1))) -(assert_return (invoke "as-store-last" (i32.const 0))) -(assert_return (invoke "as-store-last" (i32.const 1))) - -(assert_return (invoke "as-memory.grow-value" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "as-memory.grow-value" (i32.const 1)) (i32.const 3)) - -(assert_return (invoke "as-call-value" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-call-value" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "as-return-value" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-return-value" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "as-drop-operand" (i32.const 0))) -(assert_return (invoke "as-drop-operand" (i32.const 1))) -(assert_return (invoke "as-br-value" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-br-value" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "as-local.set-value" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-local.set-value" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "as-local.tee-value" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-local.tee-value" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "as-global.set-value" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-global.set-value" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "as-load-operand" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "as-load-operand" (i32.const 1)) (i32.const 1)) - -(assert_return (invoke "as-unary-operand" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "as-unary-operand" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "as-binary-operand" (i32.const 0)) (i32.const 4)) -(assert_return (invoke "as-binary-operand" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "as-test-operand" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "as-test-operand" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "as-compare-left" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "as-compare-left" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "as-compare-right" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "as-compare-right" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "as-convert-operand" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "as-convert-operand" (i32.const 1)) (i32.const 1)) - -(assert_invalid - (module (func $arity-0 (select (nop) (nop) (i32.const 1)) (drop))) - "type mismatch" -) - -;; The first two operands should have the same type as each other - -(assert_invalid - (module (func $type-num-vs-num (select (i32.const 1) (i64.const 1) (i32.const 1)) (drop))) - "type mismatch" -) -(assert_invalid - (module (func $type-num-vs-num (select (i32.const 1) (f32.const 1.0) (i32.const 1)) (drop))) - "type mismatch" -) -(assert_invalid - (module (func $type-num-vs-num (select (i32.const 1) (f64.const 1.0) (i32.const 1)) (drop))) - "type mismatch" -) - - -(assert_invalid - (module - (func $type-1st-operand-empty - (select) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-2nd-operand-empty - (i32.const 0) (select) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-3rd-operand-empty - (i32.const 0) (i32.const 0) (select) (drop) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-1st-operand-empty-in-block - (i32.const 0) (i32.const 0) (i32.const 0) - (block (select) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-2nd-operand-empty-in-block - (i32.const 0) (i32.const 0) - (block (i32.const 0) (select) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-3rd-operand-empty-in-block - (i32.const 0) - (block (i32.const 0) (i32.const 0) (select) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-1st-operand-empty-in-loop - (i32.const 0) (i32.const 0) (i32.const 0) - (loop (select) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-2nd-operand-empty-in-loop - (i32.const 0) (i32.const 0) - (loop (i32.const 0) (select) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-3rd-operand-empty-in-loop - (i32.const 0) - (loop (i32.const 0) (i32.const 0) (select) (drop)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-1st-operand-empty-in-then - (i32.const 0) (i32.const 0) (i32.const 0) - (if (then (select) (drop))) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-2nd-operand-empty-in-then - (i32.const 0) (i32.const 0) - (if (then (i32.const 0) (select) (drop))) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-3rd-operand-empty-in-then - (i32.const 0) - (if (then (i32.const 0) (i32.const 0) (select) (drop))) - ) - ) - "type mismatch" -) - -;; Third operand must be i32 - -(assert_invalid - (module (func (select (i32.const 1) (i32.const 1) (i64.const 1)) (drop))) - "type mismatch" -) -(assert_invalid - (module (func (select (i32.const 1) (i32.const 1) (f32.const 1)) (drop))) - "type mismatch" -) -(assert_invalid - (module (func (select (i32.const 1) (i32.const 1) (f64.const 1)) (drop))) - "type mismatch" -) - -;; Result of select has type of first two operands - -(assert_invalid - (module (func (result i32) (select (i64.const 1) (i64.const 1) (i32.const 1)))) - "type mismatch" -) - -;; Validation after unreachable - -;; The first two operands should have the same type as each other -(assert_invalid - (module (func (unreachable) (select (i32.const 1) (i64.const 1) (i32.const 1)) (drop))) - "type mismatch" -) - -(assert_invalid - (module (func (unreachable) (select (i64.const 1) (i32.const 1) (i32.const 1)) (drop))) - "type mismatch" -) - -;; Third operand must be i32 -(assert_invalid - (module (func (unreachable) (select (i32.const 1) (i32.const 1) (i64.const 1)) (drop))) - "type mismatch" -) - -(assert_invalid - (module (func (unreachable) (select (i32.const 1) (i64.const 1)) (drop))) - "type mismatch" -) - -(assert_invalid - (module (func (unreachable) (select (i64.const 1)) (drop))) - "type mismatch" -) - -;; Result of select has type of first two operands (type of second operand when first one is omitted) -(assert_invalid - (module (func (result i32) (unreachable) (select (i64.const 1) (i32.const 1)))) - "type mismatch" -) - -;; select always has non-empty result -(assert_invalid - (module (func (unreachable) (select))) - "type mismatch" -) - +(module + ;; Auxiliary + (func $dummy) + (table $tab funcref (elem $dummy)) + (memory 1) + + (func (export "select-i32") (param i32 i32 i32) (result i32) + (select (local.get 0) (local.get 1) (local.get 2)) + ) + (func (export "select-i64") (param i64 i64 i32) (result i64) + (select (local.get 0) (local.get 1) (local.get 2)) + ) + (func (export "select-f32") (param f32 f32 i32) (result f32) + (select (local.get 0) (local.get 1) (local.get 2)) + ) + (func (export "select-f64") (param f64 f64 i32) (result f64) + (select (local.get 0) (local.get 1) (local.get 2)) + ) + + ;; W2C2: No support for select with return value + ;; (func (export "select-i32-t") (param i32 i32 i32) (result i32) + ;; (select (result i32) (local.get 0) (local.get 1) (local.get 2)) + ;; ) + ;; (func (export "select-i64-t") (param i64 i64 i32) (result i64) + ;; (select (result i64) (local.get 0) (local.get 1) (local.get 2)) + ;; ) + ;; (func (export "select-f32-t") (param f32 f32 i32) (result f32) + ;; (select (result f32) (local.get 0) (local.get 1) (local.get 2)) + ;; ) + ;; (func (export "select-f64-t") (param f64 f64 i32) (result f64) + ;; (select (result f64) (local.get 0) (local.get 1) (local.get 2)) + ;; ) + ;; (func (export "select-funcref") (param funcref funcref i32) (result funcref) + ;; (select (result funcref) (local.get 0) (local.get 1) (local.get 2)) + ;; ) + ;; (func (export "select-externref") (param externref externref i32) (result externref) + ;; (select (result externref) (local.get 0) (local.get 1) (local.get 2)) + ;; ) + + ;; As the argument of control constructs and instructions + + (func (export "as-select-first") (param i32) (result i32) + (select (select (i32.const 0) (i32.const 1) (local.get 0)) (i32.const 2) (i32.const 3)) + ) + (func (export "as-select-mid") (param i32) (result i32) + (select (i32.const 2) (select (i32.const 0) (i32.const 1) (local.get 0)) (i32.const 3)) + ) + (func (export "as-select-last") (param i32) (result i32) + (select (i32.const 2) (i32.const 3) (select (i32.const 0) (i32.const 1) (local.get 0))) + ) + + (func (export "as-loop-first") (param i32) (result i32) + (loop (result i32) (select (i32.const 2) (i32.const 3) (local.get 0)) (call $dummy) (call $dummy)) + ) + (func (export "as-loop-mid") (param i32) (result i32) + (loop (result i32) (call $dummy) (select (i32.const 2) (i32.const 3) (local.get 0)) (call $dummy)) + ) + (func (export "as-loop-last") (param i32) (result i32) + (loop (result i32) (call $dummy) (call $dummy) (select (i32.const 2) (i32.const 3) (local.get 0))) + ) + + (func (export "as-if-condition") (param i32) + (select (i32.const 2) (i32.const 3) (local.get 0)) (if (then (call $dummy))) + ) + (func (export "as-if-then") (param i32) (result i32) + (if (result i32) (i32.const 1) (then (select (i32.const 2) (i32.const 3) (local.get 0))) (else (i32.const 4))) + ) + (func (export "as-if-else") (param i32) (result i32) + (if (result i32) (i32.const 0) (then (i32.const 2)) (else (select (i32.const 2) (i32.const 3) (local.get 0)))) + ) + + (func (export "as-br_if-first") (param i32) (result i32) + (block (result i32) (br_if 0 (select (i32.const 2) (i32.const 3) (local.get 0)) (i32.const 4))) + ) + (func (export "as-br_if-last") (param i32) (result i32) + (block (result i32) (br_if 0 (i32.const 2) (select (i32.const 2) (i32.const 3) (local.get 0)))) + ) + + (func (export "as-br_table-first") (param i32) (result i32) + (block (result i32) (select (i32.const 2) (i32.const 3) (local.get 0)) (i32.const 2) (br_table 0 0)) + ) + (func (export "as-br_table-last") (param i32) (result i32) + (block (result i32) (i32.const 2) (select (i32.const 2) (i32.const 3) (local.get 0)) (br_table 0 0)) + ) + + (func $func (param i32 i32) (result i32) (local.get 0)) + (type $check (func (param i32 i32) (result i32))) + ;; W2C2: No support for multiple tables + ;; (table $t funcref (elem $func)) + ;; (func (export "as-call_indirect-first") (param i32) (result i32) + ;; (block (result i32) + ;; (call_indirect $t (type $check) + ;; (select (i32.const 2) (i32.const 3) (local.get 0)) (i32.const 1) (i32.const 0) + ;; ) + ;; ) + ;; ) + ;; (func (export "as-call_indirect-mid") (param i32) (result i32) + ;; (block (result i32) + ;; (call_indirect $t (type $check) + ;; (i32.const 1) (select (i32.const 2) (i32.const 3) (local.get 0)) (i32.const 0) + ;; ) + ;; ) + ;; ) + ;; (func (export "as-call_indirect-last") (param i32) (result i32) + ;; (block (result i32) + ;; (call_indirect $t (type $check) + ;; (i32.const 1) (i32.const 4) (select (i32.const 2) (i32.const 3) (local.get 0)) + ;; ) + ;; ) + ;; ) + + (func (export "as-store-first") (param i32) + (select (i32.const 0) (i32.const 4) (local.get 0)) (i32.const 1) (i32.store) + ) + (func (export "as-store-last") (param i32) + (i32.const 8) (select (i32.const 1) (i32.const 2) (local.get 0)) (i32.store) + ) + + (func (export "as-memory.grow-value") (param i32) (result i32) + (memory.grow (select (i32.const 1) (i32.const 2) (local.get 0))) + ) + + (func $f (param i32) (result i32) (local.get 0)) + + (func (export "as-call-value") (param i32) (result i32) + (call $f (select (i32.const 1) (i32.const 2) (local.get 0))) + ) + (func (export "as-return-value") (param i32) (result i32) + (select (i32.const 1) (i32.const 2) (local.get 0)) (return) + ) + (func (export "as-drop-operand") (param i32) + (drop (select (i32.const 1) (i32.const 2) (local.get 0))) + ) + (func (export "as-br-value") (param i32) (result i32) + (block (result i32) (br 0 (select (i32.const 1) (i32.const 2) (local.get 0)))) + ) + (func (export "as-local.set-value") (param i32) (result i32) + (local i32) (local.set 0 (select (i32.const 1) (i32.const 2) (local.get 0))) (local.get 0) + ) + (func (export "as-local.tee-value") (param i32) (result i32) + (local.tee 0 (select (i32.const 1) (i32.const 2) (local.get 0))) + ) + (global $a (mut i32) (i32.const 10)) + (func (export "as-global.set-value") (param i32) (result i32) + (global.set $a (select (i32.const 1) (i32.const 2) (local.get 0))) + (global.get $a) + ) + (func (export "as-load-operand") (param i32) (result i32) + (i32.load (select (i32.const 0) (i32.const 4) (local.get 0))) + ) + + (func (export "as-unary-operand") (param i32) (result i32) + (i32.eqz (select (i32.const 0) (i32.const 1) (local.get 0))) + ) + (func (export "as-binary-operand") (param i32) (result i32) + (i32.mul + (select (i32.const 1) (i32.const 2) (local.get 0)) + (select (i32.const 1) (i32.const 2) (local.get 0)) + ) + ) + (func (export "as-test-operand") (param i32) (result i32) + (block (result i32) + (i32.eqz (select (i32.const 0) (i32.const 1) (local.get 0))) + ) + ) + + (func (export "as-compare-left") (param i32) (result i32) + (block (result i32) + (i32.le_s (select (i32.const 1) (i32.const 2) (local.get 0)) (i32.const 1)) + ) + ) + (func (export "as-compare-right") (param i32) (result i32) + (block (result i32) + (i32.ne (i32.const 1) (select (i32.const 0) (i32.const 1) (local.get 0))) + ) + ) + + (func (export "as-convert-operand") (param i32) (result i32) + (block (result i32) + (i32.wrap_i64 (select (i64.const 1) (i64.const 0) (local.get 0))) + ) + ) +) + +(assert_return (invoke "select-i32" (i32.const 1) (i32.const 2) (i32.const 1)) (i32.const 1)) +(assert_return (invoke "select-i64" (i64.const 2) (i64.const 1) (i32.const 1)) (i64.const 2)) +(assert_return (invoke "select-f32" (f32.const 1) (f32.const 2) (i32.const 1)) (f32.const 1)) +(assert_return (invoke "select-f64" (f64.const 1) (f64.const 2) (i32.const 1)) (f64.const 1)) + +(assert_return (invoke "select-i32" (i32.const 1) (i32.const 2) (i32.const 0)) (i32.const 2)) +(assert_return (invoke "select-i32" (i32.const 2) (i32.const 1) (i32.const 0)) (i32.const 1)) +(assert_return (invoke "select-i64" (i64.const 2) (i64.const 1) (i32.const -1)) (i64.const 2)) +(assert_return (invoke "select-i64" (i64.const 2) (i64.const 1) (i32.const 0xf0f0f0f0)) (i64.const 2)) + +(assert_return (invoke "select-f32" (f32.const nan) (f32.const 1) (i32.const 1)) (f32.const nan)) +(assert_return (invoke "select-f32" (f32.const nan:0x20304) (f32.const 1) (i32.const 1)) (f32.const nan:0x20304)) +(assert_return (invoke "select-f32" (f32.const nan) (f32.const 1) (i32.const 0)) (f32.const 1)) +(assert_return (invoke "select-f32" (f32.const nan:0x20304) (f32.const 1) (i32.const 0)) (f32.const 1)) +(assert_return (invoke "select-f32" (f32.const 2) (f32.const nan) (i32.const 1)) (f32.const 2)) +(assert_return (invoke "select-f32" (f32.const 2) (f32.const nan:0x20304) (i32.const 1)) (f32.const 2)) +(assert_return (invoke "select-f32" (f32.const 2) (f32.const nan) (i32.const 0)) (f32.const nan)) +(assert_return (invoke "select-f32" (f32.const 2) (f32.const nan:0x20304) (i32.const 0)) (f32.const nan:0x20304)) + +(assert_return (invoke "select-f64" (f64.const nan) (f64.const 1) (i32.const 1)) (f64.const nan)) +(assert_return (invoke "select-f64" (f64.const nan:0x20304) (f64.const 1) (i32.const 1)) (f64.const nan:0x20304)) +(assert_return (invoke "select-f64" (f64.const nan) (f64.const 1) (i32.const 0)) (f64.const 1)) +(assert_return (invoke "select-f64" (f64.const nan:0x20304) (f64.const 1) (i32.const 0)) (f64.const 1)) +(assert_return (invoke "select-f64" (f64.const 2) (f64.const nan) (i32.const 1)) (f64.const 2)) +(assert_return (invoke "select-f64" (f64.const 2) (f64.const nan:0x20304) (i32.const 1)) (f64.const 2)) +(assert_return (invoke "select-f64" (f64.const 2) (f64.const nan) (i32.const 0)) (f64.const nan)) +(assert_return (invoke "select-f64" (f64.const 2) (f64.const nan:0x20304) (i32.const 0)) (f64.const nan:0x20304)) + +;; W2C2: No support for select with return value +;; (assert_return (invoke "select-i32-t" (i32.const 1) (i32.const 2) (i32.const 1)) (i32.const 1)) +;; (assert_return (invoke "select-i64-t" (i64.const 2) (i64.const 1) (i32.const 1)) (i64.const 2)) +;; (assert_return (invoke "select-f32-t" (f32.const 1) (f32.const 2) (i32.const 1)) (f32.const 1)) +;; (assert_return (invoke "select-f64-t" (f64.const 1) (f64.const 2) (i32.const 1)) (f64.const 1)) +;; (assert_return (invoke "select-funcref" (ref.null func) (ref.null func) (i32.const 1)) (ref.null func)) +;; (assert_return (invoke "select-externref" (ref.extern 1) (ref.extern 2) (i32.const 1)) (ref.extern 1)) +;; +;; (assert_return (invoke "select-i32-t" (i32.const 1) (i32.const 2) (i32.const 0)) (i32.const 2)) +;; (assert_return (invoke "select-i32-t" (i32.const 2) (i32.const 1) (i32.const 0)) (i32.const 1)) +;; (assert_return (invoke "select-i64-t" (i64.const 2) (i64.const 1) (i32.const -1)) (i64.const 2)) +;; (assert_return (invoke "select-i64-t" (i64.const 2) (i64.const 1) (i32.const 0xf0f0f0f0)) (i64.const 2)) +;; (assert_return (invoke "select-externref" (ref.extern 1) (ref.extern 2) (i32.const 0)) (ref.extern 2)) +;; (assert_return (invoke "select-externref" (ref.extern 2) (ref.extern 1) (i32.const 0)) (ref.extern 1)) +;; +;; (assert_return (invoke "select-f32-t" (f32.const nan) (f32.const 1) (i32.const 1)) (f32.const nan)) +;; (assert_return (invoke "select-f32-t" (f32.const nan:0x20304) (f32.const 1) (i32.const 1)) (f32.const nan:0x20304)) +;; (assert_return (invoke "select-f32-t" (f32.const nan) (f32.const 1) (i32.const 0)) (f32.const 1)) +;; (assert_return (invoke "select-f32-t" (f32.const nan:0x20304) (f32.const 1) (i32.const 0)) (f32.const 1)) +;; (assert_return (invoke "select-f32-t" (f32.const 2) (f32.const nan) (i32.const 1)) (f32.const 2)) +;; (assert_return (invoke "select-f32-t" (f32.const 2) (f32.const nan:0x20304) (i32.const 1)) (f32.const 2)) +;; (assert_return (invoke "select-f32-t" (f32.const 2) (f32.const nan) (i32.const 0)) (f32.const nan)) +;; (assert_return (invoke "select-f32-t" (f32.const 2) (f32.const nan:0x20304) (i32.const 0)) (f32.const nan:0x20304)) +;; +;; (assert_return (invoke "select-f64-t" (f64.const nan) (f64.const 1) (i32.const 1)) (f64.const nan)) +;; (assert_return (invoke "select-f64-t" (f64.const nan:0x20304) (f64.const 1) (i32.const 1)) (f64.const nan:0x20304)) +;; (assert_return (invoke "select-f64-t" (f64.const nan) (f64.const 1) (i32.const 0)) (f64.const 1)) +;; (assert_return (invoke "select-f64-t" (f64.const nan:0x20304) (f64.const 1) (i32.const 0)) (f64.const 1)) +;; (assert_return (invoke "select-f64-t" (f64.const 2) (f64.const nan) (i32.const 1)) (f64.const 2)) +;; (assert_return (invoke "select-f64-t" (f64.const 2) (f64.const nan:0x20304) (i32.const 1)) (f64.const 2)) +;; (assert_return (invoke "select-f64-t" (f64.const 2) (f64.const nan) (i32.const 0)) (f64.const nan)) +;; (assert_return (invoke "select-f64-t" (f64.const 2) (f64.const nan:0x20304) (i32.const 0)) (f64.const nan:0x20304)) + +(assert_return (invoke "as-select-first" (i32.const 0)) (i32.const 1)) +(assert_return (invoke "as-select-first" (i32.const 1)) (i32.const 0)) +(assert_return (invoke "as-select-mid" (i32.const 0)) (i32.const 2)) +(assert_return (invoke "as-select-mid" (i32.const 1)) (i32.const 2)) +(assert_return (invoke "as-select-last" (i32.const 0)) (i32.const 2)) +(assert_return (invoke "as-select-last" (i32.const 1)) (i32.const 3)) + +(assert_return (invoke "as-loop-first" (i32.const 0)) (i32.const 3)) +(assert_return (invoke "as-loop-first" (i32.const 1)) (i32.const 2)) +(assert_return (invoke "as-loop-mid" (i32.const 0)) (i32.const 3)) +(assert_return (invoke "as-loop-mid" (i32.const 1)) (i32.const 2)) +(assert_return (invoke "as-loop-last" (i32.const 0)) (i32.const 3)) +(assert_return (invoke "as-loop-last" (i32.const 1)) (i32.const 2)) + +(assert_return (invoke "as-if-condition" (i32.const 0))) +(assert_return (invoke "as-if-condition" (i32.const 1))) +(assert_return (invoke "as-if-then" (i32.const 0)) (i32.const 3)) +(assert_return (invoke "as-if-then" (i32.const 1)) (i32.const 2)) +(assert_return (invoke "as-if-else" (i32.const 0)) (i32.const 3)) +(assert_return (invoke "as-if-else" (i32.const 1)) (i32.const 2)) + +(assert_return (invoke "as-br_if-first" (i32.const 0)) (i32.const 3)) +(assert_return (invoke "as-br_if-first" (i32.const 1)) (i32.const 2)) +(assert_return (invoke "as-br_if-last" (i32.const 0)) (i32.const 2)) +(assert_return (invoke "as-br_if-last" (i32.const 1)) (i32.const 2)) + +(assert_return (invoke "as-br_table-first" (i32.const 0)) (i32.const 3)) +(assert_return (invoke "as-br_table-first" (i32.const 1)) (i32.const 2)) +(assert_return (invoke "as-br_table-last" (i32.const 0)) (i32.const 2)) +(assert_return (invoke "as-br_table-last" (i32.const 1)) (i32.const 2)) + +;; W2C2: No support for multiple tables +;; (assert_return (invoke "as-call_indirect-first" (i32.const 0)) (i32.const 3)) +;; (assert_return (invoke "as-call_indirect-first" (i32.const 1)) (i32.const 2)) +;; (assert_return (invoke "as-call_indirect-mid" (i32.const 0)) (i32.const 1)) +;; (assert_return (invoke "as-call_indirect-mid" (i32.const 1)) (i32.const 1)) +;; (assert_trap (invoke "as-call_indirect-last" (i32.const 0)) "undefined element") +;; (assert_trap (invoke "as-call_indirect-last" (i32.const 1)) "undefined element") + +(assert_return (invoke "as-store-first" (i32.const 0))) +(assert_return (invoke "as-store-first" (i32.const 1))) +(assert_return (invoke "as-store-last" (i32.const 0))) +(assert_return (invoke "as-store-last" (i32.const 1))) + +(assert_return (invoke "as-memory.grow-value" (i32.const 0)) (i32.const 1)) +(assert_return (invoke "as-memory.grow-value" (i32.const 1)) (i32.const 3)) + +(assert_return (invoke "as-call-value" (i32.const 0)) (i32.const 2)) +(assert_return (invoke "as-call-value" (i32.const 1)) (i32.const 1)) +(assert_return (invoke "as-return-value" (i32.const 0)) (i32.const 2)) +(assert_return (invoke "as-return-value" (i32.const 1)) (i32.const 1)) +(assert_return (invoke "as-drop-operand" (i32.const 0))) +(assert_return (invoke "as-drop-operand" (i32.const 1))) +(assert_return (invoke "as-br-value" (i32.const 0)) (i32.const 2)) +(assert_return (invoke "as-br-value" (i32.const 1)) (i32.const 1)) +(assert_return (invoke "as-local.set-value" (i32.const 0)) (i32.const 2)) +(assert_return (invoke "as-local.set-value" (i32.const 1)) (i32.const 1)) +(assert_return (invoke "as-local.tee-value" (i32.const 0)) (i32.const 2)) +(assert_return (invoke "as-local.tee-value" (i32.const 1)) (i32.const 1)) +(assert_return (invoke "as-global.set-value" (i32.const 0)) (i32.const 2)) +(assert_return (invoke "as-global.set-value" (i32.const 1)) (i32.const 1)) +(assert_return (invoke "as-load-operand" (i32.const 0)) (i32.const 1)) +(assert_return (invoke "as-load-operand" (i32.const 1)) (i32.const 1)) + +(assert_return (invoke "as-unary-operand" (i32.const 0)) (i32.const 0)) +(assert_return (invoke "as-unary-operand" (i32.const 1)) (i32.const 1)) +(assert_return (invoke "as-binary-operand" (i32.const 0)) (i32.const 4)) +(assert_return (invoke "as-binary-operand" (i32.const 1)) (i32.const 1)) +(assert_return (invoke "as-test-operand" (i32.const 0)) (i32.const 0)) +(assert_return (invoke "as-test-operand" (i32.const 1)) (i32.const 1)) +(assert_return (invoke "as-compare-left" (i32.const 0)) (i32.const 0)) +(assert_return (invoke "as-compare-left" (i32.const 1)) (i32.const 1)) +(assert_return (invoke "as-compare-right" (i32.const 0)) (i32.const 0)) +(assert_return (invoke "as-compare-right" (i32.const 1)) (i32.const 1)) +(assert_return (invoke "as-convert-operand" (i32.const 0)) (i32.const 0)) +(assert_return (invoke "as-convert-operand" (i32.const 1)) (i32.const 1)) + +(assert_invalid + (module (func $arity-0-implicit (select (nop) (nop) (i32.const 1)))) + "type mismatch" +) +;; W2C2: No support for select with multiple return values +;; (assert_invalid +;; (module (func $arity-0 (select (result) (nop) (nop) (i32.const 1)))) +;; "invalid result arity" +;; ) +;; (assert_invalid +;; (module (func $arity-2 (result i32 i32) +;; (select (result i32 i32) +;; (i32.const 0) (i32.const 0) +;; (i32.const 0) (i32.const 0) +;; (i32.const 1) +;; ) +;; )) +;; "invalid result arity" +;; ) + +;; W2C2: No support for external references +;; (assert_invalid +;; (module (func $type-externref-implicit (param $r externref) +;; (drop (select (local.get $r) (local.get $r) (i32.const 1))) +;; )) +;; "type mismatch" +;; ) + +(assert_invalid + (module (func $type-num-vs-num + (drop (select (i32.const 1) (i64.const 1) (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-num-vs-num + (drop (select (i32.const 1) (f32.const 1.0) (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-num-vs-num + (drop (select (i32.const 1) (f64.const 1.0) (i32.const 1))) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-num-vs-num (select (i32.const 1) (i64.const 1) (i32.const 1)) (drop))) + "type mismatch" +) +(assert_invalid + (module (func $type-num-vs-num (select (i32.const 1) (f32.const 1.0) (i32.const 1)) (drop))) + "type mismatch" +) +(assert_invalid + (module (func $type-num-vs-num (select (i32.const 1) (i64.const 1) (i32.const 1)) (drop))) + "type mismatch" +) +(assert_invalid + (module (func $type-num-vs-num (select (i32.const 1) (f32.const 1.0) (i32.const 1)) (drop))) + "type mismatch" +) +(assert_invalid + (module (func $type-num-vs-num (select (i32.const 1) (f64.const 1.0) (i32.const 1)) (drop))) + "type mismatch" +) + + +(assert_invalid + (module + (func $type-1st-operand-empty + (select) (drop) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-2nd-operand-empty + (i32.const 0) (select) (drop) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-3rd-operand-empty + (i32.const 0) (i32.const 0) (select) (drop) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-1st-operand-empty-in-block + (i32.const 0) (i32.const 0) (i32.const 0) + (block (select) (drop)) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-2nd-operand-empty-in-block + (i32.const 0) (i32.const 0) + (block (i32.const 0) (select) (drop)) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-3rd-operand-empty-in-block + (i32.const 0) + (block (i32.const 0) (i32.const 0) (select) (drop)) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-1st-operand-empty-in-loop + (i32.const 0) (i32.const 0) (i32.const 0) + (loop (select) (drop)) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-2nd-operand-empty-in-loop + (i32.const 0) (i32.const 0) + (loop (i32.const 0) (select) (drop)) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-3rd-operand-empty-in-loop + (i32.const 0) + (loop (i32.const 0) (i32.const 0) (select) (drop)) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-1st-operand-empty-in-then + (i32.const 0) (i32.const 0) (i32.const 0) + (if (then (select) (drop))) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-2nd-operand-empty-in-then + (i32.const 0) (i32.const 0) + (if (then (i32.const 0) (select) (drop))) + ) + ) + "type mismatch" +) +(assert_invalid + (module + (func $type-3rd-operand-empty-in-then + (i32.const 0) + (if (then (i32.const 0) (i32.const 0) (select) (drop))) + ) + ) + "type mismatch" +) + +;; Third operand must be i32 + +(assert_invalid + (module (func (select (i32.const 1) (i32.const 1) (i64.const 1)) (drop))) + "type mismatch" +) +(assert_invalid + (module (func (select (i32.const 1) (i32.const 1) (f32.const 1)) (drop))) + "type mismatch" +) +(assert_invalid + (module (func (select (i32.const 1) (i32.const 1) (f64.const 1)) (drop))) + "type mismatch" +) + +;; Result of select has type of first two operands + +(assert_invalid + (module (func (result i32) (select (i64.const 1) (i64.const 1) (i32.const 1)))) + "type mismatch" +) + + +;; Flat syntax + +(module + (table 1 funcref) + (func (result i32) unreachable select) + (func (result i32) unreachable select nop) + (func (result i32) unreachable select (select)) + (func (result i32) unreachable select select) + (func (result i32) unreachable select select select) + ;; W2C2: No support for select with multiple return values + ;; (func (result i32) unreachable select (result i32)) + ;; (func (result i32) unreachable select (result i32) (result)) + ;; (func (result i32) unreachable select (result i32) (result) select) + ;; (func (result i32) unreachable select (result) (result i32) select (result i32)) + (func (result i32) unreachable select call_indirect) + (func (result i32) unreachable select call_indirect select) +) diff --git a/tests/stack.wast b/tests/stack.wast index 06eb0c62..5da5043c 100644 --- a/tests/stack.wast +++ b/tests/stack.wast @@ -156,6 +156,7 @@ (module (type $proc (func)) (table 1 funcref) + (func (block i32.const 0 call_indirect) (loop i32.const 0 call_indirect) @@ -193,6 +194,7 @@ (then i32.const 0 call_indirect (type $proc) (param) (param) (result)) (else i32.const 0 call_indirect (type $proc) (param) (result) (result)) ) + block i32.const 0 call_indirect end loop i32.const 0 call_indirect end i32.const 0 if i32.const 0 call_indirect end diff --git a/tests/start.wast b/tests/start.wast old mode 100755 new mode 100644 index a683cc46..bf88a6a4 --- a/tests/start.wast +++ b/tests/start.wast @@ -1,105 +1,105 @@ -(assert_invalid - (module (func) (start 1)) - "unknown function" -) - -(assert_invalid - (module - (func $main (result i32) (return (i32.const 0))) - (start $main) - ) - "start function" -) -(assert_invalid - (module - (func $main (param $a i32)) - (start $main) - ) - "start function" -) - -(module - (memory (data "A")) - (func $inc - (i32.store8 - (i32.const 0) - (i32.add - (i32.load8_u (i32.const 0)) - (i32.const 1) - ) - ) - ) - (func $get (result i32) - (return (i32.load8_u (i32.const 0))) - ) - (func $main - (call $inc) - (call $inc) - (call $inc) - ) - - (start $main) - (export "inc" (func $inc)) - (export "get" (func $get)) -) -(assert_return (invoke "get") (i32.const 68)) -(invoke "inc") -(assert_return (invoke "get") (i32.const 69)) -(invoke "inc") -(assert_return (invoke "get") (i32.const 70)) - -(module - (memory (data "A")) - (func $inc - (i32.store8 - (i32.const 0) - (i32.add - (i32.load8_u (i32.const 0)) - (i32.const 1) - ) - ) - ) - (func $get (result i32) - (return (i32.load8_u (i32.const 0))) - ) - (func $main - (call $inc) - (call $inc) - (call $inc) - ) - (start 2) - (export "inc" (func $inc)) - (export "get" (func $get)) -) -(assert_return (invoke "get") (i32.const 68)) -(invoke "inc") -(assert_return (invoke "get") (i32.const 69)) -(invoke "inc") -(assert_return (invoke "get") (i32.const 70)) - -(module - (func $print_i32 (import "spectest" "print_i32") (param i32)) - (func $main (call $print_i32 (i32.const 1))) - (start 1) -) - -(module - (func $print_i32 (import "spectest" "print_i32") (param i32)) - (func $main (call $print_i32 (i32.const 2))) - (start $main) -) - -(module - (func $print (import "spectest" "print")) - (start $print) -) - -(assert_trap - (module (func $main (unreachable)) (start $main)) - "unreachable" -) - -(assert_malformed - (module quote "(module (func $a (unreachable)) (func $b (unreachable)) (start $a) (start $b))") - "multiple start sections" -) +(assert_invalid + (module (func) (start 1)) + "unknown function" +) + +(assert_invalid + (module + (func $main (result i32) (return (i32.const 0))) + (start $main) + ) + "start function" +) +(assert_invalid + (module + (func $main (param $a i32)) + (start $main) + ) + "start function" +) + +(module + (memory (data "A")) + (func $inc + (i32.store8 + (i32.const 0) + (i32.add + (i32.load8_u (i32.const 0)) + (i32.const 1) + ) + ) + ) + (func $get (result i32) + (return (i32.load8_u (i32.const 0))) + ) + (func $main + (call $inc) + (call $inc) + (call $inc) + ) + + (start $main) + (export "inc" (func $inc)) + (export "get" (func $get)) +) +(assert_return (invoke "get") (i32.const 68)) +(invoke "inc") +(assert_return (invoke "get") (i32.const 69)) +(invoke "inc") +(assert_return (invoke "get") (i32.const 70)) + +(module + (memory (data "A")) + (func $inc + (i32.store8 + (i32.const 0) + (i32.add + (i32.load8_u (i32.const 0)) + (i32.const 1) + ) + ) + ) + (func $get (result i32) + (return (i32.load8_u (i32.const 0))) + ) + (func $main + (call $inc) + (call $inc) + (call $inc) + ) + (start 2) + (export "inc" (func $inc)) + (export "get" (func $get)) +) +(assert_return (invoke "get") (i32.const 68)) +(invoke "inc") +(assert_return (invoke "get") (i32.const 69)) +(invoke "inc") +(assert_return (invoke "get") (i32.const 70)) + +(module + (func $print_i32 (import "spectest" "print_i32") (param i32)) + (func $main (call $print_i32 (i32.const 1))) + (start 1) +) + +(module + (func $print_i32 (import "spectest" "print_i32") (param i32)) + (func $main (call $print_i32 (i32.const 2))) + (start $main) +) + +(module + (func $print (import "spectest" "print")) + (start $print) +) + +(assert_trap + (module (func $main (unreachable)) (start $main)) + "unreachable" +) + +(assert_malformed + (module quote "(module (func $a (unreachable)) (func $b (unreachable)) (start $a) (start $b))") + "multiple start sections" +) diff --git a/tests/test_conversions.0.ppc64le.out b/tests/test_conversions.0.ppc64le.out index 522b1e30..aab9e36b 100644 --- a/tests/test_conversions.0.ppc64le.out +++ b/tests/test_conversions.0.ppc64le.out @@ -140,6 +140,12 @@ OK: i64.trunc_f64_u(-0.9999999999999999) OK: i64.trunc_f64_u(100000000.0) OK: i64.trunc_f64_u(1e+16) OK: i64.trunc_f64_u(9.223372036854776e+18) +OK: f32.convert_i32_s(1u) +OK: f32.convert_i32_s(4294967295u) +OK: f32.convert_i32_s(0u) +OK: f32.convert_i32_s(2147483647u) +OK: f32.convert_i32_s(2147483648u) +OK: f32.convert_i32_s(1234567890u) OK: i32.trunc_sat_f32_s(0.0) OK: i32.trunc_sat_f32_s(-0.0) OK: i32.trunc_sat_f32_s(1.401298464324817e-45) @@ -288,12 +294,6 @@ OK: i64.trunc_sat_f64_u(1.8446744073709552e+19) OK: i64.trunc_sat_f64_u(-1.0) OK: i64.trunc_sat_f64_u(INFINITY) OK: i64.trunc_sat_f64_u(-INFINITY) -OK: f32.convert_i32_s(1u) -OK: f32.convert_i32_s(4294967295u) -OK: f32.convert_i32_s(0u) -OK: f32.convert_i32_s(2147483647u) -OK: f32.convert_i32_s(2147483648u) -OK: f32.convert_i32_s(1234567890u) OK: f32.convert_i32_s(16777217u) OK: f32.convert_i32_s(4278190079u) OK: f32.convert_i32_s(16777219u) diff --git a/tests/test_float_exprs.87.hppa.out b/tests/test_float_exprs.89.hppa.out similarity index 99% rename from tests/test_float_exprs.87.hppa.out rename to tests/test_float_exprs.89.hppa.out index 062f8690..f99ed80a 100644 --- a/tests/test_float_exprs.87.hppa.out +++ b/tests/test_float_exprs.89.hppa.out @@ -1,4 +1,4 @@ -START: float_exprs.87.wasm +START: float_exprs.89.wasm FAIL: f32.arithmetic_nan_bitpattern(2139107856u, 2139107856u): 2139095040 != 2143289344 FAIL: f32.canonical_nan_bitpattern(0u, 0u): 2141192192 != 2143289344 FAIL: f32.canonical_nan_bitpattern(2143289344u, 2143289344u): 2141192192 != 2143289344 diff --git a/tests/test_float_exprs.87.i386.out b/tests/test_float_exprs.89.i386.out similarity index 98% rename from tests/test_float_exprs.87.i386.out rename to tests/test_float_exprs.89.i386.out index 74d6cd28..920d895b 100644 --- a/tests/test_float_exprs.87.i386.out +++ b/tests/test_float_exprs.89.i386.out @@ -1,4 +1,4 @@ -START: float_exprs.87.wasm +START: float_exprs.89.wasm OK: f32.arithmetic_nan_bitpattern(2139107856u, 2139107856u) OK: f32.canonical_nan_bitpattern(0u, 0u) OK: f32.canonical_nan_bitpattern(2143289344u, 2143289344u) diff --git a/tests/test_float_exprs.87.mipsel.out b/tests/test_float_exprs.89.mips.out similarity index 99% rename from tests/test_float_exprs.87.mipsel.out rename to tests/test_float_exprs.89.mips.out index f5b629f3..74f76b23 100644 --- a/tests/test_float_exprs.87.mipsel.out +++ b/tests/test_float_exprs.89.mips.out @@ -1,4 +1,4 @@ -START: float_exprs.87.wasm +START: float_exprs.89.wasm FAIL: f32.arithmetic_nan_bitpattern(2139107856u, 2139107856u): 2139095040 != 2143289344 FAIL: f32.canonical_nan_bitpattern(0u, 0u): 2143289343 != 2143289344 FAIL: f32.canonical_nan_bitpattern(2143289344u, 2143289344u): 2143289343 != 2143289344 diff --git a/tests/test_float_exprs.87.mips64el.out b/tests/test_float_exprs.89.mips64.out similarity index 99% rename from tests/test_float_exprs.87.mips64el.out rename to tests/test_float_exprs.89.mips64.out index f5b629f3..74f76b23 100644 --- a/tests/test_float_exprs.87.mips64el.out +++ b/tests/test_float_exprs.89.mips64.out @@ -1,4 +1,4 @@ -START: float_exprs.87.wasm +START: float_exprs.89.wasm FAIL: f32.arithmetic_nan_bitpattern(2139107856u, 2139107856u): 2139095040 != 2143289344 FAIL: f32.canonical_nan_bitpattern(0u, 0u): 2143289343 != 2143289344 FAIL: f32.canonical_nan_bitpattern(2143289344u, 2143289344u): 2143289343 != 2143289344 diff --git a/tests/test_float_exprs.87.mips.out b/tests/test_float_exprs.89.mips64el.out similarity index 99% rename from tests/test_float_exprs.87.mips.out rename to tests/test_float_exprs.89.mips64el.out index f5b629f3..74f76b23 100644 --- a/tests/test_float_exprs.87.mips.out +++ b/tests/test_float_exprs.89.mips64el.out @@ -1,4 +1,4 @@ -START: float_exprs.87.wasm +START: float_exprs.89.wasm FAIL: f32.arithmetic_nan_bitpattern(2139107856u, 2139107856u): 2139095040 != 2143289344 FAIL: f32.canonical_nan_bitpattern(0u, 0u): 2143289343 != 2143289344 FAIL: f32.canonical_nan_bitpattern(2143289344u, 2143289344u): 2143289343 != 2143289344 diff --git a/tests/test_float_exprs.87.mips64.out b/tests/test_float_exprs.89.mipsel.out similarity index 99% rename from tests/test_float_exprs.87.mips64.out rename to tests/test_float_exprs.89.mipsel.out index f5b629f3..74f76b23 100644 --- a/tests/test_float_exprs.87.mips64.out +++ b/tests/test_float_exprs.89.mipsel.out @@ -1,4 +1,4 @@ -START: float_exprs.87.wasm +START: float_exprs.89.wasm FAIL: f32.arithmetic_nan_bitpattern(2139107856u, 2139107856u): 2139095040 != 2143289344 FAIL: f32.canonical_nan_bitpattern(0u, 0u): 2143289343 != 2143289344 FAIL: f32.canonical_nan_bitpattern(2143289344u, 2143289344u): 2143289343 != 2143289344 diff --git a/tests/test_float_literals.0.i386.out b/tests/test_float_literals.0.i386.out index 05cf8e82..85025685 100644 --- a/tests/test_float_literals.0.i386.out +++ b/tests/test_float_literals.0.i386.out @@ -20,6 +20,10 @@ OK: f32.min_normal() OK: f32.max_subnormal() OK: f32.max_finite() OK: f32.trailing_dot() +OK: f32.misc_int() +OK: f32.large_int() +OK: f32.min_int32() +OK: f32.min_int64() OK: f32_dec.zero() OK: f32_dec.positive_zero() OK: f32_dec.negative_zero() @@ -30,6 +34,10 @@ OK: f32_dec.max_subnormal() OK: f32_dec.max_finite() OK: f32_dec.trailing_dot() OK: f32_dec.root_beer_float() +OK: f32_dec.misc_int() +OK: f32_dec.large_int() +OK: f32_dec.min_int32() +OK: f32_dec.min_int64() OK: f64.all_ones_nan() FAIL: f64.misc_nan(): 9221140253039434428 != 9218888453225749180 FAIL: f64.misc_positive_nan(): 9221969081593694217 != 9219717281780008969 @@ -46,6 +54,10 @@ OK: f64.min_normal() OK: f64.max_subnormal() OK: f64.max_finite() OK: f64.trailing_dot() +OK: f64.misc_int() +OK: f64.large_int() +OK: f64.min_int32() +OK: f64.min_int64() OK: f64_dec.zero() OK: f64_dec.positive_zero() OK: f64_dec.negative_zero() @@ -56,6 +68,10 @@ OK: f64_dec.max_subnormal() OK: f64_dec.max_finite() OK: f64_dec.trailing_dot() OK: f64_dec.root_beer_float() +OK: f64_dec.misc_int() +OK: f64_dec.large_int() +OK: f64_dec.min_int32() +OK: f64_dec.min_int64() OK: f32-dec-sep1() OK: f32-dec-sep2() OK: f32-dec-sep3() diff --git a/tests/test_float_misc.0.i386.out b/tests/test_float_misc.0.i386.out index 321a510f..8d3ec2a9 100644 --- a/tests/test_float_misc.0.i386.out +++ b/tests/test_float_misc.0.i386.out @@ -378,6 +378,36 @@ OK: f32.sqrt(0.9999998807907104) OK: f32.sqrt(0.9999998211860657) OK: f64.sqrt(0.9999999999999998) OK: f64.sqrt(0.9999999999999997) +OK: f32.sqrt(0.2499999850988388) +OK: f32.sqrt(0.25) +OK: f32.sqrt(0.2500000298023224) +OK: f32.sqrt(0.2500000596046448) +OK: f64.sqrt(0.24999999999999997) +OK: f64.sqrt(0.25) +OK: f64.sqrt(0.25000000000000006) +OK: f64.sqrt(0.2500000000000001) +OK: f32.sqrt(272331603968.0) +OK: f64.sqrt(272331606109.83676) +OK: f32.sqrt(10616005632.0) +OK: f32.sqrt(3014768273129472.0) +OK: f32.sqrt(24597323841536.0) +OK: f32.sqrt(1234567936.0) +OK: f64.sqrt(10616005156.0) +OK: f64.sqrt(3014768326492836.0) +OK: f64.sqrt(24597324665761.0) +OK: f64.sqrt(1234567891.0) +OK: f32.sqrt(0.5158079862594604) +OK: f32.sqrt(0.5028960704803467) +OK: f64.sqrt(0.5158079862594604) +OK: f64.sqrt(0.5028960704803467) +OK: f32.sqrt(9.0) +OK: f32.sqrt(137.0) +OK: f32.sqrt(1.7737711668014526) +OK: f32.sqrt(1000.0) +OK: f64.sqrt(9.0) +OK: f64.sqrt(137.0) +OK: f64.sqrt(1.7737712281864233) +OK: f64.sqrt(1000.0) OK: f32.ceil(0.9999999403953552) OK: f32.ceil(1.0000001192092896) OK: f64.ceil(0.9999999999999999) diff --git a/tests/type.wast b/tests/type.wast index 5ceeeb26..8572aaf8 100644 --- a/tests/type.wast +++ b/tests/type.wast @@ -11,6 +11,7 @@ (type (func (param $x i32) (result i32))) (type (func (param f32 f64))) + ;; W2C2: No support for functions with multiple return values ;; (type (func (result i64 f32))) ;; (type (func (param i32 i64) (result f32 f64))) @@ -18,17 +19,20 @@ (type (func (param $x f32) (param f64))) (type (func (param f32) (param $y f64))) (type (func (param $x f32) (param $y f64))) + ;; W2C2: No support for functions with multiple return values ;; (type (func (result i64) (result f32))) ;; (type (func (param i32) (param i64) (result f32) (result f64))) ;; (type (func (param $x i32) (param $y i64) (result f32) (result f64))) (type (func (param f32 f64) (param $x i32) (param f64 i32 i32))) + ;; W2C2: No support for functions with multiple return values ;; (type (func (result i64 i64 f32) (result f32 i32))) ;; (type ;; (func (param i32 i32) (param i64 i32) (result f32 f64) (result f64 i32)) ;; ) (type (func (param) (param $x f32) (param) (param) (param f64 i32) (param))) + ;; W2C2: No support for functions with multiple return values ;; (type ;; (func (result) (result) (result i64 i64) (result) (result f32) (result)) ;; ) @@ -42,18 +46,9 @@ (assert_malformed (module quote "(type (func (result i32) (param i32)))") - "result before parameter" + "unexpected token" ) (assert_malformed (module quote "(type (func (result $x i32)))") "unexpected token" ) - -(assert_invalid - (module (type (func (result i32 i32)))) - "invalid result arity" -) -(assert_invalid - (module (type (func (result i32) (result i32)))) - "invalid result arity" -) diff --git a/tests/unreachable.wast b/tests/unreachable.wast new file mode 100644 index 00000000..19f661be --- /dev/null +++ b/tests/unreachable.wast @@ -0,0 +1,304 @@ +;; Test `unreachable` operator + +(module + ;; Auxiliary definitions + (func $dummy) + (func $dummy3 (param i32 i32 i32)) + + (func (export "type-i32") (result i32) (unreachable)) + (func (export "type-i64") (result i64) (unreachable)) + (func (export "type-f32") (result f32) (unreachable)) + (func (export "type-f64") (result f64) (unreachable)) + + (func (export "as-func-first") (result i32) + (unreachable) (i32.const -1) + ) + (func (export "as-func-mid") (result i32) + (call $dummy) (unreachable) (i32.const -1) + ) + (func (export "as-func-last") + (call $dummy) (unreachable) + ) + (func (export "as-func-value") (result i32) + (call $dummy) (unreachable) + ) + + (func (export "as-block-first") (result i32) + (block (result i32) (unreachable) (i32.const 2)) + ) + (func (export "as-block-mid") (result i32) + (block (result i32) (call $dummy) (unreachable) (i32.const 2)) + ) + (func (export "as-block-last") + (block (nop) (call $dummy) (unreachable)) + ) + (func (export "as-block-value") (result i32) + (block (result i32) (nop) (call $dummy) (unreachable)) + ) + (func (export "as-block-broke") (result i32) + (block (result i32) (call $dummy) (br 0 (i32.const 1)) (unreachable)) + ) + + (func (export "as-loop-first") (result i32) + (loop (result i32) (unreachable) (i32.const 2)) + ) + (func (export "as-loop-mid") (result i32) + (loop (result i32) (call $dummy) (unreachable) (i32.const 2)) + ) + (func (export "as-loop-last") + (loop (nop) (call $dummy) (unreachable)) + ) + (func (export "as-loop-broke") (result i32) + (block (result i32) + (loop (result i32) (call $dummy) (br 1 (i32.const 1)) (unreachable)) + ) + ) + + (func (export "as-br-value") (result i32) + (block (result i32) (br 0 (unreachable))) + ) + + (func (export "as-br_if-cond") + (block (br_if 0 (unreachable))) + ) + (func (export "as-br_if-value") (result i32) + (block (result i32) + (drop (br_if 0 (unreachable) (i32.const 1))) (i32.const 7) + ) + ) + (func (export "as-br_if-value-cond") (result i32) + (block (result i32) + (drop (br_if 0 (i32.const 6) (unreachable))) (i32.const 7) + ) + ) + + (func (export "as-br_table-index") + (block (br_table 0 0 0 (unreachable))) + ) + (func (export "as-br_table-value") (result i32) + (block (result i32) + (br_table 0 0 0 (unreachable) (i32.const 1)) (i32.const 7) + ) + ) + (func (export "as-br_table-value-2") (result i32) + (block (result i32) + (block (result i32) (br_table 0 1 (unreachable) (i32.const 1))) + ) + ) + (func (export "as-br_table-value-index") (result i32) + (block (result i32) + (br_table 0 0 (i32.const 6) (unreachable)) (i32.const 7) + ) + ) + (func (export "as-br_table-value-and-index") (result i32) + (block (result i32) (br_table 0 0 (unreachable)) (i32.const 8)) + ) + + (func (export "as-return-value") (result i64) + (return (unreachable)) + ) + + (func (export "as-if-cond") (result i32) + (if (result i32) (unreachable) (then (i32.const 0)) (else (i32.const 1))) + ) + (func (export "as-if-then") (param i32 i32) (result i32) + (if (result i32) (local.get 0) (then (unreachable)) (else (local.get 1))) + ) + (func (export "as-if-else") (param i32 i32) (result i32) + (if (result i32) (local.get 0) (then (local.get 1)) (else (unreachable))) + ) + (func (export "as-if-then-no-else") (param i32 i32) (result i32) + (if (local.get 0) (then (unreachable))) (local.get 1) + ) + + (func (export "as-select-first") (param i32 i32) (result i32) + (select (unreachable) (local.get 0) (local.get 1)) + ) + (func (export "as-select-second") (param i32 i32) (result i32) + (select (local.get 0) (unreachable) (local.get 1)) + ) + (func (export "as-select-cond") (result i32) + (select (i32.const 0) (i32.const 1) (unreachable)) + ) + + (func (export "as-call-first") + (call $dummy3 (unreachable) (i32.const 2) (i32.const 3)) + ) + (func (export "as-call-mid") + (call $dummy3 (i32.const 1) (unreachable) (i32.const 3)) + ) + (func (export "as-call-last") + (call $dummy3 (i32.const 1) (i32.const 2) (unreachable)) + ) + + (type $sig (func (param i32 i32 i32))) + (table funcref (elem $dummy3)) + (func (export "as-call_indirect-func") + (call_indirect (type $sig) + (unreachable) (i32.const 1) (i32.const 2) (i32.const 3) + ) + ) + (func (export "as-call_indirect-first") + (call_indirect (type $sig) + (i32.const 0) (unreachable) (i32.const 2) (i32.const 3) + ) + ) + (func (export "as-call_indirect-mid") + (call_indirect (type $sig) + (i32.const 0) (i32.const 1) (unreachable) (i32.const 3) + ) + ) + (func (export "as-call_indirect-last") + (call_indirect (type $sig) + (i32.const 0) (i32.const 1) (i32.const 2) (unreachable) + ) + ) + + (func (export "as-local.set-value") (local f32) + (local.set 0 (unreachable)) + ) + (func (export "as-local.tee-value") (result f32) (local f32) + (local.tee 0 (unreachable)) + ) + (global $a (mut f32) (f32.const 0)) + (func (export "as-global.set-value") (result f32) + (global.set $a (unreachable)) + ) + + (memory 1) + (func (export "as-load-address") (result f32) + (f32.load (unreachable)) + ) + (func (export "as-loadN-address") (result i64) + (i64.load8_s (unreachable)) + ) + + (func (export "as-store-address") + (f64.store (unreachable) (f64.const 7)) + ) + (func (export "as-store-value") + (i64.store (i32.const 2) (unreachable)) + ) + + (func (export "as-storeN-address") + (i32.store8 (unreachable) (i32.const 7)) + ) + (func (export "as-storeN-value") + (i64.store16 (i32.const 2) (unreachable)) + ) + + (func (export "as-unary-operand") (result f32) + (f32.neg (unreachable)) + ) + + (func (export "as-binary-left") (result i32) + (i32.add (unreachable) (i32.const 10)) + ) + (func (export "as-binary-right") (result i64) + (i64.sub (i64.const 10) (unreachable)) + ) + + (func (export "as-test-operand") (result i32) + (i32.eqz (unreachable)) + ) + + (func (export "as-compare-left") (result i32) + (f64.le (unreachable) (f64.const 10)) + ) + (func (export "as-compare-right") (result i32) + (f32.ne (f32.const 10) (unreachable)) + ) + + (func (export "as-convert-operand") (result i32) + (i32.wrap_i64 (unreachable)) + ) + + (func (export "as-memory.grow-size") (result i32) + (memory.grow (unreachable)) + ) +) + +(assert_trap (invoke "type-i32") "unreachable") +(assert_trap (invoke "type-i64") "unreachable") +(assert_trap (invoke "type-f32") "unreachable") +(assert_trap (invoke "type-f64") "unreachable") + +(assert_trap (invoke "as-func-first") "unreachable") +(assert_trap (invoke "as-func-mid") "unreachable") +(assert_trap (invoke "as-func-last") "unreachable") +(assert_trap (invoke "as-func-value") "unreachable") + +(assert_trap (invoke "as-block-first") "unreachable") +(assert_trap (invoke "as-block-mid") "unreachable") +(assert_trap (invoke "as-block-last") "unreachable") +(assert_trap (invoke "as-block-value") "unreachable") +(assert_return (invoke "as-block-broke") (i32.const 1)) + +(assert_trap (invoke "as-loop-first") "unreachable") +(assert_trap (invoke "as-loop-mid") "unreachable") +(assert_trap (invoke "as-loop-last") "unreachable") +(assert_return (invoke "as-loop-broke") (i32.const 1)) + +(assert_trap (invoke "as-br-value") "unreachable") + +(assert_trap (invoke "as-br_if-cond") "unreachable") +(assert_trap (invoke "as-br_if-value") "unreachable") +(assert_trap (invoke "as-br_if-value-cond") "unreachable") + +(assert_trap (invoke "as-br_table-index") "unreachable") +(assert_trap (invoke "as-br_table-value") "unreachable") +(assert_trap (invoke "as-br_table-value-2") "unreachable") +(assert_trap (invoke "as-br_table-value-index") "unreachable") +(assert_trap (invoke "as-br_table-value-and-index") "unreachable") + +(assert_trap (invoke "as-return-value") "unreachable") + +(assert_trap (invoke "as-if-cond") "unreachable") +(assert_trap (invoke "as-if-then" (i32.const 1) (i32.const 6)) "unreachable") +(assert_return (invoke "as-if-then" (i32.const 0) (i32.const 6)) (i32.const 6)) +(assert_trap (invoke "as-if-else" (i32.const 0) (i32.const 6)) "unreachable") +(assert_return (invoke "as-if-else" (i32.const 1) (i32.const 6)) (i32.const 6)) +(assert_trap (invoke "as-if-then-no-else" (i32.const 1) (i32.const 6)) "unreachable") +(assert_return (invoke "as-if-then-no-else" (i32.const 0) (i32.const 6)) (i32.const 6)) + +(assert_trap (invoke "as-select-first" (i32.const 0) (i32.const 6)) "unreachable") +(assert_trap (invoke "as-select-first" (i32.const 1) (i32.const 6)) "unreachable") +(assert_trap (invoke "as-select-second" (i32.const 0) (i32.const 6)) "unreachable") +(assert_trap (invoke "as-select-second" (i32.const 1) (i32.const 6)) "unreachable") +(assert_trap (invoke "as-select-cond") "unreachable") + +(assert_trap (invoke "as-call-first") "unreachable") +(assert_trap (invoke "as-call-mid") "unreachable") +(assert_trap (invoke "as-call-last") "unreachable") + +(assert_trap (invoke "as-call_indirect-func") "unreachable") +(assert_trap (invoke "as-call_indirect-first") "unreachable") +(assert_trap (invoke "as-call_indirect-mid") "unreachable") +(assert_trap (invoke "as-call_indirect-last") "unreachable") + +(assert_trap (invoke "as-local.set-value") "unreachable") +(assert_trap (invoke "as-local.tee-value") "unreachable") +(assert_trap (invoke "as-global.set-value") "unreachable") + +(assert_trap (invoke "as-load-address") "unreachable") +(assert_trap (invoke "as-loadN-address") "unreachable") + +(assert_trap (invoke "as-store-address") "unreachable") +(assert_trap (invoke "as-store-value") "unreachable") +(assert_trap (invoke "as-storeN-address") "unreachable") +(assert_trap (invoke "as-storeN-value") "unreachable") + +(assert_trap (invoke "as-unary-operand") "unreachable") + +(assert_trap (invoke "as-binary-left") "unreachable") +(assert_trap (invoke "as-binary-right") "unreachable") + +(assert_trap (invoke "as-test-operand") "unreachable") + +(assert_trap (invoke "as-compare-left") "unreachable") +(assert_trap (invoke "as-compare-right") "unreachable") + +(assert_trap (invoke "as-convert-operand") "unreachable") + +(assert_trap (invoke "as-memory.grow-size") "unreachable") + diff --git a/tests/unreached-invalid.wast b/tests/unreached-invalid.wast new file mode 100644 index 00000000..d3447f1d --- /dev/null +++ b/tests/unreached-invalid.wast @@ -0,0 +1,751 @@ +;; Failures in unreachable code. + +(assert_invalid + (module (func $local-index (unreachable) (drop (local.get 0)))) + "unknown local" +) +(assert_invalid + (module (func $global-index (unreachable) (drop (global.get 0)))) + "unknown global" +) +(assert_invalid + (module (func $func-index (unreachable) (call 1))) + "unknown function" +) +(assert_invalid + (module (func $label-index (unreachable) (br 1))) + "unknown label" +) + +(assert_invalid + (module (func $type-num-vs-num + (unreachable) (drop (i64.eqz (i32.const 0)))) + ) + "type mismatch" +) +(assert_invalid + (module (func $type-poly-num-vs-num (result i32) + (unreachable) (i64.const 0) (i32.const 0) (select) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-poly-transitive-num-vs-num (result i32) + (unreachable) + (i64.const 0) (i32.const 0) (select) + (i32.const 0) (i32.const 0) (select) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-unconsumed-const (unreachable) (i32.const 0))) + "type mismatch" +) +(assert_invalid + (module (func $type-unconsumed-result (unreachable) (i32.eqz))) + "type mismatch" +) +(assert_invalid + (module (func $type-unconsumed-result2 + (unreachable) (i32.const 0) (i32.add) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-unconsumed-poly0 (unreachable) (select))) + "type mismatch" +) +(assert_invalid + (module (func $type-unconsumed-poly1 (unreachable) (i32.const 0) (select))) + "type mismatch" +) +(assert_invalid + (module (func $type-unconsumed-poly2 + (unreachable) (i32.const 0) (i32.const 0) (select) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-unary-num-vs-void-after-break + (block (br 0) (block (drop (i32.eqz (nop))))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-unary-num-vs-num-after-break + (block (br 0) (drop (i32.eqz (f32.const 1)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-binary-num-vs-void-after-break + (block (br 0) (block (drop (f32.eq (i32.const 1))))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-binary-num-vs-num-after-break + (block (br 0) (drop (f32.eq (i32.const 1) (f32.const 0)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-void-after-break + (block (br 0) (i32.const 1)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-num-after-break (result i32) + (block (result i32) (i32.const 1) (br 0) (f32.const 0)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-loop-value-num-vs-void-after-break + (block (loop (br 1) (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-loop-value-num-vs-num-after-break (result i32) + (loop (result i32) (br 1 (i32.const 1)) (f32.const 0)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-func-value-num-vs-void-after-break + (br 0) (i32.const 1) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-func-value-num-vs-num-after-break (result i32) + (br 0 (i32.const 1)) (f32.const 0) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-unary-num-vs-void-after-return + (return) (block (drop (i32.eqz (nop)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-unary-num-vs-num-after-return + (return) (drop (i32.eqz (f32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-binary-num-vs-void-after-return + (return) (block (drop (f32.eq (i32.const 1)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-binary-num-vs-num-after-return + (return) (drop (f32.eq (i32.const 1) (f32.const 0))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-void-after-return + (block (return) (i32.const 1)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-num-after-return (result i32) + (block (result i32) (i32.const 1) (return (i32.const 0)) (f32.const 0)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-loop-value-num-vs-void-after-return + (block (loop (return) (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-loop-value-num-vs-num-after-return (result i32) + (loop (result i32) (return (i32.const 1)) (f32.const 0)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-func-value-num-vs-void-after-return + (return) (i32.const 1) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-func-value-num-vs-num-after-return (result i32) + (return (i32.const 1)) (f32.const 0) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-unary-num-vs-void-after-unreachable + (unreachable) (block (drop (i32.eqz (nop)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-unary-num-vs-void-in-loop-after-unreachable + (unreachable) (loop (drop (i32.eqz (nop)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-unary-num-vs-void-in-i32-loop-after-unreachable + (unreachable) (loop (result i32) (i32.eqz (nop))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-unary-num-vs-num-after-unreachable + (unreachable) (drop (i32.eqz (f32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-binary-num-vs-void-after-unreachable + (unreachable) (block (drop (f32.eq (i32.const 1)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-binary-num-vs-num-after-unreachable + (unreachable) (drop (f32.eq (i32.const 1) (f32.const 0))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-void-after-unreachable + (block (unreachable) (i32.const 1)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-num-after-unreachable (result i32) + (block (result i32) (i32.const 1) (unreachable) (f32.const 0)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-loop-value-num-vs-void-after-unreachable + (block (loop (unreachable) (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-loop-value-num-vs-num-after-unreachable (result i32) + (loop (result i32) (unreachable) (f32.const 0)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-func-value-num-vs-void-after-unreachable + (unreachable) (i32.const 1) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-func-value-num-vs-num-after-unreachable (result i32) + (unreachable) (f32.const 0) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-unary-num-vs-void-in-if-after-unreachable + (unreachable) (if (i32.const 0) (then (drop (i32.eqz (nop))))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-unary-num-vs-void-in-else-after-unreachable + (unreachable) (if (i32.const 0) (then (nop)) (else (drop (i32.eqz (nop))))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-unary-num-vs-void-in-else-after-unreachable-if + (if (i32.const 0) (then (unreachable)) (else (drop (i32.eqz (nop))))) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-unary-num-vs-void-after-nested-unreachable + (block (unreachable)) (block (drop (i32.eqz (nop)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-unary-num-vs-num-after-nested-unreachable + (block (unreachable)) (drop (i32.eqz (f32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-binary-num-vs-void-after-nested-unreachable + (block (unreachable)) (block (drop (f32.eq (i32.const 1)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-binary-num-vs-num-after-nested-unreachable + (block (unreachable)) (drop (f32.eq (i32.const 1) (f32.const 0))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-void-after-nested-unreachable + (block (block (unreachable)) (i32.const 1)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-num-after-nested-unreachable + (result i32) + (block (result i32) (i32.const 1) (block (unreachable)) (f32.const 0)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-loop-value-num-vs-void-after-nested-unreachable + (block (loop (block (unreachable)) (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-loop-value-num-vs-num-after-nested-unreachable + (result i32) + (loop (result i32) (block (unreachable)) (f32.const 0)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-func-value-num-vs-void-after-nested-unreachable + (block (unreachable)) (i32.const 1) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-func-value-num-vs-num-after-nested-unreachable + (result i32) + (block (unreachable)) (f32.const 0) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-unary-num-vs-void-after-infinite-loop + (loop (br 0)) (block (drop (i32.eqz (nop)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-unary-num-vs-num-after-infinite-loop + (loop (br 0)) (drop (i32.eqz (f32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-binary-num-vs-void-after-infinite-loop + (loop (br 0)) (block (drop (f32.eq (i32.const 1)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-binary-num-vs-num-after-infinite-loop + (loop (br 0)) (drop (f32.eq (i32.const 1) (f32.const 0))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-void-after-infinite-loop + (block (loop (br 0)) (i32.const 1)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-num-after-infinite-loop (result i32) + (block (result i32) (i32.const 1) (loop (br 0)) (f32.const 0)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-loop-value-num-vs-void-after-infinite-loop + (block (loop (loop (br 0)) (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-loop-value-num-vs-num-after-infinite-loop (result i32) + (loop (result i32) (loop (br 0)) (f32.const 0)) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-func-value-num-vs-void-after-infinite-loop + (loop (br 0)) (i32.const 1) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-func-value-num-vs-num-after-infinite-loop (result i32) + (loop (br 0)) (f32.const 0) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-unary-num-vs-void-in-dead-body + (if (i32.const 0) (then (drop (i32.eqz (nop))))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-unary-num-vs-num-in-dead-body + (if (i32.const 0) (then (drop (i32.eqz (f32.const 1))))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-binary-num-vs-void-in-dead-body + (if (i32.const 0) (then (drop (f32.eq (i32.const 1))))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-binary-num-vs-num-in-dead-body + (if (i32.const 0) (then (drop (f32.eq (i32.const 1) (f32.const 0))))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-if-value-num-vs-void-in-dead-body + (if (i32.const 0) (then (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-if-value-num-vs-num-in-dead-body (result i32) + (if (result i32) (i32.const 0) (then (f32.const 0))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-void-in-dead-body + (if (i32.const 0) (then (block (i32.const 1)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-num-in-dead-body (result i32) + (if (result i32) (i32.const 0) (then (block (result i32) (f32.const 0)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-void-in-dead-body + (if (i32.const 0) (then (loop (i32.const 1)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-num-vs-num-in-dead-body (result i32) + (if (result i32) (i32.const 0) (then (loop (result i32) (f32.const 0)))) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-return-second-num-vs-num (result i32) + (return (i32.const 1)) (return (f64.const 1)) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-br-second-num-vs-num (result i32) + (block (result i32) (br 0 (i32.const 1)) (br 0 (f64.const 1))) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-br_if-cond-num-vs-num-after-unreachable + (block (br_if 0 (unreachable) (f32.const 0))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-br_if-num-vs-void-after-unreachable (result i32) + (block (result i32) + (block (unreachable) (br_if 1 (i32.const 0) (i32.const 0))) + ) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-br_if-num-vs-num-after-unreachable (result i32) + (block (result i32) + (block (result f32) (unreachable) (br_if 1 (i32.const 0) (i32.const 0))) + (drop) (i32.const 0) + ) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-br_if-num2-vs-num-after-unreachable (result i32) + (block (result i32) + (unreachable) (br_if 0 (i32.const 0) (i32.const 0)) (i32.const 0) + ) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-br_table-num-vs-num-after-unreachable + (block (br_table 0 (unreachable) (f32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-br_table-label-num-vs-num-after-unreachable (result i32) + (block (result i32) (unreachable) (br_table 0 (f32.const 0) (i32.const 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-br_table-label-num-vs-label-void-after-unreachable + (block + (block (result f32) + (unreachable) + (br_table 0 1 0 (i32.const 1)) + ) + (drop) + ) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-block-value-nested-unreachable-num-vs-void + (block (i32.const 3) (block (unreachable))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-nested-unreachable-void-vs-num (result i32) + (block (block (unreachable))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-nested-unreachable-num-vs-num (result i32) + (block (result i64) (i64.const 0) (block (unreachable))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-nested-unreachable-num2-vs-void (result i32) + (block (i32.const 3) (block (i64.const 1) (unreachable))) (i32.const 9) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-block-value-nested-br-num-vs-void + (block (i32.const 3) (block (br 1))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-nested-br-void-vs-num (result i32) + (block (result i32) (block (br 1 (i32.const 0)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-nested-br-num-vs-num (result i32) + (block (result i32) (i64.const 0) (block (br 1 (i32.const 0)))) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-block-value-nested2-br-num-vs-void + (block (block (i32.const 3) (block (br 2)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-nested2-br-void-vs-num (result i32) + (block (result i32) (block (block (br 2 (i32.const 0))))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-nested2-br-num-vs-num (result i32) + (block (result i32) + (block (result i64) (i64.const 0) (block (br 2 (i32.const 0)))) + ) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-nested2-br-num2-vs-void (result i32) + (block (i32.const 3) (block (i64.const 1) (br 1))) (i32.const 9) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-block-value-nested-return-num-vs-void + (block (i32.const 3) (block (return))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-nested-return-void-vs-num (result i32) + (block (block (return (i32.const 0)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-nested-return-num-vs-num (result i32) + (block (result i64) (i64.const 0) (block (return (i32.const 0)))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-block-value-nested-return-num2-vs-void (result i32) + (block (i32.const 3) (block (i64.const 1) (return (i32.const 0)))) + (i32.const 9) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-loop-value-nested-unreachable-num-vs-void + (loop (i32.const 3) (block (unreachable))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-loop-value-nested-unreachable-void-vs-num (result i32) + (loop (block (unreachable))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-loop-value-nested-unreachable-num-vs-num (result i32) + (loop (result i64) (i64.const 0) (block (unreachable))) + )) + "type mismatch" +) + +(assert_invalid + (module (func $type-cont-last-void-vs-empty (result i32) + (loop (br 0 (nop))) + )) + "type mismatch" +) +(assert_invalid + (module (func $type-cont-last-num-vs-empty (result i32) + (loop (br 0 (i32.const 0))) + )) + "type mismatch" +) + +(assert_invalid + (module (func $tee-local-unreachable-value + (local i32) + (local.tee 0 (unreachable)) + )) + "type mismatch" +) +(assert_invalid + (module (func $br_if-unreachable (result i32) + (block (result i32) + (block + (br_if 1 (unreachable) (i32.const 0)) + ) + (i32.const 0) + ) + )) + "type mismatch" +) +(assert_invalid + (module + (func $type-br_if-after-unreachable (result i64) + unreachable + br_if 0 + i64.extend_i32_u + ) + ) + "type mismatch" +) + +;; The first two operands should have the same type as each other +(assert_invalid + (module (func (unreachable) (select (i32.const 1) (i64.const 1) (i32.const 1)) (drop))) + "type mismatch" +) + +(assert_invalid + (module (func (unreachable) (select (i64.const 1) (i32.const 1) (i32.const 1)) (drop))) + "type mismatch" +) + +;; Third operand must be i32 +(assert_invalid + (module (func (unreachable) (select (i32.const 1) (i32.const 1) (i64.const 1)) (drop))) + "type mismatch" +) + +(assert_invalid + (module (func (unreachable) (select (i32.const 1) (i64.const 1)) (drop))) + "type mismatch" +) + +(assert_invalid + (module (func (unreachable) (select (i64.const 1)) (drop))) + "type mismatch" +) + +;; Result of select has type of first two operands (type of second operand when first one is omitted) +(assert_invalid + (module (func (result i32) (unreachable) (select (i64.const 1) (i32.const 1)))) + "type mismatch" +) + + +;; select always has non-empty result +(assert_invalid + (module (func (unreachable) (select))) + "type mismatch" +) + +;; W2C2: No support for external references +;; (assert_invalid +;; (module (func $meet-bottom (param i32) (result externref) +;; (block $l1 (result externref) +;; (drop +;; (block $l2 (result i32) +;; (br_table $l2 $l1 $l2 (ref.null extern) (local.get 0)) +;; ) +;; ) +;; (ref.null extern) +;; ) +;; )) +;; "type mismatch" +;; ) + diff --git a/tests/unreached-valid.wast b/tests/unreached-valid.wast new file mode 100644 index 00000000..c68d8c01 --- /dev/null +++ b/tests/unreached-valid.wast @@ -0,0 +1,64 @@ +(module + + ;; Check that both sides of the select are evaluated + (func (export "select-trap-left") (param $cond i32) (result i32) + (select (unreachable) (i32.const 0) (local.get $cond)) + ) + (func (export "select-trap-right") (param $cond i32) (result i32) + (select (i32.const 0) (unreachable) (local.get $cond)) + ) + + (func (export "select-unreached") + (unreachable) (select) + (unreachable) (i32.const 0) (select) + (unreachable) (i32.const 0) (i32.const 0) (select) + (unreachable) (i32.const 0) (i32.const 0) (i32.const 0) (select) + (unreachable) (f32.const 0) (i32.const 0) (select) + (unreachable) + ) + + (func (export "select_unreached_result_1") (result i32) + (unreachable) (i32.add (select)) + ) + + (func (export "select_unreached_result_2") (result i64) + (unreachable) (i64.add (select (i64.const 0) (i32.const 0))) + ) + + (func (export "unreachable-num") + (unreachable) + (select) + (i32.eqz) + (drop) + ) + ;; W2C2: No support for reference types + ;; (func (export "unreachable-ref") + ;; (unreachable) + ;; (select) + ;; (ref.is_null) + ;; (drop) + ;; ) +) + +(assert_trap (invoke "select-trap-left" (i32.const 1)) "unreachable") +(assert_trap (invoke "select-trap-left" (i32.const 0)) "unreachable") +(assert_trap (invoke "select-trap-right" (i32.const 1)) "unreachable") +(assert_trap (invoke "select-trap-right" (i32.const 0)) "unreachable") + +;; Validation after unreachable + +(module + (func (export "meet-bottom") + (block (result f64) + (block (result f32) + (unreachable) + (br_table 0 1 1 (i32.const 1)) + ) + (drop) + (f64.const 0) + ) + (drop) + ) +) + +(assert_trap (invoke "meet-bottom") "unreachable") diff --git a/w2c2/reader.c b/w2c2/reader.c index 061cf47f..38529cd7 100644 --- a/w2c2/reader.c +++ b/w2c2/reader.c @@ -1527,14 +1527,14 @@ wasmReadDataSegment( WasmDataSegment* result, WasmModuleReaderError** error ) { - U8 kind = 0; + U32 kind = 0; bool readMemoryIndex = false; bool readOffsetExpression = false; U32 memoryIndex = 0; Buffer offset = {NULL, 0}; Buffer bytes = {NULL, 0}; - if (!bufferReadByte(&reader->buffer, &kind)) { + if (!leb128ReadU32(&reader->buffer, &kind)) { static WasmModuleReaderError wasmModuleReaderError = { wasmModuleReaderInvalidDataSectionKind }; @@ -1744,7 +1744,7 @@ wasmReadElementSegment( U32 functionIndexCount; U32* functionIndices; - /* Read element count */ + /* Read table index */ if (leb128ReadU32(&reader->buffer, &tableIndex) == 0) { static WasmModuleReaderError wasmModuleReaderError = { wasmModuleReaderInvalidElementSectionTableIndex