[pixel shader]
uniform float4 u;

float4 main() : sv_target
{
    return trunc(u);
}

[test]
uniform 0 float4 -0.5 6.5 7.5 3.4
draw quad
probe (0, 0) rgba (0.0, 6.0, 7.0, 3.0)
uniform 0 float4 -1.5 6.5 7.5 3.4
draw quad
probe (0, 0) rgba (-1.0, 6.0, 7.0, 3.0)

[pixel shader]
uniform float4 u;

float4 main() : sv_target
{
    float a = trunc(u.r);
    int2 b = trunc(u.gb);
    float4 res = float4(b, a, u.a);
    return trunc(res);
}

[test]
uniform 0 float4 -0.5 6.5 7.5 3.4
draw quad
probe (0, 0) rgba (6.0, 7.0, 0.0, 3.0)


[pixel shader]
uniform int4 u;

float4 main() : sv_target
{
    float a = trunc(u.r);
    int2 b = trunc(u.gb);
    float4 res = float4(b, a, u.a);
    return trunc(res);
}

[test]
if(sm<4) uniform 0 float4 -1 6 7 3
if(sm>=4) uniform 0 int4 -1 6 7 3
draw quad
probe (0, 0) f32(6.0, 7.0, -1.0, 3.0)
