blob: e9192a9cfff856d7f1c2d1dac82ece35029e3b1f [file] [log] [blame]
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor
OpExecutionMode %_entrypoint_v OriginUpperLeft
OpName %sk_FragColor "sk_FragColor"
OpName %_UniformBuffer "_UniformBuffer"
OpMemberName %_UniformBuffer 0 "colorGreen"
OpMemberName %_UniformBuffer 1 "colorRed"
OpName %_entrypoint_v "_entrypoint_v"
OpName %test_half_b "test_half_b"
OpName %ok "ok"
OpName %m1 "m1"
OpName %m3 "m3"
OpName %m4 "m4"
OpName %m5 "m5"
OpName %m7 "m7"
OpName %m9 "m9"
OpName %m10 "m10"
OpName %m11 "m11"
OpName %test_comma_b "test_comma_b"
OpName %x "x"
OpName %y "y"
OpName %main "main"
OpName %_0_ok "_0_ok"
OpName %_1_m1 "_1_m1"
OpName %_2_m3 "_2_m3"
OpName %_3_m4 "_3_m4"
OpName %_4_m5 "_4_m5"
OpName %_7_m10 "_7_m10"
OpName %_8_m11 "_8_m11"
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
OpDecorate %_UniformBuffer Block
OpDecorate %9 Binding 0
OpDecorate %9 DescriptorSet 0
OpDecorate %m1 RelaxedPrecision
OpDecorate %42 RelaxedPrecision
OpDecorate %44 RelaxedPrecision
OpDecorate %m3 RelaxedPrecision
OpDecorate %51 RelaxedPrecision
OpDecorate %53 RelaxedPrecision
OpDecorate %m4 RelaxedPrecision
OpDecorate %64 RelaxedPrecision
OpDecorate %66 RelaxedPrecision
OpDecorate %70 RelaxedPrecision
OpDecorate %79 RelaxedPrecision
OpDecorate %80 RelaxedPrecision
OpDecorate %82 RelaxedPrecision
OpDecorate %83 RelaxedPrecision
OpDecorate %m5 RelaxedPrecision
OpDecorate %91 RelaxedPrecision
OpDecorate %92 RelaxedPrecision
OpDecorate %93 RelaxedPrecision
OpDecorate %94 RelaxedPrecision
OpDecorate %95 RelaxedPrecision
OpDecorate %101 RelaxedPrecision
OpDecorate %103 RelaxedPrecision
OpDecorate %107 RelaxedPrecision
OpDecorate %108 RelaxedPrecision
OpDecorate %109 RelaxedPrecision
OpDecorate %117 RelaxedPrecision
OpDecorate %119 RelaxedPrecision
OpDecorate %m7 RelaxedPrecision
OpDecorate %130 RelaxedPrecision
OpDecorate %132 RelaxedPrecision
OpDecorate %m9 RelaxedPrecision
OpDecorate %148 RelaxedPrecision
OpDecorate %150 RelaxedPrecision
OpDecorate %153 RelaxedPrecision
OpDecorate %m10 RelaxedPrecision
OpDecorate %169 RelaxedPrecision
OpDecorate %171 RelaxedPrecision
OpDecorate %174 RelaxedPrecision
OpDecorate %177 RelaxedPrecision
OpDecorate %m11 RelaxedPrecision
OpDecorate %185 RelaxedPrecision
OpDecorate %186 RelaxedPrecision
OpDecorate %187 RelaxedPrecision
OpDecorate %188 RelaxedPrecision
OpDecorate %189 RelaxedPrecision
OpDecorate %197 RelaxedPrecision
OpDecorate %199 RelaxedPrecision
OpDecorate %202 RelaxedPrecision
OpDecorate %205 RelaxedPrecision
OpDecorate %314 RelaxedPrecision
OpDecorate %316 RelaxedPrecision
OpDecorate %317 RelaxedPrecision
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%sk_FragColor = OpVariable %_ptr_Output_v4float Output
%_UniformBuffer = OpTypeStruct %v4float %v4float
%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
%9 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
%void = OpTypeVoid
%14 = OpTypeFunction %void
%float_0 = OpConstant %float 0
%v2float = OpTypeVector %float 2
%18 = OpConstantComposite %v2float %float_0 %float_0
%_ptr_Function_v2float = OpTypePointer Function %v2float
%bool = OpTypeBool
%23 = OpTypeFunction %bool
%_ptr_Function_bool = OpTypePointer Function %bool
%true = OpConstantTrue %bool
%mat2v2float = OpTypeMatrix %v2float 2
%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%float_4 = OpConstant %float 4
%35 = OpConstantComposite %v2float %float_1 %float_2
%36 = OpConstantComposite %v2float %float_3 %float_4
%37 = OpConstantComposite %mat2v2float %35 %36
%false = OpConstantFalse %bool
%v2bool = OpTypeVector %bool 2
%float_6 = OpConstant %float 6
%59 = OpConstantComposite %v2float %float_6 %float_0
%60 = OpConstantComposite %v2float %float_0 %float_6
%61 = OpConstantComposite %mat2v2float %59 %60
%float_12 = OpConstant %float 12
%float_18 = OpConstant %float 18
%float_24 = OpConstant %float 24
%76 = OpConstantComposite %v2float %float_6 %float_12
%77 = OpConstantComposite %v2float %float_18 %float_24
%78 = OpConstantComposite %mat2v2float %76 %77
%int = OpTypeInt 32 1
%int_1 = OpConstant %int 1
%98 = OpConstantComposite %v2float %float_4 %float_0
%99 = OpConstantComposite %v2float %float_0 %float_4
%100 = OpConstantComposite %mat2v2float %98 %99
%float_5 = OpConstant %float 5
%float_8 = OpConstant %float 8
%114 = OpConstantComposite %v2float %float_5 %float_2
%115 = OpConstantComposite %v2float %float_3 %float_8
%116 = OpConstantComposite %mat2v2float %114 %115
%float_7 = OpConstant %float 7
%125 = OpConstantComposite %v2float %float_5 %float_6
%126 = OpConstantComposite %v2float %float_7 %float_8
%127 = OpConstantComposite %mat2v2float %125 %126
%v3float = OpTypeVector %float 3
%mat3v3float = OpTypeMatrix %v3float 3
%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float
%float_9 = OpConstant %float 9
%141 = OpConstantComposite %v3float %float_9 %float_0 %float_0
%142 = OpConstantComposite %v3float %float_0 %float_9 %float_0
%143 = OpConstantComposite %v3float %float_0 %float_0 %float_9
%144 = OpConstantComposite %mat3v3float %141 %142 %143
%v3bool = OpTypeVector %bool 3
%mat4v4float = OpTypeMatrix %v4float 4
%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float
%float_11 = OpConstant %float 11
%161 = OpConstantComposite %v4float %float_11 %float_0 %float_0 %float_0
%162 = OpConstantComposite %v4float %float_0 %float_11 %float_0 %float_0
%163 = OpConstantComposite %v4float %float_0 %float_0 %float_11 %float_0
%164 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_11
%165 = OpConstantComposite %mat4v4float %161 %162 %163 %164
%v4bool = OpTypeVector %bool 4
%float_20 = OpConstant %float 20
%183 = OpConstantComposite %v4float %float_20 %float_20 %float_20 %float_20
%184 = OpConstantComposite %mat4v4float %183 %183 %183 %183
%192 = OpConstantComposite %v4float %float_9 %float_20 %float_20 %float_20
%193 = OpConstantComposite %v4float %float_20 %float_9 %float_20 %float_20
%194 = OpConstantComposite %v4float %float_20 %float_20 %float_9 %float_20
%195 = OpConstantComposite %v4float %float_20 %float_20 %float_20 %float_9
%196 = OpConstantComposite %mat4v4float %192 %193 %194 %195
%217 = OpTypeFunction %v4float %_ptr_Function_v2float
%_ptr_Function_v4float = OpTypePointer Function %v4float
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
%int_0 = OpConstant %int 0
%_entrypoint_v = OpFunction %void None %14
%15 = OpLabel
%19 = OpVariable %_ptr_Function_v2float Function
OpStore %19 %18
%21 = OpFunctionCall %v4float %main %19
OpStore %sk_FragColor %21
OpReturn
OpFunctionEnd
%test_half_b = OpFunction %bool None %23
%24 = OpLabel
%ok = OpVariable %_ptr_Function_bool Function
%m1 = OpVariable %_ptr_Function_mat2v2float Function
%m3 = OpVariable %_ptr_Function_mat2v2float Function
%m4 = OpVariable %_ptr_Function_mat2v2float Function
%m5 = OpVariable %_ptr_Function_mat2v2float Function
%m7 = OpVariable %_ptr_Function_mat2v2float Function
%m9 = OpVariable %_ptr_Function_mat3v3float Function
%m10 = OpVariable %_ptr_Function_mat4v4float Function
%m11 = OpVariable %_ptr_Function_mat4v4float Function
OpStore %ok %true
OpStore %m1 %37
OpSelectionMerge %40 None
OpBranchConditional %true %39 %40
%39 = OpLabel
%42 = OpFOrdEqual %v2bool %35 %35
%43 = OpAll %bool %42
%44 = OpFOrdEqual %v2bool %36 %36
%45 = OpAll %bool %44
%46 = OpLogicalAnd %bool %43 %45
OpBranch %40
%40 = OpLabel
%47 = OpPhi %bool %false %24 %46 %39
OpStore %ok %47
OpStore %m3 %37
OpSelectionMerge %50 None
OpBranchConditional %47 %49 %50
%49 = OpLabel
%51 = OpFOrdEqual %v2bool %35 %35
%52 = OpAll %bool %51
%53 = OpFOrdEqual %v2bool %36 %36
%54 = OpAll %bool %53
%55 = OpLogicalAnd %bool %52 %54
OpBranch %50
%50 = OpLabel
%56 = OpPhi %bool %false %40 %55 %49
OpStore %ok %56
OpStore %m4 %61
OpSelectionMerge %63 None
OpBranchConditional %56 %62 %63
%62 = OpLabel
%64 = OpFOrdEqual %v2bool %59 %59
%65 = OpAll %bool %64
%66 = OpFOrdEqual %v2bool %60 %60
%67 = OpAll %bool %66
%68 = OpLogicalAnd %bool %65 %67
OpBranch %63
%63 = OpLabel
%69 = OpPhi %bool %false %50 %68 %62
OpStore %ok %69
%70 = OpMatrixTimesMatrix %mat2v2float %37 %61
OpStore %m3 %70
OpSelectionMerge %72 None
OpBranchConditional %69 %71 %72
%71 = OpLabel
%79 = OpCompositeExtract %v2float %70 0
%80 = OpFOrdEqual %v2bool %79 %76
%81 = OpAll %bool %80
%82 = OpCompositeExtract %v2float %70 1
%83 = OpFOrdEqual %v2bool %82 %77
%84 = OpAll %bool %83
%85 = OpLogicalAnd %bool %81 %84
OpBranch %72
%72 = OpLabel
%86 = OpPhi %bool %false %63 %85 %71
OpStore %ok %86
%90 = OpAccessChain %_ptr_Function_v2float %m1 %int_1
%91 = OpLoad %v2float %90
%92 = OpCompositeExtract %float %91 1
%93 = OpCompositeConstruct %v2float %92 %float_0
%94 = OpCompositeConstruct %v2float %float_0 %92
%95 = OpCompositeConstruct %mat2v2float %93 %94
OpStore %m5 %95
OpSelectionMerge %97 None
OpBranchConditional %86 %96 %97
%96 = OpLabel
%101 = OpFOrdEqual %v2bool %93 %98
%102 = OpAll %bool %101
%103 = OpFOrdEqual %v2bool %94 %99
%104 = OpAll %bool %103
%105 = OpLogicalAnd %bool %102 %104
OpBranch %97
%97 = OpLabel
%106 = OpPhi %bool %false %72 %105 %96
OpStore %ok %106
%107 = OpFAdd %v2float %35 %93
%108 = OpFAdd %v2float %36 %94
%109 = OpCompositeConstruct %mat2v2float %107 %108
OpStore %m1 %109
OpSelectionMerge %111 None
OpBranchConditional %106 %110 %111
%110 = OpLabel
%117 = OpFOrdEqual %v2bool %107 %114
%118 = OpAll %bool %117
%119 = OpFOrdEqual %v2bool %108 %115
%120 = OpAll %bool %119
%121 = OpLogicalAnd %bool %118 %120
OpBranch %111
%111 = OpLabel
%122 = OpPhi %bool %false %97 %121 %110
OpStore %ok %122
OpStore %m7 %127
OpSelectionMerge %129 None
OpBranchConditional %122 %128 %129
%128 = OpLabel
%130 = OpFOrdEqual %v2bool %125 %125
%131 = OpAll %bool %130
%132 = OpFOrdEqual %v2bool %126 %126
%133 = OpAll %bool %132
%134 = OpLogicalAnd %bool %131 %133
OpBranch %129
%129 = OpLabel
%135 = OpPhi %bool %false %111 %134 %128
OpStore %ok %135
OpStore %m9 %144
OpSelectionMerge %146 None
OpBranchConditional %135 %145 %146
%145 = OpLabel
%148 = OpFOrdEqual %v3bool %141 %141
%149 = OpAll %bool %148
%150 = OpFOrdEqual %v3bool %142 %142
%151 = OpAll %bool %150
%152 = OpLogicalAnd %bool %149 %151
%153 = OpFOrdEqual %v3bool %143 %143
%154 = OpAll %bool %153
%155 = OpLogicalAnd %bool %152 %154
OpBranch %146
%146 = OpLabel
%156 = OpPhi %bool %false %129 %155 %145
OpStore %ok %156
OpStore %m10 %165
OpSelectionMerge %167 None
OpBranchConditional %156 %166 %167
%166 = OpLabel
%169 = OpFOrdEqual %v4bool %161 %161
%170 = OpAll %bool %169
%171 = OpFOrdEqual %v4bool %162 %162
%172 = OpAll %bool %171
%173 = OpLogicalAnd %bool %170 %172
%174 = OpFOrdEqual %v4bool %163 %163
%175 = OpAll %bool %174
%176 = OpLogicalAnd %bool %173 %175
%177 = OpFOrdEqual %v4bool %164 %164
%178 = OpAll %bool %177
%179 = OpLogicalAnd %bool %176 %178
OpBranch %167
%167 = OpLabel
%180 = OpPhi %bool %false %146 %179 %166
OpStore %ok %180
OpStore %m11 %184
%185 = OpFSub %v4float %183 %161
%186 = OpFSub %v4float %183 %162
%187 = OpFSub %v4float %183 %163
%188 = OpFSub %v4float %183 %164
%189 = OpCompositeConstruct %mat4v4float %185 %186 %187 %188
OpStore %m11 %189
OpSelectionMerge %191 None
OpBranchConditional %180 %190 %191
%190 = OpLabel
%197 = OpFOrdEqual %v4bool %185 %192
%198 = OpAll %bool %197
%199 = OpFOrdEqual %v4bool %186 %193
%200 = OpAll %bool %199
%201 = OpLogicalAnd %bool %198 %200
%202 = OpFOrdEqual %v4bool %187 %194
%203 = OpAll %bool %202
%204 = OpLogicalAnd %bool %201 %203
%205 = OpFOrdEqual %v4bool %188 %195
%206 = OpAll %bool %205
%207 = OpLogicalAnd %bool %204 %206
OpBranch %191
%191 = OpLabel
%208 = OpPhi %bool %false %167 %207 %190
OpStore %ok %208
OpReturnValue %208
OpFunctionEnd
%test_comma_b = OpFunction %bool None %23
%209 = OpLabel
%x = OpVariable %_ptr_Function_mat2v2float Function
%y = OpVariable %_ptr_Function_mat2v2float Function
OpStore %x %37
OpStore %y %37
%212 = OpFOrdEqual %v2bool %35 %35
%213 = OpAll %bool %212
%214 = OpFOrdEqual %v2bool %36 %36
%215 = OpAll %bool %214
%216 = OpLogicalAnd %bool %213 %215
OpReturnValue %216
OpFunctionEnd
%main = OpFunction %v4float None %217
%218 = OpFunctionParameter %_ptr_Function_v2float
%219 = OpLabel
%_0_ok = OpVariable %_ptr_Function_bool Function
%_1_m1 = OpVariable %_ptr_Function_mat2v2float Function
%_2_m3 = OpVariable %_ptr_Function_mat2v2float Function
%_3_m4 = OpVariable %_ptr_Function_mat2v2float Function
%_4_m5 = OpVariable %_ptr_Function_mat2v2float Function
%_7_m10 = OpVariable %_ptr_Function_mat4v4float Function
%_8_m11 = OpVariable %_ptr_Function_mat4v4float Function
%306 = OpVariable %_ptr_Function_v4float Function
OpStore %_0_ok %true
OpStore %_1_m1 %37
OpSelectionMerge %223 None
OpBranchConditional %true %222 %223
%222 = OpLabel
%224 = OpFOrdEqual %v2bool %35 %35
%225 = OpAll %bool %224
%226 = OpFOrdEqual %v2bool %36 %36
%227 = OpAll %bool %226
%228 = OpLogicalAnd %bool %225 %227
OpBranch %223
%223 = OpLabel
%229 = OpPhi %bool %false %219 %228 %222
OpStore %_0_ok %229
OpStore %_2_m3 %37
OpSelectionMerge %232 None
OpBranchConditional %229 %231 %232
%231 = OpLabel
%233 = OpFOrdEqual %v2bool %35 %35
%234 = OpAll %bool %233
%235 = OpFOrdEqual %v2bool %36 %36
%236 = OpAll %bool %235
%237 = OpLogicalAnd %bool %234 %236
OpBranch %232
%232 = OpLabel
%238 = OpPhi %bool %false %223 %237 %231
OpStore %_0_ok %238
OpStore %_3_m4 %61
%240 = OpMatrixTimesMatrix %mat2v2float %37 %61
OpStore %_2_m3 %240
OpSelectionMerge %242 None
OpBranchConditional %238 %241 %242
%241 = OpLabel
%243 = OpCompositeExtract %v2float %240 0
%244 = OpFOrdEqual %v2bool %243 %76
%245 = OpAll %bool %244
%246 = OpCompositeExtract %v2float %240 1
%247 = OpFOrdEqual %v2bool %246 %77
%248 = OpAll %bool %247
%249 = OpLogicalAnd %bool %245 %248
OpBranch %242
%242 = OpLabel
%250 = OpPhi %bool %false %232 %249 %241
OpStore %_0_ok %250
%252 = OpAccessChain %_ptr_Function_v2float %_1_m1 %int_1
%253 = OpLoad %v2float %252
%254 = OpCompositeExtract %float %253 1
%255 = OpCompositeConstruct %v2float %254 %float_0
%256 = OpCompositeConstruct %v2float %float_0 %254
%257 = OpCompositeConstruct %mat2v2float %255 %256
OpStore %_4_m5 %257
OpSelectionMerge %259 None
OpBranchConditional %250 %258 %259
%258 = OpLabel
%260 = OpFOrdEqual %v2bool %255 %98
%261 = OpAll %bool %260
%262 = OpFOrdEqual %v2bool %256 %99
%263 = OpAll %bool %262
%264 = OpLogicalAnd %bool %261 %263
OpBranch %259
%259 = OpLabel
%265 = OpPhi %bool %false %242 %264 %258
OpStore %_0_ok %265
%266 = OpFAdd %v2float %35 %255
%267 = OpFAdd %v2float %36 %256
%268 = OpCompositeConstruct %mat2v2float %266 %267
OpStore %_1_m1 %268
OpSelectionMerge %270 None
OpBranchConditional %265 %269 %270
%269 = OpLabel
%271 = OpFOrdEqual %v2bool %266 %114
%272 = OpAll %bool %271
%273 = OpFOrdEqual %v2bool %267 %115
%274 = OpAll %bool %273
%275 = OpLogicalAnd %bool %272 %274
OpBranch %270
%270 = OpLabel
%276 = OpPhi %bool %false %259 %275 %269
OpStore %_0_ok %276
OpStore %_7_m10 %165
OpStore %_8_m11 %184
%279 = OpFSub %v4float %183 %161
%280 = OpFSub %v4float %183 %162
%281 = OpFSub %v4float %183 %163
%282 = OpFSub %v4float %183 %164
%283 = OpCompositeConstruct %mat4v4float %279 %280 %281 %282
OpStore %_8_m11 %283
OpSelectionMerge %285 None
OpBranchConditional %276 %284 %285
%284 = OpLabel
%286 = OpFOrdEqual %v4bool %279 %192
%287 = OpAll %bool %286
%288 = OpFOrdEqual %v4bool %280 %193
%289 = OpAll %bool %288
%290 = OpLogicalAnd %bool %287 %289
%291 = OpFOrdEqual %v4bool %281 %194
%292 = OpAll %bool %291
%293 = OpLogicalAnd %bool %290 %292
%294 = OpFOrdEqual %v4bool %282 %195
%295 = OpAll %bool %294
%296 = OpLogicalAnd %bool %293 %295
OpBranch %285
%285 = OpLabel
%297 = OpPhi %bool %false %270 %296 %284
OpStore %_0_ok %297
OpSelectionMerge %299 None
OpBranchConditional %297 %298 %299
%298 = OpLabel
%300 = OpFunctionCall %bool %test_half_b
OpBranch %299
%299 = OpLabel
%301 = OpPhi %bool %false %285 %300 %298
OpSelectionMerge %303 None
OpBranchConditional %301 %302 %303
%302 = OpLabel
%304 = OpFunctionCall %bool %test_comma_b
OpBranch %303
%303 = OpLabel
%305 = OpPhi %bool %false %299 %304 %302
OpSelectionMerge %310 None
OpBranchConditional %305 %308 %309
%308 = OpLabel
%311 = OpAccessChain %_ptr_Uniform_v4float %9 %int_0
%314 = OpLoad %v4float %311
OpStore %306 %314
OpBranch %310
%309 = OpLabel
%315 = OpAccessChain %_ptr_Uniform_v4float %9 %int_1
%316 = OpLoad %v4float %315
OpStore %306 %316
OpBranch %310
%310 = OpLabel
%317 = OpLoad %v4float %306
OpReturnValue %317
OpFunctionEnd