Advertisement
Guest User

Untitled

a guest
Jun 29th, 2016
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.17 KB | None | 0 0
  1. ; Function Attrs: norecurse nounwind uwtable
  2. 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 {
  3. entry:
  4. %cmp49 = icmp eq i32 %N, 0, !dbg !7
  5. br i1 %cmp49, label %for.cond.cleanup, label %for.body.preheader, !dbg !8
  6.  
  7. for.body.preheader: ; preds = %entry
  8. br label %for.body, !dbg !9
  9.  
  10. for.cond.cleanup.loopexit: ; preds = %for.body
  11. br label %for.cond.cleanup, !dbg !10
  12.  
  13. for.cond.cleanup: ; preds = %for.cond.cleanup.loopexit, %entry
  14. ret void, !dbg !10
  15.  
  16. for.body: ; preds = %for.body.preheader, %for.body
  17. %i.050 = phi i32 [ %add15, %for.body ], [ 0, %for.body.preheader ]
  18. %idxprom45 = zext i32 %i.050 to i64, !dbg !9
  19. %arrayidx = getelementptr inbounds i32, i32* %A, i64 %idxprom45, !dbg !9
  20. %0 = load i32, i32* %arrayidx, align 4, !dbg !9, !tbaa !11
  21. %sub = add nsw i32 %i.050, -1, !dbg !15
  22. %idxprom1 = sext i32 %sub to i64, !dbg !16
  23. %arrayidx2 = getelementptr inbounds i32, i32* %B, i64 %idxprom1, !dbg !16
  24. %1 = load i32, i32* %arrayidx2, align 4, !dbg !16, !tbaa !11
  25. %add = add nsw i32 %1, %0, !dbg !17
  26. %sub3 = add nsw i32 %i.050, -2, !dbg !18
  27. %idxprom4 = sext i32 %sub3 to i64, !dbg !19
  28. %arrayidx5 = getelementptr inbounds i32, i32* %C, i64 %idxprom4, !dbg !19
  29. %2 = load i32, i32* %arrayidx5, align 4, !dbg !19, !tbaa !11
  30. %add6 = add nsw i32 %add, %2, !dbg !20
  31. %sub7 = add nsw i32 %i.050, -3, !dbg !21
  32. %idxprom8 = sext i32 %sub7 to i64, !dbg !22
  33. %arrayidx9 = getelementptr inbounds i32, i32* %D, i64 %idxprom8, !dbg !22
  34. %3 = load i32, i32* %arrayidx9, align 4, !dbg !22, !tbaa !11
  35. %add10 = add nsw i32 %add6, %3, !dbg !23
  36. %arrayidx12 = getelementptr inbounds i32, i32* %dw, i64 %idxprom45, !dbg !24
  37. store i32 %add10, i32* %arrayidx12, align 4, !dbg !25, !tbaa !11
  38. %4 = load i32, i32* %arrayidx, align 4, !dbg !26, !tbaa !11
  39. %add15 = add nuw nsw i32 %i.050, 1, !dbg !27
  40. %idxprom1646 = zext i32 %add15 to i64, !dbg !28
  41. %arrayidx17 = getelementptr inbounds i32, i32* %B, i64 %idxprom1646, !dbg !28
  42. %5 = load i32, i32* %arrayidx17, align 4, !dbg !28, !tbaa !11
  43. %add18 = add nsw i32 %5, %4, !dbg !29
  44. %add19 = add nuw nsw i32 %i.050, 2, !dbg !30
  45. %idxprom2047 = zext i32 %add19 to i64, !dbg !31
  46. %arrayidx21 = getelementptr inbounds i32, i32* %C, i64 %idxprom2047, !dbg !31
  47. %6 = load i32, i32* %arrayidx21, align 4, !dbg !31, !tbaa !11
  48. %add22 = add nsw i32 %add18, %6, !dbg !32
  49. %add23 = add nuw nsw i32 %i.050, 3, !dbg !33
  50. %idxprom2448 = zext i32 %add23 to i64, !dbg !34
  51. %arrayidx25 = getelementptr inbounds i32, i32* %D, i64 %idxprom2448, !dbg !34
  52. %7 = load i32, i32* %arrayidx25, align 4, !dbg !34, !tbaa !11
  53. %add26 = add nsw i32 %add22, %7, !dbg !35
  54. %arrayidx28 = getelementptr inbounds i32, i32* %uw, i64 %idxprom45, !dbg !36
  55. store i32 %add26, i32* %arrayidx28, align 4, !dbg !37, !tbaa !11
  56. %cmp = icmp ult i32 %add15, %N, !dbg !7
  57. br i1 %cmp, label %for.body, label %for.cond.cleanup.loopexit, !dbg !8, !llvm.loop !38
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement