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