blob: 3539b1a70f237515bc28de0c59f0aba93d4ceefa [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 "unknownInput"
OpName %_entrypoint_v "_entrypoint_v"
OpName %inside_while_loop_b "inside_while_loop_b"
OpName %inside_infinite_do_loop_b "inside_infinite_do_loop_b"
OpName %inside_infinite_while_loop_b "inside_infinite_while_loop_b"
OpName %after_do_loop_b "after_do_loop_b"
OpName %after_while_loop_b "after_while_loop_b"
OpName %switch_with_all_returns_b "switch_with_all_returns_b"
OpName %switch_fallthrough_b "switch_fallthrough_b"
OpName %switch_fallthrough_twice_b "switch_fallthrough_twice_b"
OpName %switch_with_break_in_loop_b "switch_with_break_in_loop_b"
OpName %x "x"
OpName %switch_with_continue_in_loop_b "switch_with_continue_in_loop_b"
OpName %x_0 "x"
OpName %switch_with_if_that_returns_b "switch_with_if_that_returns_b"
OpName %switch_with_one_sided_if_then_fallthrough_b "switch_with_one_sided_if_then_fallthrough_b"
OpName %main "main"
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 %19 Binding 0
OpDecorate %19 DescriptorSet 0
OpDecorate %44 RelaxedPrecision
OpDecorate %75 RelaxedPrecision
OpDecorate %83 RelaxedPrecision
OpDecorate %91 RelaxedPrecision
OpDecorate %99 RelaxedPrecision
OpDecorate %120 RelaxedPrecision
OpDecorate %137 RelaxedPrecision
OpDecorate %143 RelaxedPrecision
OpDecorate %150 RelaxedPrecision
OpDecorate %156 RelaxedPrecision
OpDecorate %215 RelaxedPrecision
OpDecorate %217 RelaxedPrecision
OpDecorate %218 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 %float
%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
%19 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
%void = OpTypeVoid
%24 = OpTypeFunction %void
%float_0 = OpConstant %float 0
%v2float = OpTypeVector %float 2
%28 = OpConstantComposite %v2float %float_0 %float_0
%_ptr_Function_v2float = OpTypePointer Function %v2float
%bool = OpTypeBool
%33 = OpTypeFunction %bool
%_ptr_Uniform_float = OpTypePointer Uniform %float
%int = OpTypeInt 32 1
%int_2 = OpConstant %int 2
%float_123 = OpConstant %float 123
%false = OpConstantFalse %bool
%true = OpConstantTrue %bool
%_ptr_Function_int = OpTypePointer Function %int
%int_0 = OpConstant %int 0
%int_10 = OpConstant %int 10
%int_1 = OpConstant %int 1
%160 = OpTypeFunction %v4float %_ptr_Function_v2float
%_ptr_Function_v4float = OpTypePointer Function %v4float
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
%_entrypoint_v = OpFunction %void None %24
%25 = OpLabel
%29 = OpVariable %_ptr_Function_v2float Function
OpStore %29 %28
%31 = OpFunctionCall %v4float %main %29
OpStore %sk_FragColor %31
OpReturn
OpFunctionEnd
%inside_while_loop_b = OpFunction %bool None %33
%34 = OpLabel
OpBranch %35
%35 = OpLabel
OpLoopMerge %39 %38 None
OpBranch %36
%36 = OpLabel
%40 = OpAccessChain %_ptr_Uniform_float %19 %int_2
%44 = OpLoad %float %40
%46 = OpFOrdEqual %bool %44 %float_123
OpBranchConditional %46 %37 %39
%37 = OpLabel
OpReturnValue %false
%38 = OpLabel
OpBranch %35
%39 = OpLabel
OpReturnValue %true
OpFunctionEnd
%inside_infinite_do_loop_b = OpFunction %bool None %33
%49 = OpLabel
OpBranch %50
%50 = OpLabel
OpLoopMerge %54 %53 None
OpBranch %51
%51 = OpLabel
OpReturnValue %true
%53 = OpLabel
OpBranchConditional %true %50 %54
%54 = OpLabel
OpUnreachable
OpFunctionEnd
%inside_infinite_while_loop_b = OpFunction %bool None %33
%55 = OpLabel
OpBranch %56
%56 = OpLabel
OpLoopMerge %60 %59 None
OpBranch %57
%57 = OpLabel
OpBranchConditional %true %58 %60
%58 = OpLabel
OpReturnValue %true
%59 = OpLabel
OpBranch %56
%60 = OpLabel
OpUnreachable
OpFunctionEnd
%after_do_loop_b = OpFunction %bool None %33
%61 = OpLabel
OpBranch %62
%62 = OpLabel
OpLoopMerge %66 %65 None
OpBranch %63
%63 = OpLabel
OpBranch %66
%65 = OpLabel
OpBranchConditional %true %62 %66
%66 = OpLabel
OpReturnValue %true
OpFunctionEnd
%after_while_loop_b = OpFunction %bool None %33
%67 = OpLabel
OpBranch %68
%68 = OpLabel
OpLoopMerge %72 %71 None
OpBranch %69
%69 = OpLabel
OpBranchConditional %true %70 %72
%70 = OpLabel
OpBranch %72
%71 = OpLabel
OpBranch %68
%72 = OpLabel
OpReturnValue %true
OpFunctionEnd
%switch_with_all_returns_b = OpFunction %bool None %33
%73 = OpLabel
%74 = OpAccessChain %_ptr_Uniform_float %19 %int_2
%75 = OpLoad %float %74
%76 = OpConvertFToS %int %75
OpSelectionMerge %77 None
OpSwitch %76 %80 1 %78 2 %79
%78 = OpLabel
OpReturnValue %true
%79 = OpLabel
OpReturnValue %false
%80 = OpLabel
OpReturnValue %false
%77 = OpLabel
OpUnreachable
OpFunctionEnd
%switch_fallthrough_b = OpFunction %bool None %33
%81 = OpLabel
%82 = OpAccessChain %_ptr_Uniform_float %19 %int_2
%83 = OpLoad %float %82
%84 = OpConvertFToS %int %83
OpSelectionMerge %85 None
OpSwitch %84 %88 1 %86 2 %88
%86 = OpLabel
OpReturnValue %true
%88 = OpLabel
OpReturnValue %false
%85 = OpLabel
OpUnreachable
OpFunctionEnd
%switch_fallthrough_twice_b = OpFunction %bool None %33
%89 = OpLabel
%90 = OpAccessChain %_ptr_Uniform_float %19 %int_2
%91 = OpLoad %float %90
%92 = OpConvertFToS %int %91
OpSelectionMerge %93 None
OpSwitch %92 %96 1 %96 2 %96
%96 = OpLabel
OpReturnValue %true
%93 = OpLabel
OpUnreachable
OpFunctionEnd
%switch_with_break_in_loop_b = OpFunction %bool None %33
%97 = OpLabel
%x = OpVariable %_ptr_Function_int Function
%98 = OpAccessChain %_ptr_Uniform_float %19 %int_2
%99 = OpLoad %float %98
%100 = OpConvertFToS %int %99
OpSelectionMerge %101 None
OpSwitch %100 %103 1 %102
%102 = OpLabel
OpStore %x %int_0
OpBranch %107
%107 = OpLabel
OpLoopMerge %111 %110 None
OpBranch %108
%108 = OpLabel
%112 = OpLoad %int %x
%114 = OpSLessThanEqual %bool %112 %int_10
OpBranchConditional %114 %109 %111
%109 = OpLabel
OpBranch %111
%110 = OpLabel
%116 = OpLoad %int %x
%117 = OpIAdd %int %116 %int_1
OpStore %x %117
OpBranch %107
%111 = OpLabel
OpBranch %103
%103 = OpLabel
OpReturnValue %true
%101 = OpLabel
OpUnreachable
OpFunctionEnd
%switch_with_continue_in_loop_b = OpFunction %bool None %33
%118 = OpLabel
%x_0 = OpVariable %_ptr_Function_int Function
%119 = OpAccessChain %_ptr_Uniform_float %19 %int_2
%120 = OpLoad %float %119
%121 = OpConvertFToS %int %120
OpSelectionMerge %122 None
OpSwitch %121 %124 1 %123
%123 = OpLabel
OpStore %x_0 %int_0
OpBranch %126
%126 = OpLabel
OpLoopMerge %130 %129 None
OpBranch %127
%127 = OpLabel
%131 = OpLoad %int %x_0
%132 = OpSLessThanEqual %bool %131 %int_10
OpBranchConditional %132 %128 %130
%128 = OpLabel
OpBranch %129
%129 = OpLabel
%133 = OpLoad %int %x_0
%134 = OpIAdd %int %133 %int_1
OpStore %x_0 %134
OpBranch %126
%130 = OpLabel
OpBranch %124
%124 = OpLabel
OpReturnValue %true
%122 = OpLabel
OpUnreachable
OpFunctionEnd
%switch_with_if_that_returns_b = OpFunction %bool None %33
%135 = OpLabel
%136 = OpAccessChain %_ptr_Uniform_float %19 %int_2
%137 = OpLoad %float %136
%138 = OpConvertFToS %int %137
OpSelectionMerge %139 None
OpSwitch %138 %141 1 %140
%140 = OpLabel
%142 = OpAccessChain %_ptr_Uniform_float %19 %int_2
%143 = OpLoad %float %142
%144 = OpFOrdEqual %bool %143 %float_123
OpSelectionMerge %147 None
OpBranchConditional %144 %145 %146
%145 = OpLabel
OpReturnValue %false
%146 = OpLabel
OpReturnValue %true
%147 = OpLabel
OpBranch %141
%141 = OpLabel
OpReturnValue %true
%139 = OpLabel
OpUnreachable
OpFunctionEnd
%switch_with_one_sided_if_then_fallthrough_b = OpFunction %bool None %33
%148 = OpLabel
%149 = OpAccessChain %_ptr_Uniform_float %19 %int_2
%150 = OpLoad %float %149
%151 = OpConvertFToS %int %150
OpSelectionMerge %152 None
OpSwitch %151 %154 1 %153
%153 = OpLabel
%155 = OpAccessChain %_ptr_Uniform_float %19 %int_2
%156 = OpLoad %float %155
%157 = OpFOrdEqual %bool %156 %float_123
OpSelectionMerge %159 None
OpBranchConditional %157 %158 %159
%158 = OpLabel
OpReturnValue %false
%159 = OpLabel
OpBranch %154
%154 = OpLabel
OpReturnValue %true
%152 = OpLabel
OpUnreachable
OpFunctionEnd
%main = OpFunction %v4float None %160
%161 = OpFunctionParameter %_ptr_Function_v2float
%162 = OpLabel
%208 = OpVariable %_ptr_Function_v4float Function
%163 = OpFunctionCall %bool %inside_while_loop_b
OpSelectionMerge %165 None
OpBranchConditional %163 %164 %165
%164 = OpLabel
%166 = OpFunctionCall %bool %inside_infinite_do_loop_b
OpBranch %165
%165 = OpLabel
%167 = OpPhi %bool %false %162 %166 %164
OpSelectionMerge %169 None
OpBranchConditional %167 %168 %169
%168 = OpLabel
%170 = OpFunctionCall %bool %inside_infinite_while_loop_b
OpBranch %169
%169 = OpLabel
%171 = OpPhi %bool %false %165 %170 %168
OpSelectionMerge %173 None
OpBranchConditional %171 %172 %173
%172 = OpLabel
%174 = OpFunctionCall %bool %after_do_loop_b
OpBranch %173
%173 = OpLabel
%175 = OpPhi %bool %false %169 %174 %172
OpSelectionMerge %177 None
OpBranchConditional %175 %176 %177
%176 = OpLabel
%178 = OpFunctionCall %bool %after_while_loop_b
OpBranch %177
%177 = OpLabel
%179 = OpPhi %bool %false %173 %178 %176
OpSelectionMerge %181 None
OpBranchConditional %179 %180 %181
%180 = OpLabel
%182 = OpFunctionCall %bool %switch_with_all_returns_b
OpBranch %181
%181 = OpLabel
%183 = OpPhi %bool %false %177 %182 %180
OpSelectionMerge %185 None
OpBranchConditional %183 %184 %185
%184 = OpLabel
%186 = OpFunctionCall %bool %switch_fallthrough_b
OpBranch %185
%185 = OpLabel
%187 = OpPhi %bool %false %181 %186 %184
OpSelectionMerge %189 None
OpBranchConditional %187 %188 %189
%188 = OpLabel
%190 = OpFunctionCall %bool %switch_fallthrough_twice_b
OpBranch %189
%189 = OpLabel
%191 = OpPhi %bool %false %185 %190 %188
OpSelectionMerge %193 None
OpBranchConditional %191 %192 %193
%192 = OpLabel
%194 = OpFunctionCall %bool %switch_with_break_in_loop_b
OpBranch %193
%193 = OpLabel
%195 = OpPhi %bool %false %189 %194 %192
OpSelectionMerge %197 None
OpBranchConditional %195 %196 %197
%196 = OpLabel
%198 = OpFunctionCall %bool %switch_with_continue_in_loop_b
OpBranch %197
%197 = OpLabel
%199 = OpPhi %bool %false %193 %198 %196
OpSelectionMerge %201 None
OpBranchConditional %199 %200 %201
%200 = OpLabel
%202 = OpFunctionCall %bool %switch_with_if_that_returns_b
OpBranch %201
%201 = OpLabel
%203 = OpPhi %bool %false %197 %202 %200
OpSelectionMerge %205 None
OpBranchConditional %203 %204 %205
%204 = OpLabel
%206 = OpFunctionCall %bool %switch_with_one_sided_if_then_fallthrough_b
OpBranch %205
%205 = OpLabel
%207 = OpPhi %bool %false %201 %206 %204
OpSelectionMerge %212 None
OpBranchConditional %207 %210 %211
%210 = OpLabel
%213 = OpAccessChain %_ptr_Uniform_v4float %19 %int_0
%215 = OpLoad %v4float %213
OpStore %208 %215
OpBranch %212
%211 = OpLabel
%216 = OpAccessChain %_ptr_Uniform_v4float %19 %int_1
%217 = OpLoad %v4float %216
OpStore %208 %217
OpBranch %212
%212 = OpLabel
%218 = OpLoad %v4float %208
OpReturnValue %218
OpFunctionEnd