[pixel shader]
uniform float4 f, p;

float4 main() : sv_target
{
    return step(f, p);
}

[test]
uniform 0 float4 5.0 -2.6 3.0 2.0
uniform 4 float4 1.0 -4.3 3.0 4.0
draw quad
probe all rgba (0.0, 0.0, 1.0, 1.0)


[pixel shader]
float4 main() : sv_target
{
    float2x2 a = {1, 2, 3, 4};
    float b = {3};

    return float4(step(a, b));
}

[test]
draw quad
probe all rgba (1.0, 1.0, 1.0, 0.0)


[pixel shader fail]
float4 main() : sv_target
{
    float2x2 a = {1, 2, 3, 4};
    float1 b = {3};

    step(a, b);
    return 0;
}


[pixel shader]
float4 main() : sv_target
{
    float3x2 a = {8, 0,
                  0, 8,
                  8, 8};
    float2x3 b = {0, 8, 0,
                  8, 0, 0};

    return float4(step(a, b));
}

[test]
draw quad
probe all rgba (0.0, 1.0, 1.0, 0.0)