[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);
}

[texture 0]
format r32 float
size (1, 1)

0.8

[texture 1]
format r32 sint
size (1, 1)

-3

[texture 2]
format r32g32 uint
size (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(sm>=6) draw quad
probe all 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]
draw quad
probe all rgba (0.8, -3.0, 4294967295.0, 123.0)
