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