llvm.invariant.group.barrier may accept pointers to arbitrary address space.
This patch let it accept pointers to i8 in any address space and returns
pointer to i8 in the same address space.
Corresponding clang change: https://reviews.llvm.org/D40062
Why is it necessary to add this? The datalayout is implied by the explicit triple