[pixel shader]
uniform float4 x;

float4 main() : SV_TARGET
{
    return normalize(x);
}

[test]
uniform 0 float4 2.0 3.0 4.0 5.0
todo(msl) draw quad
probe (0, 0) rgba (0.272165537, 0.408248305, 0.544331074, 0.680413842) 2

[pixel shader]
uniform float3 x;

float4 main() : SV_TARGET
{
    return float4(normalize(x), 0.0);
}

[test]
uniform 0 float4 2.0 3.0 4.0 0.0
todo(msl) draw quad
probe (0, 0) rgba (0.371390700, 0.557086051, 0.742781401, 0.0) 1

[pixel shader]
uniform float2 x;

float4 main() : SV_TARGET
{
    return float4(normalize(x), 0.0, 0.0);
}

[test]
uniform 0 float4 2.0 3.0 0.0 0.0
todo(sm<4 | msl) draw quad
probe (0, 0) rgba (0.554700196, 0.832050323, 0.0, 0.0) 1

[pixel shader]
uniform float1 x;

float4 main() : SV_TARGET
{
    return normalize(x);
}

[test]
uniform 0 float4 2.0 0.0 0.0 0.0
todo(msl) draw quad
probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0)

[pixel shader]
uniform float x;

float4 main() : SV_TARGET
{
    return normalize(x);
}

[test]
uniform 0 float4 2.0 0.0 0.0 0.0
todo(msl) draw quad
probe (0, 0) rgba (1.0, 1.0, 1.0, 1.0)

[pixel shader fail]
uniform float1x3 x;

float4 main() : SV_TARGET
{
    return normalize(x);
}

[pixel shader fail]
uniform float4x1 x;

float4 main() : SV_TARGET
{
    return normalize(x);
}
