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