Skip to content

Commit 019f8b2

Browse files
committed
add fuse-br .wast tests
Signed-off-by: Robin Freyler <[email protected]>
1 parent 6b0761c commit 019f8b2

30 files changed

+4526
-0
lines changed

tests/fuse-br/f32_ge.wast

Lines changed: 212 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,212 @@
1+
(module
2+
(func (export "fused(f32.ge)") (param f32 f32) (result i32)
3+
(drop
4+
(br_if 0
5+
(i32.const 10) ;; case: true
6+
(f32.ge
7+
(local.get 0)
8+
(local.get 1)
9+
)
10+
)
11+
)
12+
(i32.const 20) ;; case: false
13+
)
14+
)
15+
(assert_return
16+
(invoke "fused(f32.ge)" (f32.const 0.0) (f32.const 0.0))
17+
(i32.const 10)
18+
)
19+
(assert_return
20+
(invoke "fused(f32.ge)" (f32.const 0.0) (f32.const 1.0))
21+
(i32.const 20)
22+
)
23+
(assert_return
24+
(invoke "fused(f32.ge)" (f32.const 0.0) (f32.const nan))
25+
(i32.const 20)
26+
)
27+
(assert_return
28+
(invoke "fused(f32.ge)" (f32.const 1.0) (f32.const 0.0))
29+
(i32.const 10)
30+
)
31+
(assert_return
32+
(invoke "fused(f32.ge)" (f32.const 1.0) (f32.const 1.0))
33+
(i32.const 10)
34+
)
35+
(assert_return
36+
(invoke "fused(f32.ge)" (f32.const 1.0) (f32.const nan))
37+
(i32.const 20)
38+
)
39+
(assert_return
40+
(invoke "fused(f32.ge)" (f32.const nan) (f32.const 0.0))
41+
(i32.const 20)
42+
)
43+
(assert_return
44+
(invoke "fused(f32.ge)" (f32.const nan) (f32.const 1.0))
45+
(i32.const 20)
46+
)
47+
(assert_return
48+
(invoke "fused(f32.ge)" (f32.const nan) (f32.const nan))
49+
(i32.const 20)
50+
)
51+
52+
(module
53+
(func (export "fused(f32.ge,i32.eqz)") (param f32 f32) (result i32)
54+
(drop
55+
(br_if 0
56+
(i32.const 10) ;; case: true
57+
(i32.eqz
58+
(f32.ge
59+
(local.get 0)
60+
(local.get 1)
61+
)
62+
)
63+
)
64+
)
65+
(i32.const 20) ;; case: false
66+
)
67+
)
68+
(assert_return
69+
(invoke "fused(f32.ge,i32.eqz)" (f32.const 0.0) (f32.const 0.0))
70+
(i32.const 20)
71+
)
72+
(assert_return
73+
(invoke "fused(f32.ge,i32.eqz)" (f32.const 0.0) (f32.const 1.0))
74+
(i32.const 10)
75+
)
76+
(assert_return
77+
(invoke "fused(f32.ge,i32.eqz)" (f32.const 0.0) (f32.const nan))
78+
(i32.const 10)
79+
)
80+
(assert_return
81+
(invoke "fused(f32.ge,i32.eqz)" (f32.const 1.0) (f32.const 0.0))
82+
(i32.const 20)
83+
)
84+
(assert_return
85+
(invoke "fused(f32.ge,i32.eqz)" (f32.const 1.0) (f32.const 1.0))
86+
(i32.const 20)
87+
)
88+
(assert_return
89+
(invoke "fused(f32.ge,i32.eqz)" (f32.const 1.0) (f32.const nan))
90+
(i32.const 10)
91+
)
92+
(assert_return
93+
(invoke "fused(f32.ge,i32.eqz)" (f32.const nan) (f32.const 0.0))
94+
(i32.const 10)
95+
)
96+
(assert_return
97+
(invoke "fused(f32.ge,i32.eqz)" (f32.const nan) (f32.const 1.0))
98+
(i32.const 10)
99+
)
100+
(assert_return
101+
(invoke "fused(f32.ge,i32.eqz)" (f32.const nan) (f32.const nan))
102+
(i32.const 10)
103+
)
104+
105+
(module
106+
(func (export "fused(f32.ge,i32.eqz,i32.eqz)") (param f32 f32) (result i32)
107+
(drop
108+
(br_if 0
109+
(i32.const 10) ;; case: true
110+
(i32.eqz
111+
(i32.eqz
112+
(f32.ge
113+
(local.get 0)
114+
(local.get 1)
115+
)
116+
)
117+
)
118+
)
119+
)
120+
(i32.const 20) ;; case: false
121+
)
122+
)
123+
(assert_return
124+
(invoke "fused(f32.ge,i32.eqz,i32.eqz)" (f32.const 0.0) (f32.const 0.0))
125+
(i32.const 10)
126+
)
127+
(assert_return
128+
(invoke "fused(f32.ge,i32.eqz,i32.eqz)" (f32.const 0.0) (f32.const 1.0))
129+
(i32.const 20)
130+
)
131+
(assert_return
132+
(invoke "fused(f32.ge,i32.eqz,i32.eqz)" (f32.const 0.0) (f32.const nan))
133+
(i32.const 20)
134+
)
135+
(assert_return
136+
(invoke "fused(f32.ge,i32.eqz,i32.eqz)" (f32.const 1.0) (f32.const 0.0))
137+
(i32.const 10)
138+
)
139+
(assert_return
140+
(invoke "fused(f32.ge,i32.eqz,i32.eqz)" (f32.const 1.0) (f32.const 1.0))
141+
(i32.const 10)
142+
)
143+
(assert_return
144+
(invoke "fused(f32.ge,i32.eqz,i32.eqz)" (f32.const 1.0) (f32.const nan))
145+
(i32.const 20)
146+
)
147+
(assert_return
148+
(invoke "fused(f32.ge,i32.eqz,i32.eqz)" (f32.const nan) (f32.const 0.0))
149+
(i32.const 20)
150+
)
151+
(assert_return
152+
(invoke "fused(f32.ge,i32.eqz,i32.eqz)" (f32.const nan) (f32.const 1.0))
153+
(i32.const 20)
154+
)
155+
(assert_return
156+
(invoke "fused(f32.ge,i32.eqz,i32.eqz)" (f32.const nan) (f32.const nan))
157+
(i32.const 20)
158+
)
159+
160+
(module
161+
(func (export "fused(f32.ge,i32.nez)") (param f32 f32) (result i32)
162+
(drop
163+
(br_if 0
164+
(i32.const 10) ;; case: true
165+
(i32.ne
166+
(f32.ge
167+
(local.get 0)
168+
(local.get 1)
169+
)
170+
(i32.const 0)
171+
)
172+
)
173+
)
174+
(i32.const 20) ;; case: false
175+
)
176+
)
177+
(assert_return
178+
(invoke "fused(f32.ge,i32.nez)" (f32.const 0.0) (f32.const 0.0))
179+
(i32.const 10)
180+
)
181+
(assert_return
182+
(invoke "fused(f32.ge,i32.nez)" (f32.const 0.0) (f32.const 1.0))
183+
(i32.const 20)
184+
)
185+
(assert_return
186+
(invoke "fused(f32.ge,i32.nez)" (f32.const 0.0) (f32.const nan))
187+
(i32.const 20)
188+
)
189+
(assert_return
190+
(invoke "fused(f32.ge,i32.nez)" (f32.const 1.0) (f32.const 0.0))
191+
(i32.const 10)
192+
)
193+
(assert_return
194+
(invoke "fused(f32.ge,i32.nez)" (f32.const 1.0) (f32.const 1.0))
195+
(i32.const 10)
196+
)
197+
(assert_return
198+
(invoke "fused(f32.ge,i32.nez)" (f32.const 1.0) (f32.const nan))
199+
(i32.const 20)
200+
)
201+
(assert_return
202+
(invoke "fused(f32.ge,i32.nez)" (f32.const nan) (f32.const 0.0))
203+
(i32.const 20)
204+
)
205+
(assert_return
206+
(invoke "fused(f32.ge,i32.nez)" (f32.const nan) (f32.const 1.0))
207+
(i32.const 20)
208+
)
209+
(assert_return
210+
(invoke "fused(f32.ge,i32.nez)" (f32.const nan) (f32.const nan))
211+
(i32.const 20)
212+
)

0 commit comments

Comments
 (0)