blob: 55e1a6b93d7d37addec48a4b2b6d65e62647ba2a [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"
OpMemberName %_UniformBuffer 2 "testInputs"
OpName %_entrypoint_v "_entrypoint_v"
OpName %main "main"
OpName %ok "ok"
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 %7 Binding 0
OpDecorate %7 DescriptorSet 0
OpDecorate %34 RelaxedPrecision
OpDecorate %35 RelaxedPrecision
OpDecorate %36 RelaxedPrecision
OpDecorate %37 RelaxedPrecision
OpDecorate %38 RelaxedPrecision
OpDecorate %39 RelaxedPrecision
OpDecorate %40 RelaxedPrecision
OpDecorate %42 RelaxedPrecision
OpDecorate %50 RelaxedPrecision
OpDecorate %52 RelaxedPrecision
OpDecorate %59 RelaxedPrecision
OpDecorate %77 RelaxedPrecision
OpDecorate %78 RelaxedPrecision
OpDecorate %79 RelaxedPrecision
OpDecorate %80 RelaxedPrecision
OpDecorate %81 RelaxedPrecision
OpDecorate %82 RelaxedPrecision
OpDecorate %83 RelaxedPrecision
OpDecorate %84 RelaxedPrecision
OpDecorate %88 RelaxedPrecision
OpDecorate %90 RelaxedPrecision
OpDecorate %97 RelaxedPrecision
OpDecorate %98 RelaxedPrecision
OpDecorate %99 RelaxedPrecision
OpDecorate %100 RelaxedPrecision
OpDecorate %101 RelaxedPrecision
OpDecorate %102 RelaxedPrecision
OpDecorate %103 RelaxedPrecision
OpDecorate %104 RelaxedPrecision
OpDecorate %105 RelaxedPrecision
OpDecorate %107 RelaxedPrecision
OpDecorate %114 RelaxedPrecision
OpDecorate %115 RelaxedPrecision
OpDecorate %117 RelaxedPrecision
OpDecorate %119 RelaxedPrecision
OpDecorate %121 RelaxedPrecision
OpDecorate %126 RelaxedPrecision
OpDecorate %128 RelaxedPrecision
OpDecorate %130 RelaxedPrecision
OpDecorate %132 RelaxedPrecision
OpDecorate %133 RelaxedPrecision
OpDecorate %134 RelaxedPrecision
OpDecorate %135 RelaxedPrecision
OpDecorate %136 RelaxedPrecision
OpDecorate %137 RelaxedPrecision
OpDecorate %138 RelaxedPrecision
OpDecorate %139 RelaxedPrecision
OpDecorate %140 RelaxedPrecision
OpDecorate %141 RelaxedPrecision
OpDecorate %143 RelaxedPrecision
OpDecorate %150 RelaxedPrecision
OpDecorate %151 RelaxedPrecision
OpDecorate %152 RelaxedPrecision
OpDecorate %153 RelaxedPrecision
OpDecorate %154 RelaxedPrecision
OpDecorate %155 RelaxedPrecision
OpDecorate %156 RelaxedPrecision
OpDecorate %157 RelaxedPrecision
OpDecorate %158 RelaxedPrecision
OpDecorate %160 RelaxedPrecision
OpDecorate %167 RelaxedPrecision
OpDecorate %168 RelaxedPrecision
OpDecorate %169 RelaxedPrecision
OpDecorate %170 RelaxedPrecision
OpDecorate %171 RelaxedPrecision
OpDecorate %172 RelaxedPrecision
OpDecorate %173 RelaxedPrecision
OpDecorate %174 RelaxedPrecision
OpDecorate %175 RelaxedPrecision
OpDecorate %177 RelaxedPrecision
OpDecorate %184 RelaxedPrecision
OpDecorate %185 RelaxedPrecision
OpDecorate %187 RelaxedPrecision
OpDecorate %189 RelaxedPrecision
OpDecorate %191 RelaxedPrecision
OpDecorate %196 RelaxedPrecision
OpDecorate %198 RelaxedPrecision
OpDecorate %200 RelaxedPrecision
OpDecorate %202 RelaxedPrecision
OpDecorate %203 RelaxedPrecision
OpDecorate %204 RelaxedPrecision
OpDecorate %205 RelaxedPrecision
OpDecorate %206 RelaxedPrecision
OpDecorate %207 RelaxedPrecision
OpDecorate %208 RelaxedPrecision
OpDecorate %209 RelaxedPrecision
OpDecorate %210 RelaxedPrecision
OpDecorate %211 RelaxedPrecision
OpDecorate %213 RelaxedPrecision
OpDecorate %220 RelaxedPrecision
OpDecorate %223 RelaxedPrecision
OpDecorate %224 RelaxedPrecision
OpDecorate %225 RelaxedPrecision
OpDecorate %226 RelaxedPrecision
OpDecorate %227 RelaxedPrecision
OpDecorate %228 RelaxedPrecision
OpDecorate %229 RelaxedPrecision
OpDecorate %230 RelaxedPrecision
OpDecorate %231 RelaxedPrecision
OpDecorate %235 RelaxedPrecision
OpDecorate %237 RelaxedPrecision
OpDecorate %244 RelaxedPrecision
OpDecorate %247 RelaxedPrecision
OpDecorate %248 RelaxedPrecision
OpDecorate %249 RelaxedPrecision
OpDecorate %250 RelaxedPrecision
OpDecorate %251 RelaxedPrecision
OpDecorate %252 RelaxedPrecision
OpDecorate %253 RelaxedPrecision
OpDecorate %254 RelaxedPrecision
OpDecorate %258 RelaxedPrecision
OpDecorate %260 RelaxedPrecision
OpDecorate %270 RelaxedPrecision
OpDecorate %272 RelaxedPrecision
OpDecorate %273 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 %v4float
%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
%7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
%void = OpTypeVoid
%12 = OpTypeFunction %void
%float_0 = OpConstant %float 0
%v2float = OpTypeVector %float 2
%16 = OpConstantComposite %v2float %float_0 %float_0
%_ptr_Function_v2float = OpTypePointer Function %v2float
%20 = OpTypeFunction %v4float %_ptr_Function_v2float
%bool = OpTypeBool
%_ptr_Function_bool = OpTypePointer Function %bool
%true = OpConstantTrue %bool
%false = OpConstantFalse %bool
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
%int = OpTypeInt 32 1
%int_2 = OpConstant %int 2
%mat2v2float = OpTypeMatrix %v2float 2
%float_n1_25 = OpConstant %float -1.25
%float_0_75 = OpConstant %float 0.75
%float_2_25 = OpConstant %float 2.25
%46 = OpConstantComposite %v2float %float_n1_25 %float_0
%47 = OpConstantComposite %v2float %float_0_75 %float_2_25
%48 = OpConstantComposite %mat2v2float %46 %47
%v2bool = OpTypeVector %bool 2
%int_0 = OpConstant %int 0
%float_1 = OpConstant %float 1
%86 = OpConstantComposite %v2float %float_0 %float_1
%87 = OpConstantComposite %mat2v2float %86 %86
%v4int = OpTypeVector %int 4
%v4bool = OpTypeVector %bool 4
%int_1 = OpConstant %int 1
%float_n1 = OpConstant %float -1
%233 = OpConstantComposite %v2float %float_n1 %float_1
%234 = OpConstantComposite %mat2v2float %233 %16
%float_5 = OpConstant %float 5
%246 = OpConstantComposite %v4float %float_5 %float_5 %float_5 %float_5
%float_6 = OpConstant %float 6
%256 = OpConstantComposite %v2float %float_5 %float_6
%257 = OpConstantComposite %mat2v2float %256 %256
%_ptr_Function_v4float = OpTypePointer Function %v4float
%_entrypoint_v = OpFunction %void None %12
%13 = OpLabel
%17 = OpVariable %_ptr_Function_v2float Function
OpStore %17 %16
%19 = OpFunctionCall %v4float %main %17
OpStore %sk_FragColor %19
OpReturn
OpFunctionEnd
%main = OpFunction %v4float None %20
%21 = OpFunctionParameter %_ptr_Function_v2float
%22 = OpLabel
%ok = OpVariable %_ptr_Function_bool Function
%264 = OpVariable %_ptr_Function_v4float Function
OpStore %ok %true
OpSelectionMerge %29 None
OpBranchConditional %true %28 %29
%28 = OpLabel
%30 = OpAccessChain %_ptr_Uniform_v4float %7 %int_2
%34 = OpLoad %v4float %30
%35 = OpCompositeExtract %float %34 0
%36 = OpCompositeExtract %float %34 1
%37 = OpCompositeExtract %float %34 2
%38 = OpCompositeExtract %float %34 3
%39 = OpCompositeConstruct %v2float %35 %36
%40 = OpCompositeConstruct %v2float %37 %38
%42 = OpCompositeConstruct %mat2v2float %39 %40
%50 = OpFOrdEqual %v2bool %39 %46
%51 = OpAll %bool %50
%52 = OpFOrdEqual %v2bool %40 %47
%53 = OpAll %bool %52
%54 = OpLogicalAnd %bool %51 %53
OpBranch %29
%29 = OpLabel
%55 = OpPhi %bool %false %22 %54 %28
OpStore %ok %55
OpSelectionMerge %57 None
OpBranchConditional %55 %56 %57
%56 = OpLabel
%58 = OpAccessChain %_ptr_Uniform_v4float %7 %int_2
%59 = OpLoad %v4float %58
%60 = OpCompositeExtract %float %59 0
%61 = OpCompositeExtract %float %59 1
%62 = OpCompositeExtract %float %59 2
%63 = OpCompositeExtract %float %59 3
%64 = OpCompositeConstruct %v2float %60 %61
%65 = OpCompositeConstruct %v2float %62 %63
%66 = OpCompositeConstruct %mat2v2float %64 %65
%67 = OpFOrdEqual %v2bool %64 %46
%68 = OpAll %bool %67
%69 = OpFOrdEqual %v2bool %65 %47
%70 = OpAll %bool %69
%71 = OpLogicalAnd %bool %68 %70
OpBranch %57
%57 = OpLabel
%72 = OpPhi %bool %false %29 %71 %56
OpStore %ok %72
OpSelectionMerge %74 None
OpBranchConditional %72 %73 %74
%73 = OpLabel
%75 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%77 = OpLoad %v4float %75
%78 = OpCompositeExtract %float %77 0
%79 = OpCompositeExtract %float %77 1
%80 = OpCompositeExtract %float %77 2
%81 = OpCompositeExtract %float %77 3
%82 = OpCompositeConstruct %v2float %78 %79
%83 = OpCompositeConstruct %v2float %80 %81
%84 = OpCompositeConstruct %mat2v2float %82 %83
%88 = OpFOrdEqual %v2bool %82 %86
%89 = OpAll %bool %88
%90 = OpFOrdEqual %v2bool %83 %86
%91 = OpAll %bool %90
%92 = OpLogicalAnd %bool %89 %91
OpBranch %74
%74 = OpLabel
%93 = OpPhi %bool %false %57 %92 %73
OpStore %ok %93
OpSelectionMerge %95 None
OpBranchConditional %93 %94 %95
%94 = OpLabel
%96 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%97 = OpLoad %v4float %96
%98 = OpCompositeExtract %float %97 0
%99 = OpCompositeExtract %float %97 1
%100 = OpCompositeExtract %float %97 2
%101 = OpCompositeExtract %float %97 3
%102 = OpCompositeConstruct %v2float %98 %99
%103 = OpCompositeConstruct %v2float %100 %101
%104 = OpCompositeConstruct %mat2v2float %102 %103
%105 = OpFOrdEqual %v2bool %102 %86
%106 = OpAll %bool %105
%107 = OpFOrdEqual %v2bool %103 %86
%108 = OpAll %bool %107
%109 = OpLogicalAnd %bool %106 %108
OpBranch %95
%95 = OpLabel
%110 = OpPhi %bool %false %74 %109 %94
OpStore %ok %110
OpSelectionMerge %112 None
OpBranchConditional %110 %111 %112
%111 = OpLabel
%113 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%114 = OpLoad %v4float %113
%115 = OpCompositeExtract %float %114 0
%116 = OpConvertFToS %int %115
%117 = OpCompositeExtract %float %114 1
%118 = OpConvertFToS %int %117
%119 = OpCompositeExtract %float %114 2
%120 = OpConvertFToS %int %119
%121 = OpCompositeExtract %float %114 3
%122 = OpConvertFToS %int %121
%124 = OpCompositeConstruct %v4int %116 %118 %120 %122
%125 = OpCompositeExtract %int %124 0
%126 = OpConvertSToF %float %125
%127 = OpCompositeExtract %int %124 1
%128 = OpConvertSToF %float %127
%129 = OpCompositeExtract %int %124 2
%130 = OpConvertSToF %float %129
%131 = OpCompositeExtract %int %124 3
%132 = OpConvertSToF %float %131
%133 = OpCompositeConstruct %v4float %126 %128 %130 %132
%134 = OpCompositeExtract %float %133 0
%135 = OpCompositeExtract %float %133 1
%136 = OpCompositeExtract %float %133 2
%137 = OpCompositeExtract %float %133 3
%138 = OpCompositeConstruct %v2float %134 %135
%139 = OpCompositeConstruct %v2float %136 %137
%140 = OpCompositeConstruct %mat2v2float %138 %139
%141 = OpFOrdEqual %v2bool %138 %86
%142 = OpAll %bool %141
%143 = OpFOrdEqual %v2bool %139 %86
%144 = OpAll %bool %143
%145 = OpLogicalAnd %bool %142 %144
OpBranch %112
%112 = OpLabel
%146 = OpPhi %bool %false %95 %145 %111
OpStore %ok %146
OpSelectionMerge %148 None
OpBranchConditional %146 %147 %148
%147 = OpLabel
%149 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%150 = OpLoad %v4float %149
%151 = OpCompositeExtract %float %150 0
%152 = OpCompositeExtract %float %150 1
%153 = OpCompositeExtract %float %150 2
%154 = OpCompositeExtract %float %150 3
%155 = OpCompositeConstruct %v2float %151 %152
%156 = OpCompositeConstruct %v2float %153 %154
%157 = OpCompositeConstruct %mat2v2float %155 %156
%158 = OpFOrdEqual %v2bool %155 %86
%159 = OpAll %bool %158
%160 = OpFOrdEqual %v2bool %156 %86
%161 = OpAll %bool %160
%162 = OpLogicalAnd %bool %159 %161
OpBranch %148
%148 = OpLabel
%163 = OpPhi %bool %false %112 %162 %147
OpStore %ok %163
OpSelectionMerge %165 None
OpBranchConditional %163 %164 %165
%164 = OpLabel
%166 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%167 = OpLoad %v4float %166
%168 = OpCompositeExtract %float %167 0
%169 = OpCompositeExtract %float %167 1
%170 = OpCompositeExtract %float %167 2
%171 = OpCompositeExtract %float %167 3
%172 = OpCompositeConstruct %v2float %168 %169
%173 = OpCompositeConstruct %v2float %170 %171
%174 = OpCompositeConstruct %mat2v2float %172 %173
%175 = OpFOrdEqual %v2bool %172 %86
%176 = OpAll %bool %175
%177 = OpFOrdEqual %v2bool %173 %86
%178 = OpAll %bool %177
%179 = OpLogicalAnd %bool %176 %178
OpBranch %165
%165 = OpLabel
%180 = OpPhi %bool %false %148 %179 %164
OpStore %ok %180
OpSelectionMerge %182 None
OpBranchConditional %180 %181 %182
%181 = OpLabel
%183 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%184 = OpLoad %v4float %183
%185 = OpCompositeExtract %float %184 0
%186 = OpFUnordNotEqual %bool %185 %float_0
%187 = OpCompositeExtract %float %184 1
%188 = OpFUnordNotEqual %bool %187 %float_0
%189 = OpCompositeExtract %float %184 2
%190 = OpFUnordNotEqual %bool %189 %float_0
%191 = OpCompositeExtract %float %184 3
%192 = OpFUnordNotEqual %bool %191 %float_0
%194 = OpCompositeConstruct %v4bool %186 %188 %190 %192
%195 = OpCompositeExtract %bool %194 0
%196 = OpSelect %float %195 %float_1 %float_0
%197 = OpCompositeExtract %bool %194 1
%198 = OpSelect %float %197 %float_1 %float_0
%199 = OpCompositeExtract %bool %194 2
%200 = OpSelect %float %199 %float_1 %float_0
%201 = OpCompositeExtract %bool %194 3
%202 = OpSelect %float %201 %float_1 %float_0
%203 = OpCompositeConstruct %v4float %196 %198 %200 %202
%204 = OpCompositeExtract %float %203 0
%205 = OpCompositeExtract %float %203 1
%206 = OpCompositeExtract %float %203 2
%207 = OpCompositeExtract %float %203 3
%208 = OpCompositeConstruct %v2float %204 %205
%209 = OpCompositeConstruct %v2float %206 %207
%210 = OpCompositeConstruct %mat2v2float %208 %209
%211 = OpFOrdEqual %v2bool %208 %86
%212 = OpAll %bool %211
%213 = OpFOrdEqual %v2bool %209 %86
%214 = OpAll %bool %213
%215 = OpLogicalAnd %bool %212 %214
OpBranch %182
%182 = OpLabel
%216 = OpPhi %bool %false %165 %215 %181
OpStore %ok %216
OpSelectionMerge %218 None
OpBranchConditional %216 %217 %218
%217 = OpLabel
%219 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%220 = OpLoad %v4float %219
%221 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%223 = OpLoad %v4float %221
%224 = OpFSub %v4float %220 %223
%225 = OpCompositeExtract %float %224 0
%226 = OpCompositeExtract %float %224 1
%227 = OpCompositeExtract %float %224 2
%228 = OpCompositeExtract %float %224 3
%229 = OpCompositeConstruct %v2float %225 %226
%230 = OpCompositeConstruct %v2float %227 %228
%231 = OpCompositeConstruct %mat2v2float %229 %230
%235 = OpFOrdEqual %v2bool %229 %233
%236 = OpAll %bool %235
%237 = OpFOrdEqual %v2bool %230 %16
%238 = OpAll %bool %237
%239 = OpLogicalAnd %bool %236 %238
OpBranch %218
%218 = OpLabel
%240 = OpPhi %bool %false %182 %239 %217
OpStore %ok %240
OpSelectionMerge %242 None
OpBranchConditional %240 %241 %242
%241 = OpLabel
%243 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%244 = OpLoad %v4float %243
%247 = OpFAdd %v4float %244 %246
%248 = OpCompositeExtract %float %247 0
%249 = OpCompositeExtract %float %247 1
%250 = OpCompositeExtract %float %247 2
%251 = OpCompositeExtract %float %247 3
%252 = OpCompositeConstruct %v2float %248 %249
%253 = OpCompositeConstruct %v2float %250 %251
%254 = OpCompositeConstruct %mat2v2float %252 %253
%258 = OpFOrdEqual %v2bool %252 %256
%259 = OpAll %bool %258
%260 = OpFOrdEqual %v2bool %253 %256
%261 = OpAll %bool %260
%262 = OpLogicalAnd %bool %259 %261
OpBranch %242
%242 = OpLabel
%263 = OpPhi %bool %false %218 %262 %241
OpStore %ok %263
OpSelectionMerge %268 None
OpBranchConditional %263 %266 %267
%266 = OpLabel
%269 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
%270 = OpLoad %v4float %269
OpStore %264 %270
OpBranch %268
%267 = OpLabel
%271 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
%272 = OpLoad %v4float %271
OpStore %264 %272
OpBranch %268
%268 = OpLabel
%273 = OpLoad %v4float %264
OpReturnValue %273
OpFunctionEnd