mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 12:41:49 +01:00
[opaque pointer type] Add textual IR support for explicit type parameter to load instruction
Essentially the same as the GEP change in r230786. A similar migration script can be used to update test cases, though a few more test case improvements/changes were required this time around: (r229269-r229278) import fileinput import sys import re pat = re.compile(r"((?:=|:|^)\s*load (?:atomic )?(?:volatile )?(.*?))(| addrspace\(\d+\) *)\*($| *(?:%|@|null|undef|blockaddress|getelementptr|addrspacecast|bitcast|inttoptr|\[\[[a-zA-Z]|\{\{).*$)") for line in sys.stdin: sys.stdout.write(re.sub(pat, r"\1, \2\3*\4", line)) Reviewers: rafael, dexonsmith, grosser Differential Revision: http://reviews.llvm.org/D7649 llvm-svn: 230794
This commit is contained in:
parent
5c83517500
commit
ab043ff680
@ -5241,7 +5241,11 @@ int LLParser::ParseLoad(Instruction *&Inst, PerFunctionState &PFS) {
|
|||||||
Lex.Lex();
|
Lex.Lex();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ParseTypeAndValue(Val, Loc, PFS) ||
|
Type *Ty = nullptr;
|
||||||
|
LocTy ExplicitTypeLoc = Lex.getLoc();
|
||||||
|
if (ParseType(Ty) ||
|
||||||
|
ParseToken(lltok::comma, "expected comma after load's type") ||
|
||||||
|
ParseTypeAndValue(Val, Loc, PFS) ||
|
||||||
ParseScopeAndOrdering(isAtomic, Scope, Ordering) ||
|
ParseScopeAndOrdering(isAtomic, Scope, Ordering) ||
|
||||||
ParseOptionalCommaAlign(Alignment, AteExtraComma))
|
ParseOptionalCommaAlign(Alignment, AteExtraComma))
|
||||||
return true;
|
return true;
|
||||||
@ -5254,6 +5258,10 @@ int LLParser::ParseLoad(Instruction *&Inst, PerFunctionState &PFS) {
|
|||||||
if (Ordering == Release || Ordering == AcquireRelease)
|
if (Ordering == Release || Ordering == AcquireRelease)
|
||||||
return Error(Loc, "atomic load cannot use Release ordering");
|
return Error(Loc, "atomic load cannot use Release ordering");
|
||||||
|
|
||||||
|
if (Ty != cast<PointerType>(Val->getType())->getElementType())
|
||||||
|
return Error(ExplicitTypeLoc,
|
||||||
|
"explicit pointee type doesn't match operand's pointee type");
|
||||||
|
|
||||||
Inst = new LoadInst(Val, "", isVolatile, Alignment, Ordering, Scope);
|
Inst = new LoadInst(Val, "", isVolatile, Alignment, Ordering, Scope);
|
||||||
return AteExtraComma ? InstExtraComma : InstNormal;
|
return AteExtraComma ? InstExtraComma : InstNormal;
|
||||||
}
|
}
|
||||||
|
@ -2898,10 +2898,14 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
|
|||||||
Out << ", ";
|
Out << ", ";
|
||||||
TypePrinter.print(I.getType(), Out);
|
TypePrinter.print(I.getType(), Out);
|
||||||
} else if (Operand) { // Print the normal way.
|
} else if (Operand) { // Print the normal way.
|
||||||
if (const GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(&I)) {
|
if (const auto *GEP = dyn_cast<GetElementPtrInst>(&I)) {
|
||||||
Out << ' ';
|
Out << ' ';
|
||||||
TypePrinter.print(GEP->getSourceElementType(), Out);
|
TypePrinter.print(GEP->getSourceElementType(), Out);
|
||||||
Out << ',';
|
Out << ',';
|
||||||
|
} else if (const auto *LI = dyn_cast<LoadInst>(&I)) {
|
||||||
|
Out << ' ';
|
||||||
|
TypePrinter.print(LI->getType(), Out);
|
||||||
|
Out << ", ";
|
||||||
}
|
}
|
||||||
|
|
||||||
// PrintAllTypes - Instructions who have operands of all the same type
|
// PrintAllTypes - Instructions who have operands of all the same type
|
||||||
|
@ -5,15 +5,15 @@
|
|||||||
; RUN: opt < %s -basicaa -gvn -instcombine -S | FileCheck %s
|
; RUN: opt < %s -basicaa -gvn -instcombine -S | FileCheck %s
|
||||||
|
|
||||||
define i32 @test() {
|
define i32 @test() {
|
||||||
; CHECK: %Y.DONOTREMOVE = load i32* %A
|
; CHECK: %Y.DONOTREMOVE = load i32, i32* %A
|
||||||
; CHECK: %Z = sub i32 0, %Y.DONOTREMOVE
|
; CHECK: %Z = sub i32 0, %Y.DONOTREMOVE
|
||||||
%A = alloca i32
|
%A = alloca i32
|
||||||
store i32 0, i32* %A
|
store i32 0, i32* %A
|
||||||
%X = load i32* %A
|
%X = load i32, i32* %A
|
||||||
%B = bitcast i32* %A to i8*
|
%B = bitcast i32* %A to i8*
|
||||||
%C = getelementptr i8, i8* %B, i64 1
|
%C = getelementptr i8, i8* %B, i64 1
|
||||||
store i8 1, i8* %C ; Aliases %A
|
store i8 1, i8* %C ; Aliases %A
|
||||||
%Y.DONOTREMOVE = load i32* %A
|
%Y.DONOTREMOVE = load i32, i32* %A
|
||||||
%Z = sub i32 %X, %Y.DONOTREMOVE
|
%Z = sub i32 %X, %Y.DONOTREMOVE
|
||||||
ret i32 %Z
|
ret i32 %Z
|
||||||
}
|
}
|
||||||
|
@ -6,9 +6,9 @@ define i32 @test(i32 *%Ptr, i64 %V) {
|
|||||||
; CHECK: sub i32 %X, %Y
|
; CHECK: sub i32 %X, %Y
|
||||||
%P2 = getelementptr i32, i32* %Ptr, i64 1
|
%P2 = getelementptr i32, i32* %Ptr, i64 1
|
||||||
%P1 = getelementptr i32, i32* %Ptr, i64 %V
|
%P1 = getelementptr i32, i32* %Ptr, i64 %V
|
||||||
%X = load i32* %P1
|
%X = load i32, i32* %P1
|
||||||
store i32 5, i32* %P2
|
store i32 5, i32* %P2
|
||||||
%Y = load i32* %P1
|
%Y = load i32, i32* %P1
|
||||||
%Z = sub i32 %X, %Y
|
%Z = sub i32 %X, %Y
|
||||||
ret i32 %Z
|
ret i32 %Z
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ define void @table_reindex(%struct..apr_table_t* %t.1) { ; No predecessors!
|
|||||||
|
|
||||||
loopentry: ; preds = %0, %no_exit
|
loopentry: ; preds = %0, %no_exit
|
||||||
%tmp.101 = getelementptr %struct..apr_table_t, %struct..apr_table_t* %t.1, i64 0, i32 0, i32 2
|
%tmp.101 = getelementptr %struct..apr_table_t, %struct..apr_table_t* %t.1, i64 0, i32 0, i32 2
|
||||||
%tmp.11 = load i32* %tmp.101 ; <i32> [#uses=0]
|
%tmp.11 = load i32, i32* %tmp.101 ; <i32> [#uses=0]
|
||||||
br i1 false, label %no_exit, label %UnifiedExitNode
|
br i1 false, label %no_exit, label %UnifiedExitNode
|
||||||
|
|
||||||
no_exit: ; preds = %loopentry
|
no_exit: ; preds = %loopentry
|
||||||
|
@ -2,10 +2,10 @@
|
|||||||
|
|
||||||
define i32 @MTConcat([3 x i32]* %a.1) {
|
define i32 @MTConcat([3 x i32]* %a.1) {
|
||||||
%tmp.961 = getelementptr [3 x i32], [3 x i32]* %a.1, i64 0, i64 4
|
%tmp.961 = getelementptr [3 x i32], [3 x i32]* %a.1, i64 0, i64 4
|
||||||
%tmp.97 = load i32* %tmp.961
|
%tmp.97 = load i32, i32* %tmp.961
|
||||||
%tmp.119 = getelementptr [3 x i32], [3 x i32]* %a.1, i64 1, i64 0
|
%tmp.119 = getelementptr [3 x i32], [3 x i32]* %a.1, i64 1, i64 0
|
||||||
%tmp.120 = load i32* %tmp.119
|
%tmp.120 = load i32, i32* %tmp.119
|
||||||
%tmp.1541 = getelementptr [3 x i32], [3 x i32]* %a.1, i64 0, i64 4
|
%tmp.1541 = getelementptr [3 x i32], [3 x i32]* %a.1, i64 0, i64 4
|
||||||
%tmp.155 = load i32* %tmp.1541
|
%tmp.155 = load i32, i32* %tmp.1541
|
||||||
ret i32 0
|
ret i32 0
|
||||||
}
|
}
|
||||||
|
@ -7,9 +7,9 @@
|
|||||||
|
|
||||||
define i32 @test(i32* %P) {
|
define i32 @test(i32* %P) {
|
||||||
%X = alloca i32
|
%X = alloca i32
|
||||||
%V1 = load i32* %P
|
%V1 = load i32, i32* %P
|
||||||
store i32 0, i32* %X
|
store i32 0, i32* %X
|
||||||
%V2 = load i32* %P
|
%V2 = load i32, i32* %P
|
||||||
%Diff = sub i32 %V1, %V2
|
%Diff = sub i32 %V1, %V2
|
||||||
ret i32 %Diff
|
ret i32 %Diff
|
||||||
}
|
}
|
||||||
|
@ -15,9 +15,9 @@ no_exit: ; preds = %no_exit, %entry
|
|||||||
%tmp.6 = getelementptr [3 x [3 x i32]], [3 x [3 x i32]]* %X, i32 0, i32 0, i32 %i.0.0 ; <i32*> [#uses=1]
|
%tmp.6 = getelementptr [3 x [3 x i32]], [3 x [3 x i32]]* %X, i32 0, i32 0, i32 %i.0.0 ; <i32*> [#uses=1]
|
||||||
store i32 1, i32* %tmp.6
|
store i32 1, i32* %tmp.6
|
||||||
%tmp.8 = getelementptr [3 x [3 x i32]], [3 x [3 x i32]]* %X, i32 0, i32 0, i32 0 ; <i32*> [#uses=1]
|
%tmp.8 = getelementptr [3 x [3 x i32]], [3 x [3 x i32]]* %X, i32 0, i32 0, i32 0 ; <i32*> [#uses=1]
|
||||||
%tmp.9 = load i32* %tmp.8 ; <i32> [#uses=1]
|
%tmp.9 = load i32, i32* %tmp.8 ; <i32> [#uses=1]
|
||||||
%tmp.11 = getelementptr [3 x [3 x i32]], [3 x [3 x i32]]* %X, i32 0, i32 1, i32 0 ; <i32*> [#uses=1]
|
%tmp.11 = getelementptr [3 x [3 x i32]], [3 x [3 x i32]]* %X, i32 0, i32 1, i32 0 ; <i32*> [#uses=1]
|
||||||
%tmp.12 = load i32* %tmp.11 ; <i32> [#uses=1]
|
%tmp.12 = load i32, i32* %tmp.11 ; <i32> [#uses=1]
|
||||||
%tmp.13 = add i32 %tmp.12, %tmp.9 ; <i32> [#uses=1]
|
%tmp.13 = add i32 %tmp.12, %tmp.9 ; <i32> [#uses=1]
|
||||||
%inc = add i32 %i.0.0, 1 ; <i32> [#uses=2]
|
%inc = add i32 %i.0.0, 1 ; <i32> [#uses=2]
|
||||||
%tmp.2 = icmp slt i32 %inc, %N ; <i1> [#uses=1]
|
%tmp.2 = icmp slt i32 %inc, %N ; <i1> [#uses=1]
|
||||||
|
@ -23,12 +23,12 @@ target triple = "i686-apple-darwin8"
|
|||||||
define i32 @test(%struct.closure_type* %tmp18169) {
|
define i32 @test(%struct.closure_type* %tmp18169) {
|
||||||
%tmp18174 = getelementptr %struct.closure_type, %struct.closure_type* %tmp18169, i32 0, i32 4, i32 0, i32 0 ; <i32*> [#uses=2]
|
%tmp18174 = getelementptr %struct.closure_type, %struct.closure_type* %tmp18169, i32 0, i32 4, i32 0, i32 0 ; <i32*> [#uses=2]
|
||||||
%tmp18269 = bitcast i32* %tmp18174 to %struct.STYLE* ; <%struct.STYLE*> [#uses=1]
|
%tmp18269 = bitcast i32* %tmp18174 to %struct.STYLE* ; <%struct.STYLE*> [#uses=1]
|
||||||
%A = load i32* %tmp18174 ; <i32> [#uses=1]
|
%A = load i32, i32* %tmp18174 ; <i32> [#uses=1]
|
||||||
|
|
||||||
%tmp18272 = getelementptr %struct.STYLE, %struct.STYLE* %tmp18269, i32 0, i32 0, i32 0, i32 2 ; <i16*> [#uses=1]
|
%tmp18272 = getelementptr %struct.STYLE, %struct.STYLE* %tmp18269, i32 0, i32 0, i32 0, i32 2 ; <i16*> [#uses=1]
|
||||||
store i16 123, i16* %tmp18272
|
store i16 123, i16* %tmp18272
|
||||||
|
|
||||||
%Q = load i32* %tmp18174 ; <i32> [#uses=1]
|
%Q = load i32, i32* %tmp18174 ; <i32> [#uses=1]
|
||||||
%Z = sub i32 %A, %Q ; <i32> [#uses=1]
|
%Z = sub i32 %A, %Q ; <i32> [#uses=1]
|
||||||
ret i32 %Z
|
ret i32 %Z
|
||||||
}
|
}
|
||||||
|
@ -5,10 +5,10 @@ declare i16 @llvm.cttz.i16(i16, i1)
|
|||||||
|
|
||||||
define i32 @test(i32* %P, i16* %Q) {
|
define i32 @test(i32* %P, i16* %Q) {
|
||||||
; CHECK: ret i32 0
|
; CHECK: ret i32 0
|
||||||
%A = load i16* %Q ; <i16> [#uses=1]
|
%A = load i16, i16* %Q ; <i16> [#uses=1]
|
||||||
%x = load i32* %P ; <i32> [#uses=1]
|
%x = load i32, i32* %P ; <i32> [#uses=1]
|
||||||
%B = call i16 @llvm.cttz.i16( i16 %A, i1 true ) ; <i16> [#uses=1]
|
%B = call i16 @llvm.cttz.i16( i16 %A, i1 true ) ; <i16> [#uses=1]
|
||||||
%y = load i32* %P ; <i32> [#uses=1]
|
%y = load i32, i32* %P ; <i32> [#uses=1]
|
||||||
store i16 %B, i16* %Q
|
store i16 %B, i16* %Q
|
||||||
%z = sub i32 %x, %y ; <i32> [#uses=1]
|
%z = sub i32 %x, %y ; <i32> [#uses=1]
|
||||||
ret i32 %z
|
ret i32 %z
|
||||||
|
@ -11,6 +11,6 @@ entry:
|
|||||||
store i32 1, i32* getelementptr (%struct.B* @a, i32 0, i32 0, i32 0), align 8
|
store i32 1, i32* getelementptr (%struct.B* @a, i32 0, i32 0, i32 0), align 8
|
||||||
%tmp4 = getelementptr %struct.A, %struct.A* %b, i32 0, i32 0 ;<i32*> [#uses=1]
|
%tmp4 = getelementptr %struct.A, %struct.A* %b, i32 0, i32 0 ;<i32*> [#uses=1]
|
||||||
store i32 0, i32* %tmp4, align 4
|
store i32 0, i32* %tmp4, align 4
|
||||||
%tmp7 = load i32* getelementptr (%struct.B* @a, i32 0, i32 0, i32 0), align 8 ; <i32> [#uses=1]
|
%tmp7 = load i32, i32* getelementptr (%struct.B* @a, i32 0, i32 0, i32 0), align 8 ; <i32> [#uses=1]
|
||||||
ret i32 %tmp7
|
ret i32 %tmp7
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@ entry:
|
|||||||
%tmp17 = getelementptr %struct.usb_hcd, %struct.usb_hcd* %hcd, i32 0, i32 2, i64 1
|
%tmp17 = getelementptr %struct.usb_hcd, %struct.usb_hcd* %hcd, i32 0, i32 2, i64 1
|
||||||
; <i64*> [#uses=1]
|
; <i64*> [#uses=1]
|
||||||
%tmp1718 = bitcast i64* %tmp17 to i32* ; <i32*> [#uses=1]
|
%tmp1718 = bitcast i64* %tmp17 to i32* ; <i32*> [#uses=1]
|
||||||
%tmp19 = load i32* %tmp1718, align 4 ; <i32> [#uses=0]
|
%tmp19 = load i32, i32* %tmp1718, align 4 ; <i32> [#uses=0]
|
||||||
br i1 false, label %cond_true34, label %done_okay
|
br i1 false, label %cond_true34, label %done_okay
|
||||||
|
|
||||||
cond_true34: ; preds = %entry
|
cond_true34: ; preds = %entry
|
||||||
@ -25,7 +25,7 @@ cond_true34: ; preds = %entry
|
|||||||
2305843009213693950 ; <i64*> [#uses=1]
|
2305843009213693950 ; <i64*> [#uses=1]
|
||||||
%tmp70 = bitcast i64* %tmp631 to %struct.device**
|
%tmp70 = bitcast i64* %tmp631 to %struct.device**
|
||||||
|
|
||||||
%tmp71 = load %struct.device** %tmp70, align 8
|
%tmp71 = load %struct.device*, %struct.device** %tmp70, align 8
|
||||||
|
|
||||||
ret i32 undef
|
ret i32 undef
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ target triple = "x86_64-unknown-linux-gnu"
|
|||||||
define i32 @ehci_pci_setup(%struct.usb_hcd* %hcd) {
|
define i32 @ehci_pci_setup(%struct.usb_hcd* %hcd) {
|
||||||
entry:
|
entry:
|
||||||
%tmp14 = getelementptr %struct.usb_hcd, %struct.usb_hcd* %hcd, i32 0, i32 0, i32 0 ; <%struct.device**> [#uses=1]
|
%tmp14 = getelementptr %struct.usb_hcd, %struct.usb_hcd* %hcd, i32 0, i32 0, i32 0 ; <%struct.device**> [#uses=1]
|
||||||
%tmp15 = load %struct.device** %tmp14, align 8 ; <%struct.device*> [#uses=0]
|
%tmp15 = load %struct.device*, %struct.device** %tmp14, align 8 ; <%struct.device*> [#uses=0]
|
||||||
br i1 false, label %bb25, label %return
|
br i1 false, label %bb25, label %return
|
||||||
|
|
||||||
bb25: ; preds = %entry
|
bb25: ; preds = %entry
|
||||||
@ -23,7 +23,7 @@ bb25: ; preds = %entry
|
|||||||
cond_true: ; preds = %bb25
|
cond_true: ; preds = %bb25
|
||||||
%tmp601 = getelementptr %struct.usb_hcd, %struct.usb_hcd* %hcd, i32 0, i32 1, i64 2305843009213693951 ; <i64*> [#uses=1]
|
%tmp601 = getelementptr %struct.usb_hcd, %struct.usb_hcd* %hcd, i32 0, i32 1, i64 2305843009213693951 ; <i64*> [#uses=1]
|
||||||
%tmp67 = bitcast i64* %tmp601 to %struct.device** ; <%struct.device**> [#uses=1]
|
%tmp67 = bitcast i64* %tmp601 to %struct.device** ; <%struct.device**> [#uses=1]
|
||||||
%tmp68 = load %struct.device** %tmp67, align 8 ; <%struct.device*> [#uses=0]
|
%tmp68 = load %struct.device*, %struct.device** %tmp67, align 8 ; <%struct.device*> [#uses=0]
|
||||||
ret i32 undef
|
ret i32 undef
|
||||||
|
|
||||||
return: ; preds = %bb25, %entry
|
return: ; preds = %bb25, %entry
|
||||||
|
@ -10,6 +10,6 @@ target triple = "i686-pc-linux-gnu"
|
|||||||
define void @test291() nounwind {
|
define void @test291() nounwind {
|
||||||
entry:
|
entry:
|
||||||
store i32 1138410269, i32* getelementptr ([5 x %struct.S291]* @a291, i32 0, i32 2, i32 1)
|
store i32 1138410269, i32* getelementptr ([5 x %struct.S291]* @a291, i32 0, i32 2, i32 1)
|
||||||
%tmp54 = load i32* bitcast (%struct.S291* getelementptr ([5 x %struct.S291]* @a291, i32 0, i32 2) to i32*), align 4 ; <i32> [#uses=0]
|
%tmp54 = load i32, i32* bitcast (%struct.S291* getelementptr ([5 x %struct.S291]* @a291, i32 0, i32 2) to i32*), align 4 ; <i32> [#uses=0]
|
||||||
unreachable
|
unreachable
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,6 @@ define i32 @foo() {
|
|||||||
%B = call i32* @_Znwj(i32 4)
|
%B = call i32* @_Znwj(i32 4)
|
||||||
store i32 1, i32* %A
|
store i32 1, i32* %A
|
||||||
store i32 2, i32* %B
|
store i32 2, i32* %B
|
||||||
%C = load i32* %A
|
%C = load i32, i32* %A
|
||||||
ret i32 %C
|
ret i32 %C
|
||||||
}
|
}
|
||||||
|
@ -3,12 +3,12 @@
|
|||||||
declare noalias i32* @noalias()
|
declare noalias i32* @noalias()
|
||||||
|
|
||||||
define i32 @test(i32 %x) {
|
define i32 @test(i32 %x) {
|
||||||
; CHECK: load i32* %a
|
; CHECK: load i32, i32* %a
|
||||||
%a = call i32* @noalias()
|
%a = call i32* @noalias()
|
||||||
store i32 1, i32* %a
|
store i32 1, i32* %a
|
||||||
%b = getelementptr i32, i32* %a, i32 %x
|
%b = getelementptr i32, i32* %a, i32 %x
|
||||||
store i32 2, i32* %b
|
store i32 2, i32* %b
|
||||||
|
|
||||||
%c = load i32* %a
|
%c = load i32, i32* %a
|
||||||
ret i32 %c
|
ret i32 %c
|
||||||
}
|
}
|
||||||
|
@ -5,9 +5,9 @@ define i8 @foo(i8* %ptr) {
|
|||||||
%P = getelementptr i8, i8* %ptr, i32 0
|
%P = getelementptr i8, i8* %ptr, i32 0
|
||||||
%Q = getelementptr i8, i8* %ptr, i32 1
|
%Q = getelementptr i8, i8* %ptr, i32 1
|
||||||
; CHECK: getelementptr
|
; CHECK: getelementptr
|
||||||
%X = load i8* %P
|
%X = load i8, i8* %P
|
||||||
%Y = atomicrmw add i8* %Q, i8 1 monotonic
|
%Y = atomicrmw add i8* %Q, i8 1 monotonic
|
||||||
%Z = load i8* %P
|
%Z = load i8, i8* %P
|
||||||
; CHECK-NOT: = load
|
; CHECK-NOT: = load
|
||||||
%A = sub i8 %X, %Z
|
%A = sub i8 %X, %Z
|
||||||
ret i8 %A
|
ret i8 %A
|
||||||
|
@ -23,9 +23,9 @@ bb1:
|
|||||||
|
|
||||||
bb2:
|
bb2:
|
||||||
%P = phi i32* [ %b, %bb ], [ @Y, %bb1 ]
|
%P = phi i32* [ %b, %bb ], [ @Y, %bb1 ]
|
||||||
%tmp1 = load i32* @Z, align 4
|
%tmp1 = load i32, i32* @Z, align 4
|
||||||
store i32 123, i32* %P, align 4
|
store i32 123, i32* %P, align 4
|
||||||
%tmp2 = load i32* @Z, align 4
|
%tmp2 = load i32, i32* @Z, align 4
|
||||||
br label %return
|
br label %return
|
||||||
|
|
||||||
return:
|
return:
|
||||||
|
@ -9,9 +9,9 @@ define i32 @test(i32* %tab, i32 %indvar) nounwind {
|
|||||||
%tmp31 = mul i32 %indvar, -2
|
%tmp31 = mul i32 %indvar, -2
|
||||||
%tmp32 = add i32 %tmp31, 30
|
%tmp32 = add i32 %tmp31, 30
|
||||||
%t.5 = getelementptr i32, i32* %tab, i32 %tmp32
|
%t.5 = getelementptr i32, i32* %tab, i32 %tmp32
|
||||||
%loada = load i32* %tab
|
%loada = load i32, i32* %tab
|
||||||
store i32 0, i32* %t.5
|
store i32 0, i32* %t.5
|
||||||
%loadb = load i32* %tab
|
%loadb = load i32, i32* %tab
|
||||||
%rval = add i32 %loada, %loadb
|
%rval = add i32 %loada, %loadb
|
||||||
ret i32 %rval
|
ret i32 %rval
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ define i32 @main() {
|
|||||||
store i8 0, i8* %10
|
store i8 0, i8* %10
|
||||||
%11 = getelementptr inbounds i8, i8* %10, i32 -1
|
%11 = getelementptr inbounds i8, i8* %10, i32 -1
|
||||||
store i8 0, i8* %11
|
store i8 0, i8* %11
|
||||||
%12 = load i32* %1, align 4
|
%12 = load i32, i32* %1, align 4
|
||||||
ret i32 %12
|
ret i32 %12
|
||||||
; CHECK: ret i32 %12
|
; CHECK: ret i32 %12
|
||||||
}
|
}
|
||||||
|
@ -9,10 +9,10 @@ target triple = "x86_64-apple-macosx10.8.0"
|
|||||||
|
|
||||||
define i32 @main() nounwind uwtable ssp {
|
define i32 @main() nounwind uwtable ssp {
|
||||||
entry:
|
entry:
|
||||||
%tmp = load i8* getelementptr inbounds ({ i8, i8, i8, i8, i8 }* @a, i64 0, i32 4), align 4
|
%tmp = load i8, i8* getelementptr inbounds ({ i8, i8, i8, i8, i8 }* @a, i64 0, i32 4), align 4
|
||||||
%tmp1 = or i8 %tmp, -128
|
%tmp1 = or i8 %tmp, -128
|
||||||
store i8 %tmp1, i8* getelementptr inbounds ({ i8, i8, i8, i8, i8 }* @a, i64 0, i32 4), align 4
|
store i8 %tmp1, i8* getelementptr inbounds ({ i8, i8, i8, i8, i8 }* @a, i64 0, i32 4), align 4
|
||||||
%tmp2 = load i64* bitcast ({ i8, i8, i8, i8, i8 }* @a to i64*), align 8
|
%tmp2 = load i64, i64* bitcast ({ i8, i8, i8, i8, i8 }* @a to i64*), align 8
|
||||||
store i8 11, i8* getelementptr inbounds ({ i8, i8, i8, i8, i8 }* @a, i64 0, i32 4), align 4
|
store i8 11, i8* getelementptr inbounds ({ i8, i8, i8, i8, i8 }* @a, i64 0, i32 4), align 4
|
||||||
%tmp3 = trunc i64 %tmp2 to i32
|
%tmp3 = trunc i64 %tmp2 to i32
|
||||||
ret i32 %tmp3
|
ret i32 %tmp3
|
||||||
|
@ -22,8 +22,8 @@ define void @caller_a(double* %arg_a0,
|
|||||||
%noalias_ret_a0 = call double* @noalias_returner()
|
%noalias_ret_a0 = call double* @noalias_returner()
|
||||||
%noalias_ret_a1 = call double* @noalias_returner()
|
%noalias_ret_a1 = call double* @noalias_returner()
|
||||||
|
|
||||||
%loaded_a0 = load double** %indirect_a0
|
%loaded_a0 = load double*, double** %indirect_a0
|
||||||
%loaded_a1 = load double** %indirect_a1
|
%loaded_a1 = load double*, double** %indirect_a1
|
||||||
|
|
||||||
call void @callee(double* %escape_alloca_a0)
|
call void @callee(double* %escape_alloca_a0)
|
||||||
call void @callee(double* %escape_alloca_a1)
|
call void @callee(double* %escape_alloca_a1)
|
||||||
|
@ -10,7 +10,7 @@ define i32 @foo(%struct.x* byval %a) nounwind {
|
|||||||
%tmp2 = getelementptr %struct.x, %struct.x* %a, i32 0, i32 0 ; <i32*> [#uses=2]
|
%tmp2 = getelementptr %struct.x, %struct.x* %a, i32 0, i32 0 ; <i32*> [#uses=2]
|
||||||
store i32 1, i32* %tmp2, align 4
|
store i32 1, i32* %tmp2, align 4
|
||||||
store i32 2, i32* @g, align 4
|
store i32 2, i32* @g, align 4
|
||||||
%tmp4 = load i32* %tmp2, align 4 ; <i32> [#uses=1]
|
%tmp4 = load i32, i32* %tmp2, align 4 ; <i32> [#uses=1]
|
||||||
ret i32 %tmp4
|
ret i32 %tmp4
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,9 +6,9 @@
|
|||||||
; CHECK: ret i32 0
|
; CHECK: ret i32 0
|
||||||
|
|
||||||
define i32 @main() {
|
define i32 @main() {
|
||||||
%a = load i32* @flag0
|
%a = load i32, i32* @flag0
|
||||||
%b = atomicrmw xchg i32* @turn, i32 1 monotonic
|
%b = atomicrmw xchg i32* @turn, i32 1 monotonic
|
||||||
%c = load i32* @flag0
|
%c = load i32, i32* @flag0
|
||||||
%d = sub i32 %a, %c
|
%d = sub i32 %a, %c
|
||||||
ret i32 %d
|
ret i32 %d
|
||||||
}
|
}
|
||||||
|
@ -36,6 +36,6 @@ xc:
|
|||||||
%bigbase = bitcast i8* %base to i16*
|
%bigbase = bitcast i8* %base to i16*
|
||||||
store i16 -1, i16* %bigbase
|
store i16 -1, i16* %bigbase
|
||||||
|
|
||||||
%loaded = load i8* %phi
|
%loaded = load i8, i8* %phi
|
||||||
ret i8 %loaded
|
ret i8 %loaded
|
||||||
}
|
}
|
||||||
|
@ -19,12 +19,12 @@ define i32 @different_array_test(i64 %A, i64 %B) {
|
|||||||
call void @external(i32* %Array2)
|
call void @external(i32* %Array2)
|
||||||
|
|
||||||
%pointer = getelementptr i32, i32* %Array1, i64 %A
|
%pointer = getelementptr i32, i32* %Array1, i64 %A
|
||||||
%val = load i32* %pointer
|
%val = load i32, i32* %pointer
|
||||||
|
|
||||||
%pointer2 = getelementptr i32, i32* %Array2, i64 %B
|
%pointer2 = getelementptr i32, i32* %Array2, i64 %B
|
||||||
store i32 7, i32* %pointer2
|
store i32 7, i32* %pointer2
|
||||||
|
|
||||||
%REMOVE = load i32* %pointer ; redundant with above load
|
%REMOVE = load i32, i32* %pointer ; redundant with above load
|
||||||
%retval = sub i32 %REMOVE, %val
|
%retval = sub i32 %REMOVE, %val
|
||||||
ret i32 %retval
|
ret i32 %retval
|
||||||
; CHECK: @different_array_test
|
; CHECK: @different_array_test
|
||||||
@ -41,9 +41,9 @@ define i32 @constant_array_index_test() {
|
|||||||
%P1 = getelementptr i32, i32* %Array, i64 7
|
%P1 = getelementptr i32, i32* %Array, i64 7
|
||||||
%P2 = getelementptr i32, i32* %Array, i64 6
|
%P2 = getelementptr i32, i32* %Array, i64 6
|
||||||
|
|
||||||
%A = load i32* %P1
|
%A = load i32, i32* %P1
|
||||||
store i32 1, i32* %P2 ; Should not invalidate load
|
store i32 1, i32* %P2 ; Should not invalidate load
|
||||||
%BREMOVE = load i32* %P1
|
%BREMOVE = load i32, i32* %P1
|
||||||
%Val = sub i32 %A, %BREMOVE
|
%Val = sub i32 %A, %BREMOVE
|
||||||
ret i32 %Val
|
ret i32 %Val
|
||||||
; CHECK: @constant_array_index_test
|
; CHECK: @constant_array_index_test
|
||||||
@ -53,10 +53,10 @@ define i32 @constant_array_index_test() {
|
|||||||
; Test that if two pointers are spaced out by a constant getelementptr, that
|
; Test that if two pointers are spaced out by a constant getelementptr, that
|
||||||
; they cannot alias.
|
; they cannot alias.
|
||||||
define i32 @gep_distance_test(i32* %A) {
|
define i32 @gep_distance_test(i32* %A) {
|
||||||
%REMOVEu = load i32* %A
|
%REMOVEu = load i32, i32* %A
|
||||||
%B = getelementptr i32, i32* %A, i64 2 ; Cannot alias A
|
%B = getelementptr i32, i32* %A, i64 2 ; Cannot alias A
|
||||||
store i32 7, i32* %B
|
store i32 7, i32* %B
|
||||||
%REMOVEv = load i32* %A
|
%REMOVEv = load i32, i32* %A
|
||||||
%r = sub i32 %REMOVEu, %REMOVEv
|
%r = sub i32 %REMOVEu, %REMOVEv
|
||||||
ret i32 %r
|
ret i32 %r
|
||||||
; CHECK: @gep_distance_test
|
; CHECK: @gep_distance_test
|
||||||
@ -67,10 +67,10 @@ define i32 @gep_distance_test(i32* %A) {
|
|||||||
; cannot alias, even if there is a variable offset between them...
|
; cannot alias, even if there is a variable offset between them...
|
||||||
define i32 @gep_distance_test2({i32,i32}* %A, i64 %distance) {
|
define i32 @gep_distance_test2({i32,i32}* %A, i64 %distance) {
|
||||||
%A1 = getelementptr {i32,i32}, {i32,i32}* %A, i64 0, i32 0
|
%A1 = getelementptr {i32,i32}, {i32,i32}* %A, i64 0, i32 0
|
||||||
%REMOVEu = load i32* %A1
|
%REMOVEu = load i32, i32* %A1
|
||||||
%B = getelementptr {i32,i32}, {i32,i32}* %A, i64 %distance, i32 1
|
%B = getelementptr {i32,i32}, {i32,i32}* %A, i64 %distance, i32 1
|
||||||
store i32 7, i32* %B ; B cannot alias A, it's at least 4 bytes away
|
store i32 7, i32* %B ; B cannot alias A, it's at least 4 bytes away
|
||||||
%REMOVEv = load i32* %A1
|
%REMOVEv = load i32, i32* %A1
|
||||||
%r = sub i32 %REMOVEu, %REMOVEv
|
%r = sub i32 %REMOVEu, %REMOVEv
|
||||||
ret i32 %r
|
ret i32 %r
|
||||||
; CHECK: @gep_distance_test2
|
; CHECK: @gep_distance_test2
|
||||||
@ -80,11 +80,11 @@ define i32 @gep_distance_test2({i32,i32}* %A, i64 %distance) {
|
|||||||
; Test that we can do funny pointer things and that distance calc will still
|
; Test that we can do funny pointer things and that distance calc will still
|
||||||
; work.
|
; work.
|
||||||
define i32 @gep_distance_test3(i32 * %A) {
|
define i32 @gep_distance_test3(i32 * %A) {
|
||||||
%X = load i32* %A
|
%X = load i32, i32* %A
|
||||||
%B = bitcast i32* %A to i8*
|
%B = bitcast i32* %A to i8*
|
||||||
%C = getelementptr i8, i8* %B, i64 4
|
%C = getelementptr i8, i8* %B, i64 4
|
||||||
store i8 42, i8* %C
|
store i8 42, i8* %C
|
||||||
%Y = load i32* %A
|
%Y = load i32, i32* %A
|
||||||
%R = sub i32 %X, %Y
|
%R = sub i32 %X, %Y
|
||||||
ret i32 %R
|
ret i32 %R
|
||||||
; CHECK: @gep_distance_test3
|
; CHECK: @gep_distance_test3
|
||||||
@ -96,9 +96,9 @@ define i32 @constexpr_test() {
|
|||||||
%X = alloca i32
|
%X = alloca i32
|
||||||
call void @external(i32* %X)
|
call void @external(i32* %X)
|
||||||
|
|
||||||
%Y = load i32* %X
|
%Y = load i32, i32* %X
|
||||||
store i32 5, i32* getelementptr ({ i32 }* @Global, i64 0, i32 0)
|
store i32 5, i32* getelementptr ({ i32 }* @Global, i64 0, i32 0)
|
||||||
%REMOVE = load i32* %X
|
%REMOVE = load i32, i32* %X
|
||||||
%retval = sub i32 %Y, %REMOVE
|
%retval = sub i32 %Y, %REMOVE
|
||||||
ret i32 %retval
|
ret i32 %retval
|
||||||
; CHECK: @constexpr_test
|
; CHECK: @constexpr_test
|
||||||
@ -113,12 +113,12 @@ define i16 @zext_sext_confusion(i16* %row2col, i5 %j) nounwind{
|
|||||||
entry:
|
entry:
|
||||||
%sum5.cast = zext i5 %j to i64 ; <i64> [#uses=1]
|
%sum5.cast = zext i5 %j to i64 ; <i64> [#uses=1]
|
||||||
%P1 = getelementptr i16, i16* %row2col, i64 %sum5.cast
|
%P1 = getelementptr i16, i16* %row2col, i64 %sum5.cast
|
||||||
%row2col.load.1.2 = load i16* %P1, align 1 ; <i16> [#uses=1]
|
%row2col.load.1.2 = load i16, i16* %P1, align 1 ; <i16> [#uses=1]
|
||||||
|
|
||||||
%sum13.cast31 = sext i5 %j to i6 ; <i6> [#uses=1]
|
%sum13.cast31 = sext i5 %j to i6 ; <i6> [#uses=1]
|
||||||
%sum13.cast = zext i6 %sum13.cast31 to i64 ; <i64> [#uses=1]
|
%sum13.cast = zext i6 %sum13.cast31 to i64 ; <i64> [#uses=1]
|
||||||
%P2 = getelementptr i16, i16* %row2col, i64 %sum13.cast
|
%P2 = getelementptr i16, i16* %row2col, i64 %sum13.cast
|
||||||
%row2col.load.1.6 = load i16* %P2, align 1 ; <i16> [#uses=1]
|
%row2col.load.1.6 = load i16, i16* %P2, align 1 ; <i16> [#uses=1]
|
||||||
|
|
||||||
%.ret = sub i16 %row2col.load.1.6, %row2col.load.1.2 ; <i16> [#uses=1]
|
%.ret = sub i16 %row2col.load.1.6, %row2col.load.1.2 ; <i16> [#uses=1]
|
||||||
ret i16 %.ret
|
ret i16 %.ret
|
||||||
|
@ -20,11 +20,11 @@ entry:
|
|||||||
%u = alloca %union.anon, align 8
|
%u = alloca %union.anon, align 8
|
||||||
%tmp9 = getelementptr inbounds %union.anon, %union.anon* %u, i64 0, i32 0
|
%tmp9 = getelementptr inbounds %union.anon, %union.anon* %u, i64 0, i32 0
|
||||||
store double %x, double* %tmp9, align 8, !tbaa !0
|
store double %x, double* %tmp9, align 8, !tbaa !0
|
||||||
%tmp2 = load i32* bitcast (i64* @endianness_test to i32*), align 8, !tbaa !3
|
%tmp2 = load i32, i32* bitcast (i64* @endianness_test to i32*), align 8, !tbaa !3
|
||||||
%idxprom = sext i32 %tmp2 to i64
|
%idxprom = sext i32 %tmp2 to i64
|
||||||
%tmp4 = bitcast %union.anon* %u to [2 x i32]*
|
%tmp4 = bitcast %union.anon* %u to [2 x i32]*
|
||||||
%arrayidx = getelementptr inbounds [2 x i32], [2 x i32]* %tmp4, i64 0, i64 %idxprom
|
%arrayidx = getelementptr inbounds [2 x i32], [2 x i32]* %tmp4, i64 0, i64 %idxprom
|
||||||
%tmp5 = load i32* %arrayidx, align 4, !tbaa !3
|
%tmp5 = load i32, i32* %arrayidx, align 4, !tbaa !3
|
||||||
%tmp5.lobit = lshr i32 %tmp5, 31
|
%tmp5.lobit = lshr i32 %tmp5, 31
|
||||||
ret i32 %tmp5.lobit
|
ret i32 %tmp5.lobit
|
||||||
}
|
}
|
||||||
|
@ -12,11 +12,11 @@
|
|||||||
; CHECK-NEXT: ret i32 0
|
; CHECK-NEXT: ret i32 0
|
||||||
|
|
||||||
define i32 @test() {
|
define i32 @test() {
|
||||||
%A1 = load i32* @A
|
%A1 = load i32, i32* @A
|
||||||
|
|
||||||
store i32 123, i32* @B ; Store cannot alias @A
|
store i32 123, i32* @B ; Store cannot alias @A
|
||||||
|
|
||||||
%A2 = load i32* @A
|
%A2 = load i32, i32* @A
|
||||||
%X = sub i32 %A1, %A2
|
%X = sub i32 %A1, %A2
|
||||||
ret i32 %X
|
ret i32 %X
|
||||||
}
|
}
|
||||||
@ -30,13 +30,13 @@ define i32 @test() {
|
|||||||
; CHECK-NEXT: ret i32 0
|
; CHECK-NEXT: ret i32 0
|
||||||
|
|
||||||
define i32 @test2() {
|
define i32 @test2() {
|
||||||
%A1 = load i32* @A
|
%A1 = load i32, i32* @A
|
||||||
br label %Loop
|
br label %Loop
|
||||||
Loop:
|
Loop:
|
||||||
%AP = phi i32 [0, %0], [%X, %Loop]
|
%AP = phi i32 [0, %0], [%X, %Loop]
|
||||||
store i32 %AP, i32* @B ; Store cannot alias @A
|
store i32 %AP, i32* @B ; Store cannot alias @A
|
||||||
|
|
||||||
%A2 = load i32* @A
|
%A2 = load i32, i32* @A
|
||||||
%X = sub i32 %A1, %A2
|
%X = sub i32 %A1, %A2
|
||||||
%c = icmp eq i32 %X, 0
|
%c = icmp eq i32 %X, 0
|
||||||
br i1 %c, label %out, label %Loop
|
br i1 %c, label %out, label %Loop
|
||||||
@ -55,7 +55,7 @@ define i32 @test3() {
|
|||||||
%X = alloca i32
|
%X = alloca i32
|
||||||
store i32 7, i32* %X
|
store i32 7, i32* %X
|
||||||
call void @external()
|
call void @external()
|
||||||
%V = load i32* %X
|
%V = load i32, i32* %X
|
||||||
ret i32 %V
|
ret i32 %V
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,11 +7,11 @@ define i32 @test1(i8 * %P) {
|
|||||||
entry:
|
entry:
|
||||||
%Q = bitcast i8* %P to {i32, i32}*
|
%Q = bitcast i8* %P to {i32, i32}*
|
||||||
%R = getelementptr {i32, i32}, {i32, i32}* %Q, i32 0, i32 1
|
%R = getelementptr {i32, i32}, {i32, i32}* %Q, i32 0, i32 1
|
||||||
%S = load i32* %R
|
%S = load i32, i32* %R
|
||||||
|
|
||||||
%q = bitcast i8* %P to {i32, i32}*
|
%q = bitcast i8* %P to {i32, i32}*
|
||||||
%r = getelementptr {i32, i32}, {i32, i32}* %q, i32 0, i32 1
|
%r = getelementptr {i32, i32}, {i32, i32}* %q, i32 0, i32 1
|
||||||
%s = load i32* %r
|
%s = load i32, i32* %r
|
||||||
|
|
||||||
%t = sub i32 %S, %s
|
%t = sub i32 %S, %s
|
||||||
ret i32 %t
|
ret i32 %t
|
||||||
@ -23,12 +23,12 @@ define i32 @test2(i8 * %P) {
|
|||||||
entry:
|
entry:
|
||||||
%Q = bitcast i8* %P to {i32, i32, i32}*
|
%Q = bitcast i8* %P to {i32, i32, i32}*
|
||||||
%R = getelementptr {i32, i32, i32}, {i32, i32, i32}* %Q, i32 0, i32 1
|
%R = getelementptr {i32, i32, i32}, {i32, i32, i32}* %Q, i32 0, i32 1
|
||||||
%S = load i32* %R
|
%S = load i32, i32* %R
|
||||||
|
|
||||||
%r = getelementptr {i32, i32, i32}, {i32, i32, i32}* %Q, i32 0, i32 2
|
%r = getelementptr {i32, i32, i32}, {i32, i32, i32}* %Q, i32 0, i32 2
|
||||||
store i32 42, i32* %r
|
store i32 42, i32* %r
|
||||||
|
|
||||||
%s = load i32* %R
|
%s = load i32, i32* %R
|
||||||
|
|
||||||
%t = sub i32 %S, %s
|
%t = sub i32 %S, %s
|
||||||
ret i32 %t
|
ret i32 %t
|
||||||
@ -42,12 +42,12 @@ define i32 @test3({float, {i32, i32, i32}}* %P) {
|
|||||||
entry:
|
entry:
|
||||||
%P2 = getelementptr {float, {i32, i32, i32}}, {float, {i32, i32, i32}}* %P, i32 0, i32 1
|
%P2 = getelementptr {float, {i32, i32, i32}}, {float, {i32, i32, i32}}* %P, i32 0, i32 1
|
||||||
%R = getelementptr {i32, i32, i32}, {i32, i32, i32}* %P2, i32 0, i32 1
|
%R = getelementptr {i32, i32, i32}, {i32, i32, i32}* %P2, i32 0, i32 1
|
||||||
%S = load i32* %R
|
%S = load i32, i32* %R
|
||||||
|
|
||||||
%r = getelementptr {i32, i32, i32}, {i32, i32, i32}* %P2, i32 0, i32 2
|
%r = getelementptr {i32, i32, i32}, {i32, i32, i32}* %P2, i32 0, i32 2
|
||||||
store i32 42, i32* %r
|
store i32 42, i32* %r
|
||||||
|
|
||||||
%s = load i32* %R
|
%s = load i32, i32* %R
|
||||||
|
|
||||||
%t = sub i32 %S, %s
|
%t = sub i32 %S, %s
|
||||||
ret i32 %t
|
ret i32 %t
|
||||||
@ -66,7 +66,7 @@ entry:
|
|||||||
store i32 64, i32* %tmp2, align 8
|
store i32 64, i32* %tmp2, align 8
|
||||||
%tmp3 = getelementptr inbounds %SmallPtrSet64, %SmallPtrSet64* %P, i64 0, i32 0, i32 4, i64 64
|
%tmp3 = getelementptr inbounds %SmallPtrSet64, %SmallPtrSet64* %P, i64 0, i32 0, i32 4, i64 64
|
||||||
store i8* null, i8** %tmp3, align 8
|
store i8* null, i8** %tmp3, align 8
|
||||||
%tmp4 = load i32* %tmp2, align 8
|
%tmp4 = load i32, i32* %tmp2, align 8
|
||||||
ret i32 %tmp4
|
ret i32 %tmp4
|
||||||
; CHECK-LABEL: @test4(
|
; CHECK-LABEL: @test4(
|
||||||
; CHECK: ret i32 64
|
; CHECK: ret i32 64
|
||||||
@ -77,9 +77,9 @@ define i32 @test5(i32* %p, i64 %i) {
|
|||||||
%pi = getelementptr i32, i32* %p, i64 %i
|
%pi = getelementptr i32, i32* %p, i64 %i
|
||||||
%i.next = add i64 %i, 1
|
%i.next = add i64 %i, 1
|
||||||
%pi.next = getelementptr i32, i32* %p, i64 %i.next
|
%pi.next = getelementptr i32, i32* %p, i64 %i.next
|
||||||
%x = load i32* %pi
|
%x = load i32, i32* %pi
|
||||||
store i32 42, i32* %pi.next
|
store i32 42, i32* %pi.next
|
||||||
%y = load i32* %pi
|
%y = load i32, i32* %pi
|
||||||
%z = sub i32 %x, %y
|
%z = sub i32 %x, %y
|
||||||
ret i32 %z
|
ret i32 %z
|
||||||
; CHECK-LABEL: @test5(
|
; CHECK-LABEL: @test5(
|
||||||
@ -90,9 +90,9 @@ define i32 @test5_as1_smaller_size(i32 addrspace(1)* %p, i8 %i) {
|
|||||||
%pi = getelementptr i32, i32 addrspace(1)* %p, i8 %i
|
%pi = getelementptr i32, i32 addrspace(1)* %p, i8 %i
|
||||||
%i.next = add i8 %i, 1
|
%i.next = add i8 %i, 1
|
||||||
%pi.next = getelementptr i32, i32 addrspace(1)* %p, i8 %i.next
|
%pi.next = getelementptr i32, i32 addrspace(1)* %p, i8 %i.next
|
||||||
%x = load i32 addrspace(1)* %pi
|
%x = load i32, i32 addrspace(1)* %pi
|
||||||
store i32 42, i32 addrspace(1)* %pi.next
|
store i32 42, i32 addrspace(1)* %pi.next
|
||||||
%y = load i32 addrspace(1)* %pi
|
%y = load i32, i32 addrspace(1)* %pi
|
||||||
%z = sub i32 %x, %y
|
%z = sub i32 %x, %y
|
||||||
ret i32 %z
|
ret i32 %z
|
||||||
; CHECK-LABEL: @test5_as1_smaller_size(
|
; CHECK-LABEL: @test5_as1_smaller_size(
|
||||||
@ -104,9 +104,9 @@ define i32 @test5_as1_same_size(i32 addrspace(1)* %p, i16 %i) {
|
|||||||
%pi = getelementptr i32, i32 addrspace(1)* %p, i16 %i
|
%pi = getelementptr i32, i32 addrspace(1)* %p, i16 %i
|
||||||
%i.next = add i16 %i, 1
|
%i.next = add i16 %i, 1
|
||||||
%pi.next = getelementptr i32, i32 addrspace(1)* %p, i16 %i.next
|
%pi.next = getelementptr i32, i32 addrspace(1)* %p, i16 %i.next
|
||||||
%x = load i32 addrspace(1)* %pi
|
%x = load i32, i32 addrspace(1)* %pi
|
||||||
store i32 42, i32 addrspace(1)* %pi.next
|
store i32 42, i32 addrspace(1)* %pi.next
|
||||||
%y = load i32 addrspace(1)* %pi
|
%y = load i32, i32 addrspace(1)* %pi
|
||||||
%z = sub i32 %x, %y
|
%z = sub i32 %x, %y
|
||||||
ret i32 %z
|
ret i32 %z
|
||||||
; CHECK-LABEL: @test5_as1_same_size(
|
; CHECK-LABEL: @test5_as1_same_size(
|
||||||
@ -119,9 +119,9 @@ define i32 @test6(i32* %p, i64 %i1) {
|
|||||||
%pi = getelementptr i32, i32* %p, i64 %i
|
%pi = getelementptr i32, i32* %p, i64 %i
|
||||||
%i.next = or i64 %i, 1
|
%i.next = or i64 %i, 1
|
||||||
%pi.next = getelementptr i32, i32* %p, i64 %i.next
|
%pi.next = getelementptr i32, i32* %p, i64 %i.next
|
||||||
%x = load i32* %pi
|
%x = load i32, i32* %pi
|
||||||
store i32 42, i32* %pi.next
|
store i32 42, i32* %pi.next
|
||||||
%y = load i32* %pi
|
%y = load i32, i32* %pi
|
||||||
%z = sub i32 %x, %y
|
%z = sub i32 %x, %y
|
||||||
ret i32 %z
|
ret i32 %z
|
||||||
; CHECK-LABEL: @test6(
|
; CHECK-LABEL: @test6(
|
||||||
@ -133,9 +133,9 @@ define i32 @test7(i32* %p, i64 %i) {
|
|||||||
%pi = getelementptr i32, i32* %p, i64 1
|
%pi = getelementptr i32, i32* %p, i64 1
|
||||||
%i.next = shl i64 %i, 2
|
%i.next = shl i64 %i, 2
|
||||||
%pi.next = getelementptr i32, i32* %p, i64 %i.next
|
%pi.next = getelementptr i32, i32* %p, i64 %i.next
|
||||||
%x = load i32* %pi
|
%x = load i32, i32* %pi
|
||||||
store i32 42, i32* %pi.next
|
store i32 42, i32* %pi.next
|
||||||
%y = load i32* %pi
|
%y = load i32, i32* %pi
|
||||||
%z = sub i32 %x, %y
|
%z = sub i32 %x, %y
|
||||||
ret i32 %z
|
ret i32 %z
|
||||||
; CHECK-LABEL: @test7(
|
; CHECK-LABEL: @test7(
|
||||||
@ -150,9 +150,9 @@ define i32 @test8(i32* %p, i16 %i) {
|
|||||||
%i.next = add i16 %i, 1
|
%i.next = add i16 %i, 1
|
||||||
%i.next2 = zext i16 %i.next to i32
|
%i.next2 = zext i16 %i.next to i32
|
||||||
%pi.next = getelementptr i32, i32* %p, i32 %i.next2
|
%pi.next = getelementptr i32, i32* %p, i32 %i.next2
|
||||||
%x = load i32* %pi
|
%x = load i32, i32* %pi
|
||||||
store i32 42, i32* %pi.next
|
store i32 42, i32* %pi.next
|
||||||
%y = load i32* %pi
|
%y = load i32, i32* %pi
|
||||||
%z = sub i32 %x, %y
|
%z = sub i32 %x, %y
|
||||||
ret i32 %z
|
ret i32 %z
|
||||||
; CHECK-LABEL: @test8(
|
; CHECK-LABEL: @test8(
|
||||||
@ -170,9 +170,9 @@ define i8 @test9([4 x i8] *%P, i32 %i, i32 %j) {
|
|||||||
; P4 = P + 4*j
|
; P4 = P + 4*j
|
||||||
%P4 = getelementptr [4 x i8], [4 x i8]* %P, i32 0, i32 %j2
|
%P4 = getelementptr [4 x i8], [4 x i8]* %P, i32 0, i32 %j2
|
||||||
|
|
||||||
%x = load i8* %P2
|
%x = load i8, i8* %P2
|
||||||
store i8 42, i8* %P4
|
store i8 42, i8* %P4
|
||||||
%y = load i8* %P2
|
%y = load i8, i8* %P2
|
||||||
%z = sub i8 %x, %y
|
%z = sub i8 %x, %y
|
||||||
ret i8 %z
|
ret i8 %z
|
||||||
; CHECK-LABEL: @test9(
|
; CHECK-LABEL: @test9(
|
||||||
@ -188,9 +188,9 @@ define i8 @test10([4 x i8] *%P, i32 %i) {
|
|||||||
; P4 = P + 4*i
|
; P4 = P + 4*i
|
||||||
%P4 = getelementptr [4 x i8], [4 x i8]* %P, i32 0, i32 %i2
|
%P4 = getelementptr [4 x i8], [4 x i8]* %P, i32 0, i32 %i2
|
||||||
|
|
||||||
%x = load i8* %P2
|
%x = load i8, i8* %P2
|
||||||
store i8 42, i8* %P4
|
store i8 42, i8* %P4
|
||||||
%y = load i8* %P2
|
%y = load i8, i8* %P2
|
||||||
%z = sub i8 %x, %y
|
%z = sub i8 %x, %y
|
||||||
ret i8 %z
|
ret i8 %z
|
||||||
; CHECK-LABEL: @test10(
|
; CHECK-LABEL: @test10(
|
||||||
@ -207,7 +207,7 @@ define float @test11(i32 %indvar, [4 x [2 x float]]* %q) nounwind ssp {
|
|||||||
%y29 = getelementptr inbounds [2 x float], [2 x float]* %arrayidx28, i32 0, i32 1
|
%y29 = getelementptr inbounds [2 x float], [2 x float]* %arrayidx28, i32 0, i32 1
|
||||||
store float 1.0, float* %y29, align 4
|
store float 1.0, float* %y29, align 4
|
||||||
store i64 0, i64* %scevgep35, align 4
|
store i64 0, i64* %scevgep35, align 4
|
||||||
%tmp30 = load float* %y29, align 4
|
%tmp30 = load float, float* %y29, align 4
|
||||||
ret float %tmp30
|
ret float %tmp30
|
||||||
; CHECK-LABEL: @test11(
|
; CHECK-LABEL: @test11(
|
||||||
; CHECK: ret float %tmp30
|
; CHECK: ret float %tmp30
|
||||||
@ -223,7 +223,7 @@ define i32 @test12(i32 %x, i32 %y, i8* %p) nounwind {
|
|||||||
%castp = bitcast i8* %p to i32*
|
%castp = bitcast i8* %p to i32*
|
||||||
store i32 1, i32* %castp
|
store i32 1, i32* %castp
|
||||||
store i32 0, i32* %castd
|
store i32 0, i32* %castd
|
||||||
%r = load i32* %castp
|
%r = load i32, i32* %castp
|
||||||
ret i32 %r
|
ret i32 %r
|
||||||
; CHECK-LABEL: @test12(
|
; CHECK-LABEL: @test12(
|
||||||
; CHECK: ret i32 %r
|
; CHECK: ret i32 %r
|
||||||
|
@ -8,9 +8,9 @@ target datalayout = "E-p:64:64:64-p1:16:16:16-a0:0:8-f32:32:32-f64:64:64-i1:8:8-
|
|||||||
|
|
||||||
; CHECK-LABEL: @test1(
|
; CHECK-LABEL: @test1(
|
||||||
define i16 @test1(i32* %P) {
|
define i16 @test1(i32* %P) {
|
||||||
%X = load i16* @B
|
%X = load i16, i16* @B
|
||||||
store i32 7, i32* %P
|
store i32 7, i32* %P
|
||||||
%Y = load i16* @B
|
%Y = load i16, i16* @B
|
||||||
%Z = sub i16 %Y, %X
|
%Z = sub i16 %Y, %X
|
||||||
ret i16 %Z
|
ret i16 %Z
|
||||||
; CHECK: ret i16 0
|
; CHECK: ret i16 0
|
||||||
@ -21,9 +21,9 @@ define i16 @test1(i32* %P) {
|
|||||||
define i16 @test1_as1(i32 addrspace(1)* %P) {
|
define i16 @test1_as1(i32 addrspace(1)* %P) {
|
||||||
; CHECK-LABEL: @test1_as1(
|
; CHECK-LABEL: @test1_as1(
|
||||||
; CHECK: ret i16 0
|
; CHECK: ret i16 0
|
||||||
%X = load i16 addrspace(1)* @B_as1
|
%X = load i16, i16 addrspace(1)* @B_as1
|
||||||
store i32 7, i32 addrspace(1)* %P
|
store i32 7, i32 addrspace(1)* %P
|
||||||
%Y = load i16 addrspace(1)* @B_as1
|
%Y = load i16, i16 addrspace(1)* @B_as1
|
||||||
%Z = sub i16 %Y, %X
|
%Z = sub i16 %Y, %X
|
||||||
ret i16 %Z
|
ret i16 %Z
|
||||||
}
|
}
|
||||||
@ -39,10 +39,10 @@ define i8 @test2(i32 %tmp79, i32 %w.2, i32 %indvar89) nounwind {
|
|||||||
%tmp93 = add i32 %w.2, %indvar89
|
%tmp93 = add i32 %w.2, %indvar89
|
||||||
%arrayidx416 = getelementptr [0 x i8], [0 x i8]* @window, i32 0, i32 %tmp93
|
%arrayidx416 = getelementptr [0 x i8], [0 x i8]* @window, i32 0, i32 %tmp93
|
||||||
|
|
||||||
%A = load i8* %arrayidx412, align 1
|
%A = load i8, i8* %arrayidx412, align 1
|
||||||
store i8 4, i8* %arrayidx416, align 1
|
store i8 4, i8* %arrayidx416, align 1
|
||||||
|
|
||||||
%B = load i8* %arrayidx412, align 1
|
%B = load i8, i8* %arrayidx412, align 1
|
||||||
%C = sub i8 %A, %B
|
%C = sub i8 %A, %B
|
||||||
ret i8 %C
|
ret i8 %C
|
||||||
|
|
||||||
|
@ -10,15 +10,15 @@
|
|||||||
|
|
||||||
define i32 @foo(i32* nocapture %p, i8* nocapture %q) {
|
define i32 @foo(i32* nocapture %p, i8* nocapture %q) {
|
||||||
entry:
|
entry:
|
||||||
%0 = load i32* %p, align 4, !invariant.load !3
|
%0 = load i32, i32* %p, align 4, !invariant.load !3
|
||||||
%conv = trunc i32 %0 to i8
|
%conv = trunc i32 %0 to i8
|
||||||
store i8 %conv, i8* %q, align 1
|
store i8 %conv, i8* %q, align 1
|
||||||
%1 = load i32* %p, align 4, !invariant.load !3
|
%1 = load i32, i32* %p, align 4, !invariant.load !3
|
||||||
%add = add nsw i32 %1, 1
|
%add = add nsw i32 %1, 1
|
||||||
ret i32 %add
|
ret i32 %add
|
||||||
|
|
||||||
; CHECK: foo
|
; CHECK: foo
|
||||||
; CHECK: %0 = load i32* %p
|
; CHECK: %0 = load i32, i32* %p
|
||||||
; CHECK: store i8 %conv, i8* %q,
|
; CHECK: store i8 %conv, i8* %q,
|
||||||
; CHECK: %add = add nsw i32 %0, 1
|
; CHECK: %add = add nsw i32 %0, 1
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ entry:
|
|||||||
store i32 1, i32* @z
|
store i32 1, i32* @z
|
||||||
tail call void @memset_pattern16(i8* bitcast (i32* @y to i8*), i8* bitcast (i32* @x to i8*), i64 4) nounwind
|
tail call void @memset_pattern16(i8* bitcast (i32* @y to i8*), i8* bitcast (i32* @x to i8*), i64 4) nounwind
|
||||||
; CHECK-NOT: load
|
; CHECK-NOT: load
|
||||||
%l = load i32* @z
|
%l = load i32, i32* @z
|
||||||
; CHECK: ret i32 1
|
; CHECK: ret i32 1
|
||||||
ret i32 %l
|
ret i32 %l
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ define i32 @test0(i8* %P) {
|
|||||||
|
|
||||||
call void @llvm.memset.p0i8.i32(i8* %P, i8 0, i32 42, i32 1, i1 false)
|
call void @llvm.memset.p0i8.i32(i8* %P, i8 0, i32 42, i32 1, i1 false)
|
||||||
|
|
||||||
%B = load i32* %A
|
%B = load i32, i32* %A
|
||||||
ret i32 %B
|
ret i32 %B
|
||||||
|
|
||||||
; CHECK-LABEL: @test0
|
; CHECK-LABEL: @test0
|
||||||
@ -29,7 +29,7 @@ define i8 @test1() {
|
|||||||
|
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i8(i8* %A, i8* %B, i8 -1, i32 0, i1 false)
|
call void @llvm.memcpy.p0i8.p0i8.i8(i8* %A, i8* %B, i8 -1, i32 0, i1 false)
|
||||||
|
|
||||||
%C = load i8* %B
|
%C = load i8, i8* %B
|
||||||
ret i8 %C
|
ret i8 %C
|
||||||
; CHECK: ret i8 2
|
; CHECK: ret i8 2
|
||||||
}
|
}
|
||||||
@ -39,7 +39,7 @@ define i8 @test2(i8* %P) {
|
|||||||
%P2 = getelementptr i8, i8* %P, i32 127
|
%P2 = getelementptr i8, i8* %P, i32 127
|
||||||
store i8 1, i8* %P2 ;; Not dead across memset
|
store i8 1, i8* %P2 ;; Not dead across memset
|
||||||
call void @llvm.memset.p0i8.i8(i8* %P, i8 2, i8 127, i32 0, i1 false)
|
call void @llvm.memset.p0i8.i8(i8* %P, i8 2, i8 127, i32 0, i1 false)
|
||||||
%A = load i8* %P2
|
%A = load i8, i8* %P2
|
||||||
ret i8 %A
|
ret i8 %A
|
||||||
; CHECK: ret i8 1
|
; CHECK: ret i8 1
|
||||||
}
|
}
|
||||||
@ -52,7 +52,7 @@ define i8 @test2a(i8* %P) {
|
|||||||
store i8 1, i8* %P2 ;; Dead, clobbered by memset.
|
store i8 1, i8* %P2 ;; Dead, clobbered by memset.
|
||||||
|
|
||||||
call void @llvm.memset.p0i8.i8(i8* %P, i8 2, i8 127, i32 0, i1 false)
|
call void @llvm.memset.p0i8.i8(i8* %P, i8 2, i8 127, i32 0, i1 false)
|
||||||
%A = load i8* %P2
|
%A = load i8, i8* %P2
|
||||||
ret i8 %A
|
ret i8 %A
|
||||||
; CHECK-NOT: load
|
; CHECK-NOT: load
|
||||||
; CHECK: ret i8 2
|
; CHECK: ret i8 2
|
||||||
@ -90,9 +90,9 @@ define void @test3a(i8* %P, i8 %X) {
|
|||||||
@G2 = external global [4000 x i32]
|
@G2 = external global [4000 x i32]
|
||||||
|
|
||||||
define i32 @test4(i8* %P) {
|
define i32 @test4(i8* %P) {
|
||||||
%tmp = load i32* @G1
|
%tmp = load i32, i32* @G1
|
||||||
call void @llvm.memset.p0i8.i32(i8* bitcast ([4000 x i32]* @G2 to i8*), i8 0, i32 4000, i32 1, i1 false)
|
call void @llvm.memset.p0i8.i32(i8* bitcast ([4000 x i32]* @G2 to i8*), i8 0, i32 4000, i32 1, i1 false)
|
||||||
%tmp2 = load i32* @G1
|
%tmp2 = load i32, i32* @G1
|
||||||
%sub = sub i32 %tmp2, %tmp
|
%sub = sub i32 %tmp2, %tmp
|
||||||
ret i32 %sub
|
ret i32 %sub
|
||||||
; CHECK-LABEL: @test4
|
; CHECK-LABEL: @test4
|
||||||
@ -105,9 +105,9 @@ define i32 @test4(i8* %P) {
|
|||||||
; Verify that basicaa is handling variable length memcpy, knowing it doesn't
|
; Verify that basicaa is handling variable length memcpy, knowing it doesn't
|
||||||
; write to G1.
|
; write to G1.
|
||||||
define i32 @test5(i8* %P, i32 %Len) {
|
define i32 @test5(i8* %P, i32 %Len) {
|
||||||
%tmp = load i32* @G1
|
%tmp = load i32, i32* @G1
|
||||||
call void @llvm.memcpy.p0i8.p0i8.i32(i8* bitcast ([4000 x i32]* @G2 to i8*), i8* bitcast (i32* @G1 to i8*), i32 %Len, i32 1, i1 false)
|
call void @llvm.memcpy.p0i8.p0i8.i32(i8* bitcast ([4000 x i32]* @G2 to i8*), i8* bitcast (i32* @G1 to i8*), i32 %Len, i32 1, i1 false)
|
||||||
%tmp2 = load i32* @G1
|
%tmp2 = load i32, i32* @G1
|
||||||
%sub = sub i32 %tmp2, %tmp
|
%sub = sub i32 %tmp2, %tmp
|
||||||
ret i32 %sub
|
ret i32 %sub
|
||||||
; CHECK: @test5
|
; CHECK: @test5
|
||||||
@ -118,13 +118,13 @@ define i32 @test5(i8* %P, i32 %Len) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
define i8 @test6(i8* %p, i8* noalias %a) {
|
define i8 @test6(i8* %p, i8* noalias %a) {
|
||||||
%x = load i8* %a
|
%x = load i8, i8* %a
|
||||||
%t = va_arg i8* %p, float
|
%t = va_arg i8* %p, float
|
||||||
%y = load i8* %a
|
%y = load i8, i8* %a
|
||||||
%z = add i8 %x, %y
|
%z = add i8 %x, %y
|
||||||
ret i8 %z
|
ret i8 %z
|
||||||
; CHECK-LABEL: @test6
|
; CHECK-LABEL: @test6
|
||||||
; CHECK: load i8* %a
|
; CHECK: load i8, i8* %a
|
||||||
; CHECK-NOT: load
|
; CHECK-NOT: load
|
||||||
; CHECK: ret
|
; CHECK: ret
|
||||||
}
|
}
|
||||||
@ -137,12 +137,12 @@ entry:
|
|||||||
store i32 0, i32* %x, align 4
|
store i32 0, i32* %x, align 4
|
||||||
%add.ptr = getelementptr inbounds i32, i32* %x, i64 1
|
%add.ptr = getelementptr inbounds i32, i32* %x, i64 1
|
||||||
call void @test7decl(i32* %add.ptr)
|
call void @test7decl(i32* %add.ptr)
|
||||||
%tmp = load i32* %x, align 4
|
%tmp = load i32, i32* %x, align 4
|
||||||
ret i32 %tmp
|
ret i32 %tmp
|
||||||
; CHECK-LABEL: @test7(
|
; CHECK-LABEL: @test7(
|
||||||
; CHECK: store i32 0
|
; CHECK: store i32 0
|
||||||
; CHECK: call void @test7decl
|
; CHECK: call void @test7decl
|
||||||
; CHECK: load i32*
|
; CHECK: load i32, i32*
|
||||||
}
|
}
|
||||||
|
|
||||||
declare void @llvm.memset.p0i8.i32(i8* nocapture, i8, i32, i32, i1) nounwind
|
declare void @llvm.memset.p0i8.i32(i8* nocapture, i8, i32, i32, i1) nounwind
|
||||||
|
@ -20,7 +20,7 @@ green:
|
|||||||
%bigbase0 = bitcast i8* %base to i16*
|
%bigbase0 = bitcast i8* %base to i16*
|
||||||
store i16 -1, i16* %bigbase0
|
store i16 -1, i16* %bigbase0
|
||||||
|
|
||||||
%loaded = load i8* %phi
|
%loaded = load i8, i8* %phi
|
||||||
ret i8 %loaded
|
ret i8 %loaded
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -34,6 +34,6 @@ entry:
|
|||||||
%bigbase1 = bitcast i8* %base to i16*
|
%bigbase1 = bitcast i8* %base to i16*
|
||||||
store i16 -1, i16* %bigbase1
|
store i16 -1, i16* %bigbase1
|
||||||
|
|
||||||
%loaded = load i8* %sel
|
%loaded = load i8, i8* %sel
|
||||||
ret i8 %loaded
|
ret i8 %loaded
|
||||||
}
|
}
|
||||||
|
@ -12,9 +12,9 @@ entry:
|
|||||||
store i8* %tmp2, i8** %tmp4, align 4
|
store i8* %tmp2, i8** %tmp4, align 4
|
||||||
%tmp10 = getelementptr i8, i8* %tmp2, i32 10 ; <i8*> [#uses=1]
|
%tmp10 = getelementptr i8, i8* %tmp2, i32 10 ; <i8*> [#uses=1]
|
||||||
store i8 42, i8* %tmp10, align 1
|
store i8 42, i8* %tmp10, align 1
|
||||||
%tmp14 = load i8** %tmp4, align 4 ; <i8*> [#uses=1]
|
%tmp14 = load i8*, i8** %tmp4, align 4 ; <i8*> [#uses=1]
|
||||||
%tmp16 = getelementptr i8, i8* %tmp14, i32 10 ; <i8*> [#uses=1]
|
%tmp16 = getelementptr i8, i8* %tmp14, i32 10 ; <i8*> [#uses=1]
|
||||||
%tmp17 = load i8* %tmp16, align 1 ; <i8> [#uses=1]
|
%tmp17 = load i8, i8* %tmp16, align 1 ; <i8> [#uses=1]
|
||||||
%tmp19 = icmp eq i8 %tmp17, 42 ; <i1> [#uses=1]
|
%tmp19 = icmp eq i8 %tmp17, 42 ; <i1> [#uses=1]
|
||||||
ret i1 %tmp19
|
ret i1 %tmp19
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ define i64 @testcase(%nested * noalias %p1, %nested * noalias %p2,
|
|||||||
; CHECK; store i64 1
|
; CHECK; store i64 1
|
||||||
|
|
||||||
store i64 2, i64* %ptr.64, align 8
|
store i64 2, i64* %ptr.64, align 8
|
||||||
%r = load i64* %either_ptr.64, align 8
|
%r = load i64, i64* %either_ptr.64, align 8
|
||||||
store i64 1, i64* %ptr.64, align 8
|
store i64 1, i64* %ptr.64, align 8
|
||||||
ret i64 %r
|
ret i64 %r
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@ define void @no(i32* noalias %a, i32* %b) nounwind {
|
|||||||
entry:
|
entry:
|
||||||
store i32 1, i32* %a
|
store i32 1, i32* %a
|
||||||
%cap = call i32* @captures(i32* %a) nounwind readonly
|
%cap = call i32* @captures(i32* %a) nounwind readonly
|
||||||
%l = load i32* %b
|
%l = load i32, i32* %b
|
||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -16,7 +16,7 @@ define void @yes(i32* %c, i32* %d) nounwind {
|
|||||||
entry:
|
entry:
|
||||||
store i32 1, i32* %c
|
store i32 1, i32* %c
|
||||||
%cap = call i32* @captures(i32* %c) nounwind readonly
|
%cap = call i32* @captures(i32* %c) nounwind readonly
|
||||||
%l = load i32* %d
|
%l = load i32, i32* %d
|
||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,9 +6,9 @@ define i32 @test2() {
|
|||||||
; CHECK: ret i32 0
|
; CHECK: ret i32 0
|
||||||
%P = alloca i32
|
%P = alloca i32
|
||||||
%Q = call i32* @test(i32* %P)
|
%Q = call i32* @test(i32* %P)
|
||||||
%a = load i32* %P
|
%a = load i32, i32* %P
|
||||||
store i32 4, i32* %Q ;; cannot clobber P since it is nocapture.
|
store i32 4, i32* %Q ;; cannot clobber P since it is nocapture.
|
||||||
%b = load i32* %P
|
%b = load i32, i32* %P
|
||||||
%c = sub i32 %a, %b
|
%c = sub i32 %a, %b
|
||||||
ret i32 %c
|
ret i32 %c
|
||||||
}
|
}
|
||||||
@ -19,7 +19,7 @@ define i32 @test4(i32* noalias nocapture %p) nounwind {
|
|||||||
; CHECK: call void @test3
|
; CHECK: call void @test3
|
||||||
; CHECK: store i32 0, i32* %p
|
; CHECK: store i32 0, i32* %p
|
||||||
; CHECK: store i32 1, i32* %x
|
; CHECK: store i32 1, i32* %x
|
||||||
; CHECK: %y = load i32* %p
|
; CHECK: %y = load i32, i32* %p
|
||||||
; CHECK: ret i32 %y
|
; CHECK: ret i32 %y
|
||||||
entry:
|
entry:
|
||||||
%q = alloca i32*
|
%q = alloca i32*
|
||||||
@ -27,10 +27,10 @@ entry:
|
|||||||
; attribute since the copy doesn't outlive the function.
|
; attribute since the copy doesn't outlive the function.
|
||||||
call void @test3(i32** %q, i32* %p) nounwind
|
call void @test3(i32** %q, i32* %p) nounwind
|
||||||
store i32 0, i32* %p
|
store i32 0, i32* %p
|
||||||
%x = load i32** %q
|
%x = load i32*, i32** %q
|
||||||
; This store might write to %p and so we can't eliminate the subsequent
|
; This store might write to %p and so we can't eliminate the subsequent
|
||||||
; load
|
; load
|
||||||
store i32 1, i32* %x
|
store i32 1, i32* %x
|
||||||
%y = load i32* %p
|
%y = load i32, i32* %p
|
||||||
ret i32 %y
|
ret i32 %y
|
||||||
}
|
}
|
||||||
|
@ -25,9 +25,9 @@ bb1:
|
|||||||
|
|
||||||
bb2:
|
bb2:
|
||||||
%P = phi i32* [ @X, %bb ], [ @Y, %bb1 ]
|
%P = phi i32* [ @X, %bb ], [ @Y, %bb1 ]
|
||||||
%tmp1 = load i32* @Z, align 4
|
%tmp1 = load i32, i32* @Z, align 4
|
||||||
store i32 123, i32* %P, align 4
|
store i32 123, i32* %P, align 4
|
||||||
%tmp2 = load i32* @Z, align 4
|
%tmp2 = load i32, i32* @Z, align 4
|
||||||
br label %return
|
br label %return
|
||||||
|
|
||||||
return:
|
return:
|
||||||
@ -52,14 +52,14 @@ codeRepl:
|
|||||||
br i1 %targetBlock, label %for.body, label %bye
|
br i1 %targetBlock, label %for.body, label %bye
|
||||||
|
|
||||||
for.body:
|
for.body:
|
||||||
%1 = load i32* %jj7, align 4
|
%1 = load i32, i32* %jj7, align 4
|
||||||
%idxprom4 = zext i32 %1 to i64
|
%idxprom4 = zext i32 %1 to i64
|
||||||
%arrayidx5 = getelementptr inbounds [100 x i32], [100 x i32]* %oa5, i64 0, i64 %idxprom4
|
%arrayidx5 = getelementptr inbounds [100 x i32], [100 x i32]* %oa5, i64 0, i64 %idxprom4
|
||||||
%2 = load i32* %arrayidx5, align 4
|
%2 = load i32, i32* %arrayidx5, align 4
|
||||||
%sub6 = sub i32 %2, 6
|
%sub6 = sub i32 %2, 6
|
||||||
store i32 %sub6, i32* %arrayidx5, align 4
|
store i32 %sub6, i32* %arrayidx5, align 4
|
||||||
; %0 and %arrayidx5 can alias! It is not safe to DSE the above store.
|
; %0 and %arrayidx5 can alias! It is not safe to DSE the above store.
|
||||||
%3 = load i32* %0, align 4
|
%3 = load i32, i32* %0, align 4
|
||||||
store i32 %3, i32* %arrayidx5, align 4
|
store i32 %3, i32* %arrayidx5, align 4
|
||||||
%sub11 = add i32 %1, -1
|
%sub11 = add i32 %1, -1
|
||||||
%idxprom12 = zext i32 %sub11 to i64
|
%idxprom12 = zext i32 %sub11 to i64
|
||||||
@ -68,7 +68,7 @@ for.body:
|
|||||||
br label %codeRepl
|
br label %codeRepl
|
||||||
|
|
||||||
bye:
|
bye:
|
||||||
%.reload = load i32* %jj7, align 4
|
%.reload = load i32, i32* %jj7, align 4
|
||||||
ret i32 %.reload
|
ret i32 %.reload
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,20 +24,20 @@ for.body4: ; preds = %for.body4, %for.con
|
|||||||
%lsr.iv46 = bitcast [16000 x double]* %lsr.iv4 to <4 x double>*
|
%lsr.iv46 = bitcast [16000 x double]* %lsr.iv4 to <4 x double>*
|
||||||
%lsr.iv12 = bitcast [16000 x double]* %lsr.iv1 to <4 x double>*
|
%lsr.iv12 = bitcast [16000 x double]* %lsr.iv1 to <4 x double>*
|
||||||
%scevgep11 = getelementptr <4 x double>, <4 x double>* %lsr.iv46, i64 -2
|
%scevgep11 = getelementptr <4 x double>, <4 x double>* %lsr.iv46, i64 -2
|
||||||
%i6 = load <4 x double>* %scevgep11, align 32
|
%i6 = load <4 x double>, <4 x double>* %scevgep11, align 32
|
||||||
%add = fadd <4 x double> %i6, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00>
|
%add = fadd <4 x double> %i6, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00>
|
||||||
store <4 x double> %add, <4 x double>* %lsr.iv12, align 32
|
store <4 x double> %add, <4 x double>* %lsr.iv12, align 32
|
||||||
%scevgep10 = getelementptr <4 x double>, <4 x double>* %lsr.iv46, i64 -1
|
%scevgep10 = getelementptr <4 x double>, <4 x double>* %lsr.iv46, i64 -1
|
||||||
%i7 = load <4 x double>* %scevgep10, align 32
|
%i7 = load <4 x double>, <4 x double>* %scevgep10, align 32
|
||||||
%add.4 = fadd <4 x double> %i7, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00>
|
%add.4 = fadd <4 x double> %i7, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00>
|
||||||
%scevgep9 = getelementptr <4 x double>, <4 x double>* %lsr.iv12, i64 1
|
%scevgep9 = getelementptr <4 x double>, <4 x double>* %lsr.iv12, i64 1
|
||||||
store <4 x double> %add.4, <4 x double>* %scevgep9, align 32
|
store <4 x double> %add.4, <4 x double>* %scevgep9, align 32
|
||||||
%i8 = load <4 x double>* %lsr.iv46, align 32
|
%i8 = load <4 x double>, <4 x double>* %lsr.iv46, align 32
|
||||||
%add.8 = fadd <4 x double> %i8, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00>
|
%add.8 = fadd <4 x double> %i8, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00>
|
||||||
%scevgep8 = getelementptr <4 x double>, <4 x double>* %lsr.iv12, i64 2
|
%scevgep8 = getelementptr <4 x double>, <4 x double>* %lsr.iv12, i64 2
|
||||||
store <4 x double> %add.8, <4 x double>* %scevgep8, align 32
|
store <4 x double> %add.8, <4 x double>* %scevgep8, align 32
|
||||||
%scevgep7 = getelementptr <4 x double>, <4 x double>* %lsr.iv46, i64 1
|
%scevgep7 = getelementptr <4 x double>, <4 x double>* %lsr.iv46, i64 1
|
||||||
%i9 = load <4 x double>* %scevgep7, align 32
|
%i9 = load <4 x double>, <4 x double>* %scevgep7, align 32
|
||||||
%add.12 = fadd <4 x double> %i9, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00>
|
%add.12 = fadd <4 x double> %i9, <double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00>
|
||||||
%scevgep3 = getelementptr <4 x double>, <4 x double>* %lsr.iv12, i64 3
|
%scevgep3 = getelementptr <4 x double>, <4 x double>* %lsr.iv12, i64 3
|
||||||
store <4 x double> %add.12, <4 x double>* %scevgep3, align 32
|
store <4 x double> %add.12, <4 x double>* %scevgep3, align 32
|
||||||
|
@ -17,10 +17,10 @@ while.body:
|
|||||||
%ptr2_phi = phi i32* [ %ptr2, %entry ], [ %ptr2_inc, %while.body ]
|
%ptr2_phi = phi i32* [ %ptr2, %entry ], [ %ptr2_inc, %while.body ]
|
||||||
%result.09 = phi i32 [ 0 , %entry ], [ %add, %while.body ]
|
%result.09 = phi i32 [ 0 , %entry ], [ %add, %while.body ]
|
||||||
%dec = add nsw i32 %num, -1
|
%dec = add nsw i32 %num, -1
|
||||||
%0 = load i32* %ptr_phi, align 4
|
%0 = load i32, i32* %ptr_phi, align 4
|
||||||
store i32 %0, i32* %ptr2_phi, align 4
|
store i32 %0, i32* %ptr2_phi, align 4
|
||||||
%1 = load i32* %coeff, align 4
|
%1 = load i32, i32* %coeff, align 4
|
||||||
%2 = load i32* %ptr_phi, align 4
|
%2 = load i32, i32* %ptr_phi, align 4
|
||||||
%mul = mul nsw i32 %1, %2
|
%mul = mul nsw i32 %1, %2
|
||||||
%add = add nsw i32 %mul, %result.09
|
%add = add nsw i32 %mul, %result.09
|
||||||
%tobool = icmp eq i32 %dec, 0
|
%tobool = icmp eq i32 %dec, 0
|
||||||
@ -52,10 +52,10 @@ while.body:
|
|||||||
%ptr2_phi = phi i32* [ %ptr_outer_phi2, %outer.while.header ], [ %ptr2_inc, %while.body ]
|
%ptr2_phi = phi i32* [ %ptr_outer_phi2, %outer.while.header ], [ %ptr2_inc, %while.body ]
|
||||||
%result.09 = phi i32 [ 0 , %outer.while.header ], [ %add, %while.body ]
|
%result.09 = phi i32 [ 0 , %outer.while.header ], [ %add, %while.body ]
|
||||||
%dec = add nsw i32 %num, -1
|
%dec = add nsw i32 %num, -1
|
||||||
%0 = load i32* %ptr_phi, align 4
|
%0 = load i32, i32* %ptr_phi, align 4
|
||||||
store i32 %0, i32* %ptr2_phi, align 4
|
store i32 %0, i32* %ptr2_phi, align 4
|
||||||
%1 = load i32* %coeff, align 4
|
%1 = load i32, i32* %coeff, align 4
|
||||||
%2 = load i32* %ptr_phi, align 4
|
%2 = load i32, i32* %ptr_phi, align 4
|
||||||
%mul = mul nsw i32 %1, %2
|
%mul = mul nsw i32 %1, %2
|
||||||
%add = add nsw i32 %mul, %result.09
|
%add = add nsw i32 %mul, %result.09
|
||||||
%tobool = icmp eq i32 %dec, 0
|
%tobool = icmp eq i32 %dec, 0
|
||||||
|
@ -10,7 +10,7 @@ declare <8 x float> @llvm.x86.avx2.gather.d.ps.256(<8 x float>, i8*, <8 x i32>,
|
|||||||
; Function Attrs: nounwind
|
; Function Attrs: nounwind
|
||||||
define <8 x float> @foo1(i8* noalias readonly %arr.ptr, <8 x i32>* noalias readonly %vix.ptr, i8* noalias %t2.ptr) #1 {
|
define <8 x float> @foo1(i8* noalias readonly %arr.ptr, <8 x i32>* noalias readonly %vix.ptr, i8* noalias %t2.ptr) #1 {
|
||||||
allocas:
|
allocas:
|
||||||
%vix = load <8 x i32>* %vix.ptr, align 4
|
%vix = load <8 x i32>, <8 x i32>* %vix.ptr, align 4
|
||||||
%t1.ptr = getelementptr i8, i8* %arr.ptr, i8 4
|
%t1.ptr = getelementptr i8, i8* %arr.ptr, i8 4
|
||||||
|
|
||||||
%v1 = tail call <8 x float> @llvm.x86.avx2.gather.d.ps.256(<8 x float> undef, i8* %arr.ptr, <8 x i32> %vix, <8 x float> <float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000>, i8 1) #2
|
%v1 = tail call <8 x float> @llvm.x86.avx2.gather.d.ps.256(<8 x float> undef, i8* %arr.ptr, <8 x i32> %vix, <8 x float> <float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000>, i8 1) #2
|
||||||
@ -31,7 +31,7 @@ allocas:
|
|||||||
; Function Attrs: nounwind
|
; Function Attrs: nounwind
|
||||||
define <8 x float> @foo2(i8* noalias readonly %arr.ptr, <8 x i32>* noalias readonly %vix.ptr, i8* noalias %t2.ptr) #1 {
|
define <8 x float> @foo2(i8* noalias readonly %arr.ptr, <8 x i32>* noalias readonly %vix.ptr, i8* noalias %t2.ptr) #1 {
|
||||||
allocas:
|
allocas:
|
||||||
%vix = load <8 x i32>* %vix.ptr, align 4
|
%vix = load <8 x i32>, <8 x i32>* %vix.ptr, align 4
|
||||||
%t1.ptr = getelementptr i8, i8* %arr.ptr, i8 4
|
%t1.ptr = getelementptr i8, i8* %arr.ptr, i8 4
|
||||||
|
|
||||||
%v1 = tail call <8 x float> @llvm.x86.avx2.gather.d.ps.256(<8 x float> undef, i8* %arr.ptr, <8 x i32> %vix, <8 x float> <float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000>, i8 1) #2
|
%v1 = tail call <8 x float> @llvm.x86.avx2.gather.d.ps.256(<8 x float> undef, i8* %arr.ptr, <8 x i32> %vix, <8 x float> <float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000, float 0xFFFFFFFFE0000000>, i8 1) #2
|
||||||
|
@ -10,11 +10,11 @@ target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:1
|
|||||||
@C = global [2 x i32] [ i32 4, i32 8 ] ; <[2 x i32]*> [#uses=2]
|
@C = global [2 x i32] [ i32 4, i32 8 ] ; <[2 x i32]*> [#uses=2]
|
||||||
|
|
||||||
define i32 @test1(i1 %c) {
|
define i32 @test1(i1 %c) {
|
||||||
%Atmp = load i32* @A ; <i32> [#uses=2]
|
%Atmp = load i32, i32* @A ; <i32> [#uses=2]
|
||||||
br label %Loop
|
br label %Loop
|
||||||
|
|
||||||
Loop: ; preds = %Loop, %0
|
Loop: ; preds = %Loop, %0
|
||||||
%ToRemove = load i32* @A ; <i32> [#uses=1]
|
%ToRemove = load i32, i32* @A ; <i32> [#uses=1]
|
||||||
store i32 %Atmp, i32* @B
|
store i32 %Atmp, i32* @B
|
||||||
br i1 %c, label %Out, label %Loop
|
br i1 %c, label %Out, label %Loop
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ Out: ; preds = %Loop
|
|||||||
|
|
||||||
; The Loop block should be empty after the load/store are promoted.
|
; The Loop block should be empty after the load/store are promoted.
|
||||||
; CHECK: @test1
|
; CHECK: @test1
|
||||||
; CHECK: load i32* @A
|
; CHECK: load i32, i32* @A
|
||||||
; CHECK: Loop:
|
; CHECK: Loop:
|
||||||
; CHECK-NEXT: br i1 %c, label %Out, label %Loop
|
; CHECK-NEXT: br i1 %c, label %Out, label %Loop
|
||||||
; CHECK: Out:
|
; CHECK: Out:
|
||||||
@ -35,10 +35,10 @@ define i32 @test2(i1 %c) {
|
|||||||
br label %Loop
|
br label %Loop
|
||||||
|
|
||||||
Loop: ; preds = %Loop, %0
|
Loop: ; preds = %Loop, %0
|
||||||
%AVal = load i32* @A ; <i32> [#uses=2]
|
%AVal = load i32, i32* @A ; <i32> [#uses=2]
|
||||||
%C0 = getelementptr [2 x i32], [2 x i32]* @C, i64 0, i64 0 ; <i32*> [#uses=1]
|
%C0 = getelementptr [2 x i32], [2 x i32]* @C, i64 0, i64 0 ; <i32*> [#uses=1]
|
||||||
store i32 %AVal, i32* %C0
|
store i32 %AVal, i32* %C0
|
||||||
%BVal = load i32* @B ; <i32> [#uses=2]
|
%BVal = load i32, i32* @B ; <i32> [#uses=2]
|
||||||
%C1 = getelementptr [2 x i32], [2 x i32]* @C, i64 0, i64 1 ; <i32*> [#uses=1]
|
%C1 = getelementptr [2 x i32], [2 x i32]* @C, i64 0, i64 1 ; <i32*> [#uses=1]
|
||||||
store i32 %BVal, i32* %C1
|
store i32 %BVal, i32* %C1
|
||||||
br i1 %c, label %Out, label %Loop
|
br i1 %c, label %Out, label %Loop
|
||||||
|
@ -4,9 +4,9 @@ define i32 @test() {
|
|||||||
; CHECK: ret i32 0
|
; CHECK: ret i32 0
|
||||||
%A = alloca i32 ; <i32*> [#uses=3]
|
%A = alloca i32 ; <i32*> [#uses=3]
|
||||||
call void @foo( i32* %A )
|
call void @foo( i32* %A )
|
||||||
%X = load i32* %A ; <i32> [#uses=1]
|
%X = load i32, i32* %A ; <i32> [#uses=1]
|
||||||
tail call void @bar( )
|
tail call void @bar( )
|
||||||
%Y = load i32* %A ; <i32> [#uses=1]
|
%Y = load i32, i32* %A ; <i32> [#uses=1]
|
||||||
%Z = sub i32 %X, %Y ; <i32> [#uses=1]
|
%Z = sub i32 %X, %Y ; <i32> [#uses=1]
|
||||||
ret i32 %Z
|
ret i32 %Z
|
||||||
}
|
}
|
||||||
|
@ -15,9 +15,9 @@ for.cond2: ; preds = %for.body5, %for.con
|
|||||||
|
|
||||||
for.body5: ; preds = %for.cond2
|
for.body5: ; preds = %for.cond2
|
||||||
%arrayidx = getelementptr inbounds [2 x i64], [2 x i64]* undef, i32 0, i64 0
|
%arrayidx = getelementptr inbounds [2 x i64], [2 x i64]* undef, i32 0, i64 0
|
||||||
%tmp7 = load i64* %arrayidx, align 8
|
%tmp7 = load i64, i64* %arrayidx, align 8
|
||||||
%arrayidx9 = getelementptr inbounds [2 x i64], [2 x i64]* undef, i32 0, i64 undef
|
%arrayidx9 = getelementptr inbounds [2 x i64], [2 x i64]* undef, i32 0, i64 undef
|
||||||
%tmp10 = load i64* %arrayidx9, align 8
|
%tmp10 = load i64, i64* %arrayidx9, align 8
|
||||||
br label %for.cond2
|
br label %for.cond2
|
||||||
|
|
||||||
for.end22: ; preds = %for.cond
|
for.end22: ; preds = %for.cond
|
||||||
|
@ -112,7 +112,7 @@ for.loop.exit:
|
|||||||
|
|
||||||
define void @test_spec2006() {
|
define void @test_spec2006() {
|
||||||
%h = alloca [1 x [2 x i32*]], align 16
|
%h = alloca [1 x [2 x i32*]], align 16
|
||||||
%d.val = load i32* @d, align 4
|
%d.val = load i32, i32* @d, align 4
|
||||||
%d.promoted = sext i32 %d.val to i64
|
%d.promoted = sext i32 %d.val to i64
|
||||||
%1 = icmp slt i32 %d.val, 2
|
%1 = icmp slt i32 %d.val, 2
|
||||||
br i1 %1, label %.lr.ph, label %3
|
br i1 %1, label %.lr.ph, label %3
|
||||||
@ -168,7 +168,7 @@ for.loop.exit:
|
|||||||
|
|
||||||
define void @test_modulo_analysis_with_global() {
|
define void @test_modulo_analysis_with_global() {
|
||||||
%h = alloca [1 x [2 x i32*]], align 16
|
%h = alloca [1 x [2 x i32*]], align 16
|
||||||
%b = load i32* @b, align 4
|
%b = load i32, i32* @b, align 4
|
||||||
%b.promoted = sext i32 %b to i64
|
%b.promoted = sext i32 %b to i64
|
||||||
br label %for.loop
|
br label %for.loop
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ body:
|
|||||||
%iv = phi i32 [ 0, %entry ], [ %next, %body ]
|
%iv = phi i32 [ 0, %entry ], [ %next, %body ]
|
||||||
%base = phi i32 [ 0, %entry ], [ %sum, %body ]
|
%base = phi i32 [ 0, %entry ], [ %sum, %body ]
|
||||||
%arrayidx = getelementptr inbounds i32, i32* %a, i32 %iv
|
%arrayidx = getelementptr inbounds i32, i32* %a, i32 %iv
|
||||||
%0 = load i32* %arrayidx
|
%0 = load i32, i32* %arrayidx
|
||||||
%sum = add nsw i32 %0, %base
|
%sum = add nsw i32 %0, %base
|
||||||
%next = add i32 %iv, 1
|
%next = add i32 %iv, 1
|
||||||
%exitcond = icmp eq i32 %next, %i
|
%exitcond = icmp eq i32 %next, %i
|
||||||
|
@ -10,7 +10,7 @@ body:
|
|||||||
%iv = phi i32 [ 0, %entry ], [ %next, %body ]
|
%iv = phi i32 [ 0, %entry ], [ %next, %body ]
|
||||||
%base = phi i32 [ 0, %entry ], [ %sum, %body ]
|
%base = phi i32 [ 0, %entry ], [ %sum, %body ]
|
||||||
%arrayidx = getelementptr inbounds i32, i32* %a, i32 %iv
|
%arrayidx = getelementptr inbounds i32, i32* %a, i32 %iv
|
||||||
%0 = load i32* %arrayidx
|
%0 = load i32, i32* %arrayidx
|
||||||
%sum = add nsw i32 %0, %base
|
%sum = add nsw i32 %0, %base
|
||||||
%next = add i32 %iv, 1
|
%next = add i32 %iv, 1
|
||||||
%exitcond = icmp eq i32 %next, %i
|
%exitcond = icmp eq i32 %next, %i
|
||||||
@ -154,7 +154,7 @@ define i32 @test_cold_call_sites(i32* %a) {
|
|||||||
|
|
||||||
entry:
|
entry:
|
||||||
%gep1 = getelementptr i32, i32* %a, i32 1
|
%gep1 = getelementptr i32, i32* %a, i32 1
|
||||||
%val1 = load i32* %gep1
|
%val1 = load i32, i32* %gep1
|
||||||
%cond1 = icmp ugt i32 %val1, 1
|
%cond1 = icmp ugt i32 %val1, 1
|
||||||
br i1 %cond1, label %then, label %else
|
br i1 %cond1, label %then, label %else
|
||||||
|
|
||||||
@ -165,7 +165,7 @@ then:
|
|||||||
|
|
||||||
else:
|
else:
|
||||||
%gep2 = getelementptr i32, i32* %a, i32 2
|
%gep2 = getelementptr i32, i32* %a, i32 2
|
||||||
%val2 = load i32* %gep2
|
%val2 = load i32, i32* %gep2
|
||||||
%val3 = call i32 @regular_function(i32 %val2)
|
%val3 = call i32 @regular_function(i32 %val2)
|
||||||
br label %exit
|
br label %exit
|
||||||
|
|
||||||
|
@ -88,7 +88,7 @@ entry:
|
|||||||
do.body:
|
do.body:
|
||||||
%i.0 = phi i32 [ 0, %entry ], [ %inc4, %if.end ]
|
%i.0 = phi i32 [ 0, %entry ], [ %inc4, %if.end ]
|
||||||
call void @g1()
|
call void @g1()
|
||||||
%0 = load i32* %c, align 4
|
%0 = load i32, i32* %c, align 4
|
||||||
%cmp = icmp slt i32 %0, 42
|
%cmp = icmp slt i32 %0, 42
|
||||||
br i1 %cmp, label %do.body1, label %if.end
|
br i1 %cmp, label %do.body1, label %if.end
|
||||||
; CHECK: edge do.body -> do.body1 probability is 16 / 32 = 50%
|
; CHECK: edge do.body -> do.body1 probability is 16 / 32 = 50%
|
||||||
@ -124,7 +124,7 @@ entry:
|
|||||||
do.body:
|
do.body:
|
||||||
%i.0 = phi i32 [ 0, %entry ], [ %inc4, %do.end ]
|
%i.0 = phi i32 [ 0, %entry ], [ %inc4, %do.end ]
|
||||||
call void @g1()
|
call void @g1()
|
||||||
%0 = load i32* %c, align 4
|
%0 = load i32, i32* %c, align 4
|
||||||
%cmp = icmp slt i32 %0, 42
|
%cmp = icmp slt i32 %0, 42
|
||||||
br i1 %cmp, label %return, label %do.body1
|
br i1 %cmp, label %return, label %do.body1
|
||||||
; CHECK: edge do.body -> return probability is 4 / 128
|
; CHECK: edge do.body -> return probability is 4 / 128
|
||||||
@ -169,7 +169,7 @@ do.body:
|
|||||||
|
|
||||||
do.body1:
|
do.body1:
|
||||||
%j.0 = phi i32 [ 0, %do.body ], [ %inc, %if.end ]
|
%j.0 = phi i32 [ 0, %do.body ], [ %inc, %if.end ]
|
||||||
%0 = load i32* %c, align 4
|
%0 = load i32, i32* %c, align 4
|
||||||
%cmp = icmp slt i32 %0, 42
|
%cmp = icmp slt i32 %0, 42
|
||||||
br i1 %cmp, label %return, label %if.end
|
br i1 %cmp, label %return, label %if.end
|
||||||
; CHECK: edge do.body1 -> return probability is 4 / 128
|
; CHECK: edge do.body1 -> return probability is 4 / 128
|
||||||
@ -214,7 +214,7 @@ do.body:
|
|||||||
do.body1:
|
do.body1:
|
||||||
%j.0 = phi i32 [ 0, %do.body ], [ %inc, %do.cond ]
|
%j.0 = phi i32 [ 0, %do.body ], [ %inc, %do.cond ]
|
||||||
call void @g2()
|
call void @g2()
|
||||||
%0 = load i32* %c, align 4
|
%0 = load i32, i32* %c, align 4
|
||||||
%cmp = icmp slt i32 %0, 42
|
%cmp = icmp slt i32 %0, 42
|
||||||
br i1 %cmp, label %return, label %do.cond
|
br i1 %cmp, label %return, label %do.cond
|
||||||
; CHECK: edge do.body1 -> return probability is 4 / 128
|
; CHECK: edge do.body1 -> return probability is 4 / 128
|
||||||
@ -258,7 +258,7 @@ for.body.lr.ph:
|
|||||||
|
|
||||||
for.body:
|
for.body:
|
||||||
%i.011 = phi i32 [ 0, %for.body.lr.ph ], [ %inc6, %for.inc5 ]
|
%i.011 = phi i32 [ 0, %for.body.lr.ph ], [ %inc6, %for.inc5 ]
|
||||||
%0 = load i32* %c, align 4
|
%0 = load i32, i32* %c, align 4
|
||||||
%cmp1 = icmp eq i32 %0, %i.011
|
%cmp1 = icmp eq i32 %0, %i.011
|
||||||
br i1 %cmp1, label %for.inc5, label %if.end
|
br i1 %cmp1, label %for.inc5, label %if.end
|
||||||
; CHECK: edge for.body -> for.inc5 probability is 16 / 32 = 50%
|
; CHECK: edge for.body -> for.inc5 probability is 16 / 32 = 50%
|
||||||
@ -319,21 +319,21 @@ for.body:
|
|||||||
|
|
||||||
for.body3:
|
for.body3:
|
||||||
%j.017 = phi i32 [ 0, %for.body ], [ %inc, %for.inc ]
|
%j.017 = phi i32 [ 0, %for.body ], [ %inc, %for.inc ]
|
||||||
%0 = load i32* %c, align 4
|
%0 = load i32, i32* %c, align 4
|
||||||
%cmp4 = icmp eq i32 %0, %j.017
|
%cmp4 = icmp eq i32 %0, %j.017
|
||||||
br i1 %cmp4, label %for.inc, label %if.end
|
br i1 %cmp4, label %for.inc, label %if.end
|
||||||
; CHECK: edge for.body3 -> for.inc probability is 16 / 32 = 50%
|
; CHECK: edge for.body3 -> for.inc probability is 16 / 32 = 50%
|
||||||
; CHECK: edge for.body3 -> if.end probability is 16 / 32 = 50%
|
; CHECK: edge for.body3 -> if.end probability is 16 / 32 = 50%
|
||||||
|
|
||||||
if.end:
|
if.end:
|
||||||
%1 = load i32* %arrayidx5, align 4
|
%1 = load i32, i32* %arrayidx5, align 4
|
||||||
%cmp6 = icmp eq i32 %1, %j.017
|
%cmp6 = icmp eq i32 %1, %j.017
|
||||||
br i1 %cmp6, label %for.inc, label %if.end8
|
br i1 %cmp6, label %for.inc, label %if.end8
|
||||||
; CHECK: edge if.end -> for.inc probability is 16 / 32 = 50%
|
; CHECK: edge if.end -> for.inc probability is 16 / 32 = 50%
|
||||||
; CHECK: edge if.end -> if.end8 probability is 16 / 32 = 50%
|
; CHECK: edge if.end -> if.end8 probability is 16 / 32 = 50%
|
||||||
|
|
||||||
if.end8:
|
if.end8:
|
||||||
%2 = load i32* %arrayidx9, align 4
|
%2 = load i32, i32* %arrayidx9, align 4
|
||||||
%cmp10 = icmp eq i32 %2, %j.017
|
%cmp10 = icmp eq i32 %2, %j.017
|
||||||
br i1 %cmp10, label %for.inc, label %if.end12
|
br i1 %cmp10, label %for.inc, label %if.end12
|
||||||
; CHECK: edge if.end8 -> for.inc probability is 16 / 32 = 50%
|
; CHECK: edge if.end8 -> for.inc probability is 16 / 32 = 50%
|
||||||
|
@ -23,22 +23,22 @@ while.body:
|
|||||||
%c.addr.09 = phi i32* [ %c, %while.body.lr.ph ], [ %c.addr.1, %if.end ]
|
%c.addr.09 = phi i32* [ %c, %while.body.lr.ph ], [ %c.addr.1, %if.end ]
|
||||||
%indvars.iv.next = add nsw i64 %indvars.iv, -1
|
%indvars.iv.next = add nsw i64 %indvars.iv, -1
|
||||||
%arrayidx = getelementptr inbounds float, float* %f0, i64 %indvars.iv.next
|
%arrayidx = getelementptr inbounds float, float* %f0, i64 %indvars.iv.next
|
||||||
%1 = load float* %arrayidx, align 4
|
%1 = load float, float* %arrayidx, align 4
|
||||||
%arrayidx2 = getelementptr inbounds float, float* %f1, i64 %indvars.iv.next
|
%arrayidx2 = getelementptr inbounds float, float* %f1, i64 %indvars.iv.next
|
||||||
%2 = load float* %arrayidx2, align 4
|
%2 = load float, float* %arrayidx2, align 4
|
||||||
%cmp = fcmp une float %1, %2
|
%cmp = fcmp une float %1, %2
|
||||||
br i1 %cmp, label %if.then, label %if.else
|
br i1 %cmp, label %if.then, label %if.else
|
||||||
|
|
||||||
if.then:
|
if.then:
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %b.addr.011, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %b.addr.011, i64 1
|
||||||
%3 = load i32* %b.addr.011, align 4
|
%3 = load i32, i32* %b.addr.011, align 4
|
||||||
%add = add nsw i32 %3, 12
|
%add = add nsw i32 %3, 12
|
||||||
store i32 %add, i32* %b.addr.011, align 4
|
store i32 %add, i32* %b.addr.011, align 4
|
||||||
br label %if.end
|
br label %if.end
|
||||||
|
|
||||||
if.else:
|
if.else:
|
||||||
%incdec.ptr3 = getelementptr inbounds i32, i32* %c.addr.09, i64 1
|
%incdec.ptr3 = getelementptr inbounds i32, i32* %c.addr.09, i64 1
|
||||||
%4 = load i32* %c.addr.09, align 4
|
%4 = load i32, i32* %c.addr.09, align 4
|
||||||
%sub = add nsw i32 %4, -13
|
%sub = add nsw i32 %4, -13
|
||||||
store i32 %sub, i32* %c.addr.09, align 4
|
store i32 %sub, i32* %c.addr.09, align 4
|
||||||
br label %if.end
|
br label %if.end
|
||||||
|
@ -22,11 +22,11 @@ entry:
|
|||||||
%u = alloca %union.anon, align 8
|
%u = alloca %union.anon, align 8
|
||||||
%tmp9 = getelementptr inbounds %union.anon, %union.anon* %u, i64 0, i32 0
|
%tmp9 = getelementptr inbounds %union.anon, %union.anon* %u, i64 0, i32 0
|
||||||
store double %x, double* %tmp9, align 8, !tbaa !0
|
store double %x, double* %tmp9, align 8, !tbaa !0
|
||||||
%tmp2 = load i32* bitcast (i64* @endianness_test to i32*), align 8, !tbaa !3
|
%tmp2 = load i32, i32* bitcast (i64* @endianness_test to i32*), align 8, !tbaa !3
|
||||||
%idxprom = sext i32 %tmp2 to i64
|
%idxprom = sext i32 %tmp2 to i64
|
||||||
%tmp4 = bitcast %union.anon* %u to [2 x i32]*
|
%tmp4 = bitcast %union.anon* %u to [2 x i32]*
|
||||||
%arrayidx = getelementptr inbounds [2 x i32], [2 x i32]* %tmp4, i64 0, i64 %idxprom
|
%arrayidx = getelementptr inbounds [2 x i32], [2 x i32]* %tmp4, i64 0, i64 %idxprom
|
||||||
%tmp5 = load i32* %arrayidx, align 4, !tbaa !3
|
%tmp5 = load i32, i32* %arrayidx, align 4, !tbaa !3
|
||||||
%tmp5.lobit = lshr i32 %tmp5, 31
|
%tmp5.lobit = lshr i32 %tmp5, 31
|
||||||
ret i32 %tmp5.lobit
|
ret i32 %tmp5.lobit
|
||||||
}
|
}
|
||||||
|
@ -11,9 +11,9 @@ define i32 @test(i32 %indvar) nounwind {
|
|||||||
%tmp31 = mul i32 %indvar, -2
|
%tmp31 = mul i32 %indvar, -2
|
||||||
%tmp32 = add i32 %tmp31, 30
|
%tmp32 = add i32 %tmp31, 30
|
||||||
%t.5 = getelementptr i32, i32* %tab, i32 %tmp32
|
%t.5 = getelementptr i32, i32* %tab, i32 %tmp32
|
||||||
%loada = load i32* %tab
|
%loada = load i32, i32* %tab
|
||||||
store i32 0, i32* %t.5
|
store i32 0, i32* %t.5
|
||||||
%loadb = load i32* %tab
|
%loadb = load i32, i32* %tab
|
||||||
%rval = add i32 %loada, %loadb
|
%rval = add i32 %loada, %loadb
|
||||||
ret i32 %rval
|
ret i32 %rval
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ define void @test(i1 %C) {
|
|||||||
|
|
||||||
store %T* %MS, %T** %M
|
store %T* %MS, %T** %M
|
||||||
|
|
||||||
%AP = load %T** %M ; PartialAlias with %A, %B
|
%AP = load %T*, %T** %M ; PartialAlias with %A, %B
|
||||||
|
|
||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
|
@ -23,8 +23,8 @@ define void @test() {
|
|||||||
store %T* %A, %T** %M
|
store %T* %A, %T** %M
|
||||||
store %T* %B, %T** %N
|
store %T* %B, %T** %N
|
||||||
|
|
||||||
%AP = load %T** %M ; PartialAlias with %A
|
%AP = load %T*, %T** %M ; PartialAlias with %A
|
||||||
%BP = load %T** %N ; PartialAlias with %B
|
%BP = load %T*, %T** %N ; PartialAlias with %B
|
||||||
|
|
||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ green:
|
|||||||
%bigbase0 = bitcast i8* %base to i16*
|
%bigbase0 = bitcast i8* %base to i16*
|
||||||
store i16 -1, i16* %bigbase0
|
store i16 -1, i16* %bigbase0
|
||||||
|
|
||||||
%loaded = load i8* %phi
|
%loaded = load i8, i8* %phi
|
||||||
ret i8 %loaded
|
ret i8 %loaded
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ entry:
|
|||||||
%bigbase1 = bitcast i8* %base to i16*
|
%bigbase1 = bitcast i8* %base to i16*
|
||||||
store i16 -1, i16* %bigbase1
|
store i16 -1, i16* %bigbase1
|
||||||
|
|
||||||
%loaded = load i8* %sel
|
%loaded = load i8, i8* %sel
|
||||||
ret i8 %loaded
|
ret i8 %loaded
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -46,9 +46,9 @@ entry:
|
|||||||
; CHECK: MayAlias: double* %A, double* %Index
|
; CHECK: MayAlias: double* %A, double* %Index
|
||||||
define void @testr2(double* nocapture readonly %A, double* nocapture readonly %Index) {
|
define void @testr2(double* nocapture readonly %A, double* nocapture readonly %Index) {
|
||||||
%arrayidx22 = getelementptr inbounds double, double* %Index, i64 2
|
%arrayidx22 = getelementptr inbounds double, double* %Index, i64 2
|
||||||
%1 = load double* %arrayidx22
|
%1 = load double, double* %arrayidx22
|
||||||
%arrayidx25 = getelementptr inbounds double, double* %A, i64 2
|
%arrayidx25 = getelementptr inbounds double, double* %A, i64 2
|
||||||
%2 = load double* %arrayidx25
|
%2 = load double, double* %arrayidx25
|
||||||
%mul26 = fmul double %1, %2
|
%mul26 = fmul double %1, %2
|
||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
|
@ -14,9 +14,9 @@ define void @store() {
|
|||||||
; CHECK: cost of 64 {{.*}} store
|
; CHECK: cost of 64 {{.*}} store
|
||||||
store <4 x i8> undef, <4 x i8> * undef
|
store <4 x i8> undef, <4 x i8> * undef
|
||||||
; CHECK: cost of 16 {{.*}} load
|
; CHECK: cost of 16 {{.*}} load
|
||||||
load <2 x i8> * undef
|
load <2 x i8> , <2 x i8> * undef
|
||||||
; CHECK: cost of 64 {{.*}} load
|
; CHECK: cost of 64 {{.*}} load
|
||||||
load <4 x i8> * undef
|
load <4 x i8> , <4 x i8> * undef
|
||||||
|
|
||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
|
@ -10,8 +10,8 @@ target triple = "thumbv7-apple-ios6.0.0"
|
|||||||
; CHECK: insertelement_i8
|
; CHECK: insertelement_i8
|
||||||
define void @insertelement_i8(%T_i8* %saddr,
|
define void @insertelement_i8(%T_i8* %saddr,
|
||||||
%T_i8v* %vaddr) {
|
%T_i8v* %vaddr) {
|
||||||
%v0 = load %T_i8v* %vaddr
|
%v0 = load %T_i8v, %T_i8v* %vaddr
|
||||||
%v1 = load %T_i8* %saddr
|
%v1 = load %T_i8, %T_i8* %saddr
|
||||||
;CHECK: estimated cost of 3 for {{.*}} insertelement <8 x i8>
|
;CHECK: estimated cost of 3 for {{.*}} insertelement <8 x i8>
|
||||||
%v2 = insertelement %T_i8v %v0, %T_i8 %v1, i32 1
|
%v2 = insertelement %T_i8v %v0, %T_i8 %v1, i32 1
|
||||||
store %T_i8v %v2, %T_i8v* %vaddr
|
store %T_i8v %v2, %T_i8v* %vaddr
|
||||||
@ -24,8 +24,8 @@ define void @insertelement_i8(%T_i8* %saddr,
|
|||||||
; CHECK: insertelement_i16
|
; CHECK: insertelement_i16
|
||||||
define void @insertelement_i16(%T_i16* %saddr,
|
define void @insertelement_i16(%T_i16* %saddr,
|
||||||
%T_i16v* %vaddr) {
|
%T_i16v* %vaddr) {
|
||||||
%v0 = load %T_i16v* %vaddr
|
%v0 = load %T_i16v, %T_i16v* %vaddr
|
||||||
%v1 = load %T_i16* %saddr
|
%v1 = load %T_i16, %T_i16* %saddr
|
||||||
;CHECK: estimated cost of 3 for {{.*}} insertelement <4 x i16>
|
;CHECK: estimated cost of 3 for {{.*}} insertelement <4 x i16>
|
||||||
%v2 = insertelement %T_i16v %v0, %T_i16 %v1, i32 1
|
%v2 = insertelement %T_i16v %v0, %T_i16 %v1, i32 1
|
||||||
store %T_i16v %v2, %T_i16v* %vaddr
|
store %T_i16v %v2, %T_i16v* %vaddr
|
||||||
@ -37,8 +37,8 @@ define void @insertelement_i16(%T_i16* %saddr,
|
|||||||
; CHECK: insertelement_i32
|
; CHECK: insertelement_i32
|
||||||
define void @insertelement_i32(%T_i32* %saddr,
|
define void @insertelement_i32(%T_i32* %saddr,
|
||||||
%T_i32v* %vaddr) {
|
%T_i32v* %vaddr) {
|
||||||
%v0 = load %T_i32v* %vaddr
|
%v0 = load %T_i32v, %T_i32v* %vaddr
|
||||||
%v1 = load %T_i32* %saddr
|
%v1 = load %T_i32, %T_i32* %saddr
|
||||||
;CHECK: estimated cost of 3 for {{.*}} insertelement <2 x i32>
|
;CHECK: estimated cost of 3 for {{.*}} insertelement <2 x i32>
|
||||||
%v2 = insertelement %T_i32v %v0, %T_i32 %v1, i32 1
|
%v2 = insertelement %T_i32v %v0, %T_i32 %v1, i32 1
|
||||||
store %T_i32v %v2, %T_i32v* %vaddr
|
store %T_i32v %v2, %T_i32v* %vaddr
|
||||||
|
@ -19,26 +19,26 @@ define i32 @stores(i32 %arg) {
|
|||||||
}
|
}
|
||||||
define i32 @loads(i32 %arg) {
|
define i32 @loads(i32 %arg) {
|
||||||
; CHECK: cost of 1 {{.*}} load
|
; CHECK: cost of 1 {{.*}} load
|
||||||
load i8* undef, align 4
|
load i8, i8* undef, align 4
|
||||||
; CHECK: cost of 1 {{.*}} load
|
; CHECK: cost of 1 {{.*}} load
|
||||||
load i16* undef, align 4
|
load i16, i16* undef, align 4
|
||||||
; CHECK: cost of 1 {{.*}} load
|
; CHECK: cost of 1 {{.*}} load
|
||||||
load i32* undef, align 4
|
load i32, i32* undef, align 4
|
||||||
; CHECK: cost of 2 {{.*}} load
|
; CHECK: cost of 2 {{.*}} load
|
||||||
load i64* undef, align 4
|
load i64, i64* undef, align 4
|
||||||
; CHECK: cost of 4 {{.*}} load
|
; CHECK: cost of 4 {{.*}} load
|
||||||
load i128* undef, align 4
|
load i128, i128* undef, align 4
|
||||||
|
|
||||||
; FIXME: There actually are sub-vector Altivec loads, and so we could handle
|
; FIXME: There actually are sub-vector Altivec loads, and so we could handle
|
||||||
; this with a small expense, but we don't currently.
|
; this with a small expense, but we don't currently.
|
||||||
; CHECK: cost of 48 {{.*}} load
|
; CHECK: cost of 48 {{.*}} load
|
||||||
load <4 x i16>* undef, align 2
|
load <4 x i16>, <4 x i16>* undef, align 2
|
||||||
|
|
||||||
; CHECK: cost of 1 {{.*}} load
|
; CHECK: cost of 1 {{.*}} load
|
||||||
load <4 x i32>* undef, align 4
|
load <4 x i32>, <4 x i32>* undef, align 4
|
||||||
|
|
||||||
; CHECK: cost of 46 {{.*}} load
|
; CHECK: cost of 46 {{.*}} load
|
||||||
load <3 x float>* undef, align 1
|
load <3 x float>, <3 x float>* undef, align 1
|
||||||
|
|
||||||
ret i32 undef
|
ret i32 undef
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ vector.body: ; preds = %vector.body, %vecto
|
|||||||
%index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
|
%index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
|
||||||
%0 = getelementptr inbounds float, float* %f, i64 %index
|
%0 = getelementptr inbounds float, float* %f, i64 %index
|
||||||
%1 = bitcast float* %0 to <4 x float>*
|
%1 = bitcast float* %0 to <4 x float>*
|
||||||
%wide.load = load <4 x float>* %1, align 4
|
%wide.load = load <4 x float>, <4 x float>* %1, align 4
|
||||||
%2 = call <4 x float> @llvm.ceil.v4f32(<4 x float> %wide.load)
|
%2 = call <4 x float> @llvm.ceil.v4f32(<4 x float> %wide.load)
|
||||||
store <4 x float> %2, <4 x float>* %1, align 4
|
store <4 x float> %2, <4 x float>* %1, align 4
|
||||||
%index.next = add i64 %index, 4
|
%index.next = add i64 %index, 4
|
||||||
@ -39,7 +39,7 @@ vector.body: ; preds = %vector.body, %vecto
|
|||||||
%index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
|
%index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
|
||||||
%0 = getelementptr inbounds float, float* %f, i64 %index
|
%0 = getelementptr inbounds float, float* %f, i64 %index
|
||||||
%1 = bitcast float* %0 to <4 x float>*
|
%1 = bitcast float* %0 to <4 x float>*
|
||||||
%wide.load = load <4 x float>* %1, align 4
|
%wide.load = load <4 x float>, <4 x float>* %1, align 4
|
||||||
%2 = call <4 x float> @llvm.nearbyint.v4f32(<4 x float> %wide.load)
|
%2 = call <4 x float> @llvm.nearbyint.v4f32(<4 x float> %wide.load)
|
||||||
store <4 x float> %2, <4 x float>* %1, align 4
|
store <4 x float> %2, <4 x float>* %1, align 4
|
||||||
%index.next = add i64 %index, 4
|
%index.next = add i64 %index, 4
|
||||||
@ -67,7 +67,7 @@ vector.body: ; preds = %vector.body, %vecto
|
|||||||
%index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
|
%index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
|
||||||
%0 = getelementptr inbounds float, float* %f, i64 %index
|
%0 = getelementptr inbounds float, float* %f, i64 %index
|
||||||
%1 = bitcast float* %0 to <4 x float>*
|
%1 = bitcast float* %0 to <4 x float>*
|
||||||
%wide.load = load <4 x float>* %1, align 4
|
%wide.load = load <4 x float>, <4 x float>* %1, align 4
|
||||||
%2 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %wide.load, <4 x float> %b, <4 x float> %c)
|
%2 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %wide.load, <4 x float> %b, <4 x float> %c)
|
||||||
store <4 x float> %2, <4 x float>* %1, align 4
|
store <4 x float> %2, <4 x float>* %1, align 4
|
||||||
%index.next = add i64 %index, 4
|
%index.next = add i64 %index, 4
|
||||||
|
@ -34,49 +34,49 @@ define i32 @stores(i32 %arg) {
|
|||||||
}
|
}
|
||||||
define i32 @loads(i32 %arg) {
|
define i32 @loads(i32 %arg) {
|
||||||
;CHECK: cost of 1 {{.*}} load
|
;CHECK: cost of 1 {{.*}} load
|
||||||
load i8* undef, align 4
|
load i8, i8* undef, align 4
|
||||||
;CHECK: cost of 1 {{.*}} load
|
;CHECK: cost of 1 {{.*}} load
|
||||||
load i16* undef, align 4
|
load i16, i16* undef, align 4
|
||||||
;CHECK: cost of 1 {{.*}} load
|
;CHECK: cost of 1 {{.*}} load
|
||||||
load i32* undef, align 4
|
load i32, i32* undef, align 4
|
||||||
;CHECK: cost of 1 {{.*}} load
|
;CHECK: cost of 1 {{.*}} load
|
||||||
load i64* undef, align 4
|
load i64, i64* undef, align 4
|
||||||
;CHECK: cost of 2 {{.*}} load
|
;CHECK: cost of 2 {{.*}} load
|
||||||
load i128* undef, align 4
|
load i128, i128* undef, align 4
|
||||||
|
|
||||||
;CHECK: cost of 1 {{.*}} load
|
;CHECK: cost of 1 {{.*}} load
|
||||||
load <2 x i32>* undef, align 4
|
load <2 x i32>, <2 x i32>* undef, align 4
|
||||||
;CHECK: cost of 1 {{.*}} load
|
;CHECK: cost of 1 {{.*}} load
|
||||||
load <4 x i32>* undef, align 4
|
load <4 x i32>, <4 x i32>* undef, align 4
|
||||||
;CHECK: cost of 2 {{.*}} load
|
;CHECK: cost of 2 {{.*}} load
|
||||||
load <8 x i32>* undef, align 4
|
load <8 x i32>, <8 x i32>* undef, align 4
|
||||||
|
|
||||||
|
|
||||||
;CHECK: cost of 1 {{.*}} load
|
;CHECK: cost of 1 {{.*}} load
|
||||||
load <2 x i64>* undef, align 4
|
load <2 x i64>, <2 x i64>* undef, align 4
|
||||||
;CHECK: cost of 2 {{.*}} load
|
;CHECK: cost of 2 {{.*}} load
|
||||||
load <4 x i64>* undef, align 4
|
load <4 x i64>, <4 x i64>* undef, align 4
|
||||||
;CHECK: cost of 4 {{.*}} load
|
;CHECK: cost of 4 {{.*}} load
|
||||||
load <8 x i64>* undef, align 4
|
load <8 x i64>, <8 x i64>* undef, align 4
|
||||||
|
|
||||||
|
|
||||||
;CHECK: cost of 3 {{.*}} load
|
;CHECK: cost of 3 {{.*}} load
|
||||||
load <3 x float>* undef, align 4
|
load <3 x float>, <3 x float>* undef, align 4
|
||||||
|
|
||||||
;CHECK: cost of 3 {{.*}} load
|
;CHECK: cost of 3 {{.*}} load
|
||||||
load <3 x double>* undef, align 4
|
load <3 x double>, <3 x double>* undef, align 4
|
||||||
|
|
||||||
;CHECK: cost of 3 {{.*}} load
|
;CHECK: cost of 3 {{.*}} load
|
||||||
load <3 x i32>* undef, align 4
|
load <3 x i32>, <3 x i32>* undef, align 4
|
||||||
|
|
||||||
;CHECK: cost of 3 {{.*}} load
|
;CHECK: cost of 3 {{.*}} load
|
||||||
load <3 x i64>* undef, align 4
|
load <3 x i64>, <3 x i64>* undef, align 4
|
||||||
|
|
||||||
;CHECK: cost of 10 {{.*}} load
|
;CHECK: cost of 10 {{.*}} load
|
||||||
load <5 x i32>* undef, align 4
|
load <5 x i32>, <5 x i32>* undef, align 4
|
||||||
|
|
||||||
;CHECK: cost of 10 {{.*}} load
|
;CHECK: cost of 10 {{.*}} load
|
||||||
load <5 x i64>* undef, align 4
|
load <5 x i64>, <5 x i64>* undef, align 4
|
||||||
|
|
||||||
ret i32 undef
|
ret i32 undef
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ vector.body: ; preds = %vector.body, %vecto
|
|||||||
%vec.phi = phi <2 x i32> [ zeroinitializer, %vector.ph ], [ %12, %vector.body ]
|
%vec.phi = phi <2 x i32> [ zeroinitializer, %vector.ph ], [ %12, %vector.body ]
|
||||||
%0 = getelementptr inbounds i32, i32* %A, i64 %index
|
%0 = getelementptr inbounds i32, i32* %A, i64 %index
|
||||||
%1 = bitcast i32* %0 to <2 x i32>*
|
%1 = bitcast i32* %0 to <2 x i32>*
|
||||||
%2 = load <2 x i32>* %1, align 4
|
%2 = load <2 x i32>, <2 x i32>* %1, align 4
|
||||||
%3 = sext <2 x i32> %2 to <2 x i64>
|
%3 = sext <2 x i32> %2 to <2 x i64>
|
||||||
;CHECK: cost of 1 {{.*}} extract
|
;CHECK: cost of 1 {{.*}} extract
|
||||||
%4 = extractelement <2 x i64> %3, i32 0
|
%4 = extractelement <2 x i64> %3, i32 0
|
||||||
@ -20,10 +20,10 @@ vector.body: ; preds = %vector.body, %vecto
|
|||||||
;CHECK: cost of 1 {{.*}} extract
|
;CHECK: cost of 1 {{.*}} extract
|
||||||
%6 = extractelement <2 x i64> %3, i32 1
|
%6 = extractelement <2 x i64> %3, i32 1
|
||||||
%7 = getelementptr inbounds i32, i32* %A, i64 %6
|
%7 = getelementptr inbounds i32, i32* %A, i64 %6
|
||||||
%8 = load i32* %5, align 4
|
%8 = load i32, i32* %5, align 4
|
||||||
;CHECK: cost of 1 {{.*}} insert
|
;CHECK: cost of 1 {{.*}} insert
|
||||||
%9 = insertelement <2 x i32> undef, i32 %8, i32 0
|
%9 = insertelement <2 x i32> undef, i32 %8, i32 0
|
||||||
%10 = load i32* %7, align 4
|
%10 = load i32, i32* %7, align 4
|
||||||
;CHECK: cost of 1 {{.*}} insert
|
;CHECK: cost of 1 {{.*}} insert
|
||||||
%11 = insertelement <2 x i32> %9, i32 %10, i32 1
|
%11 = insertelement <2 x i32> %9, i32 %10, i32 1
|
||||||
%12 = add nsw <2 x i32> %11, %vec.phi
|
%12 = add nsw <2 x i32> %11, %vec.phi
|
||||||
|
@ -29,13 +29,13 @@ vector.body: ; preds = %for.body.lr.ph, %ve
|
|||||||
;CHECK: cost of 0 {{.*}} bitcast
|
;CHECK: cost of 0 {{.*}} bitcast
|
||||||
%5 = bitcast i32* %4 to <8 x i32>*
|
%5 = bitcast i32* %4 to <8 x i32>*
|
||||||
;CHECK: cost of 2 {{.*}} load
|
;CHECK: cost of 2 {{.*}} load
|
||||||
%6 = load <8 x i32>* %5, align 4
|
%6 = load <8 x i32>, <8 x i32>* %5, align 4
|
||||||
;CHECK: cost of 4 {{.*}} mul
|
;CHECK: cost of 4 {{.*}} mul
|
||||||
%7 = mul nsw <8 x i32> %6, <i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5>
|
%7 = mul nsw <8 x i32> %6, <i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5, i32 5>
|
||||||
%8 = getelementptr inbounds i32, i32* %A, i64 %index
|
%8 = getelementptr inbounds i32, i32* %A, i64 %index
|
||||||
%9 = bitcast i32* %8 to <8 x i32>*
|
%9 = bitcast i32* %8 to <8 x i32>*
|
||||||
;CHECK: cost of 2 {{.*}} load
|
;CHECK: cost of 2 {{.*}} load
|
||||||
%10 = load <8 x i32>* %9, align 4
|
%10 = load <8 x i32>, <8 x i32>* %9, align 4
|
||||||
;CHECK: cost of 4 {{.*}} add
|
;CHECK: cost of 4 {{.*}} add
|
||||||
%11 = add nsw <8 x i32> %10, %7
|
%11 = add nsw <8 x i32> %10, %7
|
||||||
;CHECK: cost of 2 {{.*}} store
|
;CHECK: cost of 2 {{.*}} store
|
||||||
@ -54,12 +54,12 @@ for.body: ; preds = %middle.block, %for.
|
|||||||
%13 = add nsw i64 %indvars.iv, 2
|
%13 = add nsw i64 %indvars.iv, 2
|
||||||
%arrayidx = getelementptr inbounds i32, i32* %B, i64 %13
|
%arrayidx = getelementptr inbounds i32, i32* %B, i64 %13
|
||||||
;CHECK: cost of 1 {{.*}} load
|
;CHECK: cost of 1 {{.*}} load
|
||||||
%14 = load i32* %arrayidx, align 4
|
%14 = load i32, i32* %arrayidx, align 4
|
||||||
;CHECK: cost of 1 {{.*}} mul
|
;CHECK: cost of 1 {{.*}} mul
|
||||||
%mul = mul nsw i32 %14, 5
|
%mul = mul nsw i32 %14, 5
|
||||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
|
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
|
||||||
;CHECK: cost of 1 {{.*}} load
|
;CHECK: cost of 1 {{.*}} load
|
||||||
%15 = load i32* %arrayidx2, align 4
|
%15 = load i32, i32* %arrayidx2, align 4
|
||||||
%add3 = add nsw i32 %15, %mul
|
%add3 = add nsw i32 %15, %mul
|
||||||
store i32 %add3, i32* %arrayidx2, align 4
|
store i32 %add3, i32* %arrayidx2, align 4
|
||||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
define i32 @fn2() {
|
define i32 @fn2() {
|
||||||
entry:
|
entry:
|
||||||
%.pr = load i32* @d, align 4
|
%.pr = load i32, i32* @d, align 4
|
||||||
%phitmp = icmp eq i32 %.pr, 0
|
%phitmp = icmp eq i32 %.pr, 0
|
||||||
br label %for.cond
|
br label %for.cond
|
||||||
|
|
||||||
@ -36,11 +36,11 @@ for.cond:
|
|||||||
br i1 %0, label %for.cond, label %for.cond2thread-pre-split.preheader.i
|
br i1 %0, label %for.cond, label %for.cond2thread-pre-split.preheader.i
|
||||||
|
|
||||||
for.cond2thread-pre-split.preheader.i:
|
for.cond2thread-pre-split.preheader.i:
|
||||||
%1 = load i32* @g, align 4
|
%1 = load i32, i32* @g, align 4
|
||||||
%2 = load i32* @h, align 4
|
%2 = load i32, i32* @h, align 4
|
||||||
%mul = mul nsw i32 %2, %1
|
%mul = mul nsw i32 %2, %1
|
||||||
%3 = load i8** @f, align 4
|
%3 = load i8*, i8** @f, align 4
|
||||||
%.pr.pre.i = load i32* @b, align 4
|
%.pr.pre.i = load i32, i32* @b, align 4
|
||||||
br label %for.cond2thread-pre-split.i
|
br label %for.cond2thread-pre-split.i
|
||||||
|
|
||||||
for.cond2thread-pre-split.i:
|
for.cond2thread-pre-split.i:
|
||||||
@ -65,56 +65,56 @@ for.body4.i:
|
|||||||
%8 = phi i32 [ %inc.7.i, %for.body4.i ], [ %.pr.i, %for.body4.i.preheader ]
|
%8 = phi i32 [ %inc.7.i, %for.body4.i ], [ %.pr.i, %for.body4.i.preheader ]
|
||||||
%arrayidx.sum1 = add i32 %add.i, %8
|
%arrayidx.sum1 = add i32 %add.i, %8
|
||||||
%arrayidx.i = getelementptr inbounds i8, i8* %3, i32 %arrayidx.sum1
|
%arrayidx.i = getelementptr inbounds i8, i8* %3, i32 %arrayidx.sum1
|
||||||
%9 = load i8* %arrayidx.i, align 1
|
%9 = load i8, i8* %arrayidx.i, align 1
|
||||||
%conv.i = sext i8 %9 to i32
|
%conv.i = sext i8 %9 to i32
|
||||||
store i32 %conv.i, i32* @c, align 4
|
store i32 %conv.i, i32* @c, align 4
|
||||||
%inc.i = add nsw i32 %8, 1
|
%inc.i = add nsw i32 %8, 1
|
||||||
store i32 %inc.i, i32* @b, align 4
|
store i32 %inc.i, i32* @b, align 4
|
||||||
%arrayidx.sum2 = add i32 %add.i, %inc.i
|
%arrayidx.sum2 = add i32 %add.i, %inc.i
|
||||||
%arrayidx.1.i = getelementptr inbounds i8, i8* %3, i32 %arrayidx.sum2
|
%arrayidx.1.i = getelementptr inbounds i8, i8* %3, i32 %arrayidx.sum2
|
||||||
%10 = load i8* %arrayidx.1.i, align 1
|
%10 = load i8, i8* %arrayidx.1.i, align 1
|
||||||
%conv.1.i = sext i8 %10 to i32
|
%conv.1.i = sext i8 %10 to i32
|
||||||
store i32 %conv.1.i, i32* @c, align 4
|
store i32 %conv.1.i, i32* @c, align 4
|
||||||
%inc.1.i = add nsw i32 %8, 2
|
%inc.1.i = add nsw i32 %8, 2
|
||||||
store i32 %inc.1.i, i32* @b, align 4
|
store i32 %inc.1.i, i32* @b, align 4
|
||||||
%arrayidx.sum3 = add i32 %add.i, %inc.1.i
|
%arrayidx.sum3 = add i32 %add.i, %inc.1.i
|
||||||
%arrayidx.2.i = getelementptr inbounds i8, i8* %3, i32 %arrayidx.sum3
|
%arrayidx.2.i = getelementptr inbounds i8, i8* %3, i32 %arrayidx.sum3
|
||||||
%11 = load i8* %arrayidx.2.i, align 1
|
%11 = load i8, i8* %arrayidx.2.i, align 1
|
||||||
%conv.2.i = sext i8 %11 to i32
|
%conv.2.i = sext i8 %11 to i32
|
||||||
store i32 %conv.2.i, i32* @c, align 4
|
store i32 %conv.2.i, i32* @c, align 4
|
||||||
%inc.2.i = add nsw i32 %8, 3
|
%inc.2.i = add nsw i32 %8, 3
|
||||||
store i32 %inc.2.i, i32* @b, align 4
|
store i32 %inc.2.i, i32* @b, align 4
|
||||||
%arrayidx.sum4 = add i32 %add.i, %inc.2.i
|
%arrayidx.sum4 = add i32 %add.i, %inc.2.i
|
||||||
%arrayidx.3.i = getelementptr inbounds i8, i8* %3, i32 %arrayidx.sum4
|
%arrayidx.3.i = getelementptr inbounds i8, i8* %3, i32 %arrayidx.sum4
|
||||||
%12 = load i8* %arrayidx.3.i, align 1
|
%12 = load i8, i8* %arrayidx.3.i, align 1
|
||||||
%conv.3.i = sext i8 %12 to i32
|
%conv.3.i = sext i8 %12 to i32
|
||||||
store i32 %conv.3.i, i32* @c, align 4
|
store i32 %conv.3.i, i32* @c, align 4
|
||||||
%inc.3.i = add nsw i32 %8, 4
|
%inc.3.i = add nsw i32 %8, 4
|
||||||
store i32 %inc.3.i, i32* @b, align 4
|
store i32 %inc.3.i, i32* @b, align 4
|
||||||
%arrayidx.sum5 = add i32 %add.i, %inc.3.i
|
%arrayidx.sum5 = add i32 %add.i, %inc.3.i
|
||||||
%arrayidx.4.i = getelementptr inbounds i8, i8* %3, i32 %arrayidx.sum5
|
%arrayidx.4.i = getelementptr inbounds i8, i8* %3, i32 %arrayidx.sum5
|
||||||
%13 = load i8* %arrayidx.4.i, align 1
|
%13 = load i8, i8* %arrayidx.4.i, align 1
|
||||||
%conv.4.i = sext i8 %13 to i32
|
%conv.4.i = sext i8 %13 to i32
|
||||||
store i32 %conv.4.i, i32* @c, align 4
|
store i32 %conv.4.i, i32* @c, align 4
|
||||||
%inc.4.i = add nsw i32 %8, 5
|
%inc.4.i = add nsw i32 %8, 5
|
||||||
store i32 %inc.4.i, i32* @b, align 4
|
store i32 %inc.4.i, i32* @b, align 4
|
||||||
%arrayidx.sum6 = add i32 %add.i, %inc.4.i
|
%arrayidx.sum6 = add i32 %add.i, %inc.4.i
|
||||||
%arrayidx.5.i = getelementptr inbounds i8, i8* %3, i32 %arrayidx.sum6
|
%arrayidx.5.i = getelementptr inbounds i8, i8* %3, i32 %arrayidx.sum6
|
||||||
%14 = load i8* %arrayidx.5.i, align 1
|
%14 = load i8, i8* %arrayidx.5.i, align 1
|
||||||
%conv.5.i = sext i8 %14 to i32
|
%conv.5.i = sext i8 %14 to i32
|
||||||
store i32 %conv.5.i, i32* @c, align 4
|
store i32 %conv.5.i, i32* @c, align 4
|
||||||
%inc.5.i = add nsw i32 %8, 6
|
%inc.5.i = add nsw i32 %8, 6
|
||||||
store i32 %inc.5.i, i32* @b, align 4
|
store i32 %inc.5.i, i32* @b, align 4
|
||||||
%arrayidx.sum7 = add i32 %add.i, %inc.5.i
|
%arrayidx.sum7 = add i32 %add.i, %inc.5.i
|
||||||
%arrayidx.6.i = getelementptr inbounds i8, i8* %3, i32 %arrayidx.sum7
|
%arrayidx.6.i = getelementptr inbounds i8, i8* %3, i32 %arrayidx.sum7
|
||||||
%15 = load i8* %arrayidx.6.i, align 1
|
%15 = load i8, i8* %arrayidx.6.i, align 1
|
||||||
%conv.6.i = sext i8 %15 to i32
|
%conv.6.i = sext i8 %15 to i32
|
||||||
store i32 %conv.6.i, i32* @c, align 4
|
store i32 %conv.6.i, i32* @c, align 4
|
||||||
%inc.6.i = add nsw i32 %8, 7
|
%inc.6.i = add nsw i32 %8, 7
|
||||||
store i32 %inc.6.i, i32* @b, align 4
|
store i32 %inc.6.i, i32* @b, align 4
|
||||||
%arrayidx.sum8 = add i32 %add.i, %inc.6.i
|
%arrayidx.sum8 = add i32 %add.i, %inc.6.i
|
||||||
%arrayidx.7.i = getelementptr inbounds i8, i8* %3, i32 %arrayidx.sum8
|
%arrayidx.7.i = getelementptr inbounds i8, i8* %3, i32 %arrayidx.sum8
|
||||||
%16 = load i8* %arrayidx.7.i, align 1
|
%16 = load i8, i8* %arrayidx.7.i, align 1
|
||||||
%conv.7.i = sext i8 %16 to i32
|
%conv.7.i = sext i8 %16 to i32
|
||||||
store i32 %conv.7.i, i32* @c, align 4
|
store i32 %conv.7.i, i32* @c, align 4
|
||||||
%inc.7.i = add nsw i32 %8, 8
|
%inc.7.i = add nsw i32 %8, 8
|
||||||
@ -136,7 +136,7 @@ for.body4.ur.i:
|
|||||||
%20 = phi i32 [ %inc.ur.i, %for.body4.ur.i ], [ %.ph, %for.body4.ur.i.preheader ]
|
%20 = phi i32 [ %inc.ur.i, %for.body4.ur.i ], [ %.ph, %for.body4.ur.i.preheader ]
|
||||||
%arrayidx.sum = add i32 %add.i, %20
|
%arrayidx.sum = add i32 %add.i, %20
|
||||||
%arrayidx.ur.i = getelementptr inbounds i8, i8* %3, i32 %arrayidx.sum
|
%arrayidx.ur.i = getelementptr inbounds i8, i8* %3, i32 %arrayidx.sum
|
||||||
%21 = load i8* %arrayidx.ur.i, align 1
|
%21 = load i8, i8* %arrayidx.ur.i, align 1
|
||||||
%conv.ur.i = sext i8 %21 to i32
|
%conv.ur.i = sext i8 %21 to i32
|
||||||
store i32 %conv.ur.i, i32* @c, align 4
|
store i32 %conv.ur.i, i32* @c, align 4
|
||||||
%inc.ur.i = add nsw i32 %20, 1
|
%inc.ur.i = add nsw i32 %20, 1
|
||||||
|
@ -36,23 +36,23 @@
|
|||||||
define void @jacobi(i32 %nn, %struct.Mat* nocapture %a, %struct.Mat* nocapture %p) nounwind uwtable {
|
define void @jacobi(i32 %nn, %struct.Mat* nocapture %a, %struct.Mat* nocapture %p) nounwind uwtable {
|
||||||
entry:
|
entry:
|
||||||
%p.rows.ptr = getelementptr inbounds %struct.Mat, %struct.Mat* %p, i64 0, i32 2
|
%p.rows.ptr = getelementptr inbounds %struct.Mat, %struct.Mat* %p, i64 0, i32 2
|
||||||
%p.rows = load i32* %p.rows.ptr
|
%p.rows = load i32, i32* %p.rows.ptr
|
||||||
%p.rows.sub = add i32 %p.rows, -1
|
%p.rows.sub = add i32 %p.rows, -1
|
||||||
%p.rows.sext = sext i32 %p.rows.sub to i64
|
%p.rows.sext = sext i32 %p.rows.sub to i64
|
||||||
%p.cols.ptr = getelementptr inbounds %struct.Mat, %struct.Mat* %p, i64 0, i32 3
|
%p.cols.ptr = getelementptr inbounds %struct.Mat, %struct.Mat* %p, i64 0, i32 3
|
||||||
%p.cols = load i32* %p.cols.ptr
|
%p.cols = load i32, i32* %p.cols.ptr
|
||||||
%p.cols.sub = add i32 %p.cols, -1
|
%p.cols.sub = add i32 %p.cols, -1
|
||||||
%p.cols.sext = sext i32 %p.cols.sub to i64
|
%p.cols.sext = sext i32 %p.cols.sub to i64
|
||||||
%p.deps.ptr = getelementptr inbounds %struct.Mat, %struct.Mat* %p, i64 0, i32 4
|
%p.deps.ptr = getelementptr inbounds %struct.Mat, %struct.Mat* %p, i64 0, i32 4
|
||||||
%p.deps = load i32* %p.deps.ptr
|
%p.deps = load i32, i32* %p.deps.ptr
|
||||||
%p.deps.sub = add i32 %p.deps, -1
|
%p.deps.sub = add i32 %p.deps, -1
|
||||||
%p.deps.sext = sext i32 %p.deps.sub to i64
|
%p.deps.sext = sext i32 %p.deps.sub to i64
|
||||||
%a.cols.ptr = getelementptr inbounds %struct.Mat, %struct.Mat* %a, i64 0, i32 3
|
%a.cols.ptr = getelementptr inbounds %struct.Mat, %struct.Mat* %a, i64 0, i32 3
|
||||||
%a.cols = load i32* %a.cols.ptr
|
%a.cols = load i32, i32* %a.cols.ptr
|
||||||
%a.deps.ptr = getelementptr inbounds %struct.Mat, %struct.Mat* %a, i64 0, i32 4
|
%a.deps.ptr = getelementptr inbounds %struct.Mat, %struct.Mat* %a, i64 0, i32 4
|
||||||
%a.deps = load i32* %a.deps.ptr
|
%a.deps = load i32, i32* %a.deps.ptr
|
||||||
%a.base.ptr = getelementptr inbounds %struct.Mat, %struct.Mat* %a, i64 0, i32 0
|
%a.base.ptr = getelementptr inbounds %struct.Mat, %struct.Mat* %a, i64 0, i32 0
|
||||||
%a.base = load float** %a.base.ptr, align 8
|
%a.base = load float*, float** %a.base.ptr, align 8
|
||||||
br label %for.i
|
br label %for.i
|
||||||
|
|
||||||
for.i: ; preds = %for.i.inc, %entry
|
for.i: ; preds = %for.i.inc, %entry
|
||||||
|
@ -36,25 +36,25 @@
|
|||||||
define void @jacobi(i32 %nn, %struct.Mat* nocapture %a, %struct.Mat* nocapture %p) nounwind uwtable {
|
define void @jacobi(i32 %nn, %struct.Mat* nocapture %a, %struct.Mat* nocapture %p) nounwind uwtable {
|
||||||
entry:
|
entry:
|
||||||
%p.rows.ptr = getelementptr inbounds %struct.Mat, %struct.Mat* %p, i64 0, i32 2
|
%p.rows.ptr = getelementptr inbounds %struct.Mat, %struct.Mat* %p, i64 0, i32 2
|
||||||
%p.rows = load i32* %p.rows.ptr
|
%p.rows = load i32, i32* %p.rows.ptr
|
||||||
%p.rows.sub = add i32 %p.rows, -1
|
%p.rows.sub = add i32 %p.rows, -1
|
||||||
%p.rows.sext = sext i32 %p.rows.sub to i64
|
%p.rows.sext = sext i32 %p.rows.sub to i64
|
||||||
%p.cols.ptr = getelementptr inbounds %struct.Mat, %struct.Mat* %p, i64 0, i32 3
|
%p.cols.ptr = getelementptr inbounds %struct.Mat, %struct.Mat* %p, i64 0, i32 3
|
||||||
%p.cols = load i32* %p.cols.ptr
|
%p.cols = load i32, i32* %p.cols.ptr
|
||||||
%p.cols.sub = add i32 %p.cols, -1
|
%p.cols.sub = add i32 %p.cols, -1
|
||||||
%p.cols.sext = sext i32 %p.cols.sub to i64
|
%p.cols.sext = sext i32 %p.cols.sub to i64
|
||||||
%p.deps.ptr = getelementptr inbounds %struct.Mat, %struct.Mat* %p, i64 0, i32 4
|
%p.deps.ptr = getelementptr inbounds %struct.Mat, %struct.Mat* %p, i64 0, i32 4
|
||||||
%p.deps = load i32* %p.deps.ptr
|
%p.deps = load i32, i32* %p.deps.ptr
|
||||||
%p.deps.sub = add i32 %p.deps, -1
|
%p.deps.sub = add i32 %p.deps, -1
|
||||||
%p.deps.sext = sext i32 %p.deps.sub to i64
|
%p.deps.sext = sext i32 %p.deps.sub to i64
|
||||||
%a.cols.ptr = getelementptr inbounds %struct.Mat, %struct.Mat* %a, i64 0, i32 3
|
%a.cols.ptr = getelementptr inbounds %struct.Mat, %struct.Mat* %a, i64 0, i32 3
|
||||||
%a.cols = load i32* %a.cols.ptr
|
%a.cols = load i32, i32* %a.cols.ptr
|
||||||
%a.cols.sext = sext i32 %a.cols to i64
|
%a.cols.sext = sext i32 %a.cols to i64
|
||||||
%a.deps.ptr = getelementptr inbounds %struct.Mat, %struct.Mat* %a, i64 0, i32 4
|
%a.deps.ptr = getelementptr inbounds %struct.Mat, %struct.Mat* %a, i64 0, i32 4
|
||||||
%a.deps = load i32* %a.deps.ptr
|
%a.deps = load i32, i32* %a.deps.ptr
|
||||||
%a.deps.sext = sext i32 %a.deps to i64
|
%a.deps.sext = sext i32 %a.deps to i64
|
||||||
%a.base.ptr = getelementptr inbounds %struct.Mat, %struct.Mat* %a, i64 0, i32 0
|
%a.base.ptr = getelementptr inbounds %struct.Mat, %struct.Mat* %a, i64 0, i32 0
|
||||||
%a.base = load float** %a.base.ptr, align 8
|
%a.base = load float*, float** %a.base.ptr, align 8
|
||||||
br label %for.i
|
br label %for.i
|
||||||
|
|
||||||
for.i: ; preds = %for.i.inc, %entry
|
for.i: ; preds = %for.i.inc, %entry
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
; A[i][j] = 1.0;
|
; A[i][j] = 1.0;
|
||||||
; }
|
; }
|
||||||
|
|
||||||
; Inst: %val = load double* %arrayidx
|
; Inst: %val = load double, double* %arrayidx
|
||||||
; In Loop with Header: for.j
|
; In Loop with Header: for.j
|
||||||
; AddRec: {{0,+,(%m * sizeof(double))}<%for.i>,+,sizeof(double)}<%for.j>
|
; AddRec: {{0,+,(%m * sizeof(double))}<%for.i>,+,sizeof(double)}<%for.j>
|
||||||
; Base offset: %A
|
; Base offset: %A
|
||||||
@ -35,7 +35,7 @@ for.j:
|
|||||||
%j = phi i64 [ 0, %for.i ], [ %j.inc, %for.j ]
|
%j = phi i64 [ 0, %for.i ], [ %j.inc, %for.j ]
|
||||||
%vlaarrayidx.sum = add i64 %j, %tmp
|
%vlaarrayidx.sum = add i64 %j, %tmp
|
||||||
%arrayidx = getelementptr inbounds double, double* %A, i64 %vlaarrayidx.sum
|
%arrayidx = getelementptr inbounds double, double* %A, i64 %vlaarrayidx.sum
|
||||||
%val = load double* %arrayidx
|
%val = load double, double* %arrayidx
|
||||||
store double %val, double* %arrayidx
|
store double %val, double* %arrayidx
|
||||||
%j.inc = add nsw i64 %j, 1
|
%j.inc = add nsw i64 %j, 1
|
||||||
%j.exitcond = icmp eq i64 %j.inc, %m
|
%j.exitcond = icmp eq i64 %j.inc, %m
|
||||||
|
@ -21,7 +21,7 @@ for.body60:
|
|||||||
%tmp6 = mul i64 %tmp5, undef
|
%tmp6 = mul i64 %tmp5, undef
|
||||||
%arrayidx69.sum = add i64 undef, %tmp6
|
%arrayidx69.sum = add i64 undef, %tmp6
|
||||||
%arrayidx70 = getelementptr inbounds double, double* %Ey, i64 %arrayidx69.sum
|
%arrayidx70 = getelementptr inbounds double, double* %Ey, i64 %arrayidx69.sum
|
||||||
%1 = load double* %arrayidx70, align 8
|
%1 = load double, double* %arrayidx70, align 8
|
||||||
%inc = add nsw i64 %ix.062, 1
|
%inc = add nsw i64 %ix.062, 1
|
||||||
br i1 false, label %for.body60, label %for.end
|
br i1 false, label %for.body60, label %for.end
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%add5 = add nsw i64 %mul4, %j.02
|
%add5 = add nsw i64 %mul4, %j.02
|
||||||
%sub = add nsw i64 %add5, -1
|
%sub = add nsw i64 %add5, -1
|
||||||
%arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %sub
|
%arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %sub
|
||||||
%0 = load i64* %arrayidx6, align 8
|
%0 = load i64, i64* %arrayidx6, align 8
|
||||||
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
|
||||||
store i64 %0, i64* %B.addr.11, align 8
|
store i64 %0, i64* %B.addr.11, align 8
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -115,7 +115,7 @@ for.body3: ; preds = %for.body3.preheader
|
|||||||
%add5 = add nsw i64 %mul4, %j.03
|
%add5 = add nsw i64 %mul4, %j.03
|
||||||
%sub = add nsw i64 %add5, -1
|
%sub = add nsw i64 %add5, -1
|
||||||
%arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %sub
|
%arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %sub
|
||||||
%2 = load i64* %arrayidx6, align 8
|
%2 = load i64, i64* %arrayidx6, align 8
|
||||||
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.12, i64 1
|
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.12, i64 1
|
||||||
store i64 %2, i64* %B.addr.12, align 8
|
store i64 %2, i64* %B.addr.12, align 8
|
||||||
%inc = add nsw i64 %j.03, 1
|
%inc = add nsw i64 %j.03, 1
|
||||||
@ -181,7 +181,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%add5 = add nsw i64 %mul4, %j.02
|
%add5 = add nsw i64 %mul4, %j.02
|
||||||
%add6 = add nsw i64 %add5, 100
|
%add6 = add nsw i64 %add5, 100
|
||||||
%arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6
|
%arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6
|
||||||
%0 = load i64* %arrayidx7, align 8
|
%0 = load i64, i64* %arrayidx7, align 8
|
||||||
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
|
||||||
store i64 %0, i64* %B.addr.11, align 8
|
store i64 %0, i64* %B.addr.11, align 8
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -240,7 +240,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%add5 = add nsw i64 %mul4, %j.02
|
%add5 = add nsw i64 %mul4, %j.02
|
||||||
%add6 = add nsw i64 %add5, 99
|
%add6 = add nsw i64 %add5, 99
|
||||||
%arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6
|
%arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6
|
||||||
%0 = load i64* %arrayidx7, align 8
|
%0 = load i64, i64* %arrayidx7, align 8
|
||||||
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
|
||||||
store i64 %0, i64* %B.addr.11, align 8
|
store i64 %0, i64* %B.addr.11, align 8
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -299,7 +299,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%add5 = add nsw i64 %mul4, %j.02
|
%add5 = add nsw i64 %mul4, %j.02
|
||||||
%sub = add nsw i64 %add5, -100
|
%sub = add nsw i64 %add5, -100
|
||||||
%arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %sub
|
%arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %sub
|
||||||
%0 = load i64* %arrayidx6, align 8
|
%0 = load i64, i64* %arrayidx6, align 8
|
||||||
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
|
||||||
store i64 %0, i64* %B.addr.11, align 8
|
store i64 %0, i64* %B.addr.11, align 8
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -358,7 +358,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%add5 = add nsw i64 %mul4, %j.02
|
%add5 = add nsw i64 %mul4, %j.02
|
||||||
%sub = add nsw i64 %add5, -99
|
%sub = add nsw i64 %add5, -99
|
||||||
%arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %sub
|
%arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %sub
|
||||||
%0 = load i64* %arrayidx6, align 8
|
%0 = load i64, i64* %arrayidx6, align 8
|
||||||
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
|
||||||
store i64 %0, i64* %B.addr.11, align 8
|
store i64 %0, i64* %B.addr.11, align 8
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -417,7 +417,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%add5 = add nsw i64 %mul4, %j.02
|
%add5 = add nsw i64 %mul4, %j.02
|
||||||
%add6 = add nsw i64 %add5, 9
|
%add6 = add nsw i64 %add5, 9
|
||||||
%arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6
|
%arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6
|
||||||
%0 = load i64* %arrayidx7, align 8
|
%0 = load i64, i64* %arrayidx7, align 8
|
||||||
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
|
||||||
store i64 %0, i64* %B.addr.11, align 8
|
store i64 %0, i64* %B.addr.11, align 8
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -476,7 +476,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%add5 = add nsw i64 %mul4, %j.02
|
%add5 = add nsw i64 %mul4, %j.02
|
||||||
%add6 = add nsw i64 %add5, 10
|
%add6 = add nsw i64 %add5, 10
|
||||||
%arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6
|
%arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6
|
||||||
%0 = load i64* %arrayidx7, align 8
|
%0 = load i64, i64* %arrayidx7, align 8
|
||||||
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
|
||||||
store i64 %0, i64* %B.addr.11, align 8
|
store i64 %0, i64* %B.addr.11, align 8
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -535,7 +535,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%add5 = add nsw i64 %mul4, %j.02
|
%add5 = add nsw i64 %mul4, %j.02
|
||||||
%add6 = add nsw i64 %add5, 11
|
%add6 = add nsw i64 %add5, 11
|
||||||
%arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6
|
%arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6
|
||||||
%0 = load i64* %arrayidx7, align 8
|
%0 = load i64, i64* %arrayidx7, align 8
|
||||||
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
|
||||||
store i64 %0, i64* %B.addr.11, align 8
|
store i64 %0, i64* %B.addr.11, align 8
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -595,7 +595,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%sub = add i64 %i.03, %0
|
%sub = add i64 %i.03, %0
|
||||||
%add6 = add nsw i64 %sub, 11
|
%add6 = add nsw i64 %sub, 11
|
||||||
%arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6
|
%arrayidx7 = getelementptr inbounds i64, i64* %A, i64 %add6
|
||||||
%1 = load i64* %arrayidx7, align 8
|
%1 = load i64, i64* %arrayidx7, align 8
|
||||||
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
|
||||||
store i64 %1, i64* %B.addr.11, align 8
|
store i64 %1, i64* %B.addr.11, align 8
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -654,7 +654,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%sub = add i64 %i.03, %0
|
%sub = add i64 %i.03, %0
|
||||||
%add5 = add nsw i64 %sub, 11
|
%add5 = add nsw i64 %sub, 11
|
||||||
%arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %add5
|
%arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %add5
|
||||||
%1 = load i64* %arrayidx6, align 8
|
%1 = load i64, i64* %arrayidx6, align 8
|
||||||
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
|
||||||
store i64 %1, i64* %B.addr.11, align 8
|
store i64 %1, i64* %B.addr.11, align 8
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -713,7 +713,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%sub = sub nsw i64 %mul4, %j.02
|
%sub = sub nsw i64 %mul4, %j.02
|
||||||
%add5 = add nsw i64 %sub, 11
|
%add5 = add nsw i64 %sub, 11
|
||||||
%arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %add5
|
%arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %add5
|
||||||
%0 = load i64* %arrayidx6, align 8
|
%0 = load i64, i64* %arrayidx6, align 8
|
||||||
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
|
||||||
store i64 %0, i64* %B.addr.11, align 8
|
store i64 %0, i64* %B.addr.11, align 8
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -772,7 +772,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%sub = sub nsw i64 %mul4, %j.02
|
%sub = sub nsw i64 %mul4, %j.02
|
||||||
%add5 = add nsw i64 %sub, 11
|
%add5 = add nsw i64 %sub, 11
|
||||||
%arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %add5
|
%arrayidx6 = getelementptr inbounds i64, i64* %A, i64 %add5
|
||||||
%0 = load i64* %arrayidx6, align 8
|
%0 = load i64, i64* %arrayidx6, align 8
|
||||||
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.11, i64 1
|
||||||
store i64 %0, i64* %B.addr.11, align 8
|
store i64 %0, i64* %B.addr.11, align 8
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
|
@ -29,7 +29,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%add = add nsw i64 %i.02, 9
|
%add = add nsw i64 %i.02, 9
|
||||||
%add2 = add nsw i64 %i.02, 10
|
%add2 = add nsw i64 %i.02, 10
|
||||||
%arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %add2, i64 %add
|
%arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %add2, i64 %add
|
||||||
%0 = load i32* %arrayidx4, align 4
|
%0 = load i32, i32* %arrayidx4, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add nsw i64 %i.02, 1
|
%inc = add nsw i64 %i.02, 1
|
||||||
@ -65,7 +65,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%add = add nsw i64 %i.02, 9
|
%add = add nsw i64 %i.02, 9
|
||||||
%add2 = 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
|
%arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %add2, i64 %add
|
||||||
%0 = load i32* %arrayidx4, align 4
|
%0 = load i32, i32* %arrayidx4, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add nsw i64 %i.02, 1
|
%inc = add nsw i64 %i.02, 1
|
||||||
@ -103,7 +103,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%arrayidx3 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub2, i64 %sub
|
%arrayidx3 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub2, i64 %sub
|
||||||
store i32 %conv, i32* %arrayidx3, align 4
|
store i32 %conv, i32* %arrayidx3, align 4
|
||||||
%arrayidx5 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
|
%arrayidx5 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
|
||||||
%0 = load i32* %arrayidx5, align 4
|
%0 = load i32, i32* %arrayidx5, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add nsw i64 %i.02, 1
|
%inc = add nsw i64 %i.02, 1
|
||||||
@ -141,7 +141,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%arrayidx3 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub2, i64 %sub
|
%arrayidx3 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub2, i64 %sub
|
||||||
store i32 %conv, i32* %arrayidx3, align 4
|
store i32 %conv, i32* %arrayidx3, align 4
|
||||||
%arrayidx5 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
|
%arrayidx5 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
|
||||||
%0 = load i32* %arrayidx5, align 4
|
%0 = load i32, i32* %arrayidx5, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add nsw i64 %i.02, 1
|
%inc = add nsw i64 %i.02, 1
|
||||||
@ -180,7 +180,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub3, i64 %sub
|
%arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub3, i64 %sub
|
||||||
store i32 %conv, i32* %arrayidx4, align 4
|
store i32 %conv, i32* %arrayidx4, align 4
|
||||||
%arrayidx6 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
|
%arrayidx6 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
|
||||||
%0 = load i32* %arrayidx6, align 4
|
%0 = load i32, i32* %arrayidx6, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add nsw i64 %i.02, 1
|
%inc = add nsw i64 %i.02, 1
|
||||||
@ -221,7 +221,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%arrayidx5 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %add, i64 %sub
|
%arrayidx5 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %add, i64 %sub
|
||||||
store i32 %conv, i32* %arrayidx5, align 4
|
store i32 %conv, i32* %arrayidx5, align 4
|
||||||
%arrayidx7 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
|
%arrayidx7 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
|
||||||
%0 = load i32* %arrayidx7, align 4
|
%0 = load i32, i32* %arrayidx7, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add nsw i64 %i.02, 1
|
%inc = add nsw i64 %i.02, 1
|
||||||
@ -257,7 +257,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%arrayidx1 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %sub
|
%arrayidx1 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %sub
|
||||||
store i32 %conv, i32* %arrayidx1, align 4
|
store i32 %conv, i32* %arrayidx1, align 4
|
||||||
%arrayidx3 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
|
%arrayidx3 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
|
||||||
%0 = load i32* %arrayidx3, align 4
|
%0 = load i32, i32* %arrayidx3, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add nsw i64 %i.02, 1
|
%inc = add nsw i64 %i.02, 1
|
||||||
@ -293,7 +293,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%arrayidx1 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %sub
|
%arrayidx1 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %sub
|
||||||
store i32 %conv, i32* %arrayidx1, align 4
|
store i32 %conv, i32* %arrayidx1, align 4
|
||||||
%arrayidx3 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
|
%arrayidx3 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
|
||||||
%0 = load i32* %arrayidx3, align 4
|
%0 = load i32, i32* %arrayidx3, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add nsw i64 %i.02, 1
|
%inc = add nsw i64 %i.02, 1
|
||||||
@ -330,7 +330,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%arrayidx2 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub1, i64 %sub
|
%arrayidx2 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub1, i64 %sub
|
||||||
store i32 %conv, i32* %arrayidx2, align 4
|
store i32 %conv, i32* %arrayidx2, align 4
|
||||||
%arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
|
%arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
|
||||||
%0 = load i32* %arrayidx4, align 4
|
%0 = load i32, i32* %arrayidx4, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add nsw i64 %i.02, 1
|
%inc = add nsw i64 %i.02, 1
|
||||||
@ -367,7 +367,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%arrayidx2 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub1, i64 %sub
|
%arrayidx2 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub1, i64 %sub
|
||||||
store i32 %conv, i32* %arrayidx2, align 4
|
store i32 %conv, i32* %arrayidx2, align 4
|
||||||
%arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
|
%arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
|
||||||
%0 = load i32* %arrayidx4, align 4
|
%0 = load i32, i32* %arrayidx4, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add nsw i64 %i.02, 1
|
%inc = add nsw i64 %i.02, 1
|
||||||
@ -405,7 +405,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%arrayidx2 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub1, i64 %sub
|
%arrayidx2 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub1, i64 %sub
|
||||||
store i32 %conv, i32* %arrayidx2, align 4
|
store i32 %conv, i32* %arrayidx2, align 4
|
||||||
%arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
|
%arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
|
||||||
%0 = load i32* %arrayidx4, align 4
|
%0 = load i32, i32* %arrayidx4, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add nsw i64 %i.02, 1
|
%inc = add nsw i64 %i.02, 1
|
||||||
@ -443,7 +443,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%arrayidx2 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub1, i64 %sub
|
%arrayidx2 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub1, i64 %sub
|
||||||
store i32 %conv, i32* %arrayidx2, align 4
|
store i32 %conv, i32* %arrayidx2, align 4
|
||||||
%arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
|
%arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
|
||||||
%0 = load i32* %arrayidx4, align 4
|
%0 = load i32, i32* %arrayidx4, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add nsw i64 %i.02, 1
|
%inc = add nsw i64 %i.02, 1
|
||||||
@ -481,7 +481,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%arrayidx2 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub1, i64 %sub
|
%arrayidx2 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub1, i64 %sub
|
||||||
store i32 %conv, i32* %arrayidx2, align 4
|
store i32 %conv, i32* %arrayidx2, align 4
|
||||||
%arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
|
%arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
|
||||||
%0 = load i32* %arrayidx4, align 4
|
%0 = load i32, i32* %arrayidx4, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add nsw i64 %i.02, 1
|
%inc = add nsw i64 %i.02, 1
|
||||||
@ -518,7 +518,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%arrayidx2 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub1, i64 %sub
|
%arrayidx2 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %sub1, i64 %sub
|
||||||
store i32 %conv, i32* %arrayidx2, align 4
|
store i32 %conv, i32* %arrayidx2, align 4
|
||||||
%arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
|
%arrayidx4 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.02, i64 %i.02
|
||||||
%0 = load i32* %arrayidx4, align 4
|
%0 = load i32, i32* %arrayidx4, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add nsw i64 %i.02, 1
|
%inc = add nsw i64 %i.02, 1
|
||||||
@ -555,7 +555,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%arrayidx3 = getelementptr inbounds [100 x [100 x i32]], [100 x [100 x i32]]* %A, i64 %sub1, i64 %sub, i64 %i.02
|
%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
|
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
|
%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* %arrayidx6, align 4
|
%0 = load i32, i32* %arrayidx6, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add nsw i64 %i.02, 1
|
%inc = add nsw i64 %i.02, 1
|
||||||
@ -592,7 +592,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%arrayidx3 = getelementptr inbounds [100 x [100 x i32]], [100 x [100 x i32]]* %A, i64 %sub1, i64 %sub, i64 %i.02
|
%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
|
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
|
%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* %arrayidx6, align 4
|
%0 = load i32, i32* %arrayidx6, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add nsw i64 %i.02, 1
|
%inc = add nsw i64 %i.02, 1
|
||||||
|
@ -41,7 +41,7 @@ for.body4: ; preds = %for.body4.preheader
|
|||||||
%mul5 = shl nsw i64 %j.02, 1
|
%mul5 = shl nsw i64 %j.02, 1
|
||||||
%add64 = or i64 %mul5, 1
|
%add64 = or i64 %mul5, 1
|
||||||
%arrayidx7 = getelementptr inbounds i32, i32* %A, i64 %add64
|
%arrayidx7 = getelementptr inbounds i32, i32* %A, i64 %add64
|
||||||
%0 = load i32* %arrayidx7, align 4
|
%0 = load i32, i32* %arrayidx7, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc9 = add nsw i64 %j.02, 1
|
%inc9 = add nsw i64 %j.02, 1
|
||||||
@ -87,7 +87,7 @@ for.body4: ; preds = %for.body4.preheader
|
|||||||
%j.02 = phi i64 [ %inc7, %for.body4 ], [ 0, %for.body4.preheader ]
|
%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 i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
|
||||||
%arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %j.02
|
%arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %j.02
|
||||||
%0 = load i32* %arrayidx5, align 4
|
%0 = load i32, i32* %arrayidx5, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc7 = add nsw i64 %j.02, 1
|
%inc7 = add nsw i64 %j.02, 1
|
||||||
@ -133,7 +133,7 @@ for.body4: ; preds = %for.body4.preheader
|
|||||||
%j.02 = phi i64 [ %inc7, %for.body4 ], [ 0, %for.body4.preheader ]
|
%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 i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
|
||||||
%arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %j.02
|
%arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %j.02
|
||||||
%0 = load i32* %arrayidx5, align 4
|
%0 = load i32, i32* %arrayidx5, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc7 = add nsw i64 %j.02, 1
|
%inc7 = add nsw i64 %j.02, 1
|
||||||
@ -179,7 +179,7 @@ for.body4: ; preds = %for.body4.preheader
|
|||||||
%j.02 = phi i64 [ %inc7, %for.body4 ], [ 0, %for.body4.preheader ]
|
%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 i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
|
||||||
%arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %j.02
|
%arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %j.02
|
||||||
%0 = load i32* %arrayidx5, align 4
|
%0 = load i32, i32* %arrayidx5, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc7 = add nsw i64 %j.02, 1
|
%inc7 = add nsw i64 %j.02, 1
|
||||||
@ -225,7 +225,7 @@ for.body4: ; preds = %for.body4.preheader
|
|||||||
%j.02 = phi i64 [ %inc7, %for.body4 ], [ 0, %for.body4.preheader ]
|
%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 i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
|
||||||
%arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %j.02
|
%arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %j.02
|
||||||
%0 = load i32* %arrayidx5, align 4
|
%0 = load i32, i32* %arrayidx5, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc7 = add nsw i64 %j.02, 1
|
%inc7 = add nsw i64 %j.02, 1
|
||||||
@ -272,7 +272,7 @@ for.body4: ; preds = %for.body4.preheader
|
|||||||
%B.addr.01 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
|
%B.addr.01 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
|
||||||
%sub = sub nsw i64 0, %j.02
|
%sub = sub nsw i64 0, %j.02
|
||||||
%arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %sub
|
%arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %sub
|
||||||
%0 = load i32* %arrayidx5, align 4
|
%0 = load i32, i32* %arrayidx5, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc7 = add nsw i64 %j.02, 1
|
%inc7 = add nsw i64 %j.02, 1
|
||||||
@ -319,7 +319,7 @@ for.body4: ; preds = %for.body4.preheader
|
|||||||
%B.addr.01 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
|
%B.addr.01 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
|
||||||
%sub = sub nsw i64 0, %j.02
|
%sub = sub nsw i64 0, %j.02
|
||||||
%arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %sub
|
%arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %sub
|
||||||
%0 = load i32* %arrayidx5, align 4
|
%0 = load i32, i32* %arrayidx5, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc7 = add nsw i64 %j.02, 1
|
%inc7 = add nsw i64 %j.02, 1
|
||||||
@ -366,7 +366,7 @@ for.body4: ; preds = %for.body4.preheader
|
|||||||
%B.addr.01 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
|
%B.addr.01 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
|
||||||
%sub = sub nsw i64 0, %j.02
|
%sub = sub nsw i64 0, %j.02
|
||||||
%arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %sub
|
%arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %sub
|
||||||
%0 = load i32* %arrayidx5, align 4
|
%0 = load i32, i32* %arrayidx5, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc7 = add nsw i64 %j.02, 1
|
%inc7 = add nsw i64 %j.02, 1
|
||||||
@ -413,7 +413,7 @@ for.body4: ; preds = %for.body4.preheader
|
|||||||
%B.addr.01 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
|
%B.addr.01 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
|
||||||
%sub = sub nsw i64 0, %j.02
|
%sub = sub nsw i64 0, %j.02
|
||||||
%arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %sub
|
%arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %sub
|
||||||
%0 = load i32* %arrayidx5, align 4
|
%0 = load i32, i32* %arrayidx5, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc7 = add nsw i64 %j.02, 1
|
%inc7 = add nsw i64 %j.02, 1
|
||||||
@ -455,7 +455,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %sub
|
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %sub
|
||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%arrayidx4 = getelementptr inbounds i32, i32* %A, i64 45
|
%arrayidx4 = getelementptr inbounds i32, i32* %A, i64 45
|
||||||
%0 = load i32* %arrayidx4, align 4
|
%0 = load i32, i32* %arrayidx4, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
||||||
store i32 %0, i32* %B.addr.11, align 4
|
store i32 %0, i32* %B.addr.11, align 4
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -504,7 +504,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %sub
|
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %sub
|
||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%arrayidx4 = getelementptr inbounds i32, i32* %A, i64 45
|
%arrayidx4 = getelementptr inbounds i32, i32* %A, i64 45
|
||||||
%0 = load i32* %arrayidx4, align 4
|
%0 = load i32, i32* %arrayidx4, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
||||||
store i32 %0, i32* %B.addr.11, align 4
|
store i32 %0, i32* %B.addr.11, align 4
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -552,7 +552,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %sub
|
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %sub
|
||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%arrayidx4 = getelementptr inbounds i32, i32* %A, i64 45
|
%arrayidx4 = getelementptr inbounds i32, i32* %A, i64 45
|
||||||
%0 = load i32* %arrayidx4, align 4
|
%0 = load i32, i32* %arrayidx4, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
||||||
store i32 %0, i32* %B.addr.11, align 4
|
store i32 %0, i32* %B.addr.11, align 4
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -600,7 +600,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %sub
|
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %sub
|
||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%arrayidx4 = getelementptr inbounds i32, i32* %A, i64 45
|
%arrayidx4 = getelementptr inbounds i32, i32* %A, i64 45
|
||||||
%0 = load i32* %arrayidx4, align 4
|
%0 = load i32, i32* %arrayidx4, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
||||||
store i32 %0, i32* %B.addr.11, align 4
|
store i32 %0, i32* %B.addr.11, align 4
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
|
@ -30,7 +30,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%mul = shl i64 %i.02, 1
|
%mul = shl i64 %i.02, 1
|
||||||
%add13 = or i64 %mul, 1
|
%add13 = or i64 %mul, 1
|
||||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %add13
|
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %add13
|
||||||
%0 = load i32* %arrayidx2, align 4
|
%0 = load i32, i32* %arrayidx2, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -68,7 +68,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%mul1 = shl i64 %i.02, 1
|
%mul1 = shl i64 %i.02, 1
|
||||||
%add23 = or i64 %mul1, 1
|
%add23 = or i64 %mul1, 1
|
||||||
%arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %add23
|
%arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %add23
|
||||||
%0 = load i32* %arrayidx3, align 4
|
%0 = load i32, i32* %arrayidx3, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -104,7 +104,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%add = add i64 %i.02, 60
|
%add = add i64 %i.02, 60
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -140,7 +140,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%add = add i64 %i.02, 60
|
%add = add i64 %i.02, 60
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -176,7 +176,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%add = add i64 %i.02, 60
|
%add = add i64 %i.02, 60
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -212,7 +212,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%add = add i64 %i.02, 60
|
%add = add i64 %i.02, 60
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -248,7 +248,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%add = add i64 %i.02, 60
|
%add = add i64 %i.02, 60
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -284,7 +284,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%add = add i64 %i.02, 60
|
%add = add i64 %i.02, 60
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -320,7 +320,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%sub1 = sub i64 -60, %i.02
|
%sub1 = sub i64 -60, %i.02
|
||||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub1
|
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub1
|
||||||
%0 = load i32* %arrayidx2, align 4
|
%0 = load i32, i32* %arrayidx2, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -356,7 +356,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%sub1 = sub i64 -60, %i.02
|
%sub1 = sub i64 -60, %i.02
|
||||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub1
|
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub1
|
||||||
%0 = load i32* %arrayidx2, align 4
|
%0 = load i32, i32* %arrayidx2, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -392,7 +392,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%sub1 = sub i64 -60, %i.02
|
%sub1 = sub i64 -60, %i.02
|
||||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub1
|
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub1
|
||||||
%0 = load i32* %arrayidx2, align 4
|
%0 = load i32, i32* %arrayidx2, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -428,7 +428,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%sub1 = sub i64 -60, %i.02
|
%sub1 = sub i64 -60, %i.02
|
||||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub1
|
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub1
|
||||||
%0 = load i32* %arrayidx2, align 4
|
%0 = load i32, i32* %arrayidx2, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -464,7 +464,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%sub1 = sub i64 -60, %i.02
|
%sub1 = sub i64 -60, %i.02
|
||||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub1
|
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub1
|
||||||
%0 = load i32* %arrayidx2, align 4
|
%0 = load i32, i32* %arrayidx2, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -500,7 +500,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%sub1 = sub i64 -60, %i.02
|
%sub1 = sub i64 -60, %i.02
|
||||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub1
|
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub1
|
||||||
%0 = load i32* %arrayidx2, align 4
|
%0 = load i32, i32* %arrayidx2, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
|
@ -49,7 +49,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%mul6 = shl nsw i64 %j.02, 3
|
%mul6 = shl nsw i64 %j.02, 3
|
||||||
%add = add nsw i64 %mul5, %mul6
|
%add = add nsw i64 %mul5, %mul6
|
||||||
%arrayidx7 = getelementptr inbounds i32, i32* %A, i64 %add
|
%arrayidx7 = getelementptr inbounds i32, i32* %A, i64 %add
|
||||||
%0 = load i32* %arrayidx7, align 4
|
%0 = load i32, i32* %arrayidx7, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
||||||
store i32 %0, i32* %B.addr.11, align 4
|
store i32 %0, i32* %B.addr.11, align 4
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -111,7 +111,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%add = add nsw i64 %mul5, %mul6
|
%add = add nsw i64 %mul5, %mul6
|
||||||
%add7 = or i64 %add, 1
|
%add7 = or i64 %add, 1
|
||||||
%arrayidx8 = getelementptr inbounds i32, i32* %A, i64 %add7
|
%arrayidx8 = getelementptr inbounds i32, i32* %A, i64 %add7
|
||||||
%0 = load i32* %arrayidx8, align 4
|
%0 = load i32, i32* %arrayidx8, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
||||||
store i32 %0, i32* %B.addr.11, align 4
|
store i32 %0, i32* %B.addr.11, align 4
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -173,7 +173,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%mul6 = shl nsw i64 %j.02, 3
|
%mul6 = shl nsw i64 %j.02, 3
|
||||||
%add7 = add nsw i64 %mul5, %mul6
|
%add7 = add nsw i64 %mul5, %mul6
|
||||||
%arrayidx8 = getelementptr inbounds i32, i32* %A, i64 %add7
|
%arrayidx8 = getelementptr inbounds i32, i32* %A, i64 %add7
|
||||||
%0 = load i32* %arrayidx8, align 4
|
%0 = load i32, i32* %arrayidx8, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
||||||
store i32 %0, i32* %B.addr.11, align 4
|
store i32 %0, i32* %B.addr.11, align 4
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -233,7 +233,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%add5 = add nsw i64 %i.03, %mul4
|
%add5 = add nsw i64 %i.03, %mul4
|
||||||
%sub = add nsw i64 %add5, -1
|
%sub = add nsw i64 %add5, -1
|
||||||
%arrayidx6 = getelementptr inbounds i32, i32* %A, i64 %sub
|
%arrayidx6 = getelementptr inbounds i32, i32* %A, i64 %sub
|
||||||
%0 = load i32* %arrayidx6, align 4
|
%0 = load i32, i32* %arrayidx6, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
||||||
store i32 %0, i32* %B.addr.11, align 4
|
store i32 %0, i32* %B.addr.11, align 4
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -303,7 +303,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%sub = sub nsw i64 %add12, %mul14
|
%sub = sub nsw i64 %add12, %mul14
|
||||||
%add15 = add nsw i64 %sub, 4
|
%add15 = add nsw i64 %sub, 4
|
||||||
%arrayidx16 = getelementptr inbounds i32, i32* %A, i64 %add15
|
%arrayidx16 = getelementptr inbounds i32, i32* %A, i64 %add15
|
||||||
%0 = load i32* %arrayidx16, align 4
|
%0 = load i32, i32* %arrayidx16, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
||||||
store i32 %0, i32* %B.addr.11, align 4
|
store i32 %0, i32* %B.addr.11, align 4
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -373,7 +373,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%sub = sub nsw i64 %add12, %mul14
|
%sub = sub nsw i64 %add12, %mul14
|
||||||
%add15 = add nsw i64 %sub, 5
|
%add15 = add nsw i64 %sub, 5
|
||||||
%arrayidx16 = getelementptr inbounds i32, i32* %A, i64 %add15
|
%arrayidx16 = getelementptr inbounds i32, i32* %A, i64 %add15
|
||||||
%0 = load i32* %arrayidx16, align 4
|
%0 = load i32, i32* %arrayidx16, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
||||||
store i32 %0, i32* %B.addr.11, align 4
|
store i32 %0, i32* %B.addr.11, align 4
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -445,7 +445,7 @@ for.body3: ; preds = %for.body3.preheader
|
|||||||
%1 = mul nsw i64 %mul7, %n
|
%1 = mul nsw i64 %mul7, %n
|
||||||
%arrayidx8.sum = add i64 %1, %add7
|
%arrayidx8.sum = add i64 %1, %add7
|
||||||
%arrayidx9 = getelementptr inbounds i32, i32* %A, i64 %arrayidx8.sum
|
%arrayidx9 = getelementptr inbounds i32, i32* %A, i64 %arrayidx8.sum
|
||||||
%2 = load i32* %arrayidx9, align 4
|
%2 = load i32, i32* %arrayidx9, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.12, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.12, i64 1
|
||||||
store i32 %2, i32* %B.addr.12, align 4
|
store i32 %2, i32* %B.addr.12, align 4
|
||||||
%inc = add nsw i64 %j.03, 1
|
%inc = add nsw i64 %j.03, 1
|
||||||
@ -536,7 +536,7 @@ for.body3: ; preds = %for.body3.preheader
|
|||||||
%10 = mul nsw i64 %idxprom10, %0
|
%10 = mul nsw i64 %idxprom10, %0
|
||||||
%arrayidx11.sum = add i64 %10, %idxprom8
|
%arrayidx11.sum = add i64 %10, %idxprom8
|
||||||
%arrayidx12 = getelementptr inbounds i32, i32* %A, i64 %arrayidx11.sum
|
%arrayidx12 = getelementptr inbounds i32, i32* %A, i64 %arrayidx11.sum
|
||||||
%11 = load i32* %arrayidx12, align 4
|
%11 = load i32, i32* %arrayidx12, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.12, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.12, i64 1
|
||||||
store i32 %11, i32* %B.addr.12, align 4
|
store i32 %11, i32* %B.addr.12, align 4
|
||||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||||
@ -623,7 +623,7 @@ for.body3: ; preds = %for.body3.preheader
|
|||||||
%add10 = or i32 %add9, 1
|
%add10 = or i32 %add9, 1
|
||||||
%idxprom11 = sext i32 %add10 to i64
|
%idxprom11 = sext i32 %add10 to i64
|
||||||
%arrayidx12 = getelementptr inbounds i32, i32* %A, i64 %idxprom11
|
%arrayidx12 = getelementptr inbounds i32, i32* %A, i64 %idxprom11
|
||||||
%5 = load i32* %arrayidx12, align 4
|
%5 = load i32, i32* %arrayidx12, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.12, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.12, i64 1
|
||||||
store i32 %5, i32* %B.addr.12, align 4
|
store i32 %5, i32* %B.addr.12, align 4
|
||||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||||
@ -715,7 +715,7 @@ for.body3: ; preds = %for.body3.preheader
|
|||||||
%10 = mul nsw i64 %idxprom10, %0
|
%10 = mul nsw i64 %idxprom10, %0
|
||||||
%arrayidx11.sum = add i64 %10, %idxprom8
|
%arrayidx11.sum = add i64 %10, %idxprom8
|
||||||
%arrayidx12 = getelementptr inbounds i32, i32* %A, i64 %arrayidx11.sum
|
%arrayidx12 = getelementptr inbounds i32, i32* %A, i64 %arrayidx11.sum
|
||||||
%11 = load i32* %arrayidx12, align 4
|
%11 = load i32, i32* %arrayidx12, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.12, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.12, i64 1
|
||||||
store i32 %11, i32* %B.addr.12, align 4
|
store i32 %11, i32* %B.addr.12, align 4
|
||||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||||
|
@ -20,9 +20,9 @@ for.body3:
|
|||||||
%j.02 = phi i32 [ 0, %for.cond1.preheader ], [ %add8, %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 ]
|
%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
|
%arrayidx4 = getelementptr inbounds [40 x float], [40 x float]* %rr, i32 %j.02, i32 %j.02
|
||||||
%0 = load float* %arrayidx4, align 4
|
%0 = load float, float* %arrayidx4, align 4
|
||||||
%arrayidx6 = getelementptr inbounds [40 x float], [40 x float]* %rr, i32 %i.04, i32 %j.02
|
%arrayidx6 = getelementptr inbounds [40 x float], [40 x float]* %rr, i32 %i.04, i32 %j.02
|
||||||
%1 = load float* %arrayidx6, align 4
|
%1 = load float, float* %arrayidx6, align 4
|
||||||
%add = fadd float %0, %1
|
%add = fadd float %0, %1
|
||||||
%cmp7 = fcmp ogt float %add, %g
|
%cmp7 = fcmp ogt float %add, %g
|
||||||
%add.res.1 = select i1 %cmp7, float %add, float %res.11
|
%add.res.1 = select i1 %cmp7, float %add, float %res.11
|
||||||
|
@ -28,7 +28,7 @@ for.body:
|
|||||||
%i = phi i64 [ 0, %entry ], [ %i.inc, %for.body ]
|
%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 = 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
|
%a.addr.2 = getelementptr [100 x [100 x i32]], [100 x [100 x i32]]* %a, i64 0, i64 %i, i32 5
|
||||||
%0 = load i32* %a.addr, align 4
|
%0 = load i32, i32* %a.addr, align 4
|
||||||
%1 = add i32 %0, 1
|
%1 = add i32 %0, 1
|
||||||
store i32 %1, i32* %a.addr.2, align 4
|
store i32 %1, i32* %a.addr.2, align 4
|
||||||
%i.inc = add nsw i64 %i, 1
|
%i.inc = add nsw i64 %i, 1
|
||||||
|
@ -18,7 +18,7 @@ entry:
|
|||||||
; CHECK: da analyze - none!
|
; CHECK: da analyze - none!
|
||||||
|
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %B, i64 1
|
%arrayidx1 = getelementptr inbounds i32, i32* %B, i64 1
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
ret i32 %0
|
ret i32 %0
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ entry:
|
|||||||
; CHECK: da analyze - none!
|
; CHECK: da analyze - none!
|
||||||
|
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %B, i64 1
|
%arrayidx1 = getelementptr inbounds i32, i32* %B, i64 1
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
ret i32 %0
|
ret i32 %0
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -107,7 +107,7 @@ for.body12: ; preds = %for.body12.preheade
|
|||||||
%add13 = add nsw i64 %j.07, 2
|
%add13 = add nsw i64 %j.07, 2
|
||||||
%add14 = add nsw i64 %i.011, 3
|
%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
|
%arrayidx17 = getelementptr inbounds [100 x [100 x i64]], [100 x [100 x i64]]* %A, i64 %add14, i64 %add13, i64 %add
|
||||||
%0 = load i64* %arrayidx17, align 8
|
%0 = load i64, i64* %arrayidx17, align 8
|
||||||
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.24, i64 1
|
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.24, i64 1
|
||||||
store i64 %0, i64* %B.addr.24, align 8
|
store i64 %0, i64* %B.addr.24, align 8
|
||||||
%inc19 = add nsw i64 %k9.05, 1
|
%inc19 = add nsw i64 %k9.05, 1
|
||||||
@ -290,7 +290,7 @@ for.body33: ; preds = %for.body33.preheade
|
|||||||
%sub48 = sub nsw i64 1, %k.037
|
%sub48 = sub nsw i64 1, %k.037
|
||||||
%add49 = add nsw i64 %i.045, 3
|
%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
|
%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* %arrayidx57, align 8
|
%0 = load i64, i64* %arrayidx57, align 8
|
||||||
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.112, i64 1
|
%incdec.ptr = getelementptr inbounds i64, i64* %B.addr.112, i64 1
|
||||||
store i64 %0, i64* %B.addr.112, align 8
|
store i64 %0, i64* %B.addr.112, align 8
|
||||||
%inc = add nsw i64 %t.03, 1
|
%inc = add nsw i64 %t.03, 1
|
||||||
@ -445,7 +445,7 @@ for.body: ; preds = %for.body.preheader,
|
|||||||
store i32 %conv2, i32* %arrayidx, align 4
|
store i32 %conv2, i32* %arrayidx, align 4
|
||||||
%idxprom4 = sext i8 %i.03 to i64
|
%idxprom4 = sext i8 %i.03 to i64
|
||||||
%arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %idxprom4
|
%arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %idxprom4
|
||||||
%0 = load i32* %arrayidx5, align 4
|
%0 = load i32, i32* %arrayidx5, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %0, i32* %B.addr.02, align 4
|
store i32 %0, i32* %B.addr.02, align 4
|
||||||
%inc = add i8 %i.03, 1
|
%inc = add i8 %i.03, 1
|
||||||
@ -491,7 +491,7 @@ for.body: ; preds = %for.body.preheader,
|
|||||||
store i32 %conv2, i32* %arrayidx, align 4
|
store i32 %conv2, i32* %arrayidx, align 4
|
||||||
%idxprom4 = sext i16 %i.03 to i64
|
%idxprom4 = sext i16 %i.03 to i64
|
||||||
%arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %idxprom4
|
%arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %idxprom4
|
||||||
%0 = load i32* %arrayidx5, align 4
|
%0 = load i32, i32* %arrayidx5, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %0, i32* %B.addr.02, align 4
|
store i32 %0, i32* %B.addr.02, align 4
|
||||||
%inc = add i16 %i.03, 1
|
%inc = add i16 %i.03, 1
|
||||||
@ -535,7 +535,7 @@ for.body: ; preds = %for.body.preheader,
|
|||||||
%1 = trunc i64 %indvars.iv to i32
|
%1 = trunc i64 %indvars.iv to i32
|
||||||
store i32 %1, i32* %arrayidx, align 4
|
store i32 %1, i32* %arrayidx, align 4
|
||||||
%arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
|
%arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
|
||||||
%2 = load i32* %arrayidx3, align 4
|
%2 = load i32, i32* %arrayidx3, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %2, i32* %B.addr.02, align 4
|
store i32 %2, i32* %B.addr.02, align 4
|
||||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||||
@ -570,7 +570,7 @@ entry:
|
|||||||
%conv = sext i8 %n to i64
|
%conv = sext i8 %n to i64
|
||||||
%add = add i64 %conv, 1
|
%add = add i64 %conv, 1
|
||||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %add
|
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %add
|
||||||
%0 = load i32* %arrayidx2, align 4
|
%0 = load i32, i32* %arrayidx2, align 4
|
||||||
store i32 %0, i32* %B, align 4
|
store i32 %0, i32* %B, align 4
|
||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
@ -596,7 +596,7 @@ entry:
|
|||||||
%conv = sext i16 %n to i64
|
%conv = sext i16 %n to i64
|
||||||
%add = add i64 %conv, 1
|
%add = add i64 %conv, 1
|
||||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %add
|
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %add
|
||||||
%0 = load i32* %arrayidx2, align 4
|
%0 = load i32, i32* %arrayidx2, align 4
|
||||||
store i32 %0, i32* %B, align 4
|
store i32 %0, i32* %B, align 4
|
||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
@ -622,7 +622,7 @@ entry:
|
|||||||
%add = add nsw i32 %n, 1
|
%add = add nsw i32 %n, 1
|
||||||
%idxprom1 = sext i32 %add to i64
|
%idxprom1 = sext i32 %add to i64
|
||||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %idxprom1
|
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %idxprom1
|
||||||
%0 = load i32* %arrayidx2, align 4
|
%0 = load i32, i32* %arrayidx2, align 4
|
||||||
store i32 %0, i32* %B, align 4
|
store i32 %0, i32* %B, align 4
|
||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
@ -648,7 +648,7 @@ entry:
|
|||||||
%add = add i32 %n, 1
|
%add = add i32 %n, 1
|
||||||
%idxprom1 = zext i32 %add to i64
|
%idxprom1 = zext i32 %add to i64
|
||||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %idxprom1
|
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %idxprom1
|
||||||
%0 = load i32* %arrayidx2, align 4
|
%0 = load i32, i32* %arrayidx2, align 4
|
||||||
store i32 %0, i32* %B, align 4
|
store i32 %0, i32* %B, align 4
|
||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
@ -682,7 +682,7 @@ while.body.preheader: ; preds = %entry
|
|||||||
while.body: ; preds = %while.body.preheader, %while.body
|
while.body: ; preds = %while.body.preheader, %while.body
|
||||||
%i.02 = phi %struct.S* [ %incdec.ptr, %while.body ], [ %s, %while.body.preheader ]
|
%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
|
%0 = getelementptr inbounds %struct.S, %struct.S* %i.02, i64 1, i32 0
|
||||||
%1 = load i32* %0, align 4
|
%1 = load i32, i32* %0, align 4
|
||||||
%2 = getelementptr inbounds %struct.S, %struct.S* %i.02, i64 0, i32 0
|
%2 = getelementptr inbounds %struct.S, %struct.S* %i.02, i64 0, i32 0
|
||||||
store i32 %1, i32* %2, align 4
|
store i32 %1, i32* %2, align 4
|
||||||
%incdec.ptr = getelementptr inbounds %struct.S, %struct.S* %i.02, i64 1
|
%incdec.ptr = getelementptr inbounds %struct.S, %struct.S* %i.02, i64 1
|
||||||
|
@ -36,7 +36,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
store i32 %conv, i32* %arrayidx5, align 4
|
store i32 %conv, i32* %arrayidx5, align 4
|
||||||
%add6 = add nsw i64 %i.03, %j.02
|
%add6 = add nsw i64 %i.03, %j.02
|
||||||
%arrayidx8 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.03, i64 %add6
|
%arrayidx8 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.03, i64 %add6
|
||||||
%0 = load i32* %arrayidx8, align 4
|
%0 = load i32, i32* %arrayidx8, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
||||||
store i32 %0, i32* %B.addr.11, align 4
|
store i32 %0, i32* %B.addr.11, align 4
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -93,7 +93,7 @@ for.body6: ; preds = %for.cond4.preheader
|
|||||||
%add10 = add nsw i64 %j.03, %k.02
|
%add10 = add nsw i64 %j.03, %k.02
|
||||||
%sub11 = sub nsw i64 %j.03, %i.05
|
%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
|
%arrayidx14 = getelementptr inbounds [100 x [100 x i32]], [100 x [100 x i32]]* %A, i64 %sub11, i64 %i.05, i64 %add10
|
||||||
%0 = load i32* %arrayidx14, align 4
|
%0 = load i32, i32* %arrayidx14, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.21, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.21, i64 1
|
||||||
store i32 %0, i32* %B.addr.21, align 4
|
store i32 %0, i32* %B.addr.21, align 4
|
||||||
%inc = add nsw i64 %k.02, 1
|
%inc = add nsw i64 %k.02, 1
|
||||||
@ -149,7 +149,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%add = add nsw i64 %i.03, %j.02
|
%add = add nsw i64 %i.03, %j.02
|
||||||
%add5 = add nsw i64 %add, 110
|
%add5 = add nsw i64 %add, 110
|
||||||
%arrayidx7 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.03, i64 %add5
|
%arrayidx7 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.03, i64 %add5
|
||||||
%0 = load i32* %arrayidx7, align 4
|
%0 = load i32, i32* %arrayidx7, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
||||||
store i32 %0, i32* %B.addr.11, align 4
|
store i32 %0, i32* %B.addr.11, align 4
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -200,7 +200,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%sub = sub nsw i64 %mul5, %i.03
|
%sub = sub nsw i64 %mul5, %i.03
|
||||||
%add6 = add nsw i64 %sub, 5
|
%add6 = add nsw i64 %sub, 5
|
||||||
%arrayidx8 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.03, i64 %add6
|
%arrayidx8 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.03, i64 %add6
|
||||||
%0 = load i32* %arrayidx8, align 4
|
%0 = load i32, i32* %arrayidx8, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
||||||
store i32 %0, i32* %B.addr.11, align 4
|
store i32 %0, i32* %B.addr.11, align 4
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -252,7 +252,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%mul7 = shl nsw i64 %i.03, 1
|
%mul7 = shl nsw i64 %i.03, 1
|
||||||
%add8 = add nsw i64 %mul7, %j.02
|
%add8 = add nsw i64 %mul7, %j.02
|
||||||
%arrayidx10 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.03, i64 %add8
|
%arrayidx10 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %i.03, i64 %add8
|
||||||
%0 = load i32* %arrayidx10, align 4
|
%0 = load i32, i32* %arrayidx10, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
||||||
store i32 %0, i32* %B.addr.11, align 4
|
store i32 %0, i32* %B.addr.11, align 4
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -306,7 +306,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%mul8 = mul nsw i64 %i.03, 3
|
%mul8 = mul nsw i64 %i.03, 3
|
||||||
%add9 = add nsw i64 %mul8, %j.02
|
%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
|
%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* %arrayidx12, align 4
|
%0 = load i32, i32* %arrayidx12, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
||||||
store i32 %0, i32* %B.addr.11, align 4
|
store i32 %0, i32* %B.addr.11, align 4
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -359,7 +359,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%add8 = add nsw i64 %mul7, %j.02
|
%add8 = add nsw i64 %mul7, %j.02
|
||||||
%mul9 = shl nsw i64 %i.03, 1
|
%mul9 = shl nsw i64 %i.03, 1
|
||||||
%arrayidx11 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %mul9, i64 %add8
|
%arrayidx11 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %mul9, i64 %add8
|
||||||
%0 = load i32* %arrayidx11, align 4
|
%0 = load i32, i32* %arrayidx11, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
||||||
store i32 %0, i32* %B.addr.11, align 4
|
store i32 %0, i32* %B.addr.11, align 4
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -415,7 +415,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%mul10 = mul nsw i64 %i.03, -2
|
%mul10 = mul nsw i64 %i.03, -2
|
||||||
%add11 = add nsw i64 %mul10, 20
|
%add11 = add nsw i64 %mul10, 20
|
||||||
%arrayidx13 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %add11, i64 %add9
|
%arrayidx13 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %add11, i64 %add9
|
||||||
%0 = load i32* %arrayidx13, align 4
|
%0 = load i32, i32* %arrayidx13, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
||||||
store i32 %0, i32* %B.addr.11, align 4
|
store i32 %0, i32* %B.addr.11, align 4
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -466,7 +466,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%mul6 = mul nsw i64 %i.03, -2
|
%mul6 = mul nsw i64 %i.03, -2
|
||||||
%add7 = add nsw i64 %mul6, 4
|
%add7 = add nsw i64 %mul6, 4
|
||||||
%arrayidx9 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %add7, i64 %add5
|
%arrayidx9 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %add7, i64 %add5
|
||||||
%0 = load i32* %arrayidx9, align 4
|
%0 = load i32, i32* %arrayidx9, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
||||||
store i32 %0, i32* %B.addr.11, align 4
|
store i32 %0, i32* %B.addr.11, align 4
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
@ -517,7 +517,7 @@ for.body3: ; preds = %for.cond1.preheader
|
|||||||
%arrayidx7 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %add6, i64 %add4
|
%arrayidx7 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 %add6, i64 %add4
|
||||||
store i32 %conv, i32* %arrayidx7, align 4
|
store i32 %conv, i32* %arrayidx7, align 4
|
||||||
%arrayidx9 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 4, i64 %j.02
|
%arrayidx9 = getelementptr inbounds [100 x i32], [100 x i32]* %A, i64 4, i64 %j.02
|
||||||
%0 = load i32* %arrayidx9, align 4
|
%0 = load i32, i32* %arrayidx9, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.11, i64 1
|
||||||
store i32 %0, i32* %B.addr.11, align 4
|
store i32 %0, i32* %B.addr.11, align 4
|
||||||
%inc = add nsw i64 %j.02, 1
|
%inc = add nsw i64 %j.02, 1
|
||||||
|
@ -50,7 +50,7 @@ for.body9: ; preds = %for.cond7.preheader
|
|||||||
%sub = sub nsw i64 %mul, %l.02
|
%sub = sub nsw i64 %mul, %l.02
|
||||||
%add12 = add nsw i64 %i.07, 10
|
%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
|
%arrayidx15 = getelementptr inbounds [100 x [100 x i32]], [100 x [100 x i32]]* %A, i64 10, i64 %add12, i64 %sub
|
||||||
%0 = load i32* %arrayidx15, align 4
|
%0 = load i32, i32* %arrayidx15, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.31, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.31, i64 1
|
||||||
store i32 %0, i32* %B.addr.31, align 4
|
store i32 %0, i32* %B.addr.31, align 4
|
||||||
%inc = add nsw i64 %l.02, 1
|
%inc = add nsw i64 %l.02, 1
|
||||||
@ -124,7 +124,7 @@ for.body9: ; preds = %for.cond7.preheader
|
|||||||
%sub = sub nsw i64 %mul, %l.02
|
%sub = sub nsw i64 %mul, %l.02
|
||||||
%add12 = add nsw i64 %i.07, 10
|
%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
|
%arrayidx15 = getelementptr inbounds [100 x [100 x i32]], [100 x [100 x i32]]* %A, i64 10, i64 %add12, i64 %sub
|
||||||
%0 = load i32* %arrayidx15, align 4
|
%0 = load i32, i32* %arrayidx15, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.31, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.31, i64 1
|
||||||
store i32 %0, i32* %B.addr.31, align 4
|
store i32 %0, i32* %B.addr.31, align 4
|
||||||
%inc = add nsw i64 %l.02, 1
|
%inc = add nsw i64 %l.02, 1
|
||||||
@ -198,7 +198,7 @@ for.body9: ; preds = %for.cond7.preheader
|
|||||||
%add14 = add nsw i64 %j.05, %k.03
|
%add14 = add nsw i64 %j.05, %k.03
|
||||||
%add15 = add nsw i64 %i.07, 10
|
%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
|
%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* %arrayidx19, align 4
|
%0 = load i32, i32* %arrayidx19, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.31, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.31, i64 1
|
||||||
store i32 %0, i32* %B.addr.31, align 4
|
store i32 %0, i32* %B.addr.31, align 4
|
||||||
%inc = add nsw i64 %l.02, 1
|
%inc = add nsw i64 %l.02, 1
|
||||||
@ -273,7 +273,7 @@ for.body9: ; preds = %for.cond7.preheader
|
|||||||
%add15 = add nsw i64 %j.05, %k.03
|
%add15 = add nsw i64 %j.05, %k.03
|
||||||
%add16 = add nsw i64 %i.07, 10
|
%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
|
%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* %arrayidx20, align 4
|
%0 = load i32, i32* %arrayidx20, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.31, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.31, i64 1
|
||||||
store i32 %0, i32* %B.addr.31, align 4
|
store i32 %0, i32* %B.addr.31, align 4
|
||||||
%inc = add nsw i64 %l.02, 1
|
%inc = add nsw i64 %l.02, 1
|
||||||
|
@ -32,7 +32,7 @@ for.body: ; preds = %for.body.preheader,
|
|||||||
%1 = trunc i64 %indvars.iv to i32
|
%1 = trunc i64 %indvars.iv to i32
|
||||||
store i32 %1, i32* %arrayidx, align 4
|
store i32 %1, i32* %arrayidx, align 4
|
||||||
%arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
|
%arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
|
||||||
%2 = load i32* %arrayidx3, align 4
|
%2 = load i32, i32* %arrayidx3, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %2, i32* %B.addr.02, align 4
|
store i32 %2, i32* %B.addr.02, align 4
|
||||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||||
@ -75,7 +75,7 @@ for.body: ; preds = %for.body.preheader,
|
|||||||
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
|
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
|
||||||
store i32 %conv2, i32* %arrayidx, align 4
|
store i32 %conv2, i32* %arrayidx, align 4
|
||||||
%arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %i.03
|
%arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %i.03
|
||||||
%1 = load i32* %arrayidx3, align 4
|
%1 = load i32, i32* %arrayidx3, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %1, i32* %B.addr.02, align 4
|
store i32 %1, i32* %B.addr.02, align 4
|
||||||
%inc = add nsw i64 %i.03, 1
|
%inc = add nsw i64 %i.03, 1
|
||||||
@ -117,7 +117,7 @@ for.body: ; preds = %for.body.preheader,
|
|||||||
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
|
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
|
||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %i.03
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %i.03
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %0, i32* %B.addr.02, align 4
|
store i32 %0, i32* %B.addr.02, align 4
|
||||||
%inc = add i64 %i.03, 1
|
%inc = add i64 %i.03, 1
|
||||||
@ -159,7 +159,7 @@ for.body: ; preds = %for.body.preheader,
|
|||||||
%1 = trunc i64 %indvars.iv to i32
|
%1 = trunc i64 %indvars.iv to i32
|
||||||
store i32 %1, i32* %arrayidx, align 4
|
store i32 %1, i32* %arrayidx, align 4
|
||||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
|
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %indvars.iv
|
||||||
%2 = load i32* %arrayidx2, align 4
|
%2 = load i32, i32* %arrayidx2, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %2, i32* %B.addr.02, align 4
|
store i32 %2, i32* %B.addr.02, align 4
|
||||||
%indvars.iv.next = add i64 %indvars.iv, 1
|
%indvars.iv.next = add i64 %indvars.iv, 1
|
||||||
@ -198,7 +198,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
|
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
|
||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %i.02
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %i.02
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -233,7 +233,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
|
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
|
||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %i.02
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %i.02
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -270,7 +270,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%mul1 = shl i64 %i.02, 1
|
%mul1 = shl i64 %i.02, 1
|
||||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %mul1
|
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %mul1
|
||||||
%0 = load i32* %arrayidx2, align 4
|
%0 = load i32, i32* %arrayidx2, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -307,7 +307,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%mul1 = shl i64 %i.02, 1
|
%mul1 = shl i64 %i.02, 1
|
||||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %mul1
|
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %mul1
|
||||||
%0 = load i32* %arrayidx2, align 4
|
%0 = load i32, i32* %arrayidx2, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -342,7 +342,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
|
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
|
||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %i.02
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %i.02
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -383,7 +383,7 @@ for.body: ; preds = %for.body.preheader,
|
|||||||
%mul = shl i64 %n, 1
|
%mul = shl i64 %n, 1
|
||||||
%add1 = add i64 %i.03, %mul
|
%add1 = add i64 %i.03, %mul
|
||||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %add1
|
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %add1
|
||||||
%0 = load i32* %arrayidx2, align 4
|
%0 = load i32, i32* %arrayidx2, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %0, i32* %B.addr.02, align 4
|
store i32 %0, i32* %B.addr.02, align 4
|
||||||
%inc = add i64 %i.03, 1
|
%inc = add i64 %i.03, 1
|
||||||
@ -424,7 +424,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%mul1 = mul i64 %i.02, %n
|
%mul1 = mul i64 %i.02, %n
|
||||||
%add2 = add i64 %mul1, 5
|
%add2 = add i64 %mul1, 5
|
||||||
%arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %add2
|
%arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %add2
|
||||||
%0 = load i32* %arrayidx3, align 4
|
%0 = load i32, i32* %arrayidx3, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
|
@ -53,7 +53,7 @@ for.body4: ; preds = %for.body4.preheader
|
|||||||
%mul56 = add i64 %j.03, %n1
|
%mul56 = add i64 %j.03, %n1
|
||||||
%add7 = mul i64 %mul56, 3
|
%add7 = mul i64 %mul56, 3
|
||||||
%arrayidx8 = getelementptr inbounds i32, i32* %A, i64 %add7
|
%arrayidx8 = getelementptr inbounds i32, i32* %A, i64 %add7
|
||||||
%0 = load i32* %arrayidx8, align 4
|
%0 = load i32, i32* %arrayidx8, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %0, i32* %B.addr.02, align 4
|
store i32 %0, i32* %B.addr.02, align 4
|
||||||
%inc10 = add nsw i64 %j.03, 1
|
%inc10 = add nsw i64 %j.03, 1
|
||||||
@ -118,7 +118,7 @@ for.body5: ; preds = %for.body5.preheader
|
|||||||
%mul7 = shl i64 %n2, 1
|
%mul7 = shl i64 %n2, 1
|
||||||
%add8 = add i64 %mul6, %mul7
|
%add8 = add i64 %mul6, %mul7
|
||||||
%arrayidx9 = getelementptr inbounds i32, i32* %A, i64 %add8
|
%arrayidx9 = getelementptr inbounds i32, i32* %A, i64 %add8
|
||||||
%0 = load i32* %arrayidx9, align 4
|
%0 = load i32, i32* %arrayidx9, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %0, i32* %B.addr.02, align 4
|
store i32 %0, i32* %B.addr.02, align 4
|
||||||
%inc11 = add nsw i64 %j.03, 1
|
%inc11 = add nsw i64 %j.03, 1
|
||||||
@ -181,7 +181,7 @@ for.body4: ; preds = %for.body4.preheader
|
|||||||
%mul6 = shl i64 %n1, 1
|
%mul6 = shl i64 %n1, 1
|
||||||
%add = sub i64 %mul6, %j.03
|
%add = sub i64 %mul6, %j.03
|
||||||
%arrayidx7 = getelementptr inbounds i32, i32* %A, i64 %add
|
%arrayidx7 = getelementptr inbounds i32, i32* %A, i64 %add
|
||||||
%0 = load i32* %arrayidx7, align 4
|
%0 = load i32, i32* %arrayidx7, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %0, i32* %B.addr.02, align 4
|
store i32 %0, i32* %B.addr.02, align 4
|
||||||
%inc9 = add nsw i64 %j.03, 1
|
%inc9 = add nsw i64 %j.03, 1
|
||||||
@ -242,7 +242,7 @@ for.body4: ; preds = %for.body4.preheader
|
|||||||
%B.addr.02 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
|
%B.addr.02 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
|
||||||
%sub5 = sub i64 %j.03, %n1
|
%sub5 = sub i64 %j.03, %n1
|
||||||
%arrayidx6 = getelementptr inbounds i32, i32* %A, i64 %sub5
|
%arrayidx6 = getelementptr inbounds i32, i32* %A, i64 %sub5
|
||||||
%0 = load i32* %arrayidx6, align 4
|
%0 = load i32, i32* %arrayidx6, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %0, i32* %B.addr.02, align 4
|
store i32 %0, i32* %B.addr.02, align 4
|
||||||
%inc8 = add nsw i64 %j.03, 1
|
%inc8 = add nsw i64 %j.03, 1
|
||||||
@ -304,7 +304,7 @@ for.body4: ; preds = %for.body4.preheader
|
|||||||
%B.addr.02 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
|
%B.addr.02 = phi i32* [ %incdec.ptr, %for.body4 ], [ %B, %for.body4.preheader ]
|
||||||
%add6 = sub i64 %n1, %j.03
|
%add6 = sub i64 %n1, %j.03
|
||||||
%arrayidx7 = getelementptr inbounds i32, i32* %A, i64 %add6
|
%arrayidx7 = getelementptr inbounds i32, i32* %A, i64 %add6
|
||||||
%0 = load i32* %arrayidx7, align 4
|
%0 = load i32, i32* %arrayidx7, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %0, i32* %B.addr.02, align 4
|
store i32 %0, i32* %B.addr.02, align 4
|
||||||
%inc9 = add nsw i64 %j.03, 1
|
%inc9 = add nsw i64 %j.03, 1
|
||||||
@ -366,7 +366,7 @@ for.body4: ; preds = %for.body4.preheader
|
|||||||
%mul = shl i64 %n2, 1
|
%mul = shl i64 %n2, 1
|
||||||
%add6 = sub i64 %mul, %j.03
|
%add6 = sub i64 %mul, %j.03
|
||||||
%arrayidx7 = getelementptr inbounds i32, i32* %A, i64 %add6
|
%arrayidx7 = getelementptr inbounds i32, i32* %A, i64 %add6
|
||||||
%0 = load i32* %arrayidx7, align 4
|
%0 = load i32, i32* %arrayidx7, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %0, i32* %B.addr.02, align 4
|
store i32 %0, i32* %B.addr.02, align 4
|
||||||
%inc9 = add nsw i64 %j.03, 1
|
%inc9 = add nsw i64 %j.03, 1
|
||||||
@ -421,7 +421,7 @@ for.body3: ; preds = %for.body3.preheader
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%mul = shl i64 %n2, 1
|
%mul = shl i64 %n2, 1
|
||||||
%arrayidx4 = getelementptr inbounds i32, i32* %A, i64 %mul
|
%arrayidx4 = getelementptr inbounds i32, i32* %A, i64 %mul
|
||||||
%0 = load i32* %arrayidx4, align 4
|
%0 = load i32, i32* %arrayidx4, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.12, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.12, i64 1
|
||||||
store i32 %0, i32* %B.addr.12, align 4
|
store i32 %0, i32* %B.addr.12, align 4
|
||||||
%inc = add nsw i64 %j.03, 1
|
%inc = add nsw i64 %j.03, 1
|
||||||
|
@ -35,7 +35,7 @@ for.body: ; preds = %for.body.preheader,
|
|||||||
%mul14 = add i64 %i.03, %n
|
%mul14 = add i64 %i.03, %n
|
||||||
%add3 = mul i64 %mul14, 3
|
%add3 = mul i64 %mul14, 3
|
||||||
%arrayidx4 = getelementptr inbounds i32, i32* %A, i64 %add3
|
%arrayidx4 = getelementptr inbounds i32, i32* %A, i64 %add3
|
||||||
%0 = load i32* %arrayidx4, align 4
|
%0 = load i32, i32* %arrayidx4, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %0, i32* %B.addr.02, align 4
|
store i32 %0, i32* %B.addr.02, align 4
|
||||||
%inc = add nsw i64 %i.03, 1
|
%inc = add nsw i64 %i.03, 1
|
||||||
@ -82,7 +82,7 @@ for.body: ; preds = %for.body.preheader,
|
|||||||
%mul3 = shl i64 %n, 1
|
%mul3 = shl i64 %n, 1
|
||||||
%add4 = add i64 %mul2, %mul3
|
%add4 = add i64 %mul2, %mul3
|
||||||
%arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %add4
|
%arrayidx5 = getelementptr inbounds i32, i32* %A, i64 %add4
|
||||||
%0 = load i32* %arrayidx5, align 4
|
%0 = load i32, i32* %arrayidx5, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %0, i32* %B.addr.02, align 4
|
store i32 %0, i32* %B.addr.02, align 4
|
||||||
%inc = add nsw i64 %i.03, 1
|
%inc = add nsw i64 %i.03, 1
|
||||||
@ -127,7 +127,7 @@ for.body: ; preds = %for.body.preheader,
|
|||||||
%mul2 = shl i64 %n, 1
|
%mul2 = shl i64 %n, 1
|
||||||
%add = sub i64 %mul2, %i.03
|
%add = sub i64 %mul2, %i.03
|
||||||
%arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %add
|
%arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %add
|
||||||
%0 = load i32* %arrayidx3, align 4
|
%0 = load i32, i32* %arrayidx3, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %0, i32* %B.addr.02, align 4
|
store i32 %0, i32* %B.addr.02, align 4
|
||||||
%inc = add nsw i64 %i.03, 1
|
%inc = add nsw i64 %i.03, 1
|
||||||
@ -173,7 +173,7 @@ for.body: ; preds = %for.body.preheader,
|
|||||||
%mul2 = shl i64 %n, 1
|
%mul2 = shl i64 %n, 1
|
||||||
%sub = sub i64 %i.03, %mul2
|
%sub = sub i64 %i.03, %mul2
|
||||||
%arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %sub
|
%arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %sub
|
||||||
%0 = load i32* %arrayidx3, align 4
|
%0 = load i32, i32* %arrayidx3, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %0, i32* %B.addr.02, align 4
|
store i32 %0, i32* %B.addr.02, align 4
|
||||||
%inc = add nsw i64 %i.03, 1
|
%inc = add nsw i64 %i.03, 1
|
||||||
@ -218,7 +218,7 @@ for.body: ; preds = %for.body.preheader,
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%add2 = sub i64 %n, %i.03
|
%add2 = sub i64 %n, %i.03
|
||||||
%arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %add2
|
%arrayidx3 = getelementptr inbounds i32, i32* %A, i64 %add2
|
||||||
%0 = load i32* %arrayidx3, align 4
|
%0 = load i32, i32* %arrayidx3, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %0, i32* %B.addr.02, align 4
|
store i32 %0, i32* %B.addr.02, align 4
|
||||||
%inc = add nsw i64 %i.03, 1
|
%inc = add nsw i64 %i.03, 1
|
||||||
@ -264,7 +264,7 @@ for.body: ; preds = %for.body.preheader,
|
|||||||
%sub2 = sub nsw i64 0, %i.03
|
%sub2 = sub nsw i64 0, %i.03
|
||||||
%sub3 = sub i64 %sub2, %n
|
%sub3 = sub i64 %sub2, %n
|
||||||
%arrayidx4 = getelementptr inbounds i32, i32* %A, i64 %sub3
|
%arrayidx4 = getelementptr inbounds i32, i32* %A, i64 %sub3
|
||||||
%0 = load i32* %arrayidx4, align 4
|
%0 = load i32, i32* %arrayidx4, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %0, i32* %B.addr.02, align 4
|
store i32 %0, i32* %B.addr.02, align 4
|
||||||
%inc = add nsw i64 %i.03, 1
|
%inc = add nsw i64 %i.03, 1
|
||||||
@ -310,7 +310,7 @@ for.body: ; preds = %for.body.preheader,
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%sub = sub i64 0, %i.03
|
%sub = sub i64 0, %i.03
|
||||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub
|
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub
|
||||||
%0 = load i32* %arrayidx2, align 4
|
%0 = load i32, i32* %arrayidx2, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %0, i32* %B.addr.02, align 4
|
store i32 %0, i32* %B.addr.02, align 4
|
||||||
%inc = add i64 %i.03, 1
|
%inc = add i64 %i.03, 1
|
||||||
@ -359,7 +359,7 @@ for.body: ; preds = %for.body.preheader,
|
|||||||
%add5 = add i64 %mul3, %mul4
|
%add5 = add i64 %mul3, %mul4
|
||||||
%add6 = add i64 %add5, 1
|
%add6 = add i64 %add5, 1
|
||||||
%arrayidx7 = getelementptr inbounds i32, i32* %A, i64 %add6
|
%arrayidx7 = getelementptr inbounds i32, i32* %A, i64 %add6
|
||||||
%0 = load i32* %arrayidx7, align 4
|
%0 = load i32, i32* %arrayidx7, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %0, i32* %B.addr.02, align 4
|
store i32 %0, i32* %B.addr.02, align 4
|
||||||
%inc = add nsw i64 %i.03, 1
|
%inc = add nsw i64 %i.03, 1
|
||||||
@ -408,7 +408,7 @@ for.body: ; preds = %for.body.preheader,
|
|||||||
%sub = add i64 %mul3, %0
|
%sub = add i64 %mul3, %0
|
||||||
%add5 = add i64 %sub, 2
|
%add5 = add i64 %sub, 2
|
||||||
%arrayidx6 = getelementptr inbounds i32, i32* %A, i64 %add5
|
%arrayidx6 = getelementptr inbounds i32, i32* %A, i64 %add5
|
||||||
%1 = load i32* %arrayidx6, align 4
|
%1 = load i32, i32* %arrayidx6, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %1, i32* %B.addr.02, align 4
|
store i32 %1, i32* %B.addr.02, align 4
|
||||||
%inc = add nsw i64 %i.03, 1
|
%inc = add nsw i64 %i.03, 1
|
||||||
|
@ -35,7 +35,7 @@ for.body: ; preds = %for.body.preheader,
|
|||||||
%mul1 = mul i64 %i.03, %n
|
%mul1 = mul i64 %i.03, %n
|
||||||
%sub = sub i64 1, %mul1
|
%sub = sub i64 1, %mul1
|
||||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub
|
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub
|
||||||
%0 = load i32* %arrayidx2, align 4
|
%0 = load i32, i32* %arrayidx2, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %0, i32* %B.addr.02, align 4
|
store i32 %0, i32* %B.addr.02, align 4
|
||||||
%inc = add i64 %i.03, 1
|
%inc = add i64 %i.03, 1
|
||||||
@ -80,7 +80,7 @@ for.body: ; preds = %for.body.preheader,
|
|||||||
%add1 = add i64 %n, 1
|
%add1 = add i64 %n, 1
|
||||||
%sub = sub i64 %add1, %i.03
|
%sub = sub i64 %add1, %i.03
|
||||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub
|
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub
|
||||||
%0 = load i32* %arrayidx2, align 4
|
%0 = load i32, i32* %arrayidx2, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %0, i32* %B.addr.02, align 4
|
store i32 %0, i32* %B.addr.02, align 4
|
||||||
%inc = add i64 %i.03, 1
|
%inc = add i64 %i.03, 1
|
||||||
@ -118,7 +118,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%sub = sub i64 6, %i.02
|
%sub = sub i64 6, %i.02
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %sub
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %sub
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -153,7 +153,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%sub = sub i64 6, %i.02
|
%sub = sub i64 6, %i.02
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %sub
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %sub
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -188,7 +188,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%sub = sub i64 -6, %i.02
|
%sub = sub i64 -6, %i.02
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %sub
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %sub
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -229,7 +229,7 @@ for.body: ; preds = %for.body.preheader,
|
|||||||
%0 = mul i64 %i.03, -3
|
%0 = mul i64 %i.03, -3
|
||||||
%sub = add i64 %0, 5
|
%sub = add i64 %0, 5
|
||||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub
|
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %sub
|
||||||
%1 = load i32* %arrayidx2, align 4
|
%1 = load i32, i32* %arrayidx2, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %1, i32* %B.addr.02, align 4
|
store i32 %1, i32* %B.addr.02, align 4
|
||||||
%inc = add i64 %i.03, 1
|
%inc = add i64 %i.03, 1
|
||||||
@ -268,7 +268,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%sub = sub i64 5, %i.02
|
%sub = sub i64 5, %i.02
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %sub
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %sub
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
|
@ -29,7 +29,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
|
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
|
||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 10
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 10
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -69,7 +69,7 @@ for.body: ; preds = %for.body.preheader,
|
|||||||
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
|
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %add
|
||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 10
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 10
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %0, i32* %B.addr.02, align 4
|
store i32 %0, i32* %B.addr.02, align 4
|
||||||
%inc = add i64 %i.03, 1
|
%inc = add i64 %i.03, 1
|
||||||
@ -107,7 +107,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
|
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
|
||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 10
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 10
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -142,7 +142,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
|
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
|
||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 10
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 10
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -177,7 +177,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
|
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
|
||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 10
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 10
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -212,7 +212,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
|
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
|
||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 -10
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 -10
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -251,7 +251,7 @@ for.body: ; preds = %for.body.preheader,
|
|||||||
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
|
%arrayidx = getelementptr inbounds i32, i32* %A, i64 %mul
|
||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 10
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 10
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %0, i32* %B.addr.02, align 4
|
store i32 %0, i32* %B.addr.02, align 4
|
||||||
%inc = add i64 %i.03, 1
|
%inc = add i64 %i.03, 1
|
||||||
|
@ -29,7 +29,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
%mul = shl i64 %i.02, 1
|
%mul = shl i64 %i.02, 1
|
||||||
%add = add i64 %mul, 10
|
%add = add i64 %mul, 10
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -69,7 +69,7 @@ for.body: ; preds = %for.body.preheader,
|
|||||||
%mul = mul i64 %i.03, %n
|
%mul = mul i64 %i.03, %n
|
||||||
%add = add i64 %mul, 10
|
%add = add i64 %mul, 10
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %0, i32* %B.addr.02, align 4
|
store i32 %0, i32* %B.addr.02, align 4
|
||||||
%inc = add i64 %i.03, 1
|
%inc = add i64 %i.03, 1
|
||||||
@ -107,7 +107,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%mul = shl i64 %i.02, 1
|
%mul = shl i64 %i.02, 1
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %mul
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %mul
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -142,7 +142,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%mul = shl i64 %i.02, 1
|
%mul = shl i64 %i.02, 1
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %mul
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %mul
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -177,7 +177,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%mul = shl i64 %i.02, 1
|
%mul = shl i64 %i.02, 1
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %mul
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %mul
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -212,7 +212,7 @@ for.body: ; preds = %entry, %for.body
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%mul = shl i64 %i.02, 1
|
%mul = shl i64 %i.02, 1
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %mul
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %mul
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.01, i64 1
|
||||||
store i32 %0, i32* %B.addr.01, align 4
|
store i32 %0, i32* %B.addr.01, align 4
|
||||||
%inc = add i64 %i.02, 1
|
%inc = add i64 %i.02, 1
|
||||||
@ -251,7 +251,7 @@ for.body: ; preds = %for.body.preheader,
|
|||||||
store i32 %conv, i32* %arrayidx, align 4
|
store i32 %conv, i32* %arrayidx, align 4
|
||||||
%mul = mul i64 %i.03, 3
|
%mul = mul i64 %i.03, 3
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %mul
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %mul
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
%incdec.ptr = getelementptr inbounds i32, i32* %B.addr.02, i64 1
|
||||||
store i32 %0, i32* %B.addr.02, align 4
|
store i32 %0, i32* %B.addr.02, align 4
|
||||||
%inc = add i64 %i.03, 1
|
%inc = add i64 %i.03, 1
|
||||||
|
@ -23,7 +23,7 @@ entry:
|
|||||||
|
|
||||||
%add1 = add i64 %n, 1
|
%add1 = add i64 %n, 1
|
||||||
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %add1
|
%arrayidx2 = getelementptr inbounds i32, i32* %A, i64 %add1
|
||||||
%0 = load i32* %arrayidx2, align 4
|
%0 = load i32, i32* %arrayidx2, align 4
|
||||||
store i32 %0, i32* %B, align 4
|
store i32 %0, i32* %B, align 4
|
||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
@ -46,7 +46,7 @@ entry:
|
|||||||
|
|
||||||
%add = add i64 %n, 1
|
%add = add i64 %n, 1
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %add
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
store i32 %0, i32* %B, align 4
|
store i32 %0, i32* %B, align 4
|
||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
@ -68,7 +68,7 @@ entry:
|
|||||||
; CHECK: da analyze - none!
|
; CHECK: da analyze - none!
|
||||||
|
|
||||||
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %m
|
%arrayidx1 = getelementptr inbounds i32, i32* %A, i64 %m
|
||||||
%0 = load i32* %arrayidx1, align 4
|
%0 = load i32, i32* %arrayidx1, align 4
|
||||||
store i32 %0, i32* %B, align 4
|
store i32 %0, i32* %B, align 4
|
||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
@g = internal global i32 0 ; <i32*> [#uses=2]
|
@g = internal global i32 0 ; <i32*> [#uses=2]
|
||||||
|
|
||||||
define i32 @r() {
|
define i32 @r() {
|
||||||
%tmp = load i32* @g ; <i32> [#uses=1]
|
%tmp = load i32, i32* @g ; <i32> [#uses=1]
|
||||||
ret i32 %tmp
|
ret i32 %tmp
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,6 +9,6 @@ define i32 @test(i32* %P) {
|
|||||||
; CHECK-NEXT: ret i32 7
|
; CHECK-NEXT: ret i32 7
|
||||||
store i32 7, i32* %P
|
store i32 7, i32* %P
|
||||||
store i32 12, i32* @X
|
store i32 12, i32* @X
|
||||||
%V = load i32* %P ; <i32> [#uses=1]
|
%V = load i32, i32* %P ; <i32> [#uses=1]
|
||||||
ret i32 %V
|
ret i32 %V
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@ define i32 @test(i32* %P) {
|
|||||||
; CHECK-NEXT: ret i32 12
|
; CHECK-NEXT: ret i32 12
|
||||||
store i32 12, i32* @X
|
store i32 12, i32* @X
|
||||||
call double @doesnotmodX( double 1.000000e+00 ) ; <double>:1 [#uses=0]
|
call double @doesnotmodX( double 1.000000e+00 ) ; <double>:1 [#uses=0]
|
||||||
%V = load i32* @X ; <i32> [#uses=1]
|
%V = load i32, i32* @X ; <i32> [#uses=1]
|
||||||
ret i32 %V
|
ret i32 %V
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,11 +12,11 @@ define void @test() {
|
|||||||
|
|
||||||
define i32 @test1(i32* %P) {
|
define i32 @test1(i32* %P) {
|
||||||
; CHECK: ret i32 0
|
; CHECK: ret i32 0
|
||||||
%g1 = load i32** @G ; <i32*> [#uses=2]
|
%g1 = load i32*, i32** @G ; <i32*> [#uses=2]
|
||||||
%h1 = load i32* %g1 ; <i32> [#uses=1]
|
%h1 = load i32, i32* %g1 ; <i32> [#uses=1]
|
||||||
store i32 123, i32* %P
|
store i32 123, i32* %P
|
||||||
%g2 = load i32** @G ; <i32*> [#uses=0]
|
%g2 = load i32*, i32** @G ; <i32*> [#uses=0]
|
||||||
%h2 = load i32* %g1 ; <i32> [#uses=1]
|
%h2 = load i32, i32* %g1 ; <i32> [#uses=1]
|
||||||
%X = sub i32 %h1, %h2 ; <i32> [#uses=1]
|
%X = sub i32 %h1, %h2 ; <i32> [#uses=1]
|
||||||
ret i32 %X
|
ret i32 %X
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ define i32 @test(i32* %P) {
|
|||||||
; CHECK-NEXT: ret i32 12
|
; CHECK-NEXT: ret i32 12
|
||||||
store i32 12, i32* @X
|
store i32 12, i32* @X
|
||||||
call void @doesnotmodX( )
|
call void @doesnotmodX( )
|
||||||
%V = load i32* @X ; <i32> [#uses=1]
|
%V = load i32, i32* @X ; <i32> [#uses=1]
|
||||||
ret i32 %V
|
ret i32 %V
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ define void @foo(i8* %x, i8* %y) {
|
|||||||
define void @bar(i8* %y, i8* %z) {
|
define void @bar(i8* %y, i8* %z) {
|
||||||
%x = alloca i8
|
%x = alloca i8
|
||||||
call void @foo(i8* %x, i8* %y)
|
call void @foo(i8* %x, i8* %y)
|
||||||
%t = load i8* %x
|
%t = load i8, i8* %x
|
||||||
store i8 %t, i8* %y
|
store i8 %t, i8* %y
|
||||||
; CHECK: store i8 %t, i8* %y
|
; CHECK: store i8 %t, i8* %y
|
||||||
ret void
|
ret void
|
||||||
@ -19,8 +19,8 @@ define void @bar(i8* %y, i8* %z) {
|
|||||||
define i32 @foo2() {
|
define i32 @foo2() {
|
||||||
%foo = alloca i32
|
%foo = alloca i32
|
||||||
call void @bar2(i32* %foo)
|
call void @bar2(i32* %foo)
|
||||||
%t0 = load i32* %foo, align 4
|
%t0 = load i32, i32* %foo, align 4
|
||||||
; CHECK: %t0 = load i32* %foo, align 4
|
; CHECK: %t0 = load i32, i32* %foo, align 4
|
||||||
ret i32 %t0
|
ret i32 %t0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32,
|
|||||||
define i32 @main() nounwind uwtable ssp {
|
define i32 @main() nounwind uwtable ssp {
|
||||||
main_entry:
|
main_entry:
|
||||||
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* bitcast (%struct.anon* @b to i8*), i8* bitcast (%struct.anon* @a to i8*), i64 12, i32 4, i1 false)
|
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* bitcast (%struct.anon* @b to i8*), i8* bitcast (%struct.anon* @a to i8*), i64 12, i32 4, i1 false)
|
||||||
%0 = load volatile i32* getelementptr inbounds (%struct.anon* @b, i64 0, i32 0), align 4
|
%0 = load volatile i32, i32* getelementptr inbounds (%struct.anon* @b, i64 0, i32 0), align 4
|
||||||
store i32 %0, i32* @c, align 4
|
store i32 %0, i32* @c, align 4
|
||||||
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* bitcast (%struct.anon* @b to i8*), i8* bitcast (%struct.anon* @a to i8*), i64 12, i32 4, i1 false) nounwind
|
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* bitcast (%struct.anon* @b to i8*), i8* bitcast (%struct.anon* @a to i8*), i64 12, i32 4, i1 false) nounwind
|
||||||
%call = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8]* @.str, i64 0, i64 0), i32 %0) nounwind
|
%call = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8]* @.str, i64 0, i64 0), i32 %0) nounwind
|
||||||
|
@ -118,10 +118,10 @@ define void @test2() {
|
|||||||
; CHECK-NEXT: -> f1
|
; CHECK-NEXT: -> f1
|
||||||
; CHECK-NOT: ->
|
; CHECK-NOT: ->
|
||||||
|
|
||||||
load i8** bitcast (void ()** @g to i8**)
|
load i8*, i8** bitcast (void ()** @g to i8**)
|
||||||
load i8** bitcast (void ()** getelementptr ([4 x void ()*]* @g1, i32 0, i32 2) to i8**)
|
load i8*, i8** bitcast (void ()** getelementptr ([4 x void ()*]* @g1, i32 0, i32 2) to i8**)
|
||||||
load i8** bitcast (void ()** getelementptr ({i8, void ()*, i8}* @g2, i32 0, i32 1) to i8**)
|
load i8*, i8** bitcast (void ()** getelementptr ({i8, void ()*, i8}* @g2, i32 0, i32 1) to i8**)
|
||||||
load i8** bitcast (void ()** @h to i8**)
|
load i8*, i8** bitcast (void ()** @h to i8**)
|
||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,18 +20,18 @@ target triple = "x86_64-apple-macosx10.10.0"
|
|||||||
|
|
||||||
define void @f() {
|
define void @f() {
|
||||||
entry:
|
entry:
|
||||||
%a = load i32** @A, align 8
|
%a = load i32*, i32** @A, align 8
|
||||||
%b = load i32** @B, align 8
|
%b = load i32*, i32** @B, align 8
|
||||||
br label %for.body
|
br label %for.body
|
||||||
|
|
||||||
for.body: ; preds = %for.body, %entry
|
for.body: ; preds = %for.body, %entry
|
||||||
%storemerge3 = phi i64 [ 0, %entry ], [ %add, %for.body ]
|
%storemerge3 = phi i64 [ 0, %entry ], [ %add, %for.body ]
|
||||||
|
|
||||||
%arrayidxA = getelementptr inbounds i32, i32* %a, i64 %storemerge3
|
%arrayidxA = getelementptr inbounds i32, i32* %a, i64 %storemerge3
|
||||||
%loadA = load i32* %arrayidxA, align 2
|
%loadA = load i32, i32* %arrayidxA, align 2
|
||||||
|
|
||||||
%arrayidxB = getelementptr inbounds i32, i32* %b, i64 %storemerge3
|
%arrayidxB = getelementptr inbounds i32, i32* %b, i64 %storemerge3
|
||||||
%loadB = load i32* %arrayidxB, align 2
|
%loadB = load i32, i32* %arrayidxB, align 2
|
||||||
|
|
||||||
%mul = mul i32 %loadB, %loadA
|
%mul = mul i32 %loadB, %loadA
|
||||||
|
|
||||||
|
@ -28,22 +28,22 @@ target triple = "x86_64-apple-macosx10.10.0"
|
|||||||
|
|
||||||
define void @f() {
|
define void @f() {
|
||||||
entry:
|
entry:
|
||||||
%a = load i16** @A, align 8
|
%a = load i16*, i16** @A, align 8
|
||||||
%b = load i16** @B, align 8
|
%b = load i16*, i16** @B, align 8
|
||||||
%c = load i16** @C, align 8
|
%c = load i16*, i16** @C, align 8
|
||||||
br label %for.body
|
br label %for.body
|
||||||
|
|
||||||
for.body: ; preds = %for.body, %entry
|
for.body: ; preds = %for.body, %entry
|
||||||
%storemerge3 = phi i64 [ 0, %entry ], [ %add, %for.body ]
|
%storemerge3 = phi i64 [ 0, %entry ], [ %add, %for.body ]
|
||||||
|
|
||||||
%arrayidxA = getelementptr inbounds i16, i16* %a, i64 %storemerge3
|
%arrayidxA = getelementptr inbounds i16, i16* %a, i64 %storemerge3
|
||||||
%loadA = load i16* %arrayidxA, align 2
|
%loadA = load i16, i16* %arrayidxA, align 2
|
||||||
|
|
||||||
%arrayidxB = getelementptr inbounds i16, i16* %b, i64 %storemerge3
|
%arrayidxB = getelementptr inbounds i16, i16* %b, i64 %storemerge3
|
||||||
%loadB = load i16* %arrayidxB, align 2
|
%loadB = load i16, i16* %arrayidxB, align 2
|
||||||
|
|
||||||
%arrayidxC = getelementptr inbounds i16, i16* %c, i64 %storemerge3
|
%arrayidxC = getelementptr inbounds i16, i16* %c, i64 %storemerge3
|
||||||
%loadC = load i16* %arrayidxC, align 2
|
%loadC = load i16, i16* %arrayidxC, align 2
|
||||||
|
|
||||||
%mul = mul i16 %loadB, %loadA
|
%mul = mul i16 %loadB, %loadA
|
||||||
%mul1 = mul i16 %mul, %loadC
|
%mul1 = mul i16 %mul, %loadC
|
||||||
|
@ -11,7 +11,7 @@ target triple = "x86_64-apple-macosx10.10.0"
|
|||||||
|
|
||||||
; CHECK: Report: unsafe dependent memory operations in loop
|
; CHECK: Report: unsafe dependent memory operations in loop
|
||||||
|
|
||||||
; DEBUG: LAA: Distance for %loadA = load i16* %arrayidxA, align 2 to store i16 %mul1, i16* %arrayidxA_plus_2, align 2: 2
|
; DEBUG: LAA: Distance for %loadA = load i16, i16* %arrayidxA, align 2 to store i16 %mul1, i16* %arrayidxA_plus_2, align 2: 2
|
||||||
; DEBUG-NEXT: LAA: Failure because of Positive distance 2
|
; DEBUG-NEXT: LAA: Failure because of Positive distance 2
|
||||||
|
|
||||||
; CHECK: Run-time memory checks:
|
; CHECK: Run-time memory checks:
|
||||||
@ -29,22 +29,22 @@ target triple = "x86_64-apple-macosx10.10.0"
|
|||||||
|
|
||||||
define void @f() {
|
define void @f() {
|
||||||
entry:
|
entry:
|
||||||
%a = load i16** @A, align 8
|
%a = load i16*, i16** @A, align 8
|
||||||
%b = load i16** @B, align 8
|
%b = load i16*, i16** @B, align 8
|
||||||
%c = load i16** @C, align 8
|
%c = load i16*, i16** @C, align 8
|
||||||
br label %for.body
|
br label %for.body
|
||||||
|
|
||||||
for.body: ; preds = %for.body, %entry
|
for.body: ; preds = %for.body, %entry
|
||||||
%storemerge3 = phi i64 [ 0, %entry ], [ %add, %for.body ]
|
%storemerge3 = phi i64 [ 0, %entry ], [ %add, %for.body ]
|
||||||
|
|
||||||
%arrayidxA = getelementptr inbounds i16, i16* %a, i64 %storemerge3
|
%arrayidxA = getelementptr inbounds i16, i16* %a, i64 %storemerge3
|
||||||
%loadA = load i16* %arrayidxA, align 2
|
%loadA = load i16, i16* %arrayidxA, align 2
|
||||||
|
|
||||||
%arrayidxB = getelementptr inbounds i16, i16* %b, i64 %storemerge3
|
%arrayidxB = getelementptr inbounds i16, i16* %b, i64 %storemerge3
|
||||||
%loadB = load i16* %arrayidxB, align 2
|
%loadB = load i16, i16* %arrayidxB, align 2
|
||||||
|
|
||||||
%arrayidxC = getelementptr inbounds i16, i16* %c, i64 %storemerge3
|
%arrayidxC = getelementptr inbounds i16, i16* %c, i64 %storemerge3
|
||||||
%loadC = load i16* %arrayidxC, align 2
|
%loadC = load i16, i16* %arrayidxC, align 2
|
||||||
|
|
||||||
%mul = mul i16 %loadB, %loadA
|
%mul = mul i16 %loadB, %loadA
|
||||||
%mul1 = mul i16 %mul, %loadC
|
%mul1 = mul i16 %mul, %loadC
|
||||||
|
@ -11,7 +11,7 @@ for.body: ; preds = %for.body, %entry
|
|||||||
%i.01 = phi i32 [ 0, %entry ], [ %tmp8.7, %for.body ]
|
%i.01 = phi i32 [ 0, %entry ], [ %tmp8.7, %for.body ]
|
||||||
%arrayidx = getelementptr i32, i32* %bufUInt, i32 %i.01
|
%arrayidx = getelementptr i32, i32* %bufUInt, i32 %i.01
|
||||||
%arrayidx5 = getelementptr i32, i32* %pattern, i32 %i.01
|
%arrayidx5 = getelementptr i32, i32* %pattern, i32 %i.01
|
||||||
%tmp6 = load i32* %arrayidx5, align 4
|
%tmp6 = load i32, i32* %arrayidx5, align 4
|
||||||
store i32 %tmp6, i32* %arrayidx, align 4
|
store i32 %tmp6, i32* %arrayidx, align 4
|
||||||
%tmp8.7 = add i32 %i.01, 8
|
%tmp8.7 = add i32 %i.01, 8
|
||||||
%cmp.7 = icmp ult i32 %tmp8.7, 1024
|
%cmp.7 = icmp ult i32 %tmp8.7, 1024
|
||||||
|
@ -16,11 +16,11 @@ bb.nph: ; preds = %entry
|
|||||||
|
|
||||||
bb: ; preds = %bb1, %bb.nph
|
bb: ; preds = %bb1, %bb.nph
|
||||||
%j.01 = phi i32 [ %8, %bb1 ], [ 0, %bb.nph ] ; <i32> [#uses=1]
|
%j.01 = phi i32 [ %8, %bb1 ], [ 0, %bb.nph ] ; <i32> [#uses=1]
|
||||||
load i32* %srcptr, align 4 ; <i32>:1 [#uses=2]
|
load i32, i32* %srcptr, align 4 ; <i32>:1 [#uses=2]
|
||||||
and i32 %1, 255 ; <i32>:2 [#uses=1]
|
and i32 %1, 255 ; <i32>:2 [#uses=1]
|
||||||
and i32 %1, -256 ; <i32>:3 [#uses=1]
|
and i32 %1, -256 ; <i32>:3 [#uses=1]
|
||||||
getelementptr [256 x i8], [256 x i8]* @lut, i32 0, i32 %2 ; <i8*>:4 [#uses=1]
|
getelementptr [256 x i8], [256 x i8]* @lut, i32 0, i32 %2 ; <i8*>:4 [#uses=1]
|
||||||
load i8* %4, align 1 ; <i8>:5 [#uses=1]
|
load i8, i8* %4, align 1 ; <i8>:5 [#uses=1]
|
||||||
zext i8 %5 to i32 ; <i32>:6 [#uses=1]
|
zext i8 %5 to i32 ; <i32>:6 [#uses=1]
|
||||||
or i32 %6, %3 ; <i32>:7 [#uses=1]
|
or i32 %6, %3 ; <i32>:7 [#uses=1]
|
||||||
store i32 %7, i32* %dstptr, align 4
|
store i32 %7, i32* %dstptr, align 4
|
||||||
|
@ -10,7 +10,7 @@ bb1: ; preds = %bb1, %bb1.thread
|
|||||||
%indvar = phi i32 [ 0, %bb1.thread ], [ %indvar.next, %bb1 ] ; <i32> [#uses=4]
|
%indvar = phi i32 [ 0, %bb1.thread ], [ %indvar.next, %bb1 ] ; <i32> [#uses=4]
|
||||||
%i.0.reg2mem.0 = sub i32 255, %indvar ; <i32> [#uses=2]
|
%i.0.reg2mem.0 = sub i32 255, %indvar ; <i32> [#uses=2]
|
||||||
%0 = getelementptr i32, i32* %alp, i32 %i.0.reg2mem.0 ; <i32*> [#uses=1]
|
%0 = getelementptr i32, i32* %alp, i32 %i.0.reg2mem.0 ; <i32*> [#uses=1]
|
||||||
%1 = load i32* %0, align 4 ; <i32> [#uses=1]
|
%1 = load i32, i32* %0, align 4 ; <i32> [#uses=1]
|
||||||
%2 = getelementptr i32, i32* %lam, i32 %i.0.reg2mem.0 ; <i32*> [#uses=1]
|
%2 = getelementptr i32, i32* %lam, i32 %i.0.reg2mem.0 ; <i32*> [#uses=1]
|
||||||
store i32 %1, i32* %2, align 4
|
store i32 %1, i32* %2, align 4
|
||||||
%3 = sub i32 254, %indvar ; <i32> [#uses=1]
|
%3 = sub i32 254, %indvar ; <i32> [#uses=1]
|
||||||
|
@ -9,12 +9,12 @@
|
|||||||
|
|
||||||
define void @func_15() nounwind {
|
define void @func_15() nounwind {
|
||||||
entry:
|
entry:
|
||||||
%0 = load i16* @g_16, align 2 ; <i16> [#uses=1]
|
%0 = load i16, i16* @g_16, align 2 ; <i16> [#uses=1]
|
||||||
%1 = icmp sgt i16 %0, 0 ; <i1> [#uses=1]
|
%1 = icmp sgt i16 %0, 0 ; <i1> [#uses=1]
|
||||||
br i1 %1, label %bb2, label %bb.nph
|
br i1 %1, label %bb2, label %bb.nph
|
||||||
|
|
||||||
bb.nph: ; preds = %entry
|
bb.nph: ; preds = %entry
|
||||||
%g_16.promoted = load i16* @g_16 ; <i16> [#uses=1]
|
%g_16.promoted = load i16, i16* @g_16 ; <i16> [#uses=1]
|
||||||
br label %bb
|
br label %bb
|
||||||
|
|
||||||
bb: ; preds = %bb1, %bb.nph
|
bb: ; preds = %bb1, %bb.nph
|
||||||
|
@ -3,11 +3,11 @@
|
|||||||
|
|
||||||
define void @test() {
|
define void @test() {
|
||||||
entry:
|
entry:
|
||||||
%0 = load i16* undef, align 1
|
%0 = load i16, i16* undef, align 1
|
||||||
%1 = lshr i16 %0, 8
|
%1 = lshr i16 %0, 8
|
||||||
%2 = and i16 %1, 3
|
%2 = and i16 %1, 3
|
||||||
%3 = zext i16 %2 to i32
|
%3 = zext i16 %2 to i32
|
||||||
%4 = load i8* undef, align 1
|
%4 = load i8, i8* undef, align 1
|
||||||
%5 = lshr i8 %4, 4
|
%5 = lshr i8 %4, 4
|
||||||
%6 = and i8 %5, 1
|
%6 = and i8 %5, 1
|
||||||
%7 = zext i8 %6 to i32
|
%7 = zext i8 %6 to i32
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user