#include <metal_stdlib>

using namespace metal;
struct tint_private_vars_struct {
  float t;
};

int3 tint_ftoi(float3 v) {
  return select(int3(2147483647), select(int3(v), int3((-2147483647 - 1)), (v < float3(-2147483648.0f))), (v < float3(2147483520.0f)));
}

float3 m(thread tint_private_vars_struct* const tint_private_vars) {
  (*(tint_private_vars)).t = 1.0f;
  return float3((*(tint_private_vars)).t);
}

void f(thread tint_private_vars_struct* const tint_private_vars) {
  float3 const tint_symbol = m(tint_private_vars);
  int3 v = tint_ftoi(tint_symbol);
}

