Skip to content

Commit 6b0761c

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

30 files changed

+3897
-0
lines changed

tests/fuse-if/f32_ge.wast

Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
(module
2+
(func (export "fused(f32.ge)") (param f32 f32) (result i32)
3+
(if (result i32)
4+
(f32.ge
5+
(local.get 0)
6+
(local.get 1)
7+
)
8+
(then (i32.const 10)) ;; case: true
9+
(else (i32.const 20)) ;; case: false
10+
)
11+
)
12+
)
13+
(assert_return
14+
(invoke "fused(f32.ge)" (f32.const 0) (f32.const 0))
15+
(i32.const 10)
16+
)
17+
(assert_return
18+
(invoke "fused(f32.ge)" (f32.const 0) (f32.const 1))
19+
(i32.const 20)
20+
)
21+
(assert_return
22+
(invoke "fused(f32.ge)" (f32.const 1) (f32.const 0))
23+
(i32.const 10)
24+
)
25+
(assert_return
26+
(invoke "fused(f32.ge)" (f32.const 1) (f32.const 1))
27+
(i32.const 10)
28+
)
29+
(assert_return
30+
(invoke "fused(f32.ge)" (f32.const 1) (f32.const nan))
31+
(i32.const 20)
32+
)
33+
(assert_return
34+
(invoke "fused(f32.ge)" (f32.const nan) (f32.const 1))
35+
(i32.const 20)
36+
)
37+
38+
(module
39+
(func (export "fused(f32.ge,i32.eqz)") (param f32 f32) (result i32)
40+
(if (result i32)
41+
(i32.eqz
42+
(f32.ge
43+
(local.get 0)
44+
(local.get 1)
45+
)
46+
)
47+
(then (i32.const 10)) ;; case: true
48+
(else (i32.const 20)) ;; case: false
49+
)
50+
)
51+
)
52+
(assert_return
53+
(invoke "fused(f32.ge,i32.eqz)" (f32.const 0) (f32.const 0))
54+
(i32.const 20)
55+
)
56+
(assert_return
57+
(invoke "fused(f32.ge,i32.eqz)" (f32.const 0) (f32.const 1))
58+
(i32.const 10)
59+
)
60+
(assert_return
61+
(invoke "fused(f32.ge,i32.eqz)" (f32.const 1) (f32.const 0))
62+
(i32.const 20)
63+
)
64+
(assert_return
65+
(invoke "fused(f32.ge,i32.eqz)" (f32.const 1) (f32.const 1))
66+
(i32.const 20)
67+
)
68+
(assert_return
69+
(invoke "fused(f32.ge,i32.eqz)" (f32.const 1) (f32.const nan))
70+
(i32.const 10)
71+
)
72+
(assert_return
73+
(invoke "fused(f32.ge,i32.eqz)" (f32.const nan) (f32.const 1))
74+
(i32.const 10)
75+
)
76+
77+
(module
78+
(func (export "fused(f32.ge,i32.eqz,i32.eqz)") (param f32 f32) (result i32)
79+
(if (result i32)
80+
(i32.eqz
81+
(i32.eqz
82+
(f32.ge
83+
(local.get 0)
84+
(local.get 1)
85+
)
86+
)
87+
)
88+
(then (i32.const 10)) ;; case: true
89+
(else (i32.const 20)) ;; case: false
90+
)
91+
)
92+
)
93+
(assert_return
94+
(invoke "fused(f32.ge,i32.eqz,i32.eqz)" (f32.const 0) (f32.const 0))
95+
(i32.const 10)
96+
)
97+
(assert_return
98+
(invoke "fused(f32.ge,i32.eqz,i32.eqz)" (f32.const 0) (f32.const 1))
99+
(i32.const 20)
100+
)
101+
(assert_return
102+
(invoke "fused(f32.ge,i32.eqz,i32.eqz)" (f32.const 1) (f32.const 0))
103+
(i32.const 10)
104+
)
105+
(assert_return
106+
(invoke "fused(f32.ge,i32.eqz,i32.eqz)" (f32.const 1) (f32.const 1))
107+
(i32.const 10)
108+
)
109+
(assert_return
110+
(invoke "fused(f32.ge,i32.eqz,i32.eqz)" (f32.const 1) (f32.const nan))
111+
(i32.const 20)
112+
)
113+
(assert_return
114+
(invoke "fused(f32.ge,i32.eqz,i32.eqz)" (f32.const nan) (f32.const 1))
115+
(i32.const 20)
116+
)
117+
118+
(module
119+
(func (export "fused(f32.ge,i32.nez)") (param f32 f32) (result i32)
120+
(if (result i32)
121+
(i32.ne
122+
(f32.ge
123+
(local.get 0)
124+
(local.get 1)
125+
)
126+
(i32.const 0)
127+
)
128+
(then (i32.const 10)) ;; case: true
129+
(else (i32.const 20)) ;; case: false
130+
)
131+
)
132+
)
133+
(assert_return
134+
(invoke "fused(f32.ge,i32.nez)" (f32.const 0) (f32.const 0))
135+
(i32.const 10)
136+
)
137+
(assert_return
138+
(invoke "fused(f32.ge,i32.nez)" (f32.const 0) (f32.const 1))
139+
(i32.const 20)
140+
)
141+
(assert_return
142+
(invoke "fused(f32.ge,i32.nez)" (f32.const 1) (f32.const 0))
143+
(i32.const 10)
144+
)
145+
(assert_return
146+
(invoke "fused(f32.ge,i32.nez)" (f32.const 1) (f32.const 1))
147+
(i32.const 10)
148+
)
149+
(assert_return
150+
(invoke "fused(f32.ge,i32.nez)" (f32.const 1) (f32.const nan))
151+
(i32.const 20)
152+
)
153+
(assert_return
154+
(invoke "fused(f32.ge,i32.nez)" (f32.const nan) (f32.const 1))
155+
(i32.const 20)
156+
)
157+

tests/fuse-if/f32_gt.wast

Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
(module
2+
(func (export "fused(f32.gt)") (param f32 f32) (result i32)
3+
(if (result i32)
4+
(f32.gt
5+
(local.get 0)
6+
(local.get 1)
7+
)
8+
(then (i32.const 10)) ;; case: true
9+
(else (i32.const 20)) ;; case: false
10+
)
11+
)
12+
)
13+
(assert_return
14+
(invoke "fused(f32.gt)" (f32.const 0) (f32.const 0))
15+
(i32.const 20)
16+
)
17+
(assert_return
18+
(invoke "fused(f32.gt)" (f32.const 0) (f32.const 1))
19+
(i32.const 20)
20+
)
21+
(assert_return
22+
(invoke "fused(f32.gt)" (f32.const 1) (f32.const 0))
23+
(i32.const 10)
24+
)
25+
(assert_return
26+
(invoke "fused(f32.gt)" (f32.const 1) (f32.const 1))
27+
(i32.const 20)
28+
)
29+
(assert_return
30+
(invoke "fused(f32.gt)" (f32.const 1) (f32.const nan))
31+
(i32.const 20)
32+
)
33+
(assert_return
34+
(invoke "fused(f32.gt)" (f32.const nan) (f32.const 1))
35+
(i32.const 20)
36+
)
37+
38+
(module
39+
(func (export "fused(f32.gt,i32.eqz)") (param f32 f32) (result i32)
40+
(if (result i32)
41+
(i32.eqz
42+
(f32.gt
43+
(local.get 0)
44+
(local.get 1)
45+
)
46+
)
47+
(then (i32.const 10)) ;; case: true
48+
(else (i32.const 20)) ;; case: false
49+
)
50+
)
51+
)
52+
(assert_return
53+
(invoke "fused(f32.gt,i32.eqz)" (f32.const 0) (f32.const 0))
54+
(i32.const 10)
55+
)
56+
(assert_return
57+
(invoke "fused(f32.gt,i32.eqz)" (f32.const 0) (f32.const 1))
58+
(i32.const 10)
59+
)
60+
(assert_return
61+
(invoke "fused(f32.gt,i32.eqz)" (f32.const 1) (f32.const 0))
62+
(i32.const 20)
63+
)
64+
(assert_return
65+
(invoke "fused(f32.gt,i32.eqz)" (f32.const 1) (f32.const 1))
66+
(i32.const 10)
67+
)
68+
(assert_return
69+
(invoke "fused(f32.gt,i32.eqz)" (f32.const 1) (f32.const nan))
70+
(i32.const 10)
71+
)
72+
(assert_return
73+
(invoke "fused(f32.gt,i32.eqz)" (f32.const nan) (f32.const 1))
74+
(i32.const 10)
75+
)
76+
77+
(module
78+
(func (export "fused(f32.gt,i32.eqz,i32.eqz)") (param f32 f32) (result i32)
79+
(if (result i32)
80+
(i32.eqz
81+
(i32.eqz
82+
(f32.gt
83+
(local.get 0)
84+
(local.get 1)
85+
)
86+
)
87+
)
88+
(then (i32.const 10)) ;; case: true
89+
(else (i32.const 20)) ;; case: false
90+
)
91+
)
92+
)
93+
(assert_return
94+
(invoke "fused(f32.gt,i32.eqz,i32.eqz)" (f32.const 0) (f32.const 0))
95+
(i32.const 20)
96+
)
97+
(assert_return
98+
(invoke "fused(f32.gt,i32.eqz,i32.eqz)" (f32.const 0) (f32.const 1))
99+
(i32.const 20)
100+
)
101+
(assert_return
102+
(invoke "fused(f32.gt,i32.eqz,i32.eqz)" (f32.const 1) (f32.const 0))
103+
(i32.const 10)
104+
)
105+
(assert_return
106+
(invoke "fused(f32.gt,i32.eqz,i32.eqz)" (f32.const 1) (f32.const 1))
107+
(i32.const 20)
108+
)
109+
(assert_return
110+
(invoke "fused(f32.gt,i32.eqz,i32.eqz)" (f32.const 1) (f32.const nan))
111+
(i32.const 20)
112+
)
113+
(assert_return
114+
(invoke "fused(f32.gt,i32.eqz,i32.eqz)" (f32.const nan) (f32.const 1))
115+
(i32.const 20)
116+
)
117+
118+
(module
119+
(func (export "fused(f32.gt,i32.nez)") (param f32 f32) (result i32)
120+
(if (result i32)
121+
(i32.ne
122+
(f32.gt
123+
(local.get 0)
124+
(local.get 1)
125+
)
126+
(i32.const 0)
127+
)
128+
(then (i32.const 10)) ;; case: true
129+
(else (i32.const 20)) ;; case: false
130+
)
131+
)
132+
)
133+
(assert_return
134+
(invoke "fused(f32.gt,i32.nez)" (f32.const 0) (f32.const 0))
135+
(i32.const 20)
136+
)
137+
(assert_return
138+
(invoke "fused(f32.gt,i32.nez)" (f32.const 0) (f32.const 1))
139+
(i32.const 20)
140+
)
141+
(assert_return
142+
(invoke "fused(f32.gt,i32.nez)" (f32.const 1) (f32.const 0))
143+
(i32.const 10)
144+
)
145+
(assert_return
146+
(invoke "fused(f32.gt,i32.nez)" (f32.const 1) (f32.const 1))
147+
(i32.const 20)
148+
)
149+
(assert_return
150+
(invoke "fused(f32.gt,i32.nez)" (f32.const 1) (f32.const nan))
151+
(i32.const 20)
152+
)
153+
(assert_return
154+
(invoke "fused(f32.gt,i32.nez)" (f32.const nan) (f32.const 1))
155+
(i32.const 20)
156+
)
157+

0 commit comments

Comments
 (0)