diff --git a/tests/d3d12.c b/tests/d3d12.c index 5b559c10..c2095a3d 100644 --- a/tests/d3d12.c +++ b/tests/d3d12.c @@ -9884,14 +9884,17 @@ static void test_shader_instructions(void) static struct named_shader ps_swapc5 = {"swapc5", ps_swapc5_code, sizeof(ps_swapc5_code)}; static const DWORD ps_dadd_code[] = { + /* Also test constant double2 vector. */ #if 0 double src0; float4 main() : SV_TARGET { - double value = src0 + 1.0; - float a = float(value); - return float4(a, a, a, a); + double2 value = double2(src0 + 1.0000002433080226l, src0 + 2.000000481493771l); + uint4 u; + asuint(a.x, u.x, u.y); + asuint(a.y, u.z, u.w); + return asfloat(u); } ps_5_0 @@ -9899,31 +9902,18 @@ static void test_shader_instructions(void) dcl_constantbuffer CB0[1], immediateIndexed dcl_output o0.xyzw dcl_temps 1 - dadd r0.xy, cb0[0].xyxy, d(1.000000l, 0.000000l) - dtof r0.x, r0.xyxy - mov o0.xyzw, r0.xxxx + dadd r0.xyzw, cb0[0].xyxy, d(1.000000l, 2.000000l) + mov o0.xyzw, r0.xyzw ret #endif - 0x43425844, 0xf7e30cb4, 0x2105b1be, 0x3dfa83bb, 0x81d61192, 0x00000001, 0x000002cc, 0x00000006, 0x00000038, - 0x0000014c, 0x0000015c, 0x00000190, 0x00000220, 0x00000230, 0x46454452, 0x0000010c, 0x00000001, 0x00000068, - 0x00000001, 0x0000003c, 0xffff0500, 0x00000100, 0x000000d8, 0x31314452, 0x0000003c, 0x00000018, 0x00000020, - 0x00000028, 0x00000024, 0x0000000c, 0x00000000, 0x0000005c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000001, 0x00000000, 0x6f6c4724, 0x736c6162, 0xababab00, 0x0000005c, 0x00000001, 0x00000080, - 0x00000010, 0x00000000, 0x00000000, 0x000000a8, 0x00000000, 0x00000008, 0x00000002, 0x000000b4, 0x00000000, - 0xffffffff, 0x00000000, 0xffffffff, 0x00000000, 0x30637273, 0x756f6400, 0x00656c62, 0x00270000, 0x00010001, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000000ad, 0x7263694d, 0x666f736f, - 0x52282074, 0x4c482029, 0x53204c53, 0x65646168, 0x6f432072, 0x6c69706d, 0x31207265, 0x2e302e30, 0x31303031, - 0x36312e31, 0x00343833, 0x4e475349, 0x00000008, 0x00000000, 0x00000008, 0x4e47534f, 0x0000002c, 0x00000001, - 0x00000008, 0x00000020, 0x00000000, 0x00000000, 0x00000003, 0x00000000, 0x0000000f, 0x545f5653, 0x45475241, - 0xabab0054, 0x58454853, 0x00000088, 0x00000050, 0x00000022, 0x0100186a, 0x04000059, 0x00208e46, 0x00000000, - 0x00000001, 0x03000065, 0x001020f2, 0x00000000, 0x02000068, 0x00000001, 0x0b0000bf, 0x00100032, 0x00000000, - 0x00208446, 0x00000000, 0x00000000, 0x00005002, 0x00000000, 0x3ff00000, 0x00000000, 0x00000000, 0x050000c9, - 0x00100012, 0x00000000, 0x00100446, 0x00000000, 0x05000036, 0x001020f2, 0x00000000, 0x00100006, 0x00000000, - 0x0100003e, 0x30494653, 0x00000008, 0x00000001, 0x00000000, 0x54415453, 0x00000094, 0x00000004, 0x00000001, - 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, - 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x43425844, 0xe772838a, 0x07d67bc9, 0xed80747e, 0x8f1919ea, 0x00000001, 0x00000100, 0x00000004, + 0x00000030, 0x00000040, 0x00000074, 0x000000f0, 0x4e475349, 0x00000008, 0x00000000, 0x00000008, + 0x4e47534f, 0x0000002c, 0x00000001, 0x00000008, 0x00000020, 0x00000000, 0x00000000, 0x00000003, + 0x00000000, 0x0000000f, 0x545f5653, 0x65677261, 0xabab0074, 0x58454853, 0x00000074, 0x00000050, + 0x0000001d, 0x0100186a, 0x04000059, 0x00208e46, 0x00000000, 0x00000001, 0x03000065, 0x001020f2, + 0x00000000, 0x02000068, 0x00000001, 0x0b0000bf, 0x001000f2, 0x00000000, 0x00208446, 0x00000000, + 0x00000000, 0x00005002, 0x41500000, 0x3ff00000, 0x40a00000, 0x40000000, 0x05000036, 0x001020f2, + 0x00000000, 0x00100e46, 0x00000000, 0x0100003e, 0x30494653, 0x00000008, 0x00000001, 0x00000000, }; static struct named_shader ps_dadd = {"dadd", ps_dadd_code, sizeof(ps_dadd_code)}; static const DWORD ps_dmax_code[] = @@ -10324,7 +10314,7 @@ static void test_shader_instructions(void) } uint_tests[] = { - {&ps_dadd, {.d = {{2.5, 0.0}}}, {{0x40600000, 0x40600000, 0x40600000, 0x40600000}}}, + {&ps_dadd, {.d = {{2.5, 0.0}}}, {{0x20a80000, 0x400c0000, 0x20500000, 0x40120000}}}, {&ps_dmax, {.d = {{2.5, 0.0}}}, {{0x40200000, 0x40200000, 0x40200000, 0x40200000}}}, {&ps_dmax, {.d = {{0.5, 0.0}}}, {{0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000}}}, {&ps_dmovc, {.d = {{0.5, 0.0}}}, {{0x40900000, 0x40900000, 0x40900000, 0x40900000}}},