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