blob: 619fcb51c3551051c0773606f148396dff1e6959 [file] [log] [blame]
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 1
; Bound: 265
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main" %main_local_invocation_index_Input
OpExecutionMode %main LocalSize 1 1 1
OpName %src_private "src_private"
OpName %src_workgroup "src_workgroup"
OpMemberName %src_uniform_block_tint_explicit_layout 0 "inner"
OpName %src_uniform_block_tint_explicit_layout "src_uniform_block_tint_explicit_layout"
OpMemberName %S_tint_explicit_layout 0 "arr"
OpName %S_tint_explicit_layout "S_tint_explicit_layout"
OpMemberName %src_storage_block_tint_explicit_layout 0 "inner"
OpName %src_storage_block_tint_explicit_layout "src_storage_block_tint_explicit_layout"
OpMemberName %dst_block_tint_explicit_layout 0 "inner"
OpName %dst_block_tint_explicit_layout "dst_block_tint_explicit_layout"
OpMemberName %S_nested_tint_explicit_layout 0 "arr"
OpName %S_nested_tint_explicit_layout "S_nested_tint_explicit_layout"
OpMemberName %dst_nested_block_tint_explicit_layout 0 "inner"
OpName %dst_nested_block_tint_explicit_layout "dst_nested_block_tint_explicit_layout"
OpName %main_local_invocation_index_Input "main_local_invocation_index_Input"
OpName %ret_arr "ret_arr"
OpName %ret_struct_arr "ret_struct_arr"
OpMemberName %S 0 "arr"
OpName %S "S"
OpName %foo "foo"
OpName %src_param "src_param"
OpName %src_function "src_function"
OpName %src_let "src_let"
OpName %src_nested "src_nested"
OpName %main_inner "main_inner"
OpName %tint_local_index "tint_local_index"
OpName %src_let "ary"
OpName %start_byte_offset "start_byte_offset"
OpName %a "a"
OpName %main "main"
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"
OpName %tint_convert_explicit_layout_2 "tint_convert_explicit_layout"
OpName %tint_source_2 "tint_source"
OpName %tint_convert_explicit_layout_3 "tint_convert_explicit_layout"
OpName %tint_source_3 "tint_source"
OpDecorate %_arr_v4uint_uint_4 ArrayStride 16
OpMemberDecorate %src_uniform_block_tint_explicit_layout 0 Offset 0
OpDecorate %src_uniform_block_tint_explicit_layout Block
OpDecorate %11 DescriptorSet 0
OpDecorate %11 Binding 0
OpDecorate %11 NonWritable
OpDecorate %_arr_v4int_uint_4_0 ArrayStride 16
OpMemberDecorate %S_tint_explicit_layout 0 Offset 0
OpMemberDecorate %src_storage_block_tint_explicit_layout 0 Offset 0
OpDecorate %src_storage_block_tint_explicit_layout Block
OpDecorate %16 DescriptorSet 0
OpDecorate %16 Binding 1
OpDecorate %16 Coherent
OpMemberDecorate %dst_block_tint_explicit_layout 0 Offset 0
OpDecorate %dst_block_tint_explicit_layout Block
OpDecorate %21 DescriptorSet 0
OpDecorate %21 Binding 2
OpDecorate %21 Coherent
OpDecorate %_arr_int_uint_2 ArrayStride 4
OpDecorate %_arr__arr_int_uint_2_uint_3 ArrayStride 8
OpDecorate %_arr__arr__arr_int_uint_2_uint_3_uint_4 ArrayStride 24
OpMemberDecorate %S_nested_tint_explicit_layout 0 Offset 0
OpMemberDecorate %dst_nested_block_tint_explicit_layout 0 Offset 0
OpDecorate %dst_nested_block_tint_explicit_layout Block
OpDecorate %24 DescriptorSet 0
OpDecorate %24 Binding 3
OpDecorate %24 Coherent
OpDecorate %main_local_invocation_index_Input BuiltIn LocalInvocationIndex
%int = OpTypeInt 32 1
%v4int = OpTypeVector %int 4
%uint = OpTypeInt 32 0
%uint_4 = OpConstant %uint 4
%_arr_v4int_uint_4 = OpTypeArray %v4int %uint_4
%_ptr_Private__arr_v4int_uint_4 = OpTypePointer Private %_arr_v4int_uint_4
%src_let = OpConstantNull %_arr_v4int_uint_4
%src_private = OpVariable %_ptr_Private__arr_v4int_uint_4 Private %src_let
%_ptr_Workgroup__arr_v4int_uint_4 = OpTypePointer Workgroup %_arr_v4int_uint_4
%src_workgroup = OpVariable %_ptr_Workgroup__arr_v4int_uint_4 Workgroup
%v4uint = OpTypeVector %uint 4
%_arr_v4uint_uint_4 = OpTypeArray %v4uint %uint_4
%src_uniform_block_tint_explicit_layout = OpTypeStruct %_arr_v4uint_uint_4
%_ptr_Uniform_src_uniform_block_tint_explicit_layout = OpTypePointer Uniform %src_uniform_block_tint_explicit_layout
%11 = OpVariable %_ptr_Uniform_src_uniform_block_tint_explicit_layout Uniform
%_arr_v4int_uint_4_0 = OpTypeArray %v4int %uint_4
%S_tint_explicit_layout = OpTypeStruct %_arr_v4int_uint_4_0
%src_storage_block_tint_explicit_layout = OpTypeStruct %S_tint_explicit_layout
%_ptr_StorageBuffer_src_storage_block_tint_explicit_layout = OpTypePointer StorageBuffer %src_storage_block_tint_explicit_layout
%16 = OpVariable %_ptr_StorageBuffer_src_storage_block_tint_explicit_layout StorageBuffer
%dst_block_tint_explicit_layout = OpTypeStruct %S_tint_explicit_layout
%_ptr_StorageBuffer_dst_block_tint_explicit_layout = OpTypePointer StorageBuffer %dst_block_tint_explicit_layout
%21 = OpVariable %_ptr_StorageBuffer_dst_block_tint_explicit_layout StorageBuffer
%uint_2 = OpConstant %uint 2
%_arr_int_uint_2 = OpTypeArray %int %uint_2
%uint_3 = OpConstant %uint 3
%_arr__arr_int_uint_2_uint_3 = OpTypeArray %_arr_int_uint_2 %uint_3
%_arr__arr__arr_int_uint_2_uint_3_uint_4 = OpTypeArray %_arr__arr_int_uint_2_uint_3 %uint_4
%S_nested_tint_explicit_layout = OpTypeStruct %_arr__arr__arr_int_uint_2_uint_3_uint_4
%dst_nested_block_tint_explicit_layout = OpTypeStruct %S_nested_tint_explicit_layout
%_ptr_StorageBuffer_dst_nested_block_tint_explicit_layout = OpTypePointer StorageBuffer %dst_nested_block_tint_explicit_layout
%24 = OpVariable %_ptr_StorageBuffer_dst_nested_block_tint_explicit_layout StorageBuffer
%_ptr_Input_uint = OpTypePointer Input %uint
%main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
%36 = OpTypeFunction %_arr_v4int_uint_4
%S = OpTypeStruct %_arr_v4int_uint_4
%40 = OpTypeFunction %S
%42 = OpConstantNull %S
%void = OpTypeVoid
%46 = OpTypeFunction %void %_arr_v4int_uint_4
%_ptr_Function__arr_v4int_uint_4 = OpTypePointer Function %_arr_v4int_uint_4
%_ptr_StorageBuffer__arr_v4int_uint_4_0 = OpTypePointer StorageBuffer %_arr_v4int_uint_4_0
%uint_0 = OpConstant %uint 0
%int_1 = OpConstant %int 1
%56 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
%int_2 = OpConstant %int 2
%58 = OpConstantComposite %v4int %int_2 %int_2 %int_2 %int_2
%int_3 = OpConstant %int 3
%60 = OpConstantComposite %v4int %int_3 %int_3 %int_3 %int_3
%55 = OpConstantComposite %_arr_v4int_uint_4 %56 %58 %60 %60
%_arr_int_uint_2_0 = OpTypeArray %int %uint_2
%_arr__arr_int_uint_2_0_uint_3 = OpTypeArray %_arr_int_uint_2_0 %uint_3
%_arr__arr__arr_int_uint_2_0_uint_3_uint_4 = OpTypeArray %_arr__arr_int_uint_2_0_uint_3 %uint_4
%_ptr_Function__arr__arr__arr_int_uint_2_0_uint_3_uint_4 = OpTypePointer Function %_arr__arr__arr_int_uint_2_0_uint_3_uint_4
%97 = OpConstantNull %_arr__arr__arr_int_uint_2_0_uint_3_uint_4
%_ptr_StorageBuffer__arr__arr__arr_int_uint_2_uint_3_uint_4 = OpTypePointer StorageBuffer %_arr__arr__arr_int_uint_2_uint_3_uint_4
%105 = OpTypeFunction %void %uint
%uint_264 = OpConstant %uint 264
%bool = OpTypeBool
%_ptr_Workgroup_v4int = OpTypePointer Workgroup %v4int
%123 = OpConstantNull %v4int
%uint_1 = OpConstant %uint 1
%126 = OpTypeFunction %_arr_v4int_uint_4 %uint
%uint_16 = OpConstant %uint 16
%_ptr_Function_v4int = OpTypePointer Function %v4int
%_ptr_Uniform_v4uint = OpTypePointer Uniform %v4uint
%151 = OpTypeFunction %void
%156 = OpTypeFunction %_arr_v4int_uint_4 %_arr_v4int_uint_4_0
%_ptr_Function__arr_v4int_uint_4_0 = OpTypePointer Function %_arr_v4int_uint_4_0
%176 = OpTypeFunction %_arr_v4int_uint_4_0 %_arr_v4int_uint_4
%180 = OpConstantNull %_arr_v4int_uint_4_0
%196 = OpTypeFunction %_arr__arr__arr_int_uint_2_uint_3_uint_4 %_arr__arr__arr_int_uint_2_0_uint_3_uint_4
%_ptr_Function__arr__arr__arr_int_uint_2_uint_3_uint_4 = OpTypePointer Function %_arr__arr__arr_int_uint_2_uint_3_uint_4
%201 = OpConstantNull %_arr__arr__arr_int_uint_2_uint_3_uint_4
%_ptr_Function__arr__arr_int_uint_2_0_uint_3 = OpTypePointer Function %_arr__arr_int_uint_2_0_uint_3
%_ptr_Function__arr__arr_int_uint_2_uint_3 = OpTypePointer Function %_arr__arr_int_uint_2_uint_3
%221 = OpTypeFunction %_arr__arr_int_uint_2_uint_3 %_arr__arr_int_uint_2_0_uint_3
%225 = OpConstantNull %_arr__arr_int_uint_2_uint_3
%_ptr_Function__arr_int_uint_2_0 = OpTypePointer Function %_arr_int_uint_2_0
%_ptr_Function__arr_int_uint_2 = OpTypePointer Function %_arr_int_uint_2
%245 = OpTypeFunction %_arr_int_uint_2 %_arr_int_uint_2_0
%249 = OpConstantNull %_arr_int_uint_2
%_ptr_Function_int = OpTypePointer Function %int
%ret_arr = OpFunction %_arr_v4int_uint_4 None %36
%37 = OpLabel
OpReturnValue %src_let
OpFunctionEnd
%ret_struct_arr = OpFunction %S None %40
%41 = OpLabel
OpReturnValue %42
OpFunctionEnd
%foo = OpFunction %void None %46
%src_param = OpFunctionParameter %_arr_v4int_uint_4
%47 = OpLabel
%src_function = OpVariable %_ptr_Function__arr_v4int_uint_4 Function %src_let
%src_nested = OpVariable %_ptr_Function__arr__arr__arr_int_uint_2_0_uint_3_uint_4 Function %97
%50 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4_0 %21 %uint_0 %uint_0
%53 = OpFunctionCall %_arr_v4int_uint_4_0 %tint_convert_explicit_layout_0 %55
OpStore %50 %53 None
%62 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4_0 %21 %uint_0 %uint_0
%63 = OpFunctionCall %_arr_v4int_uint_4_0 %tint_convert_explicit_layout_0 %src_param
OpStore %62 %63 None
%64 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4_0 %21 %uint_0 %uint_0
%65 = OpFunctionCall %_arr_v4int_uint_4 %ret_arr
%66 = OpFunctionCall %_arr_v4int_uint_4_0 %tint_convert_explicit_layout_0 %65
OpStore %64 %66 None
%67 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4_0 %21 %uint_0 %uint_0
%68 = OpFunctionCall %_arr_v4int_uint_4_0 %tint_convert_explicit_layout_0 %src_let
OpStore %67 %68 None
%69 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4_0 %21 %uint_0 %uint_0
%70 = OpLoad %_arr_v4int_uint_4 %src_function None
%71 = OpFunctionCall %_arr_v4int_uint_4_0 %tint_convert_explicit_layout_0 %70
OpStore %69 %71 None
%72 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4_0 %21 %uint_0 %uint_0
%73 = OpLoad %_arr_v4int_uint_4 %src_private None
%74 = OpFunctionCall %_arr_v4int_uint_4_0 %tint_convert_explicit_layout_0 %73
OpStore %72 %74 None
%75 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4_0 %21 %uint_0 %uint_0
%76 = OpLoad %_arr_v4int_uint_4 %src_workgroup None
%77 = OpFunctionCall %_arr_v4int_uint_4_0 %tint_convert_explicit_layout_0 %76
OpStore %75 %77 None
%78 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4_0 %21 %uint_0 %uint_0
%79 = OpFunctionCall %S %ret_struct_arr
%80 = OpCompositeExtract %_arr_v4int_uint_4 %79 0
%81 = OpFunctionCall %_arr_v4int_uint_4_0 %tint_convert_explicit_layout_0 %80
OpStore %78 %81 None
%82 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4_0 %21 %uint_0 %uint_0
%83 = OpFunctionCall %_arr_v4int_uint_4 %84 %uint_0
%85 = OpFunctionCall %_arr_v4int_uint_4_0 %tint_convert_explicit_layout_0 %83
OpStore %82 %85 None
%86 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4_0 %21 %uint_0 %uint_0
%87 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4_0 %16 %uint_0 %uint_0
%88 = OpLoad %_arr_v4int_uint_4_0 %87 None
%89 = OpFunctionCall %_arr_v4int_uint_4 %tint_convert_explicit_layout %88
%91 = OpFunctionCall %_arr_v4int_uint_4_0 %tint_convert_explicit_layout_0 %89
OpStore %86 %91 None
%98 = OpAccessChain %_ptr_StorageBuffer__arr__arr__arr_int_uint_2_uint_3_uint_4 %24 %uint_0 %uint_0
%100 = OpLoad %_arr__arr__arr_int_uint_2_0_uint_3_uint_4 %src_nested None
%101 = OpFunctionCall %_arr__arr__arr_int_uint_2_uint_3_uint_4 %tint_convert_explicit_layout_1 %100
OpStore %98 %101 None
OpReturn
OpFunctionEnd
%main_inner = OpFunction %void None %105
%tint_local_index = OpFunctionParameter %uint
%106 = OpLabel
OpBranch %107
%107 = OpLabel
OpBranch %110
%110 = OpLabel
%112 = OpPhi %uint %tint_local_index %107 %113 %109
OpLoopMerge %111 %109 None
OpBranch %108
%108 = OpLabel
%117 = OpUGreaterThanEqual %bool %112 %uint_4
OpSelectionMerge %119 None
OpBranchConditional %117 %120 %119
%120 = OpLabel
OpBranch %111
%119 = OpLabel
%121 = OpAccessChain %_ptr_Workgroup_v4int %src_workgroup %112
OpStore %121 %123 None
OpBranch %109
%109 = OpLabel
%113 = OpIAdd %uint %112 %uint_1
OpBranch %110
%111 = OpLabel
OpControlBarrier %uint_2 %uint_2 %uint_264
%116 = OpFunctionCall %void %foo %src_let
OpReturn
OpFunctionEnd
%84 = OpFunction %_arr_v4int_uint_4 None %126
%start_byte_offset = OpFunctionParameter %uint
%127 = OpLabel
%a = OpVariable %_ptr_Function__arr_v4int_uint_4 Function
OpStore %a %src_let
OpBranch %129
%129 = OpLabel
OpBranch %132
%132 = OpLabel
%134 = OpPhi %uint %uint_0 %129 %135 %131
OpLoopMerge %133 %131 None
OpBranch %130
%130 = OpLabel
%137 = OpUGreaterThanEqual %bool %134 %uint_4
OpSelectionMerge %138 None
OpBranchConditional %137 %139 %138
%139 = OpLabel
OpBranch %133
%138 = OpLabel
%140 = OpIMul %uint %134 %uint_16
%142 = OpIAdd %uint %start_byte_offset %140
%143 = OpAccessChain %_ptr_Function_v4int %a %134
%145 = OpUDiv %uint %142 %uint_16
%146 = OpAccessChain %_ptr_Uniform_v4uint %11 %uint_0 %145
%148 = OpLoad %v4uint %146 None
%149 = OpBitcast %v4int %148
OpStore %143 %149 None
OpBranch %131
%131 = OpLabel
%135 = OpIAdd %uint %134 %uint_1
OpBranch %132
%133 = OpLabel
%136 = OpLoad %_arr_v4int_uint_4 %a None
OpReturnValue %136
OpFunctionEnd
%main = OpFunction %void None %151
%152 = OpLabel
%153 = OpLoad %uint %main_local_invocation_index_Input None
%154 = OpFunctionCall %void %main_inner %153
OpReturn
OpFunctionEnd
%tint_convert_explicit_layout = OpFunction %_arr_v4int_uint_4 None %156
%tint_source = OpFunctionParameter %_arr_v4int_uint_4_0
%157 = OpLabel
%158 = OpVariable %_ptr_Function__arr_v4int_uint_4_0 Function
%160 = OpVariable %_ptr_Function__arr_v4int_uint_4 Function %src_let
OpStore %158 %tint_source
OpBranch %161
%161 = OpLabel
OpBranch %164
%164 = OpLabel
%166 = OpPhi %uint %uint_0 %161 %167 %163
OpLoopMerge %165 %163 None
OpBranch %162
%162 = OpLabel
%169 = OpUGreaterThanEqual %bool %166 %uint_4
OpSelectionMerge %170 None
OpBranchConditional %169 %171 %170
%171 = OpLabel
OpBranch %165
%170 = OpLabel
%172 = OpAccessChain %_ptr_Function_v4int %158 %166
%173 = OpLoad %v4int %172 None
%174 = OpAccessChain %_ptr_Function_v4int %160 %166
OpStore %174 %173 None
OpBranch %163
%163 = OpLabel
%167 = OpIAdd %uint %166 %uint_1
OpBranch %164
%165 = OpLabel
%168 = OpLoad %_arr_v4int_uint_4 %160 None
OpReturnValue %168
OpFunctionEnd
%tint_convert_explicit_layout_0 = OpFunction %_arr_v4int_uint_4_0 None %176
%tint_source_0 = OpFunctionParameter %_arr_v4int_uint_4
%177 = OpLabel
%178 = OpVariable %_ptr_Function__arr_v4int_uint_4 Function
%179 = OpVariable %_ptr_Function__arr_v4int_uint_4_0 Function %180
OpStore %178 %tint_source_0
OpBranch %181
%181 = OpLabel
OpBranch %184
%184 = OpLabel
%186 = OpPhi %uint %uint_0 %181 %187 %183
OpLoopMerge %185 %183 None
OpBranch %182
%182 = OpLabel
%189 = OpUGreaterThanEqual %bool %186 %uint_4
OpSelectionMerge %190 None
OpBranchConditional %189 %191 %190
%191 = OpLabel
OpBranch %185
%190 = OpLabel
%192 = OpAccessChain %_ptr_Function_v4int %178 %186
%193 = OpLoad %v4int %192 None
%194 = OpAccessChain %_ptr_Function_v4int %179 %186
OpStore %194 %193 None
OpBranch %183
%183 = OpLabel
%187 = OpIAdd %uint %186 %uint_1
OpBranch %184
%185 = OpLabel
%188 = OpLoad %_arr_v4int_uint_4_0 %179 None
OpReturnValue %188
OpFunctionEnd
%tint_convert_explicit_layout_1 = OpFunction %_arr__arr__arr_int_uint_2_uint_3_uint_4 None %196
%tint_source_1 = OpFunctionParameter %_arr__arr__arr_int_uint_2_0_uint_3_uint_4
%197 = OpLabel
%198 = OpVariable %_ptr_Function__arr__arr__arr_int_uint_2_0_uint_3_uint_4 Function
%199 = OpVariable %_ptr_Function__arr__arr__arr_int_uint_2_uint_3_uint_4 Function %201
OpStore %198 %tint_source_1
OpBranch %202
%202 = OpLabel
OpBranch %205
%205 = OpLabel
%207 = OpPhi %uint %uint_0 %202 %208 %204
OpLoopMerge %206 %204 None
OpBranch %203
%203 = OpLabel
%210 = OpUGreaterThanEqual %bool %207 %uint_4
OpSelectionMerge %211 None
OpBranchConditional %210 %212 %211
%212 = OpLabel
OpBranch %206
%211 = OpLabel
%213 = OpAccessChain %_ptr_Function__arr__arr_int_uint_2_0_uint_3 %198 %207
%215 = OpLoad %_arr__arr_int_uint_2_0_uint_3 %213 None
%216 = OpFunctionCall %_arr__arr_int_uint_2_uint_3 %tint_convert_explicit_layout_2 %215
%218 = OpAccessChain %_ptr_Function__arr__arr_int_uint_2_uint_3 %199 %207
OpStore %218 %216 None
OpBranch %204
%204 = OpLabel
%208 = OpIAdd %uint %207 %uint_1
OpBranch %205
%206 = OpLabel
%209 = OpLoad %_arr__arr__arr_int_uint_2_uint_3_uint_4 %199 None
OpReturnValue %209
OpFunctionEnd
%tint_convert_explicit_layout_2 = OpFunction %_arr__arr_int_uint_2_uint_3 None %221
%tint_source_2 = OpFunctionParameter %_arr__arr_int_uint_2_0_uint_3
%222 = OpLabel
%223 = OpVariable %_ptr_Function__arr__arr_int_uint_2_0_uint_3 Function
%224 = OpVariable %_ptr_Function__arr__arr_int_uint_2_uint_3 Function %225
OpStore %223 %tint_source_2
OpBranch %226
%226 = OpLabel
OpBranch %229
%229 = OpLabel
%231 = OpPhi %uint %uint_0 %226 %232 %228
OpLoopMerge %230 %228 None
OpBranch %227
%227 = OpLabel
%234 = OpUGreaterThanEqual %bool %231 %uint_3
OpSelectionMerge %235 None
OpBranchConditional %234 %236 %235
%236 = OpLabel
OpBranch %230
%235 = OpLabel
%237 = OpAccessChain %_ptr_Function__arr_int_uint_2_0 %223 %231
%239 = OpLoad %_arr_int_uint_2_0 %237 None
%240 = OpFunctionCall %_arr_int_uint_2 %tint_convert_explicit_layout_3 %239
%242 = OpAccessChain %_ptr_Function__arr_int_uint_2 %224 %231
OpStore %242 %240 None
OpBranch %228
%228 = OpLabel
%232 = OpIAdd %uint %231 %uint_1
OpBranch %229
%230 = OpLabel
%233 = OpLoad %_arr__arr_int_uint_2_uint_3 %224 None
OpReturnValue %233
OpFunctionEnd
%tint_convert_explicit_layout_3 = OpFunction %_arr_int_uint_2 None %245
%tint_source_3 = OpFunctionParameter %_arr_int_uint_2_0
%246 = OpLabel
%247 = OpVariable %_ptr_Function__arr_int_uint_2_0 Function
%248 = OpVariable %_ptr_Function__arr_int_uint_2 Function %249
OpStore %247 %tint_source_3
OpBranch %250
%250 = OpLabel
OpBranch %253
%253 = OpLabel
%255 = OpPhi %uint %uint_0 %250 %256 %252
OpLoopMerge %254 %252 None
OpBranch %251
%251 = OpLabel
%258 = OpUGreaterThanEqual %bool %255 %uint_2
OpSelectionMerge %259 None
OpBranchConditional %258 %260 %259
%260 = OpLabel
OpBranch %254
%259 = OpLabel
%261 = OpAccessChain %_ptr_Function_int %247 %255
%263 = OpLoad %int %261 None
%264 = OpAccessChain %_ptr_Function_int %248 %255
OpStore %264 %263 None
OpBranch %252
%252 = OpLabel
%256 = OpIAdd %uint %255 %uint_1
OpBranch %253
%254 = OpLabel
%257 = OpLoad %_arr_int_uint_2 %248 None
OpReturnValue %257
OpFunctionEnd