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 %main "main" 13OpName %value "value" 14OpName %expectedWhole "expectedWhole" 15OpName %expectedFraction "expectedFraction" 16OpName %ok "ok" 17OpName %whole "whole" 18OpName %fraction "fraction" 19OpDecorate %sk_FragColor RelaxedPrecision 20OpDecorate %sk_FragColor Location 0 21OpDecorate %sk_FragColor Index 0 22OpDecorate %sk_Clockwise BuiltIn FrontFacing 23OpMemberDecorate %_UniformBuffer 0 Offset 0 24OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 25OpMemberDecorate %_UniformBuffer 1 Offset 16 26OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 27OpDecorate %_UniformBuffer Block 28OpDecorate %10 Binding 0 29OpDecorate %10 DescriptorSet 0 30OpDecorate %137 RelaxedPrecision 31OpDecorate %144 RelaxedPrecision 32OpDecorate %146 RelaxedPrecision 33OpDecorate %147 RelaxedPrecision 34%float = OpTypeFloat 32 35%v4float = OpTypeVector %float 4 36%_ptr_Output_v4float = OpTypePointer Output %v4float 37%sk_FragColor = OpVariable %_ptr_Output_v4float Output 38%bool = OpTypeBool 39%_ptr_Input_bool = OpTypePointer Input %bool 40%sk_Clockwise = OpVariable %_ptr_Input_bool Input 41%_UniformBuffer = OpTypeStruct %v4float %v4float 42%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 43%10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 44%void = OpTypeVoid 45%15 = OpTypeFunction %void 46%v2float = OpTypeVector %float 2 47%float_0 = OpConstant %float 0 48%19 = OpConstantComposite %v2float %float_0 %float_0 49%_ptr_Function_v2float = OpTypePointer Function %v2float 50%23 = OpTypeFunction %v4float %_ptr_Function_v2float 51%_ptr_Function_v4float = OpTypePointer Function %v4float 52%float_2_5 = OpConstant %float 2.5 53%float_n2_5 = OpConstant %float -2.5 54%float_8 = OpConstant %float 8 55%float_n0_125 = OpConstant %float -0.125 56%32 = OpConstantComposite %v4float %float_2_5 %float_n2_5 %float_8 %float_n0_125 57%float_2 = OpConstant %float 2 58%float_n2 = OpConstant %float -2 59%36 = OpConstantComposite %v4float %float_2 %float_n2 %float_8 %float_0 60%float_0_5 = OpConstant %float 0.5 61%float_n0_5 = OpConstant %float -0.5 62%40 = OpConstantComposite %v4float %float_0_5 %float_n0_5 %float_0 %float_n0_125 63%v4bool = OpTypeVector %bool 4 64%_ptr_Function_v4bool = OpTypePointer Function %v4bool 65%false = OpConstantFalse %bool 66%45 = OpConstantComposite %v4bool %false %false %false %false 67%_ptr_Function_float = OpTypePointer Function %float 68%int = OpTypeInt 32 1 69%int_0 = OpConstant %int 0 70%_ptr_Function_bool = OpTypePointer Function %bool 71%80 = OpConstantComposite %v2float %float_2 %float_n2 72%v2bool = OpTypeVector %bool 2 73%88 = OpConstantComposite %v2float %float_0_5 %float_n0_5 74%int_1 = OpConstant %int 1 75%v3float = OpTypeVector %float 3 76%_ptr_Function_v3float = OpTypePointer Function %v3float 77%107 = OpConstantComposite %v3float %float_2 %float_n2 %float_8 78%v3bool = OpTypeVector %bool 3 79%115 = OpConstantComposite %v3float %float_0_5 %float_n0_5 %float_0 80%int_2 = OpConstant %int 2 81%int_3 = OpConstant %int 3 82%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 83%_entrypoint_v = OpFunction %void None %15 84%16 = OpLabel 85%20 = OpVariable %_ptr_Function_v2float Function 86OpStore %20 %19 87%22 = OpFunctionCall %v4float %main %20 88OpStore %sk_FragColor %22 89OpReturn 90OpFunctionEnd 91%main = OpFunction %v4float None %23 92%24 = OpFunctionParameter %_ptr_Function_v2float 93%25 = OpLabel 94%value = OpVariable %_ptr_Function_v4float Function 95%expectedWhole = OpVariable %_ptr_Function_v4float Function 96%expectedFraction = OpVariable %_ptr_Function_v4float Function 97%ok = OpVariable %_ptr_Function_v4bool Function 98%whole = OpVariable %_ptr_Function_v4float Function 99%fraction = OpVariable %_ptr_Function_v4float Function 100%55 = OpVariable %_ptr_Function_float Function 101%72 = OpVariable %_ptr_Function_v2float Function 102%98 = OpVariable %_ptr_Function_v3float Function 103%138 = OpVariable %_ptr_Function_v4float Function 104OpStore %value %32 105OpStore %expectedWhole %36 106OpStore %expectedFraction %40 107OpStore %ok %45 108%49 = OpLoad %v4float %value 109%50 = OpCompositeExtract %float %49 0 110%51 = OpAccessChain %_ptr_Function_float %whole %int_0 111%48 = OpExtInst %float %1 Modf %50 %55 112%56 = OpLoad %float %55 113OpStore %51 %56 114%57 = OpAccessChain %_ptr_Function_float %fraction %int_0 115OpStore %57 %48 116%58 = OpLoad %v4float %whole 117%59 = OpCompositeExtract %float %58 0 118%60 = OpFOrdEqual %bool %59 %float_2 119OpSelectionMerge %62 None 120OpBranchConditional %60 %61 %62 121%61 = OpLabel 122%63 = OpLoad %v4float %fraction 123%64 = OpCompositeExtract %float %63 0 124%65 = OpFOrdEqual %bool %64 %float_0_5 125OpBranch %62 126%62 = OpLabel 127%66 = OpPhi %bool %false %25 %65 %61 128%67 = OpAccessChain %_ptr_Function_bool %ok %int_0 129OpStore %67 %66 130%70 = OpLoad %v4float %value 131%71 = OpVectorShuffle %v2float %70 %70 0 1 132%69 = OpExtInst %v2float %1 Modf %71 %72 133%73 = OpLoad %v2float %72 134%74 = OpLoad %v4float %whole 135%75 = OpVectorShuffle %v4float %74 %73 4 5 2 3 136OpStore %whole %75 137%76 = OpLoad %v4float %fraction 138%77 = OpVectorShuffle %v4float %76 %69 4 5 2 3 139OpStore %fraction %77 140%78 = OpLoad %v4float %whole 141%79 = OpVectorShuffle %v2float %78 %78 0 1 142%81 = OpFOrdEqual %v2bool %79 %80 143%83 = OpAll %bool %81 144OpSelectionMerge %85 None 145OpBranchConditional %83 %84 %85 146%84 = OpLabel 147%86 = OpLoad %v4float %fraction 148%87 = OpVectorShuffle %v2float %86 %86 0 1 149%89 = OpFOrdEqual %v2bool %87 %88 150%90 = OpAll %bool %89 151OpBranch %85 152%85 = OpLabel 153%91 = OpPhi %bool %false %62 %90 %84 154%92 = OpAccessChain %_ptr_Function_bool %ok %int_1 155OpStore %92 %91 156%95 = OpLoad %v4float %value 157%96 = OpVectorShuffle %v3float %95 %95 0 1 2 158%94 = OpExtInst %v3float %1 Modf %96 %98 159%100 = OpLoad %v3float %98 160%101 = OpLoad %v4float %whole 161%102 = OpVectorShuffle %v4float %101 %100 4 5 6 3 162OpStore %whole %102 163%103 = OpLoad %v4float %fraction 164%104 = OpVectorShuffle %v4float %103 %94 4 5 6 3 165OpStore %fraction %104 166%105 = OpLoad %v4float %whole 167%106 = OpVectorShuffle %v3float %105 %105 0 1 2 168%108 = OpFOrdEqual %v3bool %106 %107 169%110 = OpAll %bool %108 170OpSelectionMerge %112 None 171OpBranchConditional %110 %111 %112 172%111 = OpLabel 173%113 = OpLoad %v4float %fraction 174%114 = OpVectorShuffle %v3float %113 %113 0 1 2 175%116 = OpFOrdEqual %v3bool %114 %115 176%117 = OpAll %bool %116 177OpBranch %112 178%112 = OpLabel 179%118 = OpPhi %bool %false %85 %117 %111 180%119 = OpAccessChain %_ptr_Function_bool %ok %int_2 181OpStore %119 %118 182%122 = OpLoad %v4float %value 183%121 = OpExtInst %v4float %1 Modf %122 %whole 184OpStore %fraction %121 185%123 = OpLoad %v4float %whole 186%124 = OpLoad %v4float %expectedWhole 187%125 = OpFOrdEqual %v4bool %123 %124 188%126 = OpAll %bool %125 189OpSelectionMerge %128 None 190OpBranchConditional %126 %127 %128 191%127 = OpLabel 192%129 = OpLoad %v4float %fraction 193%130 = OpLoad %v4float %expectedFraction 194%131 = OpFOrdEqual %v4bool %129 %130 195%132 = OpAll %bool %131 196OpBranch %128 197%128 = OpLabel 198%133 = OpPhi %bool %false %112 %132 %127 199%134 = OpAccessChain %_ptr_Function_bool %ok %int_3 200OpStore %134 %133 201%137 = OpLoad %v4bool %ok 202%136 = OpAll %bool %137 203OpSelectionMerge %141 None 204OpBranchConditional %136 %139 %140 205%139 = OpLabel 206%142 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 207%144 = OpLoad %v4float %142 208OpStore %138 %144 209OpBranch %141 210%140 = OpLabel 211%145 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 212%146 = OpLoad %v4float %145 213OpStore %138 %146 214OpBranch %141 215%141 = OpLabel 216%147 = OpLoad %v4float %138 217OpReturnValue %147 218OpFunctionEnd 219