1cb93a386Sopenharmony_ciOpCapability Shader
2cb93a386Sopenharmony_ci%1 = OpExtInstImport "GLSL.std.450"
3cb93a386Sopenharmony_ciOpMemoryModel Logical GLSL450
4cb93a386Sopenharmony_ciOpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise
5cb93a386Sopenharmony_ciOpExecutionMode %_entrypoint_v OriginUpperLeft
6cb93a386Sopenharmony_ciOpName %sk_FragColor "sk_FragColor"
7cb93a386Sopenharmony_ciOpName %sk_Clockwise "sk_Clockwise"
8cb93a386Sopenharmony_ciOpName %_UniformBuffer "_UniformBuffer"
9cb93a386Sopenharmony_ciOpMemberName %_UniformBuffer 0 "colorRed"
10cb93a386Sopenharmony_ciOpMemberName %_UniformBuffer 1 "colorGreen"
11cb93a386Sopenharmony_ciOpName %_entrypoint_v "_entrypoint_v"
12cb93a386Sopenharmony_ciOpName %S "S"
13cb93a386Sopenharmony_ciOpMemberName %S 0 "x"
14cb93a386Sopenharmony_ciOpMemberName %S 1 "y"
15cb93a386Sopenharmony_ciOpName %returns_a_struct_S "returns_a_struct_S"
16cb93a386Sopenharmony_ciOpName %s "s"
17cb93a386Sopenharmony_ciOpName %constructs_a_struct_S "constructs_a_struct_S"
18cb93a386Sopenharmony_ciOpName %accepts_a_struct_fS "accepts_a_struct_fS"
19cb93a386Sopenharmony_ciOpName %modifies_a_struct_vS "modifies_a_struct_vS"
20cb93a386Sopenharmony_ciOpName %main "main"
21cb93a386Sopenharmony_ciOpName %s_0 "s"
22cb93a386Sopenharmony_ciOpName %x "x"
23cb93a386Sopenharmony_ciOpName %expected "expected"
24cb93a386Sopenharmony_ciOpName %Nested "Nested"
25cb93a386Sopenharmony_ciOpMemberName %Nested 0 "a"
26cb93a386Sopenharmony_ciOpMemberName %Nested 1 "b"
27cb93a386Sopenharmony_ciOpName %n1 "n1"
28cb93a386Sopenharmony_ciOpName %n2 "n2"
29cb93a386Sopenharmony_ciOpName %n3 "n3"
30cb93a386Sopenharmony_ciOpName %Compound "Compound"
31cb93a386Sopenharmony_ciOpMemberName %Compound 0 "f4"
32cb93a386Sopenharmony_ciOpMemberName %Compound 1 "i3"
33cb93a386Sopenharmony_ciOpName %c1 "c1"
34cb93a386Sopenharmony_ciOpName %c2 "c2"
35cb93a386Sopenharmony_ciOpName %c3 "c3"
36cb93a386Sopenharmony_ciOpName %valid "valid"
37cb93a386Sopenharmony_ciOpDecorate %sk_FragColor RelaxedPrecision
38cb93a386Sopenharmony_ciOpDecorate %sk_FragColor Location 0
39cb93a386Sopenharmony_ciOpDecorate %sk_FragColor Index 0
40cb93a386Sopenharmony_ciOpDecorate %sk_Clockwise BuiltIn FrontFacing
41cb93a386Sopenharmony_ciOpMemberDecorate %_UniformBuffer 0 Offset 0
42cb93a386Sopenharmony_ciOpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
43cb93a386Sopenharmony_ciOpMemberDecorate %_UniformBuffer 1 Offset 16
44cb93a386Sopenharmony_ciOpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
45cb93a386Sopenharmony_ciOpDecorate %_UniformBuffer Block
46cb93a386Sopenharmony_ciOpDecorate %14 Binding 0
47cb93a386Sopenharmony_ciOpDecorate %14 DescriptorSet 0
48cb93a386Sopenharmony_ciOpMemberDecorate %S 0 Offset 0
49cb93a386Sopenharmony_ciOpMemberDecorate %S 1 Offset 4
50cb93a386Sopenharmony_ciOpDecorate %41 RelaxedPrecision
51cb93a386Sopenharmony_ciOpDecorate %70 RelaxedPrecision
52cb93a386Sopenharmony_ciOpMemberDecorate %Nested 0 Offset 0
53cb93a386Sopenharmony_ciOpMemberDecorate %Nested 0 RelaxedPrecision
54cb93a386Sopenharmony_ciOpMemberDecorate %Nested 1 Offset 16
55cb93a386Sopenharmony_ciOpMemberDecorate %Nested 1 RelaxedPrecision
56cb93a386Sopenharmony_ciOpDecorate %84 RelaxedPrecision
57cb93a386Sopenharmony_ciOpDecorate %86 RelaxedPrecision
58cb93a386Sopenharmony_ciOpDecorate %87 RelaxedPrecision
59cb93a386Sopenharmony_ciOpDecorate %89 RelaxedPrecision
60cb93a386Sopenharmony_ciOpMemberDecorate %Compound 0 Offset 0
61cb93a386Sopenharmony_ciOpMemberDecorate %Compound 1 Offset 16
62cb93a386Sopenharmony_ciOpDecorate %108 RelaxedPrecision
63cb93a386Sopenharmony_ciOpDecorate %109 RelaxedPrecision
64cb93a386Sopenharmony_ciOpDecorate %114 RelaxedPrecision
65cb93a386Sopenharmony_ciOpDecorate %115 RelaxedPrecision
66cb93a386Sopenharmony_ciOpDecorate %137 RelaxedPrecision
67cb93a386Sopenharmony_ciOpDecorate %138 RelaxedPrecision
68cb93a386Sopenharmony_ciOpDecorate %149 RelaxedPrecision
69cb93a386Sopenharmony_ciOpDecorate %161 RelaxedPrecision
70cb93a386Sopenharmony_ciOpDecorate %173 RelaxedPrecision
71cb93a386Sopenharmony_ciOpDecorate %174 RelaxedPrecision
72cb93a386Sopenharmony_ciOpDecorate %197 RelaxedPrecision
73cb93a386Sopenharmony_ciOpDecorate %198 RelaxedPrecision
74cb93a386Sopenharmony_ciOpDecorate %221 RelaxedPrecision
75cb93a386Sopenharmony_ciOpDecorate %247 RelaxedPrecision
76cb93a386Sopenharmony_ciOpDecorate %248 RelaxedPrecision
77cb93a386Sopenharmony_ciOpDecorate %263 RelaxedPrecision
78cb93a386Sopenharmony_ciOpDecorate %264 RelaxedPrecision
79cb93a386Sopenharmony_ciOpDecorate %275 RelaxedPrecision
80cb93a386Sopenharmony_ciOpDecorate %282 RelaxedPrecision
81cb93a386Sopenharmony_ciOpDecorate %284 RelaxedPrecision
82cb93a386Sopenharmony_ciOpDecorate %285 RelaxedPrecision
83cb93a386Sopenharmony_ci%float = OpTypeFloat 32
84cb93a386Sopenharmony_ci%v4float = OpTypeVector %float 4
85cb93a386Sopenharmony_ci%_ptr_Output_v4float = OpTypePointer Output %v4float
86cb93a386Sopenharmony_ci%sk_FragColor = OpVariable %_ptr_Output_v4float Output
87cb93a386Sopenharmony_ci%bool = OpTypeBool
88cb93a386Sopenharmony_ci%_ptr_Input_bool = OpTypePointer Input %bool
89cb93a386Sopenharmony_ci%sk_Clockwise = OpVariable %_ptr_Input_bool Input
90cb93a386Sopenharmony_ci%_UniformBuffer = OpTypeStruct %v4float %v4float
91cb93a386Sopenharmony_ci%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
92cb93a386Sopenharmony_ci%14 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
93cb93a386Sopenharmony_ci%void = OpTypeVoid
94cb93a386Sopenharmony_ci%19 = OpTypeFunction %void
95cb93a386Sopenharmony_ci%v2float = OpTypeVector %float 2
96cb93a386Sopenharmony_ci%float_0 = OpConstant %float 0
97cb93a386Sopenharmony_ci%23 = OpConstantComposite %v2float %float_0 %float_0
98cb93a386Sopenharmony_ci%_ptr_Function_v2float = OpTypePointer Function %v2float
99cb93a386Sopenharmony_ci%int = OpTypeInt 32 1
100cb93a386Sopenharmony_ci%S = OpTypeStruct %float %int
101cb93a386Sopenharmony_ci%29 = OpTypeFunction %S
102cb93a386Sopenharmony_ci%_ptr_Function_S = OpTypePointer Function %S
103cb93a386Sopenharmony_ci%float_1 = OpConstant %float 1
104cb93a386Sopenharmony_ci%int_0 = OpConstant %int 0
105cb93a386Sopenharmony_ci%_ptr_Function_float = OpTypePointer Function %float
106cb93a386Sopenharmony_ci%int_2 = OpConstant %int 2
107cb93a386Sopenharmony_ci%int_1 = OpConstant %int 1
108cb93a386Sopenharmony_ci%_ptr_Function_int = OpTypePointer Function %int
109cb93a386Sopenharmony_ci%float_2 = OpConstant %float 2
110cb93a386Sopenharmony_ci%int_3 = OpConstant %int 3
111cb93a386Sopenharmony_ci%46 = OpTypeFunction %float %_ptr_Function_S
112cb93a386Sopenharmony_ci%55 = OpTypeFunction %void %_ptr_Function_S
113cb93a386Sopenharmony_ci%64 = OpTypeFunction %v4float %_ptr_Function_v2float
114cb93a386Sopenharmony_ci%Nested = OpTypeStruct %S %S
115cb93a386Sopenharmony_ci%_ptr_Function_Nested = OpTypePointer Function %Nested
116cb93a386Sopenharmony_ci%v3int = OpTypeVector %int 3
117cb93a386Sopenharmony_ci%Compound = OpTypeStruct %v4float %v3int
118cb93a386Sopenharmony_ci%_ptr_Function_Compound = OpTypePointer Function %Compound
119cb93a386Sopenharmony_ci%float_3 = OpConstant %float 3
120cb93a386Sopenharmony_ci%float_4 = OpConstant %float 4
121cb93a386Sopenharmony_ci%99 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
122cb93a386Sopenharmony_ci%int_5 = OpConstant %int 5
123cb93a386Sopenharmony_ci%int_6 = OpConstant %int 6
124cb93a386Sopenharmony_ci%int_7 = OpConstant %int 7
125cb93a386Sopenharmony_ci%103 = OpConstantComposite %v3int %int_5 %int_6 %int_7
126cb93a386Sopenharmony_ci%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
127cb93a386Sopenharmony_ci%_ptr_Function_bool = OpTypePointer Function %bool
128cb93a386Sopenharmony_ci%false = OpConstantFalse %bool
129cb93a386Sopenharmony_ci%v4bool = OpTypeVector %bool 4
130cb93a386Sopenharmony_ci%v3bool = OpTypeVector %bool 3
131cb93a386Sopenharmony_ci%_ptr_Function_v4float = OpTypePointer Function %v4float
132cb93a386Sopenharmony_ci%_entrypoint_v = OpFunction %void None %19
133cb93a386Sopenharmony_ci%20 = OpLabel
134cb93a386Sopenharmony_ci%24 = OpVariable %_ptr_Function_v2float Function
135cb93a386Sopenharmony_ciOpStore %24 %23
136cb93a386Sopenharmony_ci%26 = OpFunctionCall %v4float %main %24
137cb93a386Sopenharmony_ciOpStore %sk_FragColor %26
138cb93a386Sopenharmony_ciOpReturn
139cb93a386Sopenharmony_ciOpFunctionEnd
140cb93a386Sopenharmony_ci%returns_a_struct_S = OpFunction %S None %29
141cb93a386Sopenharmony_ci%30 = OpLabel
142cb93a386Sopenharmony_ci%s = OpVariable %_ptr_Function_S Function
143cb93a386Sopenharmony_ci%35 = OpAccessChain %_ptr_Function_float %s %int_0
144cb93a386Sopenharmony_ciOpStore %35 %float_1
145cb93a386Sopenharmony_ci%39 = OpAccessChain %_ptr_Function_int %s %int_1
146cb93a386Sopenharmony_ciOpStore %39 %int_2
147cb93a386Sopenharmony_ci%41 = OpLoad %S %s
148cb93a386Sopenharmony_ciOpReturnValue %41
149cb93a386Sopenharmony_ciOpFunctionEnd
150cb93a386Sopenharmony_ci%constructs_a_struct_S = OpFunction %S None %29
151cb93a386Sopenharmony_ci%42 = OpLabel
152cb93a386Sopenharmony_ci%45 = OpCompositeConstruct %S %float_2 %int_3
153cb93a386Sopenharmony_ciOpReturnValue %45
154cb93a386Sopenharmony_ciOpFunctionEnd
155cb93a386Sopenharmony_ci%accepts_a_struct_fS = OpFunction %float None %46
156cb93a386Sopenharmony_ci%47 = OpFunctionParameter %_ptr_Function_S
157cb93a386Sopenharmony_ci%48 = OpLabel
158cb93a386Sopenharmony_ci%49 = OpAccessChain %_ptr_Function_float %47 %int_0
159cb93a386Sopenharmony_ci%50 = OpLoad %float %49
160cb93a386Sopenharmony_ci%51 = OpAccessChain %_ptr_Function_int %47 %int_1
161cb93a386Sopenharmony_ci%52 = OpLoad %int %51
162cb93a386Sopenharmony_ci%53 = OpConvertSToF %float %52
163cb93a386Sopenharmony_ci%54 = OpFAdd %float %50 %53
164cb93a386Sopenharmony_ciOpReturnValue %54
165cb93a386Sopenharmony_ciOpFunctionEnd
166cb93a386Sopenharmony_ci%modifies_a_struct_vS = OpFunction %void None %55
167cb93a386Sopenharmony_ci%56 = OpFunctionParameter %_ptr_Function_S
168cb93a386Sopenharmony_ci%57 = OpLabel
169cb93a386Sopenharmony_ci%58 = OpAccessChain %_ptr_Function_float %56 %int_0
170cb93a386Sopenharmony_ci%59 = OpLoad %float %58
171cb93a386Sopenharmony_ci%60 = OpFAdd %float %59 %float_1
172cb93a386Sopenharmony_ciOpStore %58 %60
173cb93a386Sopenharmony_ci%61 = OpAccessChain %_ptr_Function_int %56 %int_1
174cb93a386Sopenharmony_ci%62 = OpLoad %int %61
175cb93a386Sopenharmony_ci%63 = OpIAdd %int %62 %int_1
176cb93a386Sopenharmony_ciOpStore %61 %63
177cb93a386Sopenharmony_ciOpReturn
178cb93a386Sopenharmony_ciOpFunctionEnd
179cb93a386Sopenharmony_ci%main = OpFunction %v4float None %64
180cb93a386Sopenharmony_ci%65 = OpFunctionParameter %_ptr_Function_v2float
181cb93a386Sopenharmony_ci%66 = OpLabel
182cb93a386Sopenharmony_ci%s_0 = OpVariable %_ptr_Function_S Function
183cb93a386Sopenharmony_ci%x = OpVariable %_ptr_Function_float Function
184cb93a386Sopenharmony_ci%71 = OpVariable %_ptr_Function_S Function
185cb93a386Sopenharmony_ci%expected = OpVariable %_ptr_Function_S Function
186cb93a386Sopenharmony_ci%n1 = OpVariable %_ptr_Function_Nested Function
187cb93a386Sopenharmony_ci%n2 = OpVariable %_ptr_Function_Nested Function
188cb93a386Sopenharmony_ci%n3 = OpVariable %_ptr_Function_Nested Function
189cb93a386Sopenharmony_ci%90 = OpVariable %_ptr_Function_S Function
190cb93a386Sopenharmony_ci%c1 = OpVariable %_ptr_Function_Compound Function
191cb93a386Sopenharmony_ci%c2 = OpVariable %_ptr_Function_Compound Function
192cb93a386Sopenharmony_ci%c3 = OpVariable %_ptr_Function_Compound Function
193cb93a386Sopenharmony_ci%valid = OpVariable %_ptr_Function_bool Function
194cb93a386Sopenharmony_ci%276 = OpVariable %_ptr_Function_v4float Function
195cb93a386Sopenharmony_ci%68 = OpFunctionCall %S %returns_a_struct_S
196cb93a386Sopenharmony_ciOpStore %s_0 %68
197cb93a386Sopenharmony_ci%70 = OpLoad %S %s_0
198cb93a386Sopenharmony_ciOpStore %71 %70
199cb93a386Sopenharmony_ci%72 = OpFunctionCall %float %accepts_a_struct_fS %71
200cb93a386Sopenharmony_ciOpStore %x %72
201cb93a386Sopenharmony_ci%73 = OpFunctionCall %void %modifies_a_struct_vS %s_0
202cb93a386Sopenharmony_ci%75 = OpFunctionCall %S %constructs_a_struct_S
203cb93a386Sopenharmony_ciOpStore %expected %75
204cb93a386Sopenharmony_ci%81 = OpFunctionCall %S %returns_a_struct_S
205cb93a386Sopenharmony_ci%82 = OpAccessChain %_ptr_Function_S %n1 %int_0
206cb93a386Sopenharmony_ciOpStore %82 %81
207cb93a386Sopenharmony_ci%83 = OpAccessChain %_ptr_Function_S %n1 %int_0
208cb93a386Sopenharmony_ci%84 = OpLoad %S %83
209cb93a386Sopenharmony_ci%85 = OpAccessChain %_ptr_Function_S %n1 %int_1
210cb93a386Sopenharmony_ciOpStore %85 %84
211cb93a386Sopenharmony_ci%86 = OpLoad %Nested %n1
212cb93a386Sopenharmony_ciOpStore %n2 %86
213cb93a386Sopenharmony_ci%87 = OpLoad %Nested %n2
214cb93a386Sopenharmony_ciOpStore %n3 %87
215cb93a386Sopenharmony_ci%88 = OpAccessChain %_ptr_Function_S %n3 %int_1
216cb93a386Sopenharmony_ci%89 = OpLoad %S %88
217cb93a386Sopenharmony_ciOpStore %90 %89
218cb93a386Sopenharmony_ci%91 = OpFunctionCall %void %modifies_a_struct_vS %90
219cb93a386Sopenharmony_ci%92 = OpLoad %S %90
220cb93a386Sopenharmony_ciOpStore %88 %92
221cb93a386Sopenharmony_ci%104 = OpCompositeConstruct %Compound %99 %103
222cb93a386Sopenharmony_ciOpStore %c1 %104
223cb93a386Sopenharmony_ci%106 = OpAccessChain %_ptr_Uniform_v4float %14 %int_1
224cb93a386Sopenharmony_ci%108 = OpLoad %v4float %106
225cb93a386Sopenharmony_ci%109 = OpCompositeExtract %float %108 1
226cb93a386Sopenharmony_ci%110 = OpCompositeConstruct %v4float %109 %float_2 %float_3 %float_4
227cb93a386Sopenharmony_ci%111 = OpCompositeConstruct %Compound %110 %103
228cb93a386Sopenharmony_ciOpStore %c2 %111
229cb93a386Sopenharmony_ci%113 = OpAccessChain %_ptr_Uniform_v4float %14 %int_1
230cb93a386Sopenharmony_ci%114 = OpLoad %v4float %113
231cb93a386Sopenharmony_ci%115 = OpCompositeExtract %float %114 0
232cb93a386Sopenharmony_ci%116 = OpCompositeConstruct %v4float %115 %float_2 %float_3 %float_4
233cb93a386Sopenharmony_ci%117 = OpCompositeConstruct %Compound %116 %103
234cb93a386Sopenharmony_ciOpStore %c3 %117
235cb93a386Sopenharmony_ci%121 = OpLoad %float %x
236cb93a386Sopenharmony_ci%122 = OpFOrdEqual %bool %121 %float_3
237cb93a386Sopenharmony_ciOpSelectionMerge %124 None
238cb93a386Sopenharmony_ciOpBranchConditional %122 %123 %124
239cb93a386Sopenharmony_ci%123 = OpLabel
240cb93a386Sopenharmony_ci%125 = OpAccessChain %_ptr_Function_float %s_0 %int_0
241cb93a386Sopenharmony_ci%126 = OpLoad %float %125
242cb93a386Sopenharmony_ci%127 = OpFOrdEqual %bool %126 %float_2
243cb93a386Sopenharmony_ciOpBranch %124
244cb93a386Sopenharmony_ci%124 = OpLabel
245cb93a386Sopenharmony_ci%128 = OpPhi %bool %false %66 %127 %123
246cb93a386Sopenharmony_ciOpSelectionMerge %130 None
247cb93a386Sopenharmony_ciOpBranchConditional %128 %129 %130
248cb93a386Sopenharmony_ci%129 = OpLabel
249cb93a386Sopenharmony_ci%131 = OpAccessChain %_ptr_Function_int %s_0 %int_1
250cb93a386Sopenharmony_ci%132 = OpLoad %int %131
251cb93a386Sopenharmony_ci%133 = OpIEqual %bool %132 %int_3
252cb93a386Sopenharmony_ciOpBranch %130
253cb93a386Sopenharmony_ci%130 = OpLabel
254cb93a386Sopenharmony_ci%134 = OpPhi %bool %false %124 %133 %129
255cb93a386Sopenharmony_ciOpSelectionMerge %136 None
256cb93a386Sopenharmony_ciOpBranchConditional %134 %135 %136
257cb93a386Sopenharmony_ci%135 = OpLabel
258cb93a386Sopenharmony_ci%137 = OpLoad %S %s_0
259cb93a386Sopenharmony_ci%138 = OpLoad %S %expected
260cb93a386Sopenharmony_ci%139 = OpCompositeExtract %float %137 0
261cb93a386Sopenharmony_ci%140 = OpCompositeExtract %float %138 0
262cb93a386Sopenharmony_ci%141 = OpFOrdEqual %bool %139 %140
263cb93a386Sopenharmony_ci%142 = OpCompositeExtract %int %137 1
264cb93a386Sopenharmony_ci%143 = OpCompositeExtract %int %138 1
265cb93a386Sopenharmony_ci%144 = OpIEqual %bool %142 %143
266cb93a386Sopenharmony_ci%145 = OpLogicalAnd %bool %144 %141
267cb93a386Sopenharmony_ciOpBranch %136
268cb93a386Sopenharmony_ci%136 = OpLabel
269cb93a386Sopenharmony_ci%146 = OpPhi %bool %false %130 %145 %135
270cb93a386Sopenharmony_ciOpSelectionMerge %148 None
271cb93a386Sopenharmony_ciOpBranchConditional %146 %147 %148
272cb93a386Sopenharmony_ci%147 = OpLabel
273cb93a386Sopenharmony_ci%149 = OpLoad %S %s_0
274cb93a386Sopenharmony_ci%150 = OpCompositeConstruct %S %float_2 %int_3
275cb93a386Sopenharmony_ci%151 = OpCompositeExtract %float %149 0
276cb93a386Sopenharmony_ci%152 = OpCompositeExtract %float %150 0
277cb93a386Sopenharmony_ci%153 = OpFOrdEqual %bool %151 %152
278cb93a386Sopenharmony_ci%154 = OpCompositeExtract %int %149 1
279cb93a386Sopenharmony_ci%155 = OpCompositeExtract %int %150 1
280cb93a386Sopenharmony_ci%156 = OpIEqual %bool %154 %155
281cb93a386Sopenharmony_ci%157 = OpLogicalAnd %bool %156 %153
282cb93a386Sopenharmony_ciOpBranch %148
283cb93a386Sopenharmony_ci%148 = OpLabel
284cb93a386Sopenharmony_ci%158 = OpPhi %bool %false %136 %157 %147
285cb93a386Sopenharmony_ciOpSelectionMerge %160 None
286cb93a386Sopenharmony_ciOpBranchConditional %158 %159 %160
287cb93a386Sopenharmony_ci%159 = OpLabel
288cb93a386Sopenharmony_ci%161 = OpLoad %S %s_0
289cb93a386Sopenharmony_ci%162 = OpFunctionCall %S %returns_a_struct_S
290cb93a386Sopenharmony_ci%163 = OpCompositeExtract %float %161 0
291cb93a386Sopenharmony_ci%164 = OpCompositeExtract %float %162 0
292cb93a386Sopenharmony_ci%165 = OpFOrdNotEqual %bool %163 %164
293cb93a386Sopenharmony_ci%166 = OpCompositeExtract %int %161 1
294cb93a386Sopenharmony_ci%167 = OpCompositeExtract %int %162 1
295cb93a386Sopenharmony_ci%168 = OpINotEqual %bool %166 %167
296cb93a386Sopenharmony_ci%169 = OpLogicalOr %bool %168 %165
297cb93a386Sopenharmony_ciOpBranch %160
298cb93a386Sopenharmony_ci%160 = OpLabel
299cb93a386Sopenharmony_ci%170 = OpPhi %bool %false %148 %169 %159
300cb93a386Sopenharmony_ciOpSelectionMerge %172 None
301cb93a386Sopenharmony_ciOpBranchConditional %170 %171 %172
302cb93a386Sopenharmony_ci%171 = OpLabel
303cb93a386Sopenharmony_ci%173 = OpLoad %Nested %n1
304cb93a386Sopenharmony_ci%174 = OpLoad %Nested %n2
305cb93a386Sopenharmony_ci%175 = OpCompositeExtract %S %173 0
306cb93a386Sopenharmony_ci%176 = OpCompositeExtract %S %174 0
307cb93a386Sopenharmony_ci%177 = OpCompositeExtract %float %175 0
308cb93a386Sopenharmony_ci%178 = OpCompositeExtract %float %176 0
309cb93a386Sopenharmony_ci%179 = OpFOrdEqual %bool %177 %178
310cb93a386Sopenharmony_ci%180 = OpCompositeExtract %int %175 1
311cb93a386Sopenharmony_ci%181 = OpCompositeExtract %int %176 1
312cb93a386Sopenharmony_ci%182 = OpIEqual %bool %180 %181
313cb93a386Sopenharmony_ci%183 = OpLogicalAnd %bool %182 %179
314cb93a386Sopenharmony_ci%184 = OpCompositeExtract %S %173 1
315cb93a386Sopenharmony_ci%185 = OpCompositeExtract %S %174 1
316cb93a386Sopenharmony_ci%186 = OpCompositeExtract %float %184 0
317cb93a386Sopenharmony_ci%187 = OpCompositeExtract %float %185 0
318cb93a386Sopenharmony_ci%188 = OpFOrdEqual %bool %186 %187
319cb93a386Sopenharmony_ci%189 = OpCompositeExtract %int %184 1
320cb93a386Sopenharmony_ci%190 = OpCompositeExtract %int %185 1
321cb93a386Sopenharmony_ci%191 = OpIEqual %bool %189 %190
322cb93a386Sopenharmony_ci%192 = OpLogicalAnd %bool %191 %188
323cb93a386Sopenharmony_ci%193 = OpLogicalAnd %bool %192 %183
324cb93a386Sopenharmony_ciOpBranch %172
325cb93a386Sopenharmony_ci%172 = OpLabel
326cb93a386Sopenharmony_ci%194 = OpPhi %bool %false %160 %193 %171
327cb93a386Sopenharmony_ciOpSelectionMerge %196 None
328cb93a386Sopenharmony_ciOpBranchConditional %194 %195 %196
329cb93a386Sopenharmony_ci%195 = OpLabel
330cb93a386Sopenharmony_ci%197 = OpLoad %Nested %n1
331cb93a386Sopenharmony_ci%198 = OpLoad %Nested %n3
332cb93a386Sopenharmony_ci%199 = OpCompositeExtract %S %197 0
333cb93a386Sopenharmony_ci%200 = OpCompositeExtract %S %198 0
334cb93a386Sopenharmony_ci%201 = OpCompositeExtract %float %199 0
335cb93a386Sopenharmony_ci%202 = OpCompositeExtract %float %200 0
336cb93a386Sopenharmony_ci%203 = OpFOrdNotEqual %bool %201 %202
337cb93a386Sopenharmony_ci%204 = OpCompositeExtract %int %199 1
338cb93a386Sopenharmony_ci%205 = OpCompositeExtract %int %200 1
339cb93a386Sopenharmony_ci%206 = OpINotEqual %bool %204 %205
340cb93a386Sopenharmony_ci%207 = OpLogicalOr %bool %206 %203
341cb93a386Sopenharmony_ci%208 = OpCompositeExtract %S %197 1
342cb93a386Sopenharmony_ci%209 = OpCompositeExtract %S %198 1
343cb93a386Sopenharmony_ci%210 = OpCompositeExtract %float %208 0
344cb93a386Sopenharmony_ci%211 = OpCompositeExtract %float %209 0
345cb93a386Sopenharmony_ci%212 = OpFOrdNotEqual %bool %210 %211
346cb93a386Sopenharmony_ci%213 = OpCompositeExtract %int %208 1
347cb93a386Sopenharmony_ci%214 = OpCompositeExtract %int %209 1
348cb93a386Sopenharmony_ci%215 = OpINotEqual %bool %213 %214
349cb93a386Sopenharmony_ci%216 = OpLogicalOr %bool %215 %212
350cb93a386Sopenharmony_ci%217 = OpLogicalOr %bool %216 %207
351cb93a386Sopenharmony_ciOpBranch %196
352cb93a386Sopenharmony_ci%196 = OpLabel
353cb93a386Sopenharmony_ci%218 = OpPhi %bool %false %172 %217 %195
354cb93a386Sopenharmony_ciOpSelectionMerge %220 None
355cb93a386Sopenharmony_ciOpBranchConditional %218 %219 %220
356cb93a386Sopenharmony_ci%219 = OpLabel
357cb93a386Sopenharmony_ci%221 = OpLoad %Nested %n3
358cb93a386Sopenharmony_ci%222 = OpCompositeConstruct %S %float_1 %int_2
359cb93a386Sopenharmony_ci%223 = OpCompositeConstruct %S %float_2 %int_3
360cb93a386Sopenharmony_ci%224 = OpCompositeConstruct %Nested %222 %223
361cb93a386Sopenharmony_ci%225 = OpCompositeExtract %S %221 0
362cb93a386Sopenharmony_ci%226 = OpCompositeExtract %S %224 0
363cb93a386Sopenharmony_ci%227 = OpCompositeExtract %float %225 0
364cb93a386Sopenharmony_ci%228 = OpCompositeExtract %float %226 0
365cb93a386Sopenharmony_ci%229 = OpFOrdEqual %bool %227 %228
366cb93a386Sopenharmony_ci%230 = OpCompositeExtract %int %225 1
367cb93a386Sopenharmony_ci%231 = OpCompositeExtract %int %226 1
368cb93a386Sopenharmony_ci%232 = OpIEqual %bool %230 %231
369cb93a386Sopenharmony_ci%233 = OpLogicalAnd %bool %232 %229
370cb93a386Sopenharmony_ci%234 = OpCompositeExtract %S %221 1
371cb93a386Sopenharmony_ci%235 = OpCompositeExtract %S %224 1
372cb93a386Sopenharmony_ci%236 = OpCompositeExtract %float %234 0
373cb93a386Sopenharmony_ci%237 = OpCompositeExtract %float %235 0
374cb93a386Sopenharmony_ci%238 = OpFOrdEqual %bool %236 %237
375cb93a386Sopenharmony_ci%239 = OpCompositeExtract %int %234 1
376cb93a386Sopenharmony_ci%240 = OpCompositeExtract %int %235 1
377cb93a386Sopenharmony_ci%241 = OpIEqual %bool %239 %240
378cb93a386Sopenharmony_ci%242 = OpLogicalAnd %bool %241 %238
379cb93a386Sopenharmony_ci%243 = OpLogicalAnd %bool %242 %233
380cb93a386Sopenharmony_ciOpBranch %220
381cb93a386Sopenharmony_ci%220 = OpLabel
382cb93a386Sopenharmony_ci%244 = OpPhi %bool %false %196 %243 %219
383cb93a386Sopenharmony_ciOpSelectionMerge %246 None
384cb93a386Sopenharmony_ciOpBranchConditional %244 %245 %246
385cb93a386Sopenharmony_ci%245 = OpLabel
386cb93a386Sopenharmony_ci%247 = OpLoad %Compound %c1
387cb93a386Sopenharmony_ci%248 = OpLoad %Compound %c2
388cb93a386Sopenharmony_ci%249 = OpCompositeExtract %v4float %247 0
389cb93a386Sopenharmony_ci%250 = OpCompositeExtract %v4float %248 0
390cb93a386Sopenharmony_ci%251 = OpFOrdEqual %v4bool %249 %250
391cb93a386Sopenharmony_ci%253 = OpAll %bool %251
392cb93a386Sopenharmony_ci%254 = OpCompositeExtract %v3int %247 1
393cb93a386Sopenharmony_ci%255 = OpCompositeExtract %v3int %248 1
394cb93a386Sopenharmony_ci%256 = OpIEqual %v3bool %254 %255
395cb93a386Sopenharmony_ci%258 = OpAll %bool %256
396cb93a386Sopenharmony_ci%259 = OpLogicalAnd %bool %258 %253
397cb93a386Sopenharmony_ciOpBranch %246
398cb93a386Sopenharmony_ci%246 = OpLabel
399cb93a386Sopenharmony_ci%260 = OpPhi %bool %false %220 %259 %245
400cb93a386Sopenharmony_ciOpSelectionMerge %262 None
401cb93a386Sopenharmony_ciOpBranchConditional %260 %261 %262
402cb93a386Sopenharmony_ci%261 = OpLabel
403cb93a386Sopenharmony_ci%263 = OpLoad %Compound %c2
404cb93a386Sopenharmony_ci%264 = OpLoad %Compound %c3
405cb93a386Sopenharmony_ci%265 = OpCompositeExtract %v4float %263 0
406cb93a386Sopenharmony_ci%266 = OpCompositeExtract %v4float %264 0
407cb93a386Sopenharmony_ci%267 = OpFOrdNotEqual %v4bool %265 %266
408cb93a386Sopenharmony_ci%268 = OpAny %bool %267
409cb93a386Sopenharmony_ci%269 = OpCompositeExtract %v3int %263 1
410cb93a386Sopenharmony_ci%270 = OpCompositeExtract %v3int %264 1
411cb93a386Sopenharmony_ci%271 = OpINotEqual %v3bool %269 %270
412cb93a386Sopenharmony_ci%272 = OpAny %bool %271
413cb93a386Sopenharmony_ci%273 = OpLogicalOr %bool %272 %268
414cb93a386Sopenharmony_ciOpBranch %262
415cb93a386Sopenharmony_ci%262 = OpLabel
416cb93a386Sopenharmony_ci%274 = OpPhi %bool %false %246 %273 %261
417cb93a386Sopenharmony_ciOpStore %valid %274
418cb93a386Sopenharmony_ci%275 = OpLoad %bool %valid
419cb93a386Sopenharmony_ciOpSelectionMerge %280 None
420cb93a386Sopenharmony_ciOpBranchConditional %275 %278 %279
421cb93a386Sopenharmony_ci%278 = OpLabel
422cb93a386Sopenharmony_ci%281 = OpAccessChain %_ptr_Uniform_v4float %14 %int_1
423cb93a386Sopenharmony_ci%282 = OpLoad %v4float %281
424cb93a386Sopenharmony_ciOpStore %276 %282
425cb93a386Sopenharmony_ciOpBranch %280
426cb93a386Sopenharmony_ci%279 = OpLabel
427cb93a386Sopenharmony_ci%283 = OpAccessChain %_ptr_Uniform_v4float %14 %int_0
428cb93a386Sopenharmony_ci%284 = OpLoad %v4float %283
429cb93a386Sopenharmony_ciOpStore %276 %284
430cb93a386Sopenharmony_ciOpBranch %280
431cb93a386Sopenharmony_ci%280 = OpLabel
432cb93a386Sopenharmony_ci%285 = OpLoad %v4float %276
433cb93a386Sopenharmony_ciOpReturnValue %285
434cb93a386Sopenharmony_ciOpFunctionEnd
435