Accessing uint8_t[16] through a different type is an aliasing violation, i.e. undefined behaviour.
Use memcpy to copy the bytes out, then AND them, then memcpy back in.
The actual memcpy calls will be optimized away, but doing it this way avoids undefined behaviour.