[require]
shader model >= 4.0

[pixel shader fail]
texture<float> t;

float4 main() : sv_target
{
    return float4(0, 0, 0, 0);
}

[pixel shader fail]
typedef Texture2D mytex_t;
mytex_t<float> t;

float4 main() : sv_target
{
    return float4(0, 0, 0, 0);
}

[srv 0]
format r32-float
size (2d, 1, 1)

0.8

[srv 1]
format r32-sint
size (2d, 1, 1)

-3

[srv 2]
format r32g32-uint
size (2d, 1, 1)

4294967295 123

[pixel shader]
typedef int myint_t;
Texture2D<float> f1;
Texture2D<myint_t> i1;
Texture2D<uint2> u2;
float4 main() : sv_target
{
    const float3 pos = float3(0.5, 0.5, 0);
    return float4(f1.Load(pos), i1.Load(pos), u2.Load(pos));
}

[test]
todo(msl) draw quad
probe (0, 0) rgba (0.8, -3.0, 4294967295.0, 123.0)

% lowercase 'texture2D'

[pixel shader fail(sm>=6)]
typedef int myint_t;
texture2D<float> f1;
Texture2D<myint_t> i1;
Texture2D<uint2> u2;
float4 main() : sv_target
{
    const float3 pos = float3(0.5, 0.5, 0);
    return float4(f1.Load(pos), i1.Load(pos), u2.Load(pos));
}

[test]
todo(msl) draw quad
probe (0, 0) rgba (0.8, -3.0, 4294967295.0, 123.0)
