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