#include <metal_stdlib>
#include <simd/simd.h>

using namespace metal;

struct _4
{
    ulong _m0[1];
};

struct _21
{
    ulong _m0;
    ulong _m1;
};

kernel void main0(device _4& _5 [[buffer(0)]], device _4& _6 [[buffer(1)]], device _4& _7 [[buffer(2)]], device _4& _8 [[buffer(3)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]])
{
    _21 _29;
    _29._m0 = long(_5._m0[gl_GlobalInvocationID.x]) * long(_6._m0[gl_GlobalInvocationID.x]);
    _29._m1 = mulhi(long(_5._m0[gl_GlobalInvocationID.x]), long(_6._m0[gl_GlobalInvocationID.x]));
    _7._m0[gl_GlobalInvocationID.x] = _29._m0;
    _8._m0[gl_GlobalInvocationID.x] = _29._m1;
}

