summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/InstCombine/load-cmp.ll
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-01-04 18:57:15 +0000
committerChris Lattner <sabre@nondot.org>2010-01-04 18:57:15 +0000
commita751d09c0805a7bbe284d80e39b197319c1a4418 (patch)
treef400bec588451ab9769b6b1ed218668bb043ddb3 /llvm/test/Transforms/InstCombine/load-cmp.ll
parent2cb08e69b1b252fb730ca831f46f6122238bc1d6 (diff)
downloadbcm5719-llvm-a751d09c0805a7bbe284d80e39b197319c1a4418.tar.gz
bcm5719-llvm-a751d09c0805a7bbe284d80e39b197319c1a4418.zip
Truncate GEP indexes larger than the pointer size down to pointer size
when doing this transform if the GEP is not inbounds. No testcase because it is very difficult to trigger this: instcombine already canonicalizes GEP indices to pointer size, so it relies specific permutations of the instcombine worklist. Thanks to Duncan for pointing this possible problem out. llvm-svn: 92495
Diffstat (limited to 'llvm/test/Transforms/InstCombine/load-cmp.ll')
-rw-r--r--llvm/test/Transforms/InstCombine/load-cmp.ll18
1 files changed, 9 insertions, 9 deletions
diff --git a/llvm/test/Transforms/InstCombine/load-cmp.ll b/llvm/test/Transforms/InstCombine/load-cmp.ll
index a3b68316aa5..fe5df928439 100644
--- a/llvm/test/Transforms/InstCombine/load-cmp.ll
+++ b/llvm/test/Transforms/InstCombine/load-cmp.ll
@@ -6,7 +6,7 @@
[double -10.0, double 1.0, double 4.0, double 2.0, double -20.0, double -40.0]
define i1 @test1(i32 %X) {
- %P = getelementptr [10 x i16]* @G16, i32 0, i32 %X
+ %P = getelementptr inbounds [10 x i16]* @G16, i32 0, i32 %X
%Q = load i16* %P
%R = icmp eq i16 %Q, 0
ret i1 %R
@@ -16,7 +16,7 @@ define i1 @test1(i32 %X) {
}
define i1 @test2(i32 %X) {
- %P = getelementptr [10 x i16]* @G16, i32 0, i32 %X
+ %P = getelementptr inbounds [10 x i16]* @G16, i32 0, i32 %X
%Q = load i16* %P
%R = icmp slt i16 %Q, 85
ret i1 %R
@@ -26,7 +26,7 @@ define i1 @test2(i32 %X) {
}
define i1 @test3(i32 %X) {
- %P = getelementptr [6 x double]* @GD, i32 0, i32 %X
+ %P = getelementptr inbounds [6 x double]* @GD, i32 0, i32 %X
%Q = load double* %P
%R = fcmp oeq double %Q, 1.0
ret i1 %R
@@ -36,7 +36,7 @@ define i1 @test3(i32 %X) {
}
define i1 @test4(i32 %X) {
- %P = getelementptr [10 x i16]* @G16, i32 0, i32 %X
+ %P = getelementptr inbounds [10 x i16]* @G16, i32 0, i32 %X
%Q = load i16* %P
%R = icmp sle i16 %Q, 73
ret i1 %R
@@ -48,7 +48,7 @@ define i1 @test4(i32 %X) {
}
define i1 @test5(i32 %X) {
- %P = getelementptr [10 x i16]* @G16, i32 0, i32 %X
+ %P = getelementptr inbounds [10 x i16]* @G16, i32 0, i32 %X
%Q = load i16* %P
%R = icmp eq i16 %Q, 69
ret i1 %R
@@ -60,7 +60,7 @@ define i1 @test5(i32 %X) {
}
define i1 @test6(i32 %X) {
- %P = getelementptr [6 x double]* @GD, i32 0, i32 %X
+ %P = getelementptr inbounds [6 x double]* @GD, i32 0, i32 %X
%Q = load double* %P
%R = fcmp ogt double %Q, 0.0
ret i1 %R
@@ -71,7 +71,7 @@ define i1 @test6(i32 %X) {
}
define i1 @test7(i32 %X) {
- %P = getelementptr [6 x double]* @GD, i32 0, i32 %X
+ %P = getelementptr inbounds [6 x double]* @GD, i32 0, i32 %X
%Q = load double* %P
%R = fcmp olt double %Q, 0.0
ret i1 %R
@@ -82,7 +82,7 @@ define i1 @test7(i32 %X) {
}
define i1 @test8(i32 %X) {
- %P = getelementptr [10 x i16]* @G16, i32 0, i32 %X
+ %P = getelementptr inbounds [10 x i16]* @G16, i32 0, i32 %X
%Q = load i16* %P
%R = and i16 %Q, 3
%S = icmp eq i16 %R, 0
@@ -101,7 +101,7 @@ define i1 @test8(i32 %X) {
]
define i1 @test9(i32 %X) {
- %P = getelementptr [4 x { i32, i32 } ]* @GA, i32 0, i32 %X, i32 1
+ %P = getelementptr inbounds [4 x { i32, i32 } ]* @GA, i32 0, i32 %X, i32 1
%Q = load i32* %P
%R = icmp eq i32 %Q, 1
ret i1 %R
OpenPOWER on IntegriCloud