diff --git a/test/tmp/float_literals.txt b/test/tmp/float_literals.txt new file mode 100644 index 0000000000..87d0f549af --- /dev/null +++ b/test/tmp/float_literals.txt @@ -0,0 +1,317 @@ +;;; TOOL: run-interp-spec +;;; STDIN_FILE: test/tmp/float_literals.wast +(;; STDOUT ;;; +out/test/tmp/float_literals.wast:236: assert_malformed passed: + out/test/tmp/float_literals/float_literals.2.wat:1:24: error: unexpected token "_100", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const _100)) + ^^^^ +out/test/tmp/float_literals.wast:240: assert_malformed passed: + out/test/tmp/float_literals/float_literals.3.wat:1:24: error: unexpected token "+_100", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const +_100)) + ^^^^^ +out/test/tmp/float_literals.wast:244: assert_malformed passed: + out/test/tmp/float_literals/float_literals.4.wat:1:24: error: unexpected token "-_100", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const -_100)) + ^^^^^ +out/test/tmp/float_literals.wast:248: assert_malformed passed: + out/test/tmp/float_literals/float_literals.5.wat:1:24: error: unexpected token "99_", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 99_)) + ^^^ +out/test/tmp/float_literals.wast:252: assert_malformed passed: + out/test/tmp/float_literals/float_literals.6.wat:1:24: error: unexpected token "1__000", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 1__000)) + ^^^^^^ +out/test/tmp/float_literals.wast:256: assert_malformed passed: + out/test/tmp/float_literals/float_literals.7.wat:1:24: error: unexpected token "_1.0", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const _1.0)) + ^^^^ +out/test/tmp/float_literals.wast:260: assert_malformed passed: + out/test/tmp/float_literals/float_literals.8.wat:1:24: error: unexpected token "1.0_", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 1.0_)) + ^^^^ +out/test/tmp/float_literals.wast:264: assert_malformed passed: + out/test/tmp/float_literals/float_literals.9.wat:1:24: error: unexpected token "1_.0", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 1_.0)) + ^^^^ +out/test/tmp/float_literals.wast:268: assert_malformed passed: + out/test/tmp/float_literals/float_literals.10.wat:1:24: error: unexpected token "1._0", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 1._0)) + ^^^^ +out/test/tmp/float_literals.wast:272: assert_malformed passed: + out/test/tmp/float_literals/float_literals.11.wat:1:24: error: unexpected token "_1e1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const _1e1)) + ^^^^ +out/test/tmp/float_literals.wast:276: assert_malformed passed: + out/test/tmp/float_literals/float_literals.12.wat:1:24: error: unexpected token "1e1_", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 1e1_)) + ^^^^ +out/test/tmp/float_literals.wast:280: assert_malformed passed: + out/test/tmp/float_literals/float_literals.13.wat:1:24: error: unexpected token "1_e1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 1_e1)) + ^^^^ +out/test/tmp/float_literals.wast:284: assert_malformed passed: + out/test/tmp/float_literals/float_literals.14.wat:1:24: error: unexpected token "1e_1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 1e_1)) + ^^^^ +out/test/tmp/float_literals.wast:288: assert_malformed passed: + out/test/tmp/float_literals/float_literals.15.wat:1:24: error: unexpected token "_1.0e1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const _1.0e1)) + ^^^^^^ +out/test/tmp/float_literals.wast:292: assert_malformed passed: + out/test/tmp/float_literals/float_literals.16.wat:1:24: error: unexpected token "1.0e1_", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 1.0e1_)) + ^^^^^^ +out/test/tmp/float_literals.wast:296: assert_malformed passed: + out/test/tmp/float_literals/float_literals.17.wat:1:24: error: unexpected token "1.0_e1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 1.0_e1)) + ^^^^^^ +out/test/tmp/float_literals.wast:300: assert_malformed passed: + out/test/tmp/float_literals/float_literals.18.wat:1:24: error: unexpected token "1.0e_1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 1.0e_1)) + ^^^^^^ +out/test/tmp/float_literals.wast:304: assert_malformed passed: + out/test/tmp/float_literals/float_literals.19.wat:1:24: error: unexpected token "1.0e+_1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 1.0e+_1)) + ^^^^^^^ +out/test/tmp/float_literals.wast:308: assert_malformed passed: + out/test/tmp/float_literals/float_literals.20.wat:1:24: error: unexpected token "1.0e_+1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 1.0e_+1)) + ^^^^^^^ +out/test/tmp/float_literals.wast:312: assert_malformed passed: + out/test/tmp/float_literals/float_literals.21.wat:1:24: error: unexpected token "_0x100", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const _0x100)) + ^^^^^^ +out/test/tmp/float_literals.wast:316: assert_malformed passed: + out/test/tmp/float_literals/float_literals.22.wat:1:24: error: unexpected token "0_x100", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 0_x100)) + ^^^^^^ +out/test/tmp/float_literals.wast:320: assert_malformed passed: + out/test/tmp/float_literals/float_literals.23.wat:1:24: error: unexpected token "0x_100", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 0x_100)) + ^^^^^^ +out/test/tmp/float_literals.wast:324: assert_malformed passed: + out/test/tmp/float_literals/float_literals.24.wat:1:24: error: unexpected token "0x00_", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 0x00_)) + ^^^^^ +out/test/tmp/float_literals.wast:328: assert_malformed passed: + out/test/tmp/float_literals/float_literals.25.wat:1:24: error: unexpected token "0xff__ffff", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 0xff__ffff)) + ^^^^^^^^^^ +out/test/tmp/float_literals.wast:332: assert_malformed passed: + out/test/tmp/float_literals/float_literals.26.wat:1:24: error: unexpected token "0x_1.0", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 0x_1.0)) + ^^^^^^ +out/test/tmp/float_literals.wast:336: assert_malformed passed: + out/test/tmp/float_literals/float_literals.27.wat:1:24: error: unexpected token "0x1.0_", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 0x1.0_)) + ^^^^^^ +out/test/tmp/float_literals.wast:340: assert_malformed passed: + out/test/tmp/float_literals/float_literals.28.wat:1:24: error: unexpected token "0x1_.0", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 0x1_.0)) + ^^^^^^ +out/test/tmp/float_literals.wast:344: assert_malformed passed: + out/test/tmp/float_literals/float_literals.29.wat:1:24: error: unexpected token "0x1._0", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 0x1._0)) + ^^^^^^ +out/test/tmp/float_literals.wast:348: assert_malformed passed: + out/test/tmp/float_literals/float_literals.30.wat:1:24: error: unexpected token "0x_1p1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 0x_1p1)) + ^^^^^^ +out/test/tmp/float_literals.wast:352: assert_malformed passed: + out/test/tmp/float_literals/float_literals.31.wat:1:24: error: unexpected token "0x1p1_", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 0x1p1_)) + ^^^^^^ +out/test/tmp/float_literals.wast:356: assert_malformed passed: + out/test/tmp/float_literals/float_literals.32.wat:1:24: error: unexpected token "0x1_p1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 0x1_p1)) + ^^^^^^ +out/test/tmp/float_literals.wast:360: assert_malformed passed: + out/test/tmp/float_literals/float_literals.33.wat:1:24: error: unexpected token "0x1p_1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 0x1p_1)) + ^^^^^^ +out/test/tmp/float_literals.wast:364: assert_malformed passed: + out/test/tmp/float_literals/float_literals.34.wat:1:24: error: unexpected token "0x_1.0p1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 0x_1.0p1)) + ^^^^^^^^ +out/test/tmp/float_literals.wast:368: assert_malformed passed: + out/test/tmp/float_literals/float_literals.35.wat:1:24: error: unexpected token "0x1.0p1_", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 0x1.0p1_)) + ^^^^^^^^ +out/test/tmp/float_literals.wast:372: assert_malformed passed: + out/test/tmp/float_literals/float_literals.36.wat:1:24: error: unexpected token "0x1.0_p1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 0x1.0_p1)) + ^^^^^^^^ +out/test/tmp/float_literals.wast:376: assert_malformed passed: + out/test/tmp/float_literals/float_literals.37.wat:1:24: error: unexpected token "0x1.0p_1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 0x1.0p_1)) + ^^^^^^^^ +out/test/tmp/float_literals.wast:380: assert_malformed passed: + out/test/tmp/float_literals/float_literals.38.wat:1:24: error: unexpected token "0x1.0p+_1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 0x1.0p+_1)) + ^^^^^^^^^ +out/test/tmp/float_literals.wast:384: assert_malformed passed: + out/test/tmp/float_literals/float_literals.39.wat:1:24: error: unexpected token "0x1.0p_+1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f32 (f32.const 0x1.0p_+1)) + ^^^^^^^^^ +out/test/tmp/float_literals.wast:388: assert_malformed passed: + out/test/tmp/float_literals/float_literals.40.wat:1:24: error: invalid literal "nan:0x80_0000" + (global f32 (f32.const nan:0x80_0000)) + ^^^^^^^^^^^^^ +out/test/tmp/float_literals.wast:393: assert_malformed passed: + out/test/tmp/float_literals/float_literals.41.wat:1:24: error: unexpected token "_100", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const _100)) + ^^^^ +out/test/tmp/float_literals.wast:397: assert_malformed passed: + out/test/tmp/float_literals/float_literals.42.wat:1:24: error: unexpected token "+_100", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const +_100)) + ^^^^^ +out/test/tmp/float_literals.wast:401: assert_malformed passed: + out/test/tmp/float_literals/float_literals.43.wat:1:24: error: unexpected token "-_100", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const -_100)) + ^^^^^ +out/test/tmp/float_literals.wast:405: assert_malformed passed: + out/test/tmp/float_literals/float_literals.44.wat:1:24: error: unexpected token "99_", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 99_)) + ^^^ +out/test/tmp/float_literals.wast:409: assert_malformed passed: + out/test/tmp/float_literals/float_literals.45.wat:1:24: error: unexpected token "1__000", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 1__000)) + ^^^^^^ +out/test/tmp/float_literals.wast:413: assert_malformed passed: + out/test/tmp/float_literals/float_literals.46.wat:1:24: error: unexpected token "_1.0", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const _1.0)) + ^^^^ +out/test/tmp/float_literals.wast:417: assert_malformed passed: + out/test/tmp/float_literals/float_literals.47.wat:1:24: error: unexpected token "1.0_", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 1.0_)) + ^^^^ +out/test/tmp/float_literals.wast:421: assert_malformed passed: + out/test/tmp/float_literals/float_literals.48.wat:1:24: error: unexpected token "1_.0", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 1_.0)) + ^^^^ +out/test/tmp/float_literals.wast:425: assert_malformed passed: + out/test/tmp/float_literals/float_literals.49.wat:1:24: error: unexpected token "1._0", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 1._0)) + ^^^^ +out/test/tmp/float_literals.wast:429: assert_malformed passed: + out/test/tmp/float_literals/float_literals.50.wat:1:24: error: unexpected token "_1e1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const _1e1)) + ^^^^ +out/test/tmp/float_literals.wast:433: assert_malformed passed: + out/test/tmp/float_literals/float_literals.51.wat:1:24: error: unexpected token "1e1_", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 1e1_)) + ^^^^ +out/test/tmp/float_literals.wast:437: assert_malformed passed: + out/test/tmp/float_literals/float_literals.52.wat:1:24: error: unexpected token "1_e1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 1_e1)) + ^^^^ +out/test/tmp/float_literals.wast:441: assert_malformed passed: + out/test/tmp/float_literals/float_literals.53.wat:1:24: error: unexpected token "1e_1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 1e_1)) + ^^^^ +out/test/tmp/float_literals.wast:445: assert_malformed passed: + out/test/tmp/float_literals/float_literals.54.wat:1:24: error: unexpected token "_1.0e1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const _1.0e1)) + ^^^^^^ +out/test/tmp/float_literals.wast:449: assert_malformed passed: + out/test/tmp/float_literals/float_literals.55.wat:1:24: error: unexpected token "1.0e1_", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 1.0e1_)) + ^^^^^^ +out/test/tmp/float_literals.wast:453: assert_malformed passed: + out/test/tmp/float_literals/float_literals.56.wat:1:24: error: unexpected token "1.0_e1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 1.0_e1)) + ^^^^^^ +out/test/tmp/float_literals.wast:457: assert_malformed passed: + out/test/tmp/float_literals/float_literals.57.wat:1:24: error: unexpected token "1.0e_1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 1.0e_1)) + ^^^^^^ +out/test/tmp/float_literals.wast:461: assert_malformed passed: + out/test/tmp/float_literals/float_literals.58.wat:1:24: error: unexpected token "1.0e+_1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 1.0e+_1)) + ^^^^^^^ +out/test/tmp/float_literals.wast:465: assert_malformed passed: + out/test/tmp/float_literals/float_literals.59.wat:1:24: error: unexpected token "1.0e_+1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 1.0e_+1)) + ^^^^^^^ +out/test/tmp/float_literals.wast:469: assert_malformed passed: + out/test/tmp/float_literals/float_literals.60.wat:1:24: error: unexpected token "_0x100", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const _0x100)) + ^^^^^^ +out/test/tmp/float_literals.wast:473: assert_malformed passed: + out/test/tmp/float_literals/float_literals.61.wat:1:24: error: unexpected token "0_x100", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 0_x100)) + ^^^^^^ +out/test/tmp/float_literals.wast:477: assert_malformed passed: + out/test/tmp/float_literals/float_literals.62.wat:1:24: error: unexpected token "0x_100", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 0x_100)) + ^^^^^^ +out/test/tmp/float_literals.wast:481: assert_malformed passed: + out/test/tmp/float_literals/float_literals.63.wat:1:24: error: unexpected token "0x00_", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 0x00_)) + ^^^^^ +out/test/tmp/float_literals.wast:485: assert_malformed passed: + out/test/tmp/float_literals/float_literals.64.wat:1:24: error: unexpected token "0xff__ffff", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 0xff__ffff)) + ^^^^^^^^^^ +out/test/tmp/float_literals.wast:489: assert_malformed passed: + out/test/tmp/float_literals/float_literals.65.wat:1:24: error: unexpected token "0x_1.0", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 0x_1.0)) + ^^^^^^ +out/test/tmp/float_literals.wast:493: assert_malformed passed: + out/test/tmp/float_literals/float_literals.66.wat:1:24: error: unexpected token "0x1.0_", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 0x1.0_)) + ^^^^^^ +out/test/tmp/float_literals.wast:497: assert_malformed passed: + out/test/tmp/float_literals/float_literals.67.wat:1:24: error: unexpected token "0x1_.0", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 0x1_.0)) + ^^^^^^ +out/test/tmp/float_literals.wast:501: assert_malformed passed: + out/test/tmp/float_literals/float_literals.68.wat:1:24: error: unexpected token "0x1._0", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 0x1._0)) + ^^^^^^ +out/test/tmp/float_literals.wast:505: assert_malformed passed: + out/test/tmp/float_literals/float_literals.69.wat:1:24: error: unexpected token "0x_1p1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 0x_1p1)) + ^^^^^^ +out/test/tmp/float_literals.wast:509: assert_malformed passed: + out/test/tmp/float_literals/float_literals.70.wat:1:24: error: unexpected token "0x1p1_", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 0x1p1_)) + ^^^^^^ +out/test/tmp/float_literals.wast:513: assert_malformed passed: + out/test/tmp/float_literals/float_literals.71.wat:1:24: error: unexpected token "0x1_p1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 0x1_p1)) + ^^^^^^ +out/test/tmp/float_literals.wast:517: assert_malformed passed: + out/test/tmp/float_literals/float_literals.72.wat:1:24: error: unexpected token "0x1p_1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 0x1p_1)) + ^^^^^^ +out/test/tmp/float_literals.wast:521: assert_malformed passed: + out/test/tmp/float_literals/float_literals.73.wat:1:24: error: unexpected token "0x_1.0p1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 0x_1.0p1)) + ^^^^^^^^ +out/test/tmp/float_literals.wast:525: assert_malformed passed: + out/test/tmp/float_literals/float_literals.74.wat:1:24: error: unexpected token "0x1.0p1_", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 0x1.0p1_)) + ^^^^^^^^ +out/test/tmp/float_literals.wast:529: assert_malformed passed: + out/test/tmp/float_literals/float_literals.75.wat:1:24: error: unexpected token "0x1.0_p1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 0x1.0_p1)) + ^^^^^^^^ +out/test/tmp/float_literals.wast:533: assert_malformed passed: + out/test/tmp/float_literals/float_literals.76.wat:1:24: error: unexpected token "0x1.0p_1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 0x1.0p_1)) + ^^^^^^^^ +out/test/tmp/float_literals.wast:537: assert_malformed passed: + out/test/tmp/float_literals/float_literals.77.wat:1:24: error: unexpected token "0x1.0p+_1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 0x1.0p+_1)) + ^^^^^^^^^ +out/test/tmp/float_literals.wast:541: assert_malformed passed: + out/test/tmp/float_literals/float_literals.78.wat:1:24: error: unexpected token "0x1.0p_+1", expected a numeric literal (e.g. 123, -45, 6.7e8). + (global f64 (f64.const 0x1.0p_+1)) + ^^^^^^^^^ +out/test/tmp/float_literals.wast:545: assert_malformed passed: + out/test/tmp/float_literals/float_literals.79.wat:1:24: error: invalid literal "nan:0x10_0000_0000_0000" + (global f64 (f64.const nan:0x10_0000_0000_0000)) + ^^^^^^^^^^^^^^^^^^^^^^^ +179/179 tests passed. +;;; STDOUT ;;) diff --git a/test/tmp/float_literals.wast b/test/tmp/float_literals.wast new file mode 100644 index 0000000000..9f6fa55ad3 --- /dev/null +++ b/test/tmp/float_literals.wast @@ -0,0 +1,547 @@ +;; Test floating-point literal parsing. + +(module + ;; f32 special values + (func (export "f32.nan") (result i32) (i32.reinterpret_f32 (f32.const nan))) + (func (export "f32.positive_nan") (result i32) (i32.reinterpret_f32 (f32.const +nan))) + (func (export "f32.negative_nan") (result i32) (i32.reinterpret_f32 (f32.const -nan))) + (func (export "f32.plain_nan") (result i32) (i32.reinterpret_f32 (f32.const nan:0x400000))) + (func (export "f32.informally_known_as_plain_snan") (result i32) (i32.reinterpret_f32 (f32.const nan:0x200000))) + (func (export "f32.all_ones_nan") (result i32) (i32.reinterpret_f32 (f32.const -nan:0x7fffff))) + (func (export "f32.misc_nan") (result i32) (i32.reinterpret_f32 (f32.const nan:0x012345))) + (func (export "f32.misc_positive_nan") (result i32) (i32.reinterpret_f32 (f32.const +nan:0x304050))) + (func (export "f32.misc_negative_nan") (result i32) (i32.reinterpret_f32 (f32.const -nan:0x2abcde))) + (func (export "f32.infinity") (result i32) (i32.reinterpret_f32 (f32.const inf))) + (func (export "f32.positive_infinity") (result i32) (i32.reinterpret_f32 (f32.const +inf))) + (func (export "f32.negative_infinity") (result i32) (i32.reinterpret_f32 (f32.const -inf))) + + ;; f32 numbers + (func (export "f32.zero") (result i32) (i32.reinterpret_f32 (f32.const 0x0.0p0))) + (func (export "f32.positive_zero") (result i32) (i32.reinterpret_f32 (f32.const +0x0.0p0))) + (func (export "f32.negative_zero") (result i32) (i32.reinterpret_f32 (f32.const -0x0.0p0))) + (func (export "f32.misc") (result i32) (i32.reinterpret_f32 (f32.const 0x1.921fb6p+2))) + (func (export "f32.min_positive") (result i32) (i32.reinterpret_f32 (f32.const 0x1p-149))) + (func (export "f32.min_normal") (result i32) (i32.reinterpret_f32 (f32.const 0x1p-126))) + (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))) + (func (export "f32_dec.positive_zero") (result i32) (i32.reinterpret_f32 (f32.const +0.0e0))) + (func (export "f32_dec.negative_zero") (result i32) (i32.reinterpret_f32 (f32.const -0.0e0))) + (func (export "f32_dec.misc") (result i32) (i32.reinterpret_f32 (f32.const 6.28318548202514648))) + (func (export "f32_dec.min_positive") (result i32) (i32.reinterpret_f32 (f32.const 1.4013e-45))) + (func (export "f32_dec.min_normal") (result i32) (i32.reinterpret_f32 (f32.const 1.1754944e-38))) + (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))) + + ;; f64 special values + (func (export "f64.nan") (result i64) (i64.reinterpret_f64 (f64.const nan))) + (func (export "f64.positive_nan") (result i64) (i64.reinterpret_f64 (f64.const +nan))) + (func (export "f64.negative_nan") (result i64) (i64.reinterpret_f64 (f64.const -nan))) + (func (export "f64.plain_nan") (result i64) (i64.reinterpret_f64 (f64.const nan:0x8000000000000))) + (func (export "f64.informally_known_as_plain_snan") (result i64) (i64.reinterpret_f64 (f64.const nan:0x4000000000000))) + (func (export "f64.all_ones_nan") (result i64) (i64.reinterpret_f64 (f64.const -nan:0xfffffffffffff))) + (func (export "f64.misc_nan") (result i64) (i64.reinterpret_f64 (f64.const nan:0x0123456789abc))) + (func (export "f64.misc_positive_nan") (result i64) (i64.reinterpret_f64 (f64.const +nan:0x3040506070809))) + (func (export "f64.misc_negative_nan") (result i64) (i64.reinterpret_f64 (f64.const -nan:0x2abcdef012345))) + (func (export "f64.infinity") (result i64) (i64.reinterpret_f64 (f64.const inf))) + (func (export "f64.positive_infinity") (result i64) (i64.reinterpret_f64 (f64.const +inf))) + (func (export "f64.negative_infinity") (result i64) (i64.reinterpret_f64 (f64.const -inf))) + + ;; f64 numbers + (func (export "f64.zero") (result i64) (i64.reinterpret_f64 (f64.const 0x0.0p0))) + (func (export "f64.positive_zero") (result i64) (i64.reinterpret_f64 (f64.const +0x0.0p0))) + (func (export "f64.negative_zero") (result i64) (i64.reinterpret_f64 (f64.const -0x0.0p0))) + (func (export "f64.misc") (result i64) (i64.reinterpret_f64 (f64.const 0x1.921fb54442d18p+2))) + (func (export "f64.min_positive") (result i64) (i64.reinterpret_f64 (f64.const 0x0.0000000000001p-1022))) + (func (export "f64.min_normal") (result i64) (i64.reinterpret_f64 (f64.const 0x1p-1022))) + (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))) + (func (export "f64_dec.positive_zero") (result i64) (i64.reinterpret_f64 (f64.const +0.0e0))) + (func (export "f64_dec.negative_zero") (result i64) (i64.reinterpret_f64 (f64.const -0.0e0))) + (func (export "f64_dec.misc") (result i64) (i64.reinterpret_f64 (f64.const 6.28318530717958623))) + (func (export "f64_dec.min_positive") (result i64) (i64.reinterpret_f64 (f64.const 4.94066e-324))) + (func (export "f64_dec.min_normal") (result i64) (i64.reinterpret_f64 (f64.const 2.2250738585072012e-308))) + (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))) + + (func (export "f32-dec-sep1") (result f32) (f32.const 1_000_000)) + (func (export "f32-dec-sep2") (result f32) (f32.const 1_0_0_0)) + (func (export "f32-dec-sep3") (result f32) (f32.const 100_3.141_592)) + (func (export "f32-dec-sep4") (result f32) (f32.const 99e+1_3)) + (func (export "f32-dec-sep5") (result f32) (f32.const 122_000.11_3_54E0_2_3)) + (func (export "f32-hex-sep1") (result f32) (f32.const 0xa_0f_00_99)) + (func (export "f32-hex-sep2") (result f32) (f32.const 0x1_a_A_0_f)) + (func (export "f32-hex-sep3") (result f32) (f32.const 0xa0_ff.f141_a59a)) + (func (export "f32-hex-sep4") (result f32) (f32.const 0xf0P+1_3)) + (func (export "f32-hex-sep5") (result f32) (f32.const 0x2a_f00a.1f_3_eep2_3)) + + (func (export "f64-dec-sep1") (result f64) (f64.const 1_000_000)) + (func (export "f64-dec-sep2") (result f64) (f64.const 1_0_0_0)) + (func (export "f64-dec-sep3") (result f64) (f64.const 100_3.141_592)) + (func (export "f64-dec-sep4") (result f64) (f64.const 99e-1_23)) + (func (export "f64-dec-sep5") (result f64) (f64.const 122_000.11_3_54e0_2_3)) + (func (export "f64-hex-sep1") (result f64) (f64.const 0xa_f00f_0000_9999)) + (func (export "f64-hex-sep2") (result f64) (f64.const 0x1_a_A_0_f)) + (func (export "f64-hex-sep3") (result f64) (f64.const 0xa0_ff.f141_a59a)) + (func (export "f64-hex-sep4") (result f64) (f64.const 0xf0P+1_3)) + (func (export "f64-hex-sep5") (result f64) (f64.const 0x2a_f00a.1f_3_eep2_3)) +) + +(assert_return (invoke "f32.nan") (i32.const 0x7fc00000)) +(assert_return (invoke "f32.positive_nan") (i32.const 0x7fc00000)) +(assert_return (invoke "f32.negative_nan") (i32.const 0xffc00000)) +(assert_return (invoke "f32.plain_nan") (i32.const 0x7fc00000)) +(assert_return (invoke "f32.informally_known_as_plain_snan") (i32.const 0x7fa00000)) +(assert_return (invoke "f32.all_ones_nan") (i32.const 0xffffffff)) +(assert_return (invoke "f32.misc_nan") (i32.const 0x7f812345)) +(assert_return (invoke "f32.misc_positive_nan") (i32.const 0x7fb04050)) +(assert_return (invoke "f32.misc_negative_nan") (i32.const 0xffaabcde)) +(assert_return (invoke "f32.infinity") (i32.const 0x7f800000)) +(assert_return (invoke "f32.positive_infinity") (i32.const 0x7f800000)) +(assert_return (invoke "f32.negative_infinity") (i32.const 0xff800000)) +(assert_return (invoke "f32.zero") (i32.const 0)) +(assert_return (invoke "f32.positive_zero") (i32.const 0)) +(assert_return (invoke "f32.negative_zero") (i32.const 0x80000000)) +(assert_return (invoke "f32.misc") (i32.const 0x40c90fdb)) +(assert_return (invoke "f32.min_positive") (i32.const 1)) +(assert_return (invoke "f32.min_normal") (i32.const 0x800000)) +(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)) +(assert_return (invoke "f32_dec.misc") (i32.const 0x40c90fdb)) +(assert_return (invoke "f32_dec.min_positive") (i32.const 1)) +(assert_return (invoke "f32_dec.min_normal") (i32.const 0x800000)) +(assert_return (invoke "f32_dec.max_subnormal") (i32.const 0x7fffff)) +(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)) + +(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)) +(assert_return (invoke "f64.misc_negative_nan") (i64.const 0xfff2abcdef012345)) +(assert_return (invoke "f64.infinity") (i64.const 0x7ff0000000000000)) +(assert_return (invoke "f64.positive_infinity") (i64.const 0x7ff0000000000000)) +(assert_return (invoke "f64.negative_infinity") (i64.const 0xfff0000000000000)) +(assert_return (invoke "f64.zero") (i64.const 0)) +(assert_return (invoke "f64.positive_zero") (i64.const 0)) +(assert_return (invoke "f64.negative_zero") (i64.const 0x8000000000000000)) +(assert_return (invoke "f64.misc") (i64.const 0x401921fb54442d18)) +(assert_return (invoke "f64.min_positive") (i64.const 1)) +(assert_return (invoke "f64.min_normal") (i64.const 0x10000000000000)) +(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)) +(assert_return (invoke "f64_dec.misc") (i64.const 0x401921fb54442d18)) +(assert_return (invoke "f64_dec.min_positive") (i64.const 1)) +(assert_return (invoke "f64_dec.min_normal") (i64.const 0x10000000000000)) +(assert_return (invoke "f64_dec.max_subnormal") (i64.const 0xfffffffffffff)) +(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)) +(assert_return (invoke "f32-dec-sep3") (f32.const 1003.141592)) +(assert_return (invoke "f32-dec-sep4") (f32.const 99e+13)) +(assert_return (invoke "f32-dec-sep5") (f32.const 122000.11354e23)) +(assert_return (invoke "f32-hex-sep1") (f32.const 0xa0f0099)) +(assert_return (invoke "f32-hex-sep2") (f32.const 0x1aa0f)) +(assert_return (invoke "f32-hex-sep3") (f32.const 0xa0ff.f141a59a)) +(assert_return (invoke "f32-hex-sep4") (f32.const 0xf0P+13)) +(assert_return (invoke "f32-hex-sep5") (f32.const 0x2af00a.1f3eep23)) + +(assert_return (invoke "f64-dec-sep1") (f64.const 1000000)) +(assert_return (invoke "f64-dec-sep2") (f64.const 1000)) +(assert_return (invoke "f64-dec-sep3") (f64.const 1003.141592)) +(assert_return (invoke "f64-dec-sep4") (f64.const 99e-123)) +(assert_return (invoke "f64-dec-sep5") (f64.const 122000.11354e23)) +(assert_return (invoke "f64-hex-sep1") (f64.const 0xaf00f00009999)) +(assert_return (invoke "f64-hex-sep2") (f64.const 0x1aa0f)) +(assert_return (invoke "f64-hex-sep3") (f64.const 0xa0ff.f141a59a)) +(assert_return (invoke "f64-hex-sep4") (f64.const 0xf0P+13)) +(assert_return (invoke "f64-hex-sep5") (f64.const 0x2af00a.1f3eep23)) + +;; Test parsing a float from binary +(module binary + ;; (func (export "4294967249") (result f64) (f64.const 4294967249)) + "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60" + "\00\01\7c\03\82\80\80\80\00\01\00\07\8e\80\80\80" + "\00\01\0a\34\32\39\34\39\36\37\32\34\39\00\00\0a" + "\91\80\80\80\00\01\8b\80\80\80\00\00\44\00\00\20" + "\fa\ff\ff\ef\41\0b" +) + +(assert_return (invoke "4294967249") (f64.const 4294967249)) + +(assert_malformed + (module quote "(global f32 (f32.const _100))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const +_100))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const -_100))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 99_))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 1__000))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const _1.0))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 1.0_))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 1_.0))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 1._0))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const _1e1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 1e1_))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 1_e1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 1e_1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const _1.0e1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 1.0e1_))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 1.0_e1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 1.0e_1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 1.0e+_1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 1.0e_+1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const _0x100))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 0_x100))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 0x_100))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 0x00_))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 0xff__ffff))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 0x_1.0))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 0x1.0_))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 0x1_.0))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 0x1._0))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 0x_1p1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 0x1p1_))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 0x1_p1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 0x1p_1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 0x_1.0p1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 0x1.0p1_))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 0x1.0_p1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 0x1.0p_1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f32 (f32.const 0x1.0p+_1))") + "unknown operator" +) +(assert_malformed + (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))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const +_100))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const -_100))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 99_))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 1__000))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const _1.0))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 1.0_))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 1_.0))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 1._0))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const _1e1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 1e1_))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 1_e1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 1e_1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const _1.0e1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 1.0e1_))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 1.0_e1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 1.0e_1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 1.0e+_1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 1.0e_+1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const _0x100))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 0_x100))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 0x_100))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 0x00_))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 0xff__ffff))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 0x_1.0))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 0x1.0_))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 0x1_.0))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 0x1._0))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 0x_1p1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 0x1p1_))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 0x1_p1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 0x1p_1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 0x_1.0p1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 0x1.0p1_))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 0x1.0_p1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 0x1.0p_1))") + "unknown operator" +) +(assert_malformed + (module quote "(global f64 (f64.const 0x1.0p+_1))") + "unknown operator" +) +(assert_malformed + (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/test/tmp/flw2c.txt b/test/tmp/flw2c.txt new file mode 100644 index 0000000000..5934b804c4 --- /dev/null +++ b/test/tmp/flw2c.txt @@ -0,0 +1,5 @@ +;;; TOOL: run-spec-wasm2c +;;; STDIN_FILE: test/tmp/float_literals.wast +(;; STDOUT ;;; +99/99 tests passed. +;;; STDOUT ;;)