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