1in Block { int x; } unsizedArray[];
2
3void array_neg1             () { int     a[123]; int     v = a[-1]; }
4void array_0                () { float   a[123]; float   v = a[0]; }
5void array_122              () { bool2   a[123]; bool2   v = a[122]; }
6void array_123              () { half4x4 a[123]; half4x4 v = a[123]; }
7void array_huge             () { int4    a[123]; int4    v = a[1000000000]; }
8void array_overflow         () { half3   a[123]; half3   v = a[3000000000]; }
9void array_no_index         () { int     a[123]; int     v = a[]; }
10
11void unsized_array_neg1     () {                 int v = unsizedArray[-1].x; }
12void unsized_array_0        () {                 int v = unsizedArray[0].x; }
13void unsized_array_huge     () {                 int v = unsizedArray[1000000000].x; }
14void unsized_array_overflow () {                 int v = unsizedArray[3000000000].x; }
15void unsized_array_no_index () {                 int v = unsizedArray[].x; }
16
17void half4_neg1()              { half4 h;        half    v = h[-1]; }
18void half4_0()                 { half4 h;        half    v = h[0]; }
19void half4_1()                 { half4 h;        half    v = h[1]; }
20void half4_2()                 { half4 h;        half    v = h[2]; }
21void half4_3()                 { half4 h;        half    v = h[3]; }
22void half4_4()                 { half4 h;        half    v = h[4]; }
23void half4_huge()              { half4 h;        half    v = h[1000000000]; }
24
25void half3_neg1()              { half3 h;        half    v = h[-1]; }
26void half3_0()                 { half3 h;        half    v = h[0]; }
27void half3_1()                 { half3 h;        half    v = h[1]; }
28void half3_2()                 { half3 h;        half    v = h[2]; }
29void half3_3()                 { half3 h;        half    v = h[3]; }
30void half3_4()                 { half3 h;        half    v = h[4]; }
31void half3_huge()              { half3 h;        half    v = h[1000000000]; }
32
33void half2_neg1()              { half2 h;        half    v = h[-1]; }
34void half2_0()                 { half2 h;        half    v = h[0]; }
35void half2_1()                 { half2 h;        half    v = h[1]; }
36void half2_2()                 { half2 h;        half    v = h[2]; }
37void half2_3()                 { half2 h;        half    v = h[3]; }
38void half2_4()                 { half2 h;        half    v = h[4]; }
39void half2_huge()              { half2 h;        half    v = h[1000000000]; }
40
41void half2x4_neg1()            { half2x4 m;      half4   v = m[-1]; }
42void half2x4_0()               { half2x4 m;      half4   v = m[0]; }
43void half2x4_1()               { half2x4 m;      half4   v = m[1]; }
44void half2x4_2()               { half2x4 m;      half4   v = m[2]; }
45void half2x4_3()               { half2x4 m;      half4   v = m[3]; }
46void half2x4_4()               { half2x4 m;      half4   v = m[4]; }
47void half2x4_huge()            { half2x4 m;      half4   v = m[1000000000]; }
48
49void half3x3_neg1()            { half3x3 m;      half3   v = m[-1]; }
50void half3x3_0()               { half3x3 m;      half3   v = m[0]; }
51void half3x3_1()               { half3x3 m;      half3   v = m[1]; }
52void half3x3_2()               { half3x3 m;      half3   v = m[2]; }
53void half3x3_3()               { half3x3 m;      half3   v = m[3]; }
54void half3x3_4()               { half3x3 m;      half3   v = m[4]; }
55void half3x3_huge()            { half3x3 m;      half3   v = m[1000000000]; }
56
57void half4x2_neg1()            { half4x2 m;      half2   v = m[-1]; }
58void half4x2_0()               { half4x2 m;      half2   v = m[0]; }
59void half4x2_1()               { half4x2 m;      half2   v = m[1]; }
60void half4x2_2()               { half4x2 m;      half2   v = m[2]; }
61void half4x2_3()               { half4x2 m;      half2   v = m[3]; }
62void half4x2_4()               { half4x2 m;      half2   v = m[4]; }
63void half4x2_huge()            { half4x2 m;      half2   v = m[1000000000]; }
64
65void half2_neg1_constidx()     { half2 h;        const int INDEX = -1;         half v = h[INDEX]; }
66void half2_0_constidx()        { half2 h;        const int INDEX = 0;          half v = h[INDEX]; }
67void half2_1_constidx()        { half2 h;        const int INDEX = 1;          half v = h[INDEX]; }
68void half2_2_constidx()        { half2 h;        const int INDEX = 2;          half v = h[INDEX]; }
69void half2_huge_constidx()     { half2 h;        const int INDEX = 1000000000; half v = h[INDEX]; }
70
71void half3_neg1_constidx()     { half3 h;        const int INDEX = -1;         half v = h[INDEX]; }
72void half3_0_constidx()        { half3 h;        const int INDEX = 0;          half v = h[INDEX]; }
73void half3_1_constidx()        { half3 h;        const int INDEX = 1;          half v = h[INDEX]; }
74void half3_2_constidx()        { half3 h;        const int INDEX = 2;          half v = h[INDEX]; }
75void half3_3_constidx()        { half3 h;        const int INDEX = 3;          half v = h[INDEX]; }
76void half3_huge_constidx()     { half3 h;        const int INDEX = 1000000000; half v = h[INDEX]; }
77
78void half4_neg1_constidx()     { half4 h;        const int INDEX = -1;         half v = h[INDEX]; }
79void half4_0_constidx()        { half4 h;        const int INDEX = 0;          half v = h[INDEX]; }
80void half4_1_constidx()        { half4 h;        const int INDEX = 1;          half v = h[INDEX]; }
81void half4_2_constidx()        { half4 h;        const int INDEX = 2;          half v = h[INDEX]; }
82void half4_3_constidx()        { half4 h;        const int INDEX = 3;          half v = h[INDEX]; }
83void half4_4_constidx()        { half4 h;        const int INDEX = 4;          half v = h[INDEX]; }
84void half4_huge_constidx()     { half4 h;        const int INDEX = 1000000000; half v = h[INDEX]; }
85