void g(const u32 *restrict in, u32 *restrict out) { u32 x, y, z; u32 r, g, b; x = in[0]; y = in[1]; z = in[2]; r = (x & 0xff0000ff) | (y & 0x0000ff00) | (z & 0x00ff0000); g = (x & 0x00ff0000) | (y & 0xff0000ff) | (z & 0x0000ff00); b = (x & 0x0000ff00) | (y & 0x00ff0000) | (z & 0xff0000ff); x = (r & 0x0000ff00) | (g & 0x00ff0000) | (b & 0xff0000ff); y = (r & 0x00ff0000) | (g & 0xff0000ff) | (b & 0x0000ff00); z = (r & 0xff0000ff) | (g & 0x0000ff00) | (b & 0x00ff0000); out[0] = x; out[1] = y; out[2] = z; }