40af590f52a7caa60a7e180734f2892a928ffe5b
[platform/framework/web/lwnode.git] /
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