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 %f1 "f1" 14OpName %f2 "f2" 15OpName %f3 "f3" 16OpName %S "S" 17OpMemberName %S 0 "x" 18OpMemberName %S 1 "y" 19OpName %s1 "s1" 20OpName %s2 "s2" 21OpName %s3 "s3" 22OpDecorate %sk_FragColor RelaxedPrecision 23OpDecorate %sk_FragColor Location 0 24OpDecorate %sk_FragColor Index 0 25OpDecorate %sk_Clockwise BuiltIn FrontFacing 26OpMemberDecorate %_UniformBuffer 0 Offset 0 27OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 28OpMemberDecorate %_UniformBuffer 1 Offset 16 29OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 30OpDecorate %_UniformBuffer Block 31OpDecorate %10 Binding 0 32OpDecorate %10 DescriptorSet 0 33OpDecorate %_arr_float_int_4 ArrayStride 16 34OpMemberDecorate %S 0 Offset 0 35OpMemberDecorate %S 1 Offset 4 36OpDecorate %_arr_S_int_3 ArrayStride 16 37OpDecorate %105 RelaxedPrecision 38OpDecorate %106 RelaxedPrecision 39OpDecorate %139 RelaxedPrecision 40OpDecorate %140 RelaxedPrecision 41OpDecorate %178 RelaxedPrecision 42OpDecorate %180 RelaxedPrecision 43OpDecorate %181 RelaxedPrecision 44%float = OpTypeFloat 32 45%v4float = OpTypeVector %float 4 46%_ptr_Output_v4float = OpTypePointer Output %v4float 47%sk_FragColor = OpVariable %_ptr_Output_v4float Output 48%bool = OpTypeBool 49%_ptr_Input_bool = OpTypePointer Input %bool 50%sk_Clockwise = OpVariable %_ptr_Input_bool Input 51%_UniformBuffer = OpTypeStruct %v4float %v4float 52%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 53%10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 54%void = OpTypeVoid 55%15 = OpTypeFunction %void 56%v2float = OpTypeVector %float 2 57%float_0 = OpConstant %float 0 58%19 = OpConstantComposite %v2float %float_0 %float_0 59%_ptr_Function_v2float = OpTypePointer Function %v2float 60%23 = OpTypeFunction %v4float %_ptr_Function_v2float 61%int = OpTypeInt 32 1 62%int_4 = OpConstant %int 4 63%_arr_float_int_4 = OpTypeArray %float %int_4 64%_ptr_Function__arr_float_int_4 = OpTypePointer Function %_arr_float_int_4 65%float_1 = OpConstant %float 1 66%float_2 = OpConstant %float 2 67%float_3 = OpConstant %float 3 68%float_4 = OpConstant %float 4 69%float_n4 = OpConstant %float -4 70%S = OpTypeStruct %int %int 71%int_3 = OpConstant %int 3 72%_arr_S_int_3 = OpTypeArray %S %int_3 73%_ptr_Function__arr_S_int_3 = OpTypePointer Function %_arr_S_int_3 74%int_1 = OpConstant %int 1 75%int_2 = OpConstant %int 2 76%int_5 = OpConstant %int 5 77%int_6 = OpConstant %int 6 78%int_0 = OpConstant %int 0 79%false = OpConstantFalse %bool 80%_ptr_Function_v4float = OpTypePointer Function %v4float 81%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 82%_entrypoint_v = OpFunction %void None %15 83%16 = OpLabel 84%20 = OpVariable %_ptr_Function_v2float Function 85OpStore %20 %19 86%22 = OpFunctionCall %v4float %main %20 87OpStore %sk_FragColor %22 88OpReturn 89OpFunctionEnd 90%main = OpFunction %v4float None %23 91%24 = OpFunctionParameter %_ptr_Function_v2float 92%25 = OpLabel 93%f1 = OpVariable %_ptr_Function__arr_float_int_4 Function 94%f2 = OpVariable %_ptr_Function__arr_float_int_4 Function 95%f3 = OpVariable %_ptr_Function__arr_float_int_4 Function 96%s1 = OpVariable %_ptr_Function__arr_S_int_3 Function 97%s2 = OpVariable %_ptr_Function__arr_S_int_3 Function 98%s3 = OpVariable %_ptr_Function__arr_S_int_3 Function 99%171 = OpVariable %_ptr_Function_v4float Function 100%35 = OpCompositeConstruct %_arr_float_int_4 %float_1 %float_2 %float_3 %float_4 101OpStore %f1 %35 102%37 = OpCompositeConstruct %_arr_float_int_4 %float_1 %float_2 %float_3 %float_4 103OpStore %f2 %37 104%40 = OpCompositeConstruct %_arr_float_int_4 %float_1 %float_2 %float_3 %float_n4 105OpStore %f3 %40 106%48 = OpCompositeConstruct %S %int_1 %int_2 107%49 = OpCompositeConstruct %S %int_3 %int_4 108%52 = OpCompositeConstruct %S %int_5 %int_6 109%53 = OpCompositeConstruct %_arr_S_int_3 %48 %49 %52 110OpStore %s1 %53 111%55 = OpCompositeConstruct %S %int_1 %int_2 112%57 = OpCompositeConstruct %S %int_0 %int_0 113%58 = OpCompositeConstruct %S %int_5 %int_6 114%59 = OpCompositeConstruct %_arr_S_int_3 %55 %57 %58 115OpStore %s2 %59 116%61 = OpCompositeConstruct %S %int_1 %int_2 117%62 = OpCompositeConstruct %S %int_3 %int_4 118%63 = OpCompositeConstruct %S %int_5 %int_6 119%64 = OpCompositeConstruct %_arr_S_int_3 %61 %62 %63 120OpStore %s3 %64 121%66 = OpLoad %_arr_float_int_4 %f1 122%67 = OpLoad %_arr_float_int_4 %f2 123%68 = OpCompositeExtract %float %66 0 124%69 = OpCompositeExtract %float %67 0 125%70 = OpFOrdEqual %bool %68 %69 126%71 = OpCompositeExtract %float %66 1 127%72 = OpCompositeExtract %float %67 1 128%73 = OpFOrdEqual %bool %71 %72 129%74 = OpLogicalAnd %bool %73 %70 130%75 = OpCompositeExtract %float %66 2 131%76 = OpCompositeExtract %float %67 2 132%77 = OpFOrdEqual %bool %75 %76 133%78 = OpLogicalAnd %bool %77 %74 134%79 = OpCompositeExtract %float %66 3 135%80 = OpCompositeExtract %float %67 3 136%81 = OpFOrdEqual %bool %79 %80 137%82 = OpLogicalAnd %bool %81 %78 138OpSelectionMerge %84 None 139OpBranchConditional %82 %83 %84 140%83 = OpLabel 141%85 = OpLoad %_arr_float_int_4 %f1 142%86 = OpLoad %_arr_float_int_4 %f3 143%87 = OpCompositeExtract %float %85 0 144%88 = OpCompositeExtract %float %86 0 145%89 = OpFOrdNotEqual %bool %87 %88 146%90 = OpCompositeExtract %float %85 1 147%91 = OpCompositeExtract %float %86 1 148%92 = OpFOrdNotEqual %bool %90 %91 149%93 = OpLogicalOr %bool %92 %89 150%94 = OpCompositeExtract %float %85 2 151%95 = OpCompositeExtract %float %86 2 152%96 = OpFOrdNotEqual %bool %94 %95 153%97 = OpLogicalOr %bool %96 %93 154%98 = OpCompositeExtract %float %85 3 155%99 = OpCompositeExtract %float %86 3 156%100 = OpFOrdNotEqual %bool %98 %99 157%101 = OpLogicalOr %bool %100 %97 158OpBranch %84 159%84 = OpLabel 160%102 = OpPhi %bool %false %25 %101 %83 161OpSelectionMerge %104 None 162OpBranchConditional %102 %103 %104 163%103 = OpLabel 164%105 = OpLoad %_arr_S_int_3 %s1 165%106 = OpLoad %_arr_S_int_3 %s2 166%107 = OpCompositeExtract %S %105 0 167%108 = OpCompositeExtract %S %106 0 168%109 = OpCompositeExtract %int %107 0 169%110 = OpCompositeExtract %int %108 0 170%111 = OpINotEqual %bool %109 %110 171%112 = OpCompositeExtract %int %107 1 172%113 = OpCompositeExtract %int %108 1 173%114 = OpINotEqual %bool %112 %113 174%115 = OpLogicalOr %bool %114 %111 175%116 = OpCompositeExtract %S %105 1 176%117 = OpCompositeExtract %S %106 1 177%118 = OpCompositeExtract %int %116 0 178%119 = OpCompositeExtract %int %117 0 179%120 = OpINotEqual %bool %118 %119 180%121 = OpCompositeExtract %int %116 1 181%122 = OpCompositeExtract %int %117 1 182%123 = OpINotEqual %bool %121 %122 183%124 = OpLogicalOr %bool %123 %120 184%125 = OpLogicalOr %bool %124 %115 185%126 = OpCompositeExtract %S %105 2 186%127 = OpCompositeExtract %S %106 2 187%128 = OpCompositeExtract %int %126 0 188%129 = OpCompositeExtract %int %127 0 189%130 = OpINotEqual %bool %128 %129 190%131 = OpCompositeExtract %int %126 1 191%132 = OpCompositeExtract %int %127 1 192%133 = OpINotEqual %bool %131 %132 193%134 = OpLogicalOr %bool %133 %130 194%135 = OpLogicalOr %bool %134 %125 195OpBranch %104 196%104 = OpLabel 197%136 = OpPhi %bool %false %84 %135 %103 198OpSelectionMerge %138 None 199OpBranchConditional %136 %137 %138 200%137 = OpLabel 201%139 = OpLoad %_arr_S_int_3 %s3 202%140 = OpLoad %_arr_S_int_3 %s1 203%141 = OpCompositeExtract %S %139 0 204%142 = OpCompositeExtract %S %140 0 205%143 = OpCompositeExtract %int %141 0 206%144 = OpCompositeExtract %int %142 0 207%145 = OpIEqual %bool %143 %144 208%146 = OpCompositeExtract %int %141 1 209%147 = OpCompositeExtract %int %142 1 210%148 = OpIEqual %bool %146 %147 211%149 = OpLogicalAnd %bool %148 %145 212%150 = OpCompositeExtract %S %139 1 213%151 = OpCompositeExtract %S %140 1 214%152 = OpCompositeExtract %int %150 0 215%153 = OpCompositeExtract %int %151 0 216%154 = OpIEqual %bool %152 %153 217%155 = OpCompositeExtract %int %150 1 218%156 = OpCompositeExtract %int %151 1 219%157 = OpIEqual %bool %155 %156 220%158 = OpLogicalAnd %bool %157 %154 221%159 = OpLogicalAnd %bool %158 %149 222%160 = OpCompositeExtract %S %139 2 223%161 = OpCompositeExtract %S %140 2 224%162 = OpCompositeExtract %int %160 0 225%163 = OpCompositeExtract %int %161 0 226%164 = OpIEqual %bool %162 %163 227%165 = OpCompositeExtract %int %160 1 228%166 = OpCompositeExtract %int %161 1 229%167 = OpIEqual %bool %165 %166 230%168 = OpLogicalAnd %bool %167 %164 231%169 = OpLogicalAnd %bool %168 %159 232OpBranch %138 233%138 = OpLabel 234%170 = OpPhi %bool %false %104 %169 %137 235OpSelectionMerge %175 None 236OpBranchConditional %170 %173 %174 237%173 = OpLabel 238%176 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 239%178 = OpLoad %v4float %176 240OpStore %171 %178 241OpBranch %175 242%174 = OpLabel 243%179 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 244%180 = OpLoad %v4float %179 245OpStore %171 %180 246OpBranch %175 247%175 = OpLabel 248%181 = OpLoad %v4float %171 249OpReturnValue %181 250OpFunctionEnd 251