Skip to content

Commit 7869878

Browse files
committed
extend fuse-select tests with nan inputs
Signed-off-by: Robin Freyler <[email protected]>
1 parent 8c11e8c commit 7869878

File tree

8 files changed

+256
-0
lines changed

8 files changed

+256
-0
lines changed

tests/fuse-select/f32_ge.wast

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@
2626
(invoke "fused(f32.ge,select)" (f32.const 1) (f32.const 1))
2727
(i32.const 10)
2828
)
29+
(assert_return
30+
(invoke "fused(f32.ge,select)" (f32.const nan) (f32.const 1))
31+
(i32.const 20)
32+
)
33+
(assert_return
34+
(invoke "fused(f32.ge,select)" (f32.const 1) (f32.const nan))
35+
(i32.const 20)
36+
)
2937

3038
(module
3139
(func (export "fused(f32.ge,i32.eqz,select)") (param f32 f32) (result i32)
@@ -57,6 +65,14 @@
5765
(invoke "fused(f32.ge,i32.eqz,select)" (f32.const 1) (f32.const 1))
5866
(i32.const 20)
5967
)
68+
(assert_return
69+
(invoke "fused(f32.ge,i32.eqz,select)" (f32.const nan) (f32.const 1))
70+
(i32.const 10)
71+
)
72+
(assert_return
73+
(invoke "fused(f32.ge,i32.eqz,select)" (f32.const 1) (f32.const nan))
74+
(i32.const 10)
75+
)
6076

6177
(module
6278
(func (export "fused(f32.ge,i32.eqz,i32.eqz,select)") (param f32 f32) (result i32)
@@ -90,6 +106,14 @@
90106
(invoke "fused(f32.ge,i32.eqz,i32.eqz,select)" (f32.const 1) (f32.const 1))
91107
(i32.const 10)
92108
)
109+
(assert_return
110+
(invoke "fused(f32.ge,i32.eqz,i32.eqz,select)" (f32.const nan) (f32.const 1))
111+
(i32.const 20)
112+
)
113+
(assert_return
114+
(invoke "fused(f32.ge,i32.eqz,i32.eqz,select)" (f32.const 1) (f32.const nan))
115+
(i32.const 20)
116+
)
93117

94118
(module
95119
(func (export "fused(f32.ge,i32.nez,select)") (param f32 f32) (result i32)
@@ -122,3 +146,11 @@
122146
(invoke "fused(f32.ge,i32.nez,select)" (f32.const 1) (f32.const 1))
123147
(i32.const 10)
124148
)
149+
(assert_return
150+
(invoke "fused(f32.ge,i32.nez,select)" (f32.const nan) (f32.const 1))
151+
(i32.const 20)
152+
)
153+
(assert_return
154+
(invoke "fused(f32.ge,i32.nez,select)" (f32.const 1) (f32.const nan))
155+
(i32.const 20)
156+
)

tests/fuse-select/f32_gt.wast

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@
2626
(invoke "fused(f32.gt,select)" (f32.const 1) (f32.const 1))
2727
(i32.const 20)
2828
)
29+
(assert_return
30+
(invoke "fused(f32.gt,select)" (f32.const nan) (f32.const 1))
31+
(i32.const 20)
32+
)
33+
(assert_return
34+
(invoke "fused(f32.gt,select)" (f32.const 1) (f32.const nan))
35+
(i32.const 20)
36+
)
2937

3038
(module
3139
(func (export "fused(f32.gt,i32.eqz,select)") (param f32 f32) (result i32)
@@ -57,6 +65,14 @@
5765
(invoke "fused(f32.gt,i32.eqz,select)" (f32.const 1) (f32.const 1))
5866
(i32.const 10)
5967
)
68+
(assert_return
69+
(invoke "fused(f32.gt,i32.eqz,select)" (f32.const nan) (f32.const 1))
70+
(i32.const 10)
71+
)
72+
(assert_return
73+
(invoke "fused(f32.gt,i32.eqz,select)" (f32.const 1) (f32.const nan))
74+
(i32.const 10)
75+
)
6076

6177
(module
6278
(func (export "fused(f32.gt,i32.eqz,i32.eqz,select)") (param f32 f32) (result i32)
@@ -90,6 +106,14 @@
90106
(invoke "fused(f32.gt,i32.eqz,i32.eqz,select)" (f32.const 1) (f32.const 1))
91107
(i32.const 20)
92108
)
109+
(assert_return
110+
(invoke "fused(f32.gt,i32.eqz,i32.eqz,select)" (f32.const nan) (f32.const 1))
111+
(i32.const 20)
112+
)
113+
(assert_return
114+
(invoke "fused(f32.gt,i32.eqz,i32.eqz,select)" (f32.const 1) (f32.const nan))
115+
(i32.const 20)
116+
)
93117

94118
(module
95119
(func (export "fused(f32.gt,i32.nez,select)") (param f32 f32) (result i32)
@@ -122,3 +146,11 @@
122146
(invoke "fused(f32.gt,i32.nez,select)" (f32.const 1) (f32.const 1))
123147
(i32.const 20)
124148
)
149+
(assert_return
150+
(invoke "fused(f32.gt,i32.nez,select)" (f32.const nan) (f32.const 1))
151+
(i32.const 20)
152+
)
153+
(assert_return
154+
(invoke "fused(f32.gt,i32.nez,select)" (f32.const 1) (f32.const nan))
155+
(i32.const 20)
156+
)

tests/fuse-select/f32_le.wast

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@
2626
(invoke "fused(f32.le,select)" (f32.const 1) (f32.const 1))
2727
(i32.const 10)
2828
)
29+
(assert_return
30+
(invoke "fused(f32.le,select)" (f32.const nan) (f32.const 1))
31+
(i32.const 20)
32+
)
33+
(assert_return
34+
(invoke "fused(f32.le,select)" (f32.const 1) (f32.const nan))
35+
(i32.const 20)
36+
)
2937

3038
(module
3139
(func (export "fused(f32.le,i32.eqz,select)") (param f32 f32) (result i32)
@@ -57,6 +65,14 @@
5765
(invoke "fused(f32.le,i32.eqz,select)" (f32.const 1) (f32.const 1))
5866
(i32.const 20)
5967
)
68+
(assert_return
69+
(invoke "fused(f32.le,i32.eqz,select)" (f32.const nan) (f32.const 1))
70+
(i32.const 10)
71+
)
72+
(assert_return
73+
(invoke "fused(f32.le,i32.eqz,select)" (f32.const 1) (f32.const nan))
74+
(i32.const 10)
75+
)
6076

6177
(module
6278
(func (export "fused(f32.le,i32.eqz,i32.eqz,select)") (param f32 f32) (result i32)
@@ -90,6 +106,14 @@
90106
(invoke "fused(f32.le,i32.eqz,i32.eqz,select)" (f32.const 1) (f32.const 1))
91107
(i32.const 10)
92108
)
109+
(assert_return
110+
(invoke "fused(f32.le,i32.eqz,i32.eqz,select)" (f32.const nan) (f32.const 1))
111+
(i32.const 20)
112+
)
113+
(assert_return
114+
(invoke "fused(f32.le,i32.eqz,i32.eqz,select)" (f32.const 1) (f32.const nan))
115+
(i32.const 20)
116+
)
93117

94118
(module
95119
(func (export "fused(f32.le,i32.nez,select)") (param f32 f32) (result i32)
@@ -122,3 +146,11 @@
122146
(invoke "fused(f32.le,i32.nez,select)" (f32.const 1) (f32.const 1))
123147
(i32.const 10)
124148
)
149+
(assert_return
150+
(invoke "fused(f32.le,i32.nez,select)" (f32.const nan) (f32.const 1))
151+
(i32.const 20)
152+
)
153+
(assert_return
154+
(invoke "fused(f32.le,i32.nez,select)" (f32.const 1) (f32.const nan))
155+
(i32.const 20)
156+
)

tests/fuse-select/f32_lt.wast

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@
2626
(invoke "fused(f32.lt,select)" (f32.const 1) (f32.const 1))
2727
(i32.const 20)
2828
)
29+
(assert_return
30+
(invoke "fused(f32.lt,select)" (f32.const nan) (f32.const 1))
31+
(i32.const 20)
32+
)
33+
(assert_return
34+
(invoke "fused(f32.lt,select)" (f32.const 1) (f32.const nan))
35+
(i32.const 20)
36+
)
2937

3038
(module
3139
(func (export "fused(f32.lt,i32.eqz,select)") (param f32 f32) (result i32)
@@ -57,6 +65,14 @@
5765
(invoke "fused(f32.lt,i32.eqz,select)" (f32.const 1) (f32.const 1))
5866
(i32.const 10)
5967
)
68+
(assert_return
69+
(invoke "fused(f32.lt,i32.eqz,select)" (f32.const nan) (f32.const 1))
70+
(i32.const 10)
71+
)
72+
(assert_return
73+
(invoke "fused(f32.lt,i32.eqz,select)" (f32.const 1) (f32.const nan))
74+
(i32.const 10)
75+
)
6076

6177
(module
6278
(func (export "fused(f32.lt,i32.eqz,i32.eqz,select)") (param f32 f32) (result i32)
@@ -90,6 +106,14 @@
90106
(invoke "fused(f32.lt,i32.eqz,i32.eqz,select)" (f32.const 1) (f32.const 1))
91107
(i32.const 20)
92108
)
109+
(assert_return
110+
(invoke "fused(f32.lt,i32.eqz,i32.eqz,select)" (f32.const nan) (f32.const 1))
111+
(i32.const 20)
112+
)
113+
(assert_return
114+
(invoke "fused(f32.lt,i32.eqz,i32.eqz,select)" (f32.const 1) (f32.const nan))
115+
(i32.const 20)
116+
)
93117

94118
(module
95119
(func (export "fused(f32.lt,i32.nez,select)") (param f32 f32) (result i32)
@@ -122,3 +146,11 @@
122146
(invoke "fused(f32.lt,i32.nez,select)" (f32.const 1) (f32.const 1))
123147
(i32.const 20)
124148
)
149+
(assert_return
150+
(invoke "fused(f32.lt,i32.nez,select)" (f32.const nan) (f32.const 1))
151+
(i32.const 20)
152+
)
153+
(assert_return
154+
(invoke "fused(f32.lt,i32.nez,select)" (f32.const 1) (f32.const nan))
155+
(i32.const 20)
156+
)

tests/fuse-select/f64_ge.wast

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@
2626
(invoke "fused(f64.ge,select)" (f64.const 1) (f64.const 1))
2727
(i32.const 10)
2828
)
29+
(assert_return
30+
(invoke "fused(f64.ge,select)" (f64.const nan) (f64.const 1))
31+
(i32.const 20)
32+
)
33+
(assert_return
34+
(invoke "fused(f64.ge,select)" (f64.const 1) (f64.const nan))
35+
(i32.const 20)
36+
)
2937

3038
(module
3139
(func (export "fused(f64.ge,i32.eqz,select)") (param f64 f64) (result i32)
@@ -57,6 +65,14 @@
5765
(invoke "fused(f64.ge,i32.eqz,select)" (f64.const 1) (f64.const 1))
5866
(i32.const 20)
5967
)
68+
(assert_return
69+
(invoke "fused(f64.ge,i32.eqz,select)" (f64.const nan) (f64.const 1))
70+
(i32.const 10)
71+
)
72+
(assert_return
73+
(invoke "fused(f64.ge,i32.eqz,select)" (f64.const 1) (f64.const nan))
74+
(i32.const 10)
75+
)
6076

6177
(module
6278
(func (export "fused(f64.ge,i32.eqz,i32.eqz,select)") (param f64 f64) (result i32)
@@ -90,6 +106,14 @@
90106
(invoke "fused(f64.ge,i32.eqz,i32.eqz,select)" (f64.const 1) (f64.const 1))
91107
(i32.const 10)
92108
)
109+
(assert_return
110+
(invoke "fused(f64.ge,i32.eqz,i32.eqz,select)" (f64.const nan) (f64.const 1))
111+
(i32.const 20)
112+
)
113+
(assert_return
114+
(invoke "fused(f64.ge,i32.eqz,i32.eqz,select)" (f64.const 1) (f64.const nan))
115+
(i32.const 20)
116+
)
93117

94118
(module
95119
(func (export "fused(f64.ge,i32.nez,select)") (param f64 f64) (result i32)
@@ -122,3 +146,11 @@
122146
(invoke "fused(f64.ge,i32.nez,select)" (f64.const 1) (f64.const 1))
123147
(i32.const 10)
124148
)
149+
(assert_return
150+
(invoke "fused(f64.ge,i32.nez,select)" (f64.const nan) (f64.const 1))
151+
(i32.const 20)
152+
)
153+
(assert_return
154+
(invoke "fused(f64.ge,i32.nez,select)" (f64.const 1) (f64.const nan))
155+
(i32.const 20)
156+
)

tests/fuse-select/f64_gt.wast

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@
2626
(invoke "fused(f64.gt,select)" (f64.const 1) (f64.const 1))
2727
(i32.const 20)
2828
)
29+
(assert_return
30+
(invoke "fused(f64.gt,select)" (f64.const nan) (f64.const 1))
31+
(i32.const 20)
32+
)
33+
(assert_return
34+
(invoke "fused(f64.gt,select)" (f64.const 1) (f64.const nan))
35+
(i32.const 20)
36+
)
2937

3038
(module
3139
(func (export "fused(f64.gt,i32.eqz,select)") (param f64 f64) (result i32)
@@ -57,6 +65,14 @@
5765
(invoke "fused(f64.gt,i32.eqz,select)" (f64.const 1) (f64.const 1))
5866
(i32.const 10)
5967
)
68+
(assert_return
69+
(invoke "fused(f64.gt,i32.eqz,select)" (f64.const nan) (f64.const 1))
70+
(i32.const 10)
71+
)
72+
(assert_return
73+
(invoke "fused(f64.gt,i32.eqz,select)" (f64.const 1) (f64.const nan))
74+
(i32.const 10)
75+
)
6076

6177
(module
6278
(func (export "fused(f64.gt,i32.eqz,i32.eqz,select)") (param f64 f64) (result i32)
@@ -90,6 +106,14 @@
90106
(invoke "fused(f64.gt,i32.eqz,i32.eqz,select)" (f64.const 1) (f64.const 1))
91107
(i32.const 20)
92108
)
109+
(assert_return
110+
(invoke "fused(f64.gt,i32.eqz,i32.eqz,select)" (f64.const nan) (f64.const 1))
111+
(i32.const 20)
112+
)
113+
(assert_return
114+
(invoke "fused(f64.gt,i32.eqz,i32.eqz,select)" (f64.const 1) (f64.const nan))
115+
(i32.const 20)
116+
)
93117

94118
(module
95119
(func (export "fused(f64.gt,i32.nez,select)") (param f64 f64) (result i32)
@@ -122,3 +146,11 @@
122146
(invoke "fused(f64.gt,i32.nez,select)" (f64.const 1) (f64.const 1))
123147
(i32.const 20)
124148
)
149+
(assert_return
150+
(invoke "fused(f64.gt,i32.nez,select)" (f64.const nan) (f64.const 1))
151+
(i32.const 20)
152+
)
153+
(assert_return
154+
(invoke "fused(f64.gt,i32.nez,select)" (f64.const 1) (f64.const nan))
155+
(i32.const 20)
156+
)

tests/fuse-select/f64_le.wast

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@
2626
(invoke "fused(f64.le,select)" (f64.const 1) (f64.const 1))
2727
(i32.const 10)
2828
)
29+
(assert_return
30+
(invoke "fused(f64.le,select)" (f64.const nan) (f64.const 1))
31+
(i32.const 20)
32+
)
33+
(assert_return
34+
(invoke "fused(f64.le,select)" (f64.const 1) (f64.const nan))
35+
(i32.const 20)
36+
)
2937

3038
(module
3139
(func (export "fused(f64.le,i32.eqz,select)") (param f64 f64) (result i32)
@@ -57,6 +65,14 @@
5765
(invoke "fused(f64.le,i32.eqz,select)" (f64.const 1) (f64.const 1))
5866
(i32.const 20)
5967
)
68+
(assert_return
69+
(invoke "fused(f64.le,i32.eqz,select)" (f64.const nan) (f64.const 1))
70+
(i32.const 10)
71+
)
72+
(assert_return
73+
(invoke "fused(f64.le,i32.eqz,select)" (f64.const 1) (f64.const nan))
74+
(i32.const 10)
75+
)
6076

6177
(module
6278
(func (export "fused(f64.le,i32.eqz,i32.eqz,select)") (param f64 f64) (result i32)
@@ -90,6 +106,14 @@
90106
(invoke "fused(f64.le,i32.eqz,i32.eqz,select)" (f64.const 1) (f64.const 1))
91107
(i32.const 10)
92108
)
109+
(assert_return
110+
(invoke "fused(f64.le,i32.eqz,i32.eqz,select)" (f64.const nan) (f64.const 1))
111+
(i32.const 20)
112+
)
113+
(assert_return
114+
(invoke "fused(f64.le,i32.eqz,i32.eqz,select)" (f64.const 1) (f64.const nan))
115+
(i32.const 20)
116+
)
93117

94118
(module
95119
(func (export "fused(f64.le,i32.nez,select)") (param f64 f64) (result i32)
@@ -122,3 +146,11 @@
122146
(invoke "fused(f64.le,i32.nez,select)" (f64.const 1) (f64.const 1))
123147
(i32.const 10)
124148
)
149+
(assert_return
150+
(invoke "fused(f64.le,i32.nez,select)" (f64.const nan) (f64.const 1))
151+
(i32.const 20)
152+
)
153+
(assert_return
154+
(invoke "fused(f64.le,i32.nez,select)" (f64.const 1) (f64.const nan))
155+
(i32.const 20)
156+
)

0 commit comments

Comments
 (0)