VirtualBox

source: vbox/trunk/src/VBox/VMM/testcase/tstIEMAImpl.h@ 96807

Last change on this file since 96807 was 96797, checked in by vboxsync, 2 years ago

VMM/testcase/tstIEMAImpl: Implement basic cvtdq2ps/cvtps2dq/cvttps2dq/cvttpd2dq/cvtdq2pd/cvtpd2dq testcases, bugref:9898

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 52.8 KB
Line 
1/* $Id: tstIEMAImpl.h 96797 2022-09-19 19:10:20Z vboxsync $ */
2/** @file
3 * IEM Assembly Instruction Helper Testcase, Data Header File.
4 */
5
6/*
7 * Copyright (C) 2022 Oracle and/or its affiliates.
8 *
9 * This file is part of VirtualBox base platform packages, as
10 * available from https://www.virtualbox.org.
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation, in version 3 of the
15 * License.
16 *
17 * This program is distributed in the hope that it will be useful, but
18 * WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * General Public License for more details.
21 *
22 * You should have received a copy of the GNU General Public License
23 * along with this program; if not, see <https://www.gnu.org/licenses>.
24 *
25 * SPDX-License-Identifier: GPL-3.0-only
26 */
27
28#ifndef VMM_INCLUDED_SRC_testcase_tstIEMAImpl_h
29#define VMM_INCLUDED_SRC_testcase_tstIEMAImpl_h
30#ifndef RT_WITHOUT_PRAGMA_ONCE
31# pragma once
32#endif
33
34#include <iprt/types.h>
35#include <iprt/x86.h>
36
37
38/** @name Integer binary tests.
39 * @{ */
40typedef struct BINU8_TEST_T
41{
42 uint32_t fEflIn;
43 uint32_t fEflOut;
44 uint8_t uDstIn;
45 uint8_t uDstOut;
46 uint8_t uSrcIn;
47 uint8_t uMisc;
48} BINU8_TEST_T;
49
50typedef struct BINU16_TEST_T
51{
52 uint32_t fEflIn;
53 uint32_t fEflOut;
54 uint16_t uDstIn;
55 uint16_t uDstOut;
56 uint16_t uSrcIn;
57 uint16_t uMisc;
58} BINU16_TEST_T;
59
60typedef struct BINU32_TEST_T
61{
62 uint32_t fEflIn;
63 uint32_t fEflOut;
64 uint32_t uDstIn;
65 uint32_t uDstOut;
66 uint32_t uSrcIn;
67 uint32_t uMisc;
68} BINU32_TEST_T;
69
70typedef struct BINU64_TEST_T
71{
72 uint32_t fEflIn;
73 uint32_t fEflOut;
74 uint64_t uDstIn;
75 uint64_t uDstOut;
76 uint64_t uSrcIn;
77 uint64_t uMisc;
78} BINU64_TEST_T;
79/** @} */
80
81
82/** @name mult/div (PFNIEMAIMPLBINU8, PFNIEMAIMPLBINU16, PFNIEMAIMPLBINU32, PFNIEMAIMPLBINU64)
83 * @{ */
84typedef struct MULDIVU8_TEST_T
85{
86 uint32_t fEflIn;
87 uint32_t fEflOut;
88 uint16_t uDstIn;
89 uint16_t uDstOut;
90 uint8_t uSrcIn;
91 int32_t rc;
92} MULDIVU8_TEST_T;
93
94typedef struct MULDIVU16_TEST_T
95{
96 uint32_t fEflIn;
97 uint32_t fEflOut;
98 uint16_t uDst1In;
99 uint16_t uDst1Out;
100 uint16_t uDst2In;
101 uint16_t uDst2Out;
102 uint16_t uSrcIn;
103 int32_t rc;
104} MULDIVU16_TEST_T;
105
106typedef struct MULDIVU32_TEST_T
107{
108 uint32_t fEflIn;
109 uint32_t fEflOut;
110 uint32_t uDst1In;
111 uint32_t uDst1Out;
112 uint32_t uDst2In;
113 uint32_t uDst2Out;
114 uint32_t uSrcIn;
115 int32_t rc;
116} MULDIVU32_TEST_T;
117
118typedef struct MULDIVU64_TEST_T
119{
120 uint32_t fEflIn;
121 uint32_t fEflOut;
122 uint64_t uDst1In;
123 uint64_t uDst1Out;
124 uint64_t uDst2In;
125 uint64_t uDst2Out;
126 uint64_t uSrcIn;
127 int32_t rc;
128} MULDIVU64_TEST_T;
129/** @} */
130
131
132/** @name x87 FPU
133 * @{ */
134typedef struct FPU_LD_CONST_TEST_T
135{
136 uint16_t fFcw;
137 uint16_t fFswIn;
138 uint16_t fFswOut;
139 RTFLOAT80U rdResult;
140} FPU_LD_CONST_TEST_T;
141
142typedef struct FPU_R32_IN_TEST_T
143{
144 uint16_t fFcw;
145 uint16_t fFswIn;
146 uint16_t fFswOut;
147 RTFLOAT80U rdResult;
148 RTFLOAT32U InVal;
149} FPU_R32_IN_TEST_T;
150
151typedef struct FPU_R64_IN_TEST_T
152{
153 uint16_t fFcw;
154 uint16_t fFswIn;
155 uint16_t fFswOut;
156 RTFLOAT80U rdResult;
157 RTFLOAT64U InVal;
158} FPU_R64_IN_TEST_T;
159
160typedef struct FPU_R80_IN_TEST_T
161{
162 uint16_t fFcw;
163 uint16_t fFswIn;
164 uint16_t fFswOut;
165 RTFLOAT80U rdResult;
166 RTFLOAT80U InVal;
167} FPU_R80_IN_TEST_T;
168
169typedef struct FPU_I16_IN_TEST_T
170{
171 uint16_t fFcw;
172 uint16_t fFswIn;
173 uint16_t fFswOut;
174 RTFLOAT80U rdResult;
175 int16_t iInVal;
176} FPU_I16_IN_TEST_T;
177
178typedef struct FPU_I32_IN_TEST_T
179{
180 uint16_t fFcw;
181 uint16_t fFswIn;
182 uint16_t fFswOut;
183 RTFLOAT80U rdResult;
184 int32_t iInVal;
185} FPU_I32_IN_TEST_T;
186
187typedef struct FPU_I64_IN_TEST_T
188{
189 uint16_t fFcw;
190 uint16_t fFswIn;
191 uint16_t fFswOut;
192 RTFLOAT80U rdResult;
193 int64_t iInVal;
194} FPU_I64_IN_TEST_T;
195
196typedef struct FPU_D80_IN_TEST_T
197{
198 uint16_t fFcw;
199 uint16_t fFswIn;
200 uint16_t fFswOut;
201 RTFLOAT80U rdResult;
202 RTPBCD80U InVal;
203} FPU_D80_IN_TEST_T;
204
205typedef struct FPU_ST_R32_TEST_T
206{
207 uint16_t fFcw;
208 uint16_t fFswIn;
209 uint16_t fFswOut;
210 RTFLOAT80U InVal;
211 RTFLOAT32U OutVal;
212} FPU_ST_R32_TEST_T;
213
214typedef struct FPU_ST_R64_TEST_T
215{
216 uint16_t fFcw;
217 uint16_t fFswIn;
218 uint16_t fFswOut;
219 RTFLOAT80U InVal;
220 RTFLOAT64U OutVal;
221} FPU_ST_R64_TEST_T;
222
223typedef struct FPU_ST_R80_TEST_T
224{
225 uint16_t fFcw;
226 uint16_t fFswIn;
227 uint16_t fFswOut;
228 RTFLOAT80U InVal;
229 RTFLOAT80U OutVal;
230} FPU_ST_R80_TEST_T;
231
232typedef struct FPU_ST_I16_TEST_T
233{
234 uint16_t fFcw;
235 uint16_t fFswIn;
236 uint16_t fFswOut;
237 RTFLOAT80U InVal;
238 int16_t iOutVal;
239} FPU_ST_I16_TEST_T;
240
241typedef struct FPU_ST_I32_TEST_T
242{
243 uint16_t fFcw;
244 uint16_t fFswIn;
245 uint16_t fFswOut;
246 RTFLOAT80U InVal;
247 int32_t iOutVal;
248} FPU_ST_I32_TEST_T;
249
250typedef struct FPU_ST_I64_TEST_T
251{
252 uint16_t fFcw;
253 uint16_t fFswIn;
254 uint16_t fFswOut;
255 RTFLOAT80U InVal;
256 int64_t iOutVal;
257} FPU_ST_I64_TEST_T;
258
259typedef struct FPU_ST_D80_TEST_T
260{
261 uint16_t fFcw;
262 uint16_t fFswIn;
263 uint16_t fFswOut;
264 RTFLOAT80U InVal;
265 RTPBCD80U OutVal;
266} FPU_ST_D80_TEST_T;
267
268typedef struct FPU_BINARY_R80_TEST_T
269{
270 uint16_t fFcw;
271 uint16_t fFswIn;
272 uint16_t fFswOut;
273 RTFLOAT80U InVal1;
274 RTFLOAT80U InVal2;
275 RTFLOAT80U OutVal;
276} FPU_BINARY_R80_TEST_T;
277
278typedef struct FPU_BINARY_R64_TEST_T
279{
280 uint16_t fFcw;
281 uint16_t fFswIn;
282 uint16_t fFswOut;
283 RTFLOAT80U InVal1;
284 RTFLOAT64U InVal2;
285 RTFLOAT80U OutVal;
286} FPU_BINARY_R64_TEST_T;
287
288typedef struct FPU_BINARY_R32_TEST_T
289{
290 uint16_t fFcw;
291 uint16_t fFswIn;
292 uint16_t fFswOut;
293 RTFLOAT80U InVal1;
294 RTFLOAT32U InVal2;
295 RTFLOAT80U OutVal;
296} FPU_BINARY_R32_TEST_T;
297
298typedef struct FPU_BINARY_I64_TEST_T
299{
300 uint16_t fFcw;
301 uint16_t fFswIn;
302 uint16_t fFswOut;
303 RTFLOAT80U InVal1;
304 int64_t InVal2;
305 RTFLOAT80U OutVal;
306} FPU_BINARY_I64_TEST_T;
307
308typedef struct FPU_BINARY_I32_TEST_T
309{
310 uint16_t fFcw;
311 uint16_t fFswIn;
312 uint16_t fFswOut;
313 RTFLOAT80U InVal1;
314 int32_t InVal2;
315 RTFLOAT80U OutVal;
316} FPU_BINARY_I32_TEST_T;
317
318typedef struct FPU_BINARY_I16_TEST_T
319{
320 uint16_t fFcw;
321 uint16_t fFswIn;
322 uint16_t fFswOut;
323 RTFLOAT80U InVal1;
324 int16_t InVal2;
325 RTFLOAT80U OutVal;
326} FPU_BINARY_I16_TEST_T;
327
328typedef struct FPU_BINARY_EFL_R80_TEST_T
329{
330 uint16_t fFcw;
331 uint16_t fFswIn;
332 uint16_t fFswOut;
333 RTFLOAT80U InVal1;
334 RTFLOAT80U InVal2;
335 uint32_t fEflOut;
336} FPU_BINARY_EFL_R80_TEST_T;
337
338typedef struct FPU_UNARY_R80_TEST_T
339{
340 uint16_t fFcw;
341 uint16_t fFswIn;
342 uint16_t fFswOut;
343 RTFLOAT80U InVal;
344 RTFLOAT80U OutVal;
345} FPU_UNARY_R80_TEST_T;
346
347typedef struct FPU_UNARY_TWO_R80_TEST_T
348{
349 uint16_t fFcw;
350 uint16_t fFswIn;
351 uint16_t fFswOut;
352 RTFLOAT80U InVal;
353 RTFLOAT80U OutVal1;
354 RTFLOAT80U OutVal2;
355} FPU_UNARY_TWO_R80_TEST_T;
356
357typedef struct SSE_BINARY_TEST_T
358{
359 uint32_t fMxcsrIn;
360 uint32_t fMxcsrOut;
361 uint32_t au32Padding[2];
362 X86XMMREG InVal1;
363 X86XMMREG InVal2;
364 X86XMMREG OutVal;
365} SSE_BINARY_TEST_T;
366
367typedef struct SSE_BINARY_U128_R32_TEST_T
368{
369 uint32_t fMxcsrIn;
370 uint32_t fMxcsrOut;
371 uint32_t au32Padding[2];
372 X86XMMREG OutVal;
373 X86XMMREG InVal1;
374 RTFLOAT32U r32Val2;
375} SSE_BINARY_U128_R32_TEST_T;
376
377typedef struct SSE_BINARY_U128_R64_TEST_T
378{
379 uint32_t fMxcsrIn;
380 uint32_t fMxcsrOut;
381 uint32_t au32Padding[2];
382 X86XMMREG OutVal;
383 X86XMMREG InVal1;
384 RTFLOAT64U r64Val2;
385} SSE_BINARY_U128_R64_TEST_T;
386
387typedef struct SSE_BINARY_I32_R64_TEST_T
388{
389 uint32_t fMxcsrIn;
390 uint32_t fMxcsrOut;
391 uint32_t u32Padding;
392 int32_t i32ValOut;
393 RTFLOAT64U r64ValIn;
394} SSE_BINARY_I32_R64_TEST_T;
395
396typedef struct SSE_BINARY_I64_R64_TEST_T
397{
398 uint32_t fMxcsrIn;
399 uint32_t fMxcsrOut;
400 int64_t i64ValOut;
401 RTFLOAT64U r64ValIn;
402} SSE_BINARY_I64_R64_TEST_T;
403
404typedef struct SSE_BINARY_I32_R32_TEST_T
405{
406 uint32_t fMxcsrIn;
407 uint32_t fMxcsrOut;
408 uint32_t u32Padding;
409 int32_t i32ValOut;
410 RTFLOAT32U r32ValIn;
411} SSE_BINARY_I32_R32_TEST_T;
412
413typedef struct SSE_BINARY_I64_R32_TEST_T
414{
415 uint32_t fMxcsrIn;
416 uint32_t fMxcsrOut;
417 int64_t i64ValOut;
418 RTFLOAT32U r32ValIn;
419} SSE_BINARY_I64_R32_TEST_T;
420
421typedef struct SSE_BINARY_R32_I32_TEST_T
422{
423 uint32_t fMxcsrIn;
424 uint32_t fMxcsrOut;
425 uint32_t u32Padding;
426 int32_t i32ValIn;
427 RTFLOAT32U r32ValOut;
428} SSE_BINARY_R32_I32_TEST_T;
429
430typedef struct SSE_BINARY_R32_I64_TEST_T
431{
432 uint32_t fMxcsrIn;
433 uint32_t fMxcsrOut;
434 int64_t i64ValIn;
435 RTFLOAT32U r32ValOut;
436} SSE_BINARY_R32_I64_TEST_T;
437
438typedef struct SSE_BINARY_R64_I32_TEST_T
439{
440 uint32_t fMxcsrIn;
441 uint32_t fMxcsrOut;
442 uint32_t u32Padding;
443 int32_t i32ValIn;
444 RTFLOAT64U r64ValOut;
445} SSE_BINARY_R64_I32_TEST_T;
446
447typedef struct SSE_BINARY_R64_I64_TEST_T
448{
449 uint32_t fMxcsrIn;
450 uint32_t fMxcsrOut;
451 int64_t i64ValIn;
452 RTFLOAT64U r64ValOut;
453} SSE_BINARY_R64_I64_TEST_T;
454
455typedef struct SSE_COMPARE_EFL_R32_R32_TEST_T
456{
457 uint32_t fMxcsrIn;
458 uint32_t fMxcsrOut;
459 uint32_t fEflIn;
460 uint32_t fEflOut;
461 RTFLOAT32U r32ValIn1;
462 RTFLOAT32U r32ValIn2;
463} SSE_COMPARE_EFL_R32_R32_TEST_T;
464
465typedef struct SSE_COMPARE_EFL_R64_R64_TEST_T
466{
467 uint32_t fMxcsrIn;
468 uint32_t fMxcsrOut;
469 uint32_t fEflIn;
470 uint32_t fEflOut;
471 RTFLOAT64U r64ValIn1;
472 RTFLOAT64U r64ValIn2;
473} SSE_COMPARE_EFL_R64_R64_TEST_T;
474
475typedef struct SSE_COMPARE_F2_XMM_IMM8_TEST_T
476{
477 uint32_t fMxcsrIn;
478 uint32_t fMxcsrOut;
479 uint8_t bImm;
480 uint8_t abPadding0[3];
481 uint32_t u32Padding1;
482 X86XMMREG InVal1;
483 X86XMMREG InVal2;
484 X86XMMREG OutVal;
485} SSE_COMPARE_F2_XMM_IMM8_TEST_T;
486
487typedef struct SSE_CONVERT_XMM_TEST_T
488{
489 uint32_t fMxcsrIn;
490 uint32_t fMxcsrOut;
491 uint32_t au32Padding[2];
492 X86XMMREG InVal;
493 X86XMMREG OutVal;
494} SSE_CONVERT_XMM_TEST_T;
495
496/** @} */
497
498
499#define TSTIEM_DEFINE_EMPTY_TEST_ARRAY(a_Type, a_Instr) \
500 extern a_Type const RT_CONCAT(g_aTests_, a_Instr)[] = { {0} }; \
501 extern uint32_t const RT_CONCAT(g_cTests_, a_Instr) = 0
502
503#define TSTIEM_DEFINE_EMPTY_TEST_ARRAY_BIN(a_Type, a_Instr) \
504 extern a_Type const RT_CONCAT(g_aTests_, a_Instr)[] = { {0} }; \
505 extern uint32_t const RT_CONCAT(g_cbTests_, a_Instr) = 0
506
507#define TSTIEM_DECLARE_TEST_ARRAY(a_szFile, a_Type, a_Instr) \
508 extern a_Type const RT_CONCAT(g_aTests_, a_Instr)[]; \
509 extern uint32_t const RT_CONCAT(g_cTests_, a_Instr)
510
511#define TSTIEM_DECLARE_TEST_ARRAY_BIN(a_szFile, a_Type, a_Instr) \
512 extern a_Type const RT_CONCAT(g_aTests_, a_Instr)[]; \
513 extern uint32_t const RT_CONCAT(g_cbTests_, a_Instr)
514
515TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, add_u8 );
516TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, add_u8_locked );
517TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, adc_u8 );
518TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, adc_u8_locked );
519TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, sub_u8 );
520TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, sub_u8_locked );
521TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, sbb_u8 );
522TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, sbb_u8_locked );
523TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, or_u8 );
524TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, or_u8_locked );
525TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, xor_u8 );
526TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, xor_u8_locked );
527TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, and_u8 );
528TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, and_u8_locked );
529TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, cmp_u8 );
530TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, test_u8 );
531
532TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, add_u16 );
533TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, add_u16_locked );
534TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, adc_u16 );
535TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, adc_u16_locked );
536TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, sub_u16 );
537TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, sub_u16_locked );
538TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, sbb_u16 );
539TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, sbb_u16_locked );
540TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, or_u16 );
541TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, or_u16_locked );
542TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, xor_u16 );
543TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, xor_u16_locked );
544TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, and_u16 );
545TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, and_u16_locked );
546TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, cmp_u16 );
547TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, test_u16 );
548TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, bt_u16 );
549TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, btc_u16 );
550TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, btc_u16_locked );
551TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, btr_u16 );
552TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, btr_u16_locked );
553TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, bts_u16 );
554TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, bts_u16_locked );
555TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, arpl );
556TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, bsf_u16_amd );
557TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, bsr_u16_amd );
558TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, imul_two_u16_amd );
559TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, bsf_u16_intel );
560TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, bsr_u16_intel );
561TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, imul_two_u16_intel );
562
563TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, add_u32 );
564TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, add_u32_locked );
565TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, adc_u32 );
566TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, adc_u32_locked );
567TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, sub_u32 );
568TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, sub_u32_locked );
569TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, sbb_u32 );
570TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, sbb_u32_locked );
571TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, or_u32 );
572TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, or_u32_locked );
573TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, xor_u32 );
574TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, xor_u32_locked );
575TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, and_u32 );
576TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, and_u32_locked );
577TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, cmp_u32 );
578TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, test_u32 );
579TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, bt_u32 );
580TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, btc_u32 );
581TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, btc_u32_locked );
582TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, btr_u32 );
583TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, btr_u32_locked );
584TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, bts_u32 );
585TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, bts_u32_locked );
586TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, bsf_u32_amd );
587TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, bsr_u32_amd );
588TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, imul_two_u32_amd );
589TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, bsf_u32_intel );
590TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, bsr_u32_intel );
591TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, imul_two_u32_intel );
592
593TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, add_u64 );
594TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, add_u64_locked );
595TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, adc_u64 );
596TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, adc_u64_locked );
597TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, sub_u64 );
598TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, sub_u64_locked );
599TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, sbb_u64 );
600TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, sbb_u64_locked );
601TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, or_u64 );
602TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, or_u64_locked );
603TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, xor_u64 );
604TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, xor_u64_locked );
605TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, and_u64 );
606TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, and_u64_locked );
607TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, cmp_u64 );
608TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, test_u64 );
609TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, bt_u64 );
610TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, btc_u64 );
611TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, btc_u64_locked );
612TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, btr_u64 );
613TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, btr_u64_locked );
614TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, bts_u64 );
615TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, bts_u64_locked );
616TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, bsf_u64_amd );
617TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, bsr_u64_amd );
618TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, imul_two_u64_amd );
619TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, bsf_u64_intel );
620TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, bsr_u64_intel );
621TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, imul_two_u64_intel );
622
623TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, shrd_u16_amd );
624TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, shld_u16_amd );
625TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, shrd_u32_amd );
626TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, shld_u32_amd );
627TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, shrd_u64_amd );
628TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, shld_u64_amd );
629TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, shrd_u16_intel );
630TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, shld_u16_intel );
631TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, shrd_u32_intel );
632TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, shld_u32_intel );
633TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, shrd_u64_intel );
634TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, shld_u64_intel );
635
636TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, inc_u8 );
637TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, inc_u8_locked );
638TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, dec_u8 );
639TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, dec_u8_locked );
640TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, not_u8 );
641TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, not_u8_locked );
642TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, neg_u8 );
643TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, neg_u8_locked );
644
645TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, inc_u16 );
646TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, inc_u16_locked );
647TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, dec_u16 );
648TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, dec_u16_locked );
649TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, not_u16 );
650TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, not_u16_locked );
651TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, neg_u16 );
652TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, neg_u16_locked );
653
654TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, inc_u32 );
655TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, inc_u32_locked );
656TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, dec_u32 );
657TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, dec_u32_locked );
658TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, not_u32 );
659TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, not_u32_locked );
660TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, neg_u32 );
661TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, neg_u32_locked );
662
663TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, inc_u64 );
664TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, inc_u64_locked );
665TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, dec_u64 );
666TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, dec_u64_locked );
667TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, not_u64 );
668TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, not_u64_locked );
669TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, neg_u64 );
670TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, neg_u64_locked );
671
672TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU8_TEST_T, rol_u8_amd );
673TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU8_TEST_T, ror_u8_amd );
674TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU8_TEST_T, rcl_u8_amd );
675TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU8_TEST_T, rcr_u8_amd );
676TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU8_TEST_T, shl_u8_amd );
677TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU8_TEST_T, shr_u8_amd );
678TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU8_TEST_T, sar_u8_amd );
679TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU8_TEST_T, rol_u8_intel );
680TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU8_TEST_T, ror_u8_intel );
681TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU8_TEST_T, rcl_u8_intel );
682TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU8_TEST_T, rcr_u8_intel );
683TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU8_TEST_T, shl_u8_intel );
684TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU8_TEST_T, shr_u8_intel );
685TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU8_TEST_T, sar_u8_intel );
686
687TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, rol_u16_amd );
688TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, ror_u16_amd );
689TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, rcl_u16_amd );
690TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, rcr_u16_amd );
691TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, shl_u16_amd );
692TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, shr_u16_amd );
693TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, sar_u16_amd );
694TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, rol_u16_intel );
695TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, ror_u16_intel );
696TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, rcl_u16_intel );
697TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, rcr_u16_intel );
698TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, shl_u16_intel );
699TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, shr_u16_intel );
700TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, sar_u16_intel );
701
702TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, rol_u32_amd );
703TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, ror_u32_amd );
704TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, rcl_u32_amd );
705TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, rcr_u32_amd );
706TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, shl_u32_amd );
707TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, shr_u32_amd );
708TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, sar_u32_amd );
709TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, rol_u32_intel );
710TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, ror_u32_intel );
711TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, rcl_u32_intel );
712TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, rcr_u32_intel );
713TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, shl_u32_intel );
714TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, shr_u32_intel );
715TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, sar_u32_intel );
716
717TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, rol_u64_amd );
718TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, ror_u64_amd );
719TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, rcl_u64_amd );
720TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, rcr_u64_amd );
721TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, shl_u64_amd );
722TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, shr_u64_amd );
723TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, sar_u64_amd );
724TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, rol_u64_intel );
725TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, ror_u64_intel );
726TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, rcl_u64_intel );
727TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, rcr_u64_intel );
728TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, shl_u64_intel );
729TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, shr_u64_intel );
730TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, sar_u64_intel );
731
732TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU8_TEST_T, mul_u8_amd );
733TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU8_TEST_T, imul_u8_amd );
734TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU8_TEST_T, div_u8_amd );
735TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU8_TEST_T, idiv_u8_amd );
736TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU8_TEST_T, mul_u8_intel );
737TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU8_TEST_T, imul_u8_intel );
738TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU8_TEST_T, div_u8_intel );
739TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU8_TEST_T, idiv_u8_intel );
740
741TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU16_TEST_T, mul_u16_amd );
742TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU16_TEST_T, imul_u16_amd );
743TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU16_TEST_T, div_u16_amd );
744TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU16_TEST_T, idiv_u16_amd );
745TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU16_TEST_T, mul_u16_intel );
746TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU16_TEST_T, imul_u16_intel );
747TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU16_TEST_T, div_u16_intel );
748TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU16_TEST_T, idiv_u16_intel );
749
750TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU32_TEST_T, mul_u32_amd );
751TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU32_TEST_T, imul_u32_amd );
752TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU32_TEST_T, div_u32_amd );
753TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU32_TEST_T, idiv_u32_amd );
754TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU32_TEST_T, mul_u32_intel );
755TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU32_TEST_T, imul_u32_intel );
756TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU32_TEST_T, div_u32_intel );
757TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU32_TEST_T, idiv_u32_intel );
758
759TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU64_TEST_T, mul_u64_amd );
760TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU64_TEST_T, imul_u64_amd );
761TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU64_TEST_T, div_u64_amd );
762TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU64_TEST_T, idiv_u64_amd );
763TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU64_TEST_T, mul_u64_intel );
764TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU64_TEST_T, imul_u64_intel );
765TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU64_TEST_T, div_u64_intel );
766TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU64_TEST_T, idiv_u64_intel );
767
768TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_LD_CONST_TEST_T, fld1 );
769TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_LD_CONST_TEST_T, fldl2t );
770TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_LD_CONST_TEST_T, fldl2e );
771TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_LD_CONST_TEST_T, fldpi );
772TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_LD_CONST_TEST_T, fldlg2 );
773TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_LD_CONST_TEST_T, fldln2 );
774TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_LD_CONST_TEST_T, fldz );
775
776TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_R80_IN_TEST_T, fld_r80_from_r80 );
777TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_R64_IN_TEST_T, fld_r80_from_r64 );
778TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_R32_IN_TEST_T, fld_r80_from_r32 );
779TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_I64_IN_TEST_T, fild_r80_from_i64 );
780TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_I32_IN_TEST_T, fild_r80_from_i32 );
781TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_I16_IN_TEST_T, fild_r80_from_i16 );
782TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_D80_IN_TEST_T, fld_r80_from_d80 );
783
784TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_R80_TEST_T, fst_r80_to_r80 );
785TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_R64_TEST_T, fst_r80_to_r64 );
786TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_R32_TEST_T, fst_r80_to_r32 );
787TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_I64_TEST_T, fist_r80_to_i64 );
788TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_I32_TEST_T, fist_r80_to_i32 );
789TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_I16_TEST_T, fist_r80_to_i16 );
790TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_I64_TEST_T, fistt_r80_to_i64 );
791TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_I32_TEST_T, fistt_r80_to_i32 );
792TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt-Amd, FPU_ST_I16_TEST_T, fistt_r80_to_i16_amd );
793TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt-Intel, FPU_ST_I16_TEST_T, fistt_r80_to_i16_intel );
794TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_D80_TEST_T, fst_r80_to_d80 );
795
796TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fadd_r80_by_r80 );
797TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fsub_r80_by_r80 );
798TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fsubr_r80_by_r80 );
799TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fmul_r80_by_r80 );
800TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fdiv_r80_by_r80 );
801TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fdivr_r80_by_r80 );
802TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fprem_r80_by_r80 );
803TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fprem1_r80_by_r80 );
804TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fscale_r80_by_r80 );
805TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1-Amd, FPU_BINARY_R80_TEST_T, fpatan_r80_by_r80_amd );
806TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1-Intel, FPU_BINARY_R80_TEST_T, fpatan_r80_by_r80_intel );
807TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1-Amd, FPU_BINARY_R80_TEST_T, fyl2x_r80_by_r80_amd );
808TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1-Intel, FPU_BINARY_R80_TEST_T, fyl2x_r80_by_r80_intel );
809TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1-Amd, FPU_BINARY_R80_TEST_T, fyl2xp1_r80_by_r80_amd );
810TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1-Intel, FPU_BINARY_R80_TEST_T, fyl2xp1_r80_by_r80_intel );
811
812TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R64_TEST_T, fadd_r80_by_r64 );
813TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R64_TEST_T, fmul_r80_by_r64 );
814TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R64_TEST_T, fsub_r80_by_r64 );
815TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R64_TEST_T, fsubr_r80_by_r64 );
816TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R64_TEST_T, fdiv_r80_by_r64 );
817TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R64_TEST_T, fdivr_r80_by_r64 );
818
819TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R32_TEST_T, fadd_r80_by_r32 );
820TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R32_TEST_T, fmul_r80_by_r32 );
821TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R32_TEST_T, fsub_r80_by_r32 );
822TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R32_TEST_T, fsubr_r80_by_r32 );
823TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R32_TEST_T, fdiv_r80_by_r32 );
824TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R32_TEST_T, fdivr_r80_by_r32 );
825
826TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I32_TEST_T, fiadd_r80_by_i32 );
827TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I32_TEST_T, fimul_r80_by_i32 );
828TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I32_TEST_T, fisub_r80_by_i32 );
829TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I32_TEST_T, fisubr_r80_by_i32 );
830TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I32_TEST_T, fidiv_r80_by_i32 );
831TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I32_TEST_T, fidivr_r80_by_i32 );
832
833TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I16_TEST_T, fiadd_r80_by_i16 );
834TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I16_TEST_T, fimul_r80_by_i16 );
835TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I16_TEST_T, fisub_r80_by_i16 );
836TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I16_TEST_T, fisubr_r80_by_i16 );
837TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I16_TEST_T, fidiv_r80_by_i16 );
838TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I16_TEST_T, fidivr_r80_by_i16 );
839
840TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fcom_r80_by_r80 );
841TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fucom_r80_by_r80 );
842TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R64_TEST_T, fcom_r80_by_r64 );
843TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R32_TEST_T, fcom_r80_by_r32 );
844TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I32_TEST_T, ficom_r80_by_i32 );
845TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I16_TEST_T, ficom_r80_by_i16 );
846
847TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_EFL_R80_TEST_T, fcomi_r80_by_r80 );
848TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_EFL_R80_TEST_T, fucomi_r80_by_r80 );
849
850TSTIEM_DECLARE_TEST_ARRAY(FpuOther, FPU_UNARY_R80_TEST_T, fabs_r80 );
851TSTIEM_DECLARE_TEST_ARRAY(FpuOther, FPU_UNARY_R80_TEST_T, fchs_r80 );
852TSTIEM_DECLARE_TEST_ARRAY(FpuOther-Amd, FPU_UNARY_R80_TEST_T, f2xm1_r80_amd );
853TSTIEM_DECLARE_TEST_ARRAY(FpuOther-Intel, FPU_UNARY_R80_TEST_T, f2xm1_r80_intel );
854TSTIEM_DECLARE_TEST_ARRAY(FpuOther, FPU_UNARY_R80_TEST_T, fsqrt_r80 );
855TSTIEM_DECLARE_TEST_ARRAY(FpuOther, FPU_UNARY_R80_TEST_T, frndint_r80 );
856TSTIEM_DECLARE_TEST_ARRAY(FpuOther-Amd, FPU_UNARY_R80_TEST_T, fsin_r80_amd );
857TSTIEM_DECLARE_TEST_ARRAY(FpuOther-Intel, FPU_UNARY_R80_TEST_T, fsin_r80_intel );
858TSTIEM_DECLARE_TEST_ARRAY(FpuOther-Amd, FPU_UNARY_R80_TEST_T, fcos_r80_amd );
859TSTIEM_DECLARE_TEST_ARRAY(FpuOther-Intel, FPU_UNARY_R80_TEST_T, fcos_r80_intel );
860
861TSTIEM_DECLARE_TEST_ARRAY(FpuOther, FPU_UNARY_R80_TEST_T, ftst_r80 );
862TSTIEM_DECLARE_TEST_ARRAY(FpuOther, FPU_UNARY_R80_TEST_T, fxam_r80 );
863
864TSTIEM_DECLARE_TEST_ARRAY(FpuOther-Amd, FPU_UNARY_TWO_R80_TEST_T, fptan_r80_r80_amd );
865TSTIEM_DECLARE_TEST_ARRAY(FpuOther-Intel, FPU_UNARY_TWO_R80_TEST_T, fptan_r80_r80_intel );
866TSTIEM_DECLARE_TEST_ARRAY(FpuOther, FPU_UNARY_TWO_R80_TEST_T, fxtract_r80_r80 );
867TSTIEM_DECLARE_TEST_ARRAY(FpuOther-Amd, FPU_UNARY_TWO_R80_TEST_T, fsincos_r80_r80_amd );
868TSTIEM_DECLARE_TEST_ARRAY(FpuOther-Intel, FPU_UNARY_TWO_R80_TEST_T, fsincos_r80_r80_intel );
869
870RT_C_DECLS_BEGIN
871
872TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, addps_u128 );
873TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, mulps_u128 );
874TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, subps_u128 );
875TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, minps_u128 );
876TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, divps_u128 );
877TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, maxps_u128 );
878TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, haddps_u128 );
879TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, hsubps_u128 );
880TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, sqrtps_u128 );
881TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, addsubps_u128 );
882TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, cvtps2pd_u128 );
883
884TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R32_TEST_T, addss_u128_r32 );
885TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R32_TEST_T, mulss_u128_r32 );
886TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R32_TEST_T, subss_u128_r32 );
887TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R32_TEST_T, minss_u128_r32 );
888TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R32_TEST_T, divss_u128_r32 );
889TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R32_TEST_T, maxss_u128_r32 );
890TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R32_TEST_T, cvtss2sd_u128_r32 );
891TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R32_TEST_T, sqrtss_u128_r32 );
892
893TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, addpd_u128 );
894TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, mulpd_u128 );
895TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, subpd_u128 );
896TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, minpd_u128 );
897TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, divpd_u128 );
898TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, maxpd_u128 );
899TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, haddpd_u128 );
900TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, hsubpd_u128 );
901TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, sqrtpd_u128 );
902TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, addsubpd_u128 );
903TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, cvtpd2ps_u128 );
904
905TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R64_TEST_T, addsd_u128_r64 );
906TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R64_TEST_T, mulsd_u128_r64 );
907TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R64_TEST_T, subsd_u128_r64 );
908TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R64_TEST_T, minsd_u128_r64 );
909TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R64_TEST_T, divsd_u128_r64 );
910TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R64_TEST_T, maxsd_u128_r64 );
911TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R64_TEST_T, cvtsd2ss_u128_r64 );
912TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R64_TEST_T, sqrtsd_u128_r64 );
913
914TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_I32_R64_TEST_T, cvttsd2si_i32_r64 );
915TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_I32_R64_TEST_T, cvtsd2si_i32_r64 );
916
917TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_I64_R64_TEST_T, cvttsd2si_i64_r64 );
918TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_I64_R64_TEST_T, cvtsd2si_i64_r64 );
919
920TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_I32_R32_TEST_T, cvttss2si_i32_r32 );
921TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_I32_R32_TEST_T, cvtss2si_i32_r32 );
922
923TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_I64_R32_TEST_T, cvttss2si_i64_r32 );
924TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_I64_R32_TEST_T, cvtss2si_i64_r32 );
925
926TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_R32_I32_TEST_T, cvtsi2ss_r32_i32 );
927TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_R32_I64_TEST_T, cvtsi2ss_r32_i64 );
928
929TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_R64_I32_TEST_T, cvtsi2sd_r64_i32 );
930TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_R64_I64_TEST_T, cvtsi2sd_r64_i64 );
931
932TSTIEM_DECLARE_TEST_ARRAY_BIN(SseCompare, SSE_COMPARE_EFL_R32_R32_TEST_T, ucomiss_u128 );
933TSTIEM_DECLARE_TEST_ARRAY_BIN(SseCompare, SSE_COMPARE_EFL_R32_R32_TEST_T, vucomiss_u128 );
934TSTIEM_DECLARE_TEST_ARRAY_BIN(SseCompare, SSE_COMPARE_EFL_R32_R32_TEST_T, comiss_u128 );
935TSTIEM_DECLARE_TEST_ARRAY_BIN(SseCompare, SSE_COMPARE_EFL_R32_R32_TEST_T, vcomiss_u128 );
936
937TSTIEM_DECLARE_TEST_ARRAY_BIN(SseCompare, SSE_COMPARE_EFL_R64_R64_TEST_T, ucomisd_u128 );
938TSTIEM_DECLARE_TEST_ARRAY_BIN(SseCompare, SSE_COMPARE_EFL_R64_R64_TEST_T, vucomisd_u128 );
939TSTIEM_DECLARE_TEST_ARRAY_BIN(SseCompare, SSE_COMPARE_EFL_R64_R64_TEST_T, comisd_u128 );
940TSTIEM_DECLARE_TEST_ARRAY_BIN(SseCompare, SSE_COMPARE_EFL_R64_R64_TEST_T, vcomisd_u128 );
941
942TSTIEM_DECLARE_TEST_ARRAY_BIN(SseCompare, SSE_COMPARE_F2_XMM_IMM8_TEST_T, cmpps_u128 );
943TSTIEM_DECLARE_TEST_ARRAY_BIN(SseCompare, SSE_COMPARE_F2_XMM_IMM8_TEST_T, cmppd_u128 );
944TSTIEM_DECLARE_TEST_ARRAY_BIN(SseCompare, SSE_COMPARE_F2_XMM_IMM8_TEST_T, cmpss_u128 );
945TSTIEM_DECLARE_TEST_ARRAY_BIN(SseCompare, SSE_COMPARE_F2_XMM_IMM8_TEST_T, cmpsd_u128 );
946
947TSTIEM_DECLARE_TEST_ARRAY_BIN(SseConvert, SSE_CONVERT_XMM_TEST_T, cvtdq2ps_u128 );
948TSTIEM_DECLARE_TEST_ARRAY_BIN(SseConvert, SSE_CONVERT_XMM_TEST_T, cvtps2dq_u128 );
949TSTIEM_DECLARE_TEST_ARRAY_BIN(SseConvert, SSE_CONVERT_XMM_TEST_T, cvttps2dq_u128 );
950
951TSTIEM_DECLARE_TEST_ARRAY_BIN(SseConvert, SSE_CONVERT_XMM_TEST_T, cvttpd2dq_u128 );
952TSTIEM_DECLARE_TEST_ARRAY_BIN(SseConvert, SSE_CONVERT_XMM_TEST_T, cvtdq2pd_u128 );
953TSTIEM_DECLARE_TEST_ARRAY_BIN(SseConvert, SSE_CONVERT_XMM_TEST_T, cvtpd2dq_u128 );
954
955RT_C_DECLS_END
956
957#endif /* !VMM_INCLUDED_SRC_testcase_tstIEMAImpl_h */
958
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette