2011-06-21-phioperands.ll 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. ; RUN: opt -loop-deletion -disable-output < %s
  2. 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"
  3. %0 = type { %"class.llvm::SmallVectorImpl", [1 x %"union.llvm::SmallVectorBase::U"] }
  4. %"class.clang::SourceLocation" = type { i32 }
  5. %"class.clang::driver::Arg" = type { %"class.clang::driver::Option"*, %"class.clang::driver::Arg"*, i32, i8, %0 }
  6. %"class.clang::driver::Option" = type { i32 (...)**, i32, %"class.clang::SourceLocation", i8*, %"class.clang::driver::OptionGroup"*, %"class.clang::driver::Option"*, i8 }
  7. %"class.clang::driver::OptionGroup" = type { %"class.clang::driver::Option" }
  8. %"class.llvm::SmallVectorBase" = type { i8*, i8*, i8*, %"union.llvm::SmallVectorBase::U" }
  9. %"class.llvm::SmallVectorImpl" = type { %"class.llvm::SmallVectorTemplateBase" }
  10. %"class.llvm::SmallVectorTemplateBase" = type { %"class.llvm::SmallVectorTemplateCommon" }
  11. %"class.llvm::SmallVectorTemplateCommon" = type { %"class.llvm::SmallVectorBase" }
  12. %"union.llvm::SmallVectorBase::U" = type { x86_fp80 }
  13. define void @_ZNK5clang6driver7ArgList20AddAllArgsTranslatedERN4llvm11SmallVectorIPKcLj16EEENS0_12OptSpecifierES5_b(i1 zeroext %Joined) nounwind align 2 {
  14. entry:
  15. br i1 undef, label %entry.split.us, label %entry.entry.split_crit_edge
  16. entry.entry.split_crit_edge: ; preds = %entry
  17. br label %entry.split
  18. entry.split.us: ; preds = %entry
  19. br label %for.cond.i14.us
  20. for.cond.i14.us: ; preds = %for.inc.i38.us, %entry.split.us
  21. br i1 true, label %for.cond.i50.us-lcssa.us, label %if.end.i23.us
  22. for.inc.i38.us: ; preds = %if.end.i23.us
  23. br label %for.cond.i14.us
  24. if.end.i23.us: ; preds = %for.cond.i14.us
  25. br i1 true, label %for.cond.i50.us-lcssa.us, label %for.inc.i38.us
  26. for.cond.i50.us-lcssa.us: ; preds = %if.end.i23.us, %for.cond.i14.us
  27. br label %for.cond.i50
  28. entry.split: ; preds = %entry.entry.split_crit_edge
  29. br label %for.cond.i14
  30. for.cond.i14: ; preds = %for.inc.i38, %entry.split
  31. br i1 undef, label %for.cond.i50.us-lcssa, label %if.end.i23
  32. if.end.i23: ; preds = %for.cond.i14
  33. br i1 undef, label %for.cond.i50.us-lcssa, label %for.inc.i38
  34. for.inc.i38: ; preds = %if.end.i23
  35. br label %for.cond.i14
  36. for.cond.i50.us-lcssa: ; preds = %if.end.i23, %for.cond.i14
  37. br label %for.cond.i50
  38. for.cond.i50: ; preds = %for.cond.i50.us-lcssa, %for.cond.i50.us-lcssa.us
  39. br label %for.cond
  40. for.cond.loopexit.us-lcssa: ; preds = %if.end.i, %for.cond.i
  41. br label %for.cond.loopexit
  42. for.cond.loopexit: ; preds = %for.cond.loopexit.us-lcssa.us, %for.cond.loopexit.us-lcssa
  43. br label %for.cond
  44. for.cond: ; preds = %for.cond.loopexit, %for.cond.i50
  45. br i1 undef, label %for.end, label %for.body
  46. for.body: ; preds = %for.cond
  47. br i1 %Joined, label %if.then, label %if.else
  48. if.then: ; preds = %for.body
  49. br i1 undef, label %cond.false.i.i, label %_ZN4llvm9StringRefC1EPKc.exit
  50. cond.false.i.i: ; preds = %if.then
  51. unreachable
  52. _ZN4llvm9StringRefC1EPKc.exit: ; preds = %if.then
  53. br i1 undef, label %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit, label %cond.false.i.i91
  54. cond.false.i.i91: ; preds = %_ZN4llvm9StringRefC1EPKc.exit
  55. unreachable
  56. _ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit: ; preds = %_ZN4llvm9StringRefC1EPKc.exit
  57. br i1 undef, label %cond.false.i.i.i, label %if.end13.i.i.i.i
  58. if.end13.i.i.i.i: ; preds = %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit
  59. br i1 undef, label %land.lhs.true16.i.i.i.i, label %if.end19.i.i.i.i
  60. land.lhs.true16.i.i.i.i: ; preds = %if.end13.i.i.i.i
  61. br i1 undef, label %cond.false.i.i.i, label %_ZNK4llvm5Twine8isBinaryEv.exit8.i.i.i.i
  62. _ZNK4llvm5Twine8isBinaryEv.exit8.i.i.i.i: ; preds = %land.lhs.true16.i.i.i.i
  63. br i1 undef, label %cond.false.i.i.i, label %if.end19.i.i.i.i
  64. if.end19.i.i.i.i: ; preds = %_ZNK4llvm5Twine8isBinaryEv.exit8.i.i.i.i, %if.end13.i.i.i.i
  65. br i1 undef, label %land.lhs.true22.i.i.i.i, label %_ZN4llvmplERKNS_9StringRefEPKc.exit
  66. land.lhs.true22.i.i.i.i: ; preds = %if.end19.i.i.i.i
  67. br i1 undef, label %cond.false.i.i.i, label %_ZNK4llvm5Twine8isBinaryEv.exit.i.i.i.i
  68. _ZNK4llvm5Twine8isBinaryEv.exit.i.i.i.i: ; preds = %land.lhs.true22.i.i.i.i
  69. br i1 undef, label %cond.false.i.i.i, label %_ZN4llvmplERKNS_9StringRefEPKc.exit
  70. cond.false.i.i.i: ; preds = %_ZNK4llvm5Twine8isBinaryEv.exit.i.i.i.i, %land.lhs.true22.i.i.i.i, %_ZNK4llvm5Twine8isBinaryEv.exit8.i.i.i.i, %land.lhs.true16.i.i.i.i, %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit
  71. unreachable
  72. _ZN4llvmplERKNS_9StringRefEPKc.exit: ; preds = %_ZNK4llvm5Twine8isBinaryEv.exit.i.i.i.i, %if.end19.i.i.i.i
  73. br i1 undef, label %Retry.i, label %if.end.i99
  74. Retry.i: ; preds = %if.end.i99, %_ZN4llvmplERKNS_9StringRefEPKc.exit
  75. br i1 undef, label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit, label %new.notnull.i
  76. new.notnull.i: ; preds = %Retry.i
  77. br label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit
  78. if.end.i99: ; preds = %_ZN4llvmplERKNS_9StringRefEPKc.exit
  79. br label %Retry.i
  80. _ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit: ; preds = %new.notnull.i, %Retry.i
  81. br label %for.cond.i.preheader
  82. if.else: ; preds = %for.body
  83. br i1 undef, label %Retry.i108, label %if.end.i113
  84. Retry.i108: ; preds = %if.end.i113, %if.else
  85. br i1 undef, label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114, label %new.notnull.i110
  86. new.notnull.i110: ; preds = %Retry.i108
  87. br label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114
  88. if.end.i113: ; preds = %if.else
  89. br label %Retry.i108
  90. _ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114: ; preds = %new.notnull.i110, %Retry.i108
  91. br i1 undef, label %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit125, label %cond.false.i.i123
  92. cond.false.i.i123: ; preds = %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114
  93. unreachable
  94. _ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit125: ; preds = %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114
  95. br i1 undef, label %Retry.i134, label %if.end.i139
  96. Retry.i134: ; preds = %if.end.i139, %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit125
  97. br i1 undef, label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit140, label %new.notnull.i136
  98. new.notnull.i136: ; preds = %Retry.i134
  99. br label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit140
  100. if.end.i139: ; preds = %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit125
  101. br label %Retry.i134
  102. _ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit140: ; preds = %new.notnull.i136, %Retry.i134
  103. br label %for.cond.i.preheader
  104. for.cond.i.preheader: ; preds = %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit140, %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit
  105. br i1 undef, label %for.cond.i.preheader.split.us, label %for.cond.i.preheader.for.cond.i.preheader.split_crit_edge
  106. for.cond.i.preheader.for.cond.i.preheader.split_crit_edge: ; preds = %for.cond.i.preheader
  107. br label %for.cond.i.preheader.split
  108. for.cond.i.preheader.split.us: ; preds = %for.cond.i.preheader
  109. br label %for.cond.i.us
  110. for.cond.i.us: ; preds = %if.end.i.us, %for.cond.i.preheader.split.us
  111. br i1 true, label %for.cond.loopexit.us-lcssa.us, label %if.end.i.us
  112. if.end.i.us: ; preds = %for.cond.i.us
  113. br i1 true, label %for.cond.loopexit.us-lcssa.us, label %for.cond.i.us
  114. for.cond.loopexit.us-lcssa.us: ; preds = %if.end.i.us, %for.cond.i.us
  115. %tmp178218.us.lcssa = phi %"class.clang::driver::Arg"** [ undef, %if.end.i.us ], [ undef, %for.cond.i.us ]
  116. br label %for.cond.loopexit
  117. for.cond.i.preheader.split: ; preds = %for.cond.i.preheader.for.cond.i.preheader.split_crit_edge
  118. br label %for.cond.i
  119. for.cond.i: ; preds = %if.end.i, %for.cond.i.preheader.split
  120. br i1 undef, label %for.cond.loopexit.us-lcssa, label %if.end.i
  121. if.end.i: ; preds = %for.cond.i
  122. br i1 undef, label %for.cond.loopexit.us-lcssa, label %for.cond.i
  123. for.end: ; preds = %for.cond
  124. ret void
  125. }