Previously, these qualifiers were being parsed but otherwise ignored.
This change makes it so that an address space is added to specify whether the pointer is
32-bit or 64-bit and whether it is sign extended or zero extended.
In the backend, the address space casts are lowered to the corresponding
sign/zero extension or truncation.
The data layout for the address spaces was changed in https://reviews.llvm.org/D64931
Related to https://bugs.llvm.org/show_bug.cgi?id=42359