1OpCapability Shader
2%1 = OpExtInstImport "GLSL.std.450"
3OpMemoryModel Logical GLSL450
4OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise
5OpExecutionMode %_entrypoint_v OriginUpperLeft
6OpName %sk_FragColor "sk_FragColor"
7OpName %sk_Clockwise "sk_Clockwise"
8OpName %_UniformBuffer "_UniformBuffer"
9OpMemberName %_UniformBuffer 0 "colorGreen"
10OpMemberName %_UniformBuffer 1 "colorRed"
11OpName %_entrypoint_v "_entrypoint_v"
12OpName %main "main"
13OpName %result "result"
14OpName %a "a"
15OpName %b "b"
16OpName %c "c"
17OpName %d "d"
18OpName %e "e"
19OpName %f "f"
20OpDecorate %sk_FragColor RelaxedPrecision
21OpDecorate %sk_FragColor Location 0
22OpDecorate %sk_FragColor Index 0
23OpDecorate %sk_Clockwise BuiltIn FrontFacing
24OpMemberDecorate %_UniformBuffer 0 Offset 0
25OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
26OpMemberDecorate %_UniformBuffer 1 Offset 16
27OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
28OpDecorate %_UniformBuffer Block
29OpDecorate %10 Binding 0
30OpDecorate %10 DescriptorSet 0
31OpDecorate %159 RelaxedPrecision
32OpDecorate %162 RelaxedPrecision
33OpDecorate %163 RelaxedPrecision
34%float = OpTypeFloat 32
35%v4float = OpTypeVector %float 4
36%_ptr_Output_v4float = OpTypePointer Output %v4float
37%sk_FragColor = OpVariable %_ptr_Output_v4float Output
38%bool = OpTypeBool
39%_ptr_Input_bool = OpTypePointer Input %bool
40%sk_Clockwise = OpVariable %_ptr_Input_bool Input
41%_UniformBuffer = OpTypeStruct %v4float %v4float
42%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
43%10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
44%void = OpTypeVoid
45%15 = OpTypeFunction %void
46%v2float = OpTypeVector %float 2
47%float_0 = OpConstant %float 0
48%19 = OpConstantComposite %v2float %float_0 %float_0
49%_ptr_Function_v2float = OpTypePointer Function %v2float
50%23 = OpTypeFunction %v4float %_ptr_Function_v2float
51%_ptr_Function_float = OpTypePointer Function %float
52%mat2v2float = OpTypeMatrix %v2float 2
53%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float
54%float_1 = OpConstant %float 1
55%v3float = OpTypeVector %float 3
56%mat3v3float = OpTypeMatrix %v3float 3
57%int = OpTypeInt 32 1
58%int_0 = OpConstant %int 0
59%mat4v4float = OpTypeMatrix %v4float 4
60%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float
61%_ptr_Function_v3float = OpTypePointer Function %v3float
62%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float
63%_ptr_Function_v4float = OpTypePointer Function %v4float
64%float_6 = OpConstant %float 6
65%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
66%int_1 = OpConstant %int 1
67%_entrypoint_v = OpFunction %void None %15
68%16 = OpLabel
69%20 = OpVariable %_ptr_Function_v2float Function
70OpStore %20 %19
71%22 = OpFunctionCall %v4float %main %20
72OpStore %sk_FragColor %22
73OpReturn
74OpFunctionEnd
75%main = OpFunction %v4float None %23
76%24 = OpFunctionParameter %_ptr_Function_v2float
77%25 = OpLabel
78%result = OpVariable %_ptr_Function_float Function
79%a = OpVariable %_ptr_Function_mat2v2float Function
80%b = OpVariable %_ptr_Function_mat2v2float Function
81%c = OpVariable %_ptr_Function_mat3v3float Function
82%d = OpVariable %_ptr_Function_mat3v3float Function
83%e = OpVariable %_ptr_Function_mat4v4float Function
84%f = OpVariable %_ptr_Function_mat2v2float Function
85%153 = OpVariable %_ptr_Function_v4float Function
86OpStore %result %float_0
87%34 = OpCompositeConstruct %v3float %float_1 %float_0 %float_0
88%35 = OpCompositeConstruct %v3float %float_0 %float_1 %float_0
89%36 = OpCompositeConstruct %v3float %float_0 %float_0 %float_1
90%32 = OpCompositeConstruct %mat3v3float %34 %35 %36
91%39 = OpCompositeExtract %v3float %32 0
92%40 = OpVectorShuffle %v2float %39 %39 0 1
93%41 = OpCompositeExtract %v3float %32 1
94%42 = OpVectorShuffle %v2float %41 %41 0 1
95%38 = OpCompositeConstruct %mat2v2float %40 %42
96OpStore %a %38
97%43 = OpLoad %float %result
98%46 = OpAccessChain %_ptr_Function_v2float %a %int_0
99%47 = OpLoad %v2float %46
100%48 = OpCompositeExtract %float %47 0
101%49 = OpFAdd %float %43 %48
102OpStore %result %49
103%52 = OpCompositeConstruct %v4float %float_1 %float_0 %float_0 %float_0
104%53 = OpCompositeConstruct %v4float %float_0 %float_1 %float_0 %float_0
105%54 = OpCompositeConstruct %v4float %float_0 %float_0 %float_1 %float_0
106%55 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_1
107%51 = OpCompositeConstruct %mat4v4float %52 %53 %54 %55
108%58 = OpCompositeExtract %v4float %51 0
109%59 = OpVectorShuffle %v2float %58 %58 0 1
110%60 = OpCompositeExtract %v4float %51 1
111%61 = OpVectorShuffle %v2float %60 %60 0 1
112%57 = OpCompositeConstruct %mat2v2float %59 %61
113OpStore %b %57
114%62 = OpLoad %float %result
115%63 = OpAccessChain %_ptr_Function_v2float %b %int_0
116%64 = OpLoad %v2float %63
117%65 = OpCompositeExtract %float %64 0
118%66 = OpFAdd %float %62 %65
119OpStore %result %66
120%70 = OpCompositeConstruct %v4float %float_1 %float_0 %float_0 %float_0
121%71 = OpCompositeConstruct %v4float %float_0 %float_1 %float_0 %float_0
122%72 = OpCompositeConstruct %v4float %float_0 %float_0 %float_1 %float_0
123%73 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_1
124%69 = OpCompositeConstruct %mat4v4float %70 %71 %72 %73
125%75 = OpCompositeExtract %v4float %69 0
126%76 = OpVectorShuffle %v3float %75 %75 0 1 2
127%77 = OpCompositeExtract %v4float %69 1
128%78 = OpVectorShuffle %v3float %77 %77 0 1 2
129%79 = OpCompositeExtract %v4float %69 2
130%80 = OpVectorShuffle %v3float %79 %79 0 1 2
131%74 = OpCompositeConstruct %mat3v3float %76 %78 %80
132OpStore %c %74
133%81 = OpLoad %float %result
134%82 = OpAccessChain %_ptr_Function_v3float %c %int_0
135%84 = OpLoad %v3float %82
136%85 = OpCompositeExtract %float %84 0
137%86 = OpFAdd %float %81 %85
138OpStore %result %86
139%89 = OpCompositeConstruct %v2float %float_1 %float_0
140%90 = OpCompositeConstruct %v2float %float_0 %float_1
141%88 = OpCompositeConstruct %mat2v2float %89 %90
142%92 = OpCompositeExtract %v2float %88 0
143%93 = OpCompositeConstruct %v3float %92 %float_0
144%94 = OpCompositeExtract %v2float %88 1
145%95 = OpCompositeConstruct %v3float %94 %float_0
146%96 = OpCompositeConstruct %v3float %float_0 %float_0 %float_1
147%91 = OpCompositeConstruct %mat3v3float %93 %95 %96
148OpStore %d %91
149%97 = OpLoad %float %result
150%98 = OpAccessChain %_ptr_Function_v3float %d %int_0
151%99 = OpLoad %v3float %98
152%100 = OpCompositeExtract %float %99 0
153%101 = OpFAdd %float %97 %100
154OpStore %result %101
155%105 = OpCompositeConstruct %v2float %float_1 %float_0
156%106 = OpCompositeConstruct %v2float %float_0 %float_1
157%104 = OpCompositeConstruct %mat2v2float %105 %106
158%108 = OpCompositeExtract %v2float %104 0
159%109 = OpCompositeConstruct %v3float %108 %float_0
160%110 = OpCompositeExtract %v2float %104 1
161%111 = OpCompositeConstruct %v3float %110 %float_0
162%112 = OpCompositeConstruct %v3float %float_0 %float_0 %float_1
163%107 = OpCompositeConstruct %mat3v3float %109 %111 %112
164%114 = OpCompositeExtract %v3float %107 0
165%115 = OpCompositeConstruct %v4float %114 %float_0
166%116 = OpCompositeExtract %v3float %107 1
167%117 = OpCompositeConstruct %v4float %116 %float_0
168%118 = OpCompositeExtract %v3float %107 2
169%119 = OpCompositeConstruct %v4float %118 %float_0
170%120 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_1
171%113 = OpCompositeConstruct %mat4v4float %115 %117 %119 %120
172OpStore %e %113
173%121 = OpLoad %float %result
174%122 = OpAccessChain %_ptr_Function_v4float %e %int_0
175%124 = OpLoad %v4float %122
176%125 = OpCompositeExtract %float %124 0
177%126 = OpFAdd %float %121 %125
178OpStore %result %126
179%129 = OpCompositeConstruct %v4float %float_1 %float_0 %float_0 %float_0
180%130 = OpCompositeConstruct %v4float %float_0 %float_1 %float_0 %float_0
181%131 = OpCompositeConstruct %v4float %float_0 %float_0 %float_1 %float_0
182%132 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_1
183%128 = OpCompositeConstruct %mat4v4float %129 %130 %131 %132
184%134 = OpCompositeExtract %v4float %128 0
185%135 = OpVectorShuffle %v3float %134 %134 0 1 2
186%136 = OpCompositeExtract %v4float %128 1
187%137 = OpVectorShuffle %v3float %136 %136 0 1 2
188%138 = OpCompositeExtract %v4float %128 2
189%139 = OpVectorShuffle %v3float %138 %138 0 1 2
190%133 = OpCompositeConstruct %mat3v3float %135 %137 %139
191%141 = OpCompositeExtract %v3float %133 0
192%142 = OpVectorShuffle %v2float %141 %141 0 1
193%143 = OpCompositeExtract %v3float %133 1
194%144 = OpVectorShuffle %v2float %143 %143 0 1
195%140 = OpCompositeConstruct %mat2v2float %142 %144
196OpStore %f %140
197%145 = OpLoad %float %result
198%146 = OpAccessChain %_ptr_Function_v2float %f %int_0
199%147 = OpLoad %v2float %146
200%148 = OpCompositeExtract %float %147 0
201%149 = OpFAdd %float %145 %148
202OpStore %result %149
203%150 = OpLoad %float %result
204%152 = OpFOrdEqual %bool %150 %float_6
205OpSelectionMerge %156 None
206OpBranchConditional %152 %154 %155
207%154 = OpLabel
208%157 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
209%159 = OpLoad %v4float %157
210OpStore %153 %159
211OpBranch %156
212%155 = OpLabel
213%160 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
214%162 = OpLoad %v4float %160
215OpStore %153 %162
216OpBranch %156
217%156 = OpLabel
218%163 = OpLoad %v4float %153
219OpReturnValue %163
220OpFunctionEnd
221