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 %_entrypoint_v "_entrypoint_v" 8 OpName %main "main" 9 OpName %x "x" 10 OpDecorate %sk_FragColor RelaxedPrecision 11 OpDecorate %sk_FragColor Location 0 12 OpDecorate %sk_FragColor Index 0 13 OpDecorate %x RelaxedPrecision 14 OpDecorate %29 RelaxedPrecision 15 OpDecorate %30 RelaxedPrecision 16 OpDecorate %37 RelaxedPrecision 17 OpDecorate %39 RelaxedPrecision 18 OpDecorate %40 RelaxedPrecision 19 OpDecorate %41 RelaxedPrecision 20 OpDecorate %50 RelaxedPrecision 21 OpDecorate %51 RelaxedPrecision 22 OpDecorate %55 RelaxedPrecision 23 OpDecorate %56 RelaxedPrecision 24 OpDecorate %57 RelaxedPrecision 25 OpDecorate %58 RelaxedPrecision 26 OpDecorate %64 RelaxedPrecision 27 %float = OpTypeFloat 32 28 %v4float = OpTypeVector %float 4 29%_ptr_Output_v4float = OpTypePointer Output %v4float 30%sk_FragColor = OpVariable %_ptr_Output_v4float Output 31 %void = OpTypeVoid 32 %9 = OpTypeFunction %void 33 %float_0 = OpConstant %float 0 34 %v2float = OpTypeVector %float 2 35 %13 = OpConstantComposite %v2float %float_0 %float_0 36%_ptr_Function_v2float = OpTypePointer Function %v2float 37 %17 = OpTypeFunction %v4float %_ptr_Function_v2float 38%_ptr_Function_v4float = OpTypePointer Function %v4float 39 %float_1 = OpConstant %float 1 40 %23 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 41 %bool = OpTypeBool 42%_ptr_Function_float = OpTypePointer Function %float 43 %int = OpTypeInt 32 1 44 %int_0 = OpConstant %int 0 45 %float_0_25 = OpConstant %float 0.25 46 %int_2 = OpConstant %int 2 47 %int_1 = OpConstant %int 1 48%_entrypoint_v = OpFunction %void None %9 49 %10 = OpLabel 50 %14 = OpVariable %_ptr_Function_v2float Function 51 OpStore %14 %13 52 %16 = OpFunctionCall %v4float %main %14 53 OpStore %sk_FragColor %16 54 OpReturn 55 OpFunctionEnd 56 %main = OpFunction %v4float None %17 57 %18 = OpFunctionParameter %_ptr_Function_v2float 58 %19 = OpLabel 59 %x = OpVariable %_ptr_Function_v4float Function 60 OpStore %x %23 61 OpBranch %24 62 %24 = OpLabel 63 OpLoopMerge %28 %27 None 64 OpBranch %25 65 %25 = OpLabel 66 %29 = OpLoad %v4float %x 67 %30 = OpCompositeExtract %float %29 3 68 %31 = OpFOrdEqual %bool %30 %float_1 69 OpBranchConditional %31 %26 %28 70 %26 = OpLabel 71 %33 = OpAccessChain %_ptr_Function_float %x %int_0 72 %37 = OpLoad %float %33 73 %39 = OpFSub %float %37 %float_0_25 74 OpStore %33 %39 75 %40 = OpLoad %v4float %x 76 %41 = OpCompositeExtract %float %40 0 77 %42 = OpFOrdLessThanEqual %bool %41 %float_0 78 OpSelectionMerge %44 None 79 OpBranchConditional %42 %43 %44 80 %43 = OpLabel 81 OpBranch %28 82 %44 = OpLabel 83 OpBranch %27 84 %27 = OpLabel 85 OpBranch %24 86 %28 = OpLabel 87 OpBranch %45 88 %45 = OpLabel 89 OpLoopMerge %49 %48 None 90 OpBranch %46 91 %46 = OpLabel 92 %50 = OpLoad %v4float %x 93 %51 = OpCompositeExtract %float %50 2 94 %52 = OpFOrdGreaterThan %bool %51 %float_0 95 OpBranchConditional %52 %47 %49 96 %47 = OpLabel 97 %53 = OpAccessChain %_ptr_Function_float %x %int_2 98 %55 = OpLoad %float %53 99 %56 = OpFSub %float %55 %float_0_25 100 OpStore %53 %56 101 %57 = OpLoad %v4float %x 102 %58 = OpCompositeExtract %float %57 3 103 %59 = OpFOrdEqual %bool %58 %float_1 104 OpSelectionMerge %61 None 105 OpBranchConditional %59 %60 %61 106 %60 = OpLabel 107 OpBranch %48 108 %61 = OpLabel 109 %62 = OpAccessChain %_ptr_Function_float %x %int_1 110 OpStore %62 %float_0 111 OpBranch %48 112 %48 = OpLabel 113 OpBranch %45 114 %49 = OpLabel 115 %64 = OpLoad %v4float %x 116 OpReturnValue %64 117 OpFunctionEnd 118