diff options
author | Dan Gohman <gohman@apple.com> | 2010-02-23 16:35:41 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2010-02-23 16:35:41 +0000 |
commit | b80a2a686fe76496d71397f8bdda394d5718ab01 (patch) | |
tree | 3bc7be4268bf1d153ff66df0d6d2d61e89611511 /test/Transforms | |
parent | c80a1f7721823c081d80afa1345e4dc512cd97d7 (diff) | |
download | external_llvm-b80a2a686fe76496d71397f8bdda394d5718ab01.zip external_llvm-b80a2a686fe76496d71397f8bdda394d5718ab01.tar.gz external_llvm-b80a2a686fe76496d71397f8bdda394d5718ab01.tar.bz2 |
Remove the code which constant-folded ptrtoint(inttoptr(x)+c) to
getelementptr. Despite only doing so in the case where x is a known
array object and c can be converted to an index within range, this
could still be invalid if c is actually the address of an object
allocated outside of LLVM. Also, SCEVExpander, the original motivation
for this code, has since been improved to avoid inttoptr+ptroint in
more cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96950 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms')
-rw-r--r-- | test/Transforms/InstCombine/constant-fold-ptr-casts.ll | 27 |
1 files changed, 0 insertions, 27 deletions
diff --git a/test/Transforms/InstCombine/constant-fold-ptr-casts.ll b/test/Transforms/InstCombine/constant-fold-ptr-casts.ll deleted file mode 100644 index 5095446..0000000 --- a/test/Transforms/InstCombine/constant-fold-ptr-casts.ll +++ /dev/null @@ -1,27 +0,0 @@ -; RUN: opt < %s -instcombine -S | grep {ret i32 2143034560} | count 2 - -; Instcombine should be able to completely fold this code. - -target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128" -target triple = "i686-apple-darwin8" - -@bar = constant [3 x i64] [i64 9220983451228067448, i64 9220983451228067449, i64 9220983450959631991], align 8 - -define i32 @foo() nounwind { -entry: - %tmp87.2 = load i64* inttoptr (i32 add (i32 16, i32 ptrtoint ([3 x i64]* @bar to i32)) to i64*), align 8 - %t0 = bitcast i64 %tmp87.2 to double - %tmp9192.2 = fptrunc double %t0 to float - %t1 = bitcast float %tmp9192.2 to i32 - ret i32 %t1 -} - -define i32 @goo() nounwind { -entry: - %tmp87.2 = load i64* inttoptr (i32 add (i32 ptrtoint ([3 x i64]* @bar to i32), i32 16) to i64*), align 8 - %t0 = bitcast i64 %tmp87.2 to double - %tmp9192.2 = fptrunc double %t0 to float - %t1 = bitcast float %tmp9192.2 to i32 - ret i32 %t1 -} - |