@@ -16,6 +16,10 @@ class Simdi64x2CmpCase(SimdCmpCase):
1616(module
1717 (func (export "eq") (param $x v128) (param $y v128) (result v128) ({lane_type}.eq (local.get $x) (local.get $y)))
1818 (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)))
1923)
2024
2125{normal_case}
@@ -24,6 +28,10 @@ class Simdi64x2CmpCase(SimdCmpCase):
2428
2529(assert_invalid (module (func (result v128) ({lane_type}.eq (i32.const 0) (f32.const 0)))) "type mismatch")
2630(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")
2735"""
2836
2937 def get_case_data (self ):
@@ -57,6 +65,178 @@ def get_case_data(self):
5765 case_data .append (['ne' , [['0x03020100' , '0x11100904' , '0x1A0B0A12' , '0xFFABAA1B' ],
5866 ['0x03020100' , '0x11100904' , '0x1A0B0A12' , '0xFFABAA1B' ]], '0' , forms ])
5967
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+
60240 return case_data
61241
62242
0 commit comments