blob: c368904a0df04e484c08824a496de299e0bee53e [file] [log] [blame]
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 292
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
OpExecutionMode %main OriginUpperLeft
OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
OpName %gl_FragCoord "gl_FragCoord"
OpName %buf0 "buf0"
OpMemberName %buf0 0 "injectionSwitch"
OpName %x_6 "x_6"
OpName %x_GLF_color "x_GLF_color"
OpName %main_1 "main_1"
OpName %x_45 "x_45"
OpName %x_48 "x_48"
OpName %x_49 "x_49"
OpName %x_46 "x_46"
OpName %x_115 "x_115"
OpName %x_116 "x_116"
OpName %x_45_phi "x_45_phi"
OpName %x_48_phi "x_48_phi"
OpName %x_50_phi "x_50_phi"
OpName %x_52_phi "x_52_phi"
OpName %x_111_phi "x_111_phi"
OpName %x_112_phi "x_112_phi"
OpName %x_115_phi "x_115_phi"
OpName %x_118_phi "x_118_phi"
OpName %x_120_phi "x_120_phi"
OpName %x_161_phi "x_161_phi"
OpName %x_62 "x_62"
OpName %x_65 "x_65"
OpName %x_66 "x_66"
OpName %x_63 "x_63"
OpName %x_53 "x_53"
OpName %x_62_phi "x_62_phi"
OpName %x_65_phi "x_65_phi"
OpName %x_67_phi "x_67_phi"
OpName %x_51_phi "x_51_phi"
OpName %x_49_phi "x_49_phi"
OpName %x_46_phi "x_46_phi"
OpName %x_97 "x_97"
OpName %x_68 "x_68"
OpName %x_66_phi "x_66_phi"
OpName %x_78 "x_78"
OpName %x_86_phi "x_86_phi"
OpName %x_97_phi "x_97_phi"
OpName %x_98_phi "x_98_phi"
OpName %x_87 "x_87"
OpName %x_154 "x_154"
OpName %x_121 "x_121"
OpName %x_119_phi "x_119_phi"
OpName %x_135 "x_135"
OpName %x_143_phi "x_143_phi"
OpName %x_154_phi "x_154_phi"
OpName %x_155_phi "x_155_phi"
OpName %x_144 "x_144"
OpName %x_119 "x_119"
OpName %main_out "main_out"
OpMemberName %main_out 0 "x_GLF_color_1"
OpName %main_inner "main_inner"
OpName %gl_FragCoord_param "gl_FragCoord_param"
OpName %main "main"
OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
OpDecorate %x_GLF_color_1_1 Location 0
OpDecorate %buf0 Block
OpMemberDecorate %buf0 0 Offset 0
OpDecorate %x_6 NonWritable
OpDecorate %x_6 DescriptorSet 0
OpDecorate %x_6 Binding 0
OpMemberDecorate %main_out 0 Offset 0
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Input_v4float = OpTypePointer Input %v4float
%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
%_ptr_Output_v4float = OpTypePointer Output %v4float
%7 = OpConstantNull %v4float
%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
%_ptr_Private_v4float = OpTypePointer Private %v4float
%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
%v2float = OpTypeVector %float 2
%buf0 = OpTypeStruct %v2float
%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
%x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
%void = OpTypeVoid
%15 = OpTypeFunction %void
%bool = OpTypeBool
%_ptr_Function_bool = OpTypePointer Function %bool
%26 = OpConstantNull %bool
%int = OpTypeInt 32 1
%_ptr_Function_int = OpTypePointer Function %int
%30 = OpConstantNull %int
%uint = OpTypeInt 32 0
%uint_0 = OpConstant %uint 0
%_ptr_Uniform_float = OpTypePointer Uniform %float
%float_n1 = OpConstant %float -1
%false = OpConstantFalse %bool
%int_0 = OpConstant %int 0
%uint_1 = OpConstant %uint 1
%_ptr_Private_float = OpTypePointer Private %float
%int_10 = OpConstant %int 10
%int_100 = OpConstant %int 100
%int_2 = OpConstant %int 2
%float_0 = OpConstant %float 0
%int_1 = OpConstant %int 1
%int_3 = OpConstant %int 3
%true = OpConstantTrue %bool
%float_1 = OpConstant %float 1
%int_4 = OpConstant %int 4
%277 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
%278 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
%main_out = OpTypeStruct %v4float
%279 = OpTypeFunction %main_out %v4float
%main_1 = OpFunction %void None %15
%18 = OpLabel
%x_45 = OpVariable %_ptr_Function_bool Function %26
%x_48 = OpVariable %_ptr_Function_int Function %30
%x_49 = OpVariable %_ptr_Function_int Function %30
%x_46 = OpVariable %_ptr_Function_bool Function %26
%x_115 = OpVariable %_ptr_Function_int Function %30
%x_116 = OpVariable %_ptr_Function_int Function %30
%x_45_phi = OpVariable %_ptr_Function_bool Function %26
%x_48_phi = OpVariable %_ptr_Function_int Function %30
%x_50_phi = OpVariable %_ptr_Function_int Function %30
%x_52_phi = OpVariable %_ptr_Function_int Function %30
%x_111_phi = OpVariable %_ptr_Function_int Function %30
%x_112_phi = OpVariable %_ptr_Function_bool Function %26
%x_115_phi = OpVariable %_ptr_Function_int Function %30
%x_118_phi = OpVariable %_ptr_Function_int Function %30
%x_120_phi = OpVariable %_ptr_Function_int Function %30
%x_161_phi = OpVariable %_ptr_Function_int Function %30
%x_62 = OpVariable %_ptr_Function_int Function %30
%x_65 = OpVariable %_ptr_Function_int Function %30
%x_66 = OpVariable %_ptr_Function_int Function %30
%x_63 = OpVariable %_ptr_Function_int Function %30
%x_53 = OpVariable %_ptr_Function_int Function %30
%x_62_phi = OpVariable %_ptr_Function_int Function %30
%x_65_phi = OpVariable %_ptr_Function_int Function %30
%x_67_phi = OpVariable %_ptr_Function_int Function %30
%x_51_phi = OpVariable %_ptr_Function_int Function %30
%x_49_phi = OpVariable %_ptr_Function_int Function %30
%x_46_phi = OpVariable %_ptr_Function_bool Function %26
%x_97 = OpVariable %_ptr_Function_int Function %30
%x_68 = OpVariable %_ptr_Function_int Function %30
%x_66_phi = OpVariable %_ptr_Function_int Function %30
%x_78 = OpVariable %_ptr_Function_bool Function %26
%x_86_phi = OpVariable %_ptr_Function_int Function %30
%x_97_phi = OpVariable %_ptr_Function_int Function %30
%x_98_phi = OpVariable %_ptr_Function_bool Function %26
%x_87 = OpVariable %_ptr_Function_int Function %30
%x_154 = OpVariable %_ptr_Function_int Function %30
%x_121 = OpVariable %_ptr_Function_int Function %30
%x_119_phi = OpVariable %_ptr_Function_int Function %30
%x_135 = OpVariable %_ptr_Function_bool Function %26
%x_143_phi = OpVariable %_ptr_Function_int Function %30
%x_154_phi = OpVariable %_ptr_Function_int Function %30
%x_155_phi = OpVariable %_ptr_Function_bool Function %26
%x_144 = OpVariable %_ptr_Function_int Function %30
%x_119 = OpVariable %_ptr_Function_int Function %30
OpBranch %19
%19 = OpLabel
OpLoopMerge %20 %21 None
OpBranch %22
%22 = OpLabel
%48 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_0
%49 = OpLoad %float %48
%51 = OpFOrdLessThan %bool %49 %float_n1
OpStore %x_45_phi %false
OpStore %x_48_phi %int_0
OpStore %x_50_phi %int_0
OpStore %x_52_phi %int_0
OpBranch %54
%54 = OpLabel
OpLoopMerge %55 %56 None
OpBranch %57
%57 = OpLabel
%69 = OpLoad %bool %x_45_phi
OpStore %x_45 %69
%70 = OpLoad %int %x_48_phi
OpStore %x_48 %70
%71 = OpLoad %int %x_50_phi
%72 = OpLoad %int %x_52_phi
%75 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%76 = OpLoad %float %75
%77 = OpLoad %int %x_48
OpStore %x_111_phi %77
%78 = OpLoad %bool %x_45
OpStore %x_112_phi %78
%80 = OpFOrdGreaterThan %bool %76 %float_n1
%79 = OpSelect %int %80 %int_10 %int_100
%83 = OpSLessThan %bool %72 %79
OpSelectionMerge %84 None
OpBranchConditional %83 %85 %86
%85 = OpLabel
OpBranch %84
%86 = OpLabel
OpBranch %55
%84 = OpLabel
%87 = OpLoad %int %x_48
OpStore %x_62_phi %87
OpStore %x_65_phi %71
OpStore %x_67_phi %int_0
OpBranch %88
%88 = OpLabel
OpLoopMerge %89 %90 None
OpBranch %91
%91 = OpLabel
%95 = OpLoad %int %x_62_phi
OpStore %x_62 %95
%96 = OpLoad %int %x_65_phi
OpStore %x_65 %96
%97 = OpLoad %int %x_67_phi
%98 = OpLoad %int %x_65
OpStore %x_51_phi %98
%99 = OpLoad %int %x_62
OpStore %x_49_phi %99
%100 = OpLoad %bool %x_45
OpStore %x_46_phi %100
%102 = OpSLessThan %bool %97 %int_2
OpSelectionMerge %103 None
OpBranchConditional %102 %104 %105
%104 = OpLabel
OpBranch %103
%105 = OpLabel
OpBranch %89
%103 = OpLabel
OpBranch %106
%106 = OpLabel
OpLoopMerge %107 %108 None
OpBranch %109
%109 = OpLabel
%114 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
%115 = OpLoad %float %114
%116 = OpFOrdLessThan %bool %115 %float_n1
OpStore %x_78 %116
%119 = OpFOrdLessThan %bool %49 %float_0
%117 = OpLogicalNot %bool %119
OpSelectionMerge %120 None
OpBranchConditional %117 %121 %120
%121 = OpLabel
%122 = OpLoad %bool %x_78
OpSelectionMerge %123 None
OpBranchConditional %122 %124 %123
%124 = OpLabel
OpStore %x_66_phi %int_0
OpBranch %107
%123 = OpLabel
OpStore %x_86_phi %int_1
OpBranch %126
%126 = OpLabel
OpLoopMerge %127 %128 None
OpBranch %129
%129 = OpLabel
%131 = OpLoad %int %x_86_phi
%132 = OpLoad %int %x_65
OpStore %x_97_phi %132
OpStore %x_98_phi %false
%134 = OpSLessThan %bool %131 %int_3
OpSelectionMerge %135 None
OpBranchConditional %134 %136 %137
%136 = OpLabel
OpBranch %135
%137 = OpLabel
OpBranch %127
%135 = OpLabel
%138 = OpLoad %bool %x_78
OpSelectionMerge %139 None
OpBranchConditional %138 %140 %139
%140 = OpLabel
OpBranch %128
%139 = OpLabel
%141 = OpSGreaterThan %bool %131 %int_0
OpSelectionMerge %142 None
OpBranchConditional %141 %143 %142
%143 = OpLabel
OpStore %x_97_phi %int_1
OpStore %x_98_phi %true
OpBranch %127
%142 = OpLabel
OpBranch %128
%128 = OpLabel
%145 = OpIAdd %int %131 %int_1
OpStore %x_87 %145
%146 = OpLoad %int %x_87
OpStore %x_86_phi %146
OpBranch %126
%127 = OpLabel
%147 = OpLoad %int %x_97_phi
OpStore %x_97 %147
%148 = OpLoad %bool %x_98_phi
%149 = OpLoad %int %x_97
OpStore %x_66_phi %149
OpSelectionMerge %150 None
OpBranchConditional %148 %151 %150
%151 = OpLabel
OpBranch %107
%150 = OpLabel
OpBranch %120
%120 = OpLabel
OpStore %x_66_phi %int_0
OpBranch %107
%108 = OpLabel
OpBranch %106
%107 = OpLabel
%152 = OpLoad %int %x_66_phi
OpStore %x_66 %152
%154 = OpLoad %int %x_62
%155 = OpLoad %int %x_66
%156 = OpIAdd %int %154 %155
%153 = OpCopyObject %int %156
OpStore %x_63 %153
OpSelectionMerge %157 None
OpBranchConditional %51 %158 %157
%158 = OpLabel
OpBranch %159
%159 = OpLabel
OpLoopMerge %160 %161 None
OpBranch %162
%162 = OpLabel
OpSelectionMerge %163 None
OpBranchConditional %51 %164 %165
%164 = OpLabel
OpBranch %163
%165 = OpLabel
OpBranch %160
%163 = OpLabel
OpBranch %161
%161 = OpLabel
%166 = OpConvertSToF %float %72
%167 = OpCompositeConstruct %v4float %166 %166 %166 %166
OpStore %x_GLF_color %167
OpBranch %159
%160 = OpLabel
%168 = OpLoad %int %x_66
OpStore %x_51_phi %168
%169 = OpLoad %int %x_63
OpStore %x_49_phi %169
OpStore %x_46_phi %true
OpBranch %89
%157 = OpLabel
OpBranch %90
%90 = OpLabel
%170 = OpIAdd %int %97 %int_1
OpStore %x_68 %170
%171 = OpLoad %int %x_63
OpStore %x_62_phi %171
%172 = OpLoad %int %x_66
OpStore %x_65_phi %172
%173 = OpLoad %int %x_68
OpStore %x_67_phi %173
OpBranch %88
%89 = OpLabel
%174 = OpLoad %int %x_51_phi
%175 = OpLoad %int %x_49_phi
OpStore %x_49 %175
%176 = OpLoad %bool %x_46_phi
OpStore %x_46 %176
%177 = OpLoad %int %x_49
OpStore %x_111_phi %177
%178 = OpLoad %bool %x_46
OpStore %x_112_phi %178
%179 = OpLoad %bool %x_46
OpSelectionMerge %180 None
OpBranchConditional %179 %181 %180
%181 = OpLabel
OpBranch %55
%180 = OpLabel
%182 = OpLogicalNot %bool %51
OpSelectionMerge %183 None
OpBranchConditional %182 %184 %183
%184 = OpLabel
%185 = OpLoad %int %x_49
OpStore %x_111_phi %185
%186 = OpLoad %bool %x_46
OpStore %x_112_phi %186
OpBranch %55
%183 = OpLabel
OpBranch %56
%56 = OpLabel
%187 = OpIAdd %int %72 %int_1
OpStore %x_53 %187
%188 = OpLoad %bool %x_46
OpStore %x_45_phi %188
%189 = OpLoad %int %x_49
OpStore %x_48_phi %189
OpStore %x_50_phi %174
%190 = OpLoad %int %x_53
OpStore %x_52_phi %190
OpBranch %54
%55 = OpLabel
%191 = OpLoad %int %x_111_phi
%192 = OpLoad %bool %x_112_phi
OpSelectionMerge %193 None
OpBranchConditional %192 %194 %193
%194 = OpLabel
OpBranch %20
%193 = OpLabel
OpStore %x_115_phi %191
OpStore %x_118_phi %int_0
OpStore %x_120_phi %int_0
OpBranch %195
%195 = OpLabel
OpLoopMerge %196 %197 None
OpBranch %198
%198 = OpLabel
%202 = OpLoad %int %x_115_phi
OpStore %x_115 %202
%203 = OpLoad %int %x_118_phi
%204 = OpLoad %int %x_120_phi
%205 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_1
%206 = OpLoad %float %205
%207 = OpLoad %int %x_115
OpStore %x_161_phi %207
%210 = OpFAdd %float %206 %float_1
%208 = OpConvertFToS %int %210
%211 = OpSLessThan %bool %204 %208
OpSelectionMerge %212 None
OpBranchConditional %211 %213 %214
%213 = OpLabel
OpBranch %212
%214 = OpLabel
OpBranch %196
%212 = OpLabel
OpBranch %215
%215 = OpLabel
OpLoopMerge %216 %217 None
OpBranch %218
%218 = OpLabel
%223 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0
%224 = OpLoad %float %223
%225 = OpFOrdLessThan %bool %224 %float_n1
OpStore %x_135 %225
%227 = OpFOrdLessThan %bool %49 %float_0
%226 = OpLogicalNot %bool %227
OpSelectionMerge %228 None
OpBranchConditional %226 %229 %228
%229 = OpLabel
%230 = OpLoad %bool %x_135
OpSelectionMerge %231 None
OpBranchConditional %230 %232 %231
%232 = OpLabel
OpStore %x_119_phi %int_0
OpBranch %216
%231 = OpLabel
OpStore %x_143_phi %int_1
OpBranch %233
%233 = OpLabel
OpLoopMerge %234 %235 None
OpBranch %236
%236 = OpLabel
%238 = OpLoad %int %x_143_phi
OpStore %x_154_phi %203
OpStore %x_155_phi %false
%239 = OpSLessThan %bool %238 %int_3
OpSelectionMerge %240 None
OpBranchConditional %239 %241 %242
%241 = OpLabel
OpBranch %240
%242 = OpLabel
OpBranch %234
%240 = OpLabel
%243 = OpLoad %bool %x_135
OpSelectionMerge %244 None
OpBranchConditional %243 %245 %244
%245 = OpLabel
OpBranch %235
%244 = OpLabel
%246 = OpSGreaterThan %bool %238 %int_0
OpSelectionMerge %247 None
OpBranchConditional %246 %248 %247
%248 = OpLabel
OpStore %x_154_phi %int_1
OpStore %x_155_phi %true
OpBranch %234
%247 = OpLabel
OpBranch %235
%235 = OpLabel
%249 = OpIAdd %int %238 %int_1
OpStore %x_144 %249
%250 = OpLoad %int %x_144
OpStore %x_143_phi %250
OpBranch %233
%234 = OpLabel
%251 = OpLoad %int %x_154_phi
OpStore %x_154 %251
%252 = OpLoad %bool %x_155_phi
%253 = OpLoad %int %x_154
OpStore %x_119_phi %253
OpSelectionMerge %254 None
OpBranchConditional %252 %255 %254
%255 = OpLabel
OpBranch %216
%254 = OpLabel
OpBranch %228
%228 = OpLabel
OpStore %x_119_phi %int_0
OpBranch %216
%217 = OpLabel
OpBranch %215
%216 = OpLabel
%257 = OpLoad %int %x_119_phi
OpStore %x_119 %257
%259 = OpLoad %int %x_115
%260 = OpLoad %int %x_119
%261 = OpIAdd %int %259 %260
%258 = OpCopyObject %int %261
OpStore %x_116 %258
%263 = OpLogicalNot %bool %51
%262 = OpSelect %bool %263 %false %51
OpSelectionMerge %264 None
OpBranchConditional %262 %265 %264
%265 = OpLabel
%266 = OpLoad %int %x_116
OpStore %x_161_phi %266
OpBranch %196
%264 = OpLabel
OpBranch %197
%197 = OpLabel
%267 = OpIAdd %int %204 %int_1
OpStore %x_121 %267
%268 = OpLoad %int %x_116
OpStore %x_115_phi %268
%269 = OpLoad %int %x_119
OpStore %x_118_phi %269
%270 = OpLoad %int %x_121
OpStore %x_120_phi %270
OpBranch %195
%196 = OpLabel
%271 = OpLoad %int %x_161_phi
%273 = OpIEqual %bool %271 %int_4
OpSelectionMerge %274 None
OpBranchConditional %273 %275 %276
%275 = OpLabel
OpStore %x_GLF_color %277
OpBranch %274
%276 = OpLabel
OpStore %x_GLF_color %278
OpBranch %274
%274 = OpLabel
OpBranch %20
%21 = OpLabel
OpBranch %19
%20 = OpLabel
OpReturn
OpFunctionEnd
%main_inner = OpFunction %main_out None %279
%gl_FragCoord_param = OpFunctionParameter %v4float
%283 = OpLabel
OpStore %gl_FragCoord %gl_FragCoord_param
%284 = OpFunctionCall %void %main_1
%285 = OpLoad %v4float %x_GLF_color
%286 = OpCompositeConstruct %main_out %285
OpReturnValue %286
OpFunctionEnd
%main = OpFunction %void None %15
%288 = OpLabel
%290 = OpLoad %v4float %gl_FragCoord_param_1
%289 = OpFunctionCall %main_out %main_inner %290
%291 = OpCompositeExtract %v4float %289 0
OpStore %x_GLF_color_1_1 %291
OpReturn
OpFunctionEnd