[llvm-commits] [llvm-testresults] lab-mini-01__O3-plain__clang_DEV__x86_64 test results
Duncan Sands
baldrick at free.fr
Fri May 25 08:47:14 PDT 2012
PS: Before and after bitcode attached.
-------------- next part --------------
; ModuleID = '<stdin>'
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
@.str = private unnamed_addr constant [21 x i8] c"Found duplicate: %d\0A\00", align 1
declare i32 @rand() nounwind
define internal fastcc noalias i32* @createRandomArray() nounwind uwtable {
entry:
%call = tail call noalias i8* @malloc(i64 2000004) nounwind
%0 = bitcast i8* %call to i32*
br label %for.body
for.body: ; preds = %entry, %for.body
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
%arrayidx = getelementptr inbounds i32* %0, i64 %indvars.iv
%1 = trunc i64 %indvars.iv to i32
store i32 %1, i32* %arrayidx, align 4, !tbaa !0
%indvars.iv.next = add i64 %indvars.iv, 1
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
%exitcond = icmp eq i32 %lftr.wideiv, 500001
br i1 %exitcond, label %for.body.lr.ph.i, label %for.body
for.body.lr.ph.i: ; preds = %for.body
%call.i = tail call i32 @rand() nounwind
%conv1.i = sitofp i32 %call.i to double
%div.i = fmul double %conv1.i, 0x3E00000000000000
%mul.i = fmul double %div.i, 5.000000e+05
%conv2.i = fptosi double %mul.i to i32
%cmp.i = icmp eq i32 %conv2.i, 500000
%sub5.i = sext i1 %cmp.i to i32
%add4.i = add i32 %conv2.i, 1
%cond.i = add i32 %add4.i, %sub5.i
store i32 %cond.i, i32* %0, align 4, !tbaa !0
br label %for.body.i
for.body.i: ; preds = %for.body.i, %for.body.lr.ph.i
%storemerge2.i = phi i64 [ 500000, %for.body.lr.ph.i ], [ %dec.i, %for.body.i ]
%add.i = add i64 %storemerge2.i, 1
%conv2.i3 = uitofp i64 %add.i to double
%call.i4 = tail call i32 @rand() nounwind
%conv3.i = sitofp i32 %call.i4 to double
%div.i5 = fmul double %conv3.i, 0x3E00000000000000
%mul.i6 = fmul double %conv2.i3, %div.i5
%conv4.i = fptosi double %mul.i6 to i32
%conv5.i = sext i32 %conv4.i to i64
%cmp7.i = icmp eq i64 %conv5.i, %add.i
%sub9.i = sext i1 %cmp7.i to i64
%cond.i7 = add i64 %sub9.i, %conv5.i
%arrayidx.i = getelementptr inbounds i32* %0, i64 %storemerge2.i
%2 = load i32* %arrayidx.i, align 4, !tbaa !0
%arrayidx10.i = getelementptr inbounds i32* %0, i64 %cond.i7
%3 = load i32* %arrayidx10.i, align 4, !tbaa !0
store i32 %3, i32* %arrayidx.i, align 4, !tbaa !0
store i32 %2, i32* %arrayidx10.i, align 4, !tbaa !0
%dec.i = add i64 %storemerge2.i, -1
%cmp.i8 = icmp eq i64 %dec.i, 0
br i1 %cmp.i8, label %shuffle.exit, label %for.body.i
shuffle.exit: ; preds = %for.body.i
ret i32* %0
}
declare noalias i8* @malloc(i64) nounwind
define i32 @main() nounwind uwtable {
entry:
tail call void @srand(i32 1) nounwind
%call = tail call fastcc i32* @createRandomArray()
br label %for.body.i.preheader
for.body.i.preheader: ; preds = %findDuplicate.exit, %entry
%storemerge12 = phi i32 [ 0, %entry ], [ %inc, %findDuplicate.exit ]
br label %for.body.i
for.body.i: ; preds = %for.body.i, %for.body.i.preheader
%indvars.iv.i = phi i64 [ %indvars.iv.next.i, %for.body.i ], [ 0, %for.body.i.preheader ]
%xor213.i = phi i32 [ %xor1.i, %for.body.i ], [ 0, %for.body.i.preheader ]
%indvars.iv.next.i = add i64 %indvars.iv.i, 1
%arrayidx.i = getelementptr inbounds i32* %call, i64 %indvars.iv.i
%0 = load i32* %arrayidx.i, align 4, !tbaa !0
%1 = trunc i64 %indvars.iv.next.i to i32
%xor.i = xor i32 %0, %xor213.i
%xor1.i = xor i32 %xor.i, %1
%exitcond = icmp eq i32 %1, 500001
br i1 %exitcond, label %findDuplicate.exit, label %for.body.i
findDuplicate.exit: ; preds = %for.body.i
%inc = add nsw i32 %storemerge12, 1
%exitcond4 = icmp eq i32 %inc, 200
br i1 %exitcond4, label %for.end, label %for.body.i.preheader
for.end: ; preds = %findDuplicate.exit
%xor2.i = xor i32 %xor1.i, 500001
%2 = bitcast i32* %call to i8*
tail call void @free(i8* %2) nounwind
%call5 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([21 x i8]* @.str, i64 0, i64 0), i32 %xor2.i) nounwind
%call.1 = tail call fastcc i32* @createRandomArray()
br label %for.body.i.preheader.1
for.body.i.preheader.1: ; preds = %findDuplicate.exit.1, %for.end
%storemerge12.1 = phi i32 [ 0, %for.end ], [ %inc.1, %findDuplicate.exit.1 ]
br label %for.body.i.1
for.body.i.1: ; preds = %for.body.i.1, %for.body.i.preheader.1
%indvars.iv.i.1 = phi i64 [ %indvars.iv.next.i.1, %for.body.i.1 ], [ 0, %for.body.i.preheader.1 ]
%xor213.i.1 = phi i32 [ %xor1.i.1, %for.body.i.1 ], [ 0, %for.body.i.preheader.1 ]
%indvars.iv.next.i.1 = add i64 %indvars.iv.i.1, 1
%arrayidx.i.1 = getelementptr inbounds i32* %call.1, i64 %indvars.iv.i.1
%3 = load i32* %arrayidx.i.1, align 4, !tbaa !0
%4 = trunc i64 %indvars.iv.next.i.1 to i32
%xor.i.1 = xor i32 %3, %xor213.i.1
%xor1.i.1 = xor i32 %xor.i.1, %4
%exitcond.1 = icmp eq i32 %4, 500001
br i1 %exitcond.1, label %findDuplicate.exit.1, label %for.body.i.1
findDuplicate.exit.1: ; preds = %for.body.i.1
%inc.1 = add nsw i32 %storemerge12.1, 1
%exitcond4.1 = icmp eq i32 %inc.1, 200
br i1 %exitcond4.1, label %for.end.1, label %for.body.i.preheader.1
for.end.1: ; preds = %findDuplicate.exit.1
%xor2.i.1 = xor i32 %xor1.i.1, 500001
%5 = bitcast i32* %call.1 to i8*
tail call void @free(i8* %5) nounwind
%call5.1 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([21 x i8]* @.str, i64 0, i64 0), i32 %xor2.i.1) nounwind
%call.2 = tail call fastcc i32* @createRandomArray()
br label %for.body.i.preheader.2
for.body.i.preheader.2: ; preds = %findDuplicate.exit.2, %for.end.1
%storemerge12.2 = phi i32 [ 0, %for.end.1 ], [ %inc.2, %findDuplicate.exit.2 ]
br label %for.body.i.2
for.body.i.2: ; preds = %for.body.i.2, %for.body.i.preheader.2
%indvars.iv.i.2 = phi i64 [ %indvars.iv.next.i.2, %for.body.i.2 ], [ 0, %for.body.i.preheader.2 ]
%xor213.i.2 = phi i32 [ %xor1.i.2, %for.body.i.2 ], [ 0, %for.body.i.preheader.2 ]
%indvars.iv.next.i.2 = add i64 %indvars.iv.i.2, 1
%arrayidx.i.2 = getelementptr inbounds i32* %call.2, i64 %indvars.iv.i.2
%6 = load i32* %arrayidx.i.2, align 4, !tbaa !0
%7 = trunc i64 %indvars.iv.next.i.2 to i32
%xor.i.2 = xor i32 %6, %xor213.i.2
%xor1.i.2 = xor i32 %xor.i.2, %7
%exitcond.2 = icmp eq i32 %7, 500001
br i1 %exitcond.2, label %findDuplicate.exit.2, label %for.body.i.2
findDuplicate.exit.2: ; preds = %for.body.i.2
%inc.2 = add nsw i32 %storemerge12.2, 1
%exitcond4.2 = icmp eq i32 %inc.2, 200
br i1 %exitcond4.2, label %for.end.2, label %for.body.i.preheader.2
for.end.2: ; preds = %findDuplicate.exit.2
%xor2.i.2 = xor i32 %xor1.i.2, 500001
%8 = bitcast i32* %call.2 to i8*
tail call void @free(i8* %8) nounwind
%call5.2 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([21 x i8]* @.str, i64 0, i64 0), i32 %xor2.i.2) nounwind
%call.3 = tail call fastcc i32* @createRandomArray()
br label %for.body.i.preheader.3
for.body.i.preheader.3: ; preds = %findDuplicate.exit.3, %for.end.2
%storemerge12.3 = phi i32 [ 0, %for.end.2 ], [ %inc.3, %findDuplicate.exit.3 ]
br label %for.body.i.3
for.body.i.3: ; preds = %for.body.i.3, %for.body.i.preheader.3
%indvars.iv.i.3 = phi i64 [ %indvars.iv.next.i.3, %for.body.i.3 ], [ 0, %for.body.i.preheader.3 ]
%xor213.i.3 = phi i32 [ %xor1.i.3, %for.body.i.3 ], [ 0, %for.body.i.preheader.3 ]
%indvars.iv.next.i.3 = add i64 %indvars.iv.i.3, 1
%arrayidx.i.3 = getelementptr inbounds i32* %call.3, i64 %indvars.iv.i.3
%9 = load i32* %arrayidx.i.3, align 4, !tbaa !0
%10 = trunc i64 %indvars.iv.next.i.3 to i32
%xor.i.3 = xor i32 %9, %xor213.i.3
%xor1.i.3 = xor i32 %xor.i.3, %10
%exitcond.3 = icmp eq i32 %10, 500001
br i1 %exitcond.3, label %findDuplicate.exit.3, label %for.body.i.3
findDuplicate.exit.3: ; preds = %for.body.i.3
%inc.3 = add nsw i32 %storemerge12.3, 1
%exitcond4.3 = icmp eq i32 %inc.3, 200
br i1 %exitcond4.3, label %for.end.3, label %for.body.i.preheader.3
for.end.3: ; preds = %findDuplicate.exit.3
%xor2.i.3 = xor i32 %xor1.i.3, 500001
%11 = bitcast i32* %call.3 to i8*
tail call void @free(i8* %11) nounwind
%call5.3 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([21 x i8]* @.str, i64 0, i64 0), i32 %xor2.i.3) nounwind
%call.4 = tail call fastcc i32* @createRandomArray()
br label %for.body.i.preheader.4
for.body.i.preheader.4: ; preds = %findDuplicate.exit.4, %for.end.3
%storemerge12.4 = phi i32 [ 0, %for.end.3 ], [ %inc.4, %findDuplicate.exit.4 ]
br label %for.body.i.4
for.body.i.4: ; preds = %for.body.i.4, %for.body.i.preheader.4
%indvars.iv.i.4 = phi i64 [ %indvars.iv.next.i.4, %for.body.i.4 ], [ 0, %for.body.i.preheader.4 ]
%xor213.i.4 = phi i32 [ %xor1.i.4, %for.body.i.4 ], [ 0, %for.body.i.preheader.4 ]
%indvars.iv.next.i.4 = add i64 %indvars.iv.i.4, 1
%arrayidx.i.4 = getelementptr inbounds i32* %call.4, i64 %indvars.iv.i.4
%12 = load i32* %arrayidx.i.4, align 4, !tbaa !0
%13 = trunc i64 %indvars.iv.next.i.4 to i32
%xor.i.4 = xor i32 %12, %xor213.i.4
%xor1.i.4 = xor i32 %xor.i.4, %13
%exitcond.4 = icmp eq i32 %13, 500001
br i1 %exitcond.4, label %findDuplicate.exit.4, label %for.body.i.4
findDuplicate.exit.4: ; preds = %for.body.i.4
%inc.4 = add nsw i32 %storemerge12.4, 1
%exitcond4.4 = icmp eq i32 %inc.4, 200
br i1 %exitcond4.4, label %for.end.4, label %for.body.i.preheader.4
for.end.4: ; preds = %findDuplicate.exit.4
%xor2.i.4 = xor i32 %xor1.i.4, 500001
%14 = bitcast i32* %call.4 to i8*
tail call void @free(i8* %14) nounwind
%call5.4 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([21 x i8]* @.str, i64 0, i64 0), i32 %xor2.i.4) nounwind
ret i32 0
}
declare void @srand(i32) nounwind
declare void @free(i8* nocapture) nounwind
declare i32 @printf(i8* nocapture, ...) nounwind
!0 = metadata !{metadata !"int", metadata !1}
!1 = metadata !{metadata !"omnipotent char", metadata !2}
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
-------------- next part --------------
; ModuleID = '<stdin>'
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
@.str = private unnamed_addr constant [21 x i8] c"Found duplicate: %d\0A\00", align 1
declare i32 @rand() nounwind
define internal fastcc noalias i32* @createRandomArray() nounwind uwtable {
entry:
%call = tail call noalias i8* @malloc(i64 2000004) nounwind
%0 = bitcast i8* %call to i32*
br label %for.body
for.body: ; preds = %entry, %for.body
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
%arrayidx = getelementptr inbounds i32* %0, i64 %indvars.iv
%1 = trunc i64 %indvars.iv to i32
store i32 %1, i32* %arrayidx, align 4, !tbaa !0
%indvars.iv.next = add i64 %indvars.iv, 1
%lftr.wideiv = trunc i64 %indvars.iv.next to i32
%exitcond = icmp eq i32 %lftr.wideiv, 500001
br i1 %exitcond, label %for.body.lr.ph.i, label %for.body
for.body.lr.ph.i: ; preds = %for.body
%call.i = tail call i32 @rand() nounwind
%conv1.i = sitofp i32 %call.i to double
%div.i = fmul double %conv1.i, 0x3E00000000000000
%mul.i = fmul double %div.i, 5.000000e+05
%conv2.i = fptosi double %mul.i to i32
%cmp.i = icmp eq i32 %conv2.i, 500000
%sub5.i = sext i1 %cmp.i to i32
%add4.i = add nsw i32 %conv2.i, 1
%cond.i = add nsw i32 %add4.i, %sub5.i
store i32 %cond.i, i32* %0, align 4, !tbaa !0
br label %for.body.i
for.body.i: ; preds = %for.body.i, %for.body.lr.ph.i
%storemerge2.i = phi i64 [ 500000, %for.body.lr.ph.i ], [ %dec.i, %for.body.i ]
%add.i = add i64 %storemerge2.i, 1
%conv2.i3 = uitofp i64 %add.i to double
%call.i4 = tail call i32 @rand() nounwind
%conv3.i = sitofp i32 %call.i4 to double
%div.i5 = fmul double %conv3.i, 0x3E00000000000000
%mul.i6 = fmul double %conv2.i3, %div.i5
%conv4.i = fptosi double %mul.i6 to i32
%conv5.i = sext i32 %conv4.i to i64
%cmp7.i = icmp eq i64 %conv5.i, %add.i
%sub9.i = sext i1 %cmp7.i to i64
%cond.i7 = add i64 %sub9.i, %conv5.i
%arrayidx.i = getelementptr inbounds i32* %0, i64 %storemerge2.i
%2 = load i32* %arrayidx.i, align 4, !tbaa !0
%arrayidx10.i = getelementptr inbounds i32* %0, i64 %cond.i7
%3 = load i32* %arrayidx10.i, align 4, !tbaa !0
store i32 %3, i32* %arrayidx.i, align 4, !tbaa !0
store i32 %2, i32* %arrayidx10.i, align 4, !tbaa !0
%dec.i = add i64 %storemerge2.i, -1
%cmp.i8 = icmp eq i64 %dec.i, 0
br i1 %cmp.i8, label %shuffle.exit, label %for.body.i
shuffle.exit: ; preds = %for.body.i
ret i32* %0
}
declare noalias i8* @malloc(i64) nounwind
define i32 @main() nounwind uwtable {
entry:
tail call void @srand(i32 1) nounwind
%call = tail call fastcc i32* @createRandomArray()
br label %for.body.i.preheader
for.body.i.preheader: ; preds = %findDuplicate.exit, %entry
%storemerge12 = phi i32 [ 0, %entry ], [ %inc, %findDuplicate.exit ]
br label %for.body.i
for.body.i: ; preds = %for.body.i, %for.body.i.preheader
%indvars.iv.i = phi i64 [ %indvars.iv.next.i, %for.body.i ], [ 0, %for.body.i.preheader ]
%xor213.i = phi i32 [ %xor1.i, %for.body.i ], [ 0, %for.body.i.preheader ]
%indvars.iv.next.i = add i64 %indvars.iv.i, 1
%arrayidx.i = getelementptr inbounds i32* %call, i64 %indvars.iv.i
%0 = load i32* %arrayidx.i, align 4, !tbaa !0
%1 = trunc i64 %indvars.iv.next.i to i32
%xor.i = xor i32 %1, %xor213.i
%xor1.i = xor i32 %xor.i, %0
%exitcond = icmp eq i32 %1, 500001
br i1 %exitcond, label %findDuplicate.exit, label %for.body.i
findDuplicate.exit: ; preds = %for.body.i
%inc = add nsw i32 %storemerge12, 1
%exitcond4 = icmp eq i32 %inc, 200
br i1 %exitcond4, label %for.end, label %for.body.i.preheader
for.end: ; preds = %findDuplicate.exit
%xor2.i = xor i32 %xor1.i, 500001
%2 = bitcast i32* %call to i8*
tail call void @free(i8* %2) nounwind
%call5 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([21 x i8]* @.str, i64 0, i64 0), i32 %xor2.i) nounwind
%call.1 = tail call fastcc i32* @createRandomArray()
br label %for.body.i.preheader.1
for.body.i.preheader.1: ; preds = %findDuplicate.exit.1, %for.end
%storemerge12.1 = phi i32 [ 0, %for.end ], [ %inc.1, %findDuplicate.exit.1 ]
br label %for.body.i.1
for.body.i.1: ; preds = %for.body.i.1, %for.body.i.preheader.1
%indvars.iv.i.1 = phi i64 [ %indvars.iv.next.i.1, %for.body.i.1 ], [ 0, %for.body.i.preheader.1 ]
%xor213.i.1 = phi i32 [ %xor1.i.1, %for.body.i.1 ], [ 0, %for.body.i.preheader.1 ]
%indvars.iv.next.i.1 = add i64 %indvars.iv.i.1, 1
%arrayidx.i.1 = getelementptr inbounds i32* %call.1, i64 %indvars.iv.i.1
%3 = load i32* %arrayidx.i.1, align 4, !tbaa !0
%4 = trunc i64 %indvars.iv.next.i.1 to i32
%xor.i.1 = xor i32 %4, %xor213.i.1
%xor1.i.1 = xor i32 %xor.i.1, %3
%exitcond.1 = icmp eq i32 %4, 500001
br i1 %exitcond.1, label %findDuplicate.exit.1, label %for.body.i.1
findDuplicate.exit.1: ; preds = %for.body.i.1
%inc.1 = add nsw i32 %storemerge12.1, 1
%exitcond4.1 = icmp eq i32 %inc.1, 200
br i1 %exitcond4.1, label %for.end.1, label %for.body.i.preheader.1
for.end.1: ; preds = %findDuplicate.exit.1
%xor2.i.1 = xor i32 %xor1.i.1, 500001
%5 = bitcast i32* %call.1 to i8*
tail call void @free(i8* %5) nounwind
%call5.1 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([21 x i8]* @.str, i64 0, i64 0), i32 %xor2.i.1) nounwind
%call.2 = tail call fastcc i32* @createRandomArray()
br label %for.body.i.preheader.2
for.body.i.preheader.2: ; preds = %findDuplicate.exit.2, %for.end.1
%storemerge12.2 = phi i32 [ 0, %for.end.1 ], [ %inc.2, %findDuplicate.exit.2 ]
br label %for.body.i.2
for.body.i.2: ; preds = %for.body.i.2, %for.body.i.preheader.2
%indvars.iv.i.2 = phi i64 [ %indvars.iv.next.i.2, %for.body.i.2 ], [ 0, %for.body.i.preheader.2 ]
%xor213.i.2 = phi i32 [ %xor1.i.2, %for.body.i.2 ], [ 0, %for.body.i.preheader.2 ]
%indvars.iv.next.i.2 = add i64 %indvars.iv.i.2, 1
%arrayidx.i.2 = getelementptr inbounds i32* %call.2, i64 %indvars.iv.i.2
%6 = load i32* %arrayidx.i.2, align 4, !tbaa !0
%7 = trunc i64 %indvars.iv.next.i.2 to i32
%xor.i.2 = xor i32 %7, %xor213.i.2
%xor1.i.2 = xor i32 %xor.i.2, %6
%exitcond.2 = icmp eq i32 %7, 500001
br i1 %exitcond.2, label %findDuplicate.exit.2, label %for.body.i.2
findDuplicate.exit.2: ; preds = %for.body.i.2
%inc.2 = add nsw i32 %storemerge12.2, 1
%exitcond4.2 = icmp eq i32 %inc.2, 200
br i1 %exitcond4.2, label %for.end.2, label %for.body.i.preheader.2
for.end.2: ; preds = %findDuplicate.exit.2
%xor2.i.2 = xor i32 %xor1.i.2, 500001
%8 = bitcast i32* %call.2 to i8*
tail call void @free(i8* %8) nounwind
%call5.2 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([21 x i8]* @.str, i64 0, i64 0), i32 %xor2.i.2) nounwind
%call.3 = tail call fastcc i32* @createRandomArray()
br label %for.body.i.preheader.3
for.body.i.preheader.3: ; preds = %findDuplicate.exit.3, %for.end.2
%storemerge12.3 = phi i32 [ 0, %for.end.2 ], [ %inc.3, %findDuplicate.exit.3 ]
br label %for.body.i.3
for.body.i.3: ; preds = %for.body.i.3, %for.body.i.preheader.3
%indvars.iv.i.3 = phi i64 [ %indvars.iv.next.i.3, %for.body.i.3 ], [ 0, %for.body.i.preheader.3 ]
%xor213.i.3 = phi i32 [ %xor1.i.3, %for.body.i.3 ], [ 0, %for.body.i.preheader.3 ]
%indvars.iv.next.i.3 = add i64 %indvars.iv.i.3, 1
%arrayidx.i.3 = getelementptr inbounds i32* %call.3, i64 %indvars.iv.i.3
%9 = load i32* %arrayidx.i.3, align 4, !tbaa !0
%10 = trunc i64 %indvars.iv.next.i.3 to i32
%xor.i.3 = xor i32 %10, %xor213.i.3
%xor1.i.3 = xor i32 %xor.i.3, %9
%exitcond.3 = icmp eq i32 %10, 500001
br i1 %exitcond.3, label %findDuplicate.exit.3, label %for.body.i.3
findDuplicate.exit.3: ; preds = %for.body.i.3
%inc.3 = add nsw i32 %storemerge12.3, 1
%exitcond4.3 = icmp eq i32 %inc.3, 200
br i1 %exitcond4.3, label %for.end.3, label %for.body.i.preheader.3
for.end.3: ; preds = %findDuplicate.exit.3
%xor2.i.3 = xor i32 %xor1.i.3, 500001
%11 = bitcast i32* %call.3 to i8*
tail call void @free(i8* %11) nounwind
%call5.3 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([21 x i8]* @.str, i64 0, i64 0), i32 %xor2.i.3) nounwind
%call.4 = tail call fastcc i32* @createRandomArray()
br label %for.body.i.preheader.4
for.body.i.preheader.4: ; preds = %findDuplicate.exit.4, %for.end.3
%storemerge12.4 = phi i32 [ 0, %for.end.3 ], [ %inc.4, %findDuplicate.exit.4 ]
br label %for.body.i.4
for.body.i.4: ; preds = %for.body.i.4, %for.body.i.preheader.4
%indvars.iv.i.4 = phi i64 [ %indvars.iv.next.i.4, %for.body.i.4 ], [ 0, %for.body.i.preheader.4 ]
%xor213.i.4 = phi i32 [ %xor1.i.4, %for.body.i.4 ], [ 0, %for.body.i.preheader.4 ]
%indvars.iv.next.i.4 = add i64 %indvars.iv.i.4, 1
%arrayidx.i.4 = getelementptr inbounds i32* %call.4, i64 %indvars.iv.i.4
%12 = load i32* %arrayidx.i.4, align 4, !tbaa !0
%13 = trunc i64 %indvars.iv.next.i.4 to i32
%xor.i.4 = xor i32 %13, %xor213.i.4
%xor1.i.4 = xor i32 %xor.i.4, %12
%exitcond.4 = icmp eq i32 %13, 500001
br i1 %exitcond.4, label %findDuplicate.exit.4, label %for.body.i.4
findDuplicate.exit.4: ; preds = %for.body.i.4
%inc.4 = add nsw i32 %storemerge12.4, 1
%exitcond4.4 = icmp eq i32 %inc.4, 200
br i1 %exitcond4.4, label %for.end.4, label %for.body.i.preheader.4
for.end.4: ; preds = %findDuplicate.exit.4
%xor2.i.4 = xor i32 %xor1.i.4, 500001
%14 = bitcast i32* %call.4 to i8*
tail call void @free(i8* %14) nounwind
%call5.4 = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([21 x i8]* @.str, i64 0, i64 0), i32 %xor2.i.4) nounwind
ret i32 0
}
declare void @srand(i32) nounwind
declare void @free(i8* nocapture) nounwind
declare i32 @printf(i8* nocapture, ...) nounwind
!0 = metadata !{metadata !"int", metadata !1}
!1 = metadata !{metadata !"omnipotent char", metadata !2}
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
More information about the llvm-commits
mailing list