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