
int i(int x) {
  return ~(x);
}

uint u(uint x) {
  return ~(x);
}

int4 vi(int4 x) {
  return ~(x);
}

uint4 vu(uint4 x) {
  return ~(x);
}

[numthreads(1, 1, 1)]
void unused_entry_point() {
}

