Skip to content

Commit 8c11e8c

Browse files
committed
add fused select+cmp .wast tests
Signed-off-by: Robin Freyler <[email protected]>
1 parent 962c2a2 commit 8c11e8c

30 files changed

+3633
-0
lines changed

tests/fuse-select/f32_ge.wast

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

tests/fuse-select/f32_gt.wast

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

tests/fuse-select/f32_le.wast

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

0 commit comments

Comments
 (0)