#include <metal_stdlib>

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

void reverseBits_222177() {
  int2 res = reverse_bits(int2());
}

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

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

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

