SKIP: FAILED

#include <metal_stdlib>
using namespace metal;

thread float t = 0.0f;
float4 m() {
  t = 1.0f;
  return float4(t);
}
void f() {
  int4 v = tint_v4f32_to_v4i32(m());
}
int4 tint_v4f32_to_v4i32(float4 value) {
  return select(int4(2147483647), select(int4((-2147483647 - 1)), int4(value), (value >= float4(-2147483648.0f))), (value <= float4(2147483520.0f)));
}
program_source:4:14: error: program scope variable must reside in constant address space
thread float t = 0.0f;
             ^
program_source:10:12: error: use of undeclared identifier 'tint_v4f32_to_v4i32'
  int4 v = tint_v4f32_to_v4i32(m());
           ^

