Add a few more interesting testcases.
authorDan Gohman <gohman@apple.com>
Tue, 29 Jun 2010 18:17:11 +0000 (18:17 +0000)
committerDan Gohman <gohman@apple.com>
Tue, 29 Jun 2010 18:17:11 +0000 (18:17 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107177 91177308-0d34-0410-b5e6-96231b3b80d8

test/Analysis/BasicAA/interprocedural.ll

index 2195716cdf89c0d36b862864dcb1e3c5b5a9ef99..8d34695fe5d5b4f91271f2389537a46bbc4ab79f 100644 (file)
@@ -40,3 +40,24 @@ define i64* @r0(i64* %u) {
   store i64 0, i64* %v
   ret i64* %t
 }
+
+; The noalias attribute is not necessarily safe in an interprocedural context even
+; in comparison to other noalias arguments in the same function.
+; CHECK: MayAlias: i8* %w, i8* %x
+
+define void @q0(i8* noalias %w, i8* noalias %x) {
+  store i8 0, i8* %w
+  store i8 0, i8* %x
+  call void @q0(i8* noalias %x, i8* noalias %w)
+  unreachable
+}
+
+; The noalias attribute is not necessarily safe in an interprocedural context.
+; CHECK: MayAlias: double* %y, double* @G
+
+@G = external global double
+define void @p0(double* noalias %y) {
+  store double 0.0, double* %y
+  store double 0.0, double* @G
+  unreachable
+}