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 "colorWhite" 13OpName %_entrypoint_v "_entrypoint_v" 14OpName %main "main" 15OpName %expectedA "expectedA" 16OpName %expectedB "expectedB" 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 25OpMemberDecorate %_UniformBuffer 2 Offset 32 26OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision 27OpMemberDecorate %_UniformBuffer 3 Offset 48 28OpMemberDecorate %_UniformBuffer 3 RelaxedPrecision 29OpDecorate %_UniformBuffer Block 30OpDecorate %10 Binding 0 31OpDecorate %10 DescriptorSet 0 32OpDecorate %expectedA RelaxedPrecision 33OpDecorate %30 RelaxedPrecision 34OpDecorate %expectedB RelaxedPrecision 35OpDecorate %33 RelaxedPrecision 36OpDecorate %40 RelaxedPrecision 37OpDecorate %41 RelaxedPrecision 38OpDecorate %42 RelaxedPrecision 39OpDecorate %43 RelaxedPrecision 40OpDecorate %49 RelaxedPrecision 41OpDecorate %50 RelaxedPrecision 42OpDecorate %51 RelaxedPrecision 43OpDecorate %52 RelaxedPrecision 44OpDecorate %53 RelaxedPrecision 45OpDecorate %62 RelaxedPrecision 46OpDecorate %63 RelaxedPrecision 47OpDecorate %65 RelaxedPrecision 48OpDecorate %66 RelaxedPrecision 49OpDecorate %67 RelaxedPrecision 50OpDecorate %76 RelaxedPrecision 51OpDecorate %77 RelaxedPrecision 52OpDecorate %78 RelaxedPrecision 53OpDecorate %85 RelaxedPrecision 54OpDecorate %86 RelaxedPrecision 55OpDecorate %91 RelaxedPrecision 56OpDecorate %92 RelaxedPrecision 57OpDecorate %93 RelaxedPrecision 58OpDecorate %99 RelaxedPrecision 59OpDecorate %100 RelaxedPrecision 60OpDecorate %101 RelaxedPrecision 61OpDecorate %107 RelaxedPrecision 62OpDecorate %115 RelaxedPrecision 63OpDecorate %116 RelaxedPrecision 64OpDecorate %119 RelaxedPrecision 65OpDecorate %120 RelaxedPrecision 66OpDecorate %121 RelaxedPrecision 67OpDecorate %122 RelaxedPrecision 68OpDecorate %129 RelaxedPrecision 69OpDecorate %130 RelaxedPrecision 70OpDecorate %132 RelaxedPrecision 71OpDecorate %133 RelaxedPrecision 72OpDecorate %134 RelaxedPrecision 73OpDecorate %135 RelaxedPrecision 74OpDecorate %143 RelaxedPrecision 75OpDecorate %144 RelaxedPrecision 76OpDecorate %146 RelaxedPrecision 77OpDecorate %147 RelaxedPrecision 78OpDecorate %148 RelaxedPrecision 79OpDecorate %149 RelaxedPrecision 80OpDecorate %157 RelaxedPrecision 81OpDecorate %159 RelaxedPrecision 82OpDecorate %160 RelaxedPrecision 83OpDecorate %166 RelaxedPrecision 84OpDecorate %167 RelaxedPrecision 85OpDecorate %172 RelaxedPrecision 86OpDecorate %173 RelaxedPrecision 87OpDecorate %174 RelaxedPrecision 88OpDecorate %180 RelaxedPrecision 89OpDecorate %181 RelaxedPrecision 90OpDecorate %182 RelaxedPrecision 91OpDecorate %188 RelaxedPrecision 92OpDecorate %198 RelaxedPrecision 93OpDecorate %201 RelaxedPrecision 94OpDecorate %202 RelaxedPrecision 95%float = OpTypeFloat 32 96%v4float = OpTypeVector %float 4 97%_ptr_Output_v4float = OpTypePointer Output %v4float 98%sk_FragColor = OpVariable %_ptr_Output_v4float Output 99%bool = OpTypeBool 100%_ptr_Input_bool = OpTypePointer Input %bool 101%sk_Clockwise = OpVariable %_ptr_Input_bool Input 102%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float %v4float 103%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 104%10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 105%void = OpTypeVoid 106%15 = OpTypeFunction %void 107%v2float = OpTypeVector %float 2 108%float_0 = OpConstant %float 0 109%19 = OpConstantComposite %v2float %float_0 %float_0 110%_ptr_Function_v2float = OpTypePointer Function %v2float 111%23 = OpTypeFunction %v4float %_ptr_Function_v2float 112%_ptr_Function_v4float = OpTypePointer Function %v4float 113%float_0_75 = OpConstant %float 0.75 114%float_0_25 = OpConstant %float 0.25 115%30 = OpConstantComposite %v4float %float_0_75 %float_0 %float_0_75 %float_0_25 116%float_1 = OpConstant %float 1 117%33 = OpConstantComposite %v4float %float_0_25 %float_0 %float_0_75 %float_1 118%false = OpConstantFalse %bool 119%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 120%int = OpTypeInt 32 1 121%int_0 = OpConstant %int 0 122%v2bool = OpTypeVector %bool 2 123%v3float = OpTypeVector %float 3 124%v3bool = OpTypeVector %bool 3 125%v4bool = OpTypeVector %bool 4 126%91 = OpConstantComposite %v2float %float_0_75 %float_0 127%99 = OpConstantComposite %v3float %float_0_75 %float_0 %float_0_75 128%int_3 = OpConstant %int 3 129%172 = OpConstantComposite %v2float %float_0_25 %float_0 130%180 = OpConstantComposite %v3float %float_0_25 %float_0 %float_0_75 131%int_1 = OpConstant %int 1 132%int_2 = OpConstant %int 2 133%_entrypoint_v = OpFunction %void None %15 134%16 = OpLabel 135%20 = OpVariable %_ptr_Function_v2float Function 136OpStore %20 %19 137%22 = OpFunctionCall %v4float %main %20 138OpStore %sk_FragColor %22 139OpReturn 140OpFunctionEnd 141%main = OpFunction %v4float None %23 142%24 = OpFunctionParameter %_ptr_Function_v2float 143%25 = OpLabel 144%expectedA = OpVariable %_ptr_Function_v4float Function 145%expectedB = OpVariable %_ptr_Function_v4float Function 146%192 = OpVariable %_ptr_Function_v4float Function 147OpStore %expectedA %30 148OpStore %expectedB %33 149%36 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 150%40 = OpLoad %v4float %36 151%41 = OpCompositeExtract %float %40 0 152%35 = OpFMod %float %41 %float_1 153%42 = OpLoad %v4float %expectedA 154%43 = OpCompositeExtract %float %42 0 155%44 = OpFOrdEqual %bool %35 %43 156OpSelectionMerge %46 None 157OpBranchConditional %44 %45 %46 158%45 = OpLabel 159%48 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 160%49 = OpLoad %v4float %48 161%50 = OpVectorShuffle %v2float %49 %49 0 1 162%51 = OpCompositeConstruct %v2float %float_1 %float_1 163%47 = OpFMod %v2float %50 %51 164%52 = OpLoad %v4float %expectedA 165%53 = OpVectorShuffle %v2float %52 %52 0 1 166%54 = OpFOrdEqual %v2bool %47 %53 167%56 = OpAll %bool %54 168OpBranch %46 169%46 = OpLabel 170%57 = OpPhi %bool %false %25 %56 %45 171OpSelectionMerge %59 None 172OpBranchConditional %57 %58 %59 173%58 = OpLabel 174%61 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 175%62 = OpLoad %v4float %61 176%63 = OpVectorShuffle %v3float %62 %62 0 1 2 177%65 = OpCompositeConstruct %v3float %float_1 %float_1 %float_1 178%60 = OpFMod %v3float %63 %65 179%66 = OpLoad %v4float %expectedA 180%67 = OpVectorShuffle %v3float %66 %66 0 1 2 181%68 = OpFOrdEqual %v3bool %60 %67 182%70 = OpAll %bool %68 183OpBranch %59 184%59 = OpLabel 185%71 = OpPhi %bool %false %46 %70 %58 186OpSelectionMerge %73 None 187OpBranchConditional %71 %72 %73 188%72 = OpLabel 189%75 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 190%76 = OpLoad %v4float %75 191%77 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1 192%74 = OpFMod %v4float %76 %77 193%78 = OpLoad %v4float %expectedA 194%79 = OpFOrdEqual %v4bool %74 %78 195%81 = OpAll %bool %79 196OpBranch %73 197%73 = OpLabel 198%82 = OpPhi %bool %false %59 %81 %72 199OpSelectionMerge %84 None 200OpBranchConditional %82 %83 %84 201%83 = OpLabel 202%85 = OpLoad %v4float %expectedA 203%86 = OpCompositeExtract %float %85 0 204%87 = OpFOrdEqual %bool %float_0_75 %86 205OpBranch %84 206%84 = OpLabel 207%88 = OpPhi %bool %false %73 %87 %83 208OpSelectionMerge %90 None 209OpBranchConditional %88 %89 %90 210%89 = OpLabel 211%92 = OpLoad %v4float %expectedA 212%93 = OpVectorShuffle %v2float %92 %92 0 1 213%94 = OpFOrdEqual %v2bool %91 %93 214%95 = OpAll %bool %94 215OpBranch %90 216%90 = OpLabel 217%96 = OpPhi %bool %false %84 %95 %89 218OpSelectionMerge %98 None 219OpBranchConditional %96 %97 %98 220%97 = OpLabel 221%100 = OpLoad %v4float %expectedA 222%101 = OpVectorShuffle %v3float %100 %100 0 1 2 223%102 = OpFOrdEqual %v3bool %99 %101 224%103 = OpAll %bool %102 225OpBranch %98 226%98 = OpLabel 227%104 = OpPhi %bool %false %90 %103 %97 228OpSelectionMerge %106 None 229OpBranchConditional %104 %105 %106 230%105 = OpLabel 231%107 = OpLoad %v4float %expectedA 232%108 = OpFOrdEqual %v4bool %30 %107 233%109 = OpAll %bool %108 234OpBranch %106 235%106 = OpLabel 236%110 = OpPhi %bool %false %98 %109 %105 237OpSelectionMerge %112 None 238OpBranchConditional %110 %111 %112 239%111 = OpLabel 240%114 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 241%115 = OpLoad %v4float %114 242%116 = OpCompositeExtract %float %115 0 243%117 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 244%119 = OpLoad %v4float %117 245%120 = OpCompositeExtract %float %119 0 246%113 = OpFMod %float %116 %120 247%121 = OpLoad %v4float %expectedA 248%122 = OpCompositeExtract %float %121 0 249%123 = OpFOrdEqual %bool %113 %122 250OpBranch %112 251%112 = OpLabel 252%124 = OpPhi %bool %false %106 %123 %111 253OpSelectionMerge %126 None 254OpBranchConditional %124 %125 %126 255%125 = OpLabel 256%128 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 257%129 = OpLoad %v4float %128 258%130 = OpVectorShuffle %v2float %129 %129 0 1 259%131 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 260%132 = OpLoad %v4float %131 261%133 = OpVectorShuffle %v2float %132 %132 0 1 262%127 = OpFMod %v2float %130 %133 263%134 = OpLoad %v4float %expectedA 264%135 = OpVectorShuffle %v2float %134 %134 0 1 265%136 = OpFOrdEqual %v2bool %127 %135 266%137 = OpAll %bool %136 267OpBranch %126 268%126 = OpLabel 269%138 = OpPhi %bool %false %112 %137 %125 270OpSelectionMerge %140 None 271OpBranchConditional %138 %139 %140 272%139 = OpLabel 273%142 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 274%143 = OpLoad %v4float %142 275%144 = OpVectorShuffle %v3float %143 %143 0 1 2 276%145 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 277%146 = OpLoad %v4float %145 278%147 = OpVectorShuffle %v3float %146 %146 0 1 2 279%141 = OpFMod %v3float %144 %147 280%148 = OpLoad %v4float %expectedA 281%149 = OpVectorShuffle %v3float %148 %148 0 1 2 282%150 = OpFOrdEqual %v3bool %141 %149 283%151 = OpAll %bool %150 284OpBranch %140 285%140 = OpLabel 286%152 = OpPhi %bool %false %126 %151 %139 287OpSelectionMerge %154 None 288OpBranchConditional %152 %153 %154 289%153 = OpLabel 290%156 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 291%157 = OpLoad %v4float %156 292%158 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3 293%159 = OpLoad %v4float %158 294%155 = OpFMod %v4float %157 %159 295%160 = OpLoad %v4float %expectedA 296%161 = OpFOrdEqual %v4bool %155 %160 297%162 = OpAll %bool %161 298OpBranch %154 299%154 = OpLabel 300%163 = OpPhi %bool %false %140 %162 %153 301OpSelectionMerge %165 None 302OpBranchConditional %163 %164 %165 303%164 = OpLabel 304%166 = OpLoad %v4float %expectedB 305%167 = OpCompositeExtract %float %166 0 306%168 = OpFOrdEqual %bool %float_0_25 %167 307OpBranch %165 308%165 = OpLabel 309%169 = OpPhi %bool %false %154 %168 %164 310OpSelectionMerge %171 None 311OpBranchConditional %169 %170 %171 312%170 = OpLabel 313%173 = OpLoad %v4float %expectedB 314%174 = OpVectorShuffle %v2float %173 %173 0 1 315%175 = OpFOrdEqual %v2bool %172 %174 316%176 = OpAll %bool %175 317OpBranch %171 318%171 = OpLabel 319%177 = OpPhi %bool %false %165 %176 %170 320OpSelectionMerge %179 None 321OpBranchConditional %177 %178 %179 322%178 = OpLabel 323%181 = OpLoad %v4float %expectedB 324%182 = OpVectorShuffle %v3float %181 %181 0 1 2 325%183 = OpFOrdEqual %v3bool %180 %182 326%184 = OpAll %bool %183 327OpBranch %179 328%179 = OpLabel 329%185 = OpPhi %bool %false %171 %184 %178 330OpSelectionMerge %187 None 331OpBranchConditional %185 %186 %187 332%186 = OpLabel 333%188 = OpLoad %v4float %expectedB 334%189 = OpFOrdEqual %v4bool %33 %188 335%190 = OpAll %bool %189 336OpBranch %187 337%187 = OpLabel 338%191 = OpPhi %bool %false %179 %190 %186 339OpSelectionMerge %195 None 340OpBranchConditional %191 %193 %194 341%193 = OpLabel 342%196 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 343%198 = OpLoad %v4float %196 344OpStore %192 %198 345OpBranch %195 346%194 = OpLabel 347%199 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 348%201 = OpLoad %v4float %199 349OpStore %192 %201 350OpBranch %195 351%195 = OpLabel 352%202 = OpLoad %v4float %192 353OpReturnValue %202 354OpFunctionEnd 355