; SPIR-V
; Version: 1.3
; Generator: Unknown(30017); 21022
; Bound: 79
; Schema: 0
OpCapability Shader
OpCapability StorageBufferArrayDynamicIndexing
OpCapability RawAccessChainsNV
OpExtension "SPV_NV_raw_access_chains"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %3 "main" %14
OpExecutionMode %3 LocalSize 64 1 1
OpName %3 "main"
OpName %7 "SSBO"
OpDecorate %6 ArrayStride 4
OpMemberDecorate %7 0 Offset 0
OpDecorate %7 Block
OpDecorate %11 DescriptorSet 0
OpDecorate %11 Binding 0
OpDecorate %14 BuiltIn GlobalInvocationId
%1 = OpTypeVoid
%2 = OpTypeFunction %1
%5 = OpTypeInt 32 0
%6 = OpTypeRuntimeArray %5
%7 = OpTypeStruct %6
%8 = OpConstant %5 4
%9 = OpTypeArray %7 %8
%10 = OpTypePointer StorageBuffer %9
%11 = OpVariable %10 StorageBuffer
%12 = OpTypeVector %5 3
%13 = OpTypePointer Input %12
%14 = OpVariable %13 Input
%15 = OpTypePointer Input %5
%17 = OpConstant %5 0
%20 = OpConstant %5 2
%21 = OpTypePointer StorageBuffer %7
%23 = OpTypeFloat 32
%24 = OpTypeVector %23 3
%25 = OpTypePointer StorageBuffer %24
%32 = OpConstant %23 4
%38 = OpConstant %5 3
%40 = OpConstant %5 1
%52 = OpConstant %5 12
%67 = OpConstant %5 16
%3 = OpFunction %1 None %2
%4 = OpLabel
OpBranch %77
%77 = OpLabel
%16 = OpAccessChain %15 %14 %17
%18 = OpLoad %5 %16
%19 = OpShiftLeftLogical %5 %18 %20
%22 = OpAccessChain %21 %11 %17
%26 = OpRawAccessChainNV %25 %22 %17 %17 %19 RobustnessPerComponentNV
%27 = OpLoad %24 %26 Aligned 4
%28 = OpCompositeExtract %23 %27 0
%29 = OpCompositeExtract %23 %27 1
%30 = OpCompositeExtract %23 %27 2
%31 = OpFAdd %23 %28 %32
%33 = OpFAdd %23 %29 %32
%34 = OpFAdd %23 %30 %32
%35 = OpRawAccessChainNV %25 %22 %17 %17 %19 RobustnessPerComponentNV
%36 = OpCompositeConstruct %24 %31 %33 %34
OpStore %35 %36 Aligned 4
%37 = OpShiftLeftLogical %5 %18 %38
%39 = OpAccessChain %21 %11 %40
%41 = OpRawAccessChainNV %25 %39 %17 %17 %37 RobustnessPerComponentNV
%42 = OpLoad %24 %41 Aligned 8
%43 = OpCompositeExtract %23 %42 0
%44 = OpCompositeExtract %23 %42 1
%45 = OpCompositeExtract %23 %42 2
%46 = OpFAdd %23 %43 %32
%47 = OpFAdd %23 %44 %32
%48 = OpFAdd %23 %45 %32
%49 = OpRawAccessChainNV %25 %39 %17 %17 %37 RobustnessPerComponentNV
%50 = OpCompositeConstruct %24 %46 %47 %48
OpStore %49 %50 Aligned 8
%51 = OpIMul %5 %18 %52
%53 = OpAccessChain %21 %11 %20
%54 = OpRawAccessChainNV %25 %53 %17 %17 %51 RobustnessPerComponentNV
%55 = OpLoad %24 %54 Aligned 4
%56 = OpCompositeExtract %23 %55 0
%57 = OpCompositeExtract %23 %55 1
%58 = OpCompositeExtract %23 %55 2
%59 = OpFAdd %23 %56 %32
%60 = OpFAdd %23 %57 %32
%61 = OpFAdd %23 %58 %32
%62 = OpRawAccessChainNV %25 %53 %17 %17 %51 RobustnessPerComponentNV
%63 = OpCompositeConstruct %24 %59 %60 %61
OpStore %62 %63 Aligned 4
%64 = OpShiftLeftLogical %5 %18 %8
%65 = OpAccessChain %21 %11 %38
%66 = OpRawAccessChainNV %25 %65 %67 %18 %17 RobustnessPerElementNV
%68 = OpLoad %24 %66 Aligned 16
%69 = OpCompositeExtract %23 %68 0
%70 = OpCompositeExtract %23 %68 1
%71 = OpCompositeExtract %23 %68 2
%72 = OpFAdd %23 %69 %32
%73 = OpFAdd %23 %70 %32
%74 = OpFAdd %23 %71 %32
%75 = OpRawAccessChainNV %25 %65 %67 %18 %17 RobustnessPerElementNV
%76 = OpCompositeConstruct %24 %72 %73 %74
OpStore %75 %76 Aligned 16
OpReturn
OpFunctionEnd

