/* $Id: tstIEMAImpl.h $ */ /** @file * IEM Assembly Instruction Helper Testcase, Data Header File. */ /* * Copyright (C) 2022-2023 Oracle and/or its affiliates. * * This file is part of VirtualBox base platform packages, as * available from https://www.virtualbox.org. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation, in version 3 of the * License. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see . * * SPDX-License-Identifier: GPL-3.0-only */ #ifndef VMM_INCLUDED_SRC_testcase_tstIEMAImpl_h #define VMM_INCLUDED_SRC_testcase_tstIEMAImpl_h #ifndef RT_WITHOUT_PRAGMA_ONCE # pragma once #endif #include #include /** @name Integer binary tests. * @{ */ typedef struct BINU8_TEST_T { uint32_t fEflIn; uint32_t fEflOut; uint8_t uDstIn; uint8_t uDstOut; uint8_t uSrcIn; uint8_t uMisc; } BINU8_TEST_T; typedef struct BINU16_TEST_T { uint32_t fEflIn; uint32_t fEflOut; uint16_t uDstIn; uint16_t uDstOut; uint16_t uSrcIn; uint16_t uMisc; } BINU16_TEST_T; typedef struct BINU32_TEST_T { uint32_t fEflIn; uint32_t fEflOut; uint32_t uDstIn; uint32_t uDstOut; uint32_t uSrcIn; uint32_t uMisc; } BINU32_TEST_T; typedef struct BINU64_TEST_T { uint32_t fEflIn; uint32_t fEflOut; uint64_t uDstIn; uint64_t uDstOut; uint64_t uSrcIn; uint64_t uMisc; } BINU64_TEST_T; /** @} */ /** @name mult/div (PFNIEMAIMPLBINU8, PFNIEMAIMPLBINU16, PFNIEMAIMPLBINU32, PFNIEMAIMPLBINU64) * @{ */ typedef struct MULDIVU8_TEST_T { uint32_t fEflIn; uint32_t fEflOut; uint16_t uDstIn; uint16_t uDstOut; uint8_t uSrcIn; int32_t rc; } MULDIVU8_TEST_T; typedef struct MULDIVU16_TEST_T { uint32_t fEflIn; uint32_t fEflOut; uint16_t uDst1In; uint16_t uDst1Out; uint16_t uDst2In; uint16_t uDst2Out; uint16_t uSrcIn; int32_t rc; } MULDIVU16_TEST_T; typedef struct MULDIVU32_TEST_T { uint32_t fEflIn; uint32_t fEflOut; uint32_t uDst1In; uint32_t uDst1Out; uint32_t uDst2In; uint32_t uDst2Out; uint32_t uSrcIn; int32_t rc; } MULDIVU32_TEST_T; typedef struct MULDIVU64_TEST_T { uint32_t fEflIn; uint32_t fEflOut; uint64_t uDst1In; uint64_t uDst1Out; uint64_t uDst2In; uint64_t uDst2Out; uint64_t uSrcIn; int32_t rc; } MULDIVU64_TEST_T; /** @} */ /** @name x87 FPU * @{ */ typedef struct FPU_LD_CONST_TEST_T { uint16_t fFcw; uint16_t fFswIn; uint16_t fFswOut; RTFLOAT80U rdResult; } FPU_LD_CONST_TEST_T; typedef struct FPU_R32_IN_TEST_T { uint16_t fFcw; uint16_t fFswIn; uint16_t fFswOut; RTFLOAT80U rdResult; RTFLOAT32U InVal; } FPU_R32_IN_TEST_T; typedef struct FPU_R64_IN_TEST_T { uint16_t fFcw; uint16_t fFswIn; uint16_t fFswOut; RTFLOAT80U rdResult; RTFLOAT64U InVal; } FPU_R64_IN_TEST_T; typedef struct FPU_R80_IN_TEST_T { uint16_t fFcw; uint16_t fFswIn; uint16_t fFswOut; RTFLOAT80U rdResult; RTFLOAT80U InVal; } FPU_R80_IN_TEST_T; typedef struct FPU_I16_IN_TEST_T { uint16_t fFcw; uint16_t fFswIn; uint16_t fFswOut; RTFLOAT80U rdResult; int16_t iInVal; } FPU_I16_IN_TEST_T; typedef struct FPU_I32_IN_TEST_T { uint16_t fFcw; uint16_t fFswIn; uint16_t fFswOut; RTFLOAT80U rdResult; int32_t iInVal; } FPU_I32_IN_TEST_T; typedef struct FPU_I64_IN_TEST_T { uint16_t fFcw; uint16_t fFswIn; uint16_t fFswOut; RTFLOAT80U rdResult; int64_t iInVal; } FPU_I64_IN_TEST_T; typedef struct FPU_D80_IN_TEST_T { uint16_t fFcw; uint16_t fFswIn; uint16_t fFswOut; RTFLOAT80U rdResult; RTPBCD80U InVal; } FPU_D80_IN_TEST_T; typedef struct FPU_ST_R32_TEST_T { uint16_t fFcw; uint16_t fFswIn; uint16_t fFswOut; RTFLOAT80U InVal; RTFLOAT32U OutVal; } FPU_ST_R32_TEST_T; typedef struct FPU_ST_R64_TEST_T { uint16_t fFcw; uint16_t fFswIn; uint16_t fFswOut; RTFLOAT80U InVal; RTFLOAT64U OutVal; } FPU_ST_R64_TEST_T; typedef struct FPU_ST_R80_TEST_T { uint16_t fFcw; uint16_t fFswIn; uint16_t fFswOut; RTFLOAT80U InVal; RTFLOAT80U OutVal; } FPU_ST_R80_TEST_T; typedef struct FPU_ST_I16_TEST_T { uint16_t fFcw; uint16_t fFswIn; uint16_t fFswOut; RTFLOAT80U InVal; int16_t iOutVal; } FPU_ST_I16_TEST_T; typedef struct FPU_ST_I32_TEST_T { uint16_t fFcw; uint16_t fFswIn; uint16_t fFswOut; RTFLOAT80U InVal; int32_t iOutVal; } FPU_ST_I32_TEST_T; typedef struct FPU_ST_I64_TEST_T { uint16_t fFcw; uint16_t fFswIn; uint16_t fFswOut; RTFLOAT80U InVal; int64_t iOutVal; } FPU_ST_I64_TEST_T; typedef struct FPU_ST_D80_TEST_T { uint16_t fFcw; uint16_t fFswIn; uint16_t fFswOut; RTFLOAT80U InVal; RTPBCD80U OutVal; } FPU_ST_D80_TEST_T; typedef struct FPU_BINARY_R80_TEST_T { uint16_t fFcw; uint16_t fFswIn; uint16_t fFswOut; RTFLOAT80U InVal1; RTFLOAT80U InVal2; RTFLOAT80U OutVal; } FPU_BINARY_R80_TEST_T; typedef struct FPU_BINARY_R64_TEST_T { uint16_t fFcw; uint16_t fFswIn; uint16_t fFswOut; RTFLOAT80U InVal1; RTFLOAT64U InVal2; RTFLOAT80U OutVal; } FPU_BINARY_R64_TEST_T; typedef struct FPU_BINARY_R32_TEST_T { uint16_t fFcw; uint16_t fFswIn; uint16_t fFswOut; RTFLOAT80U InVal1; RTFLOAT32U InVal2; RTFLOAT80U OutVal; } FPU_BINARY_R32_TEST_T; typedef struct FPU_BINARY_I64_TEST_T { uint16_t fFcw; uint16_t fFswIn; uint16_t fFswOut; RTFLOAT80U InVal1; int64_t InVal2; RTFLOAT80U OutVal; } FPU_BINARY_I64_TEST_T; typedef struct FPU_BINARY_I32_TEST_T { uint16_t fFcw; uint16_t fFswIn; uint16_t fFswOut; RTFLOAT80U InVal1; int32_t InVal2; RTFLOAT80U OutVal; } FPU_BINARY_I32_TEST_T; typedef struct FPU_BINARY_I16_TEST_T { uint16_t fFcw; uint16_t fFswIn; uint16_t fFswOut; RTFLOAT80U InVal1; int16_t InVal2; RTFLOAT80U OutVal; } FPU_BINARY_I16_TEST_T; typedef struct FPU_BINARY_EFL_R80_TEST_T { uint16_t fFcw; uint16_t fFswIn; uint16_t fFswOut; RTFLOAT80U InVal1; RTFLOAT80U InVal2; uint32_t fEflOut; } FPU_BINARY_EFL_R80_TEST_T; typedef struct FPU_UNARY_R80_TEST_T { uint16_t fFcw; uint16_t fFswIn; uint16_t fFswOut; RTFLOAT80U InVal; RTFLOAT80U OutVal; } FPU_UNARY_R80_TEST_T; typedef struct FPU_UNARY_TWO_R80_TEST_T { uint16_t fFcw; uint16_t fFswIn; uint16_t fFswOut; RTFLOAT80U InVal; RTFLOAT80U OutVal1; RTFLOAT80U OutVal2; } FPU_UNARY_TWO_R80_TEST_T; typedef struct SSE_BINARY_TEST_T { uint32_t fMxcsrIn; uint32_t fMxcsrOut; uint32_t au32Padding[2]; X86XMMREG InVal1; X86XMMREG InVal2; X86XMMREG OutVal; } SSE_BINARY_TEST_T; typedef struct SSE_BINARY_U128_R32_TEST_T { uint32_t fMxcsrIn; uint32_t fMxcsrOut; uint32_t au32Padding[2]; X86XMMREG OutVal; X86XMMREG InVal1; RTFLOAT32U r32Val2; } SSE_BINARY_U128_R32_TEST_T; typedef struct SSE_BINARY_U128_R64_TEST_T { uint32_t fMxcsrIn; uint32_t fMxcsrOut; uint32_t au32Padding[2]; X86XMMREG OutVal; X86XMMREG InVal1; RTFLOAT64U r64Val2; } SSE_BINARY_U128_R64_TEST_T; typedef struct SSE_BINARY_I32_R64_TEST_T { uint32_t fMxcsrIn; uint32_t fMxcsrOut; uint32_t u32Padding; int32_t i32ValOut; RTFLOAT64U r64ValIn; } SSE_BINARY_I32_R64_TEST_T; typedef struct SSE_BINARY_I64_R64_TEST_T { uint32_t fMxcsrIn; uint32_t fMxcsrOut; int64_t i64ValOut; RTFLOAT64U r64ValIn; } SSE_BINARY_I64_R64_TEST_T; typedef struct SSE_BINARY_I32_R32_TEST_T { uint32_t fMxcsrIn; uint32_t fMxcsrOut; uint32_t u32Padding; int32_t i32ValOut; RTFLOAT32U r32ValIn; } SSE_BINARY_I32_R32_TEST_T; typedef struct SSE_BINARY_I64_R32_TEST_T { uint32_t fMxcsrIn; uint32_t fMxcsrOut; int64_t i64ValOut; RTFLOAT32U r32ValIn; } SSE_BINARY_I64_R32_TEST_T; typedef struct SSE_BINARY_R32_I32_TEST_T { uint32_t fMxcsrIn; uint32_t fMxcsrOut; uint32_t u32Padding; int32_t i32ValIn; RTFLOAT32U r32ValOut; } SSE_BINARY_R32_I32_TEST_T; typedef struct SSE_BINARY_R32_I64_TEST_T { uint32_t fMxcsrIn; uint32_t fMxcsrOut; int64_t i64ValIn; RTFLOAT32U r32ValOut; } SSE_BINARY_R32_I64_TEST_T; typedef struct SSE_BINARY_R64_I32_TEST_T { uint32_t fMxcsrIn; uint32_t fMxcsrOut; uint32_t u32Padding; int32_t i32ValIn; RTFLOAT64U r64ValOut; } SSE_BINARY_R64_I32_TEST_T; typedef struct SSE_BINARY_R64_I64_TEST_T { uint32_t fMxcsrIn; uint32_t fMxcsrOut; int64_t i64ValIn; RTFLOAT64U r64ValOut; } SSE_BINARY_R64_I64_TEST_T; typedef struct SSE_COMPARE_EFL_R32_R32_TEST_T { uint32_t fMxcsrIn; uint32_t fMxcsrOut; uint32_t fEflIn; uint32_t fEflOut; RTFLOAT32U r32ValIn1; RTFLOAT32U r32ValIn2; } SSE_COMPARE_EFL_R32_R32_TEST_T; typedef struct SSE_COMPARE_EFL_R64_R64_TEST_T { uint32_t fMxcsrIn; uint32_t fMxcsrOut; uint32_t fEflIn; uint32_t fEflOut; RTFLOAT64U r64ValIn1; RTFLOAT64U r64ValIn2; } SSE_COMPARE_EFL_R64_R64_TEST_T; typedef struct SSE_COMPARE_F2_XMM_IMM8_TEST_T { uint32_t fMxcsrIn; uint32_t fMxcsrOut; uint8_t bImm; uint8_t abPadding0[3]; uint32_t u32Padding1; X86XMMREG InVal1; X86XMMREG InVal2; X86XMMREG OutVal; } SSE_COMPARE_F2_XMM_IMM8_TEST_T; typedef struct SSE_CONVERT_XMM_TEST_T { uint32_t fMxcsrIn; uint32_t fMxcsrOut; uint32_t au32Padding[2]; X86XMMREG InVal; X86XMMREG OutVal; } SSE_CONVERT_XMM_TEST_T; typedef struct SSE_CONVERT_MM_XMM_TEST_T { uint32_t fMxcsrIn; uint32_t fMxcsrOut; RTUINT64U OutVal; X86XMMREG InVal; } SSE_CONVERT_MM_XMM_TEST_T; typedef struct SSE_CONVERT_XMM_MM_TEST_T { uint32_t fMxcsrIn; uint32_t fMxcsrOut; RTUINT64U InVal; X86XMMREG OutVal; } SSE_CONVERT_XMM_MM_TEST_T; typedef struct SSE_CONVERT_MM_R32_TEST_T { uint32_t fMxcsrIn; uint32_t fMxcsrOut; RTFLOAT32U ar32InVal[2]; RTUINT64U OutVal; } SSE_CONVERT_MM_R32_TEST_T; /** @} */ #define TSTIEM_DEFINE_EMPTY_TEST_ARRAY(a_Type, a_Instr) \ extern a_Type const RT_CONCAT(g_aTests_, a_Instr)[] = { {0} }; \ extern uint32_t const RT_CONCAT(g_cTests_, a_Instr) = 0 #define TSTIEM_DEFINE_EMPTY_TEST_ARRAY_BIN(a_Type, a_Instr) \ extern a_Type const RT_CONCAT(g_aTests_, a_Instr)[] = { {0} }; \ extern uint32_t const RT_CONCAT(g_cbTests_, a_Instr) = 0 #define TSTIEM_DECLARE_TEST_ARRAY(a_szFile, a_Type, a_Instr) \ extern a_Type const RT_CONCAT(g_aTests_, a_Instr)[]; \ extern uint32_t const RT_CONCAT(g_cTests_, a_Instr) #define TSTIEM_DECLARE_TEST_ARRAY_BIN(a_szFile, a_Type, a_Instr) \ extern a_Type const RT_CONCAT(g_aTests_, a_Instr)[]; \ extern uint32_t const RT_CONCAT(g_cbTests_, a_Instr) TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, add_u8 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, add_u8_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, adc_u8 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, adc_u8_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, sub_u8 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, sub_u8_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, sbb_u8 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, sbb_u8_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, or_u8 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, or_u8_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, xor_u8 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, xor_u8_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, and_u8 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, and_u8_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, cmp_u8 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, test_u8 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, add_u16 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, add_u16_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, adc_u16 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, adc_u16_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, sub_u16 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, sub_u16_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, sbb_u16 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, sbb_u16_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, or_u16 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, or_u16_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, xor_u16 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, xor_u16_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, and_u16 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, and_u16_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, cmp_u16 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, test_u16 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, bt_u16 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, btc_u16 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, btc_u16_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, btr_u16 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, btr_u16_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, bts_u16 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, bts_u16_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, arpl ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, bsf_u16_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, bsr_u16_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, imul_two_u16_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, bsf_u16_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, bsr_u16_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, imul_two_u16_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, add_u32 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, add_u32_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, adc_u32 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, adc_u32_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, sub_u32 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, sub_u32_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, sbb_u32 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, sbb_u32_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, or_u32 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, or_u32_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, xor_u32 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, xor_u32_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, and_u32 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, and_u32_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, cmp_u32 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, test_u32 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, bt_u32 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, btc_u32 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, btc_u32_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, btr_u32 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, btr_u32_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, bts_u32 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, bts_u32_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, bsf_u32_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, bsr_u32_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, imul_two_u32_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, bsf_u32_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, bsr_u32_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, imul_two_u32_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, add_u64 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, add_u64_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, adc_u64 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, adc_u64_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, sub_u64 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, sub_u64_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, sbb_u64 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, sbb_u64_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, or_u64 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, or_u64_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, xor_u64 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, xor_u64_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, and_u64 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, and_u64_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, cmp_u64 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, test_u64 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, bt_u64 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, btc_u64 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, btc_u64_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, btr_u64 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, btr_u64_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, bts_u64 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, bts_u64_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, bsf_u64_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, bsr_u64_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, imul_two_u64_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, bsf_u64_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, bsr_u64_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, imul_two_u64_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, shrd_u16_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, shld_u16_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, shrd_u32_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, shld_u32_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, shrd_u64_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, shld_u64_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, shrd_u16_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, shld_u16_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, shrd_u32_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, shld_u32_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, shrd_u64_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, shld_u64_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, inc_u8 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, inc_u8_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, dec_u8 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, dec_u8_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, not_u8 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, not_u8_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, neg_u8 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU8_TEST_T, neg_u8_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, inc_u16 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, inc_u16_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, dec_u16 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, dec_u16_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, not_u16 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, not_u16_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, neg_u16 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU16_TEST_T, neg_u16_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, inc_u32 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, inc_u32_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, dec_u32 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, dec_u32_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, not_u32 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, not_u32_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, neg_u32 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU32_TEST_T, neg_u32_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, inc_u64 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, inc_u64_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, dec_u64 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, dec_u64_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, not_u64 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, not_u64_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, neg_u64 ); TSTIEM_DECLARE_TEST_ARRAY(Int, BINU64_TEST_T, neg_u64_locked ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU8_TEST_T, rol_u8_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU8_TEST_T, ror_u8_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU8_TEST_T, rcl_u8_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU8_TEST_T, rcr_u8_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU8_TEST_T, shl_u8_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU8_TEST_T, shr_u8_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU8_TEST_T, sar_u8_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU8_TEST_T, rol_u8_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU8_TEST_T, ror_u8_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU8_TEST_T, rcl_u8_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU8_TEST_T, rcr_u8_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU8_TEST_T, shl_u8_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU8_TEST_T, shr_u8_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU8_TEST_T, sar_u8_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, rol_u16_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, ror_u16_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, rcl_u16_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, rcr_u16_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, shl_u16_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, shr_u16_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU16_TEST_T, sar_u16_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, rol_u16_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, ror_u16_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, rcl_u16_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, rcr_u16_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, shl_u16_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, shr_u16_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU16_TEST_T, sar_u16_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, rol_u32_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, ror_u32_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, rcl_u32_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, rcr_u32_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, shl_u32_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, shr_u32_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU32_TEST_T, sar_u32_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, rol_u32_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, ror_u32_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, rcl_u32_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, rcr_u32_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, shl_u32_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, shr_u32_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU32_TEST_T, sar_u32_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, rol_u64_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, ror_u64_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, rcl_u64_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, rcr_u64_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, shl_u64_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, shr_u64_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, BINU64_TEST_T, sar_u64_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, rol_u64_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, ror_u64_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, rcl_u64_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, rcr_u64_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, shl_u64_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, shr_u64_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, BINU64_TEST_T, sar_u64_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU8_TEST_T, mul_u8_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU8_TEST_T, imul_u8_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU8_TEST_T, div_u8_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU8_TEST_T, idiv_u8_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU8_TEST_T, mul_u8_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU8_TEST_T, imul_u8_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU8_TEST_T, div_u8_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU8_TEST_T, idiv_u8_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU16_TEST_T, mul_u16_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU16_TEST_T, imul_u16_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU16_TEST_T, div_u16_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU16_TEST_T, idiv_u16_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU16_TEST_T, mul_u16_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU16_TEST_T, imul_u16_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU16_TEST_T, div_u16_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU16_TEST_T, idiv_u16_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU32_TEST_T, mul_u32_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU32_TEST_T, imul_u32_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU32_TEST_T, div_u32_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU32_TEST_T, idiv_u32_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU32_TEST_T, mul_u32_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU32_TEST_T, imul_u32_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU32_TEST_T, div_u32_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU32_TEST_T, idiv_u32_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU64_TEST_T, mul_u64_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU64_TEST_T, imul_u64_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU64_TEST_T, div_u64_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Amd, MULDIVU64_TEST_T, idiv_u64_amd ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU64_TEST_T, mul_u64_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU64_TEST_T, imul_u64_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU64_TEST_T, div_u64_intel ); TSTIEM_DECLARE_TEST_ARRAY(Int-Intel, MULDIVU64_TEST_T, idiv_u64_intel ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_LD_CONST_TEST_T, fld1 ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_LD_CONST_TEST_T, fldl2t ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_LD_CONST_TEST_T, fldl2e ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_LD_CONST_TEST_T, fldpi ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_LD_CONST_TEST_T, fldlg2 ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_LD_CONST_TEST_T, fldln2 ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_LD_CONST_TEST_T, fldz ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_R80_IN_TEST_T, fld_r80_from_r80 ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_R64_IN_TEST_T, fld_r80_from_r64 ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_R32_IN_TEST_T, fld_r80_from_r32 ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_I64_IN_TEST_T, fild_r80_from_i64 ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_I32_IN_TEST_T, fild_r80_from_i32 ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_I16_IN_TEST_T, fild_r80_from_i16 ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_D80_IN_TEST_T, fld_r80_from_d80 ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_R80_TEST_T, fst_r80_to_r80 ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_R64_TEST_T, fst_r80_to_r64 ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_R32_TEST_T, fst_r80_to_r32 ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_I64_TEST_T, fist_r80_to_i64 ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_I32_TEST_T, fist_r80_to_i32 ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_I16_TEST_T, fist_r80_to_i16 ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_I64_TEST_T, fistt_r80_to_i64 ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_I32_TEST_T, fistt_r80_to_i32 ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt-Amd, FPU_ST_I16_TEST_T, fistt_r80_to_i16_amd ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt-Intel, FPU_ST_I16_TEST_T, fistt_r80_to_i16_intel ); TSTIEM_DECLARE_TEST_ARRAY(FpuLdSt, FPU_ST_D80_TEST_T, fst_r80_to_d80 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fadd_r80_by_r80 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fsub_r80_by_r80 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fsubr_r80_by_r80 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fmul_r80_by_r80 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fdiv_r80_by_r80 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fdivr_r80_by_r80 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fprem_r80_by_r80 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fprem1_r80_by_r80 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fscale_r80_by_r80 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1-Amd, FPU_BINARY_R80_TEST_T, fpatan_r80_by_r80_amd ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1-Intel, FPU_BINARY_R80_TEST_T, fpatan_r80_by_r80_intel ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1-Amd, FPU_BINARY_R80_TEST_T, fyl2x_r80_by_r80_amd ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1-Intel, FPU_BINARY_R80_TEST_T, fyl2x_r80_by_r80_intel ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1-Amd, FPU_BINARY_R80_TEST_T, fyl2xp1_r80_by_r80_amd ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1-Intel, FPU_BINARY_R80_TEST_T, fyl2xp1_r80_by_r80_intel ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R64_TEST_T, fadd_r80_by_r64 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R64_TEST_T, fmul_r80_by_r64 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R64_TEST_T, fsub_r80_by_r64 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R64_TEST_T, fsubr_r80_by_r64 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R64_TEST_T, fdiv_r80_by_r64 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R64_TEST_T, fdivr_r80_by_r64 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R32_TEST_T, fadd_r80_by_r32 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R32_TEST_T, fmul_r80_by_r32 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R32_TEST_T, fsub_r80_by_r32 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R32_TEST_T, fsubr_r80_by_r32 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R32_TEST_T, fdiv_r80_by_r32 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R32_TEST_T, fdivr_r80_by_r32 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I32_TEST_T, fiadd_r80_by_i32 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I32_TEST_T, fimul_r80_by_i32 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I32_TEST_T, fisub_r80_by_i32 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I32_TEST_T, fisubr_r80_by_i32 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I32_TEST_T, fidiv_r80_by_i32 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I32_TEST_T, fidivr_r80_by_i32 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I16_TEST_T, fiadd_r80_by_i16 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I16_TEST_T, fimul_r80_by_i16 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I16_TEST_T, fisub_r80_by_i16 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I16_TEST_T, fisubr_r80_by_i16 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I16_TEST_T, fidiv_r80_by_i16 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I16_TEST_T, fidivr_r80_by_i16 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fcom_r80_by_r80 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_R80_TEST_T, fucom_r80_by_r80 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R64_TEST_T, fcom_r80_by_r64 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_R32_TEST_T, fcom_r80_by_r32 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I32_TEST_T, ficom_r80_by_i32 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary2, FPU_BINARY_I16_TEST_T, ficom_r80_by_i16 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_EFL_R80_TEST_T, fcomi_r80_by_r80 ); TSTIEM_DECLARE_TEST_ARRAY(FpuBinary1, FPU_BINARY_EFL_R80_TEST_T, fucomi_r80_by_r80 ); TSTIEM_DECLARE_TEST_ARRAY(FpuOther, FPU_UNARY_R80_TEST_T, fabs_r80 ); TSTIEM_DECLARE_TEST_ARRAY(FpuOther, FPU_UNARY_R80_TEST_T, fchs_r80 ); TSTIEM_DECLARE_TEST_ARRAY(FpuOther-Amd, FPU_UNARY_R80_TEST_T, f2xm1_r80_amd ); TSTIEM_DECLARE_TEST_ARRAY(FpuOther-Intel, FPU_UNARY_R80_TEST_T, f2xm1_r80_intel ); TSTIEM_DECLARE_TEST_ARRAY(FpuOther, FPU_UNARY_R80_TEST_T, fsqrt_r80 ); TSTIEM_DECLARE_TEST_ARRAY(FpuOther, FPU_UNARY_R80_TEST_T, frndint_r80 ); TSTIEM_DECLARE_TEST_ARRAY(FpuOther-Amd, FPU_UNARY_R80_TEST_T, fsin_r80_amd ); TSTIEM_DECLARE_TEST_ARRAY(FpuOther-Intel, FPU_UNARY_R80_TEST_T, fsin_r80_intel ); TSTIEM_DECLARE_TEST_ARRAY(FpuOther-Amd, FPU_UNARY_R80_TEST_T, fcos_r80_amd ); TSTIEM_DECLARE_TEST_ARRAY(FpuOther-Intel, FPU_UNARY_R80_TEST_T, fcos_r80_intel ); TSTIEM_DECLARE_TEST_ARRAY(FpuOther, FPU_UNARY_R80_TEST_T, ftst_r80 ); TSTIEM_DECLARE_TEST_ARRAY(FpuOther, FPU_UNARY_R80_TEST_T, fxam_r80 ); TSTIEM_DECLARE_TEST_ARRAY(FpuOther-Amd, FPU_UNARY_TWO_R80_TEST_T, fptan_r80_r80_amd ); TSTIEM_DECLARE_TEST_ARRAY(FpuOther-Intel, FPU_UNARY_TWO_R80_TEST_T, fptan_r80_r80_intel ); TSTIEM_DECLARE_TEST_ARRAY(FpuOther, FPU_UNARY_TWO_R80_TEST_T, fxtract_r80_r80 ); TSTIEM_DECLARE_TEST_ARRAY(FpuOther-Amd, FPU_UNARY_TWO_R80_TEST_T, fsincos_r80_r80_amd ); TSTIEM_DECLARE_TEST_ARRAY(FpuOther-Intel, FPU_UNARY_TWO_R80_TEST_T, fsincos_r80_r80_intel ); RT_C_DECLS_BEGIN TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, addps_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, mulps_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, subps_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, minps_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, divps_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, maxps_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, haddps_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, hsubps_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, sqrtps_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, addsubps_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, cvtps2pd_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R32_TEST_T, addss_u128_r32 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R32_TEST_T, mulss_u128_r32 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R32_TEST_T, subss_u128_r32 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R32_TEST_T, minss_u128_r32 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R32_TEST_T, divss_u128_r32 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R32_TEST_T, maxss_u128_r32 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R32_TEST_T, cvtss2sd_u128_r32 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R32_TEST_T, sqrtss_u128_r32 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, addpd_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, mulpd_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, subpd_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, minpd_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, divpd_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, maxpd_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, haddpd_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, hsubpd_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, sqrtpd_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, addsubpd_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_TEST_T, cvtpd2ps_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R64_TEST_T, addsd_u128_r64 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R64_TEST_T, mulsd_u128_r64 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R64_TEST_T, subsd_u128_r64 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R64_TEST_T, minsd_u128_r64 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R64_TEST_T, divsd_u128_r64 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R64_TEST_T, maxsd_u128_r64 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R64_TEST_T, cvtsd2ss_u128_r64 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_U128_R64_TEST_T, sqrtsd_u128_r64 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_I32_R64_TEST_T, cvttsd2si_i32_r64 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_I32_R64_TEST_T, cvtsd2si_i32_r64 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_I64_R64_TEST_T, cvttsd2si_i64_r64 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_I64_R64_TEST_T, cvtsd2si_i64_r64 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_I32_R32_TEST_T, cvttss2si_i32_r32 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_I32_R32_TEST_T, cvtss2si_i32_r32 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_I64_R32_TEST_T, cvttss2si_i64_r32 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_I64_R32_TEST_T, cvtss2si_i64_r32 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_R32_I32_TEST_T, cvtsi2ss_r32_i32 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_R32_I64_TEST_T, cvtsi2ss_r32_i64 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_R64_I32_TEST_T, cvtsi2sd_r64_i32 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseBinary, SSE_BINARY_R64_I64_TEST_T, cvtsi2sd_r64_i64 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseCompare, SSE_COMPARE_EFL_R32_R32_TEST_T, ucomiss_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseCompare, SSE_COMPARE_EFL_R32_R32_TEST_T, vucomiss_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseCompare, SSE_COMPARE_EFL_R32_R32_TEST_T, comiss_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseCompare, SSE_COMPARE_EFL_R32_R32_TEST_T, vcomiss_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseCompare, SSE_COMPARE_EFL_R64_R64_TEST_T, ucomisd_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseCompare, SSE_COMPARE_EFL_R64_R64_TEST_T, vucomisd_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseCompare, SSE_COMPARE_EFL_R64_R64_TEST_T, comisd_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseCompare, SSE_COMPARE_EFL_R64_R64_TEST_T, vcomisd_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseCompare, SSE_COMPARE_F2_XMM_IMM8_TEST_T, cmpps_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseCompare, SSE_COMPARE_F2_XMM_IMM8_TEST_T, cmppd_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseCompare, SSE_COMPARE_F2_XMM_IMM8_TEST_T, cmpss_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseCompare, SSE_COMPARE_F2_XMM_IMM8_TEST_T, cmpsd_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseConvert, SSE_CONVERT_XMM_TEST_T, cvtdq2ps_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseConvert, SSE_CONVERT_XMM_TEST_T, cvtps2dq_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseConvert, SSE_CONVERT_XMM_TEST_T, cvttps2dq_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseConvert, SSE_CONVERT_XMM_TEST_T, cvttpd2dq_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseConvert, SSE_CONVERT_XMM_TEST_T, cvtdq2pd_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseConvert, SSE_CONVERT_XMM_TEST_T, cvtpd2dq_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseConvert, SSE_CONVERT_MM_XMM_TEST_T, cvtpd2pi_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseConvert, SSE_CONVERT_MM_XMM_TEST_T, cvttpd2pi_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseConvert, SSE_CONVERT_XMM_MM_TEST_T, cvtpi2ps_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseConvert, SSE_CONVERT_XMM_MM_TEST_T, cvtpi2pd_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseConvert, SSE_CONVERT_MM_R32_TEST_T, cvtps2pi_u128 ); TSTIEM_DECLARE_TEST_ARRAY_BIN(SseConvert, SSE_CONVERT_MM_R32_TEST_T, cvttps2pi_u128 ); RT_C_DECLS_END #endif /* !VMM_INCLUDED_SRC_testcase_tstIEMAImpl_h */