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