1               OpCapability Shader
2          %1 = OpExtInstImport "GLSL.std.450"
3               OpMemoryModel Logical GLSL450
4               OpEntryPoint Fragment %main "main" %_GLF_color
5               OpExecutionMode %main OriginUpperLeft
6               OpSource ESSL 320
7               OpName %main "main"
8               OpName %a "a"
9               OpName %buf0 "buf0"
10               OpMemberName %buf0 0 "_GLF_uniform_int_values"
11               OpName %_ ""
12               OpName %b "b"
13               OpName %c "c"
14               OpName %_GLF_color "_GLF_color"
15               OpDecorate %_arr_int_uint_4 ArrayStride 16
16               OpMemberDecorate %buf0 0 Offset 0
17               OpDecorate %buf0 Block
18               OpDecorate %_ DescriptorSet 0
19               OpDecorate %_ Binding 0
20               OpDecorate %_GLF_color Location 0
21       %void = OpTypeVoid
22         %11 = OpTypeFunction %void
23        %int = OpTypeInt 32 1
24%_ptr_Function_int = OpTypePointer Function %int
25       %uint = OpTypeInt 32 0
26     %uint_4 = OpConstant %uint 4
27%_arr_int_uint_4 = OpTypeArray %int %uint_4
28       %buf0 = OpTypeStruct %_arr_int_uint_4
29%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
30          %_ = OpVariable %_ptr_Uniform_buf0 Uniform
31      %int_0 = OpConstant %int 0
32%_ptr_Uniform_int = OpTypePointer Uniform %int
33      %int_1 = OpConstant %int 1
34      %int_2 = OpConstant %int 2
35       %bool = OpTypeBool
36      %int_3 = OpConstant %int 3
37       %true = OpConstantTrue %bool
38      %float = OpTypeFloat 32
39    %v4float = OpTypeVector %float 4
40%_ptr_Output_v4float = OpTypePointer Output %v4float
41 %_GLF_color = OpVariable %_ptr_Output_v4float Output
42       %main = OpFunction %void None %11
43         %27 = OpLabel
44          %a = OpVariable %_ptr_Function_int Function
45          %b = OpVariable %_ptr_Function_int Function
46          %c = OpVariable %_ptr_Function_int Function
47         %28 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0
48         %29 = OpLoad %int %28
49               OpStore %a %29
50         %30 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1
51         %31 = OpLoad %int %30
52               OpStore %b %31
53         %32 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_2
54         %33 = OpLoad %int %32
55               OpStore %c %33
56               OpBranch %34
57         %34 = OpLabel
58               OpLoopMerge %35 %36 None
59               OpBranch %37
60         %37 = OpLabel
61         %38 = OpLoad %int %a
62         %39 = OpLoad %int %b
63         %40 = OpSLessThan %bool %38 %39
64               OpBranchConditional %40 %41 %35
65         %41 = OpLabel
66         %42 = OpLoad %int %a
67         %43 = OpIAdd %int %42 %int_1
68               OpStore %a %43
69         %44 = OpLoad %int %c
70         %45 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_2
71         %46 = OpLoad %int %45
72         %47 = OpIEqual %bool %44 %46
73               OpSelectionMerge %48 None
74               OpBranchConditional %47 %49 %50
75         %49 = OpLabel
76         %51 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_3
77         %52 = OpLoad %int %51
78         %53 = OpLoad %int %c
79         %54 = OpIMul %int %53 %52
80               OpStore %c %54
81               OpBranch %48
82         %50 = OpLabel
83               OpSelectionMerge %55 None
84               OpBranchConditional %true %56 %55
85         %56 = OpLabel
86               OpBranch %36
87         %55 = OpLabel
88               OpBranch %48
89         %48 = OpLabel
90               OpBranch %36
91         %36 = OpLabel
92               OpBranch %34
93         %35 = OpLabel
94         %57 = OpLoad %int %a
95         %58 = OpLoad %int %b
96         %59 = OpIEqual %bool %57 %58
97               OpSelectionMerge %60 None
98               OpBranchConditional %59 %61 %60
99         %61 = OpLabel
100         %62 = OpLoad %int %c
101         %63 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_3
102         %64 = OpLoad %int %63
103         %65 = OpIEqual %bool %62 %64
104               OpBranch %60
105         %60 = OpLabel
106         %66 = OpPhi %bool %59 %35 %65 %61
107               OpSelectionMerge %67 None
108               OpBranchConditional %66 %68 %69
109         %68 = OpLabel
110         %70 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_2
111         %71 = OpLoad %int %70
112         %72 = OpConvertSToF %float %71
113         %73 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0
114         %74 = OpLoad %int %73
115         %75 = OpConvertSToF %float %74
116         %76 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0
117         %77 = OpLoad %int %76
118         %78 = OpConvertSToF %float %77
119         %79 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_2
120         %80 = OpLoad %int %79
121         %81 = OpConvertSToF %float %80
122         %82 = OpCompositeConstruct %v4float %72 %75 %78 %81
123               OpStore %_GLF_color %82
124               OpBranch %67
125         %69 = OpLabel
126         %83 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0
127         %84 = OpLoad %int %83
128         %85 = OpConvertSToF %float %84
129         %86 = OpCompositeConstruct %v4float %85 %85 %85 %85
130               OpStore %_GLF_color %86
131               OpBranch %67
132         %67 = OpLabel
133               OpReturn
134               OpFunctionEnd
135