When generating llvm.used, we may need an addrspacecast instead of a bitcast.
This is especially important for targets that use multiple address spaces,
and commonly place global variables in address spaces other than zero.
Test Plan: New test case added: llvm-used.cu
Differential Revision: http://reviews.llvm.org/D7345