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