#version 460
#extension GL_EXT_shader_explicit_arithmetic_types_int16 : require
#extension GL_EXT_shader_16bit_storage : require
#if defined(GL_AMD_gpu_shader_half_float)
#extension GL_AMD_gpu_shader_half_float : require
#elif defined(GL_EXT_shader_explicit_arithmetic_types_float16)
#extension GL_EXT_shader_explicit_arithmetic_types_float16 : require
#else
#error No extension available for FP16.
#endif
#extension GL_EXT_scalar_block_layout : require
layout(local_size_x = 2, local_size_y = 1, local_size_z = 1) in;

layout(set = 0, binding = 0, std430) readonly buffer SSBO
{
    uint16_t _m0[];
} _9;

layout(set = 0, binding = 0, std430) readonly buffer _12_14
{
    u16vec2 _m0[];
} _14;

layout(set = 0, binding = 0, scalar) readonly buffer _17_19
{
    u16vec3 _m0[];
} _19;

layout(set = 0, binding = 0, std430) readonly buffer _22_24
{
    u16vec4 _m0[];
} _24;

layout(set = 0, binding = 0, std430) readonly buffer _27_29
{
    uint _m0[];
} _29;

layout(set = 0, binding = 0, std430) readonly buffer _32_34
{
    uvec2 _m0[];
} _34;

layout(set = 0, binding = 0, scalar) readonly buffer _37_39
{
    uvec3 _m0[];
} _39;

layout(set = 0, binding = 0, std430) readonly buffer _42_44
{
    uvec4 _m0[];
} _44;

layout(set = 0, binding = 0, std430) readonly buffer _47_49
{
    double _m0[];
} _49;

layout(set = 0, binding = 0, std430) readonly buffer _52_54
{
    dvec2 _m0[];
} _54;

layout(set = 0, binding = 0, scalar) readonly buffer _57_59
{
    dvec3 _m0[];
} _59;

layout(set = 0, binding = 0, std430) readonly buffer _62_64
{
    dvec4 _m0[];
} _64;

layout(set = 0, binding = 1, std430) writeonly buffer _66_68
{
    uint16_t _m0[];
} _68;

layout(set = 0, binding = 1, std430) writeonly buffer _70_72
{
    u16vec2 _m0[];
} _72;

layout(set = 0, binding = 1, scalar) writeonly buffer _74_76
{
    u16vec3 _m0[];
} _76;

layout(set = 0, binding = 1, std430) writeonly buffer _78_80
{
    u16vec4 _m0[];
} _80;

layout(set = 0, binding = 1, std430) writeonly buffer _82_84
{
    uint _m0[];
} _84;

layout(set = 0, binding = 1, std430) writeonly buffer _86_88
{
    uvec2 _m0[];
} _88;

layout(set = 0, binding = 1, scalar) writeonly buffer _90_92
{
    uvec3 _m0[];
} _92;

layout(set = 0, binding = 1, std430) writeonly buffer _94_96
{
    uvec4 _m0[];
} _96;

layout(set = 0, binding = 1, std430) writeonly buffer _98_100
{
    double _m0[];
} _100;

layout(set = 0, binding = 1, std430) writeonly buffer _102_104
{
    dvec2 _m0[];
} _104;

layout(set = 0, binding = 1, scalar) writeonly buffer _106_108
{
    dvec3 _m0[];
} _108;

layout(set = 0, binding = 1, std430) writeonly buffer _110_112
{
    dvec4 _m0[];
} _112;

void main()
{
    uint _121 = gl_LocalInvocationIndex + gl_GlobalInvocationID.x;
    _112._m0[(_121 * 3u) + 3u] = dvec4(_64._m0[(_121 * 3u) + 3u]);
    _108._m0[(_121 * 4u) + 4u] = dvec3(_59._m0[(_121 * 4u) + 4u]);
    _104._m0[(_121 * 6u) + 6u] = dvec2(_54._m0[(_121 * 6u) + 6u]);
    _100._m0[(_121 * 12u) + 12u] = _49._m0[(_121 * 12u) + 12u];
    vec4 _180 = uintBitsToFloat(_44._m0[(_121 * 6u) + 6u]);
    _96._m0[(_121 * 6u) + 6u] = uvec4(floatBitsToUint(_180.x), floatBitsToUint(_180.y), floatBitsToUint(_180.z), floatBitsToUint(_180.w));
    vec3 _200 = uintBitsToFloat(_39._m0[(_121 * 8u) + 8u]);
    _92._m0[(_121 * 8u) + 8u] = uvec3(floatBitsToUint(_200.x), floatBitsToUint(_200.y), floatBitsToUint(_200.z));
    vec2 _217 = uintBitsToFloat(_34._m0[(_121 * 12u) + 12u]);
    _88._m0[(_121 * 12u) + 12u] = uvec2(floatBitsToUint(_217.x), floatBitsToUint(_217.y));
    _84._m0[(_121 * 24u) + 24u] = floatBitsToUint(uintBitsToFloat(_29._m0[(_121 * 24u) + 24u]));
    f16vec4 _244 = uint16BitsToFloat16(_24._m0[(_121 * 12u) + 12u]);
    _80._m0[(_121 * 12u) + 12u] = u16vec4(float16BitsToUint16(_244.x), float16BitsToUint16(_244.y), float16BitsToUint16(_244.z), float16BitsToUint16(_244.w));
    f16vec3 _264 = uint16BitsToFloat16(_19._m0[(_121 * 16u) + 16u]);
    _76._m0[(_121 * 16u) + 16u] = u16vec3(float16BitsToUint16(_264.x), float16BitsToUint16(_264.y), float16BitsToUint16(_264.z));
    f16vec2 _281 = uint16BitsToFloat16(_14._m0[(_121 * 24u) + 24u]);
    _72._m0[(_121 * 24u) + 24u] = u16vec2(float16BitsToUint16(_281.x), float16BitsToUint16(_281.y));
    _68._m0[(_121 * 48u) + 48u] = float16BitsToUint16(uint16BitsToFloat16(_9._m0[(_121 * 48u) + 48u]));
    _112._m0[6u] = dvec4(_64._m0[6u]);
    vec4 _311 = uintBitsToFloat(_44._m0[12u]);
    _96._m0[12u] = uvec4(floatBitsToUint(_311.x), floatBitsToUint(_311.y), floatBitsToUint(_311.z), floatBitsToUint(_311.w));
    f16vec4 _324 = uint16BitsToFloat16(_24._m0[24u]);
    _80._m0[24u] = u16vec4(float16BitsToUint16(_324.x), float16BitsToUint16(_324.y), float16BitsToUint16(_324.z), float16BitsToUint16(_324.w));
    _112._m0[gl_GlobalInvocationID.x * 6u] = dvec4(_64._m0[gl_GlobalInvocationID.x * 6u]);
    vec4 _350 = uintBitsToFloat(_44._m0[gl_GlobalInvocationID.x * 12u]);
    _96._m0[gl_GlobalInvocationID.x * 12u] = uvec4(floatBitsToUint(_350.x), floatBitsToUint(_350.y), floatBitsToUint(_350.z), floatBitsToUint(_350.w));
    f16vec4 _365 = uint16BitsToFloat16(_24._m0[gl_GlobalInvocationID.x * 24u]);
    _80._m0[gl_GlobalInvocationID.x * 24u] = u16vec4(float16BitsToUint16(_365.x), float16BitsToUint16(_365.y), float16BitsToUint16(_365.z), float16BitsToUint16(_365.w));
}


#if 0
// SPIR-V disassembly
; SPIR-V
; Version: 1.3
; Generator: Unknown(30017); 21022
; Bound: 379
; Schema: 0
OpCapability Shader
OpCapability Float16
OpCapability Float64
OpCapability Int16
OpCapability StorageBuffer16BitAccess
OpCapability DenormPreserve
OpExtension "SPV_KHR_float_controls"
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %3 "main" %114 %119
OpExecutionMode %3 LocalSize 2 1 1
OpExecutionMode %3 DenormPreserve 16
OpExecutionMode %3 DenormPreserve 64
OpName %3 "main"
OpName %7 "SSBO"
OpName %12 "SSBO"
OpName %17 "SSBO"
OpName %22 "SSBO"
OpName %27 "SSBO"
OpName %32 "SSBO"
OpName %37 "SSBO"
OpName %42 "SSBO"
OpName %47 "SSBO"
OpName %52 "SSBO"
OpName %57 "SSBO"
OpName %62 "SSBO"
OpName %66 "SSBO"
OpName %70 "SSBO"
OpName %74 "SSBO"
OpName %78 "SSBO"
OpName %82 "SSBO"
OpName %86 "SSBO"
OpName %90 "SSBO"
OpName %94 "SSBO"
OpName %98 "SSBO"
OpName %102 "SSBO"
OpName %106 "SSBO"
OpName %110 "SSBO"
OpDecorate %6 ArrayStride 2
OpMemberDecorate %7 0 Offset 0
OpDecorate %7 Block
OpDecorate %11 ArrayStride 4
OpMemberDecorate %12 0 Offset 0
OpDecorate %12 Block
OpDecorate %16 ArrayStride 6
OpMemberDecorate %17 0 Offset 0
OpDecorate %17 Block
OpDecorate %21 ArrayStride 8
OpMemberDecorate %22 0 Offset 0
OpDecorate %22 Block
OpDecorate %26 ArrayStride 4
OpMemberDecorate %27 0 Offset 0
OpDecorate %27 Block
OpDecorate %31 ArrayStride 8
OpMemberDecorate %32 0 Offset 0
OpDecorate %32 Block
OpDecorate %36 ArrayStride 12
OpMemberDecorate %37 0 Offset 0
OpDecorate %37 Block
OpDecorate %41 ArrayStride 16
OpMemberDecorate %42 0 Offset 0
OpDecorate %42 Block
OpDecorate %46 ArrayStride 8
OpMemberDecorate %47 0 Offset 0
OpDecorate %47 Block
OpDecorate %51 ArrayStride 16
OpMemberDecorate %52 0 Offset 0
OpDecorate %52 Block
OpDecorate %56 ArrayStride 24
OpMemberDecorate %57 0 Offset 0
OpDecorate %57 Block
OpDecorate %61 ArrayStride 32
OpMemberDecorate %62 0 Offset 0
OpDecorate %62 Block
OpDecorate %9 DescriptorSet 0
OpDecorate %9 Binding 0
OpDecorate %9 NonWritable
OpDecorate %9 Aliased
OpDecorate %14 DescriptorSet 0
OpDecorate %14 Binding 0
OpDecorate %14 NonWritable
OpDecorate %14 Aliased
OpDecorate %19 DescriptorSet 0
OpDecorate %19 Binding 0
OpDecorate %19 NonWritable
OpDecorate %19 Aliased
OpDecorate %24 DescriptorSet 0
OpDecorate %24 Binding 0
OpDecorate %24 NonWritable
OpDecorate %24 Aliased
OpDecorate %29 DescriptorSet 0
OpDecorate %29 Binding 0
OpDecorate %29 NonWritable
OpDecorate %29 Aliased
OpDecorate %34 DescriptorSet 0
OpDecorate %34 Binding 0
OpDecorate %34 NonWritable
OpDecorate %34 Aliased
OpDecorate %39 DescriptorSet 0
OpDecorate %39 Binding 0
OpDecorate %39 NonWritable
OpDecorate %39 Aliased
OpDecorate %44 DescriptorSet 0
OpDecorate %44 Binding 0
OpDecorate %44 NonWritable
OpDecorate %44 Aliased
OpDecorate %49 DescriptorSet 0
OpDecorate %49 Binding 0
OpDecorate %49 NonWritable
OpDecorate %49 Aliased
OpDecorate %54 DescriptorSet 0
OpDecorate %54 Binding 0
OpDecorate %54 NonWritable
OpDecorate %54 Aliased
OpDecorate %59 DescriptorSet 0
OpDecorate %59 Binding 0
OpDecorate %59 NonWritable
OpDecorate %59 Aliased
OpDecorate %64 DescriptorSet 0
OpDecorate %64 Binding 0
OpDecorate %64 NonWritable
OpDecorate %64 Aliased
OpDecorate %65 ArrayStride 2
OpMemberDecorate %66 0 Offset 0
OpDecorate %66 Block
OpDecorate %69 ArrayStride 4
OpMemberDecorate %70 0 Offset 0
OpDecorate %70 Block
OpDecorate %73 ArrayStride 6
OpMemberDecorate %74 0 Offset 0
OpDecorate %74 Block
OpDecorate %77 ArrayStride 8
OpMemberDecorate %78 0 Offset 0
OpDecorate %78 Block
OpDecorate %81 ArrayStride 4
OpMemberDecorate %82 0 Offset 0
OpDecorate %82 Block
OpDecorate %85 ArrayStride 8
OpMemberDecorate %86 0 Offset 0
OpDecorate %86 Block
OpDecorate %89 ArrayStride 12
OpMemberDecorate %90 0 Offset 0
OpDecorate %90 Block
OpDecorate %93 ArrayStride 16
OpMemberDecorate %94 0 Offset 0
OpDecorate %94 Block
OpDecorate %97 ArrayStride 8
OpMemberDecorate %98 0 Offset 0
OpDecorate %98 Block
OpDecorate %101 ArrayStride 16
OpMemberDecorate %102 0 Offset 0
OpDecorate %102 Block
OpDecorate %105 ArrayStride 24
OpMemberDecorate %106 0 Offset 0
OpDecorate %106 Block
OpDecorate %109 ArrayStride 32
OpMemberDecorate %110 0 Offset 0
OpDecorate %110 Block
OpDecorate %68 DescriptorSet 0
OpDecorate %68 Binding 1
OpDecorate %68 NonReadable
OpDecorate %68 Aliased
OpDecorate %72 DescriptorSet 0
OpDecorate %72 Binding 1
OpDecorate %72 NonReadable
OpDecorate %72 Aliased
OpDecorate %76 DescriptorSet 0
OpDecorate %76 Binding 1
OpDecorate %76 NonReadable
OpDecorate %76 Aliased
OpDecorate %80 DescriptorSet 0
OpDecorate %80 Binding 1
OpDecorate %80 NonReadable
OpDecorate %80 Aliased
OpDecorate %84 DescriptorSet 0
OpDecorate %84 Binding 1
OpDecorate %84 NonReadable
OpDecorate %84 Aliased
OpDecorate %88 DescriptorSet 0
OpDecorate %88 Binding 1
OpDecorate %88 NonReadable
OpDecorate %88 Aliased
OpDecorate %92 DescriptorSet 0
OpDecorate %92 Binding 1
OpDecorate %92 NonReadable
OpDecorate %92 Aliased
OpDecorate %96 DescriptorSet 0
OpDecorate %96 Binding 1
OpDecorate %96 NonReadable
OpDecorate %96 Aliased
OpDecorate %100 DescriptorSet 0
OpDecorate %100 Binding 1
OpDecorate %100 NonReadable
OpDecorate %100 Aliased
OpDecorate %104 DescriptorSet 0
OpDecorate %104 Binding 1
OpDecorate %104 NonReadable
OpDecorate %104 Aliased
OpDecorate %108 DescriptorSet 0
OpDecorate %108 Binding 1
OpDecorate %108 NonReadable
OpDecorate %108 Aliased
OpDecorate %112 DescriptorSet 0
OpDecorate %112 Binding 1
OpDecorate %112 NonReadable
OpDecorate %112 Aliased
OpDecorate %114 BuiltIn GlobalInvocationId
OpDecorate %119 BuiltIn LocalInvocationIndex
%1 = OpTypeVoid
%2 = OpTypeFunction %1
%5 = OpTypeInt 16 0
%6 = OpTypeRuntimeArray %5
%7 = OpTypeStruct %6
%8 = OpTypePointer StorageBuffer %7
%9 = OpVariable %8 StorageBuffer
%10 = OpTypeVector %5 2
%11 = OpTypeRuntimeArray %10
%12 = OpTypeStruct %11
%13 = OpTypePointer StorageBuffer %12
%14 = OpVariable %13 StorageBuffer
%15 = OpTypeVector %5 3
%16 = OpTypeRuntimeArray %15
%17 = OpTypeStruct %16
%18 = OpTypePointer StorageBuffer %17
%19 = OpVariable %18 StorageBuffer
%20 = OpTypeVector %5 4
%21 = OpTypeRuntimeArray %20
%22 = OpTypeStruct %21
%23 = OpTypePointer StorageBuffer %22
%24 = OpVariable %23 StorageBuffer
%25 = OpTypeInt 32 0
%26 = OpTypeRuntimeArray %25
%27 = OpTypeStruct %26
%28 = OpTypePointer StorageBuffer %27
%29 = OpVariable %28 StorageBuffer
%30 = OpTypeVector %25 2
%31 = OpTypeRuntimeArray %30
%32 = OpTypeStruct %31
%33 = OpTypePointer StorageBuffer %32
%34 = OpVariable %33 StorageBuffer
%35 = OpTypeVector %25 3
%36 = OpTypeRuntimeArray %35
%37 = OpTypeStruct %36
%38 = OpTypePointer StorageBuffer %37
%39 = OpVariable %38 StorageBuffer
%40 = OpTypeVector %25 4
%41 = OpTypeRuntimeArray %40
%42 = OpTypeStruct %41
%43 = OpTypePointer StorageBuffer %42
%44 = OpVariable %43 StorageBuffer
%45 = OpTypeFloat 64
%46 = OpTypeRuntimeArray %45
%47 = OpTypeStruct %46
%48 = OpTypePointer StorageBuffer %47
%49 = OpVariable %48 StorageBuffer
%50 = OpTypeVector %45 2
%51 = OpTypeRuntimeArray %50
%52 = OpTypeStruct %51
%53 = OpTypePointer StorageBuffer %52
%54 = OpVariable %53 StorageBuffer
%55 = OpTypeVector %45 3
%56 = OpTypeRuntimeArray %55
%57 = OpTypeStruct %56
%58 = OpTypePointer StorageBuffer %57
%59 = OpVariable %58 StorageBuffer
%60 = OpTypeVector %45 4
%61 = OpTypeRuntimeArray %60
%62 = OpTypeStruct %61
%63 = OpTypePointer StorageBuffer %62
%64 = OpVariable %63 StorageBuffer
%65 = OpTypeRuntimeArray %5
%66 = OpTypeStruct %65
%67 = OpTypePointer StorageBuffer %66
%68 = OpVariable %67 StorageBuffer
%69 = OpTypeRuntimeArray %10
%70 = OpTypeStruct %69
%71 = OpTypePointer StorageBuffer %70
%72 = OpVariable %71 StorageBuffer
%73 = OpTypeRuntimeArray %15
%74 = OpTypeStruct %73
%75 = OpTypePointer StorageBuffer %74
%76 = OpVariable %75 StorageBuffer
%77 = OpTypeRuntimeArray %20
%78 = OpTypeStruct %77
%79 = OpTypePointer StorageBuffer %78
%80 = OpVariable %79 StorageBuffer
%81 = OpTypeRuntimeArray %25
%82 = OpTypeStruct %81
%83 = OpTypePointer StorageBuffer %82
%84 = OpVariable %83 StorageBuffer
%85 = OpTypeRuntimeArray %30
%86 = OpTypeStruct %85
%87 = OpTypePointer StorageBuffer %86
%88 = OpVariable %87 StorageBuffer
%89 = OpTypeRuntimeArray %35
%90 = OpTypeStruct %89
%91 = OpTypePointer StorageBuffer %90
%92 = OpVariable %91 StorageBuffer
%93 = OpTypeRuntimeArray %40
%94 = OpTypeStruct %93
%95 = OpTypePointer StorageBuffer %94
%96 = OpVariable %95 StorageBuffer
%97 = OpTypeRuntimeArray %45
%98 = OpTypeStruct %97
%99 = OpTypePointer StorageBuffer %98
%100 = OpVariable %99 StorageBuffer
%101 = OpTypeRuntimeArray %50
%102 = OpTypeStruct %101
%103 = OpTypePointer StorageBuffer %102
%104 = OpVariable %103 StorageBuffer
%105 = OpTypeRuntimeArray %55
%106 = OpTypeStruct %105
%107 = OpTypePointer StorageBuffer %106
%108 = OpVariable %107 StorageBuffer
%109 = OpTypeRuntimeArray %60
%110 = OpTypeStruct %109
%111 = OpTypePointer StorageBuffer %110
%112 = OpVariable %111 StorageBuffer
%113 = OpTypePointer Input %35
%114 = OpVariable %113 Input
%115 = OpTypePointer Input %25
%117 = OpConstant %25 0
%119 = OpVariable %115 Input
%123 = OpConstant %25 96
%126 = OpConstant %25 3
%128 = OpTypePointer StorageBuffer %60
%140 = OpConstant %25 4
%142 = OpTypePointer StorageBuffer %55
%153 = OpConstant %25 6
%155 = OpTypePointer StorageBuffer %50
%165 = OpConstant %25 12
%167 = OpTypePointer StorageBuffer %45
%175 = OpTypePointer StorageBuffer %40
%178 = OpTypeFloat 32
%179 = OpTypeVector %178 4
%194 = OpConstant %25 8
%196 = OpTypePointer StorageBuffer %35
%199 = OpTypeVector %178 3
%213 = OpTypePointer StorageBuffer %30
%216 = OpTypeVector %178 2
%227 = OpConstant %25 24
%229 = OpTypePointer StorageBuffer %25
%239 = OpTypePointer StorageBuffer %20
%242 = OpTypeFloat 16
%243 = OpTypeVector %242 4
%258 = OpConstant %25 16
%260 = OpTypePointer StorageBuffer %15
%263 = OpTypeVector %242 3
%277 = OpTypePointer StorageBuffer %10
%280 = OpTypeVector %242 2
%291 = OpConstant %25 48
%293 = OpTypePointer StorageBuffer %5
%336 = OpConstant %25 192
%3 = OpFunction %1 None %2
%4 = OpLabel
OpBranch %377
%377 = OpLabel
%116 = OpAccessChain %115 %114 %117
%118 = OpLoad %25 %116
%120 = OpLoad %25 %119
%121 = OpIAdd %25 %120 %118
%122 = OpIMul %25 %121 %123
%124 = OpIAdd %25 %122 %123
%125 = OpIMul %25 %121 %126
%127 = OpIAdd %25 %125 %126
%129 = OpAccessChain %128 %64 %117 %127
%130 = OpLoad %60 %129
%131 = OpCompositeExtract %45 %130 0
%132 = OpCompositeExtract %45 %130 1
%133 = OpCompositeExtract %45 %130 2
%134 = OpCompositeExtract %45 %130 3
%135 = OpIMul %25 %121 %126
%136 = OpIAdd %25 %135 %126
%137 = OpCompositeConstruct %60 %131 %132 %133 %134
%138 = OpAccessChain %128 %112 %117 %136
OpStore %138 %137
%139 = OpIMul %25 %121 %140
%141 = OpIAdd %25 %139 %140
%143 = OpAccessChain %142 %59 %117 %141
%144 = OpLoad %55 %143
%145 = OpCompositeExtract %45 %144 0
%146 = OpCompositeExtract %45 %144 1
%147 = OpCompositeExtract %45 %144 2
%148 = OpIMul %25 %121 %140
%149 = OpIAdd %25 %148 %140
%150 = OpCompositeConstruct %55 %145 %146 %147
%151 = OpAccessChain %142 %108 %117 %149
OpStore %151 %150
%152 = OpIMul %25 %121 %153
%154 = OpIAdd %25 %152 %153
%156 = OpAccessChain %155 %54 %117 %154
%157 = OpLoad %50 %156
%158 = OpCompositeExtract %45 %157 0
%159 = OpCompositeExtract %45 %157 1
%160 = OpIMul %25 %121 %153
%161 = OpIAdd %25 %160 %153
%162 = OpCompositeConstruct %50 %158 %159
%163 = OpAccessChain %155 %104 %117 %161
OpStore %163 %162
%164 = OpIMul %25 %121 %165
%166 = OpIAdd %25 %164 %165
%168 = OpAccessChain %167 %49 %117 %166
%169 = OpLoad %45 %168
%170 = OpIMul %25 %121 %165
%171 = OpIAdd %25 %170 %165
%172 = OpAccessChain %167 %100 %117 %171
OpStore %172 %169
%173 = OpIMul %25 %121 %153
%174 = OpIAdd %25 %173 %153
%176 = OpAccessChain %175 %44 %117 %174
%177 = OpLoad %40 %176
%180 = OpBitcast %179 %177
%181 = OpCompositeExtract %178 %180 0
%182 = OpCompositeExtract %178 %180 1
%183 = OpCompositeExtract %178 %180 2
%184 = OpCompositeExtract %178 %180 3
%185 = OpIMul %25 %121 %153
%186 = OpIAdd %25 %185 %153
%187 = OpBitcast %25 %181
%188 = OpBitcast %25 %182
%189 = OpBitcast %25 %183
%190 = OpBitcast %25 %184
%191 = OpCompositeConstruct %40 %187 %188 %189 %190
%192 = OpAccessChain %175 %96 %117 %186
OpStore %192 %191
%193 = OpIMul %25 %121 %194
%195 = OpIAdd %25 %193 %194
%197 = OpAccessChain %196 %39 %117 %195
%198 = OpLoad %35 %197
%200 = OpBitcast %199 %198
%201 = OpCompositeExtract %178 %200 0
%202 = OpCompositeExtract %178 %200 1
%203 = OpCompositeExtract %178 %200 2
%204 = OpIMul %25 %121 %194
%205 = OpIAdd %25 %204 %194
%206 = OpBitcast %25 %201
%207 = OpBitcast %25 %202
%208 = OpBitcast %25 %203
%209 = OpCompositeConstruct %35 %206 %207 %208
%210 = OpAccessChain %196 %92 %117 %205
OpStore %210 %209
%211 = OpIMul %25 %121 %165
%212 = OpIAdd %25 %211 %165
%214 = OpAccessChain %213 %34 %117 %212
%215 = OpLoad %30 %214
%217 = OpBitcast %216 %215
%218 = OpCompositeExtract %178 %217 0
%219 = OpCompositeExtract %178 %217 1
%220 = OpIMul %25 %121 %165
%221 = OpIAdd %25 %220 %165
%222 = OpBitcast %25 %218
%223 = OpBitcast %25 %219
%224 = OpCompositeConstruct %30 %222 %223
%225 = OpAccessChain %213 %88 %117 %221
OpStore %225 %224
%226 = OpIMul %25 %121 %227
%228 = OpIAdd %25 %226 %227
%230 = OpAccessChain %229 %29 %117 %228
%231 = OpLoad %25 %230
%232 = OpBitcast %178 %231
%233 = OpIMul %25 %121 %227
%234 = OpIAdd %25 %233 %227
%235 = OpBitcast %25 %232
%236 = OpAccessChain %229 %84 %117 %234
OpStore %236 %235
%237 = OpIMul %25 %121 %165
%238 = OpIAdd %25 %237 %165
%240 = OpAccessChain %239 %24 %117 %238
%241 = OpLoad %20 %240
%244 = OpBitcast %243 %241
%245 = OpCompositeExtract %242 %244 0
%246 = OpCompositeExtract %242 %244 1
%247 = OpCompositeExtract %242 %244 2
%248 = OpCompositeExtract %242 %244 3
%249 = OpIMul %25 %121 %165
%250 = OpIAdd %25 %249 %165
%251 = OpBitcast %5 %245
%252 = OpBitcast %5 %246
%253 = OpBitcast %5 %247
%254 = OpBitcast %5 %248
%255 = OpCompositeConstruct %20 %251 %252 %253 %254
%256 = OpAccessChain %239 %80 %117 %250
OpStore %256 %255
%257 = OpIMul %25 %121 %258
%259 = OpIAdd %25 %257 %258
%261 = OpAccessChain %260 %19 %117 %259
%262 = OpLoad %15 %261
%264 = OpBitcast %263 %262
%265 = OpCompositeExtract %242 %264 0
%266 = OpCompositeExtract %242 %264 1
%267 = OpCompositeExtract %242 %264 2
%268 = OpIMul %25 %121 %258
%269 = OpIAdd %25 %268 %258
%270 = OpBitcast %5 %265
%271 = OpBitcast %5 %266
%272 = OpBitcast %5 %267
%273 = OpCompositeConstruct %15 %270 %271 %272
%274 = OpAccessChain %260 %76 %117 %269
OpStore %274 %273
%275 = OpIMul %25 %121 %227
%276 = OpIAdd %25 %275 %227
%278 = OpAccessChain %277 %14 %117 %276
%279 = OpLoad %10 %278
%281 = OpBitcast %280 %279
%282 = OpCompositeExtract %242 %281 0
%283 = OpCompositeExtract %242 %281 1
%284 = OpIMul %25 %121 %227
%285 = OpIAdd %25 %284 %227
%286 = OpBitcast %5 %282
%287 = OpBitcast %5 %283
%288 = OpCompositeConstruct %10 %286 %287
%289 = OpAccessChain %277 %72 %117 %285
OpStore %289 %288
%290 = OpIMul %25 %121 %291
%292 = OpIAdd %25 %290 %291
%294 = OpAccessChain %293 %9 %117 %292
%295 = OpLoad %5 %294
%296 = OpBitcast %242 %295
%297 = OpIMul %25 %121 %291
%298 = OpIAdd %25 %297 %291
%299 = OpBitcast %5 %296
%300 = OpAccessChain %293 %68 %117 %298
OpStore %300 %299
%301 = OpAccessChain %128 %64 %117 %153
%302 = OpLoad %60 %301
%303 = OpCompositeExtract %45 %302 0
%304 = OpCompositeExtract %45 %302 1
%305 = OpCompositeExtract %45 %302 2
%306 = OpCompositeExtract %45 %302 3
%307 = OpCompositeConstruct %60 %303 %304 %305 %306
%308 = OpAccessChain %128 %112 %117 %153
OpStore %308 %307
%309 = OpAccessChain %175 %44 %117 %165
%310 = OpLoad %40 %309
%311 = OpBitcast %179 %310
%312 = OpCompositeExtract %178 %311 0
%313 = OpCompositeExtract %178 %311 1
%314 = OpCompositeExtract %178 %311 2
%315 = OpCompositeExtract %178 %311 3
%316 = OpBitcast %25 %312
%317 = OpBitcast %25 %313
%318 = OpBitcast %25 %314
%319 = OpBitcast %25 %315
%320 = OpCompositeConstruct %40 %316 %317 %318 %319
%321 = OpAccessChain %175 %96 %117 %165
OpStore %321 %320
%322 = OpAccessChain %239 %24 %117 %227
%323 = OpLoad %20 %322
%324 = OpBitcast %243 %323
%325 = OpCompositeExtract %242 %324 0
%326 = OpCompositeExtract %242 %324 1
%327 = OpCompositeExtract %242 %324 2
%328 = OpCompositeExtract %242 %324 3
%329 = OpBitcast %5 %325
%330 = OpBitcast %5 %326
%331 = OpBitcast %5 %327
%332 = OpBitcast %5 %328
%333 = OpCompositeConstruct %20 %329 %330 %331 %332
%334 = OpAccessChain %239 %80 %117 %227
OpStore %334 %333
%335 = OpIMul %25 %118 %336
%337 = OpIMul %25 %118 %153
%338 = OpAccessChain %128 %64 %117 %337
%339 = OpLoad %60 %338
%340 = OpCompositeExtract %45 %339 0
%341 = OpCompositeExtract %45 %339 1
%342 = OpCompositeExtract %45 %339 2
%343 = OpCompositeExtract %45 %339 3
%344 = OpIMul %25 %118 %153
%345 = OpCompositeConstruct %60 %340 %341 %342 %343
%346 = OpAccessChain %128 %112 %117 %344
OpStore %346 %345
%347 = OpIMul %25 %118 %165
%348 = OpAccessChain %175 %44 %117 %347
%349 = OpLoad %40 %348
%350 = OpBitcast %179 %349
%351 = OpCompositeExtract %178 %350 0
%352 = OpCompositeExtract %178 %350 1
%353 = OpCompositeExtract %178 %350 2
%354 = OpCompositeExtract %178 %350 3
%355 = OpIMul %25 %118 %165
%356 = OpBitcast %25 %351
%357 = OpBitcast %25 %352
%358 = OpBitcast %25 %353
%359 = OpBitcast %25 %354
%360 = OpCompositeConstruct %40 %356 %357 %358 %359
%361 = OpAccessChain %175 %96 %117 %355
OpStore %361 %360
%362 = OpIMul %25 %118 %227
%363 = OpAccessChain %239 %24 %117 %362
%364 = OpLoad %20 %363
%365 = OpBitcast %243 %364
%366 = OpCompositeExtract %242 %365 0
%367 = OpCompositeExtract %242 %365 1
%368 = OpCompositeExtract %242 %365 2
%369 = OpCompositeExtract %242 %365 3
%370 = OpIMul %25 %118 %227
%371 = OpBitcast %5 %366
%372 = OpBitcast %5 %367
%373 = OpBitcast %5 %368
%374 = OpBitcast %5 %369
%375 = OpCompositeConstruct %20 %371 %372 %373 %374
%376 = OpAccessChain %239 %80 %117 %370
OpStore %376 %375
OpReturn
OpFunctionEnd
#endif
