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