; SPIR-V
; Version: 1.1
; Generator: rspirv
; Bound: 41
OpCapability Shader
OpExtension "SPV_KHR_storage_buffer_storage_class"
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %17 "main" %25
OpExecutionMode %17 LocalSize 1 1 1
OpMemberName %10 0 "arr"
OpMemberName %10 1 "atom"
OpMemberName %10 2 "atom_arr"
OpName %10 "WStruct"
OpName %11 "w_mem"
OpName %13 "output"
OpName %17 "main"
OpDecorate %4 ArrayStride 4
OpDecorate %7 ArrayStride 4
OpDecorate %9 ArrayStride 32
OpMemberDecorate %10 0 Offset 0
OpMemberDecorate %10 1 Offset 2048
OpMemberDecorate %10 2 Offset 2052
OpDecorate %13 DescriptorSet 0
OpDecorate %13 Binding 0
OpDecorate %14 Block
OpMemberDecorate %14 0 Offset 0
OpDecorate %25 BuiltIn LocalInvocationId
%2 = OpTypeVoid
%3 = OpTypeInt 32 0
%5 = OpConstant  %3  512
%4 = OpTypeArray %3 %5
%6 = OpTypeInt 32 1
%8 = OpConstant  %3  8
%7 = OpTypeArray %6 %8
%9 = OpTypeArray %7 %8
%10 = OpTypeStruct %4 %6 %9
%12 = OpTypePointer Workgroup %10
%11 = OpVariable  %12  Workgroup
%14 = OpTypeStruct %4
%15 = OpTypePointer StorageBuffer %14
%13 = OpVariable  %15  StorageBuffer
%18 = OpTypeFunction %2
%19 = OpTypePointer StorageBuffer %4
%20 = OpConstant  %3  0
%23 = OpConstantNull  %10
%24 = OpTypeVector %3 3
%26 = OpTypePointer Input %24
%25 = OpVariable  %26  Input
%28 = OpConstantNull  %24
%30 = OpTypeBool
%29 = OpTypeVector %30 3
%35 = OpConstant  %3  2
%36 = OpConstant  %3  264
%38 = OpTypePointer Workgroup %4
%17 = OpFunction  %2  None %18
%16 = OpLabel
%21 = OpAccessChain  %19  %13 %20
OpBranch %22
%22 = OpLabel
%27 = OpLoad  %24  %25
%31 = OpIEqual  %29  %27 %28
%32 = OpAll  %30  %31
OpSelectionMerge %33 None
OpBranchConditional %32 %34 %33
%34 = OpLabel
OpStore %11 %23
OpBranch %33
%33 = OpLabel
OpControlBarrier %35 %35 %36
OpBranch %37
%37 = OpLabel
%39 = OpAccessChain  %38  %11 %20
%40 = OpLoad  %4  %39
OpStore %21 %40
OpReturn
OpFunctionEnd