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