2 %1 = OpExtInstImport "GLSL.std.450"
3 OpMemoryModel Logical GLSL450
4 OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise
5 OpExecutionMode %_entrypoint_v OriginUpperLeft
6 OpName %sk_FragColor "sk_FragColor"
7 OpName %sk_Clockwise "sk_Clockwise"
8 OpName %_UniformBuffer "_UniformBuffer"
9 OpMemberName %_UniformBuffer 0 "testInputs"
10 OpMemberName %_UniformBuffer 1 "colorGreen"
11 OpMemberName %_UniformBuffer 2 "colorRed"
12 OpName %_entrypoint_v "_entrypoint_v"
14 OpName %intValues "intValues"
15 OpName %intGreen "intGreen"
16 OpName %expectedA "expectedA"
17 OpName %expectedB "expectedB"
18 OpDecorate %sk_FragColor RelaxedPrecision
19 OpDecorate %sk_FragColor Location 0
20 OpDecorate %sk_FragColor Index 0
21 OpDecorate %sk_Clockwise BuiltIn FrontFacing
22 OpMemberDecorate %_UniformBuffer 0 Offset 0
23 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
24 OpMemberDecorate %_UniformBuffer 1 Offset 16
25 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
26 OpMemberDecorate %_UniformBuffer 2 Offset 32
27 OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision
28 OpDecorate %_UniformBuffer Block
29 OpDecorate %10 Binding 0
30 OpDecorate %10 DescriptorSet 0
31 OpDecorate %33 RelaxedPrecision
32 OpDecorate %35 RelaxedPrecision
33 OpDecorate %36 RelaxedPrecision
34 OpDecorate %38 RelaxedPrecision
35 OpDecorate %40 RelaxedPrecision
36 OpDecorate %42 RelaxedPrecision
37 OpDecorate %48 RelaxedPrecision
38 OpDecorate %49 RelaxedPrecision
39 OpDecorate %50 RelaxedPrecision
40 OpDecorate %52 RelaxedPrecision
41 OpDecorate %54 RelaxedPrecision
42 OpDecorate %56 RelaxedPrecision
43 OpDecorate %177 RelaxedPrecision
44 OpDecorate %180 RelaxedPrecision
45 OpDecorate %181 RelaxedPrecision
46 %float = OpTypeFloat 32
47 %v4float = OpTypeVector %float 4
48 %_ptr_Output_v4float = OpTypePointer Output %v4float
49 %sk_FragColor = OpVariable %_ptr_Output_v4float Output
51 %_ptr_Input_bool = OpTypePointer Input %bool
52 %sk_Clockwise = OpVariable %_ptr_Input_bool Input
53 %_UniformBuffer = OpTypeStruct %v4float %v4float %v4float
54 %_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
55 %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
57 %15 = OpTypeFunction %void
58 %float_0 = OpConstant %float 0
59 %v2float = OpTypeVector %float 2
60 %19 = OpConstantComposite %v2float %float_0 %float_0
61 %_ptr_Function_v2float = OpTypePointer Function %v2float
62 %23 = OpTypeFunction %v4float %_ptr_Function_v2float
64 %v4int = OpTypeVector %int 4
65 %_ptr_Function_v4int = OpTypePointer Function %v4int
66 %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
67 %int_0 = OpConstant %int 0
68 %float_100 = OpConstant %float 100
69 %int_1 = OpConstant %int 1
70 %int_50 = OpConstant %int 50
71 %int_75 = OpConstant %int 75
72 %int_225 = OpConstant %int 225
73 %63 = OpConstantComposite %v4int %int_50 %int_50 %int_75 %int_225
74 %int_100 = OpConstant %int 100
75 %66 = OpConstantComposite %v4int %int_0 %int_100 %int_75 %int_225
76 %false = OpConstantFalse %bool
77 %v2int = OpTypeVector %int 2
78 %76 = OpConstantComposite %v2int %int_50 %int_50
79 %v2bool = OpTypeVector %bool 2
80 %v3int = OpTypeVector %int 3
81 %87 = OpConstantComposite %v3int %int_50 %int_50 %int_50
82 %v3bool = OpTypeVector %bool 3
83 %96 = OpConstantComposite %v4int %int_50 %int_50 %int_50 %int_50
84 %v4bool = OpTypeVector %bool 4
85 %true = OpConstantTrue %bool
86 %113 = OpConstantComposite %v3int %int_50 %int_50 %int_75
87 %156 = OpConstantComposite %v2int %int_0 %int_100
88 %163 = OpConstantComposite %v3int %int_0 %int_100 %int_75
89 %_ptr_Function_v4float = OpTypePointer Function %v4float
90 %int_2 = OpConstant %int 2
91 %_entrypoint_v = OpFunction %void None %15
93 %20 = OpVariable %_ptr_Function_v2float Function
95 %22 = OpFunctionCall %v4float %main %20
96 OpStore %sk_FragColor %22
99 %main = OpFunction %v4float None %23
100 %24 = OpFunctionParameter %_ptr_Function_v2float
102 %intValues = OpVariable %_ptr_Function_v4int Function
103 %intGreen = OpVariable %_ptr_Function_v4int Function
104 %expectedA = OpVariable %_ptr_Function_v4int Function
105 %expectedB = OpVariable %_ptr_Function_v4int Function
106 %171 = OpVariable %_ptr_Function_v4float Function
107 %30 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
108 %33 = OpLoad %v4float %30
109 %35 = OpVectorTimesScalar %v4float %33 %float_100
110 %36 = OpCompositeExtract %float %35 0
111 %37 = OpConvertFToS %int %36
112 %38 = OpCompositeExtract %float %35 1
113 %39 = OpConvertFToS %int %38
114 %40 = OpCompositeExtract %float %35 2
115 %41 = OpConvertFToS %int %40
116 %42 = OpCompositeExtract %float %35 3
117 %43 = OpConvertFToS %int %42
118 %44 = OpCompositeConstruct %v4int %37 %39 %41 %43
119 OpStore %intValues %44
120 %46 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
121 %48 = OpLoad %v4float %46
122 %49 = OpVectorTimesScalar %v4float %48 %float_100
123 %50 = OpCompositeExtract %float %49 0
124 %51 = OpConvertFToS %int %50
125 %52 = OpCompositeExtract %float %49 1
126 %53 = OpConvertFToS %int %52
127 %54 = OpCompositeExtract %float %49 2
128 %55 = OpConvertFToS %int %54
129 %56 = OpCompositeExtract %float %49 3
130 %57 = OpConvertFToS %int %56
131 %58 = OpCompositeConstruct %v4int %51 %53 %55 %57
132 OpStore %intGreen %58
133 OpStore %expectedA %63
134 OpStore %expectedB %66
135 %69 = OpCompositeExtract %int %44 0
136 %68 = OpExtInst %int %1 SMax %69 %int_50
137 %70 = OpIEqual %bool %68 %int_50
138 OpSelectionMerge %72 None
139 OpBranchConditional %70 %71 %72
141 %74 = OpVectorShuffle %v2int %44 %44 0 1
142 %73 = OpExtInst %v2int %1 SMax %74 %76
143 %77 = OpVectorShuffle %v2int %63 %63 0 1
144 %78 = OpIEqual %v2bool %73 %77
145 %80 = OpAll %bool %78
148 %81 = OpPhi %bool %false %25 %80 %71
149 OpSelectionMerge %83 None
150 OpBranchConditional %81 %82 %83
152 %85 = OpVectorShuffle %v3int %44 %44 0 1 2
153 %84 = OpExtInst %v3int %1 SMax %85 %87
154 %88 = OpVectorShuffle %v3int %63 %63 0 1 2
155 %89 = OpIEqual %v3bool %84 %88
156 %91 = OpAll %bool %89
159 %92 = OpPhi %bool %false %72 %91 %82
160 OpSelectionMerge %94 None
161 OpBranchConditional %92 %93 %94
163 %95 = OpExtInst %v4int %1 SMax %44 %96
164 %97 = OpIEqual %v4bool %95 %63
165 %99 = OpAll %bool %97
168 %100 = OpPhi %bool %false %83 %99 %93
169 OpSelectionMerge %102 None
170 OpBranchConditional %100 %101 %102
174 %104 = OpPhi %bool %false %94 %true %101
175 OpSelectionMerge %106 None
176 OpBranchConditional %104 %105 %106
178 %107 = OpVectorShuffle %v2int %63 %63 0 1
179 %108 = OpIEqual %v2bool %76 %107
180 %109 = OpAll %bool %108
183 %110 = OpPhi %bool %false %102 %109 %105
184 OpSelectionMerge %112 None
185 OpBranchConditional %110 %111 %112
187 %114 = OpVectorShuffle %v3int %63 %63 0 1 2
188 %115 = OpIEqual %v3bool %113 %114
189 %116 = OpAll %bool %115
192 %117 = OpPhi %bool %false %106 %116 %111
193 OpSelectionMerge %119 None
194 OpBranchConditional %117 %118 %119
198 %120 = OpPhi %bool %false %112 %true %118
199 OpSelectionMerge %122 None
200 OpBranchConditional %120 %121 %122
202 %124 = OpCompositeExtract %int %58 0
203 %123 = OpExtInst %int %1 SMax %69 %124
204 %125 = OpIEqual %bool %123 %int_0
207 %126 = OpPhi %bool %false %119 %125 %121
208 OpSelectionMerge %128 None
209 OpBranchConditional %126 %127 %128
211 %130 = OpVectorShuffle %v2int %44 %44 0 1
212 %131 = OpVectorShuffle %v2int %58 %58 0 1
213 %129 = OpExtInst %v2int %1 SMax %130 %131
214 %132 = OpVectorShuffle %v2int %66 %66 0 1
215 %133 = OpIEqual %v2bool %129 %132
216 %134 = OpAll %bool %133
219 %135 = OpPhi %bool %false %122 %134 %127
220 OpSelectionMerge %137 None
221 OpBranchConditional %135 %136 %137
223 %139 = OpVectorShuffle %v3int %44 %44 0 1 2
224 %140 = OpVectorShuffle %v3int %58 %58 0 1 2
225 %138 = OpExtInst %v3int %1 SMax %139 %140
226 %141 = OpVectorShuffle %v3int %66 %66 0 1 2
227 %142 = OpIEqual %v3bool %138 %141
228 %143 = OpAll %bool %142
231 %144 = OpPhi %bool %false %128 %143 %136
232 OpSelectionMerge %146 None
233 OpBranchConditional %144 %145 %146
235 %147 = OpExtInst %v4int %1 SMax %44 %58
236 %148 = OpIEqual %v4bool %147 %66
237 %149 = OpAll %bool %148
240 %150 = OpPhi %bool %false %137 %149 %145
241 OpSelectionMerge %152 None
242 OpBranchConditional %150 %151 %152
246 %153 = OpPhi %bool %false %146 %true %151
247 OpSelectionMerge %155 None
248 OpBranchConditional %153 %154 %155
250 %157 = OpVectorShuffle %v2int %66 %66 0 1
251 %158 = OpIEqual %v2bool %156 %157
252 %159 = OpAll %bool %158
255 %160 = OpPhi %bool %false %152 %159 %154
256 OpSelectionMerge %162 None
257 OpBranchConditional %160 %161 %162
259 %164 = OpVectorShuffle %v3int %66 %66 0 1 2
260 %165 = OpIEqual %v3bool %163 %164
261 %166 = OpAll %bool %165
264 %167 = OpPhi %bool %false %155 %166 %161
265 OpSelectionMerge %169 None
266 OpBranchConditional %167 %168 %169
270 %170 = OpPhi %bool %false %162 %true %168
271 OpSelectionMerge %175 None
272 OpBranchConditional %170 %173 %174
274 %176 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
275 %177 = OpLoad %v4float %176
279 %178 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2
280 %180 = OpLoad %v4float %178
284 %181 = OpLoad %v4float %171