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 "colorGreen" 9 OpMemberName %_UniformBuffer 1 "colorRed" 10 OpMemberName %_UniformBuffer 2 "unknownInput" 11 OpName %_entrypoint_v "_entrypoint_v" 12 OpName %main "main" 13 OpName %x "x" 14 OpName %y "y" 15 OpName %z "z" 16 OpName %b "b" 17 OpName %c "c" 18 OpName %d "d" 19 OpName %e "e" 20 OpName %f "f" 21 OpName %w "w" 22 OpDecorate %sk_FragColor RelaxedPrecision 23 OpDecorate %sk_FragColor Location 0 24 OpDecorate %sk_FragColor Index 0 25 OpMemberDecorate %_UniformBuffer 0 Offset 0 26 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 27 OpMemberDecorate %_UniformBuffer 1 Offset 16 28 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 29 OpMemberDecorate %_UniformBuffer 2 Offset 32 30 OpDecorate %_UniformBuffer Block 31 OpDecorate %7 Binding 0 32 OpDecorate %7 DescriptorSet 0 33 OpDecorate %99 RelaxedPrecision 34 OpDecorate %100 RelaxedPrecision 35 OpDecorate %114 RelaxedPrecision 36 OpDecorate %115 RelaxedPrecision 37 OpDecorate %145 RelaxedPrecision 38 OpDecorate %147 RelaxedPrecision 39 OpDecorate %148 RelaxedPrecision 40 %float = OpTypeFloat 32 41 %v4float = OpTypeVector %float 4 42%_ptr_Output_v4float = OpTypePointer Output %v4float 43%sk_FragColor = OpVariable %_ptr_Output_v4float Output 44%_UniformBuffer = OpTypeStruct %v4float %v4float %float 45%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 46 %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 47 %void = OpTypeVoid 48 %12 = OpTypeFunction %void 49 %float_0 = OpConstant %float 0 50 %v2float = OpTypeVector %float 2 51 %16 = OpConstantComposite %v2float %float_0 %float_0 52%_ptr_Function_v2float = OpTypePointer Function %v2float 53 %20 = OpTypeFunction %v4float %_ptr_Function_v2float 54%_ptr_Function_float = OpTypePointer Function %float 55 %float_1 = OpConstant %float 1 56 %float_2 = OpConstant %float 2 57 %int = OpTypeInt 32 1 58%_ptr_Function_int = OpTypePointer Function %int 59 %int_3 = OpConstant %int 3 60 %int_2 = OpConstant %int 2 61 %int_4 = OpConstant %int 4 62 %int_1 = OpConstant %int 1 63 %bool = OpTypeBool 64%_ptr_Function_bool = OpTypePointer Function %bool 65 %true = OpConstantTrue %bool 66 %float_4 = OpConstant %float 4 67 %false = OpConstantFalse %bool 68%_ptr_Uniform_float = OpTypePointer Uniform %float 69 %float_12 = OpConstant %float 12 70%float_0_100000001 = OpConstant %float 0.100000001 71 %int_0 = OpConstant %int 0 72 %int_n1 = OpConstant %int -1 73 %int_5 = OpConstant %int 5 74%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 75 %int_6 = OpConstant %int 6 76 %float_6 = OpConstant %float 6 77 %v2int = OpTypeVector %int 2 78%_ptr_Function_v2int = OpTypePointer Function %v2int 79 %int_n6 = OpConstant %int -6 80 %120 = OpConstantComposite %v2int %int_n6 %int_n6 81%_ptr_Function_v4float = OpTypePointer Function %v4float 82%_entrypoint_v = OpFunction %void None %12 83 %13 = OpLabel 84 %17 = OpVariable %_ptr_Function_v2float Function 85 OpStore %17 %16 86 %19 = OpFunctionCall %v4float %main %17 87 OpStore %sk_FragColor %19 88 OpReturn 89 OpFunctionEnd 90 %main = OpFunction %v4float None %20 91 %21 = OpFunctionParameter %_ptr_Function_v2float 92 %22 = OpLabel 93 %x = OpVariable %_ptr_Function_float Function 94 %y = OpVariable %_ptr_Function_float Function 95 %z = OpVariable %_ptr_Function_int Function 96 %b = OpVariable %_ptr_Function_bool Function 97 %c = OpVariable %_ptr_Function_bool Function 98 %d = OpVariable %_ptr_Function_bool Function 99 %e = OpVariable %_ptr_Function_bool Function 100 %f = OpVariable %_ptr_Function_bool Function 101 %w = OpVariable %_ptr_Function_v2int Function 102 %139 = OpVariable %_ptr_Function_v4float Function 103 OpStore %x %float_1 104 OpStore %y %float_2 105 OpStore %z %int_3 106 %32 = OpFSub %float %float_1 %float_1 107 %33 = OpFMul %float %float_2 %float_1 108 %34 = OpFMul %float %33 %float_1 109 %35 = OpFSub %float %float_2 %float_1 110 %36 = OpFMul %float %34 %35 111 %37 = OpFAdd %float %32 %36 112 OpStore %x %37 113 %38 = OpFDiv %float %37 %float_2 114 %39 = OpFDiv %float %38 %37 115 OpStore %y %39 116 %41 = OpSDiv %int %int_3 %int_2 117 %42 = OpSMod %int %41 %int_3 118 %44 = OpShiftLeftLogical %int %42 %int_4 119 %45 = OpShiftRightArithmetic %int %44 %int_2 120 %47 = OpShiftLeftLogical %int %45 %int_1 121 OpStore %z %47 122 %53 = OpFOrdGreaterThan %bool %37 %float_4 123 %54 = OpFOrdLessThan %bool %37 %float_2 124 %55 = OpLogicalEqual %bool %53 %54 125 OpSelectionMerge %57 None 126 OpBranchConditional %55 %57 %56 127 %56 = OpLabel 128 %59 = OpAccessChain %_ptr_Uniform_float %7 %int_2 129 %61 = OpLoad %float %59 130 %62 = OpFOrdGreaterThanEqual %bool %float_2 %61 131 OpSelectionMerge %64 None 132 OpBranchConditional %62 %63 %64 133 %63 = OpLabel 134 %65 = OpFOrdLessThanEqual %bool %39 %37 135 OpBranch %64 136 %64 = OpLabel 137 %66 = OpPhi %bool %false %56 %65 %63 138 OpBranch %57 139 %57 = OpLabel 140 %67 = OpPhi %bool %true %22 %66 %64 141 OpStore %b %67 142 %69 = OpAccessChain %_ptr_Uniform_float %7 %int_2 143 %70 = OpLoad %float %69 144 %71 = OpFOrdGreaterThan %bool %70 %float_2 145 OpStore %c %71 146 %73 = OpLogicalNotEqual %bool %67 %71 147 OpStore %d %73 148 OpSelectionMerge %76 None 149 OpBranchConditional %67 %75 %76 150 %75 = OpLabel 151 OpBranch %76 152 %76 = OpLabel 153 %77 = OpPhi %bool %false %57 %71 %75 154 OpStore %e %77 155 OpSelectionMerge %80 None 156 OpBranchConditional %67 %80 %79 157 %79 = OpLabel 158 OpBranch %80 159 %80 = OpLabel 160 %81 = OpPhi %bool %true %76 %71 %79 161 OpStore %f %81 162 %83 = OpFAdd %float %37 %float_12 163 OpStore %x %83 164 %84 = OpFSub %float %83 %float_12 165 OpStore %x %84 166 %86 = OpFMul %float %39 %float_0_100000001 167 OpStore %y %86 168 %87 = OpFMul %float %84 %86 169 OpStore %x %87 170 %89 = OpBitwiseOr %int %47 %int_0 171 OpStore %z %89 172 %91 = OpBitwiseAnd %int %89 %int_n1 173 OpStore %z %91 174 %92 = OpBitwiseXor %int %91 %int_0 175 OpStore %z %92 176 %93 = OpShiftRightArithmetic %int %92 %int_2 177 OpStore %z %93 178 %94 = OpShiftLeftLogical %int %93 %int_4 179 OpStore %z %94 180 %96 = OpSMod %int %94 %int_5 181 OpStore %z %96 182 %97 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 183 %99 = OpLoad %v4float %97 184 %100 = OpVectorShuffle %v2float %99 %99 0 1 185 %102 = OpConvertSToF %float %int_6 186 OpStore %x %102 187 %103 = OpSelect %float %67 %float_1 %float_0 188 %104 = OpSelect %float %71 %float_1 %float_0 189 %105 = OpFMul %float %103 %104 190 %106 = OpSelect %float %73 %float_1 %float_0 191 %107 = OpFMul %float %105 %106 192 %108 = OpSelect %float %77 %float_1 %float_0 193 %109 = OpFMul %float %107 %108 194 %110 = OpSelect %float %81 %float_1 %float_0 195 %111 = OpFMul %float %109 %110 196 OpStore %y %float_6 197 %113 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 198 %114 = OpLoad %v4float %113 199 %115 = OpVectorShuffle %v2float %114 %114 2 3 200 OpStore %z %int_6 201 OpStore %w %120 202 %121 = OpNot %v2int %120 203 OpStore %w %121 204 %122 = OpCompositeExtract %int %121 0 205 %123 = OpIEqual %bool %122 %int_5 206 OpSelectionMerge %125 None 207 OpBranchConditional %123 %124 %125 208 %124 = OpLabel 209 %126 = OpCompositeExtract %int %121 1 210 %127 = OpIEqual %bool %126 %int_5 211 OpBranch %125 212 %125 = OpLabel 213 %128 = OpPhi %bool %false %80 %127 %124 214 OpSelectionMerge %130 None 215 OpBranchConditional %128 %129 %130 216 %129 = OpLabel 217 %131 = OpFOrdEqual %bool %102 %float_6 218 OpBranch %130 219 %130 = OpLabel 220 %132 = OpPhi %bool %false %125 %131 %129 221 OpSelectionMerge %134 None 222 OpBranchConditional %132 %133 %134 223 %133 = OpLabel 224 OpBranch %134 225 %134 = OpLabel 226 %135 = OpPhi %bool %false %130 %true %133 227 OpSelectionMerge %137 None 228 OpBranchConditional %135 %136 %137 229 %136 = OpLabel 230 OpBranch %137 231 %137 = OpLabel 232 %138 = OpPhi %bool %false %134 %true %136 233 OpSelectionMerge %143 None 234 OpBranchConditional %138 %141 %142 235 %141 = OpLabel 236 %144 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 237 %145 = OpLoad %v4float %144 238 OpStore %139 %145 239 OpBranch %143 240 %142 = OpLabel 241 %146 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 242 %147 = OpLoad %v4float %146 243 OpStore %139 %147 244 OpBranch %143 245 %143 = OpLabel 246 %148 = OpLoad %v4float %139 247 OpReturnValue %148 248 OpFunctionEnd 249