Addrspacecasts are no-ops on ARM.

Testcase added.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196269 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
James Molloy 2013-12-03 11:23:11 +00:00
parent 90a34679ef
commit 616c94ba87
2 changed files with 13 additions and 0 deletions

View File

@ -361,6 +361,12 @@ namespace llvm {
/// be used for loads / stores from the global.
virtual unsigned getMaximalGlobalOffset() const;
/// Returns true if a cast between SrcAS and DestAS is a noop.
virtual bool isNoopAddrSpaceCast(unsigned SrcAS, unsigned DestAS) const {
// Addrspacecasts are always noops.
return true;
}
/// createFastISel - This method returns a target specific FastISel object,
/// or null if the target does not support "fast" ISel.
virtual FastISel *createFastISel(FunctionLoweringInfo &funcInfo,

View File

@ -0,0 +1,7 @@
; RUN: llc < %s -march=arm
; Check that codegen for an addrspace cast succeeds without error.
define <4 x i32 addrspace(1)*> @f (<4 x i32*> %x) {
%1 = addrspacecast <4 x i32*> %x to <4 x i32 addrspace(1)*>
ret <4 x i32 addrspace(1)*> %1
}