github.com/tetratelabs/wazero@v1.7.3-0.20240513003603-48f702e154b5/internal/integration_test/spectest/v2/testdata/simd_i32x4_trunc_sat_f32x4.wast (about)

     1  ;; Tests for i32x4 trunc sat conversions from float.
     2  
     3  (module
     4    (func (export "i32x4.trunc_sat_f32x4_s") (param v128) (result v128) (i32x4.trunc_sat_f32x4_s (local.get 0)))
     5    (func (export "i32x4.trunc_sat_f32x4_u") (param v128) (result v128) (i32x4.trunc_sat_f32x4_u (local.get 0)))
     6  )
     7  
     8  
     9  ;; i32x4.trunc_sat_f32x4_s
    10  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0.0 0.0 0.0 0.0))
    11                                                   (v128.const i32x4 0 0 0 0))
    12  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0.0 -0.0 -0.0 -0.0))
    13                                                   (v128.const i32x4 0 0 0 0))
    14  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 1.5 1.5 1.5 1.5))
    15                                                   (v128.const i32x4 1 1 1 1))
    16  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -1.5 -1.5 -1.5 -1.5))
    17                                                   (v128.const i32x4 -1 -1 -1 -1))
    18  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 1.9 1.9 1.9 1.9))
    19                                                   (v128.const i32x4 1 1 1 1))
    20  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 2.0 2.0 2.0 2.0))
    21                                                   (v128.const i32x4 2 2 2 2))
    22  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -1.9 -1.9 -1.9 -1.9))
    23                                                   (v128.const i32x4 -1 -1 -1 -1))
    24  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -2.0 -2.0 -2.0 -2.0))
    25                                                   (v128.const i32x4 -2 -2 -2 -2))
    26  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 2147483520.0 2147483520.0 2147483520.0 2147483520.0))
    27                                                   (v128.const i32x4 2147483520 2147483520 2147483520 2147483520))
    28  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -2147483520.0 -2147483520.0 -2147483520.0 -2147483520.0))
    29                                                   (v128.const i32x4 -2147483520 -2147483520 -2147483520 -2147483520))
    30  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 2147483648.0 2147483648.0 2147483648.0 2147483648.0))
    31                                                   (v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
    32  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -2147483648.0 -2147483648.0 -2147483648.0 -2147483648.0))
    33                                                   (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
    34  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 4294967294.0 4294967294.0 4294967294.0 4294967294.0))
    35                                                   (v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
    36  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -4294967294.0 -4294967294.0 -4294967294.0 -4294967294.0))
    37                                                   (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
    38  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 2147483647.0 2147483647.0 2147483647.0 2147483647.0))
    39                                                   (v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
    40  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -2147483647.0 -2147483647.0 -2147483647.0 -2147483647.0))
    41                                                   (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
    42  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 4294967294.0 4294967294.0 4294967294.0 4294967294.0))
    43                                                   (v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
    44  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 4294967295.0 4294967295.0 4294967295.0 4294967295.0))
    45                                                   (v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
    46  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 4294967296.0 4294967296.0 4294967296.0 4294967296.0))
    47                                                   (v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
    48  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))
    49                                                   (v128.const i32x4 0 0 0 0))
    50  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))
    51                                                   (v128.const i32x4 0 0 0 0))
    52  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))
    53                                                   (v128.const i32x4 0 0 0 0))
    54  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))
    55                                                   (v128.const i32x4 0 0 0 0))
    56  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))
    57                                                   (v128.const i32x4 0 0 0 0))
    58  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))
    59                                                   (v128.const i32x4 0 0 0 0))
    60  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))
    61                                                   (v128.const i32x4 1 1 1 1))
    62  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))
    63                                                   (v128.const i32x4 -1 -1 -1 -1))
    64  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1.19999ap+0 0x1.19999ap+0 0x1.19999ap+0 0x1.19999ap+0))
    65                                                   (v128.const i32x4 1 1 1 1))
    66  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1.19999ap+0 -0x1.19999ap+0 -0x1.19999ap+0 -0x1.19999ap+0))
    67                                                   (v128.const i32x4 -1 -1 -1 -1))
    68  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))
    69                                                   (v128.const i32x4 6 6 6 6))
    70  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))
    71                                                   (v128.const i32x4 -6 -6 -6 -6))
    72  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))
    73                                                   (v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
    74  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))
    75                                                   (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
    76  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1.ccccccp-1 0x1.ccccccp-1 0x1.ccccccp-1 0x1.ccccccp-1))
    77                                                   (v128.const i32x4 0 0 0 0))
    78  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1.ccccccp-1 -0x1.ccccccp-1 -0x1.ccccccp-1 -0x1.ccccccp-1))
    79                                                   (v128.const i32x4 0 0 0 0))
    80  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1.fffffep-1 0x1.fffffep-1 0x1.fffffep-1 0x1.fffffep-1))
    81                                                   (v128.const i32x4 0 0 0 0))
    82  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1.fffffep-1 -0x1.fffffep-1 -0x1.fffffep-1 -0x1.fffffep-1))
    83                                                   (v128.const i32x4 0 0 0 0))
    84  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))
    85                                                   (v128.const i32x4 6 6 6 6))
    86  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))
    87                                                   (v128.const i32x4 -6 -6 -6 -6))
    88  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))
    89                                                   (v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
    90  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))
    91                                                   (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
    92  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 +inf +inf +inf +inf))
    93                                                   (v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
    94  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -inf -inf -inf -inf))
    95                                                   (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
    96  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 +nan +nan +nan +nan))
    97                                                   (v128.const i32x4 0 0 0 0))
    98  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -nan -nan -nan -nan))
    99                                                   (v128.const i32x4 0 0 0 0))
   100  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 nan:0x444444 nan:0x444444 nan:0x444444 nan:0x444444))
   101                                                   (v128.const i32x4 0 0 0 0))
   102  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -nan:0x444444 -nan:0x444444 -nan:0x444444 -nan:0x444444))
   103                                                   (v128.const i32x4 0 0 0 0))
   104  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 42 42 42 42))
   105                                                   (v128.const i32x4 42 42 42 42))
   106  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -42 -42 -42 -42))
   107                                                   (v128.const i32x4 -42 -42 -42 -42))
   108  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0123456792.0 0123456792.0 0123456792.0 0123456792.0))
   109                                                   (v128.const i32x4 123456792 123456792 123456792 123456792))
   110  (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 01234567890.0 01234567890.0 01234567890.0 01234567890.0))
   111                                                   (v128.const i32x4 1234567936 1234567936 1234567936 1234567936))
   112  
   113  ;; i32x4.trunc_sat_f32x4_u
   114  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0.0 0.0 0.0 0.0))
   115                                                   (v128.const i32x4 0 0 0 0))
   116  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0.0 -0.0 -0.0 -0.0))
   117                                                   (v128.const i32x4 0 0 0 0))
   118  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 1.5 1.5 1.5 1.5))
   119                                                   (v128.const i32x4 1 1 1 1))
   120  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -1.5 -1.5 -1.5 -1.5))
   121                                                   (v128.const i32x4 0 0 0 0))
   122  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 1.9 1.9 1.9 1.9))
   123                                                   (v128.const i32x4 1 1 1 1))
   124  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 2.0 2.0 2.0 2.0))
   125                                                   (v128.const i32x4 2 2 2 2))
   126  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -1.9 -1.9 -1.9 -1.9))
   127                                                   (v128.const i32x4 0 0 0 0))
   128  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -2.0 -2.0 -2.0 -2.0))
   129                                                   (v128.const i32x4 0 0 0 0))
   130  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 2147483520.0 2147483520.0 2147483520.0 2147483520.0))
   131                                                   (v128.const i32x4 2147483520 2147483520 2147483520 2147483520))
   132  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -2147483520.0 -2147483520.0 -2147483520.0 -2147483520.0))
   133                                                   (v128.const i32x4 0 0 0 0))
   134  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 2147483648.0 2147483648.0 2147483648.0 2147483648.0))
   135                                                   (v128.const i32x4 2147483648 2147483648 2147483648 2147483648))
   136  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -2147483648.0 -2147483648.0 -2147483648.0 -2147483648.0))
   137                                                   (v128.const i32x4 0 0 0 0))
   138  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 4294967294.0 4294967294.0 4294967294.0 4294967294.0))
   139                                                   (v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
   140  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -4294967294.0 -4294967294.0 -4294967294.0 -4294967294.0))
   141                                                   (v128.const i32x4 0 0 0 0))
   142  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 2147483647.0 2147483647.0 2147483647.0 2147483647.0))
   143                                                   (v128.const i32x4 2147483648 2147483648 2147483648 2147483648))
   144  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -2147483647.0 -2147483647.0 -2147483647.0 -2147483647.0))
   145                                                   (v128.const i32x4 0 0 0 0))
   146  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 4294967294.0 4294967294.0 4294967294.0 4294967294.0))
   147                                                   (v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
   148  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 4294967295.0 4294967295.0 4294967295.0 4294967295.0))
   149                                                   (v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
   150  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 4294967296.0 4294967296.0 4294967296.0 4294967296.0))
   151                                                   (v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
   152  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))
   153                                                   (v128.const i32x4 0 0 0 0))
   154  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))
   155                                                   (v128.const i32x4 0 0 0 0))
   156  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))
   157                                                   (v128.const i32x4 0 0 0 0))
   158  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))
   159                                                   (v128.const i32x4 0 0 0 0))
   160  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))
   161                                                   (v128.const i32x4 0 0 0 0))
   162  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))
   163                                                   (v128.const i32x4 0 0 0 0))
   164  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))
   165                                                   (v128.const i32x4 1 1 1 1))
   166  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))
   167                                                   (v128.const i32x4 0 0 0 0))
   168  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1.19999ap+0 0x1.19999ap+0 0x1.19999ap+0 0x1.19999ap+0))
   169                                                   (v128.const i32x4 1 1 1 1))
   170  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1.19999ap+0 -0x1.19999ap+0 -0x1.19999ap+0 -0x1.19999ap+0))
   171                                                   (v128.const i32x4 0 0 0 0))
   172  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))
   173                                                   (v128.const i32x4 6 6 6 6))
   174  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))
   175                                                   (v128.const i32x4 0 0 0 0))
   176  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))
   177                                                   (v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
   178  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))
   179                                                   (v128.const i32x4 0 0 0 0))
   180  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1.ccccccp-1 0x1.ccccccp-1 0x1.ccccccp-1 0x1.ccccccp-1))
   181                                                   (v128.const i32x4 0 0 0 0))
   182  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1.ccccccp-1 -0x1.ccccccp-1 -0x1.ccccccp-1 -0x1.ccccccp-1))
   183                                                   (v128.const i32x4 0 0 0 0))
   184  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1.fffffep-1 0x1.fffffep-1 0x1.fffffep-1 0x1.fffffep-1))
   185                                                   (v128.const i32x4 0 0 0 0))
   186  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1.fffffep-1 -0x1.fffffep-1 -0x1.fffffep-1 -0x1.fffffep-1))
   187                                                   (v128.const i32x4 0 0 0 0))
   188  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))
   189                                                   (v128.const i32x4 6 6 6 6))
   190  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))
   191                                                   (v128.const i32x4 0 0 0 0))
   192  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))
   193                                                   (v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
   194  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))
   195                                                   (v128.const i32x4 0 0 0 0))
   196  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 +inf +inf +inf +inf))
   197                                                   (v128.const i32x4 4294967295 4294967295 4294967295 4294967295))
   198  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -inf -inf -inf -inf))
   199                                                   (v128.const i32x4 0 0 0 0))
   200  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 +nan +nan +nan +nan))
   201                                                   (v128.const i32x4 0 0 0 0))
   202  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -nan -nan -nan -nan))
   203                                                   (v128.const i32x4 0 0 0 0))
   204  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 nan:0x444444 nan:0x444444 nan:0x444444 nan:0x444444))
   205                                                   (v128.const i32x4 0 0 0 0))
   206  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -nan:0x444444 -nan:0x444444 -nan:0x444444 -nan:0x444444))
   207                                                   (v128.const i32x4 0 0 0 0))
   208  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 42 42 42 42))
   209                                                   (v128.const i32x4 42 42 42 42))
   210  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -42 -42 -42 -42))
   211                                                   (v128.const i32x4 0 0 0 0))
   212  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0123456792.0 0123456792.0 0123456792.0 0123456792.0))
   213                                                   (v128.const i32x4 123456792 123456792 123456792 123456792))
   214  (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 01234567890.0 01234567890.0 01234567890.0 01234567890.0))
   215                                                   (v128.const i32x4 1234567936 1234567936 1234567936 1234567936))
   216  
   217  ;; type check
   218  (assert_invalid (module (func (result v128) (i32x4.trunc_sat_f32x4_s (i32.const 0)))) "type mismatch")
   219  (assert_invalid (module (func (result v128) (i32x4.trunc_sat_f32x4_u (i32.const 0)))) "type mismatch")
   220  
   221  ;; Test operation with empty argument
   222  
   223  (assert_invalid
   224    (module
   225      (func $i32x4.trunc_sat_f32x4_s-arg-empty (result v128)
   226        (i32x4.trunc_sat_f32x4_s)
   227      )
   228    )
   229    "type mismatch"
   230  )
   231  (assert_invalid
   232    (module
   233      (func $i32x4.trunc_sat_f32x4_u-arg-empty (result v128)
   234        (i32x4.trunc_sat_f32x4_u)
   235      )
   236    )
   237    "type mismatch"
   238  )
   239