Skip to content

Instantly share code, notes, and snippets.

@mikea
Created May 23, 2013 18:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mikea/5638182 to your computer and use it in GitHub Desktop.
Save mikea/5638182 to your computer and use it in GitHub Desktop.
; Function Attrs: nounwind readonly uwtable
define double @_Z10DotProductRK6VectorS1_(%class.Vector* nocapture %v1, %class.Vector* nocapture %v2) #0 {
entry:
%size_.i = getelementptr inbounds %class.Vector* %v1, i64 0, i32 0
%0 = load i64* %size_.i, align 8, !tbaa !0
%data_.i = getelementptr inbounds %class.Vector* %v1, i64 0, i32 1
%1 = load double** %data_.i, align 8, !tbaa !3
%size_.i8 = getelementptr inbounds %class.Vector* %v2, i64 0, i32 0
%2 = load i64* %size_.i8, align 8, !tbaa !0
%data_.i9 = getelementptr inbounds %class.Vector* %v2, i64 0, i32 1
%3 = load double** %data_.i9, align 8, !tbaa !3
%4 = or i64 %0, %2
%5 = icmp eq i64 %4, 0
br i1 %5, label %_Z4FoldI6PlusOpd12ZippedStreamI5MulOpN6Vector6StreamEEET0_RKT1_S6_.exit, label %for.body.i
for.body.i: ; preds = %entry, %for.body.i
%result.0.i16 = phi double [ %add.i.i, %for.body.i ], [ 0.000000e+00, %entry ]
%i.sroa.1.8.load1315.i15 = phi i64 [ %inc.i3.i.i, %for.body.i ], [ 0, %entry ]
%arrayidx.i.i.i = getelementptr inbounds double* %1, i64 %i.sroa.1.8.load1315.i15
%6 = load double* %arrayidx.i.i.i, align 8, !tbaa !4
%arrayidx.i9.i.i = getelementptr inbounds double* %3, i64 %i.sroa.1.8.load1315.i15
%7 = load double* %arrayidx.i9.i.i, align 8, !tbaa !4
%mul.i.i.i = fmul double %6, %7
%add.i.i = fadd double %result.0.i16, %mul.i.i.i
%inc.i3.i.i = add i64 %i.sroa.1.8.load1315.i15, 1
%cmp.i.i.i = icmp ult i64 %inc.i3.i.i, %0
%cmp.i7.i.i = icmp ult i64 %inc.i3.i.i, %2
%or.cond.i = or i1 %cmp.i.i.i, %cmp.i7.i.i
br i1 %or.cond.i, label %for.body.i, label %_Z4FoldI6PlusOpd12ZippedStreamI5MulOpN6Vector6StreamEEET0_RKT1_S6_.exit
_Z4FoldI6PlusOpd12ZippedStreamI5MulOpN6Vector6StreamEEET0_RKT1_S6_.exit: ; preds = %for.body.i, %entry
%result.0.i.lcssa = phi double [ 0.000000e+00, %entry ], [ %add.i.i, %for.body.i ]
ret double %result.0.i.lcssa
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment