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 "testInputs" 10OpMemberName %_UniformBuffer 1 "colorGreen" 11OpMemberName %_UniformBuffer 2 "colorRed" 12OpName %_entrypoint_v "_entrypoint_v" 13OpName %main "main" 14OpName %expectedA "expectedA" 15OpName %clampLow "clampLow" 16OpName %expectedB "expectedB" 17OpName %clampHigh "clampHigh" 18OpDecorate %sk_FragColor RelaxedPrecision 19OpDecorate %sk_FragColor Location 0 20OpDecorate %sk_FragColor Index 0 21OpDecorate %sk_Clockwise BuiltIn FrontFacing 22OpMemberDecorate %_UniformBuffer 0 Offset 0 23OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 24OpMemberDecorate %_UniformBuffer 1 Offset 16 25OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 26OpMemberDecorate %_UniformBuffer 2 Offset 32 27OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision 28OpDecorate %_UniformBuffer Block 29OpDecorate %10 Binding 0 30OpDecorate %10 DescriptorSet 0 31OpDecorate %expectedA RelaxedPrecision 32OpDecorate %31 RelaxedPrecision 33OpDecorate %clampLow RelaxedPrecision 34OpDecorate %34 RelaxedPrecision 35OpDecorate %expectedB RelaxedPrecision 36OpDecorate %38 RelaxedPrecision 37OpDecorate %clampHigh RelaxedPrecision 38OpDecorate %42 RelaxedPrecision 39OpDecorate %49 RelaxedPrecision 40OpDecorate %50 RelaxedPrecision 41OpDecorate %51 RelaxedPrecision 42OpDecorate %52 RelaxedPrecision 43OpDecorate %58 RelaxedPrecision 44OpDecorate %59 RelaxedPrecision 45OpDecorate %60 RelaxedPrecision 46OpDecorate %61 RelaxedPrecision 47OpDecorate %62 RelaxedPrecision 48OpDecorate %63 RelaxedPrecision 49OpDecorate %72 RelaxedPrecision 50OpDecorate %73 RelaxedPrecision 51OpDecorate %75 RelaxedPrecision 52OpDecorate %76 RelaxedPrecision 53OpDecorate %77 RelaxedPrecision 54OpDecorate %78 RelaxedPrecision 55OpDecorate %87 RelaxedPrecision 56OpDecorate %88 RelaxedPrecision 57OpDecorate %89 RelaxedPrecision 58OpDecorate %90 RelaxedPrecision 59OpDecorate %97 RelaxedPrecision 60OpDecorate %98 RelaxedPrecision 61OpDecorate %103 RelaxedPrecision 62OpDecorate %104 RelaxedPrecision 63OpDecorate %105 RelaxedPrecision 64OpDecorate %111 RelaxedPrecision 65OpDecorate %112 RelaxedPrecision 66OpDecorate %113 RelaxedPrecision 67OpDecorate %119 RelaxedPrecision 68OpDecorate %127 RelaxedPrecision 69OpDecorate %128 RelaxedPrecision 70OpDecorate %129 RelaxedPrecision 71OpDecorate %130 RelaxedPrecision 72OpDecorate %137 RelaxedPrecision 73OpDecorate %138 RelaxedPrecision 74OpDecorate %139 RelaxedPrecision 75OpDecorate %140 RelaxedPrecision 76OpDecorate %141 RelaxedPrecision 77OpDecorate %142 RelaxedPrecision 78OpDecorate %150 RelaxedPrecision 79OpDecorate %151 RelaxedPrecision 80OpDecorate %152 RelaxedPrecision 81OpDecorate %153 RelaxedPrecision 82OpDecorate %154 RelaxedPrecision 83OpDecorate %155 RelaxedPrecision 84OpDecorate %163 RelaxedPrecision 85OpDecorate %164 RelaxedPrecision 86OpDecorate %165 RelaxedPrecision 87OpDecorate %166 RelaxedPrecision 88OpDecorate %172 RelaxedPrecision 89OpDecorate %173 RelaxedPrecision 90OpDecorate %178 RelaxedPrecision 91OpDecorate %179 RelaxedPrecision 92OpDecorate %185 RelaxedPrecision 93OpDecorate %186 RelaxedPrecision 94OpDecorate %187 RelaxedPrecision 95OpDecorate %193 RelaxedPrecision 96OpDecorate %203 RelaxedPrecision 97OpDecorate %206 RelaxedPrecision 98OpDecorate %207 RelaxedPrecision 99%float = OpTypeFloat 32 100%v4float = OpTypeVector %float 4 101%_ptr_Output_v4float = OpTypePointer Output %v4float 102%sk_FragColor = OpVariable %_ptr_Output_v4float Output 103%bool = OpTypeBool 104%_ptr_Input_bool = OpTypePointer Input %bool 105%sk_Clockwise = OpVariable %_ptr_Input_bool Input 106%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float 107%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 108%10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 109%void = OpTypeVoid 110%15 = OpTypeFunction %void 111%v2float = OpTypeVector %float 2 112%float_0 = OpConstant %float 0 113%19 = OpConstantComposite %v2float %float_0 %float_0 114%_ptr_Function_v2float = OpTypePointer Function %v2float 115%23 = OpTypeFunction %v4float %_ptr_Function_v2float 116%_ptr_Function_v4float = OpTypePointer Function %v4float 117%float_n1 = OpConstant %float -1 118%float_0_75 = OpConstant %float 0.75 119%float_1 = OpConstant %float 1 120%31 = OpConstantComposite %v4float %float_n1 %float_0 %float_0_75 %float_1 121%float_n2 = OpConstant %float -2 122%34 = OpConstantComposite %v4float %float_n1 %float_n2 %float_n2 %float_1 123%float_0_5 = OpConstant %float 0.5 124%float_2_25 = OpConstant %float 2.25 125%38 = OpConstantComposite %v4float %float_n1 %float_0 %float_0_5 %float_2_25 126%float_2 = OpConstant %float 2 127%float_3 = OpConstant %float 3 128%42 = OpConstantComposite %v4float %float_1 %float_2 %float_0_5 %float_3 129%false = OpConstantFalse %bool 130%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 131%int = OpTypeInt 32 1 132%int_0 = OpConstant %int 0 133%v2bool = OpTypeVector %bool 2 134%v3float = OpTypeVector %float 3 135%v3bool = OpTypeVector %bool 3 136%v4bool = OpTypeVector %bool 4 137%103 = OpConstantComposite %v2float %float_n1 %float_0 138%111 = OpConstantComposite %v3float %float_n1 %float_0 %float_0_75 139%139 = OpConstantComposite %v2float %float_n1 %float_n2 140%140 = OpConstantComposite %v2float %float_1 %float_2 141%152 = OpConstantComposite %v3float %float_n1 %float_n2 %float_n2 142%153 = OpConstantComposite %v3float %float_1 %float_2 %float_0_5 143%185 = OpConstantComposite %v3float %float_n1 %float_0 %float_0_5 144%int_1 = OpConstant %int 1 145%int_2 = OpConstant %int 2 146%_entrypoint_v = OpFunction %void None %15 147%16 = OpLabel 148%20 = OpVariable %_ptr_Function_v2float Function 149OpStore %20 %19 150%22 = OpFunctionCall %v4float %main %20 151OpStore %sk_FragColor %22 152OpReturn 153OpFunctionEnd 154%main = OpFunction %v4float None %23 155%24 = OpFunctionParameter %_ptr_Function_v2float 156%25 = OpLabel 157%expectedA = OpVariable %_ptr_Function_v4float Function 158%clampLow = OpVariable %_ptr_Function_v4float Function 159%expectedB = OpVariable %_ptr_Function_v4float Function 160%clampHigh = OpVariable %_ptr_Function_v4float Function 161%197 = OpVariable %_ptr_Function_v4float Function 162OpStore %expectedA %31 163OpStore %clampLow %34 164OpStore %expectedB %38 165OpStore %clampHigh %42 166%45 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 167%49 = OpLoad %v4float %45 168%50 = OpCompositeExtract %float %49 0 169%44 = OpExtInst %float %1 FClamp %50 %float_n1 %float_1 170%51 = OpLoad %v4float %expectedA 171%52 = OpCompositeExtract %float %51 0 172%53 = OpFOrdEqual %bool %44 %52 173OpSelectionMerge %55 None 174OpBranchConditional %53 %54 %55 175%54 = OpLabel 176%57 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 177%58 = OpLoad %v4float %57 178%59 = OpVectorShuffle %v2float %58 %58 0 1 179%60 = OpCompositeConstruct %v2float %float_n1 %float_n1 180%61 = OpCompositeConstruct %v2float %float_1 %float_1 181%56 = OpExtInst %v2float %1 FClamp %59 %60 %61 182%62 = OpLoad %v4float %expectedA 183%63 = OpVectorShuffle %v2float %62 %62 0 1 184%64 = OpFOrdEqual %v2bool %56 %63 185%66 = OpAll %bool %64 186OpBranch %55 187%55 = OpLabel 188%67 = OpPhi %bool %false %25 %66 %54 189OpSelectionMerge %69 None 190OpBranchConditional %67 %68 %69 191%68 = OpLabel 192%71 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 193%72 = OpLoad %v4float %71 194%73 = OpVectorShuffle %v3float %72 %72 0 1 2 195%75 = OpCompositeConstruct %v3float %float_n1 %float_n1 %float_n1 196%76 = OpCompositeConstruct %v3float %float_1 %float_1 %float_1 197%70 = OpExtInst %v3float %1 FClamp %73 %75 %76 198%77 = OpLoad %v4float %expectedA 199%78 = OpVectorShuffle %v3float %77 %77 0 1 2 200%79 = OpFOrdEqual %v3bool %70 %78 201%81 = OpAll %bool %79 202OpBranch %69 203%69 = OpLabel 204%82 = OpPhi %bool %false %55 %81 %68 205OpSelectionMerge %84 None 206OpBranchConditional %82 %83 %84 207%83 = OpLabel 208%86 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 209%87 = OpLoad %v4float %86 210%88 = OpCompositeConstruct %v4float %float_n1 %float_n1 %float_n1 %float_n1 211%89 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1 212%85 = OpExtInst %v4float %1 FClamp %87 %88 %89 213%90 = OpLoad %v4float %expectedA 214%91 = OpFOrdEqual %v4bool %85 %90 215%93 = OpAll %bool %91 216OpBranch %84 217%84 = OpLabel 218%94 = OpPhi %bool %false %69 %93 %83 219OpSelectionMerge %96 None 220OpBranchConditional %94 %95 %96 221%95 = OpLabel 222%97 = OpLoad %v4float %expectedA 223%98 = OpCompositeExtract %float %97 0 224%99 = OpFOrdEqual %bool %float_n1 %98 225OpBranch %96 226%96 = OpLabel 227%100 = OpPhi %bool %false %84 %99 %95 228OpSelectionMerge %102 None 229OpBranchConditional %100 %101 %102 230%101 = OpLabel 231%104 = OpLoad %v4float %expectedA 232%105 = OpVectorShuffle %v2float %104 %104 0 1 233%106 = OpFOrdEqual %v2bool %103 %105 234%107 = OpAll %bool %106 235OpBranch %102 236%102 = OpLabel 237%108 = OpPhi %bool %false %96 %107 %101 238OpSelectionMerge %110 None 239OpBranchConditional %108 %109 %110 240%109 = OpLabel 241%112 = OpLoad %v4float %expectedA 242%113 = OpVectorShuffle %v3float %112 %112 0 1 2 243%114 = OpFOrdEqual %v3bool %111 %113 244%115 = OpAll %bool %114 245OpBranch %110 246%110 = OpLabel 247%116 = OpPhi %bool %false %102 %115 %109 248OpSelectionMerge %118 None 249OpBranchConditional %116 %117 %118 250%117 = OpLabel 251%119 = OpLoad %v4float %expectedA 252%120 = OpFOrdEqual %v4bool %31 %119 253%121 = OpAll %bool %120 254OpBranch %118 255%118 = OpLabel 256%122 = OpPhi %bool %false %110 %121 %117 257OpSelectionMerge %124 None 258OpBranchConditional %122 %123 %124 259%123 = OpLabel 260%126 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 261%127 = OpLoad %v4float %126 262%128 = OpCompositeExtract %float %127 0 263%125 = OpExtInst %float %1 FClamp %128 %float_n1 %float_1 264%129 = OpLoad %v4float %expectedB 265%130 = OpCompositeExtract %float %129 0 266%131 = OpFOrdEqual %bool %125 %130 267OpBranch %124 268%124 = OpLabel 269%132 = OpPhi %bool %false %118 %131 %123 270OpSelectionMerge %134 None 271OpBranchConditional %132 %133 %134 272%133 = OpLabel 273%136 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 274%137 = OpLoad %v4float %136 275%138 = OpVectorShuffle %v2float %137 %137 0 1 276%135 = OpExtInst %v2float %1 FClamp %138 %139 %140 277%141 = OpLoad %v4float %expectedB 278%142 = OpVectorShuffle %v2float %141 %141 0 1 279%143 = OpFOrdEqual %v2bool %135 %142 280%144 = OpAll %bool %143 281OpBranch %134 282%134 = OpLabel 283%145 = OpPhi %bool %false %124 %144 %133 284OpSelectionMerge %147 None 285OpBranchConditional %145 %146 %147 286%146 = OpLabel 287%149 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 288%150 = OpLoad %v4float %149 289%151 = OpVectorShuffle %v3float %150 %150 0 1 2 290%148 = OpExtInst %v3float %1 FClamp %151 %152 %153 291%154 = OpLoad %v4float %expectedB 292%155 = OpVectorShuffle %v3float %154 %154 0 1 2 293%156 = OpFOrdEqual %v3bool %148 %155 294%157 = OpAll %bool %156 295OpBranch %147 296%147 = OpLabel 297%158 = OpPhi %bool %false %134 %157 %146 298OpSelectionMerge %160 None 299OpBranchConditional %158 %159 %160 300%159 = OpLabel 301%162 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 302%163 = OpLoad %v4float %162 303%164 = OpLoad %v4float %clampLow 304%165 = OpLoad %v4float %clampHigh 305%161 = OpExtInst %v4float %1 FClamp %163 %164 %165 306%166 = OpLoad %v4float %expectedB 307%167 = OpFOrdEqual %v4bool %161 %166 308%168 = OpAll %bool %167 309OpBranch %160 310%160 = OpLabel 311%169 = OpPhi %bool %false %147 %168 %159 312OpSelectionMerge %171 None 313OpBranchConditional %169 %170 %171 314%170 = OpLabel 315%172 = OpLoad %v4float %expectedB 316%173 = OpCompositeExtract %float %172 0 317%174 = OpFOrdEqual %bool %float_n1 %173 318OpBranch %171 319%171 = OpLabel 320%175 = OpPhi %bool %false %160 %174 %170 321OpSelectionMerge %177 None 322OpBranchConditional %175 %176 %177 323%176 = OpLabel 324%178 = OpLoad %v4float %expectedB 325%179 = OpVectorShuffle %v2float %178 %178 0 1 326%180 = OpFOrdEqual %v2bool %103 %179 327%181 = OpAll %bool %180 328OpBranch %177 329%177 = OpLabel 330%182 = OpPhi %bool %false %171 %181 %176 331OpSelectionMerge %184 None 332OpBranchConditional %182 %183 %184 333%183 = OpLabel 334%186 = OpLoad %v4float %expectedB 335%187 = OpVectorShuffle %v3float %186 %186 0 1 2 336%188 = OpFOrdEqual %v3bool %185 %187 337%189 = OpAll %bool %188 338OpBranch %184 339%184 = OpLabel 340%190 = OpPhi %bool %false %177 %189 %183 341OpSelectionMerge %192 None 342OpBranchConditional %190 %191 %192 343%191 = OpLabel 344%193 = OpLoad %v4float %expectedB 345%194 = OpFOrdEqual %v4bool %38 %193 346%195 = OpAll %bool %194 347OpBranch %192 348%192 = OpLabel 349%196 = OpPhi %bool %false %184 %195 %191 350OpSelectionMerge %200 None 351OpBranchConditional %196 %198 %199 352%198 = OpLabel 353%201 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 354%203 = OpLoad %v4float %201 355OpStore %197 %203 356OpBranch %200 357%199 = OpLabel 358%204 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 359%206 = OpLoad %v4float %204 360OpStore %197 %206 361OpBranch %200 362%200 = OpLabel 363%207 = OpLoad %v4float %197 364OpReturnValue %207 365OpFunctionEnd 366