; SPIR-V
; Version: 1.3
; Generator: Unknown(30017); 21022
; Bound: 103
; 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 5
%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 4
%25 = OpTypePointer StorageBuffer %24
%33 = OpConstant %23 4
%40 = OpConstant %5 3
%42 = OpConstant %5 1
%56 = OpConstant %5 12
%71 = OpConstant %5 4
%74 = OpConstant %5 16
%87 = OpConstant %5 20
%3 = OpFunction %1 None %2
%4 = OpLabel
OpBranch %101
%101 = 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 = OpCompositeExtract %23 %27 3
%32 = OpFAdd %23 %28 %33
%34 = OpFAdd %23 %29 %33
%35 = OpFAdd %23 %30 %33
%36 = OpFAdd %23 %31 %33
%37 = OpRawAccessChainNV %25 %22 %17 %17 %19 RobustnessPerComponentNV
%38 = OpCompositeConstruct %24 %32 %34 %35 %36
OpStore %37 %38 Aligned 4
%39 = OpShiftLeftLogical %5 %18 %40
%41 = OpAccessChain %21 %11 %42
%43 = OpRawAccessChainNV %25 %41 %17 %17 %39 RobustnessPerComponentNV
%44 = OpLoad %24 %43 Aligned 8
%45 = OpCompositeExtract %23 %44 0
%46 = OpCompositeExtract %23 %44 1
%47 = OpCompositeExtract %23 %44 2
%48 = OpCompositeExtract %23 %44 3
%49 = OpFAdd %23 %45 %33
%50 = OpFAdd %23 %46 %33
%51 = OpFAdd %23 %47 %33
%52 = OpFAdd %23 %48 %33
%53 = OpRawAccessChainNV %25 %41 %17 %17 %39 RobustnessPerComponentNV
%54 = OpCompositeConstruct %24 %49 %50 %51 %52
OpStore %53 %54 Aligned 8
%55 = OpIMul %5 %18 %56
%57 = OpAccessChain %21 %11 %20
%58 = OpRawAccessChainNV %25 %57 %17 %17 %55 RobustnessPerComponentNV
%59 = OpLoad %24 %58 Aligned 4
%60 = OpCompositeExtract %23 %59 0
%61 = OpCompositeExtract %23 %59 1
%62 = OpCompositeExtract %23 %59 2
%63 = OpCompositeExtract %23 %59 3
%64 = OpFAdd %23 %60 %33
%65 = OpFAdd %23 %61 %33
%66 = OpFAdd %23 %62 %33
%67 = OpFAdd %23 %63 %33
%68 = OpRawAccessChainNV %25 %57 %17 %17 %55 RobustnessPerComponentNV
%69 = OpCompositeConstruct %24 %64 %65 %66 %67
OpStore %68 %69 Aligned 4
%70 = OpShiftLeftLogical %5 %18 %71
%72 = OpAccessChain %21 %11 %40
%73 = OpRawAccessChainNV %25 %72 %74 %18 %17 RobustnessPerElementNV
%75 = OpLoad %24 %73 Aligned 16
%76 = OpCompositeExtract %23 %75 0
%77 = OpCompositeExtract %23 %75 1
%78 = OpCompositeExtract %23 %75 2
%79 = OpCompositeExtract %23 %75 3
%80 = OpFAdd %23 %76 %33
%81 = OpFAdd %23 %77 %33
%82 = OpFAdd %23 %78 %33
%83 = OpFAdd %23 %79 %33
%84 = OpRawAccessChainNV %25 %72 %74 %18 %17 RobustnessPerElementNV
%85 = OpCompositeConstruct %24 %80 %81 %82 %83
OpStore %84 %85 Aligned 16
%86 = OpIMul %5 %18 %87
%88 = OpAccessChain %21 %11 %71
%89 = OpRawAccessChainNV %25 %88 %17 %17 %86 RobustnessPerComponentNV
%90 = OpLoad %24 %89 Aligned 4
%91 = OpCompositeExtract %23 %90 0
%92 = OpCompositeExtract %23 %90 1
%93 = OpCompositeExtract %23 %90 2
%94 = OpCompositeExtract %23 %90 3
%95 = OpFAdd %23 %91 %33
%96 = OpFAdd %23 %92 %33
%97 = OpFAdd %23 %93 %33
%98 = OpFAdd %23 %94 %33
%99 = OpRawAccessChainNV %25 %88 %17 %17 %86 RobustnessPerComponentNV
%100 = OpCompositeConstruct %24 %95 %96 %97 %98
OpStore %99 %100 Aligned 4
OpReturn
OpFunctionEnd

