var str = String((readLine()!).sorted())

  let a = str.index(str.startIndex, offsetBy: 0)
  let b = str.index(str.startIndex, offsetBy: 1)
  let c = str.index(str.startIndex, offsetBy: 2)
  let d = str.index(str.startIndex, offsetBy: 3)
  
  if str [a]==str [b] && str [b] != str[c] && str [c]==str[d] {
    print("Yes")
  }
  else {
    print("No")
  }
; ModuleID = '/data/TheStack_IR/OJ_Samples/Collated/Swift/Source_510/llvm_OZ.ll'
source_filename = "/data/TheStack_IR/OJ_Samples/Collated/Swift/Source_510/llvm_OZ.ll"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%TSS = type <{ %Ts11_StringGutsV }>
%Ts11_StringGutsV = type <{ %Ts13_StringObjectV }>
%Ts13_StringObjectV = type <{ %Ts6UInt64V, %swift.bridge* }>
%Ts6UInt64V = type <{ i64 }>
%swift.bridge = type opaque
%TSS5IndexV = type <{ %Ts6UInt64V }>
%struct._SwiftEmptyArrayStorage = type { %struct.HeapObject, %struct._SwiftArrayBodyStorage }
%struct.HeapObject = type { %struct.HeapMetadata*, %struct.InlineRefCountsPlaceholder }
%struct.HeapMetadata = type opaque
%struct.InlineRefCountsPlaceholder = type { i64 }
%struct._SwiftArrayBodyStorage = type { i64, i64 }
%swift.type = type { i64 }
%swift.protocol_conformance_descriptor = type { i32, i32, i32, i32 }
%swift.type_descriptor = type opaque
%Ts15ContiguousArrayV = type <{ %Ts22_ContiguousArrayBufferV }>
%Ts22_ContiguousArrayBufferV = type <{ %Ts28__ContiguousArrayStorageBaseC* }>
%Ts28__ContiguousArrayStorageBaseC = type <{ %swift.refcounted, %Ts10_ArrayBodyV }>
%swift.refcounted = type { %swift.type*, i64 }
%Ts10_ArrayBodyV = type <{ %TSo22_SwiftArrayBodyStorageV }>
%TSo22_SwiftArrayBodyStorageV = type <{ %TSi, %TSu }>
%TSi = type <{ i64 }>
%TSu = type <{ i64 }>
%swift.error = type opaque
%TSa = type <{ %Ts22_ContiguousArrayBufferV }>
%swift.opaque = type opaque
%TSrySJG = type <{ %TSpySJGSg, %TSi }>
%TSpySJGSg = type <{ [8 x i8] }>
%TSJ = type <{ %TSS }>
%TSnySiG = type <{ %TSi, %TSi }>
%TSS8IteratorV = type <{ %Ts11_StringGutsV, %TSi, %TSi }>

@"$s7llvm_OZ3strSSvp" = hidden global %TSS zeroinitializer, align 8
@"$s7llvm_OZ1aSS5IndexVvp" = hidden local_unnamed_addr global %TSS5IndexV zeroinitializer, align 8
@"$s7llvm_OZ1bSS5IndexVvp" = hidden local_unnamed_addr global %TSS5IndexV zeroinitializer, align 8
@"$s7llvm_OZ1cSS5IndexVvp" = hidden local_unnamed_addr global %TSS5IndexV zeroinitializer, align 8
@"$s7llvm_OZ1dSS5IndexVvp" = hidden local_unnamed_addr global %TSS5IndexV zeroinitializer, align 8
@_swiftEmptyArrayStorage = external global %struct._SwiftEmptyArrayStorage, align 8
@"$sSJN" = external global %swift.type, align 8
@"symbolic SaySJG" = linkonce_odr hidden constant <{ [6 x i8], i8 }> <{ [6 x i8] c"SaySJG", i8 0 }>, section "swift5_typeref", no_sanitize_address, align 2
@"$sSaySJGMD" = linkonce_odr hidden global { i32, i32 } { i32 trunc (i64 sub (i64 ptrtoint (<{ [6 x i8], i8 }>* @"symbolic SaySJG" to i64), i64 ptrtoint ({ i32, i32 }* @"$sSaySJGMD" to i64)) to i32), i32 -6 }, align 8
@"$sSaySJGSayxGSTsWL" = linkonce_odr hidden local_unnamed_addr global i8** null, align 8
@"$sSayxGSTsMc" = external global %swift.protocol_conformance_descriptor, align 4
@"$ss23_ContiguousArrayStorageCMn" = external global %swift.type_descriptor, align 4
@"got.$ss23_ContiguousArrayStorageCMn" = private unnamed_addr constant %swift.type_descriptor* @"$ss23_ContiguousArrayStorageCMn"
@"symbolic _____yypG s23_ContiguousArrayStorageC" = linkonce_odr hidden constant <{ i8, i32, [4 x i8], i8 }> <{ i8 2, i32 trunc (i64 sub (i64 ptrtoint (%swift.type_descriptor** @"got.$ss23_ContiguousArrayStorageCMn" to i64), i64 ptrtoint (i32* getelementptr inbounds (<{ i8, i32, [4 x i8], i8 }>, <{ i8, i32, [4 x i8], i8 }>* @"symbolic _____yypG s23_ContiguousArrayStorageC", i32 0, i32 1) to i64)) to i32), [4 x i8] c"yypG", i8 0 }>, section "swift5_typeref", no_sanitize_address, align 2
@"$ss23_ContiguousArrayStorageCyypGMD" = linkonce_odr hidden global { i32, i32 } { i32 trunc (i64 sub (i64 ptrtoint (<{ i8, i32, [4 x i8], i8 }>* @"symbolic _____yypG s23_ContiguousArrayStorageC" to i64), i64 ptrtoint ({ i32, i32 }* @"$ss23_ContiguousArrayStorageCyypGMD" to i64)) to i32), i32 -9 }, align 8
@"$sSSN" = external global %swift.type, align 8
@"\01l_entry_point" = private constant { i32, i32 } { i32 trunc (i64 sub (i64 ptrtoint (i32 (i32, i8**)* @main to i64), i64 ptrtoint ({ i32, i32 }* @"\01l_entry_point" to i64)) to i32), i32 0 }, section "swift5_entry", align 4
@"symbolic _____ySJG s23_ContiguousArrayStorageC" = linkonce_odr hidden constant <{ i8, i32, [4 x i8], i8 }> <{ i8 2, i32 trunc (i64 sub (i64 ptrtoint (%swift.type_descriptor** @"got.$ss23_ContiguousArrayStorageCMn" to i64), i64 ptrtoint (i32* getelementptr inbounds (<{ i8, i32, [4 x i8], i8 }>, <{ i8, i32, [4 x i8], i8 }>* @"symbolic _____ySJG s23_ContiguousArrayStorageC", i32 0, i32 1) to i64)) to i32), [4 x i8] c"ySJG", i8 0 }>, section "swift5_typeref", no_sanitize_address, align 2
@"$ss23_ContiguousArrayStorageCySJGMD" = linkonce_odr hidden global { i32, i32 } { i32 trunc (i64 sub (i64 ptrtoint (<{ i8, i32, [4 x i8], i8 }>* @"symbolic _____ySJG s23_ContiguousArrayStorageC" to i64), i64 ptrtoint ({ i32, i32 }* @"$ss23_ContiguousArrayStorageCySJGMD" to i64)) to i32), i32 -9 }, align 8
@"symbolic _____ySnySiGG s23_ContiguousArrayStorageC" = linkonce_odr hidden constant <{ i8, i32, [8 x i8], i8 }> <{ i8 2, i32 trunc (i64 sub (i64 ptrtoint (%swift.type_descriptor** @"got.$ss23_ContiguousArrayStorageCMn" to i64), i64 ptrtoint (i32* getelementptr inbounds (<{ i8, i32, [8 x i8], i8 }>, <{ i8, i32, [8 x i8], i8 }>* @"symbolic _____ySnySiGG s23_ContiguousArrayStorageC", i32 0, i32 1) to i64)) to i32), [8 x i8] c"ySnySiGG", i8 0 }>, section "swift5_typeref", no_sanitize_address, align 2
@"$ss23_ContiguousArrayStorageCySnySiGGMD" = linkonce_odr hidden global { i32, i32 } { i32 trunc (i64 sub (i64 ptrtoint (<{ i8, i32, [8 x i8], i8 }>* @"symbolic _____ySnySiGG s23_ContiguousArrayStorageC" to i64), i64 ptrtoint ({ i32, i32 }* @"$ss23_ContiguousArrayStorageCySnySiGGMD" to i64)) to i32), i32 -13 }, align 8
@__swift_reflection_version = linkonce_odr hidden constant i16 3
@_swift1_autolink_entries = private constant [77 x i8] c"-lswift_Concurrency\00-lswiftCore\00-lswift_StringProcessing\00-lswift_RegexParser\00", section ".swift1_autolink_entries", no_sanitize_address, align 8
@llvm.compiler.used = appending global [4 x i8*] [i8* bitcast ({ i32, i32 }* @"\01l_entry_point" to i8*), i8* bitcast (i16* @__swift_reflection_version to i8*), i8* getelementptr inbounds ([77 x i8], [77 x i8]* @_swift1_autolink_entries, i32 0, i32 0), i8* bitcast (i32 (i32, i8**)* @main to i8*)], section "llvm.metadata"

; Function Attrs: minsize optsize
define protected i32 @main(i32 %0, i8** nocapture readnone %1) #0 {
entry:
  %2 = alloca %Ts15ContiguousArrayV, align 8
  %swifterror = alloca swifterror %swift.error*, align 8
  store %swift.error* null, %swift.error** %swifterror, align 8
  %3 = alloca %TSa, align 8
  %access-scratch = alloca [24 x i8], align 8
  %4 = tail call swiftcc { i64, i64 } @"$ss8readLine16strippingNewlineSSSgSb_tF"(i1 true)
  %5 = extractvalue { i64, i64 } %4, 1
  %6 = icmp eq i64 %5, 0
  br i1 %6, label %112, label %7

7:                                                ; preds = %entry
  %8 = extractvalue { i64, i64 } %4, 0
  %9 = inttoptr i64 %5 to %swift.bridge*
  %10 = bitcast %Ts15ContiguousArrayV* %2 to i8*
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %10)
  %11 = tail call %swift.bridge* @swift_bridgeObjectRetain(%swift.bridge* nonnull returned %9) #4
  %12 = tail call swiftcc %Ts28__ContiguousArrayStorageBaseC* @"$ss32_copyCollectionToContiguousArrayys0dE0Vy7ElementQzGxSlRzlFSS_Tgq5"(i64 %8, %swift.bridge* nonnull %9)
  tail call void @swift_bridgeObjectRelease(%swift.bridge* nonnull %9) #4
  %._buffer._storage = getelementptr inbounds %Ts15ContiguousArrayV, %Ts15ContiguousArrayV* %2, i64 0, i32 0, i32 0
  store %Ts28__ContiguousArrayStorageBaseC* %12, %Ts28__ContiguousArrayStorageBaseC** %._buffer._storage, align 8
  call swiftcc void @"$sSMsSkRzrlE4sort2byySb7ElementSTQz_ADtKXE_tKFs15ContiguousArrayVySJG_Tg508$sSTsSL7C39RpzrlE6sortedSayABGyFSbAB_ABtcfu_SS_TG5SJXMTTf1cn_n"(%Ts15ContiguousArrayV* nocapture nonnull dereferenceable(8) %2, %swift.type* nonnull @"$sSJN", %swift.refcounted* swiftself undef, %swift.error** noalias nocapture nonnull swifterror dereferenceable(8) %swifterror)
  %13 = load %swift.error*, %swift.error** %swifterror, align 8
  %.not = icmp eq %swift.error* %13, null
  br i1 %.not, label %14, label %56

14:                                               ; preds = %7
  tail call void @swift_bridgeObjectRelease(%swift.bridge* nonnull %9) #4
  %15 = load %Ts28__ContiguousArrayStorageBaseC*, %Ts28__ContiguousArrayStorageBaseC** %._buffer._storage, align 8
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %10)
  %16 = bitcast %TSa* %3 to i8*
  call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %16)
  %._buffer3._storage = getelementptr inbounds %TSa, %TSa* %3, i64 0, i32 0, i32 0
  store %Ts28__ContiguousArrayStorageBaseC* %15, %Ts28__ContiguousArrayStorageBaseC** %._buffer3._storage, align 8
  %17 = bitcast %TSa* %3 to %swift.opaque*
  %18 = tail call %swift.type* @__swift_instantiateConcreteTypeFromMangledName({ i32, i32 }* nonnull @"$sSaySJGMD") #14
  %19 = tail call i8** @"$sSaySJGSayxGSTsWl"() #15
  %20 = call swiftcc { i64, %swift.bridge* } @"$sSSySSxcSTRzSJ7ElementRtzlufC"(%swift.opaque* noalias nocapture nonnull %17, %swift.type* %18, i8** %19)
  %21 = extractvalue { i64, %swift.bridge* } %20, 0
  %22 = extractvalue { i64, %swift.bridge* } %20, 1
  call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %16)
  store i64 %21, i64* getelementptr inbounds (%TSS, %TSS* @"$s7llvm_OZ3strSSvp", i64 0, i32 0, i32 0, i32 0, i32 0), align 8
  store %swift.bridge* %22, %swift.bridge** getelementptr inbounds (%TSS, %TSS* @"$s7llvm_OZ3strSSvp", i64 0, i32 0, i32 0, i32 1), align 8
  %23 = getelementptr inbounds [24 x i8], [24 x i8]* %access-scratch, i64 0, i64 0
  call void @llvm.lifetime.start.p0i8(i64 -1, i8* nonnull %23)
  call void @swift_beginAccess(i8* nonnull bitcast (%TSS* @"$s7llvm_OZ3strSSvp" to i8*), [24 x i8]* nonnull %access-scratch, i64 0, i8* null) #4
  %24 = load i64, i64* getelementptr inbounds (%TSS, %TSS* @"$s7llvm_OZ3strSSvp", i64 0, i32 0, i32 0, i32 0, i32 0), align 8
  %25 = load %swift.bridge*, %swift.bridge** getelementptr inbounds (%TSS, %TSS* @"$s7llvm_OZ3strSSvp", i64 0, i32 0, i32 0, i32 1), align 8
  %26 = call %swift.bridge* @swift_bridgeObjectRetain(%swift.bridge* returned %25) #4
  %27 = call swiftcc i64 @"$sSS5index_8offsetBySS5IndexVAD_SitF"(i64 15, i64 0, i64 %24, %swift.bridge* %25)
  call void @swift_bridgeObjectRelease(%swift.bridge* %25) #4
  store i64 %27, i64* getelementptr inbounds (%TSS5IndexV, %TSS5IndexV* @"$s7llvm_OZ1aSS5IndexVvp", i64 0, i32 0, i32 0), align 8
  %28 = load i64, i64* getelementptr inbounds (%TSS, %TSS* @"$s7llvm_OZ3strSSvp", i64 0, i32 0, i32 0, i32 0, i32 0), align 8
  %29 = load %swift.bridge*, %swift.bridge** getelementptr inbounds (%TSS, %TSS* @"$s7llvm_OZ3strSSvp", i64 0, i32 0, i32 0, i32 1), align 8
  %30 = call %swift.bridge* @swift_bridgeObjectRetain(%swift.bridge* returned %29) #4
  %31 = call swiftcc i64 @"$sSS5index_8offsetBySS5IndexVAD_SitF"(i64 15, i64 1, i64 %28, %swift.bridge* %29)
  call void @swift_bridgeObjectRelease(%swift.bridge* %29) #4
  store i64 %31, i64* getelementptr inbounds (%TSS5IndexV, %TSS5IndexV* @"$s7llvm_OZ1bSS5IndexVvp", i64 0, i32 0, i32 0), align 8
  %32 = load i64, i64* getelementptr inbounds (%TSS, %TSS* @"$s7llvm_OZ3strSSvp", i64 0, i32 0, i32 0, i32 0, i32 0), align 8
  %33 = load %swift.bridge*, %swift.bridge** getelementptr inbounds (%TSS, %TSS* @"$s7llvm_OZ3strSSvp", i64 0, i32 0, i32 0, i32 1), align 8
  %34 = call %swift.bridge* @swift_bridgeObjectRetain(%swift.bridge* returned %33) #4
  %35 = call swiftcc i64 @"$sSS5index_8offsetBySS5IndexVAD_SitF"(i64 15, i64 2, i64 %32, %swift.bridge* %33)
  call void @swift_bridgeObjectRelease(%swift.bridge* %33) #4
  store i64 %35, i64* getelementptr inbounds (%TSS5IndexV, %TSS5IndexV* @"$s7llvm_OZ1cSS5IndexVvp", i64 0, i32 0, i32 0), align 8
  %36 = load i64, i64* getelementptr inbounds (%TSS, %TSS* @"$s7llvm_OZ3strSSvp", i64 0, i32 0, i32 0, i32 0, i32 0), align 8
  %37 = load %swift.bridge*, %swift.bridge** getelementptr inbounds (%TSS, %TSS* @"$s7llvm_OZ3strSSvp", i64 0, i32 0, i32 0, i32 1), align 8
  %38 = call %swift.bridge* @swift_bridgeObjectRetain(%swift.bridge* returned %37) #4
  %39 = call swiftcc i64 @"$sSS5index_8offsetBySS5IndexVAD_SitF"(i64 15, i64 3, i64 %36, %swift.bridge* %37)
  call void @swift_bridgeObjectRelease(%swift.bridge* %37) #4
  store i64 %39, i64* getelementptr inbounds (%TSS5IndexV, %TSS5IndexV* @"$s7llvm_OZ1dSS5IndexVvp", i64 0, i32 0, i32 0), align 8
  %40 = load i64, i64* getelementptr inbounds (%TSS, %TSS* @"$s7llvm_OZ3strSSvp", i64 0, i32 0, i32 0, i32 0, i32 0), align 8
  %41 = load %swift.bridge*, %swift.bridge** getelementptr inbounds (%TSS, %TSS* @"$s7llvm_OZ3strSSvp", i64 0, i32 0, i32 0, i32 1), align 8
  %42 = load i64, i64* getelementptr inbounds (%TSS5IndexV, %TSS5IndexV* @"$s7llvm_OZ1aSS5IndexVvp", i64 0, i32 0, i32 0), align 8
  %43 = call %swift.bridge* @swift_bridgeObjectRetain(%swift.bridge* returned %41) #4
  %44 = call swiftcc { i64, %swift.bridge* } @"$sSSySJSS5IndexVcig"(i64 %42, i64 %40, %swift.bridge* %41)
  call void @swift_bridgeObjectRelease(%swift.bridge* %41) #4
  %45 = extractvalue { i64, %swift.bridge* } %44, 0
  %46 = extractvalue { i64, %swift.bridge* } %44, 1
  %47 = load i64, i64* getelementptr inbounds (%TSS, %TSS* @"$s7llvm_OZ3strSSvp", i64 0, i32 0, i32 0, i32 0, i32 0), align 8
  %48 = load %swift.bridge*, %swift.bridge** getelementptr inbounds (%TSS, %TSS* @"$s7llvm_OZ3strSSvp", i64 0, i32 0, i32 0, i32 1), align 8
  %49 = load i64, i64* getelementptr inbounds (%TSS5IndexV, %TSS5IndexV* @"$s7llvm_OZ1bSS5IndexVvp", i64 0, i32 0, i32 0), align 8
  %50 = call %swift.bridge* @swift_bridgeObjectRetain(%swift.bridge* returned %48) #4
  %51 = call swiftcc { i64, %swift.bridge* } @"$sSSySJSS5IndexVcig"(i64 %49, i64 %47, %swift.bridge* %48)
  call void @swift_bridgeObjectRelease(%swift.bridge* %48) #4
  %52 = extractvalue { i64, %swift.bridge* } %51, 0
  %53 = extractvalue { i64, %swift.bridge* } %51, 1
  %54 = icmp eq i64 %45, %52
  %55 = icmp eq %swift.bridge* %46, %53
  %or.cond = select i1 %54, i1 %55, i1 false
  br i1 %or.cond, label %59, label %60

56:                                               ; preds = %7
  %57 = load %Ts28__ContiguousArrayStorageBaseC*, %Ts28__ContiguousArrayStorageBaseC** %._buffer._storage, align 8
  %58 = getelementptr %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %57, i64 0, i32 0
  tail call void @swift_release(%swift.refcounted* %58) #4
  unreachable

59:                                               ; preds = %14
  call void @swift_bridgeObjectRelease_n(%swift.bridge* %46, i32 2)
  br label %62

60:                                               ; preds = %14
  %61 = call swiftcc i1 @"$ss27_stringCompareWithSmolCheck__9expectingSbs11_StringGutsV_ADs01_G16ComparisonResultOtF"(i64 %45, %swift.bridge* %46, i64 %52, %swift.bridge* %53, i8 0)
  call void @swift_bridgeObjectRelease(%swift.bridge* %46) #4
  call void @swift_bridgeObjectRelease(%swift.bridge* %53) #4
  br i1 %61, label %62, label %102

62:                                               ; preds = %60, %59
  %63 = load i64, i64* getelementptr inbounds (%TSS, %TSS* @"$s7llvm_OZ3strSSvp", i64 0, i32 0, i32 0, i32 0, i32 0), align 8
  %64 = load %swift.bridge*, %swift.bridge** getelementptr inbounds (%TSS, %TSS* @"$s7llvm_OZ3strSSvp", i64 0, i32 0, i32 0, i32 1), align 8
  %65 = load i64, i64* getelementptr inbounds (%TSS5IndexV, %TSS5IndexV* @"$s7llvm_OZ1bSS5IndexVvp", i64 0, i32 0, i32 0), align 8
  %66 = call %swift.bridge* @swift_bridgeObjectRetain(%swift.bridge* returned %64) #4
  %67 = call swiftcc { i64, %swift.bridge* } @"$sSSySJSS5IndexVcig"(i64 %65, i64 %63, %swift.bridge* %64)
  call void @swift_bridgeObjectRelease(%swift.bridge* %64) #4
  %68 = extractvalue { i64, %swift.bridge* } %67, 0
  %69 = extractvalue { i64, %swift.bridge* } %67, 1
  %70 = load i64, i64* getelementptr inbounds (%TSS, %TSS* @"$s7llvm_OZ3strSSvp", i64 0, i32 0, i32 0, i32 0, i32 0), align 8
  %71 = load %swift.bridge*, %swift.bridge** getelementptr inbounds (%TSS, %TSS* @"$s7llvm_OZ3strSSvp", i64 0, i32 0, i32 0, i32 1), align 8
  %72 = load i64, i64* getelementptr inbounds (%TSS5IndexV, %TSS5IndexV* @"$s7llvm_OZ1cSS5IndexVvp", i64 0, i32 0, i32 0), align 8
  %73 = call %swift.bridge* @swift_bridgeObjectRetain(%swift.bridge* returned %71) #4
  %74 = call swiftcc { i64, %swift.bridge* } @"$sSSySJSS5IndexVcig"(i64 %72, i64 %70, %swift.bridge* %71)
  call void @swift_bridgeObjectRelease(%swift.bridge* %71) #4
  %75 = extractvalue { i64, %swift.bridge* } %74, 0
  %76 = extractvalue { i64, %swift.bridge* } %74, 1
  %77 = icmp eq i64 %68, %75
  %78 = icmp eq %swift.bridge* %69, %76
  %or.cond31 = select i1 %77, i1 %78, i1 false
  br i1 %or.cond31, label %79, label %80

79:                                               ; preds = %62
  call void @swift_bridgeObjectRelease_n(%swift.bridge* %69, i32 2)
  br label %102

80:                                               ; preds = %62
  %81 = call swiftcc i1 @"$ss27_stringCompareWithSmolCheck__9expectingSbs11_StringGutsV_ADs01_G16ComparisonResultOtF"(i64 %68, %swift.bridge* %69, i64 %75, %swift.bridge* %76, i8 0)
  call void @swift_bridgeObjectRelease(%swift.bridge* %69) #4
  call void @swift_bridgeObjectRelease(%swift.bridge* %76) #4
  br i1 %81, label %102, label %82

82:                                               ; preds = %80
  %83 = load i64, i64* getelementptr inbounds (%TSS, %TSS* @"$s7llvm_OZ3strSSvp", i64 0, i32 0, i32 0, i32 0, i32 0), align 8
  %84 = load %swift.bridge*, %swift.bridge** getelementptr inbounds (%TSS, %TSS* @"$s7llvm_OZ3strSSvp", i64 0, i32 0, i32 0, i32 1), align 8
  %85 = load i64, i64* getelementptr inbounds (%TSS5IndexV, %TSS5IndexV* @"$s7llvm_OZ1cSS5IndexVvp", i64 0, i32 0, i32 0), align 8
  %86 = call %swift.bridge* @swift_bridgeObjectRetain(%swift.bridge* returned %84) #4
  %87 = call swiftcc { i64, %swift.bridge* } @"$sSSySJSS5IndexVcig"(i64 %85, i64 %83, %swift.bridge* %84)
  call void @swift_bridgeObjectRelease(%swift.bridge* %84) #4
  %88 = extractvalue { i64, %swift.bridge* } %87, 0
  %89 = extractvalue { i64, %swift.bridge* } %87, 1
  %90 = load i64, i64* getelementptr inbounds (%TSS, %TSS* @"$s7llvm_OZ3strSSvp", i64 0, i32 0, i32 0, i32 0, i32 0), align 8
  %91 = load %swift.bridge*, %swift.bridge** getelementptr inbounds (%TSS, %TSS* @"$s7llvm_OZ3strSSvp", i64 0, i32 0, i32 0, i32 1), align 8
  %92 = load i64, i64* getelementptr inbounds (%TSS5IndexV, %TSS5IndexV* @"$s7llvm_OZ1dSS5IndexVvp", i64 0, i32 0, i32 0), align 8
  %93 = call %swift.bridge* @swift_bridgeObjectRetain(%swift.bridge* returned %91) #4
  %94 = call swiftcc { i64, %swift.bridge* } @"$sSSySJSS5IndexVcig"(i64 %92, i64 %90, %swift.bridge* %91)
  call void @swift_bridgeObjectRelease(%swift.bridge* %91) #4
  %95 = extractvalue { i64, %swift.bridge* } %94, 0
  %96 = extractvalue { i64, %swift.bridge* } %94, 1
  %97 = icmp eq i64 %88, %95
  %98 = icmp eq %swift.bridge* %89, %96
  %or.cond32 = select i1 %97, i1 %98, i1 false
  br i1 %or.cond32, label %99, label %100

99:                                               ; preds = %82
  call void @swift_bridgeObjectRelease_n(%swift.bridge* %89, i32 2)
  br label %103

100:                                              ; preds = %82
  %101 = call swiftcc i1 @"$ss27_stringCompareWithSmolCheck__9expectingSbs11_StringGutsV_ADs01_G16ComparisonResultOtF"(i64 %88, %swift.bridge* %89, i64 %95, %swift.bridge* %96, i8 0)
  call void @swift_bridgeObjectRelease(%swift.bridge* %89) #4
  call void @swift_bridgeObjectRelease(%swift.bridge* %96) #4
  br i1 %101, label %103, label %102

102:                                              ; preds = %100, %80, %60, %79
  br label %103

103:                                              ; preds = %99, %100, %102
  %.sink37 = phi i64 [ 28494, %102 ], [ 7562585, %100 ], [ 7562585, %99 ]
  %.sink34 = phi %swift.bridge* [ inttoptr (i64 -2161727821137838080 to %swift.bridge*), %102 ], [ inttoptr (i64 -2089670227099910144 to %swift.bridge*), %100 ], [ inttoptr (i64 -2089670227099910144 to %swift.bridge*), %99 ]
  %104 = call %swift.type* @__swift_instantiateConcreteTypeFromMangledName({ i32, i32 }* nonnull @"$ss23_ContiguousArrayStorageCyypGMD") #14
  %105 = call noalias %swift.refcounted* @swift_allocObject(%swift.type* %104, i64 64, i64 7) #4
  %106 = bitcast %swift.refcounted* %105 to %Ts28__ContiguousArrayStorageBaseC*
  %107 = getelementptr inbounds %swift.refcounted, %swift.refcounted* %105, i64 1
  %._storage5.count._value = bitcast %swift.refcounted* %107 to i64*
  store i64 1, i64* %._storage5.count._value, align 8
  %._storage5._capacityAndFlags = getelementptr inbounds %swift.refcounted, %swift.refcounted* %105, i64 1, i32 1
  store i64 2, i64* %._storage5._capacityAndFlags, align 8
  %108 = getelementptr inbounds %swift.refcounted, %swift.refcounted* %105, i64 2
  %109 = getelementptr inbounds %swift.refcounted, %swift.refcounted* %105, i64 3, i32 1
  %110 = bitcast i64* %109 to %swift.type**
  store %swift.type* @"$sSSN", %swift.type** %110, align 8
  %._guts8._object._countAndFlagsBits._value = bitcast %swift.refcounted* %108 to i64*
  store i64 %.sink37, i64* %._guts8._object._countAndFlagsBits._value, align 8
  %._guts8._object._object = getelementptr inbounds %swift.refcounted, %swift.refcounted* %105, i64 2, i32 1
  %111 = bitcast i64* %._guts8._object._object to %swift.bridge**
  store %swift.bridge* %.sink34, %swift.bridge** %111, align 8
  call swiftcc void @"$ss5print_9separator10terminatoryypd_S2StF"(%Ts28__ContiguousArrayStorageBaseC* %106, i64 32, %swift.bridge* nonnull inttoptr (i64 -2233785415175766016 to %swift.bridge*), i64 10, %swift.bridge* nonnull inttoptr (i64 -2233785415175766016 to %swift.bridge*))
  call void @swift_release(%swift.refcounted* %105) #4
  ret i32 0

112:                                              ; preds = %entry
  tail call void asm sideeffect "", "n"(i32 0) #4
  tail call void @llvm.trap()
  unreachable
}

; Function Attrs: minsize optsize
declare swiftcc { i64, i64 } @"$ss8readLine16strippingNewlineSSSgSb_tF"(i1) local_unnamed_addr #0

; Function Attrs: cold noreturn nounwind
declare void @llvm.trap() #1

; Function Attrs: minsize optsize
define linkonce_odr hidden swiftcc void @"$sSMsSkRzrlE4sort2byySb7ElementSTQz_ADtKXE_tKFs15ContiguousArrayVySJG_Tg508$sSTsSL7C39RpzrlE6sortedSayABGyFSbAB_ABtcfu_SS_TG5SJXMTTf1cn_n"(%Ts15ContiguousArrayV* nocapture dereferenceable(8) %0, %swift.type* %1, %swift.refcounted* swiftself %2, %swift.error** noalias nocapture swifterror dereferenceable(8) %3) local_unnamed_addr #0 {
entry:
  %4 = alloca %TSrySJG, align 8
  %._buffer._storage = getelementptr inbounds %Ts15ContiguousArrayV, %Ts15ContiguousArrayV* %0, i64 0, i32 0, i32 0
  %5 = load %Ts28__ContiguousArrayStorageBaseC*, %Ts28__ContiguousArrayStorageBaseC** %._buffer._storage, align 8
  %6 = getelementptr %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %5, i64 0, i32 0
  %7 = tail call zeroext i1 @swift_isUniquelyReferenced_nonNull_native(%swift.refcounted* %6) #16
  br i1 %7, label %common.ret, label %8

8:                                                ; preds = %entry
  %9 = tail call swiftcc %Ts28__ContiguousArrayStorageBaseC* @"$ss22_ContiguousArrayBufferV20_consumeAndCreateNewAByxGyFSJ_Tg5"(%Ts28__ContiguousArrayStorageBaseC* %5)
  br label %common.ret

common.ret:                                       ; preds = %entry, %8
  %10 = phi %Ts28__ContiguousArrayStorageBaseC* [ %9, %8 ], [ %5, %entry ]
  %._storage.count._value = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %10, i64 0, i32 1, i32 0, i32 0, i32 0
  %11 = load i64, i64* %._storage.count._value, align 8, !range !6
  %12 = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %10, i64 1
  %13 = getelementptr inbounds %TSrySJG, %TSrySJG* %4, i64 0, i32 0, i32 0, i64 0
  call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %13)
  %14 = ptrtoint %Ts28__ContiguousArrayStorageBaseC* %12 to i64
  %15 = bitcast %TSrySJG* %4 to i64*
  store i64 %14, i64* %15, align 8
  %.count._value = getelementptr inbounds %TSrySJG, %TSrySJG* %4, i64 0, i32 1, i32 0
  store i64 %11, i64* %.count._value, align 8
  call swiftcc void @"$sSr15_stableSortImpl2byySbx_xtKXE_tKFSJ_Tg554$sSTsSL7ElementRpzrlE6sortedSayABGyFSbAB_ABtcfu_SS_TG5SJXMTTf1cn_n"(%TSrySJG* nocapture nonnull dereferenceable(16) %4, %swift.type* %1, %swift.refcounted* swiftself undef, %swift.error** noalias nocapture nonnull swifterror dereferenceable(8) %3)
  store %Ts28__ContiguousArrayStorageBaseC* %10, %Ts28__ContiguousArrayStorageBaseC** %._buffer._storage, align 8
  call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %13)
  ret void
}

; Function Attrs: argmemonly mustprogress nocallback nofree nosync nounwind willreturn
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #2

; Function Attrs: minsize optsize
define linkonce_odr hidden swiftcc void @"$sSr15_stableSortImpl2byySbx_xtKXE_tKFSJ_Tg554$sSTsSL7ElementRpzrlE6sortedSayABGyFSbAB_ABtcfu_SS_TG5SJXMTTf1cn_n"(%TSrySJG* nocapture dereferenceable(16) %0, %swift.type* %1, %swift.refcounted* swiftself %2, %swift.error** noalias nocapture swifterror dereferenceable(8) %3) local_unnamed_addr #0 {
entry:
  %.count._value = getelementptr inbounds %TSrySJG, %TSrySJG* %0, i64 0, i32 1, i32 0
  %4 = load i64, i64* %.count._value, align 8
  %5 = tail call swiftcc i64 @"$ss22_minimumMergeRunLengthyS2iF"(i64 %4)
  %6 = icmp slt i64 %5, %4
  br i1 %6, label %7, label %12

7:                                                ; preds = %entry
  %8 = sdiv i64 %4, 2
  %9 = icmp slt i64 %4, -1
  br i1 %9, label %327, label %10, !prof !7

10:                                               ; preds = %7
  %11 = icmp sgt i64 %4, 1
  br i1 %11, label %.thread258, label %19

12:                                               ; preds = %entry
  %13 = icmp slt i64 %4, 0
  br i1 %13, label %326, label %14, !prof !7

14:                                               ; preds = %12
  %15 = icmp eq i64 %4, 0
  br i1 %15, label %common.ret, label %324

.thread258:                                       ; preds = %10
  %16 = tail call swiftcc %Ts28__ContiguousArrayStorageBaseC* @"$sSa28_allocateBufferUninitialized15minimumCapacitys016_ContiguousArrayB0VyxGSi_tFZ"(i64 %8, %swift.type* nonnull @"$sSJN")
  %._storage70.count._value = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %16, i64 0, i32 1, i32 0, i32 0, i32 0
  store i64 %8, i64* %._storage70.count._value, align 8
  %17 = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %16, i64 1
  %18 = bitcast %Ts28__ContiguousArrayStorageBaseC* %17 to i8*
  br label %.preheader163

19:                                               ; preds = %10
  %20 = icmp eq i64 %4, 1
  br i1 %20, label %.preheader163, label %..loopexit164_crit_edge

..loopexit164_crit_edge:                          ; preds = %19
  %.pre248 = load i64, i64* getelementptr inbounds (%struct._SwiftEmptyArrayStorage, %struct._SwiftEmptyArrayStorage* @_swiftEmptyArrayStorage, i64 0, i32 1, i32 0), align 8, !range !6
  br label %.loopexit164

.preheader163:                                    ; preds = %.thread258, %19
  %21 = phi i8* [ %18, %.thread258 ], [ bitcast (%struct.HeapMetadata** getelementptr inbounds (%struct._SwiftEmptyArrayStorage, %struct._SwiftEmptyArrayStorage* @_swiftEmptyArrayStorage, i64 1, i32 0, i32 0) to i8*), %19 ]
  %22 = phi %Ts28__ContiguousArrayStorageBaseC* [ %16, %.thread258 ], [ bitcast (%struct._SwiftEmptyArrayStorage* @_swiftEmptyArrayStorage to %Ts28__ContiguousArrayStorageBaseC*), %19 ]
  %23 = bitcast %TSrySJG* %0 to i64*
  br label %24

24:                                               ; preds = %.preheader163, %.loopexit
  %25 = phi i64 [ %107, %.loopexit ], [ 0, %.preheader163 ]
  %26 = phi %Ts28__ContiguousArrayStorageBaseC* [ %126, %.loopexit ], [ bitcast (%struct._SwiftEmptyArrayStorage* @_swiftEmptyArrayStorage to %Ts28__ContiguousArrayStorageBaseC*), %.preheader163 ]
  %27 = load i64, i64* %.count._value, align 8
  %28 = add nsw i64 %25, 1
  %29 = icmp slt i64 %28, %27
  br i1 %29, label %30, label %.loopexit160

30:                                               ; preds = %24
  %31 = load i64, i64* %23, align 8
  %32 = inttoptr i64 %31 to %TSJ*
  %._str56._guts._object._countAndFlagsBits._value = getelementptr inbounds %TSJ, %TSJ* %32, i64 %28, i32 0, i32 0, i32 0, i32 0, i32 0
  %33 = load i64, i64* %._str56._guts._object._countAndFlagsBits._value, align 8
  %._str56._guts._object._object = getelementptr inbounds %TSJ, %TSJ* %32, i64 %28, i32 0, i32 0, i32 0, i32 1
  %34 = load %swift.bridge*, %swift.bridge** %._str56._guts._object._object, align 8
  %._str57._guts._object._countAndFlagsBits._value = getelementptr inbounds %TSJ, %TSJ* %32, i64 %25, i32 0, i32 0, i32 0, i32 0, i32 0
  %35 = load i64, i64* %._str57._guts._object._countAndFlagsBits._value, align 8
  %._str57._guts._object._object = getelementptr inbounds %TSJ, %TSJ* %32, i64 %25, i32 0, i32 0, i32 0, i32 1
  %36 = load %swift.bridge*, %swift.bridge** %._str57._guts._object._object, align 8
  %37 = icmp eq i64 %33, %35
  %38 = icmp eq %swift.bridge* %34, %36
  %or.cond = select i1 %37, i1 %38, i1 false
  br i1 %or.cond, label %39, label %42

39:                                               ; preds = %30
  %40 = add nsw i64 %25, 2
  %41 = icmp slt i64 %40, %27
  br i1 %41, label %46, label %.loopexit160

42:                                               ; preds = %30
  %43 = tail call swiftcc i1 @"$ss27_stringCompareWithSmolCheck__9expectingSbs11_StringGutsV_ADs01_G16ComparisonResultOtF"(i64 %33, %swift.bridge* %34, i64 %35, %swift.bridge* %36, i8 1)
  %44 = add nsw i64 %25, 2
  %45 = icmp slt i64 %44, %27
  br i1 %45, label %46, label %.loopexit161

46:                                               ; preds = %42, %39
  %47 = phi i1 [ false, %39 ], [ %43, %42 ]
  %48 = phi i64 [ %40, %39 ], [ %44, %42 ]
  br label %49

49:                                               ; preds = %62, %46
  %50 = phi i64 [ %28, %46 ], [ %51, %62 ]
  %51 = phi i64 [ %48, %46 ], [ %63, %62 ]
  %._str60._guts._object._countAndFlagsBits._value = getelementptr inbounds %TSJ, %TSJ* %32, i64 %51, i32 0, i32 0, i32 0, i32 0, i32 0
  %52 = load i64, i64* %._str60._guts._object._countAndFlagsBits._value, align 8
  %._str60._guts._object._object = getelementptr inbounds %TSJ, %TSJ* %32, i64 %51, i32 0, i32 0, i32 0, i32 1
  %53 = load %swift.bridge*, %swift.bridge** %._str60._guts._object._object, align 8
  %._str61._guts._object._countAndFlagsBits._value = getelementptr inbounds %TSJ, %TSJ* %32, i64 %50, i32 0, i32 0, i32 0, i32 0, i32 0
  %54 = load i64, i64* %._str61._guts._object._countAndFlagsBits._value, align 8
  %._str61._guts._object._object = getelementptr inbounds %TSJ, %TSJ* %32, i64 %50, i32 0, i32 0, i32 0, i32 1
  %55 = load %swift.bridge*, %swift.bridge** %._str61._guts._object._object, align 8
  %56 = icmp eq i64 %52, %54
  %57 = icmp eq %swift.bridge* %53, %55
  %or.cond153 = select i1 %56, i1 %57, i1 false
  br i1 %or.cond153, label %58, label %59

58:                                               ; preds = %49
  br i1 %47, label %.loopexit162, label %62

59:                                               ; preds = %49
  %60 = tail call swiftcc i1 @"$ss27_stringCompareWithSmolCheck__9expectingSbs11_StringGutsV_ADs01_G16ComparisonResultOtF"(i64 %52, %swift.bridge* %53, i64 %54, %swift.bridge* %55, i8 1)
  %61 = xor i1 %47, %60
  br i1 %61, label %.loopexit161, label %62

62:                                               ; preds = %59, %58
  %63 = add nsw i64 %51, 1
  %64 = icmp slt i64 %63, %27
  br i1 %64, label %49, label %.loopexit161

.loopexit161:                                     ; preds = %62, %59, %42
  %65 = phi i1 [ %43, %42 ], [ %47, %59 ], [ %47, %62 ]
  %66 = phi i64 [ %44, %42 ], [ %63, %62 ], [ %51, %59 ]
  br i1 %65, label %.loopexit162, label %.loopexit160

.loopexit162:                                     ; preds = %58, %.loopexit161
  %67 = phi i64 [ %66, %.loopexit161 ], [ %51, %58 ]
  %68 = icmp slt i64 %67, %25
  br i1 %68, label %354, label %69, !prof !7

69:                                               ; preds = %.loopexit162
  %70 = icmp slt i64 %25, %67
  br i1 %70, label %.preheader159, label %.loopexit160

.preheader159:                                    ; preds = %69, %86
  %71 = phi i64 [ %73, %86 ], [ %67, %69 ]
  %72 = phi i64 [ %87, %86 ], [ %25, %69 ]
  %73 = add nsw i64 %71, -1
  %74 = load i64, i64* %23, align 8
  %75 = icmp eq i64 %72, %73
  br i1 %75, label %86, label %76

76:                                               ; preds = %.preheader159
  %77 = icmp eq i64 %74, 0
  br i1 %77, label %355, label %78

78:                                               ; preds = %76
  %79 = inttoptr i64 %74 to %TSJ*
  %80 = getelementptr inbounds %TSJ, %TSJ* %79, i64 %72
  %81 = bitcast %TSJ* %80 to i8*
  %82 = getelementptr inbounds %TSJ, %TSJ* %79, i64 %73
  %83 = bitcast %TSJ* %82 to i8*
  %._str58._guts._object._countAndFlagsBits._value = getelementptr inbounds %TSJ, %TSJ* %80, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
  %84 = load i64, i64* %._str58._guts._object._countAndFlagsBits._value, align 8
  %._str58._guts._object._object = getelementptr inbounds %TSJ, %TSJ* %79, i64 %72, i32 0, i32 0, i32 0, i32 1
  %85 = load %swift.bridge*, %swift.bridge** %._str58._guts._object._object, align 8
  tail call void @llvm.memmove.p0i8.p0i8.i64(i8* noundef nonnull align 8 dereferenceable(16) %81, i8* noundef nonnull align 8 dereferenceable(16) %83, i64 16, i1 false)
  %._str59._guts._object._countAndFlagsBits._value = getelementptr inbounds %TSJ, %TSJ* %82, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
  store i64 %84, i64* %._str59._guts._object._countAndFlagsBits._value, align 8
  %._str59._guts._object._object = getelementptr inbounds %TSJ, %TSJ* %79, i64 %73, i32 0, i32 0, i32 0, i32 1
  store %swift.bridge* %85, %swift.bridge** %._str59._guts._object._object, align 8
  br label %86

86:                                               ; preds = %.preheader159, %78
  %87 = add nsw i64 %72, 1
  %88 = icmp slt i64 %87, %73
  br i1 %88, label %.preheader159, label %.loopexit160

.loopexit160:                                     ; preds = %86, %69, %.loopexit161, %39, %24
  %89 = phi i64 [ %28, %24 ], [ %40, %39 ], [ %66, %.loopexit161 ], [ %67, %69 ], [ %67, %86 ]
  %90 = load i64, i64* %.count._value, align 8
  %91 = icmp slt i64 %89, %90
  br i1 %91, label %92, label %.loopexit158

92:                                               ; preds = %.loopexit160
  %93 = tail call { i64, i1 } @llvm.ssub.with.overflow.i64(i64 %89, i64 %25)
  %94 = extractvalue { i64, i1 } %93, 1
  br i1 %94, label %350, label %95, !prof !7

95:                                               ; preds = %92
  %96 = extractvalue { i64, i1 } %93, 0
  %97 = icmp slt i64 %96, %5
  br i1 %97, label %98, label %.loopexit158

98:                                               ; preds = %95
  %99 = tail call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %25, i64 %5)
  %100 = extractvalue { i64, i1 } %99, 1
  br i1 %100, label %351, label %101, !prof !7

101:                                              ; preds = %98
  %102 = extractvalue { i64, i1 } %99, 0
  %103 = tail call i64 @llvm.smin.i64(i64 %102, i64 %90)
  %104 = icmp slt i64 %103, %25
  br i1 %104, label %352, label %105, !prof !7

105:                                              ; preds = %101
  %106 = icmp eq i64 %89, %103
  br i1 %106, label %.loopexit158, label %.preheader

.loopexit158:                                     ; preds = %321, %105, %95, %.loopexit160
  %107 = phi i64 [ %89, %.loopexit160 ], [ %89, %95 ], [ %89, %105 ], [ %103, %321 ]
  %108 = icmp slt i64 %107, %25
  br i1 %108, label %333, label %109, !prof !7

109:                                              ; preds = %.loopexit158
  %110 = getelementptr %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %26, i64 0, i32 0
  %111 = tail call zeroext i1 @swift_isUniquelyReferenced_nonNull_native(%swift.refcounted* %110) #16
  br i1 %111, label %116, label %112

112:                                              ; preds = %109
  %._storage13.count._value = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %26, i64 0, i32 1, i32 0, i32 0, i32 0
  %113 = load i64, i64* %._storage13.count._value, align 8, !range !6
  %114 = add nuw nsw i64 %113, 1
  %115 = tail call swiftcc %Ts28__ContiguousArrayStorageBaseC* @"$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSnySiG_Tgq5"(i1 false, i64 %114, i1 true, %Ts28__ContiguousArrayStorageBaseC* %26)
  br label %116

116:                                              ; preds = %109, %112
  %117 = phi %Ts28__ContiguousArrayStorageBaseC* [ %115, %112 ], [ %26, %109 ]
  %._storage14.count._value = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %117, i64 0, i32 1, i32 0, i32 0, i32 0
  %118 = load i64, i64* %._storage14.count._value, align 8, !range !6
  %._storage14._capacityAndFlags._value = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %117, i64 0, i32 1, i32 0, i32 1, i32 0
  %119 = load i64, i64* %._storage14._capacityAndFlags._value, align 8
  %120 = lshr i64 %119, 1
  %121 = add nuw nsw i64 %118, 1
  %.not147 = icmp ugt i64 %120, %118
  br i1 %.not147, label %125, label %122, !prof !8

122:                                              ; preds = %116
  %123 = icmp ugt i64 %119, 1
  %124 = tail call swiftcc %Ts28__ContiguousArrayStorageBaseC* @"$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSnySiG_Tgq5"(i1 %123, i64 %121, i1 true, %Ts28__ContiguousArrayStorageBaseC* nonnull %117)
  br label %125

125:                                              ; preds = %116, %122
  %126 = phi %Ts28__ContiguousArrayStorageBaseC* [ %124, %122 ], [ %117, %116 ]
  %._storage15.count._value = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %126, i64 0, i32 1, i32 0, i32 0, i32 0
  store i64 %121, i64* %._storage15.count._value, align 8
  %127 = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %126, i64 1
  %tailaddr16 = bitcast %Ts28__ContiguousArrayStorageBaseC* %127 to %TSnySiG*
  %.lowerBound17._value = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr16, i64 %118, i32 0, i32 0
  store i64 %25, i64* %.lowerBound17._value, align 8
  %.upperBound18._value = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr16, i64 %118, i32 1, i32 0
  store i64 %107, i64* %.upperBound18._value, align 8
  %.not156 = icmp eq i64 %118, 0
  br i1 %.not156, label %.loopexit, label %thread-pre-split

thread-pre-split:                                 ; preds = %125
  %.lowerBound47._value.phi.trans.insert = bitcast %Ts28__ContiguousArrayStorageBaseC* %127 to i64*
  %128 = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %126, i64 1, i32 0, i32 1
  %129 = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %126, i64 1, i32 0, i32 1
  %.lowerBound40._value.phi.trans.insert = bitcast %Ts28__ContiguousArrayStorageBaseC* %127 to i64*
  br label %130

130:                                              ; preds = %thread-pre-split, %279
  %131 = phi i64 [ %121, %thread-pre-split ], [ %280, %279 ]
  %132 = add nsw i64 %131, -1
  %133 = icmp ult i64 %131, 4
  br i1 %133, label %161, label %134

134:                                              ; preds = %130
  %135 = add nsw i64 %131, -4
  %.lowerBound22._value = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr16, i64 %135, i32 0, i32 0
  %136 = load i64, i64* %.lowerBound22._value, align 8
  %.upperBound23._value = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr16, i64 %135, i32 1, i32 0
  %137 = load i64, i64* %.upperBound23._value, align 8
  %138 = tail call { i64, i1 } @llvm.ssub.with.overflow.i64(i64 %137, i64 %136)
  %139 = extractvalue { i64, i1 } %138, 0
  %140 = extractvalue { i64, i1 } %138, 1
  br i1 %140, label %334, label %141, !prof !7

141:                                              ; preds = %134
  %142 = add nsw i64 %131, -3
  %.lowerBound24._value = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr16, i64 %142, i32 0, i32 0
  %143 = load i64, i64* %.lowerBound24._value, align 8
  %.upperBound25._value = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr16, i64 %142, i32 1, i32 0
  %144 = load i64, i64* %.upperBound25._value, align 8
  %145 = tail call { i64, i1 } @llvm.ssub.with.overflow.i64(i64 %144, i64 %143)
  %146 = extractvalue { i64, i1 } %145, 0
  %147 = extractvalue { i64, i1 } %145, 1
  br i1 %147, label %335, label %148, !prof !7

148:                                              ; preds = %141
  %149 = add nsw i64 %131, -2
  %.lowerBound26._value = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr16, i64 %149, i32 0, i32 0
  %150 = load i64, i64* %.lowerBound26._value, align 8
  %.upperBound27._value = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr16, i64 %149, i32 1, i32 0
  %151 = load i64, i64* %.upperBound27._value, align 8
  %152 = tail call { i64, i1 } @llvm.ssub.with.overflow.i64(i64 %151, i64 %150)
  %153 = extractvalue { i64, i1 } %152, 1
  br i1 %153, label %336, label %154, !prof !7

154:                                              ; preds = %148
  %155 = extractvalue { i64, i1 } %152, 0
  %156 = tail call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %146, i64 %155)
  %157 = extractvalue { i64, i1 } %156, 1
  br i1 %157, label %337, label %158, !prof !7

158:                                              ; preds = %154
  %159 = extractvalue { i64, i1 } %156, 0
  %160 = icmp slt i64 %159, %139
  br i1 %160, label %.thread, label %289

161:                                              ; preds = %130
  %.not157 = icmp eq i64 %131, 3
  br i1 %.not157, label %..thread_crit_edge, label %._crit_edge

..thread_crit_edge:                               ; preds = %161
  %.pre245 = load i64, i64* %129, align 8
  %.pre = load i64, i64* %.lowerBound40._value.phi.trans.insert, align 8
  %.pre249 = tail call { i64, i1 } @llvm.ssub.with.overflow.i64(i64 %.pre245, i64 %.pre)
  %.pre251 = extractvalue { i64, i1 } %.pre249, 0
  br label %.thread

.thread:                                          ; preds = %..thread_crit_edge, %158
  %.pre-phi252 = phi i64 [ %.pre251, %..thread_crit_edge ], [ %146, %158 ]
  %.pre-phi250 = phi { i64, i1 } [ %.pre249, %..thread_crit_edge ], [ %145, %158 ]
  %162 = extractvalue { i64, i1 } %.pre-phi250, 1
  br i1 %162, label %344, label %163, !prof !7

163:                                              ; preds = %.thread
  %164 = add nsw i64 %131, -2
  %.lowerBound42._value = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr16, i64 %164, i32 0, i32 0
  %165 = load i64, i64* %.lowerBound42._value, align 8
  %.upperBound43._value = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr16, i64 %164, i32 1, i32 0
  %166 = load i64, i64* %.upperBound43._value, align 8
  %167 = tail call { i64, i1 } @llvm.ssub.with.overflow.i64(i64 %166, i64 %165)
  %168 = extractvalue { i64, i1 } %167, 0
  %169 = extractvalue { i64, i1 } %167, 1
  br i1 %169, label %345, label %170, !prof !7

170:                                              ; preds = %163
  %.lowerBound44._value = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr16, i64 %132, i32 0, i32 0
  %171 = load i64, i64* %.lowerBound44._value, align 8
  %.upperBound45._value = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr16, i64 %132, i32 1, i32 0
  %172 = load i64, i64* %.upperBound45._value, align 8
  %173 = tail call { i64, i1 } @llvm.ssub.with.overflow.i64(i64 %172, i64 %171)
  %174 = extractvalue { i64, i1 } %173, 0
  %175 = extractvalue { i64, i1 } %173, 1
  br i1 %175, label %346, label %176, !prof !7

176:                                              ; preds = %170
  %177 = tail call { i64, i1 } @llvm.sadd.with.overflow.i64(i64 %168, i64 %174)
  %178 = extractvalue { i64, i1 } %177, 1
  br i1 %178, label %347, label %179, !prof !7

179:                                              ; preds = %176
  %180 = extractvalue { i64, i1 } %177, 0
  %181 = icmp slt i64 %180, %.pre-phi252
  br i1 %181, label %.thread155, label %287

._crit_edge:                                      ; preds = %161
  %.pre246 = load i64, i64* %.lowerBound47._value.phi.trans.insert, align 8
  %.pre247 = load i64, i64* %128, align 8
  %.pre253 = tail call { i64, i1 } @llvm.ssub.with.overflow.i64(i64 %.pre247, i64 %.pre246)
  %.pre255 = extractvalue { i64, i1 } %.pre253, 0
  br label %.thread155

.thread155:                                       ; preds = %179, %._crit_edge
  %.pre-phi256 = phi i64 [ %.pre255, %._crit_edge ], [ %168, %179 ]
  %.pre-phi254 = phi { i64, i1 } [ %.pre253, %._crit_edge ], [ %167, %179 ]
  %182 = extractvalue { i64, i1 } %.pre-phi254, 1
  br i1 %182, label %348, label %183, !prof !7

183:                                              ; preds = %.thread155
  %.lowerBound49._value = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr16, i64 %132, i32 0, i32 0
  %184 = load i64, i64* %.lowerBound49._value, align 8
  %.upperBound50._value = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr16, i64 %132, i32 1, i32 0
  %185 = load i64, i64* %.upperBound50._value, align 8
  %186 = tail call { i64, i1 } @llvm.ssub.with.overflow.i64(i64 %185, i64 %184)
  %187 = extractvalue { i64, i1 } %186, 1
  br i1 %187, label %349, label %188, !prof !7

188:                                              ; preds = %183
  %189 = extractvalue { i64, i1 } %186, 0
  %190 = icmp slt i64 %189, %.pre-phi256
  br i1 %190, label %.loopexit, label %253

.loopexit:                                        ; preds = %279, %188, %125
  %191 = phi i64 [ 1, %125 ], [ %280, %279 ], [ %131, %188 ]
  %192 = icmp slt i64 %107, %90
  br i1 %192, label %24, label %.loopexit164

.loopexit164:                                     ; preds = %.loopexit, %..loopexit164_crit_edge
  %193 = phi i8* [ bitcast (%struct.HeapMetadata** getelementptr inbounds (%struct._SwiftEmptyArrayStorage, %struct._SwiftEmptyArrayStorage* @_swiftEmptyArrayStorage, i64 1, i32 0, i32 0) to i8*), %..loopexit164_crit_edge ], [ %21, %.loopexit ]
  %194 = phi %Ts28__ContiguousArrayStorageBaseC* [ bitcast (%struct._SwiftEmptyArrayStorage* @_swiftEmptyArrayStorage to %Ts28__ContiguousArrayStorageBaseC*), %..loopexit164_crit_edge ], [ %22, %.loopexit ]
  %195 = phi i64 [ %.pre248, %..loopexit164_crit_edge ], [ %191, %.loopexit ]
  %196 = phi %Ts28__ContiguousArrayStorageBaseC* [ bitcast (%struct._SwiftEmptyArrayStorage* @_swiftEmptyArrayStorage to %Ts28__ContiguousArrayStorageBaseC*), %..loopexit164_crit_edge ], [ %126, %.loopexit ]
  %197 = icmp ugt i64 %195, 1
  br i1 %197, label %198, label %.loopexit301

198:                                              ; preds = %.loopexit164
  %199 = bitcast %TSrySJG* %0 to i64*
  %200 = load i64, i64* %199, align 8
  %201 = icmp eq i64 %200, 0
  %202 = inttoptr i64 %200 to %TSJ*
  br label %203

203:                                              ; preds = %236, %198
  %204 = phi i64 [ %195, %198 ], [ %237, %236 ]
  %205 = phi %Ts28__ContiguousArrayStorageBaseC* [ %196, %198 ], [ %231, %236 ]
  %206 = add nsw i64 %204, -1
  %207 = add nsw i64 %204, -2
  %208 = icmp ult i64 %204, 2
  br i1 %208, label %328, label %209, !prof !7

209:                                              ; preds = %203
  %210 = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %205, i64 1
  %tailaddr3 = bitcast %Ts28__ContiguousArrayStorageBaseC* %210 to %TSnySiG*
  %.lowerBound._value = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr3, i64 %207, i32 0, i32 0
  %211 = load i64, i64* %.lowerBound._value, align 8
  %.upperBound._value = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr3, i64 %206, i32 1, i32 0
  %212 = load i64, i64* %.upperBound._value, align 8
  br i1 %201, label %329, label %213

213:                                              ; preds = %209
  %.lowerBound4._value = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr3, i64 %206, i32 0, i32 0
  %214 = load i64, i64* %.lowerBound4._value, align 8
  %215 = getelementptr inbounds %TSJ, %TSJ* %202, i64 %211
  %216 = bitcast %TSJ* %215 to i8*
  %217 = getelementptr inbounds %TSJ, %TSJ* %202, i64 %214
  %218 = bitcast %TSJ* %217 to i8*
  %219 = getelementptr inbounds %TSJ, %TSJ* %202, i64 %212
  %220 = bitcast %TSJ* %219 to i8*
  %221 = tail call swiftcc i1 @"$ss6_merge3low3mid4high6buffer2bySbSpyxG_A3GSbx_xtKXEtKlFSJ_Tg554$sSTsSL7ElementRpzrlE6sortedSayABGyFSbAB_ABtcfu_SS_TG5SJXMTTf1nnnnc_n"(i8* nonnull %216, i8* nonnull %218, i8* nonnull %220, i8* nonnull %193, %swift.type* %1, %swift.refcounted* swiftself undef, %swift.error** noalias nocapture nonnull swifterror dereferenceable(8) %3)
  %222 = load %swift.error*, %swift.error** %3, align 8
  %.not144 = icmp eq %swift.error* %222, null
  br i1 %.not144, label %223, label %.loopexit300

223:                                              ; preds = %213
  %224 = icmp slt i64 %212, %211
  br i1 %224, label %330, label %225, !prof !7

225:                                              ; preds = %223
  %226 = getelementptr %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %205, i64 0, i32 0
  %227 = tail call zeroext i1 @swift_isUniquelyReferenced_nonNull_native(%swift.refcounted* %226) #16
  br i1 %227, label %230, label %228

228:                                              ; preds = %225
  %229 = tail call swiftcc %Ts28__ContiguousArrayStorageBaseC* @"$ss22_ContiguousArrayBufferV20_consumeAndCreateNewAByxGyFSnySiG_Tgq5"(%Ts28__ContiguousArrayStorageBaseC* nonnull %205)
  br label %230

230:                                              ; preds = %225, %228
  %231 = phi %Ts28__ContiguousArrayStorageBaseC* [ %229, %228 ], [ %205, %225 ]
  %._storage6.count._value = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %231, i64 0, i32 1, i32 0, i32 0, i32 0
  %232 = load i64, i64* %._storage6.count._value, align 8, !range !6
  %.not145 = icmp ult i64 %207, %232
  br i1 %.not145, label %233, label %331, !prof !8

233:                                              ; preds = %230
  %234 = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %231, i64 1
  %tailaddr7 = bitcast %Ts28__ContiguousArrayStorageBaseC* %234 to %TSnySiG*
  %.lowerBound8._value = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr7, i64 %207, i32 0, i32 0
  store i64 %211, i64* %.lowerBound8._value, align 8
  %.upperBound9._value = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr7, i64 %207, i32 1, i32 0
  store i64 %212, i64* %.upperBound9._value, align 8
  %235 = load i64, i64* %._storage6.count._value, align 8, !range !6
  %.not146 = icmp ugt i64 %204, %235
  br i1 %.not146, label %332, label %236, !prof !7

236:                                              ; preds = %233
  %237 = add nsw i64 %235, -1
  %238 = sub nsw i64 %237, %206
  %239 = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr7, i64 %204
  %240 = bitcast %TSnySiG* %239 to i8*
  %241 = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr7, i64 %206
  %242 = bitcast %TSnySiG* %241 to i8*
  %243 = shl nuw i64 %238, 4
  tail call void @llvm.memmove.p0i8.p0i8.i64(i8* nonnull align 8 %242, i8* nonnull align 8 %240, i64 %243, i1 false)
  store i64 %237, i64* %._storage6.count._value, align 8
  %244 = icmp ugt i64 %235, 2
  br i1 %244, label %203, label %.loopexit301

.loopexit301:                                     ; preds = %236, %.loopexit164
  %.lcssa273.sink = phi %Ts28__ContiguousArrayStorageBaseC* [ %196, %.loopexit164 ], [ %231, %236 ]
  %245 = getelementptr %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %.lcssa273.sink, i64 0, i32 0
  tail call void @swift_release(%swift.refcounted* %245) #4
  %._storage1.count._value = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %194, i64 0, i32 1, i32 0, i32 0, i32 0
  store i64 0, i64* %._storage1.count._value, align 8
  %246 = getelementptr %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %194, i64 0, i32 0
  tail call void @swift_release(%swift.refcounted* %246) #4
  br label %common.ret

common.ret:                                       ; preds = %324, %14, %.loopexit301, %251
  ret void

.loopexit300:                                     ; preds = %262, %213
  %.lcssa293.sink = phi %Ts28__ContiguousArrayStorageBaseC* [ %205, %213 ], [ %126, %262 ]
  %247 = phi %Ts28__ContiguousArrayStorageBaseC* [ %194, %213 ], [ %22, %262 ]
  %248 = phi %swift.error* [ %222, %213 ], [ %272, %262 ]
  %249 = getelementptr %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %.lcssa293.sink, i64 0, i32 0
  tail call void @swift_release(%swift.refcounted* %249) #4
  %._storage5.count._value = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %247, i64 0, i32 1, i32 0, i32 0, i32 0
  store i64 0, i64* %._storage5.count._value, align 8
  %250 = getelementptr %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %247, i64 0, i32 0
  tail call void @swift_release(%swift.refcounted* %250) #4
  br label %251

251:                                              ; preds = %324, %.loopexit300
  %252 = phi %swift.error* [ %248, %.loopexit300 ], [ %325, %324 ]
  store %swift.error* %252, %swift.error** %3, align 8
  br label %common.ret

253:                                              ; preds = %294, %287, %188
  %254 = phi i64 [ %132, %188 ], [ %.71, %287 ], [ %.72, %294 ]
  %255 = add nsw i64 %254, -1
  %.not148 = icmp ult i64 %255, %131
  br i1 %.not148, label %256, label %339, !prof !8

256:                                              ; preds = %253
  %.lowerBound31._value = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr16, i64 %255, i32 0, i32 0
  %257 = load i64, i64* %.lowerBound31._value, align 8
  %258 = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr16, i64 %254
  %.upperBound33._value = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr16, i64 %254, i32 1, i32 0
  %259 = load i64, i64* %.upperBound33._value, align 8
  %260 = load i64, i64* %23, align 8
  %261 = icmp eq i64 %260, 0
  br i1 %261, label %340, label %262

262:                                              ; preds = %256
  %.lowerBound32._value = getelementptr inbounds %TSnySiG, %TSnySiG* %258, i64 0, i32 0, i32 0
  %263 = load i64, i64* %.lowerBound32._value, align 8
  %264 = inttoptr i64 %260 to %TSJ*
  %265 = getelementptr inbounds %TSJ, %TSJ* %264, i64 %257
  %266 = bitcast %TSJ* %265 to i8*
  %267 = getelementptr inbounds %TSJ, %TSJ* %264, i64 %263
  %268 = bitcast %TSJ* %267 to i8*
  %269 = getelementptr inbounds %TSJ, %TSJ* %264, i64 %259
  %270 = bitcast %TSJ* %269 to i8*
  %271 = tail call swiftcc i1 @"$ss6_merge3low3mid4high6buffer2bySbSpyxG_A3GSbx_xtKXEtKlFSJ_Tg554$sSTsSL7ElementRpzrlE6sortedSayABGyFSbAB_ABtcfu_SS_TG5SJXMTTf1nnnnc_n"(i8* nonnull %266, i8* nonnull %268, i8* nonnull %270, i8* nonnull %21, %swift.type* %1, %swift.refcounted* swiftself undef, %swift.error** noalias nocapture nonnull swifterror dereferenceable(8) %3)
  %272 = load %swift.error*, %swift.error** %3, align 8
  %.not150 = icmp eq %swift.error* %272, null
  br i1 %.not150, label %273, label %.loopexit300

273:                                              ; preds = %262
  %274 = icmp slt i64 %259, %257
  br i1 %274, label %341, label %275, !prof !7

275:                                              ; preds = %273
  %276 = load i64, i64* %._storage15.count._value, align 8, !range !6
  %.not151 = icmp ult i64 %255, %276
  br i1 %.not151, label %277, label %342, !prof !8

277:                                              ; preds = %275
  store i64 %257, i64* %.lowerBound31._value, align 8
  %.upperBound37._value = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr16, i64 %255, i32 1, i32 0
  store i64 %259, i64* %.upperBound37._value, align 8
  %278 = load i64, i64* %._storage15.count._value, align 8, !range !6
  %.not152 = icmp ult i64 %254, %278
  br i1 %.not152, label %279, label %343, !prof !8

279:                                              ; preds = %277
  %280 = add nsw i64 %278, -1
  %281 = sub nsw i64 %280, %254
  %282 = getelementptr inbounds %TSnySiG, %TSnySiG* %258, i64 1
  %283 = bitcast %TSnySiG* %282 to i8*
  %284 = bitcast %TSnySiG* %258 to i8*
  %285 = shl nuw i64 %281, 4
  tail call void @llvm.memmove.p0i8.p0i8.i64(i8* nonnull align 8 %284, i8* nonnull align 8 %283, i64 %285, i1 false)
  store i64 %280, i64* %._storage15.count._value, align 8
  %286 = icmp ugt i64 %278, 2
  br i1 %286, label %130, label %.loopexit

287:                                              ; preds = %179
  %288 = icmp slt i64 %.pre-phi252, %174
  %.71 = select i1 %288, i64 %164, i64 %132
  br label %253

289:                                              ; preds = %158
  %.lowerBound28._value = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr16, i64 %132, i32 0, i32 0
  %290 = load i64, i64* %.lowerBound28._value, align 8
  %.upperBound29._value = getelementptr inbounds %TSnySiG, %TSnySiG* %tailaddr16, i64 %132, i32 1, i32 0
  %291 = load i64, i64* %.upperBound29._value, align 8
  %292 = tail call { i64, i1 } @llvm.ssub.with.overflow.i64(i64 %291, i64 %290)
  %293 = extractvalue { i64, i1 } %292, 1
  br i1 %293, label %338, label %294, !prof !7

294:                                              ; preds = %289
  %295 = extractvalue { i64, i1 } %292, 0
  %296 = icmp slt i64 %146, %295
  %.72 = select i1 %296, i64 %149, i64 %132
  br label %253

.preheader:                                       ; preds = %105, %321
  %297 = phi i64 [ %322, %321 ], [ %89, %105 ]
  br label %298

298:                                              ; preds = %315, %.preheader
  %299 = phi i64 [ %297, %.preheader ], [ %300, %315 ]
  %300 = add i64 %299, -1
  %301 = load i64, i64* %23, align 8
  %302 = inttoptr i64 %301 to %TSJ*
  %303 = getelementptr inbounds %TSJ, %TSJ* %302, i64 %299
  %._str._guts._object._countAndFlagsBits._value = getelementptr inbounds %TSJ, %TSJ* %303, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
  %304 = load i64, i64* %._str._guts._object._countAndFlagsBits._value, align 8
  %._str._guts._object._object = getelementptr inbounds %TSJ, %TSJ* %302, i64 %299, i32 0, i32 0, i32 0, i32 1
  %305 = load %swift.bridge*, %swift.bridge** %._str._guts._object._object, align 8
  %306 = getelementptr inbounds %TSJ, %TSJ* %302, i64 %300
  %._str51._guts._object._countAndFlagsBits._value = getelementptr inbounds %TSJ, %TSJ* %306, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
  %307 = load i64, i64* %._str51._guts._object._countAndFlagsBits._value, align 8
  %._str51._guts._object._object = getelementptr inbounds %TSJ, %TSJ* %302, i64 %300, i32 0, i32 0, i32 0, i32 1
  %308 = load %swift.bridge*, %swift.bridge** %._str51._guts._object._object, align 8
  %309 = icmp eq i64 %304, %307
  %310 = icmp eq %swift.bridge* %305, %308
  %or.cond154 = select i1 %309, i1 %310, i1 false
  br i1 %or.cond154, label %321, label %311

311:                                              ; preds = %298
  %312 = tail call swiftcc i1 @"$ss27_stringCompareWithSmolCheck__9expectingSbs11_StringGutsV_ADs01_G16ComparisonResultOtF"(i64 %304, %swift.bridge* %305, i64 %307, %swift.bridge* %308, i8 1)
  br i1 %312, label %313, label %321

313:                                              ; preds = %311
  %314 = icmp eq i64 %301, 0
  br i1 %314, label %353, label %315

315:                                              ; preds = %313
  %316 = load i64, i64* %._str._guts._object._countAndFlagsBits._value, align 8
  %317 = load %swift.bridge*, %swift.bridge** %._str._guts._object._object, align 8
  %318 = bitcast %TSJ* %306 to i8*
  %319 = bitcast %TSJ* %303 to i8*
  tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* noundef nonnull align 8 dereferenceable(16) %319, i8* noundef nonnull align 8 dereferenceable(16) %318, i64 16, i1 false)
  store i64 %316, i64* %._str51._guts._object._countAndFlagsBits._value, align 8
  store %swift.bridge* %317, %swift.bridge** %._str51._guts._object._object, align 8
  %320 = icmp eq i64 %300, %25
  br i1 %320, label %321, label %298

321:                                              ; preds = %298, %315, %311
  %322 = add i64 %297, 1
  %323 = icmp eq i64 %322, %103
  br i1 %323, label %.loopexit158, label %.preheader

324:                                              ; preds = %14
  tail call swiftcc void @"$sSMsSKRzrlE14_insertionSort6within9sortedEnd2byySny5IndexSlQzG_AFSb7ElementSTQz_AItKXEtKFSrySJG_Tg508$sSTsSL7H39RpzrlE6sortedSayABGyFSbAB_ABtcfu_SS_TG5SJXMTTf1nncn_n"(i64 0, i64 %4, i64 1, %TSrySJG* nocapture nonnull dereferenceable(16) %0, %swift.type* %1, %swift.refcounted* swiftself undef, %swift.error** noalias nocapture nonnull swifterror dereferenceable(8) %3)
  %325 = load %swift.error*, %swift.error** %3, align 8
  %.not = icmp eq %swift.error* %325, null
  br i1 %.not, label %common.ret, label %251

326:                                              ; preds = %12
  tail call void asm sideeffect "", "n"(i32 0) #4
  tail call void @llvm.trap()
  unreachable

327:                                              ; preds = %7
  tail call void asm sideeffect "", "n"(i32 1) #4
  tail call void @llvm.trap()
  unreachable

328:                                              ; preds = %203
  tail call void asm sideeffect "", "n"(i32 4) #4
  tail call void @llvm.trap()
  unreachable

329:                                              ; preds = %209
  tail call void asm sideeffect "", "n"(i32 6) #4
  tail call void @llvm.trap()
  unreachable

330:                                              ; preds = %223
  tail call void asm sideeffect "", "n"(i32 7) #4
  tail call void @llvm.trap()
  unreachable

331:                                              ; preds = %230
  tail call void asm sideeffect "", "n"(i32 8) #4
  tail call void @llvm.trap()
  unreachable

332:                                              ; preds = %233
  tail call void asm sideeffect "", "n"(i32 9) #4
  tail call void @llvm.trap()
  unreachable

333:                                              ; preds = %.loopexit158
  tail call void asm sideeffect "", "n"(i32 12) #4
  tail call void @llvm.trap()
  unreachable

334:                                              ; preds = %134
  tail call void asm sideeffect "", "n"(i32 15) #4
  tail call void @llvm.trap()
  unreachable

335:                                              ; preds = %141
  tail call void asm sideeffect "", "n"(i32 17) #4
  tail call void @llvm.trap()
  unreachable

336:                                              ; preds = %148
  tail call void asm sideeffect "", "n"(i32 19) #4
  tail call void @llvm.trap()
  unreachable

337:                                              ; preds = %154
  tail call void asm sideeffect "", "n"(i32 20) #4
  tail call void @llvm.trap()
  unreachable

338:                                              ; preds = %289
  tail call void asm sideeffect "", "n"(i32 23) #4
  tail call void @llvm.trap()
  unreachable

339:                                              ; preds = %253
  tail call void asm sideeffect "", "n"(i32 25) #4
  tail call void @llvm.trap()
  unreachable

340:                                              ; preds = %256
  tail call void asm sideeffect "", "n"(i32 27) #4
  tail call void @llvm.trap()
  unreachable

341:                                              ; preds = %273
  tail call void asm sideeffect "", "n"(i32 28) #4
  tail call void @llvm.trap()
  unreachable

342:                                              ; preds = %275
  tail call void asm sideeffect "", "n"(i32 29) #4
  tail call void @llvm.trap()
  unreachable

343:                                              ; preds = %277
  tail call void asm sideeffect "", "n"(i32 30) #4
  tail call void @llvm.trap()
  unreachable

344:                                              ; preds = %.thread
  tail call void asm sideeffect "", "n"(i32 34) #4
  tail call void @llvm.trap()
  unreachable

345:                                              ; preds = %163
  tail call void asm sideeffect "", "n"(i32 36) #4
  tail call void @llvm.trap()
  unreachable

346:                                              ; preds = %170
  tail call void asm sideeffect "", "n"(i32 38) #4
  tail call void @llvm.trap()
  unreachable

347:                                              ; preds = %176
  tail call void asm sideeffect "", "n"(i32 39) #4
  tail call void @llvm.trap()
  unreachable

348:                                              ; preds = %.thread155
  tail call void asm sideeffect "", "n"(i32 44) #4
  tail call void @llvm.trap()
  unreachable

349:                                              ; preds = %183
  tail call void asm sideeffect "", "n"(i32 46) #4
  tail call void @llvm.trap()
  unreachable

350:                                              ; preds = %92
  tail call void asm sideeffect "", "n"(i32 47) #4
  tail call void @llvm.trap()
  unreachable

351:                                              ; preds = %98
  tail call void asm sideeffect "", "n"(i32 48) #4
  tail call void @llvm.trap()
  unreachable

352:                                              ; preds = %101
  tail call void asm sideeffect "", "n"(i32 49) #4
  tail call void @llvm.trap()
  unreachable

353:                                              ; preds = %313
  tail call void asm sideeffect "", "n"(i32 50) #4
  tail call void @llvm.trap()
  unreachable

354:                                              ; preds = %.loopexit162
  tail call void asm sideeffect "", "n"(i32 51) #4
  tail call void @llvm.trap()
  unreachable

355:                                              ; preds = %76
  tail call void asm sideeffect "", "n"(i32 52) #4
  tail call void @llvm.trap()
  unreachable
}

; Function Attrs: minsize optsize
declare swiftcc i64 @"$ss22_minimumMergeRunLengthyS2iF"(i64) local_unnamed_addr #0

; Function Attrs: minsize optsize
define linkonce_odr hidden swiftcc void @"$sSMsSKRzrlE14_insertionSort6within9sortedEnd2byySny5IndexSlQzG_AFSb7ElementSTQz_AItKXEtKFSrySJG_Tg508$sSTsSL7H39RpzrlE6sortedSayABGyFSbAB_ABtcfu_SS_TG5SJXMTTf1nncn_n"(i64 %0, i64 %1, i64 %2, %TSrySJG* nocapture dereferenceable(16) %3, %swift.type* %4, %swift.refcounted* swiftself %5, %swift.error** noalias nocapture swifterror dereferenceable(8) %6) local_unnamed_addr #0 {
entry:
  %7 = icmp eq i64 %2, %1
  br i1 %7, label %.loopexit, label %.preheader

.preheader:                                       ; preds = %entry
  %8 = bitcast %TSrySJG* %3 to i64*
  br label %9

.loopexit:                                        ; preds = %34, %entry
  ret void

9:                                                ; preds = %.preheader, %34
  %10 = phi i64 [ %35, %34 ], [ %2, %.preheader ]
  br label %11

11:                                               ; preds = %28, %9
  %12 = phi i64 [ %10, %9 ], [ %13, %28 ]
  %13 = add i64 %12, -1
  %14 = load i64, i64* %8, align 8
  %15 = inttoptr i64 %14 to %TSJ*
  %16 = getelementptr inbounds %TSJ, %TSJ* %15, i64 %12
  %._str._guts._object._countAndFlagsBits._value = getelementptr inbounds %TSJ, %TSJ* %16, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
  %17 = load i64, i64* %._str._guts._object._countAndFlagsBits._value, align 8
  %._str._guts._object._object = getelementptr inbounds %TSJ, %TSJ* %15, i64 %12, i32 0, i32 0, i32 0, i32 1
  %18 = load %swift.bridge*, %swift.bridge** %._str._guts._object._object, align 8
  %19 = getelementptr inbounds %TSJ, %TSJ* %15, i64 %13
  %._str1._guts._object._countAndFlagsBits._value = getelementptr inbounds %TSJ, %TSJ* %19, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
  %20 = load i64, i64* %._str1._guts._object._countAndFlagsBits._value, align 8
  %._str1._guts._object._object = getelementptr inbounds %TSJ, %TSJ* %15, i64 %13, i32 0, i32 0, i32 0, i32 1
  %21 = load %swift.bridge*, %swift.bridge** %._str1._guts._object._object, align 8
  %22 = icmp eq i64 %17, %20
  %23 = icmp eq %swift.bridge* %18, %21
  %or.cond = select i1 %22, i1 %23, i1 false
  br i1 %or.cond, label %34, label %24

24:                                               ; preds = %11
  %25 = tail call swiftcc i1 @"$ss27_stringCompareWithSmolCheck__9expectingSbs11_StringGutsV_ADs01_G16ComparisonResultOtF"(i64 %17, %swift.bridge* %18, i64 %20, %swift.bridge* %21, i8 1)
  br i1 %25, label %26, label %34

26:                                               ; preds = %24
  %27 = icmp eq i64 %14, 0
  br i1 %27, label %37, label %28

28:                                               ; preds = %26
  %29 = load i64, i64* %._str._guts._object._countAndFlagsBits._value, align 8
  %30 = load %swift.bridge*, %swift.bridge** %._str._guts._object._object, align 8
  %31 = bitcast %TSJ* %19 to i8*
  %32 = bitcast %TSJ* %16 to i8*
  tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* noundef nonnull align 8 dereferenceable(16) %32, i8* noundef nonnull align 8 dereferenceable(16) %31, i64 16, i1 false)
  store i64 %29, i64* %._str1._guts._object._countAndFlagsBits._value, align 8
  store %swift.bridge* %30, %swift.bridge** %._str1._guts._object._object, align 8
  %33 = icmp eq i64 %13, %0
  br i1 %33, label %34, label %11

34:                                               ; preds = %11, %28, %24
  %35 = add i64 %10, 1
  %36 = icmp eq i64 %35, %1
  br i1 %36, label %.loopexit, label %9

37:                                               ; preds = %26
  tail call void asm sideeffect "", "n"(i32 0) #4
  tail call void @llvm.trap()
  unreachable
}

; Function Attrs: minsize optsize
define linkonce_odr hidden swiftcc i1 @"$ss6_merge3low3mid4high6buffer2bySbSpyxG_A3GSbx_xtKXEtKlFSJ_Tg554$sSTsSL7ElementRpzrlE6sortedSayABGyFSbAB_ABtcfu_SS_TG5SJXMTTf1nnnnc_n"(i8* %0, i8* %1, i8* %2, i8* %3, %swift.type* %4, %swift.refcounted* swiftself %5, %swift.error** noalias nocapture swifterror dereferenceable(8) %6) local_unnamed_addr #0 {
entry:
  %7 = ptrtoint i8* %1 to i64
  %8 = ptrtoint i8* %0 to i64
  %9 = sub i64 %7, %8
  %10 = sdiv i64 %9, 16
  %11 = ptrtoint i8* %2 to i64
  %12 = sub i64 %11, %7
  %13 = sdiv i64 %12, 16
  %14 = icmp slt i64 %10, %13
  br i1 %14, label %15, label %27

15:                                               ; preds = %entry
  %16 = bitcast i8* %0 to %TSJ*
  %17 = getelementptr inbounds %TSJ, %TSJ* %16, i64 %10
  %18 = bitcast %TSJ* %17 to i8*
  %19 = icmp ugt i8* %18, %3
  %20 = icmp eq i8* %3, %0
  %or.cond5.i = select i1 %20, i1 %19, i1 false
  br i1 %or.cond5.i, label %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit", label %.sink.split.i

.sink.split.i:                                    ; preds = %15
  %21 = shl nuw nsw i64 %10, 4
  tail call void @llvm.memmove.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %0, i64 %21, i1 false)
  br label %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit"

"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit": ; preds = %15, %.sink.split.i
  %22 = bitcast i8* %3 to %TSJ*
  %23 = getelementptr inbounds %TSJ, %TSJ* %22, i64 %10
  %24 = bitcast %TSJ* %23 to i8*
  %25 = icmp ugt i8* %24, %3
  %26 = icmp ult i8* %1, %2
  %or.cond = select i1 %25, i1 %26, i1 false
  br i1 %or.cond, label %.preheader, label %.loopexit

27:                                               ; preds = %entry
  %28 = bitcast i8* %1 to %TSJ*
  %29 = getelementptr inbounds %TSJ, %TSJ* %28, i64 %13
  %30 = bitcast %TSJ* %29 to i8*
  %31 = icmp ugt i8* %30, %3
  %32 = icmp eq i8* %3, %1
  %or.cond5.i46 = select i1 %32, i1 %31, i1 false
  br i1 %or.cond5.i46, label %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit48", label %.sink.split.i47

.sink.split.i47:                                  ; preds = %27
  %33 = shl nuw nsw i64 %13, 4
  tail call void @llvm.memmove.p0i8.p0i8.i64(i8* align 8 %3, i8* align 8 %1, i64 %33, i1 false)
  br label %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit48"

"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit48": ; preds = %27, %.sink.split.i47
  %34 = bitcast i8* %3 to %TSJ*
  %35 = getelementptr inbounds %TSJ, %TSJ* %34, i64 %13
  %36 = bitcast %TSJ* %35 to i8*
  %37 = icmp ugt i8* %36, %3
  %38 = icmp ult i8* %0, %1
  %or.cond17 = select i1 %37, i1 %38, i1 false
  br i1 %or.cond17, label %.preheader52, label %.loopexit

.preheader:                                       ; preds = %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit", %60
  %39 = phi i8* [ %61, %60 ], [ %3, %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit" ]
  %40 = phi i8* [ %63, %60 ], [ %0, %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit" ]
  %41 = phi i8* [ %62, %60 ], [ %1, %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit" ]
  %._str4._guts._object._countAndFlagsBits._value = bitcast i8* %41 to i64*
  %42 = load i64, i64* %._str4._guts._object._countAndFlagsBits._value, align 8
  %._str4._guts._object._object = getelementptr inbounds i8, i8* %41, i64 8
  %43 = bitcast i8* %._str4._guts._object._object to %swift.bridge**
  %44 = load %swift.bridge*, %swift.bridge** %43, align 8
  %._str5._guts._object._countAndFlagsBits._value = bitcast i8* %39 to i64*
  %45 = load i64, i64* %._str5._guts._object._countAndFlagsBits._value, align 8
  %._str5._guts._object._object = getelementptr inbounds i8, i8* %39, i64 8
  %46 = bitcast i8* %._str5._guts._object._object to %swift.bridge**
  %47 = load %swift.bridge*, %swift.bridge** %46, align 8
  %48 = icmp eq i64 %42, %45
  %49 = icmp eq %swift.bridge* %44, %47
  %or.cond44 = select i1 %48, i1 %49, i1 false
  br i1 %or.cond44, label %56, label %50

50:                                               ; preds = %.preheader
  %51 = tail call swiftcc i1 @"$ss27_stringCompareWithSmolCheck__9expectingSbs11_StringGutsV_ADs01_G16ComparisonResultOtF"(i64 %42, %swift.bridge* %44, i64 %45, %swift.bridge* %47, i8 1)
  br i1 %51, label %52, label %56

52:                                               ; preds = %50
  %53 = getelementptr inbounds i8, i8* %41, i64 16
  %54 = icmp ult i8* %40, %53
  %55 = icmp eq i8* %40, %41
  %or.cond70 = select i1 %55, i1 %54, i1 false
  br i1 %or.cond70, label %60, label %.sink.split

56:                                               ; preds = %.preheader, %50
  %57 = getelementptr inbounds i8, i8* %39, i64 16
  %58 = icmp ult i8* %40, %57
  %59 = icmp eq i8* %40, %39
  %or.cond71 = select i1 %59, i1 %58, i1 false
  br i1 %or.cond71, label %60, label %.sink.split

.sink.split:                                      ; preds = %52, %56
  %.sink = phi i8* [ %39, %56 ], [ %41, %52 ]
  %.ph = phi i8* [ %57, %56 ], [ %39, %52 ]
  %.ph65 = phi i8* [ %41, %56 ], [ %53, %52 ]
  tail call void @llvm.memmove.p0i8.p0i8.i64(i8* noundef nonnull align 8 dereferenceable(16) %40, i8* noundef nonnull align 8 dereferenceable(16) %.sink, i64 16, i1 false)
  br label %60

60:                                               ; preds = %56, %52, %.sink.split
  %61 = phi i8* [ %.ph, %.sink.split ], [ %39, %52 ], [ %57, %56 ]
  %62 = phi i8* [ %.ph65, %.sink.split ], [ %53, %52 ], [ %41, %56 ]
  %63 = getelementptr inbounds i8, i8* %40, i64 16
  %64 = icmp ult i8* %61, %24
  %65 = icmp ult i8* %62, %2
  %or.cond13 = select i1 %64, i1 %65, i1 false
  br i1 %or.cond13, label %.preheader, label %.loopexit.loopexit

.loopexit.loopexit:                               ; preds = %60
  %.pre = bitcast i8* %61 to %TSJ*
  br label %.loopexit

.loopexit:                                        ; preds = %100, %.loopexit.loopexit, %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit48", %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit"
  %.pre-phi = phi %TSJ* [ %.pre, %.loopexit.loopexit ], [ %34, %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit48" ], [ %22, %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit" ], [ %34, %100 ]
  %66 = phi i8* [ %24, %.loopexit.loopexit ], [ %36, %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit48" ], [ %24, %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit" ], [ %101, %100 ]
  %67 = phi i8* [ %61, %.loopexit.loopexit ], [ %3, %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit48" ], [ %3, %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit" ], [ %3, %100 ]
  %68 = phi i8* [ %63, %.loopexit.loopexit ], [ %1, %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit48" ], [ %0, %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit" ], [ %102, %100 ]
  %69 = ptrtoint i8* %66 to i64
  %70 = ptrtoint i8* %67 to i64
  %71 = sub i64 %69, %70
  %72 = sdiv i64 %71, 16
  %73 = getelementptr inbounds %TSJ, %TSJ* %.pre-phi, i64 %72
  %74 = bitcast %TSJ* %73 to i8*
  %75 = icmp ult i8* %68, %74
  %76 = icmp eq i8* %68, %67
  %or.cond5.i49 = select i1 %76, i1 %75, i1 false
  br i1 %or.cond5.i49, label %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit51", label %.sink.split.i50

.sink.split.i50:                                  ; preds = %.loopexit
  %77 = shl nuw nsw i64 %72, 4
  tail call void @llvm.memmove.p0i8.p0i8.i64(i8* align 8 %68, i8* align 8 %67, i64 %77, i1 false)
  br label %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit51"

"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit51": ; preds = %.loopexit, %.sink.split.i50
  ret i1 true

.preheader52:                                     ; preds = %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit48", %100
  %78 = phi i8* [ %81, %100 ], [ %2, %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit48" ]
  %79 = phi i8* [ %101, %100 ], [ %36, %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit48" ]
  %80 = phi i8* [ %102, %100 ], [ %1, %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit48" ]
  %81 = getelementptr inbounds i8, i8* %78, i64 -16
  %82 = getelementptr inbounds i8, i8* %79, i64 -16
  %._str._guts._object._countAndFlagsBits._value = bitcast i8* %82 to i64*
  %83 = load i64, i64* %._str._guts._object._countAndFlagsBits._value, align 8
  %._str._guts._object._object = getelementptr inbounds i8, i8* %79, i64 -8
  %84 = bitcast i8* %._str._guts._object._object to %swift.bridge**
  %85 = load %swift.bridge*, %swift.bridge** %84, align 8
  %86 = getelementptr inbounds i8, i8* %80, i64 -16
  %._str1._guts._object._countAndFlagsBits._value = bitcast i8* %86 to i64*
  %87 = load i64, i64* %._str1._guts._object._countAndFlagsBits._value, align 8
  %._str1._guts._object._object = getelementptr inbounds i8, i8* %80, i64 -8
  %88 = bitcast i8* %._str1._guts._object._object to %swift.bridge**
  %89 = load %swift.bridge*, %swift.bridge** %88, align 8
  %90 = icmp eq i64 %83, %87
  %91 = icmp eq %swift.bridge* %85, %89
  %or.cond45 = select i1 %90, i1 %91, i1 false
  br i1 %or.cond45, label %97, label %92

92:                                               ; preds = %.preheader52
  %93 = tail call swiftcc i1 @"$ss27_stringCompareWithSmolCheck__9expectingSbs11_StringGutsV_ADs01_G16ComparisonResultOtF"(i64 %83, %swift.bridge* %85, i64 %87, %swift.bridge* %89, i8 1)
  br i1 %93, label %94, label %97

94:                                               ; preds = %92
  %95 = icmp ult i8* %81, %80
  %96 = icmp eq i8* %78, %80
  %or.cond72 = select i1 %96, i1 %95, i1 false
  br i1 %or.cond72, label %100, label %.sink.split66

97:                                               ; preds = %.preheader52, %92
  %98 = icmp ult i8* %81, %79
  %99 = icmp eq i8* %78, %79
  %or.cond73 = select i1 %99, i1 %98, i1 false
  br i1 %or.cond73, label %100, label %.sink.split66

.sink.split66:                                    ; preds = %94, %97
  %.sink69 = phi i8* [ %82, %97 ], [ %86, %94 ]
  %.ph67 = phi i8* [ %82, %97 ], [ %79, %94 ]
  %.ph68 = phi i8* [ %80, %97 ], [ %86, %94 ]
  tail call void @llvm.memmove.p0i8.p0i8.i64(i8* noundef nonnull align 8 dereferenceable(16) %81, i8* noundef nonnull align 8 dereferenceable(16) %.sink69, i64 16, i1 false)
  br label %100

100:                                              ; preds = %97, %94, %.sink.split66
  %101 = phi i8* [ %.ph67, %.sink.split66 ], [ %79, %94 ], [ %82, %97 ]
  %102 = phi i8* [ %.ph68, %.sink.split66 ], [ %86, %94 ], [ %80, %97 ]
  %103 = icmp ugt i8* %101, %3
  %104 = icmp ugt i8* %102, %0
  %or.cond21 = select i1 %103, i1 %104, i1 false
  br i1 %or.cond21, label %.preheader52, label %.loopexit
}

; Function Attrs: minsize noinline optsize
define linkonce_odr hidden swiftcc %Ts28__ContiguousArrayStorageBaseC* @"$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSnySiG_Tgq5"(i1 %0, i64 %1, i1 %2, %Ts28__ContiguousArrayStorageBaseC* %3) local_unnamed_addr #3 {
entry:
  br i1 %2, label %4, label %14

4:                                                ; preds = %entry
  %._storage._capacityAndFlags._value = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %3, i64 0, i32 1, i32 0, i32 1, i32 0
  %5 = load i64, i64* %._storage._capacityAndFlags._value, align 8
  %6 = lshr i64 %5, 1
  %7 = icmp slt i64 %6, %1
  br i1 %7, label %8, label %14

8:                                                ; preds = %4
  %9 = add nuw i64 %6, 4611686018427387904
  %10 = icmp slt i64 %9, 0
  br i1 %10, label %49, label %11, !prof !7

11:                                               ; preds = %8
  %12 = and i64 %5, -2
  %13 = tail call i64 @llvm.smax.i64(i64 %12, i64 %1)
  br label %14

14:                                               ; preds = %11, %4, %entry
  %15 = phi i64 [ %1, %entry ], [ %6, %4 ], [ %13, %11 ]
  %._storage.count._value = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %3, i64 0, i32 1, i32 0, i32 0, i32 0
  %16 = load i64, i64* %._storage.count._value, align 8, !range !6
  %17 = tail call i64 @llvm.smax.i64(i64 %15, i64 %16)
  %18 = icmp eq i64 %17, 0
  br i1 %18, label %29, label %19

19:                                               ; preds = %14
  %20 = tail call %swift.type* @__swift_instantiateConcreteTypeFromMangledName({ i32, i32 }* nonnull @"$ss23_ContiguousArrayStorageCySnySiGGMD") #14
  %21 = shl i64 %17, 4
  %22 = add i64 %21, 32
  %23 = tail call noalias %swift.refcounted* @swift_allocObject(%swift.type* %20, i64 %22, i64 7) #4
  %24 = bitcast %swift.refcounted* %23 to %Ts28__ContiguousArrayStorageBaseC*
  %25 = bitcast %swift.refcounted* %23 to i8*
  %call.i = tail call i64 @malloc_usable_size(i8* noundef %25) #17
  %gepdiff = add nsw i64 %call.i, -32
  %26 = sdiv i64 %gepdiff, 16
  %27 = shl nsw i64 %26, 1
  %28 = getelementptr inbounds %swift.refcounted, %swift.refcounted* %23, i64 1
  %._storage7.count._value = bitcast %swift.refcounted* %28 to i64*
  store i64 %16, i64* %._storage7.count._value, align 8
  %._storage7._capacityAndFlags = getelementptr inbounds %swift.refcounted, %swift.refcounted* %23, i64 1, i32 1
  store i64 %27, i64* %._storage7._capacityAndFlags, align 8
  br label %29

29:                                               ; preds = %14, %19
  %30 = phi %Ts28__ContiguousArrayStorageBaseC* [ %24, %19 ], [ bitcast (%struct._SwiftEmptyArrayStorage* @_swiftEmptyArrayStorage to %Ts28__ContiguousArrayStorageBaseC*), %14 ]
  %31 = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %30, i64 1
  br i1 %0, label %37, label %32

32:                                               ; preds = %29
  %33 = bitcast %Ts28__ContiguousArrayStorageBaseC* %31 to i8*
  %34 = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %3, i64 1
  %35 = bitcast %Ts28__ContiguousArrayStorageBaseC* %34 to i8*
  %36 = shl nuw i64 %16, 4
  tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 %33, i8* nonnull align 8 %35, i64 %36, i1 false)
  br label %47

37:                                               ; preds = %29
  %38 = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %3, i64 1
  %39 = bitcast %Ts28__ContiguousArrayStorageBaseC* %38 to %TSnySiG*
  %40 = getelementptr inbounds %TSnySiG, %TSnySiG* %39, i64 %16
  %41 = bitcast %Ts28__ContiguousArrayStorageBaseC* %31 to %TSnySiG*
  %42 = icmp ugt %TSnySiG* %40, %41
  %43 = icmp eq %Ts28__ContiguousArrayStorageBaseC* %30, %3
  %or.cond5.i = select i1 %43, i1 %42, i1 false
  br i1 %or.cond5.i, label %"$sSp14moveInitialize4from5countySpyxG_SitFSnySiG_Tgq5.exit", label %.sink.split.i

.sink.split.i:                                    ; preds = %37
  %44 = bitcast %Ts28__ContiguousArrayStorageBaseC* %38 to i8*
  %45 = bitcast %Ts28__ContiguousArrayStorageBaseC* %31 to i8*
  %46 = shl nuw i64 %16, 4
  tail call void @llvm.memmove.p0i8.p0i8.i64(i8* nonnull align 8 %45, i8* nonnull align 8 %44, i64 %46, i1 false)
  br label %"$sSp14moveInitialize4from5countySpyxG_SitFSnySiG_Tgq5.exit"

"$sSp14moveInitialize4from5countySpyxG_SitFSnySiG_Tgq5.exit": ; preds = %37, %.sink.split.i
  store i64 0, i64* %._storage.count._value, align 8
  br label %47

47:                                               ; preds = %"$sSp14moveInitialize4from5countySpyxG_SitFSnySiG_Tgq5.exit", %32
  %48 = getelementptr %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %3, i64 0, i32 0
  tail call void @swift_release(%swift.refcounted* %48) #4
  ret %Ts28__ContiguousArrayStorageBaseC* %30

49:                                               ; preds = %8
  tail call void asm sideeffect "", "n"(i32 0) #4
  tail call void @llvm.trap()
  unreachable
}

; Function Attrs: minsize noinline optsize
define linkonce_odr hidden swiftcc %Ts28__ContiguousArrayStorageBaseC* @"$ss22_ContiguousArrayBufferV20_consumeAndCreateNewAByxGyFSnySiG_Tgq5"(%Ts28__ContiguousArrayStorageBaseC* %0) local_unnamed_addr #3 {
entry:
  %._storage.count._value = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %0, i64 0, i32 1, i32 0, i32 0, i32 0
  %1 = load i64, i64* %._storage.count._value, align 8, !range !6
  %2 = tail call swiftcc %Ts28__ContiguousArrayStorageBaseC* @"$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSnySiG_Tgq5"(i1 false, i64 %1, i1 false, %Ts28__ContiguousArrayStorageBaseC* %0)
  ret %Ts28__ContiguousArrayStorageBaseC* %2
}

; Function Attrs: minsize noinline optsize
define linkonce_odr hidden swiftcc %Ts28__ContiguousArrayStorageBaseC* @"$ss22_ContiguousArrayBufferV20_consumeAndCreateNewAByxGyFSJ_Tg5"(%Ts28__ContiguousArrayStorageBaseC* %0) local_unnamed_addr #3 {
entry:
  %._storage.count._value = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %0, i64 0, i32 1, i32 0, i32 0, i32 0
  %1 = load i64, i64* %._storage.count._value, align 8, !range !6
  %2 = tail call swiftcc %Ts28__ContiguousArrayStorageBaseC* @"$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSJ_Tg5"(i1 false, i64 %1, i1 false, %Ts28__ContiguousArrayStorageBaseC* %0)
  ret %Ts28__ContiguousArrayStorageBaseC* %2
}

; Function Attrs: minsize noinline optsize
define linkonce_odr hidden swiftcc %Ts28__ContiguousArrayStorageBaseC* @"$ss22_ContiguousArrayBufferV20_consumeAndCreateNew14bufferIsUnique15minimumCapacity13growForAppendAByxGSb_SiSbtFSJ_Tg5"(i1 %0, i64 %1, i1 %2, %Ts28__ContiguousArrayStorageBaseC* %3) local_unnamed_addr #3 {
entry:
  br i1 %2, label %4, label %14

4:                                                ; preds = %entry
  %._storage._capacityAndFlags._value = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %3, i64 0, i32 1, i32 0, i32 1, i32 0
  %5 = load i64, i64* %._storage._capacityAndFlags._value, align 8
  %6 = lshr i64 %5, 1
  %7 = icmp slt i64 %6, %1
  br i1 %7, label %8, label %14

8:                                                ; preds = %4
  %9 = add nuw i64 %6, 4611686018427387904
  %10 = icmp slt i64 %9, 0
  br i1 %10, label %47, label %11, !prof !7

11:                                               ; preds = %8
  %12 = and i64 %5, -2
  %13 = tail call i64 @llvm.smax.i64(i64 %12, i64 %1)
  br label %14

14:                                               ; preds = %4, %11, %entry
  %15 = phi i64 [ %1, %entry ], [ %13, %11 ], [ %6, %4 ]
  %._storage.count._value = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %3, i64 0, i32 1, i32 0, i32 0, i32 0
  %16 = load i64, i64* %._storage.count._value, align 8, !range !6
  %17 = tail call i64 @llvm.smax.i64(i64 %15, i64 %16)
  %18 = icmp eq i64 %17, 0
  br i1 %18, label %29, label %19

19:                                               ; preds = %14
  %20 = tail call %swift.type* @__swift_instantiateConcreteTypeFromMangledName({ i32, i32 }* nonnull @"$ss23_ContiguousArrayStorageCySJGMD") #14
  %21 = shl i64 %17, 4
  %22 = add i64 %21, 32
  %23 = tail call noalias %swift.refcounted* @swift_allocObject(%swift.type* %20, i64 %22, i64 7) #4
  %24 = bitcast %swift.refcounted* %23 to %Ts28__ContiguousArrayStorageBaseC*
  %25 = bitcast %swift.refcounted* %23 to i8*
  %call.i = tail call i64 @malloc_usable_size(i8* noundef %25) #17
  %gepdiff = add nsw i64 %call.i, -32
  %26 = sdiv i64 %gepdiff, 16
  %27 = shl nsw i64 %26, 1
  %28 = getelementptr inbounds %swift.refcounted, %swift.refcounted* %23, i64 1
  %._storage7.count._value = bitcast %swift.refcounted* %28 to i64*
  store i64 %16, i64* %._storage7.count._value, align 8
  %._storage7._capacityAndFlags = getelementptr inbounds %swift.refcounted, %swift.refcounted* %23, i64 1, i32 1
  store i64 %27, i64* %._storage7._capacityAndFlags, align 8
  br label %29

29:                                               ; preds = %14, %19
  %30 = phi %Ts28__ContiguousArrayStorageBaseC* [ %24, %19 ], [ bitcast (%struct._SwiftEmptyArrayStorage* @_swiftEmptyArrayStorage to %Ts28__ContiguousArrayStorageBaseC*), %14 ]
  %31 = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %30, i64 1
  %32 = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %3, i64 1
  br i1 %0, label %33, label %42

33:                                               ; preds = %29
  %34 = bitcast %Ts28__ContiguousArrayStorageBaseC* %32 to %TSJ*
  %35 = getelementptr inbounds %TSJ, %TSJ* %34, i64 %16
  %36 = bitcast %Ts28__ContiguousArrayStorageBaseC* %31 to %TSJ*
  %37 = icmp ugt %TSJ* %35, %36
  %38 = icmp eq %Ts28__ContiguousArrayStorageBaseC* %30, %3
  %or.cond5.i = select i1 %38, i1 %37, i1 false
  br i1 %or.cond5.i, label %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit", label %.sink.split.i

.sink.split.i:                                    ; preds = %33
  %39 = bitcast %Ts28__ContiguousArrayStorageBaseC* %32 to i8*
  %40 = bitcast %Ts28__ContiguousArrayStorageBaseC* %31 to i8*
  %41 = shl nuw i64 %16, 4
  tail call void @llvm.memmove.p0i8.p0i8.i64(i8* nonnull align 8 %40, i8* nonnull align 8 %39, i64 %41, i1 false)
  br label %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit"

"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit": ; preds = %33, %.sink.split.i
  store i64 0, i64* %._storage.count._value, align 8
  br label %45

42:                                               ; preds = %29
  %43 = bitcast %Ts28__ContiguousArrayStorageBaseC* %31 to %swift.opaque*
  %44 = bitcast %Ts28__ContiguousArrayStorageBaseC* %32 to %swift.opaque*
  tail call void @swift_arrayInitWithCopy(%swift.opaque* nonnull %43, %swift.opaque* nonnull %44, i64 %16, %swift.type* nonnull @"$sSJN") #16
  br label %45

45:                                               ; preds = %"$sSp14moveInitialize4from5countySpyxG_SitFSJ_Tg5.exit", %42
  %46 = getelementptr %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %3, i64 0, i32 0
  tail call void @swift_release(%swift.refcounted* %46) #4
  ret %Ts28__ContiguousArrayStorageBaseC* %30

47:                                               ; preds = %8
  tail call void asm sideeffect "", "n"(i32 0) #4
  tail call void @llvm.trap()
  unreachable
}

; Function Attrs: minsize optsize
define linkonce_odr hidden swiftcc %Ts28__ContiguousArrayStorageBaseC* @"$ss32_copyCollectionToContiguousArrayys0dE0Vy7ElementQzGxSlRzlFSS_Tgq5"(i64 %0, %swift.bridge* %1) local_unnamed_addr #0 {
entry:
  %2 = alloca %TSS8IteratorV, align 8
  %3 = tail call swiftcc i64 @"$sSS5countSivg"(i64 %0, %swift.bridge* %1)
  %4 = icmp eq i64 %3, 0
  br i1 %4, label %14, label %5

5:                                                ; preds = %entry
  %6 = tail call swiftcc %Ts28__ContiguousArrayStorageBaseC* @"$ss22_ContiguousArrayBufferV19_uninitializedCount15minimumCapacityAByxGSi_SitcfCSJ_Tgq5"(i64 %3, i64 0)
  %7 = getelementptr inbounds %Ts28__ContiguousArrayStorageBaseC, %Ts28__ContiguousArrayStorageBaseC* %6, i64 1
  %8 = ptrtoint %Ts28__ContiguousArrayStorageBaseC* %7 to i64
  %9 = bitcast %TSS8IteratorV* %2 to i8*
  call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %9)
  %10 = tail call %swift.bridge* @swift_bridgeObjectRetain(%swift.bridge* returned %1) #4
  %11 = call swiftcc i64 @"$sSTsE21_copySequenceContents12initializing8IteratorQz_SitSry7ElementQzG_tFSS_Tgq5"(%TSS8IteratorV* noalias nocapture nonnull %2, i64 %8, i64 %3, i64 %0, %swift.bridge* %1)
  %.not = icmp eq i64 %11, %3
  br i1 %.not, label %12, label %16, !prof !8

12:                                               ; preds = %5
  %._guts._object._object = getelementptr inbounds %TSS8IteratorV, %TSS8IteratorV* %2, i64 0, i32 0, i32 0, i32 1
  %13 = load %swift.bridge*, %swift.bridge** %._guts._object._object, align 8
  tail call void @swift_bridgeObjectRelease(%swift.bridge* %13) #4
  call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %9)
  br label %14

14:                                               ; preds = %entry, %12
  %15 = phi %Ts28__ContiguousArrayStorageBaseC* [ %6, %12 ], [ bitcast (%struct._SwiftEmptyArrayStorage* @_swiftEmptyArrayStorage to %Ts28__ContiguousArrayStorageBaseC*), %entry ]
  ret %Ts28__ContiguousArrayStorageBaseC* %15

16:                                               ; preds = %5
  tail call void asm sideeffect "", "n"(i32 0) #4
  tail call void @llvm.trap()
  unreachable
}

; Function Attrs: nounwind
declare %swift.bridge* @swift_bridgeObjectRetain(%swift.bridge* returned) local_unnamed_addr #4

; Function Attrs: nounwind
declare void @swift_bridgeObjectRelease(%swift.bridge*) local_unnamed_addr #4

; Function Attrs: nounwind
declare void @swift_release(%swift.refcounted*) local_unnamed_addr #4

; Function Attrs: argmemonly mustprogress nocallback nofree nosync nounwind willreturn
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #2

; Function Attrs: minsize optsize
declare swiftcc { i64, %swift.bridge* } @"$sSSySSxcSTRzSJ7ElementRtzlufC"(%swift.opaque* noalias nocapture, %swift.type*, i8**) local_unnamed_addr #0

; Function Attrs: minsize mustprogress nofree noinline nounwind optsize readonly willreturn
define linkonce_odr hidden %swift.type* @__swift_instantiateConcreteTypeFromMangledName({ i32, i32 }* %0) local_unnamed_addr #5 {
entry:
  %1 = bitcast { i32, i32 }* %0 to i64*
  %2 = load atomic i64, i64* %1 monotonic, align 8
  %3 = icmp slt i64 %2, 0
  br i1 %3, label %7, label %4, !prof !7

4:                                                ; preds = %7, %entry
  %5 = phi i64 [ %2, %entry ], [ %15, %7 ]
  %6 = inttoptr i64 %5 to %swift.type*
  ret %swift.type* %6

7:                                                ; preds = %entry
  %8 = ashr i64 %2, 32
  %9 = sub nsw i64 0, %8
  %sext = shl i64 %2, 32
  %10 = ashr exact i64 %sext, 32
  %11 = ptrtoint { i32, i32 }* %0 to i64
  %12 = add i64 %10, %11
  %13 = inttoptr i64 %12 to i8*
  %14 = tail call swiftcc %swift.type* @swift_getTypeByMangledNameInContext2(i8* %13, i64 %9, %swift.type_descriptor* null, i8** null) #18
  %15 = ptrtoint %swift.type* %14 to i64
  store atomic i64 %15, i64* %1 monotonic, align 8
  br label %4
}

; Function Attrs: argmemonly nounwind
declare swiftcc %swift.type* @swift_getTypeByMangledNameInContext2(i8*, i64, %swift.type_descriptor*, i8**) local_unnamed_addr #6

; Function Attrs: minsize nofree noinline nosync nounwind optsize readnone
define linkonce_odr hidden i8** @"$sSaySJGSayxGSTsWl"() local_unnamed_addr #7 {
entry:
  %0 = load i8**, i8*** @"$sSaySJGSayxGSTsWL", align 8
  %1 = icmp eq i8** %0, null
  br i1 %1, label %cacheIsNull, label %cont

cacheIsNull:                                      ; preds = %entry
  %2 = tail call %swift.type* @__swift_instantiateConcreteTypeFromMangledNameAbstract({ i32, i32 }* nonnull @"$sSaySJGMD") #14
  %3 = tail call i8** @swift_getWitnessTable(%swift.protocol_conformance_descriptor* nonnull @"$sSayxGSTsMc", %swift.type* %2, i8*** undef) #14
  store atomic i8** %3, i8*** @"$sSaySJGSayxGSTsWL" release, align 8
  br label %cont

cont:                                             ; preds = %cacheIsNull, %entry
  %4 = phi i8** [ %0, %entry ], [ %3, %cacheIsNull ]
  ret i8** %4
}

; Function Attrs: minsize mustprogress nofree noinline nounwind optsize readonly willreturn
define linkonce_odr hidden %swift.type* @__swift_instantiateConcreteTypeFromMangledNameAbstract({ i32, i32 }* %0) local_unnamed_addr #5 {
entry:
  %1 = bitcast { i32, i32 }* %0 to i64*
  %2 = load atomic i64, i64* %1 monotonic, align 8
  %3 = icmp slt i64 %2, 0
  br i1 %3, label %7, label %4, !prof !7

4:                                                ; preds = %7, %entry
  %5 = phi i64 [ %2, %entry ], [ %15, %7 ]
  %6 = inttoptr i64 %5 to %swift.type*
  ret %swift.type* %6

7:                                                ; preds = %entry
  %8 = ashr i64 %2, 32
  %9 = sub nsw i64 0, %8
  %sext = shl i64 %2, 32
  %10 = ashr exact i64 %sext, 32
  %11 = ptrtoint { i32, i32 }* %0 to i64
  %12 = add i64 %10, %11
  %13 = inttoptr i64 %12 to i8*
  %14 = tail call swiftcc %swift.type* @swift_getTypeByMangledNameInContextInMetadataState2(i64 255, i8* %13, i64 %9, %swift.type_descriptor* null, i8** null) #18
  %15 = ptrtoint %swift.type* %14 to i64
  store atomic i64 %15, i64* %1 monotonic, align 8
  br label %4
}

; Function Attrs: argmemonly nounwind
declare swiftcc %swift.type* @swift_getTypeByMangledNameInContextInMetadataState2(i64, i8*, i64, %swift.type_descriptor*, i8**) local_unnamed_addr #6

; Function Attrs: nofree nounwind readonly
declare i8** @swift_getWitnessTable(%swift.protocol_conformance_descriptor*, %swift.type*, i8***) local_unnamed_addr #8

; Function Attrs: nounwind
declare void @swift_beginAccess(i8*, [24 x i8]*, i64, i8*) local_unnamed_addr #4

; Function Attrs: minsize optsize
declare swiftcc i64 @"$sSS5index_8offsetBySS5IndexVAD_SitF"(i64, i64, i64, %swift.bridge*) local_unnamed_addr #0

; Function Attrs: minsize optsize
declare swiftcc { i64, %swift.bridge* } @"$sSSySJSS5IndexVcig"(i64, i64, %swift.bridge*) local_unnamed_addr #0

; Function Attrs: minsize optsize
declare swiftcc i1 @"$ss27_stringCompareWithSmolCheck__9expectingSbs11_StringGutsV_ADs01_G16ComparisonResultOtF"(i64, %swift.bridge*, i64, %swift.bridge*, i8) local_unnamed_addr #0

; Function Attrs: nounwind
declare %swift.refcounted* @swift_allocObject(%swift.type*, i64, i64) local_unnamed_addr #4

; Function Attrs: minsize optsize
declare swiftcc void @"$ss5print_9separator10terminatoryypd_S2StF"(%Ts28__ContiguousArrayStorageBaseC*, i64, %swift.bridge*, i64, %swift.bridge*) local_unnamed_addr #0

; Function Attrs: minsize optsize
declare swiftcc i64 @"$sSS5countSivg"(i64, %swift.bridge*) local_unnamed_addr #0

; Function Attrs: minsize optsize
define linkonce_odr hidden swiftcc i64 @"$sSTsE21_copySequenceContents12initializing8IteratorQz_SitSry7ElementQzG_tFSS_Tgq5"(%TSS8IteratorV* noalias nocapture %0, i64 %1, i64 %2, i64 %3, %swift.bridge* %4) local_unnamed_addr #0 {
entry:
  %5 = alloca %TSS8IteratorV, align 8
  %6 = bitcast %TSS8IteratorV* %5 to i8*
  call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %6)
  %7 = ptrtoint %swift.bridge* %4 to i64
  %8 = and i64 %7, 2305843009213693952
  %9 = icmp eq i64 %8, 0
  %10 = lshr i64 %7, 56
  %11 = and i64 %10, 15
  %12 = and i64 %3, 281474976710655
  %13 = select i1 %9, i64 %12, i64 %11
  %._guts._object._countAndFlagsBits._value = getelementptr inbounds %TSS8IteratorV, %TSS8IteratorV* %5, i64 0, i32 0, i32 0, i32 0, i32 0
  store i64 %3, i64* %._guts._object._countAndFlagsBits._value, align 8
  %._guts._object._object = getelementptr inbounds %TSS8IteratorV, %TSS8IteratorV* %5, i64 0, i32 0, i32 0, i32 1
  store %swift.bridge* %4, %swift.bridge** %._guts._object._object, align 8
  %._position._value = getelementptr inbounds %TSS8IteratorV, %TSS8IteratorV* %5, i64 0, i32 1, i32 0
  store i64 0, i64* %._position._value, align 8
  %._end._value = getelementptr inbounds %TSS8IteratorV, %TSS8IteratorV* %5, i64 0, i32 2, i32 0
  store i64 %13, i64* %._end._value, align 8
  %14 = icmp eq i64 %1, 0
  %15 = insertelement <2 x i64> <i64 0, i64 poison>, i64 %13, i64 1
  br i1 %14, label %._crit_edge, label %16

16:                                               ; preds = %entry
  %17 = icmp eq i64 %2, 0
  br i1 %17, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %16
  %18 = icmp slt i64 %2, 0
  br i1 %18, label %42, label %.lr.ph.split.preheader, !prof !7

.lr.ph.split.preheader:                           ; preds = %.lr.ph
  %19 = inttoptr i64 %1 to %TSJ*
  br label %20

20:                                               ; preds = %26, %.lr.ph.split.preheader
  %21 = phi i64 [ %27, %26 ], [ 0, %.lr.ph.split.preheader ]
  %22 = phi %TSJ* [ %30, %26 ], [ %19, %.lr.ph.split.preheader ]
  %23 = call swiftcc { i64, i64 } @"$sSS8IteratorV4nextSJSgyF"(%TSS8IteratorV* nocapture nonnull swiftself dereferenceable(32) %5)
  %24 = extractvalue { i64, i64 } %23, 1
  %25 = icmp eq i64 %24, 0
  br i1 %25, label %34, label %26

26:                                               ; preds = %20
  %27 = add nuw nsw i64 %21, 1
  %28 = extractvalue { i64, i64 } %23, 0
  %29 = inttoptr i64 %24 to %swift.bridge*
  %._str._guts._object._countAndFlagsBits._value = getelementptr inbounds %TSJ, %TSJ* %22, i64 0, i32 0, i32 0, i32 0, i32 0, i32 0
  store i64 %28, i64* %._str._guts._object._countAndFlagsBits._value, align 8
  %._str._guts._object._object = getelementptr inbounds %TSJ, %TSJ* %22, i64 0, i32 0, i32 0, i32 0, i32 1
  store %swift.bridge* %29, %swift.bridge** %._str._guts._object._object, align 8
  %30 = getelementptr inbounds %TSJ, %TSJ* %22, i64 1
  %31 = icmp eq i64 %27, %2
  br i1 %31, label %._crit_edge.loopexit, label %20

._crit_edge.loopexit:                             ; preds = %26
  %.pre = load i64, i64* %._guts._object._countAndFlagsBits._value, align 8
  %.pre25 = load %swift.bridge*, %swift.bridge** %._guts._object._object, align 8
  %32 = bitcast i64* %._position._value to <2 x i64>*
  %33 = load <2 x i64>, <2 x i64>* %32, align 8
  br label %._crit_edge

34:                                               ; preds = %20
  %35 = load i64, i64* %._guts._object._countAndFlagsBits._value, align 8
  %36 = load %swift.bridge*, %swift.bridge** %._guts._object._object, align 8
  %37 = bitcast i64* %._position._value to <2 x i64>*
  %38 = load <2 x i64>, <2 x i64>* %37, align 8
  br label %._crit_edge

._crit_edge:                                      ; preds = %16, %._crit_edge.loopexit, %entry, %34
  %.sink31 = phi i64 [ %35, %34 ], [ %3, %entry ], [ %.pre, %._crit_edge.loopexit ], [ %3, %16 ]
  %.sink30 = phi %swift.bridge* [ %36, %34 ], [ %4, %entry ], [ %.pre25, %._crit_edge.loopexit ], [ %4, %16 ]
  %39 = phi i64 [ %21, %34 ], [ 0, %entry ], [ %2, %._crit_edge.loopexit ], [ %2, %16 ]
  %40 = phi <2 x i64> [ %38, %34 ], [ %15, %entry ], [ %33, %._crit_edge.loopexit ], [ %15, %16 ]
  %._guts13._object._countAndFlagsBits._value = getelementptr inbounds %TSS8IteratorV, %TSS8IteratorV* %0, i64 0, i32 0, i32 0, i32 0, i32 0
  store i64 %.sink31, i64* %._guts13._object._countAndFlagsBits._value, align 8
  %._guts13._object._object = getelementptr inbounds %TSS8IteratorV, %TSS8IteratorV* %0, i64 0, i32 0, i32 0, i32 1
  store %swift.bridge* %.sink30, %swift.bridge** %._guts13._object._object, align 8
  %._position14._value = getelementptr inbounds %TSS8IteratorV, %TSS8IteratorV* %0, i64 0, i32 1, i32 0
  %41 = bitcast i64* %._position14._value to <2 x i64>*
  store <2 x i64> %40, <2 x i64>* %41, align 8
  call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %6)
  ret i64 %39

42:                                               ; preds = %.lr.ph
  tail call void asm sideeffect "", "n"(i32 0) #4
  tail call void @llvm.trap()
  unreachable
}

; Function Attrs: minsize optsize
define linkonce_odr hidden swiftcc %Ts28__ContiguousArrayStorageBaseC* @"$ss22_ContiguousArrayBufferV19_uninitializedCount15minimumCapacityAByxGSi_SitcfCSJ_Tgq5"(i64 %0, i64 %1) local_unnamed_addr #0 {
entry:
  %2 = tail call i64 @llvm.smax.i64(i64 %1, i64 %0)
  %3 = icmp eq i64 %2, 0
  br i1 %3, label %14, label %4

4:                                                ; preds = %entry
  %5 = tail call %swift.type* @__swift_instantiateConcreteTypeFromMangledName({ i32, i32 }* nonnull @"$ss23_ContiguousArrayStorageCySJGMD") #14
  %6 = shl i64 %2, 4
  %7 = add i64 %6, 32
  %8 = tail call noalias %swift.refcounted* @swift_allocObject(%swift.type* %5, i64 %7, i64 7) #4
  %9 = bitcast %swift.refcounted* %8 to %Ts28__ContiguousArrayStorageBaseC*
  %10 = bitcast %swift.refcounted* %8 to i8*
  %call.i = tail call i64 @malloc_usable_size(i8* noundef %10) #17
  %gepdiff = add nsw i64 %call.i, -32
  %11 = sdiv i64 %gepdiff, 16
  %12 = shl nsw i64 %11, 1
  %13 = getelementptr inbounds %swift.refcounted, %swift.refcounted* %8, i64 1
  %._storage1.count._value = bitcast %swift.refcounted* %13 to i64*
  store i64 %0, i64* %._storage1.count._value, align 8
  %._storage1._capacityAndFlags = getelementptr inbounds %swift.refcounted, %swift.refcounted* %8, i64 1, i32 1
  store i64 %12, i64* %._storage1._capacityAndFlags, align 8
  br label %14

14:                                               ; preds = %entry, %4
  %15 = phi %Ts28__ContiguousArrayStorageBaseC* [ %9, %4 ], [ bitcast (%struct._SwiftEmptyArrayStorage* @_swiftEmptyArrayStorage to %Ts28__ContiguousArrayStorageBaseC*), %entry ]
  ret %Ts28__ContiguousArrayStorageBaseC* %15
}

; Function Attrs: mustprogress nocallback nofree nosync nounwind readnone speculatable willreturn
declare { i64, i1 } @llvm.sadd.with.overflow.i64(i64, i64) #9

; Function Attrs: minsize optsize
declare swiftcc { i64, i64 } @"$sSS8IteratorV4nextSJSgyF"(%TSS8IteratorV* nocapture swiftself dereferenceable(32)) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind willreturn
declare zeroext i1 @swift_isUniquelyReferenced_nonNull_native(%swift.refcounted*) local_unnamed_addr #10

; Function Attrs: mustprogress nocallback nofree nosync nounwind readnone speculatable willreturn
declare { i64, i1 } @llvm.ssub.with.overflow.i64(i64, i64) #9

; Function Attrs: argmemonly mustprogress nocallback nofree nounwind willreturn
declare void @llvm.memmove.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i1 immarg) #11

; Function Attrs: minsize noinline optsize
declare swiftcc %Ts28__ContiguousArrayStorageBaseC* @"$sSa28_allocateBufferUninitialized15minimumCapacitys016_ContiguousArrayB0VyxGSi_tFZ"(i64, %swift.type*) local_unnamed_addr #3

; Function Attrs: argmemonly mustprogress nocallback nofree nounwind willreturn
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #11

; Function Attrs: mustprogress nounwind willreturn
declare void @swift_arrayInitWithCopy(%swift.opaque*, %swift.opaque*, i64, %swift.type*) local_unnamed_addr #10

; Function Attrs: optsize
declare i64 @malloc_usable_size(i8* noundef) local_unnamed_addr #12

; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.smin.i64(i64, i64) #13

; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.smax.i64(i64, i64) #13

; Function Attrs: nounwind
declare void @swift_bridgeObjectRelease_n(%swift.bridge*, i32) #4

attributes #0 = { minsize optsize "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { cold noreturn nounwind }
attributes #2 = { argmemonly mustprogress nocallback nofree nosync nounwind willreturn }
attributes #3 = { minsize noinline optsize "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind }
attributes #5 = { minsize mustprogress nofree noinline nounwind optsize readonly willreturn "frame-pointer"="non-leaf" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { argmemonly nounwind }
attributes #7 = { minsize nofree noinline nosync nounwind optsize readnone "frame-pointer"="non-leaf" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nofree nounwind readonly }
attributes #9 = { mustprogress nocallback nofree nosync nounwind readnone speculatable willreturn }
attributes #10 = { mustprogress nounwind willreturn }
attributes #11 = { argmemonly mustprogress nocallback nofree nounwind willreturn }
attributes #12 = { optsize "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #13 = { nocallback nofree nosync nounwind readnone speculatable willreturn }
attributes #14 = { nounwind readonly }
attributes #15 = { nounwind readnone }
attributes #16 = { nounwind willreturn }
attributes #17 = { nounwind optsize }
attributes #18 = { argmemonly nounwind readonly }

!swift.module.flags = !{!0}
!llvm.linker.options = !{}
!llvm.module.flags = !{!1, !2, !3, !4, !5}

!0 = !{!"standard-library", i1 false}
!1 = !{i32 1, !"wchar_size", i32 4}
!2 = !{i32 8, !"PIC Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{i32 4, !"Objective-C Garbage Collection", i32 84477696}
!5 = !{i32 1, !"Swift Version", i32 7}
!6 = !{i64 0, i64 9223372036854775807}
!7 = !{!"branch_weights", i32 1, i32 2000}
!8 = !{!"branch_weights", i32 2000, i32 1}
