#include <metal_stdlib>

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

void unpack4x8unorm_750c74() {
  float4 res =   unpack_unorm4x8_to_float(1u);
}

vertex tint_symbol vertex_main() {
  unpack4x8unorm_750c74();
  tint_symbol const tint_symbol_1 = {.value=float4()};
  return tint_symbol_1;
}

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

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

