aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/Analysis/BasicAA/licmtest.ll18
-rw-r--r--test/Transforms/BasicAA/licmtest.ll18
2 files changed, 36 insertions, 0 deletions
diff --git a/test/Analysis/BasicAA/licmtest.ll b/test/Analysis/BasicAA/licmtest.ll
index d838e6cb60..585ac17ae9 100644
--- a/test/Analysis/BasicAA/licmtest.ll
+++ b/test/Analysis/BasicAA/licmtest.ll
@@ -10,6 +10,7 @@
%A = global int 7
%B = global int 8
+%C = global [2 x int ] [ int 4, int 8 ]
implementation
int %test(bool %c) {
@@ -25,3 +26,20 @@ Out:
ret int %X
}
+int %test2(bool %c) {
+ br label %Loop
+Loop:
+ %AVal = load int* %A
+ %C0 = getelementptr [2 x int ]* %C, long 0, long 0
+ store int %AVal, int* %C0 ; Store cannot alias %A
+
+ %BVal = load int* %B
+ %C1 = getelementptr [2 x int ]* %C, long 0, long 1
+ store int %BVal, int* %C1 ; Store cannot alias %A, %B, or %C0
+
+ br bool %c, label %Out, label %Loop
+Out:
+ %X = sub int %AVal, %BVal
+ ret int %X
+}
+
diff --git a/test/Transforms/BasicAA/licmtest.ll b/test/Transforms/BasicAA/licmtest.ll
index d838e6cb60..585ac17ae9 100644
--- a/test/Transforms/BasicAA/licmtest.ll
+++ b/test/Transforms/BasicAA/licmtest.ll
@@ -10,6 +10,7 @@
%A = global int 7
%B = global int 8
+%C = global [2 x int ] [ int 4, int 8 ]
implementation
int %test(bool %c) {
@@ -25,3 +26,20 @@ Out:
ret int %X
}
+int %test2(bool %c) {
+ br label %Loop
+Loop:
+ %AVal = load int* %A
+ %C0 = getelementptr [2 x int ]* %C, long 0, long 0
+ store int %AVal, int* %C0 ; Store cannot alias %A
+
+ %BVal = load int* %B
+ %C1 = getelementptr [2 x int ]* %C, long 0, long 1
+ store int %BVal, int* %C1 ; Store cannot alias %A, %B, or %C0
+
+ br bool %c, label %Out, label %Loop
+Out:
+ %X = sub int %AVal, %BVal
+ ret int %X
+}
+