#include <metal_stdlib>

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

kernel void f() {
  int3 a = int3(1, 2, 3);
  int b = 0;
  int3 const r = tint_mod(a, as_type<int>((as_type<uint>(b) + as_type<uint>(b))));
  return;
}

