blob: 3e23560814b1351b0509164ee4e488e2b81f4861 [file] [log] [blame]
OpCapability Shader
%5 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor
OpExecutionMode %_entrypoint_v OriginUpperLeft
; Debug Information
OpName %sk_FragColor "sk_FragColor" ; id %30
OpName %_UniformBuffer "_UniformBuffer" ; id %35
OpMemberName %_UniformBuffer 0 "colorGreen"
OpMemberName %_UniformBuffer 1 "colorRed"
OpName %_entrypoint_v "_entrypoint_v" ; id %37
OpName %takes_void_b "takes_void_b" ; id %6
OpName %takes_float_bf "takes_float_bf" ; id %7
OpName %takes_float2_bf2 "takes_float2_bf2" ; id %8
OpName %takes_float3_bf3 "takes_float3_bf3" ; id %9
OpName %takes_float4_bf4 "takes_float4_bf4" ; id %10
OpName %takes_float2x2_bf22 "takes_float2x2_bf22" ; id %11
OpName %takes_float3x3_bf33 "takes_float3x3_bf33" ; id %12
OpName %takes_float4x4_bf44 "takes_float4x4_bf44" ; id %13
OpName %takes_half_bh "takes_half_bh" ; id %14
OpName %takes_half2_bh2 "takes_half2_bh2" ; id %15
OpName %takes_half3_bh3 "takes_half3_bh3" ; id %16
OpName %takes_half4_bh4 "takes_half4_bh4" ; id %17
OpName %takes_half2x2_bh22 "takes_half2x2_bh22" ; id %18
OpName %takes_half3x3_bh33 "takes_half3x3_bh33" ; id %19
OpName %takes_half4x4_bh44 "takes_half4x4_bh44" ; id %20
OpName %takes_bool_bb "takes_bool_bb" ; id %21
OpName %takes_bool2_bb2 "takes_bool2_bb2" ; id %22
OpName %takes_bool3_bb3 "takes_bool3_bb3" ; id %23
OpName %takes_bool4_bb4 "takes_bool4_bb4" ; id %24
OpName %takes_int_bi "takes_int_bi" ; id %25
OpName %takes_int2_bi2 "takes_int2_bi2" ; id %26
OpName %takes_int3_bi3 "takes_int3_bi3" ; id %27
OpName %takes_int4_bi4 "takes_int4_bi4" ; id %28
OpName %main "main" ; id %29
; Annotations
OpDecorate %main RelaxedPrecision
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 %34 Binding 0
OpDecorate %34 DescriptorSet 0
OpDecorate %82 RelaxedPrecision
OpDecorate %84 RelaxedPrecision
OpDecorate %86 RelaxedPrecision
OpDecorate %88 RelaxedPrecision
OpDecorate %90 RelaxedPrecision
OpDecorate %92 RelaxedPrecision
OpDecorate %94 RelaxedPrecision
OpDecorate %288 RelaxedPrecision
OpDecorate %290 RelaxedPrecision
OpDecorate %291 RelaxedPrecision
; Types, variables and constants
%int = OpTypeInt 32 1
%_ptr_Input_int = OpTypePointer Input %int
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%sk_FragColor = OpVariable %_ptr_Output_v4float Output ; RelaxedPrecision, Location 0, Index 0
%_UniformBuffer = OpTypeStruct %v4float %v4float ; Block
%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
%34 = OpVariable %_ptr_Uniform__UniformBuffer Uniform ; Binding 0, DescriptorSet 0
%void = OpTypeVoid
%39 = OpTypeFunction %void
%float_0 = OpConstant %float 0
%v2float = OpTypeVector %float 2
%43 = OpConstantComposite %v2float %float_0 %float_0
%_ptr_Function_v2float = OpTypePointer Function %v2float
%bool = OpTypeBool
%48 = OpTypeFunction %bool
%true = OpConstantTrue %bool
%_ptr_Function_float = OpTypePointer Function %float
%52 = OpTypeFunction %bool %_ptr_Function_float
%55 = OpTypeFunction %bool %_ptr_Function_v2float
%v3float = OpTypeVector %float 3
%_ptr_Function_v3float = OpTypePointer Function %v3float
%60 = OpTypeFunction %bool %_ptr_Function_v3float
%_ptr_Function_v4float = OpTypePointer Function %v4float
%64 = OpTypeFunction %bool %_ptr_Function_v4float
%mat2v2float = OpTypeMatrix %v2float 2
%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float
%69 = OpTypeFunction %bool %_ptr_Function_mat2v2float
%mat3v3float = OpTypeMatrix %v3float 3
%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float
%74 = OpTypeFunction %bool %_ptr_Function_mat3v3float
%mat4v4float = OpTypeMatrix %v4float 4
%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float
%79 = OpTypeFunction %bool %_ptr_Function_mat4v4float
%_ptr_Function_bool = OpTypePointer Function %bool
%97 = OpTypeFunction %bool %_ptr_Function_bool
%v2bool = OpTypeVector %bool 2
%_ptr_Function_v2bool = OpTypePointer Function %v2bool
%102 = OpTypeFunction %bool %_ptr_Function_v2bool
%v3bool = OpTypeVector %bool 3
%_ptr_Function_v3bool = OpTypePointer Function %v3bool
%107 = OpTypeFunction %bool %_ptr_Function_v3bool
%v4bool = OpTypeVector %bool 4
%_ptr_Function_v4bool = OpTypePointer Function %v4bool
%112 = OpTypeFunction %bool %_ptr_Function_v4bool
%_ptr_Function_int = OpTypePointer Function %int
%116 = OpTypeFunction %bool %_ptr_Function_int
%v2int = OpTypeVector %int 2
%_ptr_Function_v2int = OpTypePointer Function %v2int
%121 = OpTypeFunction %bool %_ptr_Function_v2int
%v3int = OpTypeVector %int 3
%_ptr_Function_v3int = OpTypePointer Function %v3int
%126 = OpTypeFunction %bool %_ptr_Function_v3int
%v4int = OpTypeVector %int 4
%_ptr_Function_v4int = OpTypePointer Function %v4int
%131 = OpTypeFunction %bool %_ptr_Function_v4int
%134 = OpTypeFunction %v4float %_ptr_Function_v2float
%false = OpConstantFalse %bool
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%151 = OpConstantComposite %v2float %float_2 %float_2
%float_3 = OpConstant %float 3
%158 = OpConstantComposite %v3float %float_3 %float_3 %float_3
%float_4 = OpConstant %float 4
%165 = OpConstantComposite %v4float %float_4 %float_4 %float_4 %float_4
%171 = OpConstantComposite %v2float %float_2 %float_0
%172 = OpConstantComposite %v2float %float_0 %float_2
%173 = OpConstantComposite %mat2v2float %171 %172
%179 = OpConstantComposite %v3float %float_3 %float_0 %float_0
%180 = OpConstantComposite %v3float %float_0 %float_3 %float_0
%181 = OpConstantComposite %v3float %float_0 %float_0 %float_3
%182 = OpConstantComposite %mat3v3float %179 %180 %181
%188 = OpConstantComposite %v4float %float_4 %float_0 %float_0 %float_0
%189 = OpConstantComposite %v4float %float_0 %float_4 %float_0 %float_0
%190 = OpConstantComposite %v4float %float_0 %float_0 %float_4 %float_0
%191 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_4
%192 = OpConstantComposite %mat4v4float %188 %189 %190 %191
%238 = OpConstantComposite %v2bool %true %true
%244 = OpConstantComposite %v3bool %true %true %true
%250 = OpConstantComposite %v4bool %true %true %true %true
%int_1 = OpConstant %int 1
%int_2 = OpConstant %int 2
%263 = OpConstantComposite %v2int %int_2 %int_2
%int_3 = OpConstant %int 3
%270 = OpConstantComposite %v3int %int_3 %int_3 %int_3
%int_4 = OpConstant %int 4
%277 = OpConstantComposite %v4int %int_4 %int_4 %int_4 %int_4
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
%int_0 = OpConstant %int 0
; Function _entrypoint_v
%_entrypoint_v = OpFunction %void None %39
%40 = OpLabel
%44 = OpVariable %_ptr_Function_v2float Function
OpStore %44 %43
%46 = OpFunctionCall %v4float %main %44
OpStore %sk_FragColor %46
OpReturn
OpFunctionEnd
; Function takes_void_b
%takes_void_b = OpFunction %bool None %48
%49 = OpLabel
OpReturnValue %true
OpFunctionEnd
; Function takes_float_bf
%takes_float_bf = OpFunction %bool None %52
%53 = OpFunctionParameter %_ptr_Function_float
%54 = OpLabel
OpReturnValue %true
OpFunctionEnd
; Function takes_float2_bf2
%takes_float2_bf2 = OpFunction %bool None %55
%56 = OpFunctionParameter %_ptr_Function_v2float
%57 = OpLabel
OpReturnValue %true
OpFunctionEnd
; Function takes_float3_bf3
%takes_float3_bf3 = OpFunction %bool None %60
%61 = OpFunctionParameter %_ptr_Function_v3float
%62 = OpLabel
OpReturnValue %true
OpFunctionEnd
; Function takes_float4_bf4
%takes_float4_bf4 = OpFunction %bool None %64
%65 = OpFunctionParameter %_ptr_Function_v4float
%66 = OpLabel
OpReturnValue %true
OpFunctionEnd
; Function takes_float2x2_bf22
%takes_float2x2_bf22 = OpFunction %bool None %69
%70 = OpFunctionParameter %_ptr_Function_mat2v2float
%71 = OpLabel
OpReturnValue %true
OpFunctionEnd
; Function takes_float3x3_bf33
%takes_float3x3_bf33 = OpFunction %bool None %74
%75 = OpFunctionParameter %_ptr_Function_mat3v3float
%76 = OpLabel
OpReturnValue %true
OpFunctionEnd
; Function takes_float4x4_bf44
%takes_float4x4_bf44 = OpFunction %bool None %79
%80 = OpFunctionParameter %_ptr_Function_mat4v4float
%81 = OpLabel
OpReturnValue %true
OpFunctionEnd
; Function takes_half_bh
%takes_half_bh = OpFunction %bool None %52
%82 = OpFunctionParameter %_ptr_Function_float ; RelaxedPrecision
%83 = OpLabel
OpReturnValue %true
OpFunctionEnd
; Function takes_half2_bh2
%takes_half2_bh2 = OpFunction %bool None %55
%84 = OpFunctionParameter %_ptr_Function_v2float ; RelaxedPrecision
%85 = OpLabel
OpReturnValue %true
OpFunctionEnd
; Function takes_half3_bh3
%takes_half3_bh3 = OpFunction %bool None %60
%86 = OpFunctionParameter %_ptr_Function_v3float ; RelaxedPrecision
%87 = OpLabel
OpReturnValue %true
OpFunctionEnd
; Function takes_half4_bh4
%takes_half4_bh4 = OpFunction %bool None %64
%88 = OpFunctionParameter %_ptr_Function_v4float ; RelaxedPrecision
%89 = OpLabel
OpReturnValue %true
OpFunctionEnd
; Function takes_half2x2_bh22
%takes_half2x2_bh22 = OpFunction %bool None %69
%90 = OpFunctionParameter %_ptr_Function_mat2v2float ; RelaxedPrecision
%91 = OpLabel
OpReturnValue %true
OpFunctionEnd
; Function takes_half3x3_bh33
%takes_half3x3_bh33 = OpFunction %bool None %74
%92 = OpFunctionParameter %_ptr_Function_mat3v3float ; RelaxedPrecision
%93 = OpLabel
OpReturnValue %true
OpFunctionEnd
; Function takes_half4x4_bh44
%takes_half4x4_bh44 = OpFunction %bool None %79
%94 = OpFunctionParameter %_ptr_Function_mat4v4float ; RelaxedPrecision
%95 = OpLabel
OpReturnValue %true
OpFunctionEnd
; Function takes_bool_bb
%takes_bool_bb = OpFunction %bool None %97
%98 = OpFunctionParameter %_ptr_Function_bool
%99 = OpLabel
OpReturnValue %true
OpFunctionEnd
; Function takes_bool2_bb2
%takes_bool2_bb2 = OpFunction %bool None %102
%103 = OpFunctionParameter %_ptr_Function_v2bool
%104 = OpLabel
OpReturnValue %true
OpFunctionEnd
; Function takes_bool3_bb3
%takes_bool3_bb3 = OpFunction %bool None %107
%108 = OpFunctionParameter %_ptr_Function_v3bool
%109 = OpLabel
OpReturnValue %true
OpFunctionEnd
; Function takes_bool4_bb4
%takes_bool4_bb4 = OpFunction %bool None %112
%113 = OpFunctionParameter %_ptr_Function_v4bool
%114 = OpLabel
OpReturnValue %true
OpFunctionEnd
; Function takes_int_bi
%takes_int_bi = OpFunction %bool None %116
%117 = OpFunctionParameter %_ptr_Function_int
%118 = OpLabel
OpReturnValue %true
OpFunctionEnd
; Function takes_int2_bi2
%takes_int2_bi2 = OpFunction %bool None %121
%122 = OpFunctionParameter %_ptr_Function_v2int
%123 = OpLabel
OpReturnValue %true
OpFunctionEnd
; Function takes_int3_bi3
%takes_int3_bi3 = OpFunction %bool None %126
%127 = OpFunctionParameter %_ptr_Function_v3int
%128 = OpLabel
OpReturnValue %true
OpFunctionEnd
; Function takes_int4_bi4
%takes_int4_bi4 = OpFunction %bool None %131
%132 = OpFunctionParameter %_ptr_Function_v4int
%133 = OpLabel
OpReturnValue %true
OpFunctionEnd
; Function main
%main = OpFunction %v4float None %134 ; RelaxedPrecision
%135 = OpFunctionParameter %_ptr_Function_v2float
%136 = OpLabel
%145 = OpVariable %_ptr_Function_float Function
%152 = OpVariable %_ptr_Function_v2float Function
%159 = OpVariable %_ptr_Function_v3float Function
%166 = OpVariable %_ptr_Function_v4float Function
%174 = OpVariable %_ptr_Function_mat2v2float Function
%183 = OpVariable %_ptr_Function_mat3v3float Function
%193 = OpVariable %_ptr_Function_mat4v4float Function
%198 = OpVariable %_ptr_Function_float Function
%203 = OpVariable %_ptr_Function_v2float Function
%208 = OpVariable %_ptr_Function_v3float Function
%213 = OpVariable %_ptr_Function_v4float Function
%218 = OpVariable %_ptr_Function_mat2v2float Function
%223 = OpVariable %_ptr_Function_mat3v3float Function
%228 = OpVariable %_ptr_Function_mat4v4float Function
%233 = OpVariable %_ptr_Function_bool Function
%239 = OpVariable %_ptr_Function_v2bool Function
%245 = OpVariable %_ptr_Function_v3bool Function
%251 = OpVariable %_ptr_Function_v4bool Function
%257 = OpVariable %_ptr_Function_int Function
%264 = OpVariable %_ptr_Function_v2int Function
%271 = OpVariable %_ptr_Function_v3int Function
%278 = OpVariable %_ptr_Function_v4int Function
%281 = OpVariable %_ptr_Function_v4float Function
OpSelectionMerge %139 None
OpBranchConditional %true %138 %139
%138 = OpLabel
%140 = OpFunctionCall %bool %takes_void_b
OpBranch %139
%139 = OpLabel
%141 = OpPhi %bool %false %136 %140 %138
OpSelectionMerge %143 None
OpBranchConditional %141 %142 %143
%142 = OpLabel
OpStore %145 %float_1
%146 = OpFunctionCall %bool %takes_float_bf %145
OpBranch %143
%143 = OpLabel
%147 = OpPhi %bool %false %139 %146 %142
OpSelectionMerge %149 None
OpBranchConditional %147 %148 %149
%148 = OpLabel
OpStore %152 %151
%153 = OpFunctionCall %bool %takes_float2_bf2 %152
OpBranch %149
%149 = OpLabel
%154 = OpPhi %bool %false %143 %153 %148
OpSelectionMerge %156 None
OpBranchConditional %154 %155 %156
%155 = OpLabel
OpStore %159 %158
%160 = OpFunctionCall %bool %takes_float3_bf3 %159
OpBranch %156
%156 = OpLabel
%161 = OpPhi %bool %false %149 %160 %155
OpSelectionMerge %163 None
OpBranchConditional %161 %162 %163
%162 = OpLabel
OpStore %166 %165
%167 = OpFunctionCall %bool %takes_float4_bf4 %166
OpBranch %163
%163 = OpLabel
%168 = OpPhi %bool %false %156 %167 %162
OpSelectionMerge %170 None
OpBranchConditional %168 %169 %170
%169 = OpLabel
OpStore %174 %173
%175 = OpFunctionCall %bool %takes_float2x2_bf22 %174
OpBranch %170
%170 = OpLabel
%176 = OpPhi %bool %false %163 %175 %169
OpSelectionMerge %178 None
OpBranchConditional %176 %177 %178
%177 = OpLabel
OpStore %183 %182
%184 = OpFunctionCall %bool %takes_float3x3_bf33 %183
OpBranch %178
%178 = OpLabel
%185 = OpPhi %bool %false %170 %184 %177
OpSelectionMerge %187 None
OpBranchConditional %185 %186 %187
%186 = OpLabel
OpStore %193 %192
%194 = OpFunctionCall %bool %takes_float4x4_bf44 %193
OpBranch %187
%187 = OpLabel
%195 = OpPhi %bool %false %178 %194 %186
OpSelectionMerge %197 None
OpBranchConditional %195 %196 %197
%196 = OpLabel
OpStore %198 %float_1
%199 = OpFunctionCall %bool %takes_half_bh %198
OpBranch %197
%197 = OpLabel
%200 = OpPhi %bool %false %187 %199 %196
OpSelectionMerge %202 None
OpBranchConditional %200 %201 %202
%201 = OpLabel
OpStore %203 %151
%204 = OpFunctionCall %bool %takes_half2_bh2 %203
OpBranch %202
%202 = OpLabel
%205 = OpPhi %bool %false %197 %204 %201
OpSelectionMerge %207 None
OpBranchConditional %205 %206 %207
%206 = OpLabel
OpStore %208 %158
%209 = OpFunctionCall %bool %takes_half3_bh3 %208
OpBranch %207
%207 = OpLabel
%210 = OpPhi %bool %false %202 %209 %206
OpSelectionMerge %212 None
OpBranchConditional %210 %211 %212
%211 = OpLabel
OpStore %213 %165
%214 = OpFunctionCall %bool %takes_half4_bh4 %213
OpBranch %212
%212 = OpLabel
%215 = OpPhi %bool %false %207 %214 %211
OpSelectionMerge %217 None
OpBranchConditional %215 %216 %217
%216 = OpLabel
OpStore %218 %173
%219 = OpFunctionCall %bool %takes_half2x2_bh22 %218
OpBranch %217
%217 = OpLabel
%220 = OpPhi %bool %false %212 %219 %216
OpSelectionMerge %222 None
OpBranchConditional %220 %221 %222
%221 = OpLabel
OpStore %223 %182
%224 = OpFunctionCall %bool %takes_half3x3_bh33 %223
OpBranch %222
%222 = OpLabel
%225 = OpPhi %bool %false %217 %224 %221
OpSelectionMerge %227 None
OpBranchConditional %225 %226 %227
%226 = OpLabel
OpStore %228 %192
%229 = OpFunctionCall %bool %takes_half4x4_bh44 %228
OpBranch %227
%227 = OpLabel
%230 = OpPhi %bool %false %222 %229 %226
OpSelectionMerge %232 None
OpBranchConditional %230 %231 %232
%231 = OpLabel
OpStore %233 %true
%234 = OpFunctionCall %bool %takes_bool_bb %233
OpBranch %232
%232 = OpLabel
%235 = OpPhi %bool %false %227 %234 %231
OpSelectionMerge %237 None
OpBranchConditional %235 %236 %237
%236 = OpLabel
OpStore %239 %238
%240 = OpFunctionCall %bool %takes_bool2_bb2 %239
OpBranch %237
%237 = OpLabel
%241 = OpPhi %bool %false %232 %240 %236
OpSelectionMerge %243 None
OpBranchConditional %241 %242 %243
%242 = OpLabel
OpStore %245 %244
%246 = OpFunctionCall %bool %takes_bool3_bb3 %245
OpBranch %243
%243 = OpLabel
%247 = OpPhi %bool %false %237 %246 %242
OpSelectionMerge %249 None
OpBranchConditional %247 %248 %249
%248 = OpLabel
OpStore %251 %250
%252 = OpFunctionCall %bool %takes_bool4_bb4 %251
OpBranch %249
%249 = OpLabel
%253 = OpPhi %bool %false %243 %252 %248
OpSelectionMerge %255 None
OpBranchConditional %253 %254 %255
%254 = OpLabel
OpStore %257 %int_1
%258 = OpFunctionCall %bool %takes_int_bi %257
OpBranch %255
%255 = OpLabel
%259 = OpPhi %bool %false %249 %258 %254
OpSelectionMerge %261 None
OpBranchConditional %259 %260 %261
%260 = OpLabel
OpStore %264 %263
%265 = OpFunctionCall %bool %takes_int2_bi2 %264
OpBranch %261
%261 = OpLabel
%266 = OpPhi %bool %false %255 %265 %260
OpSelectionMerge %268 None
OpBranchConditional %266 %267 %268
%267 = OpLabel
OpStore %271 %270
%272 = OpFunctionCall %bool %takes_int3_bi3 %271
OpBranch %268
%268 = OpLabel
%273 = OpPhi %bool %false %261 %272 %267
OpSelectionMerge %275 None
OpBranchConditional %273 %274 %275
%274 = OpLabel
OpStore %278 %277
%279 = OpFunctionCall %bool %takes_int4_bi4 %278
OpBranch %275
%275 = OpLabel
%280 = OpPhi %bool %false %268 %279 %274
OpSelectionMerge %284 None
OpBranchConditional %280 %282 %283
%282 = OpLabel
%285 = OpAccessChain %_ptr_Uniform_v4float %34 %int_0
%288 = OpLoad %v4float %285 ; RelaxedPrecision
OpStore %281 %288
OpBranch %284
%283 = OpLabel
%289 = OpAccessChain %_ptr_Uniform_v4float %34 %int_1
%290 = OpLoad %v4float %289 ; RelaxedPrecision
OpStore %281 %290
OpBranch %284
%284 = OpLabel
%291 = OpLoad %v4float %281 ; RelaxedPrecision
OpReturnValue %291
OpFunctionEnd