#include <metal_stdlib>

using namespace metal;
float4 subgroupExclusiveMul_7b5f57() {
  float4 res = simd_prefix_exclusive_product(float4(1.0f));
  return res;
}

fragment void fragment_main(device float4* tint_symbol [[buffer(0)]]) {
  *(tint_symbol) = subgroupExclusiveMul_7b5f57();
  return;
}

kernel void compute_main(device float4* tint_symbol_1 [[buffer(0)]]) {
  *(tint_symbol_1) = subgroupExclusiveMul_7b5f57();
  return;
}

