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 %110 RelaxedPrecision 49OpDecorate %113 RelaxedPrecision 50OpDecorate %114 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%100 = OpConstantComposite %v2float %float_1 %float_0 81%int_1 = OpConstant %int 1 82%int_2 = OpConstant %int 2 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%expected = OpVariable %_ptr_Function_v4float Function 95%104 = OpVariable %_ptr_Function_v4float Function 96OpStore %expected %28 97%31 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 98%35 = OpLoad %v4float %31 99%36 = OpCompositeExtract %float %35 0 100%30 = OpDPdx %float %36 101%37 = OpLoad %v4float %expected 102%38 = OpCompositeExtract %float %37 0 103%39 = OpFOrdEqual %bool %30 %38 104OpSelectionMerge %41 None 105OpBranchConditional %39 %40 %41 106%40 = OpLabel 107%43 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 108%44 = OpLoad %v4float %43 109%45 = OpVectorShuffle %v2float %44 %44 0 1 110%42 = OpDPdx %v2float %45 111%46 = OpLoad %v4float %expected 112%47 = OpVectorShuffle %v2float %46 %46 0 1 113%48 = OpFOrdEqual %v2bool %42 %47 114%50 = OpAll %bool %48 115OpBranch %41 116%41 = OpLabel 117%51 = OpPhi %bool %false %25 %50 %40 118OpSelectionMerge %53 None 119OpBranchConditional %51 %52 %53 120%52 = OpLabel 121%55 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 122%56 = OpLoad %v4float %55 123%57 = OpVectorShuffle %v3float %56 %56 0 1 2 124%54 = OpDPdx %v3float %57 125%59 = OpLoad %v4float %expected 126%60 = OpVectorShuffle %v3float %59 %59 0 1 2 127%61 = OpFOrdEqual %v3bool %54 %60 128%63 = OpAll %bool %61 129OpBranch %53 130%53 = OpLabel 131%64 = OpPhi %bool %false %41 %63 %52 132OpSelectionMerge %66 None 133OpBranchConditional %64 %65 %66 134%65 = OpLabel 135%68 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 136%69 = OpLoad %v4float %68 137%67 = OpDPdx %v4float %69 138%70 = OpLoad %v4float %expected 139%71 = OpFOrdEqual %v4bool %67 %70 140%73 = OpAll %bool %71 141OpBranch %66 142%66 = OpLabel 143%74 = OpPhi %bool %false %53 %73 %65 144OpSelectionMerge %76 None 145OpBranchConditional %74 %75 %76 146%75 = OpLabel 147%79 = OpLoad %v2float %24 148%80 = OpVectorShuffle %v2float %79 %79 0 0 149%78 = OpDPdx %v2float %80 150%77 = OpExtInst %v2float %1 FSign %78 151%83 = OpFOrdEqual %v2bool %77 %82 152%84 = OpAll %bool %83 153OpBranch %76 154%76 = OpLabel 155%85 = OpPhi %bool %false %66 %84 %75 156OpSelectionMerge %87 None 157OpBranchConditional %85 %86 %87 158%86 = OpLabel 159%90 = OpLoad %v2float %24 160%91 = OpVectorShuffle %v2float %90 %90 1 1 161%89 = OpDPdx %v2float %91 162%88 = OpExtInst %v2float %1 FSign %89 163%92 = OpFOrdEqual %v2bool %88 %19 164%93 = OpAll %bool %92 165OpBranch %87 166%87 = OpLabel 167%94 = OpPhi %bool %false %76 %93 %86 168OpSelectionMerge %96 None 169OpBranchConditional %94 %95 %96 170%95 = OpLabel 171%99 = OpLoad %v2float %24 172%98 = OpDPdx %v2float %99 173%97 = OpExtInst %v2float %1 FSign %98 174%101 = OpFOrdEqual %v2bool %97 %100 175%102 = OpAll %bool %101 176OpBranch %96 177%96 = OpLabel 178%103 = OpPhi %bool %false %87 %102 %95 179OpSelectionMerge %107 None 180OpBranchConditional %103 %105 %106 181%105 = OpLabel 182%108 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 183%110 = OpLoad %v4float %108 184OpStore %104 %110 185OpBranch %107 186%106 = OpLabel 187%111 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 188%113 = OpLoad %v4float %111 189OpStore %104 %113 190OpBranch %107 191%107 = OpLabel 192%114 = OpLoad %v4float %104 193OpReturnValue %114 194OpFunctionEnd 195