Changeset 106780 in vbox for trunk/src/VBox/ValidationKit
- Timestamp:
- Oct 30, 2024 5:25:00 AM (6 months ago)
- svn:sync-xref-src-repo-rev:
- 165672
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-4.c32
r106769 r106780 16483 16483 /*256:out */ -1 }, 16484 16484 { { /* unused */ { FP32_ROW_UNUSED } }, 16485 { /* src xmm */ { FP32_V(0,0x7120 0d,0x8f), FP32_V(1,0x71200d,0x8f), FP32_RAND_x6_V2 } },16486 /*123456. 1*/ /*-123456.1*/16487 { /* => mm */ { FP32_INT_C(12345 6), FP32_INT_C(-123456), FP32_x6_UNUSED } },16485 { /* src xmm */ { FP32_V(0,0x712073,0x8f), FP32_V(1,0x712073,0x8f), FP32_RAND_x6_V2 } }, 16486 /*123456.9*/ /*-123456.9*/ 16487 { /* => mm */ { FP32_INT_C(123457), FP32_INT_C(-123457), FP32_x6_UNUSED } }, 16488 16488 /*mxcsr:in */ 0, 16489 16489 /*128:out */ X86_MXCSR_PE, 16490 16490 /*256:out */ -1 }, 16491 16491 { { /* unused */ { FP32_ROW_UNUSED } }, 16492 { /* src xmm */ { FP32_V(0,0x7120 0d,0x8f), FP32_V(1,0x71200d,0x8f), FP32_RAND_x6_V2 } },16493 /*123456. 1*/ /*-123456.1*/16492 { /* src xmm */ { FP32_V(0,0x712073,0x8f), FP32_V(1,0x712073,0x8f), FP32_RAND_x6_V2 } }, 16493 /*123456.9*/ /*-123456.9*/ 16494 16494 { /* => mm */ { FP32_INT_C(123456), FP32_INT_C(-123457), FP32_x6_UNUSED } }, 16495 16495 /*mxcsr:in */ X86_MXCSR_RC_DOWN, … … 16497 16497 /*256:out */ -1 }, 16498 16498 { { /* unused */ { FP32_ROW_UNUSED } }, 16499 { /* src xmm */ { FP32_V(0,0x7120 0d,0x8f), FP32_V(1,0x71200d,0x8f), FP32_RAND_x6_V2 } },16500 /*123456. 1*/ /*-123456.1*/16499 { /* src xmm */ { FP32_V(0,0x712073,0x8f), FP32_V(1,0x712073,0x8f), FP32_RAND_x6_V2 } }, 16500 /*123456.9*/ /*-123456.9*/ 16501 16501 { /* => mm */ { FP32_INT_C(123457), FP32_INT_C(-123456), FP32_x6_UNUSED } }, 16502 16502 /*mxcsr:in */ X86_MXCSR_RC_UP, … … 16504 16504 /*256:out */ -1 }, 16505 16505 { { /* unused */ { FP32_ROW_UNUSED } }, 16506 { /* src xmm */ { FP32_V(0,0x7120 0d,0x8f), FP32_V(1,0x71200d,0x8f), FP32_RAND_x6_V2 } },16507 /*123456. 1*/ /*-123456.1*/16506 { /* src xmm */ { FP32_V(0,0x712073,0x8f), FP32_V(1,0x712073,0x8f), FP32_RAND_x6_V2 } }, 16507 /*123456.9*/ /*-123456.9*/ 16508 16508 { /* => mm */ { FP32_INT_C(123456), FP32_INT_C(-123456), FP32_x6_UNUSED } }, 16509 16509 /*mxcsr:in */ X86_MXCSR_RC_ZERO, … … 16624 16624 /*256:out */ -1 }, 16625 16625 { { /* unused */ { FP32_ROW_UNUSED } }, 16626 { /* src xmm */ { FP32_V(0,0x7120 0d,0x8f), FP32_V(1,0x71200d,0x8f), FP32_RAND_x6_V2 } },16627 /*123456. 1*/ /*-123456.1*/16626 { /* src xmm */ { FP32_V(0,0x712073,0x8f), FP32_V(1,0x712073,0x8f), FP32_RAND_x6_V2 } }, 16627 /*123456.9*/ /*-123456.9*/ 16628 16628 { /* => mm */ { FP32_INT_C(123456), FP32_INT_C(-123456), FP32_x6_UNUSED } }, 16629 16629 /*mxcsr:in */ 0, … … 16631 16631 /*256:out */ -1 }, 16632 16632 { { /* unused */ { FP32_ROW_UNUSED } }, 16633 { /* src xmm */ { FP32_V(0,0x7120 0d,0x8f), FP32_V(1,0x71200d,0x8f), FP32_RAND_x6_V2 } },16634 /*123456. 1*/ /*-123456.1*/16633 { /* src xmm */ { FP32_V(0,0x712073,0x8f), FP32_V(1,0x712073,0x8f), FP32_RAND_x6_V2 } }, 16634 /*123456.9*/ /*-123456.9*/ 16635 16635 { /* => mm */ { FP32_INT_C(123456), FP32_INT_C(-123456), FP32_x6_UNUSED } }, 16636 16636 /*mxcsr:in */ X86_MXCSR_RC_DOWN, … … 16638 16638 /*256:out */ -1 }, 16639 16639 { { /* unused */ { FP32_ROW_UNUSED } }, 16640 { /* src xmm */ { FP32_V(0,0x7120 0d,0x8f), FP32_V(1,0x71200d,0x8f), FP32_RAND_x6_V2 } },16641 /*123456. 1*/ /*-123456.1*/16640 { /* src xmm */ { FP32_V(0,0x712073,0x8f), FP32_V(1,0x712073,0x8f), FP32_RAND_x6_V2 } }, 16641 /*123456.9*/ /*-123456.9*/ 16642 16642 { /* => mm */ { FP32_INT_C(123456), FP32_INT_C(-123456), FP32_x6_UNUSED } }, 16643 16643 /*mxcsr:in */ X86_MXCSR_RC_UP, … … 16645 16645 /*256:out */ -1 }, 16646 16646 { { /* unused */ { FP32_ROW_UNUSED } }, 16647 { /* src xmm */ { FP32_V(0,0x7120 0d,0x8f), FP32_V(1,0x71200d,0x8f), FP32_RAND_x6_V2 } },16648 /*123456. 1*/ /*-123456.1*/16647 { /* src xmm */ { FP32_V(0,0x712073,0x8f), FP32_V(1,0x712073,0x8f), FP32_RAND_x6_V2 } }, 16648 /*123456.9*/ /*-123456.9*/ 16649 16649 { /* => mm */ { FP32_INT_C(123456), FP32_INT_C(-123456), FP32_x6_UNUSED } }, 16650 16650 /*mxcsr:in */ X86_MXCSR_RC_ZERO, … … 17079 17079 /*256:out */ -1 }, 17080 17080 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17081 { /* src xmm */ { FP32_V(0,0x71200d,0x8f)/*123456.1*/, FP32_RAND_x7_V2 } }, 17081 { /* src xmm */ { FP32_V(0,0x712073,0x8f)/*123456.9*/, FP32_RAND_x7_V2 } }, 17082 { /* => r32 */ { FP32_INT_C(123457), FP32_x7_UNUSED } }, 17083 /*mxcsr:in */ 0, 17084 /*128:out */ X86_MXCSR_PE, 17085 /*256:out */ -1 }, 17086 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17087 { /* src xmm */ { FP32_V(1,0x712073,0x8f)/*-123456.9*/, FP32_RAND_x7_V2 } }, 17088 { /* => r32 */ { FP32_INT_C(-123457), FP32_x7_UNUSED } }, 17089 /*mxcsr:in */ 0, 17090 /*128:out */ X86_MXCSR_PE, 17091 /*256:out */ -1 }, 17092 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17093 { /* src xmm */ { FP32_V(0,0x712073,0x8f)/*123456.9*/, FP32_RAND_x7_V2 } }, 17082 17094 { /* => r32 */ { FP32_INT_C(123456), FP32_x7_UNUSED } }, 17083 /*mxcsr:in */ 0,17084 /*128:out */ X86_MXCSR_PE,17085 /*256:out */ -1 },17086 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } },17087 { /* src xmm */ { FP32_V(1,0x71200d,0x8f)/*-123456.1*/, FP32_RAND_x7_V2 } },17088 { /* => r32 */ { FP32_INT_C(-123456), FP32_x7_UNUSED } },17089 /*mxcsr:in */ 0,17090 /*128:out */ X86_MXCSR_PE,17091 /*256:out */ -1 },17092 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } },17093 { /* src xmm */ { FP32_V(0,0x71200d,0x8f)/*123456.1*/, FP32_RAND_x7_V2 } },17094 { /* => r32 */ { FP32_INT_C(123456), FP32_x7_UNUSED } },17095 17095 /*mxcsr:in */ X86_MXCSR_RC_DOWN, 17096 17096 /*128:out */ X86_MXCSR_RC_DOWN | X86_MXCSR_PE, 17097 17097 /*256:out */ -1 }, 17098 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED} },17099 { /* src xmm */ { FP32_V(1,0x7120 0d,0x8f)/*-123456.1*/, FP32_RAND_x7_V2 } },17100 { /* => r32 */ { FP32_INT_C(-123457), FP32_x7_UNUSED} },17098 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17099 { /* src xmm */ { FP32_V(1,0x712073,0x8f)/*-123456.9*/, FP32_RAND_x7_V2 } }, 17100 { /* => r32 */ { FP32_INT_C(-123457), FP32_x7_UNUSED } }, 17101 17101 /*mxcsr:in */ X86_MXCSR_RC_DOWN, 17102 17102 /*128:out */ X86_MXCSR_RC_DOWN | X86_MXCSR_PE, 17103 17103 /*256:out */ -1 }, 17104 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED} },17105 { /* src xmm */ { FP32_V(0,0x7120 0d,0x8f)/*123456.1*/, FP32_RAND_x7_V2 } },17106 { /* => r32 */ { FP32_INT_C(123457), FP32_x7_UNUSED} },17104 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17105 { /* src xmm */ { FP32_V(0,0x712073,0x8f)/*123456.9*/, FP32_RAND_x7_V2 } }, 17106 { /* => r32 */ { FP32_INT_C(123457), FP32_x7_UNUSED } }, 17107 17107 /*mxcsr:in */ X86_MXCSR_RC_UP, 17108 17108 /*128:out */ X86_MXCSR_RC_UP | X86_MXCSR_PE, 17109 17109 /*256:out */ -1 }, 17110 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED} },17111 { /* src xmm */ { FP32_V(1,0x7120 0d,0x8f)/*-123456.1*/, FP32_RAND_x7_V2 } },17112 { /* => r32 */ { FP32_INT_C(-123456), FP32_x7_UNUSED} },17110 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17111 { /* src xmm */ { FP32_V(1,0x712073,0x8f)/*-123456.9*/, FP32_RAND_x7_V2 } }, 17112 { /* => r32 */ { FP32_INT_C(-123456), FP32_x7_UNUSED } }, 17113 17113 /*mxcsr:in */ X86_MXCSR_RC_UP, 17114 17114 /*128:out */ X86_MXCSR_RC_UP | X86_MXCSR_PE, 17115 17115 /*256:out */ -1 }, 17116 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED} },17117 { /* src xmm */ { FP32_V(0,0x7120 0d,0x8f)/*123456.1*/, FP32_RAND_x7_V2 } },17118 { /* => r32 */ { FP32_INT_C(123456), FP32_x7_UNUSED} },17116 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17117 { /* src xmm */ { FP32_V(0,0x712073,0x8f)/*123456.9*/, FP32_RAND_x7_V2 } }, 17118 { /* => r32 */ { FP32_INT_C(123456), FP32_x7_UNUSED } }, 17119 17119 /*mxcsr:in */ X86_MXCSR_RC_ZERO, 17120 17120 /*128:out */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE, 17121 17121 /*256:out */ -1 }, 17122 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED} },17123 { /* src xmm */ { FP32_V(1,0x7120 0d,0x8f)/*-123456.1*/, FP32_RAND_x7_V2 } },17124 { /* => r32 */ { FP32_INT_C(-123456), FP32_x7_UNUSED} },17122 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17123 { /* src xmm */ { FP32_V(1,0x712073,0x8f)/*-123456.9*/, FP32_RAND_x7_V2 } }, 17124 { /* => r32 */ { FP32_INT_C(-123456), FP32_x7_UNUSED } }, 17125 17125 /*mxcsr:in */ X86_MXCSR_RC_ZERO, 17126 17126 /*128:out */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE, 17127 17127 /*256:out */ -1 }, 17128 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED} },17128 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17129 17129 { /* src xmm */ { FP32_V(1,0x766666,0x7e)/*-0.9*/, FP32_RAND_x7_V2 } }, 17130 { /* => r32 */ { FP32_INT_C(-1), FP32_x7_UNUSED} },17130 { /* => r32 */ { FP32_INT_C(-1), FP32_x7_UNUSED } }, 17131 17131 /*mxcsr:in */ X86_MXCSR_FZ, 17132 17132 /*128:out */ X86_MXCSR_PE | X86_MXCSR_FZ, 17133 17133 /*256:out */ -1 }, 17134 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED} },17134 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17135 17135 { /* src xmm */ { FP32_V(0,0x766666,0x7e)/*0.9*/, FP32_RAND_x7_V2 } }, 17136 { /* => r32 */ { FP32_INT_C(1), FP32_x7_UNUSED} },17136 { /* => r32 */ { FP32_INT_C(1), FP32_x7_UNUSED } }, 17137 17137 /*mxcsr:in */ X86_MXCSR_FZ, 17138 17138 /*128:out */ X86_MXCSR_PE | X86_MXCSR_FZ, 17139 /*256:out */ -1 }, 17140 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17141 { /* src xmm */ { FP32_V(1,0x766666,0x7e)/*-0.9*/, FP32_RAND_x7_V2 } }, 17142 { /* => r32 */ { FP32_INT_C(-1), FP32_x7_UNUSED } }, 17143 /*mxcsr:in */ X86_MXCSR_RC_DOWN, 17144 /*128:out */ X86_MXCSR_PE | X86_MXCSR_RC_DOWN, 17145 /*256:out */ -1 }, 17146 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17147 { /* src xmm */ { FP32_V(0,0x766666,0x7e)/*0.9*/, FP32_RAND_x7_V2 } }, 17148 { /* => r32 */ { FP32_INT_C(1), FP32_x7_UNUSED } }, 17149 /*mxcsr:in */ X86_MXCSR_RC_UP, 17150 /*128:out */ X86_MXCSR_PE | X86_MXCSR_RC_UP, 17139 17151 /*256:out */ -1 }, 17140 17152 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, … … 17153 17165 * Denormals. 17154 17166 */ 17155 /* 18*/{ { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } },17167 /*20*/{ { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17156 17168 { /* src xmm */ { FP32_DENORM_MAX(0), FP32_RAND_x7_V2 } }, 17157 17169 { /* => r32 */ { FP32_INT_C(0), FP32_x7_UNUSED } }, … … 17168 17180 * Overflow (Underflow not possible). 17169 17181 */ 17170 /*2 0*/{ { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } },17182 /*22*/{ { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17171 17183 { /* src xmm */ { FP32_NORM_MAX(0), FP32_RAND_x7_V2 } }, 17172 17184 { /* => r32 */ { FP32_INT_INDEFINITE, FP32_x7_UNUSED } }, … … 17183 17195 * Invalids. 17184 17196 */ 17185 /*2 2*/{ { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } },17197 /*24*/{ { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17186 17198 { /* src xmm */ { FP32_QNAN(0), FP32_RAND_x7_V2 } }, 17187 17199 { /* => r32 */ { FP32_INT_INDEFINITE, FP32_x7_UNUSED } }, … … 17232 17244 */ 17233 17245 /* 4*/{ { /* unused */ { FP32_ROW_UNUSED } }, 17234 { /* src xmm */ { FP32_V(0, 17235 { /* => r64 */ { FP32_INT64_C(123456), 17246 { /* src xmm */ { FP32_V(0,0x712000,0x8f), FP32_RAND_x7_V0 } }, 17247 { /* => r64 */ { FP32_INT64_C(123456), FP32_x6_UNUSED } }, 17236 17248 /*mxcsr:in */ 0, 17237 17249 /*128:out */ 0, 17238 17250 /*256:out */ -1 }, 17239 17251 { { /* unused */ { FP32_ROW_UNUSED } }, 17240 { /* src xmm */ { FP32_V(1, 17241 { /* => r64 */ { FP32_INT64_C(-123456), 17252 { /* src xmm */ { FP32_V(1,0x712000,0x8f), FP32_RAND_x7_V0 } }, 17253 { /* => r64 */ { FP32_INT64_C(-123456), FP32_x6_UNUSED } }, 17242 17254 /*mxcsr:in */ 0, 17243 17255 /*128:out */ 0, 17244 17256 /*256:out */ -1 }, 17245 17257 { { /* unused */ { FP32_ROW_UNUSED } }, 17246 { /* src xmm */ { FP32_V(0, 0x71200d,0x8f)/*123456.1*/, FP32_RAND_x7_V2 } },17247 { /* => r64 */ { FP32_INT64_C(12345 6),FP32_x6_UNUSED } },17258 { /* src xmm */ { FP32_V(0,0x712073,0x8f)/*123456.9*/, FP32_RAND_x7_V2 } }, 17259 { /* => r64 */ { FP32_INT64_C(123457), FP32_x6_UNUSED } }, 17248 17260 /*mxcsr:in */ 0, 17249 17261 /*128:out */ X86_MXCSR_PE, 17250 17262 /*256:out */ -1 }, 17251 17263 { { /* unused */ { FP32_ROW_UNUSED } }, 17252 { /* src xmm */ { FP32_V(1, 0x71200d,0x8f)/*-123456.1*/, FP32_RAND_x7_V2 } },17253 { /* => r64 */ { FP32_INT64_C(-12345 6),FP32_x6_UNUSED } },17264 { /* src xmm */ { FP32_V(1,0x712073,0x8f)/*-123456.9*/, FP32_RAND_x7_V2 } }, 17265 { /* => r64 */ { FP32_INT64_C(-123457), FP32_x6_UNUSED } }, 17254 17266 /*mxcsr:in */ 0, 17255 17267 /*128:out */ X86_MXCSR_PE, 17256 17268 /*256:out */ -1 }, 17257 17269 { { /* unused */ { FP32_ROW_UNUSED } }, 17258 { /* src xmm */ { FP32_V(0, 0x71200d,0x8f)/*123456.1*/, FP32_RAND_x7_V2 } },17259 { /* => r64 */ { FP32_INT64_C(123456), 17270 { /* src xmm */ { FP32_V(0,0x712073,0x8f)/*123456.9*/, FP32_RAND_x7_V2 } }, 17271 { /* => r64 */ { FP32_INT64_C(123456), FP32_x6_UNUSED } }, 17260 17272 /*mxcsr:in */ X86_MXCSR_RC_DOWN, 17261 17273 /*128:out */ X86_MXCSR_RC_DOWN | X86_MXCSR_PE, 17262 17274 /*256:out */ -1 }, 17263 17275 { { /* unused */ { FP32_ROW_UNUSED } }, 17264 { /* src xmm */ { FP32_V(1, 0x71200d,0x8f)/*-123456.1*/, FP32_RAND_x7_V2 } },17265 { /* => r64 */ { FP32_INT64_C(-123457), 17276 { /* src xmm */ { FP32_V(1,0x712073,0x8f)/*-123456.9*/, FP32_RAND_x7_V2 } }, 17277 { /* => r64 */ { FP32_INT64_C(-123457), FP32_x6_UNUSED } }, 17266 17278 /*mxcsr:in */ X86_MXCSR_RC_DOWN, 17267 17279 /*128:out */ X86_MXCSR_RC_DOWN | X86_MXCSR_PE, 17268 17280 /*256:out */ -1 }, 17269 17281 { { /* unused */ { FP32_ROW_UNUSED } }, 17270 { /* src xmm */ { FP32_V(0, 0x71200d,0x8f)/*123456.1*/, FP32_RAND_x7_V2 } },17271 { /* => r64 */ { FP32_INT64_C(123457), 17282 { /* src xmm */ { FP32_V(0,0x712073,0x8f)/*123456.9*/, FP32_RAND_x7_V2 } }, 17283 { /* => r64 */ { FP32_INT64_C(123457), FP32_x6_UNUSED } }, 17272 17284 /*mxcsr:in */ X86_MXCSR_RC_UP, 17273 17285 /*128:out */ X86_MXCSR_RC_UP | X86_MXCSR_PE, 17274 17286 /*256:out */ -1 }, 17275 17287 { { /* unused */ { FP32_ROW_UNUSED } }, 17276 { /* src xmm */ { FP32_V(1, 0x71200d,0x8f)/*-123456.1*/, FP32_RAND_x7_V2 } },17277 { /* => r64 */ { FP32_INT64_C(-123456), 17288 { /* src xmm */ { FP32_V(1,0x712073,0x8f)/*-123456.9*/, FP32_RAND_x7_V2 } }, 17289 { /* => r64 */ { FP32_INT64_C(-123456), FP32_x6_UNUSED } }, 17278 17290 /*mxcsr:in */ X86_MXCSR_RC_UP, 17279 17291 /*128:out */ X86_MXCSR_RC_UP | X86_MXCSR_PE, 17280 17292 /*256:out */ -1 }, 17281 17293 { { /* unused */ { FP32_ROW_UNUSED } }, 17282 { /* src xmm */ { FP32_V(0, 0x71200d,0x8f)/*123456.1*/, FP32_RAND_x7_V2 } },17283 { /* => r64 */ { FP32_INT64_C(123456), 17294 { /* src xmm */ { FP32_V(0,0x712073,0x8f)/*123456.9*/, FP32_RAND_x7_V2 } }, 17295 { /* => r64 */ { FP32_INT64_C(123456), FP32_x6_UNUSED } }, 17284 17296 /*mxcsr:in */ X86_MXCSR_RC_ZERO, 17285 17297 /*128:out */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE, 17286 17298 /*256:out */ -1 }, 17287 17299 { { /* unused */ { FP32_ROW_UNUSED } }, 17288 { /* src xmm */ { FP32_V(1, 0x71200d,0x8f)/*-123456.1*/, FP32_RAND_x7_V2 } },17289 { /* => r64 */ { FP32_INT64_C(-123456), 17300 { /* src xmm */ { FP32_V(1,0x712073,0x8f)/*-123456.9*/, FP32_RAND_x7_V2 } }, 17301 { /* => r64 */ { FP32_INT64_C(-123456), FP32_x6_UNUSED } }, 17290 17302 /*mxcsr:in */ X86_MXCSR_RC_ZERO, 17291 17303 /*128:out */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE, 17292 17304 /*256:out */ -1 }, 17293 17305 { { /* unused */ { FP32_ROW_UNUSED } }, 17294 { /* src xmm */ { FP32_V(1, 17295 { /* => r64 */ { FP32_INT64_C(-1), 17306 { /* src xmm */ { FP32_V(1,0x766666,0x7e)/*-0.9*/, FP32_RAND_x7_V2 } }, 17307 { /* => r64 */ { FP32_INT64_C(-1), FP32_x6_UNUSED } }, 17296 17308 /*mxcsr:in */ X86_MXCSR_FZ, 17297 17309 /*128:out */ X86_MXCSR_PE | X86_MXCSR_FZ, 17298 17310 /*256:out */ -1 }, 17299 17311 { { /* unused */ { FP32_ROW_UNUSED } }, 17300 { /* src xmm */ { FP32_V(0, 17301 { /* => r64 */ { FP32_INT64_C(1), 17312 { /* src xmm */ { FP32_V(0,0x766666,0x7e)/*0.9*/, FP32_RAND_x7_V2 } }, 17313 { /* => r64 */ { FP32_INT64_C(1), FP32_x6_UNUSED } }, 17302 17314 /*mxcsr:in */ X86_MXCSR_FZ, 17303 17315 /*128:out */ X86_MXCSR_PE | X86_MXCSR_FZ, 17316 /*256:out */ -1 }, 17317 { { /* unused */ { FP32_ROW_UNUSED } }, 17318 { /* src xmm */ { FP32_V(1,0x766666,0x7e)/*-0.9*/, FP32_RAND_x7_V2 } }, 17319 { /* => r64 */ { FP32_INT64_C(-1), FP32_x6_UNUSED } }, 17320 /*mxcsr:in */ X86_MXCSR_RC_DOWN, 17321 /*128:out */ X86_MXCSR_PE | X86_MXCSR_RC_DOWN, 17322 /*256:out */ -1 }, 17323 { { /* unused */ { FP32_ROW_UNUSED } }, 17324 { /* src xmm */ { FP32_V(0,0x766666,0x7e)/*0.9*/, FP32_RAND_x7_V2 } }, 17325 { /* => r64 */ { FP32_INT64_C(1), FP32_x6_UNUSED } }, 17326 /*mxcsr:in */ X86_MXCSR_RC_UP, 17327 /*128:out */ X86_MXCSR_PE | X86_MXCSR_RC_UP, 17304 17328 /*256:out */ -1 }, 17305 17329 { { /* unused */ { FP32_ROW_UNUSED } }, … … 17315 17339 /*128:out */ 0, 17316 17340 /*256:out */ -1 }, 17341 { { /* unused */ { FP32_ROW_UNUSED } }, 17342 { /* src xmm */ { FP32_V(0,0x79ccd8,0xbd)/*8999999652602314752.0,*/, FP32_RAND_x7_V2 } }, 17343 { /* => r64 */ { FP32_INT64_C(8999999652602314752), FP32_x6_UNUSED } }, 17344 /*mxcsr:in */ 0, 17345 /*128:out */ 0, 17346 /*256:out */ -1 }, 17347 { { /* unused */ { FP32_ROW_UNUSED } }, 17348 { /* src xmm */ { FP32_V(1,0x79ccd8,0xbd)/*-8999999652602314752.0,*/, FP32_RAND_x7_V2 } }, 17349 { /* => r64 */ { FP32_INT64_C(-8999999652602314752), FP32_x6_UNUSED } }, 17350 /*mxcsr:in */ 0, 17351 /*128:out */ 0, 17352 /*256:out */ -1 }, 17353 { { /* unused */ { FP32_ROW_UNUSED } }, 17354 { /* src xmm */ { FP32_V(0,0x79ccd9,0xbd)/*9000000202358128640.0,*/, FP32_RAND_x7_V2 } }, 17355 { /* => r64 */ { FP32_INT64_C(9000000202358128640), FP32_x6_UNUSED } }, 17356 /*mxcsr:in */ 0, 17357 /*128:out */ 0, 17358 /*256:out */ -1 }, 17359 { { /* unused */ { FP32_ROW_UNUSED } }, 17360 { /* src xmm */ { FP32_V(1,0x79ccd9,0xbd)/*-9000000202358128640.0,*/, FP32_RAND_x7_V2 } }, 17361 { /* => r64 */ { FP32_INT64_C(-9000000202358128640), FP32_x6_UNUSED } }, 17362 /*mxcsr:in */ 0, 17363 /*128:out */ 0, 17364 /*256:out */ -1 }, 17317 17365 /* 17318 17366 * Denormals. 17319 17367 */ 17320 /* 18*/{ { /* unused */ { FP32_ROW_UNUSED } },17368 /*24*/{ { /* unused */ { FP32_ROW_UNUSED } }, 17321 17369 { /* src xmm */ { FP32_DENORM_MAX(0), FP32_RAND_x7_V2 } }, 17322 17370 { /* => r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, … … 17333 17381 * Overflow (Underflow not possible). 17334 17382 */ 17335 /*2 0*/{ { /* unused */ { FP32_ROW_UNUSED } },17383 /*26*/{ { /* unused */ { FP32_ROW_UNUSED } }, 17336 17384 { /* src xmm */ { FP32_NORM_MAX(0), FP32_RAND_x7_V2 } }, 17337 17385 { /* => r64 */ { FP32_INT64_INDEFINITE, FP32_x6_UNUSED } }, … … 17348 17396 * Invalids. 17349 17397 */ 17350 /*2 2*/{ { /* unused */ { FP32_ROW_UNUSED } },17398 /*28*/{ { /* unused */ { FP32_ROW_UNUSED } }, 17351 17399 { /* src xmm */ { FP32_QNAN(0), FP32_RAND_x7_V2 } }, 17352 17400 { /* => r64 */ { FP32_INT64_INDEFINITE, FP32_x6_UNUSED } }, … … 17410 17458 { bs3CpuInstr4_vcvtss2si_R8_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, R8, XMM8, NOREG, PASS_s_aValues64 }, 17411 17459 { bs3CpuInstr4_vcvtss2si_R8_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, R8, FSxBX, NOREG, PASS_s_aValues64 }, 17460 }; 17461 17462 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 17463 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 17464 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 17465 g_aXcptConfig5, RT_ELEMENTS(g_aXcptConfig5)); 17466 } 17467 17468 17469 /* 17470 * CVTTSS2SI. 17471 */ 17472 BS3_DECL_FAR(uint8_t) bs3CpuInstr4_cvttss2si(uint8_t bMode) 17473 { 17474 static BS3CPUINSTR4_TEST1_VALUES_PS_T const s_aValues32[] = 17475 { 17476 /* 17477 * Zero. 17478 */ 17479 /* 0*/{ { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17480 { /* src xmm */ { FP32_0(0), FP32_RAND_x7_V1 } }, 17481 { /* => r32 */ { FP32_INT_C(0), FP32_x7_UNUSED } }, 17482 /*mxcsr:in */ 0, 17483 /*128:out */ 0, 17484 /*256:out */ -1 }, 17485 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17486 { /* src xmm */ { FP32_0(1), FP32_RAND_x7_V1 } }, 17487 { /* => r32 */ { FP32_INT_C(0), FP32_x7_UNUSED } }, 17488 /*mxcsr:in */ 0, 17489 /*128:out */ 0, 17490 /*256:out */ -1 }, 17491 /* 17492 * Infinity. 17493 */ 17494 /* 2*/{ { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17495 { /* src xmm */ { FP32_INF(1), FP32_RAND_x7_V1 } }, 17496 { /* => r32 */ { FP32_INT_INDEFINITE, FP32_x7_UNUSED } }, 17497 /*mxcsr:in */ 0, 17498 /*128:out */ X86_MXCSR_IE, 17499 /*256:out */ -1 }, 17500 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17501 { /* src xmm */ { FP32_INF(0), FP32_RAND_x7_V1 } }, 17502 { /* => r32 */ { FP32_INT_INDEFINITE, FP32_x7_UNUSED } }, 17503 /*mxcsr:in */ 0, 17504 /*128:out */ X86_MXCSR_IE, 17505 /*256:out */ -1 }, 17506 /* 17507 * Normals & Precision. 17508 */ 17509 /* 4*/{ { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17510 { /* src xmm */ { FP32_V(0,0x712000,0x8f), FP32_RAND_x7_V0 } }, 17511 { /* => r32 */ { FP32_INT_C(123456), FP32_x7_UNUSED } }, 17512 /*mxcsr:in */ 0, 17513 /*128:out */ 0, 17514 /*256:out */ -1 }, 17515 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17516 { /* src xmm */ { FP32_V(1,0x712000,0x8f), FP32_RAND_x7_V0 } }, 17517 { /* => r32 */ { FP32_INT_C(-123456), FP32_x7_UNUSED } }, 17518 /*mxcsr:in */ 0, 17519 /*128:out */ 0, 17520 /*256:out */ -1 }, 17521 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17522 { /* src xmm */ { FP32_V(0,0x712073,0x8f)/*123456.9*/, FP32_RAND_x7_V2 } }, 17523 { /* => r32 */ { FP32_INT_C(123456), FP32_x7_UNUSED } }, 17524 /*mxcsr:in */ 0, 17525 /*128:out */ X86_MXCSR_PE, 17526 /*256:out */ -1 }, 17527 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17528 { /* src xmm */ { FP32_V(1,0x712073,0x8f)/*-123456.9*/, FP32_RAND_x7_V2 } }, 17529 { /* => r32 */ { FP32_INT_C(-123456), FP32_x7_UNUSED } }, 17530 /*mxcsr:in */ 0, 17531 /*128:out */ X86_MXCSR_PE, 17532 /*256:out */ -1 }, 17533 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17534 { /* src xmm */ { FP32_V(0,0x712073,0x8f)/*123456.9*/, FP32_RAND_x7_V2 } }, 17535 { /* => r32 */ { FP32_INT_C(123456), FP32_x7_UNUSED } }, 17536 /*mxcsr:in */ X86_MXCSR_RC_DOWN, 17537 /*128:out */ X86_MXCSR_RC_DOWN | X86_MXCSR_PE, 17538 /*256:out */ -1 }, 17539 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17540 { /* src xmm */ { FP32_V(1,0x712073,0x8f)/*-123456.9*/, FP32_RAND_x7_V2 } }, 17541 { /* => r32 */ { FP32_INT_C(-123456), FP32_x7_UNUSED } }, 17542 /*mxcsr:in */ X86_MXCSR_RC_DOWN, 17543 /*128:out */ X86_MXCSR_RC_DOWN | X86_MXCSR_PE, 17544 /*256:out */ -1 }, 17545 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17546 { /* src xmm */ { FP32_V(0,0x712073,0x8f)/*123456.9*/, FP32_RAND_x7_V2 } }, 17547 { /* => r32 */ { FP32_INT_C(123456), FP32_x7_UNUSED } }, 17548 /*mxcsr:in */ X86_MXCSR_RC_UP, 17549 /*128:out */ X86_MXCSR_RC_UP | X86_MXCSR_PE, 17550 /*256:out */ -1 }, 17551 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17552 { /* src xmm */ { FP32_V(1,0x712073,0x8f)/*-123456.9*/, FP32_RAND_x7_V2 } }, 17553 { /* => r32 */ { FP32_INT_C(-123456), FP32_x7_UNUSED } }, 17554 /*mxcsr:in */ X86_MXCSR_RC_UP, 17555 /*128:out */ X86_MXCSR_RC_UP | X86_MXCSR_PE, 17556 /*256:out */ -1 }, 17557 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17558 { /* src xmm */ { FP32_V(0,0x712073,0x8f)/*123456.9*/, FP32_RAND_x7_V2 } }, 17559 { /* => r32 */ { FP32_INT_C(123456), FP32_x7_UNUSED } }, 17560 /*mxcsr:in */ X86_MXCSR_RC_ZERO, 17561 /*128:out */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE, 17562 /*256:out */ -1 }, 17563 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17564 { /* src xmm */ { FP32_V(1,0x712073,0x8f)/*-123456.9*/, FP32_RAND_x7_V2 } }, 17565 { /* => r32 */ { FP32_INT_C(-123456), FP32_x7_UNUSED } }, 17566 /*mxcsr:in */ X86_MXCSR_RC_ZERO, 17567 /*128:out */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE, 17568 /*256:out */ -1 }, 17569 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17570 { /* src xmm */ { FP32_V(1,0x766666,0x7e)/*-0.9*/, FP32_RAND_x7_V2 } }, 17571 { /* => r32 */ { FP32_INT_C(0), FP32_x7_UNUSED } }, 17572 /*mxcsr:in */ X86_MXCSR_FZ, 17573 /*128:out */ X86_MXCSR_PE | X86_MXCSR_FZ, 17574 /*256:out */ -1 }, 17575 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17576 { /* src xmm */ { FP32_V(0,0x766666,0x7e)/*0.9*/, FP32_RAND_x7_V2 } }, 17577 { /* => r32 */ { FP32_INT_C(0), FP32_x7_UNUSED } }, 17578 /*mxcsr:in */ X86_MXCSR_FZ, 17579 /*128:out */ X86_MXCSR_PE | X86_MXCSR_FZ, 17580 /*256:out */ -1 }, 17581 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17582 { /* src xmm */ { FP32_V(1,0x766666,0x7e)/*-0.9*/, FP32_RAND_x7_V2 } }, 17583 { /* => r32 */ { FP32_INT_C(0), FP32_x7_UNUSED } }, 17584 /*mxcsr:in */ X86_MXCSR_RC_DOWN, 17585 /*128:out */ X86_MXCSR_PE | X86_MXCSR_RC_DOWN, 17586 /*256:out */ -1 }, 17587 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17588 { /* src xmm */ { FP32_V(0,0x766666,0x7e)/*0.9*/, FP32_RAND_x7_V2 } }, 17589 { /* => r32 */ { FP32_INT_C(0), FP32_x7_UNUSED } }, 17590 /*mxcsr:in */ X86_MXCSR_RC_UP, 17591 /*128:out */ X86_MXCSR_PE | X86_MXCSR_RC_UP, 17592 /*256:out */ -1 }, 17593 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17594 { /* src xmm */ { FP32_NORM_SAFE_INT_MAX(1), FP32_RAND_x7_V2 } }, 17595 { /* => r32 */ { FP32_INT_C(-16777215), FP32_x7_UNUSED } }, 17596 /*mxcsr:in */ 0, 17597 /*128:out */ 0, 17598 /*256:out */ -1 }, 17599 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17600 { /* src xmm */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_x7_V2 } }, 17601 { /* => r32 */ { FP32_INT_C(16777215), FP32_x7_UNUSED } }, 17602 /*mxcsr:in */ 0, 17603 /*128:out */ 0, 17604 /*256:out */ -1 }, 17605 /* 17606 * Denormals. 17607 */ 17608 /*20*/{ { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17609 { /* src xmm */ { FP32_DENORM_MAX(0), FP32_RAND_x7_V2 } }, 17610 { /* => r32 */ { FP32_INT_C(0), FP32_x7_UNUSED } }, 17611 /*mxcsr:in */ 0, 17612 /*128:out */ X86_MXCSR_PE, 17613 /*256:out */ -1 }, 17614 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17615 { /* src xmm */ { FP32_DENORM_MIN(1), FP32_RAND_x7_V2 } }, 17616 { /* => r32 */ { FP32_INT_C(0), FP32_x7_UNUSED } }, 17617 /*mxcsr:in */ X86_MXCSR_DAZ, 17618 /*128:out */ X86_MXCSR_DAZ, 17619 /*256:out */ -1 }, 17620 /* 17621 * Overflow (Underflow not possible). 17622 */ 17623 /*22*/{ { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17624 { /* src xmm */ { FP32_NORM_MAX(0), FP32_RAND_x7_V2 } }, 17625 { /* => r32 */ { FP32_INT_INDEFINITE, FP32_x7_UNUSED } }, 17626 /*mxcsr:in */ 0, 17627 /*128:out */ X86_MXCSR_IE, 17628 /*256:out */ -1 }, 17629 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17630 { /* src xmm */ { FP32_NORM_MAX(1), FP32_RAND_x7_V2 } }, 17631 { /* => r32 */ { FP32_INT_INDEFINITE, FP32_x7_UNUSED } }, 17632 /*mxcsr:in */ 0, 17633 /*128:out */ X86_MXCSR_IE, 17634 /*256:out */ -1 }, 17635 /* 17636 * Invalids. 17637 */ 17638 /*24*/{ { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17639 { /* src xmm */ { FP32_QNAN(0), FP32_RAND_x7_V2 } }, 17640 { /* => r32 */ { FP32_INT_INDEFINITE, FP32_x7_UNUSED } }, 17641 /*mxcsr:in */ 0, 17642 /*128:out */ X86_MXCSR_IE, 17643 /*256:out */ -1 }, 17644 { { /* clr r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17645 { /* src xmm */ { FP32_SNAN(1), FP32_RAND_x7_V2 } }, 17646 { /* => r32 */ { FP32_INT_INDEFINITE, FP32_x7_UNUSED } }, 17647 /*mxcsr:in */ 0, 17648 /*128:out */ X86_MXCSR_IE, 17649 /*256:out */ -1 }, 17650 }; 17651 static BS3CPUINSTR4_TEST1_VALUES_PS_T const s_aValues64[] = 17652 { 17653 /* 17654 * Zero. 17655 */ 17656 /* 0*/{ { /* unused */ { FP32_ROW_UNUSED } }, 17657 { /* src xmm */ { FP32_0(0), FP32_RAND_x7_V1 } }, 17658 { /* => r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17659 /*mxcsr:in */ 0, 17660 /*128:out */ 0, 17661 /*256:out */ -1 }, 17662 { { /* unused */ { FP32_ROW_UNUSED } }, 17663 { /* src xmm */ { FP32_0(1), FP32_RAND_x7_V1 } }, 17664 { /* => r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17665 /*mxcsr:in */ 0, 17666 /*128:out */ 0, 17667 /*256:out */ -1 }, 17668 /* 17669 * Infinity. 17670 */ 17671 /* 2*/{ { /* unused */ { FP32_ROW_UNUSED } }, 17672 { /* src xmm */ { FP32_INF(1), FP32_RAND_x7_V1 } }, 17673 { /* => r64 */ { FP32_INT64_INDEFINITE, FP32_x6_UNUSED } }, 17674 /*mxcsr:in */ 0, 17675 /*128:out */ X86_MXCSR_IE, 17676 /*256:out */ -1 }, 17677 { { /* unused */ { FP32_ROW_UNUSED } }, 17678 { /* src xmm */ { FP32_INF(0), FP32_RAND_x7_V1 } }, 17679 { /* => r64 */ { FP32_INT64_INDEFINITE, FP32_x6_UNUSED } }, 17680 /*mxcsr:in */ 0, 17681 /*128:out */ X86_MXCSR_IE, 17682 /*256:out */ -1 }, 17683 /* 17684 * Normals & Precision. 17685 */ 17686 /* 4*/{ { /* unused */ { FP32_ROW_UNUSED } }, 17687 { /* src xmm */ { FP32_V(0,0x712000,0x8f), FP32_RAND_x7_V0 } }, 17688 { /* => r64 */ { FP32_INT64_C(123456), FP32_x6_UNUSED } }, 17689 /*mxcsr:in */ 0, 17690 /*128:out */ 0, 17691 /*256:out */ -1 }, 17692 { { /* unused */ { FP32_ROW_UNUSED } }, 17693 { /* src xmm */ { FP32_V(1,0x712000,0x8f), FP32_RAND_x7_V0 } }, 17694 { /* => r64 */ { FP32_INT64_C(-123456), FP32_x6_UNUSED } }, 17695 /*mxcsr:in */ 0, 17696 /*128:out */ 0, 17697 /*256:out */ -1 }, 17698 { { /* unused */ { FP32_ROW_UNUSED } }, 17699 { /* src xmm */ { FP32_V(0,0x712073,0x8f)/*123456.9*/, FP32_RAND_x7_V2 } }, 17700 { /* => r64 */ { FP32_INT64_C(123456), FP32_x6_UNUSED } }, 17701 /*mxcsr:in */ 0, 17702 /*128:out */ X86_MXCSR_PE, 17703 /*256:out */ -1 }, 17704 { { /* unused */ { FP32_ROW_UNUSED } }, 17705 { /* src xmm */ { FP32_V(1,0x712073,0x8f)/*-123456.9*/, FP32_RAND_x7_V2 } }, 17706 { /* => r64 */ { FP32_INT64_C(-123456), FP32_x6_UNUSED } }, 17707 /*mxcsr:in */ 0, 17708 /*128:out */ X86_MXCSR_PE, 17709 /*256:out */ -1 }, 17710 { { /* unused */ { FP32_ROW_UNUSED } }, 17711 { /* src xmm */ { FP32_V(0,0x712073,0x8f)/*123456.9*/, FP32_RAND_x7_V2 } }, 17712 { /* => r64 */ { FP32_INT64_C(123456), FP32_x6_UNUSED } }, 17713 /*mxcsr:in */ X86_MXCSR_RC_DOWN, 17714 /*128:out */ X86_MXCSR_RC_DOWN | X86_MXCSR_PE, 17715 /*256:out */ -1 }, 17716 { { /* unused */ { FP32_ROW_UNUSED } }, 17717 { /* src xmm */ { FP32_V(1,0x712073,0x8f)/*-123456.9*/, FP32_RAND_x7_V2 } }, 17718 { /* => r64 */ { FP32_INT64_C(-123456), FP32_x6_UNUSED } }, 17719 /*mxcsr:in */ X86_MXCSR_RC_DOWN, 17720 /*128:out */ X86_MXCSR_RC_DOWN | X86_MXCSR_PE, 17721 /*256:out */ -1 }, 17722 { { /* unused */ { FP32_ROW_UNUSED } }, 17723 { /* src xmm */ { FP32_V(0,0x712073,0x8f)/*123456.9*/, FP32_RAND_x7_V2 } }, 17724 { /* => r64 */ { FP32_INT64_C(123456), FP32_x6_UNUSED } }, 17725 /*mxcsr:in */ X86_MXCSR_RC_UP, 17726 /*128:out */ X86_MXCSR_RC_UP | X86_MXCSR_PE, 17727 /*256:out */ -1 }, 17728 { { /* unused */ { FP32_ROW_UNUSED } }, 17729 { /* src xmm */ { FP32_V(1,0x712073,0x8f)/*-123456.9*/, FP32_RAND_x7_V2 } }, 17730 { /* => r64 */ { FP32_INT64_C(-123456), FP32_x6_UNUSED } }, 17731 /*mxcsr:in */ X86_MXCSR_RC_UP, 17732 /*128:out */ X86_MXCSR_RC_UP | X86_MXCSR_PE, 17733 /*256:out */ -1 }, 17734 { { /* unused */ { FP32_ROW_UNUSED } }, 17735 { /* src xmm */ { FP32_V(0,0x712073,0x8f)/*123456.9*/, FP32_RAND_x7_V2 } }, 17736 { /* => r64 */ { FP32_INT64_C(123456), FP32_x6_UNUSED } }, 17737 /*mxcsr:in */ X86_MXCSR_RC_ZERO, 17738 /*128:out */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE, 17739 /*256:out */ -1 }, 17740 { { /* unused */ { FP32_ROW_UNUSED } }, 17741 { /* src xmm */ { FP32_V(1,0x712073,0x8f)/*-123456.9*/, FP32_RAND_x7_V2 } }, 17742 { /* => r64 */ { FP32_INT64_C(-123456), FP32_x6_UNUSED } }, 17743 /*mxcsr:in */ X86_MXCSR_RC_ZERO, 17744 /*128:out */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE, 17745 /*256:out */ -1 }, 17746 { { /* unused */ { FP32_ROW_UNUSED } }, 17747 { /* src xmm */ { FP32_V(1,0x766666,0x7e)/*-0.9*/, FP32_RAND_x7_V2 } }, 17748 { /* => r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17749 /*mxcsr:in */ X86_MXCSR_FZ, 17750 /*128:out */ X86_MXCSR_PE | X86_MXCSR_FZ, 17751 /*256:out */ -1 }, 17752 { { /* unused */ { FP32_ROW_UNUSED } }, 17753 { /* src xmm */ { FP32_V(0,0x766666,0x7e)/*0.9*/, FP32_RAND_x7_V2 } }, 17754 { /* => r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17755 /*mxcsr:in */ X86_MXCSR_FZ, 17756 /*128:out */ X86_MXCSR_PE | X86_MXCSR_FZ, 17757 /*256:out */ -1 }, 17758 { { /* unused */ { FP32_ROW_UNUSED } }, 17759 { /* src xmm */ { FP32_V(1,0x766666,0x7e)/*-0.9*/, FP32_RAND_x7_V2 } }, 17760 { /* => r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17761 /*mxcsr:in */ X86_MXCSR_RC_DOWN, 17762 /*128:out */ X86_MXCSR_PE | X86_MXCSR_RC_DOWN, 17763 /*256:out */ -1 }, 17764 { { /* unused */ { FP32_ROW_UNUSED } }, 17765 { /* src xmm */ { FP32_V(0,0x766666,0x7e)/*0.9*/, FP32_RAND_x7_V2 } }, 17766 { /* => r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17767 /*mxcsr:in */ X86_MXCSR_RC_UP, 17768 /*128:out */ X86_MXCSR_PE | X86_MXCSR_RC_UP, 17769 /*256:out */ -1 }, 17770 { { /* unused */ { FP32_ROW_UNUSED } }, 17771 { /* src xmm */ { FP32_NORM_SAFE_INT_MAX(1), FP32_RAND_x7_V2 } }, 17772 { /* => r64 */ { FP32_INT64_C(-16777215), FP32_x6_UNUSED } }, 17773 /*mxcsr:in */ 0, 17774 /*128:out */ 0, 17775 /*256:out */ -1 }, 17776 { { /* unused */ { FP32_ROW_UNUSED } }, 17777 { /* src xmm */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_x7_V2 } }, 17778 { /* => r64 */ { FP32_INT64_C(16777215), FP32_x6_UNUSED } }, 17779 /*mxcsr:in */ 0, 17780 /*128:out */ 0, 17781 /*256:out */ -1 }, 17782 { { /* unused */ { FP32_ROW_UNUSED } }, 17783 { /* src xmm */ { FP32_V(0,0x79ccd8,0xbd)/*8999999652602314752.0,*/, FP32_RAND_x7_V2 } }, 17784 { /* => r64 */ { FP32_INT64_C(8999999652602314752), FP32_x6_UNUSED } }, 17785 /*mxcsr:in */ 0, 17786 /*128:out */ 0, 17787 /*256:out */ -1 }, 17788 { { /* unused */ { FP32_ROW_UNUSED } }, 17789 { /* src xmm */ { FP32_V(1,0x79ccd8,0xbd)/*-8999999652602314752.0,*/, FP32_RAND_x7_V2 } }, 17790 { /* => r64 */ { FP32_INT64_C(-8999999652602314752), FP32_x6_UNUSED } }, 17791 /*mxcsr:in */ 0, 17792 /*128:out */ 0, 17793 /*256:out */ -1 }, 17794 { { /* unused */ { FP32_ROW_UNUSED } }, 17795 { /* src xmm */ { FP32_V(0,0x79ccd9,0xbd)/*9000000202358128640.0,*/, FP32_RAND_x7_V2 } }, 17796 { /* => r64 */ { FP32_INT64_C(9000000202358128640), FP32_x6_UNUSED } }, 17797 /*mxcsr:in */ 0, 17798 /*128:out */ 0, 17799 /*256:out */ -1 }, 17800 { { /* unused */ { FP32_ROW_UNUSED } }, 17801 { /* src xmm */ { FP32_V(1,0x79ccd9,0xbd)/*-9000000202358128640.0,*/, FP32_RAND_x7_V2 } }, 17802 { /* => r64 */ { FP32_INT64_C(-9000000202358128640), FP32_x6_UNUSED } }, 17803 /*mxcsr:in */ 0, 17804 /*128:out */ 0, 17805 /*256:out */ -1 }, 17806 /* 17807 * Denormals. 17808 */ 17809 /*24*/{ { /* unused */ { FP32_ROW_UNUSED } }, 17810 { /* src xmm */ { FP32_DENORM_MAX(0), FP32_RAND_x7_V2 } }, 17811 { /* => r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17812 /*mxcsr:in */ 0, 17813 /*128:out */ X86_MXCSR_PE, 17814 /*256:out */ -1 }, 17815 { { /* unused */ { FP32_ROW_UNUSED } }, 17816 { /* src xmm */ { FP32_DENORM_MIN(1), FP32_RAND_x7_V2 } }, 17817 { /* => r64 */ { FP32_INT64_C(0), FP32_x6_UNUSED } }, 17818 /*mxcsr:in */ X86_MXCSR_DAZ, 17819 /*128:out */ X86_MXCSR_DAZ, 17820 /*256:out */ -1 }, 17821 /* 17822 * Overflow (Underflow not possible). 17823 */ 17824 /*26*/{ { /* unused */ { FP32_ROW_UNUSED } }, 17825 { /* src xmm */ { FP32_NORM_MAX(0), FP32_RAND_x7_V2 } }, 17826 { /* => r64 */ { FP32_INT64_INDEFINITE, FP32_x6_UNUSED } }, 17827 /*mxcsr:in */ 0, 17828 /*128:out */ X86_MXCSR_IE, 17829 /*256:out */ -1 }, 17830 { { /* unused */ { FP32_ROW_UNUSED } }, 17831 { /* src xmm */ { FP32_NORM_MAX(1), FP32_RAND_x7_V2 } }, 17832 { /* => r64 */ { FP32_INT64_INDEFINITE, FP32_x6_UNUSED } }, 17833 /*mxcsr:in */ 0, 17834 /*128:out */ X86_MXCSR_IE, 17835 /*256:out */ -1 }, 17836 /* 17837 * Invalids. 17838 */ 17839 /*28*/{ { /* unused */ { FP32_ROW_UNUSED } }, 17840 { /* src xmm */ { FP32_QNAN(0), FP32_RAND_x7_V2 } }, 17841 { /* => r64 */ { FP32_INT64_INDEFINITE, FP32_x6_UNUSED } }, 17842 /*mxcsr:in */ 0, 17843 /*128:out */ X86_MXCSR_IE, 17844 /*256:out */ -1 }, 17845 { { /* unused */ { FP32_ROW_UNUSED } }, 17846 { /* src xmm */ { FP32_SNAN(1), FP32_RAND_x7_V2 } }, 17847 { /* => r64 */ { FP32_INT64_INDEFINITE, FP32_x6_UNUSED } }, 17848 /*mxcsr:in */ 0, 17849 /*128:out */ X86_MXCSR_IE, 17850 /*256:out */ -1 }, 17851 }; 17852 17853 static BS3CPUINSTR4_TEST1_T const s_aTests16[] = 17854 { 17855 { bs3CpuInstr4_cvttss2si_EAX_XMM1_icebp_c16, 255, RM_REG, T_SSE, EAX, XMM1, NOREG, PASS_s_aValues32 }, 17856 { bs3CpuInstr4_cvttss2si_EAX_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, EAX, FSxBX, NOREG, PASS_s_aValues32 }, 17857 17858 { bs3CpuInstr4_vcvttss2si_EAX_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, EAX, XMM1, NOREG, PASS_s_aValues32 }, 17859 { bs3CpuInstr4_vcvttss2si_EAX_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, EAX, FSxBX, NOREG, PASS_s_aValues32 }, 17860 17861 { bs3CpuInstr4_vcvttss2si_RAX_XMM1_icebp_c16, BS3_XCPT_UD, RM_REG, T_AVX_128, RAX, XMM1, NOREG, PASS_s_aValues64 }, 17862 { bs3CpuInstr4_vcvttss2si_RAX_FSxBX_icebp_c16, BS3_XCPT_UD, RM_MEM, T_AVX_128, RAX, FSxBX, NOREG, PASS_s_aValues64 }, 17863 }; 17864 17865 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 17866 { 17867 { bs3CpuInstr4_cvttss2si_EAX_XMM1_icebp_c32, 255, RM_REG, T_SSE, EAX, XMM1, NOREG, PASS_s_aValues32 }, 17868 { bs3CpuInstr4_cvttss2si_EAX_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, EAX, FSxBX, NOREG, PASS_s_aValues32 }, 17869 17870 { bs3CpuInstr4_vcvttss2si_EAX_XMM1_icebp_c32, 255, RM_REG, T_AVX_128, EAX, XMM1, NOREG, PASS_s_aValues32 }, 17871 { bs3CpuInstr4_vcvttss2si_EAX_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, EAX, FSxBX, NOREG, PASS_s_aValues32 }, 17872 17873 { bs3CpuInstr4_vcvttss2si_RAX_XMM1_icebp_c32, BS3_XCPT_UD, RM_REG, T_AVX_128, RAX, XMM1, NOREG, PASS_s_aValues64 }, 17874 { bs3CpuInstr4_vcvttss2si_RAX_FSxBX_icebp_c32, BS3_XCPT_UD, RM_MEM, T_AVX_128, RAX, FSxBX, NOREG, PASS_s_aValues64 }, 17875 }; 17876 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 17877 { 17878 { bs3CpuInstr4_cvttss2si_EAX_XMM1_icebp_c64, 255, RM_REG, T_SSE, EAX, XMM1, RAX, PASS_s_aValues32 }, 17879 { bs3CpuInstr4_cvttss2si_EAX_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, EAX, FSxBX, RAX, PASS_s_aValues32 }, 17880 17881 { bs3CpuInstr4_cvttss2si_R8D_XMM8_icebp_c64, 255, RM_REG, T_SSE, R8D, XMM8, R8, PASS_s_aValues32 }, 17882 { bs3CpuInstr4_cvttss2si_R8D_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, R8D, FSxBX, R8, PASS_s_aValues32 }, 17883 17884 { bs3CpuInstr4_vcvttss2si_EAX_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, EAX, XMM1, RAX, PASS_s_aValues32 }, 17885 { bs3CpuInstr4_vcvttss2si_EAX_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, EAX, FSxBX, RAX, PASS_s_aValues32 }, 17886 17887 { bs3CpuInstr4_vcvttss2si_R8D_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, R8D, XMM8, R8, PASS_s_aValues32 }, 17888 { bs3CpuInstr4_vcvttss2si_R8D_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, R8D, FSxBX, R8, PASS_s_aValues32 }, 17889 17890 { bs3CpuInstr4_cvttss2si_RAX_XMM1_icebp_c64, 255, RM_REG, T_SSE, RAX, XMM1, NOREG, PASS_s_aValues64 }, 17891 { bs3CpuInstr4_cvttss2si_RAX_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, RAX, FSxBX, NOREG, PASS_s_aValues64 }, 17892 17893 { bs3CpuInstr4_cvttss2si_R8_XMM8_icebp_c64, 255, RM_REG, T_SSE, R8, XMM8, NOREG, PASS_s_aValues64 }, 17894 { bs3CpuInstr4_cvttss2si_R8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, R8, FSxBX, NOREG, PASS_s_aValues64 }, 17895 17896 { bs3CpuInstr4_vcvttss2si_RAX_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, RAX, XMM1, NOREG, PASS_s_aValues64 }, 17897 { bs3CpuInstr4_vcvttss2si_RAX_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, RAX, FSxBX, NOREG, PASS_s_aValues64 }, 17898 17899 { bs3CpuInstr4_vcvttss2si_R8_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, R8, XMM8, NOREG, PASS_s_aValues64 }, 17900 { bs3CpuInstr4_vcvttss2si_R8_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, R8, FSxBX, NOREG, PASS_s_aValues64 }, 17412 17901 }; 17413 17902 … … 17481 17970 { "cvtsi2ss", bs3CpuInstr4_cvtsi2ss, 0 }, 17482 17971 { "cvtss2si", bs3CpuInstr4_cvtss2si, 0 }, 17972 { "cvttss2si", bs3CpuInstr4_cvttss2si, 0 }, 17483 17973 #endif 17484 17974 };
Note:
See TracChangeset
for help on using the changeset viewer.