[pixel shader]
float4 main() : sv_target
{
    return floor(float4(-0.5, 6.5, 7.5, 3.4));
}

[test]
todo(msl) draw quad
probe (0, 0) rgba (-1.0, 6.0, 7.0, 3.0) 4

[pixel shader]
uniform float4 u;

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

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

[pixel shader]
uniform float4 u;

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

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


[pixel shader]
uniform int4 u;

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

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