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