github.com/tetratelabs/wazero@v1.2.1/internal/integration_test/spectest/v1/testdata/const.wast (about)

     1  ;; Test t.const instructions
     2  
     3  ;; Syntax error
     4  
     5  (module (func (i32.const 0xffffffff) drop))
     6  (module (func (i32.const -0x80000000) drop))
     7  (assert_malformed
     8    (module quote "(func (i32.const 0x100000000) drop)")
     9    "constant out of range"
    10  )
    11  (assert_malformed
    12    (module quote "(func (i32.const -0x80000001) drop)")
    13    "constant out of range"
    14  )
    15  
    16  (module (func (i32.const 4294967295) drop))
    17  (module (func (i32.const -2147483648) drop))
    18  (assert_malformed
    19    (module quote "(func (i32.const 4294967296) drop)")
    20    "constant out of range"
    21  )
    22  (assert_malformed
    23    (module quote "(func (i32.const -2147483649) drop)")
    24    "constant out of range"
    25  )
    26  
    27  (module (func (i64.const 0xffffffffffffffff) drop))
    28  (module (func (i64.const -0x8000000000000000) drop))
    29  (assert_malformed
    30    (module quote "(func (i64.const 0x10000000000000000) drop)")
    31    "constant out of range"
    32  )
    33  (assert_malformed
    34    (module quote "(func (i64.const -0x8000000000000001) drop)")
    35    "constant out of range"
    36  )
    37  
    38  (module (func (i64.const 18446744073709551615) drop))
    39  (module (func (i64.const -9223372036854775808) drop))
    40  (assert_malformed
    41    (module quote "(func (i64.const 18446744073709551616) drop)")
    42    "constant out of range"
    43  )
    44  (assert_malformed
    45    (module quote "(func (i64.const -9223372036854775809) drop)")
    46    "constant out of range"
    47  )
    48  
    49  (module (func (f32.const 0x1p127) drop))
    50  (module (func (f32.const -0x1p127) drop))
    51  (module (func (f32.const 0x1.fffffep127) drop))
    52  (module (func (f32.const -0x1.fffffep127) drop))
    53  (module (func (f32.const 0x1.fffffe7p127) drop))
    54  (module (func (f32.const -0x1.fffffe7p127) drop))
    55  (module (func (f32.const 0x1.fffffefffffff8000000p127) drop))
    56  (module (func (f32.const -0x1.fffffefffffff8000000p127) drop))
    57  (module (func (f32.const 0x1.fffffefffffffffffffp127) drop))
    58  (module (func (f32.const -0x1.fffffefffffffffffffp127) drop))
    59  (assert_malformed
    60    (module quote "(func (f32.const 0x1p128) drop)")
    61    "constant out of range"
    62  )
    63  (assert_malformed
    64    (module quote "(func (f32.const -0x1p128) drop)")
    65    "constant out of range"
    66  )
    67  (assert_malformed
    68    (module quote "(func (f32.const 0x1.ffffffp127) drop)")
    69    "constant out of range"
    70  )
    71  (assert_malformed
    72    (module quote "(func (f32.const -0x1.ffffffp127) drop)")
    73    "constant out of range"
    74  )
    75  
    76  (module (func (f32.const 1e38) drop))
    77  (module (func (f32.const -1e38) drop))
    78  (assert_malformed
    79    (module quote "(func (f32.const 1e39) drop)")
    80    "constant out of range"
    81  )
    82  (assert_malformed
    83    (module quote "(func (f32.const -1e39) drop)")
    84    "constant out of range"
    85  )
    86  
    87  (module (func (f32.const 340282356779733623858607532500980858880) drop))
    88  (module (func (f32.const -340282356779733623858607532500980858880) drop))
    89  (assert_malformed
    90    (module quote "(func (f32.const 340282356779733661637539395458142568448) drop)")
    91    "constant out of range"
    92  )
    93  (assert_malformed
    94    (module quote "(func (f32.const -340282356779733661637539395458142568448) drop)")
    95    "constant out of range"
    96  )
    97  
    98  (module (func (f64.const 0x1p1023) drop))
    99  (module (func (f64.const -0x1p1023) drop))
   100  (module (func (f64.const 0x1.fffffffffffffp1023) drop))
   101  (module (func (f64.const -0x1.fffffffffffffp1023) drop))
   102  (module (func (f64.const 0x1.fffffffffffff7p1023) drop))
   103  (module (func (f64.const -0x1.fffffffffffff7p1023) drop))
   104  (module (func (f64.const 0x1.fffffffffffff7ffffffp1023) drop))
   105  (module (func (f64.const -0x1.fffffffffffff7ffffffp1023) drop))
   106  (assert_malformed
   107    (module quote "(func (f64.const 0x1p1024) drop)")
   108    "constant out of range"
   109  )
   110  (assert_malformed
   111    (module quote "(func (f64.const -0x1p1024) drop)")
   112    "constant out of range"
   113  )
   114  (assert_malformed
   115    (module quote "(func (f64.const 0x1.fffffffffffff8p1023) drop)")
   116    "constant out of range"
   117  )
   118  (assert_malformed
   119    (module quote "(func (f64.const -0x1.fffffffffffff8p1023) drop)")
   120    "constant out of range"
   121  )
   122  
   123  (module (func (f64.const 1e308) drop))
   124  (module (func (f64.const -1e308) drop))
   125  (assert_malformed
   126    (module quote "(func (f64.const 1e309) drop)")
   127    "constant out of range"
   128  )
   129  (assert_malformed
   130    (module quote "(func (f64.const -1e309) drop)")
   131    "constant out of range"
   132  )
   133  
   134  (module (func (f64.const 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368) drop))
   135  (module (func (f64.const -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368) drop))
   136  (assert_malformed
   137    (module quote "(func (f64.const 269653970229347356221791135597556535197105851288767494898376215204735891170042808140884337949150317257310688430271573696351481990334196274152701320055306275479074865864826923114368235135583993416113802762682700913456874855354834422248712838998185022412196739306217084753107265771378949821875606039276187287552) drop)")
   138    "constant out of range"
   139  )
   140  (assert_malformed
   141    (module quote "(func (f64.const -269653970229347356221791135597556535197105851288767494898376215204735891170042808140884337949150317257310688430271573696351481990334196274152701320055306275479074865864826923114368235135583993416113802762682700913456874855354834422248712838998185022412196739306217084753107265771378949821875606039276187287552) drop)")
   142    "constant out of range"
   143  )
   144  
   145  (module (func (f32.const nan:0x1) drop))
   146  (module (func (f64.const nan:0x1) drop))
   147  (module (func (f32.const nan:0x7f_ffff) drop))
   148  (module (func (f64.const nan:0xf_ffff_ffff_ffff) drop))
   149  
   150  (assert_malformed
   151    (module quote "(func (f32.const nan:1) drop)")
   152    "unknown operator"
   153  )
   154  (assert_malformed
   155    (module quote "(func (f64.const nan:1) drop)")
   156    "unknown operator"
   157  )
   158  
   159  (assert_malformed
   160    (module quote "(func (f32.const nan:0x0) drop)")
   161    "constant out of range"
   162  )
   163  (assert_malformed
   164    (module quote "(func (f64.const nan:0x0) drop)")
   165    "constant out of range"
   166  )
   167  
   168  (assert_malformed
   169    (module quote "(func (f32.const nan:0x80_0000) drop)")
   170    "constant out of range"
   171  )
   172  (assert_malformed
   173    (module quote "(func (f64.const nan:0x10_0000_0000_0000) drop)")
   174    "constant out of range"
   175  )
   176  
   177  
   178  ;; Rounding behaviour
   179  
   180  ;; f32, small exponent
   181  (module (func (export "f") (result f32) (f32.const +0x1.00000100000000000p-50)))
   182  (assert_return (invoke "f") (f32.const +0x1.000000p-50))
   183  (module (func (export "f") (result f32) (f32.const -0x1.00000100000000000p-50)))
   184  (assert_return (invoke "f") (f32.const -0x1.000000p-50))
   185  (module (func (export "f") (result f32) (f32.const +0x1.00000100000000001p-50)))
   186  (assert_return (invoke "f") (f32.const +0x1.000002p-50))
   187  (module (func (export "f") (result f32) (f32.const -0x1.00000100000000001p-50)))
   188  (assert_return (invoke "f") (f32.const -0x1.000002p-50))
   189  (module (func (export "f") (result f32) (f32.const +0x1.000001fffffffffffp-50)))
   190  (assert_return (invoke "f") (f32.const +0x1.000002p-50))
   191  (module (func (export "f") (result f32) (f32.const -0x1.000001fffffffffffp-50)))
   192  (assert_return (invoke "f") (f32.const -0x1.000002p-50))
   193  (module (func (export "f") (result f32) (f32.const +0x1.00000200000000000p-50)))
   194  (assert_return (invoke "f") (f32.const +0x1.000002p-50))
   195  (module (func (export "f") (result f32) (f32.const -0x1.00000200000000000p-50)))
   196  (assert_return (invoke "f") (f32.const -0x1.000002p-50))
   197  (module (func (export "f") (result f32) (f32.const +0x1.00000200000000001p-50)))
   198  (assert_return (invoke "f") (f32.const +0x1.000002p-50))
   199  (module (func (export "f") (result f32) (f32.const -0x1.00000200000000001p-50)))
   200  (assert_return (invoke "f") (f32.const -0x1.000002p-50))
   201  (module (func (export "f") (result f32) (f32.const +0x1.000002fffffffffffp-50)))
   202  (assert_return (invoke "f") (f32.const +0x1.000002p-50))
   203  (module (func (export "f") (result f32) (f32.const -0x1.000002fffffffffffp-50)))
   204  (assert_return (invoke "f") (f32.const -0x1.000002p-50))
   205  (module (func (export "f") (result f32) (f32.const +0x1.00000300000000000p-50)))
   206  (assert_return (invoke "f") (f32.const +0x1.000004p-50))
   207  (module (func (export "f") (result f32) (f32.const -0x1.00000300000000000p-50)))
   208  (assert_return (invoke "f") (f32.const -0x1.000004p-50))
   209  (module (func (export "f") (result f32) (f32.const +0x1.00000300000000001p-50)))
   210  (assert_return (invoke "f") (f32.const +0x1.000004p-50))
   211  (module (func (export "f") (result f32) (f32.const -0x1.00000300000000001p-50)))
   212  (assert_return (invoke "f") (f32.const -0x1.000004p-50))
   213  (module (func (export "f") (result f32) (f32.const +0x1.000003fffffffffffp-50)))
   214  (assert_return (invoke "f") (f32.const +0x1.000004p-50))
   215  (module (func (export "f") (result f32) (f32.const -0x1.000003fffffffffffp-50)))
   216  (assert_return (invoke "f") (f32.const -0x1.000004p-50))
   217  (module (func (export "f") (result f32) (f32.const +0x1.00000400000000000p-50)))
   218  (assert_return (invoke "f") (f32.const +0x1.000004p-50))
   219  (module (func (export "f") (result f32) (f32.const -0x1.00000400000000000p-50)))
   220  (assert_return (invoke "f") (f32.const -0x1.000004p-50))
   221  (module (func (export "f") (result f32) (f32.const +0x1.00000400000000001p-50)))
   222  (assert_return (invoke "f") (f32.const +0x1.000004p-50))
   223  (module (func (export "f") (result f32) (f32.const -0x1.00000400000000001p-50)))
   224  (assert_return (invoke "f") (f32.const -0x1.000004p-50))
   225  (module (func (export "f") (result f32) (f32.const +0x1.000004fffffffffffp-50)))
   226  (assert_return (invoke "f") (f32.const +0x1.000004p-50))
   227  (module (func (export "f") (result f32) (f32.const -0x1.000004fffffffffffp-50)))
   228  (assert_return (invoke "f") (f32.const -0x1.000004p-50))
   229  (module (func (export "f") (result f32) (f32.const +0x1.00000500000000000p-50)))
   230  (assert_return (invoke "f") (f32.const +0x1.000004p-50))
   231  (module (func (export "f") (result f32) (f32.const -0x1.00000500000000000p-50)))
   232  (assert_return (invoke "f") (f32.const -0x1.000004p-50))
   233  (module (func (export "f") (result f32) (f32.const +0x1.00000500000000001p-50)))
   234  (assert_return (invoke "f") (f32.const +0x1.000006p-50))
   235  (module (func (export "f") (result f32) (f32.const -0x1.00000500000000001p-50)))
   236  (assert_return (invoke "f") (f32.const -0x1.000006p-50))
   237  
   238  (module (func (export "f") (result f32) (f32.const +0x4000.004000000p-64)))
   239  (assert_return (invoke "f") (f32.const +0x1.000000p-50))
   240  (module (func (export "f") (result f32) (f32.const -0x4000.004000000p-64)))
   241  (assert_return (invoke "f") (f32.const -0x1.000000p-50))
   242  (module (func (export "f") (result f32) (f32.const +0x4000.004000001p-64)))
   243  (assert_return (invoke "f") (f32.const +0x1.000002p-50))
   244  (module (func (export "f") (result f32) (f32.const -0x4000.004000001p-64)))
   245  (assert_return (invoke "f") (f32.const -0x1.000002p-50))
   246  (module (func (export "f") (result f32) (f32.const +0x4000.007ffffffp-64)))
   247  (assert_return (invoke "f") (f32.const +0x1.000002p-50))
   248  (module (func (export "f") (result f32) (f32.const -0x4000.007ffffffp-64)))
   249  (assert_return (invoke "f") (f32.const -0x1.000002p-50))
   250  (module (func (export "f") (result f32) (f32.const +0x4000.008000000p-64)))
   251  (assert_return (invoke "f") (f32.const +0x1.000002p-50))
   252  (module (func (export "f") (result f32) (f32.const -0x4000.008000000p-64)))
   253  (assert_return (invoke "f") (f32.const -0x1.000002p-50))
   254  (module (func (export "f") (result f32) (f32.const +0x4000.008000001p-64)))
   255  (assert_return (invoke "f") (f32.const +0x1.000002p-50))
   256  (module (func (export "f") (result f32) (f32.const -0x4000.008000001p-64)))
   257  (assert_return (invoke "f") (f32.const -0x1.000002p-50))
   258  (module (func (export "f") (result f32) (f32.const +0x4000.00bffffffp-64)))
   259  (assert_return (invoke "f") (f32.const +0x1.000002p-50))
   260  (module (func (export "f") (result f32) (f32.const -0x4000.00bffffffp-64)))
   261  (assert_return (invoke "f") (f32.const -0x1.000002p-50))
   262  (module (func (export "f") (result f32) (f32.const +0x4000.00c000000p-64)))
   263  (assert_return (invoke "f") (f32.const +0x1.000004p-50))
   264  (module (func (export "f") (result f32) (f32.const -0x4000.00c000000p-64)))
   265  (assert_return (invoke "f") (f32.const -0x1.000004p-50))
   266  (module (func (export "f") (result f32) (f32.const +0x4000.00c000001p-64)))
   267  (assert_return (invoke "f") (f32.const +0x1.000004p-50))
   268  (module (func (export "f") (result f32) (f32.const -0x4000.00c000001p-64)))
   269  (assert_return (invoke "f") (f32.const -0x1.000004p-50))
   270  (module (func (export "f") (result f32) (f32.const +0x4000.00fffffffp-64)))
   271  (assert_return (invoke "f") (f32.const +0x1.000004p-50))
   272  (module (func (export "f") (result f32) (f32.const -0x4000.00fffffffp-64)))
   273  (assert_return (invoke "f") (f32.const -0x1.000004p-50))
   274  (module (func (export "f") (result f32) (f32.const +0x4000.010000001p-64)))
   275  (assert_return (invoke "f") (f32.const +0x1.000004p-50))
   276  (module (func (export "f") (result f32) (f32.const -0x4000.010000001p-64)))
   277  (assert_return (invoke "f") (f32.const -0x1.000004p-50))
   278  (module (func (export "f") (result f32) (f32.const +0x4000.013ffffffp-64)))
   279  (assert_return (invoke "f") (f32.const +0x1.000004p-50))
   280  (module (func (export "f") (result f32) (f32.const -0x4000.013ffffffp-64)))
   281  (assert_return (invoke "f") (f32.const -0x1.000004p-50))
   282  (module (func (export "f") (result f32) (f32.const +0x4000.014000001p-64)))
   283  (assert_return (invoke "f") (f32.const +0x1.000006p-50))
   284  (module (func (export "f") (result f32) (f32.const -0x4000.014000001p-64)))
   285  (assert_return (invoke "f") (f32.const -0x1.000006p-50))
   286  
   287  (module (func (export "f") (result f32) (f32.const +8.8817847263968443573e-16)))
   288  (assert_return (invoke "f") (f32.const +0x1.000000p-50))
   289  (module (func (export "f") (result f32) (f32.const -8.8817847263968443573e-16)))
   290  (assert_return (invoke "f") (f32.const -0x1.000000p-50))
   291  (module (func (export "f") (result f32) (f32.const +8.8817847263968443574e-16)))
   292  (assert_return (invoke "f") (f32.const +0x1.000002p-50))
   293  (module (func (export "f") (result f32) (f32.const -8.8817847263968443574e-16)))
   294  (assert_return (invoke "f") (f32.const -0x1.000002p-50))
   295  (module (func (export "f") (result f32) (f32.const +8.8817857851880284252e-16)))
   296  (assert_return (invoke "f") (f32.const +0x1.000002p-50))
   297  (module (func (export "f") (result f32) (f32.const -8.8817857851880284252e-16)))
   298  (assert_return (invoke "f") (f32.const -0x1.000002p-50))
   299  (module (func (export "f") (result f32) (f32.const +8.8817857851880284253e-16)))
   300  (assert_return (invoke "f") (f32.const +0x1.000004p-50))
   301  (module (func (export "f") (result f32) (f32.const -8.8817857851880284253e-16)))
   302  (assert_return (invoke "f") (f32.const -0x1.000004p-50))
   303  
   304  ;; f32, large exponent
   305  (module (func (export "f") (result f32) (f32.const +0x1.00000100000000000p+50)))
   306  (assert_return (invoke "f") (f32.const +0x1.000000p+50))
   307  (module (func (export "f") (result f32) (f32.const -0x1.00000100000000000p+50)))
   308  (assert_return (invoke "f") (f32.const -0x1.000000p+50))
   309  (module (func (export "f") (result f32) (f32.const +0x1.00000100000000001p+50)))
   310  (assert_return (invoke "f") (f32.const +0x1.000002p+50))
   311  (module (func (export "f") (result f32) (f32.const -0x1.00000100000000001p+50)))
   312  (assert_return (invoke "f") (f32.const -0x1.000002p+50))
   313  (module (func (export "f") (result f32) (f32.const +0x1.000001fffffffffffp+50)))
   314  (assert_return (invoke "f") (f32.const +0x1.000002p+50))
   315  (module (func (export "f") (result f32) (f32.const -0x1.000001fffffffffffp+50)))
   316  (assert_return (invoke "f") (f32.const -0x1.000002p+50))
   317  (module (func (export "f") (result f32) (f32.const +0x1.00000200000000000p+50)))
   318  (assert_return (invoke "f") (f32.const +0x1.000002p+50))
   319  (module (func (export "f") (result f32) (f32.const -0x1.00000200000000000p+50)))
   320  (assert_return (invoke "f") (f32.const -0x1.000002p+50))
   321  (module (func (export "f") (result f32) (f32.const +0x1.00000200000000001p+50)))
   322  (assert_return (invoke "f") (f32.const +0x1.000002p+50))
   323  (module (func (export "f") (result f32) (f32.const -0x1.00000200000000001p+50)))
   324  (assert_return (invoke "f") (f32.const -0x1.000002p+50))
   325  (module (func (export "f") (result f32) (f32.const +0x1.000002fffffffffffp+50)))
   326  (assert_return (invoke "f") (f32.const +0x1.000002p+50))
   327  (module (func (export "f") (result f32) (f32.const -0x1.000002fffffffffffp+50)))
   328  (assert_return (invoke "f") (f32.const -0x1.000002p+50))
   329  (module (func (export "f") (result f32) (f32.const +0x1.00000300000000000p+50)))
   330  (assert_return (invoke "f") (f32.const +0x1.000004p+50))
   331  (module (func (export "f") (result f32) (f32.const -0x1.00000300000000000p+50)))
   332  (assert_return (invoke "f") (f32.const -0x1.000004p+50))
   333  (module (func (export "f") (result f32) (f32.const +0x1.00000300000000001p+50)))
   334  (assert_return (invoke "f") (f32.const +0x1.000004p+50))
   335  (module (func (export "f") (result f32) (f32.const -0x1.00000300000000001p+50)))
   336  (assert_return (invoke "f") (f32.const -0x1.000004p+50))
   337  (module (func (export "f") (result f32) (f32.const +0x1.000003fffffffffffp+50)))
   338  (assert_return (invoke "f") (f32.const +0x1.000004p+50))
   339  (module (func (export "f") (result f32) (f32.const -0x1.000003fffffffffffp+50)))
   340  (assert_return (invoke "f") (f32.const -0x1.000004p+50))
   341  (module (func (export "f") (result f32) (f32.const +0x1.00000400000000000p+50)))
   342  (assert_return (invoke "f") (f32.const +0x1.000004p+50))
   343  (module (func (export "f") (result f32) (f32.const -0x1.00000400000000000p+50)))
   344  (assert_return (invoke "f") (f32.const -0x1.000004p+50))
   345  (module (func (export "f") (result f32) (f32.const +0x1.00000400000000001p+50)))
   346  (assert_return (invoke "f") (f32.const +0x1.000004p+50))
   347  (module (func (export "f") (result f32) (f32.const -0x1.00000400000000001p+50)))
   348  (assert_return (invoke "f") (f32.const -0x1.000004p+50))
   349  (module (func (export "f") (result f32) (f32.const +0x1.000004fffffffffffp+50)))
   350  (assert_return (invoke "f") (f32.const +0x1.000004p+50))
   351  (module (func (export "f") (result f32) (f32.const -0x1.000004fffffffffffp+50)))
   352  (assert_return (invoke "f") (f32.const -0x1.000004p+50))
   353  (module (func (export "f") (result f32) (f32.const +0x1.00000500000000000p+50)))
   354  (assert_return (invoke "f") (f32.const +0x1.000004p+50))
   355  (module (func (export "f") (result f32) (f32.const -0x1.00000500000000000p+50)))
   356  (assert_return (invoke "f") (f32.const -0x1.000004p+50))
   357  (module (func (export "f") (result f32) (f32.const +0x1.00000500000000001p+50)))
   358  (assert_return (invoke "f") (f32.const +0x1.000006p+50))
   359  (module (func (export "f") (result f32) (f32.const -0x1.00000500000000001p+50)))
   360  (assert_return (invoke "f") (f32.const -0x1.000006p+50))
   361  
   362  (module (func (export "f") (result f32) (f32.const +0x4000004000000)))
   363  (assert_return (invoke "f") (f32.const +0x1.000000p+50))
   364  (module (func (export "f") (result f32) (f32.const -0x4000004000000)))
   365  (assert_return (invoke "f") (f32.const -0x1.000000p+50))
   366  (module (func (export "f") (result f32) (f32.const +0x4000004000001)))
   367  (assert_return (invoke "f") (f32.const +0x1.000002p+50))
   368  (module (func (export "f") (result f32) (f32.const -0x4000004000001)))
   369  (assert_return (invoke "f") (f32.const -0x1.000002p+50))
   370  (module (func (export "f") (result f32) (f32.const +0x4000007ffffff)))
   371  (assert_return (invoke "f") (f32.const +0x1.000002p+50))
   372  (module (func (export "f") (result f32) (f32.const -0x4000007ffffff)))
   373  (assert_return (invoke "f") (f32.const -0x1.000002p+50))
   374  (module (func (export "f") (result f32) (f32.const +0x4000008000000)))
   375  (assert_return (invoke "f") (f32.const +0x1.000002p+50))
   376  (module (func (export "f") (result f32) (f32.const -0x4000008000000)))
   377  (assert_return (invoke "f") (f32.const -0x1.000002p+50))
   378  (module (func (export "f") (result f32) (f32.const +0x4000008000001)))
   379  (assert_return (invoke "f") (f32.const +0x1.000002p+50))
   380  (module (func (export "f") (result f32) (f32.const -0x4000008000001)))
   381  (assert_return (invoke "f") (f32.const -0x1.000002p+50))
   382  (module (func (export "f") (result f32) (f32.const +0x400000bffffff)))
   383  (assert_return (invoke "f") (f32.const +0x1.000002p+50))
   384  (module (func (export "f") (result f32) (f32.const -0x400000bffffff)))
   385  (assert_return (invoke "f") (f32.const -0x1.000002p+50))
   386  (module (func (export "f") (result f32) (f32.const +0x400000c000000)))
   387  (assert_return (invoke "f") (f32.const +0x1.000004p+50))
   388  (module (func (export "f") (result f32) (f32.const -0x400000c000000)))
   389  (assert_return (invoke "f") (f32.const -0x1.000004p+50))
   390  
   391  (module (func (export "f") (result f32) (f32.const +1125899973951488)))
   392  (assert_return (invoke "f") (f32.const +0x1.000000p+50))
   393  (module (func (export "f") (result f32) (f32.const -1125899973951488)))
   394  (assert_return (invoke "f") (f32.const -0x1.000000p+50))
   395  (module (func (export "f") (result f32) (f32.const +1125899973951489)))
   396  (assert_return (invoke "f") (f32.const +0x1.000002p+50))
   397  (module (func (export "f") (result f32) (f32.const -1125899973951489)))
   398  (assert_return (invoke "f") (f32.const -0x1.000002p+50))
   399  (module (func (export "f") (result f32) (f32.const +1125900108169215)))
   400  (assert_return (invoke "f") (f32.const +0x1.000002p+50))
   401  (module (func (export "f") (result f32) (f32.const -1125900108169215)))
   402  (assert_return (invoke "f") (f32.const -0x1.000002p+50))
   403  (module (func (export "f") (result f32) (f32.const +1125900108169216)))
   404  (assert_return (invoke "f") (f32.const +0x1.000004p+50))
   405  (module (func (export "f") (result f32) (f32.const -1125900108169216)))
   406  (assert_return (invoke "f") (f32.const -0x1.000004p+50))
   407  
   408  ;; f32, subnormal
   409  (module (func (export "f") (result f32) (f32.const +0x0.00000100000000000p-126)))
   410  (assert_return (invoke "f") (f32.const +0x0.000000p-126))
   411  (module (func (export "f") (result f32) (f32.const -0x0.00000100000000000p-126)))
   412  (assert_return (invoke "f") (f32.const -0x0.000000p-126))
   413  (module (func (export "f") (result f32) (f32.const +0x0.00000100000000001p-126)))
   414  (assert_return (invoke "f") (f32.const +0x0.000002p-126))
   415  (module (func (export "f") (result f32) (f32.const -0x0.00000100000000001p-126)))
   416  (assert_return (invoke "f") (f32.const -0x0.000002p-126))
   417  (module (func (export "f") (result f32) (f32.const +0x0.000001fffffffffffp-126)))
   418  (assert_return (invoke "f") (f32.const +0x0.000002p-126))
   419  (module (func (export "f") (result f32) (f32.const -0x0.000001fffffffffffp-126)))
   420  (assert_return (invoke "f") (f32.const -0x0.000002p-126))
   421  (module (func (export "f") (result f32) (f32.const +0x0.00000200000000000p-126)))
   422  (assert_return (invoke "f") (f32.const +0x0.000002p-126))
   423  (module (func (export "f") (result f32) (f32.const -0x0.00000200000000000p-126)))
   424  (assert_return (invoke "f") (f32.const -0x0.000002p-126))
   425  (module (func (export "f") (result f32) (f32.const +0x0.00000200000000001p-126)))
   426  (assert_return (invoke "f") (f32.const +0x0.000002p-126))
   427  (module (func (export "f") (result f32) (f32.const -0x0.00000200000000001p-126)))
   428  (assert_return (invoke "f") (f32.const -0x0.000002p-126))
   429  (module (func (export "f") (result f32) (f32.const +0x0.000002fffffffffffp-126)))
   430  (assert_return (invoke "f") (f32.const +0x0.000002p-126))
   431  (module (func (export "f") (result f32) (f32.const -0x0.000002fffffffffffp-126)))
   432  (assert_return (invoke "f") (f32.const -0x0.000002p-126))
   433  (module (func (export "f") (result f32) (f32.const +0x0.00000300000000000p-126)))
   434  (assert_return (invoke "f") (f32.const +0x0.000004p-126))
   435  (module (func (export "f") (result f32) (f32.const -0x0.00000300000000000p-126)))
   436  (assert_return (invoke "f") (f32.const -0x0.000004p-126))
   437  (module (func (export "f") (result f32) (f32.const +0x0.00000300000000001p-126)))
   438  (assert_return (invoke "f") (f32.const +0x0.000004p-126))
   439  (module (func (export "f") (result f32) (f32.const -0x0.00000300000000001p-126)))
   440  (assert_return (invoke "f") (f32.const -0x0.000004p-126))
   441  (module (func (export "f") (result f32) (f32.const +0x0.000003fffffffffffp-126)))
   442  (assert_return (invoke "f") (f32.const +0x0.000004p-126))
   443  (module (func (export "f") (result f32) (f32.const -0x0.000003fffffffffffp-126)))
   444  (assert_return (invoke "f") (f32.const -0x0.000004p-126))
   445  (module (func (export "f") (result f32) (f32.const +0x0.00000400000000000p-126)))
   446  (assert_return (invoke "f") (f32.const +0x0.000004p-126))
   447  (module (func (export "f") (result f32) (f32.const -0x0.00000400000000000p-126)))
   448  (assert_return (invoke "f") (f32.const -0x0.000004p-126))
   449  (module (func (export "f") (result f32) (f32.const +0x0.00000400000000001p-126)))
   450  (assert_return (invoke "f") (f32.const +0x0.000004p-126))
   451  (module (func (export "f") (result f32) (f32.const -0x0.00000400000000001p-126)))
   452  (assert_return (invoke "f") (f32.const -0x0.000004p-126))
   453  (module (func (export "f") (result f32) (f32.const +0x0.000004fffffffffffp-126)))
   454  (assert_return (invoke "f") (f32.const +0x0.000004p-126))
   455  (module (func (export "f") (result f32) (f32.const -0x0.000004fffffffffffp-126)))
   456  (assert_return (invoke "f") (f32.const -0x0.000004p-126))
   457  (module (func (export "f") (result f32) (f32.const +0x0.00000500000000000p-126)))
   458  (assert_return (invoke "f") (f32.const +0x0.000004p-126))
   459  (module (func (export "f") (result f32) (f32.const -0x0.00000500000000000p-126)))
   460  (assert_return (invoke "f") (f32.const -0x0.000004p-126))
   461  (module (func (export "f") (result f32) (f32.const +0x0.00000500000000001p-126)))
   462  (assert_return (invoke "f") (f32.const +0x0.000006p-126))
   463  (module (func (export "f") (result f32) (f32.const -0x0.00000500000000001p-126)))
   464  (assert_return (invoke "f") (f32.const -0x0.000006p-126))
   465  
   466  ;; f32, round down at limit to infinity
   467  (module (func (export "f") (result f32) (f32.const +0x1.fffffe8p127)))
   468  (assert_return (invoke "f") (f32.const +0x1.fffffep127))
   469  (module (func (export "f") (result f32) (f32.const -0x1.fffffe8p127)))
   470  (assert_return (invoke "f") (f32.const -0x1.fffffep127))
   471  (module (func (export "f") (result f32) (f32.const +0x1.fffffefffffff8p127)))
   472  (assert_return (invoke "f") (f32.const +0x1.fffffep127))
   473  (module (func (export "f") (result f32) (f32.const -0x1.fffffefffffff8p127)))
   474  (assert_return (invoke "f") (f32.const -0x1.fffffep127))
   475  (module (func (export "f") (result f32) (f32.const +0x1.fffffefffffffffffp127)))
   476  (assert_return (invoke "f") (f32.const +0x1.fffffep127))
   477  (module (func (export "f") (result f32) (f32.const -0x1.fffffefffffffffffp127)))
   478  (assert_return (invoke "f") (f32.const -0x1.fffffep127))
   479  
   480  ;; f64, small exponent
   481  (module (func (export "f") (result f64) (f64.const +0x1.000000000000080000000000p-600)))
   482  (assert_return (invoke "f") (f64.const +0x1.0000000000000p-600))
   483  (module (func (export "f") (result f64) (f64.const -0x1.000000000000080000000000p-600)))
   484  (assert_return (invoke "f") (f64.const -0x1.0000000000000p-600))
   485  (module (func (export "f") (result f64) (f64.const +0x1.000000000000080000000001p-600)))
   486  (assert_return (invoke "f") (f64.const +0x1.0000000000001p-600))
   487  (module (func (export "f") (result f64) (f64.const -0x1.000000000000080000000001p-600)))
   488  (assert_return (invoke "f") (f64.const -0x1.0000000000001p-600))
   489  (module (func (export "f") (result f64) (f64.const +0x1.0000000000000fffffffffffp-600)))
   490  (assert_return (invoke "f") (f64.const +0x1.0000000000001p-600))
   491  (module (func (export "f") (result f64) (f64.const -0x1.0000000000000fffffffffffp-600)))
   492  (assert_return (invoke "f") (f64.const -0x1.0000000000001p-600))
   493  (module (func (export "f") (result f64) (f64.const +0x1.000000000000100000000000p-600)))
   494  (assert_return (invoke "f") (f64.const +0x1.0000000000001p-600))
   495  (module (func (export "f") (result f64) (f64.const -0x1.000000000000100000000000p-600)))
   496  (assert_return (invoke "f") (f64.const -0x1.0000000000001p-600))
   497  (module (func (export "f") (result f64) (f64.const +0x1.000000000000100000000001p-600)))
   498  (assert_return (invoke "f") (f64.const +0x1.0000000000001p-600))
   499  (module (func (export "f") (result f64) (f64.const -0x1.000000000000100000000001p-600)))
   500  (assert_return (invoke "f") (f64.const -0x1.0000000000001p-600))
   501  (module (func (export "f") (result f64) (f64.const +0x1.00000000000017ffffffffffp-600)))
   502  (assert_return (invoke "f") (f64.const +0x1.0000000000001p-600))
   503  (module (func (export "f") (result f64) (f64.const -0x1.00000000000017ffffffffffp-600)))
   504  (assert_return (invoke "f") (f64.const -0x1.0000000000001p-600))
   505  (module (func (export "f") (result f64) (f64.const +0x1.000000000000180000000000p-600)))
   506  (assert_return (invoke "f") (f64.const +0x1.0000000000002p-600))
   507  (module (func (export "f") (result f64) (f64.const -0x1.000000000000180000000000p-600)))
   508  (assert_return (invoke "f") (f64.const -0x1.0000000000002p-600))
   509  (module (func (export "f") (result f64) (f64.const +0x1.000000000000180000000001p-600)))
   510  (assert_return (invoke "f") (f64.const +0x1.0000000000002p-600))
   511  (module (func (export "f") (result f64) (f64.const -0x1.000000000000180000000001p-600)))
   512  (assert_return (invoke "f") (f64.const -0x1.0000000000002p-600))
   513  (module (func (export "f") (result f64) (f64.const +0x1.0000000000001fffffffffffp-600)))
   514  (assert_return (invoke "f") (f64.const +0x1.0000000000002p-600))
   515  (module (func (export "f") (result f64) (f64.const -0x1.0000000000001fffffffffffp-600)))
   516  (assert_return (invoke "f") (f64.const -0x1.0000000000002p-600))
   517  (module (func (export "f") (result f64) (f64.const +0x1.000000000000200000000000p-600)))
   518  (assert_return (invoke "f") (f64.const +0x1.0000000000002p-600))
   519  (module (func (export "f") (result f64) (f64.const -0x1.000000000000200000000000p-600)))
   520  (assert_return (invoke "f") (f64.const -0x1.0000000000002p-600))
   521  (module (func (export "f") (result f64) (f64.const +0x1.000000000000200000000001p-600)))
   522  (assert_return (invoke "f") (f64.const +0x1.0000000000002p-600))
   523  (module (func (export "f") (result f64) (f64.const -0x1.000000000000200000000001p-600)))
   524  (assert_return (invoke "f") (f64.const -0x1.0000000000002p-600))
   525  (module (func (export "f") (result f64) (f64.const +0x1.00000000000027ffffffffffp-600)))
   526  (assert_return (invoke "f") (f64.const +0x1.0000000000002p-600))
   527  (module (func (export "f") (result f64) (f64.const -0x1.00000000000027ffffffffffp-600)))
   528  (assert_return (invoke "f") (f64.const -0x1.0000000000002p-600))
   529  (module (func (export "f") (result f64) (f64.const +0x1.000000000000280000000001p-600)))
   530  (assert_return (invoke "f") (f64.const +0x1.0000000000003p-600))
   531  (module (func (export "f") (result f64) (f64.const -0x1.000000000000280000000001p-600)))
   532  (assert_return (invoke "f") (f64.const -0x1.0000000000003p-600))
   533  
   534  (module (func (export "f") (result f64) (f64.const +0x8000000.000000400000000000p-627)))
   535  (assert_return (invoke "f") (f64.const +0x1.0000000000000p-600))
   536  (module (func (export "f") (result f64) (f64.const -0x8000000.000000400000000000p-627)))
   537  (assert_return (invoke "f") (f64.const -0x1.0000000000000p-600))
   538  (module (func (export "f") (result f64) (f64.const +0x8000000.000000400000000001p-627)))
   539  (assert_return (invoke "f") (f64.const +0x1.0000000000001p-600))
   540  (module (func (export "f") (result f64) (f64.const -0x8000000.000000400000000001p-627)))
   541  (assert_return (invoke "f") (f64.const -0x1.0000000000001p-600))
   542  (module (func (export "f") (result f64) (f64.const +0x8000000.0000007fffffffffffp-627)))
   543  (assert_return (invoke "f") (f64.const +0x1.0000000000001p-600))
   544  (module (func (export "f") (result f64) (f64.const -0x8000000.0000007fffffffffffp-627)))
   545  (assert_return (invoke "f") (f64.const -0x1.0000000000001p-600))
   546  (module (func (export "f") (result f64) (f64.const +0x8000000.000000800000000000p-627)))
   547  (assert_return (invoke "f") (f64.const +0x1.0000000000001p-600))
   548  (module (func (export "f") (result f64) (f64.const -0x8000000.000000800000000000p-627)))
   549  (assert_return (invoke "f") (f64.const -0x1.0000000000001p-600))
   550  (module (func (export "f") (result f64) (f64.const +0x8000000.000000800000000001p-627)))
   551  (assert_return (invoke "f") (f64.const +0x1.0000000000001p-600))
   552  (module (func (export "f") (result f64) (f64.const -0x8000000.000000800000000001p-627)))
   553  (assert_return (invoke "f") (f64.const -0x1.0000000000001p-600))
   554  (module (func (export "f") (result f64) (f64.const +0x8000000.000000bfffffffffffp-627)))
   555  (assert_return (invoke "f") (f64.const +0x1.0000000000001p-600))
   556  (module (func (export "f") (result f64) (f64.const -0x8000000.000000bfffffffffffp-627)))
   557  (assert_return (invoke "f") (f64.const -0x1.0000000000001p-600))
   558  (module (func (export "f") (result f64) (f64.const +0x8000000.000000c00000000000p-627)))
   559  (assert_return (invoke "f") (f64.const +0x1.0000000000002p-600))
   560  (module (func (export "f") (result f64) (f64.const -0x8000000.000000c00000000000p-627)))
   561  (assert_return (invoke "f") (f64.const -0x1.0000000000002p-600))
   562  (module (func (export "f") (result f64) (f64.const +0x8000000.000000c00000000001p-627)))
   563  (assert_return (invoke "f") (f64.const +0x1.0000000000002p-600))
   564  (module (func (export "f") (result f64) (f64.const -0x8000000.000000c00000000001p-627)))
   565  (assert_return (invoke "f") (f64.const -0x1.0000000000002p-600))
   566  (module (func (export "f") (result f64) (f64.const +0x8000000.000000ffffffffffffp-627)))
   567  (assert_return (invoke "f") (f64.const +0x1.0000000000002p-600))
   568  (module (func (export "f") (result f64) (f64.const -0x8000000.000000ffffffffffffp-627)))
   569  (assert_return (invoke "f") (f64.const -0x1.0000000000002p-600))
   570  (module (func (export "f") (result f64) (f64.const +0x8000000.000001000000000000p-627)))
   571  (assert_return (invoke "f") (f64.const +0x1.0000000000002p-600))
   572  (module (func (export "f") (result f64) (f64.const -0x8000000.000001000000000000p-627)))
   573  (assert_return (invoke "f") (f64.const -0x1.0000000000002p-600))
   574  (module (func (export "f") (result f64) (f64.const +0x8000000.000001000000000001p-627)))
   575  (assert_return (invoke "f") (f64.const +0x1.0000000000002p-600))
   576  (module (func (export "f") (result f64) (f64.const -0x8000000.000001000000000001p-627)))
   577  (assert_return (invoke "f") (f64.const -0x1.0000000000002p-600))
   578  (module (func (export "f") (result f64) (f64.const +0x8000000.0000013fffffffffffp-627)))
   579  (assert_return (invoke "f") (f64.const +0x1.0000000000002p-600))
   580  (module (func (export "f") (result f64) (f64.const -0x8000000.0000013fffffffffffp-627)))
   581  (assert_return (invoke "f") (f64.const -0x1.0000000000002p-600))
   582  (module (func (export "f") (result f64) (f64.const +0x8000000.000001400000000001p-627)))
   583  (assert_return (invoke "f") (f64.const +0x1.0000000000003p-600))
   584  (module (func (export "f") (result f64) (f64.const -0x8000000.000001400000000001p-627)))
   585  (assert_return (invoke "f") (f64.const -0x1.0000000000003p-600))
   586  
   587  (module (func (export "f") (result f64) (f64.const +5.3575430359313371995e+300)))
   588  (assert_return (invoke "f") (f64.const +0x1.0000000000000p+999))
   589  (module (func (export "f") (result f64) (f64.const -5.3575430359313371995e+300)))
   590  (assert_return (invoke "f") (f64.const -0x1.0000000000000p+999))
   591  (module (func (export "f") (result f64) (f64.const +5.3575430359313371996e+300)))
   592  (assert_return (invoke "f") (f64.const +0x1.0000000000001p+999))
   593  (module (func (export "f") (result f64) (f64.const -5.3575430359313371996e+300)))
   594  (assert_return (invoke "f") (f64.const -0x1.0000000000001p+999))
   595  (module (func (export "f") (result f64) (f64.const +5.3575430359313383891e+300)))
   596  (assert_return (invoke "f") (f64.const +0x1.0000000000001p+999))
   597  (module (func (export "f") (result f64) (f64.const -5.3575430359313383891e+300)))
   598  (assert_return (invoke "f") (f64.const -0x1.0000000000001p+999))
   599  (module (func (export "f") (result f64) (f64.const +5.3575430359313383892e+300)))
   600  (assert_return (invoke "f") (f64.const +0x1.0000000000002p+999))
   601  (module (func (export "f") (result f64) (f64.const -5.3575430359313383892e+300)))
   602  (assert_return (invoke "f") (f64.const -0x1.0000000000002p+999))
   603  
   604  ;; f64, large exponent
   605  (module (func (export "f") (result f64) (f64.const +0x1.000000000000080000000000p+600)))
   606  (assert_return (invoke "f") (f64.const +0x1.0000000000000p+600))
   607  (module (func (export "f") (result f64) (f64.const -0x1.000000000000080000000000p+600)))
   608  (assert_return (invoke "f") (f64.const -0x1.0000000000000p+600))
   609  (module (func (export "f") (result f64) (f64.const +0x1.000000000000080000000001p+600)))
   610  (assert_return (invoke "f") (f64.const +0x1.0000000000001p+600))
   611  (module (func (export "f") (result f64) (f64.const -0x1.000000000000080000000001p+600)))
   612  (assert_return (invoke "f") (f64.const -0x1.0000000000001p+600))
   613  (module (func (export "f") (result f64) (f64.const +0x1.0000000000000fffffffffffp+600)))
   614  (assert_return (invoke "f") (f64.const +0x1.0000000000001p+600))
   615  (module (func (export "f") (result f64) (f64.const -0x1.0000000000000fffffffffffp+600)))
   616  (assert_return (invoke "f") (f64.const -0x1.0000000000001p+600))
   617  (module (func (export "f") (result f64) (f64.const +0x1.000000000000100000000000p+600)))
   618  (assert_return (invoke "f") (f64.const +0x1.0000000000001p+600))
   619  (module (func (export "f") (result f64) (f64.const -0x1.000000000000100000000000p+600)))
   620  (assert_return (invoke "f") (f64.const -0x1.0000000000001p+600))
   621  (module (func (export "f") (result f64) (f64.const +0x1.000000000000100000000001p+600)))
   622  (assert_return (invoke "f") (f64.const +0x1.0000000000001p+600))
   623  (module (func (export "f") (result f64) (f64.const -0x1.000000000000100000000001p+600)))
   624  (assert_return (invoke "f") (f64.const -0x1.0000000000001p+600))
   625  (module (func (export "f") (result f64) (f64.const +0x1.00000000000017ffffffffffp+600)))
   626  (assert_return (invoke "f") (f64.const +0x1.0000000000001p+600))
   627  (module (func (export "f") (result f64) (f64.const -0x1.00000000000017ffffffffffp+600)))
   628  (assert_return (invoke "f") (f64.const -0x1.0000000000001p+600))
   629  (module (func (export "f") (result f64) (f64.const +0x1.000000000000180000000000p+600)))
   630  (assert_return (invoke "f") (f64.const +0x1.0000000000002p+600))
   631  (module (func (export "f") (result f64) (f64.const -0x1.000000000000180000000000p+600)))
   632  (assert_return (invoke "f") (f64.const -0x1.0000000000002p+600))
   633  (module (func (export "f") (result f64) (f64.const +0x1.000000000000180000000001p+600)))
   634  (assert_return (invoke "f") (f64.const +0x1.0000000000002p+600))
   635  (module (func (export "f") (result f64) (f64.const -0x1.000000000000180000000001p+600)))
   636  (assert_return (invoke "f") (f64.const -0x1.0000000000002p+600))
   637  (module (func (export "f") (result f64) (f64.const +0x1.0000000000001fffffffffffp+600)))
   638  (assert_return (invoke "f") (f64.const +0x1.0000000000002p+600))
   639  (module (func (export "f") (result f64) (f64.const -0x1.0000000000001fffffffffffp+600)))
   640  (assert_return (invoke "f") (f64.const -0x1.0000000000002p+600))
   641  (module (func (export "f") (result f64) (f64.const +0x1.000000000000200000000000p+600)))
   642  (assert_return (invoke "f") (f64.const +0x1.0000000000002p+600))
   643  (module (func (export "f") (result f64) (f64.const -0x1.000000000000200000000000p+600)))
   644  (assert_return (invoke "f") (f64.const -0x1.0000000000002p+600))
   645  (module (func (export "f") (result f64) (f64.const +0x1.000000000000200000000001p+600)))
   646  (assert_return (invoke "f") (f64.const +0x1.0000000000002p+600))
   647  (module (func (export "f") (result f64) (f64.const -0x1.000000000000200000000001p+600)))
   648  (assert_return (invoke "f") (f64.const -0x1.0000000000002p+600))
   649  (module (func (export "f") (result f64) (f64.const +0x1.00000000000027ffffffffffp+600)))
   650  (assert_return (invoke "f") (f64.const +0x1.0000000000002p+600))
   651  (module (func (export "f") (result f64) (f64.const -0x1.00000000000027ffffffffffp+600)))
   652  (assert_return (invoke "f") (f64.const -0x1.0000000000002p+600))
   653  (module (func (export "f") (result f64) (f64.const +0x1.000000000000280000000000p+600)))
   654  (assert_return (invoke "f") (f64.const +0x1.0000000000002p+600))
   655  (module (func (export "f") (result f64) (f64.const -0x1.000000000000280000000000p+600)))
   656  (assert_return (invoke "f") (f64.const -0x1.0000000000002p+600))
   657  (module (func (export "f") (result f64) (f64.const +0x1.000000000000280000000001p+600)))
   658  (assert_return (invoke "f") (f64.const +0x1.0000000000003p+600))
   659  (module (func (export "f") (result f64) (f64.const -0x1.000000000000280000000001p+600)))
   660  (assert_return (invoke "f") (f64.const -0x1.0000000000003p+600))
   661  
   662  (module (func (export "f") (result f64) (f64.const +0x2000000000000100000000000)))
   663  (assert_return (invoke "f") (f64.const +0x1.0000000000000p+97))
   664  (module (func (export "f") (result f64) (f64.const -0x2000000000000100000000000)))
   665  (assert_return (invoke "f") (f64.const -0x1.0000000000000p+97))
   666  (module (func (export "f") (result f64) (f64.const +0x2000000000000100000000001)))
   667  (assert_return (invoke "f") (f64.const +0x1.0000000000001p+97))
   668  (module (func (export "f") (result f64) (f64.const -0x2000000000000100000000001)))
   669  (assert_return (invoke "f") (f64.const -0x1.0000000000001p+97))
   670  (module (func (export "f") (result f64) (f64.const +0x20000000000001fffffffffff)))
   671  (assert_return (invoke "f") (f64.const +0x1.0000000000001p+97))
   672  (module (func (export "f") (result f64) (f64.const -0x20000000000001fffffffffff)))
   673  (assert_return (invoke "f") (f64.const -0x1.0000000000001p+97))
   674  (module (func (export "f") (result f64) (f64.const +0x2000000000000200000000000)))
   675  (assert_return (invoke "f") (f64.const +0x1.0000000000001p+97))
   676  (module (func (export "f") (result f64) (f64.const -0x2000000000000200000000000)))
   677  (assert_return (invoke "f") (f64.const -0x1.0000000000001p+97))
   678  (module (func (export "f") (result f64) (f64.const +0x2000000000000200000000001)))
   679  (assert_return (invoke "f") (f64.const +0x1.0000000000001p+97))
   680  (module (func (export "f") (result f64) (f64.const -0x2000000000000200000000001)))
   681  (assert_return (invoke "f") (f64.const -0x1.0000000000001p+97))
   682  (module (func (export "f") (result f64) (f64.const +0x20000000000002fffffffffff)))
   683  (assert_return (invoke "f") (f64.const +0x1.0000000000001p+97))
   684  (module (func (export "f") (result f64) (f64.const -0x20000000000002fffffffffff)))
   685  (assert_return (invoke "f") (f64.const -0x1.0000000000001p+97))
   686  (module (func (export "f") (result f64) (f64.const +0x2000000000000300000000000)))
   687  (assert_return (invoke "f") (f64.const +0x1.0000000000002p+97))
   688  (module (func (export "f") (result f64) (f64.const -0x2000000000000300000000000)))
   689  (assert_return (invoke "f") (f64.const -0x1.0000000000002p+97))
   690  (module (func (export "f") (result f64) (f64.const +0x2000000000000300000000001)))
   691  (assert_return (invoke "f") (f64.const +0x1.0000000000002p+97))
   692  (module (func (export "f") (result f64) (f64.const -0x2000000000000300000000001)))
   693  (assert_return (invoke "f") (f64.const -0x1.0000000000002p+97))
   694  (module (func (export "f") (result f64) (f64.const +0x20000000000003fffffffffff)))
   695  (assert_return (invoke "f") (f64.const +0x1.0000000000002p+97))
   696  (module (func (export "f") (result f64) (f64.const -0x20000000000003fffffffffff)))
   697  (assert_return (invoke "f") (f64.const -0x1.0000000000002p+97))
   698  (module (func (export "f") (result f64) (f64.const +0x2000000000000400000000000)))
   699  (assert_return (invoke "f") (f64.const +0x1.0000000000002p+97))
   700  (module (func (export "f") (result f64) (f64.const -0x2000000000000400000000000)))
   701  (assert_return (invoke "f") (f64.const -0x1.0000000000002p+97))
   702  (module (func (export "f") (result f64) (f64.const +0x2000000000000400000000001)))
   703  (assert_return (invoke "f") (f64.const +0x1.0000000000002p+97))
   704  (module (func (export "f") (result f64) (f64.const -0x2000000000000400000000001)))
   705  (assert_return (invoke "f") (f64.const -0x1.0000000000002p+97))
   706  (module (func (export "f") (result f64) (f64.const +0x20000000000004fffffffffff)))
   707  (assert_return (invoke "f") (f64.const +0x1.0000000000002p+97))
   708  (module (func (export "f") (result f64) (f64.const -0x20000000000004fffffffffff)))
   709  (assert_return (invoke "f") (f64.const -0x1.0000000000002p+97))
   710  (module (func (export "f") (result f64) (f64.const +0x2000000000000500000000000)))
   711  (assert_return (invoke "f") (f64.const +0x1.0000000000002p+97))
   712  (module (func (export "f") (result f64) (f64.const -0x2000000000000500000000000)))
   713  (assert_return (invoke "f") (f64.const -0x1.0000000000002p+97))
   714  (module (func (export "f") (result f64) (f64.const +0x2000000000000500000000001)))
   715  (assert_return (invoke "f") (f64.const +0x1.0000000000003p+97))
   716  (module (func (export "f") (result f64) (f64.const -0x2000000000000500000000001)))
   717  (assert_return (invoke "f") (f64.const -0x1.0000000000003p+97))
   718  
   719  (module (func (export "f") (result f64) (f64.const +1152921504606847104)))
   720  (assert_return (invoke "f") (f64.const +0x1.0000000000000p+60))
   721  (module (func (export "f") (result f64) (f64.const -1152921504606847104)))
   722  (assert_return (invoke "f") (f64.const -0x1.0000000000000p+60))
   723  (module (func (export "f") (result f64) (f64.const +1152921504606847105)))
   724  (assert_return (invoke "f") (f64.const +0x1.0000000000001p+60))
   725  (module (func (export "f") (result f64) (f64.const -1152921504606847105)))
   726  (assert_return (invoke "f") (f64.const -0x1.0000000000001p+60))
   727  (module (func (export "f") (result f64) (f64.const +1152921504606847359)))
   728  (assert_return (invoke "f") (f64.const +0x1.0000000000001p+60))
   729  (module (func (export "f") (result f64) (f64.const -1152921504606847359)))
   730  (assert_return (invoke "f") (f64.const -0x1.0000000000001p+60))
   731  (module (func (export "f") (result f64) (f64.const +1152921504606847360)))
   732  (assert_return (invoke "f") (f64.const +0x1.0000000000002p+60))
   733  (module (func (export "f") (result f64) (f64.const -1152921504606847360)))
   734  (assert_return (invoke "f") (f64.const -0x1.0000000000002p+60))
   735  
   736  ;; f64, subnormal
   737  (module (func (export "f") (result f64) (f64.const +0x0.000000000000080000000000p-1022)))
   738  (assert_return (invoke "f") (f64.const +0x0.0000000000000p-1022))
   739  (module (func (export "f") (result f64) (f64.const -0x0.000000000000080000000000p-1022)))
   740  (assert_return (invoke "f") (f64.const -0x0.0000000000000p-1022))
   741  (module (func (export "f") (result f64) (f64.const +0x0.000000000000080000000001p-1022)))
   742  (assert_return (invoke "f") (f64.const +0x0.0000000000001p-1022))
   743  (module (func (export "f") (result f64) (f64.const -0x0.000000000000080000000001p-1022)))
   744  (assert_return (invoke "f") (f64.const -0x0.0000000000001p-1022))
   745  (module (func (export "f") (result f64) (f64.const +0x0.0000000000000fffffffffffp-1022)))
   746  (assert_return (invoke "f") (f64.const +0x0.0000000000001p-1022))
   747  (module (func (export "f") (result f64) (f64.const -0x0.0000000000000fffffffffffp-1022)))
   748  (assert_return (invoke "f") (f64.const -0x0.0000000000001p-1022))
   749  (module (func (export "f") (result f64) (f64.const +0x0.000000000000100000000000p-1022)))
   750  (assert_return (invoke "f") (f64.const +0x0.0000000000001p-1022))
   751  (module (func (export "f") (result f64) (f64.const -0x0.000000000000100000000000p-1022)))
   752  (assert_return (invoke "f") (f64.const -0x0.0000000000001p-1022))
   753  (module (func (export "f") (result f64) (f64.const +0x0.000000000000100000000001p-1022)))
   754  (assert_return (invoke "f") (f64.const +0x0.0000000000001p-1022))
   755  (module (func (export "f") (result f64) (f64.const -0x0.000000000000100000000001p-1022)))
   756  (assert_return (invoke "f") (f64.const -0x0.0000000000001p-1022))
   757  (module (func (export "f") (result f64) (f64.const +0x0.00000000000017ffffffffffp-1022)))
   758  (assert_return (invoke "f") (f64.const +0x0.0000000000001p-1022))
   759  (module (func (export "f") (result f64) (f64.const -0x0.00000000000017ffffffffffp-1022)))
   760  (assert_return (invoke "f") (f64.const -0x0.0000000000001p-1022))
   761  (module (func (export "f") (result f64) (f64.const +0x0.000000000000180000000000p-1022)))
   762  (assert_return (invoke "f") (f64.const +0x0.0000000000002p-1022))
   763  (module (func (export "f") (result f64) (f64.const -0x0.000000000000180000000000p-1022)))
   764  (assert_return (invoke "f") (f64.const -0x0.0000000000002p-1022))
   765  (module (func (export "f") (result f64) (f64.const +0x0.000000000000180000000001p-1022)))
   766  (assert_return (invoke "f") (f64.const +0x0.0000000000002p-1022))
   767  (module (func (export "f") (result f64) (f64.const -0x0.000000000000180000000001p-1022)))
   768  (assert_return (invoke "f") (f64.const -0x0.0000000000002p-1022))
   769  (module (func (export "f") (result f64) (f64.const +0x0.0000000000001fffffffffffp-1022)))
   770  (assert_return (invoke "f") (f64.const +0x0.0000000000002p-1022))
   771  (module (func (export "f") (result f64) (f64.const -0x0.0000000000001fffffffffffp-1022)))
   772  (assert_return (invoke "f") (f64.const -0x0.0000000000002p-1022))
   773  (module (func (export "f") (result f64) (f64.const +0x0.000000000000200000000000p-1022)))
   774  (assert_return (invoke "f") (f64.const +0x0.0000000000002p-1022))
   775  (module (func (export "f") (result f64) (f64.const -0x0.000000000000200000000000p-1022)))
   776  (assert_return (invoke "f") (f64.const -0x0.0000000000002p-1022))
   777  (module (func (export "f") (result f64) (f64.const +0x0.000000000000200000000001p-1022)))
   778  (assert_return (invoke "f") (f64.const +0x0.0000000000002p-1022))
   779  (module (func (export "f") (result f64) (f64.const -0x0.000000000000200000000001p-1022)))
   780  (assert_return (invoke "f") (f64.const -0x0.0000000000002p-1022))
   781  (module (func (export "f") (result f64) (f64.const +0x0.00000000000027ffffffffffp-1022)))
   782  (assert_return (invoke "f") (f64.const +0x0.0000000000002p-1022))
   783  (module (func (export "f") (result f64) (f64.const -0x0.00000000000027ffffffffffp-1022)))
   784  (assert_return (invoke "f") (f64.const -0x0.0000000000002p-1022))
   785  (module (func (export "f") (result f64) (f64.const +0x0.000000000000280000000000p-1022)))
   786  (assert_return (invoke "f") (f64.const +0x0.0000000000002p-1022))
   787  (module (func (export "f") (result f64) (f64.const -0x0.000000000000280000000000p-1022)))
   788  (assert_return (invoke "f") (f64.const -0x0.0000000000002p-1022))
   789  (module (func (export "f") (result f64) (f64.const +0x1.000000000000280000000001p-1022)))
   790  (assert_return (invoke "f") (f64.const +0x1.0000000000003p-1022))
   791  (module (func (export "f") (result f64) (f64.const -0x1.000000000000280000000001p-1022)))
   792  (assert_return (invoke "f") (f64.const -0x1.0000000000003p-1022))
   793  
   794  ;; f64, round down at limit to infinity
   795  (module (func (export "f") (result f64) (f64.const +0x1.fffffffffffff4p1023)))
   796  (assert_return (invoke "f") (f64.const +0x1.fffffffffffffp1023))
   797  (module (func (export "f") (result f64) (f64.const -0x1.fffffffffffff4p1023)))
   798  (assert_return (invoke "f") (f64.const -0x1.fffffffffffffp1023))
   799  (module (func (export "f") (result f64) (f64.const +0x1.fffffffffffff7ffffffp1023)))
   800  (assert_return (invoke "f") (f64.const +0x1.fffffffffffffp1023))
   801  (module (func (export "f") (result f64) (f64.const -0x1.fffffffffffff7ffffffp1023)))
   802  (assert_return (invoke "f") (f64.const -0x1.fffffffffffffp1023))