blob: 9894f56a9c3261726ae2506271b53dad2568abae [file]
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 1
; Bound: 132
; Schema: 0
OpCapability Shader
%37 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %f "f"
OpExecutionMode %f LocalSize 1 1 1
OpMemberName %Inner 0 "m"
OpName %Inner "Inner"
OpMemberName %Outer_tint_explicit_layout 0 "a"
OpName %Outer_tint_explicit_layout "Outer_tint_explicit_layout"
OpMemberName %a_block_tint_explicit_layout 0 "inner"
OpName %a_block_tint_explicit_layout "a_block_tint_explicit_layout"
OpName %counter "counter"
OpName %i "i"
OpName %f "f"
OpName %p_a "p_a"
OpName %p_a_i "p_a_i"
OpName %p_a_i_a "p_a_i_a"
OpName %p_a_i_a_i "p_a_i_a_i"
OpName %p_a_i_a_i_m "p_a_i_a_i_m"
OpName %p_a_i_a_i_m_i "p_a_i_a_i_m_i"
OpMemberName %Outer 0 "a"
OpName %Outer "Outer"
OpName %l_a "l_a"
OpName %l_a_i "l_a_i"
OpName %l_a_i_a "l_a_i_a"
OpName %l_a_i_a_i "l_a_i_a_i"
OpName %l_a_i_a_i_m "l_a_i_a_i_m"
OpName %l_a_i_a_i_m_i "l_a_i_a_i_m_i"
OpName %l_a_i_a_i_m_i_i "l_a_i_a_i_m_i_i"
OpName %tint_convert_explicit_layout "tint_convert_explicit_layout"
OpName %tint_source "tint_source"
OpName %tint_convert_explicit_layout_0 "tint_convert_explicit_layout"
OpName %tint_source_0 "tint_source"
OpName %tint_convert_explicit_layout_1 "tint_convert_explicit_layout"
OpName %tint_source_1 "tint_source"
OpMemberDecorate %Inner 0 Offset 0
OpMemberDecorate %Inner 0 ColMajor
OpMemberDecorate %Inner 0 MatrixStride 16
OpDecorate %_arr_Inner_uint_4 ArrayStride 64
OpMemberDecorate %Outer_tint_explicit_layout 0 Offset 0
OpDecorate %_arr_Outer_tint_explicit_layout_uint_4 ArrayStride 256
OpMemberDecorate %a_block_tint_explicit_layout 0 Offset 0
OpDecorate %a_block_tint_explicit_layout Block
OpDecorate %1 DescriptorSet 0
OpDecorate %1 Binding 0
OpDecorate %1 NonWritable
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%mat4v4float = OpTypeMatrix %v4float 4
%Inner = OpTypeStruct %mat4v4float
%uint = OpTypeInt 32 0
%uint_4 = OpConstant %uint 4
%_arr_Inner_uint_4 = OpTypeArray %Inner %uint_4
%Outer_tint_explicit_layout = OpTypeStruct %_arr_Inner_uint_4
%_arr_Outer_tint_explicit_layout_uint_4 = OpTypeArray %Outer_tint_explicit_layout %uint_4
%a_block_tint_explicit_layout = OpTypeStruct %_arr_Outer_tint_explicit_layout_uint_4
%_ptr_Uniform_a_block_tint_explicit_layout = OpTypePointer Uniform %a_block_tint_explicit_layout
%1 = OpVariable %_ptr_Uniform_a_block_tint_explicit_layout Uniform
%int = OpTypeInt 32 1
%_ptr_Private_int = OpTypePointer Private %int
%int_0 = OpConstant %int 0
%counter = OpVariable %_ptr_Private_int Private %int_0
%18 = OpTypeFunction %int
%int_1 = OpConstant %int 1
%void = OpTypeVoid
%29 = OpTypeFunction %void
%_ptr_Uniform__arr_Outer_tint_explicit_layout_uint_4 = OpTypePointer Uniform %_arr_Outer_tint_explicit_layout_uint_4
%uint_0 = OpConstant %uint 0
%uint_3 = OpConstant %uint 3
%_ptr_Uniform_Outer_tint_explicit_layout = OpTypePointer Uniform %Outer_tint_explicit_layout
%_ptr_Uniform__arr_Inner_uint_4 = OpTypePointer Uniform %_arr_Inner_uint_4
%_ptr_Uniform_Inner = OpTypePointer Uniform %Inner
%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
%_arr_Inner_uint_4_0 = OpTypeArray %Inner %uint_4
%Outer = OpTypeStruct %_arr_Inner_uint_4_0
%_arr_Outer_uint_4 = OpTypeArray %Outer %uint_4
%_ptr_Uniform_float = OpTypePointer Uniform %float
%77 = OpTypeFunction %_arr_Inner_uint_4_0 %_arr_Inner_uint_4
%_ptr_Function__arr_Inner_uint_4 = OpTypePointer Function %_arr_Inner_uint_4
%_ptr_Function__arr_Inner_uint_4_0 = OpTypePointer Function %_arr_Inner_uint_4_0
%83 = OpConstantNull %_arr_Inner_uint_4_0
%bool = OpTypeBool
%_ptr_Function_Inner = OpTypePointer Function %Inner
%uint_1 = OpConstant %uint 1
%102 = OpTypeFunction %Outer %Outer_tint_explicit_layout
%108 = OpTypeFunction %_arr_Outer_uint_4 %_arr_Outer_tint_explicit_layout_uint_4
%_ptr_Function__arr_Outer_tint_explicit_layout_uint_4 = OpTypePointer Function %_arr_Outer_tint_explicit_layout_uint_4
%_ptr_Function__arr_Outer_uint_4 = OpTypePointer Function %_arr_Outer_uint_4
%114 = OpConstantNull %_arr_Outer_uint_4
%_ptr_Function_Outer_tint_explicit_layout = OpTypePointer Function %Outer_tint_explicit_layout
%_ptr_Function_Outer = OpTypePointer Function %Outer
%i = OpFunction %int None %18
%19 = OpLabel
%20 = OpLoad %int %counter None
%21 = OpBitcast %uint %20
%22 = OpBitcast %uint %int_1
%24 = OpIAdd %uint %21 %22
%25 = OpBitcast %int %24
OpStore %counter %25 None
%26 = OpLoad %int %counter None
OpReturnValue %26
OpFunctionEnd
%f = OpFunction %void None %29
%30 = OpLabel
%p_a = OpAccessChain %_ptr_Uniform__arr_Outer_tint_explicit_layout_uint_4 %1 %uint_0
%34 = OpFunctionCall %int %i
%35 = OpBitcast %uint %34
%36 = OpExtInst %uint %37 UMin %35 %uint_3
%p_a_i = OpAccessChain %_ptr_Uniform_Outer_tint_explicit_layout %p_a %36
%p_a_i_a = OpAccessChain %_ptr_Uniform__arr_Inner_uint_4 %p_a_i %uint_0
%43 = OpFunctionCall %int %i
%44 = OpBitcast %uint %43
%45 = OpExtInst %uint %37 UMin %44 %uint_3
%p_a_i_a_i = OpAccessChain %_ptr_Uniform_Inner %p_a_i_a %45
%p_a_i_a_i_m = OpAccessChain %_ptr_Uniform_mat4v4float %p_a_i_a_i %uint_0
%50 = OpFunctionCall %int %i
%51 = OpBitcast %uint %50
%52 = OpExtInst %uint %37 UMin %51 %uint_3
%p_a_i_a_i_m_i = OpAccessChain %_ptr_Uniform_v4float %p_a_i_a_i_m %52
%55 = OpLoad %_arr_Outer_tint_explicit_layout_uint_4 %p_a None
%l_a = OpFunctionCall %_arr_Outer_uint_4 %tint_convert_explicit_layout_1 %55
%61 = OpLoad %Outer_tint_explicit_layout %p_a_i None
%l_a_i = OpFunctionCall %Outer %tint_convert_explicit_layout_0 %61
%64 = OpLoad %_arr_Inner_uint_4 %p_a_i_a None
%l_a_i_a = OpFunctionCall %_arr_Inner_uint_4_0 %tint_convert_explicit_layout %64
%l_a_i_a_i = OpLoad %Inner %p_a_i_a_i None
%l_a_i_a_i_m = OpLoad %mat4v4float %p_a_i_a_i_m None
%l_a_i_a_i_m_i = OpLoad %v4float %p_a_i_a_i_m_i None
%70 = OpFunctionCall %int %i
%71 = OpBitcast %uint %70
%72 = OpExtInst %uint %37 UMin %71 %uint_3
%73 = OpAccessChain %_ptr_Uniform_float %p_a_i_a_i_m_i %72
%l_a_i_a_i_m_i_i = OpLoad %float %73 None
OpReturn
OpFunctionEnd
%tint_convert_explicit_layout = OpFunction %_arr_Inner_uint_4_0 None %77
%tint_source = OpFunctionParameter %_arr_Inner_uint_4
%78 = OpLabel
%79 = OpVariable %_ptr_Function__arr_Inner_uint_4 Function
%81 = OpVariable %_ptr_Function__arr_Inner_uint_4_0 Function %83
OpStore %79 %tint_source
OpBranch %84
%84 = OpLabel
OpBranch %87
%87 = OpLabel
%89 = OpPhi %uint %uint_0 %84 %90 %86
OpLoopMerge %88 %86 None
OpBranch %85
%85 = OpLabel
%92 = OpUGreaterThanEqual %bool %89 %uint_4
OpSelectionMerge %94 None
OpBranchConditional %92 %95 %94
%95 = OpLabel
OpBranch %88
%94 = OpLabel
%96 = OpAccessChain %_ptr_Function_Inner %79 %89
%98 = OpLoad %Inner %96 None
%99 = OpAccessChain %_ptr_Function_Inner %81 %89
OpStore %99 %98 None
OpBranch %86
%86 = OpLabel
%90 = OpIAdd %uint %89 %uint_1
OpBranch %87
%88 = OpLabel
%91 = OpLoad %_arr_Inner_uint_4_0 %81 None
OpReturnValue %91
OpFunctionEnd
%tint_convert_explicit_layout_0 = OpFunction %Outer None %102
%tint_source_0 = OpFunctionParameter %Outer_tint_explicit_layout
%103 = OpLabel
%104 = OpCompositeExtract %_arr_Inner_uint_4 %tint_source_0 0
%105 = OpFunctionCall %_arr_Inner_uint_4_0 %tint_convert_explicit_layout %104
%106 = OpCompositeConstruct %Outer %105
OpReturnValue %106
OpFunctionEnd
%tint_convert_explicit_layout_1 = OpFunction %_arr_Outer_uint_4 None %108
%tint_source_1 = OpFunctionParameter %_arr_Outer_tint_explicit_layout_uint_4
%109 = OpLabel
%110 = OpVariable %_ptr_Function__arr_Outer_tint_explicit_layout_uint_4 Function
%112 = OpVariable %_ptr_Function__arr_Outer_uint_4 Function %114
OpStore %110 %tint_source_1
OpBranch %115
%115 = OpLabel
OpBranch %118
%118 = OpLabel
%120 = OpPhi %uint %uint_0 %115 %121 %117
OpLoopMerge %119 %117 None
OpBranch %116
%116 = OpLabel
%123 = OpUGreaterThanEqual %bool %120 %uint_4
OpSelectionMerge %124 None
OpBranchConditional %123 %125 %124
%125 = OpLabel
OpBranch %119
%124 = OpLabel
%126 = OpAccessChain %_ptr_Function_Outer_tint_explicit_layout %110 %120
%128 = OpLoad %Outer_tint_explicit_layout %126 None
%129 = OpFunctionCall %Outer %tint_convert_explicit_layout_0 %128
%130 = OpAccessChain %_ptr_Function_Outer %112 %120
OpStore %130 %129 None
OpBranch %117
%117 = OpLabel
%121 = OpIAdd %uint %120 %uint_1
OpBranch %118
%119 = OpLabel
%122 = OpLoad %_arr_Outer_uint_4 %112 None
OpReturnValue %122
OpFunctionEnd