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 %33 RelaxedPrecision 15 OpDecorate %35 RelaxedPrecision 16 OpDecorate %36 RelaxedPrecision 17 OpDecorate %37 RelaxedPrecision 18 OpDecorate %42 RelaxedPrecision 19 OpDecorate %43 RelaxedPrecision 20 OpDecorate %52 RelaxedPrecision 21 OpDecorate %53 RelaxedPrecision 22 OpDecorate %54 RelaxedPrecision 23 OpDecorate %55 RelaxedPrecision 24 OpDecorate %61 RelaxedPrecision 25 OpDecorate %62 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%_ptr_Function_float = OpTypePointer Function %float 42 %int = OpTypeInt 32 1 43 %int_0 = OpConstant %int 0 44 %float_0_25 = OpConstant %float 0.25 45 %bool = OpTypeBool 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 = OpAccessChain %_ptr_Function_float %x %int_0 67 %33 = OpLoad %float %29 68 %35 = OpFSub %float %33 %float_0_25 69 OpStore %29 %35 70 %36 = OpLoad %v4float %x 71 %37 = OpCompositeExtract %float %36 0 72 %38 = OpFOrdLessThanEqual %bool %37 %float_0 73 OpSelectionMerge %41 None 74 OpBranchConditional %38 %40 %41 75 %40 = OpLabel 76 OpBranch %28 77 %41 = OpLabel 78 OpBranch %26 79 %26 = OpLabel 80 OpBranch %27 81 %27 = OpLabel 82 %42 = OpLoad %v4float %x 83 %43 = OpCompositeExtract %float %42 3 84 %44 = OpFOrdEqual %bool %43 %float_1 85 OpBranchConditional %44 %24 %28 86 %28 = OpLabel 87 OpBranch %45 88 %45 = OpLabel 89 OpLoopMerge %49 %48 None 90 OpBranch %46 91 %46 = OpLabel 92 %50 = OpAccessChain %_ptr_Function_float %x %int_2 93 %52 = OpLoad %float %50 94 %53 = OpFSub %float %52 %float_0_25 95 OpStore %50 %53 96 %54 = OpLoad %v4float %x 97 %55 = OpCompositeExtract %float %54 3 98 %56 = OpFOrdEqual %bool %55 %float_1 99 OpSelectionMerge %58 None 100 OpBranchConditional %56 %57 %58 101 %57 = OpLabel 102 OpBranch %48 103 %58 = OpLabel 104 %59 = OpAccessChain %_ptr_Function_float %x %int_1 105 OpStore %59 %float_0 106 OpBranch %47 107 %47 = OpLabel 108 OpBranch %48 109 %48 = OpLabel 110 %61 = OpLoad %v4float %x 111 %62 = OpCompositeExtract %float %61 2 112 %63 = OpFOrdGreaterThan %bool %62 %float_0 113 OpBranchConditional %63 %45 %49 114 %49 = OpLabel 115 %64 = OpLoad %v4float %x 116 OpReturnValue %64 117 OpFunctionEnd 118