; LLVM IR from AnneLivia/Competitive-Programming :: Online Judges/URI/2690 (main)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_Z6changeRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKc(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 1 dereferenceable(1) %1) #0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  %5 = load ptr, ptr %4, align 8, !tbaa !5
  %6 = load i8, ptr %5, align 1, !tbaa !9
  %7 = sext i8 %6 to i32
  %8 = icmp eq i32 %7, 71
  br i1 %8, label %29, label %9

9:                                                ; preds = %2
  %10 = load ptr, ptr %4, align 8, !tbaa !5
  %11 = load i8, ptr %10, align 1, !tbaa !9
  %12 = sext i8 %11 to i32
  %13 = icmp eq i32 %12, 81
  br i1 %13, label %29, label %14

14:                                               ; preds = %9
  %15 = load ptr, ptr %4, align 8, !tbaa !5
  %16 = load i8, ptr %15, align 1, !tbaa !9
  %17 = sext i8 %16 to i32
  %18 = icmp eq i32 %17, 97
  br i1 %18, label %29, label %19

19:                                               ; preds = %14
  %20 = load ptr, ptr %4, align 8, !tbaa !5
  %21 = load i8, ptr %20, align 1, !tbaa !9
  %22 = sext i8 %21 to i32
  %23 = icmp eq i32 %22, 107
  br i1 %23, label %29, label %24

24:                                               ; preds = %19
  %25 = load ptr, ptr %4, align 8, !tbaa !5
  %26 = load i8, ptr %25, align 1, !tbaa !9
  %27 = sext i8 %26 to i32
  %28 = icmp eq i32 %27, 117
  br i1 %28, label %29, label %32

29:                                               ; preds = %24, %19, %14, %9, %2
  %30 = load ptr, ptr %3, align 8, !tbaa !5
  %31 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef @.str)
  br label %303

32:                                               ; preds = %24
  %33 = load ptr, ptr %4, align 8, !tbaa !5
  %34 = load i8, ptr %33, align 1, !tbaa !9
  %35 = sext i8 %34 to i32
  %36 = icmp eq i32 %35, 73
  br i1 %36, label %57, label %37

37:                                               ; preds = %32
  %38 = load ptr, ptr %4, align 8, !tbaa !5
  %39 = load i8, ptr %38, align 1, !tbaa !9
  %40 = sext i8 %39 to i32
  %41 = icmp eq i32 %40, 83
  br i1 %41, label %57, label %42

42:                                               ; preds = %37
  %43 = load ptr, ptr %4, align 8, !tbaa !5
  %44 = load i8, ptr %43, align 1, !tbaa !9
  %45 = sext i8 %44 to i32
  %46 = icmp eq i32 %45, 98
  br i1 %46, label %57, label %47

47:                                               ; preds = %42
  %48 = load ptr, ptr %4, align 8, !tbaa !5
  %49 = load i8, ptr %48, align 1, !tbaa !9
  %50 = sext i8 %49 to i32
  %51 = icmp eq i32 %50, 108
  br i1 %51, label %57, label %52

52:                                               ; preds = %47
  %53 = load ptr, ptr %4, align 8, !tbaa !5
  %54 = load i8, ptr %53, align 1, !tbaa !9
  %55 = sext i8 %54 to i32
  %56 = icmp eq i32 %55, 118
  br i1 %56, label %57, label %60

57:                                               ; preds = %52, %47, %42, %37, %32
  %58 = load ptr, ptr %3, align 8, !tbaa !5
  %59 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef @.str.1)
  br label %302

60:                                               ; preds = %52
  %61 = load ptr, ptr %4, align 8, !tbaa !5
  %62 = load i8, ptr %61, align 1, !tbaa !9
  %63 = sext i8 %62 to i32
  %64 = icmp eq i32 %63, 69
  br i1 %64, label %90, label %65

65:                                               ; preds = %60
  %66 = load ptr, ptr %4, align 8, !tbaa !5
  %67 = load i8, ptr %66, align 1, !tbaa !9
  %68 = sext i8 %67 to i32
  %69 = icmp eq i32 %68, 79
  br i1 %69, label %90, label %70

70:                                               ; preds = %65
  %71 = load ptr, ptr %4, align 8, !tbaa !5
  %72 = load i8, ptr %71, align 1, !tbaa !9
  %73 = sext i8 %72 to i32
  %74 = icmp eq i32 %73, 89
  br i1 %74, label %90, label %75

75:                                               ; preds = %70
  %76 = load ptr, ptr %4, align 8, !tbaa !5
  %77 = load i8, ptr %76, align 1, !tbaa !9
  %78 = sext i8 %77 to i32
  %79 = icmp eq i32 %78, 99
  br i1 %79, label %90, label %80

80:                                               ; preds = %75
  %81 = load ptr, ptr %4, align 8, !tbaa !5
  %82 = load i8, ptr %81, align 1, !tbaa !9
  %83 = sext i8 %82 to i32
  %84 = icmp eq i32 %83, 109
  br i1 %84, label %90, label %85

85:                                               ; preds = %80
  %86 = load ptr, ptr %4, align 8, !tbaa !5
  %87 = load i8, ptr %86, align 1, !tbaa !9
  %88 = sext i8 %87 to i32
  %89 = icmp eq i32 %88, 119
  br i1 %89, label %90, label %93

90:                                               ; preds = %85, %80, %75, %70, %65, %60
  %91 = load ptr, ptr %3, align 8, !tbaa !5
  %92 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef @.str.2)
  br label %301

93:                                               ; preds = %85
  %94 = load ptr, ptr %4, align 8, !tbaa !5
  %95 = load i8, ptr %94, align 1, !tbaa !9
  %96 = sext i8 %95 to i32
  %97 = icmp eq i32 %96, 70
  br i1 %97, label %123, label %98

98:                                               ; preds = %93
  %99 = load ptr, ptr %4, align 8, !tbaa !5
  %100 = load i8, ptr %99, align 1, !tbaa !9
  %101 = sext i8 %100 to i32
  %102 = icmp eq i32 %101, 80
  br i1 %102, label %123, label %103

103:                                              ; preds = %98
  %104 = load ptr, ptr %4, align 8, !tbaa !5
  %105 = load i8, ptr %104, align 1, !tbaa !9
  %106 = sext i8 %105 to i32
  %107 = icmp eq i32 %106, 90
  br i1 %107, label %123, label %108

108:                                              ; preds = %103
  %109 = load ptr, ptr %4, align 8, !tbaa !5
  %110 = load i8, ptr %109, align 1, !tbaa !9
  %111 = sext i8 %110 to i32
  %112 = icmp eq i32 %111, 100
  br i1 %112, label %123, label %113

113:                                              ; preds = %108
  %114 = load ptr, ptr %4, align 8, !tbaa !5
  %115 = load i8, ptr %114, align 1, !tbaa !9
  %116 = sext i8 %115 to i32
  %117 = icmp eq i32 %116, 110
  br i1 %117, label %123, label %118

118:                                              ; preds = %113
  %119 = load ptr, ptr %4, align 8, !tbaa !5
  %120 = load i8, ptr %119, align 1, !tbaa !9
  %121 = sext i8 %120 to i32
  %122 = icmp eq i32 %121, 120
  br i1 %122, label %123, label %126

123:                                              ; preds = %118, %113, %108, %103, %98, %93
  %124 = load ptr, ptr %3, align 8, !tbaa !5
  %125 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef @.str.3)
  br label %300

126:                                              ; preds = %118
  %127 = load ptr, ptr %4, align 8, !tbaa !5
  %128 = load i8, ptr %127, align 1, !tbaa !9
  %129 = sext i8 %128 to i32
  %130 = icmp eq i32 %129, 74
  br i1 %130, label %151, label %131

131:                                              ; preds = %126
  %132 = load ptr, ptr %4, align 8, !tbaa !5
  %133 = load i8, ptr %132, align 1, !tbaa !9
  %134 = sext i8 %133 to i32
  %135 = icmp eq i32 %134, 84
  br i1 %135, label %151, label %136

136:                                              ; preds = %131
  %137 = load ptr, ptr %4, align 8, !tbaa !5
  %138 = load i8, ptr %137, align 1, !tbaa !9
  %139 = sext i8 %138 to i32
  %140 = icmp eq i32 %139, 101
  br i1 %140, label %151, label %141

141:                                              ; preds = %136
  %142 = load ptr, ptr %4, align 8, !tbaa !5
  %143 = load i8, ptr %142, align 1, !tbaa !9
  %144 = sext i8 %143 to i32
  %145 = icmp eq i32 %144, 111
  br i1 %145, label %151, label %146

146:                                              ; preds = %141
  %147 = load ptr, ptr %4, align 8, !tbaa !5
  %148 = load i8, ptr %147, align 1, !tbaa !9
  %149 = sext i8 %148 to i32
  %150 = icmp eq i32 %149, 121
  br i1 %150, label %151, label %154

151:                                              ; preds = %146, %141, %136, %131, %126
  %152 = load ptr, ptr %3, align 8, !tbaa !5
  %153 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %152, ptr noundef @.str.4)
  br label %299

154:                                              ; preds = %146
  %155 = load ptr, ptr %4, align 8, !tbaa !5
  %156 = load i8, ptr %155, align 1, !tbaa !9
  %157 = sext i8 %156 to i32
  %158 = icmp eq i32 %157, 68
  br i1 %158, label %184, label %159

159:                                              ; preds = %154
  %160 = load ptr, ptr %4, align 8, !tbaa !5
  %161 = load i8, ptr %160, align 1, !tbaa !9
  %162 = sext i8 %161 to i32
  %163 = icmp eq i32 %162, 78
  br i1 %163, label %184, label %164

164:                                              ; preds = %159
  %165 = load ptr, ptr %4, align 8, !tbaa !5
  %166 = load i8, ptr %165, align 1, !tbaa !9
  %167 = sext i8 %166 to i32
  %168 = icmp eq i32 %167, 88
  br i1 %168, label %184, label %169

169:                                              ; preds = %164
  %170 = load ptr, ptr %4, align 8, !tbaa !5
  %171 = load i8, ptr %170, align 1, !tbaa !9
  %172 = sext i8 %171 to i32
  %173 = icmp eq i32 %172, 102
  br i1 %173, label %184, label %174

174:                                              ; preds = %169
  %175 = load ptr, ptr %4, align 8, !tbaa !5
  %176 = load i8, ptr %175, align 1, !tbaa !9
  %177 = sext i8 %176 to i32
  %178 = icmp eq i32 %177, 112
  br i1 %178, label %184, label %179

179:                                              ; preds = %174
  %180 = load ptr, ptr %4, align 8, !tbaa !5
  %181 = load i8, ptr %180, align 1, !tbaa !9
  %182 = sext i8 %181 to i32
  %183 = icmp eq i32 %182, 122
  br i1 %183, label %184, label %187

184:                                              ; preds = %179, %174, %169, %164, %159, %154
  %185 = load ptr, ptr %3, align 8, !tbaa !5
  %186 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %185, ptr noundef @.str.5)
  br label %298

187:                                              ; preds = %179
  %188 = load ptr, ptr %4, align 8, !tbaa !5
  %189 = load i8, ptr %188, align 1, !tbaa !9
  %190 = sext i8 %189 to i32
  %191 = icmp eq i32 %190, 65
  br i1 %191, label %212, label %192

192:                                              ; preds = %187
  %193 = load ptr, ptr %4, align 8, !tbaa !5
  %194 = load i8, ptr %193, align 1, !tbaa !9
  %195 = sext i8 %194 to i32
  %196 = icmp eq i32 %195, 85
  br i1 %196, label %212, label %197

197:                                              ; preds = %192
  %198 = load ptr, ptr %4, align 8, !tbaa !5
  %199 = load i8, ptr %198, align 1, !tbaa !9
  %200 = sext i8 %199 to i32
  %201 = icmp eq i32 %200, 75
  br i1 %201, label %212, label %202

202:                                              ; preds = %197
  %203 = load ptr, ptr %4, align 8, !tbaa !5
  %204 = load i8, ptr %203, align 1, !tbaa !9
  %205 = sext i8 %204 to i32
  %206 = icmp eq i32 %205, 103
  br i1 %206, label %212, label %207

207:                                              ; preds = %202
  %208 = load ptr, ptr %4, align 8, !tbaa !5
  %209 = load i8, ptr %208, align 1, !tbaa !9
  %210 = sext i8 %209 to i32
  %211 = icmp eq i32 %210, 113
  br i1 %211, label %212, label %215

212:                                              ; preds = %207, %202, %197, %192, %187
  %213 = load ptr, ptr %3, align 8, !tbaa !5
  %214 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %213, ptr noundef @.str.6)
  br label %297

215:                                              ; preds = %207
  %216 = load ptr, ptr %4, align 8, !tbaa !5
  %217 = load i8, ptr %216, align 1, !tbaa !9
  %218 = sext i8 %217 to i32
  %219 = icmp eq i32 %218, 67
  br i1 %219, label %240, label %220

220:                                              ; preds = %215
  %221 = load ptr, ptr %4, align 8, !tbaa !5
  %222 = load i8, ptr %221, align 1, !tbaa !9
  %223 = sext i8 %222 to i32
  %224 = icmp eq i32 %223, 77
  br i1 %224, label %240, label %225

225:                                              ; preds = %220
  %226 = load ptr, ptr %4, align 8, !tbaa !5
  %227 = load i8, ptr %226, align 1, !tbaa !9
  %228 = sext i8 %227 to i32
  %229 = icmp eq i32 %228, 87
  br i1 %229, label %240, label %230

230:                                              ; preds = %225
  %231 = load ptr, ptr %4, align 8, !tbaa !5
  %232 = load i8, ptr %231, align 1, !tbaa !9
  %233 = sext i8 %232 to i32
  %234 = icmp eq i32 %233, 104
  br i1 %234, label %240, label %235

235:                                              ; preds = %230
  %236 = load ptr, ptr %4, align 8, !tbaa !5
  %237 = load i8, ptr %236, align 1, !tbaa !9
  %238 = sext i8 %237 to i32
  %239 = icmp eq i32 %238, 114
  br i1 %239, label %240, label %243

240:                                              ; preds = %235, %230, %225, %220, %215
  %241 = load ptr, ptr %3, align 8, !tbaa !5
  %242 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %241, ptr noundef @.str.7)
  br label %296

243:                                              ; preds = %235
  %244 = load ptr, ptr %4, align 8, !tbaa !5
  %245 = load i8, ptr %244, align 1, !tbaa !9
  %246 = sext i8 %245 to i32
  %247 = icmp eq i32 %246, 66
  br i1 %247, label %268, label %248

248:                                              ; preds = %243
  %249 = load ptr, ptr %4, align 8, !tbaa !5
  %250 = load i8, ptr %249, align 1, !tbaa !9
  %251 = sext i8 %250 to i32
  %252 = icmp eq i32 %251, 76
  br i1 %252, label %268, label %253

253:                                              ; preds = %248
  %254 = load ptr, ptr %4, align 8, !tbaa !5
  %255 = load i8, ptr %254, align 1, !tbaa !9
  %256 = sext i8 %255 to i32
  %257 = icmp eq i32 %256, 86
  br i1 %257, label %268, label %258

258:                                              ; preds = %253
  %259 = load ptr, ptr %4, align 8, !tbaa !5
  %260 = load i8, ptr %259, align 1, !tbaa !9
  %261 = sext i8 %260 to i32
  %262 = icmp eq i32 %261, 105
  br i1 %262, label %268, label %263

263:                                              ; preds = %258
  %264 = load ptr, ptr %4, align 8, !tbaa !5
  %265 = load i8, ptr %264, align 1, !tbaa !9
  %266 = sext i8 %265 to i32
  %267 = icmp eq i32 %266, 115
  br i1 %267, label %268, label %271

268:                                              ; preds = %263, %258, %253, %248, %243
  %269 = load ptr, ptr %3, align 8, !tbaa !5
  %270 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %269, ptr noundef @.str.8)
  br label %295

271:                                              ; preds = %263
  %272 = load ptr, ptr %4, align 8, !tbaa !5
  %273 = load i8, ptr %272, align 1, !tbaa !9
  %274 = sext i8 %273 to i32
  %275 = icmp eq i32 %274, 72
  br i1 %275, label %291, label %276

276:                                              ; preds = %271
  %277 = load ptr, ptr %4, align 8, !tbaa !5
  %278 = load i8, ptr %277, align 1, !tbaa !9
  %279 = sext i8 %278 to i32
  %280 = icmp eq i32 %279, 82
  br i1 %280, label %291, label %281

281:                                              ; preds = %276
  %282 = load ptr, ptr %4, align 8, !tbaa !5
  %283 = load i8, ptr %282, align 1, !tbaa !9
  %284 = sext i8 %283 to i32
  %285 = icmp eq i32 %284, 106
  br i1 %285, label %291, label %286

286:                                              ; preds = %281
  %287 = load ptr, ptr %4, align 8, !tbaa !5
  %288 = load i8, ptr %287, align 1, !tbaa !9
  %289 = sext i8 %288 to i32
  %290 = icmp eq i32 %289, 116
  br i1 %290, label %291, label %294

291:                                              ; preds = %286, %281, %276, %271
  %292 = load ptr, ptr %3, align 8, !tbaa !5
  %293 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %292, ptr noundef @.str.9)
  br label %294

294:                                              ; preds = %291, %286
  br label %295

295:                                              ; preds = %294, %268
  br label %296

296:                                              ; preds = %295, %240
  br label %297

297:                                              ; preds = %296, %212
  br label %298

298:                                              ; preds = %297, %184
  br label %299

299:                                              ; preds = %298, %151
  br label %300

300:                                              ; preds = %299, %123
  br label %301

301:                                              ; preds = %300, %90
  br label %302

302:                                              ; preds = %301, %57
  br label %303

303:                                              ; preds = %302, %29
  ret void
}

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #0 align 2

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!7, !7, i64 0}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@switch.table._Z6changeRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKc = private unnamed_addr constant [58 x ptr] [ptr @.str.6, ptr @.str.8, ptr @.str.7, ptr @.str.5, ptr @.str.2, ptr @.str.3, ptr @.str, ptr @.str.9, ptr @.str.1, ptr @.str.4, ptr @.str.6, ptr @.str.8, ptr @.str.7, ptr @.str.5, ptr @.str.2, ptr @.str.3, ptr @.str, ptr @.str.9, ptr @.str.1, ptr @.str.4, ptr @.str.6, ptr @.str.8, ptr @.str.7, ptr @.str.5, ptr @.str.2, ptr @.str.3, ptr @.str, ptr @.str, ptr @.str, ptr @.str, ptr @.str, ptr @.str, ptr @.str, ptr @.str.1, ptr @.str.2, ptr @.str.3, ptr @.str.4, ptr @.str.5, ptr @.str.6, ptr @.str.7, ptr @.str.8, ptr @.str.9, ptr @.str, ptr @.str.1, ptr @.str.2, ptr @.str.3, ptr @.str.4, ptr @.str.5, ptr @.str.6, ptr @.str.7, ptr @.str.8, ptr @.str.9, ptr @.str, ptr @.str.1, ptr @.str.2, ptr @.str.3, ptr @.str.4, ptr @.str.5], align 8

; Function Attrs: mustprogress uwtable
define dso_local void @_Z6changeRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKc(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr nocapture noundef nonnull readonly align 1 dereferenceable(1) %1) local_unnamed_addr #0 {
  %3 = load i8, ptr %1, align 1, !tbaa !5
  %switch.tableidx = add i8 %3, -65
  %4 = icmp ult i8 %switch.tableidx, 58
  br i1 %4, label %switch.hole_check, label %7

switch.hole_check:                                ; preds = %2
  %switch.maskindex = zext nneg i8 %switch.tableidx to i64
  %switch.shifted = lshr i64 288230371923853311, %switch.maskindex
  %switch.lobit = trunc i64 %switch.shifted to i1
  br i1 %switch.lobit, label %switch.lookup, label %7

switch.lookup:                                    ; preds = %switch.hole_check
  %5 = zext nneg i8 %switch.tableidx to i64
  %switch.gep = getelementptr inbounds [58 x ptr], ptr @switch.table._Z6changeRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKc, i64 0, i64 %5
  %switch.load = load ptr, ptr %switch.gep, align 8
  %6 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull %switch.load)
  br label %7

7:                                                ; preds = %switch.hole_check, %2, %switch.lookup
  ret void
}

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #0 align 2

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"omnipotent char", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,InstCombinePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass