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