1
2/*
3Copyright (c) 2019 The Khronos Group Inc.
4Use of this source code is governed by an MIT-style license that can be
5found in the LICENSE.txt file.
6*/
7
8
9const float FloatConst1 = 3.0 * 8.0, floatConst2 = 4.0;
10const bool BoolConst1 = true && true || false;
11const bool BoolConst2 = false || !false && false;
12
13void main (void)
14{
15    float float1 = 4.0, float2 = floatConst2;
16    int int_1 = int(FloatConst1);
17    vec4 vec4_1;
18    vec3 vec3_1 = vec3(1, 1, 1);
19	vec3 vec3_2 = vec3(0, 0, 0);
20//  unsigned int unsigned_int_1;
21    bool bool4, bool5;
22
23    bool4 = bool5;
24    //float1 = bool5;
25    //bool5 = float1;
26
27    bool4 = 4 > 5;
28    bool4 = !(3.2 != 0.0);
29    bool4 = bool(float1);
30    bool4 = bool(int_1);
31    float1 = float(bool4);
32    float1 = float(int_1);
33    int_1 = int(float1);
34    int_1 = int(bool4);
35
36    {
37        int a, b, c;
38
39        a = b;
40        b = c;
41        {
42            int b, c, d;
43
44            b = c;
45            c = d;
46            {
47                int a, d, e;
48
49                a = d;
50                d = e;
51            }
52            {
53                int a, b, c;
54                a = b;
55                b = c;
56            }
57        }
58        a = b;
59        b = c;
60    }
61
62    {
63        float f1, f2;
64        vec3 v31, v32;
65
66        max(f1, f2);
67        max(v31, v32);
68
69        vec4 v4 = vec4(3.0);
70        vec3 v3 = -vec3(2.0, 1.0, 3.0);
71        mat2 m2 = mat2(3.0, 4.0, 6.0, 3.0);
72        //mat4 m4 = mat4(1.0, m2, v3, v4, m2);
73    }
74
75    if (BoolConst1)
76        ++vec3_1;
77    else
78        --vec3_1;
79
80    if (BoolConst2)
81        ++vec3_1;
82    else
83        --vec3_1;
84
85    if (BoolConst1 || BoolConst2)
86        ++vec3_1;
87    else
88        --vec3_1;
89
90    if (BoolConst2 && BoolConst1)
91        ++vec3_1;
92    else
93        --vec3_1;
94
95    if (FloatConst1 != 0.0)
96        --int_1;
97    else
98        ++int_1;
99
100    if (0 != 0)
101        ++int_1;
102    else
103        --int_1;
104
105    bool4 = BoolConst1 && ! (int_1 != 0) && ! BoolConst1  && ! (FloatConst1 != 0.0) && (FloatConst1 != 0.0) && (float1 != 0.0);
106
107    float1 = 5 != 0 ? float1 : float(int_1);
108    float1 = BoolConst1 ? float1 : float(int_1);
109
110    if (float1 != float1)
111        ++int_1;
112    else
113        --int_1;
114
115    float1 = float1 != float1 ? float1 : float(int_1);
116
117    --int_1;
118    ++float1;
119    (vec4_1.x)--;
120    vec3_1++;
121
122    if (vec3_1.x > vec3_2.x)
123        float1 = 4.0 + 6.0;
124
125    if (bool4 ^^ bool5)
126        float1 *= 2.4;
127
128    if (false ^^ false)
129        float1 *= 2.5;
130
131    if (true ^^ false)
132        float1 *= 2.6;
133
134    {
135        int i;
136    }
137
138    if (bool4) {
139        int i;
140    } else {
141        int i;
142        i = 5;
143    }
144
145    mat4 m1;
146    m1[2][1] = 4.0;
147
148    gl_Position = vec4(float1+float1, float1, float1, float(int_1));
149}
150