builtins/gen/isFinite/426f9f.wgsl:28:19 warning: use of deprecated builtin
  var res: bool = isFinite(1.0);
                  ^^^^^^^^

#include <metal_stdlib>

using namespace metal;
struct tint_symbol {
  float4 value [[position]];
};

void isFinite_426f9f() {
  bool res = isfinite(1.0f);
}

float4 vertex_main_inner() {
  isFinite_426f9f();
  return float4();
}

vertex tint_symbol vertex_main() {
  float4 const inner_result = vertex_main_inner();
  tint_symbol wrapper_result = {};
  wrapper_result.value = inner_result;
  return wrapper_result;
}

fragment void fragment_main() {
  isFinite_426f9f();
  return;
}

kernel void compute_main() {
  isFinite_426f9f();
  return;
}

