8c2a505432
The output changes here are almost entirely a wash, because we already had support for caching scalars and vectors. Almost all changes are just inconsequential reorderings of IDs, and the removal of RelaxedPrecision decorators on constants (which were not meaningful). Change-Id: I45340c4a240cb504b7c4a934b3db178d2f39ec99 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/528709 Reviewed-by: Arman Uguray <armansito@google.com> Commit-Queue: John Stiles <johnstiles@google.com>
717 lines
24 KiB
JavaScript
717 lines
24 KiB
JavaScript
OpCapability Shader
|
|
%1 = OpExtInstImport "GLSL.std.450"
|
|
OpMemoryModel Logical GLSL450
|
|
OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise
|
|
OpExecutionMode %_entrypoint_v OriginUpperLeft
|
|
OpName %sk_FragColor "sk_FragColor"
|
|
OpName %sk_Clockwise "sk_Clockwise"
|
|
OpName %_UniformBuffer "_UniformBuffer"
|
|
OpMemberName %_UniformBuffer 0 "colorGreen"
|
|
OpMemberName %_UniformBuffer 1 "colorRed"
|
|
OpMemberName %_UniformBuffer 2 "colorBlack"
|
|
OpMemberName %_UniformBuffer 3 "colorWhite"
|
|
OpMemberName %_UniformBuffer 4 "testInputs"
|
|
OpName %_entrypoint_v "_entrypoint_v"
|
|
OpName %main "main"
|
|
OpName %intGreen "intGreen"
|
|
OpName %intRed "intRed"
|
|
OpDecorate %sk_FragColor RelaxedPrecision
|
|
OpDecorate %sk_FragColor Location 0
|
|
OpDecorate %sk_FragColor Index 0
|
|
OpDecorate %sk_Clockwise BuiltIn FrontFacing
|
|
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
|
|
OpMemberDecorate %_UniformBuffer 3 Offset 48
|
|
OpMemberDecorate %_UniformBuffer 3 RelaxedPrecision
|
|
OpMemberDecorate %_UniformBuffer 4 Offset 64
|
|
OpMemberDecorate %_UniformBuffer 4 RelaxedPrecision
|
|
OpDecorate %_UniformBuffer Block
|
|
OpDecorate %10 Binding 0
|
|
OpDecorate %10 DescriptorSet 0
|
|
OpDecorate %33 RelaxedPrecision
|
|
OpDecorate %35 RelaxedPrecision
|
|
OpDecorate %36 RelaxedPrecision
|
|
OpDecorate %38 RelaxedPrecision
|
|
OpDecorate %40 RelaxedPrecision
|
|
OpDecorate %42 RelaxedPrecision
|
|
OpDecorate %48 RelaxedPrecision
|
|
OpDecorate %49 RelaxedPrecision
|
|
OpDecorate %50 RelaxedPrecision
|
|
OpDecorate %52 RelaxedPrecision
|
|
OpDecorate %54 RelaxedPrecision
|
|
OpDecorate %56 RelaxedPrecision
|
|
OpDecorate %248 RelaxedPrecision
|
|
OpDecorate %249 RelaxedPrecision
|
|
OpDecorate %251 RelaxedPrecision
|
|
OpDecorate %252 RelaxedPrecision
|
|
OpDecorate %254 RelaxedPrecision
|
|
OpDecorate %255 RelaxedPrecision
|
|
OpDecorate %257 RelaxedPrecision
|
|
OpDecorate %258 RelaxedPrecision
|
|
OpDecorate %260 RelaxedPrecision
|
|
OpDecorate %261 RelaxedPrecision
|
|
OpDecorate %268 RelaxedPrecision
|
|
OpDecorate %269 RelaxedPrecision
|
|
OpDecorate %271 RelaxedPrecision
|
|
OpDecorate %272 RelaxedPrecision
|
|
OpDecorate %274 RelaxedPrecision
|
|
OpDecorate %275 RelaxedPrecision
|
|
OpDecorate %277 RelaxedPrecision
|
|
OpDecorate %278 RelaxedPrecision
|
|
OpDecorate %280 RelaxedPrecision
|
|
OpDecorate %281 RelaxedPrecision
|
|
OpDecorate %289 RelaxedPrecision
|
|
OpDecorate %290 RelaxedPrecision
|
|
OpDecorate %293 RelaxedPrecision
|
|
OpDecorate %294 RelaxedPrecision
|
|
OpDecorate %296 RelaxedPrecision
|
|
OpDecorate %297 RelaxedPrecision
|
|
OpDecorate %299 RelaxedPrecision
|
|
OpDecorate %300 RelaxedPrecision
|
|
OpDecorate %302 RelaxedPrecision
|
|
OpDecorate %303 RelaxedPrecision
|
|
OpDecorate %311 RelaxedPrecision
|
|
OpDecorate %313 RelaxedPrecision
|
|
OpDecorate %315 RelaxedPrecision
|
|
OpDecorate %317 RelaxedPrecision
|
|
OpDecorate %319 RelaxedPrecision
|
|
OpDecorate %327 RelaxedPrecision
|
|
OpDecorate %328 RelaxedPrecision
|
|
OpDecorate %330 RelaxedPrecision
|
|
OpDecorate %331 RelaxedPrecision
|
|
OpDecorate %333 RelaxedPrecision
|
|
OpDecorate %334 RelaxedPrecision
|
|
OpDecorate %336 RelaxedPrecision
|
|
OpDecorate %337 RelaxedPrecision
|
|
OpDecorate %339 RelaxedPrecision
|
|
OpDecorate %340 RelaxedPrecision
|
|
OpDecorate %347 RelaxedPrecision
|
|
OpDecorate %348 RelaxedPrecision
|
|
OpDecorate %350 RelaxedPrecision
|
|
OpDecorate %351 RelaxedPrecision
|
|
OpDecorate %353 RelaxedPrecision
|
|
OpDecorate %354 RelaxedPrecision
|
|
OpDecorate %356 RelaxedPrecision
|
|
OpDecorate %357 RelaxedPrecision
|
|
OpDecorate %359 RelaxedPrecision
|
|
OpDecorate %360 RelaxedPrecision
|
|
OpDecorate %368 RelaxedPrecision
|
|
OpDecorate %369 RelaxedPrecision
|
|
OpDecorate %371 RelaxedPrecision
|
|
OpDecorate %372 RelaxedPrecision
|
|
OpDecorate %374 RelaxedPrecision
|
|
OpDecorate %375 RelaxedPrecision
|
|
OpDecorate %377 RelaxedPrecision
|
|
OpDecorate %378 RelaxedPrecision
|
|
OpDecorate %380 RelaxedPrecision
|
|
OpDecorate %381 RelaxedPrecision
|
|
OpDecorate %389 RelaxedPrecision
|
|
OpDecorate %391 RelaxedPrecision
|
|
OpDecorate %393 RelaxedPrecision
|
|
OpDecorate %395 RelaxedPrecision
|
|
OpDecorate %397 RelaxedPrecision
|
|
OpDecorate %404 RelaxedPrecision
|
|
OpDecorate %405 RelaxedPrecision
|
|
OpDecorate %413 RelaxedPrecision
|
|
OpDecorate %414 RelaxedPrecision
|
|
OpDecorate %422 RelaxedPrecision
|
|
OpDecorate %423 RelaxedPrecision
|
|
OpDecorate %431 RelaxedPrecision
|
|
OpDecorate %438 RelaxedPrecision
|
|
OpDecorate %439 RelaxedPrecision
|
|
OpDecorate %446 RelaxedPrecision
|
|
OpDecorate %447 RelaxedPrecision
|
|
OpDecorate %455 RelaxedPrecision
|
|
OpDecorate %456 RelaxedPrecision
|
|
OpDecorate %464 RelaxedPrecision
|
|
OpDecorate %474 RelaxedPrecision
|
|
OpDecorate %476 RelaxedPrecision
|
|
OpDecorate %477 RelaxedPrecision
|
|
%float = OpTypeFloat 32
|
|
%v4float = OpTypeVector %float 4
|
|
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
|
%sk_FragColor = OpVariable %_ptr_Output_v4float Output
|
|
%bool = OpTypeBool
|
|
%_ptr_Input_bool = OpTypePointer Input %bool
|
|
%sk_Clockwise = OpVariable %_ptr_Input_bool Input
|
|
%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float %v4float %v4float
|
|
%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
|
|
%10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
|
|
%void = OpTypeVoid
|
|
%15 = OpTypeFunction %void
|
|
%float_0 = OpConstant %float 0
|
|
%v2float = OpTypeVector %float 2
|
|
%19 = OpConstantComposite %v2float %float_0 %float_0
|
|
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
|
%23 = OpTypeFunction %v4float %_ptr_Function_v2float
|
|
%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
|
|
%float_100 = OpConstant %float 100
|
|
%int_1 = OpConstant %int 1
|
|
%false = OpConstantFalse %bool
|
|
%v2int = OpTypeVector %int 2
|
|
%v2bool = OpTypeVector %bool 2
|
|
%81 = OpConstantComposite %v2bool %false %false
|
|
%v3int = OpTypeVector %int 3
|
|
%v3bool = OpTypeVector %bool 3
|
|
%100 = OpConstantComposite %v3bool %false %false %false
|
|
%v4bool = OpTypeVector %bool 4
|
|
%116 = OpConstantComposite %v4bool %false %false %false %false
|
|
%true = OpConstantTrue %bool
|
|
%146 = OpConstantComposite %v2bool %true %true
|
|
%163 = OpConstantComposite %v3bool %true %true %true
|
|
%178 = OpConstantComposite %v4bool %true %true %true %true
|
|
%int_100 = OpConstant %int 100
|
|
%194 = OpConstantComposite %v2int %int_0 %int_100
|
|
%202 = OpConstantComposite %v3int %int_0 %int_100 %int_0
|
|
%210 = OpConstantComposite %v4int %int_0 %int_100 %int_0 %int_100
|
|
%223 = OpConstantComposite %v2int %int_100 %int_0
|
|
%231 = OpConstantComposite %v3int %int_100 %int_0 %int_0
|
|
%239 = OpConstantComposite %v4int %int_100 %int_0 %int_0 %int_100
|
|
%v3float = OpTypeVector %float 3
|
|
%float_1 = OpConstant %float 1
|
|
%411 = OpConstantComposite %v2float %float_0 %float_1
|
|
%420 = OpConstantComposite %v3float %float_0 %float_1 %float_0
|
|
%429 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_1
|
|
%444 = OpConstantComposite %v2float %float_1 %float_0
|
|
%453 = OpConstantComposite %v3float %float_1 %float_0 %float_0
|
|
%462 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
|
|
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
|
%_entrypoint_v = OpFunction %void None %15
|
|
%16 = OpLabel
|
|
%20 = OpVariable %_ptr_Function_v2float Function
|
|
OpStore %20 %19
|
|
%22 = OpFunctionCall %v4float %main %20
|
|
OpStore %sk_FragColor %22
|
|
OpReturn
|
|
OpFunctionEnd
|
|
%main = OpFunction %v4float None %23
|
|
%24 = OpFunctionParameter %_ptr_Function_v2float
|
|
%25 = OpLabel
|
|
%intGreen = OpVariable %_ptr_Function_v4int Function
|
|
%intRed = OpVariable %_ptr_Function_v4int Function
|
|
%468 = OpVariable %_ptr_Function_v4float Function
|
|
%30 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%33 = OpLoad %v4float %30
|
|
%35 = OpVectorTimesScalar %v4float %33 %float_100
|
|
%36 = OpCompositeExtract %float %35 0
|
|
%37 = OpConvertFToS %int %36
|
|
%38 = OpCompositeExtract %float %35 1
|
|
%39 = OpConvertFToS %int %38
|
|
%40 = OpCompositeExtract %float %35 2
|
|
%41 = OpConvertFToS %int %40
|
|
%42 = OpCompositeExtract %float %35 3
|
|
%43 = OpConvertFToS %int %42
|
|
%44 = OpCompositeConstruct %v4int %37 %39 %41 %43
|
|
OpStore %intGreen %44
|
|
%46 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%48 = OpLoad %v4float %46
|
|
%49 = OpVectorTimesScalar %v4float %48 %float_100
|
|
%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 %intRed %58
|
|
%61 = OpLoad %v4int %intGreen
|
|
%62 = OpCompositeExtract %int %61 0
|
|
%63 = OpLoad %v4int %intRed
|
|
%64 = OpCompositeExtract %int %63 0
|
|
%65 = OpLoad %v4int %intGreen
|
|
%66 = OpCompositeExtract %int %65 0
|
|
%67 = OpLoad %v4int %intRed
|
|
%68 = OpCompositeExtract %int %67 0
|
|
%60 = OpSelect %int %false %68 %66
|
|
%69 = OpLoad %v4int %intGreen
|
|
%70 = OpCompositeExtract %int %69 0
|
|
%71 = OpIEqual %bool %60 %70
|
|
OpSelectionMerge %73 None
|
|
OpBranchConditional %71 %72 %73
|
|
%72 = OpLabel
|
|
%75 = OpLoad %v4int %intGreen
|
|
%76 = OpVectorShuffle %v2int %75 %75 0 1
|
|
%78 = OpLoad %v4int %intRed
|
|
%79 = OpVectorShuffle %v2int %78 %78 0 1
|
|
%82 = OpLoad %v4int %intGreen
|
|
%83 = OpVectorShuffle %v2int %82 %82 0 1
|
|
%84 = OpLoad %v4int %intRed
|
|
%85 = OpVectorShuffle %v2int %84 %84 0 1
|
|
%74 = OpSelect %v2int %81 %85 %83
|
|
%86 = OpLoad %v4int %intGreen
|
|
%87 = OpVectorShuffle %v2int %86 %86 0 1
|
|
%88 = OpIEqual %v2bool %74 %87
|
|
%89 = OpAll %bool %88
|
|
OpBranch %73
|
|
%73 = OpLabel
|
|
%90 = OpPhi %bool %false %25 %89 %72
|
|
OpSelectionMerge %92 None
|
|
OpBranchConditional %90 %91 %92
|
|
%91 = OpLabel
|
|
%94 = OpLoad %v4int %intGreen
|
|
%95 = OpVectorShuffle %v3int %94 %94 0 1 2
|
|
%97 = OpLoad %v4int %intRed
|
|
%98 = OpVectorShuffle %v3int %97 %97 0 1 2
|
|
%101 = OpLoad %v4int %intGreen
|
|
%102 = OpVectorShuffle %v3int %101 %101 0 1 2
|
|
%103 = OpLoad %v4int %intRed
|
|
%104 = OpVectorShuffle %v3int %103 %103 0 1 2
|
|
%93 = OpSelect %v3int %100 %104 %102
|
|
%105 = OpLoad %v4int %intGreen
|
|
%106 = OpVectorShuffle %v3int %105 %105 0 1 2
|
|
%107 = OpIEqual %v3bool %93 %106
|
|
%108 = OpAll %bool %107
|
|
OpBranch %92
|
|
%92 = OpLabel
|
|
%109 = OpPhi %bool %false %73 %108 %91
|
|
OpSelectionMerge %111 None
|
|
OpBranchConditional %109 %110 %111
|
|
%110 = OpLabel
|
|
%113 = OpLoad %v4int %intGreen
|
|
%114 = OpLoad %v4int %intRed
|
|
%117 = OpLoad %v4int %intGreen
|
|
%118 = OpLoad %v4int %intRed
|
|
%112 = OpSelect %v4int %116 %118 %117
|
|
%119 = OpLoad %v4int %intGreen
|
|
%120 = OpIEqual %v4bool %112 %119
|
|
%121 = OpAll %bool %120
|
|
OpBranch %111
|
|
%111 = OpLabel
|
|
%122 = OpPhi %bool %false %92 %121 %110
|
|
OpSelectionMerge %124 None
|
|
OpBranchConditional %122 %123 %124
|
|
%123 = OpLabel
|
|
%126 = OpLoad %v4int %intGreen
|
|
%127 = OpCompositeExtract %int %126 0
|
|
%128 = OpLoad %v4int %intRed
|
|
%129 = OpCompositeExtract %int %128 0
|
|
%131 = OpLoad %v4int %intGreen
|
|
%132 = OpCompositeExtract %int %131 0
|
|
%133 = OpLoad %v4int %intRed
|
|
%134 = OpCompositeExtract %int %133 0
|
|
%125 = OpSelect %int %true %134 %132
|
|
%135 = OpLoad %v4int %intRed
|
|
%136 = OpCompositeExtract %int %135 0
|
|
%137 = OpIEqual %bool %125 %136
|
|
OpBranch %124
|
|
%124 = OpLabel
|
|
%138 = OpPhi %bool %false %111 %137 %123
|
|
OpSelectionMerge %140 None
|
|
OpBranchConditional %138 %139 %140
|
|
%139 = OpLabel
|
|
%142 = OpLoad %v4int %intGreen
|
|
%143 = OpVectorShuffle %v2int %142 %142 0 1
|
|
%144 = OpLoad %v4int %intRed
|
|
%145 = OpVectorShuffle %v2int %144 %144 0 1
|
|
%147 = OpLoad %v4int %intGreen
|
|
%148 = OpVectorShuffle %v2int %147 %147 0 1
|
|
%149 = OpLoad %v4int %intRed
|
|
%150 = OpVectorShuffle %v2int %149 %149 0 1
|
|
%141 = OpSelect %v2int %146 %150 %148
|
|
%151 = OpLoad %v4int %intRed
|
|
%152 = OpVectorShuffle %v2int %151 %151 0 1
|
|
%153 = OpIEqual %v2bool %141 %152
|
|
%154 = OpAll %bool %153
|
|
OpBranch %140
|
|
%140 = OpLabel
|
|
%155 = OpPhi %bool %false %124 %154 %139
|
|
OpSelectionMerge %157 None
|
|
OpBranchConditional %155 %156 %157
|
|
%156 = OpLabel
|
|
%159 = OpLoad %v4int %intGreen
|
|
%160 = OpVectorShuffle %v3int %159 %159 0 1 2
|
|
%161 = OpLoad %v4int %intRed
|
|
%162 = OpVectorShuffle %v3int %161 %161 0 1 2
|
|
%164 = OpLoad %v4int %intGreen
|
|
%165 = OpVectorShuffle %v3int %164 %164 0 1 2
|
|
%166 = OpLoad %v4int %intRed
|
|
%167 = OpVectorShuffle %v3int %166 %166 0 1 2
|
|
%158 = OpSelect %v3int %163 %167 %165
|
|
%168 = OpLoad %v4int %intRed
|
|
%169 = OpVectorShuffle %v3int %168 %168 0 1 2
|
|
%170 = OpIEqual %v3bool %158 %169
|
|
%171 = OpAll %bool %170
|
|
OpBranch %157
|
|
%157 = OpLabel
|
|
%172 = OpPhi %bool %false %140 %171 %156
|
|
OpSelectionMerge %174 None
|
|
OpBranchConditional %172 %173 %174
|
|
%173 = OpLabel
|
|
%176 = OpLoad %v4int %intGreen
|
|
%177 = OpLoad %v4int %intRed
|
|
%179 = OpLoad %v4int %intGreen
|
|
%180 = OpLoad %v4int %intRed
|
|
%175 = OpSelect %v4int %178 %180 %179
|
|
%181 = OpLoad %v4int %intRed
|
|
%182 = OpIEqual %v4bool %175 %181
|
|
%183 = OpAll %bool %182
|
|
OpBranch %174
|
|
%174 = OpLabel
|
|
%184 = OpPhi %bool %false %157 %183 %173
|
|
OpSelectionMerge %186 None
|
|
OpBranchConditional %184 %185 %186
|
|
%185 = OpLabel
|
|
%187 = OpLoad %v4int %intGreen
|
|
%188 = OpCompositeExtract %int %187 0
|
|
%189 = OpIEqual %bool %int_0 %188
|
|
OpBranch %186
|
|
%186 = OpLabel
|
|
%190 = OpPhi %bool %false %174 %189 %185
|
|
OpSelectionMerge %192 None
|
|
OpBranchConditional %190 %191 %192
|
|
%191 = OpLabel
|
|
%195 = OpLoad %v4int %intGreen
|
|
%196 = OpVectorShuffle %v2int %195 %195 0 1
|
|
%197 = OpIEqual %v2bool %194 %196
|
|
%198 = OpAll %bool %197
|
|
OpBranch %192
|
|
%192 = OpLabel
|
|
%199 = OpPhi %bool %false %186 %198 %191
|
|
OpSelectionMerge %201 None
|
|
OpBranchConditional %199 %200 %201
|
|
%200 = OpLabel
|
|
%203 = OpLoad %v4int %intGreen
|
|
%204 = OpVectorShuffle %v3int %203 %203 0 1 2
|
|
%205 = OpIEqual %v3bool %202 %204
|
|
%206 = OpAll %bool %205
|
|
OpBranch %201
|
|
%201 = OpLabel
|
|
%207 = OpPhi %bool %false %192 %206 %200
|
|
OpSelectionMerge %209 None
|
|
OpBranchConditional %207 %208 %209
|
|
%208 = OpLabel
|
|
%211 = OpLoad %v4int %intGreen
|
|
%212 = OpIEqual %v4bool %210 %211
|
|
%213 = OpAll %bool %212
|
|
OpBranch %209
|
|
%209 = OpLabel
|
|
%214 = OpPhi %bool %false %201 %213 %208
|
|
OpSelectionMerge %216 None
|
|
OpBranchConditional %214 %215 %216
|
|
%215 = OpLabel
|
|
%217 = OpLoad %v4int %intRed
|
|
%218 = OpCompositeExtract %int %217 0
|
|
%219 = OpIEqual %bool %int_100 %218
|
|
OpBranch %216
|
|
%216 = OpLabel
|
|
%220 = OpPhi %bool %false %209 %219 %215
|
|
OpSelectionMerge %222 None
|
|
OpBranchConditional %220 %221 %222
|
|
%221 = OpLabel
|
|
%224 = OpLoad %v4int %intRed
|
|
%225 = OpVectorShuffle %v2int %224 %224 0 1
|
|
%226 = OpIEqual %v2bool %223 %225
|
|
%227 = OpAll %bool %226
|
|
OpBranch %222
|
|
%222 = OpLabel
|
|
%228 = OpPhi %bool %false %216 %227 %221
|
|
OpSelectionMerge %230 None
|
|
OpBranchConditional %228 %229 %230
|
|
%229 = OpLabel
|
|
%232 = OpLoad %v4int %intRed
|
|
%233 = OpVectorShuffle %v3int %232 %232 0 1 2
|
|
%234 = OpIEqual %v3bool %231 %233
|
|
%235 = OpAll %bool %234
|
|
OpBranch %230
|
|
%230 = OpLabel
|
|
%236 = OpPhi %bool %false %222 %235 %229
|
|
OpSelectionMerge %238 None
|
|
OpBranchConditional %236 %237 %238
|
|
%237 = OpLabel
|
|
%240 = OpLoad %v4int %intRed
|
|
%241 = OpIEqual %v4bool %239 %240
|
|
%242 = OpAll %bool %241
|
|
OpBranch %238
|
|
%238 = OpLabel
|
|
%243 = OpPhi %bool %false %230 %242 %237
|
|
OpSelectionMerge %245 None
|
|
OpBranchConditional %243 %244 %245
|
|
%244 = OpLabel
|
|
%247 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%248 = OpLoad %v4float %247
|
|
%249 = OpCompositeExtract %float %248 0
|
|
%250 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%251 = OpLoad %v4float %250
|
|
%252 = OpCompositeExtract %float %251 0
|
|
%253 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%254 = OpLoad %v4float %253
|
|
%255 = OpCompositeExtract %float %254 0
|
|
%256 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%257 = OpLoad %v4float %256
|
|
%258 = OpCompositeExtract %float %257 0
|
|
%246 = OpSelect %float %false %258 %255
|
|
%259 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%260 = OpLoad %v4float %259
|
|
%261 = OpCompositeExtract %float %260 0
|
|
%262 = OpFOrdEqual %bool %246 %261
|
|
OpBranch %245
|
|
%245 = OpLabel
|
|
%263 = OpPhi %bool %false %238 %262 %244
|
|
OpSelectionMerge %265 None
|
|
OpBranchConditional %263 %264 %265
|
|
%264 = OpLabel
|
|
%267 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%268 = OpLoad %v4float %267
|
|
%269 = OpVectorShuffle %v2float %268 %268 0 1
|
|
%270 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%271 = OpLoad %v4float %270
|
|
%272 = OpVectorShuffle %v2float %271 %271 0 1
|
|
%273 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%274 = OpLoad %v4float %273
|
|
%275 = OpVectorShuffle %v2float %274 %274 0 1
|
|
%276 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%277 = OpLoad %v4float %276
|
|
%278 = OpVectorShuffle %v2float %277 %277 0 1
|
|
%266 = OpSelect %v2float %81 %278 %275
|
|
%279 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%280 = OpLoad %v4float %279
|
|
%281 = OpVectorShuffle %v2float %280 %280 0 1
|
|
%282 = OpFOrdEqual %v2bool %266 %281
|
|
%283 = OpAll %bool %282
|
|
OpBranch %265
|
|
%265 = OpLabel
|
|
%284 = OpPhi %bool %false %245 %283 %264
|
|
OpSelectionMerge %286 None
|
|
OpBranchConditional %284 %285 %286
|
|
%285 = OpLabel
|
|
%288 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%289 = OpLoad %v4float %288
|
|
%290 = OpVectorShuffle %v3float %289 %289 0 1 2
|
|
%292 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%293 = OpLoad %v4float %292
|
|
%294 = OpVectorShuffle %v3float %293 %293 0 1 2
|
|
%295 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%296 = OpLoad %v4float %295
|
|
%297 = OpVectorShuffle %v3float %296 %296 0 1 2
|
|
%298 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%299 = OpLoad %v4float %298
|
|
%300 = OpVectorShuffle %v3float %299 %299 0 1 2
|
|
%287 = OpSelect %v3float %100 %300 %297
|
|
%301 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%302 = OpLoad %v4float %301
|
|
%303 = OpVectorShuffle %v3float %302 %302 0 1 2
|
|
%304 = OpFOrdEqual %v3bool %287 %303
|
|
%305 = OpAll %bool %304
|
|
OpBranch %286
|
|
%286 = OpLabel
|
|
%306 = OpPhi %bool %false %265 %305 %285
|
|
OpSelectionMerge %308 None
|
|
OpBranchConditional %306 %307 %308
|
|
%307 = OpLabel
|
|
%310 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%311 = OpLoad %v4float %310
|
|
%312 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%313 = OpLoad %v4float %312
|
|
%314 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%315 = OpLoad %v4float %314
|
|
%316 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%317 = OpLoad %v4float %316
|
|
%309 = OpSelect %v4float %116 %317 %315
|
|
%318 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%319 = OpLoad %v4float %318
|
|
%320 = OpFOrdEqual %v4bool %309 %319
|
|
%321 = OpAll %bool %320
|
|
OpBranch %308
|
|
%308 = OpLabel
|
|
%322 = OpPhi %bool %false %286 %321 %307
|
|
OpSelectionMerge %324 None
|
|
OpBranchConditional %322 %323 %324
|
|
%323 = OpLabel
|
|
%326 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%327 = OpLoad %v4float %326
|
|
%328 = OpCompositeExtract %float %327 0
|
|
%329 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%330 = OpLoad %v4float %329
|
|
%331 = OpCompositeExtract %float %330 0
|
|
%332 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%333 = OpLoad %v4float %332
|
|
%334 = OpCompositeExtract %float %333 0
|
|
%335 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%336 = OpLoad %v4float %335
|
|
%337 = OpCompositeExtract %float %336 0
|
|
%325 = OpSelect %float %true %337 %334
|
|
%338 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%339 = OpLoad %v4float %338
|
|
%340 = OpCompositeExtract %float %339 0
|
|
%341 = OpFOrdEqual %bool %325 %340
|
|
OpBranch %324
|
|
%324 = OpLabel
|
|
%342 = OpPhi %bool %false %308 %341 %323
|
|
OpSelectionMerge %344 None
|
|
OpBranchConditional %342 %343 %344
|
|
%343 = OpLabel
|
|
%346 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%347 = OpLoad %v4float %346
|
|
%348 = OpVectorShuffle %v2float %347 %347 0 1
|
|
%349 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%350 = OpLoad %v4float %349
|
|
%351 = OpVectorShuffle %v2float %350 %350 0 1
|
|
%352 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%353 = OpLoad %v4float %352
|
|
%354 = OpVectorShuffle %v2float %353 %353 0 1
|
|
%355 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%356 = OpLoad %v4float %355
|
|
%357 = OpVectorShuffle %v2float %356 %356 0 1
|
|
%345 = OpSelect %v2float %146 %357 %354
|
|
%358 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%359 = OpLoad %v4float %358
|
|
%360 = OpVectorShuffle %v2float %359 %359 0 1
|
|
%361 = OpFOrdEqual %v2bool %345 %360
|
|
%362 = OpAll %bool %361
|
|
OpBranch %344
|
|
%344 = OpLabel
|
|
%363 = OpPhi %bool %false %324 %362 %343
|
|
OpSelectionMerge %365 None
|
|
OpBranchConditional %363 %364 %365
|
|
%364 = OpLabel
|
|
%367 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%368 = OpLoad %v4float %367
|
|
%369 = OpVectorShuffle %v3float %368 %368 0 1 2
|
|
%370 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%371 = OpLoad %v4float %370
|
|
%372 = OpVectorShuffle %v3float %371 %371 0 1 2
|
|
%373 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%374 = OpLoad %v4float %373
|
|
%375 = OpVectorShuffle %v3float %374 %374 0 1 2
|
|
%376 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%377 = OpLoad %v4float %376
|
|
%378 = OpVectorShuffle %v3float %377 %377 0 1 2
|
|
%366 = OpSelect %v3float %163 %378 %375
|
|
%379 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%380 = OpLoad %v4float %379
|
|
%381 = OpVectorShuffle %v3float %380 %380 0 1 2
|
|
%382 = OpFOrdEqual %v3bool %366 %381
|
|
%383 = OpAll %bool %382
|
|
OpBranch %365
|
|
%365 = OpLabel
|
|
%384 = OpPhi %bool %false %344 %383 %364
|
|
OpSelectionMerge %386 None
|
|
OpBranchConditional %384 %385 %386
|
|
%385 = OpLabel
|
|
%388 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%389 = OpLoad %v4float %388
|
|
%390 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%391 = OpLoad %v4float %390
|
|
%392 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%393 = OpLoad %v4float %392
|
|
%394 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%395 = OpLoad %v4float %394
|
|
%387 = OpSelect %v4float %178 %395 %393
|
|
%396 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%397 = OpLoad %v4float %396
|
|
%398 = OpFOrdEqual %v4bool %387 %397
|
|
%399 = OpAll %bool %398
|
|
OpBranch %386
|
|
%386 = OpLabel
|
|
%400 = OpPhi %bool %false %365 %399 %385
|
|
OpSelectionMerge %402 None
|
|
OpBranchConditional %400 %401 %402
|
|
%401 = OpLabel
|
|
%403 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%404 = OpLoad %v4float %403
|
|
%405 = OpCompositeExtract %float %404 0
|
|
%406 = OpFOrdEqual %bool %float_0 %405
|
|
OpBranch %402
|
|
%402 = OpLabel
|
|
%407 = OpPhi %bool %false %386 %406 %401
|
|
OpSelectionMerge %409 None
|
|
OpBranchConditional %407 %408 %409
|
|
%408 = OpLabel
|
|
%412 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%413 = OpLoad %v4float %412
|
|
%414 = OpVectorShuffle %v2float %413 %413 0 1
|
|
%415 = OpFOrdEqual %v2bool %411 %414
|
|
%416 = OpAll %bool %415
|
|
OpBranch %409
|
|
%409 = OpLabel
|
|
%417 = OpPhi %bool %false %402 %416 %408
|
|
OpSelectionMerge %419 None
|
|
OpBranchConditional %417 %418 %419
|
|
%418 = OpLabel
|
|
%421 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%422 = OpLoad %v4float %421
|
|
%423 = OpVectorShuffle %v3float %422 %422 0 1 2
|
|
%424 = OpFOrdEqual %v3bool %420 %423
|
|
%425 = OpAll %bool %424
|
|
OpBranch %419
|
|
%419 = OpLabel
|
|
%426 = OpPhi %bool %false %409 %425 %418
|
|
OpSelectionMerge %428 None
|
|
OpBranchConditional %426 %427 %428
|
|
%427 = OpLabel
|
|
%430 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%431 = OpLoad %v4float %430
|
|
%432 = OpFOrdEqual %v4bool %429 %431
|
|
%433 = OpAll %bool %432
|
|
OpBranch %428
|
|
%428 = OpLabel
|
|
%434 = OpPhi %bool %false %419 %433 %427
|
|
OpSelectionMerge %436 None
|
|
OpBranchConditional %434 %435 %436
|
|
%435 = OpLabel
|
|
%437 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%438 = OpLoad %v4float %437
|
|
%439 = OpCompositeExtract %float %438 0
|
|
%440 = OpFOrdEqual %bool %float_1 %439
|
|
OpBranch %436
|
|
%436 = OpLabel
|
|
%441 = OpPhi %bool %false %428 %440 %435
|
|
OpSelectionMerge %443 None
|
|
OpBranchConditional %441 %442 %443
|
|
%442 = OpLabel
|
|
%445 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%446 = OpLoad %v4float %445
|
|
%447 = OpVectorShuffle %v2float %446 %446 0 1
|
|
%448 = OpFOrdEqual %v2bool %444 %447
|
|
%449 = OpAll %bool %448
|
|
OpBranch %443
|
|
%443 = OpLabel
|
|
%450 = OpPhi %bool %false %436 %449 %442
|
|
OpSelectionMerge %452 None
|
|
OpBranchConditional %450 %451 %452
|
|
%451 = OpLabel
|
|
%454 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%455 = OpLoad %v4float %454
|
|
%456 = OpVectorShuffle %v3float %455 %455 0 1 2
|
|
%457 = OpFOrdEqual %v3bool %453 %456
|
|
%458 = OpAll %bool %457
|
|
OpBranch %452
|
|
%452 = OpLabel
|
|
%459 = OpPhi %bool %false %443 %458 %451
|
|
OpSelectionMerge %461 None
|
|
OpBranchConditional %459 %460 %461
|
|
%460 = OpLabel
|
|
%463 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%464 = OpLoad %v4float %463
|
|
%465 = OpFOrdEqual %v4bool %462 %464
|
|
%466 = OpAll %bool %465
|
|
OpBranch %461
|
|
%461 = OpLabel
|
|
%467 = OpPhi %bool %false %452 %466 %460
|
|
OpSelectionMerge %472 None
|
|
OpBranchConditional %467 %470 %471
|
|
%470 = OpLabel
|
|
%473 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
|
|
%474 = OpLoad %v4float %473
|
|
OpStore %468 %474
|
|
OpBranch %472
|
|
%471 = OpLabel
|
|
%475 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
|
|
%476 = OpLoad %v4float %475
|
|
OpStore %468 %476
|
|
OpBranch %472
|
|
%472 = OpLabel
|
|
%477 = OpLoad %v4float %468
|
|
OpReturnValue %477
|
|
OpFunctionEnd
|