1 OpCapability Shader 2 %1 = OpExtInstImport "GLSL.std.450" 3 OpMemoryModel Logical GLSL450 4 OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor 5 OpExecutionMode %_entrypoint_v OriginUpperLeft 6 OpName %sk_FragColor "sk_FragColor" 7 OpName %_UniformBuffer "_UniformBuffer" 8 OpMemberName %_UniformBuffer 0 "testInputs" 9 OpMemberName %_UniformBuffer 1 "colorGreen" 10 OpMemberName %_UniformBuffer 2 "colorRed" 11 OpName %_entrypoint_v "_entrypoint_v" 12 OpName %main "main" 13 OpName %expectedA "expectedA" 14 OpName %expectedB "expectedB" 15 OpDecorate %sk_FragColor RelaxedPrecision 16 OpDecorate %sk_FragColor Location 0 17 OpDecorate %sk_FragColor Index 0 18 OpMemberDecorate %_UniformBuffer 0 Offset 0 19 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 20 OpMemberDecorate %_UniformBuffer 1 Offset 16 21 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 22 OpMemberDecorate %_UniformBuffer 2 Offset 32 23 OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision 24 OpDecorate %_UniformBuffer Block 25 OpDecorate %7 Binding 0 26 OpDecorate %7 DescriptorSet 0 27 OpDecorate %expectedA RelaxedPrecision 28 OpDecorate %expectedB RelaxedPrecision 29 OpDecorate %40 RelaxedPrecision 30 OpDecorate %41 RelaxedPrecision 31 OpDecorate %47 RelaxedPrecision 32 OpDecorate %48 RelaxedPrecision 33 OpDecorate %51 RelaxedPrecision 34 OpDecorate %60 RelaxedPrecision 35 OpDecorate %61 RelaxedPrecision 36 OpDecorate %65 RelaxedPrecision 37 OpDecorate %74 RelaxedPrecision 38 OpDecorate %85 RelaxedPrecision 39 OpDecorate %86 RelaxedPrecision 40 OpDecorate %93 RelaxedPrecision 41 OpDecorate %94 RelaxedPrecision 42 OpDecorate %99 RelaxedPrecision 43 OpDecorate %107 RelaxedPrecision 44 OpDecorate %108 RelaxedPrecision 45 OpDecorate %111 RelaxedPrecision 46 OpDecorate %119 RelaxedPrecision 47 OpDecorate %133 RelaxedPrecision 48 OpDecorate %140 RelaxedPrecision 49 OpDecorate %152 RelaxedPrecision 50 OpDecorate %159 RelaxedPrecision 51 OpDecorate %172 RelaxedPrecision 52 OpDecorate %175 RelaxedPrecision 53 OpDecorate %176 RelaxedPrecision 54 %float = OpTypeFloat 32 55 %v4float = OpTypeVector %float 4 56%_ptr_Output_v4float = OpTypePointer Output %v4float 57%sk_FragColor = OpVariable %_ptr_Output_v4float Output 58%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float 59%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 60 %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 61 %void = OpTypeVoid 62 %12 = OpTypeFunction %void 63 %float_0 = OpConstant %float 0 64 %v2float = OpTypeVector %float 2 65 %16 = OpConstantComposite %v2float %float_0 %float_0 66%_ptr_Function_v2float = OpTypePointer Function %v2float 67 %20 = OpTypeFunction %v4float %_ptr_Function_v2float 68%_ptr_Function_v4float = OpTypePointer Function %v4float 69 %float_n1 = OpConstant %float -1 70 %float_0_75 = OpConstant %float 0.75 71 %float_1 = OpConstant %float 1 72 %28 = OpConstantComposite %v4float %float_n1 %float_0 %float_0_75 %float_1 73 %float_0_5 = OpConstant %float 0.5 74 %float_2_25 = OpConstant %float 2.25 75 %32 = OpConstantComposite %v4float %float_n1 %float_0 %float_0_5 %float_2_25 76 %bool = OpTypeBool 77 %false = OpConstantFalse %bool 78%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 79 %int = OpTypeInt 32 1 80 %int_0 = OpConstant %int 0 81 %49 = OpConstantComposite %v2float %float_n1 %float_n1 82 %50 = OpConstantComposite %v2float %float_1 %float_1 83 %v2bool = OpTypeVector %bool 2 84 %v3float = OpTypeVector %float 3 85 %63 = OpConstantComposite %v3float %float_n1 %float_n1 %float_n1 86 %64 = OpConstantComposite %v3float %float_1 %float_1 %float_1 87 %v3bool = OpTypeVector %bool 3 88 %75 = OpConstantComposite %v4float %float_n1 %float_n1 %float_n1 %float_n1 89 %76 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 90 %v4bool = OpTypeVector %bool 4 91 %float_n2 = OpConstant %float -2 92 %96 = OpConstantComposite %v2float %float_n1 %float_n2 93 %float_2 = OpConstant %float 2 94 %98 = OpConstantComposite %v2float %float_1 %float_2 95 %109 = OpConstantComposite %v3float %float_n1 %float_n2 %float_n2 96 %110 = OpConstantComposite %v3float %float_1 %float_2 %float_0_5 97 %120 = OpConstantComposite %v4float %float_n1 %float_n2 %float_n2 %float_1 98 %float_3 = OpConstant %float 3 99 %122 = OpConstantComposite %v4float %float_1 %float_2 %float_0_5 %float_3 100 %true = OpConstantTrue %bool 101 %132 = OpConstantComposite %v2float %float_n1 %float_0 102 %139 = OpConstantComposite %v3float %float_n1 %float_0 %float_0_75 103 %158 = OpConstantComposite %v3float %float_n1 %float_0 %float_0_5 104 %int_1 = OpConstant %int 1 105 %int_2 = OpConstant %int 2 106%_entrypoint_v = OpFunction %void None %12 107 %13 = OpLabel 108 %17 = OpVariable %_ptr_Function_v2float Function 109 OpStore %17 %16 110 %19 = OpFunctionCall %v4float %main %17 111 OpStore %sk_FragColor %19 112 OpReturn 113 OpFunctionEnd 114 %main = OpFunction %v4float None %20 115 %21 = OpFunctionParameter %_ptr_Function_v2float 116 %22 = OpLabel 117 %expectedA = OpVariable %_ptr_Function_v4float Function 118 %expectedB = OpVariable %_ptr_Function_v4float Function 119 %166 = OpVariable %_ptr_Function_v4float Function 120 OpStore %expectedA %28 121 OpStore %expectedB %32 122 %36 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 123 %40 = OpLoad %v4float %36 124 %41 = OpCompositeExtract %float %40 0 125 %35 = OpExtInst %float %1 FClamp %41 %float_n1 %float_1 126 %42 = OpFOrdEqual %bool %35 %float_n1 127 OpSelectionMerge %44 None 128 OpBranchConditional %42 %43 %44 129 %43 = OpLabel 130 %46 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 131 %47 = OpLoad %v4float %46 132 %48 = OpVectorShuffle %v2float %47 %47 0 1 133 %45 = OpExtInst %v2float %1 FClamp %48 %49 %50 134 %51 = OpVectorShuffle %v2float %28 %28 0 1 135 %52 = OpFOrdEqual %v2bool %45 %51 136 %54 = OpAll %bool %52 137 OpBranch %44 138 %44 = OpLabel 139 %55 = OpPhi %bool %false %22 %54 %43 140 OpSelectionMerge %57 None 141 OpBranchConditional %55 %56 %57 142 %56 = OpLabel 143 %59 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 144 %60 = OpLoad %v4float %59 145 %61 = OpVectorShuffle %v3float %60 %60 0 1 2 146 %58 = OpExtInst %v3float %1 FClamp %61 %63 %64 147 %65 = OpVectorShuffle %v3float %28 %28 0 1 2 148 %66 = OpFOrdEqual %v3bool %58 %65 149 %68 = OpAll %bool %66 150 OpBranch %57 151 %57 = OpLabel 152 %69 = OpPhi %bool %false %44 %68 %56 153 OpSelectionMerge %71 None 154 OpBranchConditional %69 %70 %71 155 %70 = OpLabel 156 %73 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 157 %74 = OpLoad %v4float %73 158 %72 = OpExtInst %v4float %1 FClamp %74 %75 %76 159 %77 = OpFOrdEqual %v4bool %72 %28 160 %79 = OpAll %bool %77 161 OpBranch %71 162 %71 = OpLabel 163 %80 = OpPhi %bool %false %57 %79 %70 164 OpSelectionMerge %82 None 165 OpBranchConditional %80 %81 %82 166 %81 = OpLabel 167 %84 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 168 %85 = OpLoad %v4float %84 169 %86 = OpCompositeExtract %float %85 0 170 %83 = OpExtInst %float %1 FClamp %86 %float_n1 %float_1 171 %87 = OpFOrdEqual %bool %83 %float_n1 172 OpBranch %82 173 %82 = OpLabel 174 %88 = OpPhi %bool %false %71 %87 %81 175 OpSelectionMerge %90 None 176 OpBranchConditional %88 %89 %90 177 %89 = OpLabel 178 %92 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 179 %93 = OpLoad %v4float %92 180 %94 = OpVectorShuffle %v2float %93 %93 0 1 181 %91 = OpExtInst %v2float %1 FClamp %94 %96 %98 182 %99 = OpVectorShuffle %v2float %32 %32 0 1 183 %100 = OpFOrdEqual %v2bool %91 %99 184 %101 = OpAll %bool %100 185 OpBranch %90 186 %90 = OpLabel 187 %102 = OpPhi %bool %false %82 %101 %89 188 OpSelectionMerge %104 None 189 OpBranchConditional %102 %103 %104 190 %103 = OpLabel 191 %106 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 192 %107 = OpLoad %v4float %106 193 %108 = OpVectorShuffle %v3float %107 %107 0 1 2 194 %105 = OpExtInst %v3float %1 FClamp %108 %109 %110 195 %111 = OpVectorShuffle %v3float %32 %32 0 1 2 196 %112 = OpFOrdEqual %v3bool %105 %111 197 %113 = OpAll %bool %112 198 OpBranch %104 199 %104 = OpLabel 200 %114 = OpPhi %bool %false %90 %113 %103 201 OpSelectionMerge %116 None 202 OpBranchConditional %114 %115 %116 203 %115 = OpLabel 204 %118 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 205 %119 = OpLoad %v4float %118 206 %117 = OpExtInst %v4float %1 FClamp %119 %120 %122 207 %123 = OpFOrdEqual %v4bool %117 %32 208 %124 = OpAll %bool %123 209 OpBranch %116 210 %116 = OpLabel 211 %125 = OpPhi %bool %false %104 %124 %115 212 OpSelectionMerge %127 None 213 OpBranchConditional %125 %126 %127 214 %126 = OpLabel 215 OpBranch %127 216 %127 = OpLabel 217 %129 = OpPhi %bool %false %116 %true %126 218 OpSelectionMerge %131 None 219 OpBranchConditional %129 %130 %131 220 %130 = OpLabel 221 %133 = OpVectorShuffle %v2float %28 %28 0 1 222 %134 = OpFOrdEqual %v2bool %132 %133 223 %135 = OpAll %bool %134 224 OpBranch %131 225 %131 = OpLabel 226 %136 = OpPhi %bool %false %127 %135 %130 227 OpSelectionMerge %138 None 228 OpBranchConditional %136 %137 %138 229 %137 = OpLabel 230 %140 = OpVectorShuffle %v3float %28 %28 0 1 2 231 %141 = OpFOrdEqual %v3bool %139 %140 232 %142 = OpAll %bool %141 233 OpBranch %138 234 %138 = OpLabel 235 %143 = OpPhi %bool %false %131 %142 %137 236 OpSelectionMerge %145 None 237 OpBranchConditional %143 %144 %145 238 %144 = OpLabel 239 OpBranch %145 240 %145 = OpLabel 241 %146 = OpPhi %bool %false %138 %true %144 242 OpSelectionMerge %148 None 243 OpBranchConditional %146 %147 %148 244 %147 = OpLabel 245 OpBranch %148 246 %148 = OpLabel 247 %149 = OpPhi %bool %false %145 %true %147 248 OpSelectionMerge %151 None 249 OpBranchConditional %149 %150 %151 250 %150 = OpLabel 251 %152 = OpVectorShuffle %v2float %32 %32 0 1 252 %153 = OpFOrdEqual %v2bool %132 %152 253 %154 = OpAll %bool %153 254 OpBranch %151 255 %151 = OpLabel 256 %155 = OpPhi %bool %false %148 %154 %150 257 OpSelectionMerge %157 None 258 OpBranchConditional %155 %156 %157 259 %156 = OpLabel 260 %159 = OpVectorShuffle %v3float %32 %32 0 1 2 261 %160 = OpFOrdEqual %v3bool %158 %159 262 %161 = OpAll %bool %160 263 OpBranch %157 264 %157 = OpLabel 265 %162 = OpPhi %bool %false %151 %161 %156 266 OpSelectionMerge %164 None 267 OpBranchConditional %162 %163 %164 268 %163 = OpLabel 269 OpBranch %164 270 %164 = OpLabel 271 %165 = OpPhi %bool %false %157 %true %163 272 OpSelectionMerge %169 None 273 OpBranchConditional %165 %167 %168 274 %167 = OpLabel 275 %170 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 276 %172 = OpLoad %v4float %170 277 OpStore %166 %172 278 OpBranch %169 279 %168 = OpLabel 280 %173 = OpAccessChain %_ptr_Uniform_v4float %7 %int_2 281 %175 = OpLoad %v4float %173 282 OpStore %166 %175 283 OpBranch %169 284 %169 = OpLabel 285 %176 = OpLoad %v4float %166 286 OpReturnValue %176 287 OpFunctionEnd 288