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