blob: c26e175ce3705f908a3fe296a83349fe5d4ea891 [file] [log] [blame]
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_Clockwise %sk_FragColor
OpExecutionMode %_entrypoint_v OriginUpperLeft
OpName %sk_Clockwise "sk_Clockwise"
OpName %sk_FragColor "sk_FragColor"
OpName %_UniformBuffer "_UniformBuffer"
OpMemberName %_UniformBuffer 0 "colorRed"
OpMemberName %_UniformBuffer 1 "colorGreen"
OpMemberName %_UniformBuffer 2 "unknownInput"
OpName %_entrypoint_v "_entrypoint_v"
OpName %test_int_b "test_int_b"
OpName %ok "ok"
OpName %inputRed "inputRed"
OpName %inputGreen "inputGreen"
OpName %x "x"
OpName %main "main"
OpName %_0_ok "_0_ok"
OpName %_1_inputRed "_1_inputRed"
OpName %_2_inputGreen "_2_inputGreen"
OpName %_3_x "_3_x"
OpDecorate %sk_Clockwise BuiltIn FrontFacing
OpDecorate %sk_FragColor RelaxedPrecision
OpDecorate %sk_FragColor Location 0
OpDecorate %sk_FragColor Index 0
OpMemberDecorate %_UniformBuffer 0 Offset 0
OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
OpMemberDecorate %_UniformBuffer 1 Offset 16
OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
OpMemberDecorate %_UniformBuffer 2 Offset 32
OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision
OpDecorate %_UniformBuffer Block
OpDecorate %11 Binding 0
OpDecorate %11 DescriptorSet 0
OpDecorate %36 RelaxedPrecision
OpDecorate %37 RelaxedPrecision
OpDecorate %39 RelaxedPrecision
OpDecorate %41 RelaxedPrecision
OpDecorate %43 RelaxedPrecision
OpDecorate %49 RelaxedPrecision
OpDecorate %50 RelaxedPrecision
OpDecorate %52 RelaxedPrecision
OpDecorate %54 RelaxedPrecision
OpDecorate %56 RelaxedPrecision
OpDecorate %_1_inputRed RelaxedPrecision
OpDecorate %213 RelaxedPrecision
OpDecorate %_2_inputGreen RelaxedPrecision
OpDecorate %216 RelaxedPrecision
OpDecorate %_3_x RelaxedPrecision
OpDecorate %220 RelaxedPrecision
OpDecorate %228 RelaxedPrecision
OpDecorate %229 RelaxedPrecision
OpDecorate %238 RelaxedPrecision
OpDecorate %239 RelaxedPrecision
OpDecorate %240 RelaxedPrecision
OpDecorate %248 RelaxedPrecision
OpDecorate %251 RelaxedPrecision
OpDecorate %252 RelaxedPrecision
OpDecorate %253 RelaxedPrecision
OpDecorate %260 RelaxedPrecision
OpDecorate %261 RelaxedPrecision
OpDecorate %262 RelaxedPrecision
OpDecorate %263 RelaxedPrecision
OpDecorate %273 RelaxedPrecision
OpDecorate %274 RelaxedPrecision
OpDecorate %281 RelaxedPrecision
OpDecorate %288 RelaxedPrecision
OpDecorate %290 RelaxedPrecision
OpDecorate %297 RelaxedPrecision
OpDecorate %298 RelaxedPrecision
OpDecorate %299 RelaxedPrecision
OpDecorate %307 RelaxedPrecision
OpDecorate %308 RelaxedPrecision
OpDecorate %309 RelaxedPrecision
OpDecorate %310 RelaxedPrecision
OpDecorate %318 RelaxedPrecision
OpDecorate %320 RelaxedPrecision
OpDecorate %321 RelaxedPrecision
OpDecorate %322 RelaxedPrecision
OpDecorate %331 RelaxedPrecision
OpDecorate %332 RelaxedPrecision
OpDecorate %339 RelaxedPrecision
OpDecorate %340 RelaxedPrecision
OpDecorate %342 RelaxedPrecision
OpDecorate %343 RelaxedPrecision
OpDecorate %344 RelaxedPrecision
OpDecorate %350 RelaxedPrecision
OpDecorate %351 RelaxedPrecision
OpDecorate %352 RelaxedPrecision
OpDecorate %354 RelaxedPrecision
OpDecorate %369 RelaxedPrecision
OpDecorate %371 RelaxedPrecision
OpDecorate %372 RelaxedPrecision
%bool = OpTypeBool
%_ptr_Input_bool = OpTypePointer Input %bool
%sk_Clockwise = OpVariable %_ptr_Input_bool Input
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%sk_FragColor = OpVariable %_ptr_Output_v4float Output
%_UniformBuffer = OpTypeStruct %v4float %v4float %float
%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
%11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
%void = OpTypeVoid
%16 = OpTypeFunction %void
%float_0 = OpConstant %float 0
%v2float = OpTypeVector %float 2
%20 = OpConstantComposite %v2float %float_0 %float_0
%_ptr_Function_v2float = OpTypePointer Function %v2float
%24 = OpTypeFunction %bool
%_ptr_Function_bool = OpTypePointer Function %bool
%true = OpConstantTrue %bool
%int = OpTypeInt 32 1
%v4int = OpTypeVector %int 4
%_ptr_Function_v4int = OpTypePointer Function %v4int
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
%int_2 = OpConstant %int 2
%61 = OpConstantComposite %v4int %int_2 %int_2 %int_2 %int_2
%false = OpConstantFalse %bool
%int_3 = OpConstant %int 3
%67 = OpConstantComposite %v4int %int_3 %int_2 %int_2 %int_3
%v4bool = OpTypeVector %bool 4
%int_n1 = OpConstant %int -1
%int_n2 = OpConstant %int -2
%78 = OpConstantComposite %v4int %int_n1 %int_n1 %int_n2 %int_n2
%87 = OpConstantComposite %v4int %int_2 %int_1 %int_1 %int_2
%v3int = OpTypeVector %int 3
%int_9 = OpConstant %int 9
%94 = OpConstantComposite %v3int %int_9 %int_9 %int_9
%100 = OpConstantComposite %v4int %int_9 %int_9 %int_9 %int_2
%v2int = OpTypeVector %int 2
%int_4 = OpConstant %int 4
%107 = OpConstantComposite %v2int %int_4 %int_4
%113 = OpConstantComposite %v4int %int_2 %int_0 %int_9 %int_2
%int_5 = OpConstant %int 5
%118 = OpConstantComposite %v4int %int_5 %int_5 %int_5 %int_5
%123 = OpConstantComposite %v4int %int_0 %int_5 %int_5 %int_0
%int_10 = OpConstant %int 10
%135 = OpConstantComposite %v4int %int_10 %int_10 %int_10 %int_10
%139 = OpConstantComposite %v4int %int_9 %int_9 %int_10 %int_10
%148 = OpConstantComposite %v4int %int_1 %int_2 %int_1 %int_2
%int_8 = OpConstant %int 8
%154 = OpConstantComposite %v3int %int_8 %int_8 %int_8
%160 = OpConstantComposite %v4int %int_8 %int_8 %int_8 %int_2
%int_36 = OpConstant %int 36
%166 = OpConstantComposite %v2int %int_36 %int_36
%int_18 = OpConstant %int 18
%173 = OpConstantComposite %v4int %int_4 %int_18 %int_8 %int_2
%int_37 = OpConstant %int 37
%178 = OpConstantComposite %v4int %int_37 %int_37 %int_37 %int_37
%183 = OpConstantComposite %v4int %int_2 %int_9 %int_18 %int_4
%189 = OpConstantComposite %v4int %int_4 %int_4 %int_4 %int_4
%206 = OpTypeFunction %v4float %_ptr_Function_v2float
%_ptr_Function_v4float = OpTypePointer Function %v4float
%float_2 = OpConstant %float 2
%219 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2
%float_3 = OpConstant %float 3
%224 = OpConstantComposite %v4float %float_3 %float_2 %float_2 %float_3
%float_n1 = OpConstant %float -1
%float_n2 = OpConstant %float -2
%234 = OpConstantComposite %v4float %float_n1 %float_n1 %float_n2 %float_n2
%float_1 = OpConstant %float 1
%244 = OpConstantComposite %v4float %float_2 %float_1 %float_1 %float_2
%v3float = OpTypeVector %float 3
%float_9 = OpConstant %float 9
%256 = OpConstantComposite %v4float %float_9 %float_9 %float_9 %float_2
%float_18 = OpConstant %float 18
%float_4 = OpConstant %float 4
%268 = OpConstantComposite %v4float %float_18 %float_4 %float_9 %float_2
%float_5 = OpConstant %float 5
%277 = OpConstantComposite %v4float %float_0 %float_5 %float_5 %float_0
%float_10 = OpConstant %float 10
%289 = OpConstantComposite %v4float %float_10 %float_10 %float_10 %float_10
%293 = OpConstantComposite %v4float %float_9 %float_9 %float_10 %float_10
%302 = OpConstantComposite %v4float %float_1 %float_2 %float_1 %float_2
%float_8 = OpConstant %float 8
%313 = OpConstantComposite %v4float %float_8 %float_8 %float_8 %float_2
%float_32 = OpConstant %float 32
%319 = OpConstantComposite %v2float %float_32 %float_32
%float_16 = OpConstant %float 16
%326 = OpConstantComposite %v4float %float_4 %float_16 %float_8 %float_2
%330 = OpConstantComposite %v4float %float_32 %float_32 %float_32 %float_32
%335 = OpConstantComposite %v4float %float_2 %float_8 %float_16 %float_4
%341 = OpConstantComposite %v4float %float_4 %float_4 %float_4 %float_4
%float_0_5 = OpConstant %float 0.5
%_entrypoint_v = OpFunction %void None %16
%17 = OpLabel
%21 = OpVariable %_ptr_Function_v2float Function
OpStore %21 %20
%23 = OpFunctionCall %v4float %main %21
OpStore %sk_FragColor %23
OpReturn
OpFunctionEnd
%test_int_b = OpFunction %bool None %24
%25 = OpLabel
%ok = OpVariable %_ptr_Function_bool Function
%inputRed = OpVariable %_ptr_Function_v4int Function
%inputGreen = OpVariable %_ptr_Function_v4int Function
%x = OpVariable %_ptr_Function_v4int Function
OpStore %ok %true
%33 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0
%36 = OpLoad %v4float %33
%37 = OpCompositeExtract %float %36 0
%38 = OpConvertFToS %int %37
%39 = OpCompositeExtract %float %36 1
%40 = OpConvertFToS %int %39
%41 = OpCompositeExtract %float %36 2
%42 = OpConvertFToS %int %41
%43 = OpCompositeExtract %float %36 3
%44 = OpConvertFToS %int %43
%45 = OpCompositeConstruct %v4int %38 %40 %42 %44
OpStore %inputRed %45
%47 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1
%49 = OpLoad %v4float %47
%50 = OpCompositeExtract %float %49 0
%51 = OpConvertFToS %int %50
%52 = OpCompositeExtract %float %49 1
%53 = OpConvertFToS %int %52
%54 = OpCompositeExtract %float %49 2
%55 = OpConvertFToS %int %54
%56 = OpCompositeExtract %float %49 3
%57 = OpConvertFToS %int %56
%58 = OpCompositeConstruct %v4int %51 %53 %55 %57
OpStore %inputGreen %58
%62 = OpIAdd %v4int %45 %61
OpStore %x %62
OpSelectionMerge %65 None
OpBranchConditional %true %64 %65
%64 = OpLabel
%68 = OpIEqual %v4bool %62 %67
%70 = OpAll %bool %68
OpBranch %65
%65 = OpLabel
%71 = OpPhi %bool %false %25 %70 %64
OpStore %ok %71
%72 = OpVectorShuffle %v4int %58 %58 1 3 0 2
%73 = OpISub %v4int %72 %61
OpStore %x %73
OpSelectionMerge %75 None
OpBranchConditional %71 %74 %75
%74 = OpLabel
%79 = OpIEqual %v4bool %73 %78
%80 = OpAll %bool %79
OpBranch %75
%75 = OpLabel
%81 = OpPhi %bool %false %65 %80 %74
OpStore %ok %81
%82 = OpCompositeExtract %int %58 1
%83 = OpCompositeConstruct %v4int %82 %82 %82 %82
%84 = OpIAdd %v4int %45 %83
OpStore %x %84
OpSelectionMerge %86 None
OpBranchConditional %81 %85 %86
%85 = OpLabel
%88 = OpIEqual %v4bool %84 %87
%89 = OpAll %bool %88
OpBranch %86
%86 = OpLabel
%90 = OpPhi %bool %false %75 %89 %85
OpStore %ok %90
%91 = OpVectorShuffle %v3int %58 %58 3 1 3
%95 = OpIMul %v3int %91 %94
%96 = OpLoad %v4int %x
%97 = OpVectorShuffle %v4int %96 %95 4 5 6 3
OpStore %x %97
OpSelectionMerge %99 None
OpBranchConditional %90 %98 %99
%98 = OpLabel
%101 = OpIEqual %v4bool %97 %100
%102 = OpAll %bool %101
OpBranch %99
%99 = OpLabel
%103 = OpPhi %bool %false %86 %102 %98
OpStore %ok %103
%104 = OpVectorShuffle %v2int %97 %97 2 3
%108 = OpSDiv %v2int %104 %107
%109 = OpLoad %v4int %x
%110 = OpVectorShuffle %v4int %109 %108 4 5 2 3
OpStore %x %110
OpSelectionMerge %112 None
OpBranchConditional %103 %111 %112
%111 = OpLabel
%114 = OpIEqual %v4bool %110 %113
%115 = OpAll %bool %114
OpBranch %112
%112 = OpLabel
%116 = OpPhi %bool %false %99 %115 %111
OpStore %ok %116
%119 = OpIMul %v4int %45 %118
%120 = OpVectorShuffle %v4int %119 %119 1 0 3 2
OpStore %x %120
OpSelectionMerge %122 None
OpBranchConditional %116 %121 %122
%121 = OpLabel
%124 = OpIEqual %v4bool %120 %123
%125 = OpAll %bool %124
OpBranch %122
%122 = OpLabel
%126 = OpPhi %bool %false %112 %125 %121
OpStore %ok %126
%127 = OpIAdd %v4int %61 %45
OpStore %x %127
OpSelectionMerge %129 None
OpBranchConditional %126 %128 %129
%128 = OpLabel
%130 = OpIEqual %v4bool %127 %67
%131 = OpAll %bool %130
OpBranch %129
%129 = OpLabel
%132 = OpPhi %bool %false %122 %131 %128
OpStore %ok %132
%134 = OpVectorShuffle %v4int %58 %58 1 3 0 2
%136 = OpISub %v4int %135 %134
OpStore %x %136
OpSelectionMerge %138 None
OpBranchConditional %132 %137 %138
%137 = OpLabel
%140 = OpIEqual %v4bool %136 %139
%141 = OpAll %bool %140
OpBranch %138
%138 = OpLabel
%142 = OpPhi %bool %false %129 %141 %137
OpStore %ok %142
%143 = OpCompositeExtract %int %45 0
%144 = OpCompositeConstruct %v4int %143 %143 %143 %143
%145 = OpIAdd %v4int %144 %58
OpStore %x %145
OpSelectionMerge %147 None
OpBranchConditional %142 %146 %147
%146 = OpLabel
%149 = OpIEqual %v4bool %145 %148
%150 = OpAll %bool %149
OpBranch %147
%147 = OpLabel
%151 = OpPhi %bool %false %138 %150 %146
OpStore %ok %151
%153 = OpVectorShuffle %v3int %58 %58 3 1 3
%155 = OpIMul %v3int %154 %153
%156 = OpLoad %v4int %x
%157 = OpVectorShuffle %v4int %156 %155 4 5 6 3
OpStore %x %157
OpSelectionMerge %159 None
OpBranchConditional %151 %158 %159
%158 = OpLabel
%161 = OpIEqual %v4bool %157 %160
%162 = OpAll %bool %161
OpBranch %159
%159 = OpLabel
%163 = OpPhi %bool %false %147 %162 %158
OpStore %ok %163
%165 = OpVectorShuffle %v2int %157 %157 2 3
%167 = OpSDiv %v2int %166 %165
%168 = OpLoad %v4int %x
%169 = OpVectorShuffle %v4int %168 %167 4 5 2 3
OpStore %x %169
OpSelectionMerge %171 None
OpBranchConditional %163 %170 %171
%170 = OpLabel
%174 = OpIEqual %v4bool %169 %173
%175 = OpAll %bool %174
OpBranch %171
%171 = OpLabel
%176 = OpPhi %bool %false %159 %175 %170
OpStore %ok %176
%179 = OpSDiv %v4int %178 %169
%180 = OpVectorShuffle %v4int %179 %179 1 0 3 2
OpStore %x %180
OpSelectionMerge %182 None
OpBranchConditional %176 %181 %182
%181 = OpLabel
%184 = OpIEqual %v4bool %180 %183
%185 = OpAll %bool %184
OpBranch %182
%182 = OpLabel
%186 = OpPhi %bool %false %171 %185 %181
OpStore %ok %186
%187 = OpIAdd %v4int %180 %61
OpStore %x %187
%188 = OpIMul %v4int %187 %61
OpStore %x %188
%190 = OpISub %v4int %188 %189
OpStore %x %190
%191 = OpSDiv %v4int %190 %61
OpStore %x %191
OpSelectionMerge %193 None
OpBranchConditional %186 %192 %193
%192 = OpLabel
%194 = OpIEqual %v4bool %191 %183
%195 = OpAll %bool %194
OpBranch %193
%193 = OpLabel
%196 = OpPhi %bool %false %182 %195 %192
OpStore %ok %196
%197 = OpIAdd %v4int %191 %61
OpStore %x %197
%198 = OpIMul %v4int %197 %61
OpStore %x %198
%199 = OpISub %v4int %198 %189
OpStore %x %199
%200 = OpSDiv %v4int %199 %61
OpStore %x %200
OpSelectionMerge %202 None
OpBranchConditional %196 %201 %202
%201 = OpLabel
%203 = OpIEqual %v4bool %200 %183
%204 = OpAll %bool %203
OpBranch %202
%202 = OpLabel
%205 = OpPhi %bool %false %193 %204 %201
OpStore %ok %205
OpReturnValue %205
OpFunctionEnd
%main = OpFunction %v4float None %206
%207 = OpFunctionParameter %_ptr_Function_v2float
%208 = OpLabel
%_0_ok = OpVariable %_ptr_Function_bool Function
%_1_inputRed = OpVariable %_ptr_Function_v4float Function
%_2_inputGreen = OpVariable %_ptr_Function_v4float Function
%_3_x = OpVariable %_ptr_Function_v4float Function
%364 = OpVariable %_ptr_Function_v4float Function
OpStore %_0_ok %true
%212 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0
%213 = OpLoad %v4float %212
OpStore %_1_inputRed %213
%215 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1
%216 = OpLoad %v4float %215
OpStore %_2_inputGreen %216
%220 = OpFAdd %v4float %213 %219
OpStore %_3_x %220
OpSelectionMerge %222 None
OpBranchConditional %true %221 %222
%221 = OpLabel
%225 = OpFOrdEqual %v4bool %220 %224
%226 = OpAll %bool %225
OpBranch %222
%222 = OpLabel
%227 = OpPhi %bool %false %208 %226 %221
OpStore %_0_ok %227
%228 = OpVectorShuffle %v4float %216 %216 1 3 0 2
%229 = OpFSub %v4float %228 %219
OpStore %_3_x %229
OpSelectionMerge %231 None
OpBranchConditional %227 %230 %231
%230 = OpLabel
%235 = OpFOrdEqual %v4bool %229 %234
%236 = OpAll %bool %235
OpBranch %231
%231 = OpLabel
%237 = OpPhi %bool %false %222 %236 %230
OpStore %_0_ok %237
%238 = OpCompositeExtract %float %216 1
%239 = OpCompositeConstruct %v4float %238 %238 %238 %238
%240 = OpFAdd %v4float %213 %239
OpStore %_3_x %240
OpSelectionMerge %242 None
OpBranchConditional %237 %241 %242
%241 = OpLabel
%245 = OpFOrdEqual %v4bool %240 %244
%246 = OpAll %bool %245
OpBranch %242
%242 = OpLabel
%247 = OpPhi %bool %false %231 %246 %241
OpStore %_0_ok %247
%248 = OpVectorShuffle %v3float %216 %216 3 1 3
%251 = OpVectorTimesScalar %v3float %248 %float_9
%252 = OpLoad %v4float %_3_x
%253 = OpVectorShuffle %v4float %252 %251 4 5 6 3
OpStore %_3_x %253
OpSelectionMerge %255 None
OpBranchConditional %247 %254 %255
%254 = OpLabel
%257 = OpFOrdEqual %v4bool %253 %256
%258 = OpAll %bool %257
OpBranch %255
%255 = OpLabel
%259 = OpPhi %bool %false %242 %258 %254
OpStore %_0_ok %259
%260 = OpVectorShuffle %v2float %253 %253 2 3
%261 = OpVectorTimesScalar %v2float %260 %float_2
%262 = OpLoad %v4float %_3_x
%263 = OpVectorShuffle %v4float %262 %261 4 5 2 3
OpStore %_3_x %263
OpSelectionMerge %265 None
OpBranchConditional %259 %264 %265
%264 = OpLabel
%269 = OpFOrdEqual %v4bool %263 %268
%270 = OpAll %bool %269
OpBranch %265
%265 = OpLabel
%271 = OpPhi %bool %false %255 %270 %264
OpStore %_0_ok %271
%273 = OpVectorTimesScalar %v4float %213 %float_5
%274 = OpVectorShuffle %v4float %273 %273 1 0 3 2
OpStore %_3_x %274
OpSelectionMerge %276 None
OpBranchConditional %271 %275 %276
%275 = OpLabel
%278 = OpFOrdEqual %v4bool %274 %277
%279 = OpAll %bool %278
OpBranch %276
%276 = OpLabel
%280 = OpPhi %bool %false %265 %279 %275
OpStore %_0_ok %280
%281 = OpFAdd %v4float %219 %213
OpStore %_3_x %281
OpSelectionMerge %283 None
OpBranchConditional %280 %282 %283
%282 = OpLabel
%284 = OpFOrdEqual %v4bool %281 %224
%285 = OpAll %bool %284
OpBranch %283
%283 = OpLabel
%286 = OpPhi %bool %false %276 %285 %282
OpStore %_0_ok %286
%288 = OpVectorShuffle %v4float %216 %216 1 3 0 2
%290 = OpFSub %v4float %289 %288
OpStore %_3_x %290
OpSelectionMerge %292 None
OpBranchConditional %286 %291 %292
%291 = OpLabel
%294 = OpFOrdEqual %v4bool %290 %293
%295 = OpAll %bool %294
OpBranch %292
%292 = OpLabel
%296 = OpPhi %bool %false %283 %295 %291
OpStore %_0_ok %296
%297 = OpCompositeExtract %float %213 0
%298 = OpCompositeConstruct %v4float %297 %297 %297 %297
%299 = OpFAdd %v4float %298 %216
OpStore %_3_x %299
OpSelectionMerge %301 None
OpBranchConditional %296 %300 %301
%300 = OpLabel
%303 = OpFOrdEqual %v4bool %299 %302
%304 = OpAll %bool %303
OpBranch %301
%301 = OpLabel
%305 = OpPhi %bool %false %292 %304 %300
OpStore %_0_ok %305
%307 = OpVectorShuffle %v3float %216 %216 3 1 3
%308 = OpVectorTimesScalar %v3float %307 %float_8
%309 = OpLoad %v4float %_3_x
%310 = OpVectorShuffle %v4float %309 %308 4 5 6 3
OpStore %_3_x %310
OpSelectionMerge %312 None
OpBranchConditional %305 %311 %312
%311 = OpLabel
%314 = OpFOrdEqual %v4bool %310 %313
%315 = OpAll %bool %314
OpBranch %312
%312 = OpLabel
%316 = OpPhi %bool %false %301 %315 %311
OpStore %_0_ok %316
%318 = OpVectorShuffle %v2float %310 %310 2 3
%320 = OpFDiv %v2float %319 %318
%321 = OpLoad %v4float %_3_x
%322 = OpVectorShuffle %v4float %321 %320 4 5 2 3
OpStore %_3_x %322
OpSelectionMerge %324 None
OpBranchConditional %316 %323 %324
%323 = OpLabel
%327 = OpFOrdEqual %v4bool %322 %326
%328 = OpAll %bool %327
OpBranch %324
%324 = OpLabel
%329 = OpPhi %bool %false %312 %328 %323
OpStore %_0_ok %329
%331 = OpFDiv %v4float %330 %322
%332 = OpVectorShuffle %v4float %331 %331 1 0 3 2
OpStore %_3_x %332
OpSelectionMerge %334 None
OpBranchConditional %329 %333 %334
%333 = OpLabel
%336 = OpFOrdEqual %v4bool %332 %335
%337 = OpAll %bool %336
OpBranch %334
%334 = OpLabel
%338 = OpPhi %bool %false %324 %337 %333
OpStore %_0_ok %338
%339 = OpFAdd %v4float %332 %219
OpStore %_3_x %339
%340 = OpVectorTimesScalar %v4float %339 %float_2
OpStore %_3_x %340
%342 = OpFSub %v4float %340 %341
OpStore %_3_x %342
%343 = OpFDiv %float %float_1 %float_2
%344 = OpVectorTimesScalar %v4float %342 %343
OpStore %_3_x %344
OpSelectionMerge %346 None
OpBranchConditional %338 %345 %346
%345 = OpLabel
%347 = OpFOrdEqual %v4bool %344 %335
%348 = OpAll %bool %347
OpBranch %346
%346 = OpLabel
%349 = OpPhi %bool %false %334 %348 %345
OpStore %_0_ok %349
%350 = OpFAdd %v4float %344 %219
OpStore %_3_x %350
%351 = OpVectorTimesScalar %v4float %350 %float_2
OpStore %_3_x %351
%352 = OpFSub %v4float %351 %341
OpStore %_3_x %352
%354 = OpVectorTimesScalar %v4float %352 %float_0_5
OpStore %_3_x %354
OpSelectionMerge %356 None
OpBranchConditional %349 %355 %356
%355 = OpLabel
%357 = OpFOrdEqual %v4bool %354 %335
%358 = OpAll %bool %357
OpBranch %356
%356 = OpLabel
%359 = OpPhi %bool %false %346 %358 %355
OpStore %_0_ok %359
OpSelectionMerge %361 None
OpBranchConditional %359 %360 %361
%360 = OpLabel
%362 = OpFunctionCall %bool %test_int_b
OpBranch %361
%361 = OpLabel
%363 = OpPhi %bool %false %356 %362 %360
OpSelectionMerge %367 None
OpBranchConditional %363 %365 %366
%365 = OpLabel
%368 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1
%369 = OpLoad %v4float %368
OpStore %364 %369
OpBranch %367
%366 = OpLabel
%370 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0
%371 = OpLoad %v4float %370
OpStore %364 %371
OpBranch %367
%367 = OpLabel
%372 = OpLoad %v4float %364
OpReturnValue %372
OpFunctionEnd