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" 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 %32 RelaxedPrecision 29OpDecorate %37 RelaxedPrecision 30OpDecorate %38 RelaxedPrecision 31OpDecorate %42 RelaxedPrecision 32OpDecorate %44 RelaxedPrecision 33OpDecorate %45 RelaxedPrecision 34OpDecorate %53 RelaxedPrecision 35OpDecorate %55 RelaxedPrecision 36OpDecorate %56 RelaxedPrecision 37OpDecorate %65 RelaxedPrecision 38OpDecorate %67 RelaxedPrecision 39OpDecorate %79 RelaxedPrecision 40OpDecorate %82 RelaxedPrecision 41OpDecorate %83 RelaxedPrecision 42%float = OpTypeFloat 32 43%v4float = OpTypeVector %float 4 44%_ptr_Output_v4float = OpTypePointer Output %v4float 45%sk_FragColor = OpVariable %_ptr_Output_v4float Output 46%bool = OpTypeBool 47%_ptr_Input_bool = OpTypePointer Input %bool 48%sk_Clockwise = OpVariable %_ptr_Input_bool Input 49%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float 50%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 51%10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 52%void = OpTypeVoid 53%15 = OpTypeFunction %void 54%v2float = OpTypeVector %float 2 55%float_0 = OpConstant %float 0 56%19 = OpConstantComposite %v2float %float_0 %float_0 57%_ptr_Function_v2float = OpTypePointer Function %v2float 58%23 = OpTypeFunction %v4float %_ptr_Function_v2float 59%_ptr_Function_v4float = OpTypePointer Function %v4float 60%float_n1 = OpConstant %float -1 61%float_2 = OpConstant %float 2 62%30 = OpConstantComposite %v4float %float_n1 %float_0 %float_0 %float_2 63%false = OpConstantFalse %bool 64%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 65%int = OpTypeInt 32 1 66%int_0 = OpConstant %int 0 67%46 = OpConstantComposite %v2float %float_n1 %float_0 68%v2bool = OpTypeVector %bool 2 69%v3float = OpTypeVector %float 3 70%58 = OpConstantComposite %v3float %float_n1 %float_0 %float_0 71%v3bool = OpTypeVector %bool 3 72%v4bool = OpTypeVector %bool 4 73%int_1 = OpConstant %int 1 74%int_2 = OpConstant %int 2 75%_entrypoint_v = OpFunction %void None %15 76%16 = OpLabel 77%20 = OpVariable %_ptr_Function_v2float Function 78OpStore %20 %19 79%22 = OpFunctionCall %v4float %main %20 80OpStore %sk_FragColor %22 81OpReturn 82OpFunctionEnd 83%main = OpFunction %v4float None %23 84%24 = OpFunctionParameter %_ptr_Function_v2float 85%25 = OpLabel 86%expectedA = OpVariable %_ptr_Function_v4float Function 87%73 = OpVariable %_ptr_Function_v4float Function 88OpStore %expectedA %30 89%33 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 90%37 = OpLoad %v4float %33 91%38 = OpCompositeExtract %float %37 0 92%32 = OpExtInst %float %1 Trunc %38 93%39 = OpFOrdEqual %bool %32 %float_n1 94OpSelectionMerge %41 None 95OpBranchConditional %39 %40 %41 96%40 = OpLabel 97%43 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 98%44 = OpLoad %v4float %43 99%45 = OpVectorShuffle %v2float %44 %44 0 1 100%42 = OpExtInst %v2float %1 Trunc %45 101%47 = OpFOrdEqual %v2bool %42 %46 102%49 = OpAll %bool %47 103OpBranch %41 104%41 = OpLabel 105%50 = OpPhi %bool %false %25 %49 %40 106OpSelectionMerge %52 None 107OpBranchConditional %50 %51 %52 108%51 = OpLabel 109%54 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 110%55 = OpLoad %v4float %54 111%56 = OpVectorShuffle %v3float %55 %55 0 1 2 112%53 = OpExtInst %v3float %1 Trunc %56 113%59 = OpFOrdEqual %v3bool %53 %58 114%61 = OpAll %bool %59 115OpBranch %52 116%52 = OpLabel 117%62 = OpPhi %bool %false %41 %61 %51 118OpSelectionMerge %64 None 119OpBranchConditional %62 %63 %64 120%63 = OpLabel 121%66 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 122%67 = OpLoad %v4float %66 123%65 = OpExtInst %v4float %1 Trunc %67 124%68 = OpLoad %v4float %expectedA 125%69 = OpFOrdEqual %v4bool %65 %68 126%71 = OpAll %bool %69 127OpBranch %64 128%64 = OpLabel 129%72 = OpPhi %bool %false %52 %71 %63 130OpSelectionMerge %76 None 131OpBranchConditional %72 %74 %75 132%74 = OpLabel 133%77 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 134%79 = OpLoad %v4float %77 135OpStore %73 %79 136OpBranch %76 137%75 = OpLabel 138%80 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 139%82 = OpLoad %v4float %80 140OpStore %73 %82 141OpBranch %76 142%76 = OpLabel 143%83 = OpLoad %v4float %73 144OpReturnValue %83 145OpFunctionEnd 146