Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; Function Attrs: norecurse nounwind uwtable
- define void @foo2(i32* nocapture %dw, i32* nocapture %uw, i32* nocapture readonly %A, i32* nocapture readonly %B, i32* nocapture readonly %C, i32* nocapture readonly %D, i32 %N) local_unnamed_addr #0 !dbg !5 {
- entry:
- %cmp49 = icmp eq i32 %N, 0, !dbg !7
- br i1 %cmp49, label %for.cond.cleanup, label %for.body.preheader, !dbg !8
- for.body.preheader: ; preds = %entry
- br label %for.body, !dbg !9
- for.cond.cleanup.loopexit: ; preds = %for.body
- br label %for.cond.cleanup, !dbg !10
- for.cond.cleanup: ; preds = %for.cond.cleanup.loopexit, %entry
- ret void, !dbg !10
- for.body: ; preds = %for.body.preheader, %for.body
- %i.050 = phi i32 [ %add15, %for.body ], [ 0, %for.body.preheader ]
- %idxprom45 = zext i32 %i.050 to i64, !dbg !9
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %idxprom45, !dbg !9
- %0 = load i32, i32* %arrayidx, align 4, !dbg !9, !tbaa !11
- %sub = add nsw i32 %i.050, -1, !dbg !15
- %idxprom1 = sext i32 %sub to i64, !dbg !16
- %arrayidx2 = getelementptr inbounds i32, i32* %B, i64 %idxprom1, !dbg !16
- %1 = load i32, i32* %arrayidx2, align 4, !dbg !16, !tbaa !11
- %add = add nsw i32 %1, %0, !dbg !17
- %sub3 = add nsw i32 %i.050, -2, !dbg !18
- %idxprom4 = sext i32 %sub3 to i64, !dbg !19
- %arrayidx5 = getelementptr inbounds i32, i32* %C, i64 %idxprom4, !dbg !19
- %2 = load i32, i32* %arrayidx5, align 4, !dbg !19, !tbaa !11
- %add6 = add nsw i32 %add, %2, !dbg !20
- %sub7 = add nsw i32 %i.050, -3, !dbg !21
- %idxprom8 = sext i32 %sub7 to i64, !dbg !22
- %arrayidx9 = getelementptr inbounds i32, i32* %D, i64 %idxprom8, !dbg !22
- %3 = load i32, i32* %arrayidx9, align 4, !dbg !22, !tbaa !11
- %add10 = add nsw i32 %add6, %3, !dbg !23
- %arrayidx12 = getelementptr inbounds i32, i32* %dw, i64 %idxprom45, !dbg !24
- store i32 %add10, i32* %arrayidx12, align 4, !dbg !25, !tbaa !11
- %4 = load i32, i32* %arrayidx, align 4, !dbg !26, !tbaa !11
- %add15 = add nuw nsw i32 %i.050, 1, !dbg !27
- %idxprom1646 = zext i32 %add15 to i64, !dbg !28
- %arrayidx17 = getelementptr inbounds i32, i32* %B, i64 %idxprom1646, !dbg !28
- %5 = load i32, i32* %arrayidx17, align 4, !dbg !28, !tbaa !11
- %add18 = add nsw i32 %5, %4, !dbg !29
- %add19 = add nuw nsw i32 %i.050, 2, !dbg !30
- %idxprom2047 = zext i32 %add19 to i64, !dbg !31
- %arrayidx21 = getelementptr inbounds i32, i32* %C, i64 %idxprom2047, !dbg !31
- %6 = load i32, i32* %arrayidx21, align 4, !dbg !31, !tbaa !11
- %add22 = add nsw i32 %add18, %6, !dbg !32
- %add23 = add nuw nsw i32 %i.050, 3, !dbg !33
- %idxprom2448 = zext i32 %add23 to i64, !dbg !34
- %arrayidx25 = getelementptr inbounds i32, i32* %D, i64 %idxprom2448, !dbg !34
- %7 = load i32, i32* %arrayidx25, align 4, !dbg !34, !tbaa !11
- %add26 = add nsw i32 %add22, %7, !dbg !35
- %arrayidx28 = getelementptr inbounds i32, i32* %uw, i64 %idxprom45, !dbg !36
- store i32 %add26, i32* %arrayidx28, align 4, !dbg !37, !tbaa !11
- %cmp = icmp ult i32 %add15, %N, !dbg !7
- br i1 %cmp, label %for.body, label %for.cond.cleanup.loopexit, !dbg !8, !llvm.loop !38
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement