Changeset 106177 in vbox for trunk/src/VBox/ValidationKit/bootsectors
- Timestamp:
- Sep 28, 2024 10:20:18 AM (5 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-4.c32
r106176 r106177 1367 1367 { /*src1 */ { FP32_1(0), FP32_1(1), FP32_QNAN_V(1, FP32_FRAC_V0), FP32_NORM_V2(1), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_NORM_V4(0), FP32_QNAN_V(1, FP32_FRAC_V4), FP32_NORM_V6(1) } }, \ 1368 1368 { /* => */ { FP32_QNAN(0), FP32_QNAN_V(1, FP32_FRAC_NORM_MAX), FP32_NORM_V0(1), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_NORM_V3(0), FP32_QNAN_V(1, FP32_FRAC_V3), FP32_NORM_V5(0), FP32_QNAN_V(1, FP32_FRAC_V5) } }, \ 1369 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS,\1370 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_ XCPT_FLAGS,\1371 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_ XCPT_FLAGS,\1369 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, \ 1370 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE, \ 1371 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE, \ 1372 1372 /*xcpt? */ false, false }, \ 1373 1373 { { /*src2 */ { FP32_SNAN(1), FP32_SNAN_V(1, FP32_FRAC_NORM_MAX), FP32_NORM_V0(1), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_NORM_V3(0), FP32_SNAN_V(1, FP32_FRAC_V3), FP32_NORM_V5(0), FP32_SNAN_V(1, FP32_FRAC_V5) } }, \ … … 1394 1394 { { /*src2 */ { FP32_SNAN(0), FP32_SNAN_V(0, FP32_FRAC_NORM_MIN), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V3), FP32_SNAN_V(0, FP32_FRAC_V4), FP32_SNAN_V(0, FP32_FRAC_V5), FP32_SNAN_V(0, FP32_FRAC_V6) } }, \ 1395 1395 { /*src1 */ { FP32_QNAN(0), FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V6), FP32_QNAN_V(0, FP32_FRAC_V5), FP32_QNAN_V(0, FP32_FRAC_V4), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V1) } }, \ 1396 { /* => */ { FP32_ QNAN(0), FP32_QNAN_V(0, FP32_FRAC_NORM_MIN), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_QNAN_V(0, FP32_FRAC_V4), FP32_QNAN_V(0, FP32_FRAC_V5), FP32_QNAN_V(0, FP32_FRAC_V6) } }, \1396 { /* => */ { FP32_SNAN(0), FP32_SNAN_V(0, FP32_FRAC_NORM_MIN), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_SNAN_V(0, FP32_FRAC_V4), FP32_SNAN_V(0, FP32_FRAC_V5), FP32_SNAN_V(0, FP32_FRAC_V6) } }, \ 1397 1397 /*mxcsr:in */ 0, \ 1398 1398 /*128:out */ X86_MXCSR_IE, \ … … 10769 10769 /*29*/{ { /*src2 */ { FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 10770 10770 { /*src1 */ { FP32_0(0), FP32_DENORM_MAX(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(1) } }, 10771 { /* => */ { FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 10772 /*mxcsr:in */ 0, 10773 /*128:out */ X86_MXCSR_DE, 10774 /*256:out */ X86_MXCSR_DE, 10775 /*xcpt? */ true, true }, 10776 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 10777 { /*src1 */ { FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0) } }, 10778 { /* => */ { FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0) } }, 10779 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 10780 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 10781 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 10782 /*xcpt? */ false, false }, 10783 { { /*src2 */ { FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MAX(0) } }, 10784 { /*src1 */ { FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0) } }, 10785 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 10786 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 10787 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 10788 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 10789 /*xcpt? */ false, false }, 10790 { { /*src2 */ { FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 10791 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 10792 { /* => */ { FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 10793 /*mxcsr:in */ 0, 10794 /*128:out */ X86_MXCSR_DE, 10795 /*256:out */ X86_MXCSR_DE, 10796 /*xcpt? */ true, true }, 10797 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(1) } }, 10798 { /*src1 */ { FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 10799 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } }, 10800 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 10801 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 10802 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 10803 /*xcpt? */ false, false }, 10804 { { /*src2 */ { FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MAX(0) } }, 10805 { /*src1 */ { FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0) } }, 10806 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 10807 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 10808 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 10809 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 10810 /*xcpt? */ false, false }, 10811 /** @todo More Denormals. */ 10812 /*35*/ FP32_TABLE_D9_PS_INVALIDS 10813 }; 10814 10815 #define PASS_s_aValues RT_ELEMENTS(s_aValues), (BS3CPUINSTR4_TEST1_VALUES_T *)s_aValues 10816 static BS3CPUINSTR4_TEST1_T const s_aTests16[] = 10817 { 10818 { bs3CpuInstr4_maxps_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, 1, 1, 2, PASS_s_aValues }, 10819 { bs3CpuInstr4_maxps_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, 1, 1, 255, PASS_s_aValues }, 10820 10821 { bs3CpuInstr4_vmaxps_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, 1, 2, 3, PASS_s_aValues }, 10822 { bs3CpuInstr4_vmaxps_XMM1_XMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, 1, 2, 255, PASS_s_aValues }, 10823 10824 { bs3CpuInstr4_vmaxps_YMM1_YMM2_YMM3_icebp_c16, 255, RM_REG, T_AVX_256, 1, 2, 3, PASS_s_aValues }, 10825 { bs3CpuInstr4_vmaxps_YMM1_YMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_256, 1, 2, 255, PASS_s_aValues }, 10826 }; 10827 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 10828 { 10829 { bs3CpuInstr4_maxps_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, 1, 1, 2, PASS_s_aValues }, 10830 { bs3CpuInstr4_maxps_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, 1, 1, 255, PASS_s_aValues }, 10831 10832 { bs3CpuInstr4_vmaxps_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, 1, 2, 3, PASS_s_aValues }, 10833 { bs3CpuInstr4_vmaxps_XMM1_XMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, 1, 2, 255, PASS_s_aValues }, 10834 10835 { bs3CpuInstr4_vmaxps_YMM1_YMM2_YMM3_icebp_c32, 255, RM_REG, T_AVX_256, 1, 2, 3, PASS_s_aValues }, 10836 { bs3CpuInstr4_vmaxps_YMM1_YMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_256, 1, 2, 255, PASS_s_aValues }, 10837 }; 10838 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 10839 { 10840 { bs3CpuInstr4_maxps_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, 1, 1, 2, PASS_s_aValues }, 10841 { bs3CpuInstr4_maxps_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, 1, 1, 255, PASS_s_aValues }, 10842 10843 { bs3CpuInstr4_vmaxps_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, 1, 2, 3, PASS_s_aValues }, 10844 { bs3CpuInstr4_vmaxps_XMM1_XMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, 1, 2, 255, PASS_s_aValues }, 10845 10846 { bs3CpuInstr4_vmaxps_YMM1_YMM2_YMM3_icebp_c64, 255, RM_REG, T_AVX_256, 1, 2, 3, PASS_s_aValues }, 10847 { bs3CpuInstr4_vmaxps_YMM1_YMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, 1, 2, 255, PASS_s_aValues }, 10848 10849 { bs3CpuInstr4_maxps_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, 8, 8, 9, PASS_s_aValues }, 10850 { bs3CpuInstr4_maxps_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, 8, 8, 255, PASS_s_aValues }, 10851 10852 { bs3CpuInstr4_vmaxps_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, 8, 9, 10, PASS_s_aValues }, 10853 { bs3CpuInstr4_vmaxps_XMM8_XMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, 8, 9, 255, PASS_s_aValues }, 10854 { bs3CpuInstr4_vmaxps_YMM8_YMM9_YMM10_icebp_c64, 255, RM_REG, T_AVX_256, 8, 9, 10, PASS_s_aValues }, 10855 { bs3CpuInstr4_vmaxps_YMM8_YMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, 8, 9, 255, PASS_s_aValues }, 10856 }; 10857 #undef PASS_s_aValues 10858 10859 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 10860 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 10861 return bs3CpuInstr4_WorkerTestType1A(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 10862 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 10863 } 10864 10865 10866 /* 10867 * [V]MAXPD. 10868 */ 10869 BS3_DECL_FAR(uint8_t) bs3CpuInstr4_v_maxpd(uint8_t bMode) 10870 { 10871 static BS3CPUINSTR4_TEST1_VALUES_PD_T const s_aValues[] = 10872 { 10873 /* 10874 * Zero. 10875 */ 10876 /* 0*/{ { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 10877 { /*src1 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 10878 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 10879 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 10880 /*128:out */ X86_MXCSR_XCPT_MASK, 10881 /*256:out */ X86_MXCSR_XCPT_MASK, 10882 /*xcpt? */ false, false }, 10883 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 10884 { /*src1 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 10885 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 10886 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10887 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10888 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10889 /*xcpt? */ false, false }, 10890 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 10891 { /*src1 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 10892 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 10893 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 10894 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 10895 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 10896 /*xcpt? */ false, false }, 10897 { { /*src2 */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } }, 10898 { /*src1 */ { FP64_0(1), FP64_0(0), FP64_0(1), FP64_0(1) } }, 10899 { /* => */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } }, 10900 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 10901 /*128:out */ X86_MXCSR_XCPT_MASK, 10902 /*256:out */ X86_MXCSR_XCPT_MASK, 10903 /*xcpt? */ false, false }, 10904 { { /*src2 */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(0) } }, 10905 { /*src1 */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } }, 10906 { /* => */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(0) } }, 10907 /*mxcsr:in */ 0, 10908 /*128:out */ 0, 10909 /*256:out */ 0, 10910 /*xcpt? */ false, false }, 10911 { { /*src2 */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } }, 10912 { /*src1 */ { FP64_0(1), FP64_0(0), FP64_0(1), FP64_0(1) } }, 10913 { /* => */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } }, 10914 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 10915 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 10916 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 10917 /*xcpt? */ false, false }, 10918 { { /*src2 */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(0) } }, 10919 { /*src1 */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } }, 10920 { /* => */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(0) } }, 10921 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 10922 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 10923 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 10924 /*xcpt? */ false, false }, 10925 { { /*src2 */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(0) } }, 10926 { /*src1 */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } }, 10927 { /* => */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(0) } }, 10928 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 10929 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 10930 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 10931 /*xcpt? */ false, false }, 10932 { { /*src2 */ { FP64_0(1), FP64_0(1), FP64_0(0), FP64_0(0) } }, 10933 { /*src1 */ { FP64_0(1), FP64_0(1), FP64_0(0), FP64_0(0) } }, 10934 { /* => */ { FP64_0(1), FP64_0(1), FP64_0(0), FP64_0(0) } }, 10935 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 10936 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 10937 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 10938 /*xcpt? */ false, false }, 10939 /* 10940 * Infinity. 10941 */ 10942 /*9 */{ { /*src2 */ { FP64_INF(0), FP64_0(0), FP64_INF(0), FP64_0(1) } }, 10943 { /*src1 */ { FP64_0(0), FP64_INF(0), FP64_0(1), FP64_INF(0) } }, 10944 { /* => */ { FP64_INF(0), FP64_INF(0), FP64_INF(0), FP64_INF(0) } }, 10945 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 10946 /*128:out */ X86_MXCSR_XCPT_MASK, 10947 /*256:out */ X86_MXCSR_XCPT_MASK, 10948 /*xcpt? */ false, false }, 10949 { { /*src2 */ { FP64_INF(0), FP64_0(0), FP64_INF(0), FP64_0(1) } }, 10950 { /*src1 */ { FP64_0(0), FP64_INF(0), FP64_0(1), FP64_INF(0) } }, 10951 { /* => */ { FP64_INF(0), FP64_INF(0), FP64_INF(0), FP64_INF(0) } }, 10952 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 10953 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 10954 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 10955 /*xcpt? */ false, false }, 10956 { { /*src2 */ { FP64_INF(0), FP64_0(0), FP64_INF(0), FP64_0(1) } }, 10957 { /*src1 */ { FP64_0(0), FP64_INF(0), FP64_0(1), FP64_INF(0) } }, 10958 { /* => */ { FP64_INF(0), FP64_INF(0), FP64_INF(0), FP64_INF(0) } }, 10959 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 10960 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 10961 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 10962 /*xcpt? */ false, false }, 10963 { { /*src2 */ { FP64_INF(0), FP64_0(0), FP64_INF(0), FP64_0(1) } }, 10964 { /*src1 */ { FP64_0(0), FP64_INF(0), FP64_0(1), FP64_INF(0) } }, 10965 { /* => */ { FP64_INF(0), FP64_INF(0), FP64_INF(0), FP64_INF(0) } }, 10966 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10967 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10968 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10969 /*xcpt? */ false, false }, 10970 { { /*src2 */ { FP64_INF(0), FP64_0(0), FP64_INF(0), FP64_0(1) } }, 10971 { /*src1 */ { FP64_0(0), FP64_INF(0), FP64_0(1), FP64_INF(0) } }, 10972 { /* => */ { FP64_INF(0), FP64_INF(0), FP64_INF(0), FP64_INF(0) } }, 10973 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 10974 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 10975 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 10976 /*xcpt? */ false, false }, 10977 { { /*src2 */ { FP64_INF(0), FP64_INF(0), FP64_INF(1), FP64_INF(1) } }, 10978 { /*src1 */ { FP64_INF(0), FP64_INF(1), FP64_INF(0), FP64_INF(1) } }, 10979 { /* => */ { FP64_INF(0), FP64_INF(0), FP64_INF(0), FP64_INF(1) } }, 10980 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 10981 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 10982 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 10983 /*xcpt? */ false, false }, 10984 { { /*src2 */ { FP64_INF(0), FP64_INF(0), FP64_INF(1), FP64_INF(1) } }, 10985 { /*src1 */ { FP64_INF(0), FP64_INF(1), FP64_INF(0), FP64_INF(1) } }, 10986 { /* => */ { FP64_INF(0), FP64_INF(0), FP64_INF(0), FP64_INF(1) } }, 10987 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10988 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10989 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 10990 /*xcpt? */ false, false }, 10991 { { /*src2 */ { FP64_INF(0), FP64_NORM_V1(0), FP64_INF(1), FP64_NORM_V3(1) } }, 10992 { /*src1 */ { FP64_NORM_V0(0), FP64_INF(1), FP64_NORM_V2(0), FP64_INF(1) } }, 10993 { /* => */ { FP64_INF(0), FP64_NORM_V1(0), FP64_NORM_V2(0), FP64_NORM_V3(1) } }, 10994 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 10995 /*128:out */ X86_MXCSR_XCPT_MASK, 10996 /*256:out */ X86_MXCSR_XCPT_MASK, 10997 /*xcpt? */ false, false }, 10998 { { /*src2 */ { FP64_INF(0), FP64_NORM_V1(0), FP64_INF(1), FP64_NORM_V3(1) } }, 10999 { /*src1 */ { FP64_NORM_V0(0), FP64_INF(1), FP64_NORM_V2(0), FP64_INF(1) } }, 11000 { /* => */ { FP64_INF(0), FP64_NORM_V1(0), FP64_NORM_V2(0), FP64_NORM_V3(1) } }, 11001 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11002 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11003 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11004 /*xcpt? */ false, false }, 11005 { { /*src2 */ { FP64_NORM_V1(0), FP64_INF(1), FP64_NORM_V2(1), FP64_INF(1) } }, 11006 { /*src1 */ { FP64_INF(1), FP64_NORM_V3(0), FP64_INF(1), FP64_NORM_V0(1) } }, 11007 { /* => */ { FP64_NORM_V1(0), FP64_NORM_V3(0), FP64_NORM_V2(1), FP64_NORM_V0(1) } }, 11008 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11009 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11010 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11011 /*xcpt? */ false, false }, 11012 { { /*src2 */ { FP64_NORM_V1(0), FP64_INF(1), FP64_NORM_V3(1), FP64_INF(1) } }, 11013 { /*src1 */ { FP64_INF(0), FP64_NORM_V2(0), FP64_INF(0), FP64_NORM_V0(1) } }, 11014 { /* => */ { FP64_INF(0), FP64_NORM_V2(0), FP64_INF(0), FP64_NORM_V0(1) } }, 11015 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11016 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11017 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11018 /*xcpt? */ false, false }, 11019 /* 11020 * Normals. 11021 */ 11022 /*20*/{ { /*src2 */ { FP64_NORM_V0(0), FP64_NORM_V1(1), FP64_NORM_V2(0), FP64_NORM_V1(1) } }, 11023 { /*src1 */ { FP64_NORM_V3(1), FP64_NORM_V1(0), FP64_NORM_V2(1), FP64_NORM_V1(0) } }, 11024 { /* => */ { FP64_NORM_V0(0), FP64_NORM_V1(0), FP64_NORM_V2(0), FP64_NORM_V1(0) } }, 11025 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11026 /*128:out */ X86_MXCSR_XCPT_MASK, 11027 /*256:out */ X86_MXCSR_XCPT_MASK, 11028 /*xcpt? */ false, false }, 11029 { { /*src2 */ { FP64_NORM_V0(0), FP64_0(1), FP64_NORM_V2(0), FP64_0(1) } }, 11030 { /*src1 */ { FP64_0(0), FP64_NORM_V1(1), FP64_0(0), FP64_NORM_V1(0) } }, 11031 { /* => */ { FP64_NORM_V0(0), FP64_0(1), FP64_NORM_V2(0), FP64_NORM_V1(0) } }, 11032 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11033 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11034 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11035 /*xcpt? */ false, false }, 11036 { { /*src2 */ { FP64_V(0, 0, 0x409)/*1024*/, FP64_V(0, 0xb800000000000, 0x404)/*55*/, FP64_V(0, 0x8000000000000, 0x409)/*1536*/, FP64_V(0, 0xf000000000000, 0x404)/* 62*/ } }, 11037 { /*src1 */ { FP64_V(0, 0, 0x408)/* 512*/, FP64_V(0, 0xc000000000000, 0x401)/* 7*/, FP64_1(1), FP64_V(1, 0xf000000000000, 0x404)/*-62*/ } }, 11038 { /* => */ { FP64_V(0, 0, 0x409)/*1024*/, FP64_V(0, 0xb800000000000, 0x404)/*55*/, FP64_V(0, 0x8000000000000, 0x409)/*1536*/, FP64_V(0, 0xf000000000000, 0x404)/* 62*/ } }, 11039 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 11040 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 11041 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 11042 /*xcpt? */ false, false }, 11043 { { /*src2 */ { FP64_V(0, 0x26580b4800000, 0x41d)/* 1234567890*/, FP64_V(0, 0xd6f3458800000, 0x41c)/*987654321*/, FP64_V(0, 0xd6f3426800000, 0x41c)/*987654221*/, FP64_V(0, 0xcf0033a34f337, 0x432)/*4072598000007579.5*/ } }, 11044 { /*src1 */ { FP64_V(1, 0x26580b4800000, 0x41d)/*-1234567890*/, FP64_V(0, 0x9000000000000, 0x405)/* 100*/, FP64_1(0), FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/ } }, 11045 { /* => */ { FP64_V(0, 0x26580b4800000, 0x41d)/* 1234567890*/, FP64_V(0, 0xd6f3458800000, 0x41c)/*987654321*/, FP64_V(0, 0xd6f3426800000, 0x41c)/*987654221*/, FP64_V(0, 0xcf0033a34f337, 0x432)/*4072598000007579.5*/ } }, 11046 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 11047 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 11048 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 11049 /*xcpt? */ false, false }, 11050 { { /*src2 */ { FP64_V(0, 0x26580b4800000, 0x41d)/* 1234567890*/, FP64_V(0, 0xd6f3458800000, 0x41c)/*987654321*/, FP64_V(0, 0xd6f3426800000, 0x41c)/*987654221*/, FP64_V(0, 0xcf0033a34f337, 0x432)/*4072598000007579.5*/ } }, 11051 { /*src1 */ { FP64_V(1, 0x26580b4800000, 0x41d)/*-1234567890*/, FP64_V(0, 0x9000000000000, 0x405)/* -100*/, FP64_1(0), FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/ } }, 11052 { /* => */ { FP64_V(0, 0x26580b4800000, 0x41d)/* 1234567890*/, FP64_V(0, 0xd6f3458800000, 0x41c)/*987654321*/, FP64_V(0, 0xd6f3426800000, 0x41c)/*987654221*/, FP64_V(0, 0xcf0033a34f337, 0x432)/*4072598000007579.5*/ } }, 11053 /*mxcsr:in */ X86_MXCSR_RC_ZERO, 11054 /*128:out */ X86_MXCSR_RC_ZERO, 11055 /*256:out */ X86_MXCSR_RC_ZERO, 11056 /*xcpt? */ false, false }, 11057 { { /*src2 */ { FP64_NORM_SAFE_INT_MAX(0), FP64_NORM_SAFE_INT_MIN(0), FP64_NORM_SAFE_INT_MAX(0), FP64_NORM_SAFE_INT_MIN(0) } }, 11058 { /*src1 */ { FP64_1(0), FP64_NORM_SAFE_INT_MIN(1), FP64_NORM_SAFE_INT_MIN(0), FP64_0(0) } }, 11059 { /* => */ { FP64_NORM_SAFE_INT_MAX(0), FP64_NORM_SAFE_INT_MIN(0), FP64_NORM_SAFE_INT_MAX(0), FP64_NORM_SAFE_INT_MIN(0) } }, 11060 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11061 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11062 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11063 /*xcpt? */ false, false }, 11064 { { /*src2 */ { FP64_NORM_SAFE_INT_MIN(0), FP64_0(0), FP64_NORM_SAFE_INT_MIN(0), FP64_NORM_SAFE_INT_MIN(1) } }, 11065 { /*src1 */ { FP64_NORM_SAFE_INT_MIN(1), FP64_NORM_SAFE_INT_MIN(1), FP64_0(0), FP64_NORM_SAFE_INT_MIN(0) } }, 11066 { /* => */ { FP64_NORM_SAFE_INT_MIN(0), FP64_0(0), FP64_NORM_SAFE_INT_MIN(0), FP64_NORM_SAFE_INT_MIN(0) } }, 11067 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11068 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11069 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11070 /*xcpt? */ false, false }, 11071 { { /*src2 */ { FP64_V(0, 0xc122186c3cfd0, 0x42d)/*123456789876543.25*/, FP64_V(0, 0xbcd80e0108cc0, 0x42e)/*244555555308646.00*/, FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_V(1, 0xbcd80e0108cc0, 0x42e)/*-244555555308646.00*/ } }, 11072 { /*src1 */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_V(0, 0xc122186c3cfd0, 0x42d)/*123456789876543.25*/, FP64_V(0, 0xb88e0395d49b0, 0x42d)/* 121098765432102.75*/ } }, 11073 { /* => */ { FP64_V(0, 0xc122186c3cfd0, 0x42d)/*123456789876543.25*/, FP64_V(0, 0xbcd80e0108cc0, 0x42e)/*244555555308646.00*/, FP64_V(0, 0xc122186c3cfd0, 0x42d)/*123456789876543.25*/, FP64_V(0, 0xb88e0395d49b0, 0x42d)/* 121098765432102.75*/ } }, 11074 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11075 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11076 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11077 /*xcpt? */ false, false }, 11078 { { /*src2 */ { FP64_V(0, 0xc000000000000, 0x3ff)/*1.75*/, FP64_V(0, 0, 0x3fd)/*0.25*/, FP64_V(0, 0x26580b4c7e6b7, 0x41d)/*1234567891.1234567*/, FP64_V(0, 0xf9b0207d06184, 0x3fb)/*0.1234589833333129*/ } }, 11079 { /*src1 */ { FP64_V(0, 0, 0x3fd)/*0.25*/, FP64_V(0, 0, 0x3fe)/*0.50*/, FP64_V(0, 0x26580b4c7e6bc, 0x41d)/*1234567891.1234580*/, FP64_V(0, 0xf9b0207d0617d, 0x3fb)/*0.1234589833333128*/ } }, 11080 { /* => */ { FP64_V(0, 0xc000000000000, 0x3ff)/*1.75*/, FP64_V(0, 0, 0x3fe)/*0.50*/, FP64_V(0, 0x26580b4c7e6bc, 0x41d)/*1234567891.1234580*/, FP64_V(0, 0xf9b0207d06184, 0x3fb)/*0.1234589833333129*/ } }, 11081 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11082 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11083 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11084 /*xcpt? */ false, false }, 11085 /* 11086 * Denormals. 11087 */ 11088 /*29*/{ { /*src2 */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0) } }, 11089 { /*src1 */ { FP64_0(0), FP64_DENORM_MAX(1), FP64_0(0), FP64_DENORM_MAX(1) } }, 11090 { /* => */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0) } }, 11091 /*mxcsr:in */ 0, 11092 /*128:out */ X86_MXCSR_DE, 11093 /*256:out */ X86_MXCSR_DE, 11094 /*xcpt? */ true, true }, 11095 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_DENORM_MAX(0) } }, 11096 { /*src1 */ { FP64_0(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_0(0) } }, 11097 { /* => */ { FP64_0(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0) } }, 11098 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11099 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11100 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11101 /*xcpt? */ false, false }, 11102 { { /*src2 */ { FP64_DENORM_MIN(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0) } }, 11103 { /*src1 */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0), FP64_DENORM_MIN(0) } }, 11104 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 11105 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 11106 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 11107 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 11108 /*xcpt? */ false, false }, 11109 { { /*src2 */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0) } }, 11110 { /*src1 */ { FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0), FP64_DENORM_MAX(0) } }, 11111 { /* => */ { FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0) } }, 11112 /*mxcsr:in */ 0, 11113 /*128:out */ X86_MXCSR_DE, 11114 /*256:out */ X86_MXCSR_DE, 11115 /*xcpt? */ true, true }, 11116 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_DENORM_MAX(1) } }, 11117 { /*src1 */ { FP64_0(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_0(0) } }, 11118 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(1) } }, 11119 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 11120 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 11121 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 11122 /*xcpt? */ false, false }, 11123 { { /*src2 */ { FP64_DENORM_MIN(0), FP64_DENORM_MIN(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } }, 11124 { /*src1 */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0), FP64_DENORM_MIN(0) } }, 11125 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 11126 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11127 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11128 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11129 /*xcpt? */ false, false }, 11130 /** @todo Denormals. */ 11131 /* 11132 * Invalids. 11133 */ 11134 /*35*/ FP64_TABLE_D9_PD_INVALIDS 11135 }; 11136 11137 #define PASS_s_aValues RT_ELEMENTS(s_aValues), (BS3CPUINSTR4_TEST1_VALUES_T *)s_aValues 11138 static BS3CPUINSTR4_TEST1_T const s_aTests16[] = 11139 { 11140 { bs3CpuInstr4_maxpd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE2, 1, 1, 2, PASS_s_aValues }, 11141 { bs3CpuInstr4_maxpd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, 1, 1, 255, PASS_s_aValues }, 11142 11143 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_XMM3_icebp_c16, X86_XCPT_GP, RM_REG, T_AVX_128, 1, 2, 3, PASS_s_aValues }, 11144 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_GP, RM_MEM, T_AVX_128, 1, 2, 255, PASS_s_aValues }, 11145 11146 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_YMM3_icebp_c16, X86_XCPT_GP, RM_REG, T_AVX2_256, 1, 2, 3, PASS_s_aValues }, 11147 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_FSxBX_icebp_c16, X86_XCPT_GP, RM_MEM, T_AVX2_256, 1, 2, 255, PASS_s_aValues }, 11148 }; 11149 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 11150 { 11151 { bs3CpuInstr4_maxpd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE2, 1, 1, 2, PASS_s_aValues }, 11152 { bs3CpuInstr4_maxpd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, 1, 1, 255, PASS_s_aValues }, 11153 11154 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_XMM3_icebp_c32, X86_XCPT_GP, RM_REG, T_AVX_128, 1, 2, 3, PASS_s_aValues }, 11155 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_GP, RM_MEM, T_AVX_128, 1, 2, 255, PASS_s_aValues }, 11156 11157 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_YMM3_icebp_c32, X86_XCPT_GP, RM_REG, T_AVX2_256, 1, 2, 3, PASS_s_aValues }, 11158 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_FSxBX_icebp_c32, X86_XCPT_GP, RM_MEM, T_AVX2_256, 1, 2, 255, PASS_s_aValues }, 11159 }; 11160 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 11161 { 11162 { bs3CpuInstr4_maxpd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE2, 1, 1, 2, PASS_s_aValues }, 11163 { bs3CpuInstr4_maxpd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, 1, 1, 255, PASS_s_aValues }, 11164 11165 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_XMM3_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_128, 1, 2, 3, PASS_s_aValues }, 11166 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_128, 1, 2, 255, PASS_s_aValues }, 11167 11168 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_YMM3_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX2_256, 1, 2, 3, PASS_s_aValues }, 11169 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX2_256, 1, 2, 255, PASS_s_aValues }, 11170 11171 { bs3CpuInstr4_maxpd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, 8, 8, 9, PASS_s_aValues }, 11172 { bs3CpuInstr4_maxpd_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, 8, 8, 255, PASS_s_aValues }, 11173 11174 { bs3CpuInstr4_vmaxpd_XMM8_XMM9_XMM10_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_128, 8, 9, 10, PASS_s_aValues }, 11175 { bs3CpuInstr4_vmaxpd_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_128, 8, 9, 255, PASS_s_aValues }, 11176 { bs3CpuInstr4_vmaxpd_YMM8_YMM9_YMM10_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_256, 8, 9, 10, PASS_s_aValues }, 11177 { bs3CpuInstr4_vmaxpd_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_256, 8, 9, 255, PASS_s_aValues }, 11178 }; 11179 #undef PASS_s_aValues 11180 11181 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 11182 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 11183 return bs3CpuInstr4_WorkerTestType1A(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 11184 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 11185 } 11186 11187 11188 /* 11189 * [V]MAXSS. 11190 */ 11191 BS3_DECL_FAR(uint8_t) bs3CpuInstr4_v_maxss(uint8_t bMode) 11192 { 11193 static BS3CPUINSTR4_TEST1_VALUES_SS_T const s_aValues[] = 11194 { 11195 /* 11196 * Zero. 11197 */ 11198 /* 0*/{ { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 11199 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 11200 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 11201 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11202 /*128:out */ X86_MXCSR_XCPT_MASK, 11203 /*256:out */ X86_MXCSR_XCPT_MASK, 11204 /*xcpt? */ false, false }, 11205 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 11206 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 11207 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 11208 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 11209 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 11210 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 11211 /*xcpt? */ false, false }, 11212 { { /*src2 */ { FP32_0(0), FP32_INF(0), FP32_SNAN(0), FP32_SNAN(0), FP32_SNAN(1), FP32_QNAN(1), FP32_INF(1), FP32_RAND_V7(0) } }, 11213 { /*src1 */ { FP32_0(0), FP32_INF(1), FP32_QNAN(0), FP32_SNAN(1), FP32_QNAN_V(0, 1), FP32_QNAN_V(1, 1), FP32_SNAN_V(1, 1), FP32_SNAN_V(0, 1) } }, 11214 { /* => */ { FP32_0(0), FP32_INF(1), FP32_QNAN(0), FP32_SNAN(1), FP32_QNAN_V(0, 1), FP32_QNAN_V(1, 1), FP32_SNAN_V(1, 1), FP32_SNAN_V(0, 1) } }, 11215 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11216 /*128:out */ X86_MXCSR_XCPT_MASK, 11217 /*256:out */ X86_MXCSR_XCPT_MASK, 11218 /*xcpt? */ false, false }, 11219 { { /*src2 */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0) } }, 11220 { /*src1 */ { FP32_0(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } }, 11221 { /* => */ { FP32_0(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } }, 11222 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11223 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11224 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11225 /*xcpt? */ false, false }, 11226 { { /*src2 */ { FP32_0(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } }, 11227 { /*src1 */ { FP32_0(0), FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1) } }, 11228 { /* => */ { FP32_0(0), FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1) } }, 11229 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11230 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11231 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11232 /*xcpt? */ false, false }, 11233 { { /*src2 */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V7(0), FP32_RAND_V4(0), FP32_RAND_V5(0), FP32_RAND_V6(0) } }, 11234 { /*src1 */ { FP32_0(1), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } }, 11235 { /* => */ { FP32_0(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } }, 11236 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11237 /*128:out */ X86_MXCSR_XCPT_MASK, 11238 /*256:out */ X86_MXCSR_XCPT_MASK, 11239 /*xcpt? */ false, false }, 11240 { { /*src2 */ { FP32_0(0), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V7(0), FP32_RAND_V4(0), FP32_RAND_V5(0), FP32_RAND_V6(0) } }, 11241 { /*src1 */ { FP32_0(1), FP32_RAND_V6(1), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V7(0), FP32_RAND_V2(1), FP32_RAND_V1(0), FP32_RAND_V3(1) } }, 11242 { /* => */ { FP32_0(0), FP32_RAND_V6(1), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V7(0), FP32_RAND_V2(1), FP32_RAND_V1(0), FP32_RAND_V3(1) } }, 11243 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11244 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11245 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11246 /*xcpt? */ false, false }, 11247 { { /*src2 */ { FP32_0(1), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } }, 11248 { /*src1 */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(0) } }, 11249 { /* => */ { FP32_0(1), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(0) } }, 11250 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11251 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11252 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11253 /*xcpt? */ false, false }, 11254 { { /*src2 */ { FP32_0(1), FP32_RAND_V5(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V0(0) } }, 11255 { /*src1 */ { FP32_0(0), FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V6(0), FP32_RAND_V7(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V2(1) } }, 11256 { /* => */ { FP32_0(1), FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V6(0), FP32_RAND_V7(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V2(1) } }, 11257 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11258 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11259 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11260 /*xcpt? */ false, false }, 11261 { { /*src2 */ { FP32_0(1), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } }, 11262 { /*src1 */ { FP32_0(1), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V7(0), FP32_RAND_V3(0), FP32_RAND_V6(1), FP32_RAND_V4(1) } }, 11263 { /* => */ { FP32_0(1), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V7(0), FP32_RAND_V3(0), FP32_RAND_V6(1), FP32_RAND_V4(1) } }, 11264 /*mxcsr:in */ 0, 11265 /*128:out */ 0, 11266 /*256:out */ 0, 11267 /*xcpt? */ false, false }, 11268 { { /*src2 */ { FP32_0(1), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } }, 11269 { /*src1 */ { FP32_0(1), FP32_RAND_V1(0), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V6(1) } }, 11270 { /* => */ { FP32_0(1), FP32_RAND_V1(0), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V6(1) } }, 11271 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11272 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11273 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11274 /*xcpt? */ false, false }, 11275 /* 11276 * Infinity. 11277 */ 11278 /*11*/{ { /*src2 */ { FP32_INF(0), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } }, 11279 { /*src1 */ { FP32_0(0), FP32_RAND_V1(0), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V6(1) } }, 11280 { /* => */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V6(1) } }, 11281 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11282 /*128:out */ X86_MXCSR_XCPT_MASK, 11283 /*256:out */ X86_MXCSR_XCPT_MASK, 11284 /*xcpt? */ false, false }, 11285 { { /*src2 */ { FP32_0(0), FP32_RAND_V5(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } }, 11286 { /*src1 */ { FP32_INF(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V5(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V7(1) } }, 11287 { /* => */ { FP32_INF(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V5(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V7(1) } }, 11288 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11289 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11290 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11291 /*xcpt? */ false, false }, 11292 { { /*src2 */ { FP32_INF(0), FP32_INF(1), FP32_SNAN(1), FP32_QNAN(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } }, 11293 { /*src1 */ { FP32_0(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } }, 11294 { /* => */ { FP32_INF(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } }, 11295 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11296 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11297 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11298 /*xcpt? */ false, false }, 11299 { { /*src2 */ { FP32_0(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } }, 11300 { /*src1 */ { FP32_INF(1), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } }, 11301 { /* => */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } }, 11302 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11303 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11304 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11305 /*xcpt? */ false, false }, 11306 { { /*src2 */ { FP32_INF(0), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V7(1), FP32_RAND_V0(1) } }, 11307 { /*src1 */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_SNAN_V(0, 1), FP32_SNAN_V(1, 1), FP32_RAND_V2(1) } }, 11308 { /* => */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_SNAN_V(0, 1), FP32_SNAN_V(1, 1), FP32_RAND_V2(1) } }, 11309 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11310 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11311 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11312 /*xcpt? */ false, false }, 11313 { { /*src2 */ { FP32_INF(0), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V7(1), FP32_RAND_V0(1) } }, 11314 { /*src1 */ { FP32_INF(0), FP32_RAND_V0(1), FP32_RAND_V0(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_SNAN_V(1, 1), FP32_QNAN_V(1, 1), FP32_RAND_V3(1) } }, 11315 { /* => */ { FP32_INF(0), FP32_RAND_V0(1), FP32_RAND_V0(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_SNAN_V(1, 1), FP32_QNAN_V(1, 1), FP32_RAND_V3(1) } }, 11316 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11317 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11318 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11319 /*xcpt? */ false, false }, 11320 { { /*src2 */ { FP32_INF(1), FP32_RAND_V3(0), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V7(1), FP32_RAND_V0(0) } }, 11321 { /*src1 */ { FP32_INF(1), FP32_QNAN_V(1, 1), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_QNAN_V(1, 0), FP32_RAND_V1(0) } }, 11322 { /* => */ { FP32_INF(1), FP32_QNAN_V(1, 1), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_QNAN_V(1, 0), FP32_RAND_V1(0) } }, 11323 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11324 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11325 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11326 /*xcpt? */ false, false }, 11327 { { /*src2 */ { FP32_INF(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } }, 11328 { /*src1 */ { FP32_INF(1), FP32_RAND_V0(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V5(1) } }, 11329 { /* => */ { FP32_INF(1), FP32_RAND_V0(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V5(1) } }, 11330 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11331 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11332 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11333 /*xcpt? */ false, false }, 11334 { { /*src2 */ { FP32_INF(1), FP32_RAND_V1(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(0), FP32_RAND_V1(1) } }, 11335 { /*src1 */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V2(0), FP32_RAND_V3(1) } }, 11336 { /* => */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V2(0), FP32_RAND_V3(1) } }, 11337 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11338 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11339 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11340 /*xcpt? */ false, false }, 11341 { { /*src2 */ { FP32_INF(1), FP32_RAND_V0(1), FP32_RAND_V2(1), FP32_RAND_V4(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } }, 11342 { /*src1 */ { FP32_INF(0), FP32_RAND_V0(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V4(1) } }, 11343 { /* => */ { FP32_INF(0), FP32_RAND_V0(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V4(1) } }, 11344 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11345 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11346 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11347 /*xcpt? */ false, false }, 11348 { { /*src2 */ { FP32_INF(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V1(1), FP32_RAND_V7(1), FP32_RAND_V2(0) } }, 11349 { /*src1 */ { FP32_INF(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V1(1), FP32_RAND_V0(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } }, 11350 { /* => */ { FP32_INF(0), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V1(1), FP32_RAND_V0(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } }, 11351 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11352 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11353 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11354 /*xcpt? */ false, false }, 11355 { { /*src2 */ { FP32_INF(0), FP32_RAND_V0(1), FP32_RAND_V2(1), FP32_RAND_V4(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } }, 11356 { /*src1 */ { FP32_INF(1), FP32_RAND_V0(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V4(1) } }, 11357 { /* => */ { FP32_INF(0), FP32_RAND_V0(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V4(1) } }, 11358 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 11359 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 11360 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 11361 /*xcpt? */ false, false }, 11362 { { /*src2 */ { FP32_INF(0), FP32_RAND_V0(0), FP32_RAND_V2(1), FP32_RAND_V4(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V1(0) } }, 11363 { /*src1 */ { FP32_NORM_V0(0), FP32_RAND_V1(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V6(1), FP32_RAND_V2(1), FP32_RAND_V4(0) } }, 11364 { /* => */ { FP32_INF(0), FP32_RAND_V1(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V6(1), FP32_RAND_V2(1), FP32_RAND_V4(0) } }, 11365 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11366 /*128:out */ X86_MXCSR_XCPT_MASK, 11367 /*256:out */ X86_MXCSR_XCPT_MASK, 11368 /*xcpt? */ false, false }, 11369 { { /*src2 */ { FP32_INF(0), FP32_INF(0), FP32_SNAN(1), FP32_INF(1), FP32_RAND_V3(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V4(0) } }, 11370 { /*src1 */ { FP32_NORM_V3(0), FP32_INF(1), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } }, 11371 { /* => */ { FP32_INF(0), FP32_INF(1), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } }, 11372 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11373 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11374 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11375 /*xcpt? */ false, false }, 11376 { { /*src2 */ { FP32_NORM_V7(0), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_INF(1), FP32_SNAN(0), FP32_INF(0), FP32_RAND_V2(0) } }, 11377 { /*src1 */ { FP32_INF(1), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_INF(1), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V3(0) } }, 11378 { /* => */ { FP32_NORM_V7(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_INF(1), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V3(0) } }, 11379 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11380 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11381 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11382 /*xcpt? */ false, false }, 11383 { { /*src2 */ { FP32_NORM_V7(0), FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_QNAN(1), FP32_SNAN(0), FP32_INF(1), FP32_RAND_V2(1) } }, 11384 { /*src1 */ { FP32_INF(0), FP32_RAND_V7(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_QNAN(1), FP32_QNAN(1), FP32_SNAN(0), FP32_RAND_V3(1) } }, 11385 { /* => */ { FP32_INF(0), FP32_RAND_V7(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_QNAN(1), FP32_QNAN(1), FP32_SNAN(0), FP32_RAND_V3(1) } }, 11386 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11387 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11388 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11389 /*xcpt? */ false, false }, 11390 /* 11391 * Normals. 11392 */ 11393 /*27*/{ { /*src2 */ { FP32_NORM_MAX(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V1(1) } }, 11394 { /*src1 */ { FP32_NORM_MAX(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V3(1), FP32_RAND_V1(1) } }, 11395 { /* => */ { FP32_NORM_MAX(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V3(1), FP32_RAND_V1(1) } }, 11396 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11397 /*128:out */ X86_MXCSR_XCPT_MASK, 11398 /*256:out */ X86_MXCSR_XCPT_MASK, 11399 /*xcpt? */ false, false }, 11400 { { /*src2 */ { FP32_NORM_MIN(0), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(1) } }, 11401 { /*src1 */ { FP32_NORM_MIN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V0(1), FP32_RAND_V7(0) } }, 11402 { /* => */ { FP32_NORM_MIN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V0(1), FP32_RAND_V7(0) } }, 11403 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11404 /*128:out */ X86_MXCSR_XCPT_MASK, 11405 /*256:out */ X86_MXCSR_XCPT_MASK, 11406 /*xcpt? */ false, false }, 11407 { { /*src2 */ { FP32_NORM_MIN(0), FP32_RAND_V3(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V7(0), FP32_RAND_V2(1) } }, 11408 { /*src1 */ { FP32_NORM_MAX(0), FP32_RAND_V1(0), FP32_RAND_V6(0), FP32_RAND_V4(0), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V6(0), FP32_RAND_V4(1) } }, 11409 { /* => */ { FP32_NORM_MAX(0), FP32_RAND_V1(0), FP32_RAND_V6(0), FP32_RAND_V4(0), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V6(0), FP32_RAND_V4(1) } }, 11410 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11411 /*128:out */ X86_MXCSR_XCPT_MASK, 11412 /*256:out */ X86_MXCSR_XCPT_MASK, 11413 /*xcpt? */ false, false }, 11414 { { /*src2 */ { FP32_NORM_MAX(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } }, 11415 { /*src1 */ { FP32_NORM_MAX(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } }, 11416 { /* => */ { FP32_NORM_MAX(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } }, 11417 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11418 /*128:out */ X86_MXCSR_XCPT_MASK, 11419 /*256:out */ X86_MXCSR_XCPT_MASK, 11420 /*xcpt? */ false, false }, 11421 { { /*src2 */ { FP32_NORM_SAFE_INT_MIN(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(1) } }, 11422 { /*src1 */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V1(0), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V0(0), FP32_RAND_V1(1) } }, 11423 { /* => */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V1(0), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V0(0), FP32_RAND_V1(1) } }, 11424 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11425 /*128:out */ X86_MXCSR_XCPT_MASK, 11426 /*256:out */ X86_MXCSR_XCPT_MASK, 11427 /*xcpt? */ false, false }, 11428 { { /*src2 */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V1(1) } }, 11429 { /*src1 */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V5(0), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V2(1) } }, 11430 { /* => */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V5(0), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V2(1) } }, 11431 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11432 /*128:out */ X86_MXCSR_XCPT_MASK, 11433 /*256:out */ X86_MXCSR_XCPT_MASK, 11434 /*xcpt? */ false, false }, 11435 { { /*src2 */ { FP32_NORM_SAFE_INT_MAX(0), FP32_INF(0), FP32_QNAN(1), FP32_QNAN(0), FP32_SNAN(1), FP32_SNAN(1), FP32_SNAN(0), FP32_QNAN(1) } }, 11436 { /*src1 */ { FP32_NORM_SAFE_INT_MIN(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } }, 11437 { /* => */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } }, 11438 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11439 /*128:out */ X86_MXCSR_XCPT_MASK, 11440 /*256:out */ X86_MXCSR_XCPT_MASK, 11441 /*xcpt? */ false, false }, 11442 { { /*src2 */ { FP32_V(0, 0x600000, 0x7f)/* 1.75*/, FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1) } }, 11443 { /*src1 */ { FP32_V(1, 0, 0x7d)/*-0.25*/, FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1) } }, 11444 { /* => */ { FP32_V(0, 0x600000, 0x7f)/* 1.75*/, FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1) } }, 11445 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11446 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11447 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11448 /*xcpt? */ false, false }, 11449 { { /*src2 */ { FP32_V(0, 0, 0x7d)/*0.25*/, FP32_RAND_V2(1), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V7(0), FP32_RAND_V1(1) } }, 11450 { /*src1 */ { FP32_V(0, 0, 0x7e)/*0.50*/, FP32_RAND_V0(0), FP32_RAND_V5(0), FP32_RAND_V7(0), FP32_RAND_V2(1), FP32_SNAN_V(1, 1), FP32_SNAN_V(0, 1), FP32_RAND_V3(0) } }, 11451 { /* => */ { FP32_V(0, 0, 0x7e)/*0.50*/, FP32_RAND_V0(0), FP32_RAND_V5(0), FP32_RAND_V7(0), FP32_RAND_V2(1), FP32_SNAN_V(1, 1), FP32_SNAN_V(0, 1), FP32_RAND_V3(0) } }, 11452 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11453 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11454 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11455 /*xcpt? */ false, false }, 11456 { { /*src2 */ { FP32_NORM_MAX(0), FP32_RAND_V0(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1) } }, 11457 { /*src1 */ { FP32_NORM_V1(0), FP32_RAND_V0(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(0), FP32_RAND_V7(0) } }, 11458 { /* => */ { FP32_NORM_MAX(0), FP32_RAND_V0(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(0), FP32_RAND_V7(0) } }, 11459 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 11460 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 11461 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 11462 /*xcpt? */ false, false }, 11463 { { /*src2 */ { FP32_V(0, 0x5ca5b8, 0x93)/*1807543*/, FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V4(0), FP32_RAND_V7(0), FP32_RAND_V6(0) } }, 11464 { /*src1 */ { FP32_V(0, 0x1ea980, 0x8f)/* 81235*/, FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V3(1) } }, 11465 { /* => */ { FP32_V(0, 0x5ca5b8, 0x93)/*1807543*/, FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V3(1) } }, 11466 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11467 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11468 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11469 /*xcpt? */ false, false }, 11470 { { /*src2 */ { FP32_V(1, 0x2514d6, 0x93)/*-1352346.75*/, FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } }, 11471 { /*src1 */ { FP32_V(0, 0x7c9000, 0x88)/* 1010.25*/, FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } }, 11472 { /* => */ { FP32_V(0, 0x7c9000, 0x88)/* 1010.25*/, FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } }, 11473 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11474 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11475 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11476 /*xcpt? */ false, false }, 11477 { { /*src2 */ { FP32_V(1, 0x2514d6, 0x93)/*-1352346.75*/, FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } }, 11478 { /*src1 */ { FP32_V(0, 0x253468, 0x93)/* 1353357.00*/, FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V0(1), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V4(0), FP32_RAND_V4(1) } }, 11479 { /* => */ { FP32_V(0, 0x253468, 0x93)/* 1353357.00*/, FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V0(1), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V4(0), FP32_RAND_V4(1) } }, 11480 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11481 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11482 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11483 /*xcpt? */ false, false }, 11484 { { /*src2 */ { FP32_V(1, 0x40e6b6, 0x8c)/*-12345.678*/, FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } }, 11485 { /*src1 */ { FP32_V(1, 0x40e6b7, 0x8c)/*-12345.679*/, FP32_RAND_V1(1), FP32_RAND_V0(0), FP32_RAND_V0(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V4(0), FP32_RAND_V4(1) } }, 11486 { /* => */ { FP32_V(1, 0x40e6b6, 0x8c)/*-12345.678*/, FP32_RAND_V1(1), FP32_RAND_V0(0), FP32_RAND_V0(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V4(0), FP32_RAND_V4(1) } }, 11487 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11488 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11489 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11490 /*xcpt? */ false, false }, 11491 { { /*src2 */ { FP32_V(0, 0x620b2e, 0x92)/*925874.9*/, FP32_RAND_V5(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V1(1) } }, 11492 { /*src1 */ { FP32_V(0, 0x620b2d, 0x92)/*925874.8*/, FP32_RAND_V3(0), FP32_RAND_V6(1), FP32_RAND_V0(1), FP32_RAND_V6(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V2(1) } }, 11493 { /* => */ { FP32_V(0, 0x620b2e, 0x92)/*925874.9*/, FP32_RAND_V3(0), FP32_RAND_V6(1), FP32_RAND_V0(1), FP32_RAND_V6(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V2(1) } }, 11494 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11495 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11496 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11497 /*xcpt? */ false, false }, 11498 { { /*src2 */ { FP32_V(0, 0x490fda, 0x80)/*3.1415926*/, FP32_RAND_V6(1), FP32_RAND_V2(1), FP32_RAND_V4(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } }, 11499 { /*src1 */ { FP32_V(0, 0x490fdb, 0x80)/*3.1415927*/, FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V3(0), FP32_RAND_V7(0), FP32_RAND_V1(0), FP32_RAND_V1(1) } }, 11500 { /* => */ { FP32_V(0, 0x490fdb, 0x80)/*3.1415927*/, FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V3(0), FP32_RAND_V7(0), FP32_RAND_V1(0), FP32_RAND_V1(1) } }, 11501 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11502 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11503 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11504 /*xcpt? */ false, false }, 11505 { { /*src2 */ { FP32_V(1, 0x40e6b6, 0x8c)/*-12345.678*/, FP32_INF(1), FP32_SNAN(1), FP32_INF(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(1), FP32_RAND_V6(1) } }, 11506 { /*src1 */ { FP32_V(1, 0x40e6b7, 0x8c)/*-12345.679*/, FP32_INF(1), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V7(1) } }, 11507 { /* => */ { FP32_V(1, 0x40e6b6, 0x8c)/*-12345.678*/, FP32_INF(1), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V7(1) } }, 11508 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11509 /*128:out */ X86_MXCSR_XCPT_MASK, 11510 /*256:out */ X86_MXCSR_XCPT_MASK, 11511 /*xcpt? */ false, false }, 11512 { { /*src2 */ { FP32_V(0, 0x5dd520, 0x8e)/* 56789.125*/, FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_QNAN(0), FP32_SNAN(1), FP32_INF(0), FP32_RAND_V3(1) } }, 11513 { /*src1 */ { FP32_V(1, 0x5dd521, 0x8e)/*-56789.127*/, FP32_RAND_V7(0), FP32_RAND_V7(0), FP32_RAND_V5(1), FP32_QNAN(0), FP32_QNAN(0), FP32_SNAN(1), FP32_RAND_V2(0) } }, 11514 { /* => */ { FP32_V(0, 0x5dd520, 0x8e)/* 56789.125*/, FP32_RAND_V7(0), FP32_RAND_V7(0), FP32_RAND_V5(1), FP32_QNAN(0), FP32_QNAN(0), FP32_SNAN(1), FP32_RAND_V2(0) } }, 11515 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11516 /*128:out */ X86_MXCSR_XCPT_MASK, 11517 /*256:out */ X86_MXCSR_XCPT_MASK, 11518 /*xcpt? */ false, false }, 11519 { { /*src2 */ { FP32_V(0, 0x600000, 0x7e)/* 0.875*/, FP32_RAND_V4(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V0(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } }, 11520 { /*src1 */ { FP32_V(1, 0, 0x7d)/*-0.250*/, FP32_RAND_V2(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V7(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(1) } }, 11521 { /* => */ { FP32_V(0, 0x600000, 0x7e)/* 0.875*/, FP32_RAND_V2(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V7(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(1) } }, 11522 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11523 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11524 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11525 /*xcpt? */ false, false }, 11526 /** @todo More Normals. */ 11527 /* 11528 * Denormals. 11529 */ 11530 /*46*/{ { /*src2 */ { FP32_DENORM_MAX(0), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V7(0), FP32_RAND_V2(1) } }, 11531 { /*src1 */ { FP32_0(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V1(1) } }, 11532 { /* => */ { FP32_0(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V1(1) } }, 11533 /*mxcsr:in */ 0, 11534 /*128:out */ X86_MXCSR_DE, 11535 /*256:out */ X86_MXCSR_DE, 11536 /*xcpt? */ true, true }, 11537 { { /*src2 */ { FP32_0(0), FP32_SNAN(0), FP32_QNAN(1), FP32_QNAN(0), FP32_SNAN(0), FP32_SNAN(0), FP32_SNAN(0), FP32_QNAN(1) } }, 11538 { /*src1 */ { FP32_DENORM_MAX(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_QNAN(1), FP32_RAND_V6(0), FP32_RAND_V3(1), FP32_RAND_V2(0) } }, 11539 { /* => */ { FP32_DENORM_MAX(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_QNAN(1), FP32_RAND_V6(0), FP32_RAND_V3(1), FP32_RAND_V2(0) } }, 11540 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11541 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11542 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11543 /*xcpt? */ false, false }, 11544 { { /*src2 */ { FP32_DENORM_MIN(0), FP32_INF(1), FP32_SNAN(0), FP32_INF(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } }, 11545 { /*src1 */ { FP32_DENORM_MAX(0), FP32_INF(0), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V3(0) } }, 11546 { /* => */ { FP32_0(0), FP32_INF(0), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V3(0) } }, 11547 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 11548 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 11549 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 11550 /*xcpt? */ false, false }, 11551 { { /*src2 */ { FP32_DENORM_MAX(0), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V7(0), FP32_RAND_V0(0) } }, 11552 { /*src1 */ { FP32_DENORM_MAX(0), FP32_RAND_V3(0), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V7(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V4(1) } }, 11553 { /* => */ { FP32_DENORM_MAX(0), FP32_RAND_V3(0), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V7(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V4(1) } }, 11554 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11555 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11556 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11557 /*xcpt? */ false, false }, 11558 { { /*src2 */ { FP32_DENORM_MAX(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1) } }, 11559 { /*src1 */ { FP32_DENORM_MAX(1), FP32_RAND_V7(0), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V5(0), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1) } }, 11560 { /* => */ { FP32_DENORM_MAX(0), FP32_RAND_V7(0), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V5(0), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1) } }, 11561 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11562 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11563 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11564 /*xcpt? */ false, false }, 11565 { { /*src2 */ { FP32_DENORM_MAX(1), FP32_RAND_V3(1), FP32_RAND_V7(0), FP32_RAND_V6(1), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V7(1), FP32_RAND_V2(1) } }, 11566 { /*src1 */ { FP32_DENORM_MAX(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } }, 11567 { /* => */ { FP32_DENORM_MAX(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } }, 11568 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11569 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11570 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11571 /*xcpt? */ false, false }, 11572 { { /*src2 */ { FP32_DENORM_MIN(1), FP32_RAND_V7(1), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } }, 11573 { /*src1 */ { FP32_DENORM_MIN(0), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(1) } }, 11574 { /* => */ { FP32_DENORM_MIN(0), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(1) } }, 11575 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11576 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11577 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11578 /*xcpt? */ false, false }, 11579 { { /*src2 */ { FP32_DENORM_MIN(1), FP32_INF(0), FP32_QNAN(1), FP32_QNAN(0), FP32_SNAN(1), FP32_SNAN(1), FP32_SNAN(0), FP32_QNAN(1) } }, 11580 { /*src1 */ { FP32_DENORM_MIN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } }, 11581 { /* => */ { FP32_DENORM_MIN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } }, 11582 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11583 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11584 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11585 /*xcpt? */ false, false }, 11586 { { /*src2 */ { FP32_DENORM_MIN(1), FP32_INF(0), FP32_QNAN(1), FP32_QNAN(0), FP32_SNAN(1), FP32_SNAN(1), FP32_SNAN(0), FP32_QNAN(1) } }, 11587 { /*src1 */ { FP32_DENORM_MIN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } }, 11588 { /* => */ { FP32_0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } }, 11589 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 11590 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 11591 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 11592 /*xcpt? */ false, false }, 11593 { { /*src2 */ { FP32_DENORM_MIN(0), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(1) } }, 11594 { /*src1 */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1) } }, 11595 { /* => */ { FP32_DENORM_MIN(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1) } }, 11596 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11597 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11598 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11599 /*xcpt? */ false, false }, 11600 /** @todo More Denormals. */ 11601 /*56*/ FP32_TABLE_D9_SS_INVALIDS 11602 /** @todo Rounding; FZ etc. */ 11603 }; 11604 11605 #define PASS_s_aValues RT_ELEMENTS(s_aValues), (BS3CPUINSTR4_TEST1_VALUES_T *)s_aValues 11606 static BS3CPUINSTR4_TEST1_T const s_aTests16[] = 11607 { 11608 { bs3CpuInstr4_maxss_XMM3_XMM4_icebp_c16, 255, RM_REG, T_SSE, 3, 3, 4, PASS_s_aValues }, 11609 { bs3CpuInstr4_maxss_XMM3_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, 3, 3, 255, PASS_s_aValues }, 11610 11611 { bs3CpuInstr4_vmaxss_XMM1_XMM6_XMM7_icebp_c16, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues }, 11612 { bs3CpuInstr4_vmaxss_XMM1_XMM6_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues }, 11613 }; 11614 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 11615 { 11616 { bs3CpuInstr4_maxss_XMM3_XMM4_icebp_c32, 255, RM_REG, T_SSE, 3, 3, 4, PASS_s_aValues }, 11617 { bs3CpuInstr4_maxss_XMM3_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, 3, 3, 255, PASS_s_aValues }, 11618 11619 { bs3CpuInstr4_vmaxss_XMM1_XMM6_XMM7_icebp_c32, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues }, 11620 { bs3CpuInstr4_vmaxss_XMM1_XMM6_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues }, 11621 }; 11622 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 11623 { 11624 { bs3CpuInstr4_maxss_XMM3_XMM4_icebp_c64, 255, RM_REG, T_SSE, 3, 3, 4, PASS_s_aValues }, 11625 { bs3CpuInstr4_maxss_XMM3_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, 3, 3, 255, PASS_s_aValues }, 11626 11627 { bs3CpuInstr4_vmaxss_XMM1_XMM6_XMM7_icebp_c64, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues }, 11628 { bs3CpuInstr4_vmaxss_XMM1_XMM6_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues }, 11629 11630 { bs3CpuInstr4_maxss_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, 8, 8, 9, PASS_s_aValues }, 11631 { bs3CpuInstr4_maxss_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE, 8, 8, 255, PASS_s_aValues }, 11632 11633 { bs3CpuInstr4_vmaxss_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, 8, 9, 10, PASS_s_aValues }, 11634 { bs3CpuInstr4_vmaxss_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, 8, 9, 255, PASS_s_aValues }, 11635 }; 11636 #undef PASS_s_aValues 11637 11638 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 11639 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 11640 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 11641 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 11642 } 11643 11644 11645 /* 11646 * [V]MAXSD. 11647 */ 11648 BS3_DECL_FAR(uint8_t) bs3CpuInstr4_v_maxsd(uint8_t bMode) 11649 { 11650 static BS3CPUINSTR4_TEST1_VALUES_SD_T const s_aValues[] = 11651 { 11652 /* 11653 * Zero. 11654 */ 11655 /* 0*/{ { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 11656 { /*src1 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 11657 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 11658 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11659 /*128:out */ X86_MXCSR_XCPT_MASK, 11660 /*256:out */ X86_MXCSR_XCPT_MASK, 11661 /*xcpt? */ false, false }, 11662 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 11663 { /*src1 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 11664 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 11665 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 11666 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 11667 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 11668 /*xcpt? */ false, false }, 11669 { { /*src2 */ { FP64_0(0), FP64_INF(0), FP64_SNAN(0), FP64_SNAN(0) } }, 11670 { /*src1 */ { FP64_0(0), FP64_INF(1), FP64_QNAN(0), FP64_SNAN(1) } }, 11671 { /* => */ { FP64_0(0), FP64_INF(1), FP64_QNAN(0), FP64_SNAN(1) } }, 11672 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11673 /*128:out */ X86_MXCSR_XCPT_MASK, 11674 /*256:out */ X86_MXCSR_XCPT_MASK, 11675 /*xcpt? */ false, false }, 11676 { { /*src2 */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V0(0), FP64_RAND_V0(0) } }, 11677 { /*src1 */ { FP64_0(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V1(0) } }, 11678 { /* => */ { FP64_0(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V1(0) } }, 11679 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11680 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11681 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11682 /*xcpt? */ false, false }, 11683 { { /*src2 */ { FP64_0(0), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V1(0) } }, 11684 { /*src1 */ { FP64_0(0), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V2(1) } }, 11685 { /* => */ { FP64_0(0), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V2(1) } }, 11686 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11687 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11688 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11689 /*xcpt? */ false, false }, 11690 { { /*src2 */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V3(0) } }, 11691 { /*src1 */ { FP64_0(1), FP64_RAND_V1(0), FP64_RAND_V2(0), FP64_RAND_V3(0) } }, 11692 { /* => */ { FP64_0(0), FP64_RAND_V1(0), FP64_RAND_V2(0), FP64_RAND_V3(0) } }, 11693 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11694 /*128:out */ X86_MXCSR_XCPT_MASK, 11695 /*256:out */ X86_MXCSR_XCPT_MASK, 11696 /*xcpt? */ false, false }, 11697 { { /*src2 */ { FP64_0(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(0) } }, 11698 { /*src1 */ { FP64_0(1), FP64_RAND_V2(1), FP64_RAND_V3(0), FP64_RAND_V0(1) } }, 11699 { /* => */ { FP64_0(0), FP64_RAND_V2(1), FP64_RAND_V3(0), FP64_RAND_V0(1) } }, 11700 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11701 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11702 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11703 /*xcpt? */ false, false }, 11704 { { /*src2 */ { FP64_0(1), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V3(1) } }, 11705 { /*src1 */ { FP64_0(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } }, 11706 { /* => */ { FP64_0(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } }, 11707 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11708 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11709 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11710 /*xcpt? */ false, false }, 11711 { { /*src2 */ { FP64_0(1), FP64_RAND_V3(1), FP64_RAND_V2(0), FP64_RAND_V1(0) } }, 11712 { /*src1 */ { FP64_0(0), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V3(0) } }, 11713 { /* => */ { FP64_0(1), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V3(0) } }, 11714 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11715 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11716 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11717 /*xcpt? */ false, false }, 11718 { { /*src2 */ { FP64_0(1), FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } }, 11719 { /*src1 */ { FP64_0(1), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(0) } }, 11720 { /* => */ { FP64_0(1), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(0) } }, 11721 /*mxcsr:in */ 0, 11722 /*128:out */ 0, 11723 /*256:out */ 0, 11724 /*xcpt? */ false, false }, 11725 { { /*src2 */ { FP64_0(1), FP64_RAND_V3(1), FP64_RAND_V1(1), FP64_RAND_V0(1) } }, 11726 { /*src1 */ { FP64_0(1), FP64_RAND_V1(0), FP64_RAND_V0(1), FP64_RAND_V2(1) } }, 11727 { /* => */ { FP64_0(1), FP64_RAND_V1(0), FP64_RAND_V0(1), FP64_RAND_V2(1) } }, 11728 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11729 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11730 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11731 /*xcpt? */ false, false }, 11732 /* 11733 * Infinity. 11734 */ 11735 /*11*/{ { /*src2 */ { FP64_INF(0), FP64_RAND_V3(1), FP64_RAND_V1(1), FP64_RAND_V0(1) } }, 11736 { /*src1 */ { FP64_0(0), FP64_RAND_V1(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } }, 11737 { /* => */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } }, 11738 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11739 /*128:out */ X86_MXCSR_XCPT_MASK, 11740 /*256:out */ X86_MXCSR_XCPT_MASK, 11741 /*xcpt? */ false, false }, 11742 { { /*src2 */ { FP64_0(0), FP64_RAND_V1(1), FP64_RAND_V1(1), FP64_RAND_V3(1) } }, 11743 { /*src1 */ { FP64_INF(0), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 11744 { /* => */ { FP64_INF(0), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 11745 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11746 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11747 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11748 /*xcpt? */ false, false }, 11749 { { /*src2 */ { FP64_INF(0), FP64_INF(1), FP64_SNAN(1), FP64_QNAN(1) } }, 11750 { /*src1 */ { FP64_0(0), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 11751 { /* => */ { FP64_INF(0), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 11752 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11753 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11754 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11755 /*xcpt? */ false, false }, 11756 { { /*src2 */ { FP64_0(0), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(0) } }, 11757 { /*src1 */ { FP64_INF(1), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V0(1) } }, 11758 { /* => */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V0(1) } }, 11759 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11760 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11761 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11762 /*xcpt? */ false, false }, 11763 { { /*src2 */ { FP64_INF(0), FP64_RAND_V3(1), FP64_RAND_V3(1), FP64_RAND_V0(1) } }, 11764 { /*src1 */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } }, 11765 { /* => */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } }, 11766 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11767 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11768 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11769 /*xcpt? */ false, false }, 11770 { { /*src2 */ { FP64_INF(0), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V0(0) } }, 11771 { /*src1 */ { FP64_INF(0), FP64_RAND_V0(1), FP64_RAND_V0(1), FP64_RAND_V3(1) } }, 11772 { /* => */ { FP64_INF(0), FP64_RAND_V0(1), FP64_RAND_V0(1), FP64_RAND_V3(1) } }, 11773 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11774 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11775 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11776 /*xcpt? */ false, false }, 11777 { { /*src2 */ { FP64_INF(1), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } }, 11778 { /*src1 */ { FP64_INF(1), FP64_QNAN_V(1, 1), FP64_RAND_V1(1), FP64_RAND_V2(0) } }, 11779 { /* => */ { FP64_INF(1), FP64_QNAN_V(1, 1), FP64_RAND_V1(1), FP64_RAND_V2(0) } }, 11780 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11781 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11782 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11783 /*xcpt? */ false, false }, 11784 { { /*src2 */ { FP64_INF(1), FP64_RAND_V2(1), FP64_RAND_V1(1), FP64_RAND_V0(1) } }, 11785 { /*src1 */ { FP64_INF(1), FP64_RAND_V0(0), FP64_RAND_V3(1), FP64_RAND_V0(1) } }, 11786 { /* => */ { FP64_INF(1), FP64_RAND_V0(0), FP64_RAND_V3(1), FP64_RAND_V0(1) } }, 11787 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11788 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11789 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11790 /*xcpt? */ false, false }, 11791 { { /*src2 */ { FP64_INF(1), FP64_RAND_V1(1), FP64_RAND_V3(1), FP64_RAND_V0(1) } }, 11792 { /*src1 */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } }, 11793 { /* => */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } }, 11794 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11795 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11796 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11797 /*xcpt? */ false, false }, 11798 { { /*src2 */ { FP64_INF(1), FP64_RAND_V0(1), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 11799 { /*src1 */ { FP64_INF(0), FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, 11800 { /* => */ { FP64_INF(0), FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, 11801 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11802 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11803 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11804 /*xcpt? */ false, false }, 11805 { { /*src2 */ { FP64_INF(0), FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V0(1) } }, 11806 { /*src1 */ { FP64_INF(1), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V1(1) } }, 11807 { /* => */ { FP64_INF(0), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V1(1) } }, 11808 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11809 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11810 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11811 /*xcpt? */ false, false }, 11812 { { /*src2 */ { FP64_INF(0), FP64_RAND_V0(1), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 11813 { /*src1 */ { FP64_INF(1), FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, 11814 { /* => */ { FP64_INF(0), FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, 11815 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 11816 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 11817 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 11818 /*xcpt? */ false, false }, 11819 { { /*src2 */ { FP64_INF(0), FP64_RAND_V0(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 11820 { /*src1 */ { FP64_NORM_V0(0), FP64_RAND_V1(1), FP64_RAND_V3(1), FP64_RAND_V1(1) } }, 11821 { /* => */ { FP64_INF(0), FP64_RAND_V1(1), FP64_RAND_V3(1), FP64_RAND_V1(1) } }, 11822 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11823 /*128:out */ X86_MXCSR_XCPT_MASK, 11824 /*256:out */ X86_MXCSR_XCPT_MASK, 11825 /*xcpt? */ false, false }, 11826 { { /*src2 */ { FP64_INF(0), FP64_INF(0), FP64_SNAN(1), FP64_INF(1) } }, 11827 { /*src1 */ { FP64_NORM_V3(0), FP64_INF(1), FP64_QNAN(1), FP64_SNAN(1) } }, 11828 { /* => */ { FP64_INF(0), FP64_INF(1), FP64_QNAN(1), FP64_SNAN(1) } }, 11829 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11830 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11831 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11832 /*xcpt? */ false, false }, 11833 { { /*src2 */ { FP64_NORM_V2(0), FP64_RAND_V3(1), FP64_QNAN(1), FP64_SNAN(1) } }, 11834 { /*src1 */ { FP64_INF(1), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V1(1) } }, 11835 { /* => */ { FP64_NORM_V2(0), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V1(1) } }, 11836 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11837 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11838 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11839 /*xcpt? */ false, false }, 11840 { { /*src2 */ { FP64_NORM_V2(0), FP64_SNAN_V(0, 1), FP64_RAND_V2(0), FP64_RAND_V3(0) } }, 11841 { /*src1 */ { FP64_INF(0), FP64_RAND_V2(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } }, 11842 { /* => */ { FP64_INF(0), FP64_RAND_V2(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } }, 11843 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11844 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11845 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11846 /*xcpt? */ false, false }, 11847 /* 11848 * Normals. 11849 */ 11850 /*27*/{ { /*src2 */ { FP64_NORM_MAX(0), FP64_RAND_V2(1), FP64_RAND_V0(1), FP64_RAND_V3(1) } }, 11851 { /*src1 */ { FP64_NORM_MAX(0), FP64_RAND_V3(1), FP64_RAND_V2(0), FP64_RAND_V2(1) } }, 11852 { /* => */ { FP64_NORM_MAX(0), FP64_RAND_V3(1), FP64_RAND_V2(0), FP64_RAND_V2(1) } }, 11853 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11854 /*128:out */ X86_MXCSR_XCPT_MASK, 11855 /*256:out */ X86_MXCSR_XCPT_MASK, 11856 /*xcpt? */ false, false }, 11857 { { /*src2 */ { FP64_NORM_MIN(0), FP64_RAND_V3(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } }, 11858 { /*src1 */ { FP64_NORM_MIN(0), FP64_RAND_V2(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } }, 11859 { /* => */ { FP64_NORM_MIN(0), FP64_RAND_V2(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } }, 11860 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11861 /*128:out */ X86_MXCSR_XCPT_MASK, 11862 /*256:out */ X86_MXCSR_XCPT_MASK, 11863 /*xcpt? */ false, false }, 11864 { { /*src2 */ { FP64_NORM_MIN(0), FP64_RAND_V3(1), FP64_RAND_V0(1), FP64_RAND_V3(0) } }, 11865 { /*src1 */ { FP64_NORM_MAX(0), FP64_RAND_V1(0), FP64_RAND_V3(0), FP64_RAND_V1(0) } }, 11866 { /* => */ { FP64_NORM_MAX(0), FP64_RAND_V1(0), FP64_RAND_V3(0), FP64_RAND_V1(0) } }, 11867 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11868 /*128:out */ X86_MXCSR_XCPT_MASK, 11869 /*256:out */ X86_MXCSR_XCPT_MASK, 11870 /*xcpt? */ false, false }, 11871 { { /*src2 */ { FP64_NORM_MAX(0), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(0) } }, 11872 { /*src1 */ { FP64_NORM_MAX(0), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V1(1) } }, 11873 { /* => */ { FP64_NORM_MAX(0), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V1(1) } }, 11874 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11875 /*128:out */ X86_MXCSR_XCPT_MASK, 11876 /*256:out */ X86_MXCSR_XCPT_MASK, 11877 /*xcpt? */ false, false }, 11878 { { /*src2 */ { FP64_NORM_SAFE_INT_MIN(0), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(0) } }, 11879 { /*src1 */ { FP64_NORM_SAFE_INT_MAX(0), FP64_RAND_V1(0), FP64_RAND_V1(0), FP64_RAND_V3(1) } }, 11880 { /* => */ { FP64_NORM_SAFE_INT_MAX(0), FP64_RAND_V1(0), FP64_RAND_V1(0), FP64_RAND_V3(1) } }, 11881 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11882 /*128:out */ X86_MXCSR_XCPT_MASK, 11883 /*256:out */ X86_MXCSR_XCPT_MASK, 11884 /*xcpt? */ false, false }, 11885 { { /*src2 */ { FP64_NORM_SAFE_INT_MAX(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, 11886 { /*src1 */ { FP64_NORM_SAFE_INT_MAX(0), FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } }, 11887 { /* => */ { FP64_NORM_SAFE_INT_MAX(0), FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } }, 11888 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11889 /*128:out */ X86_MXCSR_XCPT_MASK, 11890 /*256:out */ X86_MXCSR_XCPT_MASK, 11891 /*xcpt? */ false, false }, 11892 { { /*src2 */ { FP64_NORM_SAFE_INT_MAX(0), FP64_INF(0), FP64_QNAN(1), FP64_QNAN(0) } }, 11893 { /*src1 */ { FP64_NORM_SAFE_INT_MIN(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 11894 { /* => */ { FP64_NORM_SAFE_INT_MAX(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 11895 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11896 /*128:out */ X86_MXCSR_XCPT_MASK, 11897 /*256:out */ X86_MXCSR_XCPT_MASK, 11898 /*xcpt? */ false, false }, 11899 { { /*src2 */ { FP64_V(0, 0, 0x409)/*1024*/, FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } }, 11900 { /*src1 */ { FP64_V(0, 0, 0x408)/* 512*/, FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V3(1) } }, 11901 { /* => */ { FP64_V(0, 0, 0x409)/*1024*/, FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V3(1) } }, 11902 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11903 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11904 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11905 /*xcpt? */ false, false }, 11906 { { /*src2 */ { FP64_V(0, 0xc122186c3cfd0, 0x42d)/*123456789876543.25*/, FP64_RAND_V2(1), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, 11907 { /*src1 */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V0(0) } }, 11908 { /* => */ { FP64_V(0, 0xc122186c3cfd0, 0x42d)/*123456789876543.25*/, FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V0(0) } }, 11909 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11910 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11911 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11912 /*xcpt? */ false, false }, 11913 { { /*src2 */ { FP64_NORM_MAX(0), FP64_RAND_V0(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } }, 11914 { /*src1 */ { FP64_NORM_V1(0), FP64_RAND_V0(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } }, 11915 { /* => */ { FP64_NORM_MAX(0), FP64_RAND_V0(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } }, 11916 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 11917 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 11918 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 11919 /*xcpt? */ false, false }, 11920 { { /*src2 */ { FP64_V(0, 0xc000000000000, 0x3ff)/*1.75*/, FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } }, 11921 { /*src1 */ { FP64_V(0, 0, 0x3fd)/*0.25*/, FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V1(0) } }, 11922 { /* => */ { FP64_V(0, 0xc000000000000, 0x3ff)/*1.75*/, FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V1(0) } }, 11923 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11924 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11925 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11926 /*xcpt? */ false, false }, 11927 { { /*src2 */ { FP64_V(1, 0, 0x3fd)/*-0.25*/, FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(0) } }, 11928 { /*src1 */ { FP64_V(1, 0, 0x3fe)/*-0.50*/, FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V1(1) } }, 11929 { /* => */ { FP64_V(1, 0, 0x3fd)/*-0.25*/, FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V1(1) } }, 11930 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11931 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11932 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11933 /*xcpt? */ false, false }, 11934 { { /*src2 */ { FP64_V(0, 0x26580b4c7e6b7, 0x41d)/*1234567891.1234567*/, FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V3(1) } }, 11935 { /*src1 */ { FP64_V(0, 0x26580b4c7e6bc, 0x41d)/*1234567891.1234580*/, FP64_RAND_V3(0), FP64_RAND_V1(0), FP64_RAND_V0(1) } }, 11936 { /* => */ { FP64_V(0, 0x26580b4c7e6bc, 0x41d)/*1234567891.1234580*/, FP64_RAND_V3(0), FP64_RAND_V1(0), FP64_RAND_V0(1) } }, 11937 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11938 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11939 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11940 /*xcpt? */ false, false }, 11941 { { /*src2 */ { FP64_V(0, 0xf9b0207d06184, 0x3fb)/*0.1234589833333129*/, FP64_RAND_V3(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } }, 11942 { /*src1 */ { FP64_V(0, 0xf9b0207d0617d, 0x3fb)/*0.1234589833333128*/, FP64_RAND_V1(1), FP64_RAND_V0(0), FP64_RAND_V0(1) } }, 11943 { /* => */ { FP64_V(0, 0xf9b0207d06184, 0x3fb)/*0.1234589833333129*/, FP64_RAND_V1(1), FP64_RAND_V0(0), FP64_RAND_V0(1) } }, 11944 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11945 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11946 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11947 /*xcpt? */ false, false }, 11948 { { /*src2 */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/* 121098765432102.75*/, FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } }, 11949 { /*src1 */ { FP64_V(1, 0xbcd80e0108cc0, 0x42e)/*-244555555308646.00*/, FP64_RAND_V3(0), FP64_RAND_V3(1), FP64_RAND_V0(1) } }, 11950 { /* => */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/* 121098765432102.75*/, FP64_RAND_V3(0), FP64_RAND_V3(1), FP64_RAND_V0(1) } }, 11951 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11952 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11953 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11954 /*xcpt? */ false, false }, 11955 { { /*src2 */ { FP64_V(0, 0xcf0033a34f337, 0x432)/*4072598000007579.5*/, FP64_RAND_V3(1), FP64_RAND_V2(1), FP64_RAND_V1(1) } }, 11956 { /*src1 */ { FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/, FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, 11957 { /* => */ { FP64_V(0, 0xcf0033a34f337, 0x432)/*4072598000007579.5*/, FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, 11958 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11959 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11960 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11961 /*xcpt? */ false, false }, 11962 { { /*src2 */ { FP64_V(1, 0xbcd80e0108cc0, 0x42e)/*-244555555308646.00*/, FP64_INF(1), FP64_SNAN(1), FP64_INF(1) } }, 11963 { /*src1 */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/* 121098765432102.75*/, FP64_INF(1), FP64_QNAN(0), FP64_SNAN(0) } }, 11964 { /* => */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/* 121098765432102.75*/, FP64_INF(1), FP64_QNAN(0), FP64_SNAN(0) } }, 11965 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11966 /*128:out */ X86_MXCSR_XCPT_MASK, 11967 /*256:out */ X86_MXCSR_XCPT_MASK, 11968 /*xcpt? */ false, false }, 11969 { { /*src2 */ { FP64_V(0, 0xbcd80e0108cc0, 0x42e)/* 244555555308646.00*/, FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(0) } }, 11970 { /*src1 */ { FP64_V(1, 0xb88e0395d49b0, 0x42d)/*-121098765432102.75*/, FP64_RAND_V0(0), FP64_RAND_V0(0), FP64_RAND_V2(1) } }, 11971 { /* => */ { FP64_V(0, 0xbcd80e0108cc0, 0x42e)/* 244555555308646.00*/, FP64_RAND_V0(0), FP64_RAND_V0(0), FP64_RAND_V2(1) } }, 11972 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11973 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11974 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11975 /*xcpt? */ false, false }, 11976 { { /*src2 */ { FP64_V(1, 0xcf0033a34f337, 0x432)/*-4072598000007579.5*/, FP64_RAND_V1(0), FP64_RAND_V2(0), FP64_RAND_V1(0) } }, 11977 { /*src1 */ { FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/, FP64_RAND_V2(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } }, 11978 { /* => */ { FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/, FP64_RAND_V2(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } }, 11979 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11980 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11981 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11982 /*xcpt? */ false, false }, 11983 /** @todo More Normals. */ 11984 /* 11985 * Denormals. 11986 */ 11987 /*46*/{ { /*src2 */ { FP64_DENORM_MAX(0), FP64_RAND_V2(0), FP64_RAND_V0(1), FP64_RAND_V3(0) } }, 11988 { /*src1 */ { FP64_0(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V2(1) } }, 11989 { /* => */ { FP64_DENORM_MAX(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V2(1) } }, 11990 /*mxcsr:in */ 0, 11991 /*128:out */ X86_MXCSR_DE, 11992 /*256:out */ X86_MXCSR_DE, 11993 /*xcpt? */ true, true }, 11994 { { /*src2 */ { FP64_0(0), FP64_SNAN(0), FP64_QNAN(1), FP64_QNAN(0) } }, 11995 { /*src1 */ { FP64_DENORM_MAX(0), FP64_RAND_V2(0), FP64_RAND_V3(1), FP64_RAND_V2(0) } }, 11996 { /* => */ { FP64_DENORM_MAX(0), FP64_RAND_V2(0), FP64_RAND_V3(1), FP64_RAND_V2(0) } }, 11997 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11998 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11999 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12000 /*xcpt? */ false, false }, 12001 { { /*src2 */ { FP64_DENORM_MIN(0), FP64_INF(1), FP64_SNAN(0), FP64_INF(1) } }, 12002 { /*src1 */ { FP64_DENORM_MAX(0), FP64_INF(0), FP64_QNAN(1), FP64_SNAN(1) } }, 12003 { /* => */ { FP64_0(0), FP64_INF(0), FP64_QNAN(1), FP64_SNAN(1) } }, 12004 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 12005 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 12006 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 12007 /*xcpt? */ false, false }, 12008 { { /*src2 */ { FP64_DENORM_MAX(0), FP64_RAND_V2(1), FP64_RAND_V0(1), FP64_RAND_V3(0) } }, 12009 { /*src1 */ { FP64_DENORM_MAX(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, 12010 { /* => */ { FP64_DENORM_MAX(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, 12011 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12012 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12013 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12014 /*xcpt? */ false, false }, 12015 { { /*src2 */ { FP64_DENORM_MAX(0), FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V2(0) } }, 12016 { /*src1 */ { FP64_DENORM_MAX(1), FP64_RAND_V0(0), FP64_RAND_V3(0), FP64_RAND_V0(0) } }, 12017 { /* => */ { FP64_DENORM_MAX(0), FP64_RAND_V0(0), FP64_RAND_V3(0), FP64_RAND_V0(0) } }, 12018 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12019 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12020 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12021 /*xcpt? */ false, false }, 12022 { { /*src2 */ { FP64_DENORM_MAX(1), FP64_RAND_V3(1), FP64_RAND_V0(0), FP64_RAND_V3(1) } }, 12023 { /*src1 */ { FP64_DENORM_MAX(0), FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V2(1) } }, 12024 { /* => */ { FP64_DENORM_MAX(0), FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V2(1) } }, 12025 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12026 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12027 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12028 /*xcpt? */ false, false }, 12029 { { /*src2 */ { FP64_DENORM_MIN(1), FP64_RAND_V0(1), FP64_RAND_V3(1), FP64_RAND_V2(1) } }, 12030 { /*src1 */ { FP64_DENORM_MIN(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } }, 12031 { /* => */ { FP64_DENORM_MIN(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } }, 12032 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12033 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12034 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12035 /*xcpt? */ false, false }, 12036 { { /*src2 */ { FP64_DENORM_MIN(1), FP64_INF(0), FP64_QNAN(1), FP64_SNAN_V(1, 1) } }, 12037 { /*src1 */ { FP64_DENORM_MIN(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 12038 { /* => */ { FP64_DENORM_MIN(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 12039 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12040 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12041 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12042 /*xcpt? */ false, false }, 12043 { { /*src2 */ { FP64_DENORM_MIN(1), FP64_SNAN(1), FP64_SNAN(0), FP64_QNAN(0) } }, 12044 { /*src1 */ { FP64_DENORM_MIN(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 12045 { /* => */ { FP64_0(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 12046 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 12047 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 12048 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 12049 /*xcpt? */ false, false }, 12050 { { /*src2 */ { FP64_DENORM_MIN(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } }, 12051 { /*src1 */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V2(0) } }, 12052 { /* => */ { FP64_DENORM_MIN(0), FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V2(0) } }, 12053 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12054 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12055 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12056 /*xcpt? */ false, false }, 12057 /** @todo More Denormals. */ 12058 /* 12059 * Invalids. 12060 */ 12061 /*56*/ FP64_TABLE_D9_SD_INVALIDS 12062 }; 12063 12064 #define PASS_s_aValues RT_ELEMENTS(s_aValues), (BS3CPUINSTR4_TEST1_VALUES_T *)s_aValues 12065 static BS3CPUINSTR4_TEST1_T const s_aTests16[] = 12066 { 12067 { bs3CpuInstr4_maxsd_XMM3_XMM4_icebp_c16, 255, RM_REG, T_SSE2, 3, 3, 4, PASS_s_aValues }, 12068 { bs3CpuInstr4_maxsd_XMM3_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, 3, 3, 255, PASS_s_aValues }, 12069 12070 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_XMM7_icebp_c16, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues }, 12071 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues }, 12072 }; 12073 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 12074 { 12075 { bs3CpuInstr4_maxsd_XMM3_XMM4_icebp_c32, 255, RM_REG, T_SSE2, 3, 3, 4, PASS_s_aValues }, 12076 { bs3CpuInstr4_maxsd_XMM3_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, 3, 3, 255, PASS_s_aValues }, 12077 12078 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_XMM7_icebp_c32, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues }, 12079 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues }, 12080 }; 12081 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 12082 { 12083 { bs3CpuInstr4_maxsd_XMM3_XMM4_icebp_c64, 255, RM_REG, T_SSE2, 3, 3, 4, PASS_s_aValues }, 12084 { bs3CpuInstr4_maxsd_XMM3_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, 3, 3, 255, PASS_s_aValues }, 12085 12086 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_XMM7_icebp_c64, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues }, 12087 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues }, 12088 12089 { bs3CpuInstr4_maxsd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, 8, 8, 9, PASS_s_aValues }, 12090 { bs3CpuInstr4_maxsd_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE2, 8, 8, 255, PASS_s_aValues }, 12091 12092 { bs3CpuInstr4_vmaxsd_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, 8, 9, 10, PASS_s_aValues }, 12093 { bs3CpuInstr4_vmaxsd_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, 8, 9, 255, PASS_s_aValues }, 12094 }; 12095 #undef PASS_s_aValues 12096 12097 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 12098 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 12099 return bs3CpuInstr4_WorkerTestType1A(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 12100 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 12101 } 12102 12103 12104 /* 12105 * [V]MINPS. 12106 */ 12107 BS3_DECL_FAR(uint8_t) bs3CpuInstr4_v_minps(uint8_t bMode) 12108 { 12109 static BS3CPUINSTR4_TEST1_VALUES_PS_T const s_aValues[] = 12110 { 12111 /* 12112 * Zero. 12113 */ 12114 /* 0*/{ { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12115 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12116 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12117 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12118 /*128:out */ X86_MXCSR_XCPT_MASK, 12119 /*256:out */ X86_MXCSR_XCPT_MASK, 12120 /*xcpt? */ false, false }, 12121 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12122 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12123 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12124 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12125 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12126 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12127 /*xcpt? */ false, false }, 12128 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12129 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12130 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12131 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12132 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12133 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12134 /*xcpt? */ false, false }, 12135 { { /*src2 */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1) } }, 12136 { /*src1 */ { FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0) } }, 12137 { /* => */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1) } }, 12138 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12139 /*128:out */ X86_MXCSR_XCPT_MASK, 12140 /*256:out */ X86_MXCSR_XCPT_MASK, 12141 /*xcpt? */ false, false }, 12142 { { /*src2 */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0) } }, 12143 { /*src1 */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12144 { /* => */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0) } }, 12145 /*mxcsr:in */ 0, 12146 /*128:out */ 0, 12147 /*256:out */ 0, 12148 /*xcpt? */ false, false }, 12149 { { /*src2 */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1) } }, 12150 { /*src1 */ { FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0) } }, 12151 { /* => */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1) } }, 12152 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12153 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12154 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12155 /*xcpt? */ false, false }, 12156 { { /*src2 */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0) } }, 12157 { /*src1 */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12158 { /* => */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0) } }, 12159 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 12160 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 12161 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 12162 /*xcpt? */ false, false }, 12163 { { /*src2 */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0) } }, 12164 { /*src1 */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12165 { /* => */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0) } }, 12166 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12167 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12168 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12169 /*xcpt? */ false, false }, 12170 { { /*src2 */ { FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1) } }, 12171 { /*src1 */ { FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(0) } }, 12172 { /* => */ { FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1) } }, 12173 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12174 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12175 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12176 /*xcpt? */ false, false }, 12177 /* 12178 * Infinity. 12179 */ 12180 /*9 */{ { /*src2 */ { FP32_INF(0), FP32_0(0), FP32_INF(1), FP32_0(1), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(0) } }, 12181 { /*src1 */ { FP32_0(0), FP32_INF(0), FP32_0(0), FP32_INF(0), FP32_0(0), FP32_INF(1), FP32_0(0), FP32_INF(1) } }, 12182 { /* => */ { FP32_0(0), FP32_0(0), FP32_INF(1), FP32_0(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1) } }, 12183 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12184 /*128:out */ X86_MXCSR_XCPT_MASK, 12185 /*256:out */ X86_MXCSR_XCPT_MASK, 12186 /*xcpt? */ false, false }, 12187 { { /*src2 */ { FP32_INF(0), FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(0) } }, 12188 { /*src1 */ { FP32_0(0), FP32_INF(1), FP32_0(1), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(0), FP32_INF(1) } }, 12189 { /* => */ { FP32_0(0), FP32_INF(1), FP32_0(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1) } }, 12190 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 12191 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 12192 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 12193 /*xcpt? */ false, false }, 12194 { { /*src2 */ { FP32_INF(0), FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(0) } }, 12195 { /*src1 */ { FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(0), FP32_0(0), FP32_INF(1), FP32_0(0), FP32_INF(1) } }, 12196 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1) } }, 12197 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12198 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12199 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12200 /*xcpt? */ false, false }, 12201 { { /*src2 */ { FP32_INF(0), FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(0) } }, 12202 { /*src1 */ { FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(0), FP32_0(0), FP32_INF(1), FP32_0(0), FP32_INF(1) } }, 12203 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1) } }, 12204 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12205 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12206 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12207 /*xcpt? */ false, false }, 12208 { { /*src2 */ { FP32_INF(0), FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(0) } }, 12209 { /*src1 */ { FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(0), FP32_0(0), FP32_INF(1), FP32_0(0), FP32_INF(1) } }, 12210 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1) } }, 12211 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12212 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12213 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12214 /*xcpt? */ false, false }, 12215 { { /*src2 */ { FP32_INF(0), FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(0) } }, 12216 { /*src1 */ { FP32_INF(0), FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0), FP32_INF(0) } }, 12217 { /* => */ { FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0) } }, 12218 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 12219 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 12220 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 12221 /*xcpt? */ false, false }, 12222 { { /*src2 */ { FP32_INF(0), FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(0) } }, 12223 { /*src1 */ { FP32_INF(0), FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0), FP32_INF(0) } }, 12224 { /* => */ { FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0) } }, 12225 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12226 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12227 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12228 /*xcpt? */ false, false }, 12229 { { /*src2 */ { FP32_INF(0), FP32_NORM_V1(0), FP32_INF(1), FP32_NORM_V3(1), FP32_INF(1), FP32_NORM_V5(0), FP32_INF(1), FP32_NORM_V7(0) } }, 12230 { /*src1 */ { FP32_NORM_V0(0), FP32_INF(1), FP32_NORM_V2(0), FP32_INF(1), FP32_NORM_V4(1), FP32_INF(1), FP32_NORM_V6(0), FP32_INF(0) } }, 12231 { /* => */ { FP32_NORM_V0(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_NORM_V7(0) } }, 12232 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12233 /*128:out */ X86_MXCSR_XCPT_MASK, 12234 /*256:out */ X86_MXCSR_XCPT_MASK, 12235 /*xcpt? */ false, false }, 12236 { { /*src2 */ { FP32_INF(0), FP32_NORM_V1(0), FP32_INF(1), FP32_NORM_V3(1), FP32_INF(0), FP32_NORM_V5(0), FP32_INF(1), FP32_NORM_V7(0) } }, 12237 { /*src1 */ { FP32_NORM_V0(0), FP32_INF(1), FP32_NORM_V2(0), FP32_INF(0), FP32_NORM_V4(1), FP32_INF(1), FP32_NORM_V6(0), FP32_INF(0) } }, 12238 { /* => */ { FP32_NORM_V0(0), FP32_INF(1), FP32_INF(1), FP32_NORM_V3(1), FP32_NORM_V4(1), FP32_INF(1), FP32_INF(1), FP32_NORM_V7(0) } }, 12239 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12240 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12241 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12242 /*xcpt? */ false, false }, 12243 { { /*src2 */ { FP32_NORM_V7(0), FP32_INF(0), FP32_NORM_V5(0), FP32_INF(0), FP32_NORM_V3(0), FP32_INF(0), FP32_NORM_V1(0), FP32_INF(0) } }, 12244 { /*src1 */ { FP32_INF(1), FP32_NORM_V6(1), FP32_INF(0), FP32_NORM_V4(0), FP32_INF(0), FP32_NORM_V2(1), FP32_INF(1), FP32_NORM_V0(1) } }, 12245 { /* => */ { FP32_INF(1), FP32_NORM_V6(1), FP32_NORM_V5(0), FP32_NORM_V4(0), FP32_NORM_V3(0), FP32_NORM_V2(1), FP32_INF(1), FP32_NORM_V0(1) } }, 12246 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 12247 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 12248 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 12249 /*xcpt? */ false, false }, 12250 { { /*src2 */ { FP32_NORM_V7(0), FP32_INF(0), FP32_NORM_V5(1), FP32_INF(0), FP32_NORM_V3(1), FP32_INF(0), FP32_NORM_V1(1), FP32_INF(0) } }, 12251 { /*src1 */ { FP32_INF(0), FP32_NORM_V6(1), FP32_INF(0), FP32_NORM_V4(1), FP32_INF(0), FP32_NORM_V2(1), FP32_INF(0), FP32_NORM_V0(1) } }, 12252 { /* => */ { FP32_NORM_V7(0), FP32_NORM_V6(1), FP32_NORM_V5(1), FP32_NORM_V4(1), FP32_NORM_V3(1), FP32_NORM_V2(1), FP32_NORM_V1(1), FP32_NORM_V0(1) } }, 12253 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12254 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12255 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12256 /*xcpt? */ false, false }, 12257 /* 12258 * Normals. 12259 */ 12260 /*20*/{ { /*src2 */ { FP32_NORM_MAX(0), FP32_0(0), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_0(1), FP32_NORM_MAX(1), FP32_NORM_MAX(1) } }, 12261 { /*src1 */ { FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_0(1), FP32_NORM_MAX(0) } }, 12262 { /* => */ { FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(1) } }, 12263 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12264 /*128:out */ X86_MXCSR_XCPT_MASK, 12265 /*256:out */ X86_MXCSR_XCPT_MASK, 12266 /*xcpt? */ false, false }, 12267 { { /*src2 */ { FP32_NORM_MIN(0), FP32_0(0), FP32_NORM_MIN(0), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_0(1), FP32_NORM_MIN(1), FP32_NORM_MIN(1) } }, 12268 { /*src1 */ { FP32_NORM_MIN(0), FP32_NORM_MIN(0), FP32_0(0), FP32_0(0), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_0(1), FP32_NORM_MIN(0) } }, 12269 { /* => */ { FP32_NORM_MIN(0), FP32_0(0), FP32_0(0), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_NORM_MIN(1) } }, 12270 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12271 /*128:out */ X86_MXCSR_XCPT_MASK, 12272 /*256:out */ X86_MXCSR_XCPT_MASK, 12273 /*xcpt? */ false, false }, 12274 { { /*src2 */ { FP32_NORM_MIN(0), FP32_NORM_MIN(0), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1) } }, 12275 { /*src1 */ { FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MIN(0), FP32_NORM_MIN(1), FP32_NORM_MIN(0), FP32_NORM_MIN(1) } }, 12276 { /* => */ { FP32_NORM_MIN(0), FP32_NORM_MAX(1), FP32_NORM_MIN(1), FP32_NORM_MAX(1), FP32_NORM_MIN(0), FP32_NORM_MIN(1), FP32_NORM_MAX(1), FP32_NORM_MAX(1) } }, 12277 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12278 /*128:out */ X86_MXCSR_XCPT_MASK, 12279 /*256:out */ X86_MXCSR_XCPT_MASK, 12280 /*xcpt? */ false, false }, 12281 { { /*src2 */ { FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MAX(0), FP32_NORM_SAFE_INT_MAX(0), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MAX(1) } }, 12282 { /*src1 */ { FP32_NORM_SAFE_INT_MAX(0), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MAX(0), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(1) } }, 12283 { /* => */ { FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MAX(1) } }, 12284 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12285 /*128:out */ X86_MXCSR_XCPT_MASK, 12286 /*256:out */ X86_MXCSR_XCPT_MASK, 12287 /*xcpt? */ false, false }, 12288 { { /*src2 */ { FP32_V(0, 0x600000, 0x7f)/* 1.75*/, FP32_V(0, 0, 0x7d)/*0.25*/, FP32_V(0, 0x600000, 0x7f)/* 1.75*/, FP32_V(0, 0, 0x7d)/*0.25*/, FP32_V(0, 0x600000, 0x7f)/* 1.75*/, FP32_V(0, 0, 0x7d)/* 0.25*/, FP32_V(0, 0x600000, 0x7f)/*1.75*/, FP32_V(1, 0, 0x7d)/*-0.25*/ } }, 12289 { /*src1 */ { FP32_V(1, 0, 0x7d)/*-0.25*/, FP32_V(0, 0, 0x7e)/*0.50*/, FP32_V(1, 0, 0x7d)/*-0.25*/, FP32_V(0, 0, 0x7e)/*0.50*/, FP32_V(1, 0x600000, 0x7f)/*-1.75*/, FP32_V(1, 0, 0x7e)/*-0.50*/, FP32_V(1, 0, 0x7d)/*0.25*/, FP32_V(1, 0, 0x7e)/*-0.50*/ } }, 12290 { /* => */ { FP32_V(1, 0, 0x7d)/*-0.25*/, FP32_V(0, 0, 0x7d)/*0.25*/, FP32_V(1, 0, 0x7d)/*-0.25*/, FP32_V(0, 0, 0x7d)/*0.25*/, FP32_V(1, 0x600000, 0x7f)/*-1.75*/, FP32_V(1, 0, 0x7e)/*-0.50*/, FP32_V(1, 0, 0x7d)/*0.25*/, FP32_V(1, 0, 0x7e)/*-0.50*/ } }, 12291 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12292 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12293 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12294 /*xcpt? */ false, false }, 12295 { { /*src2 */ { FP32_NORM_MAX(0), FP32_NORM_V1(0), FP32_NORM_V2(1), FP32_NORM_V3(1), FP32_NORM_V5(0), FP32_0(1), FP32_NORM_V5(1), FP32_0(0) } }, 12296 { /*src1 */ { FP32_NORM_V1(0), FP32_NORM_V1(1), FP32_NORM_V2(0), FP32_NORM_V3(1), FP32_0(1), FP32_NORM_V6(0), FP32_0(1), FP32_NORM_V7(1) } }, 12297 { /* => */ { FP32_NORM_V1(0), FP32_NORM_V1(1), FP32_NORM_V2(1), FP32_NORM_V3(1), FP32_0(1), FP32_0(1), FP32_NORM_V5(1), FP32_NORM_V7(1) } }, 12298 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12299 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12300 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12301 /*xcpt? */ false, false }, 12302 { { /*src2 */ { FP32_V(0, 0x5ca5b8, 0x93)/*1807543*/, FP32_V(0, 0x600000, 0x81)/* 7*/, FP32_V(0, 0x2514d6, 0x93)/*1352346.75*/, FP32_V(0, 0x5c0000, 0x84)/* 55*/, FP32_V(0, 0x2514d6, 0x93)/*1352346.75*/, FP32_V(1, 0x534000, 0x86)/*-211.25*/, FP32_V(0, 0x74429f, 0x97)/*32015678*/, FP32_1(1) } }, 12303 { /*src1 */ { FP32_V(0, 0x1ea980, 0x8f)/* 81235*/, FP32_V(0, 0x5c0000, 0x84)/*55*/, FP32_V(0, 0x7c9000, 0x88)/* 1010.25*/, FP32_V(1, 0x600000, 0x81)/* -7*/, FP32_V(0, 0x253468, 0x93)/*1353357.00*/, FP32_1(1), FP32_V(0, 0x712060, 0x92)/* 987654*/, FP32_1(0) } }, 12304 { /* => */ { FP32_V(0, 0x1ea980, 0x8f)/* 81235*/, FP32_V(0, 0x600000, 0x81)/* 7*/, FP32_V(0, 0x7c9000, 0x88)/* 1010.25*/, FP32_V(1, 0x600000, 0x81)/* -7*/, FP32_V(0, 0x2514d6, 0x93)/*1352346.75*/, FP32_V(1, 0x534000, 0x86)/*-211.25*/, FP32_V(0, 0x712060, 0x92)/* 987654*/, FP32_1(1) } }, 12305 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12306 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12307 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12308 /*xcpt? */ false, false }, 12309 { { /*src2 */ { FP32_V(0, 0x600000, 0x7e)/* 0.875*/, FP32_V(0, 0x3ce348, 0x90)/*193421.125*/, FP32_V(0, 0x6423f2, 0x92)/*934463.125*/, FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MIN(0), FP32_V(0, 0x16b43a, 0x93)/*1234567.25*/, FP32_V(0, 0x792318, 0x91)/*510232.75*/, FP32_V(0, 0x600000, 0x7e)/* 0.875*/ } }, 12310 { /*src1 */ { FP32_V(0, 0x769b50, 0x92)/*1010101.000*/, FP32_V(0, 0x430ebc, 0x91)/*399477.875*/, FP32_V(0, 0x52e0b4, 0x92)/*863755.250*/, FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MAX(1), FP32_V(0, 0x00c6d3, 0x94)/*2109876.75*/, FP32_V(1, 0x316740, 0x8e)/*-45415.25*/, FP32_V(1, 0, 0x7d)/*-0.250*/ } }, 12311 { /* => */ { FP32_V(0, 0x600000, 0x7e)/* 0.875*/, FP32_V(0, 0x3ce348, 0x90)/*193421.125*/, FP32_V(0, 0x52e0b4, 0x92)/*863755.250*/, FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MAX(1), FP32_V(0, 0x16b43a, 0x93)/*1234567.25*/, FP32_V(1, 0x316740, 0x8e)/*-45415.25*/, FP32_V(1, 0, 0x7d)/*-0.250*/ } }, 12312 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12313 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12314 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12315 /*xcpt? */ false, false }, 12316 { { /*src2 */ { FP32_V(0, 0x490fda, 0x80)/*3.1415926*/, FP32_V(0, 0x620b2e, 0x92)/*925874.9*/, FP32_V(0, 0x5dd520, 0x8e)/* 56789.125*/, FP32_V(1, 0x40e6b6, 0x8c)/*-12345.678*/, FP32_V(1, 0x490fda, 0x80)/*-3.1415926*/, FP32_V(1, 0x620b2e, 0x92)/*-925874.8*/, FP32_V(0, 0x5dd520, 0x8e)/*56789.125*/, FP32_V(0, 0x40e6b6, 0x8c)/*12345.678*/ } }, 12317 { /*src1 */ { FP32_V(0, 0x490fdb, 0x80)/*3.1415927*/, FP32_V(0, 0x620b2d, 0x92)/*925874.8*/, FP32_V(1, 0x5dd521, 0x8e)/*-56789.127*/, FP32_V(1, 0x40e6b7, 0x8c)/*-12345.679*/, FP32_V(1, 0x490fdb, 0x80)/*-3.1415927*/, FP32_V(0, 0x620b2d, 0x92)/* 925874.9*/, FP32_V(0, 0x5dd521, 0x8e)/*56789.127*/, FP32_V(0, 0x40e6b7, 0x8c)/*12345.679*/ } }, 12318 { /* => */ { FP32_V(0, 0x490fda, 0x80)/*3.1415926*/, FP32_V(0, 0x620b2d, 0x92)/*925874.8*/, FP32_V(1, 0x5dd521, 0x8e)/*-56789.127*/, FP32_V(1, 0x40e6b7, 0x8c)/*-12345.679*/, FP32_V(1, 0x490fdb, 0x80)/*-3.1415927*/, FP32_V(1, 0x620b2e, 0x92)/*-925874.8*/, FP32_V(0, 0x5dd520, 0x8e)/*56789.125*/, FP32_V(0, 0x40e6b6, 0x8c)/*12345.678*/ } }, 12319 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12320 /*128:out */ X86_MXCSR_XCPT_MASK, 12321 /*256:out */ X86_MXCSR_XCPT_MASK, 12322 /*xcpt? */ false, false }, 12323 /** @todo More Normals. */ 12324 /* 12325 * Denormals. 12326 */ 12327 /*29*/{ { /*src2 */ { FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12328 { /*src1 */ { FP32_0(0), FP32_DENORM_MAX(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(1) } }, 10771 12329 { /* => */ { FP32_0(0), FP32_DENORM_MAX(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(1) } }, 10772 12330 /*mxcsr:in */ 0, … … 10776 12334 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 10777 12335 { /*src1 */ { FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0) } }, 10778 { /* => */ { FP32_0(0), FP32_ DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0),FP32_0(0), FP32_0(0) } },12336 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 10779 12337 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 10780 12338 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, … … 10816 12374 static BS3CPUINSTR4_TEST1_T const s_aTests16[] = 10817 12375 { 10818 { bs3CpuInstr4_maxps_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, 1, 1, 2, PASS_s_aValues },10819 { bs3CpuInstr4_maxps_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, 1, 1, 255, PASS_s_aValues },10820 10821 { bs3CpuInstr4_vmaxps_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, 1, 2, 3, PASS_s_aValues },10822 { bs3CpuInstr4_vmaxps_XMM1_XMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, 1, 2, 255, PASS_s_aValues },10823 10824 { bs3CpuInstr4_vmaxps_YMM1_YMM2_YMM3_icebp_c16, 255, RM_REG, T_AVX_256, 1, 2, 3, PASS_s_aValues },10825 { bs3CpuInstr4_vmaxps_YMM1_YMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_256, 1, 2, 255, PASS_s_aValues },10826 };10827 static BS3CPUINSTR4_TEST1_T const s_aTests32[] =10828 {10829 { bs3CpuInstr4_maxps_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, 1, 1, 2, PASS_s_aValues },10830 { bs3CpuInstr4_maxps_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, 1, 1, 255, PASS_s_aValues },10831 10832 { bs3CpuInstr4_vmaxps_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, 1, 2, 3, PASS_s_aValues },10833 { bs3CpuInstr4_vmaxps_XMM1_XMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, 1, 2, 255, PASS_s_aValues },10834 10835 { bs3CpuInstr4_vmaxps_YMM1_YMM2_YMM3_icebp_c32, 255, RM_REG, T_AVX_256, 1, 2, 3, PASS_s_aValues },10836 { bs3CpuInstr4_vmaxps_YMM1_YMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_256, 1, 2, 255, PASS_s_aValues },10837 };10838 static BS3CPUINSTR4_TEST1_T const s_aTests64[] =10839 {10840 { bs3CpuInstr4_maxps_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, 1, 1, 2, PASS_s_aValues },10841 { bs3CpuInstr4_maxps_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, 1, 1, 255, PASS_s_aValues },10842 10843 { bs3CpuInstr4_vmaxps_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, 1, 2, 3, PASS_s_aValues },10844 { bs3CpuInstr4_vmaxps_XMM1_XMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, 1, 2, 255, PASS_s_aValues },10845 10846 { bs3CpuInstr4_vmaxps_YMM1_YMM2_YMM3_icebp_c64, 255, RM_REG, T_AVX_256, 1, 2, 3, PASS_s_aValues },10847 { bs3CpuInstr4_vmaxps_YMM1_YMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, 1, 2, 255, PASS_s_aValues },10848 10849 { bs3CpuInstr4_maxps_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, 8, 8, 9, PASS_s_aValues },10850 { bs3CpuInstr4_maxps_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, 8, 8, 255, PASS_s_aValues },10851 10852 { bs3CpuInstr4_vmaxps_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, 8, 9, 10, PASS_s_aValues },10853 { bs3CpuInstr4_vmaxps_XMM8_XMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, 8, 9, 255, PASS_s_aValues },10854 { bs3CpuInstr4_vmaxps_YMM8_YMM9_YMM10_icebp_c64, 255, RM_REG, T_AVX_256, 8, 9, 10, PASS_s_aValues },10855 { bs3CpuInstr4_vmaxps_YMM8_YMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, 8, 9, 255, PASS_s_aValues },10856 };10857 #undef PASS_s_aValues10858 10859 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);10860 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode);10861 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,10862 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2));10863 }10864 10865 10866 /*10867 * [V]MAXPD.10868 */10869 BS3_DECL_FAR(uint8_t) bs3CpuInstr4_v_maxpd(uint8_t bMode)10870 {10871 static BS3CPUINSTR4_TEST1_VALUES_PD_T const s_aValues[] =10872 {10873 /*10874 * Zero.10875 */10876 /* 0*/{ { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },10877 { /*src1 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },10878 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },10879 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,10880 /*128:out */ X86_MXCSR_XCPT_MASK,10881 /*256:out */ X86_MXCSR_XCPT_MASK,10882 /*xcpt? */ false, false },10883 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },10884 { /*src1 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },10885 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },10886 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,10887 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,10888 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,10889 /*xcpt? */ false, false },10890 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },10891 { /*src1 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },10892 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },10893 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,10894 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,10895 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,10896 /*xcpt? */ false, false },10897 { { /*src2 */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },10898 { /*src1 */ { FP64_0(1), FP64_0(0), FP64_0(1), FP64_0(1) } },10899 { /* => */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },10900 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,10901 /*128:out */ X86_MXCSR_XCPT_MASK,10902 /*256:out */ X86_MXCSR_XCPT_MASK,10903 /*xcpt? */ false, false },10904 { { /*src2 */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(0) } },10905 { /*src1 */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } },10906 { /* => */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(0) } },10907 /*mxcsr:in */ 0,10908 /*128:out */ 0,10909 /*256:out */ 0,10910 /*xcpt? */ false, false },10911 { { /*src2 */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },10912 { /*src1 */ { FP64_0(1), FP64_0(0), FP64_0(1), FP64_0(1) } },10913 { /* => */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },10914 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,10915 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,10916 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,10917 /*xcpt? */ false, false },10918 { { /*src2 */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(0) } },10919 { /*src1 */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } },10920 { /* => */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(0) } },10921 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,10922 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,10923 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,10924 /*xcpt? */ false, false },10925 { { /*src2 */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(0) } },10926 { /*src1 */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } },10927 { /* => */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(0) } },10928 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,10929 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,10930 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,10931 /*xcpt? */ false, false },10932 { { /*src2 */ { FP64_0(1), FP64_0(1), FP64_0(0), FP64_0(0) } },10933 { /*src1 */ { FP64_0(1), FP64_0(1), FP64_0(0), FP64_0(0) } },10934 { /* => */ { FP64_0(1), FP64_0(1), FP64_0(0), FP64_0(0) } },10935 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,10936 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,10937 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,10938 /*xcpt? */ false, false },10939 /*10940 * Infinity.10941 */10942 /*9 */{ { /*src2 */ { FP64_INF(0), FP64_0(0), FP64_INF(0), FP64_0(1) } },10943 { /*src1 */ { FP64_0(0), FP64_INF(0), FP64_0(1), FP64_INF(0) } },10944 { /* => */ { FP64_INF(0), FP64_INF(0), FP64_INF(0), FP64_INF(0) } },10945 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,10946 /*128:out */ X86_MXCSR_XCPT_MASK,10947 /*256:out */ X86_MXCSR_XCPT_MASK,10948 /*xcpt? */ false, false },10949 { { /*src2 */ { FP64_INF(0), FP64_0(0), FP64_INF(0), FP64_0(1) } },10950 { /*src1 */ { FP64_0(0), FP64_INF(0), FP64_0(1), FP64_INF(0) } },10951 { /* => */ { FP64_INF(0), FP64_INF(0), FP64_INF(0), FP64_INF(0) } },10952 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,10953 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,10954 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,10955 /*xcpt? */ false, false },10956 { { /*src2 */ { FP64_INF(0), FP64_0(0), FP64_INF(0), FP64_0(1) } },10957 { /*src1 */ { FP64_0(0), FP64_INF(0), FP64_0(1), FP64_INF(0) } },10958 { /* => */ { FP64_INF(0), FP64_INF(0), FP64_INF(0), FP64_INF(0) } },10959 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,10960 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,10961 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,10962 /*xcpt? */ false, false },10963 { { /*src2 */ { FP64_INF(0), FP64_0(0), FP64_INF(0), FP64_0(1) } },10964 { /*src1 */ { FP64_0(0), FP64_INF(0), FP64_0(1), FP64_INF(0) } },10965 { /* => */ { FP64_INF(0), FP64_INF(0), FP64_INF(0), FP64_INF(0) } },10966 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,10967 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,10968 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,10969 /*xcpt? */ false, false },10970 { { /*src2 */ { FP64_INF(0), FP64_0(0), FP64_INF(0), FP64_0(1) } },10971 { /*src1 */ { FP64_0(0), FP64_INF(0), FP64_0(1), FP64_INF(0) } },10972 { /* => */ { FP64_INF(0), FP64_INF(0), FP64_INF(0), FP64_INF(0) } },10973 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,10974 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,10975 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,10976 /*xcpt? */ false, false },10977 { { /*src2 */ { FP64_INF(0), FP64_INF(0), FP64_INF(1), FP64_INF(1) } },10978 { /*src1 */ { FP64_INF(0), FP64_INF(1), FP64_INF(0), FP64_INF(1) } },10979 { /* => */ { FP64_INF(0), FP64_INF(0), FP64_INF(0), FP64_INF(1) } },10980 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,10981 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,10982 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,10983 /*xcpt? */ false, false },10984 { { /*src2 */ { FP64_INF(0), FP64_INF(0), FP64_INF(1), FP64_INF(1) } },10985 { /*src1 */ { FP64_INF(0), FP64_INF(1), FP64_INF(0), FP64_INF(1) } },10986 { /* => */ { FP64_INF(0), FP64_INF(0), FP64_INF(0), FP64_INF(1) } },10987 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,10988 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,10989 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,10990 /*xcpt? */ false, false },10991 { { /*src2 */ { FP64_INF(0), FP64_NORM_V1(0), FP64_INF(1), FP64_NORM_V3(1) } },10992 { /*src1 */ { FP64_NORM_V0(0), FP64_INF(1), FP64_NORM_V2(0), FP64_INF(1) } },10993 { /* => */ { FP64_INF(0), FP64_NORM_V1(0), FP64_NORM_V2(0), FP64_NORM_V3(1) } },10994 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,10995 /*128:out */ X86_MXCSR_XCPT_MASK,10996 /*256:out */ X86_MXCSR_XCPT_MASK,10997 /*xcpt? */ false, false },10998 { { /*src2 */ { FP64_INF(0), FP64_NORM_V1(0), FP64_INF(1), FP64_NORM_V3(1) } },10999 { /*src1 */ { FP64_NORM_V0(0), FP64_INF(1), FP64_NORM_V2(0), FP64_INF(1) } },11000 { /* => */ { FP64_INF(0), FP64_NORM_V1(0), FP64_NORM_V2(0), FP64_NORM_V3(1) } },11001 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11002 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11003 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11004 /*xcpt? */ false, false },11005 { { /*src2 */ { FP64_NORM_V1(0), FP64_INF(1), FP64_NORM_V2(1), FP64_INF(1) } },11006 { /*src1 */ { FP64_INF(1), FP64_NORM_V3(0), FP64_INF(1), FP64_NORM_V0(1) } },11007 { /* => */ { FP64_NORM_V1(0), FP64_NORM_V3(0), FP64_NORM_V2(1), FP64_NORM_V0(1) } },11008 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11009 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11010 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11011 /*xcpt? */ false, false },11012 { { /*src2 */ { FP64_NORM_V1(0), FP64_INF(1), FP64_NORM_V3(1), FP64_INF(1) } },11013 { /*src1 */ { FP64_INF(0), FP64_NORM_V2(0), FP64_INF(0), FP64_NORM_V0(1) } },11014 { /* => */ { FP64_INF(0), FP64_NORM_V2(0), FP64_INF(0), FP64_NORM_V0(1) } },11015 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11016 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11017 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11018 /*xcpt? */ false, false },11019 /*11020 * Normals.11021 */11022 /*20*/{ { /*src2 */ { FP64_NORM_V0(0), FP64_NORM_V1(1), FP64_NORM_V2(0), FP64_NORM_V1(1) } },11023 { /*src1 */ { FP64_NORM_V3(1), FP64_NORM_V1(0), FP64_NORM_V2(1), FP64_NORM_V1(0) } },11024 { /* => */ { FP64_NORM_V0(0), FP64_NORM_V1(0), FP64_NORM_V2(0), FP64_NORM_V1(0) } },11025 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11026 /*128:out */ X86_MXCSR_XCPT_MASK,11027 /*256:out */ X86_MXCSR_XCPT_MASK,11028 /*xcpt? */ false, false },11029 { { /*src2 */ { FP64_NORM_V0(0), FP64_0(1), FP64_NORM_V2(0), FP64_0(1) } },11030 { /*src1 */ { FP64_0(0), FP64_NORM_V1(1), FP64_0(0), FP64_NORM_V1(0) } },11031 { /* => */ { FP64_NORM_V0(0), FP64_0(1), FP64_NORM_V2(0), FP64_NORM_V1(0) } },11032 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11033 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11034 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11035 /*xcpt? */ false, false },11036 { { /*src2 */ { FP64_V(0, 0, 0x409)/*1024*/, FP64_V(0, 0xb800000000000, 0x404)/*55*/, FP64_V(0, 0x8000000000000, 0x409)/*1536*/, FP64_V(0, 0xf000000000000, 0x404)/* 62*/ } },11037 { /*src1 */ { FP64_V(0, 0, 0x408)/* 512*/, FP64_V(0, 0xc000000000000, 0x401)/* 7*/, FP64_1(1), FP64_V(1, 0xf000000000000, 0x404)/*-62*/ } },11038 { /* => */ { FP64_V(0, 0, 0x409)/*1024*/, FP64_V(0, 0xb800000000000, 0x404)/*55*/, FP64_V(0, 0x8000000000000, 0x409)/*1536*/, FP64_V(0, 0xf000000000000, 0x404)/* 62*/ } },11039 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,11040 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,11041 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,11042 /*xcpt? */ false, false },11043 { { /*src2 */ { FP64_V(0, 0x26580b4800000, 0x41d)/* 1234567890*/, FP64_V(0, 0xd6f3458800000, 0x41c)/*987654321*/, FP64_V(0, 0xd6f3426800000, 0x41c)/*987654221*/, FP64_V(0, 0xcf0033a34f337, 0x432)/*4072598000007579.5*/ } },11044 { /*src1 */ { FP64_V(1, 0x26580b4800000, 0x41d)/*-1234567890*/, FP64_V(0, 0x9000000000000, 0x405)/* 100*/, FP64_1(0), FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/ } },11045 { /* => */ { FP64_V(0, 0x26580b4800000, 0x41d)/* 1234567890*/, FP64_V(0, 0xd6f3458800000, 0x41c)/*987654321*/, FP64_V(0, 0xd6f3426800000, 0x41c)/*987654221*/, FP64_V(0, 0xcf0033a34f337, 0x432)/*4072598000007579.5*/ } },11046 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,11047 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,11048 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,11049 /*xcpt? */ false, false },11050 { { /*src2 */ { FP64_V(0, 0x26580b4800000, 0x41d)/* 1234567890*/, FP64_V(0, 0xd6f3458800000, 0x41c)/*987654321*/, FP64_V(0, 0xd6f3426800000, 0x41c)/*987654221*/, FP64_V(0, 0xcf0033a34f337, 0x432)/*4072598000007579.5*/ } },11051 { /*src1 */ { FP64_V(1, 0x26580b4800000, 0x41d)/*-1234567890*/, FP64_V(0, 0x9000000000000, 0x405)/* -100*/, FP64_1(0), FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/ } },11052 { /* => */ { FP64_V(0, 0x26580b4800000, 0x41d)/* 1234567890*/, FP64_V(0, 0xd6f3458800000, 0x41c)/*987654321*/, FP64_V(0, 0xd6f3426800000, 0x41c)/*987654221*/, FP64_V(0, 0xcf0033a34f337, 0x432)/*4072598000007579.5*/ } },11053 /*mxcsr:in */ X86_MXCSR_RC_ZERO,11054 /*128:out */ X86_MXCSR_RC_ZERO,11055 /*256:out */ X86_MXCSR_RC_ZERO,11056 /*xcpt? */ false, false },11057 { { /*src2 */ { FP64_NORM_SAFE_INT_MAX(0), FP64_NORM_SAFE_INT_MIN(0), FP64_NORM_SAFE_INT_MAX(0), FP64_NORM_SAFE_INT_MIN(0) } },11058 { /*src1 */ { FP64_1(0), FP64_NORM_SAFE_INT_MIN(1), FP64_NORM_SAFE_INT_MIN(0), FP64_0(0) } },11059 { /* => */ { FP64_NORM_SAFE_INT_MAX(0), FP64_NORM_SAFE_INT_MIN(0), FP64_NORM_SAFE_INT_MAX(0), FP64_NORM_SAFE_INT_MIN(0) } },11060 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11061 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11062 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11063 /*xcpt? */ false, false },11064 { { /*src2 */ { FP64_NORM_SAFE_INT_MIN(0), FP64_0(0), FP64_NORM_SAFE_INT_MIN(0), FP64_NORM_SAFE_INT_MIN(1) } },11065 { /*src1 */ { FP64_NORM_SAFE_INT_MIN(1), FP64_NORM_SAFE_INT_MIN(1), FP64_0(0), FP64_NORM_SAFE_INT_MIN(0) } },11066 { /* => */ { FP64_NORM_SAFE_INT_MIN(0), FP64_0(0), FP64_NORM_SAFE_INT_MIN(0), FP64_NORM_SAFE_INT_MIN(0) } },11067 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11068 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11069 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11070 /*xcpt? */ false, false },11071 { { /*src2 */ { FP64_V(0, 0xc122186c3cfd0, 0x42d)/*123456789876543.25*/, FP64_V(0, 0xbcd80e0108cc0, 0x42e)/*244555555308646.00*/, FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_V(1, 0xbcd80e0108cc0, 0x42e)/*-244555555308646.00*/ } },11072 { /*src1 */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_V(0, 0xc122186c3cfd0, 0x42d)/*123456789876543.25*/, FP64_V(0, 0xb88e0395d49b0, 0x42d)/* 121098765432102.75*/ } },11073 { /* => */ { FP64_V(0, 0xc122186c3cfd0, 0x42d)/*123456789876543.25*/, FP64_V(0, 0xbcd80e0108cc0, 0x42e)/*244555555308646.00*/, FP64_V(0, 0xc122186c3cfd0, 0x42d)/*123456789876543.25*/, FP64_V(0, 0xb88e0395d49b0, 0x42d)/* 121098765432102.75*/ } },11074 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11075 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11076 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11077 /*xcpt? */ false, false },11078 { { /*src2 */ { FP64_V(0, 0xc000000000000, 0x3ff)/*1.75*/, FP64_V(0, 0, 0x3fd)/*0.25*/, FP64_V(0, 0x26580b4c7e6b7, 0x41d)/*1234567891.1234567*/, FP64_V(0, 0xf9b0207d06184, 0x3fb)/*0.1234589833333129*/ } },11079 { /*src1 */ { FP64_V(0, 0, 0x3fd)/*0.25*/, FP64_V(0, 0, 0x3fe)/*0.50*/, FP64_V(0, 0x26580b4c7e6bc, 0x41d)/*1234567891.1234580*/, FP64_V(0, 0xf9b0207d0617d, 0x3fb)/*0.1234589833333128*/ } },11080 { /* => */ { FP64_V(0, 0xc000000000000, 0x3ff)/*1.75*/, FP64_V(0, 0, 0x3fe)/*0.50*/, FP64_V(0, 0x26580b4c7e6bc, 0x41d)/*1234567891.1234580*/, FP64_V(0, 0xf9b0207d06184, 0x3fb)/*0.1234589833333129*/ } },11081 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11082 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11083 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11084 /*xcpt? */ false, false },11085 /*11086 * Denormals.11087 */11088 /*29*/{ { /*src2 */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0) } },11089 { /*src1 */ { FP64_0(0), FP64_DENORM_MAX(1), FP64_0(0), FP64_DENORM_MAX(1) } },11090 { /* => */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0) } },11091 /*mxcsr:in */ 0,11092 /*128:out */ X86_MXCSR_DE,11093 /*256:out */ X86_MXCSR_DE,11094 /*xcpt? */ true, true },11095 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_DENORM_MAX(0) } },11096 { /*src1 */ { FP64_0(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_0(0) } },11097 { /* => */ { FP64_0(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0) } },11098 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11099 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11100 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11101 /*xcpt? */ false, false },11102 { { /*src2 */ { FP64_DENORM_MIN(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0) } },11103 { /*src1 */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0), FP64_DENORM_MIN(0) } },11104 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },11105 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,11106 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,11107 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,11108 /*xcpt? */ false, false },11109 { { /*src2 */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0) } },11110 { /*src1 */ { FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0), FP64_DENORM_MAX(0) } },11111 { /* => */ { FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0) } },11112 /*mxcsr:in */ 0,11113 /*128:out */ X86_MXCSR_DE,11114 /*256:out */ X86_MXCSR_DE,11115 /*xcpt? */ true, true },11116 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_DENORM_MAX(1) } },11117 { /*src1 */ { FP64_0(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_0(0) } },11118 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(1) } },11119 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,11120 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,11121 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,11122 /*xcpt? */ false, false },11123 { { /*src2 */ { FP64_DENORM_MIN(0), FP64_DENORM_MIN(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },11124 { /*src1 */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0), FP64_DENORM_MIN(0) } },11125 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },11126 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11127 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11128 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11129 /*xcpt? */ false, false },11130 /** @todo Denormals. */11131 /*11132 * Invalids.11133 */11134 /*35*/ FP64_TABLE_D9_PD_INVALIDS11135 };11136 11137 #define PASS_s_aValues RT_ELEMENTS(s_aValues), (BS3CPUINSTR4_TEST1_VALUES_T *)s_aValues11138 static BS3CPUINSTR4_TEST1_T const s_aTests16[] =11139 {11140 { bs3CpuInstr4_maxpd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE2, 1, 1, 2, PASS_s_aValues },11141 { bs3CpuInstr4_maxpd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, 1, 1, 255, PASS_s_aValues },11142 11143 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_XMM3_icebp_c16, X86_XCPT_GP, RM_REG, T_AVX_128, 1, 2, 3, PASS_s_aValues },11144 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_GP, RM_MEM, T_AVX_128, 1, 2, 255, PASS_s_aValues },11145 11146 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_YMM3_icebp_c16, X86_XCPT_GP, RM_REG, T_AVX2_256, 1, 2, 3, PASS_s_aValues },11147 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_FSxBX_icebp_c16, X86_XCPT_GP, RM_MEM, T_AVX2_256, 1, 2, 255, PASS_s_aValues },11148 };11149 static BS3CPUINSTR4_TEST1_T const s_aTests32[] =11150 {11151 { bs3CpuInstr4_maxpd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE2, 1, 1, 2, PASS_s_aValues },11152 { bs3CpuInstr4_maxpd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, 1, 1, 255, PASS_s_aValues },11153 11154 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_XMM3_icebp_c32, X86_XCPT_GP, RM_REG, T_AVX_128, 1, 2, 3, PASS_s_aValues },11155 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_GP, RM_MEM, T_AVX_128, 1, 2, 255, PASS_s_aValues },11156 11157 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_YMM3_icebp_c32, X86_XCPT_GP, RM_REG, T_AVX2_256, 1, 2, 3, PASS_s_aValues },11158 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_FSxBX_icebp_c32, X86_XCPT_GP, RM_MEM, T_AVX2_256, 1, 2, 255, PASS_s_aValues },11159 };11160 static BS3CPUINSTR4_TEST1_T const s_aTests64[] =11161 {11162 { bs3CpuInstr4_maxpd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE2, 1, 1, 2, PASS_s_aValues },11163 { bs3CpuInstr4_maxpd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, 1, 1, 255, PASS_s_aValues },11164 11165 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_XMM3_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_128, 1, 2, 3, PASS_s_aValues },11166 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_128, 1, 2, 255, PASS_s_aValues },11167 11168 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_YMM3_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX2_256, 1, 2, 3, PASS_s_aValues },11169 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX2_256, 1, 2, 255, PASS_s_aValues },11170 11171 { bs3CpuInstr4_maxpd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, 8, 8, 9, PASS_s_aValues },11172 { bs3CpuInstr4_maxpd_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, 8, 8, 255, PASS_s_aValues },11173 11174 { bs3CpuInstr4_vmaxpd_XMM8_XMM9_XMM10_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_128, 8, 9, 10, PASS_s_aValues },11175 { bs3CpuInstr4_vmaxpd_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_128, 8, 9, 255, PASS_s_aValues },11176 { bs3CpuInstr4_vmaxpd_YMM8_YMM9_YMM10_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_256, 8, 9, 10, PASS_s_aValues },11177 { bs3CpuInstr4_vmaxpd_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_256, 8, 9, 255, PASS_s_aValues },11178 };11179 #undef PASS_s_aValues11180 11181 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);11182 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode);11183 return bs3CpuInstr4_WorkerTestType1A(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,11184 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2));11185 }11186 11187 11188 /*11189 * [V]MAXSS.11190 */11191 BS3_DECL_FAR(uint8_t) bs3CpuInstr4_v_maxss(uint8_t bMode)11192 {11193 static BS3CPUINSTR4_TEST1_VALUES_SS_T const s_aValues[] =11194 {11195 /*11196 * Zero.11197 */11198 /* 0*/{ { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },11199 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },11200 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },11201 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11202 /*128:out */ X86_MXCSR_XCPT_MASK,11203 /*256:out */ X86_MXCSR_XCPT_MASK,11204 /*xcpt? */ false, false },11205 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },11206 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },11207 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },11208 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,11209 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,11210 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,11211 /*xcpt? */ false, false },11212 { { /*src2 */ { FP32_0(0), FP32_INF(0), FP32_SNAN(0), FP32_SNAN(0), FP32_SNAN(1), FP32_QNAN(1), FP32_INF(1), FP32_RAND_V7(0) } },11213 { /*src1 */ { FP32_0(0), FP32_INF(1), FP32_QNAN(0), FP32_SNAN(1), FP32_QNAN_V(0, 1), FP32_QNAN_V(1, 1), FP32_SNAN_V(1, 1), FP32_SNAN_V(0, 1) } },11214 { /* => */ { FP32_0(0), FP32_INF(1), FP32_QNAN(0), FP32_SNAN(1), FP32_QNAN_V(0, 1), FP32_QNAN_V(1, 1), FP32_SNAN_V(1, 1), FP32_SNAN_V(0, 1) } },11215 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11216 /*128:out */ X86_MXCSR_XCPT_MASK,11217 /*256:out */ X86_MXCSR_XCPT_MASK,11218 /*xcpt? */ false, false },11219 { { /*src2 */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0) } },11220 { /*src1 */ { FP32_0(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } },11221 { /* => */ { FP32_0(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } },11222 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11223 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11224 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11225 /*xcpt? */ false, false },11226 { { /*src2 */ { FP32_0(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } },11227 { /*src1 */ { FP32_0(0), FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1) } },11228 { /* => */ { FP32_0(0), FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1) } },11229 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11230 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11231 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11232 /*xcpt? */ false, false },11233 { { /*src2 */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V7(0), FP32_RAND_V4(0), FP32_RAND_V5(0), FP32_RAND_V6(0) } },11234 { /*src1 */ { FP32_0(1), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } },11235 { /* => */ { FP32_0(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } },11236 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11237 /*128:out */ X86_MXCSR_XCPT_MASK,11238 /*256:out */ X86_MXCSR_XCPT_MASK,11239 /*xcpt? */ false, false },11240 { { /*src2 */ { FP32_0(0), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V7(0), FP32_RAND_V4(0), FP32_RAND_V5(0), FP32_RAND_V6(0) } },11241 { /*src1 */ { FP32_0(1), FP32_RAND_V6(1), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V7(0), FP32_RAND_V2(1), FP32_RAND_V1(0), FP32_RAND_V3(1) } },11242 { /* => */ { FP32_0(0), FP32_RAND_V6(1), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V7(0), FP32_RAND_V2(1), FP32_RAND_V1(0), FP32_RAND_V3(1) } },11243 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11244 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11245 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11246 /*xcpt? */ false, false },11247 { { /*src2 */ { FP32_0(1), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } },11248 { /*src1 */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(0) } },11249 { /* => */ { FP32_0(1), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(0) } },11250 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11251 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11252 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11253 /*xcpt? */ false, false },11254 { { /*src2 */ { FP32_0(1), FP32_RAND_V5(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V0(0) } },11255 { /*src1 */ { FP32_0(0), FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V6(0), FP32_RAND_V7(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V2(1) } },11256 { /* => */ { FP32_0(1), FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V6(0), FP32_RAND_V7(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V2(1) } },11257 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11258 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11259 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11260 /*xcpt? */ false, false },11261 { { /*src2 */ { FP32_0(1), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } },11262 { /*src1 */ { FP32_0(1), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V7(0), FP32_RAND_V3(0), FP32_RAND_V6(1), FP32_RAND_V4(1) } },11263 { /* => */ { FP32_0(1), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V7(0), FP32_RAND_V3(0), FP32_RAND_V6(1), FP32_RAND_V4(1) } },11264 /*mxcsr:in */ 0,11265 /*128:out */ 0,11266 /*256:out */ 0,11267 /*xcpt? */ false, false },11268 { { /*src2 */ { FP32_0(1), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } },11269 { /*src1 */ { FP32_0(1), FP32_RAND_V1(0), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V6(1) } },11270 { /* => */ { FP32_0(1), FP32_RAND_V1(0), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V6(1) } },11271 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11272 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11273 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11274 /*xcpt? */ false, false },11275 /*11276 * Infinity.11277 */11278 /*11*/{ { /*src2 */ { FP32_INF(0), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } },11279 { /*src1 */ { FP32_0(0), FP32_RAND_V1(0), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V6(1) } },11280 { /* => */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V6(1) } },11281 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11282 /*128:out */ X86_MXCSR_XCPT_MASK,11283 /*256:out */ X86_MXCSR_XCPT_MASK,11284 /*xcpt? */ false, false },11285 { { /*src2 */ { FP32_0(0), FP32_RAND_V5(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } },11286 { /*src1 */ { FP32_INF(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V5(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V7(1) } },11287 { /* => */ { FP32_INF(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V5(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V7(1) } },11288 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11289 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11290 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11291 /*xcpt? */ false, false },11292 { { /*src2 */ { FP32_INF(0), FP32_INF(1), FP32_SNAN(1), FP32_QNAN(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } },11293 { /*src1 */ { FP32_0(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } },11294 { /* => */ { FP32_INF(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } },11295 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11296 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11297 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11298 /*xcpt? */ false, false },11299 { { /*src2 */ { FP32_0(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } },11300 { /*src1 */ { FP32_INF(1), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } },11301 { /* => */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } },11302 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11303 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11304 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11305 /*xcpt? */ false, false },11306 { { /*src2 */ { FP32_INF(0), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V7(1), FP32_RAND_V0(1) } },11307 { /*src1 */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_SNAN_V(0, 1), FP32_SNAN_V(1, 1), FP32_RAND_V2(1) } },11308 { /* => */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_SNAN_V(0, 1), FP32_SNAN_V(1, 1), FP32_RAND_V2(1) } },11309 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,11310 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,11311 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,11312 /*xcpt? */ false, false },11313 { { /*src2 */ { FP32_INF(0), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V7(1), FP32_RAND_V0(1) } },11314 { /*src1 */ { FP32_INF(0), FP32_RAND_V0(1), FP32_RAND_V0(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_SNAN_V(1, 1), FP32_QNAN_V(1, 1), FP32_RAND_V3(1) } },11315 { /* => */ { FP32_INF(0), FP32_RAND_V0(1), FP32_RAND_V0(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_SNAN_V(1, 1), FP32_QNAN_V(1, 1), FP32_RAND_V3(1) } },11316 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11317 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11318 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11319 /*xcpt? */ false, false },11320 { { /*src2 */ { FP32_INF(1), FP32_RAND_V3(0), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V7(1), FP32_RAND_V0(0) } },11321 { /*src1 */ { FP32_INF(1), FP32_QNAN_V(1, 1), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_QNAN_V(1, 0), FP32_RAND_V1(0) } },11322 { /* => */ { FP32_INF(1), FP32_QNAN_V(1, 1), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_QNAN_V(1, 0), FP32_RAND_V1(0) } },11323 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11324 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11325 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11326 /*xcpt? */ false, false },11327 { { /*src2 */ { FP32_INF(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } },11328 { /*src1 */ { FP32_INF(1), FP32_RAND_V0(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V5(1) } },11329 { /* => */ { FP32_INF(1), FP32_RAND_V0(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V5(1) } },11330 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11331 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11332 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11333 /*xcpt? */ false, false },11334 { { /*src2 */ { FP32_INF(1), FP32_RAND_V1(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(0), FP32_RAND_V1(1) } },11335 { /*src1 */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V2(0), FP32_RAND_V3(1) } },11336 { /* => */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V2(0), FP32_RAND_V3(1) } },11337 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11338 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11339 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11340 /*xcpt? */ false, false },11341 { { /*src2 */ { FP32_INF(1), FP32_RAND_V0(1), FP32_RAND_V2(1), FP32_RAND_V4(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },11342 { /*src1 */ { FP32_INF(0), FP32_RAND_V0(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V4(1) } },11343 { /* => */ { FP32_INF(0), FP32_RAND_V0(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V4(1) } },11344 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11345 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11346 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11347 /*xcpt? */ false, false },11348 { { /*src2 */ { FP32_INF(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V1(1), FP32_RAND_V7(1), FP32_RAND_V2(0) } },11349 { /*src1 */ { FP32_INF(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V1(1), FP32_RAND_V0(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } },11350 { /* => */ { FP32_INF(0), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V1(1), FP32_RAND_V0(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } },11351 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11352 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11353 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11354 /*xcpt? */ false, false },11355 { { /*src2 */ { FP32_INF(0), FP32_RAND_V0(1), FP32_RAND_V2(1), FP32_RAND_V4(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },11356 { /*src1 */ { FP32_INF(1), FP32_RAND_V0(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V4(1) } },11357 { /* => */ { FP32_INF(0), FP32_RAND_V0(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V4(1) } },11358 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,11359 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,11360 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,11361 /*xcpt? */ false, false },11362 { { /*src2 */ { FP32_INF(0), FP32_RAND_V0(0), FP32_RAND_V2(1), FP32_RAND_V4(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V1(0) } },11363 { /*src1 */ { FP32_NORM_V0(0), FP32_RAND_V1(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V6(1), FP32_RAND_V2(1), FP32_RAND_V4(0) } },11364 { /* => */ { FP32_INF(0), FP32_RAND_V1(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V6(1), FP32_RAND_V2(1), FP32_RAND_V4(0) } },11365 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11366 /*128:out */ X86_MXCSR_XCPT_MASK,11367 /*256:out */ X86_MXCSR_XCPT_MASK,11368 /*xcpt? */ false, false },11369 { { /*src2 */ { FP32_INF(0), FP32_INF(0), FP32_SNAN(1), FP32_INF(1), FP32_RAND_V3(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V4(0) } },11370 { /*src1 */ { FP32_NORM_V3(0), FP32_INF(1), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },11371 { /* => */ { FP32_INF(0), FP32_INF(1), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },11372 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11373 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11374 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11375 /*xcpt? */ false, false },11376 { { /*src2 */ { FP32_NORM_V7(0), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_INF(1), FP32_SNAN(0), FP32_INF(0), FP32_RAND_V2(0) } },11377 { /*src1 */ { FP32_INF(1), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_INF(1), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V3(0) } },11378 { /* => */ { FP32_NORM_V7(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_INF(1), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V3(0) } },11379 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11380 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11381 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11382 /*xcpt? */ false, false },11383 { { /*src2 */ { FP32_NORM_V7(0), FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_QNAN(1), FP32_SNAN(0), FP32_INF(1), FP32_RAND_V2(1) } },11384 { /*src1 */ { FP32_INF(0), FP32_RAND_V7(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_QNAN(1), FP32_QNAN(1), FP32_SNAN(0), FP32_RAND_V3(1) } },11385 { /* => */ { FP32_INF(0), FP32_RAND_V7(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_QNAN(1), FP32_QNAN(1), FP32_SNAN(0), FP32_RAND_V3(1) } },11386 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11387 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11388 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11389 /*xcpt? */ false, false },11390 /*11391 * Normals.11392 */11393 /*27*/{ { /*src2 */ { FP32_NORM_MAX(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V1(1) } },11394 { /*src1 */ { FP32_NORM_MAX(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V3(1), FP32_RAND_V1(1) } },11395 { /* => */ { FP32_NORM_MAX(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V3(1), FP32_RAND_V1(1) } },11396 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11397 /*128:out */ X86_MXCSR_XCPT_MASK,11398 /*256:out */ X86_MXCSR_XCPT_MASK,11399 /*xcpt? */ false, false },11400 { { /*src2 */ { FP32_NORM_MIN(0), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(1) } },11401 { /*src1 */ { FP32_NORM_MIN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V0(1), FP32_RAND_V7(0) } },11402 { /* => */ { FP32_NORM_MIN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V0(1), FP32_RAND_V7(0) } },11403 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11404 /*128:out */ X86_MXCSR_XCPT_MASK,11405 /*256:out */ X86_MXCSR_XCPT_MASK,11406 /*xcpt? */ false, false },11407 { { /*src2 */ { FP32_NORM_MIN(0), FP32_RAND_V3(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V7(0), FP32_RAND_V2(1) } },11408 { /*src1 */ { FP32_NORM_MAX(0), FP32_RAND_V1(0), FP32_RAND_V6(0), FP32_RAND_V4(0), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V6(0), FP32_RAND_V4(1) } },11409 { /* => */ { FP32_NORM_MAX(0), FP32_RAND_V1(0), FP32_RAND_V6(0), FP32_RAND_V4(0), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V6(0), FP32_RAND_V4(1) } },11410 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11411 /*128:out */ X86_MXCSR_XCPT_MASK,11412 /*256:out */ X86_MXCSR_XCPT_MASK,11413 /*xcpt? */ false, false },11414 { { /*src2 */ { FP32_NORM_MAX(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } },11415 { /*src1 */ { FP32_NORM_MAX(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } },11416 { /* => */ { FP32_NORM_MAX(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } },11417 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11418 /*128:out */ X86_MXCSR_XCPT_MASK,11419 /*256:out */ X86_MXCSR_XCPT_MASK,11420 /*xcpt? */ false, false },11421 { { /*src2 */ { FP32_NORM_SAFE_INT_MIN(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(1) } },11422 { /*src1 */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V1(0), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V0(0), FP32_RAND_V1(1) } },11423 { /* => */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V1(0), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V0(0), FP32_RAND_V1(1) } },11424 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11425 /*128:out */ X86_MXCSR_XCPT_MASK,11426 /*256:out */ X86_MXCSR_XCPT_MASK,11427 /*xcpt? */ false, false },11428 { { /*src2 */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V1(1) } },11429 { /*src1 */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V5(0), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V2(1) } },11430 { /* => */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V5(0), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V2(1) } },11431 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11432 /*128:out */ X86_MXCSR_XCPT_MASK,11433 /*256:out */ X86_MXCSR_XCPT_MASK,11434 /*xcpt? */ false, false },11435 { { /*src2 */ { FP32_NORM_SAFE_INT_MAX(0), FP32_INF(0), FP32_QNAN(1), FP32_QNAN(0), FP32_SNAN(1), FP32_SNAN(1), FP32_SNAN(0), FP32_QNAN(1) } },11436 { /*src1 */ { FP32_NORM_SAFE_INT_MIN(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } },11437 { /* => */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } },11438 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11439 /*128:out */ X86_MXCSR_XCPT_MASK,11440 /*256:out */ X86_MXCSR_XCPT_MASK,11441 /*xcpt? */ false, false },11442 { { /*src2 */ { FP32_V(0, 0x600000, 0x7f)/* 1.75*/, FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1) } },11443 { /*src1 */ { FP32_V(1, 0, 0x7d)/*-0.25*/, FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1) } },11444 { /* => */ { FP32_V(0, 0x600000, 0x7f)/* 1.75*/, FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1) } },11445 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11446 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11447 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11448 /*xcpt? */ false, false },11449 { { /*src2 */ { FP32_V(0, 0, 0x7d)/*0.25*/, FP32_RAND_V2(1), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V7(0), FP32_RAND_V1(1) } },11450 { /*src1 */ { FP32_V(0, 0, 0x7e)/*0.50*/, FP32_RAND_V0(0), FP32_RAND_V5(0), FP32_RAND_V7(0), FP32_RAND_V2(1), FP32_SNAN_V(1, 1), FP32_SNAN_V(0, 1), FP32_RAND_V3(0) } },11451 { /* => */ { FP32_V(0, 0, 0x7e)/*0.50*/, FP32_RAND_V0(0), FP32_RAND_V5(0), FP32_RAND_V7(0), FP32_RAND_V2(1), FP32_SNAN_V(1, 1), FP32_SNAN_V(0, 1), FP32_RAND_V3(0) } },11452 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11453 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11454 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11455 /*xcpt? */ false, false },11456 { { /*src2 */ { FP32_NORM_MAX(0), FP32_RAND_V0(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1) } },11457 { /*src1 */ { FP32_NORM_V1(0), FP32_RAND_V0(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(0), FP32_RAND_V7(0) } },11458 { /* => */ { FP32_NORM_MAX(0), FP32_RAND_V0(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(0), FP32_RAND_V7(0) } },11459 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,11460 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,11461 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,11462 /*xcpt? */ false, false },11463 { { /*src2 */ { FP32_V(0, 0x5ca5b8, 0x93)/*1807543*/, FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V4(0), FP32_RAND_V7(0), FP32_RAND_V6(0) } },11464 { /*src1 */ { FP32_V(0, 0x1ea980, 0x8f)/* 81235*/, FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V3(1) } },11465 { /* => */ { FP32_V(0, 0x5ca5b8, 0x93)/*1807543*/, FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V3(1) } },11466 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11467 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11468 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11469 /*xcpt? */ false, false },11470 { { /*src2 */ { FP32_V(1, 0x2514d6, 0x93)/*-1352346.75*/, FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } },11471 { /*src1 */ { FP32_V(0, 0x7c9000, 0x88)/* 1010.25*/, FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } },11472 { /* => */ { FP32_V(0, 0x7c9000, 0x88)/* 1010.25*/, FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } },11473 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11474 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11475 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11476 /*xcpt? */ false, false },11477 { { /*src2 */ { FP32_V(1, 0x2514d6, 0x93)/*-1352346.75*/, FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } },11478 { /*src1 */ { FP32_V(0, 0x253468, 0x93)/* 1353357.00*/, FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V0(1), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V4(0), FP32_RAND_V4(1) } },11479 { /* => */ { FP32_V(0, 0x253468, 0x93)/* 1353357.00*/, FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V0(1), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V4(0), FP32_RAND_V4(1) } },11480 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11481 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11482 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11483 /*xcpt? */ false, false },11484 { { /*src2 */ { FP32_V(1, 0x40e6b6, 0x8c)/*-12345.678*/, FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } },11485 { /*src1 */ { FP32_V(1, 0x40e6b7, 0x8c)/*-12345.679*/, FP32_RAND_V1(1), FP32_RAND_V0(0), FP32_RAND_V0(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V4(0), FP32_RAND_V4(1) } },11486 { /* => */ { FP32_V(1, 0x40e6b6, 0x8c)/*-12345.678*/, FP32_RAND_V1(1), FP32_RAND_V0(0), FP32_RAND_V0(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V4(0), FP32_RAND_V4(1) } },11487 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11488 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11489 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11490 /*xcpt? */ false, false },11491 { { /*src2 */ { FP32_V(0, 0x620b2e, 0x92)/*925874.9*/, FP32_RAND_V5(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V1(1) } },11492 { /*src1 */ { FP32_V(0, 0x620b2d, 0x92)/*925874.8*/, FP32_RAND_V3(0), FP32_RAND_V6(1), FP32_RAND_V0(1), FP32_RAND_V6(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V2(1) } },11493 { /* => */ { FP32_V(0, 0x620b2e, 0x92)/*925874.9*/, FP32_RAND_V3(0), FP32_RAND_V6(1), FP32_RAND_V0(1), FP32_RAND_V6(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V2(1) } },11494 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11495 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11496 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11497 /*xcpt? */ false, false },11498 { { /*src2 */ { FP32_V(0, 0x490fda, 0x80)/*3.1415926*/, FP32_RAND_V6(1), FP32_RAND_V2(1), FP32_RAND_V4(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },11499 { /*src1 */ { FP32_V(0, 0x490fdb, 0x80)/*3.1415927*/, FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V3(0), FP32_RAND_V7(0), FP32_RAND_V1(0), FP32_RAND_V1(1) } },11500 { /* => */ { FP32_V(0, 0x490fdb, 0x80)/*3.1415927*/, FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V3(0), FP32_RAND_V7(0), FP32_RAND_V1(0), FP32_RAND_V1(1) } },11501 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11502 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11503 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11504 /*xcpt? */ false, false },11505 { { /*src2 */ { FP32_V(1, 0x40e6b6, 0x8c)/*-12345.678*/, FP32_INF(1), FP32_SNAN(1), FP32_INF(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(1), FP32_RAND_V6(1) } },11506 { /*src1 */ { FP32_V(1, 0x40e6b7, 0x8c)/*-12345.679*/, FP32_INF(1), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V7(1) } },11507 { /* => */ { FP32_V(1, 0x40e6b6, 0x8c)/*-12345.678*/, FP32_INF(1), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V7(1) } },11508 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11509 /*128:out */ X86_MXCSR_XCPT_MASK,11510 /*256:out */ X86_MXCSR_XCPT_MASK,11511 /*xcpt? */ false, false },11512 { { /*src2 */ { FP32_V(0, 0x5dd520, 0x8e)/* 56789.125*/, FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_QNAN(0), FP32_SNAN(1), FP32_INF(0), FP32_RAND_V3(1) } },11513 { /*src1 */ { FP32_V(1, 0x5dd521, 0x8e)/*-56789.127*/, FP32_RAND_V7(0), FP32_RAND_V7(0), FP32_RAND_V5(1), FP32_QNAN(0), FP32_QNAN(0), FP32_SNAN(1), FP32_RAND_V2(0) } },11514 { /* => */ { FP32_V(0, 0x5dd520, 0x8e)/* 56789.125*/, FP32_RAND_V7(0), FP32_RAND_V7(0), FP32_RAND_V5(1), FP32_QNAN(0), FP32_QNAN(0), FP32_SNAN(1), FP32_RAND_V2(0) } },11515 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11516 /*128:out */ X86_MXCSR_XCPT_MASK,11517 /*256:out */ X86_MXCSR_XCPT_MASK,11518 /*xcpt? */ false, false },11519 { { /*src2 */ { FP32_V(0, 0x600000, 0x7e)/* 0.875*/, FP32_RAND_V4(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V0(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },11520 { /*src1 */ { FP32_V(1, 0, 0x7d)/*-0.250*/, FP32_RAND_V2(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V7(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(1) } },11521 { /* => */ { FP32_V(0, 0x600000, 0x7e)/* 0.875*/, FP32_RAND_V2(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V7(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(1) } },11522 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11523 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11524 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11525 /*xcpt? */ false, false },11526 /** @todo More Normals. */11527 /*11528 * Denormals.11529 */11530 /*46*/{ { /*src2 */ { FP32_DENORM_MAX(0), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V7(0), FP32_RAND_V2(1) } },11531 { /*src1 */ { FP32_0(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V1(1) } },11532 { /* => */ { FP32_0(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V1(1) } },11533 /*mxcsr:in */ 0,11534 /*128:out */ X86_MXCSR_DE,11535 /*256:out */ X86_MXCSR_DE,11536 /*xcpt? */ true, true },11537 { { /*src2 */ { FP32_0(0), FP32_SNAN(0), FP32_QNAN(1), FP32_QNAN(0), FP32_SNAN(0), FP32_SNAN(0), FP32_SNAN(0), FP32_QNAN(1) } },11538 { /*src1 */ { FP32_DENORM_MAX(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_QNAN(1), FP32_RAND_V6(0), FP32_RAND_V3(1), FP32_RAND_V2(0) } },11539 { /* => */ { FP32_DENORM_MAX(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_QNAN(1), FP32_RAND_V6(0), FP32_RAND_V3(1), FP32_RAND_V2(0) } },11540 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11541 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11542 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11543 /*xcpt? */ false, false },11544 { { /*src2 */ { FP32_DENORM_MIN(0), FP32_INF(1), FP32_SNAN(0), FP32_INF(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } },11545 { /*src1 */ { FP32_DENORM_MAX(0), FP32_INF(0), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V3(0) } },11546 { /* => */ { FP32_0(0), FP32_INF(0), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V3(0) } },11547 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,11548 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,11549 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,11550 /*xcpt? */ false, false },11551 { { /*src2 */ { FP32_DENORM_MAX(0), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V7(0), FP32_RAND_V0(0) } },11552 { /*src1 */ { FP32_DENORM_MAX(0), FP32_RAND_V3(0), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V7(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V4(1) } },11553 { /* => */ { FP32_DENORM_MAX(0), FP32_RAND_V3(0), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V7(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V4(1) } },11554 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11555 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11556 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11557 /*xcpt? */ false, false },11558 { { /*src2 */ { FP32_DENORM_MAX(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1) } },11559 { /*src1 */ { FP32_DENORM_MAX(1), FP32_RAND_V7(0), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V5(0), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1) } },11560 { /* => */ { FP32_DENORM_MAX(0), FP32_RAND_V7(0), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V5(0), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1) } },11561 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11562 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11563 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11564 /*xcpt? */ false, false },11565 { { /*src2 */ { FP32_DENORM_MAX(1), FP32_RAND_V3(1), FP32_RAND_V7(0), FP32_RAND_V6(1), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V7(1), FP32_RAND_V2(1) } },11566 { /*src1 */ { FP32_DENORM_MAX(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },11567 { /* => */ { FP32_DENORM_MAX(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },11568 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11569 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11570 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11571 /*xcpt? */ false, false },11572 { { /*src2 */ { FP32_DENORM_MIN(1), FP32_RAND_V7(1), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },11573 { /*src1 */ { FP32_DENORM_MIN(0), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(1) } },11574 { /* => */ { FP32_DENORM_MIN(0), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(1) } },11575 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11576 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11577 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11578 /*xcpt? */ false, false },11579 { { /*src2 */ { FP32_DENORM_MIN(1), FP32_INF(0), FP32_QNAN(1), FP32_QNAN(0), FP32_SNAN(1), FP32_SNAN(1), FP32_SNAN(0), FP32_QNAN(1) } },11580 { /*src1 */ { FP32_DENORM_MIN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } },11581 { /* => */ { FP32_DENORM_MIN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } },11582 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11583 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11584 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11585 /*xcpt? */ false, false },11586 { { /*src2 */ { FP32_DENORM_MIN(1), FP32_INF(0), FP32_QNAN(1), FP32_QNAN(0), FP32_SNAN(1), FP32_SNAN(1), FP32_SNAN(0), FP32_QNAN(1) } },11587 { /*src1 */ { FP32_DENORM_MIN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } },11588 { /* => */ { FP32_0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } },11589 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,11590 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,11591 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,11592 /*xcpt? */ false, false },11593 { { /*src2 */ { FP32_DENORM_MIN(0), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(1) } },11594 { /*src1 */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1) } },11595 { /* => */ { FP32_DENORM_MIN(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1) } },11596 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11597 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11598 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11599 /*xcpt? */ false, false },11600 /** @todo More Denormals. */11601 /*56*/ FP32_TABLE_D9_SS_INVALIDS11602 /** @todo Rounding; FZ etc. */11603 };11604 11605 #define PASS_s_aValues RT_ELEMENTS(s_aValues), (BS3CPUINSTR4_TEST1_VALUES_T *)s_aValues11606 static BS3CPUINSTR4_TEST1_T const s_aTests16[] =11607 {11608 { bs3CpuInstr4_maxss_XMM3_XMM4_icebp_c16, 255, RM_REG, T_SSE, 3, 3, 4, PASS_s_aValues },11609 { bs3CpuInstr4_maxss_XMM3_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, 3, 3, 255, PASS_s_aValues },11610 11611 { bs3CpuInstr4_vmaxss_XMM1_XMM6_XMM7_icebp_c16, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues },11612 { bs3CpuInstr4_vmaxss_XMM1_XMM6_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues },11613 };11614 static BS3CPUINSTR4_TEST1_T const s_aTests32[] =11615 {11616 { bs3CpuInstr4_maxss_XMM3_XMM4_icebp_c32, 255, RM_REG, T_SSE, 3, 3, 4, PASS_s_aValues },11617 { bs3CpuInstr4_maxss_XMM3_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, 3, 3, 255, PASS_s_aValues },11618 11619 { bs3CpuInstr4_vmaxss_XMM1_XMM6_XMM7_icebp_c32, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues },11620 { bs3CpuInstr4_vmaxss_XMM1_XMM6_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues },11621 };11622 static BS3CPUINSTR4_TEST1_T const s_aTests64[] =11623 {11624 { bs3CpuInstr4_maxss_XMM3_XMM4_icebp_c64, 255, RM_REG, T_SSE, 3, 3, 4, PASS_s_aValues },11625 { bs3CpuInstr4_maxss_XMM3_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, 3, 3, 255, PASS_s_aValues },11626 11627 { bs3CpuInstr4_vmaxss_XMM1_XMM6_XMM7_icebp_c64, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues },11628 { bs3CpuInstr4_vmaxss_XMM1_XMM6_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues },11629 11630 { bs3CpuInstr4_maxss_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, 8, 8, 9, PASS_s_aValues },11631 { bs3CpuInstr4_maxss_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE, 8, 8, 255, PASS_s_aValues },11632 11633 { bs3CpuInstr4_vmaxss_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, 8, 9, 10, PASS_s_aValues },11634 { bs3CpuInstr4_vmaxss_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, 8, 9, 255, PASS_s_aValues },11635 };11636 #undef PASS_s_aValues11637 11638 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);11639 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode);11640 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,11641 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3));11642 }11643 11644 11645 /*11646 * [V]MAXSD.11647 */11648 BS3_DECL_FAR(uint8_t) bs3CpuInstr4_v_maxsd(uint8_t bMode)11649 {11650 static BS3CPUINSTR4_TEST1_VALUES_SD_T const s_aValues[] =11651 {11652 /*11653 * Zero.11654 */11655 /* 0*/{ { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },11656 { /*src1 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },11657 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },11658 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11659 /*128:out */ X86_MXCSR_XCPT_MASK,11660 /*256:out */ X86_MXCSR_XCPT_MASK,11661 /*xcpt? */ false, false },11662 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },11663 { /*src1 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },11664 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },11665 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,11666 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,11667 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,11668 /*xcpt? */ false, false },11669 { { /*src2 */ { FP64_0(0), FP64_INF(0), FP64_SNAN(0), FP64_SNAN(0) } },11670 { /*src1 */ { FP64_0(0), FP64_INF(1), FP64_QNAN(0), FP64_SNAN(1) } },11671 { /* => */ { FP64_0(0), FP64_INF(1), FP64_QNAN(0), FP64_SNAN(1) } },11672 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11673 /*128:out */ X86_MXCSR_XCPT_MASK,11674 /*256:out */ X86_MXCSR_XCPT_MASK,11675 /*xcpt? */ false, false },11676 { { /*src2 */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V0(0), FP64_RAND_V0(0) } },11677 { /*src1 */ { FP64_0(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V1(0) } },11678 { /* => */ { FP64_0(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V1(0) } },11679 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11680 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11681 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11682 /*xcpt? */ false, false },11683 { { /*src2 */ { FP64_0(0), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V1(0) } },11684 { /*src1 */ { FP64_0(0), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V2(1) } },11685 { /* => */ { FP64_0(0), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V2(1) } },11686 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11687 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11688 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11689 /*xcpt? */ false, false },11690 { { /*src2 */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V3(0) } },11691 { /*src1 */ { FP64_0(1), FP64_RAND_V1(0), FP64_RAND_V2(0), FP64_RAND_V3(0) } },11692 { /* => */ { FP64_0(0), FP64_RAND_V1(0), FP64_RAND_V2(0), FP64_RAND_V3(0) } },11693 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11694 /*128:out */ X86_MXCSR_XCPT_MASK,11695 /*256:out */ X86_MXCSR_XCPT_MASK,11696 /*xcpt? */ false, false },11697 { { /*src2 */ { FP64_0(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(0) } },11698 { /*src1 */ { FP64_0(1), FP64_RAND_V2(1), FP64_RAND_V3(0), FP64_RAND_V0(1) } },11699 { /* => */ { FP64_0(0), FP64_RAND_V2(1), FP64_RAND_V3(0), FP64_RAND_V0(1) } },11700 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11701 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11702 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11703 /*xcpt? */ false, false },11704 { { /*src2 */ { FP64_0(1), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V3(1) } },11705 { /*src1 */ { FP64_0(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } },11706 { /* => */ { FP64_0(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } },11707 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11708 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11709 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11710 /*xcpt? */ false, false },11711 { { /*src2 */ { FP64_0(1), FP64_RAND_V3(1), FP64_RAND_V2(0), FP64_RAND_V1(0) } },11712 { /*src1 */ { FP64_0(0), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V3(0) } },11713 { /* => */ { FP64_0(1), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V3(0) } },11714 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11715 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11716 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11717 /*xcpt? */ false, false },11718 { { /*src2 */ { FP64_0(1), FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },11719 { /*src1 */ { FP64_0(1), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(0) } },11720 { /* => */ { FP64_0(1), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(0) } },11721 /*mxcsr:in */ 0,11722 /*128:out */ 0,11723 /*256:out */ 0,11724 /*xcpt? */ false, false },11725 { { /*src2 */ { FP64_0(1), FP64_RAND_V3(1), FP64_RAND_V1(1), FP64_RAND_V0(1) } },11726 { /*src1 */ { FP64_0(1), FP64_RAND_V1(0), FP64_RAND_V0(1), FP64_RAND_V2(1) } },11727 { /* => */ { FP64_0(1), FP64_RAND_V1(0), FP64_RAND_V0(1), FP64_RAND_V2(1) } },11728 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11729 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11730 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11731 /*xcpt? */ false, false },11732 /*11733 * Infinity.11734 */11735 /*11*/{ { /*src2 */ { FP64_INF(0), FP64_RAND_V3(1), FP64_RAND_V1(1), FP64_RAND_V0(1) } },11736 { /*src1 */ { FP64_0(0), FP64_RAND_V1(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } },11737 { /* => */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } },11738 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11739 /*128:out */ X86_MXCSR_XCPT_MASK,11740 /*256:out */ X86_MXCSR_XCPT_MASK,11741 /*xcpt? */ false, false },11742 { { /*src2 */ { FP64_0(0), FP64_RAND_V1(1), FP64_RAND_V1(1), FP64_RAND_V3(1) } },11743 { /*src1 */ { FP64_INF(0), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } },11744 { /* => */ { FP64_INF(0), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } },11745 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11746 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11747 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11748 /*xcpt? */ false, false },11749 { { /*src2 */ { FP64_INF(0), FP64_INF(1), FP64_SNAN(1), FP64_QNAN(1) } },11750 { /*src1 */ { FP64_0(0), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } },11751 { /* => */ { FP64_INF(0), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } },11752 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11753 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11754 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11755 /*xcpt? */ false, false },11756 { { /*src2 */ { FP64_0(0), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(0) } },11757 { /*src1 */ { FP64_INF(1), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V0(1) } },11758 { /* => */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V0(1) } },11759 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11760 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11761 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11762 /*xcpt? */ false, false },11763 { { /*src2 */ { FP64_INF(0), FP64_RAND_V3(1), FP64_RAND_V3(1), FP64_RAND_V0(1) } },11764 { /*src1 */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } },11765 { /* => */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } },11766 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,11767 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,11768 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,11769 /*xcpt? */ false, false },11770 { { /*src2 */ { FP64_INF(0), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V0(0) } },11771 { /*src1 */ { FP64_INF(0), FP64_RAND_V0(1), FP64_RAND_V0(1), FP64_RAND_V3(1) } },11772 { /* => */ { FP64_INF(0), FP64_RAND_V0(1), FP64_RAND_V0(1), FP64_RAND_V3(1) } },11773 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11774 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11775 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11776 /*xcpt? */ false, false },11777 { { /*src2 */ { FP64_INF(1), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } },11778 { /*src1 */ { FP64_INF(1), FP64_QNAN_V(1, 1), FP64_RAND_V1(1), FP64_RAND_V2(0) } },11779 { /* => */ { FP64_INF(1), FP64_QNAN_V(1, 1), FP64_RAND_V1(1), FP64_RAND_V2(0) } },11780 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11781 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11782 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11783 /*xcpt? */ false, false },11784 { { /*src2 */ { FP64_INF(1), FP64_RAND_V2(1), FP64_RAND_V1(1), FP64_RAND_V0(1) } },11785 { /*src1 */ { FP64_INF(1), FP64_RAND_V0(0), FP64_RAND_V3(1), FP64_RAND_V0(1) } },11786 { /* => */ { FP64_INF(1), FP64_RAND_V0(0), FP64_RAND_V3(1), FP64_RAND_V0(1) } },11787 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11788 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11789 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11790 /*xcpt? */ false, false },11791 { { /*src2 */ { FP64_INF(1), FP64_RAND_V1(1), FP64_RAND_V3(1), FP64_RAND_V0(1) } },11792 { /*src1 */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } },11793 { /* => */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } },11794 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11795 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11796 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11797 /*xcpt? */ false, false },11798 { { /*src2 */ { FP64_INF(1), FP64_RAND_V0(1), FP64_RAND_V2(1), FP64_RAND_V0(1) } },11799 { /*src1 */ { FP64_INF(0), FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },11800 { /* => */ { FP64_INF(0), FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },11801 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11802 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11803 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11804 /*xcpt? */ false, false },11805 { { /*src2 */ { FP64_INF(0), FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V0(1) } },11806 { /*src1 */ { FP64_INF(1), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V1(1) } },11807 { /* => */ { FP64_INF(0), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V1(1) } },11808 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11809 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11810 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11811 /*xcpt? */ false, false },11812 { { /*src2 */ { FP64_INF(0), FP64_RAND_V0(1), FP64_RAND_V2(1), FP64_RAND_V0(1) } },11813 { /*src1 */ { FP64_INF(1), FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },11814 { /* => */ { FP64_INF(0), FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },11815 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,11816 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,11817 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,11818 /*xcpt? */ false, false },11819 { { /*src2 */ { FP64_INF(0), FP64_RAND_V0(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } },11820 { /*src1 */ { FP64_NORM_V0(0), FP64_RAND_V1(1), FP64_RAND_V3(1), FP64_RAND_V1(1) } },11821 { /* => */ { FP64_INF(0), FP64_RAND_V1(1), FP64_RAND_V3(1), FP64_RAND_V1(1) } },11822 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11823 /*128:out */ X86_MXCSR_XCPT_MASK,11824 /*256:out */ X86_MXCSR_XCPT_MASK,11825 /*xcpt? */ false, false },11826 { { /*src2 */ { FP64_INF(0), FP64_INF(0), FP64_SNAN(1), FP64_INF(1) } },11827 { /*src1 */ { FP64_NORM_V3(0), FP64_INF(1), FP64_QNAN(1), FP64_SNAN(1) } },11828 { /* => */ { FP64_INF(0), FP64_INF(1), FP64_QNAN(1), FP64_SNAN(1) } },11829 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11830 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11831 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11832 /*xcpt? */ false, false },11833 { { /*src2 */ { FP64_NORM_V2(0), FP64_RAND_V3(1), FP64_QNAN(1), FP64_SNAN(1) } },11834 { /*src1 */ { FP64_INF(1), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V1(1) } },11835 { /* => */ { FP64_NORM_V2(0), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V1(1) } },11836 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11837 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11838 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11839 /*xcpt? */ false, false },11840 { { /*src2 */ { FP64_NORM_V2(0), FP64_SNAN_V(0, 1), FP64_RAND_V2(0), FP64_RAND_V3(0) } },11841 { /*src1 */ { FP64_INF(0), FP64_RAND_V2(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } },11842 { /* => */ { FP64_INF(0), FP64_RAND_V2(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } },11843 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11844 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11845 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11846 /*xcpt? */ false, false },11847 /*11848 * Normals.11849 */11850 /*27*/{ { /*src2 */ { FP64_NORM_MAX(0), FP64_RAND_V2(1), FP64_RAND_V0(1), FP64_RAND_V3(1) } },11851 { /*src1 */ { FP64_NORM_MAX(0), FP64_RAND_V3(1), FP64_RAND_V2(0), FP64_RAND_V2(1) } },11852 { /* => */ { FP64_NORM_MAX(0), FP64_RAND_V3(1), FP64_RAND_V2(0), FP64_RAND_V2(1) } },11853 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11854 /*128:out */ X86_MXCSR_XCPT_MASK,11855 /*256:out */ X86_MXCSR_XCPT_MASK,11856 /*xcpt? */ false, false },11857 { { /*src2 */ { FP64_NORM_MIN(0), FP64_RAND_V3(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },11858 { /*src1 */ { FP64_NORM_MIN(0), FP64_RAND_V2(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } },11859 { /* => */ { FP64_NORM_MIN(0), FP64_RAND_V2(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } },11860 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11861 /*128:out */ X86_MXCSR_XCPT_MASK,11862 /*256:out */ X86_MXCSR_XCPT_MASK,11863 /*xcpt? */ false, false },11864 { { /*src2 */ { FP64_NORM_MIN(0), FP64_RAND_V3(1), FP64_RAND_V0(1), FP64_RAND_V3(0) } },11865 { /*src1 */ { FP64_NORM_MAX(0), FP64_RAND_V1(0), FP64_RAND_V3(0), FP64_RAND_V1(0) } },11866 { /* => */ { FP64_NORM_MAX(0), FP64_RAND_V1(0), FP64_RAND_V3(0), FP64_RAND_V1(0) } },11867 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11868 /*128:out */ X86_MXCSR_XCPT_MASK,11869 /*256:out */ X86_MXCSR_XCPT_MASK,11870 /*xcpt? */ false, false },11871 { { /*src2 */ { FP64_NORM_MAX(0), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(0) } },11872 { /*src1 */ { FP64_NORM_MAX(0), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V1(1) } },11873 { /* => */ { FP64_NORM_MAX(0), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V1(1) } },11874 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11875 /*128:out */ X86_MXCSR_XCPT_MASK,11876 /*256:out */ X86_MXCSR_XCPT_MASK,11877 /*xcpt? */ false, false },11878 { { /*src2 */ { FP64_NORM_SAFE_INT_MIN(0), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(0) } },11879 { /*src1 */ { FP64_NORM_SAFE_INT_MAX(0), FP64_RAND_V1(0), FP64_RAND_V1(0), FP64_RAND_V3(1) } },11880 { /* => */ { FP64_NORM_SAFE_INT_MAX(0), FP64_RAND_V1(0), FP64_RAND_V1(0), FP64_RAND_V3(1) } },11881 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11882 /*128:out */ X86_MXCSR_XCPT_MASK,11883 /*256:out */ X86_MXCSR_XCPT_MASK,11884 /*xcpt? */ false, false },11885 { { /*src2 */ { FP64_NORM_SAFE_INT_MAX(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },11886 { /*src1 */ { FP64_NORM_SAFE_INT_MAX(0), FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },11887 { /* => */ { FP64_NORM_SAFE_INT_MAX(0), FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },11888 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11889 /*128:out */ X86_MXCSR_XCPT_MASK,11890 /*256:out */ X86_MXCSR_XCPT_MASK,11891 /*xcpt? */ false, false },11892 { { /*src2 */ { FP64_NORM_SAFE_INT_MAX(0), FP64_INF(0), FP64_QNAN(1), FP64_QNAN(0) } },11893 { /*src1 */ { FP64_NORM_SAFE_INT_MIN(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } },11894 { /* => */ { FP64_NORM_SAFE_INT_MAX(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } },11895 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11896 /*128:out */ X86_MXCSR_XCPT_MASK,11897 /*256:out */ X86_MXCSR_XCPT_MASK,11898 /*xcpt? */ false, false },11899 { { /*src2 */ { FP64_V(0, 0, 0x409)/*1024*/, FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },11900 { /*src1 */ { FP64_V(0, 0, 0x408)/* 512*/, FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V3(1) } },11901 { /* => */ { FP64_V(0, 0, 0x409)/*1024*/, FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V3(1) } },11902 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11903 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11904 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11905 /*xcpt? */ false, false },11906 { { /*src2 */ { FP64_V(0, 0xc122186c3cfd0, 0x42d)/*123456789876543.25*/, FP64_RAND_V2(1), FP64_RAND_V2(0), FP64_RAND_V3(1) } },11907 { /*src1 */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V0(0) } },11908 { /* => */ { FP64_V(0, 0xc122186c3cfd0, 0x42d)/*123456789876543.25*/, FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V0(0) } },11909 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11910 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11911 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11912 /*xcpt? */ false, false },11913 { { /*src2 */ { FP64_NORM_MAX(0), FP64_RAND_V0(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },11914 { /*src1 */ { FP64_NORM_V1(0), FP64_RAND_V0(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } },11915 { /* => */ { FP64_NORM_MAX(0), FP64_RAND_V0(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } },11916 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,11917 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,11918 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,11919 /*xcpt? */ false, false },11920 { { /*src2 */ { FP64_V(0, 0xc000000000000, 0x3ff)/*1.75*/, FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } },11921 { /*src1 */ { FP64_V(0, 0, 0x3fd)/*0.25*/, FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V1(0) } },11922 { /* => */ { FP64_V(0, 0xc000000000000, 0x3ff)/*1.75*/, FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V1(0) } },11923 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11924 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11925 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11926 /*xcpt? */ false, false },11927 { { /*src2 */ { FP64_V(1, 0, 0x3fd)/*-0.25*/, FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(0) } },11928 { /*src1 */ { FP64_V(1, 0, 0x3fe)/*-0.50*/, FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V1(1) } },11929 { /* => */ { FP64_V(1, 0, 0x3fd)/*-0.25*/, FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V1(1) } },11930 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11931 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11932 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11933 /*xcpt? */ false, false },11934 { { /*src2 */ { FP64_V(0, 0x26580b4c7e6b7, 0x41d)/*1234567891.1234567*/, FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V3(1) } },11935 { /*src1 */ { FP64_V(0, 0x26580b4c7e6bc, 0x41d)/*1234567891.1234580*/, FP64_RAND_V3(0), FP64_RAND_V1(0), FP64_RAND_V0(1) } },11936 { /* => */ { FP64_V(0, 0x26580b4c7e6bc, 0x41d)/*1234567891.1234580*/, FP64_RAND_V3(0), FP64_RAND_V1(0), FP64_RAND_V0(1) } },11937 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11938 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11939 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11940 /*xcpt? */ false, false },11941 { { /*src2 */ { FP64_V(0, 0xf9b0207d06184, 0x3fb)/*0.1234589833333129*/, FP64_RAND_V3(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },11942 { /*src1 */ { FP64_V(0, 0xf9b0207d0617d, 0x3fb)/*0.1234589833333128*/, FP64_RAND_V1(1), FP64_RAND_V0(0), FP64_RAND_V0(1) } },11943 { /* => */ { FP64_V(0, 0xf9b0207d06184, 0x3fb)/*0.1234589833333129*/, FP64_RAND_V1(1), FP64_RAND_V0(0), FP64_RAND_V0(1) } },11944 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11945 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11946 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11947 /*xcpt? */ false, false },11948 { { /*src2 */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/* 121098765432102.75*/, FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },11949 { /*src1 */ { FP64_V(1, 0xbcd80e0108cc0, 0x42e)/*-244555555308646.00*/, FP64_RAND_V3(0), FP64_RAND_V3(1), FP64_RAND_V0(1) } },11950 { /* => */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/* 121098765432102.75*/, FP64_RAND_V3(0), FP64_RAND_V3(1), FP64_RAND_V0(1) } },11951 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11952 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11953 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11954 /*xcpt? */ false, false },11955 { { /*src2 */ { FP64_V(0, 0xcf0033a34f337, 0x432)/*4072598000007579.5*/, FP64_RAND_V3(1), FP64_RAND_V2(1), FP64_RAND_V1(1) } },11956 { /*src1 */ { FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/, FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },11957 { /* => */ { FP64_V(0, 0xcf0033a34f337, 0x432)/*4072598000007579.5*/, FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },11958 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11959 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11960 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11961 /*xcpt? */ false, false },11962 { { /*src2 */ { FP64_V(1, 0xbcd80e0108cc0, 0x42e)/*-244555555308646.00*/, FP64_INF(1), FP64_SNAN(1), FP64_INF(1) } },11963 { /*src1 */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/* 121098765432102.75*/, FP64_INF(1), FP64_QNAN(0), FP64_SNAN(0) } },11964 { /* => */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/* 121098765432102.75*/, FP64_INF(1), FP64_QNAN(0), FP64_SNAN(0) } },11965 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11966 /*128:out */ X86_MXCSR_XCPT_MASK,11967 /*256:out */ X86_MXCSR_XCPT_MASK,11968 /*xcpt? */ false, false },11969 { { /*src2 */ { FP64_V(0, 0xbcd80e0108cc0, 0x42e)/* 244555555308646.00*/, FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(0) } },11970 { /*src1 */ { FP64_V(1, 0xb88e0395d49b0, 0x42d)/*-121098765432102.75*/, FP64_RAND_V0(0), FP64_RAND_V0(0), FP64_RAND_V2(1) } },11971 { /* => */ { FP64_V(0, 0xbcd80e0108cc0, 0x42e)/* 244555555308646.00*/, FP64_RAND_V0(0), FP64_RAND_V0(0), FP64_RAND_V2(1) } },11972 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11973 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11974 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11975 /*xcpt? */ false, false },11976 { { /*src2 */ { FP64_V(1, 0xcf0033a34f337, 0x432)/*-4072598000007579.5*/, FP64_RAND_V1(0), FP64_RAND_V2(0), FP64_RAND_V1(0) } },11977 { /*src1 */ { FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/, FP64_RAND_V2(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } },11978 { /* => */ { FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/, FP64_RAND_V2(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } },11979 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11980 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11981 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11982 /*xcpt? */ false, false },11983 /** @todo More Normals. */11984 /*11985 * Denormals.11986 */11987 /*46*/{ { /*src2 */ { FP64_DENORM_MAX(0), FP64_RAND_V2(0), FP64_RAND_V0(1), FP64_RAND_V3(0) } },11988 { /*src1 */ { FP64_0(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V2(1) } },11989 { /* => */ { FP64_DENORM_MAX(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V2(1) } },11990 /*mxcsr:in */ 0,11991 /*128:out */ X86_MXCSR_DE,11992 /*256:out */ X86_MXCSR_DE,11993 /*xcpt? */ true, true },11994 { { /*src2 */ { FP64_0(0), FP64_SNAN(0), FP64_QNAN(1), FP64_QNAN(0) } },11995 { /*src1 */ { FP64_DENORM_MAX(0), FP64_RAND_V2(0), FP64_RAND_V3(1), FP64_RAND_V2(0) } },11996 { /* => */ { FP64_DENORM_MAX(0), FP64_RAND_V2(0), FP64_RAND_V3(1), FP64_RAND_V2(0) } },11997 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11998 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11999 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12000 /*xcpt? */ false, false },12001 { { /*src2 */ { FP64_DENORM_MIN(0), FP64_INF(1), FP64_SNAN(0), FP64_INF(1) } },12002 { /*src1 */ { FP64_DENORM_MAX(0), FP64_INF(0), FP64_QNAN(1), FP64_SNAN(1) } },12003 { /* => */ { FP64_0(0), FP64_INF(0), FP64_QNAN(1), FP64_SNAN(1) } },12004 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,12005 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,12006 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,12007 /*xcpt? */ false, false },12008 { { /*src2 */ { FP64_DENORM_MAX(0), FP64_RAND_V2(1), FP64_RAND_V0(1), FP64_RAND_V3(0) } },12009 { /*src1 */ { FP64_DENORM_MAX(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },12010 { /* => */ { FP64_DENORM_MAX(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },12011 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12012 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12013 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12014 /*xcpt? */ false, false },12015 { { /*src2 */ { FP64_DENORM_MAX(0), FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V2(0) } },12016 { /*src1 */ { FP64_DENORM_MAX(1), FP64_RAND_V0(0), FP64_RAND_V3(0), FP64_RAND_V0(0) } },12017 { /* => */ { FP64_DENORM_MAX(0), FP64_RAND_V0(0), FP64_RAND_V3(0), FP64_RAND_V0(0) } },12018 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12019 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12020 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12021 /*xcpt? */ false, false },12022 { { /*src2 */ { FP64_DENORM_MAX(1), FP64_RAND_V3(1), FP64_RAND_V0(0), FP64_RAND_V3(1) } },12023 { /*src1 */ { FP64_DENORM_MAX(0), FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V2(1) } },12024 { /* => */ { FP64_DENORM_MAX(0), FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V2(1) } },12025 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12026 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12027 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12028 /*xcpt? */ false, false },12029 { { /*src2 */ { FP64_DENORM_MIN(1), FP64_RAND_V0(1), FP64_RAND_V3(1), FP64_RAND_V2(1) } },12030 { /*src1 */ { FP64_DENORM_MIN(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } },12031 { /* => */ { FP64_DENORM_MIN(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } },12032 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12033 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12034 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12035 /*xcpt? */ false, false },12036 { { /*src2 */ { FP64_DENORM_MIN(1), FP64_INF(0), FP64_QNAN(1), FP64_SNAN_V(1, 1) } },12037 { /*src1 */ { FP64_DENORM_MIN(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } },12038 { /* => */ { FP64_DENORM_MIN(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } },12039 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12040 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12041 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12042 /*xcpt? */ false, false },12043 { { /*src2 */ { FP64_DENORM_MIN(1), FP64_SNAN(1), FP64_SNAN(0), FP64_QNAN(0) } },12044 { /*src1 */ { FP64_DENORM_MIN(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } },12045 { /* => */ { FP64_0(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } },12046 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,12047 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,12048 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,12049 /*xcpt? */ false, false },12050 { { /*src2 */ { FP64_DENORM_MIN(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } },12051 { /*src1 */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V2(0) } },12052 { /* => */ { FP64_DENORM_MIN(0), FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V2(0) } },12053 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12054 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12055 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12056 /*xcpt? */ false, false },12057 /** @todo More Denormals. */12058 /*12059 * Invalids.12060 */12061 /*56*/ FP64_TABLE_D9_SD_INVALIDS12062 };12063 12064 #define PASS_s_aValues RT_ELEMENTS(s_aValues), (BS3CPUINSTR4_TEST1_VALUES_T *)s_aValues12065 static BS3CPUINSTR4_TEST1_T const s_aTests16[] =12066 {12067 { bs3CpuInstr4_maxsd_XMM3_XMM4_icebp_c16, 255, RM_REG, T_SSE2, 3, 3, 4, PASS_s_aValues },12068 { bs3CpuInstr4_maxsd_XMM3_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, 3, 3, 255, PASS_s_aValues },12069 12070 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_XMM7_icebp_c16, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues },12071 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues },12072 };12073 static BS3CPUINSTR4_TEST1_T const s_aTests32[] =12074 {12075 { bs3CpuInstr4_maxsd_XMM3_XMM4_icebp_c32, 255, RM_REG, T_SSE2, 3, 3, 4, PASS_s_aValues },12076 { bs3CpuInstr4_maxsd_XMM3_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, 3, 3, 255, PASS_s_aValues },12077 12078 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_XMM7_icebp_c32, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues },12079 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues },12080 };12081 static BS3CPUINSTR4_TEST1_T const s_aTests64[] =12082 {12083 { bs3CpuInstr4_maxsd_XMM3_XMM4_icebp_c64, 255, RM_REG, T_SSE2, 3, 3, 4, PASS_s_aValues },12084 { bs3CpuInstr4_maxsd_XMM3_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, 3, 3, 255, PASS_s_aValues },12085 12086 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_XMM7_icebp_c64, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues },12087 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues },12088 12089 { bs3CpuInstr4_maxsd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, 8, 8, 9, PASS_s_aValues },12090 { bs3CpuInstr4_maxsd_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE2, 8, 8, 255, PASS_s_aValues },12091 12092 { bs3CpuInstr4_vmaxsd_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, 8, 9, 10, PASS_s_aValues },12093 { bs3CpuInstr4_vmaxsd_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, 8, 9, 255, PASS_s_aValues },12094 };12095 #undef PASS_s_aValues12096 12097 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);12098 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode);12099 return bs3CpuInstr4_WorkerTestType1A(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,12100 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3));12101 }12102 12103 12104 /*12105 * [V]MINPS.12106 */12107 BS3_DECL_FAR(uint8_t) bs3CpuInstr4_v_minps(uint8_t bMode)12108 {12109 static BS3CPUINSTR4_TEST1_VALUES_PS_T const s_aValues[] =12110 {12111 /*12112 * Zero.12113 */12114 /* 0*/{ { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12115 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12116 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12117 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12118 /*128:out */ X86_MXCSR_XCPT_MASK,12119 /*256:out */ X86_MXCSR_XCPT_MASK,12120 /*xcpt? */ false, false },12121 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12122 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12123 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12124 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12125 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12126 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12127 /*xcpt? */ false, false },12128 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12129 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12130 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12131 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12132 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12133 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12134 /*xcpt? */ false, false },12135 { { /*src2 */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1) } },12136 { /*src1 */ { FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0) } },12137 { /* => */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1) } },12138 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12139 /*128:out */ X86_MXCSR_XCPT_MASK,12140 /*256:out */ X86_MXCSR_XCPT_MASK,12141 /*xcpt? */ false, false },12142 { { /*src2 */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0) } },12143 { /*src1 */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0) } },12144 { /* => */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0) } },12145 /*mxcsr:in */ 0,12146 /*128:out */ 0,12147 /*256:out */ 0,12148 /*xcpt? */ false, false },12149 { { /*src2 */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1) } },12150 { /*src1 */ { FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0) } },12151 { /* => */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1) } },12152 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12153 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12154 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12155 /*xcpt? */ false, false },12156 { { /*src2 */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0) } },12157 { /*src1 */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0) } },12158 { /* => */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0) } },12159 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,12160 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,12161 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,12162 /*xcpt? */ false, false },12163 { { /*src2 */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0) } },12164 { /*src1 */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0) } },12165 { /* => */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0) } },12166 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12167 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12168 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12169 /*xcpt? */ false, false },12170 { { /*src2 */ { FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1) } },12171 { /*src1 */ { FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(0) } },12172 { /* => */ { FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1) } },12173 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12174 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12175 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12176 /*xcpt? */ false, false },12177 /*12178 * Infinity.12179 */12180 /*9 */{ { /*src2 */ { FP32_INF(0), FP32_0(0), FP32_INF(1), FP32_0(1), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(0) } },12181 { /*src1 */ { FP32_0(0), FP32_INF(0), FP32_0(0), FP32_INF(0), FP32_0(0), FP32_INF(1), FP32_0(0), FP32_INF(1) } },12182 { /* => */ { FP32_0(0), FP32_0(0), FP32_INF(1), FP32_0(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1) } },12183 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12184 /*128:out */ X86_MXCSR_XCPT_MASK,12185 /*256:out */ X86_MXCSR_XCPT_MASK,12186 /*xcpt? */ false, false },12187 { { /*src2 */ { FP32_INF(0), FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(0) } },12188 { /*src1 */ { FP32_0(0), FP32_INF(1), FP32_0(1), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(0), FP32_INF(1) } },12189 { /* => */ { FP32_0(0), FP32_INF(1), FP32_0(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1) } },12190 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,12191 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,12192 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,12193 /*xcpt? */ false, false },12194 { { /*src2 */ { FP32_INF(0), FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(0) } },12195 { /*src1 */ { FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(0), FP32_0(0), FP32_INF(1), FP32_0(0), FP32_INF(1) } },12196 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1) } },12197 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12198 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12199 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12200 /*xcpt? */ false, false },12201 { { /*src2 */ { FP32_INF(0), FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(0) } },12202 { /*src1 */ { FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(0), FP32_0(0), FP32_INF(1), FP32_0(0), FP32_INF(1) } },12203 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1) } },12204 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12205 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12206 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12207 /*xcpt? */ false, false },12208 { { /*src2 */ { FP32_INF(0), FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(0) } },12209 { /*src1 */ { FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(0), FP32_0(0), FP32_INF(1), FP32_0(0), FP32_INF(1) } },12210 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1) } },12211 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12212 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12213 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12214 /*xcpt? */ false, false },12215 { { /*src2 */ { FP32_INF(0), FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(0) } },12216 { /*src1 */ { FP32_INF(0), FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0), FP32_INF(0) } },12217 { /* => */ { FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0) } },12218 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,12219 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,12220 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,12221 /*xcpt? */ false, false },12222 { { /*src2 */ { FP32_INF(0), FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(0) } },12223 { /*src1 */ { FP32_INF(0), FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0), FP32_INF(0) } },12224 { /* => */ { FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0) } },12225 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12226 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12227 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12228 /*xcpt? */ false, false },12229 { { /*src2 */ { FP32_INF(0), FP32_NORM_V1(0), FP32_INF(1), FP32_NORM_V3(1), FP32_INF(1), FP32_NORM_V5(0), FP32_INF(1), FP32_NORM_V7(0) } },12230 { /*src1 */ { FP32_NORM_V0(0), FP32_INF(1), FP32_NORM_V2(0), FP32_INF(1), FP32_NORM_V4(1), FP32_INF(1), FP32_NORM_V6(0), FP32_INF(0) } },12231 { /* => */ { FP32_NORM_V0(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_NORM_V7(0) } },12232 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12233 /*128:out */ X86_MXCSR_XCPT_MASK,12234 /*256:out */ X86_MXCSR_XCPT_MASK,12235 /*xcpt? */ false, false },12236 { { /*src2 */ { FP32_INF(0), FP32_NORM_V1(0), FP32_INF(1), FP32_NORM_V3(1), FP32_INF(0), FP32_NORM_V5(0), FP32_INF(1), FP32_NORM_V7(0) } },12237 { /*src1 */ { FP32_NORM_V0(0), FP32_INF(1), FP32_NORM_V2(0), FP32_INF(0), FP32_NORM_V4(1), FP32_INF(1), FP32_NORM_V6(0), FP32_INF(0) } },12238 { /* => */ { FP32_NORM_V0(0), FP32_INF(1), FP32_INF(1), FP32_NORM_V3(1), FP32_NORM_V4(1), FP32_INF(1), FP32_INF(1), FP32_NORM_V7(0) } },12239 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12240 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12241 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12242 /*xcpt? */ false, false },12243 { { /*src2 */ { FP32_NORM_V7(0), FP32_INF(0), FP32_NORM_V5(0), FP32_INF(0), FP32_NORM_V3(0), FP32_INF(0), FP32_NORM_V1(0), FP32_INF(0) } },12244 { /*src1 */ { FP32_INF(1), FP32_NORM_V6(1), FP32_INF(0), FP32_NORM_V4(0), FP32_INF(0), FP32_NORM_V2(1), FP32_INF(1), FP32_NORM_V0(1) } },12245 { /* => */ { FP32_INF(1), FP32_NORM_V6(1), FP32_NORM_V5(0), FP32_NORM_V4(0), FP32_NORM_V3(0), FP32_NORM_V2(1), FP32_INF(1), FP32_NORM_V0(1) } },12246 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,12247 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,12248 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,12249 /*xcpt? */ false, false },12250 { { /*src2 */ { FP32_NORM_V7(0), FP32_INF(0), FP32_NORM_V5(1), FP32_INF(0), FP32_NORM_V3(1), FP32_INF(0), FP32_NORM_V1(1), FP32_INF(0) } },12251 { /*src1 */ { FP32_INF(0), FP32_NORM_V6(1), FP32_INF(0), FP32_NORM_V4(1), FP32_INF(0), FP32_NORM_V2(1), FP32_INF(0), FP32_NORM_V0(1) } },12252 { /* => */ { FP32_NORM_V7(0), FP32_NORM_V6(1), FP32_NORM_V5(1), FP32_NORM_V4(1), FP32_NORM_V3(1), FP32_NORM_V2(1), FP32_NORM_V1(1), FP32_NORM_V0(1) } },12253 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12254 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12255 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12256 /*xcpt? */ false, false },12257 /*12258 * Normals.12259 */12260 /*20*/{ { /*src2 */ { FP32_NORM_MAX(0), FP32_0(0), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_0(1), FP32_NORM_MAX(1), FP32_NORM_MAX(1) } },12261 { /*src1 */ { FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_0(1), FP32_NORM_MAX(0) } },12262 { /* => */ { FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(1) } },12263 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12264 /*128:out */ X86_MXCSR_XCPT_MASK,12265 /*256:out */ X86_MXCSR_XCPT_MASK,12266 /*xcpt? */ false, false },12267 { { /*src2 */ { FP32_NORM_MIN(0), FP32_0(0), FP32_NORM_MIN(0), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_0(1), FP32_NORM_MIN(1), FP32_NORM_MIN(1) } },12268 { /*src1 */ { FP32_NORM_MIN(0), FP32_NORM_MIN(0), FP32_0(0), FP32_0(0), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_0(1), FP32_NORM_MIN(0) } },12269 { /* => */ { FP32_NORM_MIN(0), FP32_0(0), FP32_0(0), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_NORM_MIN(1) } },12270 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12271 /*128:out */ X86_MXCSR_XCPT_MASK,12272 /*256:out */ X86_MXCSR_XCPT_MASK,12273 /*xcpt? */ false, false },12274 { { /*src2 */ { FP32_NORM_MIN(0), FP32_NORM_MIN(0), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1) } },12275 { /*src1 */ { FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MIN(0), FP32_NORM_MIN(1), FP32_NORM_MIN(0), FP32_NORM_MIN(1) } },12276 { /* => */ { FP32_NORM_MIN(0), FP32_NORM_MAX(1), FP32_NORM_MIN(1), FP32_NORM_MAX(1), FP32_NORM_MIN(0), FP32_NORM_MIN(1), FP32_NORM_MAX(1), FP32_NORM_MAX(1) } },12277 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12278 /*128:out */ X86_MXCSR_XCPT_MASK,12279 /*256:out */ X86_MXCSR_XCPT_MASK,12280 /*xcpt? */ false, false },12281 { { /*src2 */ { FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MAX(0), FP32_NORM_SAFE_INT_MAX(0), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MAX(1) } },12282 { /*src1 */ { FP32_NORM_SAFE_INT_MAX(0), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MAX(0), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(1) } },12283 { /* => */ { FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MAX(1) } },12284 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12285 /*128:out */ X86_MXCSR_XCPT_MASK,12286 /*256:out */ X86_MXCSR_XCPT_MASK,12287 /*xcpt? */ false, false },12288 { { /*src2 */ { FP32_V(0, 0x600000, 0x7f)/* 1.75*/, FP32_V(0, 0, 0x7d)/*0.25*/, FP32_V(0, 0x600000, 0x7f)/* 1.75*/, FP32_V(0, 0, 0x7d)/*0.25*/, FP32_V(0, 0x600000, 0x7f)/* 1.75*/, FP32_V(0, 0, 0x7d)/* 0.25*/, FP32_V(0, 0x600000, 0x7f)/*1.75*/, FP32_V(1, 0, 0x7d)/*-0.25*/ } },12289 { /*src1 */ { FP32_V(1, 0, 0x7d)/*-0.25*/, FP32_V(0, 0, 0x7e)/*0.50*/, FP32_V(1, 0, 0x7d)/*-0.25*/, FP32_V(0, 0, 0x7e)/*0.50*/, FP32_V(1, 0x600000, 0x7f)/*-1.75*/, FP32_V(1, 0, 0x7e)/*-0.50*/, FP32_V(1, 0, 0x7d)/*0.25*/, FP32_V(1, 0, 0x7e)/*-0.50*/ } },12290 { /* => */ { FP32_V(1, 0, 0x7d)/*-0.25*/, FP32_V(0, 0, 0x7d)/*0.25*/, FP32_V(1, 0, 0x7d)/*-0.25*/, FP32_V(0, 0, 0x7d)/*0.25*/, FP32_V(1, 0x600000, 0x7f)/*-1.75*/, FP32_V(1, 0, 0x7e)/*-0.50*/, FP32_V(1, 0, 0x7d)/*0.25*/, FP32_V(1, 0, 0x7e)/*-0.50*/ } },12291 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12292 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12293 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12294 /*xcpt? */ false, false },12295 { { /*src2 */ { FP32_NORM_MAX(0), FP32_NORM_V1(0), FP32_NORM_V2(1), FP32_NORM_V3(1), FP32_NORM_V5(0), FP32_0(1), FP32_NORM_V5(1), FP32_0(0) } },12296 { /*src1 */ { FP32_NORM_V1(0), FP32_NORM_V1(1), FP32_NORM_V2(0), FP32_NORM_V3(1), FP32_0(1), FP32_NORM_V6(0), FP32_0(1), FP32_NORM_V7(1) } },12297 { /* => */ { FP32_NORM_V1(0), FP32_NORM_V1(1), FP32_NORM_V2(1), FP32_NORM_V3(1), FP32_0(1), FP32_0(1), FP32_NORM_V5(1), FP32_NORM_V7(1) } },12298 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12299 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12300 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12301 /*xcpt? */ false, false },12302 { { /*src2 */ { FP32_V(0, 0x5ca5b8, 0x93)/*1807543*/, FP32_V(0, 0x600000, 0x81)/* 7*/, FP32_V(0, 0x2514d6, 0x93)/*1352346.75*/, FP32_V(0, 0x5c0000, 0x84)/* 55*/, FP32_V(0, 0x2514d6, 0x93)/*1352346.75*/, FP32_V(1, 0x534000, 0x86)/*-211.25*/, FP32_V(0, 0x74429f, 0x97)/*32015678*/, FP32_1(1) } },12303 { /*src1 */ { FP32_V(0, 0x1ea980, 0x8f)/* 81235*/, FP32_V(0, 0x5c0000, 0x84)/*55*/, FP32_V(0, 0x7c9000, 0x88)/* 1010.25*/, FP32_V(1, 0x600000, 0x81)/* -7*/, FP32_V(0, 0x253468, 0x93)/*1353357.00*/, FP32_1(1), FP32_V(0, 0x712060, 0x92)/* 987654*/, FP32_1(0) } },12304 { /* => */ { FP32_V(0, 0x1ea980, 0x8f)/* 81235*/, FP32_V(0, 0x600000, 0x81)/* 7*/, FP32_V(0, 0x7c9000, 0x88)/* 1010.25*/, FP32_V(1, 0x600000, 0x81)/* -7*/, FP32_V(0, 0x2514d6, 0x93)/*1352346.75*/, FP32_V(1, 0x534000, 0x86)/*-211.25*/, FP32_V(0, 0x712060, 0x92)/* 987654*/, FP32_1(1) } },12305 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12306 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12307 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12308 /*xcpt? */ false, false },12309 { { /*src2 */ { FP32_V(0, 0x600000, 0x7e)/* 0.875*/, FP32_V(0, 0x3ce348, 0x90)/*193421.125*/, FP32_V(0, 0x6423f2, 0x92)/*934463.125*/, FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MIN(0), FP32_V(0, 0x16b43a, 0x93)/*1234567.25*/, FP32_V(0, 0x792318, 0x91)/*510232.75*/, FP32_V(0, 0x600000, 0x7e)/* 0.875*/ } },12310 { /*src1 */ { FP32_V(0, 0x769b50, 0x92)/*1010101.000*/, FP32_V(0, 0x430ebc, 0x91)/*399477.875*/, FP32_V(0, 0x52e0b4, 0x92)/*863755.250*/, FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MAX(1), FP32_V(0, 0x00c6d3, 0x94)/*2109876.75*/, FP32_V(1, 0x316740, 0x8e)/*-45415.25*/, FP32_V(1, 0, 0x7d)/*-0.250*/ } },12311 { /* => */ { FP32_V(0, 0x600000, 0x7e)/* 0.875*/, FP32_V(0, 0x3ce348, 0x90)/*193421.125*/, FP32_V(0, 0x52e0b4, 0x92)/*863755.250*/, FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MAX(1), FP32_V(0, 0x16b43a, 0x93)/*1234567.25*/, FP32_V(1, 0x316740, 0x8e)/*-45415.25*/, FP32_V(1, 0, 0x7d)/*-0.250*/ } },12312 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12313 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12314 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12315 /*xcpt? */ false, false },12316 { { /*src2 */ { FP32_V(0, 0x490fda, 0x80)/*3.1415926*/, FP32_V(0, 0x620b2e, 0x92)/*925874.9*/, FP32_V(0, 0x5dd520, 0x8e)/* 56789.125*/, FP32_V(1, 0x40e6b6, 0x8c)/*-12345.678*/, FP32_V(1, 0x490fda, 0x80)/*-3.1415926*/, FP32_V(1, 0x620b2e, 0x92)/*-925874.8*/, FP32_V(0, 0x5dd520, 0x8e)/*56789.125*/, FP32_V(0, 0x40e6b6, 0x8c)/*12345.678*/ } },12317 { /*src1 */ { FP32_V(0, 0x490fdb, 0x80)/*3.1415927*/, FP32_V(0, 0x620b2d, 0x92)/*925874.8*/, FP32_V(1, 0x5dd521, 0x8e)/*-56789.127*/, FP32_V(1, 0x40e6b7, 0x8c)/*-12345.679*/, FP32_V(1, 0x490fdb, 0x80)/*-3.1415927*/, FP32_V(0, 0x620b2d, 0x92)/* 925874.9*/, FP32_V(0, 0x5dd521, 0x8e)/*56789.127*/, FP32_V(0, 0x40e6b7, 0x8c)/*12345.679*/ } },12318 { /* => */ { FP32_V(0, 0x490fda, 0x80)/*3.1415926*/, FP32_V(0, 0x620b2d, 0x92)/*925874.8*/, FP32_V(1, 0x5dd521, 0x8e)/*-56789.127*/, FP32_V(1, 0x40e6b7, 0x8c)/*-12345.679*/, FP32_V(1, 0x490fdb, 0x80)/*-3.1415927*/, FP32_V(1, 0x620b2e, 0x92)/*-925874.8*/, FP32_V(0, 0x5dd520, 0x8e)/*56789.125*/, FP32_V(0, 0x40e6b6, 0x8c)/*12345.678*/ } },12319 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12320 /*128:out */ X86_MXCSR_XCPT_MASK,12321 /*256:out */ X86_MXCSR_XCPT_MASK,12322 /*xcpt? */ false, false },12323 /** @todo More Normals. */12324 /*12325 * Denormals.12326 */12327 /*29*/{ { /*src2 */ { FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12328 { /*src1 */ { FP32_0(0), FP32_DENORM_MAX(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(1) } },12329 { /* => */ { FP32_0(0), FP32_DENORM_MAX(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(1) } },12330 /*mxcsr:in */ 0,12331 /*128:out */ X86_MXCSR_DE,12332 /*256:out */ X86_MXCSR_DE,12333 /*xcpt? */ true, true },12334 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12335 { /*src1 */ { FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0) } },12336 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12337 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12338 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12339 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12340 /*xcpt? */ false, false },12341 { { /*src2 */ { FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MAX(0) } },12342 { /*src1 */ { FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0) } },12343 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12344 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,12345 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,12346 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,12347 /*xcpt? */ false, false },12348 { { /*src2 */ { FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12349 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12350 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12351 /*mxcsr:in */ 0,12352 /*128:out */ X86_MXCSR_DE,12353 /*256:out */ X86_MXCSR_DE,12354 /*xcpt? */ true, true },12355 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(1) } },12356 { /*src1 */ { FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12357 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } },12358 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,12359 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,12360 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,12361 /*xcpt? */ false, false },12362 { { /*src2 */ { FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MAX(0) } },12363 { /*src1 */ { FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0) } },12364 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12365 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,12366 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,12367 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,12368 /*xcpt? */ false, false },12369 /** @todo More Denormals. */12370 /*35*/ FP32_TABLE_D9_PS_INVALIDS12371 };12372 12373 #define PASS_s_aValues RT_ELEMENTS(s_aValues), (BS3CPUINSTR4_TEST1_VALUES_T *)s_aValues12374 static BS3CPUINSTR4_TEST1_T const s_aTests16[] =12375 {12376 12376 { bs3CpuInstr4_minps_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, 1, 1, 2, PASS_s_aValues }, 12377 12377 { bs3CpuInstr4_minps_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, 1, 1, 255, PASS_s_aValues }, … … 12417 12417 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 12418 12418 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 12419 return bs3CpuInstr4_WorkerTestType1 (bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,12419 return bs3CpuInstr4_WorkerTestType1A(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 12420 12420 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 12421 12421 }
Note:
See TracChangeset
for help on using the changeset viewer.