diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2013-09-17 23:23:16 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2013-09-17 23:23:16 +0000 |
commit | 2334b0e8023bc382585a08386510cf29b3d541a6 (patch) | |
tree | 179bdc4106993e50616a416efd63688d63d250c8 /test/Transforms/InstCombine | |
parent | 28860823ad34d41d4f58561dc14a982fb0843fdd (diff) | |
download | external_llvm-2334b0e8023bc382585a08386510cf29b3d541a6.zip external_llvm-2334b0e8023bc382585a08386510cf29b3d541a6.tar.gz external_llvm-2334b0e8023bc382585a08386510cf29b3d541a6.tar.bz2 |
Fix a constant folding address space place I missed.
If address space 0 was smaller than the address space
in a constant inttoptr/ptrtoint pair, the wrong mask size
would be used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190899 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/InstCombine')
-rw-r--r-- | test/Transforms/InstCombine/constant-fold-address-space-pointer.ll | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/test/Transforms/InstCombine/constant-fold-address-space-pointer.ll b/test/Transforms/InstCombine/constant-fold-address-space-pointer.ll index 9b17847..f3a474a 100644 --- a/test/Transforms/InstCombine/constant-fold-address-space-pointer.ll +++ b/test/Transforms/InstCombine/constant-fold-address-space-pointer.ll @@ -74,6 +74,14 @@ define i8 @const_fold_ptrtoint_mask() { ret i8 ptrtoint (i32 addrspace(3)* inttoptr (i32 257 to i32 addrspace(3)*) to i8) } +; Address space 0 is too small for the correct mask, should mask with +; 64-bits instead of 32 +define i64 @const_fold_ptrtoint_mask_small_as0() { +; CHECK-LABEL: @const_fold_ptrtoint_mask_small_as0( +; CHECK: ret i64 -1 + ret i64 ptrtoint (i32 addrspace(1)* inttoptr (i128 -1 to i32 addrspace(1)*) to i64) +} + define i32 addrspace(3)* @const_inttoptr() { ; CHECK-LABEL: @const_inttoptr( ; CHECK-NEXT: ret i32 addrspace(3)* inttoptr (i16 4 to i32 addrspace(3)*) |