blob: 7aca938da1ac1b784c52df6c77caf0f23dda080f [file] [log] [blame]
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 96
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %foo "foo" %in_1 %coord_1 %value
OpExecutionMode %foo OriginUpperLeft
OpName %tint_discarded "tint_discarded"
OpName %in_1 "in_1"
OpName %coord_1 "coord_1"
OpName %value "value"
OpName %t "t"
OpName %s "s"
OpName %a_block "a_block"
OpMemberName %a_block 0 "inner"
OpName %a "a"
OpName %tint_ftoi "tint_ftoi"
OpName %v "v"
OpName %foo_inner "foo_inner"
OpName %in "in"
OpName %coord "coord"
OpName %result "result"
OpName %i "i"
OpName %tint_symbol "tint_symbol"
OpName %foo "foo"
OpDecorate %in_1 Location 0
OpDecorate %coord_1 Location 1
OpDecorate %value Location 0
OpDecorate %t DescriptorSet 0
OpDecorate %t Binding 0
OpDecorate %s DescriptorSet 0
OpDecorate %s Binding 1
OpDecorate %a_block Block
OpMemberDecorate %a_block 0 Offset 0
OpDecorate %a DescriptorSet 0
OpDecorate %a Binding 2
%bool = OpTypeBool
%2 = OpConstantNull %bool
%_ptr_Private_bool = OpTypePointer Private %bool
%tint_discarded = OpVariable %_ptr_Private_bool Private %2
%float = OpTypeFloat 32
%_ptr_Input_float = OpTypePointer Input %float
%in_1 = OpVariable %_ptr_Input_float Input
%v2float = OpTypeVector %float 2
%_ptr_Input_v2float = OpTypePointer Input %v2float
%coord_1 = OpVariable %_ptr_Input_v2float Input
%int = OpTypeInt 32 1
%_ptr_Output_int = OpTypePointer Output %int
%14 = OpConstantNull %int
%value = OpVariable %_ptr_Output_int Output %14
%17 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_17 = OpTypePointer UniformConstant %17
%t = OpVariable %_ptr_UniformConstant_17 UniformConstant
%20 = OpTypeSampler
%_ptr_UniformConstant_20 = OpTypePointer UniformConstant %20
%s = OpVariable %_ptr_UniformConstant_20 UniformConstant
%a_block = OpTypeStruct %int
%_ptr_StorageBuffer_a_block = OpTypePointer StorageBuffer %a_block
%a = OpVariable %_ptr_StorageBuffer_a_block StorageBuffer
%24 = OpTypeFunction %int %float
%float_2_14748352e_09 = OpConstant %float 2.14748352e+09
%float_n2_14748365e_09 = OpConstant %float -2.14748365e+09
%int_n2147483648 = OpConstant %int -2147483648
%int_2147483647 = OpConstant %int 2147483647
%37 = OpTypeFunction %int %float %v2float
%42 = OpConstantNull %float
%true = OpConstantTrue %bool
%v4float = OpTypeVector %float 4
%52 = OpTypeSampledImage %17
%_ptr_Function_int = OpTypePointer Function %int
%int_10 = OpConstant %int 10
%uint = OpTypeInt 32 0
%uint_1 = OpConstant %uint 1
%uint_0 = OpConstant %uint 0
%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
%int_1 = OpConstant %int 1
%void = OpTypeVoid
%86 = OpTypeFunction %void
%tint_ftoi = OpFunction %int None %24
%v = OpFunctionParameter %float
%27 = OpLabel
%30 = OpFOrdLessThan %bool %v %float_2_14748352e_09
%33 = OpFOrdLessThan %bool %v %float_n2_14748365e_09
%35 = OpConvertFToS %int %v
%31 = OpSelect %int %33 %int_n2147483648 %35
%28 = OpSelect %int %30 %31 %int_2147483647
OpReturnValue %28
OpFunctionEnd
%foo_inner = OpFunction %int None %37
%in = OpFunctionParameter %float
%coord = OpFunctionParameter %v2float
%41 = OpLabel
%result = OpVariable %_ptr_Function_int Function %14
%i = OpVariable %_ptr_Function_int Function %14
%tint_symbol = OpVariable %_ptr_Function_int Function %14
%43 = OpFOrdEqual %bool %in %42
OpSelectionMerge %44 None
OpBranchConditional %43 %45 %44
%45 = OpLabel
OpStore %tint_discarded %true
OpBranch %44
%44 = OpLabel
%50 = OpLoad %20 %s
%51 = OpLoad %17 %t
%53 = OpSampledImage %52 %51 %50
%48 = OpImageSampleImplicitLod %v4float %53 %coord
%54 = OpCompositeExtract %float %48 0
%47 = OpFunctionCall %int %tint_ftoi %54
OpStore %result %47
OpStore %i %14
OpBranch %58
%58 = OpLabel
OpLoopMerge %59 %60 None
OpBranch %61
%61 = OpLabel
%63 = OpLoad %int %i
%65 = OpSLessThan %bool %63 %int_10
%62 = OpLogicalNot %bool %65
OpSelectionMerge %66 None
OpBranchConditional %62 %67 %66
%67 = OpLabel
OpBranch %59
%66 = OpLabel
%68 = OpLoad %int %result
%69 = OpLoad %int %i
%70 = OpIAdd %int %68 %69
OpStore %result %70
OpBranch %60
%60 = OpLabel
%73 = OpLoad %bool %tint_discarded
%72 = OpLogicalNot %bool %73
OpSelectionMerge %74 None
OpBranchConditional %72 %75 %74
%75 = OpLabel
%82 = OpAccessChain %_ptr_StorageBuffer_int %a %uint_0
%76 = OpAtomicIAdd %int %82 %uint_1 %uint_0 %int_1
OpStore %tint_symbol %76
OpBranch %74
%74 = OpLabel
%84 = OpLoad %int %tint_symbol
OpStore %i %84
OpBranch %58
%59 = OpLabel
%85 = OpLoad %int %result
OpReturnValue %85
OpFunctionEnd
%foo = OpFunction %void None %86
%89 = OpLabel
%91 = OpLoad %float %in_1
%92 = OpLoad %v2float %coord_1
%90 = OpFunctionCall %int %foo_inner %91 %92
OpStore %value %90
%93 = OpLoad %bool %tint_discarded
OpSelectionMerge %94 None
OpBranchConditional %93 %95 %94
%95 = OpLabel
OpKill
%94 = OpLabel
OpReturn
OpFunctionEnd