From: Chris Lattner Date: Tue, 25 Feb 2003 21:43:37 +0000 (+0000) Subject: Add a new test for basicaa X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=7b9b1f9ad3c506b1ccc5bb93b2f9e655ca050714;p=oota-llvm.git Add a new test for basicaa git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5625 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/Analysis/BasicAA/featuretest.ll b/test/Analysis/BasicAA/featuretest.ll index 6884df2db51..cd57ef1a79a 100644 --- a/test/Analysis/BasicAA/featuretest.ll +++ b/test/Analysis/BasicAA/featuretest.ll @@ -51,3 +51,14 @@ int %gep_distance_test(int* %A) { ret int %r } +; Test that if two pointers are spaced out by a constant offset, that they +; cannot alias, even if there is a variable offset between them... +int %gep_distance_test2({int,int}* %A, long %distance) { + %A = getelementptr {int,int}* %A, long 0, ubyte 0 + %REMOVEu = load int* %A + %B = getelementptr {int,int}* %A, long %distance, ubyte 1 + store int 7, int* %B ; B cannot alias A, it's at least 4 bytes away + %REMOVEv = load int* %A + %r = sub int %REMOVEu, %REMOVEv + ret int %r +} diff --git a/test/Transforms/BasicAA/featuretest.ll b/test/Transforms/BasicAA/featuretest.ll index 6884df2db51..cd57ef1a79a 100644 --- a/test/Transforms/BasicAA/featuretest.ll +++ b/test/Transforms/BasicAA/featuretest.ll @@ -51,3 +51,14 @@ int %gep_distance_test(int* %A) { ret int %r } +; Test that if two pointers are spaced out by a constant offset, that they +; cannot alias, even if there is a variable offset between them... +int %gep_distance_test2({int,int}* %A, long %distance) { + %A = getelementptr {int,int}* %A, long 0, ubyte 0 + %REMOVEu = load int* %A + %B = getelementptr {int,int}* %A, long %distance, ubyte 1 + store int 7, int* %B ; B cannot alias A, it's at least 4 bytes away + %REMOVEv = load int* %A + %r = sub int %REMOVEu, %REMOVEv + ret int %r +}