#include <metal_stdlib>

using namespace metal;
int3 tint_mod(int lhs, int3 rhs) {
  int3 const l = int3(lhs);
  int3 const rhs_or_one = select(rhs, int3(1), ((rhs == int3(0)) | ((l == int3((-2147483647 - 1))) & (rhs == int3(-1)))));
  if (any(((uint3((l | rhs_or_one)) & uint3(2147483648u)) != uint3(0u)))) {
    return as_type<int3>((as_type<uint3>(l) - as_type<uint3>(as_type<int3>((as_type<uint3>((l / rhs_or_one)) * as_type<uint3>(rhs_or_one))))));
  } else {
    return (l % rhs_or_one);
  }
}

kernel void f() {
  int const a = 4;
  int3 const b = int3(0, 2, 0);
  int3 const r = tint_mod(a, b);
  return;
}

