@@ -16,6 +16,10 @@ class Simdi64x2CmpCase(SimdCmpCase):
16
16
(module
17
17
(func (export "eq") (param $x v128) (param $y v128) (result v128) ({lane_type}.eq (local.get $x) (local.get $y)))
18
18
(func (export "ne") (param $x v128) (param $y v128) (result v128) ({lane_type}.ne (local.get $x) (local.get $y)))
19
+ (func (export "lt_s") (param $x v128) (param $y v128) (result v128) ({lane_type}.lt_s (local.get $x) (local.get $y)))
20
+ (func (export "le_s") (param $x v128) (param $y v128) (result v128) ({lane_type}.le_s (local.get $x) (local.get $y)))
21
+ (func (export "gt_s") (param $x v128) (param $y v128) (result v128) ({lane_type}.gt_s (local.get $x) (local.get $y)))
22
+ (func (export "ge_s") (param $x v128) (param $y v128) (result v128) ({lane_type}.ge_s (local.get $x) (local.get $y)))
19
23
)
20
24
21
25
{normal_case}
@@ -24,6 +28,10 @@ class Simdi64x2CmpCase(SimdCmpCase):
24
28
25
29
(assert_invalid (module (func (result v128) ({lane_type}.eq (i32.const 0) (f32.const 0)))) "type mismatch")
26
30
(assert_invalid (module (func (result v128) ({lane_type}.ne (i32.const 0) (f32.const 0)))) "type mismatch")
31
+ (assert_invalid (module (func (result v128) ({lane_type}.ge_s (i32.const 0) (f32.const 0)))) "type mismatch")
32
+ (assert_invalid (module (func (result v128) ({lane_type}.gt_s (i32.const 0) (f32.const 0)))) "type mismatch")
33
+ (assert_invalid (module (func (result v128) ({lane_type}.le_s (i32.const 0) (f32.const 0)))) "type mismatch")
34
+ (assert_invalid (module (func (result v128) ({lane_type}.lt_s (i32.const 0) (f32.const 0)))) "type mismatch")
27
35
"""
28
36
29
37
def get_case_data (self ):
@@ -57,6 +65,178 @@ def get_case_data(self):
57
65
case_data .append (['ne' , [['0x03020100' , '0x11100904' , '0x1A0B0A12' , '0xFFABAA1B' ],
58
66
['0x03020100' , '0x11100904' , '0x1A0B0A12' , '0xFFABAA1B' ]], '0' , forms ])
59
67
68
+ # lt_s
69
+ # i64x2.lt_s (i64x2) (i64x2)
70
+ case_data .append (['#' , 'lt_s' ])
71
+ case_data .append (['#' , 'i64x2.lt_s (i64x2) (i64x2)' ])
72
+
73
+ # hex vs hex
74
+ case_data .append (['#' , 'hex vs hex' ])
75
+ case_data .append (['lt_s' , ['0xFFFFFFFFFFFFFFFF' , '0xFFFFFFFFFFFFFFFF' ], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
76
+ case_data .append (['lt_s' , ['0x0000000000000000' , '0x0000000000000000' ], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
77
+ case_data .append (['lt_s' , ['0xF0F0F0F0F0F0F0F0' , '0xF0F0F0F0F0F0F0F0' ], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
78
+ case_data .append (['lt_s' , ['0x0F0F0F0F0F0F0F0F' , '0x0F0F0F0F0F0F0F0F' ], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
79
+ case_data .append (['lt_s' , [['0xFFFFFFFFFFFFFFFF' , '0x0000000000000000' ], ['0xFFFFFFFFFFFFFFFF' , '0x0000000000000000' ]], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
80
+ case_data .append (['lt_s' , [['0x0000000000000000' , '0xFFFFFFFFFFFFFFFF' ], ['0x0000000000000000' , '0xFFFFFFFFFFFFFFFF' ]], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
81
+ case_data .append (['lt_s' , [['0x0302010011100904' , '0x1A0B0A12FFABAA1B' ],
82
+ ['0x0302010011100904' , '0x1A0B0A12FFABAA1B' ]], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
83
+
84
+ # hex vs dec
85
+ case_data .append (['#' , 'hex vs dec' ])
86
+ case_data .append (['lt_s' , ['0xFFFFFFFFFFFFFFFF' , '18446744073709551615' ], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
87
+ case_data .append (['lt_s' , ['0xFFFFFFFFFFFFFFFF' , '-1' ], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
88
+ case_data .append (['lt_s' , ['0x8080808080808080' , '9259542123273814144' ], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
89
+ case_data .append (['lt_s' , ['0x8080808080808080' , '-9187201950435737472' ], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
90
+ case_data .append (['lt_s' , [['0x8382818000FFFEFD' , '0x7F020100FFFEFD80' ],
91
+ ['-8970465120996032771' , '9151878496576798080' ]], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
92
+
93
+ # dec vs dec
94
+ case_data .append (['#' , 'dec vs dec' ])
95
+ case_data .append (['lt_s' , ['-1' , '-1' ], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
96
+ case_data .append (['lt_s' , ['0' , '0' ], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
97
+ case_data .append (['lt_s' , ['18446744073709551615' , '18446744073709551615' ], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
98
+ case_data .append (['lt_s' , ['18446744073709551615' , '-1' ], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
99
+ case_data .append (['lt_s' , [['18446744073709551615' , '0' ], ['18446744073709551615' , '0' ]], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
100
+ case_data .append (['lt_s' , [['0' , '18446744073709551615' ], ['0' , '18446744073709551615' ]], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
101
+ case_data .append (['lt_s' , [['-9223372036854775807' , '18446744073709551615' ],
102
+ ['9223372036854775809' , '-1' ]], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
103
+
104
+ # hex vs float
105
+ case_data .append (['#' , 'hex vs float' ])
106
+ case_data .append (['lt_s' , [['0xc060000000000000' , '0xc05fc00000000000' ],
107
+ ['-128.0' , '-127.0' ]], '0' , ['i64x2' , 'f64x2' , 'i64x2' ]])
108
+ case_data .append (['lt_s' , [['0x3ff0000000000000' , '0x405fc00000000000' ],
109
+ ['1.0' , '127.0' ]], '0' , ['i64x2' , 'f64x2' , 'i64x2' ]])
110
+
111
+ # le_s
112
+ # i64x2.le_s (i64x2) (i64x2)
113
+ case_data .append (['#' , 'le_s' ])
114
+ case_data .append (['#' , 'i64x2.le_s (i64x2) (i64x2)' ])
115
+
116
+ # hex vs hex
117
+ case_data .append (['#' , 'hex vs hex' ])
118
+ case_data .append (['le_s' , ['0xFFFFFFFFFFFFFFFF' , '0xFFFFFFFFFFFFFFFF' ], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
119
+ case_data .append (['le_s' , ['0x0000000000000000' , '0x0000000000000000' ], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
120
+ case_data .append (['le_s' , ['0xF0F0F0F0F0F0F0F0' , '0xF0F0F0F0F0F0F0F0' ], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
121
+ case_data .append (['le_s' , ['0x0F0F0F0F0F0F0F0F' , '0x0F0F0F0F0F0F0F0F' ], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
122
+ case_data .append (['le_s' , [['0xFFFFFFFFFFFFFFFF' , '0x0000000000000000' ], ['0xFFFFFFFFFFFFFFFF' , '0x0000000000000000' ]], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
123
+ case_data .append (['le_s' , [['0x0000000000000000' , '0xFFFFFFFFFFFFFFFF' ], ['0x0000000000000000' , '0xFFFFFFFFFFFFFFFF' ]], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
124
+ case_data .append (['le_s' , [['0x0302010011100904' , '0x1A0B0A12FFABAA1B' ],
125
+ ['0x0302010011100904' , '0x1A0B0A12FFABAA1B' ]], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
126
+
127
+ # hex vs dec
128
+ case_data .append (['#' , 'hex vs dec' ])
129
+ case_data .append (['le_s' , ['0xFFFFFFFFFFFFFFFF' , '18446744073709551615' ], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
130
+ case_data .append (['le_s' , ['0xFFFFFFFFFFFFFFFF' , '-1' ], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
131
+ case_data .append (['le_s' , ['0x8080808080808080' , '9259542123273814144' ], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
132
+ case_data .append (['le_s' , ['0x8080808080808080' , '-9187201950435737472' ], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
133
+ case_data .append (['le_s' , [['0x8382818000FFFEFD' , '0x7F020100FFFEFD80' ],
134
+ ['-8970465120996032771' , '9151878496576798080' ]], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
135
+
136
+ # dec vs dec
137
+ case_data .append (['#' , 'dec vs dec' ])
138
+ case_data .append (['le_s' , ['-1' , '-1' ], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
139
+ case_data .append (['le_s' , ['0' , '0' ], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
140
+ case_data .append (['le_s' , ['18446744073709551615' , '18446744073709551615' ], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
141
+ case_data .append (['le_s' , ['18446744073709551615' , '-1' ], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
142
+ case_data .append (['le_s' , [['18446744073709551615' , '0' ], ['18446744073709551615' , '0' ]], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
143
+ case_data .append (['le_s' , [['0' , '18446744073709551615' ], ['0' , '18446744073709551615' ]], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
144
+ case_data .append (['le_s' , [['-9223372036854775807' , '18446744073709551615' ],
145
+ ['9223372036854775809' , '-1' ]], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
146
+
147
+ # hex vs float
148
+ case_data .append (['#' , 'hex vs float' ])
149
+ case_data .append (['le_s' , [['0xc060000000000000' , '0xc05fc00000000000' ],
150
+ ['-128.0' , '-127.0' ]], '-1' , ['i64x2' , 'f64x2' , 'i64x2' ]])
151
+ case_data .append (['le_s' , [['0x3ff0000000000000' , '0x405fc00000000000' ],
152
+ ['1.0' , '127.0' ]], '-1' , ['i64x2' , 'f64x2' , 'i64x2' ]])
153
+
154
+ # gt_s
155
+ # i64x2.gt_s (i64x2) (i64x2)
156
+ case_data .append (['#' , 'gt_s' ])
157
+ case_data .append (['#' , 'i64x2.gt_s (i64x2) (i64x2)' ])
158
+
159
+ # hex vs hex
160
+ case_data .append (['#' , 'hex vs hex' ])
161
+ case_data .append (['gt_s' , ['0xFFFFFFFFFFFFFFFF' , '0xFFFFFFFFFFFFFFFF' ], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
162
+ case_data .append (['gt_s' , ['0x0000000000000000' , '0x0000000000000000' ], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
163
+ case_data .append (['gt_s' , ['0xF0F0F0F0F0F0F0F0' , '0xF0F0F0F0F0F0F0F0' ], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
164
+ case_data .append (['gt_s' , ['0x0F0F0F0F0F0F0F0F' , '0x0F0F0F0F0F0F0F0F' ], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
165
+ case_data .append (['gt_s' , [['0xFFFFFFFFFFFFFFFF' , '0x0000000000000000' ], ['0xFFFFFFFFFFFFFFFF' , '0x0000000000000000' ]], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
166
+ case_data .append (['gt_s' , [['0x0000000000000000' , '0xFFFFFFFFFFFFFFFF' ], ['0x0000000000000000' , '0xFFFFFFFFFFFFFFFF' ]], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
167
+ case_data .append (['gt_s' , [['0x0302010011100904' , '0x1A0B0A12FFABAA1B' ],
168
+ ['0x0302010011100904' , '0x1A0B0A12FFABAA1B' ]], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
169
+
170
+ # hex vs dec
171
+ case_data .append (['#' , 'hex vs dec' ])
172
+ case_data .append (['gt_s' , ['0xFFFFFFFFFFFFFFFF' , '18446744073709551615' ], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
173
+ case_data .append (['gt_s' , ['0xFFFFFFFFFFFFFFFF' , '-1' ], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
174
+ case_data .append (['gt_s' , ['0x8080808080808080' , '9259542123273814144' ], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
175
+ case_data .append (['gt_s' , ['0x8080808080808080' , '-9187201950435737472' ], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
176
+ case_data .append (['gt_s' , [['0x8382818000FFFEFD' , '0x7F020100FFFEFD80' ],
177
+ ['-8970465120996032771' , '9151878496576798080' ]], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
178
+
179
+ # dec vs dec
180
+ case_data .append (['#' , 'dec vs dec' ])
181
+ case_data .append (['gt_s' , ['-1' , '-1' ], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
182
+ case_data .append (['gt_s' , ['0' , '0' ], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
183
+ case_data .append (['gt_s' , ['18446744073709551615' , '18446744073709551615' ], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
184
+ case_data .append (['gt_s' , ['18446744073709551615' , '-1' ], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
185
+ case_data .append (['gt_s' , [['18446744073709551615' , '0' ], ['18446744073709551615' , '0' ]], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
186
+ case_data .append (['gt_s' , [['0' , '18446744073709551615' ], ['0' , '18446744073709551615' ]], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
187
+ case_data .append (['gt_s' , [['-9223372036854775807' , '18446744073709551615' ],
188
+ ['9223372036854775809' , '-1' ]], '0' , ['i64x2' , 'i64x2' , 'i64x2' ]])
189
+
190
+ # hex vs float
191
+ case_data .append (['#' , 'hex vs float' ])
192
+ case_data .append (['gt_s' , [['0xc060000000000000' , '0xc05fc00000000000' ],
193
+ ['-128.0' , '-127.0' ]], '0' , ['i64x2' , 'f64x2' , 'i64x2' ]])
194
+ case_data .append (['gt_s' , [['0x3ff0000000000000' , '0x405fc00000000000' ],
195
+ ['1.0' , '127.0' ]], '0' , ['i64x2' , 'f64x2' , 'i64x2' ]])
196
+
197
+ # ge_s
198
+ # i64x2.ge_s (i64x2) (i64x2)
199
+ case_data .append (['#' , 'ge_s' ])
200
+ case_data .append (['#' , 'i64x2.ge_s (i64x2) (i64x2)' ])
201
+
202
+ # hex vs hex
203
+ case_data .append (['#' , 'hex vs hex' ])
204
+ case_data .append (['ge_s' , ['0xFFFFFFFFFFFFFFFF' , '0xFFFFFFFFFFFFFFFF' ], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
205
+ case_data .append (['ge_s' , ['0x0000000000000000' , '0x0000000000000000' ], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
206
+ case_data .append (['ge_s' , ['0xF0F0F0F0F0F0F0F0' , '0xF0F0F0F0F0F0F0F0' ], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
207
+ case_data .append (['ge_s' , ['0x0F0F0F0F0F0F0F0F' , '0x0F0F0F0F0F0F0F0F' ], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
208
+ case_data .append (['ge_s' , [['0xFFFFFFFFFFFFFFFF' , '0x0000000000000000' ], ['0xFFFFFFFFFFFFFFFF' , '0x0000000000000000' ]], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
209
+ case_data .append (['ge_s' , [['0x0000000000000000' , '0xFFFFFFFFFFFFFFFF' ], ['0x0000000000000000' , '0xFFFFFFFFFFFFFFFF' ]], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
210
+ case_data .append (['ge_s' , [['0x0302010011100904' , '0x1A0B0A12FFABAA1B' ],
211
+ ['0x0302010011100904' , '0x1A0B0A12FFABAA1B' ]], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
212
+
213
+ # hex vs dec
214
+ case_data .append (['#' , 'hex vs dec' ])
215
+ case_data .append (['ge_s' , ['0xFFFFFFFFFFFFFFFF' , '18446744073709551615' ], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
216
+ case_data .append (['ge_s' , ['0xFFFFFFFFFFFFFFFF' , '-1' ], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
217
+ case_data .append (['ge_s' , ['0x8080808080808080' , '9259542123273814144' ], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
218
+ case_data .append (['ge_s' , ['0x8080808080808080' , '-9187201950435737472' ], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
219
+ case_data .append (['ge_s' , [['0x8382818000FFFEFD' , '0x7F020100FFFEFD80' ],
220
+ ['-8970465120996032771' , '9151878496576798080' ]], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
221
+
222
+ # dec vs dec
223
+ case_data .append (['#' , 'dec vs dec' ])
224
+ case_data .append (['ge_s' , ['-1' , '-1' ], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
225
+ case_data .append (['ge_s' , ['0' , '0' ], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
226
+ case_data .append (['ge_s' , ['18446744073709551615' , '18446744073709551615' ], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
227
+ case_data .append (['ge_s' , ['18446744073709551615' , '-1' ], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
228
+ case_data .append (['ge_s' , [['18446744073709551615' , '0' ], ['18446744073709551615' , '0' ]], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
229
+ case_data .append (['ge_s' , [['0' , '18446744073709551615' ], ['0' , '18446744073709551615' ]], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
230
+ case_data .append (['ge_s' , [['-9223372036854775807' , '18446744073709551615' ],
231
+ ['9223372036854775809' , '-1' ]], '-1' , ['i64x2' , 'i64x2' , 'i64x2' ]])
232
+
233
+ # hex vs float
234
+ case_data .append (['#' , 'hex vs float' ])
235
+ case_data .append (['ge_s' , [['0xc060000000000000' , '0xc05fc00000000000' ],
236
+ ['-128.0' , '-127.0' ]], '-1' , ['i64x2' , 'f64x2' , 'i64x2' ]])
237
+ case_data .append (['ge_s' , [['0x3ff0000000000000' , '0x405fc00000000000' ],
238
+ ['1.0' , '127.0' ]], '-1' , ['i64x2' , 'f64x2' , 'i64x2' ]])
239
+
60
240
return case_data
61
241
62
242
0 commit comments