[pixel shader]
uniform float3 f;

float4 main() : sv_target
{
    int3 r = f;

    return float4(r, 0);
}

[test]
uniform 0 float4 10.3 11.5 12.8 13.1
draw quad
probe (0, 0) rgba (10, 11, 12, 0)


[pixel shader todo(sm<4)]
uniform float f;
uniform uint u;
uniform bool b;
uniform float h;

float4 main() : sv_target
{
    float4 ret;

    ret.x = ((float)(int)f) - 1.5;
    ret.y = ((float)(int)u) + 2.5;
    ret.z = ((float)(int)b) / 2;
    ret.w = ((float)(int)(half)h) + 3.5;
    return ret;
}

[test]
if(sm<4) uniform 0 float 2.6
if(sm<4) uniform 4 float -2
if(sm<4) uniform 8 float 1.0
if(sm<4) uniform 12 float -3.6
if(sm>=4) uniform 0 float 2.6
if(sm>=4) uniform 1 int -2
if(sm>=4) uniform 2 int -2
if(sm>=4) uniform 3 float -3.6
todo(sm<4) draw quad
probe (0, 0) rgba (0.5, 0.5, 0.5, 0.5)


[pixel shader]
float4 main() : sv_target
{
    float f = 2.6;
    uint u = 0xfffffffe;
    bool b = true;
    half h = -3.6;
    float4 ret;

    ret.x = ((float)(int)f) - 1.5;
    ret.y = ((float)(int)u) + 2.5;
    ret.z = ((float)(int)b) / 2;
    ret.w = ((float)(int)h) + 3.5;
    return ret;
}

[test]
draw quad
if(sm<4) todo probe (0,0) rgba (0.5, 4.2949673e+009, 0.5, 0.5)
if(sm>=4) probe (0,0) rgba (0.5, 0.5, 0.5, 0.5)