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 %tricky_h2hhh2h "tricky_h2hhh2h" 13OpName %func_vh4 "func_vh4" 14OpName %t "t" 15OpName %main "main" 16OpName %result "result" 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 %32 RelaxedPrecision 29OpDecorate %33 RelaxedPrecision 30OpDecorate %34 RelaxedPrecision 31OpDecorate %35 RelaxedPrecision 32OpDecorate %36 RelaxedPrecision 33OpDecorate %37 RelaxedPrecision 34OpDecorate %38 RelaxedPrecision 35OpDecorate %t RelaxedPrecision 36OpDecorate %48 RelaxedPrecision 37OpDecorate %49 RelaxedPrecision 38OpDecorate %50 RelaxedPrecision 39OpDecorate %54 RelaxedPrecision 40OpDecorate %55 RelaxedPrecision 41OpDecorate %56 RelaxedPrecision 42OpDecorate %57 RelaxedPrecision 43OpDecorate %58 RelaxedPrecision 44OpDecorate %59 RelaxedPrecision 45OpDecorate %result RelaxedPrecision 46OpDecorate %65 RelaxedPrecision 47OpDecorate %67 RelaxedPrecision 48OpDecorate %68 RelaxedPrecision 49OpDecorate %80 RelaxedPrecision 50OpDecorate %83 RelaxedPrecision 51OpDecorate %84 RelaxedPrecision 52%float = OpTypeFloat 32 53%v4float = OpTypeVector %float 4 54%_ptr_Output_v4float = OpTypePointer Output %v4float 55%sk_FragColor = OpVariable %_ptr_Output_v4float Output 56%bool = OpTypeBool 57%_ptr_Input_bool = OpTypePointer Input %bool 58%sk_Clockwise = OpVariable %_ptr_Input_bool Input 59%_UniformBuffer = OpTypeStruct %v4float %v4float 60%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 61%12 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 62%void = OpTypeVoid 63%17 = OpTypeFunction %void 64%v2float = OpTypeVector %float 2 65%float_0 = OpConstant %float 0 66%21 = OpConstantComposite %v2float %float_0 %float_0 67%_ptr_Function_v2float = OpTypePointer Function %v2float 68%_ptr_Function_float = OpTypePointer Function %float 69%25 = OpTypeFunction %v2float %_ptr_Function_float %_ptr_Function_float %_ptr_Function_v2float %_ptr_Function_float 70%_ptr_Function_v4float = OpTypePointer Function %v4float 71%39 = OpTypeFunction %void %_ptr_Function_v4float 72%float_1 = OpConstant %float 1 73%float_2 = OpConstant %float 2 74%float_5 = OpConstant %float 5 75%60 = OpTypeFunction %v4float %_ptr_Function_v2float 76%float_3 = OpConstant %float 3 77%65 = OpConstantComposite %v4float %float_0 %float_1 %float_2 %float_3 78%68 = OpConstantComposite %v4float %float_2 %float_3 %float_0 %float_5 79%v4bool = OpTypeVector %bool 4 80%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 81%int = OpTypeInt 32 1 82%int_0 = OpConstant %int 0 83%int_1 = OpConstant %int 1 84%_entrypoint_v = OpFunction %void None %17 85%18 = OpLabel 86%22 = OpVariable %_ptr_Function_v2float Function 87OpStore %22 %21 88%24 = OpFunctionCall %v4float %main %22 89OpStore %sk_FragColor %24 90OpReturn 91OpFunctionEnd 92%tricky_h2hhh2h = OpFunction %v2float None %25 93%27 = OpFunctionParameter %_ptr_Function_float 94%28 = OpFunctionParameter %_ptr_Function_float 95%29 = OpFunctionParameter %_ptr_Function_v2float 96%30 = OpFunctionParameter %_ptr_Function_float 97%31 = OpLabel 98%32 = OpLoad %v2float %29 99%33 = OpVectorShuffle %v2float %32 %32 1 0 100OpStore %29 %33 101%34 = OpLoad %float %27 102%35 = OpLoad %float %28 103%36 = OpFAdd %float %34 %35 104%37 = OpLoad %float %30 105%38 = OpCompositeConstruct %v2float %36 %37 106OpReturnValue %38 107OpFunctionEnd 108%func_vh4 = OpFunction %void None %39 109%41 = OpFunctionParameter %_ptr_Function_v4float 110%42 = OpLabel 111%t = OpVariable %_ptr_Function_v2float Function 112%45 = OpVariable %_ptr_Function_float Function 113%47 = OpVariable %_ptr_Function_float Function 114%50 = OpVariable %_ptr_Function_v2float Function 115%52 = OpVariable %_ptr_Function_float Function 116OpStore %45 %float_1 117OpStore %47 %float_2 118%48 = OpLoad %v4float %41 119%49 = OpVectorShuffle %v2float %48 %48 0 2 120OpStore %50 %49 121OpStore %52 %float_5 122%53 = OpFunctionCall %v2float %tricky_h2hhh2h %45 %47 %50 %52 123%54 = OpLoad %v2float %50 124%55 = OpLoad %v4float %41 125%56 = OpVectorShuffle %v4float %55 %54 4 1 5 3 126OpStore %41 %56 127OpStore %t %53 128%57 = OpLoad %v2float %t 129%58 = OpLoad %v4float %41 130%59 = OpVectorShuffle %v4float %58 %57 0 4 2 5 131OpStore %41 %59 132OpReturn 133OpFunctionEnd 134%main = OpFunction %v4float None %60 135%61 = OpFunctionParameter %_ptr_Function_v2float 136%62 = OpLabel 137%result = OpVariable %_ptr_Function_v4float Function 138%72 = OpVariable %_ptr_Function_v4float Function 139OpStore %result %65 140%66 = OpFunctionCall %void %func_vh4 %result 141%67 = OpLoad %v4float %result 142%69 = OpFOrdEqual %v4bool %67 %68 143%71 = OpAll %bool %69 144OpSelectionMerge %75 None 145OpBranchConditional %71 %73 %74 146%73 = OpLabel 147%76 = OpAccessChain %_ptr_Uniform_v4float %12 %int_0 148%80 = OpLoad %v4float %76 149OpStore %72 %80 150OpBranch %75 151%74 = OpLabel 152%81 = OpAccessChain %_ptr_Uniform_v4float %12 %int_1 153%83 = OpLoad %v4float %81 154OpStore %72 %83 155OpBranch %75 156%75 = OpLabel 157%84 = OpLoad %v4float %72 158OpReturnValue %84 159OpFunctionEnd 160