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