aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/Transforms/InstCombine/getelementptr.ll34
1 files changed, 18 insertions, 16 deletions
diff --git a/test/Transforms/InstCombine/getelementptr.ll b/test/Transforms/InstCombine/getelementptr.ll
index b27bbc875e..16b947b382 100644
--- a/test/Transforms/InstCombine/getelementptr.ll
+++ b/test/Transforms/InstCombine/getelementptr.ll
@@ -7,21 +7,23 @@
implementation
-int *"foo"(int * %I)
-begin
- %A = getelementptr int* %I, uint 17
- store int 23, int* %A
-
- %B = load int* %A
- store int %B, int* %A, uint 0
-
- %C = getelementptr int* %A
- ret int* %C
-end
-
-int *"foo2"(int * %I)
-begin
- %A = getelementptr int* %I, uint 0 ; Noop
+int *"foo1"(int * %I) { ; Test noop elimination
+ %A = getelementptr int* %I, uint 0
ret int * %A
-end
+}
+
+int* %foo2(int* %I) { ; Test noop elimination
+ %A = getelementptr int* %I
+ ret int* %A
+}
+int* %foo3(int * %I) { ; Test that two array indexing geps fold
+ %A = getelementptr int* %I, uint 17
+ %B = getelementptr int* %A, uint 4
+ ret int* %B
+}
+int* %foo4({int} *%I) { ; Test that two getelementptr insts fold
+ %A = getelementptr {int}* %I, uint 1
+ %B = getelementptr {int}* %A, uint 0, ubyte 0
+ ret int* %B
+}