[llvm] 2564096 - [DependenceAnalysis] Convert tests to opaque pointers (NFC)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 16 03:07:01 PST 2022
Author: Nikita Popov
Date: 2022-12-16T12:06:53+01:00
New Revision: 2564096655fc51f6e02c2a65661bf0c8147887e3
URL: https://github.com/llvm/llvm-project/commit/2564096655fc51f6e02c2a65661bf0c8147887e3
DIFF: https://github.com/llvm/llvm-project/commit/2564096655fc51f6e02c2a65661bf0c8147887e3.diff
LOG: [DependenceAnalysis] Convert tests to opaque pointers (NFC)
Added:
Modified:
llvm/test/Analysis/DependenceAnalysis/AA.ll
llvm/test/Analysis/DependenceAnalysis/Banerjee.ll
llvm/test/Analysis/DependenceAnalysis/BasePtrBug.ll
llvm/test/Analysis/DependenceAnalysis/Constraints.ll
llvm/test/Analysis/DependenceAnalysis/Coupled.ll
llvm/test/Analysis/DependenceAnalysis/DADelin.ll
llvm/test/Analysis/DependenceAnalysis/Dump.ll
llvm/test/Analysis/DependenceAnalysis/ExactRDIV.ll
llvm/test/Analysis/DependenceAnalysis/ExactSIV.ll
llvm/test/Analysis/DependenceAnalysis/GCD.ll
llvm/test/Analysis/DependenceAnalysis/Invariant.ll
llvm/test/Analysis/DependenceAnalysis/MIVCheckConst.ll
llvm/test/Analysis/DependenceAnalysis/MIVMaxLevelThreshold.ll
llvm/test/Analysis/DependenceAnalysis/NonAffineExpr.ll
llvm/test/Analysis/DependenceAnalysis/NonCanonicalizedSubscript.ll
llvm/test/Analysis/DependenceAnalysis/PR21585.ll
llvm/test/Analysis/DependenceAnalysis/Preliminary.ll
llvm/test/Analysis/DependenceAnalysis/PreliminaryNoValidityCheckFixedSize.ll
llvm/test/Analysis/DependenceAnalysis/Propagating.ll
llvm/test/Analysis/DependenceAnalysis/Separability.ll
llvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheck.ll
llvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheckFixedSize.ll
llvm/test/Analysis/DependenceAnalysis/StrongSIV.ll
llvm/test/Analysis/DependenceAnalysis/SymbolicRDIV.ll
llvm/test/Analysis/DependenceAnalysis/SymbolicSIV.ll
llvm/test/Analysis/DependenceAnalysis/UsefulGEP.ll
llvm/test/Analysis/DependenceAnalysis/WeakCrossingSIV.ll
llvm/test/Analysis/DependenceAnalysis/WeakZeroDstSIV.ll
llvm/test/Analysis/DependenceAnalysis/WeakZeroSrcSIV.ll
llvm/test/Analysis/DependenceAnalysis/ZIV.ll
llvm/test/Analysis/DependenceAnalysis/lcssa.ll
llvm/test/Analysis/DependenceAnalysis/new-pm-invalidation.ll
Removed:
################################################################################
diff --git a/llvm/test/Analysis/DependenceAnalysis/AA.ll b/llvm/test/Analysis/DependenceAnalysis/AA.ll
index e6e9af1719011..a478143720d04 100644
--- a/llvm/test/Analysis/DependenceAnalysis/AA.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/AA.ll
@@ -5,9 +5,9 @@
; CHECK: da analyze - none!
; CHECK: da analyze - confused!
; CHECK: da analyze - none!
-define void @test_no_noalias(i32* %A, i32* %B) {
- store i32 1, i32* %A
- store i32 2, i32* %B
+define void @test_no_noalias(ptr %A, ptr %B) {
+ store i32 1, ptr %A
+ store i32 2, ptr %B
ret void
}
@@ -15,9 +15,9 @@ define void @test_no_noalias(i32* %A, i32* %B) {
; CHECK: da analyze - none!
; CHECK: da analyze - none!
; CHECK: da analyze - none!
-define void @test_one_noalias(i32* noalias %A, i32* %B) {
- store i32 1, i32* %A
- store i32 2, i32* %B
+define void @test_one_noalias(ptr noalias %A, ptr %B) {
+ store i32 1, ptr %A
+ store i32 2, ptr %B
ret void
}
@@ -25,9 +25,9 @@ define void @test_one_noalias(i32* noalias %A, i32* %B) {
; CHECK: da analyze - none!
; CHECK: da analyze - none!
; CHECK: da analyze - none!
-define void @test_two_noalias(i32* noalias %A, i32* noalias %B) {
- store i32 1, i32* %A
- store i32 2, i32* %B
+define void @test_two_noalias(ptr noalias %A, ptr noalias %B) {
+ store i32 1, ptr %A
+ store i32 2, ptr %B
ret void
}
@@ -36,9 +36,9 @@ define void @test_two_noalias(i32* noalias %A, i32* noalias %B) {
; CHECK: da analyze - confused!
; CHECK: da analyze - none!
@g = global i32 5
-define void @test_global_alias(i32* %A) {
- store i32 1, i32* %A
- store i32 2, i32* @g
+define void @test_global_alias(ptr %A) {
+ store i32 1, ptr %A
+ store i32 2, ptr @g
ret void
}
@@ -46,9 +46,9 @@ define void @test_global_alias(i32* %A) {
; CHECK: da analyze - none!
; CHECK: da analyze - none!
; CHECK: da analyze - none!
-define void @test_global_noalias(i32* noalias %A) {
- store i32 1, i32* %A
- store i32 2, i32* @g
+define void @test_global_noalias(ptr noalias %A) {
+ store i32 1, ptr %A
+ store i32 2, ptr @g
ret void
}
@@ -61,11 +61,11 @@ define void @test_global_noalias(i32* noalias %A) {
; CHECK: da analyze - none!
@a = global i16 5, align 2
- at b = global i16* @a, align 4
+ at b = global ptr @a, align 4
define void @test_global_size() {
- %l0 = load i16*, i16** @b, align 4
- %l1 = load i16, i16* %l0, align 2
- store i16 1, i16* @a, align 2
+ %l0 = load ptr, ptr @b, align 4
+ %l1 = load i16, ptr %l0, align 2
+ store i16 1, ptr @a, align 2
ret void
}
@@ -73,9 +73,9 @@ define void @test_global_size() {
; CHECK: da analyze - none!
; CHECK: da analyze - confused!
; CHECK: da analyze - none!
-define void @test_tbaa_same(i32* %A, i32* %B) {
- store i32 1, i32* %A, !tbaa !5
- store i32 2, i32* %B, !tbaa !5
+define void @test_tbaa_same(ptr %A, ptr %B) {
+ store i32 1, ptr %A, !tbaa !5
+ store i32 2, ptr %B, !tbaa !5
ret void
}
@@ -83,9 +83,9 @@ define void @test_tbaa_same(i32* %A, i32* %B) {
; CHECK: da analyze - none!
; CHECK: da analyze - none!
; CHECK: da analyze - none!
-define void @test_tbaa_
diff (i32* %A, i16* %B) {
- store i32 1, i32* %A, !tbaa !5
- store i16 2, i16* %B, !tbaa !9
+define void @test_tbaa_
diff (ptr %A, ptr %B) {
+ store i32 1, ptr %A, !tbaa !5
+ store i16 2, ptr %B, !tbaa !9
ret void
}
@@ -93,7 +93,7 @@ define void @test_tbaa_
diff (i32* %A, i16* %B) {
; CHECK: da analyze - input
; CHECK: da analyze - none
; CHECK: da analyze - output
-define void @tbaa_loop(i32 %I, i32 %J, i32* nocapture %A, i16* nocapture readonly %B) {
+define void @tbaa_loop(i32 %I, i32 %J, ptr nocapture %A, ptr nocapture readonly %B) {
entry:
%cmp = icmp ne i32 %J, 0
%cmp122 = icmp ne i32 %I, 0
@@ -110,8 +110,8 @@ for.outer:
for.inner:
%j.us = phi i32 [ 0, %for.outer ], [ %inc.us, %for.inner ]
%sum1.us = phi i32 [ 0, %for.outer ], [ %add.us, %for.inner ]
- %arrayidx.us = getelementptr inbounds i16, i16* %B, i32 %j.us
- %0 = load i16, i16* %arrayidx.us, align 4, !tbaa !9
+ %arrayidx.us = getelementptr inbounds i16, ptr %B, i32 %j.us
+ %0 = load i16, ptr %arrayidx.us, align 4, !tbaa !9
%sext = sext i16 %0 to i32
%add.us = add i32 %sext, %sum1.us
%inc.us = add nuw i32 %j.us, 1
@@ -120,8 +120,8 @@ for.inner:
for.latch:
%add.us.lcssa = phi i32 [ %add.us, %for.inner ]
- %arrayidx6.us = getelementptr inbounds i32, i32* %A, i32 %i.us
- store i32 %add.us.lcssa, i32* %arrayidx6.us, align 4, !tbaa !5
+ %arrayidx6.us = getelementptr inbounds i32, ptr %A, i32 %i.us
+ store i32 %add.us.lcssa, ptr %arrayidx6.us, align 4, !tbaa !5
%add8.us = add nuw i32 %i.us, 1
%exitcond25 = icmp eq i32 %add8.us, %I
br i1 %exitcond25, label %for.end.loopexit, label %for.outer
diff --git a/llvm/test/Analysis/DependenceAnalysis/Banerjee.ll b/llvm/test/Analysis/DependenceAnalysis/Banerjee.ll
index 9d2b854e27e68..efc86d39b28ee 100644
--- a/llvm/test/Analysis/DependenceAnalysis/Banerjee.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/Banerjee.ll
@@ -14,7 +14,7 @@ target triple = "x86_64-apple-macosx10.6.0"
;; A[10*i + j] = 0;
;; *B++ = A[10*i + j - 1];
-define void @banerjee0(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp {
+define void @banerjee0(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
; CHECK: 'Dependence Analysis' for function 'banerjee0':
@@ -42,30 +42,30 @@ entry:
; DELIN: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc7
- %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc7 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc7 ]
%i.03 = phi i64 [ 1, %entry ], [ %inc8, %for.inc7 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 1, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%mul = mul nsw i64 %i.03, 10
%add = add nsw i64 %mul, %j.02
- %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add
- store i64 0, i64* %arrayidx, align 8
+ %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add
+ store i64 0, ptr %arrayidx, align 8
%mul4 = mul nsw i64 %i.03, 10
%add5 = add nsw i64 %mul4, %j.02
%sub = add nsw i64 %add5, -1
- %arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %sub
- %0 = load i64, i64* %arrayidx6, align 8
- %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
- store i64 %0, i64* %B.addr.11, align 8
+ %arrayidx6 = getelementptr inbounds i64, ptr %A, i64 %sub
+ %0 = load i64, ptr %arrayidx6, align 8
+ %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.11, i64 1
+ store i64 %0, ptr %B.addr.11, align 8
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 11
br i1 %exitcond, label %for.body3, label %for.inc7
for.inc7: ; preds = %for.body3
- %scevgep = getelementptr i64, i64* %B.addr.04, i64 10
+ %scevgep = getelementptr i64, ptr %B.addr.04, i64 10
%inc8 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc8, 11
br i1 %exitcond5, label %for.cond1.preheader, label %for.end9
@@ -80,7 +80,7 @@ for.end9: ; preds = %for.inc7
;; A[10*i + j] = 0;
;; *B++ = A[10*i + j - 1];
-define void @banerjee1(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp {
+define void @banerjee1(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp {
entry:
%cmp4 = icmp sgt i64 %n, 0
br i1 %cmp4, label %for.cond1.preheader.preheader, label %for.end9
@@ -114,7 +114,7 @@ for.cond1.preheader.preheader: ; preds = %entry
br label %for.cond1.preheader
for.cond1.preheader: ; preds = %for.cond1.preheader.preheader, %for.inc7
- %B.addr.06 = phi i64* [ %B.addr.1.lcssa, %for.inc7 ], [ %B, %for.cond1.preheader.preheader ]
+ %B.addr.06 = phi ptr [ %B.addr.1.lcssa, %for.inc7 ], [ %B, %for.cond1.preheader.preheader ]
%i.05 = phi i64 [ %inc8, %for.inc7 ], [ 1, %for.cond1.preheader.preheader ]
%1 = add i64 %m, 1
%cmp21 = icmp sgt i64 %m, 0
@@ -125,28 +125,28 @@ for.body3.preheader: ; preds = %for.cond1.preheader
for.body3: ; preds = %for.body3.preheader, %for.body3
%j.03 = phi i64 [ %inc, %for.body3 ], [ 1, %for.body3.preheader ]
- %B.addr.12 = phi i64* [ %incdec.ptr, %for.body3 ], [ %B.addr.06, %for.body3.preheader ]
+ %B.addr.12 = phi ptr [ %incdec.ptr, %for.body3 ], [ %B.addr.06, %for.body3.preheader ]
%mul = mul nsw i64 %i.05, 10
%add = add nsw i64 %mul, %j.03
- %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add
- store i64 0, i64* %arrayidx, align 8
+ %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add
+ store i64 0, ptr %arrayidx, align 8
%mul4 = mul nsw i64 %i.05, 10
%add5 = add nsw i64 %mul4, %j.03
%sub = add nsw i64 %add5, -1
- %arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %sub
- %2 = load i64, i64* %arrayidx6, align 8
- %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.12, i64 1
- store i64 %2, i64* %B.addr.12, align 8
+ %arrayidx6 = getelementptr inbounds i64, ptr %A, i64 %sub
+ %2 = load i64, ptr %arrayidx6, align 8
+ %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.12, i64 1
+ store i64 %2, ptr %B.addr.12, align 8
%inc = add nsw i64 %j.03, 1
%exitcond = icmp eq i64 %inc, %1
br i1 %exitcond, label %for.inc7.loopexit, label %for.body3
for.inc7.loopexit: ; preds = %for.body3
- %scevgep = getelementptr i64, i64* %B.addr.06, i64 %m
+ %scevgep = getelementptr i64, ptr %B.addr.06, i64 %m
br label %for.inc7
for.inc7: ; preds = %for.inc7.loopexit, %for.cond1.preheader
- %B.addr.1.lcssa = phi i64* [ %B.addr.06, %for.cond1.preheader ], [ %scevgep, %for.inc7.loopexit ]
+ %B.addr.1.lcssa = phi ptr [ %B.addr.06, %for.cond1.preheader ], [ %scevgep, %for.inc7.loopexit ]
%inc8 = add nsw i64 %i.05, 1
%exitcond7 = icmp eq i64 %inc8, %0
br i1 %exitcond7, label %for.end9.loopexit, label %for.cond1.preheader
@@ -164,7 +164,7 @@ for.end9: ; preds = %for.end9.loopexit,
;; A[10*i + j] = 0;
;; *B++ = A[10*i + j + 100];
-define void @banerjee2(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp {
+define void @banerjee2(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -193,30 +193,30 @@ entry:
; DELIN: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc8
- %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc8 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc8 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc9, %for.inc8 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%mul = mul nsw i64 %i.03, 10
%add = add nsw i64 %mul, %j.02
- %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add
- store i64 0, i64* %arrayidx, align 8
+ %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add
+ store i64 0, ptr %arrayidx, align 8
%mul4 = mul nsw i64 %i.03, 10
%add5 = add nsw i64 %mul4, %j.02
%add6 = add nsw i64 %add5, 100
- %arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6
- %0 = load i64, i64* %arrayidx7, align 8
- %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
- store i64 %0, i64* %B.addr.11, align 8
+ %arrayidx7 = getelementptr inbounds i64, ptr %A, i64 %add6
+ %0 = load i64, ptr %arrayidx7, align 8
+ %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.11, i64 1
+ store i64 %0, ptr %B.addr.11, align 8
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 10
br i1 %exitcond, label %for.body3, label %for.inc8
for.inc8: ; preds = %for.body3
- %scevgep = getelementptr i64, i64* %B.addr.04, i64 10
+ %scevgep = getelementptr i64, ptr %B.addr.04, i64 10
%inc9 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc9, 10
br i1 %exitcond5, label %for.cond1.preheader, label %for.end10
@@ -231,7 +231,7 @@ for.end10: ; preds = %for.inc8
;; A[10*i + j] = 0;
;; *B++ = A[10*i + j + 99];
-define void @banerjee3(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp {
+define void @banerjee3(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -260,30 +260,30 @@ entry:
; DELIN: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc8
- %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc8 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc8 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc9, %for.inc8 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%mul = mul nsw i64 %i.03, 10
%add = add nsw i64 %mul, %j.02
- %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add
- store i64 0, i64* %arrayidx, align 8
+ %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add
+ store i64 0, ptr %arrayidx, align 8
%mul4 = mul nsw i64 %i.03, 10
%add5 = add nsw i64 %mul4, %j.02
%add6 = add nsw i64 %add5, 99
- %arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6
- %0 = load i64, i64* %arrayidx7, align 8
- %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
- store i64 %0, i64* %B.addr.11, align 8
+ %arrayidx7 = getelementptr inbounds i64, ptr %A, i64 %add6
+ %0 = load i64, ptr %arrayidx7, align 8
+ %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.11, i64 1
+ store i64 %0, ptr %B.addr.11, align 8
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 10
br i1 %exitcond, label %for.body3, label %for.inc8
for.inc8: ; preds = %for.body3
- %scevgep = getelementptr i64, i64* %B.addr.04, i64 10
+ %scevgep = getelementptr i64, ptr %B.addr.04, i64 10
%inc9 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc9, 10
br i1 %exitcond5, label %for.cond1.preheader, label %for.end10
@@ -298,7 +298,7 @@ for.end10: ; preds = %for.inc8
;; A[10*i + j] = 0;
;; *B++ = A[10*i + j - 100];
-define void @banerjee4(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp {
+define void @banerjee4(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -327,30 +327,30 @@ entry:
; DELIN: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc7
- %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc7 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc7 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc8, %for.inc7 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%mul = mul nsw i64 %i.03, 10
%add = add nsw i64 %mul, %j.02
- %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add
- store i64 0, i64* %arrayidx, align 8
+ %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add
+ store i64 0, ptr %arrayidx, align 8
%mul4 = mul nsw i64 %i.03, 10
%add5 = add nsw i64 %mul4, %j.02
%sub = add nsw i64 %add5, -100
- %arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %sub
- %0 = load i64, i64* %arrayidx6, align 8
- %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
- store i64 %0, i64* %B.addr.11, align 8
+ %arrayidx6 = getelementptr inbounds i64, ptr %A, i64 %sub
+ %0 = load i64, ptr %arrayidx6, align 8
+ %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.11, i64 1
+ store i64 %0, ptr %B.addr.11, align 8
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 10
br i1 %exitcond, label %for.body3, label %for.inc7
for.inc7: ; preds = %for.body3
- %scevgep = getelementptr i64, i64* %B.addr.04, i64 10
+ %scevgep = getelementptr i64, ptr %B.addr.04, i64 10
%inc8 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc8, 10
br i1 %exitcond5, label %for.cond1.preheader, label %for.end9
@@ -365,7 +365,7 @@ for.end9: ; preds = %for.inc7
;; A[10*i + j] = 0;
;; *B++ = A[10*i + j - 99];
-define void @banerjee5(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp {
+define void @banerjee5(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -394,30 +394,30 @@ entry:
; DELIN: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc7
- %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc7 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc7 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc8, %for.inc7 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%mul = mul nsw i64 %i.03, 10
%add = add nsw i64 %mul, %j.02
- %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add
- store i64 0, i64* %arrayidx, align 8
+ %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add
+ store i64 0, ptr %arrayidx, align 8
%mul4 = mul nsw i64 %i.03, 10
%add5 = add nsw i64 %mul4, %j.02
%sub = add nsw i64 %add5, -99
- %arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %sub
- %0 = load i64, i64* %arrayidx6, align 8
- %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
- store i64 %0, i64* %B.addr.11, align 8
+ %arrayidx6 = getelementptr inbounds i64, ptr %A, i64 %sub
+ %0 = load i64, ptr %arrayidx6, align 8
+ %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.11, i64 1
+ store i64 %0, ptr %B.addr.11, align 8
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 10
br i1 %exitcond, label %for.body3, label %for.inc7
for.inc7: ; preds = %for.body3
- %scevgep = getelementptr i64, i64* %B.addr.04, i64 10
+ %scevgep = getelementptr i64, ptr %B.addr.04, i64 10
%inc8 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc8, 10
br i1 %exitcond5, label %for.cond1.preheader, label %for.end9
@@ -432,7 +432,7 @@ for.end9: ; preds = %for.inc7
;; A[10*i + j] = 0;
;; *B++ = A[10*i + j + 9];
-define void @banerjee6(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp {
+define void @banerjee6(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -461,30 +461,30 @@ entry:
; DELIN: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc8
- %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc8 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc8 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc9, %for.inc8 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%mul = mul nsw i64 %i.03, 10
%add = add nsw i64 %mul, %j.02
- %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add
- store i64 0, i64* %arrayidx, align 8
+ %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add
+ store i64 0, ptr %arrayidx, align 8
%mul4 = mul nsw i64 %i.03, 10
%add5 = add nsw i64 %mul4, %j.02
%add6 = add nsw i64 %add5, 9
- %arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6
- %0 = load i64, i64* %arrayidx7, align 8
- %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
- store i64 %0, i64* %B.addr.11, align 8
+ %arrayidx7 = getelementptr inbounds i64, ptr %A, i64 %add6
+ %0 = load i64, ptr %arrayidx7, align 8
+ %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.11, i64 1
+ store i64 %0, ptr %B.addr.11, align 8
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 10
br i1 %exitcond, label %for.body3, label %for.inc8
for.inc8: ; preds = %for.body3
- %scevgep = getelementptr i64, i64* %B.addr.04, i64 10
+ %scevgep = getelementptr i64, ptr %B.addr.04, i64 10
%inc9 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc9, 10
br i1 %exitcond5, label %for.cond1.preheader, label %for.end10
@@ -499,7 +499,7 @@ for.end10: ; preds = %for.inc8
;; A[10*i + j] = 0;
;; *B++ = A[10*i + j + 10];
-define void @banerjee7(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp {
+define void @banerjee7(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -528,30 +528,30 @@ entry:
; DELIN: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc8
- %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc8 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc8 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc9, %for.inc8 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%mul = mul nsw i64 %i.03, 10
%add = add nsw i64 %mul, %j.02
- %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add
- store i64 0, i64* %arrayidx, align 8
+ %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add
+ store i64 0, ptr %arrayidx, align 8
%mul4 = mul nsw i64 %i.03, 10
%add5 = add nsw i64 %mul4, %j.02
%add6 = add nsw i64 %add5, 10
- %arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6
- %0 = load i64, i64* %arrayidx7, align 8
- %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
- store i64 %0, i64* %B.addr.11, align 8
+ %arrayidx7 = getelementptr inbounds i64, ptr %A, i64 %add6
+ %0 = load i64, ptr %arrayidx7, align 8
+ %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.11, i64 1
+ store i64 %0, ptr %B.addr.11, align 8
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 10
br i1 %exitcond, label %for.body3, label %for.inc8
for.inc8: ; preds = %for.body3
- %scevgep = getelementptr i64, i64* %B.addr.04, i64 10
+ %scevgep = getelementptr i64, ptr %B.addr.04, i64 10
%inc9 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc9, 10
br i1 %exitcond5, label %for.cond1.preheader, label %for.end10
@@ -566,7 +566,7 @@ for.end10: ; preds = %for.inc8
;; A[10*i + j] = 0;
;; *B++ = A[10*i + j + 11];
-define void @banerjee8(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp {
+define void @banerjee8(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -595,30 +595,30 @@ entry:
; DELIN: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc8
- %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc8 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc8 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc9, %for.inc8 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%mul = mul nsw i64 %i.03, 10
%add = add nsw i64 %mul, %j.02
- %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add
- store i64 0, i64* %arrayidx, align 8
+ %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add
+ store i64 0, ptr %arrayidx, align 8
%mul4 = mul nsw i64 %i.03, 10
%add5 = add nsw i64 %mul4, %j.02
%add6 = add nsw i64 %add5, 11
- %arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6
- %0 = load i64, i64* %arrayidx7, align 8
- %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
- store i64 %0, i64* %B.addr.11, align 8
+ %arrayidx7 = getelementptr inbounds i64, ptr %A, i64 %add6
+ %0 = load i64, ptr %arrayidx7, align 8
+ %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.11, i64 1
+ store i64 %0, ptr %B.addr.11, align 8
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 10
br i1 %exitcond, label %for.body3, label %for.inc8
for.inc8: ; preds = %for.body3
- %scevgep = getelementptr i64, i64* %B.addr.04, i64 10
+ %scevgep = getelementptr i64, ptr %B.addr.04, i64 10
%inc9 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc9, 10
br i1 %exitcond5, label %for.cond1.preheader, label %for.end10
@@ -633,7 +633,7 @@ for.end10: ; preds = %for.inc8
;; A[30*i + 500*j] = 0;
;; *B++ = A[i - 500*j + 11];
-define void @banerjee9(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp {
+define void @banerjee9(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -662,31 +662,31 @@ entry:
; DELIN: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc8
- %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc8 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc8 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc9, %for.inc8 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%mul = mul nsw i64 %i.03, 30
%mul4 = mul nsw i64 %j.02, 500
%add = add nsw i64 %mul, %mul4
- %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add
- store i64 0, i64* %arrayidx, align 8
+ %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add
+ store i64 0, ptr %arrayidx, align 8
%0 = mul i64 %j.02, -500
%sub = add i64 %i.03, %0
%add6 = add nsw i64 %sub, 11
- %arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6
- %1 = load i64, i64* %arrayidx7, align 8
- %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
- store i64 %1, i64* %B.addr.11, align 8
+ %arrayidx7 = getelementptr inbounds i64, ptr %A, i64 %add6
+ %1 = load i64, ptr %arrayidx7, align 8
+ %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.11, i64 1
+ store i64 %1, ptr %B.addr.11, align 8
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 20
br i1 %exitcond, label %for.body3, label %for.inc8
for.inc8: ; preds = %for.body3
- %scevgep = getelementptr i64, i64* %B.addr.04, i64 20
+ %scevgep = getelementptr i64, ptr %B.addr.04, i64 20
%inc9 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc9, 20
br i1 %exitcond5, label %for.cond1.preheader, label %for.end10
@@ -701,7 +701,7 @@ for.end10: ; preds = %for.inc8
;; A[i + 500*j] = 0;
;; *B++ = A[i - 500*j + 11];
-define void @banerjee10(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp {
+define void @banerjee10(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -730,30 +730,30 @@ entry:
; DELIN: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc7
- %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc7 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc7 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc8, %for.inc7 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%mul = mul nsw i64 %j.02, 500
%add = add nsw i64 %i.03, %mul
- %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add
- store i64 0, i64* %arrayidx, align 8
+ %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add
+ store i64 0, ptr %arrayidx, align 8
%0 = mul i64 %j.02, -500
%sub = add i64 %i.03, %0
%add5 = add nsw i64 %sub, 11
- %arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %add5
- %1 = load i64, i64* %arrayidx6, align 8
- %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
- store i64 %1, i64* %B.addr.11, align 8
+ %arrayidx6 = getelementptr inbounds i64, ptr %A, i64 %add5
+ %1 = load i64, ptr %arrayidx6, align 8
+ %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.11, i64 1
+ store i64 %1, ptr %B.addr.11, align 8
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 20
br i1 %exitcond, label %for.body3, label %for.inc7
for.inc7: ; preds = %for.body3
- %scevgep = getelementptr i64, i64* %B.addr.04, i64 20
+ %scevgep = getelementptr i64, ptr %B.addr.04, i64 20
%inc8 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc8, 20
br i1 %exitcond5, label %for.cond1.preheader, label %for.end9
@@ -768,7 +768,7 @@ for.end9: ; preds = %for.inc7
;; A[300*i + j] = 0;
;; *B++ = A[250*i - j + 11];
-define void @banerjee11(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp {
+define void @banerjee11(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -797,30 +797,30 @@ entry:
; DELIN: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc7
- %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc7 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc7 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc8, %for.inc7 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%mul = mul nsw i64 %i.03, 300
%add = add nsw i64 %mul, %j.02
- %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add
- store i64 0, i64* %arrayidx, align 8
+ %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add
+ store i64 0, ptr %arrayidx, align 8
%mul4 = mul nsw i64 %i.03, 250
%sub = sub nsw i64 %mul4, %j.02
%add5 = add nsw i64 %sub, 11
- %arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %add5
- %0 = load i64, i64* %arrayidx6, align 8
- %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
- store i64 %0, i64* %B.addr.11, align 8
+ %arrayidx6 = getelementptr inbounds i64, ptr %A, i64 %add5
+ %0 = load i64, ptr %arrayidx6, align 8
+ %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.11, i64 1
+ store i64 %0, ptr %B.addr.11, align 8
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 20
br i1 %exitcond, label %for.body3, label %for.inc7
for.inc7: ; preds = %for.body3
- %scevgep = getelementptr i64, i64* %B.addr.04, i64 20
+ %scevgep = getelementptr i64, ptr %B.addr.04, i64 20
%inc8 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc8, 20
br i1 %exitcond5, label %for.cond1.preheader, label %for.end9
@@ -835,7 +835,7 @@ for.end9: ; preds = %for.inc7
;; A[100*i + j] = 0;
;; *B++ = A[100*i - j + 11];
-define void @banerjee12(i64* %A, i64* %B, i64 %m, i64 %n) nounwind uwtable ssp {
+define void @banerjee12(ptr %A, ptr %B, i64 %m, i64 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -864,30 +864,30 @@ entry:
; DELIN: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc7
- %B.addr.04 = phi i64* [ %B, %entry ], [ %scevgep, %for.inc7 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc7 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc8, %for.inc7 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i64* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%mul = mul nsw i64 %i.03, 100
%add = add nsw i64 %mul, %j.02
- %arrayidx = getelementptr inbounds i64, i64* %A, i64 %add
- store i64 0, i64* %arrayidx, align 8
+ %arrayidx = getelementptr inbounds i64, ptr %A, i64 %add
+ store i64 0, ptr %arrayidx, align 8
%mul4 = mul nsw i64 %i.03, 100
%sub = sub nsw i64 %mul4, %j.02
%add5 = add nsw i64 %sub, 11
- %arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %add5
- %0 = load i64, i64* %arrayidx6, align 8
- %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
- store i64 %0, i64* %B.addr.11, align 8
+ %arrayidx6 = getelementptr inbounds i64, ptr %A, i64 %add5
+ %0 = load i64, ptr %arrayidx6, align 8
+ %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.11, i64 1
+ store i64 %0, ptr %B.addr.11, align 8
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 20
br i1 %exitcond, label %for.body3, label %for.inc7
for.inc7: ; preds = %for.body3
- %scevgep = getelementptr i64, i64* %B.addr.04, i64 20
+ %scevgep = getelementptr i64, ptr %B.addr.04, i64 20
%inc8 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc8, 20
br i1 %exitcond5, label %for.cond1.preheader, label %for.end9
diff --git a/llvm/test/Analysis/DependenceAnalysis/BasePtrBug.ll b/llvm/test/Analysis/DependenceAnalysis/BasePtrBug.ll
index d41ca37707bc1..354ea5db72000 100644
--- a/llvm/test/Analysis/DependenceAnalysis/BasePtrBug.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/BasePtrBug.ll
@@ -15,25 +15,25 @@
; CHECK-LABEL: test1
; CHECK: da analyze - input [*|<]!
-define void @test1(i32* nocapture %A, i32* nocapture %B, i32 %N) #0 {
+define void @test1(ptr nocapture %A, ptr nocapture %B, i32 %N) #0 {
entry:
%cmp9 = icmp sgt i32 %N, 0
br i1 %cmp9, label %for.body.lr.ph, label %for.end
for.body.lr.ph:
%div = sdiv i32 %N, 2
- %bot.gep = getelementptr i32, i32* %A, i32 %div
+ %bot.gep = getelementptr i32, ptr %A, i32 %div
br label %for.body
for.body:
%i = phi i32 [ 0, %for.body.lr.ph ], [ %inc, %for.body ]
- %gep.0 = getelementptr i32, i32* %A, i32 %i
- %gep.1 = getelementptr i32, i32* %bot.gep, i32 %i
- %gep.B = getelementptr i32, i32* %B, i32 %i
- %0 = load i32, i32* %gep.0, align 4
- %1 = load i32, i32* %gep.1, align 4
+ %gep.0 = getelementptr i32, ptr %A, i32 %i
+ %gep.1 = getelementptr i32, ptr %bot.gep, i32 %i
+ %gep.B = getelementptr i32, ptr %B, i32 %i
+ %0 = load i32, ptr %gep.0, align 4
+ %1 = load i32, ptr %gep.1, align 4
%add = add nsw i32 %1, %0
- store i32 %add, i32* %gep.B, align 4
+ store i32 %add, ptr %gep.B, align 4
%inc = add nsw i32 %i, 1
%exitcond = icmp eq i32 %inc, %N
br i1 %exitcond, label %for.end, label %for.body
@@ -53,8 +53,8 @@ for.end:
; CHECK-LABEL: test2
; CHECK: da analyze - consistent anti [1]!
-define void @test2(i32*, i32) #3 {
- %3 = getelementptr inbounds i32, i32* %0, i64 1
+define void @test2(ptr, i32) #3 {
+ %3 = getelementptr inbounds i32, ptr %0, i64 1
br label %4
; <label>:4:
@@ -65,11 +65,11 @@ define void @test2(i32*, i32) #3 {
; <label>:7:
%8 = zext i32 %.0 to i64
- %9 = getelementptr inbounds i32, i32* %3, i64 %8
- %10 = load i32, i32* %9, align 4
+ %9 = getelementptr inbounds i32, ptr %3, i64 %8
+ %10 = load i32, ptr %9, align 4
%11 = zext i32 %.0 to i64
- %12 = getelementptr inbounds i32, i32* %0, i64 %11
- store i32 %10, i32* %12, align 4
+ %12 = getelementptr inbounds i32, ptr %0, i64 %11
+ store i32 %10, ptr %12, align 4
br label %13
; <label>:13:
diff --git a/llvm/test/Analysis/DependenceAnalysis/Constraints.ll b/llvm/test/Analysis/DependenceAnalysis/Constraints.ll
index a10e643f46650..c3cebd325bdeb 100644
--- a/llvm/test/Analysis/DependenceAnalysis/Constraints.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/Constraints.ll
@@ -19,9 +19,9 @@ define void @dep_constraint_crash_test(i32 %M, i32 %N) {
%3 = icmp slt i32 %M, 2
%4 = add nsw i32 %M, -1
%5 = sext i32 %4 to i64
- %6 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* @c, i64 0, i64 0, i64 %5
+ %6 = getelementptr inbounds [10 x [10 x i32]], ptr @c, i64 0, i64 0, i64 %5
%7 = add nsw i32 %M, -1
- %out_l.promoted = load i32, i32* @out_l
+ %out_l.promoted = load i32, ptr @out_l
%8 = sext i32 %7 to i64
%9 = sext i32 %2 to i64
br label %.preheader
@@ -48,8 +48,8 @@ define void @dep_constraint_crash_test(i32 %M, i32 %N) {
.lr.ph4: ; preds = %.lr.ph6, %._crit_edge
%indvars.iv19 = phi i64 [ %indvars.iv.next20, %._crit_edge ], [ %indvars.iv17, %.lr.ph6 ]
%indvars.iv15 = phi i32 [ %indvars.iv.next16, %._crit_edge ], [ %indvars.iv13, %.lr.ph6 ]
- %13 = getelementptr inbounds [10 x [10 x [10 x i32]]], [10 x [10 x [10 x i32]]]* @sum_c, i64 0, i64 %indvars.iv23, i64 %indvars.iv19, i64 %indvars.iv23
- store i32 0, i32* %13
+ %13 = getelementptr inbounds [10 x [10 x [10 x i32]]], ptr @sum_c, i64 0, i64 %indvars.iv23, i64 %indvars.iv19, i64 %indvars.iv23
+ store i32 0, ptr %13
%14 = add nsw i64 %indvars.iv19, -1
%15 = icmp slt i64 %indvars.iv23, %14
br i1 %15, label %.lr.ph, label %._crit_edge
@@ -57,29 +57,29 @@ define void @dep_constraint_crash_test(i32 %M, i32 %N) {
.lr.ph: ; preds = %.lr.ph4, %.lr.ph
%indvars.iv11 = phi i64 [ %indvars.iv.next12, %.lr.ph ], [ %indvars.iv17, %.lr.ph4 ]
%16 = add nsw i64 %indvars.iv11, -1
- %17 = getelementptr inbounds [10 x [10 x [10 x i32]]], [10 x [10 x [10 x i32]]]* @sum_c, i64 0, i64 %indvars.iv23, i64 %indvars.iv19, i64 %16
- %18 = load i32, i32* %17
- %19 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* @c, i64 0, i64 %indvars.iv23, i64 %indvars.iv11
- %20 = load i32, i32* %19
+ %17 = getelementptr inbounds [10 x [10 x [10 x i32]]], ptr @sum_c, i64 0, i64 %indvars.iv23, i64 %indvars.iv19, i64 %16
+ %18 = load i32, ptr %17
+ %19 = getelementptr inbounds [10 x [10 x i32]], ptr @c, i64 0, i64 %indvars.iv23, i64 %indvars.iv11
+ %20 = load i32, ptr %19
%21 = add nsw i32 %20, %18
- %22 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* @c, i64 0, i64 %indvars.iv11, i64 %indvars.iv19
- %23 = load i32, i32* %22
+ %22 = getelementptr inbounds [10 x [10 x i32]], ptr @c, i64 0, i64 %indvars.iv11, i64 %indvars.iv19
+ %23 = load i32, ptr %22
%24 = add nsw i32 %21, %23
- %25 = getelementptr inbounds [10 x [10 x [10 x i32]]], [10 x [10 x [10 x i32]]]* @sum_c, i64 0, i64 %indvars.iv23, i64 %indvars.iv19, i64 %indvars.iv11
- store i32 %24, i32* %25
+ %25 = getelementptr inbounds [10 x [10 x [10 x i32]]], ptr @sum_c, i64 0, i64 %indvars.iv23, i64 %indvars.iv19, i64 %indvars.iv11
+ store i32 %24, ptr %25
%indvars.iv.next12 = add nuw nsw i64 %indvars.iv11, 1
%lftr.wideiv = trunc i64 %indvars.iv.next12 to i32
%exitcond = icmp eq i32 %lftr.wideiv, %indvars.iv15
br i1 %exitcond, label %._crit_edge, label %.lr.ph
._crit_edge: ; preds = %.lr.ph, %.lr.ph4
- %26 = getelementptr inbounds [10 x [10 x [10 x i32]]], [10 x [10 x [10 x i32]]]* @sum_c, i64 0, i64 %indvars.iv23, i64 %indvars.iv19, i64 %14
- %27 = load i32, i32* %26
- %28 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* @W, i64 0, i64 %indvars.iv23, i64 %indvars.iv19
- %29 = load i32, i32* %28
+ %26 = getelementptr inbounds [10 x [10 x [10 x i32]]], ptr @sum_c, i64 0, i64 %indvars.iv23, i64 %indvars.iv19, i64 %14
+ %27 = load i32, ptr %26
+ %28 = getelementptr inbounds [10 x [10 x i32]], ptr @W, i64 0, i64 %indvars.iv23, i64 %indvars.iv19
+ %29 = load i32, ptr %28
%30 = add nsw i32 %29, %27
- %31 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* @c, i64 0, i64 %indvars.iv23, i64 %indvars.iv19
- store i32 %30, i32* %31
+ %31 = getelementptr inbounds [10 x [10 x i32]], ptr @c, i64 0, i64 %indvars.iv23, i64 %indvars.iv19
+ store i32 %30, ptr %31
%indvars.iv.next16 = add nuw i32 %indvars.iv15, 1
%indvars.iv.next20 = add nuw nsw i64 %indvars.iv19, 1
%lftr.wideiv21 = trunc i64 %indvars.iv.next20 to i32
@@ -87,14 +87,14 @@ define void @dep_constraint_crash_test(i32 %M, i32 %N) {
br i1 %exitcond22, label %.loopexit, label %.lr.ph4
._crit_edge7: ; preds = %.loopexit, %.preheader
- %32 = load i32, i32* %6
+ %32 = load i32, ptr %6
%33 = add nsw i32 %10, %32
%34 = add nuw nsw i32 %iter.08, 1
%exitcond25 = icmp eq i32 %34, %N
br i1 %exitcond25, label %._crit_edge9, label %.preheader
._crit_edge9: ; preds = %._crit_edge7
- store i32 %33, i32* @out_l
+ store i32 %33, ptr @out_l
br label %35
; <label>:35 ; preds = %._crit_edge9, %0
diff --git a/llvm/test/Analysis/DependenceAnalysis/Coupled.ll b/llvm/test/Analysis/DependenceAnalysis/Coupled.ll
index de79442714f23..04ea6987e21a8 100644
--- a/llvm/test/Analysis/DependenceAnalysis/Coupled.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/Coupled.ll
@@ -9,7 +9,7 @@ target triple = "x86_64-apple-macosx10.6.0"
;; A[i][i] = i;
;; *B++ = A[i + 10][i + 9];
-define void @couple0([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @couple0(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -23,16 +23,16 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
- %arrayidx1 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
- store i32 %conv, i32* %arrayidx1, align 4
+ %arrayidx1 = getelementptr inbounds [100 x i32], ptr %A, i64 %i.02, i64 %i.02
+ store i32 %conv, ptr %arrayidx1, align 4
%add = add nsw i64 %i.02, 9
%add2 = add nsw i64 %i.02, 10
- %arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %add2, i64 %add
- %0 = load i32, i32* %arrayidx4, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx4 = getelementptr inbounds [100 x i32], ptr %A, i64 %add2, i64 %add
+ %0 = load i32, ptr %arrayidx4, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add nsw i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 50
br i1 %exitcond, label %for.body, label %for.end
@@ -46,7 +46,7 @@ for.end: ; preds = %for.body
;; A[i][i] = i;
;; *B++ = A[i + 9][i + 9];
-define void @couple1([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @couple1(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -60,16 +60,16 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
- %arrayidx1 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
- store i32 %conv, i32* %arrayidx1, align 4
+ %arrayidx1 = getelementptr inbounds [100 x i32], ptr %A, i64 %i.02, i64 %i.02
+ store i32 %conv, ptr %arrayidx1, align 4
%add = add nsw i64 %i.02, 9
%add2 = add nsw i64 %i.02, 9
- %arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %add2, i64 %add
- %0 = load i32, i32* %arrayidx4, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx4 = getelementptr inbounds [100 x i32], ptr %A, i64 %add2, i64 %add
+ %0 = load i32, ptr %arrayidx4, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add nsw i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 50
br i1 %exitcond, label %for.body, label %for.end
@@ -83,7 +83,7 @@ for.end: ; preds = %for.body
;; A[3*i - 6][3*i - 6] = i;
;; *B++ = A[i][i];
-define void @couple2([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @couple2(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -97,18 +97,18 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = mul nsw i64 %i.02, 3
%sub = add nsw i64 %mul, -6
%mul1 = mul nsw i64 %i.02, 3
%sub2 = add nsw i64 %mul1, -6
- %arrayidx3 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub2, i64 %sub
- store i32 %conv, i32* %arrayidx3, align 4
- %arrayidx5 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
- %0 = load i32, i32* %arrayidx5, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx3 = getelementptr inbounds [100 x i32], ptr %A, i64 %sub2, i64 %sub
+ store i32 %conv, ptr %arrayidx3, align 4
+ %arrayidx5 = getelementptr inbounds [100 x i32], ptr %A, i64 %i.02, i64 %i.02
+ %0 = load i32, ptr %arrayidx5, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add nsw i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 50
br i1 %exitcond, label %for.body, label %for.end
@@ -122,7 +122,7 @@ for.end: ; preds = %for.body
;; A[3*i - 6][3*i - 5] = i;
;; *B++ = A[i][i];
-define void @couple3([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @couple3(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -136,18 +136,18 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = mul nsw i64 %i.02, 3
%sub = add nsw i64 %mul, -5
%mul1 = mul nsw i64 %i.02, 3
%sub2 = add nsw i64 %mul1, -6
- %arrayidx3 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub2, i64 %sub
- store i32 %conv, i32* %arrayidx3, align 4
- %arrayidx5 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
- %0 = load i32, i32* %arrayidx5, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx3 = getelementptr inbounds [100 x i32], ptr %A, i64 %sub2, i64 %sub
+ store i32 %conv, ptr %arrayidx3, align 4
+ %arrayidx5 = getelementptr inbounds [100 x i32], ptr %A, i64 %i.02, i64 %i.02
+ %0 = load i32, ptr %arrayidx5, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add nsw i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 50
br i1 %exitcond, label %for.body, label %for.end
@@ -161,7 +161,7 @@ for.end: ; preds = %for.body
;; A[3*i - 6][3*i - n] = i;
;; *B++ = A[i][i];
-define void @couple4([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @couple4(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -175,19 +175,19 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = mul nsw i64 %i.02, 3
%conv1 = sext i32 %n to i64
%sub = sub nsw i64 %mul, %conv1
%mul2 = mul nsw i64 %i.02, 3
%sub3 = add nsw i64 %mul2, -6
- %arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub3, i64 %sub
- store i32 %conv, i32* %arrayidx4, align 4
- %arrayidx6 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
- %0 = load i32, i32* %arrayidx6, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx4 = getelementptr inbounds [100 x i32], ptr %A, i64 %sub3, i64 %sub
+ store i32 %conv, ptr %arrayidx4, align 4
+ %arrayidx6 = getelementptr inbounds [100 x i32], ptr %A, i64 %i.02, i64 %i.02
+ %0 = load i32, ptr %arrayidx6, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add nsw i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 50
br i1 %exitcond, label %for.body, label %for.end
@@ -201,7 +201,7 @@ for.end: ; preds = %for.body
;; A[3*i - n + 1][3*i - n] = i;
;; *B++ = A[i][i];
-define void @couple5([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @couple5(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -215,7 +215,7 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = mul nsw i64 %i.02, 3
%conv1 = sext i32 %n to i64
@@ -224,12 +224,12 @@ for.body: ; preds = %entry, %for.body
%conv3 = sext i32 %n to i64
%sub4 = sub nsw i64 %mul2, %conv3
%add = add nsw i64 %sub4, 1
- %arrayidx5 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %add, i64 %sub
- store i32 %conv, i32* %arrayidx5, align 4
- %arrayidx7 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
- %0 = load i32, i32* %arrayidx7, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx5 = getelementptr inbounds [100 x i32], ptr %A, i64 %add, i64 %sub
+ store i32 %conv, ptr %arrayidx5, align 4
+ %arrayidx7 = getelementptr inbounds [100 x i32], ptr %A, i64 %i.02, i64 %i.02
+ %0 = load i32, ptr %arrayidx7, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add nsw i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 50
br i1 %exitcond, label %for.body, label %for.end
@@ -243,7 +243,7 @@ for.end: ; preds = %for.body
;; A[i][3*i - 6] = i;
;; *B++ = A[i][i];
-define void @couple6([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @couple6(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -257,16 +257,16 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = mul nsw i64 %i.02, 3
%sub = add nsw i64 %mul, -6
- %arrayidx1 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %sub
- store i32 %conv, i32* %arrayidx1, align 4
- %arrayidx3 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
- %0 = load i32, i32* %arrayidx3, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx1 = getelementptr inbounds [100 x i32], ptr %A, i64 %i.02, i64 %sub
+ store i32 %conv, ptr %arrayidx1, align 4
+ %arrayidx3 = getelementptr inbounds [100 x i32], ptr %A, i64 %i.02, i64 %i.02
+ %0 = load i32, ptr %arrayidx3, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add nsw i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 50
br i1 %exitcond, label %for.body, label %for.end
@@ -280,7 +280,7 @@ for.end: ; preds = %for.body
;; A[i][3*i - 5] = i;
;; *B++ = A[i][i];
-define void @couple7([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @couple7(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -294,16 +294,16 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = mul nsw i64 %i.02, 3
%sub = add nsw i64 %mul, -5
- %arrayidx1 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %sub
- store i32 %conv, i32* %arrayidx1, align 4
- %arrayidx3 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
- %0 = load i32, i32* %arrayidx3, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx1 = getelementptr inbounds [100 x i32], ptr %A, i64 %i.02, i64 %sub
+ store i32 %conv, ptr %arrayidx1, align 4
+ %arrayidx3 = getelementptr inbounds [100 x i32], ptr %A, i64 %i.02, i64 %i.02
+ %0 = load i32, ptr %arrayidx3, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add nsw i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 50
br i1 %exitcond, label %for.body, label %for.end
@@ -317,7 +317,7 @@ for.end: ; preds = %for.body
;; A[3*i - 18][3 - i] = i;
;; *B++ = A[i][i];
-define void @couple8([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @couple8(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -331,17 +331,17 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%sub = sub nsw i64 3, %i.02
%mul = mul nsw i64 %i.02, 3
%sub1 = add nsw i64 %mul, -18
- %arrayidx2 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub1, i64 %sub
- store i32 %conv, i32* %arrayidx2, align 4
- %arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
- %0 = load i32, i32* %arrayidx4, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx2 = getelementptr inbounds [100 x i32], ptr %A, i64 %sub1, i64 %sub
+ store i32 %conv, ptr %arrayidx2, align 4
+ %arrayidx4 = getelementptr inbounds [100 x i32], ptr %A, i64 %i.02, i64 %i.02
+ %0 = load i32, ptr %arrayidx4, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add nsw i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 16
br i1 %exitcond, label %for.body, label %for.end
@@ -355,7 +355,7 @@ for.end: ; preds = %for.body
;; A[3*i - 18][2 - i] = i;
;; *B++ = A[i][i];
-define void @couple9([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @couple9(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -369,17 +369,17 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%sub = sub nsw i64 2, %i.02
%mul = mul nsw i64 %i.02, 3
%sub1 = add nsw i64 %mul, -18
- %arrayidx2 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub1, i64 %sub
- store i32 %conv, i32* %arrayidx2, align 4
- %arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
- %0 = load i32, i32* %arrayidx4, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx2 = getelementptr inbounds [100 x i32], ptr %A, i64 %sub1, i64 %sub
+ store i32 %conv, ptr %arrayidx2, align 4
+ %arrayidx4 = getelementptr inbounds [100 x i32], ptr %A, i64 %i.02, i64 %i.02
+ %0 = load i32, ptr %arrayidx4, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add nsw i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 16
br i1 %exitcond, label %for.body, label %for.end
@@ -393,7 +393,7 @@ for.end: ; preds = %for.body
;; A[3*i - 18][6 - i] = i;
;; *B++ = A[i][i];
-define void @couple10([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @couple10(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -407,17 +407,17 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%sub = sub nsw i64 6, %i.02
%mul = mul nsw i64 %i.02, 3
%sub1 = add nsw i64 %mul, -18
- %arrayidx2 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub1, i64 %sub
- store i32 %conv, i32* %arrayidx2, align 4
- %arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
- %0 = load i32, i32* %arrayidx4, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx2 = getelementptr inbounds [100 x i32], ptr %A, i64 %sub1, i64 %sub
+ store i32 %conv, ptr %arrayidx2, align 4
+ %arrayidx4 = getelementptr inbounds [100 x i32], ptr %A, i64 %i.02, i64 %i.02
+ %0 = load i32, ptr %arrayidx4, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add nsw i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 16
br i1 %exitcond, label %for.body, label %for.end
@@ -431,7 +431,7 @@ for.end: ; preds = %for.body
;; A[3*i - 18][18 - i] = i;
;; *B++ = A[i][i];
-define void @couple11([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @couple11(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -446,17 +446,17 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%sub = sub nsw i64 18, %i.02
%mul = mul nsw i64 %i.02, 3
%sub1 = add nsw i64 %mul, -18
- %arrayidx2 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub1, i64 %sub
- store i32 %conv, i32* %arrayidx2, align 4
- %arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
- %0 = load i32, i32* %arrayidx4, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx2 = getelementptr inbounds [100 x i32], ptr %A, i64 %sub1, i64 %sub
+ store i32 %conv, ptr %arrayidx2, align 4
+ %arrayidx4 = getelementptr inbounds [100 x i32], ptr %A, i64 %i.02, i64 %i.02
+ %0 = load i32, ptr %arrayidx4, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add nsw i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 16
br i1 %exitcond, label %for.body, label %for.end
@@ -470,7 +470,7 @@ for.end: ; preds = %for.body
;; A[3*i - 18][22 - i] = i;
;; *B++ = A[i][i];
-define void @couple12([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @couple12(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -485,17 +485,17 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%sub = sub nsw i64 22, %i.02
%mul = mul nsw i64 %i.02, 3
%sub1 = add nsw i64 %mul, -18
- %arrayidx2 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub1, i64 %sub
- store i32 %conv, i32* %arrayidx2, align 4
- %arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
- %0 = load i32, i32* %arrayidx4, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx2 = getelementptr inbounds [100 x i32], ptr %A, i64 %sub1, i64 %sub
+ store i32 %conv, ptr %arrayidx2, align 4
+ %arrayidx4 = getelementptr inbounds [100 x i32], ptr %A, i64 %i.02, i64 %i.02
+ %0 = load i32, ptr %arrayidx4, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add nsw i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 13
br i1 %exitcond, label %for.body, label %for.end
@@ -509,7 +509,7 @@ for.end: ; preds = %for.body
;; A[3*i - 18][22 - i] = i;
;; *B++ = A[i][i];
-define void @couple13([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @couple13(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -523,17 +523,17 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%sub = sub nsw i64 22, %i.02
%mul = mul nsw i64 %i.02, 3
%sub1 = add nsw i64 %mul, -18
- %arrayidx2 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub1, i64 %sub
- store i32 %conv, i32* %arrayidx2, align 4
- %arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
- %0 = load i32, i32* %arrayidx4, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx2 = getelementptr inbounds [100 x i32], ptr %A, i64 %sub1, i64 %sub
+ store i32 %conv, ptr %arrayidx2, align 4
+ %arrayidx4 = getelementptr inbounds [100 x i32], ptr %A, i64 %i.02, i64 %i.02
+ %0 = load i32, ptr %arrayidx4, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add nsw i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 12
br i1 %exitcond, label %for.body, label %for.end
@@ -546,7 +546,7 @@ for.end: ; preds = %for.body
;; A[3*i - 18][18 - i][i] = i;
;; *B++ = A[i][i][i];
-define void @couple14([100 x [100 x i32]]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @couple14(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -560,17 +560,17 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%sub = sub nsw i64 18, %i.02
%mul = mul nsw i64 %i.02, 3
%sub1 = add nsw i64 %mul, -18
- %arrayidx3 = getelementptr inbounds [100 x [100 x i32]], [100 x [100 x i32]]* %A, i64 %sub1, i64 %sub, i64 %i.02
- store i32 %conv, i32* %arrayidx3, align 4
- %arrayidx6 = getelementptr inbounds [100 x [100 x i32]], [100 x [100 x i32]]* %A, i64 %i.02, i64 %i.02, i64 %i.02
- %0 = load i32, i32* %arrayidx6, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx3 = getelementptr inbounds [100 x [100 x i32]], ptr %A, i64 %sub1, i64 %sub, i64 %i.02
+ store i32 %conv, ptr %arrayidx3, align 4
+ %arrayidx6 = getelementptr inbounds [100 x [100 x i32]], ptr %A, i64 %i.02, i64 %i.02, i64 %i.02
+ %0 = load i32, ptr %arrayidx6, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add nsw i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 100
br i1 %exitcond, label %for.body, label %for.end
@@ -584,7 +584,7 @@ for.end: ; preds = %for.body
;; A[3*i - 18][22 - i][i] = i;
;; *B++ = A[i][i][i];
-define void @couple15([100 x [100 x i32]]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @couple15(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -598,17 +598,17 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%sub = sub nsw i64 22, %i.02
%mul = mul nsw i64 %i.02, 3
%sub1 = add nsw i64 %mul, -18
- %arrayidx3 = getelementptr inbounds [100 x [100 x i32]], [100 x [100 x i32]]* %A, i64 %sub1, i64 %sub, i64 %i.02
- store i32 %conv, i32* %arrayidx3, align 4
- %arrayidx6 = getelementptr inbounds [100 x [100 x i32]], [100 x [100 x i32]]* %A, i64 %i.02, i64 %i.02, i64 %i.02
- %0 = load i32, i32* %arrayidx6, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx3 = getelementptr inbounds [100 x [100 x i32]], ptr %A, i64 %sub1, i64 %sub, i64 %i.02
+ store i32 %conv, ptr %arrayidx3, align 4
+ %arrayidx6 = getelementptr inbounds [100 x [100 x i32]], ptr %A, i64 %i.02, i64 %i.02, i64 %i.02
+ %0 = load i32, ptr %arrayidx6, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add nsw i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 100
br i1 %exitcond, label %for.body, label %for.end
@@ -622,7 +622,7 @@ for.end: ; preds = %for.body
;; for(int j = 0; j < M; j+=1)
;; A[M*N + M*i + j] = 2;
-define void @couple_weakzerosiv(i32* noalias nocapture %A, i64 %N, i64 %M) {
+define void @couple_weakzerosiv(ptr noalias nocapture %A, i64 %N, i64 %M) {
entry:
%cmp29 = icmp sgt i64 %N, 0
br i1 %cmp29, label %for.body.lr.ph, label %for.cond.cleanup
@@ -639,8 +639,8 @@ for.body.lr.ph: ; preds = %entry
for.body.us: ; preds = %for.body.lr.ph, %for.cond.cleanup4.loopexit.us
%i.030.us = phi i64 [ %add12.us, %for.cond.cleanup4.loopexit.us ], [ 0, %for.body.lr.ph ]
%mul1.us = mul nsw i64 %i.030.us, %mul
- %arrayidx.us = getelementptr inbounds i32, i32* %A, i64 %mul1.us
- store i32 1, i32* %arrayidx.us, align 4
+ %arrayidx.us = getelementptr inbounds i32, ptr %A, i64 %mul1.us
+ store i32 1, ptr %arrayidx.us, align 4
%mul6.us = mul nsw i64 %i.030.us, %M
%add.us = add i64 %mul6.us, %mul
br label %for.body5.us
@@ -648,8 +648,8 @@ for.body.us: ; preds = %for.body.lr.ph, %fo
for.body5.us: ; preds = %for.body5.us, %for.body.us
%j.028.us = phi i64 [ 0, %for.body.us ], [ %add10.us, %for.body5.us ]
%add8.us = add i64 %add.us, %j.028.us
- %arrayidx9.us = getelementptr inbounds i32, i32* %A, i64 %add8.us
- store i32 2, i32* %arrayidx9.us, align 4
+ %arrayidx9.us = getelementptr inbounds i32, ptr %A, i64 %add8.us
+ store i32 2, ptr %arrayidx9.us, align 4
%add10.us = add nuw nsw i64 %j.028.us, 1
%exitcond.us = icmp eq i64 %add10.us, %M
br i1 %exitcond.us, label %for.cond.cleanup4.loopexit.us, label %for.body5.us
diff --git a/llvm/test/Analysis/DependenceAnalysis/DADelin.ll b/llvm/test/Analysis/DependenceAnalysis/DADelin.ll
index 8c64eedbb3adc..73260910c3873 100644
--- a/llvm/test/Analysis/DependenceAnalysis/DADelin.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/DADelin.ll
@@ -10,7 +10,7 @@ target triple = "thumbv8m.main-arm-none-eabi"
;; for (int k = 0; k < o; k++)
;; = A[i*m*o + j*o + k]
;; A[i*m*o + j*o + k] =
-define void @t1(i32 %n, i32 %m, i32 %o, i32* nocapture %A) {
+define void @t1(i32 %n, i32 %m, i32 %o, ptr nocapture %A) {
; CHECK: da analyze - none!
; CHECK: da analyze - consistent anti [0 0 0|<]!
; CHECK: da analyze - none!
@@ -43,10 +43,10 @@ for.body8.lr.ph: ; preds = %for.cond5.preheader
for.body8: ; preds = %for.body8, %for.body8.lr.ph
%k.046 = phi i32 [ 0, %for.body8.lr.ph ], [ %inc, %for.body8 ]
%add11 = add nsw i32 %k.046, %add
- %arrayidx = getelementptr inbounds i32, i32* %A, i32 %add11
- %0 = load i32, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i32 %add11
+ %0 = load i32, ptr %arrayidx, align 4
%add12 = add nsw i32 %0, 1
- store i32 %add12, i32* %arrayidx, align 4
+ store i32 %add12, ptr %arrayidx, align 4
%inc = add nuw nsw i32 %k.046, 1
%exitcond = icmp eq i32 %inc, %o
br i1 %exitcond, label %for.cond.cleanup7, label %for.body8
@@ -71,7 +71,7 @@ for.cond.cleanup: ; preds = %for.cond.cleanup3,
;; for (int k = 0; k < o; k++)
;; = A[i*m*o + j*o + k]
;; A[i*m*o + j*o + k + 1] =
-define void @t2(i32 %n, i32 %m, i32 %o, i32* nocapture %A) {
+define void @t2(i32 %n, i32 %m, i32 %o, ptr nocapture %A) {
; CHECK: da analyze - none!
; CHECK: da analyze - anti [* * *|<]!
; CHECK: da analyze - output [* * *]!
@@ -104,12 +104,12 @@ for.body8.lr.ph: ; preds = %for.cond5.preheader
for.body8: ; preds = %for.body8, %for.body8.lr.ph
%k.046 = phi i32 [ 0, %for.body8.lr.ph ], [ %inc, %for.body8 ]
%add11 = add nsw i32 %k.046, %add
- %arrayidx = getelementptr inbounds i32, i32* %A, i32 %add11
- %0 = load i32, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i32 %add11
+ %0 = load i32, ptr %arrayidx, align 4
%add12 = add nsw i32 %0, 1
%add111 = add nsw i32 %add11, 1
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i32 %add111
- store i32 %add12, i32* %arrayidx2, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i32 %add111
+ store i32 %add12, ptr %arrayidx2, align 4
%inc = add nuw nsw i32 %k.046, 1
%exitcond = icmp eq i32 %inc, %o
br i1 %exitcond, label %for.cond.cleanup7, label %for.body8
@@ -134,7 +134,7 @@ for.cond.cleanup: ; preds = %for.cond.cleanup3,
;; for (int k = 0; k < o; k++)
;; = A[i*m*o + j*o + k]
;; A[i*m*o + j*o + k - 1] =
-define void @t3(i32 %n, i32 %m, i32 %o, i32* nocapture %A) {
+define void @t3(i32 %n, i32 %m, i32 %o, ptr nocapture %A) {
; CHECK: da analyze - none!
; CHECK: da analyze - anti [* * *|<]!
; CHECK: da analyze - output [* * *]!
@@ -167,12 +167,12 @@ for.body8.lr.ph: ; preds = %for.cond5.preheader
for.body8: ; preds = %for.body8, %for.body8.lr.ph
%k.046 = phi i32 [ 0, %for.body8.lr.ph ], [ %inc, %for.body8 ]
%add11 = add nsw i32 %k.046, %add
- %arrayidx = getelementptr inbounds i32, i32* %A, i32 %add11
- %0 = load i32, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i32 %add11
+ %0 = load i32, ptr %arrayidx, align 4
%add12 = add nsw i32 %0, 1
%add111 = sub nsw i32 %add11, 1
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i32 %add111
- store i32 %add12, i32* %arrayidx2, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i32 %add111
+ store i32 %add12, ptr %arrayidx2, align 4
%inc = add nuw nsw i32 %k.046, 1
%exitcond = icmp eq i32 %inc, %o
br i1 %exitcond, label %for.cond.cleanup7, label %for.body8
@@ -197,7 +197,7 @@ for.cond.cleanup: ; preds = %for.cond.cleanup3,
;; for (int k = 0; k < o; k++)
;; = A[i*m*o + j*o + k]
;; A[i*m*o + j*o + k + o] =
-define void @t4(i32 %n, i32 %m, i32 %o, i32* nocapture %A) {
+define void @t4(i32 %n, i32 %m, i32 %o, ptr nocapture %A) {
; CHECK: da analyze - none!
; CHECK: da analyze - anti [* * *|<]!
; CHECK: da analyze - output [* * *]!
@@ -230,12 +230,12 @@ for.body8.lr.ph: ; preds = %for.cond5.preheader
for.body8: ; preds = %for.body8, %for.body8.lr.ph
%k.046 = phi i32 [ 0, %for.body8.lr.ph ], [ %inc, %for.body8 ]
%add11 = add nsw i32 %k.046, %add
- %arrayidx = getelementptr inbounds i32, i32* %A, i32 %add11
- %0 = load i32, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i32 %add11
+ %0 = load i32, ptr %arrayidx, align 4
%add12 = add nsw i32 %0, 1
%add111 = add nsw i32 %add11, %o
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i32 %add111
- store i32 %add12, i32* %arrayidx2, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i32 %add111
+ store i32 %add12, ptr %arrayidx2, align 4
%inc = add nuw nsw i32 %k.046, 1
%exitcond = icmp eq i32 %inc, %o
br i1 %exitcond, label %for.cond.cleanup7, label %for.body8
@@ -260,7 +260,7 @@ for.cond.cleanup: ; preds = %for.cond.cleanup3,
;; for (int k = 0; k < o; k++)
;; = A[i*m*o + j*o + k]
;; A[i*m*o + j*o + k - o] =
-define void @t5(i32 %n, i32 %m, i32 %o, i32* nocapture %A) {
+define void @t5(i32 %n, i32 %m, i32 %o, ptr nocapture %A) {
; CHECK: da analyze - none!
; CHECK: da analyze - anti [* * *|<]!
; CHECK: da analyze - output [* * *]!
@@ -293,12 +293,12 @@ for.body8.lr.ph: ; preds = %for.cond5.preheader
for.body8: ; preds = %for.body8, %for.body8.lr.ph
%k.046 = phi i32 [ 0, %for.body8.lr.ph ], [ %inc, %for.body8 ]
%add11 = add nsw i32 %k.046, %add
- %arrayidx = getelementptr inbounds i32, i32* %A, i32 %add11
- %0 = load i32, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i32 %add11
+ %0 = load i32, ptr %arrayidx, align 4
%add12 = add nsw i32 %0, 1
%add111 = sub nsw i32 %add11, %o
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i32 %add111
- store i32 %add12, i32* %arrayidx2, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i32 %add111
+ store i32 %add12, ptr %arrayidx2, align 4
%inc = add nuw nsw i32 %k.046, 1
%exitcond = icmp eq i32 %inc, %o
br i1 %exitcond, label %for.cond.cleanup7, label %for.body8
@@ -323,7 +323,7 @@ for.cond.cleanup: ; preds = %for.cond.cleanup3,
;; for (int k = 0; k < o; k++)
;; = A[i*m*o + j*o + k]
;; A[i*m*o + j*o + k + m*o] =
-define void @t6(i32 %n, i32 %m, i32 %o, i32* nocapture %A) {
+define void @t6(i32 %n, i32 %m, i32 %o, ptr nocapture %A) {
; CHECK: da analyze - none!
; CHECK: da analyze - consistent anti [-1 0 0]!
; CHECK: da analyze - none!
@@ -356,13 +356,13 @@ for.body8.lr.ph: ; preds = %for.cond5.preheader
for.body8: ; preds = %for.body8, %for.body8.lr.ph
%k.046 = phi i32 [ 0, %for.body8.lr.ph ], [ %inc, %for.body8 ]
%add11 = add nsw i32 %k.046, %add
- %arrayidx = getelementptr inbounds i32, i32* %A, i32 %add11
- %0 = load i32, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i32 %add11
+ %0 = load i32, ptr %arrayidx, align 4
%add12 = add nsw i32 %0, 1
%mo = mul i32 %m, %o
%add111 = add nsw i32 %add11, %mo
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i32 %add111
- store i32 %add12, i32* %arrayidx2, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i32 %add111
+ store i32 %add12, ptr %arrayidx2, align 4
%inc = add nuw nsw i32 %k.046, 1
%exitcond = icmp eq i32 %inc, %o
br i1 %exitcond, label %for.cond.cleanup7, label %for.body8
@@ -387,7 +387,7 @@ for.cond.cleanup: ; preds = %for.cond.cleanup3,
;; for (int k = 0; k < o; k++)
;; = A[i*m*o + j*o + k]
;; A[i*m*o + j*o + k - m*o] =
-define void @t7(i32 %n, i32 %m, i32 %o, i32* nocapture %A) {
+define void @t7(i32 %n, i32 %m, i32 %o, ptr nocapture %A) {
; CHECK: da analyze - none!
; CHECK: da analyze - consistent anti [1 0 0]!
; CHECK: da analyze - none!
@@ -420,13 +420,13 @@ for.body8.lr.ph: ; preds = %for.cond5.preheader
for.body8: ; preds = %for.body8, %for.body8.lr.ph
%k.046 = phi i32 [ 0, %for.body8.lr.ph ], [ %inc, %for.body8 ]
%add11 = add nsw i32 %k.046, %add
- %arrayidx = getelementptr inbounds i32, i32* %A, i32 %add11
- %0 = load i32, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i32 %add11
+ %0 = load i32, ptr %arrayidx, align 4
%add12 = add nsw i32 %0, 1
%mo = mul i32 %m, %o
%add111 = sub nsw i32 %add11, %mo
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i32 %add111
- store i32 %add12, i32* %arrayidx2, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i32 %add111
+ store i32 %add12, ptr %arrayidx2, align 4
%inc = add nuw nsw i32 %k.046, 1
%exitcond = icmp eq i32 %inc, %o
br i1 %exitcond, label %for.cond.cleanup7, label %for.body8
@@ -451,7 +451,7 @@ for.cond.cleanup: ; preds = %for.cond.cleanup3,
;; for (int k = 1; k < o; k++)
;; = A[i*m*o + j*o + k]
;; A[i*m*o + j*o + k - 1] =
-define void @t8(i32 %n, i32 %m, i32 %o, i32* nocapture %A) {
+define void @t8(i32 %n, i32 %m, i32 %o, ptr nocapture %A) {
; CHECK: da analyze - none!
; CHECK: da analyze - consistent anti [0 0 1]!
; CHECK: da analyze - none!
@@ -484,12 +484,12 @@ for.body8.lr.ph: ; preds = %for.cond5.preheader
for.body8: ; preds = %for.body8, %for.body8.lr.ph
%k.046 = phi i32 [ 1, %for.body8.lr.ph ], [ %inc, %for.body8 ]
%add11 = add nsw i32 %k.046, %add
- %arrayidx = getelementptr inbounds i32, i32* %A, i32 %add11
- %0 = load i32, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i32 %add11
+ %0 = load i32, ptr %arrayidx, align 4
%add12 = add nsw i32 %0, 1
%add111 = sub nsw i32 %add11, 1
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i32 %add111
- store i32 %add12, i32* %arrayidx2, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i32 %add111
+ store i32 %add12, ptr %arrayidx2, align 4
%inc = add nuw nsw i32 %k.046, 1
%exitcond = icmp eq i32 %inc, %o
br i1 %exitcond, label %for.cond.cleanup7, label %for.body8
@@ -510,7 +510,7 @@ for.cond.cleanup: ; preds = %for.cond.cleanup3,
; CHECK-LABEL: test_sizes
-define double @test_sizes(i16 %h, i16 %N, i16* nocapture %array) {
+define double @test_sizes(i16 %h, i16 %N, ptr nocapture %array) {
; CHECK: da analyze - consistent input [0 S]!
; CHECK: da analyze - anti [* *|<]!
; CHECK: da analyze - output [* *]!
@@ -531,16 +531,16 @@ for.body: ; preds = %for.inc10, %for.bod
for.body5.lr.ph: ; preds = %for.body
%1 = sext i16 %indvars.iv to i32
- %arrayidx = getelementptr inbounds i16, i16* %array, i32 %indvars.iv32
+ %arrayidx = getelementptr inbounds i16, ptr %array, i32 %indvars.iv32
br label %for.body5
for.body5: ; preds = %for.body5, %for.body5.lr.ph
%indvars.iv30 = phi i32 [ %indvars.iv.next31, %for.body5 ], [ %1, %for.body5.lr.ph ]
%j.027 = phi i16 [ %inc, %for.body5 ], [ 0, %for.body5.lr.ph ]
- %2 = load i16, i16* %arrayidx, align 4
+ %2 = load i16, ptr %arrayidx, align 4
%add6 = add nsw i16 %2, %j.027
- %arrayidx8 = getelementptr inbounds i16, i16* %array, i32 %indvars.iv30
- store i16 %add6, i16* %arrayidx8, align 4
+ %arrayidx8 = getelementptr inbounds i16, ptr %array, i32 %indvars.iv30
+ store i16 %add6, ptr %arrayidx8, align 4
%inc = add nuw nsw i16 %j.027, 1
%indvars.iv.next31 = add nsw i32 %indvars.iv30, 1
%exitcond = icmp eq i16 %inc, %0
@@ -558,7 +558,7 @@ for.end12: ; preds = %for.inc10, %entry
; CHECK-LABEL: nonnegative
-define void @nonnegative(i32* nocapture %A, i32 %N) {
+define void @nonnegative(ptr nocapture %A, i32 %N) {
; CHECK: da analyze - none!
; CHECK: da analyze - consistent output [0 0|<]!
; CHECK: da analyze - none!
@@ -574,9 +574,9 @@ for.outer:
for.inner:
%i.043 = phi i32 [ 0, %for.outer ], [ %add16, %for.inner ]
%add = add i32 %i.043, %mul
- %arrayidx = getelementptr inbounds i32, i32* %A, i32 %add
- store i32 1, i32* %arrayidx, align 4
- store i32 2, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i32 %add
+ store i32 1, ptr %arrayidx, align 4
+ store i32 2, ptr %arrayidx, align 4
%add16 = add nuw i32 %i.043, 1
%exitcond46 = icmp eq i32 %add16, %N
br i1 %exitcond46, label %for.latch, label %for.inner
diff --git a/llvm/test/Analysis/DependenceAnalysis/Dump.ll b/llvm/test/Analysis/DependenceAnalysis/Dump.ll
index d86221d852af1..264b97899b0d2 100644
--- a/llvm/test/Analysis/DependenceAnalysis/Dump.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/Dump.ll
@@ -4,8 +4,8 @@
;; Test to make sure the dump shows the src and dst
;; instructions (including call instructions).
;;
-;; void bar(float * restrict A);
-;; void foo(float * restrict A, int n) {
+;; void bar(ptr restrict A);
+;; void foo(ptr restrict A, int n) {
;; for (int i = 0; i < n; i++) {
;; A[i] = i;
;; bar(A);
@@ -14,14 +14,14 @@
; CHECK-LABEL: foo
-; CHECK: Src: store float %conv, float* %arrayidx, align 4 --> Dst: store float %conv, float* %arrayidx, align 4
+; CHECK: Src: store float %conv, ptr %arrayidx, align 4 --> Dst: store float %conv, ptr %arrayidx, align 4
; CHECK-NEXT: da analyze - none!
-; CHECK-NEXT: Src: store float %conv, float* %arrayidx, align 4 --> Dst: call void @bar(float* %A)
+; CHECK-NEXT: Src: store float %conv, ptr %arrayidx, align 4 --> Dst: call void @bar(ptr %A)
; CHECK-NEXT: da analyze - confused!
-; CHECK-NEXT: Src: call void @bar(float* %A) --> Dst: call void @bar(float* %A)
+; CHECK-NEXT: Src: call void @bar(ptr %A) --> Dst: call void @bar(ptr %A)
; CHECK-NEXT: da analyze - confused!
-define void @foo(float* noalias %A, i32 signext %n) {
+define void @foo(ptr noalias %A, i32 signext %n) {
entry:
%cmp1 = icmp slt i32 0, %n
br i1 %cmp1, label %for.body.lr.ph, label %for.end
@@ -33,9 +33,9 @@ for.body: ; preds = %for.body.lr.ph, %fo
%i.02 = phi i32 [ 0, %for.body.lr.ph ], [ %inc, %for.body ]
%conv = sitofp i32 %i.02 to float
%idxprom = zext i32 %i.02 to i64
- %arrayidx = getelementptr inbounds float, float* %A, i64 %idxprom
- store float %conv, float* %arrayidx, align 4
- call void @bar(float* %A) #3
+ %arrayidx = getelementptr inbounds float, ptr %A, i64 %idxprom
+ store float %conv, ptr %arrayidx, align 4
+ call void @bar(ptr %A) #3
%inc = add nuw nsw i32 %i.02, 1
%cmp = icmp slt i32 %inc, %n
br i1 %cmp, label %for.body, label %for.cond.for.end_crit_edge
@@ -47,4 +47,4 @@ for.end: ; preds = %for.cond.for.end_cr
ret void
}
-declare void @bar(float*)
+declare void @bar(ptr)
diff --git a/llvm/test/Analysis/DependenceAnalysis/ExactRDIV.ll b/llvm/test/Analysis/DependenceAnalysis/ExactRDIV.ll
index 4dc944223c11d..1c7bcda1c7b15 100644
--- a/llvm/test/Analysis/DependenceAnalysis/ExactRDIV.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/ExactRDIV.ll
@@ -11,7 +11,7 @@ target triple = "x86_64-apple-macosx10.6.0"
;; for (long int j = 0; j < 10; j++)
;; *B++ = A[2*j + 1];
-define void @rdiv0(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @rdiv0(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.body
@@ -27,8 +27,8 @@ for.body: ; preds = %entry, %for.body
%conv = trunc i64 %i.03 to i32
%mul = shl nsw i64 %i.03, 2
%add = add nsw i64 %mul, 10
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%inc = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc, 10
br i1 %exitcond5, label %for.body, label %for.body4.preheader
@@ -38,13 +38,13 @@ for.body4.preheader: ; preds = %for.body
for.body4: ; preds = %for.body4.preheader, %for.body4
%j.02 = phi i64 [ %inc9, %for.body4 ], [ 0, %for.body4.preheader ]
- %B.addr.01 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
+ %B.addr.01 = phi ptr [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
%mul5 = shl nsw i64 %j.02, 1
%add64 = or i64 %mul5, 1
- %arrayidx7 = getelementptr inbounds i32, i32* %A, i64 %add64
- %0 = load i32, i32* %arrayidx7, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx7 = getelementptr inbounds i32, ptr %A, i64 %add64
+ %0 = load i32, ptr %arrayidx7, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc9 = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc9, 10
br i1 %exitcond, label %for.body4, label %for.end10
@@ -59,7 +59,7 @@ for.end10: ; preds = %for.body4
;; for (long int j = 0; j < 10; j++)
;; *B++ = A[j];
-define void @rdiv1(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @rdiv1(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.body
@@ -75,8 +75,8 @@ for.body: ; preds = %entry, %for.body
%conv = trunc i64 %i.03 to i32
%mul = mul nsw i64 %i.03, 11
%sub = add nsw i64 %mul, -45
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %sub
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %sub
+ store i32 %conv, ptr %arrayidx, align 4
%inc = add nsw i64 %i.03, 1
%exitcond4 = icmp ne i64 %inc, 5
br i1 %exitcond4, label %for.body, label %for.body4.preheader
@@ -86,11 +86,11 @@ for.body4.preheader: ; preds = %for.body
for.body4: ; preds = %for.body4.preheader, %for.body4
%j.02 = phi i64 [ %inc7, %for.body4 ], [ 0, %for.body4.preheader ]
- %B.addr.01 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
- %arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %j.02
- %0 = load i32, i32* %arrayidx5, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %B.addr.01 = phi ptr [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
+ %arrayidx5 = getelementptr inbounds i32, ptr %A, i64 %j.02
+ %0 = load i32, ptr %arrayidx5, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc7 = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc7, 10
br i1 %exitcond, label %for.body4, label %for.end8
@@ -105,7 +105,7 @@ for.end8: ; preds = %for.body4
;; for (long int j = 0; j < 10; j++)
;; *B++ = A[j];
-define void @rdiv2(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @rdiv2(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.body
@@ -121,8 +121,8 @@ for.body: ; preds = %entry, %for.body
%conv = trunc i64 %i.03 to i32
%mul = mul nsw i64 %i.03, 11
%sub = add nsw i64 %mul, -45
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %sub
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %sub
+ store i32 %conv, ptr %arrayidx, align 4
%inc = add nsw i64 %i.03, 1
%exitcond4 = icmp ne i64 %inc, 6
br i1 %exitcond4, label %for.body, label %for.body4.preheader
@@ -132,11 +132,11 @@ for.body4.preheader: ; preds = %for.body
for.body4: ; preds = %for.body4.preheader, %for.body4
%j.02 = phi i64 [ %inc7, %for.body4 ], [ 0, %for.body4.preheader ]
- %B.addr.01 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
- %arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %j.02
- %0 = load i32, i32* %arrayidx5, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %B.addr.01 = phi ptr [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
+ %arrayidx5 = getelementptr inbounds i32, ptr %A, i64 %j.02
+ %0 = load i32, ptr %arrayidx5, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc7 = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc7, 10
br i1 %exitcond, label %for.body4, label %for.end8
@@ -151,7 +151,7 @@ for.end8: ; preds = %for.body4
;; for (long int j = 0; j <= 10; j++)
;; *B++ = A[j];
-define void @rdiv3(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @rdiv3(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.body
@@ -167,8 +167,8 @@ for.body: ; preds = %entry, %for.body
%conv = trunc i64 %i.03 to i32
%mul = mul nsw i64 %i.03, 11
%sub = add nsw i64 %mul, -45
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %sub
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %sub
+ store i32 %conv, ptr %arrayidx, align 4
%inc = add nsw i64 %i.03, 1
%exitcond4 = icmp ne i64 %inc, 5
br i1 %exitcond4, label %for.body, label %for.body4.preheader
@@ -178,11 +178,11 @@ for.body4.preheader: ; preds = %for.body
for.body4: ; preds = %for.body4.preheader, %for.body4
%j.02 = phi i64 [ %inc7, %for.body4 ], [ 0, %for.body4.preheader ]
- %B.addr.01 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
- %arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %j.02
- %0 = load i32, i32* %arrayidx5, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %B.addr.01 = phi ptr [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
+ %arrayidx5 = getelementptr inbounds i32, ptr %A, i64 %j.02
+ %0 = load i32, ptr %arrayidx5, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc7 = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc7, 11
br i1 %exitcond, label %for.body4, label %for.end8
@@ -197,7 +197,7 @@ for.end8: ; preds = %for.body4
;; for (long int j = 0; j <= 10; j++)
;; *B++ = A[j];
-define void @rdiv4(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @rdiv4(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.body
@@ -213,8 +213,8 @@ for.body: ; preds = %entry, %for.body
%conv = trunc i64 %i.03 to i32
%mul = mul nsw i64 %i.03, 11
%sub = add nsw i64 %mul, -45
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %sub
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %sub
+ store i32 %conv, ptr %arrayidx, align 4
%inc = add nsw i64 %i.03, 1
%exitcond4 = icmp ne i64 %inc, 6
br i1 %exitcond4, label %for.body, label %for.body4.preheader
@@ -224,11 +224,11 @@ for.body4.preheader: ; preds = %for.body
for.body4: ; preds = %for.body4.preheader, %for.body4
%j.02 = phi i64 [ %inc7, %for.body4 ], [ 0, %for.body4.preheader ]
- %B.addr.01 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
- %arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %j.02
- %0 = load i32, i32* %arrayidx5, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %B.addr.01 = phi ptr [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
+ %arrayidx5 = getelementptr inbounds i32, ptr %A, i64 %j.02
+ %0 = load i32, ptr %arrayidx5, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc7 = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc7, 11
br i1 %exitcond, label %for.body4, label %for.end8
@@ -243,7 +243,7 @@ for.end8: ; preds = %for.body4
;; for (long int j = 0; j < 10; j++)
;; *B++ = A[-j];
-define void @rdiv5(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @rdiv5(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.body
@@ -259,8 +259,8 @@ for.body: ; preds = %entry, %for.body
%conv = trunc i64 %i.03 to i32
%mul = mul nsw i64 %i.03, -11
%add = add nsw i64 %mul, 45
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%inc = add nsw i64 %i.03, 1
%exitcond4 = icmp ne i64 %inc, 5
br i1 %exitcond4, label %for.body, label %for.body4.preheader
@@ -270,12 +270,12 @@ for.body4.preheader: ; preds = %for.body
for.body4: ; preds = %for.body4.preheader, %for.body4
%j.02 = phi i64 [ %inc7, %for.body4 ], [ 0, %for.body4.preheader ]
- %B.addr.01 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
+ %B.addr.01 = phi ptr [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
%sub = sub nsw i64 0, %j.02
- %arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %sub
- %0 = load i32, i32* %arrayidx5, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx5 = getelementptr inbounds i32, ptr %A, i64 %sub
+ %0 = load i32, ptr %arrayidx5, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc7 = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc7, 10
br i1 %exitcond, label %for.body4, label %for.end8
@@ -290,7 +290,7 @@ for.end8: ; preds = %for.body4
;; for (long int j = 0; j < 10; j++)
;; *B++ = A[-j];
-define void @rdiv6(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @rdiv6(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.body
@@ -306,8 +306,8 @@ for.body: ; preds = %entry, %for.body
%conv = trunc i64 %i.03 to i32
%mul = mul nsw i64 %i.03, -11
%add = add nsw i64 %mul, 45
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%inc = add nsw i64 %i.03, 1
%exitcond4 = icmp ne i64 %inc, 6
br i1 %exitcond4, label %for.body, label %for.body4.preheader
@@ -317,12 +317,12 @@ for.body4.preheader: ; preds = %for.body
for.body4: ; preds = %for.body4.preheader, %for.body4
%j.02 = phi i64 [ %inc7, %for.body4 ], [ 0, %for.body4.preheader ]
- %B.addr.01 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
+ %B.addr.01 = phi ptr [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
%sub = sub nsw i64 0, %j.02
- %arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %sub
- %0 = load i32, i32* %arrayidx5, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx5 = getelementptr inbounds i32, ptr %A, i64 %sub
+ %0 = load i32, ptr %arrayidx5, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc7 = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc7, 10
br i1 %exitcond, label %for.body4, label %for.end8
@@ -337,7 +337,7 @@ for.end8: ; preds = %for.body4
;; for (long int j = 0; j <= 10; j++)
;; *B++ = A[-j];
-define void @rdiv7(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @rdiv7(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.body
@@ -353,8 +353,8 @@ for.body: ; preds = %entry, %for.body
%conv = trunc i64 %i.03 to i32
%mul = mul nsw i64 %i.03, -11
%add = add nsw i64 %mul, 45
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%inc = add nsw i64 %i.03, 1
%exitcond4 = icmp ne i64 %inc, 5
br i1 %exitcond4, label %for.body, label %for.body4.preheader
@@ -364,12 +364,12 @@ for.body4.preheader: ; preds = %for.body
for.body4: ; preds = %for.body4.preheader, %for.body4
%j.02 = phi i64 [ %inc7, %for.body4 ], [ 0, %for.body4.preheader ]
- %B.addr.01 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
+ %B.addr.01 = phi ptr [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
%sub = sub nsw i64 0, %j.02
- %arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %sub
- %0 = load i32, i32* %arrayidx5, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx5 = getelementptr inbounds i32, ptr %A, i64 %sub
+ %0 = load i32, ptr %arrayidx5, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc7 = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc7, 11
br i1 %exitcond, label %for.body4, label %for.end8
@@ -384,7 +384,7 @@ for.end8: ; preds = %for.body4
;; for (long int j = 0; j <= 10; j++)
;; *B++ = A[-j];
-define void @rdiv8(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @rdiv8(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.body
@@ -400,8 +400,8 @@ for.body: ; preds = %entry, %for.body
%conv = trunc i64 %i.03 to i32
%mul = mul nsw i64 %i.03, -11
%add = add nsw i64 %mul, 45
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%inc = add nsw i64 %i.03, 1
%exitcond4 = icmp ne i64 %inc, 6
br i1 %exitcond4, label %for.body, label %for.body4.preheader
@@ -411,12 +411,12 @@ for.body4.preheader: ; preds = %for.body
for.body4: ; preds = %for.body4.preheader, %for.body4
%j.02 = phi i64 [ %inc7, %for.body4 ], [ 0, %for.body4.preheader ]
- %B.addr.01 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
+ %B.addr.01 = phi ptr [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
%sub = sub nsw i64 0, %j.02
- %arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %sub
- %0 = load i32, i32* %arrayidx5, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx5 = getelementptr inbounds i32, ptr %A, i64 %sub
+ %0 = load i32, ptr %arrayidx5, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc7 = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc7, 11
br i1 %exitcond, label %for.body4, label %for.end8
@@ -431,7 +431,7 @@ for.end8: ; preds = %for.body4
;; A[11*i - j] = i;
;; *B++ = A[45];
-define void @rdiv9(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @rdiv9(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -443,28 +443,28 @@ entry:
; CHECK: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc5
- %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc5 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc5 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc6, %for.inc5 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i32* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%conv = trunc i64 %i.03 to i32
%mul = mul nsw i64 %i.03, 11
%sub = sub nsw i64 %mul, %j.02
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %sub
- store i32 %conv, i32* %arrayidx, align 4
- %arrayidx4 = getelementptr inbounds i32, i32* %A, i64 45
- %0 = load i32, i32* %arrayidx4, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
- store i32 %0, i32* %B.addr.11, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %sub
+ store i32 %conv, ptr %arrayidx, align 4
+ %arrayidx4 = getelementptr inbounds i32, ptr %A, i64 45
+ %0 = load i32, ptr %arrayidx4, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.11, i64 1
+ store i32 %0, ptr %B.addr.11, align 4
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 10
br i1 %exitcond, label %for.body3, label %for.inc5
for.inc5: ; preds = %for.body3
- %scevgep = getelementptr i32, i32* %B.addr.04, i64 10
+ %scevgep = getelementptr i32, ptr %B.addr.04, i64 10
%inc6 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc6, 5
br i1 %exitcond5, label %for.cond1.preheader, label %for.end7
@@ -480,7 +480,7 @@ for.end7: ; preds = %for.inc5
;; A[11*i - j] = i;
;; *B++ = A[45];
-define void @rdiv10(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @rdiv10(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -492,28 +492,28 @@ entry:
; CHECK: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc5
- %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc5 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc5 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc6, %for.inc5 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i32* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%conv = trunc i64 %i.03 to i32
%mul = mul nsw i64 %i.03, 11
%sub = sub nsw i64 %mul, %j.02
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %sub
- store i32 %conv, i32* %arrayidx, align 4
- %arrayidx4 = getelementptr inbounds i32, i32* %A, i64 45
- %0 = load i32, i32* %arrayidx4, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
- store i32 %0, i32* %B.addr.11, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %sub
+ store i32 %conv, ptr %arrayidx, align 4
+ %arrayidx4 = getelementptr inbounds i32, ptr %A, i64 45
+ %0 = load i32, ptr %arrayidx4, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.11, i64 1
+ store i32 %0, ptr %B.addr.11, align 4
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 10
br i1 %exitcond, label %for.body3, label %for.inc5
for.inc5: ; preds = %for.body3
- %scevgep = getelementptr i32, i32* %B.addr.04, i64 10
+ %scevgep = getelementptr i32, ptr %B.addr.04, i64 10
%inc6 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc6, 6
br i1 %exitcond5, label %for.cond1.preheader, label %for.end7
@@ -528,7 +528,7 @@ for.end7: ; preds = %for.inc5
;; A[11*i - j] = i;
;; *B++ = A[45];
-define void @rdiv11(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @rdiv11(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -540,28 +540,28 @@ entry:
; CHECK: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc5
- %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc5 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc5 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc6, %for.inc5 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i32* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%conv = trunc i64 %i.03 to i32
%mul = mul nsw i64 %i.03, 11
%sub = sub nsw i64 %mul, %j.02
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %sub
- store i32 %conv, i32* %arrayidx, align 4
- %arrayidx4 = getelementptr inbounds i32, i32* %A, i64 45
- %0 = load i32, i32* %arrayidx4, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
- store i32 %0, i32* %B.addr.11, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %sub
+ store i32 %conv, ptr %arrayidx, align 4
+ %arrayidx4 = getelementptr inbounds i32, ptr %A, i64 45
+ %0 = load i32, ptr %arrayidx4, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.11, i64 1
+ store i32 %0, ptr %B.addr.11, align 4
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 11
br i1 %exitcond, label %for.body3, label %for.inc5
for.inc5: ; preds = %for.body3
- %scevgep = getelementptr i32, i32* %B.addr.04, i64 11
+ %scevgep = getelementptr i32, ptr %B.addr.04, i64 11
%inc6 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc6, 5
br i1 %exitcond5, label %for.cond1.preheader, label %for.end7
@@ -576,7 +576,7 @@ for.end7: ; preds = %for.inc5
;; A[11*i - j] = i;
;; *B++ = A[45];
-define void @rdiv12(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @rdiv12(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -588,28 +588,28 @@ entry:
; CHECK: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc5
- %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc5 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc5 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc6, %for.inc5 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i32* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%conv = trunc i64 %i.03 to i32
%mul = mul nsw i64 %i.03, 11
%sub = sub nsw i64 %mul, %j.02
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %sub
- store i32 %conv, i32* %arrayidx, align 4
- %arrayidx4 = getelementptr inbounds i32, i32* %A, i64 45
- %0 = load i32, i32* %arrayidx4, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
- store i32 %0, i32* %B.addr.11, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %sub
+ store i32 %conv, ptr %arrayidx, align 4
+ %arrayidx4 = getelementptr inbounds i32, ptr %A, i64 45
+ %0 = load i32, ptr %arrayidx4, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.11, i64 1
+ store i32 %0, ptr %B.addr.11, align 4
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 11
br i1 %exitcond, label %for.body3, label %for.inc5
for.inc5: ; preds = %for.body3
- %scevgep = getelementptr i32, i32* %B.addr.04, i64 11
+ %scevgep = getelementptr i32, ptr %B.addr.04, i64 11
%inc6 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc6, 6
br i1 %exitcond5, label %for.cond1.preheader, label %for.end7
diff --git a/llvm/test/Analysis/DependenceAnalysis/ExactSIV.ll b/llvm/test/Analysis/DependenceAnalysis/ExactSIV.ll
index ec850e15f6db7..9a76154ce4e5c 100644
--- a/llvm/test/Analysis/DependenceAnalysis/ExactSIV.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/ExactSIV.ll
@@ -9,7 +9,7 @@ target triple = "x86_64-apple-macosx10.6.0"
;; A[i + 10] = i;
;; *B++ = A[2*i + 1];
-define void @exact0(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @exact0(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.body
@@ -23,17 +23,17 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%add = add i64 %i.02, 10
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%mul = shl i64 %i.02, 1
%add13 = or i64 %mul, 1
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %add13
- %0 = load i32, i32* %arrayidx2, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i64 %add13
+ %0 = load i32, ptr %arrayidx2, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 10
br i1 %exitcond, label %for.body, label %for.end
@@ -47,7 +47,7 @@ for.end: ; preds = %for.body
;; A[4*i + 10] = i;
;; *B++ = A[2*i + 1];
-define void @exact1(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @exact1(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.body
@@ -61,18 +61,18 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = shl i64 %i.02, 2
%add = add i64 %mul, 10
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%mul1 = shl i64 %i.02, 1
%add23 = or i64 %mul1, 1
- %arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %add23
- %0 = load i32, i32* %arrayidx3, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx3 = getelementptr inbounds i32, ptr %A, i64 %add23
+ %0 = load i32, ptr %arrayidx3, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 10
br i1 %exitcond, label %for.body, label %for.end
@@ -86,7 +86,7 @@ for.end: ; preds = %for.body
;; A[6*i] = i;
;; *B++ = A[i + 60];
-define void @exact2(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @exact2(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.body
@@ -100,16 +100,16 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = mul i64 %i.02, 6
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %mul
+ store i32 %conv, ptr %arrayidx, align 4
%add = add i64 %i.02, 60
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %add
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 10
br i1 %exitcond, label %for.body, label %for.end
@@ -123,7 +123,7 @@ for.end: ; preds = %for.body
;; A[6*i] = i;
;; *B++ = A[i + 60];
-define void @exact3(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @exact3(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.body
@@ -137,16 +137,16 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = mul i64 %i.02, 6
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %mul
+ store i32 %conv, ptr %arrayidx, align 4
%add = add i64 %i.02, 60
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %add
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 11
br i1 %exitcond, label %for.body, label %for.end
@@ -160,7 +160,7 @@ for.end: ; preds = %for.body
;; A[6*i] = i;
;; *B++ = A[i + 60];
-define void @exact4(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @exact4(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.body
@@ -174,16 +174,16 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = mul i64 %i.02, 6
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %mul
+ store i32 %conv, ptr %arrayidx, align 4
%add = add i64 %i.02, 60
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %add
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 12
br i1 %exitcond, label %for.body, label %for.end
@@ -197,7 +197,7 @@ for.end: ; preds = %for.body
;; A[6*i] = i;
;; *B++ = A[i + 60];
-define void @exact5(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @exact5(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.body
@@ -211,16 +211,16 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = mul i64 %i.02, 6
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %mul
+ store i32 %conv, ptr %arrayidx, align 4
%add = add i64 %i.02, 60
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %add
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 13
br i1 %exitcond, label %for.body, label %for.end
@@ -234,7 +234,7 @@ for.end: ; preds = %for.body
;; A[6*i] = i;
;; *B++ = A[i + 60];
-define void @exact6(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @exact6(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.body
@@ -248,16 +248,16 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = mul i64 %i.02, 6
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %mul
+ store i32 %conv, ptr %arrayidx, align 4
%add = add i64 %i.02, 60
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %add
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 18
br i1 %exitcond, label %for.body, label %for.end
@@ -271,7 +271,7 @@ for.end: ; preds = %for.body
;; A[6*i] = i;
;; *B++ = A[i + 60];
-define void @exact7(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @exact7(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.body
@@ -285,16 +285,16 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = mul i64 %i.02, 6
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %mul
+ store i32 %conv, ptr %arrayidx, align 4
%add = add i64 %i.02, 60
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %add
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 19
br i1 %exitcond, label %for.body, label %for.end
@@ -308,7 +308,7 @@ for.end: ; preds = %for.body
;; A[-6*i] = i;
;; *B++ = A[-i - 60];
-define void @exact8(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @exact8(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.body
@@ -322,16 +322,16 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = mul i64 %i.02, -6
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %mul
+ store i32 %conv, ptr %arrayidx, align 4
%sub1 = sub i64 -60, %i.02
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub1
- %0 = load i32, i32* %arrayidx2, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i64 %sub1
+ %0 = load i32, ptr %arrayidx2, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 10
br i1 %exitcond, label %for.body, label %for.end
@@ -345,7 +345,7 @@ for.end: ; preds = %for.body
;; A[-6*i] = i;
;; *B++ = A[-i - 60];
-define void @exact9(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @exact9(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.body
@@ -359,16 +359,16 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = mul i64 %i.02, -6
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %mul
+ store i32 %conv, ptr %arrayidx, align 4
%sub1 = sub i64 -60, %i.02
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub1
- %0 = load i32, i32* %arrayidx2, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i64 %sub1
+ %0 = load i32, ptr %arrayidx2, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 11
br i1 %exitcond, label %for.body, label %for.end
@@ -382,7 +382,7 @@ for.end: ; preds = %for.body
;; A[-6*i] = i;
;; *B++ = A[-i - 60];
-define void @exact10(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @exact10(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.body
@@ -396,16 +396,16 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = mul i64 %i.02, -6
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %mul
+ store i32 %conv, ptr %arrayidx, align 4
%sub1 = sub i64 -60, %i.02
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub1
- %0 = load i32, i32* %arrayidx2, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i64 %sub1
+ %0 = load i32, ptr %arrayidx2, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 12
br i1 %exitcond, label %for.body, label %for.end
@@ -419,7 +419,7 @@ for.end: ; preds = %for.body
;; A[-6*i] = i;
;; *B++ = A[-i - 60];
-define void @exact11(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @exact11(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.body
@@ -433,16 +433,16 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = mul i64 %i.02, -6
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %mul
+ store i32 %conv, ptr %arrayidx, align 4
%sub1 = sub i64 -60, %i.02
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub1
- %0 = load i32, i32* %arrayidx2, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i64 %sub1
+ %0 = load i32, ptr %arrayidx2, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 13
br i1 %exitcond, label %for.body, label %for.end
@@ -456,7 +456,7 @@ for.end: ; preds = %for.body
;; A[-6*i] = i;
;; *B++ = A[-i - 60];
-define void @exact12(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @exact12(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.body
@@ -470,16 +470,16 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = mul i64 %i.02, -6
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %mul
+ store i32 %conv, ptr %arrayidx, align 4
%sub1 = sub i64 -60, %i.02
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub1
- %0 = load i32, i32* %arrayidx2, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i64 %sub1
+ %0 = load i32, ptr %arrayidx2, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 18
br i1 %exitcond, label %for.body, label %for.end
@@ -493,7 +493,7 @@ for.end: ; preds = %for.body
;; A[-6*i] = i;
;; *B++ = A[-i - 60];
-define void @exact13(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @exact13(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.body
@@ -507,16 +507,16 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = mul i64 %i.02, -6
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %mul
+ store i32 %conv, ptr %arrayidx, align 4
%sub1 = sub i64 -60, %i.02
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub1
- %0 = load i32, i32* %arrayidx2, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i64 %sub1
+ %0 = load i32, ptr %arrayidx2, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 19
br i1 %exitcond, label %for.body, label %for.end
diff --git a/llvm/test/Analysis/DependenceAnalysis/GCD.ll b/llvm/test/Analysis/DependenceAnalysis/GCD.ll
index 2a9a5672487e3..898158d983b26 100644
--- a/llvm/test/Analysis/DependenceAnalysis/GCD.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/GCD.ll
@@ -6,11 +6,12 @@ target triple = "x86_64-apple-macosx10.6.0"
;; for (long int i = 0; i < 100; i++)
+;; for (long int j = 0; j ptr|<]!
;; for (long int j = 0; j < 100; j++) {
;; A[2*i - 4*j] = i;
;; *B++ = A[6*i + 8*j];
-define void @gcd0(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @gcd0(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -23,32 +24,32 @@ entry:
; DELIN: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc8
- %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc8 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc8 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc9, %for.inc8 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i32* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%conv = trunc i64 %i.03 to i32
%mul = shl nsw i64 %i.03, 1
%mul4 = shl nsw i64 %j.02, 2
%sub = sub nsw i64 %mul, %mul4
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %sub
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %sub
+ store i32 %conv, ptr %arrayidx, align 4
%mul5 = mul nsw i64 %i.03, 6
%mul6 = shl nsw i64 %j.02, 3
%add = add nsw i64 %mul5, %mul6
- %arrayidx7 = getelementptr inbounds i32, i32* %A, i64 %add
- %0 = load i32, i32* %arrayidx7, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
- store i32 %0, i32* %B.addr.11, align 4
+ %arrayidx7 = getelementptr inbounds i32, ptr %A, i64 %add
+ %0 = load i32, ptr %arrayidx7, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.11, i64 1
+ store i32 %0, ptr %B.addr.11, align 4
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 100
br i1 %exitcond, label %for.body3, label %for.inc8
for.inc8: ; preds = %for.body3
- %scevgep = getelementptr i32, i32* %B.addr.04, i64 100
+ %scevgep = getelementptr i32, ptr %B.addr.04, i64 100
%inc9 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc9, 100
br i1 %exitcond5, label %for.cond1.preheader, label %for.end10
@@ -63,7 +64,7 @@ for.end10: ; preds = %for.inc8
;; A[2*i - 4*j] = i;
;; *B++ = A[6*i + 8*j + 1];
-define void @gcd1(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @gcd1(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -76,33 +77,33 @@ entry:
; DELIN: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc9
- %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc9 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc9 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc10, %for.inc9 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i32* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%conv = trunc i64 %i.03 to i32
%mul = shl nsw i64 %i.03, 1
%mul4 = shl nsw i64 %j.02, 2
%sub = sub nsw i64 %mul, %mul4
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %sub
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %sub
+ store i32 %conv, ptr %arrayidx, align 4
%mul5 = mul nsw i64 %i.03, 6
%mul6 = shl nsw i64 %j.02, 3
%add = add nsw i64 %mul5, %mul6
%add7 = or i64 %add, 1
- %arrayidx8 = getelementptr inbounds i32, i32* %A, i64 %add7
- %0 = load i32, i32* %arrayidx8, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
- store i32 %0, i32* %B.addr.11, align 4
+ %arrayidx8 = getelementptr inbounds i32, ptr %A, i64 %add7
+ %0 = load i32, ptr %arrayidx8, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.11, i64 1
+ store i32 %0, ptr %B.addr.11, align 4
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 100
br i1 %exitcond, label %for.body3, label %for.inc9
for.inc9: ; preds = %for.body3
- %scevgep = getelementptr i32, i32* %B.addr.04, i64 100
+ %scevgep = getelementptr i32, ptr %B.addr.04, i64 100
%inc10 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc10, 100
br i1 %exitcond5, label %for.cond1.preheader, label %for.end11
@@ -117,7 +118,7 @@ for.end11: ; preds = %for.inc9
;; A[2*i - 4*j + 1] = i;
;; *B++ = A[6*i + 8*j];
-define void @gcd2(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @gcd2(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -130,33 +131,33 @@ entry:
; DELIN: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc9
- %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc9 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc9 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc10, %for.inc9 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i32* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%conv = trunc i64 %i.03 to i32
%mul = shl nsw i64 %i.03, 1
%mul4 = shl nsw i64 %j.02, 2
%sub = sub nsw i64 %mul, %mul4
%add5 = or i64 %sub, 1
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add5
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add5
+ store i32 %conv, ptr %arrayidx, align 4
%mul5 = mul nsw i64 %i.03, 6
%mul6 = shl nsw i64 %j.02, 3
%add7 = add nsw i64 %mul5, %mul6
- %arrayidx8 = getelementptr inbounds i32, i32* %A, i64 %add7
- %0 = load i32, i32* %arrayidx8, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
- store i32 %0, i32* %B.addr.11, align 4
+ %arrayidx8 = getelementptr inbounds i32, ptr %A, i64 %add7
+ %0 = load i32, ptr %arrayidx8, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.11, i64 1
+ store i32 %0, ptr %B.addr.11, align 4
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 100
br i1 %exitcond, label %for.body3, label %for.inc9
for.inc9: ; preds = %for.body3
- %scevgep = getelementptr i32, i32* %B.addr.04, i64 100
+ %scevgep = getelementptr i32, ptr %B.addr.04, i64 100
%inc10 = add nsw i64 %i.03, 1
%exitcond6 = icmp ne i64 %inc10, 100
br i1 %exitcond6, label %for.cond1.preheader, label %for.end11
@@ -171,7 +172,7 @@ for.end11: ; preds = %for.inc9
;; A[i + 2*j] = i;
;; *B++ = A[i + 2*j - 1];
-define void @gcd3(i32* %A, i32* %B) nounwind uwtable ssp {
+define void @gcd3(ptr %A, ptr %B) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -184,31 +185,31 @@ entry:
; DELIN: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc7
- %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc7 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc7 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc8, %for.inc7 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i32* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%conv = trunc i64 %i.03 to i32
%mul = shl nsw i64 %j.02, 1
%add = add nsw i64 %i.03, %mul
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%mul4 = shl nsw i64 %j.02, 1
%add5 = add nsw i64 %i.03, %mul4
%sub = add nsw i64 %add5, -1
- %arrayidx6 = getelementptr inbounds i32, i32* %A, i64 %sub
- %0 = load i32, i32* %arrayidx6, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
- store i32 %0, i32* %B.addr.11, align 4
+ %arrayidx6 = getelementptr inbounds i32, ptr %A, i64 %sub
+ %0 = load i32, ptr %arrayidx6, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.11, i64 1
+ store i32 %0, ptr %B.addr.11, align 4
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 100
br i1 %exitcond, label %for.body3, label %for.inc7
for.inc7: ; preds = %for.body3
- %scevgep = getelementptr i32, i32* %B.addr.04, i64 100
+ %scevgep = getelementptr i32, ptr %B.addr.04, i64 100
%inc8 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc8, 100
br i1 %exitcond5, label %for.cond1.preheader, label %for.end9
@@ -223,7 +224,7 @@ for.end9: ; preds = %for.inc7
;; A[5*i + 10*j*M + 9*M*N] = i;
;; *B++ = A[15*i + 20*j*M - 21*N*M + 4];
-define void @gcd4(i32* %A, i32* %B, i64 %M, i64 %N) nounwind uwtable ssp {
+define void @gcd4(ptr %A, ptr %B, i64 %M, i64 %N) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -236,13 +237,13 @@ entry:
; DELIN: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc17
- %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc17 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc17 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc18, %for.inc17 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i32* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%conv = trunc i64 %i.03 to i32
%mul = mul nsw i64 %i.03, 5
%mul4 = mul nsw i64 %j.02, 10
@@ -251,8 +252,8 @@ for.body3: ; preds = %for.cond1.preheader
%mul6 = mul nsw i64 %M, 9
%mul7 = mul nsw i64 %mul6, %N
%add8 = add nsw i64 %add, %mul7
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add8
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add8
+ store i32 %conv, ptr %arrayidx, align 4
%mul9 = mul nsw i64 %i.03, 15
%mul10 = mul nsw i64 %j.02, 20
%mul11 = mul nsw i64 %mul10, %M
@@ -261,16 +262,16 @@ for.body3: ; preds = %for.cond1.preheader
%mul14 = mul nsw i64 %mul13, %M
%sub = sub nsw i64 %add12, %mul14
%add15 = add nsw i64 %sub, 4
- %arrayidx16 = getelementptr inbounds i32, i32* %A, i64 %add15
- %0 = load i32, i32* %arrayidx16, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
- store i32 %0, i32* %B.addr.11, align 4
+ %arrayidx16 = getelementptr inbounds i32, ptr %A, i64 %add15
+ %0 = load i32, ptr %arrayidx16, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.11, i64 1
+ store i32 %0, ptr %B.addr.11, align 4
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 100
br i1 %exitcond, label %for.body3, label %for.inc17
for.inc17: ; preds = %for.body3
- %scevgep = getelementptr i32, i32* %B.addr.04, i64 100
+ %scevgep = getelementptr i32, ptr %B.addr.04, i64 100
%inc18 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc18, 100
br i1 %exitcond5, label %for.cond1.preheader, label %for.end19
@@ -285,7 +286,7 @@ for.end19: ; preds = %for.inc17
;; A[5*i + 10*j*M + 9*M*N] = i;
;; *B++ = A[15*i + 20*j*M - 21*N*M + 5];
-define void @gcd5(i32* %A, i32* %B, i64 %M, i64 %N) nounwind uwtable ssp {
+define void @gcd5(ptr %A, ptr %B, i64 %M, i64 %N) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -298,13 +299,13 @@ entry:
; DELIN: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc17
- %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc17 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc17 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc18, %for.inc17 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i32* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%conv = trunc i64 %i.03 to i32
%mul = mul nsw i64 %i.03, 5
%mul4 = mul nsw i64 %j.02, 10
@@ -313,8 +314,8 @@ for.body3: ; preds = %for.cond1.preheader
%mul6 = mul nsw i64 %M, 9
%mul7 = mul nsw i64 %mul6, %N
%add8 = add nsw i64 %add, %mul7
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add8
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add8
+ store i32 %conv, ptr %arrayidx, align 4
%mul9 = mul nsw i64 %i.03, 15
%mul10 = mul nsw i64 %j.02, 20
%mul11 = mul nsw i64 %mul10, %M
@@ -323,16 +324,16 @@ for.body3: ; preds = %for.cond1.preheader
%mul14 = mul nsw i64 %mul13, %M
%sub = sub nsw i64 %add12, %mul14
%add15 = add nsw i64 %sub, 5
- %arrayidx16 = getelementptr inbounds i32, i32* %A, i64 %add15
- %0 = load i32, i32* %arrayidx16, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
- store i32 %0, i32* %B.addr.11, align 4
+ %arrayidx16 = getelementptr inbounds i32, ptr %A, i64 %add15
+ %0 = load i32, ptr %arrayidx16, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.11, i64 1
+ store i32 %0, ptr %B.addr.11, align 4
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 100
br i1 %exitcond, label %for.body3, label %for.inc17
for.inc17: ; preds = %for.body3
- %scevgep = getelementptr i32, i32* %B.addr.04, i64 100
+ %scevgep = getelementptr i32, ptr %B.addr.04, i64 100
%inc18 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc18, 100
br i1 %exitcond5, label %for.cond1.preheader, label %for.end19
@@ -347,7 +348,7 @@ for.end19: ; preds = %for.inc17
;; A[2*i][4*j] = i;
;; *B++ = A[8*i][6*j + 1];
-define void @gcd6(i64 %n, i32* %A, i32* %B) nounwind uwtable ssp {
+define void @gcd6(i64 %n, ptr %A, ptr %B) nounwind uwtable ssp {
entry:
%cmp4 = icmp sgt i64 %n, 0
br i1 %cmp4, label %for.cond1.preheader.preheader, label %for.end12
@@ -365,7 +366,7 @@ for.cond1.preheader.preheader: ; preds = %entry
for.cond1.preheader: ; preds = %for.cond1.preheader.preheader, %for.inc10
%i.06 = phi i64 [ %inc11, %for.inc10 ], [ 0, %for.cond1.preheader.preheader ]
- %B.addr.05 = phi i32* [ %B.addr.1.lcssa, %for.inc10 ], [ %B, %for.cond1.preheader.preheader ]
+ %B.addr.05 = phi ptr [ %B.addr.1.lcssa, %for.inc10 ], [ %B, %for.cond1.preheader.preheader ]
%cmp21 = icmp sgt i64 %n, 0
br i1 %cmp21, label %for.body3.preheader, label %for.inc10
@@ -374,33 +375,33 @@ for.body3.preheader: ; preds = %for.cond1.preheader
for.body3: ; preds = %for.body3.preheader, %for.body3
%j.03 = phi i64 [ %inc, %for.body3 ], [ 0, %for.body3.preheader ]
- %B.addr.12 = phi i32* [ %incdec.ptr, %for.body3 ], [ %B.addr.05, %for.body3.preheader ]
+ %B.addr.12 = phi ptr [ %incdec.ptr, %for.body3 ], [ %B.addr.05, %for.body3.preheader ]
%conv = trunc i64 %i.06 to i32
%mul = shl nsw i64 %j.03, 2
%mul4 = shl nsw i64 %i.06, 1
%0 = mul nsw i64 %mul4, %n
%arrayidx.sum = add i64 %0, %mul
- %arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %arrayidx.sum
- store i32 %conv, i32* %arrayidx5, align 4
+ %arrayidx5 = getelementptr inbounds i32, ptr %A, i64 %arrayidx.sum
+ store i32 %conv, ptr %arrayidx5, align 4
%mul6 = mul nsw i64 %j.03, 6
%add7 = or i64 %mul6, 1
%mul7 = shl nsw i64 %i.06, 3
%1 = mul nsw i64 %mul7, %n
%arrayidx8.sum = add i64 %1, %add7
- %arrayidx9 = getelementptr inbounds i32, i32* %A, i64 %arrayidx8.sum
- %2 = load i32, i32* %arrayidx9, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.12, i64 1
- store i32 %2, i32* %B.addr.12, align 4
+ %arrayidx9 = getelementptr inbounds i32, ptr %A, i64 %arrayidx8.sum
+ %2 = load i32, ptr %arrayidx9, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.12, i64 1
+ store i32 %2, ptr %B.addr.12, align 4
%inc = add nsw i64 %j.03, 1
%exitcond = icmp ne i64 %inc, %n
br i1 %exitcond, label %for.body3, label %for.inc10.loopexit
for.inc10.loopexit: ; preds = %for.body3
- %scevgep = getelementptr i32, i32* %B.addr.05, i64 %n
+ %scevgep = getelementptr i32, ptr %B.addr.05, i64 %n
br label %for.inc10
for.inc10: ; preds = %for.inc10.loopexit, %for.cond1.preheader
- %B.addr.1.lcssa = phi i32* [ %B.addr.05, %for.cond1.preheader ], [ %scevgep, %for.inc10.loopexit ]
+ %B.addr.1.lcssa = phi ptr [ %B.addr.05, %for.cond1.preheader ], [ %scevgep, %for.inc10.loopexit ]
%inc11 = add nsw i64 %i.06, 1
%exitcond8 = icmp ne i64 %inc11, %n
br i1 %exitcond8, label %for.cond1.preheader, label %for.end12.loopexit
@@ -418,7 +419,7 @@ for.end12: ; preds = %for.end12.loopexit,
;; A[2*i][4*j] = i;
;; *B++ = A[8*i][6*j + 1];
-define void @gcd7(i32 %n, i32* %A, i32* %B) nounwind uwtable ssp {
+define void @gcd7(i32 %n, ptr %A, ptr %B) nounwind uwtable ssp {
entry:
%0 = zext i32 %n to i64
%cmp4 = icmp sgt i32 %n, 0
@@ -437,7 +438,7 @@ for.cond1.preheader.preheader: ; preds = %entry
for.cond1.preheader: ; preds = %for.cond1.preheader.preheader, %for.inc13
%indvars.iv8 = phi i64 [ 0, %for.cond1.preheader.preheader ], [ %indvars.iv.next9, %for.inc13 ]
- %B.addr.05 = phi i32* [ %B.addr.1.lcssa, %for.inc13 ], [ %B, %for.cond1.preheader.preheader ]
+ %B.addr.05 = phi ptr [ %B.addr.1.lcssa, %for.inc13 ], [ %B, %for.cond1.preheader.preheader ]
%1 = add i32 %n, -1
%2 = zext i32 %1 to i64
%3 = add i64 %2, 1
@@ -449,7 +450,7 @@ for.body3.preheader: ; preds = %for.cond1.preheader
for.body3: ; preds = %for.body3.preheader, %for.body3
%indvars.iv = phi i64 [ 0, %for.body3.preheader ], [ %indvars.iv.next, %for.body3 ]
- %B.addr.12 = phi i32* [ %incdec.ptr, %for.body3 ], [ %B.addr.05, %for.body3.preheader ]
+ %B.addr.12 = phi ptr [ %incdec.ptr, %for.body3 ], [ %B.addr.05, %for.body3.preheader ]
%4 = trunc i64 %indvars.iv to i32
%mul = shl nsw i32 %4, 2
%idxprom = sext i32 %mul to i64
@@ -458,9 +459,9 @@ for.body3: ; preds = %for.body3.preheader
%idxprom5 = sext i32 %mul4 to i64
%6 = mul nsw i64 %idxprom5, %0
%arrayidx.sum = add i64 %6, %idxprom
- %arrayidx6 = getelementptr inbounds i32, i32* %A, i64 %arrayidx.sum
+ %arrayidx6 = getelementptr inbounds i32, ptr %A, i64 %arrayidx.sum
%7 = trunc i64 %indvars.iv8 to i32
- store i32 %7, i32* %arrayidx6, align 4
+ store i32 %7, ptr %arrayidx6, align 4
%8 = trunc i64 %indvars.iv to i32
%mul7 = mul nsw i32 %8, 6
%add7 = or i32 %mul7, 1
@@ -470,21 +471,21 @@ for.body3: ; preds = %for.body3.preheader
%idxprom10 = sext i32 %mul9 to i64
%10 = mul nsw i64 %idxprom10, %0
%arrayidx11.sum = add i64 %10, %idxprom8
- %arrayidx12 = getelementptr inbounds i32, i32* %A, i64 %arrayidx11.sum
- %11 = load i32, i32* %arrayidx12, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.12, i64 1
- store i32 %11, i32* %B.addr.12, align 4
+ %arrayidx12 = getelementptr inbounds i32, ptr %A, i64 %arrayidx11.sum
+ %11 = load i32, ptr %arrayidx12, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.12, i64 1
+ store i32 %11, ptr %B.addr.12, align 4
%indvars.iv.next = add i64 %indvars.iv, 1
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
%exitcond = icmp ne i32 %lftr.wideiv, %n
br i1 %exitcond, label %for.body3, label %for.inc13.loopexit
for.inc13.loopexit: ; preds = %for.body3
- %scevgep = getelementptr i32, i32* %B.addr.05, i64 %3
+ %scevgep = getelementptr i32, ptr %B.addr.05, i64 %3
br label %for.inc13
for.inc13: ; preds = %for.inc13.loopexit, %for.cond1.preheader
- %B.addr.1.lcssa = phi i32* [ %B.addr.05, %for.cond1.preheader ], [ %scevgep, %for.inc13.loopexit ]
+ %B.addr.1.lcssa = phi ptr [ %B.addr.05, %for.cond1.preheader ], [ %scevgep, %for.inc13.loopexit ]
%indvars.iv.next9 = add i64 %indvars.iv8, 1
%lftr.wideiv10 = trunc i64 %indvars.iv.next9 to i32
%exitcond11 = icmp ne i32 %lftr.wideiv10, %n
@@ -503,7 +504,7 @@ for.end15: ; preds = %for.end15.loopexit,
;; A[n*2*i + 4*j] = i;
;; *B++ = A[n*8*i + 6*j + 1];
-define void @gcd8(i32 %n, i32* %A, i32* %B) nounwind uwtable ssp {
+define void @gcd8(i32 %n, ptr %A, ptr %B) nounwind uwtable ssp {
entry:
%cmp4 = icmp sgt i32 %n, 0
br i1 %cmp4, label %for.cond1.preheader.preheader, label %for.end15
@@ -521,7 +522,7 @@ for.cond1.preheader.preheader: ; preds = %entry
for.cond1.preheader: ; preds = %for.cond1.preheader.preheader, %for.inc13
%i.06 = phi i32 [ %inc14, %for.inc13 ], [ 0, %for.cond1.preheader.preheader ]
- %B.addr.05 = phi i32* [ %B.addr.1.lcssa, %for.inc13 ], [ %B, %for.cond1.preheader.preheader ]
+ %B.addr.05 = phi ptr [ %B.addr.1.lcssa, %for.inc13 ], [ %B, %for.cond1.preheader.preheader ]
%0 = add i32 %n, -1
%1 = zext i32 %0 to i64
%2 = add i64 %1, 1
@@ -533,15 +534,15 @@ for.body3.preheader: ; preds = %for.cond1.preheader
for.body3: ; preds = %for.body3.preheader, %for.body3
%indvars.iv = phi i64 [ 0, %for.body3.preheader ], [ %indvars.iv.next, %for.body3 ]
- %B.addr.12 = phi i32* [ %incdec.ptr, %for.body3 ], [ %B.addr.05, %for.body3.preheader ]
+ %B.addr.12 = phi ptr [ %incdec.ptr, %for.body3 ], [ %B.addr.05, %for.body3.preheader ]
%mul = shl nsw i32 %n, 1
%mul4 = mul nsw i32 %mul, %i.06
%3 = trunc i64 %indvars.iv to i32
%mul5 = shl nsw i32 %3, 2
%add = add nsw i32 %mul4, %mul5
%idxprom = sext i32 %add to i64
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %idxprom
- store i32 %i.06, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %idxprom
+ store i32 %i.06, ptr %arrayidx, align 4
%mul6 = shl nsw i32 %n, 3
%mul7 = mul nsw i32 %mul6, %i.06
%4 = trunc i64 %indvars.iv to i32
@@ -549,21 +550,21 @@ for.body3: ; preds = %for.body3.preheader
%add9 = add nsw i32 %mul7, %mul8
%add10 = or i32 %add9, 1
%idxprom11 = sext i32 %add10 to i64
- %arrayidx12 = getelementptr inbounds i32, i32* %A, i64 %idxprom11
- %5 = load i32, i32* %arrayidx12, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.12, i64 1
- store i32 %5, i32* %B.addr.12, align 4
+ %arrayidx12 = getelementptr inbounds i32, ptr %A, i64 %idxprom11
+ %5 = load i32, ptr %arrayidx12, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.12, i64 1
+ store i32 %5, ptr %B.addr.12, align 4
%indvars.iv.next = add i64 %indvars.iv, 1
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
%exitcond = icmp ne i32 %lftr.wideiv, %n
br i1 %exitcond, label %for.body3, label %for.inc13.loopexit
for.inc13.loopexit: ; preds = %for.body3
- %scevgep = getelementptr i32, i32* %B.addr.05, i64 %2
+ %scevgep = getelementptr i32, ptr %B.addr.05, i64 %2
br label %for.inc13
for.inc13: ; preds = %for.inc13.loopexit, %for.cond1.preheader
- %B.addr.1.lcssa = phi i32* [ %B.addr.05, %for.cond1.preheader ], [ %scevgep, %for.inc13.loopexit ]
+ %B.addr.1.lcssa = phi ptr [ %B.addr.05, %for.cond1.preheader ], [ %scevgep, %for.inc13.loopexit ]
%inc14 = add nsw i32 %i.06, 1
%exitcond7 = icmp ne i32 %inc14, %n
br i1 %exitcond7, label %for.cond1.preheader, label %for.end15.loopexit
@@ -581,7 +582,7 @@ for.end15: ; preds = %for.end15.loopexit,
;; A[2*i][4*j] = i;
;; *B++ = A[8*i][6*j + 1];
-define void @gcd9(i32 %n, i32* %A, i32* %B) nounwind uwtable ssp {
+define void @gcd9(i32 %n, ptr %A, ptr %B) nounwind uwtable ssp {
entry:
%0 = zext i32 %n to i64
%cmp4 = icmp eq i32 %n, 0
@@ -600,7 +601,7 @@ for.cond1.preheader.preheader: ; preds = %entry
for.cond1.preheader: ; preds = %for.cond1.preheader.preheader, %for.inc13
%indvars.iv8 = phi i64 [ 0, %for.cond1.preheader.preheader ], [ %indvars.iv.next9, %for.inc13 ]
- %B.addr.05 = phi i32* [ %B.addr.1.lcssa, %for.inc13 ], [ %B, %for.cond1.preheader.preheader ]
+ %B.addr.05 = phi ptr [ %B.addr.1.lcssa, %for.inc13 ], [ %B, %for.cond1.preheader.preheader ]
%1 = add i32 %n, -1
%2 = zext i32 %1 to i64
%3 = add i64 %2, 1
@@ -612,7 +613,7 @@ for.body3.preheader: ; preds = %for.cond1.preheader
for.body3: ; preds = %for.body3.preheader, %for.body3
%indvars.iv = phi i64 [ 0, %for.body3.preheader ], [ %indvars.iv.next, %for.body3 ]
- %B.addr.12 = phi i32* [ %incdec.ptr, %for.body3 ], [ %B.addr.05, %for.body3.preheader ]
+ %B.addr.12 = phi ptr [ %incdec.ptr, %for.body3 ], [ %B.addr.05, %for.body3.preheader ]
%4 = trunc i64 %indvars.iv to i32
%mul = shl i32 %4, 2
%idxprom = zext i32 %mul to i64
@@ -621,9 +622,9 @@ for.body3: ; preds = %for.body3.preheader
%idxprom5 = zext i32 %mul4 to i64
%6 = mul nsw i64 %idxprom5, %0
%arrayidx.sum = add i64 %6, %idxprom
- %arrayidx6 = getelementptr inbounds i32, i32* %A, i64 %arrayidx.sum
+ %arrayidx6 = getelementptr inbounds i32, ptr %A, i64 %arrayidx.sum
%7 = trunc i64 %indvars.iv8 to i32
- store i32 %7, i32* %arrayidx6, align 4
+ store i32 %7, ptr %arrayidx6, align 4
%8 = trunc i64 %indvars.iv to i32
%mul7 = mul i32 %8, 6
%add7 = or i32 %mul7, 1
@@ -633,21 +634,21 @@ for.body3: ; preds = %for.body3.preheader
%idxprom10 = zext i32 %mul9 to i64
%10 = mul nsw i64 %idxprom10, %0
%arrayidx11.sum = add i64 %10, %idxprom8
- %arrayidx12 = getelementptr inbounds i32, i32* %A, i64 %arrayidx11.sum
- %11 = load i32, i32* %arrayidx12, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.12, i64 1
- store i32 %11, i32* %B.addr.12, align 4
+ %arrayidx12 = getelementptr inbounds i32, ptr %A, i64 %arrayidx11.sum
+ %11 = load i32, ptr %arrayidx12, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.12, i64 1
+ store i32 %11, ptr %B.addr.12, align 4
%indvars.iv.next = add i64 %indvars.iv, 1
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
%exitcond = icmp ne i32 %lftr.wideiv, %n
br i1 %exitcond, label %for.body3, label %for.inc13.loopexit
for.inc13.loopexit: ; preds = %for.body3
- %scevgep = getelementptr i32, i32* %B.addr.05, i64 %3
+ %scevgep = getelementptr i32, ptr %B.addr.05, i64 %3
br label %for.inc13
for.inc13: ; preds = %for.inc13.loopexit, %for.cond1.preheader
- %B.addr.1.lcssa = phi i32* [ %B.addr.05, %for.cond1.preheader ], [ %scevgep, %for.inc13.loopexit ]
+ %B.addr.1.lcssa = phi ptr [ %B.addr.05, %for.cond1.preheader ], [ %scevgep, %for.inc13.loopexit ]
%indvars.iv.next9 = add i64 %indvars.iv8, 1
%lftr.wideiv10 = trunc i64 %indvars.iv.next9 to i32
%exitcond11 = icmp ne i32 %lftr.wideiv10, %n
diff --git a/llvm/test/Analysis/DependenceAnalysis/Invariant.ll b/llvm/test/Analysis/DependenceAnalysis/Invariant.ll
index 40594d1b3dbbc..40fe0de0e2350 100644
--- a/llvm/test/Analysis/DependenceAnalysis/Invariant.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/Invariant.ll
@@ -4,7 +4,7 @@
; Test for a bug, which caused an assert when an invalid
; SCEVAddRecExpr is created in addToCoefficient.
-; float foo (float g, float* rr[40]) {
+; float foo (float g, ptr rr[40]) {
; float res= 0.0f;
; for (int i = 0; i < 40; i += 5) {
; for (int j = 0; j < 40; j += 5) {
@@ -20,7 +20,7 @@
; CHECK: da analyze - input [* 0|<]!
; CHECK: da analyze - none!
-define float @foo(float %g, [40 x float]* %rr) nounwind {
+define float @foo(float %g, ptr %rr) nounwind {
entry:
br label %for.cond1.preheader
@@ -32,10 +32,10 @@ for.cond1.preheader:
for.body3:
%j.02 = phi i32 [ 0, %for.cond1.preheader ], [ %add8, %for.body3 ]
%res.11 = phi float [ %res.03, %for.cond1.preheader ], [ %add.res.1, %for.body3 ]
- %arrayidx4 = getelementptr inbounds [40 x float], [40 x float]* %rr, i32 %j.02, i32 %j.02
- %0 = load float, float* %arrayidx4, align 4
- %arrayidx6 = getelementptr inbounds [40 x float], [40 x float]* %rr, i32 %i.04, i32 %j.02
- %1 = load float, float* %arrayidx6, align 4
+ %arrayidx4 = getelementptr inbounds [40 x float], ptr %rr, i32 %j.02, i32 %j.02
+ %0 = load float, ptr %arrayidx4, align 4
+ %arrayidx6 = getelementptr inbounds [40 x float], ptr %rr, i32 %i.04, i32 %j.02
+ %1 = load float, ptr %arrayidx6, align 4
%add = fadd float %0, %1
%cmp7 = fcmp ogt float %add, %g
%add.res.1 = select i1 %cmp7, float %add, float %res.11
diff --git a/llvm/test/Analysis/DependenceAnalysis/MIVCheckConst.ll b/llvm/test/Analysis/DependenceAnalysis/MIVCheckConst.ll
index d511911f39bd2..baa623d4b9554 100644
--- a/llvm/test/Analysis/DependenceAnalysis/MIVCheckConst.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/MIVCheckConst.ll
@@ -29,9 +29,9 @@ target datalayout = "e-m:e-p:32:32-i1:32-i64:64-a:0-v32:32-n16:32"
%20 = type { [768 x i32] }
%21 = type { [416 x i32] }
-define void @test(%1* %A) #0 align 2 {
+define void @test(ptr %A) #0 align 2 {
entry:
- %v1 = load i32, i32* undef, align 4
+ %v1 = load i32, ptr undef, align 4
br label %bb13
bb13:
@@ -49,14 +49,12 @@ bb21:
%v22 = add nsw i32 undef, 1
%v23 = add i32 %v22, %v3
%v24 = mul nsw i32 %v23, %v1
- %v25 = getelementptr inbounds %1, %1* %A, i32 0, i32 7, i32 1, i32 %v24
- %v26 = bitcast %0* %v25 to <32 x i32>*
- %v27 = load <32 x i32>, <32 x i32>* %v26, align 256
+ %v25 = getelementptr inbounds %1, ptr %A, i32 0, i32 7, i32 1, i32 %v24
+ %v27 = load <32 x i32>, ptr %v25, align 256
%v28 = add i32 undef, %v3
%v29 = mul nsw i32 %v28, 32
- %v30 = getelementptr inbounds %1, %1* %A, i32 0, i32 7, i32 14, i32 %v29
- %v31 = bitcast %0* %v30 to <32 x i32>*
- %v32 = load <32 x i32>, <32 x i32>* %v31, align 128
+ %v30 = getelementptr inbounds %1, ptr %A, i32 0, i32 7, i32 14, i32 %v29
+ %v32 = load <32 x i32>, ptr %v30, align 128
br i1 undef, label %bb21, label %bb37
bb37:
diff --git a/llvm/test/Analysis/DependenceAnalysis/MIVMaxLevelThreshold.ll b/llvm/test/Analysis/DependenceAnalysis/MIVMaxLevelThreshold.ll
index 80d5dbd109e40..69c7def57fbd6 100644
--- a/llvm/test/Analysis/DependenceAnalysis/MIVMaxLevelThreshold.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/MIVMaxLevelThreshold.ll
@@ -16,7 +16,7 @@
; CHECK: Src: %5 = load float, float* %arrayidx12, align 4 --> Dst: store float %add13, float* %arrayidx17, align 4
; CHECK-NEXT: da analyze - none!
-define void @foo(float* noalias %A, float* noalias %B, i32 signext %m, i32 signext %n, i32 signext %o) {
+define void @foo(ptr noalias %A, ptr noalias %B, i32 signext %m, i32 signext %n, i32 signext %o) {
entry:
%cmp5 = icmp sgt i32 %n, 0
br i1 %cmp5, label %for.body.preheader, label %for.end23
@@ -47,17 +47,17 @@ for.body8: ; preds = %for.body8.preheader
%indvars.iv = phi i64 [ 0, %for.body8.preheader ], [ %indvars.iv.next, %for.body8 ]
%0 = sub nsw i64 %indvars.iv19, %indvars.iv12
%1 = add nsw i64 %0, %indvars.iv
- %arrayidx = getelementptr inbounds float, float* %A, i64 %1
- %2 = load float, float* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds float, ptr %A, i64 %1
+ %2 = load float, ptr %arrayidx, align 4
%3 = add nuw nsw i64 %indvars.iv19, %indvars.iv12
%4 = add nuw nsw i64 %3, %indvars.iv
- %arrayidx12 = getelementptr inbounds float, float* %B, i64 %4
- %5 = load float, float* %arrayidx12, align 4
+ %arrayidx12 = getelementptr inbounds float, ptr %B, i64 %4
+ %5 = load float, ptr %arrayidx12, align 4
%add13 = fadd fast float %2, %5
%6 = add nuw nsw i64 %indvars.iv19, %indvars.iv12
%7 = add nuw nsw i64 %6, %indvars.iv
- %arrayidx17 = getelementptr inbounds float, float* %A, i64 %7
- store float %add13, float* %arrayidx17, align 4
+ %arrayidx17 = getelementptr inbounds float, ptr %A, i64 %7
+ store float %add13, ptr %arrayidx17, align 4
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
%exitcond = icmp ne i64 %indvars.iv.next, %wide.trip.count
br i1 %exitcond, label %for.body8, label %for.inc18.loopexit
diff --git a/llvm/test/Analysis/DependenceAnalysis/NonAffineExpr.ll b/llvm/test/Analysis/DependenceAnalysis/NonAffineExpr.ll
index 10c122a31160f..b4b768b4be2ed 100644
--- a/llvm/test/Analysis/DependenceAnalysis/NonAffineExpr.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/NonAffineExpr.ll
@@ -7,7 +7,7 @@
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n8:16:32-S64"
target triple = "thumbv7--linux-gnueabi"
-define void @f(i32** %a, i32 %n) align 2 {
+define void @f(ptr %a, i32 %n) align 2 {
for.preheader:
%t.0 = ashr exact i32 %n, 3
br label %for.body.1
@@ -20,9 +20,9 @@ for.body.1:
for.body.2:
%i.3 = phi i32 [ %t.1, %for.body.2 ], [ %i.1, %for.body.1 ]
%t.1 = add i32 %i.3, 1
- %t.2 = load i32*, i32** %a, align 4
- %t.3 = getelementptr inbounds i32, i32* %t.2, i32 %i.3
- %t.4 = load i32, i32* %t.3, align 4
+ %t.2 = load ptr, ptr %a, align 4
+ %t.3 = getelementptr inbounds i32, ptr %t.2, i32 %i.3
+ %t.4 = load i32, ptr %t.3, align 4
br i1 undef, label %for.inc, label %for.body.2
for.inc:
diff --git a/llvm/test/Analysis/DependenceAnalysis/NonCanonicalizedSubscript.ll b/llvm/test/Analysis/DependenceAnalysis/NonCanonicalizedSubscript.ll
index 58cb67c3ccbc5..3e7905edf1603 100644
--- a/llvm/test/Analysis/DependenceAnalysis/NonCanonicalizedSubscript.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/NonCanonicalizedSubscript.ll
@@ -12,7 +12,7 @@ target triple = "x86_64-apple-macosx10.6.0"
; The subscript 5 in a[i][5] is deliberately an i32, mismatching the types of
; other subscript. DependenceAnalysis before the fix crashed due to this
; mismatch.
-define void @i32_subscript([100 x [100 x i32]]* %a, i32* %b) {
+define void @i32_subscript(ptr %a, ptr %b) {
; DELIN-LABEL: 'Dependence Analysis' for function 'i32_subscript'
entry:
br label %for.body
@@ -22,11 +22,11 @@ for.body:
; DELIN: da analyze - anti [=|<]!
; DELIN: da analyze - none!
%i = phi i64 [ 0, %entry ], [ %i.inc, %for.body ]
- %a.addr = getelementptr [100 x [100 x i32]], [100 x [100 x i32]]* %a, i64 0, i64 %i, i64 %i
- %a.addr.2 = getelementptr [100 x [100 x i32]], [100 x [100 x i32]]* %a, i64 0, i64 %i, i32 5
- %0 = load i32, i32* %a.addr, align 4
+ %a.addr = getelementptr [100 x [100 x i32]], ptr %a, i64 0, i64 %i, i64 %i
+ %a.addr.2 = getelementptr [100 x [100 x i32]], ptr %a, i64 0, i64 %i, i32 5
+ %0 = load i32, ptr %a.addr, align 4
%1 = add i32 %0, 1
- store i32 %1, i32* %a.addr.2, align 4
+ store i32 %1, ptr %a.addr.2, align 4
%i.inc = add nsw i64 %i, 1
%exitcond = icmp ne i64 %i.inc, 100
br i1 %exitcond, label %for.body, label %for.end
@@ -75,11 +75,11 @@ for.body3: ; preds = %for.cond1
%sub = add nsw i32 %j.0, -1
%idxprom = zext i32 %sub to i64
%1 = add nuw nsw i64 %indvars.iv11, 1
- %arrayidx5 = getelementptr inbounds [10004 x [10004 x i32]], [10004 x [10004 x i32]]* @a, i64 0, i64 %1, i64 %idxprom
- %2 = load i32, i32* %arrayidx5, align 4
+ %arrayidx5 = getelementptr inbounds [10004 x [10004 x i32]], ptr @a, i64 0, i64 %1, i64 %idxprom
+ %2 = load i32, ptr %arrayidx5, align 4
%add6 = add nsw i32 %2, 2
- %arrayidx10 = getelementptr inbounds [10004 x [10004 x i32]], [10004 x [10004 x i32]]* @a, i64 0, i64 %indvars.iv11, i64 %indvars.iv8
- store i32 %add6, i32* %arrayidx10, align 4
+ %arrayidx10 = getelementptr inbounds [10004 x [10004 x i32]], ptr @a, i64 0, i64 %indvars.iv11, i64 %indvars.iv8
+ store i32 %add6, ptr %arrayidx10, align 4
%indvars.iv.next9 = add nuw nsw i64 %indvars.iv8, 1
%inc = add nuw nsw i32 %j.0, 1
br label %for.cond1
diff --git a/llvm/test/Analysis/DependenceAnalysis/PR21585.ll b/llvm/test/Analysis/DependenceAnalysis/PR21585.ll
index 0f47682bb03d8..34c5317bce4c5 100644
--- a/llvm/test/Analysis/DependenceAnalysis/PR21585.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/PR21585.ll
@@ -1,16 +1,16 @@
; RUN: opt < %s -disable-output "-passes=print<da>" \
; RUN: "-aa-pipeline=basic-aa,globals-aa" 2>&1 | FileCheck %s
-define void @i32_subscript(i32* %a) {
+define void @i32_subscript(ptr %a) {
entry:
br label %for.body
for.body:
%i = phi i32 [ 0, %entry ], [ %i.inc, %for.body ]
- %a.addr = getelementptr i32, i32* %a, i32 %i
- %a.addr.2 = getelementptr i32, i32* %a, i32 5
- %0 = load i32, i32* %a.addr, align 4
+ %a.addr = getelementptr i32, ptr %a, i32 %i
+ %a.addr.2 = getelementptr i32, ptr %a, i32 5
+ %0 = load i32, ptr %a.addr, align 4
%1 = add i32 %0, 1
- store i32 %1, i32* %a.addr.2, align 4
+ store i32 %1, ptr %a.addr.2, align 4
%i.inc = add nsw i32 %i, 1
%i.inc.ext = sext i32 %i to i64
%exitcond = icmp ne i64 %i.inc.ext, 100
@@ -35,17 +35,17 @@ for.end:
@g = common global i32 0, align 4
-define void @t(i32* noalias %a, i32 %n) nounwind {
+define void @t(ptr noalias %a, i32 %n) nounwind {
entry:
%cmp1 = icmp eq i32 %n, 0
br i1 %cmp1, label %for.end, label %for.body
for.body:
%i.02 = phi i32 [ %inc, %for.body ], [ 0, %entry ]
- %0 = load i32, i32* @g, align 4
+ %0 = load i32, ptr @g, align 4
%idxprom = and i32 %i.02, 65535
- %arrayidx = getelementptr inbounds i32, i32* %a, i32 %idxprom
- store i32 %0, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %a, i32 %idxprom
+ store i32 %0, ptr %arrayidx, align 4
%inc = add i32 %i.02, 1
%cmp = icmp eq i32 %inc, %n
br i1 %cmp, label %for.end, label %for.body
@@ -57,16 +57,16 @@ for.end:
; CHECK: none
; CHECK: output
-define void @i16_wrap(i64* %a) {
+define void @i16_wrap(ptr %a) {
entry:
br label %for.body
for.body:
%i = phi i64 [0, %entry], [%i.inc, %for.inc]
%i.tr = trunc i64 %i to i16
- %idx = getelementptr i64, i64* %a, i16 %i.tr
- %0 = load i64, i64* %idx
+ %idx = getelementptr i64, ptr %a, i16 %i.tr
+ %0 = load i64, ptr %idx
%1 = add i64 %0, 1
-store i64 %1, i64* %idx
+store i64 %1, ptr %idx
br label %for.inc
for.inc:
@@ -80,17 +80,17 @@ for.end:
; CHECK: anti
; CHECK: output
-define void @i8_stride_wrap(i32* noalias %a, i32* noalias %b) {
+define void @i8_stride_wrap(ptr noalias %a, ptr noalias %b) {
entry:
br label %for.body
for.body:
%i = phi i32 [1,%entry], [%i.inc, %for.inc]
%i.tr = trunc i32 %i to i8
- %idx = getelementptr i32, i32* %a, i8 %i.tr
- %idx.2 = getelementptr i32, i32* %b, i32 %i
- %0 = load i32, i32* %idx, align 4
+ %idx = getelementptr i32, ptr %a, i8 %i.tr
+ %idx.2 = getelementptr i32, ptr %b, i32 %i
+ %0 = load i32, ptr %idx, align 4
%1 = add i32 %0, 1
- store i32 %1, i32* %idx.2, align 4
+ store i32 %1, ptr %idx.2, align 4
br label %for.inc
for.inc:
diff --git a/llvm/test/Analysis/DependenceAnalysis/Preliminary.ll b/llvm/test/Analysis/DependenceAnalysis/Preliminary.ll
index 91827f3231ba4..ee0b50d479249 100644
--- a/llvm/test/Analysis/DependenceAnalysis/Preliminary.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/Preliminary.ll
@@ -9,17 +9,17 @@ target triple = "x86_64-apple-macosx10.6.0"
;; A[0] = n;
;; return B[1];
-define i32 @p0(i32 %n, i32* %A, i32* %B) nounwind uwtable ssp {
+define i32 @p0(i32 %n, ptr %A, ptr %B) nounwind uwtable ssp {
entry:
- store i32 %n, i32* %A, align 4
+ store i32 %n, ptr %A, align 4
; CHECK-LABEL: p0
; CHECK: da analyze - none!
; CHECK: da analyze - confused!
; CHECK: da analyze - none!
- %arrayidx1 = getelementptr inbounds i32, i32* %B, i64 1
- %0 = load i32, i32* %arrayidx1, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %B, i64 1
+ %0 = load i32, ptr %arrayidx1, align 4
ret i32 %0
}
@@ -28,17 +28,17 @@ entry:
;; A[0] = n;
;; return B[1];
-define i32 @p1(i32 %n, i32* noalias %A, i32* noalias %B) nounwind uwtable ssp {
+define i32 @p1(i32 %n, ptr noalias %A, ptr noalias %B) nounwind uwtable ssp {
entry:
- store i32 %n, i32* %A, align 4
+ store i32 %n, ptr %A, align 4
; CHECK-LABEL: p1
; CHECK: da analyze - none!
; CHECK: da analyze - none!
; CHECK: da analyze - none!
- %arrayidx1 = getelementptr inbounds i32, i32* %B, i64 1
- %0 = load i32, i32* %arrayidx1, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %B, i64 1
+ %0 = load i32, ptr %arrayidx1, align 4
ret i32 %0
}
@@ -51,7 +51,7 @@ entry:
;; for (long int k = 0; k < n; k++) {
;; *B++ = A[i + 3][j + 2][k + 1];
-define void @p2(i64 %n, [100 x [100 x i64]]* %A, i64* %B) nounwind uwtable ssp {
+define void @p2(i64 %n, ptr %A, ptr %B) nounwind uwtable ssp {
entry:
%cmp10 = icmp sgt i64 %n, 0
br i1 %cmp10, label %for.cond1.preheader.preheader, label %for.end26
@@ -68,7 +68,7 @@ for.cond1.preheader.preheader: ; preds = %entry
br label %for.cond1.preheader
for.cond1.preheader: ; preds = %for.cond1.preheader.preheader, %for.inc24
- %B.addr.012 = phi i64* [ %B.addr.1.lcssa, %for.inc24 ], [ %B, %for.cond1.preheader.preheader ]
+ %B.addr.012 = phi ptr [ %B.addr.1.lcssa, %for.inc24 ], [ %B, %for.cond1.preheader.preheader ]
%i.011 = phi i64 [ %inc25, %for.inc24 ], [ 0, %for.cond1.preheader.preheader ]
%cmp26 = icmp sgt i64 %n, 0
br i1 %cmp26, label %for.cond4.preheader.preheader, label %for.inc24
@@ -77,7 +77,7 @@ for.cond4.preheader.preheader: ; preds = %for.cond1.preheader
br label %for.cond4.preheader
for.cond4.preheader: ; preds = %for.cond4.preheader.preheader, %for.inc21
- %B.addr.18 = phi i64* [ %B.addr.2.lcssa, %for.inc21 ], [ %B.addr.012, %for.cond4.preheader.preheader ]
+ %B.addr.18 = phi ptr [ %B.addr.2.lcssa, %for.inc21 ], [ %B.addr.012, %for.cond4.preheader.preheader ]
%j.07 = phi i64 [ %inc22, %for.inc21 ], [ 0, %for.cond4.preheader.preheader ]
%cmp51 = icmp sgt i64 %n, 0
br i1 %cmp51, label %for.body6.preheader, label %for.cond10.loopexit
@@ -87,8 +87,8 @@ for.body6.preheader: ; preds = %for.cond4.preheader
for.body6: ; preds = %for.body6.preheader, %for.body6
%k.02 = phi i64 [ %inc, %for.body6 ], [ 0, %for.body6.preheader ]
- %arrayidx8 = getelementptr inbounds [100 x [100 x i64]], [100 x [100 x i64]]* %A, i64 %i.011, i64 %j.07, i64 %k.02
- store i64 %i.011, i64* %arrayidx8, align 8
+ %arrayidx8 = getelementptr inbounds [100 x [100 x i64]], ptr %A, i64 %i.011, i64 %j.07, i64 %k.02
+ store i64 %i.011, ptr %arrayidx8, align 8
%inc = add nsw i64 %k.02, 1
%exitcond13 = icmp ne i64 %inc, %n
br i1 %exitcond13, label %for.body6, label %for.cond10.loopexit.loopexit
@@ -105,34 +105,34 @@ for.body12.preheader: ; preds = %for.cond10.loopexit
for.body12: ; preds = %for.body12.preheader, %for.body12
%k9.05 = phi i64 [ %inc19, %for.body12 ], [ 0, %for.body12.preheader ]
- %B.addr.24 = phi i64* [ %incdec.ptr, %for.body12 ], [ %B.addr.18, %for.body12.preheader ]
+ %B.addr.24 = phi ptr [ %incdec.ptr, %for.body12 ], [ %B.addr.18, %for.body12.preheader ]
%add = add nsw i64 %k9.05, 1
%add13 = add nsw i64 %j.07, 2
%add14 = add nsw i64 %i.011, 3
- %arrayidx17 = getelementptr inbounds [100 x [100 x i64]], [100 x [100 x i64]]* %A, i64 %add14, i64 %add13, i64 %add
- %0 = load i64, i64* %arrayidx17, align 8
- %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.24, i64 1
- store i64 %0, i64* %B.addr.24, align 8
+ %arrayidx17 = getelementptr inbounds [100 x [100 x i64]], ptr %A, i64 %add14, i64 %add13, i64 %add
+ %0 = load i64, ptr %arrayidx17, align 8
+ %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.24, i64 1
+ store i64 %0, ptr %B.addr.24, align 8
%inc19 = add nsw i64 %k9.05, 1
%exitcond = icmp ne i64 %inc19, %n
br i1 %exitcond, label %for.body12, label %for.inc21.loopexit
for.inc21.loopexit: ; preds = %for.body12
- %scevgep = getelementptr i64, i64* %B.addr.18, i64 %n
+ %scevgep = getelementptr i64, ptr %B.addr.18, i64 %n
br label %for.inc21
for.inc21: ; preds = %for.inc21.loopexit, %for.cond10.loopexit
- %B.addr.2.lcssa = phi i64* [ %B.addr.18, %for.cond10.loopexit ], [ %scevgep, %for.inc21.loopexit ]
+ %B.addr.2.lcssa = phi ptr [ %B.addr.18, %for.cond10.loopexit ], [ %scevgep, %for.inc21.loopexit ]
%inc22 = add nsw i64 %j.07, 1
%exitcond14 = icmp ne i64 %inc22, %n
br i1 %exitcond14, label %for.cond4.preheader, label %for.inc24.loopexit
for.inc24.loopexit: ; preds = %for.inc21
- %B.addr.2.lcssa.lcssa = phi i64* [ %B.addr.2.lcssa, %for.inc21 ]
+ %B.addr.2.lcssa.lcssa = phi ptr [ %B.addr.2.lcssa, %for.inc21 ]
br label %for.inc24
for.inc24: ; preds = %for.inc24.loopexit, %for.cond1.preheader
- %B.addr.1.lcssa = phi i64* [ %B.addr.012, %for.cond1.preheader ], [ %B.addr.2.lcssa.lcssa, %for.inc24.loopexit ]
+ %B.addr.1.lcssa = phi ptr [ %B.addr.012, %for.cond1.preheader ], [ %B.addr.2.lcssa.lcssa, %for.inc24.loopexit ]
%inc25 = add nsw i64 %i.011, 1
%exitcond15 = icmp ne i64 %inc25, %n
br i1 %exitcond15, label %for.cond1.preheader, label %for.end26.loopexit
@@ -161,7 +161,7 @@ for.end26: ; preds = %for.end26.loopexit,
;; A[i - 3] [j] [2] [k-1] [2*l + 1] [m] [p + q] [r + s] = i;
;; *B++ = A[i + 3] [2] [u] [1-k] [3*l - 1] [o] [1 + n] [t + 2];
-;define void @p3(i64 %n, [100 x [100 x [100 x [100 x [100 x [100 x [100 x i64]]]]]]]* %A, i64* %B) nounwind uwtable ssp {
+;define void @p3(i64 %n, ptr %A, ptr %B) nounwind uwtable ssp {
;entry:
; %cmp44 = icmp sgt i64 %n, 0
; br i1 %cmp44, label %for.cond1.preheader.preheader, label %for.end90
@@ -178,7 +178,7 @@ for.end26: ; preds = %for.end26.loopexit,
; br label %for.cond1.preheader
;
;for.cond1.preheader: ; preds = %for.cond1.preheader.preheader, %for.inc88
-; %B.addr.046 = phi i64* [ %B.addr.1.lcssa, %for.inc88 ], [ %B, %for.cond1.preheader.preheader ]
+; %B.addr.046 = phi ptr [ %B.addr.1.lcssa, %for.inc88 ], [ %B, %for.cond1.preheader.preheader ]
; %i.045 = phi i64 [ %inc89, %for.inc88 ], [ 0, %for.cond1.preheader.preheader ]
; %cmp240 = icmp sgt i64 %n, 0
; br i1 %cmp240, label %for.cond4.preheader.preheader, label %for.inc88
@@ -187,7 +187,7 @@ for.end26: ; preds = %for.end26.loopexit,
; br label %for.cond4.preheader
;
;for.cond4.preheader: ; preds = %for.cond4.preheader.preheader, %for.inc85
-; %B.addr.142 = phi i64* [ %B.addr.2.lcssa, %for.inc85 ], [ %B.addr.046, %for.cond4.preheader.preheader ]
+; %B.addr.142 = phi ptr [ %B.addr.2.lcssa, %for.inc85 ], [ %B.addr.046, %for.cond4.preheader.preheader ]
; %j.041 = phi i64 [ %inc86, %for.inc85 ], [ 0, %for.cond4.preheader.preheader ]
; %cmp536 = icmp sgt i64 %n, 0
; br i1 %cmp536, label %for.cond7.preheader.preheader, label %for.inc85
@@ -196,7 +196,7 @@ for.end26: ; preds = %for.end26.loopexit,
; br label %for.cond7.preheader
;
;for.cond7.preheader: ; preds = %for.cond7.preheader.preheader, %for.inc82
-; %B.addr.238 = phi i64* [ %B.addr.3.lcssa, %for.inc82 ], [ %B.addr.142, %for.cond7.preheader.preheader ]
+; %B.addr.238 = phi ptr [ %B.addr.3.lcssa, %for.inc82 ], [ %B.addr.142, %for.cond7.preheader.preheader ]
; %k.037 = phi i64 [ %inc83, %for.inc82 ], [ 0, %for.cond7.preheader.preheader ]
; %cmp832 = icmp sgt i64 %n, 0
; br i1 %cmp832, label %for.cond10.preheader.preheader, label %for.inc82
@@ -205,7 +205,7 @@ for.end26: ; preds = %for.end26.loopexit,
; br label %for.cond10.preheader
;
;for.cond10.preheader: ; preds = %for.cond10.preheader.preheader, %for.inc79
-; %B.addr.334 = phi i64* [ %B.addr.4.lcssa, %for.inc79 ], [ %B.addr.238, %for.cond10.preheader.preheader ]
+; %B.addr.334 = phi ptr [ %B.addr.4.lcssa, %for.inc79 ], [ %B.addr.238, %for.cond10.preheader.preheader ]
; %l.033 = phi i64 [ %inc80, %for.inc79 ], [ 0, %for.cond10.preheader.preheader ]
; %cmp1128 = icmp sgt i64 %n, 0
; br i1 %cmp1128, label %for.cond13.preheader.preheader, label %for.inc79
@@ -214,7 +214,7 @@ for.end26: ; preds = %for.end26.loopexit,
; br label %for.cond13.preheader
;
;for.cond13.preheader: ; preds = %for.cond13.preheader.preheader, %for.inc76
-; %B.addr.430 = phi i64* [ %B.addr.5.lcssa, %for.inc76 ], [ %B.addr.334, %for.cond13.preheader.preheader ]
+; %B.addr.430 = phi ptr [ %B.addr.5.lcssa, %for.inc76 ], [ %B.addr.334, %for.cond13.preheader.preheader ]
; %m.029 = phi i64 [ %inc77, %for.inc76 ], [ 0, %for.cond13.preheader.preheader ]
; %cmp1424 = icmp sgt i64 %n, 0
; br i1 %cmp1424, label %for.cond16.preheader.preheader, label %for.inc76
@@ -223,7 +223,7 @@ for.end26: ; preds = %for.end26.loopexit,
; br label %for.cond16.preheader
;
;for.cond16.preheader: ; preds = %for.cond16.preheader.preheader, %for.inc73
-; %B.addr.526 = phi i64* [ %B.addr.6.lcssa, %for.inc73 ], [ %B.addr.430, %for.cond16.preheader.preheader ]
+; %B.addr.526 = phi ptr [ %B.addr.6.lcssa, %for.inc73 ], [ %B.addr.430, %for.cond16.preheader.preheader ]
; %o.025 = phi i64 [ %inc74, %for.inc73 ], [ 0, %for.cond16.preheader.preheader ]
; %cmp1720 = icmp sgt i64 %n, 0
; br i1 %cmp1720, label %for.cond19.preheader.preheader, label %for.inc73
@@ -232,7 +232,7 @@ for.end26: ; preds = %for.end26.loopexit,
; br label %for.cond19.preheader
;
;for.cond19.preheader: ; preds = %for.cond19.preheader.preheader, %for.inc70
-; %B.addr.622 = phi i64* [ %B.addr.7.lcssa, %for.inc70 ], [ %B.addr.526, %for.cond19.preheader.preheader ]
+; %B.addr.622 = phi ptr [ %B.addr.7.lcssa, %for.inc70 ], [ %B.addr.526, %for.cond19.preheader.preheader ]
; %p.021 = phi i64 [ %inc71, %for.inc70 ], [ 0, %for.cond19.preheader.preheader ]
; %cmp2016 = icmp sgt i64 %n, 0
; br i1 %cmp2016, label %for.cond22.preheader.preheader, label %for.inc70
@@ -241,7 +241,7 @@ for.end26: ; preds = %for.end26.loopexit,
; br label %for.cond22.preheader
;
;for.cond22.preheader: ; preds = %for.cond22.preheader.preheader, %for.inc67
-; %B.addr.718 = phi i64* [ %B.addr.8.lcssa, %for.inc67 ], [ %B.addr.622, %for.cond22.preheader.preheader ]
+; %B.addr.718 = phi ptr [ %B.addr.8.lcssa, %for.inc67 ], [ %B.addr.622, %for.cond22.preheader.preheader ]
; %q.017 = phi i64 [ %inc68, %for.inc67 ], [ 0, %for.cond22.preheader.preheader ]
; %cmp2312 = icmp sgt i64 %n, 0
; br i1 %cmp2312, label %for.cond25.preheader.preheader, label %for.inc67
@@ -250,7 +250,7 @@ for.end26: ; preds = %for.end26.loopexit,
; br label %for.cond25.preheader
;
;for.cond25.preheader: ; preds = %for.cond25.preheader.preheader, %for.inc64
-; %B.addr.814 = phi i64* [ %B.addr.9.lcssa, %for.inc64 ], [ %B.addr.718, %for.cond25.preheader.preheader ]
+; %B.addr.814 = phi ptr [ %B.addr.9.lcssa, %for.inc64 ], [ %B.addr.718, %for.cond25.preheader.preheader ]
; %r.013 = phi i64 [ %inc65, %for.inc64 ], [ 0, %for.cond25.preheader.preheader ]
; %cmp268 = icmp sgt i64 %n, 0
; br i1 %cmp268, label %for.cond28.preheader.preheader, label %for.inc64
@@ -259,7 +259,7 @@ for.end26: ; preds = %for.end26.loopexit,
; br label %for.cond28.preheader
;
;for.cond28.preheader: ; preds = %for.cond28.preheader.preheader, %for.inc61
-; %B.addr.910 = phi i64* [ %B.addr.10.lcssa, %for.inc61 ], [ %B.addr.814, %for.cond28.preheader.preheader ]
+; %B.addr.910 = phi ptr [ %B.addr.10.lcssa, %for.inc61 ], [ %B.addr.814, %for.cond28.preheader.preheader ]
; %s.09 = phi i64 [ %inc62, %for.inc61 ], [ 0, %for.cond28.preheader.preheader ]
; %cmp294 = icmp sgt i64 %n, 0
; br i1 %cmp294, label %for.cond31.preheader.preheader, label %for.inc61
@@ -269,7 +269,7 @@ for.end26: ; preds = %for.end26.loopexit,
;
;for.cond31.preheader: ; preds = %for.cond31.preheader.preheader, %for.inc58
; %u.06 = phi i64 [ %inc59, %for.inc58 ], [ 0, %for.cond31.preheader.preheader ]
-; %B.addr.105 = phi i64* [ %B.addr.11.lcssa, %for.inc58 ], [ %B.addr.910, %for.cond31.preheader.preheader ]
+; %B.addr.105 = phi ptr [ %B.addr.11.lcssa, %for.inc58 ], [ %B.addr.910, %for.cond31.preheader.preheader ]
; %cmp321 = icmp sgt i64 %n, 0
; br i1 %cmp321, label %for.body33.preheader, label %for.inc58
;
@@ -278,135 +278,135 @@ for.end26: ; preds = %for.end26.loopexit,
;
;for.body33: ; preds = %for.body33.preheader, %for.body33
; %t.03 = phi i64 [ %inc, %for.body33 ], [ 0, %for.body33.preheader ]
-; %B.addr.112 = phi i64* [ %incdec.ptr, %for.body33 ], [ %B.addr.105, %for.body33.preheader ]
+; %B.addr.112 = phi ptr [ %incdec.ptr, %for.body33 ], [ %B.addr.105, %for.body33.preheader ]
; %add = add nsw i64 %r.013, %s.09
; %add34 = add nsw i64 %p.021, %q.017
; %mul = shl nsw i64 %l.033, 1
; %add3547 = or i64 %mul, 1
; %sub = add nsw i64 %k.037, -1
; %sub36 = add nsw i64 %i.045, -3
-; %arrayidx43 = getelementptr inbounds [100 x [100 x [100 x [100 x [100 x [100 x [100 x i64]]]]]]], [100 x [100 x [100 x [100 x [100 x [100 x [100 x i64]]]]]]]* %A, i64 %sub36, i64 %j.041, i64 2, i64 %sub, i64 %add3547, i64 %m.029, i64 %add34, i64 %add
-; store i64 %i.045, i64* %arrayidx43, align 8
+; %arrayidx43 = getelementptr inbounds [100 x [100 x [100 x [100 x [100 x [100 x [100 x i64]]]]]]], ptr %A, i64 %sub36, i64 %j.041, i64 2, i64 %sub, i64 %add3547, i64 %m.029, i64 %add34, i64 %add
+; store i64 %i.045, ptr %arrayidx43, align 8
; %add44 = add nsw i64 %t.03, 2
; %add45 = add nsw i64 %n, 1
; %mul46 = mul nsw i64 %l.033, 3
; %sub47 = add nsw i64 %mul46, -1
; %sub48 = sub nsw i64 1, %k.037
; %add49 = add nsw i64 %i.045, 3
-; %arrayidx57 = getelementptr inbounds [100 x [100 x [100 x [100 x [100 x [100 x [100 x i64]]]]]]], [100 x [100 x [100 x [100 x [100 x [100 x [100 x i64]]]]]]]* %A, i64 %add49, i64 2, i64 %u.06, i64 %sub48, i64 %sub47, i64 %o.025, i64 %add45, i64 %add44
-; %0 = load i64, i64* %arrayidx57, align 8
-; %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.112, i64 1
-; store i64 %0, i64* %B.addr.112, align 8
+; %arrayidx57 = getelementptr inbounds [100 x [100 x [100 x [100 x [100 x [100 x [100 x i64]]]]]]], ptr %A, i64 %add49, i64 2, i64 %u.06, i64 %sub48, i64 %sub47, i64 %o.025, i64 %add45, i64 %add44
+; %0 = load i64, ptr %arrayidx57, align 8
+; %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.112, i64 1
+; store i64 %0, ptr %B.addr.112, align 8
; %inc = add nsw i64 %t.03, 1
; %exitcond = icmp ne i64 %inc, %n
; br i1 %exitcond, label %for.body33, label %for.inc58.loopexit
;
;for.inc58.loopexit: ; preds = %for.body33
-; %scevgep = getelementptr i64, i64* %B.addr.105, i64 %n
+; %scevgep = getelementptr i64, ptr %B.addr.105, i64 %n
; br label %for.inc58
;
;for.inc58: ; preds = %for.inc58.loopexit, %for.cond31.preheader
-; %B.addr.11.lcssa = phi i64* [ %B.addr.105, %for.cond31.preheader ], [ %scevgep, %for.inc58.loopexit ]
+; %B.addr.11.lcssa = phi ptr [ %B.addr.105, %for.cond31.preheader ], [ %scevgep, %for.inc58.loopexit ]
; %inc59 = add nsw i64 %u.06, 1
; %exitcond48 = icmp ne i64 %inc59, %n
; br i1 %exitcond48, label %for.cond31.preheader, label %for.inc61.loopexit
;
;for.inc61.loopexit: ; preds = %for.inc58
-; %B.addr.11.lcssa.lcssa = phi i64* [ %B.addr.11.lcssa, %for.inc58 ]
+; %B.addr.11.lcssa.lcssa = phi ptr [ %B.addr.11.lcssa, %for.inc58 ]
; br label %for.inc61
;
;for.inc61: ; preds = %for.inc61.loopexit, %for.cond28.preheader
-; %B.addr.10.lcssa = phi i64* [ %B.addr.910, %for.cond28.preheader ], [ %B.addr.11.lcssa.lcssa, %for.inc61.loopexit ]
+; %B.addr.10.lcssa = phi ptr [ %B.addr.910, %for.cond28.preheader ], [ %B.addr.11.lcssa.lcssa, %for.inc61.loopexit ]
; %inc62 = add nsw i64 %s.09, 1
; %exitcond49 = icmp ne i64 %inc62, %n
; br i1 %exitcond49, label %for.cond28.preheader, label %for.inc64.loopexit
;
;for.inc64.loopexit: ; preds = %for.inc61
-; %B.addr.10.lcssa.lcssa = phi i64* [ %B.addr.10.lcssa, %for.inc61 ]
+; %B.addr.10.lcssa.lcssa = phi ptr [ %B.addr.10.lcssa, %for.inc61 ]
; br label %for.inc64
;
;for.inc64: ; preds = %for.inc64.loopexit, %for.cond25.preheader
-; %B.addr.9.lcssa = phi i64* [ %B.addr.814, %for.cond25.preheader ], [ %B.addr.10.lcssa.lcssa, %for.inc64.loopexit ]
+; %B.addr.9.lcssa = phi ptr [ %B.addr.814, %for.cond25.preheader ], [ %B.addr.10.lcssa.lcssa, %for.inc64.loopexit ]
; %inc65 = add nsw i64 %r.013, 1
; %exitcond50 = icmp ne i64 %inc65, %n
; br i1 %exitcond50, label %for.cond25.preheader, label %for.inc67.loopexit
;
;for.inc67.loopexit: ; preds = %for.inc64
-; %B.addr.9.lcssa.lcssa = phi i64* [ %B.addr.9.lcssa, %for.inc64 ]
+; %B.addr.9.lcssa.lcssa = phi ptr [ %B.addr.9.lcssa, %for.inc64 ]
; br label %for.inc67
;
;for.inc67: ; preds = %for.inc67.loopexit, %for.cond22.preheader
-; %B.addr.8.lcssa = phi i64* [ %B.addr.718, %for.cond22.preheader ], [ %B.addr.9.lcssa.lcssa, %for.inc67.loopexit ]
+; %B.addr.8.lcssa = phi ptr [ %B.addr.718, %for.cond22.preheader ], [ %B.addr.9.lcssa.lcssa, %for.inc67.loopexit ]
; %inc68 = add nsw i64 %q.017, 1
; %exitcond51 = icmp ne i64 %inc68, %n
; br i1 %exitcond51, label %for.cond22.preheader, label %for.inc70.loopexit
;
;for.inc70.loopexit: ; preds = %for.inc67
-; %B.addr.8.lcssa.lcssa = phi i64* [ %B.addr.8.lcssa, %for.inc67 ]
+; %B.addr.8.lcssa.lcssa = phi ptr [ %B.addr.8.lcssa, %for.inc67 ]
; br label %for.inc70
;
;for.inc70: ; preds = %for.inc70.loopexit, %for.cond19.preheader
-; %B.addr.7.lcssa = phi i64* [ %B.addr.622, %for.cond19.preheader ], [ %B.addr.8.lcssa.lcssa, %for.inc70.loopexit ]
+; %B.addr.7.lcssa = phi ptr [ %B.addr.622, %for.cond19.preheader ], [ %B.addr.8.lcssa.lcssa, %for.inc70.loopexit ]
; %inc71 = add nsw i64 %p.021, 1
; %exitcond52 = icmp ne i64 %inc71, %n
; br i1 %exitcond52, label %for.cond19.preheader, label %for.inc73.loopexit
;
;for.inc73.loopexit: ; preds = %for.inc70
-; %B.addr.7.lcssa.lcssa = phi i64* [ %B.addr.7.lcssa, %for.inc70 ]
+; %B.addr.7.lcssa.lcssa = phi ptr [ %B.addr.7.lcssa, %for.inc70 ]
; br label %for.inc73
;
;for.inc73: ; preds = %for.inc73.loopexit, %for.cond16.preheader
-; %B.addr.6.lcssa = phi i64* [ %B.addr.526, %for.cond16.preheader ], [ %B.addr.7.lcssa.lcssa, %for.inc73.loopexit ]
+; %B.addr.6.lcssa = phi ptr [ %B.addr.526, %for.cond16.preheader ], [ %B.addr.7.lcssa.lcssa, %for.inc73.loopexit ]
; %inc74 = add nsw i64 %o.025, 1
; %exitcond53 = icmp ne i64 %inc74, %n
; br i1 %exitcond53, label %for.cond16.preheader, label %for.inc76.loopexit
;
;for.inc76.loopexit: ; preds = %for.inc73
-; %B.addr.6.lcssa.lcssa = phi i64* [ %B.addr.6.lcssa, %for.inc73 ]
+; %B.addr.6.lcssa.lcssa = phi ptr [ %B.addr.6.lcssa, %for.inc73 ]
; br label %for.inc76
;
;for.inc76: ; preds = %for.inc76.loopexit, %for.cond13.preheader
-; %B.addr.5.lcssa = phi i64* [ %B.addr.430, %for.cond13.preheader ], [ %B.addr.6.lcssa.lcssa, %for.inc76.loopexit ]
+; %B.addr.5.lcssa = phi ptr [ %B.addr.430, %for.cond13.preheader ], [ %B.addr.6.lcssa.lcssa, %for.inc76.loopexit ]
; %inc77 = add nsw i64 %m.029, 1
; %exitcond54 = icmp ne i64 %inc77, %n
; br i1 %exitcond54, label %for.cond13.preheader, label %for.inc79.loopexit
;
;for.inc79.loopexit: ; preds = %for.inc76
-; %B.addr.5.lcssa.lcssa = phi i64* [ %B.addr.5.lcssa, %for.inc76 ]
+; %B.addr.5.lcssa.lcssa = phi ptr [ %B.addr.5.lcssa, %for.inc76 ]
; br label %for.inc79
;
;for.inc79: ; preds = %for.inc79.loopexit, %for.cond10.preheader
-; %B.addr.4.lcssa = phi i64* [ %B.addr.334, %for.cond10.preheader ], [ %B.addr.5.lcssa.lcssa, %for.inc79.loopexit ]
+; %B.addr.4.lcssa = phi ptr [ %B.addr.334, %for.cond10.preheader ], [ %B.addr.5.lcssa.lcssa, %for.inc79.loopexit ]
; %inc80 = add nsw i64 %l.033, 1
; %exitcond55 = icmp ne i64 %inc80, %n
; br i1 %exitcond55, label %for.cond10.preheader, label %for.inc82.loopexit
;
;for.inc82.loopexit: ; preds = %for.inc79
-; %B.addr.4.lcssa.lcssa = phi i64* [ %B.addr.4.lcssa, %for.inc79 ]
+; %B.addr.4.lcssa.lcssa = phi ptr [ %B.addr.4.lcssa, %for.inc79 ]
; br label %for.inc82
;
;for.inc82: ; preds = %for.inc82.loopexit, %for.cond7.preheader
-; %B.addr.3.lcssa = phi i64* [ %B.addr.238, %for.cond7.preheader ], [ %B.addr.4.lcssa.lcssa, %for.inc82.loopexit ]
+; %B.addr.3.lcssa = phi ptr [ %B.addr.238, %for.cond7.preheader ], [ %B.addr.4.lcssa.lcssa, %for.inc82.loopexit ]
; %inc83 = add nsw i64 %k.037, 1
; %exitcond56 = icmp ne i64 %inc83, %n
; br i1 %exitcond56, label %for.cond7.preheader, label %for.inc85.loopexit
;
;for.inc85.loopexit: ; preds = %for.inc82
-; %B.addr.3.lcssa.lcssa = phi i64* [ %B.addr.3.lcssa, %for.inc82 ]
+; %B.addr.3.lcssa.lcssa = phi ptr [ %B.addr.3.lcssa, %for.inc82 ]
; br label %for.inc85
;
;for.inc85: ; preds = %for.inc85.loopexit, %for.cond4.preheader
-; %B.addr.2.lcssa = phi i64* [ %B.addr.142, %for.cond4.preheader ], [ %B.addr.3.lcssa.lcssa, %for.inc85.loopexit ]
+; %B.addr.2.lcssa = phi ptr [ %B.addr.142, %for.cond4.preheader ], [ %B.addr.3.lcssa.lcssa, %for.inc85.loopexit ]
; %inc86 = add nsw i64 %j.041, 1
; %exitcond57 = icmp ne i64 %inc86, %n
; br i1 %exitcond57, label %for.cond4.preheader, label %for.inc88.loopexit
;
;for.inc88.loopexit: ; preds = %for.inc85
-; %B.addr.2.lcssa.lcssa = phi i64* [ %B.addr.2.lcssa, %for.inc85 ]
+; %B.addr.2.lcssa.lcssa = phi ptr [ %B.addr.2.lcssa, %for.inc85 ]
; br label %for.inc88
;
;for.inc88: ; preds = %for.inc88.loopexit, %for.cond1.preheader
-; %B.addr.1.lcssa = phi i64* [ %B.addr.046, %for.cond1.preheader ], [ %B.addr.2.lcssa.lcssa, %for.inc88.loopexit ]
+; %B.addr.1.lcssa = phi ptr [ %B.addr.046, %for.cond1.preheader ], [ %B.addr.2.lcssa.lcssa, %for.inc88.loopexit ]
; %inc89 = add nsw i64 %i.045, 1
; %exitcond58 = icmp ne i64 %inc89, %n
; br i1 %exitcond58, label %for.cond1.preheader, label %for.end90.loopexit
@@ -424,7 +424,7 @@ for.end26: ; preds = %for.end26.loopexit,
;; A[i + 2] = i;
;; *B++ = A[i];
-define void @p4(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @p4(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
%cmp1 = icmp sgt i64 %n, 0
br i1 %cmp1, label %for.body.preheader, label %for.end
@@ -442,17 +442,17 @@ for.body.preheader: ; preds = %entry
for.body: ; preds = %for.body.preheader, %for.body
%i.03 = phi i8 [ %inc, %for.body ], [ 0, %for.body.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
%conv2 = sext i8 %i.03 to i32
%conv3 = sext i8 %i.03 to i64
%add = add i64 %conv3, 2
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv2, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv2, ptr %arrayidx, align 4
%idxprom4 = sext i8 %i.03 to i64
- %arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %idxprom4
- %0 = load i32, i32* %arrayidx5, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %0, i32* %B.addr.02, align 4
+ %arrayidx5 = getelementptr inbounds i32, ptr %A, i64 %idxprom4
+ %0 = load i32, ptr %arrayidx5, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %0, ptr %B.addr.02, align 4
%inc = add i8 %i.03, 1
%conv = sext i8 %inc to i64
%cmp = icmp slt i64 %conv, %n
@@ -471,7 +471,7 @@ for.end: ; preds = %for.end.loopexit, %
;; A[i + 2] = i;
;; *B++ = A[i];
-define void @p5(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @p5(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
%cmp1 = icmp sgt i64 %n, 0
br i1 %cmp1, label %for.body.preheader, label %for.end
@@ -489,17 +489,17 @@ for.body.preheader: ; preds = %entry
for.body: ; preds = %for.body.preheader, %for.body
%i.03 = phi i16 [ %inc, %for.body ], [ 0, %for.body.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
%conv2 = sext i16 %i.03 to i32
%conv3 = sext i16 %i.03 to i64
%add = add i64 %conv3, 2
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv2, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv2, ptr %arrayidx, align 4
%idxprom4 = sext i16 %i.03 to i64
- %arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %idxprom4
- %0 = load i32, i32* %arrayidx5, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %0, i32* %B.addr.02, align 4
+ %arrayidx5 = getelementptr inbounds i32, ptr %A, i64 %idxprom4
+ %0 = load i32, ptr %arrayidx5, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %0, ptr %B.addr.02, align 4
%inc = add i16 %i.03, 1
%conv = sext i16 %inc to i64
%cmp = icmp slt i64 %conv, %n
@@ -518,7 +518,7 @@ for.end: ; preds = %for.end.loopexit, %
;; A[i + 2] = i;
;; *B++ = A[i];
-define void @p6(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @p6(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
%cmp1 = icmp sgt i64 %n, 0
br i1 %cmp1, label %for.body.preheader, label %for.end
@@ -536,15 +536,15 @@ for.body.preheader: ; preds = %entry
for.body: ; preds = %for.body.preheader, %for.body
%indvars.iv = phi i64 [ 0, %for.body.preheader ], [ %indvars.iv.next, %for.body ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
%0 = add nsw i64 %indvars.iv, 2
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %0
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %0
%1 = trunc i64 %indvars.iv to i32
- store i32 %1, i32* %arrayidx, align 4
- %arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
- %2 = load i32, i32* %arrayidx3, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %2, i32* %B.addr.02, align 4
+ store i32 %1, ptr %arrayidx, align 4
+ %arrayidx3 = getelementptr inbounds i32, ptr %A, i64 %indvars.iv
+ %2 = load i32, ptr %arrayidx3, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %2, ptr %B.addr.02, align 4
%indvars.iv.next = add i64 %indvars.iv, 1
%exitcond = icmp ne i64 %indvars.iv.next, %n
br i1 %exitcond, label %for.body, label %for.end.loopexit
@@ -561,10 +561,10 @@ for.end: ; preds = %for.end.loopexit, %
;; A[n] = 0;
;; *B = A[n + 1];
-define void @p7(i32* %A, i32* %B, i8 signext %n) nounwind uwtable ssp {
+define void @p7(ptr %A, ptr %B, i8 signext %n) nounwind uwtable ssp {
entry:
%idxprom = sext i8 %n to i64
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %idxprom
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %idxprom
; CHECK-LABEL: p7
; CHECK: da analyze - none!
@@ -574,12 +574,12 @@ entry:
; CHECK: da analyze - confused!
; CHECK: da analyze - none!
- store i32 0, i32* %arrayidx, align 4
+ store i32 0, ptr %arrayidx, align 4
%conv = sext i8 %n to i64
%add = add i64 %conv, 1
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %add
- %0 = load i32, i32* %arrayidx2, align 4
- store i32 %0, i32* %B, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i64 %add
+ %0 = load i32, ptr %arrayidx2, align 4
+ store i32 %0, ptr %B, align 4
ret void
}
@@ -588,11 +588,11 @@ entry:
;; A[n] = 0;
;; *B = A[n + 1];
-define void @p8(i32* %A, i32* %B, i16 signext %n) nounwind uwtable ssp {
+define void @p8(ptr %A, ptr %B, i16 signext %n) nounwind uwtable ssp {
entry:
%idxprom = sext i16 %n to i64
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %idxprom
- store i32 0, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %idxprom
+ store i32 0, ptr %arrayidx, align 4
; CHECK-LABEL: p8
; CHECK: da analyze - none!
@@ -604,9 +604,9 @@ entry:
%conv = sext i16 %n to i64
%add = add i64 %conv, 1
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %add
- %0 = load i32, i32* %arrayidx2, align 4
- store i32 %0, i32* %B, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i64 %add
+ %0 = load i32, ptr %arrayidx2, align 4
+ store i32 %0, ptr %B, align 4
ret void
}
@@ -615,11 +615,11 @@ entry:
;; A[n] = 0;
;; *B = A[n + 1];
-define void @p9(i32* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @p9(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
%idxprom = sext i32 %n to i64
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %idxprom
- store i32 0, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %idxprom
+ store i32 0, ptr %arrayidx, align 4
; CHECK-LABEL: p9
; CHECK: da analyze - none!
@@ -631,9 +631,9 @@ entry:
%add = add nsw i32 %n, 1
%idxprom1 = sext i32 %add to i64
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %idxprom1
- %0 = load i32, i32* %arrayidx2, align 4
- store i32 %0, i32* %B, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i64 %idxprom1
+ %0 = load i32, ptr %arrayidx2, align 4
+ store i32 %0, ptr %B, align 4
ret void
}
@@ -642,11 +642,11 @@ entry:
;; A[n] = 0;
;; *B = A[n + 1];
-define void @p10(i32* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @p10(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
%idxprom = zext i32 %n to i64
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %idxprom
- store i32 0, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %idxprom
+ store i32 0, ptr %arrayidx, align 4
; CHECK-LABEL: p10
; CHECK: da analyze - none!
@@ -658,9 +658,9 @@ entry:
%add = add i32 %n, 1
%idxprom1 = zext i32 %add to i64
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %idxprom1
- %0 = load i32, i32* %arrayidx2, align 4
- store i32 %0, i32* %B, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i64 %idxprom1
+ %0 = load i32, ptr %arrayidx2, align 4
+ store i32 %0, ptr %B, align 4
ret void
}
@@ -675,11 +675,11 @@ entry:
%struct.S = type { i32 }
-define void @foo(%struct.S* %s, i32 %size) nounwind uwtable ssp {
+define void @foo(ptr %s, i32 %size) nounwind uwtable ssp {
entry:
%idx.ext = zext i32 %size to i64
%add.ptr.sum = add i64 %idx.ext, -1
- %add.ptr1 = getelementptr inbounds %struct.S, %struct.S* %s, i64 %add.ptr.sum
+ %add.ptr1 = getelementptr inbounds %struct.S, ptr %s, i64 %add.ptr.sum
%cmp1 = icmp eq i64 %add.ptr.sum, 0
br i1 %cmp1, label %while.end, label %while.body.preheader
@@ -692,13 +692,12 @@ while.body.preheader: ; preds = %entry
br label %while.body
while.body: ; preds = %while.body.preheader, %while.body
- %i.02 = phi %struct.S* [ %incdec.ptr, %while.body ], [ %s, %while.body.preheader ]
- %0 = getelementptr inbounds %struct.S, %struct.S* %i.02, i64 1, i32 0
- %1 = load i32, i32* %0, align 4
- %2 = getelementptr inbounds %struct.S, %struct.S* %i.02, i64 0, i32 0
- store i32 %1, i32* %2, align 4
- %incdec.ptr = getelementptr inbounds %struct.S, %struct.S* %i.02, i64 1
- %cmp = icmp eq %struct.S* %incdec.ptr, %add.ptr1
+ %i.02 = phi ptr [ %incdec.ptr, %while.body ], [ %s, %while.body.preheader ]
+ %0 = getelementptr inbounds %struct.S, ptr %i.02, i64 1, i32 0
+ %1 = load i32, ptr %0, align 4
+ store i32 %1, ptr %i.02, align 4
+ %incdec.ptr = getelementptr inbounds %struct.S, ptr %i.02, i64 1
+ %cmp = icmp eq ptr %incdec.ptr, %add.ptr1
br i1 %cmp, label %while.end.loopexit, label %while.body
while.end.loopexit: ; preds = %while.body
@@ -708,4 +707,4 @@ while.end: ; preds = %while.end.loopexit,
ret void
}
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i1) nounwind
+declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture, i64, i1) nounwind
diff --git a/llvm/test/Analysis/DependenceAnalysis/PreliminaryNoValidityCheckFixedSize.ll b/llvm/test/Analysis/DependenceAnalysis/PreliminaryNoValidityCheckFixedSize.ll
index d91d3a5d384fd..b4660d5b1d546 100644
--- a/llvm/test/Analysis/DependenceAnalysis/PreliminaryNoValidityCheckFixedSize.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/PreliminaryNoValidityCheckFixedSize.ll
@@ -14,7 +14,7 @@ target triple = "x86_64-apple-macosx10.6.0"
;; for (long int k = 0; k < n; k++) {
;; *B++ = A[i + 3][j + 2][k + 1];
-define void @p2(i64 %n, [100 x [100 x i64]]* %A, i64* %B) nounwind uwtable ssp {
+define void @p2(i64 %n, ptr %A, ptr %B) nounwind uwtable ssp {
entry:
%cmp10 = icmp sgt i64 %n, 0
br i1 %cmp10, label %for.cond1.preheader.preheader, label %for.end26
@@ -39,7 +39,7 @@ for.cond1.preheader.preheader: ; preds = %entry
br label %for.cond1.preheader
for.cond1.preheader: ; preds = %for.cond1.preheader.preheader, %for.inc24
- %B.addr.012 = phi i64* [ %B.addr.1.lcssa, %for.inc24 ], [ %B, %for.cond1.preheader.preheader ]
+ %B.addr.012 = phi ptr [ %B.addr.1.lcssa, %for.inc24 ], [ %B, %for.cond1.preheader.preheader ]
%i.011 = phi i64 [ %inc25, %for.inc24 ], [ 0, %for.cond1.preheader.preheader ]
%cmp26 = icmp sgt i64 %n, 0
br i1 %cmp26, label %for.cond4.preheader.preheader, label %for.inc24
@@ -48,7 +48,7 @@ for.cond4.preheader.preheader: ; preds = %for.cond1.preheader
br label %for.cond4.preheader
for.cond4.preheader: ; preds = %for.cond4.preheader.preheader, %for.inc21
- %B.addr.18 = phi i64* [ %B.addr.2.lcssa, %for.inc21 ], [ %B.addr.012, %for.cond4.preheader.preheader ]
+ %B.addr.18 = phi ptr [ %B.addr.2.lcssa, %for.inc21 ], [ %B.addr.012, %for.cond4.preheader.preheader ]
%j.07 = phi i64 [ %inc22, %for.inc21 ], [ 0, %for.cond4.preheader.preheader ]
%cmp51 = icmp sgt i64 %n, 0
br i1 %cmp51, label %for.body6.preheader, label %for.cond10.loopexit
@@ -58,8 +58,8 @@ for.body6.preheader: ; preds = %for.cond4.preheader
for.body6: ; preds = %for.body6.preheader, %for.body6
%k.02 = phi i64 [ %inc, %for.body6 ], [ 0, %for.body6.preheader ]
- %arrayidx8 = getelementptr inbounds [100 x [100 x i64]], [100 x [100 x i64]]* %A, i64 %i.011, i64 %j.07, i64 %k.02
- store i64 %i.011, i64* %arrayidx8, align 8
+ %arrayidx8 = getelementptr inbounds [100 x [100 x i64]], ptr %A, i64 %i.011, i64 %j.07, i64 %k.02
+ store i64 %i.011, ptr %arrayidx8, align 8
%inc = add nsw i64 %k.02, 1
%exitcond13 = icmp ne i64 %inc, %n
br i1 %exitcond13, label %for.body6, label %for.cond10.loopexit.loopexit
@@ -76,34 +76,34 @@ for.body12.preheader: ; preds = %for.cond10.loopexit
for.body12: ; preds = %for.body12.preheader, %for.body12
%k9.05 = phi i64 [ %inc19, %for.body12 ], [ 0, %for.body12.preheader ]
- %B.addr.24 = phi i64* [ %incdec.ptr, %for.body12 ], [ %B.addr.18, %for.body12.preheader ]
+ %B.addr.24 = phi ptr [ %incdec.ptr, %for.body12 ], [ %B.addr.18, %for.body12.preheader ]
%add = add nsw i64 %k9.05, 1
%add13 = add nsw i64 %j.07, 2
%add14 = add nsw i64 %i.011, 3
- %arrayidx17 = getelementptr inbounds [100 x [100 x i64]], [100 x [100 x i64]]* %A, i64 %add14, i64 %add13, i64 %add
- %0 = load i64, i64* %arrayidx17, align 8
- %incdec.ptr = getelementptr inbounds i64, i64* %B.addr.24, i64 1
- store i64 %0, i64* %B.addr.24, align 8
+ %arrayidx17 = getelementptr inbounds [100 x [100 x i64]], ptr %A, i64 %add14, i64 %add13, i64 %add
+ %0 = load i64, ptr %arrayidx17, align 8
+ %incdec.ptr = getelementptr inbounds i64, ptr %B.addr.24, i64 1
+ store i64 %0, ptr %B.addr.24, align 8
%inc19 = add nsw i64 %k9.05, 1
%exitcond = icmp ne i64 %inc19, %n
br i1 %exitcond, label %for.body12, label %for.inc21.loopexit
for.inc21.loopexit: ; preds = %for.body12
- %scevgep = getelementptr i64, i64* %B.addr.18, i64 %n
+ %scevgep = getelementptr i64, ptr %B.addr.18, i64 %n
br label %for.inc21
for.inc21: ; preds = %for.inc21.loopexit, %for.cond10.loopexit
- %B.addr.2.lcssa = phi i64* [ %B.addr.18, %for.cond10.loopexit ], [ %scevgep, %for.inc21.loopexit ]
+ %B.addr.2.lcssa = phi ptr [ %B.addr.18, %for.cond10.loopexit ], [ %scevgep, %for.inc21.loopexit ]
%inc22 = add nsw i64 %j.07, 1
%exitcond14 = icmp ne i64 %inc22, %n
br i1 %exitcond14, label %for.cond4.preheader, label %for.inc24.loopexit
for.inc24.loopexit: ; preds = %for.inc21
- %B.addr.2.lcssa.lcssa = phi i64* [ %B.addr.2.lcssa, %for.inc21 ]
+ %B.addr.2.lcssa.lcssa = phi ptr [ %B.addr.2.lcssa, %for.inc21 ]
br label %for.inc24
for.inc24: ; preds = %for.inc24.loopexit, %for.cond1.preheader
- %B.addr.1.lcssa = phi i64* [ %B.addr.012, %for.cond1.preheader ], [ %B.addr.2.lcssa.lcssa, %for.inc24.loopexit ]
+ %B.addr.1.lcssa = phi ptr [ %B.addr.012, %for.cond1.preheader ], [ %B.addr.2.lcssa.lcssa, %for.inc24.loopexit ]
%inc25 = add nsw i64 %i.011, 1
%exitcond15 = icmp ne i64 %inc25, %n
br i1 %exitcond15, label %for.cond1.preheader, label %for.end26.loopexit
diff --git a/llvm/test/Analysis/DependenceAnalysis/Propagating.ll b/llvm/test/Analysis/DependenceAnalysis/Propagating.ll
index 89e9810ff66f5..6ceffc6cad40b 100644
--- a/llvm/test/Analysis/DependenceAnalysis/Propagating.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/Propagating.ll
@@ -10,7 +10,7 @@ target triple = "x86_64-apple-macosx10.6.0"
;; A[i + 1][i + j] = i;
;; *B++ = A[i][i + j];
-define void @prop0([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @prop0(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -23,29 +23,29 @@ entry:
; CHECK: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc9
- %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc9 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc9 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc10, %for.inc9 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i32* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%conv = trunc i64 %i.03 to i32
%add = add nsw i64 %i.03, %j.02
%add4 = add nsw i64 %i.03, 1
- %arrayidx5 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %add4, i64 %add
- store i32 %conv, i32* %arrayidx5, align 4
+ %arrayidx5 = getelementptr inbounds [100 x i32], ptr %A, i64 %add4, i64 %add
+ store i32 %conv, ptr %arrayidx5, align 4
%add6 = add nsw i64 %i.03, %j.02
- %arrayidx8 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.03, i64 %add6
- %0 = load i32, i32* %arrayidx8, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
- store i32 %0, i32* %B.addr.11, align 4
+ %arrayidx8 = getelementptr inbounds [100 x i32], ptr %A, i64 %i.03, i64 %add6
+ %0 = load i32, ptr %arrayidx8, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.11, i64 1
+ store i32 %0, ptr %B.addr.11, align 4
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 100
br i1 %exitcond, label %for.body3, label %for.inc9
for.inc9: ; preds = %for.body3
- %scevgep = getelementptr i32, i32* %B.addr.04, i64 100
+ %scevgep = getelementptr i32, ptr %B.addr.04, i64 100
%inc10 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc10, 100
br i1 %exitcond5, label %for.cond1.preheader, label %for.end11
@@ -61,7 +61,7 @@ for.end11: ; preds = %for.inc9
;; A[j - i][i + 1][j + k] = i;
;; *B++ = A[j - i][i][j + k];
-define void @prop1([100 x [100 x i32]]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @prop1(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -74,42 +74,42 @@ entry:
; CHECK: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc18
- %B.addr.06 = phi i32* [ %B, %entry ], [ %scevgep7, %for.inc18 ]
+ %B.addr.06 = phi ptr [ %B, %entry ], [ %scevgep7, %for.inc18 ]
%i.05 = phi i64 [ 0, %entry ], [ %inc19, %for.inc18 ]
br label %for.cond4.preheader
for.cond4.preheader: ; preds = %for.cond1.preheader, %for.inc15
- %B.addr.14 = phi i32* [ %B.addr.06, %for.cond1.preheader ], [ %scevgep, %for.inc15 ]
+ %B.addr.14 = phi ptr [ %B.addr.06, %for.cond1.preheader ], [ %scevgep, %for.inc15 ]
%j.03 = phi i64 [ 0, %for.cond1.preheader ], [ %inc16, %for.inc15 ]
br label %for.body6
for.body6: ; preds = %for.cond4.preheader, %for.body6
%k.02 = phi i64 [ 0, %for.cond4.preheader ], [ %inc, %for.body6 ]
- %B.addr.21 = phi i32* [ %B.addr.14, %for.cond4.preheader ], [ %incdec.ptr, %for.body6 ]
+ %B.addr.21 = phi ptr [ %B.addr.14, %for.cond4.preheader ], [ %incdec.ptr, %for.body6 ]
%conv = trunc i64 %i.05 to i32
%add = add nsw i64 %j.03, %k.02
%add7 = add nsw i64 %i.05, 1
%sub = sub nsw i64 %j.03, %i.05
- %arrayidx9 = getelementptr inbounds [100 x [100 x i32]], [100 x [100 x i32]]* %A, i64 %sub, i64 %add7, i64 %add
- store i32 %conv, i32* %arrayidx9, align 4
+ %arrayidx9 = getelementptr inbounds [100 x [100 x i32]], ptr %A, i64 %sub, i64 %add7, i64 %add
+ store i32 %conv, ptr %arrayidx9, align 4
%add10 = add nsw i64 %j.03, %k.02
%sub11 = sub nsw i64 %j.03, %i.05
- %arrayidx14 = getelementptr inbounds [100 x [100 x i32]], [100 x [100 x i32]]* %A, i64 %sub11, i64 %i.05, i64 %add10
- %0 = load i32, i32* %arrayidx14, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.21, i64 1
- store i32 %0, i32* %B.addr.21, align 4
+ %arrayidx14 = getelementptr inbounds [100 x [100 x i32]], ptr %A, i64 %sub11, i64 %i.05, i64 %add10
+ %0 = load i32, ptr %arrayidx14, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.21, i64 1
+ store i32 %0, ptr %B.addr.21, align 4
%inc = add nsw i64 %k.02, 1
%exitcond = icmp ne i64 %inc, 100
br i1 %exitcond, label %for.body6, label %for.inc15
for.inc15: ; preds = %for.body6
- %scevgep = getelementptr i32, i32* %B.addr.14, i64 100
+ %scevgep = getelementptr i32, ptr %B.addr.14, i64 100
%inc16 = add nsw i64 %j.03, 1
%exitcond8 = icmp ne i64 %inc16, 100
br i1 %exitcond8, label %for.cond4.preheader, label %for.inc18
for.inc18: ; preds = %for.inc15
- %scevgep7 = getelementptr i32, i32* %B.addr.06, i64 10000
+ %scevgep7 = getelementptr i32, ptr %B.addr.06, i64 10000
%inc19 = add nsw i64 %i.05, 1
%exitcond9 = icmp ne i64 %inc19, 100
br i1 %exitcond9, label %for.cond1.preheader, label %for.end20
@@ -120,11 +120,12 @@ for.end20: ; preds = %for.inc18
;; for (long int i = 0; i < 100; i++)
+;; for (long int j = 0; j ptr]!
;; for (long int j = 0; j < 100; j++) {
;; A[i - 1][2*i] = i;
;; *B++ = A[i][i + j + 110];
-define void @prop2([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @prop2(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -137,30 +138,30 @@ entry:
; CHECK: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc8
- %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc8 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc8 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc9, %for.inc8 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i32* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%conv = trunc i64 %i.03 to i32
%mul = shl nsw i64 %i.03, 1
%sub = add nsw i64 %i.03, -1
- %arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub, i64 %mul
- store i32 %conv, i32* %arrayidx4, align 4
+ %arrayidx4 = getelementptr inbounds [100 x i32], ptr %A, i64 %sub, i64 %mul
+ store i32 %conv, ptr %arrayidx4, align 4
%add = add nsw i64 %i.03, %j.02
%add5 = add nsw i64 %add, 110
- %arrayidx7 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.03, i64 %add5
- %0 = load i32, i32* %arrayidx7, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
- store i32 %0, i32* %B.addr.11, align 4
+ %arrayidx7 = getelementptr inbounds [100 x i32], ptr %A, i64 %i.03, i64 %add5
+ %0 = load i32, ptr %arrayidx7, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.11, i64 1
+ store i32 %0, ptr %B.addr.11, align 4
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 100
br i1 %exitcond, label %for.body3, label %for.inc8
for.inc8: ; preds = %for.body3
- %scevgep = getelementptr i32, i32* %B.addr.04, i64 100
+ %scevgep = getelementptr i32, ptr %B.addr.04, i64 100
%inc9 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc9, 100
br i1 %exitcond5, label %for.cond1.preheader, label %for.end10
@@ -175,7 +176,7 @@ for.end10: ; preds = %for.inc8
;; A[i][2*j + i] = i;
;; *B++ = A[i][2*j - i + 5];
-define void @prop3([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @prop3(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -188,31 +189,31 @@ entry:
; CHECK: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc9
- %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc9 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc9 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc10, %for.inc9 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i32* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%conv = trunc i64 %i.03 to i32
%mul = shl nsw i64 %j.02, 1
%add = add nsw i64 %mul, %i.03
- %arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.03, i64 %add
- store i32 %conv, i32* %arrayidx4, align 4
+ %arrayidx4 = getelementptr inbounds [100 x i32], ptr %A, i64 %i.03, i64 %add
+ store i32 %conv, ptr %arrayidx4, align 4
%mul5 = shl nsw i64 %j.02, 1
%sub = sub nsw i64 %mul5, %i.03
%add6 = add nsw i64 %sub, 5
- %arrayidx8 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.03, i64 %add6
- %0 = load i32, i32* %arrayidx8, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
- store i32 %0, i32* %B.addr.11, align 4
+ %arrayidx8 = getelementptr inbounds [100 x i32], ptr %A, i64 %i.03, i64 %add6
+ %0 = load i32, ptr %arrayidx8, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.11, i64 1
+ store i32 %0, ptr %B.addr.11, align 4
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 100
br i1 %exitcond, label %for.body3, label %for.inc9
for.inc9: ; preds = %for.body3
- %scevgep = getelementptr i32, i32* %B.addr.04, i64 100
+ %scevgep = getelementptr i32, ptr %B.addr.04, i64 100
%inc10 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc10, 100
br i1 %exitcond5, label %for.cond1.preheader, label %for.end11
@@ -227,7 +228,7 @@ for.end11: ; preds = %for.inc9
;; A[i + 2][2*i + j + 1] = i;
;; *B++ = A[i][2*i + j];
-define void @prop4([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @prop4(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -240,32 +241,32 @@ entry:
; CHECK: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc11
- %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc11 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc11 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc12, %for.inc11 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i32* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%conv = trunc i64 %i.03 to i32
%mul = shl nsw i64 %i.03, 1
%add = add nsw i64 %mul, %j.02
%add4 = add nsw i64 %add, 1
%add5 = add nsw i64 %i.03, 2
- %arrayidx6 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %add5, i64 %add4
- store i32 %conv, i32* %arrayidx6, align 4
+ %arrayidx6 = getelementptr inbounds [100 x i32], ptr %A, i64 %add5, i64 %add4
+ store i32 %conv, ptr %arrayidx6, align 4
%mul7 = shl nsw i64 %i.03, 1
%add8 = add nsw i64 %mul7, %j.02
- %arrayidx10 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.03, i64 %add8
- %0 = load i32, i32* %arrayidx10, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
- store i32 %0, i32* %B.addr.11, align 4
+ %arrayidx10 = getelementptr inbounds [100 x i32], ptr %A, i64 %i.03, i64 %add8
+ %0 = load i32, ptr %arrayidx10, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.11, i64 1
+ store i32 %0, ptr %B.addr.11, align 4
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 100
br i1 %exitcond, label %for.body3, label %for.inc11
for.inc11: ; preds = %for.body3
- %scevgep = getelementptr i32, i32* %B.addr.04, i64 100
+ %scevgep = getelementptr i32, ptr %B.addr.04, i64 100
%inc12 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc12, 100
br i1 %exitcond5, label %for.cond1.preheader, label %for.end13
@@ -280,7 +281,7 @@ for.end13: ; preds = %for.inc11
;; A[3*i - 18][22 - i][2*i + j] = i;
;; *B++ = A[i][i][3*i + j];
-define void @prop5([100 x [100 x i32]]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @prop5(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -293,33 +294,33 @@ entry:
; CHECK: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc13
- %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc13 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc13 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc14, %for.inc13 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i32* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%conv = trunc i64 %i.03 to i32
%mul = shl nsw i64 %i.03, 1
%add = add nsw i64 %mul, %j.02
%sub = sub nsw i64 22, %i.03
%mul4 = mul nsw i64 %i.03, 3
%sub5 = add nsw i64 %mul4, -18
- %arrayidx7 = getelementptr inbounds [100 x [100 x i32]], [100 x [100 x i32]]* %A, i64 %sub5, i64 %sub, i64 %add
- store i32 %conv, i32* %arrayidx7, align 4
+ %arrayidx7 = getelementptr inbounds [100 x [100 x i32]], ptr %A, i64 %sub5, i64 %sub, i64 %add
+ store i32 %conv, ptr %arrayidx7, align 4
%mul8 = mul nsw i64 %i.03, 3
%add9 = add nsw i64 %mul8, %j.02
- %arrayidx12 = getelementptr inbounds [100 x [100 x i32]], [100 x [100 x i32]]* %A, i64 %i.03, i64 %i.03, i64 %add9
- %0 = load i32, i32* %arrayidx12, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
- store i32 %0, i32* %B.addr.11, align 4
+ %arrayidx12 = getelementptr inbounds [100 x [100 x i32]], ptr %A, i64 %i.03, i64 %i.03, i64 %add9
+ %0 = load i32, ptr %arrayidx12, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.11, i64 1
+ store i32 %0, ptr %B.addr.11, align 4
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 100
br i1 %exitcond, label %for.body3, label %for.inc13
for.inc13: ; preds = %for.body3
- %scevgep = getelementptr i32, i32* %B.addr.04, i64 100
+ %scevgep = getelementptr i32, ptr %B.addr.04, i64 100
%inc14 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc14, 100
br i1 %exitcond5, label %for.cond1.preheader, label %for.end15
@@ -334,7 +335,7 @@ for.end15: ; preds = %for.inc13
;; A[i + 1][4*i + j + 2] = i;
;; *B++ = A[2*i][8*i + j];
-define void @prop6([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @prop6(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -347,33 +348,33 @@ entry:
; CHECK: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc12
- %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc12 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc12 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc13, %for.inc12 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i32* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%conv = trunc i64 %i.03 to i32
%mul = shl nsw i64 %i.03, 2
%add = add nsw i64 %mul, %j.02
%add4 = add nsw i64 %add, 2
%add5 = add nsw i64 %i.03, 1
- %arrayidx6 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %add5, i64 %add4
- store i32 %conv, i32* %arrayidx6, align 4
+ %arrayidx6 = getelementptr inbounds [100 x i32], ptr %A, i64 %add5, i64 %add4
+ store i32 %conv, ptr %arrayidx6, align 4
%mul7 = shl nsw i64 %i.03, 3
%add8 = add nsw i64 %mul7, %j.02
%mul9 = shl nsw i64 %i.03, 1
- %arrayidx11 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %mul9, i64 %add8
- %0 = load i32, i32* %arrayidx11, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
- store i32 %0, i32* %B.addr.11, align 4
+ %arrayidx11 = getelementptr inbounds [100 x i32], ptr %A, i64 %mul9, i64 %add8
+ %0 = load i32, ptr %arrayidx11, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.11, i64 1
+ store i32 %0, ptr %B.addr.11, align 4
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 100
br i1 %exitcond, label %for.body3, label %for.inc12
for.inc12: ; preds = %for.body3
- %scevgep = getelementptr i32, i32* %B.addr.04, i64 100
+ %scevgep = getelementptr i32, ptr %B.addr.04, i64 100
%inc13 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc13, 100
br i1 %exitcond5, label %for.cond1.preheader, label %for.end14
@@ -388,7 +389,7 @@ for.end14: ; preds = %for.inc12
;; A[2*i + 4][-5*i + j + 2] = i;
;; *B++ = A[-2*i + 20][5*i + j];
-define void @prop7([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @prop7(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -401,35 +402,35 @@ entry:
; CHECK: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc14
- %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc14 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc14 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc15, %for.inc14 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i32* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%conv = trunc i64 %i.03 to i32
%mul = mul nsw i64 %i.03, -5
%add = add nsw i64 %mul, %j.02
%add4 = add nsw i64 %add, 2
%mul5 = shl nsw i64 %i.03, 1
%add6 = add nsw i64 %mul5, 4
- %arrayidx7 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %add6, i64 %add4
- store i32 %conv, i32* %arrayidx7, align 4
+ %arrayidx7 = getelementptr inbounds [100 x i32], ptr %A, i64 %add6, i64 %add4
+ store i32 %conv, ptr %arrayidx7, align 4
%mul8 = mul nsw i64 %i.03, 5
%add9 = add nsw i64 %mul8, %j.02
%mul10 = mul nsw i64 %i.03, -2
%add11 = add nsw i64 %mul10, 20
- %arrayidx13 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %add11, i64 %add9
- %0 = load i32, i32* %arrayidx13, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
- store i32 %0, i32* %B.addr.11, align 4
+ %arrayidx13 = getelementptr inbounds [100 x i32], ptr %A, i64 %add11, i64 %add9
+ %0 = load i32, ptr %arrayidx13, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.11, i64 1
+ store i32 %0, ptr %B.addr.11, align 4
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 100
br i1 %exitcond, label %for.body3, label %for.inc14
for.inc14: ; preds = %for.body3
- %scevgep = getelementptr i32, i32* %B.addr.04, i64 100
+ %scevgep = getelementptr i32, ptr %B.addr.04, i64 100
%inc15 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc15, 100
br i1 %exitcond5, label %for.cond1.preheader, label %for.end16
@@ -444,7 +445,7 @@ for.end16: ; preds = %for.inc14
;; A[4][j + 2] = i;
;; *B++ = A[-2*i + 4][5*i + j];
-define void @prop8([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @prop8(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -457,31 +458,31 @@ entry:
; CHECK: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc10
- %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc10 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc10 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc11, %for.inc10 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i32* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%conv = trunc i64 %i.03 to i32
%add = add nsw i64 %j.02, 2
- %arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 4, i64 %add
- store i32 %conv, i32* %arrayidx4, align 4
+ %arrayidx4 = getelementptr inbounds [100 x i32], ptr %A, i64 4, i64 %add
+ store i32 %conv, ptr %arrayidx4, align 4
%mul = mul nsw i64 %i.03, 5
%add5 = add nsw i64 %mul, %j.02
%mul6 = mul nsw i64 %i.03, -2
%add7 = add nsw i64 %mul6, 4
- %arrayidx9 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %add7, i64 %add5
- %0 = load i32, i32* %arrayidx9, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
- store i32 %0, i32* %B.addr.11, align 4
+ %arrayidx9 = getelementptr inbounds [100 x i32], ptr %A, i64 %add7, i64 %add5
+ %0 = load i32, ptr %arrayidx9, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.11, i64 1
+ store i32 %0, ptr %B.addr.11, align 4
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 100
br i1 %exitcond, label %for.body3, label %for.inc10
for.inc10: ; preds = %for.body3
- %scevgep = getelementptr i32, i32* %B.addr.04, i64 100
+ %scevgep = getelementptr i32, ptr %B.addr.04, i64 100
%inc11 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc11, 100
br i1 %exitcond5, label %for.cond1.preheader, label %for.end12
@@ -496,7 +497,7 @@ for.end12: ; preds = %for.inc10
;; A[2*i + 4][5*i + j + 2] = i;
;; *B++ = A[4][j];
-define void @prop9([100 x i32]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @prop9(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -509,31 +510,31 @@ entry:
; CHECK: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc10
- %B.addr.04 = phi i32* [ %B, %entry ], [ %scevgep, %for.inc10 ]
+ %B.addr.04 = phi ptr [ %B, %entry ], [ %scevgep, %for.inc10 ]
%i.03 = phi i64 [ 0, %entry ], [ %inc11, %for.inc10 ]
br label %for.body3
for.body3: ; preds = %for.cond1.preheader, %for.body3
%j.02 = phi i64 [ 0, %for.cond1.preheader ], [ %inc, %for.body3 ]
- %B.addr.11 = phi i32* [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
+ %B.addr.11 = phi ptr [ %B.addr.04, %for.cond1.preheader ], [ %incdec.ptr, %for.body3 ]
%conv = trunc i64 %i.03 to i32
%mul = mul nsw i64 %i.03, 5
%add = add nsw i64 %mul, %j.02
%add4 = add nsw i64 %add, 2
%mul5 = shl nsw i64 %i.03, 1
%add6 = add nsw i64 %mul5, 4
- %arrayidx7 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %add6, i64 %add4
- store i32 %conv, i32* %arrayidx7, align 4
- %arrayidx9 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 4, i64 %j.02
- %0 = load i32, i32* %arrayidx9, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
- store i32 %0, i32* %B.addr.11, align 4
+ %arrayidx7 = getelementptr inbounds [100 x i32], ptr %A, i64 %add6, i64 %add4
+ store i32 %conv, ptr %arrayidx7, align 4
+ %arrayidx9 = getelementptr inbounds [100 x i32], ptr %A, i64 4, i64 %j.02
+ %0 = load i32, ptr %arrayidx9, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.11, i64 1
+ store i32 %0, ptr %B.addr.11, align 4
%inc = add nsw i64 %j.02, 1
%exitcond = icmp ne i64 %inc, 100
br i1 %exitcond, label %for.body3, label %for.inc10
for.inc10: ; preds = %for.body3
- %scevgep = getelementptr i32, i32* %B.addr.04, i64 100
+ %scevgep = getelementptr i32, ptr %B.addr.04, i64 100
%inc11 = add nsw i64 %i.03, 1
%exitcond5 = icmp ne i64 %inc11, 100
br i1 %exitcond5, label %for.cond1.preheader, label %for.end12
diff --git a/llvm/test/Analysis/DependenceAnalysis/Separability.ll b/llvm/test/Analysis/DependenceAnalysis/Separability.ll
index 577012cdd0e04..14334d84576c8 100644
--- a/llvm/test/Analysis/DependenceAnalysis/Separability.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/Separability.ll
@@ -12,7 +12,7 @@ target triple = "x86_64-apple-macosx10.6.0"
;; A[n][i][j + k] = i;
;; *B++ = A[10][i + 10][2*j - l];
-define void @sep0([100 x [100 x i32]]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @sep0(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -24,53 +24,53 @@ entry:
; CHECK: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc22
- %B.addr.08 = phi i32* [ %B, %entry ], [ %scevgep11, %for.inc22 ]
+ %B.addr.08 = phi ptr [ %B, %entry ], [ %scevgep11, %for.inc22 ]
%i.07 = phi i64 [ 0, %entry ], [ %inc23, %for.inc22 ]
br label %for.cond4.preheader
for.cond4.preheader: ; preds = %for.cond1.preheader, %for.inc19
- %B.addr.16 = phi i32* [ %B.addr.08, %for.cond1.preheader ], [ %scevgep9, %for.inc19 ]
+ %B.addr.16 = phi ptr [ %B.addr.08, %for.cond1.preheader ], [ %scevgep9, %for.inc19 ]
%j.05 = phi i64 [ 0, %for.cond1.preheader ], [ %inc20, %for.inc19 ]
br label %for.cond7.preheader
for.cond7.preheader: ; preds = %for.cond4.preheader, %for.inc16
- %B.addr.24 = phi i32* [ %B.addr.16, %for.cond4.preheader ], [ %scevgep, %for.inc16 ]
+ %B.addr.24 = phi ptr [ %B.addr.16, %for.cond4.preheader ], [ %scevgep, %for.inc16 ]
%k.03 = phi i64 [ 0, %for.cond4.preheader ], [ %inc17, %for.inc16 ]
br label %for.body9
for.body9: ; preds = %for.cond7.preheader, %for.body9
%l.02 = phi i64 [ 0, %for.cond7.preheader ], [ %inc, %for.body9 ]
- %B.addr.31 = phi i32* [ %B.addr.24, %for.cond7.preheader ], [ %incdec.ptr, %for.body9 ]
+ %B.addr.31 = phi ptr [ %B.addr.24, %for.cond7.preheader ], [ %incdec.ptr, %for.body9 ]
%conv = trunc i64 %i.07 to i32
%add = add nsw i64 %j.05, %k.03
%idxprom = sext i32 %n to i64
- %arrayidx11 = getelementptr inbounds [100 x [100 x i32]], [100 x [100 x i32]]* %A, i64 %idxprom, i64 %i.07, i64 %add
- store i32 %conv, i32* %arrayidx11, align 4
+ %arrayidx11 = getelementptr inbounds [100 x [100 x i32]], ptr %A, i64 %idxprom, i64 %i.07, i64 %add
+ store i32 %conv, ptr %arrayidx11, align 4
%mul = shl nsw i64 %j.05, 1
%sub = sub nsw i64 %mul, %l.02
%add12 = add nsw i64 %i.07, 10
- %arrayidx15 = getelementptr inbounds [100 x [100 x i32]], [100 x [100 x i32]]* %A, i64 10, i64 %add12, i64 %sub
- %0 = load i32, i32* %arrayidx15, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.31, i64 1
- store i32 %0, i32* %B.addr.31, align 4
+ %arrayidx15 = getelementptr inbounds [100 x [100 x i32]], ptr %A, i64 10, i64 %add12, i64 %sub
+ %0 = load i32, ptr %arrayidx15, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.31, i64 1
+ store i32 %0, ptr %B.addr.31, align 4
%inc = add nsw i64 %l.02, 1
%exitcond = icmp ne i64 %inc, 50
br i1 %exitcond, label %for.body9, label %for.inc16
for.inc16: ; preds = %for.body9
- %scevgep = getelementptr i32, i32* %B.addr.24, i64 50
+ %scevgep = getelementptr i32, ptr %B.addr.24, i64 50
%inc17 = add nsw i64 %k.03, 1
%exitcond10 = icmp ne i64 %inc17, 50
br i1 %exitcond10, label %for.cond7.preheader, label %for.inc19
for.inc19: ; preds = %for.inc16
- %scevgep9 = getelementptr i32, i32* %B.addr.16, i64 2500
+ %scevgep9 = getelementptr i32, ptr %B.addr.16, i64 2500
%inc20 = add nsw i64 %j.05, 1
%exitcond12 = icmp ne i64 %inc20, 50
br i1 %exitcond12, label %for.cond4.preheader, label %for.inc22
for.inc22: ; preds = %for.inc19
- %scevgep11 = getelementptr i32, i32* %B.addr.08, i64 125000
+ %scevgep11 = getelementptr i32, ptr %B.addr.08, i64 125000
%inc23 = add nsw i64 %i.07, 1
%exitcond13 = icmp ne i64 %inc23, 50
br i1 %exitcond13, label %for.cond1.preheader, label %for.end24
@@ -87,7 +87,7 @@ for.end24: ; preds = %for.inc22
;; A[i][i][j + k] = i;
;; *B++ = A[10][i + 10][2*j - l];
-define void @sep1([100 x [100 x i32]]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @sep1(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -99,52 +99,52 @@ entry:
; CHECK: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc22
- %B.addr.08 = phi i32* [ %B, %entry ], [ %scevgep11, %for.inc22 ]
+ %B.addr.08 = phi ptr [ %B, %entry ], [ %scevgep11, %for.inc22 ]
%i.07 = phi i64 [ 0, %entry ], [ %inc23, %for.inc22 ]
br label %for.cond4.preheader
for.cond4.preheader: ; preds = %for.cond1.preheader, %for.inc19
- %B.addr.16 = phi i32* [ %B.addr.08, %for.cond1.preheader ], [ %scevgep9, %for.inc19 ]
+ %B.addr.16 = phi ptr [ %B.addr.08, %for.cond1.preheader ], [ %scevgep9, %for.inc19 ]
%j.05 = phi i64 [ 0, %for.cond1.preheader ], [ %inc20, %for.inc19 ]
br label %for.cond7.preheader
for.cond7.preheader: ; preds = %for.cond4.preheader, %for.inc16
- %B.addr.24 = phi i32* [ %B.addr.16, %for.cond4.preheader ], [ %scevgep, %for.inc16 ]
+ %B.addr.24 = phi ptr [ %B.addr.16, %for.cond4.preheader ], [ %scevgep, %for.inc16 ]
%k.03 = phi i64 [ 0, %for.cond4.preheader ], [ %inc17, %for.inc16 ]
br label %for.body9
for.body9: ; preds = %for.cond7.preheader, %for.body9
%l.02 = phi i64 [ 0, %for.cond7.preheader ], [ %inc, %for.body9 ]
- %B.addr.31 = phi i32* [ %B.addr.24, %for.cond7.preheader ], [ %incdec.ptr, %for.body9 ]
+ %B.addr.31 = phi ptr [ %B.addr.24, %for.cond7.preheader ], [ %incdec.ptr, %for.body9 ]
%conv = trunc i64 %i.07 to i32
%add = add nsw i64 %j.05, %k.03
- %arrayidx11 = getelementptr inbounds [100 x [100 x i32]], [100 x [100 x i32]]* %A, i64 %i.07, i64 %i.07, i64 %add
- store i32 %conv, i32* %arrayidx11, align 4
+ %arrayidx11 = getelementptr inbounds [100 x [100 x i32]], ptr %A, i64 %i.07, i64 %i.07, i64 %add
+ store i32 %conv, ptr %arrayidx11, align 4
%mul = shl nsw i64 %j.05, 1
%sub = sub nsw i64 %mul, %l.02
%add12 = add nsw i64 %i.07, 10
- %arrayidx15 = getelementptr inbounds [100 x [100 x i32]], [100 x [100 x i32]]* %A, i64 10, i64 %add12, i64 %sub
- %0 = load i32, i32* %arrayidx15, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.31, i64 1
- store i32 %0, i32* %B.addr.31, align 4
+ %arrayidx15 = getelementptr inbounds [100 x [100 x i32]], ptr %A, i64 10, i64 %add12, i64 %sub
+ %0 = load i32, ptr %arrayidx15, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.31, i64 1
+ store i32 %0, ptr %B.addr.31, align 4
%inc = add nsw i64 %l.02, 1
%exitcond = icmp ne i64 %inc, 50
br i1 %exitcond, label %for.body9, label %for.inc16
for.inc16: ; preds = %for.body9
- %scevgep = getelementptr i32, i32* %B.addr.24, i64 50
+ %scevgep = getelementptr i32, ptr %B.addr.24, i64 50
%inc17 = add nsw i64 %k.03, 1
%exitcond10 = icmp ne i64 %inc17, 50
br i1 %exitcond10, label %for.cond7.preheader, label %for.inc19
for.inc19: ; preds = %for.inc16
- %scevgep9 = getelementptr i32, i32* %B.addr.16, i64 2500
+ %scevgep9 = getelementptr i32, ptr %B.addr.16, i64 2500
%inc20 = add nsw i64 %j.05, 1
%exitcond12 = icmp ne i64 %inc20, 50
br i1 %exitcond12, label %for.cond4.preheader, label %for.inc22
for.inc22: ; preds = %for.inc19
- %scevgep11 = getelementptr i32, i32* %B.addr.08, i64 125000
+ %scevgep11 = getelementptr i32, ptr %B.addr.08, i64 125000
%inc23 = add nsw i64 %i.07, 1
%exitcond13 = icmp ne i64 %inc23, 50
br i1 %exitcond13, label %for.cond1.preheader, label %for.end24
@@ -157,11 +157,12 @@ for.end24: ; preds = %for.inc22
;; for (long int i = 0; i < 50; i++)
;; for (long int j = 0; j < 50; j++)
;; for (long int k = 0; k < 50; k++)
+;; for (long int l = 0; l ptr -10]!
;; for (long int l = 0; l < 50; l++) {
;; A[i][i][i + k][l] = i;
;; *B++ = A[10][i + 10][j + k][l + 10];
-define void @sep2([100 x [100 x [100 x i32]]]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @sep2(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -173,52 +174,52 @@ entry:
; CHECK: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc26
- %B.addr.08 = phi i32* [ %B, %entry ], [ %scevgep11, %for.inc26 ]
+ %B.addr.08 = phi ptr [ %B, %entry ], [ %scevgep11, %for.inc26 ]
%i.07 = phi i64 [ 0, %entry ], [ %inc27, %for.inc26 ]
br label %for.cond4.preheader
for.cond4.preheader: ; preds = %for.cond1.preheader, %for.inc23
- %B.addr.16 = phi i32* [ %B.addr.08, %for.cond1.preheader ], [ %scevgep9, %for.inc23 ]
+ %B.addr.16 = phi ptr [ %B.addr.08, %for.cond1.preheader ], [ %scevgep9, %for.inc23 ]
%j.05 = phi i64 [ 0, %for.cond1.preheader ], [ %inc24, %for.inc23 ]
br label %for.cond7.preheader
for.cond7.preheader: ; preds = %for.cond4.preheader, %for.inc20
- %B.addr.24 = phi i32* [ %B.addr.16, %for.cond4.preheader ], [ %scevgep, %for.inc20 ]
+ %B.addr.24 = phi ptr [ %B.addr.16, %for.cond4.preheader ], [ %scevgep, %for.inc20 ]
%k.03 = phi i64 [ 0, %for.cond4.preheader ], [ %inc21, %for.inc20 ]
br label %for.body9
for.body9: ; preds = %for.cond7.preheader, %for.body9
%l.02 = phi i64 [ 0, %for.cond7.preheader ], [ %inc, %for.body9 ]
- %B.addr.31 = phi i32* [ %B.addr.24, %for.cond7.preheader ], [ %incdec.ptr, %for.body9 ]
+ %B.addr.31 = phi ptr [ %B.addr.24, %for.cond7.preheader ], [ %incdec.ptr, %for.body9 ]
%conv = trunc i64 %i.07 to i32
%add = add nsw i64 %i.07, %k.03
- %arrayidx12 = getelementptr inbounds [100 x [100 x [100 x i32]]], [100 x [100 x [100 x i32]]]* %A, i64 %i.07, i64 %i.07, i64 %add, i64 %l.02
- store i32 %conv, i32* %arrayidx12, align 4
+ %arrayidx12 = getelementptr inbounds [100 x [100 x [100 x i32]]], ptr %A, i64 %i.07, i64 %i.07, i64 %add, i64 %l.02
+ store i32 %conv, ptr %arrayidx12, align 4
%add13 = add nsw i64 %l.02, 10
%add14 = add nsw i64 %j.05, %k.03
%add15 = add nsw i64 %i.07, 10
- %arrayidx19 = getelementptr inbounds [100 x [100 x [100 x i32]]], [100 x [100 x [100 x i32]]]* %A, i64 10, i64 %add15, i64 %add14, i64 %add13
- %0 = load i32, i32* %arrayidx19, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.31, i64 1
- store i32 %0, i32* %B.addr.31, align 4
+ %arrayidx19 = getelementptr inbounds [100 x [100 x [100 x i32]]], ptr %A, i64 10, i64 %add15, i64 %add14, i64 %add13
+ %0 = load i32, ptr %arrayidx19, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.31, i64 1
+ store i32 %0, ptr %B.addr.31, align 4
%inc = add nsw i64 %l.02, 1
%exitcond = icmp ne i64 %inc, 50
br i1 %exitcond, label %for.body9, label %for.inc20
for.inc20: ; preds = %for.body9
- %scevgep = getelementptr i32, i32* %B.addr.24, i64 50
+ %scevgep = getelementptr i32, ptr %B.addr.24, i64 50
%inc21 = add nsw i64 %k.03, 1
%exitcond10 = icmp ne i64 %inc21, 50
br i1 %exitcond10, label %for.cond7.preheader, label %for.inc23
for.inc23: ; preds = %for.inc20
- %scevgep9 = getelementptr i32, i32* %B.addr.16, i64 2500
+ %scevgep9 = getelementptr i32, ptr %B.addr.16, i64 2500
%inc24 = add nsw i64 %j.05, 1
%exitcond12 = icmp ne i64 %inc24, 50
br i1 %exitcond12, label %for.cond4.preheader, label %for.inc26
for.inc26: ; preds = %for.inc23
- %scevgep11 = getelementptr i32, i32* %B.addr.08, i64 125000
+ %scevgep11 = getelementptr i32, ptr %B.addr.08, i64 125000
%inc27 = add nsw i64 %i.07, 1
%exitcond13 = icmp ne i64 %inc27, 50
br i1 %exitcond13, label %for.cond1.preheader, label %for.end28
@@ -231,11 +232,12 @@ for.end28: ; preds = %for.inc26
;; for (long int i = 0; i < 50; i++)
;; for (long int j = 0; j < 50; j++)
;; for (long int k = 0; k < 50; k++)
+;; for (long int l = 0; l ptr]!
;; for (long int l = 0; l < 50; l++) {
;; A[i][i][i + k][l + k] = i;
;; *B++ = A[10][i + 10][j + k][l + 10];
-define void @sep3([100 x [100 x [100 x i32]]]* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @sep3(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
br label %for.cond1.preheader
@@ -247,53 +249,53 @@ entry:
; CHECK: da analyze - none!
for.cond1.preheader: ; preds = %entry, %for.inc27
- %B.addr.08 = phi i32* [ %B, %entry ], [ %scevgep11, %for.inc27 ]
+ %B.addr.08 = phi ptr [ %B, %entry ], [ %scevgep11, %for.inc27 ]
%i.07 = phi i64 [ 0, %entry ], [ %inc28, %for.inc27 ]
br label %for.cond4.preheader
for.cond4.preheader: ; preds = %for.cond1.preheader, %for.inc24
- %B.addr.16 = phi i32* [ %B.addr.08, %for.cond1.preheader ], [ %scevgep9, %for.inc24 ]
+ %B.addr.16 = phi ptr [ %B.addr.08, %for.cond1.preheader ], [ %scevgep9, %for.inc24 ]
%j.05 = phi i64 [ 0, %for.cond1.preheader ], [ %inc25, %for.inc24 ]
br label %for.cond7.preheader
for.cond7.preheader: ; preds = %for.cond4.preheader, %for.inc21
- %B.addr.24 = phi i32* [ %B.addr.16, %for.cond4.preheader ], [ %scevgep, %for.inc21 ]
+ %B.addr.24 = phi ptr [ %B.addr.16, %for.cond4.preheader ], [ %scevgep, %for.inc21 ]
%k.03 = phi i64 [ 0, %for.cond4.preheader ], [ %inc22, %for.inc21 ]
br label %for.body9
for.body9: ; preds = %for.cond7.preheader, %for.body9
%l.02 = phi i64 [ 0, %for.cond7.preheader ], [ %inc, %for.body9 ]
- %B.addr.31 = phi i32* [ %B.addr.24, %for.cond7.preheader ], [ %incdec.ptr, %for.body9 ]
+ %B.addr.31 = phi ptr [ %B.addr.24, %for.cond7.preheader ], [ %incdec.ptr, %for.body9 ]
%conv = trunc i64 %i.07 to i32
%add = add nsw i64 %l.02, %k.03
%add10 = add nsw i64 %i.07, %k.03
- %arrayidx13 = getelementptr inbounds [100 x [100 x [100 x i32]]], [100 x [100 x [100 x i32]]]* %A, i64 %i.07, i64 %i.07, i64 %add10, i64 %add
- store i32 %conv, i32* %arrayidx13, align 4
+ %arrayidx13 = getelementptr inbounds [100 x [100 x [100 x i32]]], ptr %A, i64 %i.07, i64 %i.07, i64 %add10, i64 %add
+ store i32 %conv, ptr %arrayidx13, align 4
%add14 = add nsw i64 %l.02, 10
%add15 = add nsw i64 %j.05, %k.03
%add16 = add nsw i64 %i.07, 10
- %arrayidx20 = getelementptr inbounds [100 x [100 x [100 x i32]]], [100 x [100 x [100 x i32]]]* %A, i64 10, i64 %add16, i64 %add15, i64 %add14
- %0 = load i32, i32* %arrayidx20, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.31, i64 1
- store i32 %0, i32* %B.addr.31, align 4
+ %arrayidx20 = getelementptr inbounds [100 x [100 x [100 x i32]]], ptr %A, i64 10, i64 %add16, i64 %add15, i64 %add14
+ %0 = load i32, ptr %arrayidx20, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.31, i64 1
+ store i32 %0, ptr %B.addr.31, align 4
%inc = add nsw i64 %l.02, 1
%exitcond = icmp ne i64 %inc, 50
br i1 %exitcond, label %for.body9, label %for.inc21
for.inc21: ; preds = %for.body9
- %scevgep = getelementptr i32, i32* %B.addr.24, i64 50
+ %scevgep = getelementptr i32, ptr %B.addr.24, i64 50
%inc22 = add nsw i64 %k.03, 1
%exitcond10 = icmp ne i64 %inc22, 50
br i1 %exitcond10, label %for.cond7.preheader, label %for.inc24
for.inc24: ; preds = %for.inc21
- %scevgep9 = getelementptr i32, i32* %B.addr.16, i64 2500
+ %scevgep9 = getelementptr i32, ptr %B.addr.16, i64 2500
%inc25 = add nsw i64 %j.05, 1
%exitcond12 = icmp ne i64 %inc25, 50
br i1 %exitcond12, label %for.cond4.preheader, label %for.inc27
for.inc27: ; preds = %for.inc24
- %scevgep11 = getelementptr i32, i32* %B.addr.08, i64 125000
+ %scevgep11 = getelementptr i32, ptr %B.addr.08, i64 125000
%inc28 = add nsw i64 %i.07, 1
%exitcond13 = icmp ne i64 %inc28, 50
br i1 %exitcond13, label %for.cond1.preheader, label %for.end29
diff --git a/llvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheck.ll b/llvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheck.ll
index 45717bc537999..860795138c983 100644
--- a/llvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheck.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheck.ll
@@ -19,7 +19,7 @@
;; a[i][j] = a[i+1][j-2];
;; }
-define void @t1(i32 signext %n, i32 signext %m, i32* %a) {
+define void @t1(i32 signext %n, i32 signext %m, ptr %a) {
entry:
%0 = zext i32 %m to i64
%1 = sext i32 %m to i64
@@ -37,14 +37,14 @@ for.body4: ; preds = %for.body, %for.body
%indvars.iv6 = phi i64 [ %indvars.iv.next, %for.body4 ], [ 2, %for.body ]
%3 = add nuw nsw i64 %indvars.iv28, 1
%4 = mul nuw nsw i64 %3, %0
- %arrayidx = getelementptr inbounds i32, i32* %a, i64 %4
+ %arrayidx = getelementptr inbounds i32, ptr %a, i64 %4
%5 = add nsw i64 %indvars.iv6, -2
- %arrayidx7 = getelementptr inbounds i32, i32* %arrayidx, i64 %5
- %6 = load i32, i32* %arrayidx7, align 4
+ %arrayidx7 = getelementptr inbounds i32, ptr %arrayidx, i64 %5
+ %6 = load i32, ptr %arrayidx7, align 4
%7 = mul nuw nsw i64 %indvars.iv28, %0
- %arrayidx9 = getelementptr inbounds i32, i32* %a, i64 %7
- %arrayidx11 = getelementptr inbounds i32, i32* %arrayidx9, i64 %indvars.iv6
- store i32 %6, i32* %arrayidx11, align 4
+ %arrayidx9 = getelementptr inbounds i32, ptr %a, i64 %7
+ %arrayidx11 = getelementptr inbounds i32, ptr %arrayidx9, i64 %indvars.iv6
+ store i32 %6, ptr %arrayidx11, align 4
%indvars.iv.next = add nuw nsw i64 %indvars.iv6, 1
%cmp2 = icmp slt i64 %indvars.iv.next, %1
br i1 %cmp2, label %for.body4, label %for.inc12
@@ -78,7 +78,7 @@ for.end14: ; preds = %entry, %for.inc12
;; a[i1][i2][i3][i4][i5] = a[i1+1][i2-2][i3][i4-3][i5+2];
;; }
-define void @t2(i32 signext %n, i32 signext %m, i32* %a) {
+define void @t2(i32 signext %n, i32 signext %m, ptr %a) {
entry:
%0 = zext i32 %n to i64
%1 = zext i32 %n to i64
@@ -121,37 +121,37 @@ for.body17: ; preds = %for.body12, %for.bo
%9 = mul nuw i64 %8, %2
%10 = mul nuw i64 %9, %3
%11 = mul nsw i64 %10, %7
- %arrayidx = getelementptr inbounds i32, i32* %a, i64 %11
+ %arrayidx = getelementptr inbounds i32, ptr %a, i64 %11
%12 = add nsw i64 %indvars.iv924, -2
%13 = mul nuw i64 %1, %2
%14 = mul nuw i64 %13, %3
%15 = mul nsw i64 %14, %12
- %arrayidx20 = getelementptr inbounds i32, i32* %arrayidx, i64 %15
+ %arrayidx20 = getelementptr inbounds i32, ptr %arrayidx, i64 %15
%16 = mul nuw i64 %2, %3
%17 = mul nsw i64 %16, %indvars.iv521
- %arrayidx22 = getelementptr inbounds i32, i32* %arrayidx20, i64 %17
+ %arrayidx22 = getelementptr inbounds i32, ptr %arrayidx20, i64 %17
%18 = add nsw i64 %indvars.iv218, -3
%19 = mul nuw nsw i64 %18, %3
- %arrayidx25 = getelementptr inbounds i32, i32* %arrayidx22, i64 %19
+ %arrayidx25 = getelementptr inbounds i32, ptr %arrayidx22, i64 %19
%20 = add nuw nsw i64 %indvars.iv16, 2
- %arrayidx28 = getelementptr inbounds i32, i32* %arrayidx25, i64 %20
- %21 = load i32, i32* %arrayidx28, align 4
+ %arrayidx28 = getelementptr inbounds i32, ptr %arrayidx25, i64 %20
+ %21 = load i32, ptr %arrayidx28, align 4
%22 = mul nuw i64 %0, %1
%23 = mul nuw i64 %22, %2
%24 = mul nuw i64 %23, %3
%25 = mul nsw i64 %24, %indvars.iv1227
- %arrayidx30 = getelementptr inbounds i32, i32* %a, i64 %25
+ %arrayidx30 = getelementptr inbounds i32, ptr %a, i64 %25
%26 = mul nuw i64 %1, %2
%27 = mul nuw i64 %26, %3
%28 = mul nsw i64 %27, %indvars.iv924
- %arrayidx32 = getelementptr inbounds i32, i32* %arrayidx30, i64 %28
+ %arrayidx32 = getelementptr inbounds i32, ptr %arrayidx30, i64 %28
%29 = mul nuw i64 %2, %3
%30 = mul nsw i64 %29, %indvars.iv521
- %arrayidx34 = getelementptr inbounds i32, i32* %arrayidx32, i64 %30
+ %arrayidx34 = getelementptr inbounds i32, ptr %arrayidx32, i64 %30
%31 = mul nuw nsw i64 %indvars.iv218, %3
- %arrayidx36 = getelementptr inbounds i32, i32* %arrayidx34, i64 %31
- %arrayidx38 = getelementptr inbounds i32, i32* %arrayidx36, i64 %indvars.iv16
- store i32 %21, i32* %arrayidx38, align 4
+ %arrayidx36 = getelementptr inbounds i32, ptr %arrayidx34, i64 %31
+ %arrayidx38 = getelementptr inbounds i32, ptr %arrayidx36, i64 %indvars.iv16
+ store i32 %21, ptr %arrayidx38, align 4
%indvars.iv.next = add nuw nsw i64 %indvars.iv16, 1
%cmp15 = icmp slt i64 %indvars.iv.next, %6
br i1 %cmp15, label %for.body17, label %for.inc39
@@ -202,7 +202,7 @@ for.end50: ; preds = %entry, %for.inc48
;; a[i][j] = a[i+1][j-2];
;; }
-define void @t3(i64 %n, i64 %m, i64 %lb, float* %a) {
+define void @t3(i64 %n, i64 %m, i64 %lb, ptr %a) {
entry:
%0 = add i64 %n, -1
%exitcond3 = icmp ne i64 0, %0
@@ -223,16 +223,14 @@ for.body4: ; preds = %for.body4.preheader
%j.02 = phi i64 [ %inc, %for.body4 ], [ %lb, %for.body4.preheader ]
%add = add i64 %i.04, 1
%1 = mul nsw i64 %add, %m
- %arrayidx = getelementptr inbounds float, float* %a, i64 %1
+ %arrayidx = getelementptr inbounds float, ptr %a, i64 %1
%sub5 = add i64 %j.02, -2
- %arrayidx6 = getelementptr inbounds float, float* %arrayidx, i64 %sub5
- %2 = bitcast float* %arrayidx6 to i32*
- %3 = load i32, i32* %2, align 4
- %4 = mul nsw i64 %i.04, %m
- %arrayidx7 = getelementptr inbounds float, float* %a, i64 %4
- %arrayidx8 = getelementptr inbounds float, float* %arrayidx7, i64 %j.02
- %5 = bitcast float* %arrayidx8 to i32*
- store i32 %3, i32* %5, align 4
+ %arrayidx6 = getelementptr inbounds float, ptr %arrayidx, i64 %sub5
+ %2 = load i32, ptr %arrayidx6, align 4
+ %3 = mul nsw i64 %i.04, %m
+ %arrayidx7 = getelementptr inbounds float, ptr %a, i64 %3
+ %arrayidx8 = getelementptr inbounds float, ptr %arrayidx7, i64 %j.02
+ store i32 %2, ptr %arrayidx8, align 4
%inc = add i64 %j.02, 1
%cmp2 = icmp ult i64 %inc, %m
br i1 %cmp2, label %for.body4, label %for.inc9.loopexit
diff --git a/llvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheckFixedSize.ll b/llvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheckFixedSize.ll
index 2514b15e83638..b8ed6ab916c45 100644
--- a/llvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheckFixedSize.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/SimpleSIVNoValidityCheckFixedSize.ll
@@ -17,7 +17,7 @@
;; }
;;
;; Note that there is a getelementptr with index 0, make sure we can analyze this case.
-define void @t1([2048 x i32]* %a) {
+define void @t1(ptr %a) {
entry:
br label %for.body
@@ -29,11 +29,10 @@ for.body4: ; preds = %for.body, %for.body
%indvars.iv = phi i64 [ 2, %for.body ], [ %indvars.iv.next, %for.body4 ]
%0 = add nuw nsw i64 %indvars.iv4, 1
%1 = add nsw i64 %indvars.iv, -2
- %arrayidx6 = getelementptr inbounds [2048 x i32], [2048 x i32]* %a, i64 %0, i64 %1
- %2 = load i32, i32* %arrayidx6, align 4
- %a_gep = getelementptr inbounds [2048 x i32], [2048 x i32]* %a, i64 0
- %arrayidx10 = getelementptr inbounds [2048 x i32], [2048 x i32]* %a_gep, i64 %indvars.iv4, i64 %indvars.iv
- store i32 %2, i32* %arrayidx10, align 4
+ %arrayidx6 = getelementptr inbounds [2048 x i32], ptr %a, i64 %0, i64 %1
+ %2 = load i32, ptr %arrayidx6, align 4
+ %arrayidx10 = getelementptr inbounds [2048 x i32], ptr %a, i64 %indvars.iv4, i64 %indvars.iv
+ store i32 %2, ptr %arrayidx10, align 4
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
%exitcond = icmp ne i64 %indvars.iv.next, 2048
br i1 %exitcond, label %for.body4, label %for.inc11
@@ -53,7 +52,7 @@ for.end13: ; preds = %for.inc11
;; Similar to @t1 but includes a call with a "returned" arg, make sure we can analyze
;; this case.
-define void @t2([2048 x i32]* %a) {
+define void @t2(ptr %a) {
entry:
br label %for.body
@@ -65,11 +64,11 @@ for.body4: ; preds = %for.body, %for.body
%indvars.iv = phi i64 [ 2, %for.body ], [ %indvars.iv.next, %for.body4 ]
%0 = add nuw nsw i64 %indvars.iv4, 1
%1 = add nsw i64 %indvars.iv, -2
- %arrayidx6 = getelementptr inbounds [2048 x i32], [2048 x i32]* %a, i64 %0, i64 %1
- %2 = load i32, i32* %arrayidx6, align 4
- %call = call [2048 x i32]* @func_with_returned_arg([2048 x i32]* returned %a)
- %arrayidx10 = getelementptr inbounds [2048 x i32], [2048 x i32]* %call, i64 %indvars.iv4, i64 %indvars.iv
- store i32 %2, i32* %arrayidx10, align 4
+ %arrayidx6 = getelementptr inbounds [2048 x i32], ptr %a, i64 %0, i64 %1
+ %2 = load i32, ptr %arrayidx6, align 4
+ %call = call ptr @func_with_returned_arg(ptr returned %a)
+ %arrayidx10 = getelementptr inbounds [2048 x i32], ptr %call, i64 %indvars.iv4, i64 %indvars.iv
+ store i32 %2, ptr %arrayidx10, align 4
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
%exitcond = icmp ne i64 %indvars.iv.next, 2048
br i1 %exitcond, label %for.body4, label %for.inc11
@@ -83,7 +82,7 @@ for.end13: ; preds = %for.inc11
ret void
}
-declare [2048 x i32]* @func_with_returned_arg([2048 x i32]* returned %arg)
+declare ptr @func_with_returned_arg(ptr returned %arg)
; CHECK-LABEL: t3
; CHECK: da analyze - none!
@@ -101,7 +100,7 @@ declare [2048 x i32]* @func_with_returned_arg([2048 x i32]* returned %arg)
;; a[i1][i2][i3][i4][i5] = a[i1+1][i2-2][i3][i4-3][i5+2];
;; }
-define void @t3([1024 x [1024 x [1024 x [2048 x i32]]]]* %a) {
+define void @t3(ptr %a) {
entry:
br label %for.body
@@ -127,10 +126,10 @@ for.body16: ; preds = %for.body12, %for.bo
%1 = add nsw i64 %indvars.iv14, -2
%2 = add nsw i64 %indvars.iv7, -3
%3 = add nuw nsw i64 %indvars.iv, 2
- %arrayidx26 = getelementptr inbounds [1024 x [1024 x [1024 x [2048 x i32]]]], [1024 x [1024 x [1024 x [2048 x i32]]]]* %a, i64 %0, i64 %1, i64 %indvars.iv11, i64 %2, i64 %3
- %4 = load i32, i32* %arrayidx26, align 4
- %arrayidx36 = getelementptr inbounds [1024 x [1024 x [1024 x [2048 x i32]]]], [1024 x [1024 x [1024 x [2048 x i32]]]]* %a, i64 %indvars.iv18, i64 %indvars.iv14, i64 %indvars.iv11, i64 %indvars.iv7, i64 %indvars.iv
- store i32 %4, i32* %arrayidx36, align 4
+ %arrayidx26 = getelementptr inbounds [1024 x [1024 x [1024 x [2048 x i32]]]], ptr %a, i64 %0, i64 %1, i64 %indvars.iv11, i64 %2, i64 %3
+ %4 = load i32, ptr %arrayidx26, align 4
+ %arrayidx36 = getelementptr inbounds [1024 x [1024 x [1024 x [2048 x i32]]]], ptr %a, i64 %indvars.iv18, i64 %indvars.iv14, i64 %indvars.iv11, i64 %indvars.iv7, i64 %indvars.iv
+ store i32 %4, ptr %arrayidx36, align 4
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
%exitcond = icmp ne i64 %indvars.iv.next, 2046
br i1 %exitcond, label %for.body16, label %for.inc37
diff --git a/llvm/test/Analysis/DependenceAnalysis/StrongSIV.ll b/llvm/test/Analysis/DependenceAnalysis/StrongSIV.ll
index 40a3f968a3b04..59bc406fd4bd5 100644
--- a/llvm/test/Analysis/DependenceAnalysis/StrongSIV.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/StrongSIV.ll
@@ -9,7 +9,7 @@ target triple = "x86_64-apple-macosx10.6.0"
;; A[i + 2] = i;
;; *B++ = A[i];
-define void @strong0(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @strong0(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
%cmp1 = icmp sgt i64 %n, 0
br i1 %cmp1, label %for.body.preheader, label %for.end
@@ -26,15 +26,15 @@ for.body.preheader: ; preds = %entry
for.body: ; preds = %for.body.preheader, %for.body
%indvars.iv = phi i64 [ 0, %for.body.preheader ], [ %indvars.iv.next, %for.body ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
%0 = add nsw i64 %indvars.iv, 2
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %0
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %0
%1 = trunc i64 %indvars.iv to i32
- store i32 %1, i32* %arrayidx, align 4
- %arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
- %2 = load i32, i32* %arrayidx3, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %2, i32* %B.addr.02, align 4
+ store i32 %1, ptr %arrayidx, align 4
+ %arrayidx3 = getelementptr inbounds i32, ptr %A, i64 %indvars.iv
+ %2 = load i32, ptr %arrayidx3, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %2, ptr %B.addr.02, align 4
%indvars.iv.next = add i64 %indvars.iv, 1
%exitcond = icmp ne i64 %indvars.iv.next, %n
br i1 %exitcond, label %for.body, label %for.end.loopexit
@@ -51,7 +51,7 @@ for.end: ; preds = %for.end.loopexit, %
;; A[i + 2] = i;
;; *B++ = A[i];
-define void @strong1(i32* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @strong1(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
%cmp1 = icmp sgt i32 %n, 0
br i1 %cmp1, label %for.body.preheader, label %for.end
@@ -69,15 +69,15 @@ for.body.preheader: ; preds = %entry
for.body: ; preds = %for.body.preheader, %for.body
%i.03 = phi i64 [ %inc, %for.body ], [ 0, %for.body.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
%conv2 = trunc i64 %i.03 to i32
%add = add nsw i64 %i.03, 2
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv2, i32* %arrayidx, align 4
- %arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %i.03
- %1 = load i32, i32* %arrayidx3, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %1, i32* %B.addr.02, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv2, ptr %arrayidx, align 4
+ %arrayidx3 = getelementptr inbounds i32, ptr %A, i64 %i.03
+ %1 = load i32, ptr %arrayidx3, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %1, ptr %B.addr.02, align 4
%inc = add nsw i64 %i.03, 1
%exitcond = icmp ne i64 %inc, %0
br i1 %exitcond, label %for.body, label %for.end.loopexit
@@ -94,7 +94,7 @@ for.end: ; preds = %for.end.loopexit, %
;; A[i + 2] = i;
;; *B++ = A[i];
-define void @strong2(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @strong2(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
%cmp1 = icmp eq i64 %n, 0
br i1 %cmp1, label %for.end, label %for.body.preheader
@@ -111,15 +111,15 @@ for.body.preheader: ; preds = %entry
for.body: ; preds = %for.body.preheader, %for.body
%i.03 = phi i64 [ %inc, %for.body ], [ 0, %for.body.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
%conv = trunc i64 %i.03 to i32
%add = add i64 %i.03, 2
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %i.03
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %0, i32* %B.addr.02, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %i.03
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %0, ptr %B.addr.02, align 4
%inc = add i64 %i.03, 1
%exitcond = icmp ne i64 %inc, %n
br i1 %exitcond, label %for.body, label %for.end.loopexit
@@ -136,7 +136,7 @@ for.end: ; preds = %for.end.loopexit, %
;; A[i + 2] = i;
;; *B++ = A[i];
-define void @strong3(i32* %A, i32* %B, i32 %n) nounwind uwtable ssp {
+define void @strong3(ptr %A, ptr %B, i32 %n) nounwind uwtable ssp {
entry:
%cmp1 = icmp sgt i32 %n, 0
br i1 %cmp1, label %for.body.preheader, label %for.end
@@ -153,15 +153,15 @@ for.body.preheader: ; preds = %entry
for.body: ; preds = %for.body.preheader, %for.body
%indvars.iv = phi i64 [ 0, %for.body.preheader ], [ %indvars.iv.next, %for.body ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
%0 = add nsw i64 %indvars.iv, 2
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %0
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %0
%1 = trunc i64 %indvars.iv to i32
- store i32 %1, i32* %arrayidx, align 4
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
- %2 = load i32, i32* %arrayidx2, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %2, i32* %B.addr.02, align 4
+ store i32 %1, ptr %arrayidx, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i64 %indvars.iv
+ %2 = load i32, ptr %arrayidx2, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %2, ptr %B.addr.02, align 4
%indvars.iv.next = add i64 %indvars.iv, 1
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
%exitcond = icmp ne i32 %lftr.wideiv, %n
@@ -179,7 +179,7 @@ for.end: ; preds = %for.end.loopexit, %
;; A[i + 19] = i;
;; *B++ = A[i];
-define void @strong4(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @strong4(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -192,15 +192,15 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%add = add i64 %i.02, 19
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %i.02
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %i.02
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 19
br i1 %exitcond, label %for.body, label %for.end
@@ -214,7 +214,7 @@ for.end: ; preds = %for.body
;; A[i + 19] = i;
;; *B++ = A[i];
-define void @strong5(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @strong5(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -227,15 +227,15 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%add = add i64 %i.02, 19
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %i.02
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %i.02
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 20
br i1 %exitcond, label %for.body, label %for.end
@@ -249,7 +249,7 @@ for.end: ; preds = %for.body
;; A[2*i + 6] = i;
;; *B++ = A[2*i];
-define void @strong6(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @strong6(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -262,17 +262,17 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = shl i64 %i.02, 1
%add = add i64 %mul, 6
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%mul1 = shl i64 %i.02, 1
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %mul1
- %0 = load i32, i32* %arrayidx2, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i64 %mul1
+ %0 = load i32, ptr %arrayidx2, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 20
br i1 %exitcond, label %for.body, label %for.end
@@ -286,7 +286,7 @@ for.end: ; preds = %for.body
;; A[2*i + 7] = i;
;; *B++ = A[2*i];
-define void @strong7(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @strong7(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -299,17 +299,17 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = shl i64 %i.02, 1
%add = add i64 %mul, 7
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%mul1 = shl i64 %i.02, 1
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %mul1
- %0 = load i32, i32* %arrayidx2, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i64 %mul1
+ %0 = load i32, ptr %arrayidx2, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 20
br i1 %exitcond, label %for.body, label %for.end
@@ -323,7 +323,7 @@ for.end: ; preds = %for.body
;; A[i + n] = i;
;; *B++ = A[i];
-define void @strong8(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @strong8(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -336,15 +336,15 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%add = add i64 %i.02, %n
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %i.02
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %i.02
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 20
br i1 %exitcond, label %for.body, label %for.end
@@ -358,7 +358,7 @@ for.end: ; preds = %for.body
;; A[i + n] = i;
;; *B++ = A[i + 2*n];
-define void @strong9(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @strong9(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
%cmp1 = icmp eq i64 %n, 0
br i1 %cmp1, label %for.end, label %for.body.preheader
@@ -375,17 +375,17 @@ for.body.preheader: ; preds = %entry
for.body: ; preds = %for.body.preheader, %for.body
%i.03 = phi i64 [ %inc, %for.body ], [ 0, %for.body.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
%conv = trunc i64 %i.03 to i32
%add = add i64 %i.03, %n
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%mul = shl i64 %n, 1
%add1 = add i64 %i.03, %mul
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %add1
- %0 = load i32, i32* %arrayidx2, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %0, i32* %B.addr.02, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i64 %add1
+ %0 = load i32, ptr %arrayidx2, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %0, ptr %B.addr.02, align 4
%inc = add i64 %i.03, 1
%exitcond = icmp ne i64 %inc, %n
br i1 %exitcond, label %for.body, label %for.end.loopexit
@@ -402,7 +402,7 @@ for.end: ; preds = %for.end.loopexit, %
;; A[n*i + 5] = i;
;; *B++ = A[n*i + 5];
-define void @strong10(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @strong10(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -415,18 +415,18 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = mul i64 %i.02, %n
%add = add i64 %mul, 5
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%mul1 = mul i64 %i.02, %n
%add2 = add i64 %mul1, 5
- %arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %add2
- %0 = load i32, i32* %arrayidx3, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx3 = getelementptr inbounds i32, ptr %A, i64 %add2
+ %0 = load i32, ptr %arrayidx3, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 1000
br i1 %exitcond, label %for.body, label %for.end
diff --git a/llvm/test/Analysis/DependenceAnalysis/SymbolicRDIV.ll b/llvm/test/Analysis/DependenceAnalysis/SymbolicRDIV.ll
index 8aa2e059269eb..238ab628e369e 100644
--- a/llvm/test/Analysis/DependenceAnalysis/SymbolicRDIV.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/SymbolicRDIV.ll
@@ -11,7 +11,7 @@ target triple = "x86_64-apple-macosx10.6.0"
;; for (long int j = 0; j < n2; j++)
;; *B++ = A[3*j + 3*n1];
-define void @symbolicrdiv0(i32* %A, i32* %B, i64 %n1, i64 %n2) nounwind uwtable ssp {
+define void @symbolicrdiv0(ptr %A, ptr %B, i64 %n1, i64 %n2) nounwind uwtable ssp {
entry:
%cmp4 = icmp eq i64 %n1, 0
br i1 %cmp4, label %for.cond1.preheader, label %for.body.preheader
@@ -42,21 +42,21 @@ for.body: ; preds = %for.body.preheader,
%conv = trunc i64 %i.05 to i32
%mul = shl nsw i64 %i.05, 1
%add = add i64 %mul, %n1
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%inc = add nsw i64 %i.05, 1
%exitcond = icmp ne i64 %inc, %n1
br i1 %exitcond, label %for.body, label %for.cond1.preheader.loopexit
for.body4: ; preds = %for.body4.preheader, %for.body4
%j.03 = phi i64 [ %inc10, %for.body4 ], [ 0, %for.body4.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
%mul56 = add i64 %j.03, %n1
%add7 = mul i64 %mul56, 3
- %arrayidx8 = getelementptr inbounds i32, i32* %A, i64 %add7
- %0 = load i32, i32* %arrayidx8, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %0, i32* %B.addr.02, align 4
+ %arrayidx8 = getelementptr inbounds i32, ptr %A, i64 %add7
+ %0 = load i32, ptr %arrayidx8, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %0, ptr %B.addr.02, align 4
%inc10 = add nsw i64 %j.03, 1
%exitcond7 = icmp ne i64 %inc10, %n2
br i1 %exitcond7, label %for.body4, label %for.end11.loopexit
@@ -74,7 +74,7 @@ for.end11: ; preds = %for.end11.loopexit,
;; for (long int j = 0; j < n2; j++)
;; *B++ = A[3*j + 2*n2];
-define void @symbolicrdiv1(i32* %A, i32* %B, i64 %n1, i64 %n2) nounwind uwtable ssp {
+define void @symbolicrdiv1(ptr %A, ptr %B, i64 %n1, i64 %n2) nounwind uwtable ssp {
entry:
%cmp4 = icmp eq i64 %n1, 0
br i1 %cmp4, label %for.cond2.preheader, label %for.body.preheader
@@ -106,22 +106,22 @@ for.body: ; preds = %for.body.preheader,
%mul = shl nsw i64 %i.05, 1
%mul1 = mul i64 %n2, 5
%add = add i64 %mul, %mul1
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%inc = add nsw i64 %i.05, 1
%exitcond = icmp ne i64 %inc, %n1
br i1 %exitcond, label %for.body, label %for.cond2.preheader.loopexit
for.body5: ; preds = %for.body5.preheader, %for.body5
%j.03 = phi i64 [ %inc11, %for.body5 ], [ 0, %for.body5.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body5 ], [ %B, %for.body5.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body5 ], [ %B, %for.body5.preheader ]
%mul6 = mul nsw i64 %j.03, 3
%mul7 = shl i64 %n2, 1
%add8 = add i64 %mul6, %mul7
- %arrayidx9 = getelementptr inbounds i32, i32* %A, i64 %add8
- %0 = load i32, i32* %arrayidx9, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %0, i32* %B.addr.02, align 4
+ %arrayidx9 = getelementptr inbounds i32, ptr %A, i64 %add8
+ %0 = load i32, ptr %arrayidx9, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %0, ptr %B.addr.02, align 4
%inc11 = add nsw i64 %j.03, 1
%exitcond6 = icmp ne i64 %inc11, %n2
br i1 %exitcond6, label %for.body5, label %for.end12.loopexit
@@ -139,7 +139,7 @@ for.end12: ; preds = %for.end12.loopexit,
;; for (long int j = 0; j < n2; j++)
;; *B++ = A[-j + 2*n1];
-define void @symbolicrdiv2(i32* %A, i32* %B, i64 %n1, i64 %n2) nounwind uwtable ssp {
+define void @symbolicrdiv2(ptr %A, ptr %B, i64 %n1, i64 %n2) nounwind uwtable ssp {
entry:
%cmp4 = icmp eq i64 %n1, 0
br i1 %cmp4, label %for.cond1.preheader, label %for.body.preheader
@@ -170,21 +170,21 @@ for.body: ; preds = %for.body.preheader,
%conv = trunc i64 %i.05 to i32
%mul = shl nsw i64 %i.05, 1
%sub = sub i64 %mul, %n2
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %sub
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %sub
+ store i32 %conv, ptr %arrayidx, align 4
%inc = add nsw i64 %i.05, 1
%exitcond = icmp ne i64 %inc, %n1
br i1 %exitcond, label %for.body, label %for.cond1.preheader.loopexit
for.body4: ; preds = %for.body4.preheader, %for.body4
%j.03 = phi i64 [ %inc9, %for.body4 ], [ 0, %for.body4.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
%mul6 = shl i64 %n1, 1
%add = sub i64 %mul6, %j.03
- %arrayidx7 = getelementptr inbounds i32, i32* %A, i64 %add
- %0 = load i32, i32* %arrayidx7, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %0, i32* %B.addr.02, align 4
+ %arrayidx7 = getelementptr inbounds i32, ptr %A, i64 %add
+ %0 = load i32, ptr %arrayidx7, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %0, ptr %B.addr.02, align 4
%inc9 = add nsw i64 %j.03, 1
%exitcond6 = icmp ne i64 %inc9, %n2
br i1 %exitcond6, label %for.body4, label %for.end10.loopexit
@@ -202,7 +202,7 @@ for.end10: ; preds = %for.end10.loopexit,
;; for (long int j = 0; j < n2; j++)
;; *B++ = A[j - n1];
-define void @symbolicrdiv3(i32* %A, i32* %B, i64 %n1, i64 %n2) nounwind uwtable ssp {
+define void @symbolicrdiv3(ptr %A, ptr %B, i64 %n1, i64 %n2) nounwind uwtable ssp {
entry:
%cmp4 = icmp eq i64 %n1, 0
br i1 %cmp4, label %for.cond1.preheader, label %for.body.preheader
@@ -232,20 +232,20 @@ for.body: ; preds = %for.body.preheader,
%i.05 = phi i64 [ %inc, %for.body ], [ 0, %for.body.preheader ]
%conv = trunc i64 %i.05 to i32
%add = sub i64 %n2, %i.05
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%inc = add nsw i64 %i.05, 1
%exitcond = icmp ne i64 %inc, %n1
br i1 %exitcond, label %for.body, label %for.cond1.preheader.loopexit
for.body4: ; preds = %for.body4.preheader, %for.body4
%j.03 = phi i64 [ %inc8, %for.body4 ], [ 0, %for.body4.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
%sub5 = sub i64 %j.03, %n1
- %arrayidx6 = getelementptr inbounds i32, i32* %A, i64 %sub5
- %0 = load i32, i32* %arrayidx6, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %0, i32* %B.addr.02, align 4
+ %arrayidx6 = getelementptr inbounds i32, ptr %A, i64 %sub5
+ %0 = load i32, ptr %arrayidx6, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %0, ptr %B.addr.02, align 4
%inc8 = add nsw i64 %j.03, 1
%exitcond6 = icmp ne i64 %inc8, %n2
br i1 %exitcond6, label %for.body4, label %for.end9.loopexit
@@ -263,7 +263,7 @@ for.end9: ; preds = %for.end9.loopexit,
;; for (long int j = 0; j < n2; j++)
;; *B++ = A[-j + n1];
-define void @symbolicrdiv4(i32* %A, i32* %B, i64 %n1, i64 %n2) nounwind uwtable ssp {
+define void @symbolicrdiv4(ptr %A, ptr %B, i64 %n1, i64 %n2) nounwind uwtable ssp {
entry:
%cmp4 = icmp eq i64 %n1, 0
br i1 %cmp4, label %for.cond1.preheader, label %for.body.preheader
@@ -294,20 +294,20 @@ for.body: ; preds = %for.body.preheader,
%conv = trunc i64 %i.05 to i32
%mul = shl i64 %n1, 1
%add = sub i64 %mul, %i.05
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%inc = add nsw i64 %i.05, 1
%exitcond = icmp ne i64 %inc, %n1
br i1 %exitcond, label %for.body, label %for.cond1.preheader.loopexit
for.body4: ; preds = %for.body4.preheader, %for.body4
%j.03 = phi i64 [ %inc9, %for.body4 ], [ 0, %for.body4.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
%add6 = sub i64 %n1, %j.03
- %arrayidx7 = getelementptr inbounds i32, i32* %A, i64 %add6
- %0 = load i32, i32* %arrayidx7, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %0, i32* %B.addr.02, align 4
+ %arrayidx7 = getelementptr inbounds i32, ptr %A, i64 %add6
+ %0 = load i32, ptr %arrayidx7, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %0, ptr %B.addr.02, align 4
%inc9 = add nsw i64 %j.03, 1
%exitcond6 = icmp ne i64 %inc9, %n2
br i1 %exitcond6, label %for.body4, label %for.end10.loopexit
@@ -325,7 +325,7 @@ for.end10: ; preds = %for.end10.loopexit,
;; for (long int j = 0; j < n2; j++)
;; *B++ = A[-j + 2*n2];
-define void @symbolicrdiv5(i32* %A, i32* %B, i64 %n1, i64 %n2) nounwind uwtable ssp {
+define void @symbolicrdiv5(ptr %A, ptr %B, i64 %n1, i64 %n2) nounwind uwtable ssp {
entry:
%cmp4 = icmp eq i64 %n1, 0
br i1 %cmp4, label %for.cond1.preheader, label %for.body.preheader
@@ -355,21 +355,21 @@ for.body: ; preds = %for.body.preheader,
%i.05 = phi i64 [ %inc, %for.body ], [ 0, %for.body.preheader ]
%conv = trunc i64 %i.05 to i32
%add = sub i64 %n2, %i.05
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%inc = add nsw i64 %i.05, 1
%exitcond = icmp ne i64 %inc, %n1
br i1 %exitcond, label %for.body, label %for.cond1.preheader.loopexit
for.body4: ; preds = %for.body4.preheader, %for.body4
%j.03 = phi i64 [ %inc9, %for.body4 ], [ 0, %for.body4.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
%mul = shl i64 %n2, 1
%add6 = sub i64 %mul, %j.03
- %arrayidx7 = getelementptr inbounds i32, i32* %A, i64 %add6
- %0 = load i32, i32* %arrayidx7, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %0, i32* %B.addr.02, align 4
+ %arrayidx7 = getelementptr inbounds i32, ptr %A, i64 %add6
+ %0 = load i32, ptr %arrayidx7, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %0, ptr %B.addr.02, align 4
%inc9 = add nsw i64 %j.03, 1
%exitcond6 = icmp ne i64 %inc9, %n2
br i1 %exitcond6, label %for.body4, label %for.end10.loopexit
@@ -387,7 +387,7 @@ for.end10: ; preds = %for.end10.loopexit,
;; A[j -i + n2] = i;
;; *B++ = A[2*n2];
-define void @symbolicrdiv6(i32* %A, i32* %B, i64 %n1, i64 %n2) nounwind uwtable ssp {
+define void @symbolicrdiv6(ptr %A, ptr %B, i64 %n1, i64 %n2) nounwind uwtable ssp {
entry:
%cmp4 = icmp eq i64 %n1, 0
br i1 %cmp4, label %for.end7, label %for.cond1.preheader.preheader
@@ -404,7 +404,7 @@ for.cond1.preheader.preheader: ; preds = %entry
br label %for.cond1.preheader
for.cond1.preheader: ; preds = %for.cond1.preheader.preheader, %for.inc5
- %B.addr.06 = phi i32* [ %B.addr.1.lcssa, %for.inc5 ], [ %B, %for.cond1.preheader.preheader ]
+ %B.addr.06 = phi ptr [ %B.addr.1.lcssa, %for.inc5 ], [ %B, %for.cond1.preheader.preheader ]
%i.05 = phi i64 [ %inc6, %for.inc5 ], [ 0, %for.cond1.preheader.preheader ]
%cmp21 = icmp eq i64 %n2, 0
br i1 %cmp21, label %for.inc5, label %for.body3.preheader
@@ -414,27 +414,27 @@ for.body3.preheader: ; preds = %for.cond1.preheader
for.body3: ; preds = %for.body3.preheader, %for.body3
%j.03 = phi i64 [ %inc, %for.body3 ], [ 0, %for.body3.preheader ]
- %B.addr.12 = phi i32* [ %incdec.ptr, %for.body3 ], [ %B.addr.06, %for.body3.preheader ]
+ %B.addr.12 = phi ptr [ %incdec.ptr, %for.body3 ], [ %B.addr.06, %for.body3.preheader ]
%conv = trunc i64 %i.05 to i32
%sub = sub nsw i64 %j.03, %i.05
%add = add i64 %sub, %n2
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%mul = shl i64 %n2, 1
- %arrayidx4 = getelementptr inbounds i32, i32* %A, i64 %mul
- %0 = load i32, i32* %arrayidx4, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.12, i64 1
- store i32 %0, i32* %B.addr.12, align 4
+ %arrayidx4 = getelementptr inbounds i32, ptr %A, i64 %mul
+ %0 = load i32, ptr %arrayidx4, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.12, i64 1
+ store i32 %0, ptr %B.addr.12, align 4
%inc = add nsw i64 %j.03, 1
%exitcond = icmp ne i64 %inc, %n2
br i1 %exitcond, label %for.body3, label %for.inc5.loopexit
for.inc5.loopexit: ; preds = %for.body3
- %scevgep = getelementptr i32, i32* %B.addr.06, i64 %n2
+ %scevgep = getelementptr i32, ptr %B.addr.06, i64 %n2
br label %for.inc5
for.inc5: ; preds = %for.inc5.loopexit, %for.cond1.preheader
- %B.addr.1.lcssa = phi i32* [ %B.addr.06, %for.cond1.preheader ], [ %scevgep, %for.inc5.loopexit ]
+ %B.addr.1.lcssa = phi ptr [ %B.addr.06, %for.cond1.preheader ], [ %scevgep, %for.inc5.loopexit ]
%inc6 = add nsw i64 %i.05, 1
%exitcond7 = icmp ne i64 %inc6, %n1
br i1 %exitcond7, label %for.cond1.preheader, label %for.end7.loopexit
diff --git a/llvm/test/Analysis/DependenceAnalysis/SymbolicSIV.ll b/llvm/test/Analysis/DependenceAnalysis/SymbolicSIV.ll
index 0d96e965d2c91..a995f7a3ad22b 100644
--- a/llvm/test/Analysis/DependenceAnalysis/SymbolicSIV.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/SymbolicSIV.ll
@@ -9,7 +9,7 @@ target triple = "x86_64-apple-macosx10.6.0"
;; A[2*i + n] = i;
;; *B++ = A[3*i + 3*n];
-define void @symbolicsiv0(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @symbolicsiv0(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
%cmp1 = icmp eq i64 %n, 0
br i1 %cmp1, label %for.end, label %for.body.preheader
@@ -26,18 +26,18 @@ for.body.preheader: ; preds = %entry
for.body: ; preds = %for.body.preheader, %for.body
%i.03 = phi i64 [ %inc, %for.body ], [ 0, %for.body.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
%conv = trunc i64 %i.03 to i32
%mul = shl nsw i64 %i.03, 1
%add = add i64 %mul, %n
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%mul14 = add i64 %i.03, %n
%add3 = mul i64 %mul14, 3
- %arrayidx4 = getelementptr inbounds i32, i32* %A, i64 %add3
- %0 = load i32, i32* %arrayidx4, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %0, i32* %B.addr.02, align 4
+ %arrayidx4 = getelementptr inbounds i32, ptr %A, i64 %add3
+ %0 = load i32, ptr %arrayidx4, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %0, ptr %B.addr.02, align 4
%inc = add nsw i64 %i.03, 1
%exitcond = icmp ne i64 %inc, %n
br i1 %exitcond, label %for.body, label %for.end.loopexit
@@ -54,7 +54,7 @@ for.end: ; preds = %for.end.loopexit, %
;; A[2*i + 5*n] = i;
;; *B++ = A[3*i + 2*n];
-define void @symbolicsiv1(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @symbolicsiv1(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
%cmp1 = icmp eq i64 %n, 0
br i1 %cmp1, label %for.end, label %for.body.preheader
@@ -71,20 +71,20 @@ for.body.preheader: ; preds = %entry
for.body: ; preds = %for.body.preheader, %for.body
%i.03 = phi i64 [ %inc, %for.body ], [ 0, %for.body.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
%conv = trunc i64 %i.03 to i32
%mul = shl nsw i64 %i.03, 1
%mul1 = mul i64 %n, 5
%add = add i64 %mul, %mul1
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%mul2 = mul nsw i64 %i.03, 3
%mul3 = shl i64 %n, 1
%add4 = add i64 %mul2, %mul3
- %arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %add4
- %0 = load i32, i32* %arrayidx5, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %0, i32* %B.addr.02, align 4
+ %arrayidx5 = getelementptr inbounds i32, ptr %A, i64 %add4
+ %0 = load i32, ptr %arrayidx5, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %0, ptr %B.addr.02, align 4
%inc = add nsw i64 %i.03, 1
%exitcond = icmp ne i64 %inc, %n
br i1 %exitcond, label %for.body, label %for.end.loopexit
@@ -101,7 +101,7 @@ for.end: ; preds = %for.end.loopexit, %
;; A[2*i - n] = i;
;; *B++ = A[-i + 2*n];
-define void @symbolicsiv2(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @symbolicsiv2(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
%cmp1 = icmp eq i64 %n, 0
br i1 %cmp1, label %for.end, label %for.body.preheader
@@ -118,18 +118,18 @@ for.body.preheader: ; preds = %entry
for.body: ; preds = %for.body.preheader, %for.body
%i.03 = phi i64 [ %inc, %for.body ], [ 0, %for.body.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
%conv = trunc i64 %i.03 to i32
%mul = shl nsw i64 %i.03, 1
%sub = sub i64 %mul, %n
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %sub
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %sub
+ store i32 %conv, ptr %arrayidx, align 4
%mul2 = shl i64 %n, 1
%add = sub i64 %mul2, %i.03
- %arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %add
- %0 = load i32, i32* %arrayidx3, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %0, i32* %B.addr.02, align 4
+ %arrayidx3 = getelementptr inbounds i32, ptr %A, i64 %add
+ %0 = load i32, ptr %arrayidx3, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %0, ptr %B.addr.02, align 4
%inc = add nsw i64 %i.03, 1
%exitcond = icmp ne i64 %inc, %n
br i1 %exitcond, label %for.body, label %for.end.loopexit
@@ -146,7 +146,7 @@ for.end: ; preds = %for.end.loopexit, %
;; A[-2*i + n + 1] = i;
;; *B++ = A[i - 2*n];
-define void @symbolicsiv3(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @symbolicsiv3(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
%cmp1 = icmp eq i64 %n, 0
br i1 %cmp1, label %for.end, label %for.body.preheader
@@ -163,19 +163,19 @@ for.body.preheader: ; preds = %entry
for.body: ; preds = %for.body.preheader, %for.body
%i.03 = phi i64 [ %inc, %for.body ], [ 0, %for.body.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
%conv = trunc i64 %i.03 to i32
%mul = mul nsw i64 %i.03, -2
%add = add i64 %mul, %n
%add1 = add i64 %add, 1
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add1
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add1
+ store i32 %conv, ptr %arrayidx, align 4
%mul2 = shl i64 %n, 1
%sub = sub i64 %i.03, %mul2
- %arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %sub
- %0 = load i32, i32* %arrayidx3, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %0, i32* %B.addr.02, align 4
+ %arrayidx3 = getelementptr inbounds i32, ptr %A, i64 %sub
+ %0 = load i32, ptr %arrayidx3, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %0, ptr %B.addr.02, align 4
%inc = add nsw i64 %i.03, 1
%exitcond = icmp ne i64 %inc, %n
br i1 %exitcond, label %for.body, label %for.end.loopexit
@@ -192,7 +192,7 @@ for.end: ; preds = %for.end.loopexit, %
;; A[-2*i + 3*n] = i;
;; *B++ = A[-i + n];
-define void @symbolicsiv4(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @symbolicsiv4(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
%cmp1 = icmp eq i64 %n, 0
br i1 %cmp1, label %for.end, label %for.body.preheader
@@ -209,18 +209,18 @@ for.body.preheader: ; preds = %entry
for.body: ; preds = %for.body.preheader, %for.body
%i.03 = phi i64 [ %inc, %for.body ], [ 0, %for.body.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
%conv = trunc i64 %i.03 to i32
%mul = mul nsw i64 %i.03, -2
%mul1 = mul i64 %n, 3
%add = add i64 %mul, %mul1
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%add2 = sub i64 %n, %i.03
- %arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %add2
- %0 = load i32, i32* %arrayidx3, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %0, i32* %B.addr.02, align 4
+ %arrayidx3 = getelementptr inbounds i32, ptr %A, i64 %add2
+ %0 = load i32, ptr %arrayidx3, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %0, ptr %B.addr.02, align 4
%inc = add nsw i64 %i.03, 1
%exitcond = icmp ne i64 %inc, %n
br i1 %exitcond, label %for.body, label %for.end.loopexit
@@ -237,7 +237,7 @@ for.end: ; preds = %for.end.loopexit, %
;; A[-2*i - 2*n] = i;
;; *B++ = A[-i - n];
-define void @symbolicsiv5(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @symbolicsiv5(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
%cmp1 = icmp eq i64 %n, 0
br i1 %cmp1, label %for.end, label %for.body.preheader
@@ -254,19 +254,19 @@ for.body.preheader: ; preds = %entry
for.body: ; preds = %for.body.preheader, %for.body
%i.03 = phi i64 [ %inc, %for.body ], [ 0, %for.body.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
%conv = trunc i64 %i.03 to i32
%mul = mul nsw i64 %i.03, -2
%mul1 = shl i64 %n, 1
%sub = sub i64 %mul, %mul1
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %sub
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %sub
+ store i32 %conv, ptr %arrayidx, align 4
%sub2 = sub nsw i64 0, %i.03
%sub3 = sub i64 %sub2, %n
- %arrayidx4 = getelementptr inbounds i32, i32* %A, i64 %sub3
- %0 = load i32, i32* %arrayidx4, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %0, i32* %B.addr.02, align 4
+ %arrayidx4 = getelementptr inbounds i32, ptr %A, i64 %sub3
+ %0 = load i32, ptr %arrayidx4, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %0, ptr %B.addr.02, align 4
%inc = add nsw i64 %i.03, 1
%exitcond = icmp ne i64 %inc, %n
br i1 %exitcond, label %for.body, label %for.end.loopexit
@@ -284,7 +284,7 @@ for.end: ; preds = %for.end.loopexit, %
;; A[i + n + 1] = i;
;; *B++ = A[-i];
-define void @weaktest(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @weaktest(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
%cmp1 = icmp eq i64 %n, 0
br i1 %cmp1, label %for.end, label %for.body.preheader
@@ -302,17 +302,17 @@ for.body.preheader: ; preds = %entry
for.body: ; preds = %for.body.preheader, %for.body
%i.03 = phi i64 [ %inc, %for.body ], [ 0, %for.body.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
%conv = trunc i64 %i.03 to i32
%add = add i64 %i.03, %n
%add1 = add i64 %add, 1
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add1
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add1
+ store i32 %conv, ptr %arrayidx, align 4
%sub = sub i64 0, %i.03
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub
- %0 = load i32, i32* %arrayidx2, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %0, i32* %B.addr.02, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i64 %sub
+ %0 = load i32, ptr %arrayidx2, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %0, ptr %B.addr.02, align 4
%inc = add i64 %i.03, 1
%exitcond = icmp ne i64 %inc, %n
br i1 %exitcond, label %for.body, label %for.end.loopexit
@@ -329,7 +329,7 @@ for.end: ; preds = %for.end.loopexit, %
;; A[4*N*i + M] = i;
;; *B++ = A[4*N*i + 3*M + 1];
-define void @symbolicsiv6(i32* %A, i32* %B, i64 %n, i64 %N, i64 %M) nounwind uwtable ssp {
+define void @symbolicsiv6(ptr %A, ptr %B, i64 %n, i64 %N, i64 %M) nounwind uwtable ssp {
entry:
%cmp1 = icmp eq i64 %n, 0
br i1 %cmp1, label %for.end, label %for.body.preheader
@@ -347,22 +347,22 @@ for.body.preheader: ; preds = %entry
for.body: ; preds = %for.body.preheader, %for.body
%i.03 = phi i64 [ %inc, %for.body ], [ 0, %for.body.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
%conv = trunc i64 %i.03 to i32
%mul = shl i64 %N, 2
%mul1 = mul i64 %mul, %i.03
%add = add i64 %mul1, %M
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%mul2 = shl i64 %N, 2
%mul3 = mul i64 %mul2, %i.03
%mul4 = mul i64 %M, 3
%add5 = add i64 %mul3, %mul4
%add6 = add i64 %add5, 1
- %arrayidx7 = getelementptr inbounds i32, i32* %A, i64 %add6
- %0 = load i32, i32* %arrayidx7, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %0, i32* %B.addr.02, align 4
+ %arrayidx7 = getelementptr inbounds i32, ptr %A, i64 %add6
+ %0 = load i32, ptr %arrayidx7, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %0, ptr %B.addr.02, align 4
%inc = add nsw i64 %i.03, 1
%exitcond = icmp ne i64 %inc, %n
br i1 %exitcond, label %for.body, label %for.end.loopexit
@@ -379,7 +379,7 @@ for.end: ; preds = %for.end.loopexit, %
;; A[2*N*i + M] = i;
;; *B++ = A[2*N*i - 3*M + 2];
-define void @symbolicsiv7(i32* %A, i32* %B, i64 %n, i64 %N, i64 %M) nounwind uwtable ssp {
+define void @symbolicsiv7(ptr %A, ptr %B, i64 %n, i64 %N, i64 %M) nounwind uwtable ssp {
entry:
%cmp1 = icmp eq i64 %n, 0
br i1 %cmp1, label %for.end, label %for.body.preheader
@@ -396,22 +396,22 @@ for.body.preheader: ; preds = %entry
for.body: ; preds = %for.body.preheader, %for.body
%i.03 = phi i64 [ %inc, %for.body ], [ 0, %for.body.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
%conv = trunc i64 %i.03 to i32
%mul = shl i64 %N, 1
%mul1 = mul i64 %mul, %i.03
%add = add i64 %mul1, %M
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%mul2 = shl i64 %N, 1
%mul3 = mul i64 %mul2, %i.03
%0 = mul i64 %M, -3
%sub = add i64 %mul3, %0
%add5 = add i64 %sub, 2
- %arrayidx6 = getelementptr inbounds i32, i32* %A, i64 %add5
- %1 = load i32, i32* %arrayidx6, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %1, i32* %B.addr.02, align 4
+ %arrayidx6 = getelementptr inbounds i32, ptr %A, i64 %add5
+ %1 = load i32, ptr %arrayidx6, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %1, ptr %B.addr.02, align 4
%inc = add nsw i64 %i.03, 1
%exitcond = icmp ne i64 %inc, %n
br i1 %exitcond, label %for.body, label %for.end.loopexit
diff --git a/llvm/test/Analysis/DependenceAnalysis/UsefulGEP.ll b/llvm/test/Analysis/DependenceAnalysis/UsefulGEP.ll
index 01390a9280376..2d0e0a39df3c5 100644
--- a/llvm/test/Analysis/DependenceAnalysis/UsefulGEP.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/UsefulGEP.ll
@@ -26,7 +26,7 @@ entry:
for.cond1.preheader.lr.ph:
%idxprom = sext i32 %k to i64
- %arrayidx = getelementptr inbounds %struct.s, %struct.s* @S, i64 0, i32 1, i64 0, i64 0, i64 %idxprom
+ %arrayidx = getelementptr inbounds %struct.s, ptr @S, i64 0, i32 1, i64 0, i64 0, i64 %idxprom
br label %for.body3.preheader
for.body3.preheader:
@@ -35,8 +35,8 @@ for.body3.preheader:
for.body3:
%j.011 = phi i32 [ %inc, %for.body3 ], [ 0, %for.body3.preheader ]
- %0 = load i32, i32* %arrayidx
- store i32 %0, i32* getelementptr inbounds (%struct.s, %struct.s* @S, i64 0, i32 0, i64 0, i64 0)
+ %0 = load i32, ptr %arrayidx
+ store i32 %0, ptr @S
%inc = add nuw nsw i32 %j.011, 1
%exitcond = icmp eq i32 %inc, %N
br i1 %exitcond, label %for.inc4, label %for.body3
diff --git a/llvm/test/Analysis/DependenceAnalysis/WeakCrossingSIV.ll b/llvm/test/Analysis/DependenceAnalysis/WeakCrossingSIV.ll
index b46f4d36690ac..774c37da3d3de 100644
--- a/llvm/test/Analysis/DependenceAnalysis/WeakCrossingSIV.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/WeakCrossingSIV.ll
@@ -10,7 +10,7 @@ target triple = "x86_64-apple-macosx10.6.0"
;; A[1 + n*i] = i;
;; *B++ = A[1 - n*i];
-define void @weakcrossing0(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @weakcrossing0(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
%cmp1 = icmp eq i64 %n, 0
br i1 %cmp1, label %for.end, label %for.body.preheader
@@ -27,18 +27,18 @@ for.body.preheader: ; preds = %entry
for.body: ; preds = %for.body.preheader, %for.body
%i.03 = phi i64 [ %inc, %for.body ], [ 0, %for.body.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
%conv = trunc i64 %i.03 to i32
%mul = mul i64 %i.03, %n
%add = add i64 %mul, 1
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%mul1 = mul i64 %i.03, %n
%sub = sub i64 1, %mul1
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub
- %0 = load i32, i32* %arrayidx2, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %0, i32* %B.addr.02, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i64 %sub
+ %0 = load i32, ptr %arrayidx2, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %0, ptr %B.addr.02, align 4
%inc = add i64 %i.03, 1
%exitcond = icmp ne i64 %inc, %n
br i1 %exitcond, label %for.body, label %for.end.loopexit
@@ -55,7 +55,7 @@ for.end: ; preds = %for.end.loopexit, %
;; A[n + i] = i;
;; *B++ = A[1 + n - i];
-define void @weakcrossing1(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @weakcrossing1(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
%cmp1 = icmp eq i64 %n, 0
br i1 %cmp1, label %for.end, label %for.body.preheader
@@ -73,17 +73,17 @@ for.body.preheader: ; preds = %entry
for.body: ; preds = %for.body.preheader, %for.body
%i.03 = phi i64 [ %inc, %for.body ], [ 0, %for.body.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
%conv = trunc i64 %i.03 to i32
%add = add i64 %i.03, %n
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
%add1 = add i64 %n, 1
%sub = sub i64 %add1, %i.03
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub
- %0 = load i32, i32* %arrayidx2, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %0, i32* %B.addr.02, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i64 %sub
+ %0 = load i32, ptr %arrayidx2, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %0, ptr %B.addr.02, align 4
%inc = add i64 %i.03, 1
%exitcond = icmp ne i64 %inc, %n
br i1 %exitcond, label %for.body, label %for.end.loopexit
@@ -100,7 +100,7 @@ for.end: ; preds = %for.end.loopexit, %
;; A[i] = i;
;; *B++ = A[6 - i];
-define void @weakcrossing2(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @weakcrossing2(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -113,15 +113,15 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %i.02
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %i.02
+ store i32 %conv, ptr %arrayidx, align 4
%sub = sub i64 6, %i.02
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %sub
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %sub
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 3
br i1 %exitcond, label %for.body, label %for.end
@@ -135,7 +135,7 @@ for.end: ; preds = %for.body
;; A[i] = i;
;; *B++ = A[6 - i];
-define void @weakcrossing3(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @weakcrossing3(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -148,15 +148,15 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %i.02
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %i.02
+ store i32 %conv, ptr %arrayidx, align 4
%sub = sub i64 6, %i.02
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %sub
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %sub
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 4
br i1 %exitcond, label %for.body, label %for.end
@@ -170,7 +170,7 @@ for.end: ; preds = %for.body
;; A[i] = i;
;; *B++ = A[-6 - i];
-define void @weakcrossing4(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @weakcrossing4(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -183,15 +183,15 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %i.02
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %i.02
+ store i32 %conv, ptr %arrayidx, align 4
%sub = sub i64 -6, %i.02
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %sub
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %sub
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 10
br i1 %exitcond, label %for.body, label %for.end
@@ -205,7 +205,7 @@ for.end: ; preds = %for.body
;; A[3*i] = i;
;; *B++ = A[5 - 3*i];
-define void @weakcrossing5(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @weakcrossing5(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
%cmp1 = icmp eq i64 %n, 0
br i1 %cmp1, label %for.end, label %for.body.preheader
@@ -222,17 +222,17 @@ for.body.preheader: ; preds = %entry
for.body: ; preds = %for.body.preheader, %for.body
%i.03 = phi i64 [ %inc, %for.body ], [ 0, %for.body.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
%conv = trunc i64 %i.03 to i32
%mul = mul i64 %i.03, 3
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %mul
+ store i32 %conv, ptr %arrayidx, align 4
%0 = mul i64 %i.03, -3
%sub = add i64 %0, 5
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub
- %1 = load i32, i32* %arrayidx2, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %1, i32* %B.addr.02, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i64 %sub
+ %1 = load i32, ptr %arrayidx2, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %1, ptr %B.addr.02, align 4
%inc = add i64 %i.03, 1
%exitcond = icmp ne i64 %inc, %n
br i1 %exitcond, label %for.body, label %for.end.loopexit
@@ -249,7 +249,7 @@ for.end: ; preds = %for.end.loopexit, %
;; A[i] = i;
;; *B++ = A[5 - i];
-define void @weakcrossing6(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @weakcrossing6(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -263,15 +263,15 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %i.02
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %i.02
+ store i32 %conv, ptr %arrayidx, align 4
%sub = sub i64 5, %i.02
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %sub
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %sub
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 4
br i1 %exitcond, label %for.body, label %for.end
diff --git a/llvm/test/Analysis/DependenceAnalysis/WeakZeroDstSIV.ll b/llvm/test/Analysis/DependenceAnalysis/WeakZeroDstSIV.ll
index cb043acf76328..63774ce57c9b7 100644
--- a/llvm/test/Analysis/DependenceAnalysis/WeakZeroDstSIV.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/WeakZeroDstSIV.ll
@@ -10,7 +10,7 @@ target triple = "x86_64-apple-macosx10.6.0"
;; A[i] = 1;
;; A[0] = 2;
-define void @dstzero(i32* nocapture %A, i32 %N) {
+define void @dstzero(ptr nocapture %A, i32 %N) {
entry:
%cmp6 = icmp sgt i32 %N, 0
br i1 %cmp6, label %for.body, label %for.cond.cleanup
@@ -21,9 +21,9 @@ entry:
for.body: ; preds = %entry, %for.body
%i.07 = phi i32 [ %add, %for.body ], [ 0, %entry ]
- %arrayidx = getelementptr inbounds i32, i32* %A, i32 %i.07
- store i32 0, i32* %arrayidx, align 4
- store i32 1, i32* %A, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i32 %i.07
+ store i32 0, ptr %arrayidx, align 4
+ store i32 1, ptr %A, align 4
%add = add nuw nsw i32 %i.07, 1
%exitcond = icmp eq i32 %add, %N
br i1 %exitcond, label %for.cond.cleanup, label %for.body
@@ -39,7 +39,7 @@ for.cond.cleanup: ; preds = %for.body, %entry
;; A[2*i + 10] = i;
;; *B++ = A[10];
-define void @weakzerodst0(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @weakzerodst0(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -52,16 +52,16 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = shl i64 %i.02, 1
%add = add i64 %mul, 10
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 10
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 10
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 30
br i1 %exitcond, label %for.body, label %for.end
@@ -75,7 +75,7 @@ for.end: ; preds = %for.body
;; A[n*i + 10] = i;
;; *B++ = A[10];
-define void @weakzerodst1(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @weakzerodst1(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
%cmp1 = icmp eq i64 %n, 0
br i1 %cmp1, label %for.end, label %for.body.preheader
@@ -92,16 +92,16 @@ for.body.preheader: ; preds = %entry
for.body: ; preds = %for.body.preheader, %for.body
%i.03 = phi i64 [ %inc, %for.body ], [ 0, %for.body.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
%conv = trunc i64 %i.03 to i32
%mul = mul i64 %i.03, %n
%add = add i64 %mul, 10
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 %conv, i32* %arrayidx, align 4
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 10
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %0, i32* %B.addr.02, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 %conv, ptr %arrayidx, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 10
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %0, ptr %B.addr.02, align 4
%inc = add i64 %i.03, 1
%exitcond = icmp ne i64 %inc, %n
br i1 %exitcond, label %for.body, label %for.end.loopexit
@@ -118,7 +118,7 @@ for.end: ; preds = %for.end.loopexit, %
;; A[2*i] = i;
;; *B++ = A[10];
-define void @weakzerodst2(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @weakzerodst2(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -131,15 +131,15 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = shl i64 %i.02, 1
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
- store i32 %conv, i32* %arrayidx, align 4
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 10
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %mul
+ store i32 %conv, ptr %arrayidx, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 10
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 5
br i1 %exitcond, label %for.body, label %for.end
@@ -153,7 +153,7 @@ for.end: ; preds = %for.body
;; A[2*i] = i;
;; *B++ = A[10];
-define void @weakzerodst3(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @weakzerodst3(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -166,15 +166,15 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = shl i64 %i.02, 1
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
- store i32 %conv, i32* %arrayidx, align 4
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 10
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %mul
+ store i32 %conv, ptr %arrayidx, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 10
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 6
br i1 %exitcond, label %for.body, label %for.end
@@ -188,7 +188,7 @@ for.end: ; preds = %for.body
;; A[2*i] = i;
;; *B++ = A[10];
-define void @weakzerodst4(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @weakzerodst4(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -201,15 +201,15 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = shl i64 %i.02, 1
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
- store i32 %conv, i32* %arrayidx, align 4
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 10
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %mul
+ store i32 %conv, ptr %arrayidx, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 10
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 7
br i1 %exitcond, label %for.body, label %for.end
@@ -223,7 +223,7 @@ for.end: ; preds = %for.body
;; A[2*i] = i;
;; *B++ = A[-10];
-define void @weakzerodst5(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @weakzerodst5(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -236,15 +236,15 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
%mul = shl i64 %i.02, 1
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
- store i32 %conv, i32* %arrayidx, align 4
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 -10
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %mul
+ store i32 %conv, ptr %arrayidx, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 -10
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 7
br i1 %exitcond, label %for.body, label %for.end
@@ -258,7 +258,7 @@ for.end: ; preds = %for.body
;; A[3*i] = i;
;; *B++ = A[10];
-define void @weakzerodst6(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @weakzerodst6(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
%cmp1 = icmp eq i64 %n, 0
br i1 %cmp1, label %for.end, label %for.body.preheader
@@ -275,15 +275,15 @@ for.body.preheader: ; preds = %entry
for.body: ; preds = %for.body.preheader, %for.body
%i.03 = phi i64 [ %inc, %for.body ], [ 0, %for.body.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
%conv = trunc i64 %i.03 to i32
%mul = mul i64 %i.03, 3
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
- store i32 %conv, i32* %arrayidx, align 4
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 10
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %0, i32* %B.addr.02, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %mul
+ store i32 %conv, ptr %arrayidx, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 10
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %0, ptr %B.addr.02, align 4
%inc = add i64 %i.03, 1
%exitcond = icmp ne i64 %inc, %n
br i1 %exitcond, label %for.body, label %for.end.loopexit
diff --git a/llvm/test/Analysis/DependenceAnalysis/WeakZeroSrcSIV.ll b/llvm/test/Analysis/DependenceAnalysis/WeakZeroSrcSIV.ll
index 3fd13b00007eb..8755faa36d400 100644
--- a/llvm/test/Analysis/DependenceAnalysis/WeakZeroSrcSIV.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/WeakZeroSrcSIV.ll
@@ -10,7 +10,7 @@ target triple = "x86_64-apple-macosx10.6.0"
;; A[0] = 1;
;; A[i] = 2;
-define void @dstzero(i32* nocapture %A, i32 %N) {
+define void @dstzero(ptr nocapture %A, i32 %N) {
entry:
%cmp6 = icmp sgt i32 %N, 0
br i1 %cmp6, label %for.body, label %for.cond.cleanup
@@ -21,9 +21,9 @@ entry:
for.body: ; preds = %entry, %for.body
%i.07 = phi i32 [ %add, %for.body ], [ 0, %entry ]
- store i32 0, i32* %A, align 4
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i32 %i.07
- store i32 1, i32* %arrayidx1, align 4
+ store i32 0, ptr %A, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i32 %i.07
+ store i32 1, ptr %arrayidx1, align 4
%add = add nuw nsw i32 %i.07, 1
%exitcond = icmp eq i32 %add, %N
br i1 %exitcond, label %for.cond.cleanup, label %for.body
@@ -37,7 +37,7 @@ for.cond.cleanup: ; preds = %for.body, %entry
;; A[10] = i;
;; *B++ = A[2*i + 10];
-define void @weakzerosrc0(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @weakzerosrc0(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -50,16 +50,16 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 10
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 10
+ store i32 %conv, ptr %arrayidx, align 4
%mul = shl i64 %i.02, 1
%add = add i64 %mul, 10
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %add
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 30
br i1 %exitcond, label %for.body, label %for.end
@@ -73,7 +73,7 @@ for.end: ; preds = %for.body
;; A[10] = i;
;; *B++ = A[n*i + 10];
-define void @weakzerosrc1(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @weakzerosrc1(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
%cmp1 = icmp eq i64 %n, 0
br i1 %cmp1, label %for.end, label %for.body.preheader
@@ -90,16 +90,16 @@ for.body.preheader: ; preds = %entry
for.body: ; preds = %for.body.preheader, %for.body
%i.03 = phi i64 [ %inc, %for.body ], [ 0, %for.body.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
%conv = trunc i64 %i.03 to i32
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 10
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 10
+ store i32 %conv, ptr %arrayidx, align 4
%mul = mul i64 %i.03, %n
%add = add i64 %mul, 10
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %0, i32* %B.addr.02, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %add
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %0, ptr %B.addr.02, align 4
%inc = add i64 %i.03, 1
%exitcond = icmp ne i64 %inc, %n
br i1 %exitcond, label %for.body, label %for.end.loopexit
@@ -116,7 +116,7 @@ for.end: ; preds = %for.end.loopexit, %
;; A[10] = i;
;; *B++ = A[2*i];
-define void @weakzerosrc2(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @weakzerosrc2(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -129,15 +129,15 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 10
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 10
+ store i32 %conv, ptr %arrayidx, align 4
%mul = shl i64 %i.02, 1
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %mul
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %mul
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 5
br i1 %exitcond, label %for.body, label %for.end
@@ -151,7 +151,7 @@ for.end: ; preds = %for.body
;; A[10] = i;
;; *B++ = A[2*i];
-define void @weakzerosrc3(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @weakzerosrc3(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -164,15 +164,15 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 10
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 10
+ store i32 %conv, ptr %arrayidx, align 4
%mul = shl i64 %i.02, 1
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %mul
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %mul
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 6
br i1 %exitcond, label %for.body, label %for.end
@@ -186,7 +186,7 @@ for.end: ; preds = %for.body
;; A[10] = i;
;; *B++ = A[2*i];
-define void @weakzerosrc4(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @weakzerosrc4(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -199,15 +199,15 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 10
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 10
+ store i32 %conv, ptr %arrayidx, align 4
%mul = shl i64 %i.02, 1
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %mul
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %mul
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 7
br i1 %exitcond, label %for.body, label %for.end
@@ -221,7 +221,7 @@ for.end: ; preds = %for.body
;; A[-10] = i;
;; *B++ = A[2*i];
-define void @weakzerosrc5(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @weakzerosrc5(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
br label %for.body
@@ -234,15 +234,15 @@ entry:
for.body: ; preds = %entry, %for.body
%i.02 = phi i64 [ 0, %entry ], [ %inc, %for.body ]
- %B.addr.01 = phi i32* [ %B, %entry ], [ %incdec.ptr, %for.body ]
+ %B.addr.01 = phi ptr [ %B, %entry ], [ %incdec.ptr, %for.body ]
%conv = trunc i64 %i.02 to i32
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 -10
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 -10
+ store i32 %conv, ptr %arrayidx, align 4
%mul = shl i64 %i.02, 1
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %mul
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
- store i32 %0, i32* %B.addr.01, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %mul
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.01, i64 1
+ store i32 %0, ptr %B.addr.01, align 4
%inc = add i64 %i.02, 1
%exitcond = icmp ne i64 %inc, 7
br i1 %exitcond, label %for.body, label %for.end
@@ -256,7 +256,7 @@ for.end: ; preds = %for.body
;; A[10] = i;
;; *B++ = A[3*i];
-define void @weakzerosrc6(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @weakzerosrc6(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
%cmp1 = icmp eq i64 %n, 0
br i1 %cmp1, label %for.end, label %for.body.preheader
@@ -273,15 +273,15 @@ for.body.preheader: ; preds = %entry
for.body: ; preds = %for.body.preheader, %for.body
%i.03 = phi i64 [ %inc, %for.body ], [ 0, %for.body.preheader ]
- %B.addr.02 = phi i32* [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
+ %B.addr.02 = phi ptr [ %incdec.ptr, %for.body ], [ %B, %for.body.preheader ]
%conv = trunc i64 %i.03 to i32
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 10
- store i32 %conv, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 10
+ store i32 %conv, ptr %arrayidx, align 4
%mul = mul i64 %i.03, 3
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %mul
- %0 = load i32, i32* %arrayidx1, align 4
- %incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
- store i32 %0, i32* %B.addr.02, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %mul
+ %0 = load i32, ptr %arrayidx1, align 4
+ %incdec.ptr = getelementptr inbounds i32, ptr %B.addr.02, i64 1
+ store i32 %0, ptr %B.addr.02, align 4
%inc = add i64 %i.03, 1
%exitcond = icmp ne i64 %inc, %n
br i1 %exitcond, label %for.body, label %for.end.loopexit
diff --git a/llvm/test/Analysis/DependenceAnalysis/ZIV.ll b/llvm/test/Analysis/DependenceAnalysis/ZIV.ll
index f5543b679233c..cef88a0b3e6b1 100644
--- a/llvm/test/Analysis/DependenceAnalysis/ZIV.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/ZIV.ll
@@ -9,11 +9,11 @@ target triple = "x86_64-apple-macosx10.6.0"
;; A[n + 1] = 0;
;; *B = A[1 + n];
-define void @z0(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @z0(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
%add = add i64 %n, 1
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
- store i32 0, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %add
+ store i32 0, ptr %arrayidx, align 4
; CHECK: da analyze - none!
; CHECK: da analyze - consistent flow [|<]!
@@ -23,9 +23,9 @@ entry:
; CHECK: da analyze - none!
%add1 = add i64 %n, 1
- %arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %add1
- %0 = load i32, i32* %arrayidx2, align 4
- store i32 %0, i32* %B, align 4
+ %arrayidx2 = getelementptr inbounds i32, ptr %A, i64 %add1
+ %0 = load i32, ptr %arrayidx2, align 4
+ store i32 %0, ptr %B, align 4
ret void
}
@@ -33,10 +33,10 @@ entry:
;; A[n] = 0;
;; *B = A[n + 1];
-define void @z1(i32* %A, i32* %B, i64 %n) nounwind uwtable ssp {
+define void @z1(ptr %A, ptr %B, i64 %n) nounwind uwtable ssp {
entry:
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %n
- store i32 0, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %n
+ store i32 0, ptr %arrayidx, align 4
; CHECK: da analyze - none!
; CHECK: da analyze - none!
@@ -46,9 +46,9 @@ entry:
; CHECK: da analyze - none!
%add = add i64 %n, 1
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
- %0 = load i32, i32* %arrayidx1, align 4
- store i32 %0, i32* %B, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %add
+ %0 = load i32, ptr %arrayidx1, align 4
+ store i32 %0, ptr %B, align 4
ret void
}
@@ -56,10 +56,10 @@ entry:
;; A[n] = 0;
;; *B = A[m];
-define void @z2(i32* %A, i32* %B, i64 %n, i64 %m) nounwind uwtable ssp {
+define void @z2(ptr %A, ptr %B, i64 %n, i64 %m) nounwind uwtable ssp {
entry:
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %n
- store i32 0, i32* %arrayidx, align 4
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %n
+ store i32 0, ptr %arrayidx, align 4
; CHECK: da analyze - none!
; CHECK: da analyze - flow [|<]!
@@ -68,8 +68,8 @@ entry:
; CHECK: da analyze - confused!
; CHECK: da analyze - none!
- %arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %m
- %0 = load i32, i32* %arrayidx1, align 4
- store i32 %0, i32* %B, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %A, i64 %m
+ %0 = load i32, ptr %arrayidx1, align 4
+ store i32 %0, ptr %B, align 4
ret void
}
diff --git a/llvm/test/Analysis/DependenceAnalysis/lcssa.ll b/llvm/test/Analysis/DependenceAnalysis/lcssa.ll
index 801b24276f5b5..1e65f87920258 100644
--- a/llvm/test/Analysis/DependenceAnalysis/lcssa.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/lcssa.ll
@@ -1,10 +1,10 @@
; RUN: opt < %s -disable-output "-passes=print<da>" \
; RUN: "-aa-pipeline=basic-aa,tbaa" 2>&1 | FileCheck %s
-; CHECK: Src: %v = load i32, i32* %arrayidx1, align 4 --> Dst: store i32 %add, i32* %a.lcssa, align 4
+; CHECK: Src: %v = load i32, ptr %arrayidx1, align 4 --> Dst: store i32 %add, ptr %a.lcssa, align 4
; CHECK-NEXT: da analyze - anti [*|<]!
-define void @f(i32 *%a, i32 %n, i64 %n2) {
+define void @f(ptr %a, i32 %n, i64 %n2) {
entry:
br label %while.body
@@ -14,20 +14,20 @@ while.body:
%mul = mul i32 %n.addr, 3
%div = udiv i32 %mul, 2
%inc = add i32 %inc.phi, 1
- %incdec.ptr = getelementptr inbounds i32, i32* %a, i32 %inc
+ %incdec.ptr = getelementptr inbounds i32, ptr %a, i32 %inc
%cmp.not = icmp eq i32 %div, 1
br i1 %cmp.not, label %while.end, label %while.body
while.end:
- %a.lcssa = phi i32* [ %incdec.ptr, %while.body ]
+ %a.lcssa = phi ptr [ %incdec.ptr, %while.body ]
br label %for.body
for.body:
%indvars.iv = phi i64 [ 1, %while.end ], [ %indvars.iv.next, %for.body ]
- %arrayidx1 = getelementptr inbounds i32, i32* %a, i64 %indvars.iv
- %v = load i32, i32* %arrayidx1, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %a, i64 %indvars.iv
+ %v = load i32, ptr %arrayidx1, align 4
%add = add nsw i32 %v, 1
- store i32 %add, i32* %a.lcssa, align 4
+ store i32 %add, ptr %a.lcssa, align 4
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
%exitcond.not = icmp eq i64 %indvars.iv.next, %n2
br i1 %exitcond.not, label %ret, label %for.body
diff --git a/llvm/test/Analysis/DependenceAnalysis/new-pm-invalidation.ll b/llvm/test/Analysis/DependenceAnalysis/new-pm-invalidation.ll
index c6af10b19c5c2..37bd5243803d0 100644
--- a/llvm/test/Analysis/DependenceAnalysis/new-pm-invalidation.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/new-pm-invalidation.ll
@@ -9,8 +9,8 @@
; CHECK: da analyze - none!
; CHECK: da analyze - confused!
; CHECK: da analyze - none!
-define void @test_no_noalias(i32* %A, i32* %B) {
- store i32 1, i32* %A
- store i32 2, i32* %B
+define void @test_no_noalias(ptr %A, ptr %B) {
+ store i32 1, ptr %A
+ store i32 2, ptr %B
ret void
}
More information about the llvm-commits
mailing list