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 "colorGreen" 10OpMemberName %_UniformBuffer 1 "colorRed" 11OpName %_entrypoint_v "_entrypoint_v" 12OpName %foo_ff2 "foo_ff2" 13OpName %bar_vf "bar_vf" 14OpName %y "y" 15OpName %main "main" 16OpName %x "x" 17OpDecorate %sk_FragColor RelaxedPrecision 18OpDecorate %sk_FragColor Location 0 19OpDecorate %sk_FragColor Index 0 20OpDecorate %sk_Clockwise BuiltIn FrontFacing 21OpMemberDecorate %_UniformBuffer 0 Offset 0 22OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 23OpMemberDecorate %_UniformBuffer 1 Offset 16 24OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 25OpDecorate %_UniformBuffer Block 26OpDecorate %12 Binding 0 27OpDecorate %12 DescriptorSet 0 28OpDecorate %_arr_float_int_2 ArrayStride 16 29OpDecorate %73 RelaxedPrecision 30OpDecorate %75 RelaxedPrecision 31OpDecorate %76 RelaxedPrecision 32%float = OpTypeFloat 32 33%v4float = OpTypeVector %float 4 34%_ptr_Output_v4float = OpTypePointer Output %v4float 35%sk_FragColor = OpVariable %_ptr_Output_v4float Output 36%bool = OpTypeBool 37%_ptr_Input_bool = OpTypePointer Input %bool 38%sk_Clockwise = OpVariable %_ptr_Input_bool Input 39%_UniformBuffer = OpTypeStruct %v4float %v4float 40%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 41%12 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 42%void = OpTypeVoid 43%17 = OpTypeFunction %void 44%v2float = OpTypeVector %float 2 45%float_0 = OpConstant %float 0 46%21 = OpConstantComposite %v2float %float_0 %float_0 47%_ptr_Function_v2float = OpTypePointer Function %v2float 48%25 = OpTypeFunction %float %_ptr_Function_v2float 49%_ptr_Function_float = OpTypePointer Function %float 50%33 = OpTypeFunction %void %_ptr_Function_float 51%int = OpTypeInt 32 1 52%int_2 = OpConstant %int 2 53%_arr_float_int_2 = OpTypeArray %float %int_2 54%_ptr_Function__arr_float_int_2 = OpTypePointer Function %_arr_float_int_2 55%int_0 = OpConstant %int 0 56%float_2 = OpConstant %float 2 57%int_1 = OpConstant %int 1 58%57 = OpTypeFunction %v4float %_ptr_Function_v2float 59%float_10 = OpConstant %float 10 60%float_200 = OpConstant %float 200 61%_ptr_Function_v4float = OpTypePointer Function %v4float 62%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 63%_entrypoint_v = OpFunction %void None %17 64%18 = OpLabel 65%22 = OpVariable %_ptr_Function_v2float Function 66OpStore %22 %21 67%24 = OpFunctionCall %v4float %main %22 68OpStore %sk_FragColor %24 69OpReturn 70OpFunctionEnd 71%foo_ff2 = OpFunction %float None %25 72%26 = OpFunctionParameter %_ptr_Function_v2float 73%27 = OpLabel 74%28 = OpLoad %v2float %26 75%29 = OpCompositeExtract %float %28 0 76%30 = OpLoad %v2float %26 77%31 = OpCompositeExtract %float %30 1 78%32 = OpFMul %float %29 %31 79OpReturnValue %32 80OpFunctionEnd 81%bar_vf = OpFunction %void None %33 82%35 = OpFunctionParameter %_ptr_Function_float 83%36 = OpLabel 84%y = OpVariable %_ptr_Function__arr_float_int_2 Function 85%55 = OpVariable %_ptr_Function_v2float Function 86%42 = OpLoad %float %35 87%44 = OpAccessChain %_ptr_Function_float %y %int_0 88OpStore %44 %42 89%45 = OpLoad %float %35 90%47 = OpFMul %float %45 %float_2 91%49 = OpAccessChain %_ptr_Function_float %y %int_1 92OpStore %49 %47 93%50 = OpAccessChain %_ptr_Function_float %y %int_0 94%51 = OpLoad %float %50 95%52 = OpAccessChain %_ptr_Function_float %y %int_1 96%53 = OpLoad %float %52 97%54 = OpCompositeConstruct %v2float %51 %53 98OpStore %55 %54 99%56 = OpFunctionCall %float %foo_ff2 %55 100OpStore %35 %56 101OpReturn 102OpFunctionEnd 103%main = OpFunction %v4float None %57 104%58 = OpFunctionParameter %_ptr_Function_v2float 105%59 = OpLabel 106%x = OpVariable %_ptr_Function_float Function 107%66 = OpVariable %_ptr_Function_v4float Function 108OpStore %x %float_10 109%62 = OpFunctionCall %void %bar_vf %x 110%63 = OpLoad %float %x 111%65 = OpFOrdEqual %bool %63 %float_200 112OpSelectionMerge %70 None 113OpBranchConditional %65 %68 %69 114%68 = OpLabel 115%71 = OpAccessChain %_ptr_Uniform_v4float %12 %int_0 116%73 = OpLoad %v4float %71 117OpStore %66 %73 118OpBranch %70 119%69 = OpLabel 120%74 = OpAccessChain %_ptr_Uniform_v4float %12 %int_1 121%75 = OpLoad %v4float %74 122OpStore %66 %75 123OpBranch %70 124%70 = OpLabel 125%76 = OpLoad %v4float %66 126OpReturnValue %76 127OpFunctionEnd 128