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

[test]
draw quad
probe all rgba (0.0, 7.0, 8.0, 4.0) 4

[pixel shader]
uniform float4 u;

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

[test]
uniform 0 float4 -0.5 6.5 7.5 3.4
draw quad
probe all rgba (0.0, 7.0, 8.0, 4.0) 4

[pixel shader todo(sm<4)]
uniform float4 u;

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

[test]
uniform 0 float4 -0.5 6.5 7.5 3.4
todo(sm<4) draw quad
probe all rgba (7.0, 8.0, 0.0, 4.0) 4

[require]
shader model >= 4.0

[pixel shader]
uniform int4 u;

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

[test]
uniform 0 int4 -1 6 7 3
draw quad
probe all rgba (6.0, 7.0, -1.0, 3.0) 4