#include <metal_stdlib>
using namespace metal;
struct S {
  int4 a;
};
struct tint_module_vars_struct {
  device S* v;
};

int4 tint_mod_v4i32(int4 lhs, int4 rhs) {
  int4 const v_1 = select(rhs, int4(1), ((rhs == int4(0)) | ((lhs == int4((-2147483647 - 1))) & (rhs == int4(-1)))));
  return (lhs - ((lhs / v_1) * v_1));
}
void foo(tint_module_vars_struct tint_module_vars) {
  (*tint_module_vars.v).a = tint_mod_v4i32((*tint_module_vars.v).a, int4(2));
}
