#include <metal_stdlib>
using namespace metal;

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

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

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

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

[[max_total_threads_per_threadgroup(1)]]
kernel void v() {
  i(1);
  u(1u);
  vi(int4(0));
  vu(uint4(0u));
}
