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