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