; SPIR-V
; Version: 1.3
; Generator: Unknown(30017); 21022
; Bound: 123
; Schema: 0
OpCapability Shader
OpCapability Float16
OpCapability Int16
OpCapability StorageBuffer16BitAccess
OpCapability DenormPreserve
OpCapability DotProductInput4x8BitPacked
OpCapability DotProduct
OpExtension "SPV_KHR_float_controls"
OpExtension "SPV_KHR_integer_dot_product"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %3 "main" %34
OpExecutionMode %3 LocalSize 64 1 1
OpExecutionMode %3 DenormPreserve 16
OpName %3 "main"
OpName %7 "SSBO"
OpName %11 "SSBO"
OpName %17 "SSBO"
OpName %21 "SSBO"
OpName %25 "SSBO"
OpName %29 "SSBO"
OpDecorate %6 ArrayStride 4
OpMemberDecorate %7 0 Offset 0
OpDecorate %7 Block
OpDecorate %9 DescriptorSet 0
OpDecorate %9 Binding 0
OpDecorate %9 NonWritable
OpDecorate %9 Restrict
OpDecorate %10 ArrayStride 4
OpMemberDecorate %11 0 Offset 0
OpDecorate %11 Block
OpDecorate %13 DescriptorSet 0
OpDecorate %13 Binding 1
OpDecorate %13 NonWritable
OpDecorate %13 Restrict
OpDecorate %16 ArrayStride 4
OpMemberDecorate %17 0 Offset 0
OpDecorate %17 Block
OpDecorate %19 DescriptorSet 0
OpDecorate %19 Binding 2
OpDecorate %19 NonWritable
OpDecorate %19 Restrict
OpDecorate %20 ArrayStride 4
OpMemberDecorate %21 0 Offset 0
OpDecorate %21 Block
OpDecorate %23 DescriptorSet 0
OpDecorate %23 Binding 3
OpDecorate %23 NonWritable
OpDecorate %23 Restrict
OpDecorate %24 ArrayStride 4
OpMemberDecorate %25 0 Offset 0
OpDecorate %25 Block
OpDecorate %27 DescriptorSet 0
OpDecorate %27 Binding 0
OpDecorate %28 ArrayStride 4
OpMemberDecorate %29 0 Offset 0
OpDecorate %29 Block
OpDecorate %31 DescriptorSet 0
OpDecorate %31 Binding 1
OpDecorate %34 BuiltIn GlobalInvocationId
OpDecorate %100 NoContraction
OpDecorate %102 NoContraction
OpDecorate %108 NoContraction
OpDecorate %110 NoContraction
OpDecorate %113 NoContraction
OpDecorate %117 NoContraction
OpDecorate %118 NoContraction
%1 = OpTypeVoid
%2 = OpTypeFunction %1
%5 = OpTypeInt 32 0
%6 = OpTypeRuntimeArray %5
%7 = OpTypeStruct %6
%8 = OpTypePointer StorageBuffer %7
%9 = OpVariable %8 StorageBuffer
%10 = OpTypeRuntimeArray %5
%11 = OpTypeStruct %10
%12 = OpTypePointer StorageBuffer %11
%13 = OpVariable %12 StorageBuffer
%14 = OpTypeInt 16 0
%15 = OpTypeVector %14 2
%16 = OpTypeRuntimeArray %15
%17 = OpTypeStruct %16
%18 = OpTypePointer StorageBuffer %17
%19 = OpVariable %18 StorageBuffer
%20 = OpTypeRuntimeArray %15
%21 = OpTypeStruct %20
%22 = OpTypePointer StorageBuffer %21
%23 = OpVariable %22 StorageBuffer
%24 = OpTypeRuntimeArray %5
%25 = OpTypeStruct %24
%26 = OpTypePointer StorageBuffer %25
%27 = OpVariable %26 StorageBuffer
%28 = OpTypeRuntimeArray %5
%29 = OpTypeStruct %28
%30 = OpTypePointer StorageBuffer %29
%31 = OpVariable %30 StorageBuffer
%32 = OpTypeVector %5 3
%33 = OpTypePointer Input %32
%34 = OpVariable %33 Input
%35 = OpTypePointer Input %5
%37 = OpConstant %5 0
%39 = OpTypePointer StorageBuffer %5
%60 = OpTypeFloat 32
%62 = OpTypePointer StorageBuffer %15
%65 = OpTypeFloat 16
%66 = OpTypeVector %65 2
%71 = OpConstant %65 0x1.8p+1
%79 = OpConstant %65 0x1p+1
%84 = OpTypeVector %60 2
%101 = OpConstant %65 0x1.4p+2
%109 = OpConstant %65 0x1p+2
%3 = OpFunction %1 None %2
%4 = OpLabel
OpBranch %121
%121 = OpLabel
%36 = OpAccessChain %35 %34 %37
%38 = OpLoad %5 %36
%40 = OpAccessChain %39 %27 %37 %38
%41 = OpLoad %5 %40
%42 = OpAccessChain %39 %13 %37 %38
%43 = OpLoad %5 %42
%44 = OpAccessChain %39 %9 %37 %38
%45 = OpLoad %5 %44
%46 = OpUDot %5 %45 %43 PackedVectorFormat4x8Bit
%47 = OpIAdd %5 %41 %46
%48 = OpAccessChain %39 %27 %37 %38
OpStore %48 %47
%49 = OpAccessChain %39 %27 %37 %38
%50 = OpLoad %5 %49
%51 = OpAccessChain %39 %13 %37 %38
%52 = OpLoad %5 %51
%53 = OpAccessChain %39 %9 %37 %38
%54 = OpLoad %5 %53
%55 = OpSDot %5 %54 %52 PackedVectorFormat4x8Bit
%56 = OpIAdd %5 %50 %55
%57 = OpAccessChain %39 %27 %37 %38
OpStore %57 %56
%58 = OpAccessChain %39 %31 %37 %38
%59 = OpLoad %5 %58
%61 = OpBitcast %60 %59
%63 = OpAccessChain %62 %23 %37 %38
%64 = OpLoad %15 %63
%67 = OpBitcast %66 %64
%68 = OpCompositeExtract %65 %67 0
%69 = OpCompositeExtract %65 %67 1
%70 = OpFMul %65 %68 %71
%72 = OpFMul %65 %69 %71
%73 = OpAccessChain %62 %19 %37 %38
%74 = OpLoad %15 %73
%75 = OpBitcast %66 %74
%76 = OpCompositeExtract %65 %75 0
%77 = OpCompositeExtract %65 %75 1
%78 = OpFMul %65 %76 %79
%80 = OpFMul %65 %77 %79
%81 = OpCompositeConstruct %66 %78 %80
%82 = OpCompositeConstruct %66 %70 %72
%83 = OpFMul %66 %81 %82
%85 = OpFConvert %84 %83
%86 = OpCompositeExtract %60 %85 0
%87 = OpCompositeExtract %60 %85 1
%88 = OpFAdd %60 %86 %87
%89 = OpFAdd %60 %61 %88
%90 = OpBitcast %5 %89
%91 = OpAccessChain %39 %31 %37 %38
OpStore %91 %90
%92 = OpAccessChain %39 %31 %37 %38
%93 = OpLoad %5 %92
%94 = OpBitcast %60 %93
%95 = OpAccessChain %62 %23 %37 %38
%96 = OpLoad %15 %95
%97 = OpBitcast %66 %96
%98 = OpCompositeExtract %65 %97 0
%99 = OpCompositeExtract %65 %97 1
%100 = OpFMul %65 %98 %101
%102 = OpFMul %65 %99 %101
%103 = OpAccessChain %62 %19 %37 %38
%104 = OpLoad %15 %103
%105 = OpBitcast %66 %104
%106 = OpCompositeExtract %65 %105 0
%107 = OpCompositeExtract %65 %105 1
%108 = OpFMul %65 %106 %109
%110 = OpFMul %65 %107 %109
%111 = OpCompositeConstruct %66 %108 %110
%112 = OpCompositeConstruct %66 %100 %102
%113 = OpFMul %66 %111 %112
%114 = OpFConvert %84 %113
%115 = OpCompositeExtract %60 %114 0
%116 = OpCompositeExtract %60 %114 1
%117 = OpFAdd %60 %115 %116
%118 = OpFAdd %60 %94 %117
%119 = OpBitcast %5 %118
%120 = OpAccessChain %39 %31 %37 %38
OpStore %120 %119
OpReturn
OpFunctionEnd

