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