diff --git a/tests/hlsl/arithmetic-int-uniform.shader_test b/tests/hlsl/arithmetic-int-uniform.shader_test index dc15850b..dc14052b 100644 --- a/tests/hlsl/arithmetic-int-uniform.shader_test +++ b/tests/hlsl/arithmetic-int-uniform.shader_test @@ -137,6 +137,39 @@ todo(sm<4 | glsl | msl) draw quad if(sm<4) probe (0, 0) rgba(6, 6, -6, -6) if(sm>=4) probe (0, 0) rgba(7, 7, -7, -7) +[pixel shader todo(sm<4)] +float f; + +float4 main() : sv_target +{ + int a = 16782201; // This rounds down to 16782200 when converted to float. + int b = f; + + return float4(a / b, a / (-b), (-a) / b, (-a) / (-b)); +} + +[test] +uniform 0 float 999.0 +todo(sm<4 | glsl | msl) draw quad +if(sm<4) probe (0, 0) rgba(16798, -16798, -16798, 16798) +if(sm>=4) probe (0, 0) rgba(16799, -16799, -16799, 16799) + +[pixel shader todo(sm<4)] +float f; + +float4 main() : sv_target +{ + int a = 16782200; + int b = f; + + return float4(a / b, a / (-b), (-a) / b, (-a) / (-b)); +} + +[test] +uniform 0 float 999.0 +todo(sm<4 | glsl | msl) draw quad +probe (0, 0) rgba(16798, -16798, -16798, 16798) + [require] shader model >= 6.0 int64 diff --git a/tests/hlsl/arithmetic-int.shader_test b/tests/hlsl/arithmetic-int.shader_test index 8bff402f..9e0fa47d 100644 --- a/tests/hlsl/arithmetic-int.shader_test +++ b/tests/hlsl/arithmetic-int.shader_test @@ -179,3 +179,30 @@ float4 main() : sv_target draw quad todo if(sm<4) probe (0, 0) rgba(7, 7, -6, -6) if(sm>=4) probe (0, 0) rgba(7, 7, -7, -7) + +[pixel shader] +float4 main() : sv_target +{ + int a = 16782201; // This rounds down to 16782200 when converted to float. + int b = 999; + + return float4(a / b, a / (-b), (-a) / b, (-a) / (-b)); +} + +[test] +draw quad +if(sm<4) todo probe (0, 0) rgba(16799, -16799, -16798, 16798) +if(sm>=4) probe (0, 0) rgba(16799, -16799, -16799, 16799) + +[pixel shader] +float4 main() : sv_target +{ + int a = 16782200; + int b = 999; + + return float4(a / b, a / (-b), (-a) / b, (-a) / (-b)); +} + +[test] +draw quad +probe (0, 0) rgba(16798, -16798, -16798, 16798)