Diff
checker
Texte
Texte
Images
Documents
Excel
Dossiers
Legal
Enterprise
Application de bureau
Prix
Se connecter
Télécharger Diffchecker Desktop
Comparer le texte
Trouver la différence entre deux fichiers texte
Outils
Historique
Éditeur live
Cacher identiques
Sans retour à la ligne
Vue
Divisé
Unifié
Niveau de précision
Intelligent
Mot
Caractère
Coloration syntaxique
Choisir la syntaxe
Ignorer
Transformer le texte
Aller au premier écart
Modifier l'entrée
Diffchecker Desktop
La façon la plus sécurisée d'utiliser Diffchecker. Obtenez l'application Diffchecker Desktop : vos diffs ne quittent jamais votre ordinateur !
Obtenir Desktop
LLVM small vs big
Créé
il y a 2 ans
Le diff n'expire jamais
Effacer
Exporter
Partager
Expliquer
267 suppressions
Lignes
Total
Supprimé
Caractères
Total
Supprimé
Pour continuer à utiliser cette fonctionnalité, passez à
Diff
checker
Pro
Voir les prix
356 lignes
Copier tout
183 ajouts
Lignes
Total
Ajouté
Caractères
Total
Ajouté
Pour continuer à utiliser cette fonctionnalité, passez à
Diff
checker
Pro
Voir les prix
261 lignes
Copier tout
; ModuleID = 'BitcodeBuffer'
; ModuleID = 'BitcodeBuffer'
source_filename = "biggy"
source_filename = "biggy"
target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-macosx14.5.0-unknown"
target triple = "x86_64-unknown-macosx14.5.0-unknown"
%macho.mach_header_64 = type { i32, i32, i32, i32, i32, i32, i32, i32 }
%macho.mach_header_64 = type { i32, i32, i32, i32, i32, i32, i32, i32 }
%Thread.Mutex.Recursive = type { i64, i64, %Thread.Mutex, [4 x i8] }
%Thread.Mutex.Recursive = type { i64, i64, %Thread.Mutex, [4 x i8] }
%Thread.Mutex = type { %Thread.Mutex.DarwinImpl }
%Thread.Mutex = type { %Thread.Mutex.DarwinImpl }
%Thread.Mutex.DarwinImpl = type { %c.darwin.os_unfair_lock }
%Thread.Mutex.DarwinImpl = type { %c.darwin.os_unfair_lock }
%c.darwin.os_unfair_lock = type { i32 }
%c.darwin.os_unfair_lock = type { i32 }
%"atomic.Value(u8)" = type { i8 }
%"atomic.Value(u8)" = type { i8 }
%fmt.FormatOptions = type { { i64, i8, [7 x i8] }, { i64, i8, [7 x i8] }, i21, i2, [3 x i8] }
%fmt.FormatOptions = type { { i64, i8, [7 x i8] }, { i64, i8, [7 x i8] }, i21, i2, [3 x i8] }
%io.Writer = type { ptr, ptr }
%io.Writer = type { ptr, ptr }
%"io.fixed_buffer_stream.FixedBufferStream([]u8)" = type { { ptr, i64 }, i64 }
%"io.fixed_buffer_stream.FixedBufferStream([]u8)" = type { { ptr, i64 }, i64 }
@os.argv = internal unnamed_addr global { ptr, i64 } undef, align 8
@os.argv = internal unnamed_addr global { ptr, i64 } undef, align 8
@os.environ = internal unnamed_addr global { ptr, i64 } undef, align 8
@os.environ = internal unnamed_addr global { ptr, i64 } undef, align 8
@__anon_1669 = internal unnamed_addr constant { { ptr }, i32, i32 } { { ptr } { ptr @start.noopSigHandler }, i32 0, i32 0 }, align 8
@__anon_1669 = internal unnamed_addr constant { { ptr }, i32, i32 } { { ptr } { ptr @start.noopSigHandler }, i32 0, i32 0 }, align 8
@_mh_execute_header = weak_odr dso_local local_unnamed_addr global %macho.mach_header_64 undef, align 4
@_mh_execute_header = weak_odr dso_local local_unnamed_addr global %macho.mach_header_64 undef, align 4
@__anon_2157 = internal unnamed_addr constant [16 x i8] c"(msg truncated)\00", align 1
@__anon_2157 = internal unnamed_addr constant [16 x i8] c"(msg truncated)\00", align 1
@Progress.stderr_mutex = internal unnamed_addr global %Thread.Mutex.Recursive { i64 -1, i64 0, %Thread.Mutex zeroinitializer, [4 x i8] undef }, align 8
@Progress.stderr_mutex = internal unnamed_addr global %Thread.Mutex.Recursive { i64 -1, i64 0, %Thread.Mutex zeroinitializer, [4 x i8] undef }, align 8
@__anon_1474 = internal unnamed_addr constant [5 x i8] c"{d}\0A\00", align 1
@__anon_1474 = internal unnamed_addr constant [5 x i8] c"{d}\0A\00", align 1
@__anon_1704 = internal unnamed_addr constant [40 x i8] c"failed to set noop SIGPIPE handler: {s}\00", align 1
@__anon_1704 = internal unnamed_addr constant [40 x i8] c"failed to set noop SIGPIPE handler: {s}\00", align 1
@0 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 7, [6 x i8] undef }, align 8
@0 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 7, [6 x i8] undef }, align 8
@1 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 14, [6 x i8] undef }, align 8
@1 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 14, [6 x i8] undef }, align 8
@2 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 12, [6 x i8] undef }, align 8
@2 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 12, [6 x i8] undef }, align 8
@3 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 2, [6 x i8] undef }, align 8
@3 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 2, [6 x i8] undef }, align 8
@4 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 3, [6 x i8] undef }, align 8
@4 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 3, [6 x i8] undef }, align 8
@5 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 4, [6 x i8] undef }, align 8
@5 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 4, [6 x i8] undef }, align 8
@6 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 8, [6 x i8] undef }, align 8
@6 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 8, [6 x i8] undef }, align 8
@7 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 9, [6 x i8] undef }, align 8
@7 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 9, [6 x i8] undef }, align 8
@8 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 15, [6 x i8] undef }, align 8
@8 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 15, [6 x i8] undef }, align 8
@9 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 6, [6 x i8] undef }, align 8
@9 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 6, [6 x i8] undef }, align 8
@debug.panic_stage = internal thread_local unnamed_addr global i64 0, align 8
@debug.panic_stage = internal thread_local unnamed_addr global i64 0, align 8
@debug.panicking = internal unnamed_addr global %"atomic.Value(u8)" zeroinitializer, align 1
@debug.panicking = internal unnamed_addr global %"atomic.Value(u8)" zeroinitializer, align 1
@10 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 23, i3 undef, [1 x i8] undef }, align 2
@10 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 23, i3 undef, [1 x i8] undef }, align 2
Copier
Copié
Copier
Copié
@__anon_
3651
= internal unnamed_addr constant [3 x i8] c"\EF\BF\BD", align 1
@__anon_
3683
= internal unnamed_addr constant [3 x i8] c"\EF\BF\BD", align 1
@11 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 5, [6 x i8] undef }, align 8
@11 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 5, [6 x i8] undef }, align 8
Copier
Copié
Copier
Copié
@__anon_
3758
= internal unnamed_addr constant [201 x i8] c"00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899\00", align 1
@__anon_
3790
= internal unnamed_addr constant [201 x i8] c"00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899\00", align 1
@12 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 0, i3 1, [1 x i8] undef }, align 4
@12 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 0, i3 1, [1 x i8] undef }, align 4
@13 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 0, i3 2, [1 x i8] undef }, align 4
@13 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 0, i3 2, [1 x i8] undef }, align 4
@14 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 0, i3 3, [1 x i8] undef }, align 4
@14 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 0, i3 3, [1 x i8] undef }, align 4
@15 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 0, i3 -4, [1 x i8] undef }, align 4
@15 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 0, i3 -4, [1 x i8] undef }, align 4
@__anon_3287 = internal unnamed_addr constant [18 x i8] c"thread {} panic: \00", align 1
@__anon_3287 = internal unnamed_addr constant [18 x i8] c"thread {} panic: \00", align 1
@16 = private unnamed_addr constant %fmt.FormatOptions { { i64, i8, [7 x i8] } { i64 undef, i8 0, [7 x i8] undef }, { i64, i8, [7 x i8] } { i64 undef, i8 0, [7 x i8] undef }, i21 32, i2 -2, [3 x i8] undef }, align 8
@16 = private unnamed_addr constant %fmt.FormatOptions { { i64, i8, [7 x i8] } { i64 undef, i8 0, [7 x i8] undef }, { i64, i8, [7 x i8] } { i64 undef, i8 0, [7 x i8] undef }, i21 32, i2 -2, [3 x i8] undef }, align 8
@__anon_3300 = internal unnamed_addr constant [5 x i8] c"{s}\0A\00", align 1
@__anon_3300 = internal unnamed_addr constant [5 x i8] c"{s}\0A\00", align 1
@__anon_3318 = internal unnamed_addr constant [36 x i8] c"Panicked during a panic. Aborting.\0A\00", align 1
@__anon_3318 = internal unnamed_addr constant [36 x i8] c"Panicked during a panic. Aborting.\0A\00", align 1
Copier
Copié
Copier
Copié
@__anon_
3692
= internal unnamed_addr constant [49 x i8] c"Unable to dump stack trace: debug info stripped\0A\00", align 1
@__anon_
3724
= internal unnamed_addr constant [49 x i8] c"Unable to dump stack trace: debug info stripped\0A\00", align 1
@17 = private unnamed_addr constant [22 x i8] c"OperationNotSupported\00", align 1
@17 = private unnamed_addr constant [22 x i8] c"OperationNotSupported\00", align 1
; Function Attrs: nounwind uwtable
; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 %0, ptr nonnull align 8 %1, ptr nonnull align 8 %2) local_unnamed_addr #0 {
define dso_local noundef i32 @main(i32 %0, ptr nonnull align 8 %1, ptr nonnull align 8 %2) local_unnamed_addr #0 {
Copier
Copié
Copier
Copié
%4 = alloca
[16 x i8], align 8
%4 = alloca
[16509 x i8], align 1
%.sroa.0.i.i.i.i.i.i.i.i = alloca
i16, align 2
%5 = alloca
[16 x i8], align 8
%5 = alloca [12 x i8]
, align 1
%.sroa.0.i.i.i.i.i.i.i.i = alloca
i16512
, align 1
6
%6 = alloca [8 x i8], align 8
%6 = alloca [8 x i8], align 8
%7 = alloca [16 x i8], align 8
%7 = alloca [16 x i8], align 8
%8 = alloca [4 x i8], align 4
%8 = alloca [4 x i8], align 4
%9 = alloca [16 x i8], align 8
%9 = alloca [16 x i8], align 8
br label %10
br label %10
10: ; preds = %10, %3
10: ; preds = %10, %3
%lsr.iv = phi i64 [ %lsr.iv.next, %10 ], [ -1, %3 ]
%lsr.iv = phi i64 [ %lsr.iv.next, %10 ], [ -1, %3 ]
%11 = shl i64 %lsr.iv, 3
%11 = shl i64 %lsr.iv, 3
Copier
Copié
Copier
Copié
%scevgep
14
= getelementptr i8, ptr %2, i64 %11
%scevgep
= getelementptr i8, ptr %2, i64 %11
%scevgep1
5
= getelementptr i8, ptr %scevgep
14
, i64 8
%scevgep1
3
= getelementptr i8, ptr %scevgep
, i64 8
%12 = load ptr, ptr %scevgep1
5
, align 8
%12 = load ptr, ptr %scevgep1
3
, align 8
%.not = icmp eq ptr %12, null
%.not = icmp eq ptr %12, null
%lsr.iv.next = add i64 %lsr.iv, 1
%lsr.iv.next = add i64 %lsr.iv, 1
br i1 %.not, label %13, label %10
br i1 %.not, label %13, label %10
13: ; preds = %10
13: ; preds = %10
%14 = sext i32 %0 to i64
%14 = sext i32 %0 to i64
store ptr %1, ptr @os.argv, align 8
store ptr %1, ptr @os.argv, align 8
store i64 %14, ptr getelementptr inbounds ({ ptr, i64 }, ptr @os.argv, i64 0, i32 1), align 8
store i64 %14, ptr getelementptr inbounds ({ ptr, i64 }, ptr @os.argv, i64 0, i32 1), align 8
store ptr %2, ptr @os.environ, align 8
store ptr %2, ptr @os.environ, align 8
store i64 %lsr.iv.next, ptr getelementptr inbounds ({ ptr, i64 }, ptr @os.environ, i64 0, i32 1), align 8
store i64 %lsr.iv.next, ptr getelementptr inbounds ({ ptr, i64 }, ptr @os.environ, i64 0, i32 1), align 8
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4)
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4)
%15 = tail call i32 @sigaction(i32 13, ptr noalias nonnull readonly align 8 @__anon_1669, ptr noalias align 8 null)
%15 = tail call i32 @sigaction(i32 13, ptr noalias nonnull readonly align 8 @__anon_1669, ptr noalias align 8 null)
%16 = icmp eq i32 %15, -1
%16 = icmp eq i32 %15, -1
br i1 %16, label %posix.errno__anon_3210.exit.i.i, label %start.maybeIgnoreSigpipe.exit
br i1 %16, label %posix.errno__anon_3210.exit.i.i, label %start.maybeIgnoreSigpipe.exit
posix.errno__anon_3210.exit.i.i: ; preds = %13
posix.errno__anon_3210.exit.i.i: ; preds = %13
%17 = tail call ptr @__error()
%17 = tail call ptr @__error()
%18 = load i32, ptr %17, align 4
%18 = load i32, ptr %17, align 4
%.fr3.i.i = freeze i32 %18
%.fr3.i.i = freeze i32 %18
%19 = and i32 %.fr3.i.i, 65535
%19 = and i32 %.fr3.i.i, 65535
%switch.i.i = icmp eq i32 %19, 0
%switch.i.i = icmp eq i32 %19, 0
br i1 %switch.i.i, label %start.maybeIgnoreSigpipe.exit, label %posix.sigaction.exit.i
br i1 %switch.i.i, label %start.maybeIgnoreSigpipe.exit, label %posix.sigaction.exit.i
posix.sigaction.exit.i: ; preds = %posix.errno__anon_3210.exit.i.i
posix.sigaction.exit.i: ; preds = %posix.errno__anon_3210.exit.i.i
store ptr @17, ptr %4, align 8
store ptr @17, ptr %4, align 8
%.fca.1.gep.i = getelementptr inbounds { ptr, i64 }, ptr %4, i64 0, i32 1
%.fca.1.gep.i = getelementptr inbounds { ptr, i64 }, ptr %4, i64 0, i32 1
store i64 21, ptr %.fca.1.gep.i, align 8
store i64 21, ptr %.fca.1.gep.i, align 8
call fastcc void @debug.panic__anon_2624(ptr nonnull readonly align 8 %4)
call fastcc void @debug.panic__anon_2624(ptr nonnull readonly align 8 %4)
unreachable
unreachable
start.maybeIgnoreSigpipe.exit: ; preds = %13, %posix.errno__anon_3210.exit.i.i
start.maybeIgnoreSigpipe.exit: ; preds = %13, %posix.errno__anon_3210.exit.i.i
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4)
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4)
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7)
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7)
call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8)
call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8)
call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4)
call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4)
%20 = call i32 @pthread_threadid_np(ptr align 1 null, ptr nonnull align 8 %4)
%20 = call i32 @pthread_threadid_np(ptr align 1 null, ptr nonnull align 8 %4)
%21 = load i64, ptr %4, align 8
%21 = load i64, ptr %4, align 8
call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4)
call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4)
%22 = load atomic i64, ptr @Progress.stderr_mutex unordered, align 8
%22 = load atomic i64, ptr @Progress.stderr_mutex unordered, align 8
%.not.i.i.i.i.i = icmp eq i64 %22, %21
%.not.i.i.i.i.i = icmp eq i64 %22, %21
br i1 %.not.i.i.i.i.i, label %._crit_edge.i.i.i.i.i, label %24
br i1 %.not.i.i.i.i.i, label %._crit_edge.i.i.i.i.i, label %24
._crit_edge.i.i.i.i.i: ; preds = %start.maybeIgnoreSigpipe.exit
._crit_edge.i.i.i.i.i: ; preds = %start.maybeIgnoreSigpipe.exit
%.pre.i.i.i.i.i = load i64, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8
%.pre.i.i.i.i.i = load i64, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8
%23 = add nuw i64 %.pre.i.i.i.i.i, 1
%23 = add nuw i64 %.pre.i.i.i.i.i, 1
br label %Thread.Mutex.Recursive.lock.exit.i.i.i.i
br label %Thread.Mutex.Recursive.lock.exit.i.i.i.i
24: ; preds = %start.maybeIgnoreSigpipe.exit
24: ; preds = %start.maybeIgnoreSigpipe.exit
call void @os_unfair_lock_lock(ptr nonnull align 4 getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 2))
call void @os_unfair_lock_lock(ptr nonnull align 4 getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 2))
store atomic i64 %21, ptr @Progress.stderr_mutex unordered, align 8
store atomic i64 %21, ptr @Progress.stderr_mutex unordered, align 8
br label %Thread.Mutex.Recursive.lock.exit.i.i.i.i
br label %Thread.Mutex.Recursive.lock.exit.i.i.i.i
Thread.Mutex.Recursive.lock.exit.i.i.i.i: ; preds = %24, %._crit_edge.i.i.i.i.i
Thread.Mutex.Recursive.lock.exit.i.i.i.i: ; preds = %24, %._crit_edge.i.i.i.i.i
%25 = phi i64 [ %23, %._crit_edge.i.i.i.i.i ], [ 1, %24 ]
%25 = phi i64 [ %23, %._crit_edge.i.i.i.i.i ], [ 1, %24 ]
store i64 %25, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8
store i64 %25, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8
store i32 2, ptr %8, align 4
store i32 2, ptr %8, align 4
store ptr %8, ptr %7, align 8
store ptr %8, ptr %7, align 8
%.sroa.2.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %7, i64 8
%.sroa.2.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %7, i64 8
store ptr @"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn", ptr %.sroa.2.0..sroa_idx.i.i, align 8
store ptr @"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn", ptr %.sroa.2.0..sroa_idx.i.i, align 8
Copier
Copié
Copier
Copié
call void @llvm.lifetime.start.p0(i64
2
, ptr nonnull %.sroa.0.i.i.i.i.i.i.i.i)
call void @llvm.lifetime.start.p0(i64
2064
, ptr nonnull %.sroa.0.i.i.i.i.i.i.i.i)
call void @llvm.lifetime.start.p0(i64
12
, ptr nonnull %4)
call void @llvm.lifetime.start.p0(i64
16509
, ptr nonnull %4)
store
i11 -535
, ptr %.sroa.0.i.i.i.i.i.i.i.i, align
2
store
i16508 -10170291864599254685376928579451837474849162567202793202210005589829000001078205320552418457072995021665081016751661498373627049384699318424501181692820593184504087730148641241678808042364595648099335954245308528979249571015745002826186590929629881504912826401439521673436761967613685880371807232457262686567424590031041380673713995838060943073894429776039677102519416452786696299358972088899041919622869132413389847315698310753997445809635163863167518537049953145856120898487515084175003600571605920732046428967026145392827337980304413004181016851665875688004233509871598760500818920715799014335111801474484357883706457620708194488463786749410052154637190792137233742013162514773385877134386262850484887912034511384718707031119901541770568014454622534818196961900563346643897899550007564212094603016505689908364328097828672894286906663226798373444845834693955014696786963085485271317392968218570506297665977171100553475630578002558846609566914043356188967361610411543136798575744314602254384950974207577412792436485393343681447431637237619645239077207141954593409191577470854214214527062603987504056592716485429461337411416260411326122358005905006316691630702571168235469072537497205173435015314507595727846352208189390532350213091213800972487586332217101318593346932069519217231589404890187395493634737698008526992188059185372314824731375396348191019878904912839508442756350390540735539252897915733820543408757569669698347612105479742809551939160392021065832065405409081730683324439021651649491831037679012669450154646742117936765042759895960577820982932866878502251386683008049011770676146352569948875377603710833473891506210586138680283010472789540500225895060555108201701992727326595781983950669964075131259737163476094947430634318943636928287372962645431712200260631668466327845535662057485535837794525134023839265097149357341392598116869488624424785202638945781617525507938417812908847621126603840809577946471124135694835361573590901992187275827560839788808337132342294924890375309400257342009263852446339871433421676949846863282574082039977414219589803793916512909477524042210110800691164503650743380087245557641026211814759138938988902861017910466035027098468734696374409423704953462131615276035702698679732554136720945239658165359508037173360372815496654167204006231237426043465954430397642367117232930610595436866781711749420539266607239120223586178746215762403241013292054006749667406788906806805592302769876093682670642350035696145740990073504781641729792954366610972925522628335087544802633805690233302012159090369683206299864779369074527397582813287667049841022155179568481557777835146467492996478983466483796095978619494437171038193055428615448303476987170979391130540042796021914260857669773809570737629831468265070925527793456242603671249643407962165278914705488149199414094623300052410504342594660990694744188830372516809980695115283847259973757644302706098476458582967338215789704831373221098805862179408470429000015253437609814427186345113105380913865183211103854173139668163034753687379160010280613421026023890596514366114135274946001300700194910144693521056529983593765001894538632102620168685513626721747547826694134393963446602620483818228897392219995580293504842587667052922133905724401820039637095826339208144068128377429384676352007091773106260804817125447038141483776457981313958958092108328282828053626226628090709775490475240442376407471420986088375725056540403885755395629035905003996346421829048422358054746864793871834883615300995578921735883258386042117891005285543107032952574305665807856936503308918143218775773797369587210043046599546768617072387732655869462532049808040881980586736124414441700729276886084859965622473856577848273644660887511279610766981550723531537893109091954772728621697718590103892582178423141920898008271694828510750734262472584519256218653510185043492778801555081506017195136331276343395988406747764213253662884510302885907963443294007599360288788267089632492610674522627379722948196647439768648579013784052729708248828866232668193464937159485130054818011877242971754480988588904950251544526947897977338033018106506447157602740037907962641818493560785107234932326553825207764543212594416681681823492669465597871034101589352735991725895285081352274192696182365962855972508506787548097373692081044103866483153776147626484118284798381649312916432153698693244624539921281359272516104764491311933680047951327243268187343845278680242472956504586941343915803694364446442435372361783481084800047708582833218561233645375187287580425881439984086029571534196348134033146101419942736419641888862430531852148834144585678127762684826323916687596634753290731198722290470721336516647215194644802980928563903497893503658792688705282357034713790871476544032008607911697136089003142015145531481746494131435796427849458279257616606660487172062438048287573657170255549994951125054212584895866729458830403990657106990989224437000964710449092864360449583564842610076950491711517265333959716772707478792311035106252904185320928056511
, ptr %.sroa.0.i.i.i.i.i.i.i.i, align
16
%.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.13.i.i.i.i.i.i.i.i = load i16
, ptr %.sroa.0.i.i.i.i.i.i.i.i, align
2
%.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.13.i.i.i.i.i.i.i.i = load i16
512
, ptr %.sroa.0.i.i.i.i.i.i.i.i, align
16
%26 = trunc i16
%.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.13.i.i.i.i.i.i.i.i to
i11
%26 = trunc i16
512
%.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.13.i.i.i.i.i.i.i.i to
i16508
%27 = icmp ugt
i11
%26, 99
%27 = icmp ugt
i16508
%26, 99
br i1 %27, label %.lr.ph.i.i.i.i.i.i.i.i
.preheader, label %._crit_edge.i.i.i.i.i.i.i.i
%extract.t.i.i.i.i.i.i.i.i = trunc i16512 %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.13.i.i.i.i.i.i.i.i to i8
%extract.t9.i.i.i.i.i.i.i.i = trunc i16512 %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.13.i.i.i.i.i.i.i.i to i64
br i1 %27, label %.lr.ph.i.i.i.i.i.i.i.i
_udiv-special-cases
.preheader, label %._crit_edge.i.i.i.i.i.i.i.i
Copier
Copié
Copier
Copié
.lr.ph.i.i.i.i.i.i.i.i
.preheader:
; preds = %Thread.Mutex.Recursive.lock.exit.i.i.i.i
.lr.ph.i.i.i.i.i.i.i.i
_udiv-special-cases
.preheader:
; preds = %Thread.Mutex.Recursive.lock.exit.i.i.i.i
%28 = trunc i16
%.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.13.i.i.i.i.i.i.i.i to
i11
%28 = trunc i16
512
%.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.13.i.i.i.i.i.i.i.i to
i16508
br label %.lr.ph.i.i.i.i.i.i.i.i
br label %.lr.ph.i.i.i.i.i.i.i.i
_udiv-special-cases
Copier
Copié
Copier
Copié
.lr.ph.i.i.i.i.i.i.i.i
:
; preds = %.lr.ph.i.i.i.i.i.i.i.i
.preheader, %
.lr.ph.i.i.i.i.i.i.i.i
.lr.ph.i.i.i.i.i.i.i.i
_udiv-special-cases
:
; preds = %.lr.ph.i.i.i.i.i.i.i.i
_udiv-special-cases
.preheader, %
udiv-end
%29 = phi
i11
[ %
36
, %
.lr.ph.i.i.i.i.i.i.i.i
], [ %28, %.lr.ph.i.i.i.i.i.i.i.i
.preheader ]
%29 = phi
i16508
[ %
76
, %
udiv-end
], [ %28, %.lr.ph.i.i.i.i.i.i.i.i
_udiv-special-cases
.preheader ]
%.sroa.09.14.i.i.i.i.i.i.i.i = phi i64 [ %30, %
.lr.ph.i.i.i.i.i.i.i.i
], [
12
, %.lr.ph.i.i.i.i.i.i.i.i
.preheader ]
%.sroa.09.14.i.i.i.i.i.i.i.i = phi i64 [ %30, %
udiv-end
], [
16509
, %.lr.ph.i.i.i.i.i.i.i.i
_udiv-special-cases
.preheader ]
%30 = add i64 %.sroa.09.14.i.i.i.i.i.i.i.i, -2
%30 = add i64 %.sroa.09.14.i.i.i.i.i.i.i.i, -2
Copier
Copié
Copier
Copié
%
scevgep
=
getelementptr i8, ptr %4, i64 %.sroa.09.14.i.i.i.i.i.i.i.i
%
.frozen
=
freeze i16508 %29
%
scevgep13
=
getelementptr i8, ptr %scevgep, i64 -2
%
31
=
freeze i16508 100
%
.frozen
= freeze
i11 %29
%
32
= freeze
i16508 %.frozen
%
31
=
udiv i11 %.frozen, 100
%
33
=
icmp eq i16508 %31, 0
%
32
=
mul i11 %31, 100
%
34
=
icmp eq i16508 %32, 0
%
.decomposed = sub i11 %.frozen, %32
%
35 = or i1 %33, %34
%promoted = zext i11 %.decomposed to i64
%36 = call i16508 @llvm.ctlz.i16508(i16508 %31, i1 true)
%33 = shl nuw nsw i64 %promoted, 1
%37 = call i16508 @llvm.ctlz.i16508(i16508 %32, i1 true)
%34 = getelementptr inbounds i8, ptr @__anon_3758, i64 %33
%38 = sub i16508 %36, %37
%35 = load i16, ptr %34, align 1, !noalias !2
%39 = icmp ugt i16508 %38, 16507
store i16 %35, ptr %scevgep13, align 1
%40 = select i1 %35, i1 true, i1 %39
store i11 %31, ptr %.sroa.0.i.i.i.i.i.i.i.i, align 2
%41 = icmp eq i16508 %38, 16507
%.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.1.i.i.i.i.i.i.i.i = load i16, ptr %.sroa.0.i.i.i.i.i.i.i.i, align 2
%42 = select i1 %40, i16508 0, i16508 %32
%36 = trunc i16 %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.1.i.i.i.i.i.i.i.i to i11
%43 = select i1 %40, i1 true, i1 %41
%37 = icmp ugt i11 %36, 99
br i1 %
43
, label %
udiv-end
, label %
udiv-bb1
br i1 %
37
, label %
.lr.ph.i.i.i.i.i.i.i.i
, label %
._crit_edge.i.i.i.i.i.i.i.i
Copier
Copié
Copier
Copié
._crit_edge.i.i.i.i.i.i.i.i
:
; preds = %
.lr.ph.i.i.i.i.i.i.i.i
, %
Thread.Mutex.Recursive.lock.exit.i.i.i.i
udiv-loop-exit
:
; preds = %
udiv-do-while
, %
udiv-bb1
%
.sroa.09.1.lcssa.i.i.i.i.i.i.i.i
= phi
i64
[
12
, %
Thread.Mutex.Recursive.lock.exit.i.i.i.i
], [ %
30
, %
.lr.ph.i.i.i.i.i.i.i.i
]
%
44
= phi
i16508
[
0
, %
udiv-bb1
], [ %
59
, %
udiv-do-while
]
%
.sroa.0.0..sroa.0.0..sroa.0.0.1.lcssa.i.i.i.i.i.i.i.i
= phi i16
[ %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.13.i.i.i.i.i.i.i.i, %Thread.Mutex.Recursive.lock.exit.i.i.i.i
], [ %
.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.1.i.i.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i.i.i
]
%
45
= phi i16
508 [ %68, %udiv-bb1
], [ %
56, %udiv-do-while
]
%
.lcssa.i.i.i.i.i.i.i.i = phi i11 [ %26, %Thread.Mutex.Recursive.lock.exit.i.i.i.i ], [ %36, %.lr.ph.i.i.i.i.i.i.i.i ]
%
46 = shl i16508 %45, 1
%
38
=
icmp ult i11 %.lcssa.i.i.i.i.i.i.i.i, 10
%
47
=
or i16508 %44, %46
br
i1 %38,
label %
39, label %44
br
label %
udiv-end
Copier
Copié
Copier
Copié
39: ; preds = %._crit_edge.i.i.i.i.i.i.i.i
udiv-do-while: ; preds = %udiv-do-while, %udiv-preheader
%40 = add i64 %.sroa.09.1.lcssa.i.i.i.i.i.i.i.i, -1
%48 = phi i16508 [ 0, %udiv-preheader ], [ %59, %udiv-do-while ]
%41
= getelementptr inbounds
[12 x i8], ptr %4, i64 0, i64 %40
%49 = phi i16508 [ %66, %udiv-preheader ], [ %62, %udiv-do-while ]
%42 = trunc i16 %.sroa.0.0..sroa.0.0..sroa.0.0.
1.lcssa.i.i.i.i.i.i.i.i
to i8
%50 = phi i16508 [ %64, %udiv-preheader ], [ %61, %udiv-do-while ]
%43 = add nuw nsw i8 %42, 48
%51 = phi i16508 [ %68, %udiv-preheader ], [ %56, %udiv-do-while ]
store i8 %
43
, ptr %
41
, align 1
%52 = shl i16508 %50, 1
%53 = lshr i16508 %51, 16507
%54 = or i16508 %52, %53
%55 = shl i16508 %51, 1
%56 = or i16508 %48, %55
%57 = sub i16508 %65, %54
%58 = ashr i16508 %57, 16507
%59 = and i16508 %58, 1
%60 = and i16508 %58, %31
%61 = sub i16508 %54, %60
%62 = add i16508 %49, -1
%63 = icmp eq i16508 %62, 0
br i1 %63, label %udiv-loop-exit, label %udiv-do-while
udiv-preheader: ; preds = %udiv-bb1
%64 = lshr i16508 %32, %66
%65 = add i16508 %31, -1
br label %udiv-do-while
udiv-bb1: ; preds = %.lr.ph.i.i.i.i.i.i.i.i_udiv-special-cases
%66 = add i16508 %38, 1
%67 = sub i16508 16507, %38
%68 = shl i16508 %32, %67
%69 = icmp eq i16508 %66, 0
br i1 %69, label %udiv-loop-exit, label %udiv-preheader
udiv-end: ; preds = %udiv-loop-exit, %.lr.ph.i.i.i.i.i.i.i.i_udiv-special-cases
%70 = phi i16508 [ %47, %udiv-loop-exit ], [ %42, %.lr.ph.i.i.i.i.i.i.i.i_udiv-special-cases ]
%71 = mul i16508 %70, 100
%.decomposed = sub i16508 %.frozen, %71
%72 = trunc i16508 %.decomposed to i64
%73 = shl nuw nsw i64 %72, 1
%74
= getelementptr inbounds
i8, ptr @__anon_3790, i64 %73
%75 = load i16, ptr %74, align 1, !noalias !2
%sunkaddr = getelementptr inbounds i8, ptr %4, i64 %30
store i16 %75, ptr %sunkaddr, align 1
store i16508 %70, ptr %.sroa.0.i.i.i.i.i.i.i.i, align 16
%.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.1.i.i.i.i.i.i.i.i = load i16512, ptr %.sroa.0.i.i.i.i.i.i.i.i, align 16
%76 = trunc i16512 %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.1.i.i.i.i.i.i.i.i to i16508
%77 = icmp ugt i16508 %76, 99
br i1 %77, label %.lr.ph.i.i.i.i.i.i.i.i_udiv-special-cases, label %._crit_edge.loopexit.i.i.i.i.i.i.i.i
._crit_edge.loopexit.i.i.i.i.i.i.i.i: ; preds = %udiv-end
%78 = trunc i16512 %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.1.i.i.i.i.i.i.i.i to i16508
%extract.t10.i.i.i.i.i.i.i.i = trunc i16512 %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.1.i.i.i.i.i.i.i.i to i64
%extract.t7.i.i.i.i.i.i.i.i = trunc i16512 %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.1.i.i.i.i.i.i.i.i to i8
br label %._crit_edge.i.i.i.i.i.i.i.i
._crit_edge.i.i.i.i.i.i.i.i: ; preds = %._crit_edge.loopexit.i.i.i.i.i.i.i.i, %Thread.Mutex.Recursive.lock.exit.i.i.i.i
%.sroa.09.
1.lcssa.i.i.i.i.i.i.i.i
= phi i64 [ 16509, %Thread.Mutex.Recursive.lock.exit.i.i.i.i ], [ %30, %._crit_edge.loopexit.i.i.i.i.i.i.i.i ]
%.sroa.0.0..sroa.0.0..sroa.0.0.1.lcssa.off0.i.i.i.i.i.i.i.i = phi i8 [ %extract.t.i.i.i.i.i.i.i.i, %Thread.Mutex.Recursive.lock.exit.i.i.i.i ], [ %extract.t7.i.i.i.i.i.i.i.i, %._crit_edge.loopexit.i.i.i.i.i.i.i.i ]
%.sroa.0.0..sroa.0.0..sroa.0.0.1.lcssa.off08.i.i.i.i.i.i.i.i = phi i64 [ %extract.t9.i.i.i.i.i.i.i.i, %Thread.Mutex.Recursive.lock.exit.i.i.i.i ], [ %extract.t10.i.i.i.i.i.i.i.i, %._crit_edge.loopexit.i.i.i.i.i.i.i.i ]
%.lcssa.i.i.i.i.i.i.i.i = phi i16508 [ %26, %Thread.Mutex.Recursive.lock.exit.i.i.i.i ], [ %78, %._crit_edge.loopexit.i.i.i.i.i.i.i.i ]
%79 = icmp ult i16508 %.lcssa.i.i.i.i.i.i.i.i, 10
br i1 %79, label %80, label %84
80: ; preds = %._crit_edge.i.i.i.i.i.i.i.i
%81 = add i64 %.sroa.09.1.lcssa.i.i.i.i.i.i.i.i, -1
%82 = getelementptr inbounds [16509 x i8], ptr %4, i64 0, i64 %81
%83 = add nuw nsw i8 %.sroa.0.0..sroa.0.0..sroa.0.0.1.lcssa.off0.i.i.i.i.i.i.i.i, 48
store i8 %
83
, ptr %
82
, align 1
br label %fmt.formatType__anon_3567.exit.i.i.i.i
br label %fmt.formatType__anon_3567.exit.i.i.i.i
Copier
Copié
Copier
Copié
44
: ; preds = %._crit_edge.i.i.i.i.i.i.i.i
84
: ; preds = %._crit_edge.i.i.i.i.i.i.i.i
%
45
= add i64 %.sroa.09.1.lcssa.i.i.i.i.i.i.i.i, -2
%
85
= add i64 %.sroa.09.1.lcssa.i.i.i.i.i.i.i.i, -2
%
46
= getelementptr inbounds i8, ptr %4, i64 %
45
%
86
= getelementptr inbounds i8, ptr %4, i64 %
85
%
.mask.i.i.i.i.i.i.i.i
= shl
i16
%.sroa.0.0..sroa.0.0..sroa.0.0.1.lcssa.
i.i.i.i.i.i.i.i, 1
%
87
= shl
nuw nsw i64
%.sroa.0.0..sroa.0.0..sroa.0.0.1.lcssa.
off08.
i.i.i.i.i.i.i.i, 1
%
promoted18 = zext i16 %.mask.i.i.i.i.i.i.i.i to i64
%
88
= getelementptr inbounds i8, ptr @__anon_
3790
, i64 %
87
%47 = and i64 %promoted18, 4094
%
89
= load i16, ptr %
88
, align 1, !noalias !5
%48
= getelementptr inbounds i8, ptr @__anon_
3758
, i64 %
47
store i16 %
89
, ptr %
86
, align 1
%
49
= load i16, ptr %
48
, align 1, !noalias !5
store i16 %
49
, ptr %
46
, align 1
br label %fmt.formatType__anon_3567.exit.i.i.i.i
br label %fmt.formatType__anon_3567.exit.i.i.i.i
Copier
Copié
Copier
Copié
fmt.formatType__anon_3567.exit.i.i.i.i: ; preds = %
44
, %
39
fmt.formatType__anon_3567.exit.i.i.i.i: ; preds = %
84
, %
80
%.sroa.09.0.i.i.i.i.i.i.i.i = phi i64 [ %
40
, %
39
], [ %
45
, %
44
]
%.sroa.09.0.i.i.i.i.i.i.i.i = phi i64 [ %
81
, %
80
], [ %
85
, %
84
]
%
50
= getelementptr inbounds i8, ptr %4, i64 %.sroa.09.0.i.i.i.i.i.i.i.i
%
90
= getelementptr inbounds i8, ptr %4, i64 %.sroa.09.0.i.i.i.i.i.i.i.i
%
51
= sub nuw i64
12
, %.sroa.09.0.i.i.i.i.i.i.i.i
%
91
= sub nuw i64
16509
, %.sroa.09.0.i.i.i.i.i.i.i.i
%
52
= call fastcc i16 @fmt.formatBuf__anon_3980(ptr nonnull readonly align 1 %
50
, i64 %
51
, ptr nonnull readonly align 8 @16, ptr nonnull readonly align 8 %7)
%
92
= call fastcc i16 @fmt.formatBuf__anon_3980(ptr nonnull readonly align 1 %
90
, i64 %
91
, ptr nonnull readonly align 8 @16, ptr nonnull readonly align 8 %7)
call void @llvm.lifetime.end.p0(i64
2
, ptr nonnull %.sroa.0.i.i.i.i.i.i.i.i)
call void @llvm.lifetime.end.p0(i64
2064
, ptr nonnull %.sroa.0.i.i.i.i.i.i.i.i)
call void @llvm.lifetime.end.p0(i64
12
, ptr nonnull %4)
call void @llvm.lifetime.end.p0(i64
16509
, ptr nonnull %4)
%.not.i.i.i.i = icmp eq i16 %
52
, 0
%.not.i.i.i.i = icmp eq i16 %
92
, 0
br i1 %.not.i.i.i.i, label %.preheader.i.i, label %.loopexit.i.i
br i1 %.not.i.i.i.i, label %.preheader.i.i, label %.loopexit.i.i
.preheader.i.i: ; preds = %fmt.formatType__anon_3567.exit.i.i.i.i
.preheader.i.i: ; preds = %fmt.formatType__anon_3567.exit.i.i.i.i
Copier
Copié
Copier
Copié
br label %
55
br label %
95
53: ; preds = %55
%54 = add nuw i64 %.sroa.0.0.copyload.i.i, %.sroa.0.014.i.i.i.i.i
%.not.i.i.i4.i.i = icmp eq i64 %54, 1
br i1 %.not.i.i.i4.i.i, label %io.Writer.print__anon_2829.exit.i.i, label %55
55: ; preds = %53, %.preheader.i.i
%.sroa.0.014.i.i.i.i.i = phi i64 [ %54, %53 ], [ 0, %.preheader.i.i ]
%56 = getelementptr inbounds i8, ptr getelementptr inbounds ([5 x i8], ptr @__anon_1474, i64 0, i64 3), i64 %.sroa.0.014.i.i.i.i.i
%57 = sub nuw i64 1, %.sroa.0.014.i.i.i.i.i
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4)
%.val.i.i.i = load i32, ptr %8, align 4, !noalias !8
call fastcc void @fs.File.write(ptr noalias %4, i32 %.val.i.i.i, ptr nonnull readonly align 1 %56, i64 %57), !noalias !8
%.sroa.0.0.copyload.i.i = load i64, ptr %4, align 8, !noalias !13
%sunkaddr = getelementptr inbounds i8, ptr %4, i64 8
%.sroa.4.0.copyload.i.i = load i16, ptr %sunkaddr, align 8, !noalias !13
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4)
%.not7.i.i.i.i.i = icmp eq i16 %.sroa.4.0.copyload.i.i, 0
br i1 %.not7.i.i.i.i.i, label %53, label %.loopexit.i.i
common.ret.sink.split.i.i: ; preds = %.loopexit.i.i, %io.Writer.print__anon_2829.exit.i.i
store atomic i64 -1, ptr @Progress.stderr_mutex unordered, align 8
call void @os_unfair_lock_unlock(ptr nonnull align 4 getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 2))
br label %biggy.main.exit
io.Writer.print__anon_2829.exit.i.i: ; preds = %53
%58 = load i64, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8
%59 = add i64 %58, -1
store i64 %59, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8
%60 = icmp eq i64 %59, 0
br i1 %60, label %common.ret.sink.split.i.i, label %biggy.main.exit
.loopexit.i.i: ; preds = %55, %fmt.formatType__anon_3567.exit.i.i.i.i
%61 = load i64, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8
%62 = add i64 %61, -1
store i64 %62, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8
%63 = icmp eq i64 %62, 0
br i1 %63, label %common.ret.sink.split.i.i, label %biggy.main.exit
biggy.main.exit: ; preds = %common.ret.sink.split.i.i, %io.Writer.print__anon_2829.exit.i.i, %.loopexit.i.i
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7)
call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8)
ret i32 0
}
; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable
define internal void @start.noopSigHandler(i32 %0) unnamed_addr #1 {
ret void
}
; Function Attrs: cold noreturn nounwind uwtable
define internal fastcc void @debug.panic__anon_2624(ptr nocapture nonnull readonly align 8 %0) unnamed_addr #2 !section_prefix !14 {
tail call fastcc void @debug.panicExtra__anon_3213(ptr nonnull readonly align 8 %0)
unreachable
}
; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #3
; Function Attrs: nounwind uwtable
define internal fastcc void @"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn"(ptr noalias nocapture nonnull writeonly sret({ i64, i16, [6 x i8] }) %0, ptr nocapture nonnull readonly align 1 %1, ptr nocapture nonnull readonly align 1 %2, i64 %3) unnamed_addr #0 {
%5 = alloca [16 x i8], align 8
%.val = load i32, ptr %1, align 4
call fastcc void @fs.File.write(ptr noalias %5, i32 %.val, ptr nonnull readonly align 1 %2, i64 %3)
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr noundef nonnull align 8 dereferenceable(16) %5, i64 16, i1 false)
ret void
}
; Function Attrs: nounwind uwtable
declare i32 @sigaction(i32, ptr noalias readonly align 8, ptr noalias align 8) local_unnamed_addr #0
; Function Attrs: cold noreturn nounwind uwtable
define internal fastcc void @debug.panicExtra__anon_3213(ptr nocapture nonnull readonly align 8 %0) unnamed_addr #2 !section_prefix !14 {
%2 = alloca [16 x i8], align 8
%3 = alloca [8 x i8], align 8
%4 = alloca [24 x i8], align 8
%5 = alloca [4111 x i8], align 1
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2)
call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3)
call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4)
store ptr %5, ptr %4, align 8, !noalias !15
%.sroa.2.0..sroa_idx.i = getelementptr inbounds i8, ptr %4, i64 8
store i64 4096, ptr %.sroa.2.0..sroa_idx.i, align 8, !noalias !15
%.sroa.3.0..sroa_idx.i = getelementptr inbounds i8, ptr %4, i64 16
store i64 0, ptr %.sroa.3.0..sroa_idx.i, align 8, !noalias !15
%6 = ptrtoint ptr %4 to i64
store i64 %6, ptr %3, align 8, !noalias !15
store ptr %3, ptr %2, align 8, !noalias !15
%7 = getelementptr inbounds %io.Writer, ptr %2, i64 0, i32 1
store ptr @"io.GenericWriter(*io.fixed_buffer_stream.FixedBufferStream([]u8),error{NoSpaceLeft},(function 'write')).typeErasedWriteFn", ptr %7, align 8, !noalias !15
br label %8
8: ; preds = %12, %1
%.sroa.0.014.i.i.i = phi i64 [ 0, %1 ], [ %20, %12 ]
%9 = load ptr, ptr %3, align 8, !noalias !18
%10 = getelementptr inbounds %"io.fixed_buffer_stream.FixedBufferStream([]u8)", ptr %9, i64 0, i32 1
%11 = load i64, ptr %10, align 8, !noalias !23
%.elt8.i.i.i = getelementptr inbounds { ptr, i64 }, ptr %9, i64 0, i32 1
%.unpack9.i.i.i = load i64, ptr %.elt8.i.i.i, align 8, !noalias !23
%.not.i.i6.i = icmp ugt i64 %.unpack9.i.i.i, %11
br i1 %.not.i.i6.i, label %12, label %.loopexit
12: ; preds = %8
%13 = sub nuw i64 36, %.sroa.0.014.i.i.i
%14 = getelementptr inbounds i8, ptr @__anon_1704, i64 %.sroa.0.014.i.i.i
%.unpack.i.i.i = load ptr, ptr %9, align 8, !noalias !23
%15 = sub nuw i64 %.unpack9.i.i.i, %11
%16 = call i64 @llvm.umin.i64(i64 %15, i64 %13)
%17 = getelementptr inbounds i8, ptr %.unpack.i.i.i, i64 %11
call void @llvm.memcpy.p0.p0.i64(ptr align 1 %17, ptr nonnull align 1 %14, i64 %16, i1 false), !noalias !23
%sunkaddr = getelementptr inbounds i8, ptr %9, i64 16
%18 = load i64, ptr %sunkaddr, align 8, !noalias !23
%19 = add nuw i64 %18, %16
store i64 %19, ptr %sunkaddr, align 8, !noalias !23
%20 = add nuw i64 %16, %.sroa.0.014.i.i.i
%.not.i.i.i = icmp eq i64 %20, 36
br i1 %.not.i.i.i, label %fmt.format__anon_3616.exit.i, label %8
fmt.format__anon_3616.exit.i: ; preds = %12
%.unpack.i.i = load ptr, ptr %0, align 8, !noalias !15
%.elt1.i.i = getelementptr inbounds { ptr, i64 }, ptr %0, i64 0, i32 1
%.unpack2.i.i = load i64, ptr %.elt1.i.i, align 8, !noalias !15
%21 = call fastcc i16 @fmt.formatBuf__anon_3980(ptr nonnull readonly align 1 %.unpack.i.i, i64 %.unpack2.i.i, ptr nonnull readonly align 8 @16, ptr nonnull readonly align 8 %2), !noalias !15
%22 = icmp eq i16 %21, 0
br i1 %22, label %24, label %.loopexit
23: ; preds = %.loopexit, %24
%.fca.0.load.pn = phi ptr [ %.val.i, %24 ], [ %5, %.loopexit ]
%.fca.1.load.pn = phi i64 [ %.val3.i, %24 ], [ 4111, %.loopexit ]
call fastcc void @debug.panicImpl(ptr nonnull readonly align 1 %.fca.0.load.pn, i64 %.fca.1.load.pn)
unreachable
24: ; preds = %fmt.format__anon_3616.exit.i
%.val.i = load ptr, ptr %4, align 8, !noalias !15
%sunkaddr6 = getelementptr inbounds i8, ptr %4, i64 16
%.val3.i = load i64, ptr %sunkaddr6, align 8, !noalias !15
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2)
call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3)
call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4)
br label %23
.loopexit: ; preds = %8, %fmt.format__anon_3616.exit.i
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2)
call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3)
call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4)
%25 = getelementptr inbounds i8, ptr %5, i64 4096
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(15) %25, ptr noundef nonnull align 1 dereferenceable(15) @__anon_2157, i64 15, i1 false)
br label %23
}
; Function Attrs: nounwind uwtable
define internal fastcc void @fs.File.write(ptr noalias nocapture nonnull writeonly %0, i32 %.0.val, ptr nocapture nonnull readonly align 1 %1, i64 %2) unnamed_addr #0 {
%.sroa.16 = alloca [6 x i8], align 2
tail call void @llvm.experimental.noalias.scope.decl(metadata !26)
%4 = icmp eq i64 %2, 0
br i1 %4, label %6, label %.preheader.i
Copier
Copié
Copier
Copié
.preheader.i
:
; preds = %
3
93
:
; preds = %
95
%
5
=
tail call
i64
@llvm.umin.i64(
i64 %
2, i64 2147
%
94
=
add nuw
i64
%.sroa.0.0.copyload.i.i, %.sroa.0.014.i.i.i.i.i
%.not.i.i.i4.i.i = icmp eq
i64 %
94, 1
br i1 %.not.i.i.i4.i.i, la
Différences enregistrées
Texte d'origine
Ouvrir un fichier
; ModuleID = 'BitcodeBuffer' source_filename = "biggy" target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-macosx14.5.0-unknown" %macho.mach_header_64 = type { i32, i32, i32, i32, i32, i32, i32, i32 } %Thread.Mutex.Recursive = type { i64, i64, %Thread.Mutex, [4 x i8] } %Thread.Mutex = type { %Thread.Mutex.DarwinImpl } %Thread.Mutex.DarwinImpl = type { %c.darwin.os_unfair_lock } %c.darwin.os_unfair_lock = type { i32 } %"atomic.Value(u8)" = type { i8 } %fmt.FormatOptions = type { { i64, i8, [7 x i8] }, { i64, i8, [7 x i8] }, i21, i2, [3 x i8] } %io.Writer = type { ptr, ptr } %"io.fixed_buffer_stream.FixedBufferStream([]u8)" = type { { ptr, i64 }, i64 } @os.argv = internal unnamed_addr global { ptr, i64 } undef, align 8 @os.environ = internal unnamed_addr global { ptr, i64 } undef, align 8 @__anon_1669 = internal unnamed_addr constant { { ptr }, i32, i32 } { { ptr } { ptr @start.noopSigHandler }, i32 0, i32 0 }, align 8 @_mh_execute_header = weak_odr dso_local local_unnamed_addr global %macho.mach_header_64 undef, align 4 @__anon_2157 = internal unnamed_addr constant [16 x i8] c"(msg truncated)\00", align 1 @Progress.stderr_mutex = internal unnamed_addr global %Thread.Mutex.Recursive { i64 -1, i64 0, %Thread.Mutex zeroinitializer, [4 x i8] undef }, align 8 @__anon_1474 = internal unnamed_addr constant [5 x i8] c"{d}\0A\00", align 1 @__anon_1704 = internal unnamed_addr constant [40 x i8] c"failed to set noop SIGPIPE handler: {s}\00", align 1 @0 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 7, [6 x i8] undef }, align 8 @1 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 14, [6 x i8] undef }, align 8 @2 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 12, [6 x i8] undef }, align 8 @3 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 2, [6 x i8] undef }, align 8 @4 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 3, [6 x i8] undef }, align 8 @5 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 4, [6 x i8] undef }, align 8 @6 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 8, [6 x i8] undef }, align 8 @7 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 9, [6 x i8] undef }, align 8 @8 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 15, [6 x i8] undef }, align 8 @9 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 6, [6 x i8] undef }, align 8 @debug.panic_stage = internal thread_local unnamed_addr global i64 0, align 8 @debug.panicking = internal unnamed_addr global %"atomic.Value(u8)" zeroinitializer, align 1 @10 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 23, i3 undef, [1 x i8] undef }, align 2 @__anon_3651 = internal unnamed_addr constant [3 x i8] c"\EF\BF\BD", align 1 @11 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 5, [6 x i8] undef }, align 8 @__anon_3758 = internal unnamed_addr constant [201 x i8] c"00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899\00", align 1 @12 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 0, i3 1, [1 x i8] undef }, align 4 @13 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 0, i3 2, [1 x i8] undef }, align 4 @14 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 0, i3 3, [1 x i8] undef }, align 4 @15 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 0, i3 -4, [1 x i8] undef }, align 4 @__anon_3287 = internal unnamed_addr constant [18 x i8] c"thread {} panic: \00", align 1 @16 = private unnamed_addr constant %fmt.FormatOptions { { i64, i8, [7 x i8] } { i64 undef, i8 0, [7 x i8] undef }, { i64, i8, [7 x i8] } { i64 undef, i8 0, [7 x i8] undef }, i21 32, i2 -2, [3 x i8] undef }, align 8 @__anon_3300 = internal unnamed_addr constant [5 x i8] c"{s}\0A\00", align 1 @__anon_3318 = internal unnamed_addr constant [36 x i8] c"Panicked during a panic. Aborting.\0A\00", align 1 @__anon_3692 = internal unnamed_addr constant [49 x i8] c"Unable to dump stack trace: debug info stripped\0A\00", align 1 @17 = private unnamed_addr constant [22 x i8] c"OperationNotSupported\00", align 1 ; Function Attrs: nounwind uwtable define dso_local noundef i32 @main(i32 %0, ptr nonnull align 8 %1, ptr nonnull align 8 %2) local_unnamed_addr #0 { %4 = alloca [16 x i8], align 8 %.sroa.0.i.i.i.i.i.i.i.i = alloca i16, align 2 %5 = alloca [12 x i8], align 1 %6 = alloca [8 x i8], align 8 %7 = alloca [16 x i8], align 8 %8 = alloca [4 x i8], align 4 %9 = alloca [16 x i8], align 8 br label %10 10: ; preds = %10, %3 %lsr.iv = phi i64 [ %lsr.iv.next, %10 ], [ -1, %3 ] %11 = shl i64 %lsr.iv, 3 %scevgep14 = getelementptr i8, ptr %2, i64 %11 %scevgep15 = getelementptr i8, ptr %scevgep14, i64 8 %12 = load ptr, ptr %scevgep15, align 8 %.not = icmp eq ptr %12, null %lsr.iv.next = add i64 %lsr.iv, 1 br i1 %.not, label %13, label %10 13: ; preds = %10 %14 = sext i32 %0 to i64 store ptr %1, ptr @os.argv, align 8 store i64 %14, ptr getelementptr inbounds ({ ptr, i64 }, ptr @os.argv, i64 0, i32 1), align 8 store ptr %2, ptr @os.environ, align 8 store i64 %lsr.iv.next, ptr getelementptr inbounds ({ ptr, i64 }, ptr @os.environ, i64 0, i32 1), align 8 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) %15 = tail call i32 @sigaction(i32 13, ptr noalias nonnull readonly align 8 @__anon_1669, ptr noalias align 8 null) %16 = icmp eq i32 %15, -1 br i1 %16, label %posix.errno__anon_3210.exit.i.i, label %start.maybeIgnoreSigpipe.exit posix.errno__anon_3210.exit.i.i: ; preds = %13 %17 = tail call ptr @__error() %18 = load i32, ptr %17, align 4 %.fr3.i.i = freeze i32 %18 %19 = and i32 %.fr3.i.i, 65535 %switch.i.i = icmp eq i32 %19, 0 br i1 %switch.i.i, label %start.maybeIgnoreSigpipe.exit, label %posix.sigaction.exit.i posix.sigaction.exit.i: ; preds = %posix.errno__anon_3210.exit.i.i store ptr @17, ptr %4, align 8 %.fca.1.gep.i = getelementptr inbounds { ptr, i64 }, ptr %4, i64 0, i32 1 store i64 21, ptr %.fca.1.gep.i, align 8 call fastcc void @debug.panic__anon_2624(ptr nonnull readonly align 8 %4) unreachable start.maybeIgnoreSigpipe.exit: ; preds = %13, %posix.errno__anon_3210.exit.i.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) %20 = call i32 @pthread_threadid_np(ptr align 1 null, ptr nonnull align 8 %4) %21 = load i64, ptr %4, align 8 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) %22 = load atomic i64, ptr @Progress.stderr_mutex unordered, align 8 %.not.i.i.i.i.i = icmp eq i64 %22, %21 br i1 %.not.i.i.i.i.i, label %._crit_edge.i.i.i.i.i, label %24 ._crit_edge.i.i.i.i.i: ; preds = %start.maybeIgnoreSigpipe.exit %.pre.i.i.i.i.i = load i64, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8 %23 = add nuw i64 %.pre.i.i.i.i.i, 1 br label %Thread.Mutex.Recursive.lock.exit.i.i.i.i 24: ; preds = %start.maybeIgnoreSigpipe.exit call void @os_unfair_lock_lock(ptr nonnull align 4 getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 2)) store atomic i64 %21, ptr @Progress.stderr_mutex unordered, align 8 br label %Thread.Mutex.Recursive.lock.exit.i.i.i.i Thread.Mutex.Recursive.lock.exit.i.i.i.i: ; preds = %24, %._crit_edge.i.i.i.i.i %25 = phi i64 [ %23, %._crit_edge.i.i.i.i.i ], [ 1, %24 ] store i64 %25, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8 store i32 2, ptr %8, align 4 store ptr %8, ptr %7, align 8 %.sroa.2.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %7, i64 8 store ptr @"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn", ptr %.sroa.2.0..sroa_idx.i.i, align 8 call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %.sroa.0.i.i.i.i.i.i.i.i) call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %4) store i11 -535, ptr %.sroa.0.i.i.i.i.i.i.i.i, align 2 %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.13.i.i.i.i.i.i.i.i = load i16, ptr %.sroa.0.i.i.i.i.i.i.i.i, align 2 %26 = trunc i16 %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.13.i.i.i.i.i.i.i.i to i11 %27 = icmp ugt i11 %26, 99 br i1 %27, label %.lr.ph.i.i.i.i.i.i.i.i.preheader, label %._crit_edge.i.i.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i.i.i.preheader: ; preds = %Thread.Mutex.Recursive.lock.exit.i.i.i.i %28 = trunc i16 %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.13.i.i.i.i.i.i.i.i to i11 br label %.lr.ph.i.i.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i.i.i.i.preheader, %.lr.ph.i.i.i.i.i.i.i.i %29 = phi i11 [ %36, %.lr.ph.i.i.i.i.i.i.i.i ], [ %28, %.lr.ph.i.i.i.i.i.i.i.i.preheader ] %.sroa.09.14.i.i.i.i.i.i.i.i = phi i64 [ %30, %.lr.ph.i.i.i.i.i.i.i.i ], [ 12, %.lr.ph.i.i.i.i.i.i.i.i.preheader ] %30 = add i64 %.sroa.09.14.i.i.i.i.i.i.i.i, -2 %scevgep = getelementptr i8, ptr %4, i64 %.sroa.09.14.i.i.i.i.i.i.i.i %scevgep13 = getelementptr i8, ptr %scevgep, i64 -2 %.frozen = freeze i11 %29 %31 = udiv i11 %.frozen, 100 %32 = mul i11 %31, 100 %.decomposed = sub i11 %.frozen, %32 %promoted = zext i11 %.decomposed to i64 %33 = shl nuw nsw i64 %promoted, 1 %34 = getelementptr inbounds i8, ptr @__anon_3758, i64 %33 %35 = load i16, ptr %34, align 1, !noalias !2 store i16 %35, ptr %scevgep13, align 1 store i11 %31, ptr %.sroa.0.i.i.i.i.i.i.i.i, align 2 %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.1.i.i.i.i.i.i.i.i = load i16, ptr %.sroa.0.i.i.i.i.i.i.i.i, align 2 %36 = trunc i16 %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.1.i.i.i.i.i.i.i.i to i11 %37 = icmp ugt i11 %36, 99 br i1 %37, label %.lr.ph.i.i.i.i.i.i.i.i, label %._crit_edge.i.i.i.i.i.i.i.i ._crit_edge.i.i.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i.i.i.i, %Thread.Mutex.Recursive.lock.exit.i.i.i.i %.sroa.09.1.lcssa.i.i.i.i.i.i.i.i = phi i64 [ 12, %Thread.Mutex.Recursive.lock.exit.i.i.i.i ], [ %30, %.lr.ph.i.i.i.i.i.i.i.i ] %.sroa.0.0..sroa.0.0..sroa.0.0.1.lcssa.i.i.i.i.i.i.i.i = phi i16 [ %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.13.i.i.i.i.i.i.i.i, %Thread.Mutex.Recursive.lock.exit.i.i.i.i ], [ %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.1.i.i.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i.i.i ] %.lcssa.i.i.i.i.i.i.i.i = phi i11 [ %26, %Thread.Mutex.Recursive.lock.exit.i.i.i.i ], [ %36, %.lr.ph.i.i.i.i.i.i.i.i ] %38 = icmp ult i11 %.lcssa.i.i.i.i.i.i.i.i, 10 br i1 %38, label %39, label %44 39: ; preds = %._crit_edge.i.i.i.i.i.i.i.i %40 = add i64 %.sroa.09.1.lcssa.i.i.i.i.i.i.i.i, -1 %41 = getelementptr inbounds [12 x i8], ptr %4, i64 0, i64 %40 %42 = trunc i16 %.sroa.0.0..sroa.0.0..sroa.0.0.1.lcssa.i.i.i.i.i.i.i.i to i8 %43 = add nuw nsw i8 %42, 48 store i8 %43, ptr %41, align 1 br label %fmt.formatType__anon_3567.exit.i.i.i.i 44: ; preds = %._crit_edge.i.i.i.i.i.i.i.i %45 = add i64 %.sroa.09.1.lcssa.i.i.i.i.i.i.i.i, -2 %46 = getelementptr inbounds i8, ptr %4, i64 %45 %.mask.i.i.i.i.i.i.i.i = shl i16 %.sroa.0.0..sroa.0.0..sroa.0.0.1.lcssa.i.i.i.i.i.i.i.i, 1 %promoted18 = zext i16 %.mask.i.i.i.i.i.i.i.i to i64 %47 = and i64 %promoted18, 4094 %48 = getelementptr inbounds i8, ptr @__anon_3758, i64 %47 %49 = load i16, ptr %48, align 1, !noalias !5 store i16 %49, ptr %46, align 1 br label %fmt.formatType__anon_3567.exit.i.i.i.i fmt.formatType__anon_3567.exit.i.i.i.i: ; preds = %44, %39 %.sroa.09.0.i.i.i.i.i.i.i.i = phi i64 [ %40, %39 ], [ %45, %44 ] %50 = getelementptr inbounds i8, ptr %4, i64 %.sroa.09.0.i.i.i.i.i.i.i.i %51 = sub nuw i64 12, %.sroa.09.0.i.i.i.i.i.i.i.i %52 = call fastcc i16 @fmt.formatBuf__anon_3980(ptr nonnull readonly align 1 %50, i64 %51, ptr nonnull readonly align 8 @16, ptr nonnull readonly align 8 %7) call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %.sroa.0.i.i.i.i.i.i.i.i) call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %4) %.not.i.i.i.i = icmp eq i16 %52, 0 br i1 %.not.i.i.i.i, label %.preheader.i.i, label %.loopexit.i.i .preheader.i.i: ; preds = %fmt.formatType__anon_3567.exit.i.i.i.i br label %55 53: ; preds = %55 %54 = add nuw i64 %.sroa.0.0.copyload.i.i, %.sroa.0.014.i.i.i.i.i %.not.i.i.i4.i.i = icmp eq i64 %54, 1 br i1 %.not.i.i.i4.i.i, label %io.Writer.print__anon_2829.exit.i.i, label %55 55: ; preds = %53, %.preheader.i.i %.sroa.0.014.i.i.i.i.i = phi i64 [ %54, %53 ], [ 0, %.preheader.i.i ] %56 = getelementptr inbounds i8, ptr getelementptr inbounds ([5 x i8], ptr @__anon_1474, i64 0, i64 3), i64 %.sroa.0.014.i.i.i.i.i %57 = sub nuw i64 1, %.sroa.0.014.i.i.i.i.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) %.val.i.i.i = load i32, ptr %8, align 4, !noalias !8 call fastcc void @fs.File.write(ptr noalias %4, i32 %.val.i.i.i, ptr nonnull readonly align 1 %56, i64 %57), !noalias !8 %.sroa.0.0.copyload.i.i = load i64, ptr %4, align 8, !noalias !13 %sunkaddr = getelementptr inbounds i8, ptr %4, i64 8 %.sroa.4.0.copyload.i.i = load i16, ptr %sunkaddr, align 8, !noalias !13 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) %.not7.i.i.i.i.i = icmp eq i16 %.sroa.4.0.copyload.i.i, 0 br i1 %.not7.i.i.i.i.i, label %53, label %.loopexit.i.i common.ret.sink.split.i.i: ; preds = %.loopexit.i.i, %io.Writer.print__anon_2829.exit.i.i store atomic i64 -1, ptr @Progress.stderr_mutex unordered, align 8 call void @os_unfair_lock_unlock(ptr nonnull align 4 getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 2)) br label %biggy.main.exit io.Writer.print__anon_2829.exit.i.i: ; preds = %53 %58 = load i64, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8 %59 = add i64 %58, -1 store i64 %59, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8 %60 = icmp eq i64 %59, 0 br i1 %60, label %common.ret.sink.split.i.i, label %biggy.main.exit .loopexit.i.i: ; preds = %55, %fmt.formatType__anon_3567.exit.i.i.i.i %61 = load i64, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8 %62 = add i64 %61, -1 store i64 %62, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8 %63 = icmp eq i64 %62, 0 br i1 %63, label %common.ret.sink.split.i.i, label %biggy.main.exit biggy.main.exit: ; preds = %common.ret.sink.split.i.i, %io.Writer.print__anon_2829.exit.i.i, %.loopexit.i.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) ret i32 0 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable define internal void @start.noopSigHandler(i32 %0) unnamed_addr #1 { ret void } ; Function Attrs: cold noreturn nounwind uwtable define internal fastcc void @debug.panic__anon_2624(ptr nocapture nonnull readonly align 8 %0) unnamed_addr #2 !section_prefix !14 { tail call fastcc void @debug.panicExtra__anon_3213(ptr nonnull readonly align 8 %0) unreachable } ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #3 ; Function Attrs: nounwind uwtable define internal fastcc void @"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn"(ptr noalias nocapture nonnull writeonly sret({ i64, i16, [6 x i8] }) %0, ptr nocapture nonnull readonly align 1 %1, ptr nocapture nonnull readonly align 1 %2, i64 %3) unnamed_addr #0 { %5 = alloca [16 x i8], align 8 %.val = load i32, ptr %1, align 4 call fastcc void @fs.File.write(ptr noalias %5, i32 %.val, ptr nonnull readonly align 1 %2, i64 %3) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr noundef nonnull align 8 dereferenceable(16) %5, i64 16, i1 false) ret void } ; Function Attrs: nounwind uwtable declare i32 @sigaction(i32, ptr noalias readonly align 8, ptr noalias align 8) local_unnamed_addr #0 ; Function Attrs: cold noreturn nounwind uwtable define internal fastcc void @debug.panicExtra__anon_3213(ptr nocapture nonnull readonly align 8 %0) unnamed_addr #2 !section_prefix !14 { %2 = alloca [16 x i8], align 8 %3 = alloca [8 x i8], align 8 %4 = alloca [24 x i8], align 8 %5 = alloca [4111 x i8], align 1 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) store ptr %5, ptr %4, align 8, !noalias !15 %.sroa.2.0..sroa_idx.i = getelementptr inbounds i8, ptr %4, i64 8 store i64 4096, ptr %.sroa.2.0..sroa_idx.i, align 8, !noalias !15 %.sroa.3.0..sroa_idx.i = getelementptr inbounds i8, ptr %4, i64 16 store i64 0, ptr %.sroa.3.0..sroa_idx.i, align 8, !noalias !15 %6 = ptrtoint ptr %4 to i64 store i64 %6, ptr %3, align 8, !noalias !15 store ptr %3, ptr %2, align 8, !noalias !15 %7 = getelementptr inbounds %io.Writer, ptr %2, i64 0, i32 1 store ptr @"io.GenericWriter(*io.fixed_buffer_stream.FixedBufferStream([]u8),error{NoSpaceLeft},(function 'write')).typeErasedWriteFn", ptr %7, align 8, !noalias !15 br label %8 8: ; preds = %12, %1 %.sroa.0.014.i.i.i = phi i64 [ 0, %1 ], [ %20, %12 ] %9 = load ptr, ptr %3, align 8, !noalias !18 %10 = getelementptr inbounds %"io.fixed_buffer_stream.FixedBufferStream([]u8)", ptr %9, i64 0, i32 1 %11 = load i64, ptr %10, align 8, !noalias !23 %.elt8.i.i.i = getelementptr inbounds { ptr, i64 }, ptr %9, i64 0, i32 1 %.unpack9.i.i.i = load i64, ptr %.elt8.i.i.i, align 8, !noalias !23 %.not.i.i6.i = icmp ugt i64 %.unpack9.i.i.i, %11 br i1 %.not.i.i6.i, label %12, label %.loopexit 12: ; preds = %8 %13 = sub nuw i64 36, %.sroa.0.014.i.i.i %14 = getelementptr inbounds i8, ptr @__anon_1704, i64 %.sroa.0.014.i.i.i %.unpack.i.i.i = load ptr, ptr %9, align 8, !noalias !23 %15 = sub nuw i64 %.unpack9.i.i.i, %11 %16 = call i64 @llvm.umin.i64(i64 %15, i64 %13) %17 = getelementptr inbounds i8, ptr %.unpack.i.i.i, i64 %11 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %17, ptr nonnull align 1 %14, i64 %16, i1 false), !noalias !23 %sunkaddr = getelementptr inbounds i8, ptr %9, i64 16 %18 = load i64, ptr %sunkaddr, align 8, !noalias !23 %19 = add nuw i64 %18, %16 store i64 %19, ptr %sunkaddr, align 8, !noalias !23 %20 = add nuw i64 %16, %.sroa.0.014.i.i.i %.not.i.i.i = icmp eq i64 %20, 36 br i1 %.not.i.i.i, label %fmt.format__anon_3616.exit.i, label %8 fmt.format__anon_3616.exit.i: ; preds = %12 %.unpack.i.i = load ptr, ptr %0, align 8, !noalias !15 %.elt1.i.i = getelementptr inbounds { ptr, i64 }, ptr %0, i64 0, i32 1 %.unpack2.i.i = load i64, ptr %.elt1.i.i, align 8, !noalias !15 %21 = call fastcc i16 @fmt.formatBuf__anon_3980(ptr nonnull readonly align 1 %.unpack.i.i, i64 %.unpack2.i.i, ptr nonnull readonly align 8 @16, ptr nonnull readonly align 8 %2), !noalias !15 %22 = icmp eq i16 %21, 0 br i1 %22, label %24, label %.loopexit 23: ; preds = %.loopexit, %24 %.fca.0.load.pn = phi ptr [ %.val.i, %24 ], [ %5, %.loopexit ] %.fca.1.load.pn = phi i64 [ %.val3.i, %24 ], [ 4111, %.loopexit ] call fastcc void @debug.panicImpl(ptr nonnull readonly align 1 %.fca.0.load.pn, i64 %.fca.1.load.pn) unreachable 24: ; preds = %fmt.format__anon_3616.exit.i %.val.i = load ptr, ptr %4, align 8, !noalias !15 %sunkaddr6 = getelementptr inbounds i8, ptr %4, i64 16 %.val3.i = load i64, ptr %sunkaddr6, align 8, !noalias !15 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) br label %23 .loopexit: ; preds = %8, %fmt.format__anon_3616.exit.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) %25 = getelementptr inbounds i8, ptr %5, i64 4096 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(15) %25, ptr noundef nonnull align 1 dereferenceable(15) @__anon_2157, i64 15, i1 false) br label %23 } ; Function Attrs: nounwind uwtable define internal fastcc void @fs.File.write(ptr noalias nocapture nonnull writeonly %0, i32 %.0.val, ptr nocapture nonnull readonly align 1 %1, i64 %2) unnamed_addr #0 { %.sroa.16 = alloca [6 x i8], align 2 tail call void @llvm.experimental.noalias.scope.decl(metadata !26) %4 = icmp eq i64 %2, 0 br i1 %4, label %6, label %.preheader.i .preheader.i: ; preds = %3 %5 = tail call i64 @llvm.umin.i64(i64 %2, i64 2147483647) br label %7 6: ; preds = %3 call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, i8 0, i64 6, i1 false), !alias.scope !26 br label %posix.write.exit 7: ; preds = %posix.errno__anon_3734.exit.i, %.preheader.i %8 = tail call i64 @write(i32 %.0.val, ptr nonnull readonly align 1 %1, i64 %5), !noalias !26 %9 = icmp eq i64 %8, -1 br i1 %9, label %posix.errno__anon_3734.exit.i, label %posix.write.exit posix.errno__anon_3734.exit.i: ; preds = %7 %10 = tail call ptr @__error(), !noalias !26 %11 = load i32, ptr %10, align 4, !noalias !26 %12 = trunc i32 %11 to i16 %13 = zext i16 %12 to i32 switch i32 %13, label %posix.write.exit.loopexit [ i32 0, label %posix.write.exit i32 4, label %7 i32 22, label %14 i32 16, label %24 i32 35, label %15 i32 9, label %16 i32 54, label %23 i32 69, label %17 i32 27, label %18 i32 5, label %19 i32 28, label %20 i32 1, label %21 i32 32, label %22 ] 14: ; preds = %posix.errno__anon_3734.exit.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, ptr noundef nonnull align 2 dereferenceable(6) getelementptr inbounds ({ i64, i16, [6 x i8] }, ptr @0, i64 0, i32 2, i64 0), i64 6, i1 false) br label %posix.write.exit 15: ; preds = %posix.errno__anon_3734.exit.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, ptr noundef nonnull align 2 dereferenceable(6) getelementptr inbounds ({ i64, i16, [6 x i8] }, ptr @1, i64 0, i32 2, i64 0), i64 6, i1 false) br label %posix.write.exit 16: ; preds = %posix.errno__anon_3734.exit.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, ptr noundef nonnull align 2 dereferenceable(6) getelementptr inbounds ({ i64, i16, [6 x i8] }, ptr @2, i64 0, i32 2, i64 0), i64 6, i1 false) br label %posix.write.exit 17: ; preds = %posix.errno__anon_3734.exit.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, ptr noundef nonnull align 2 dereferenceable(6) getelementptr inbounds ({ i64, i16, [6 x i8] }, ptr @3, i64 0, i32 2, i64 0), i64 6, i1 false) br label %posix.write.exit 18: ; preds = %posix.errno__anon_3734.exit.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, ptr noundef nonnull align 2 dereferenceable(6) getelementptr inbounds ({ i64, i16, [6 x i8] }, ptr @4, i64 0, i32 2, i64 0), i64 6, i1 false) br label %posix.write.exit 19: ; preds = %posix.errno__anon_3734.exit.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, ptr noundef nonnull align 2 dereferenceable(6) getelementptr inbounds ({ i64, i16, [6 x i8] }, ptr @5, i64 0, i32 2, i64 0), i64 6, i1 false) br label %posix.write.exit 20: ; preds = %posix.errno__anon_3734.exit.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, ptr noundef nonnull align 2 dereferenceable(6) getelementptr inbounds ({ i64, i16, [6 x i8] }, ptr @11, i64 0, i32 2, i64 0), i64 6, i1 false) br label %posix.write.exit 21: ; preds = %posix.errno__anon_3734.exit.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, ptr noundef nonnull align 2 dereferenceable(6) getelementptr inbounds ({ i64, i16, [6 x i8] }, ptr @6, i64 0, i32 2, i64 0), i64 6, i1 false) br label %posix.write.exit 22: ; preds = %posix.errno__anon_3734.exit.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, ptr noundef nonnull align 2 dereferenceable(6) getelementptr inbounds ({ i64, i16, [6 x i8] }, ptr @7, i64 0, i32 2, i64 0), i64 6, i1 false) br label %posix.write.exit 23: ; preds = %posix.errno__anon_3734.exit.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, ptr noundef nonnull align 2 dereferenceable(6) getelementptr inbounds ({ i64, i16, [6 x i8] }, ptr @8, i64 0, i32 2, i64 0), i64 6, i1 false) br label %posix.write.exit 24: ; preds = %posix.errno__anon_3734.exit.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, ptr noundef nonnull align 2 dereferenceable(6) getelementptr inbounds ({ i64, i16, [6 x i8] }, ptr @9, i64 0, i32 2, i64 0), i64 6, i1 false) br label %posix.write.exit posix.write.exit.loopexit: ; preds = %posix.errno__anon_3734.exit.i br label %posix.write.exit posix.write.exit: ; preds = %7, %posix.errno__anon_3734.exit.i, %posix.write.exit.loopexit, %6, %14, %15, %16, %17, %18, %19, %20, %21, %22, %23, %24 %.sroa.0.0 = phi i64 [ 0, %6 ], [ undef, %22 ], [ undef, %21 ], [ undef, %20 ], [ undef, %19 ], [ undef, %18 ], [ undef, %17 ], [ undef, %23 ], [ undef, %16 ], [ undef, %15 ], [ undef, %24 ], [ undef, %14 ], [ %8, %posix.write.exit.loopexit ], [ %8, %7 ], [ -1, %posix.errno__anon_3734.exit.i ] %.sroa.14.0 = phi i16 [ 0, %6 ], [ 9, %22 ], [ 8, %21 ], [ 5, %20 ], [ 4, %19 ], [ 3, %18 ], [ 2, %17 ], [ 15, %23 ], [ 12, %16 ], [ 14, %15 ], [ 6, %24 ], [ 7, %14 ], [ 16, %posix.write.exit.loopexit ], [ 0, %7 ], [ 0, %posix.errno__anon_3734.exit.i ] store i64 %.sroa.0.0, ptr %0, align 8 %.sroa.14.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 8 store i16 %.sroa.14.0, ptr %.sroa.14.0..sroa_idx, align 8 %.sroa.16.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 10 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16.0..sroa_idx, ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, i64 6, i1 false) ret void } ; Function Attrs: nounwind uwtable declare ptr @__error() local_unnamed_addr #0 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write) declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4 ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn uwtable define internal fastcc void @"io.GenericWriter(*io.fixed_buffer_stream.FixedBufferStream([]u8),error{NoSpaceLeft},(function 'write')).typeErasedWriteFn"(ptr noalias nocapture nonnull writeonly sret({ i64, i16, [6 x i8] }) %0, ptr nocapture nonnull readonly align 1 %1, ptr nocapture nonnull readonly align 1 %2, i64 %3) unnamed_addr #5 { %.sroa.5 = alloca [6 x i8], align 2 %5 = load ptr, ptr %1, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !29) %6 = icmp eq i64 %3, 0 br i1 %6, label %7, label %8 7: ; preds = %4 call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.5, i8 0, i64 6, i1 false), !alias.scope !29 br label %"io.fixed_buffer_stream.FixedBufferStream([]u8).write.exit" 8: ; preds = %4 %9 = getelementptr inbounds %"io.fixed_buffer_stream.FixedBufferStream([]u8)", ptr %5, i64 0, i32 1 %10 = load i64, ptr %9, align 8, !noalias !29 %.elt8.i = getelementptr inbounds { ptr, i64 }, ptr %5, i64 0, i32 1 %.unpack9.i = load i64, ptr %.elt8.i, align 8, !noalias !29 %.not.i = icmp ugt i64 %.unpack9.i, %10 br i1 %.not.i, label %12, label %11 11: ; preds = %8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.5, ptr noundef nonnull align 2 dereferenceable(6) getelementptr inbounds ({ i64, i16, [6 x i8] }, ptr @11, i64 0, i32 2, i64 0), i64 6, i1 false) br label %"io.fixed_buffer_stream.FixedBufferStream([]u8).write.exit" 12: ; preds = %8 %.unpack.i = load ptr, ptr %5, align 8, !noalias !29 %13 = sub nuw i64 %.unpack9.i, %10 %14 = tail call i64 @llvm.umin.i64(i64 %13, i64 %3) %15 = getelementptr inbounds i8, ptr %.unpack.i, i64 %10 tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %15, ptr nonnull align 1 %2, i64 %14, i1 false), !noalias !29 %sunkaddr = getelementptr inbounds i8, ptr %5, i64 16 %16 = load i64, ptr %sunkaddr, align 8, !noalias !29 %17 = add nuw i64 %16, %14 store i64 %17, ptr %sunkaddr, align 8, !noalias !29 br label %"io.fixed_buffer_stream.FixedBufferStream([]u8).write.exit" "io.fixed_buffer_stream.FixedBufferStream([]u8).write.exit": ; preds = %7, %11, %12 %.sroa.0.0 = phi i64 [ 0, %7 ], [ %14, %12 ], [ undef, %11 ] %.sroa.4.0 = phi i16 [ 0, %7 ], [ 0, %12 ], [ 5, %11 ] store i64 %.sroa.0.0, ptr %0, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 8 store i16 %.sroa.4.0, ptr %.sroa.4.0..sroa_idx, align 8 %.sroa.5.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 10 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.5.0..sroa_idx, ptr noundef nonnull align 2 dereferenceable(6) %.sroa.5, i64 6, i1 false) ret void } ; Function Attrs: cold noreturn nounwind uwtable define internal fastcc void @debug.panicImpl(ptr nonnull readonly align 1 %0, i64 %1) unnamed_addr #2 !section_prefix !14 { %3 = alloca [65 x i8], align 1 %4 = alloca [16 x i8], align 8 %5 = alloca [16 x i8], align 8 %6 = alloca [16 x i8], align 8 %7 = alloca [16 x i8], align 8 %8 = alloca [4 x i8], align 4 %9 = alloca [16 x i8], align 8 %10 = alloca [8 x i8], align 8 %11 = alloca [8 x i8], align 8 %12 = alloca [16 x i8], align 8 %13 = alloca [4 x i8], align 4 %14 = alloca [16 x i8], align 8 %15 = alloca [4 x i8], align 4 %16 = load i64, ptr @debug.panic_stage, align 8 switch i64 %16, label %17 [ i64 0, label %18 i64 1, label %81 ] 17: ; preds = %io.Writer.print__anon_4006.exit, %2, %debug.waitForOtherThreadToFinishPanicking.exit call fastcc void @posix.abort() unreachable 18: ; preds = %2 store i64 1, ptr @debug.panic_stage, align 8 %19 = atomicrmw add ptr @debug.panicking, i8 1 seq_cst, align 1 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) %20 = call i32 @pthread_threadid_np(ptr align 1 null, ptr nonnull align 8 %3) %21 = load i64, ptr %3, align 8 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) %22 = load atomic i64, ptr @Progress.stderr_mutex unordered, align 8 %.not.i.i.i = icmp eq i64 %22, %21 br i1 %.not.i.i.i, label %._crit_edge.i.i.i, label %24 ._crit_edge.i.i.i: ; preds = %18 %.pre.i.i.i = load i64, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8 %23 = add nuw i64 %.pre.i.i.i, 1 br label %Thread.Mutex.Recursive.lock.exit.i.i 24: ; preds = %18 call void @os_unfair_lock_lock(ptr nonnull align 4 getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 2)) store atomic i64 %21, ptr @Progress.stderr_mutex unordered, align 8 br label %Thread.Mutex.Recursive.lock.exit.i.i Thread.Mutex.Recursive.lock.exit.i.i: ; preds = %24, %._crit_edge.i.i.i %25 = phi i64 [ %23, %._crit_edge.i.i.i ], [ 1, %24 ] store i64 %25, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) %26 = call i32 @pthread_threadid_np(ptr align 1 null, ptr nonnull align 8 %3) %27 = load i64, ptr %3, align 8 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) store i32 2, ptr %15, align 4 store ptr %15, ptr %14, align 8 %.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %14, i64 8 store ptr @"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn", ptr %.sroa.2.0..sroa_idx, align 8 br label %30 28: ; preds = %30 %29 = add nuw i64 %.sroa.022.0.copyload, %.sroa.0.014.i.i.i %.not.i.i.i18 = icmp eq i64 %29, 7 br i1 %.not.i.i.i18, label %33, label %30 30: ; preds = %28, %Thread.Mutex.Recursive.lock.exit.i.i %.sroa.0.014.i.i.i = phi i64 [ 0, %Thread.Mutex.Recursive.lock.exit.i.i ], [ %29, %28 ] %31 = getelementptr inbounds i8, ptr @__anon_3287, i64 %.sroa.0.014.i.i.i %32 = sub nuw i64 7, %.sroa.0.014.i.i.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) %.val.i = load i32, ptr %15, align 4, !noalias !32 call fastcc void @fs.File.write(ptr noalias %3, i32 %.val.i, ptr nonnull readonly align 1 %31, i64 %32), !noalias !32 %.sroa.022.0.copyload = load i64, ptr %3, align 8, !noalias !37 %sunkaddr = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.4.0.copyload = load i16, ptr %sunkaddr, align 8, !noalias !37 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) %.not7.i.i.i = icmp eq i16 %.sroa.4.0.copyload, 0 br i1 %.not7.i.i.i, label %28, label %.loopexit12 33: ; preds = %28 call void @llvm.lifetime.start.p0(i64 65, ptr nonnull %3) %34 = icmp ugt i64 %27, 99 br i1 %34, label %.lr.ph.i.i.i.i.i.i.preheader, label %._crit_edge.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i.preheader: ; preds = %33 br label %.lr.ph.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i.i.preheader, %.lr.ph.i.i.i.i.i.i %.sroa.0.03.i.i.i.i.i.i = phi i64 [ %40, %.lr.ph.i.i.i.i.i.i ], [ %27, %.lr.ph.i.i.i.i.i.i.preheader ] %.sroa.09.12.i.i.i.i.i.i = phi i64 [ %35, %.lr.ph.i.i.i.i.i.i ], [ 65, %.lr.ph.i.i.i.i.i.i.preheader ] %35 = add i64 %.sroa.09.12.i.i.i.i.i.i, -2 %scevgep = getelementptr i8, ptr %3, i64 %.sroa.09.12.i.i.i.i.i.i %scevgep45 = getelementptr i8, ptr %scevgep, i64 -2 %36 = urem i64 %.sroa.0.03.i.i.i.i.i.i, 100 %37 = shl nuw nsw i64 %36, 1 %38 = getelementptr inbounds i8, ptr @__anon_3758, i64 %37 %39 = load i16, ptr %38, align 1, !noalias !38 store i16 %39, ptr %scevgep45, align 1 %40 = udiv i64 %.sroa.0.03.i.i.i.i.i.i, 100 %41 = icmp ugt i64 %.sroa.0.03.i.i.i.i.i.i, 9999 br i1 %41, label %.lr.ph.i.i.i.i.i.i, label %._crit_edge.i.i.i.i.i.i ._crit_edge.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i.i, %33 %.sroa.09.1.lcssa.i.i.i.i.i.i = phi i64 [ 65, %33 ], [ %35, %.lr.ph.i.i.i.i.i.i ] %.sroa.0.0.lcssa.i.i.i.i.i.i = phi i64 [ %27, %33 ], [ %40, %.lr.ph.i.i.i.i.i.i ] %42 = icmp ult i64 %.sroa.0.0.lcssa.i.i.i.i.i.i, 10 br i1 %42, label %43, label %48 43: ; preds = %._crit_edge.i.i.i.i.i.i %44 = add i64 %.sroa.09.1.lcssa.i.i.i.i.i.i, -1 %45 = getelementptr inbounds [65 x i8], ptr %3, i64 0, i64 %44 %46 = trunc i64 %.sroa.0.0.lcssa.i.i.i.i.i.i to i8 %47 = or disjoint i8 %46, 48 store i8 %47, ptr %45, align 1 br label %fmt.formatType__anon_4052.exit.i.i 48: ; preds = %._crit_edge.i.i.i.i.i.i %49 = add i64 %.sroa.09.1.lcssa.i.i.i.i.i.i, -2 %50 = getelementptr inbounds i8, ptr %3, i64 %49 %51 = shl nuw nsw i64 %.sroa.0.0.lcssa.i.i.i.i.i.i, 1 %52 = getelementptr inbounds i8, ptr @__anon_3758, i64 %51 %53 = load i16, ptr %52, align 1, !noalias !41 store i16 %53, ptr %50, align 1 br label %fmt.formatType__anon_4052.exit.i.i fmt.formatType__anon_4052.exit.i.i: ; preds = %48, %43 %.sroa.09.0.i.i.i.i.i.i = phi i64 [ %44, %43 ], [ %49, %48 ] %54 = getelementptr inbounds i8, ptr %3, i64 %.sroa.09.0.i.i.i.i.i.i %55 = sub nuw i64 65, %.sroa.09.0.i.i.i.i.i.i %56 = call fastcc i16 @fmt.formatBuf__anon_3980(ptr nonnull readonly align 1 %54, i64 %55, ptr nonnull readonly align 8 @16, ptr nonnull readonly align 8 %14) call void @llvm.lifetime.end.p0(i64 65, ptr nonnull %3) %.not2.i.i = icmp eq i16 %56, 0 br i1 %.not2.i.i, label %.preheader32, label %.loopexit12 .preheader32: ; preds = %fmt.formatType__anon_4052.exit.i.i br label %59 57: ; preds = %59 %58 = add nuw i64 %.sroa.023.0.copyload, %.sroa.0.014.i5.i.i %.not.i12.i.i = icmp eq i64 %58, 8 br i1 %.not.i12.i.i, label %io.Writer.print__anon_4004.exit, label %59 59: ; preds = %.preheader32, %57 %.sroa.0.014.i5.i.i = phi i64 [ %58, %57 ], [ 0, %.preheader32 ] %60 = getelementptr inbounds i8, ptr getelementptr inbounds ([18 x i8], ptr @__anon_3287, i64 0, i64 9), i64 %.sroa.0.014.i5.i.i %61 = sub nuw i64 8, %.sroa.0.014.i5.i.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) %.val.i19 = load i32, ptr %15, align 4, !noalias !44 call fastcc void @fs.File.write(ptr noalias %3, i32 %.val.i19, ptr nonnull readonly align 1 %60, i64 %61), !noalias !44 %.sroa.023.0.copyload = load i64, ptr %3, align 8, !noalias !49 %sunkaddr46 = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.424.0.copyload = load i16, ptr %sunkaddr46, align 8, !noalias !49 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) %.not7.i10.i.i = icmp eq i16 %.sroa.424.0.copyload, 0 br i1 %.not7.i10.i.i, label %57, label %.loopexit12 io.Writer.print__anon_4004.exit: ; preds = %57 store i32 2, ptr %13, align 4 store ptr %13, ptr %12, align 8 %.sroa.26.0..sroa_idx = getelementptr inbounds i8, ptr %12, i64 8 store ptr @"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn", ptr %.sroa.26.0..sroa_idx, align 8 %62 = call fastcc i16 @fmt.formatBuf__anon_3980(ptr nonnull readonly align 1 %0, i64 %1, ptr nonnull readonly align 8 @16, ptr nonnull readonly align 8 %12) %.not.i.i = icmp eq i16 %62, 0 br i1 %.not.i.i, label %.preheader, label %.loopexit .preheader: ; preds = %io.Writer.print__anon_4004.exit br label %65 63: ; preds = %65 %64 = add nuw i64 %.sroa.026.0.copyload, %.sroa.0.014.i.i.i24 %.not.i.i.i28 = icmp eq i64 %64, 1 br i1 %.not.i.i.i28, label %io.Writer.print__anon_4005.exit, label %65 65: ; preds = %.preheader, %63 %.sroa.0.014.i.i.i24 = phi i64 [ %64, %63 ], [ 0, %.preheader ] %66 = getelementptr inbounds i8, ptr getelementptr inbounds ([5 x i8], ptr @__anon_3300, i64 0, i64 3), i64 %.sroa.0.014.i.i.i24 %67 = sub nuw i64 1, %.sroa.0.014.i.i.i24 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) %.val.i20 = load i32, ptr %13, align 4, !noalias !50 call fastcc void @fs.File.write(ptr noalias %3, i32 %.val.i20, ptr nonnull readonly align 1 %66, i64 %67), !noalias !50 %.sroa.026.0.copyload = load i64, ptr %3, align 8, !noalias !55 %sunkaddr47 = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.427.0.copyload = load i16, ptr %sunkaddr47, align 8, !noalias !55 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) %.not7.i.i.i27 = icmp eq i16 %.sroa.427.0.copyload, 0 br i1 %.not7.i.i.i27, label %63, label %.loopexit .loopexit12: ; preds = %30, %59, %fmt.formatType__anon_4052.exit.i.i call fastcc void @posix.abort() unreachable .loopexit: ; preds = %65, %io.Writer.print__anon_4004.exit call fastcc void @posix.abort() unreachable io.Writer.print__anon_4005.exit: ; preds = %63 br label %68 68: ; preds = %68, %io.Writer.print__anon_4005.exit %.sroa.0.014.i.i.i.i = phi i64 [ 0, %io.Writer.print__anon_4005.exit ], [ %71, %68 ] %69 = getelementptr inbounds i8, ptr @__anon_3692, i64 %.sroa.0.014.i.i.i.i %70 = sub nuw i64 48, %.sroa.0.014.i.i.i.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) call fastcc void @fs.File.write(ptr noalias %3, i32 2, ptr nonnull readonly align 1 %69, i64 %70), !noalias !56 %.sroa.04.0.copyload.i = load i64, ptr %3, align 8, !noalias !61 %sunkaddr48 = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.4.0.copyload.i = load i16, ptr %sunkaddr48, align 8, !noalias !61 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) %.not7.i.i.i.i = icmp ne i16 %.sroa.4.0.copyload.i, 0 %71 = add nuw i64 %.sroa.04.0.copyload.i, %.sroa.0.014.i.i.i.i %.not.i.i.i.i = icmp eq i64 %71, 48 %or.cond.i.i.i = select i1 %.not7.i.i.i.i, i1 true, i1 %.not.i.i.i.i br i1 %or.cond.i.i.i, label %debug.dumpCurrentStackTrace.exit, label %68 debug.dumpCurrentStackTrace.exit: ; preds = %68 %72 = load i64, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8 %73 = add i64 %72, -1 store i64 %73, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8 %74 = icmp eq i64 %73, 0 br i1 %74, label %75, label %debug.unlockStdErr.exit 75: ; preds = %debug.dumpCurrentStackTrace.exit store atomic i64 -1, ptr @Progress.stderr_mutex unordered, align 8 call void @os_unfair_lock_unlock(ptr nonnull align 4 getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 2)) br label %debug.unlockStdErr.exit debug.unlockStdErr.exit: ; preds = %debug.dumpCurrentStackTrace.exit, %75 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) %76 = call i8 @llvm.x86.atomic.sub.cc.i8(ptr @debug.panicking, i8 1, i32 4) %77 = trunc i8 %76 to i1 br i1 %77, label %debug.waitForOtherThreadToFinishPanicking.exit, label %78 78: ; preds = %debug.unlockStdErr.exit store i32 0, ptr %3, align 4 br label %79 79: ; preds = %79, %78 %80 = call i32 @__ulock_wait2(i32 16777217, ptr nonnull readonly align 1 %3, i64 0, i64 0, i64 0) br label %79 debug.waitForOtherThreadToFinishPanicking.exit: ; preds = %debug.unlockStdErr.exit call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) br label %17 81: ; preds = %2 store i64 2, ptr @debug.panic_stage, align 8 br label %82 82: ; preds = %82, %81 %.sroa.0.014.i.i.i31 = phi i64 [ 0, %81 ], [ %85, %82 ] %83 = getelementptr inbounds i8, ptr @__anon_3318, i64 %.sroa.0.014.i.i.i31 %84 = sub nuw i64 35, %.sroa.0.014.i.i.i31 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) call fastcc void @fs.File.write(ptr noalias %3, i32 2, ptr nonnull readonly align 1 %83, i64 %84), !noalias !62 %.sroa.029.0.copyload = load i64, ptr %3, align 8, !noalias !67 %sunkaddr49 = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.430.0.copyload = load i16, ptr %sunkaddr49, align 8, !noalias !67 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) %.not7.i.i.i34 = icmp ne i16 %.sroa.430.0.copyload, 0 %85 = add nuw i64 %.sroa.029.0.copyload, %.sroa.0.014.i.i.i31 %.not.i.i.i35 = icmp eq i64 %85, 35 %or.cond.i.i = select i1 %.not7.i.i.i34, i1 true, i1 %.not.i.i.i35 br i1 %or.cond.i.i, label %io.Writer.print__anon_4006.exit, label %82 io.Writer.print__anon_4006.exit: ; preds = %82 %86 = icmp eq i16 %.sroa.430.0.copyload, 0 br i1 %86, label %17, label %87 87: ; preds = %io.Writer.print__anon_4006.exit tail call fastcc void @posix.abort() unreachable } ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.umin.i64(i64, i64) #6 ; Function Attrs: nofree nounwind uwtable declare noundef i64 @write(i32 noundef, ptr nocapture noundef nonnull readonly align 1, i64 noundef) local_unnamed_addr #7 ; Function Attrs: nounwind uwtable define internal fastcc i16 @fmt.formatBuf__anon_3980(ptr nonnull readonly align 1 %0, i64 %1, ptr nocapture nonnull readonly align 8 %2, ptr nocapture nonnull readonly align 8 %3) unnamed_addr #0 { %5 = alloca [16 x i8], align 8 %6 = alloca [16 x i8], align 8 %7 = alloca [16 x i8], align 8 %8 = alloca [16 x i8], align 8 %9 = alloca [16 x i8], align 8 %10 = alloca [16 x i8], align 8 %.sroa.4.i = alloca i8, align 2 %11 = alloca [16 x i8], align 8 %12 = alloca [16 x i8], align 8 %.sroa.0.sroa.0.i2.i.i = alloca i24, align 4 %.sroa.0.sroa.0.i.i.i.i = alloca i24, align 4 %.sroa.0.sroa.0.i.i.i = alloca i24, align 4 %.sroa.014.i.i = alloca i64, align 8 %.sroa.010.i.i = alloca i64, align 8 %.sroa.08.i.i = alloca i64, align 8 %13 = alloca [16 x i8], align 8 %14 = alloca [4 x i8], align 4 %.sroa.2.0..sroa_idx = getelementptr inbounds %fmt.FormatOptions, ptr %2, i64 0, i32 1, i32 1 %.sroa.2.0.copyload = load i8, ptr %.sroa.2.0..sroa_idx, align 8 %.not = icmp eq i8 %.sroa.2.0.copyload, 0 br i1 %.not, label %150, label %15 common.ret: ; preds = %158, %156, %282, %289, %287, %266, %273, %247, %.loopexit.i, %254, %153, %151, %unicode.utf8CountCodepoints.exit.thread135, %.loopexit162, %.lr.ph.i46, %.loopexit, %150, %.loopexit156 %common.ret.op = phi i16 [ %276, %.loopexit156 ], [ 0, %150 ], [ 0, %.loopexit ], [ 0, %.lr.ph.i46 ], [ 0, %.loopexit162 ], [ 0, %unicode.utf8CountCodepoints.exit.thread135 ], [ %.sroa.212.0.copyload.i, %153 ], [ 0, %151 ], [ %.sroa.212.0.copyload.i.i, %254 ], [ 0, %.loopexit.i ], [ %.sroa.212.0.copyload.i40, %247 ], [ %.sroa.212.0.copyload.i75, %273 ], [ %.sroa.212.0.copyload.i.i60, %266 ], [ %.sroa.212.0.copyload.i106, %289 ], [ 0, %287 ], [ %.sroa.212.0.copyload.i.i91, %282 ], [ %.sroa.212.0.copyload.i27, %158 ], [ 0, %156 ] ret i16 %common.ret.op 15: ; preds = %4 %16 = getelementptr inbounds %fmt.FormatOptions, ptr %2, i64 0, i32 1 %.sroa.0.0.copyload = load i64, ptr %16, align 8 %.not54.i = icmp eq i64 %1, 0 br i1 %.not54.i, label %unicode.utf8CountCodepoints.exit.thread135, label %.preheader.i.preheader .preheader.i.preheader: ; preds = %15 %const = bitcast i64 81604378624 to i64 br label %.preheader.i .preheader.i: ; preds = %.preheader.i.preheader, %24 %.sroa.0.051.i = phi i64 [ %.sroa.0.2.i, %24 ], [ 0, %.preheader.i.preheader ] %.sroa.03.050.i = phi i64 [ %.sroa.03.2.i, %24 ], [ 0, %.preheader.i.preheader ] %17 = add nuw i64 %.sroa.03.050.i, 8 %.not43.i = icmp ugt i64 %17, %1 br i1 %.not43.i, label %._crit_edge.i, label %.lr.ph.i.preheader .lr.ph.i.preheader: ; preds = %.preheader.i br label %.lr.ph.i ._crit_edge.i: ; preds = %.lr.ph.i, %21, %.preheader.i %.sroa.03.1.lcssa.i = phi i64 [ %.sroa.03.050.i, %.preheader.i ], [ %lsr.iv, %.lr.ph.i ], [ %lsr.iv.next, %21 ] %.sroa.0.1.lcssa.i = phi i64 [ %.sroa.0.051.i, %.preheader.i ], [ %.sroa.0.145.i, %.lr.ph.i ], [ %22, %21 ] %18 = icmp ult i64 %.sroa.03.1.lcssa.i, %1 br i1 %18, label %26, label %24 .lr.ph.i: ; preds = %.lr.ph.i.preheader, %21 %lsr.iv = phi i64 [ %.sroa.03.050.i, %.lr.ph.i.preheader ], [ %lsr.iv.next, %21 ] %.sroa.0.145.i = phi i64 [ %22, %21 ], [ %.sroa.0.051.i, %.lr.ph.i.preheader ] %scevgep = getelementptr i8, ptr %0, i64 %lsr.iv %19 = load i64, ptr %scevgep, align 1, !noalias !68 %20 = and i64 %19, -9187201950435737472 %.not27.i = icmp eq i64 %20, 0 br i1 %.not27.i, label %21, label %._crit_edge.i 21: ; preds = %.lr.ph.i %22 = add i64 %.sroa.0.145.i, 8 %lsr.iv.next = add i64 %lsr.iv, 8 %23 = add i64 %lsr.iv.next, 8 %.not.i = icmp ugt i64 %23, %1 br i1 %.not.i, label %._crit_edge.i, label %.lr.ph.i 24: ; preds = %48, %._crit_edge.i %.sroa.03.2.i = phi i64 [ %43, %48 ], [ %.sroa.03.1.lcssa.i, %._crit_edge.i ] %.sroa.0.2.i = phi i64 [ %49, %48 ], [ %.sroa.0.1.lcssa.i, %._crit_edge.i ] %25 = icmp ult i64 %.sroa.03.2.i, %1 br i1 %25, label %.preheader.i, label %unicode.utf8CountCodepoints.exit 26: ; preds = %._crit_edge.i %27 = getelementptr inbounds i8, ptr %0, i64 %.sroa.03.1.lcssa.i %28 = load i8, ptr %27, align 1, !noalias !68 %29 = icmp sgt i8 %28, -1 br i1 %29, label %unicode.utf8ByteSequenceLength.exit.i, label %30 30: ; preds = %26 %31 = and i8 %28, -32 %32 = icmp eq i8 %31, -64 br i1 %32, label %unicode.utf8ByteSequenceLength.exit.i, label %33 33: ; preds = %30 %34 = and i8 %28, -16 %35 = icmp eq i8 %34, -32 br i1 %35, label %unicode.utf8ByteSequenceLength.exit.i, label %36 36: ; preds = %33 %37 = and i8 %28, -8 %38 = icmp eq i8 %37, -16 %..i.i = select i1 %38, ptr @15, ptr @10 br label %unicode.utf8ByteSequenceLength.exit.i unicode.utf8ByteSequenceLength.exit.i: ; preds = %36, %33, %30, %26 %39 = phi ptr [ @12, %26 ], [ @13, %30 ], [ @14, %33 ], [ %..i.i, %36 ] %40 = load i16, ptr %39, align 2, !noalias !68 %.sroa_idx.i = getelementptr inbounds i8, ptr %39, i64 2 %41 = load i8, ptr %.sroa_idx.i, align 2, !noalias !68 %promoted = zext i8 %41 to i64 %.not28.i = icmp eq i16 %40, 0 br i1 %.not28.i, label %42, label %unicode.utf8CountCodepoints.exit 42: ; preds = %unicode.utf8ByteSequenceLength.exit.i %.mask.i = and i64 %promoted, 7 %43 = add nuw i64 %.sroa.03.1.lcssa.i, %.mask.i %44 = icmp ugt i64 %43, %1 br i1 %44, label %unicode.utf8CountCodepoints.exit, label %45 45: ; preds = %42 %46 = trunc i64 %promoted to i8 %47 = trunc i8 %46 to i3 %cond.i = icmp eq i3 %47, 1 br i1 %cond.i, label %48, label %50 48: ; preds = %unicode.utf8Decode.exit.i, %45 %49 = add nuw i64 %.sroa.0.1.lcssa.i, 1 br label %24 50: ; preds = %45 %51 = trunc i64 %promoted to i8 %52 = trunc i8 %51 to i3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) %53 = zext i3 %52 to i32 switch i32 %53, label %54 [ i32 4, label %103 i32 2, label %55 i32 3, label %72 ] 54: ; preds = %50 unreachable 55: ; preds = %50 %sunkaddr = getelementptr i8, ptr %0, i64 %.sroa.03.1.lcssa.i %sunkaddr260 = getelementptr i8, ptr %sunkaddr, i64 1 %.val1.i.i = load i8, ptr %sunkaddr260, align 1, !noalias !71 tail call void @llvm.experimental.noalias.scope.decl(metadata !74) call void @llvm.lifetime.start.p0(i64 3, ptr nonnull %.sroa.0.sroa.0.i2.i.i) %56 = and i8 %28, 31 %57 = zext nneg i8 %56 to i21 store i21 %57, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !77 %58 = and i8 %.val1.i.i, -64 %.not.i.i.i = icmp eq i8 %58, -128 br i1 %.not.i.i.i, label %60, label %59 59: ; preds = %55 store i64 %const, ptr %5, align 8, !alias.scope !74, !noalias !71 br label %unicode.utf8Decode2.exit.i.i 60: ; preds = %55 %.sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0..i.i.i = load i24, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !77 %61 = trunc i24 %.sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0..i.i.i to i21 %62 = shl i21 %61, 6 store i21 %62, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !77 %.sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.1.i.i.i = load i24, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !77 %63 = trunc i24 %.sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.1.i.i.i to i21 %64 = and i8 %.val1.i.i, 63 %65 = zext nneg i8 %64 to i21 %66 = or i21 %63, %65 store i21 %66, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !77 %.sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.5.i.i.i = load i24, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !77 %67 = trunc i24 %.sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.5.i.i.i to i21 %68 = icmp ult i21 %67, 128 br i1 %68, label %69, label %70 69: ; preds = %60 %const258 = bitcast i64 85899345920 to i64 store i64 %const258, ptr %5, align 8, !alias.scope !74, !noalias !71 br label %unicode.utf8Decode2.exit.i.i 70: ; preds = %60 %71 = trunc i24 %.sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.5.i.i.i to i21 %sunkaddr263 = getelementptr inbounds i8, ptr %5, i64 4 store i16 0, ptr %sunkaddr263, align 4, !alias.scope !74, !noalias !71 store i21 %71, ptr %5, align 8, !alias.scope !74, !noalias !71 br label %unicode.utf8Decode2.exit.i.i unicode.utf8Decode2.exit.i.i: ; preds = %70, %69, %59 call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %.sroa.0.sroa.0.i2.i.i) br label %unicode.utf8Decode.exit.i 72: ; preds = %50 tail call void @llvm.experimental.noalias.scope.decl(metadata !78) call void @llvm.lifetime.start.p0(i64 3, ptr nonnull %5) %73 = and i8 %28, 15 %74 = zext nneg i8 %73 to i21 store i21 %74, ptr %5, align 4, !noalias !81 %sunkaddr265 = getelementptr inbounds i8, ptr %0, i64 %.sroa.03.1.lcssa.i %sunkaddr266 = getelementptr inbounds i8, ptr %sunkaddr265, i64 1 %75 = load i8, ptr %sunkaddr266, align 1, !noalias !81 %76 = and i8 %75, -64 %.not.i.i.i.i = icmp eq i8 %76, -128 br i1 %.not.i.i.i.i, label %77, label %95 77: ; preds = %72 %.sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0..i.i.i.i = load i24, ptr %5, align 4, !noalias !81 %78 = trunc i24 %.sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0..i.i.i.i to i21 %79 = shl i21 %78, 6 store i21 %79, ptr %5, align 4, !noalias !81 %.sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.1.i.i.i.i = load i24, ptr %5, align 4, !noalias !81 %80 = trunc i24 %.sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.1.i.i.i.i to i21 %81 = and i8 %75, 63 %82 = zext nneg i8 %81 to i21 %83 = or i21 %80, %82 store i21 %83, ptr %5, align 4, !noalias !81 %sunkaddr268 = getelementptr inbounds i8, ptr %0, i64 %.sroa.03.1.lcssa.i %sunkaddr269 = getelementptr inbounds i8, ptr %sunkaddr268, i64 2 %84 = load i8, ptr %sunkaddr269, align 1, !noalias !81 %85 = and i8 %84, -64 %.not46.i.i.i.i = icmp eq i8 %85, -128 br i1 %.not46.i.i.i.i, label %86, label %95 86: ; preds = %77 %.sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.5.i.i.i.i = load i24, ptr %5, align 4, !noalias !81 %87 = trunc i24 %.sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.5.i.i.i.i to i21 %88 = shl i21 %87, 6 store i21 %88, ptr %5, align 4, !noalias !81 %.sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.9.i.i.i.i = load i24, ptr %5, align 4, !noalias !81 %89 = trunc i24 %.sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.9.i.i.i.i to i21 %90 = and i8 %84, 63 %91 = zext nneg i8 %90 to i21 %92 = or i21 %89, %91 store i21 %92, ptr %5, align 4, !noalias !81 %.sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.13.i.i.i.i = load i24, ptr %5, align 4, !noalias !81 %93 = trunc i24 %.sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.13.i.i.i.i to i21 %94 = icmp ult i21 %93, 2048 br i1 %94, label %95, label %96 95: ; preds = %86, %77, %72 %.sroa.51.0.ph.i.i.i = phi i16 [ 19, %72 ], [ 19, %77 ], [ 20, %86 ] call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %5) %sunkaddr271 = getelementptr inbounds i8, ptr %5, i64 4 store i16 %.sroa.51.0.ph.i.i.i, ptr %sunkaddr271, align 4, !alias.scope !78, !noalias !71 br label %unicode.utf8Decode.exit.i 96: ; preds = %86 %97 = trunc i24 %.sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.13.i.i.i.i to i21 call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %5) %98 = and i21 %97, -2048 %99 = icmp eq i21 %98, 55296 br i1 %99, label %100, label %101 100: ; preds = %96 store i64 90194313216, ptr %5, align 8, !alias.scope !78, !noalias !71 br label %unicode.utf8Decode.exit.i 101: ; preds = %96 %102 = trunc i24 %.sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.13.i.i.i.i to i21 %sunkaddr272 = getelementptr inbounds i8, ptr %5, i64 4 store i16 0, ptr %sunkaddr272, align 4, !alias.scope !78, !noalias !71 store i21 %102, ptr %5, align 8, !alias.scope !78, !noalias !71 br label %unicode.utf8Decode.exit.i 103: ; preds = %50 tail call void @llvm.experimental.noalias.scope.decl(metadata !84) call void @llvm.lifetime.start.p0(i64 3, ptr nonnull %.sroa.0.sroa.0.i2.i.i) %104 = and i8 %28, 7 %105 = zext nneg i8 %104 to i21 store i21 %105, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %sunkaddr274 = getelementptr inbounds i8, ptr %0, i64 %.sroa.03.1.lcssa.i %sunkaddr275 = getelementptr inbounds i8, ptr %sunkaddr274, i64 1 %106 = load i8, ptr %sunkaddr275, align 1, !noalias !87 %107 = and i8 %106, -64 %.not.i3.i.i = icmp eq i8 %107, -128 br i1 %.not.i3.i.i, label %109, label %108 108: ; preds = %103 store i64 %const, ptr %5, align 8, !alias.scope !84, !noalias !71 br label %unicode.utf8Decode4.exit.i.i 109: ; preds = %103 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0..i4.i.i = load i24, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %110 = trunc i24 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0..i4.i.i to i21 %111 = shl i21 %110, 6 store i21 %111, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.1.i5.i.i = load i24, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %112 = trunc i24 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.1.i5.i.i to i21 %113 = and i8 %106, 63 %114 = zext nneg i8 %113 to i21 %115 = or i21 %112, %114 store i21 %115, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %sunkaddr277 = getelementptr inbounds i8, ptr %0, i64 %.sroa.03.1.lcssa.i %sunkaddr278 = getelementptr inbounds i8, ptr %sunkaddr277, i64 2 %116 = load i8, ptr %sunkaddr278, align 1, !noalias !87 %117 = and i8 %116, -64 %.not73.i.i.i = icmp eq i8 %117, -128 br i1 %.not73.i.i.i, label %119, label %118 118: ; preds = %109 store i64 %const, ptr %5, align 8, !alias.scope !84, !noalias !71 br label %unicode.utf8Decode4.exit.i.i 119: ; preds = %109 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.5.i6.i.i = load i24, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %120 = trunc i24 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.5.i6.i.i to i21 %121 = shl i21 %120, 6 store i21 %121, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.9.i.i.i = load i24, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %122 = trunc i24 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.9.i.i.i to i21 %123 = and i8 %116, 63 %124 = zext nneg i8 %123 to i21 %125 = or i21 %122, %124 store i21 %125, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %sunkaddr280 = getelementptr inbounds i8, ptr %0, i64 %.sroa.03.1.lcssa.i %sunkaddr281 = getelementptr inbounds i8, ptr %sunkaddr280, i64 3 %126 = load i8, ptr %sunkaddr281, align 1, !noalias !87 %127 = and i8 %126, -64 %.not74.i.i.i = icmp eq i8 %127, -128 br i1 %.not74.i.i.i, label %129, label %128 128: ; preds = %119 store i64 %const, ptr %5, align 8, !alias.scope !84, !noalias !71 br label %unicode.utf8Decode4.exit.i.i 129: ; preds = %119 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.13.i.i.i = load i24, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %130 = trunc i24 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.13.i.i.i to i21 %131 = shl i21 %130, 6 store i21 %131, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.17.i.i.i = load i24, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %132 = trunc i24 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.17.i.i.i to i21 %133 = and i8 %126, 63 %134 = zext nneg i8 %133 to i21 %135 = or i21 %132, %134 store i21 %135, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.21.i.i.i = load i24, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %136 = trunc i24 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.21.i.i.i to i21 %137 = icmp ult i21 %136, 65536 br i1 %137, label %138, label %139 138: ; preds = %129 %const259 = bitcast i64 85899345920 to i64 store i64 %const259, ptr %5, align 8, !alias.scope !84, !noalias !71 br label %unicode.utf8Decode4.exit.i.i 139: ; preds = %129 %140 = trunc i24 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.21.i.i.i to i21 %141 = icmp ugt i21 %140, -983041 br i1 %141, label %142, label %143 142: ; preds = %139 store i64 94489280512, ptr %5, align 8, !alias.scope !84, !noalias !71 br label %unicode.utf8Decode4.exit.i.i 143: ; preds = %139 %144 = trunc i24 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.21.i.i.i to i21 %sunkaddr283 = getelementptr inbounds i8, ptr %5, i64 4 store i16 0, ptr %sunkaddr283, align 4, !alias.scope !84, !noalias !71 store i21 %144, ptr %5, align 8, !alias.scope !84, !noalias !71 br label %unicode.utf8Decode4.exit.i.i unicode.utf8Decode4.exit.i.i: ; preds = %143, %142, %138, %128, %118, %108 call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %.sroa.0.sroa.0.i2.i.i) br label %unicode.utf8Decode.exit.i unicode.utf8Decode.exit.i: ; preds = %unicode.utf8Decode4.exit.i.i, %101, %100, %95, %unicode.utf8Decode2.exit.i.i %145 = phi ptr [ %5, %unicode.utf8Decode2.exit.i.i ], [ %5, %unicode.utf8Decode4.exit.i.i ], [ %5, %95 ], [ %5, %100 ], [ %5, %101 ] %146 = load i64, ptr %145, align 8, !noalias !71 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) %147 = and i64 %146, 281470681743360 %.not29.i = icmp eq i64 %147, 0 br i1 %.not29.i, label %48, label %unicode.utf8CountCodepoints.exit unicode.utf8CountCodepoints.exit: ; preds = %42, %unicode.utf8Decode.exit.i, %unicode.utf8ByteSequenceLength.exit.i, %24 %148 = phi i64 [ %.sroa.0.2.i, %24 ], [ %1, %unicode.utf8ByteSequenceLength.exit.i ], [ %1, %unicode.utf8Decode.exit.i ], [ %1, %42 ] %149 = tail call i64 @llvm.usub.sat.i64(i64 %.sroa.0.0.copyload, i64 %148) %.not12 = icmp ugt i64 %.sroa.0.0.copyload, %148 br i1 %.not12, label %161, label %.lr.ph.i20 unicode.utf8CountCodepoints.exit.thread135: ; preds = %15 %.not12136.not = icmp eq i64 %.sroa.0.0.copyload, 0 br i1 %.not12136.not, label %common.ret, label %161 150: ; preds = %4 %.sroa.0129.0.copyload = load ptr, ptr %3, align 8 %.sroa.2130.0..sroa_idx = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.2130.0.copyload = load ptr, ptr %.sroa.2130.0..sroa_idx, align 8 %.not13.i = icmp eq i64 %1, 0 br i1 %.not13.i, label %common.ret, label %.lr.ph.i17 .lr.ph.i17: ; preds = %150 br label %153 151: ; preds = %153 %152 = add nuw i64 %.sroa.011.0.copyload.i, %.sroa.0.014.i %.not.i18 = icmp eq i64 %152, %1 br i1 %.not.i18, label %common.ret, label %153 153: ; preds = %151, %.lr.ph.i17 %.sroa.0.014.i = phi i64 [ 0, %.lr.ph.i17 ], [ %152, %151 ] %154 = getelementptr inbounds i8, ptr %0, i64 %.sroa.0.014.i %155 = sub nuw i64 %1, %.sroa.0.014.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) call fastcc void %.sroa.2130.0.copyload(ptr nonnull sret({ i64, i16, [6 x i8] }) %5, ptr nonnull readonly align 1 %.sroa.0129.0.copyload, ptr nonnull readonly align 1 %154, i64 %155) #13, !noalias !88 %.sroa.011.0.copyload.i = load i64, ptr %5, align 8 %sunkaddr284 = getelementptr inbounds i8, ptr %5, i64 8 %.sroa.212.0.copyload.i = load i16, ptr %sunkaddr284, align 8 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) %.not7.i = icmp eq i16 %.sroa.212.0.copyload.i, 0 br i1 %.not7.i, label %151, label %common.ret .lr.ph.i20: ; preds = %unicode.utf8CountCodepoints.exit %.sroa.0112.0.copyload = load ptr, ptr %3, align 8 %.sroa.2.0..sroa_idx113 = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.2.0.copyload114 = load ptr, ptr %.sroa.2.0..sroa_idx113, align 8 br label %158 156: ; preds = %158 %157 = add nuw i64 %.sroa.011.0.copyload.i26, %.sroa.0.014.i23 %.not.i30 = icmp eq i64 %157, %1 br i1 %.not.i30, label %common.ret, label %158 158: ; preds = %156, %.lr.ph.i20 %.sroa.0.014.i23 = phi i64 [ 0, %.lr.ph.i20 ], [ %157, %156 ] %159 = getelementptr inbounds i8, ptr %0, i64 %.sroa.0.014.i23 %160 = sub nuw i64 %1, %.sroa.0.014.i23 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) call fastcc void %.sroa.2.0.copyload114(ptr nonnull sret({ i64, i16, [6 x i8] }) %5, ptr nonnull readonly align 1 %.sroa.0112.0.copyload, ptr nonnull readonly align 1 %159, i64 %160) #13, !noalias !91 %.sroa.011.0.copyload.i26 = load i64, ptr %5, align 8 %sunkaddr285 = getelementptr inbounds i8, ptr %5, i64 8 %.sroa.212.0.copyload.i27 = load i16, ptr %sunkaddr285, align 8 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) %.not7.i28 = icmp eq i16 %.sroa.212.0.copyload.i27, 0 br i1 %.not7.i28, label %156, label %common.ret 161: ; preds = %unicode.utf8CountCodepoints.exit.thread135, %unicode.utf8CountCodepoints.exit %162 = phi i64 [ %.sroa.0.0.copyload, %unicode.utf8CountCodepoints.exit.thread135 ], [ %149, %unicode.utf8CountCodepoints.exit ] %163 = getelementptr inbounds %fmt.FormatOptions, ptr %2, i64 0, i32 2 %164 = load i32, ptr %163, align 8 %165 = trunc i32 %164 to i21 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) tail call void @llvm.experimental.noalias.scope.decl(metadata !94) %166 = icmp ult i21 %165, 128 br i1 %166, label %167, label %169 167: ; preds = %161 %168 = load i32, ptr @12, align 4, !noalias !97 br label %unicode.utf8CodepointSequenceLength.exit.i.i 169: ; preds = %161 %170 = trunc i32 %164 to i21 %171 = icmp ult i21 %170, 2048 br i1 %171, label %172, label %174 172: ; preds = %169 %173 = load i32, ptr @13, align 4, !noalias !97 br label %unicode.utf8CodepointSequenceLength.exit.i.i 174: ; preds = %169 %175 = trunc i32 %164 to i21 %176 = icmp ult i21 %175, 65536 br i1 %176, label %177, label %179 177: ; preds = %174 %178 = load i32, ptr @14, align 4, !noalias !97 br label %unicode.utf8CodepointSequenceLength.exit.i.i 179: ; preds = %174 %180 = trunc i32 %164 to i21 %181 = icmp ult i21 %180, -983040 %182 = load i32, ptr @15, align 4, !noalias !97 %spec.select.i.i.i = select i1 %181, i32 %182, i32 26 br label %unicode.utf8CodepointSequenceLength.exit.i.i unicode.utf8CodepointSequenceLength.exit.i.i: ; preds = %179, %177, %172, %167 %.sink.i.i.i = phi i32 [ %178, %177 ], [ %173, %172 ], [ %168, %167 ], [ %spec.select.i.i.i, %179 ] %.sroa.2.0.extract.shift.i.i = lshr i32 %.sink.i.i.i, 16 %183 = and i32 %.sink.i.i.i, 65535 %.not.i.i = icmp eq i32 %183, 0 %184 = trunc i32 %.sroa.2.0.extract.shift.i.i to i3 br i1 %.not.i.i, label %185, label %unicode.utf8Encode.exit.thread 185: ; preds = %unicode.utf8CodepointSequenceLength.exit.i.i %186 = zext i3 %184 to i32 switch i32 %186, label %187 [ i32 1, label %188 i32 2, label %190 i32 3, label %198 i32 4, label %215 ] 187: ; preds = %185 unreachable 188: ; preds = %185 %189 = trunc i32 %164 to i8 store i8 %189, ptr %14, align 4, !noalias !102 br label %232 190: ; preds = %185 %191 = lshr i32 %164, 6 %192 = trunc i32 %191 to i8 %193 = or i8 %192, -64 store i8 %193, ptr %14, align 4, !noalias !102 %194 = getelementptr inbounds i8, ptr %14, i64 1 %195 = trunc i32 %164 to i8 %196 = and i8 %195, 63 %197 = or disjoint i8 %196, -128 store i8 %197, ptr %194, align 1, !noalias !102 br label %232 198: ; preds = %185 %199 = trunc i32 %164 to i21 %200 = and i21 %199, -2048 %201 = icmp eq i21 %200, 55296 br i1 %201, label %unicode.utf8Encode.exit.thread, label %202 202: ; preds = %198 %203 = lshr i32 %164, 12 %204 = trunc i32 %203 to i8 %205 = or i8 %204, -32 store i8 %205, ptr %14, align 4, !noalias !102 %206 = getelementptr inbounds i8, ptr %14, i64 1 %207 = lshr i32 %164, 6 %208 = trunc i32 %207 to i8 %209 = and i8 %208, 63 %210 = or disjoint i8 %209, -128 store i8 %210, ptr %206, align 1, !noalias !102 %211 = getelementptr inbounds i8, ptr %14, i64 2 %212 = trunc i32 %164 to i8 %213 = and i8 %212, 63 %214 = or disjoint i8 %213, -128 store i8 %214, ptr %211, align 2, !noalias !102 br label %232 215: ; preds = %185 %216 = trunc i32 %164 to i21 %217 = lshr i21 %216, 18 %218 = trunc i21 %217 to i8 %219 = lshr i32 %164, 12 %220 = trunc i32 %219 to i8 %221 = and i8 %220, 63 %222 = lshr i32 %164, 6 %223 = trunc i32 %222 to i8 %224 = and i8 %223, 63 %225 = trunc i32 %164 to i8 %226 = and i8 %225, 63 %227 = insertelement <4 x i8> poison, i8 %218, i64 0 %228 = insertelement <4 x i8> %227, i8 %221, i64 1 %229 = insertelement <4 x i8> %228, i8 %224, i64 2 %230 = insertelement <4 x i8> %229, i8 %226, i64 3 %231 = or disjoint <4 x i8> %230, <i8 -16, i8 -128, i8 -128, i8 -128> store <4 x i8> %231, ptr %14, align 4, !noalias !102 br label %232 unicode.utf8Encode.exit.thread: ; preds = %unicode.utf8CodepointSequenceLength.exit.i.i, %198 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) br label %236 232: ; preds = %215, %202, %190, %188 store i3 %184, ptr %5, align 2, !alias.scope !94, !noalias !103 %.sroa.4.i.0..sroa.4.i.0..sroa.4.i.0..sroa.4.0..sroa.4.0..sroa.4.2..pre.i = load i8, ptr %5, align 2, !noalias !103 %promoted286 = zext i8 %.sroa.4.i.0..sroa.4.i.0..sroa.4.i.0..sroa.4.0..sroa.4.0..sroa.4.2..pre.i to i64 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) %233 = insertvalue { ptr, i64 } poison, ptr %14, 0 %234 = and i64 %promoted286, 7 %235 = insertvalue { ptr, i64 } %233, i64 %234, 1 br label %236 236: ; preds = %unicode.utf8Encode.exit.thread, %232 %237 = phi { ptr, i64 } [ %235, %232 ], [ { ptr @__anon_3651, i64 3 }, %unicode.utf8Encode.exit.thread ] %238 = getelementptr inbounds %fmt.FormatOptions, ptr %2, i64 0, i32 3 %239 = load i8, ptr %238, align 4 %240 = trunc i8 %239 to i2 %241 = zext i2 %240 to i32 switch i32 %241, label %242 [ i32 0, label %243 i32 1, label %258 i32 2, label %277 ] 242: ; preds = %236 unreachable 243: ; preds = %236 %244 = icmp eq i64 %1, 0 %.sroa.0117.0.copyload = load ptr, ptr %3, align 8 %.sroa.2118.0..sroa_idx = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.2118.0.copyload = load ptr, ptr %.sroa.2118.0..sroa_idx, align 8 br i1 %244, label %.loopexit, label %.lr.ph.i33 .lr.ph.i33: ; preds = %243 br label %247 245: ; preds = %247 %246 = add nuw i64 %.sroa.011.0.copyload.i39, %.sroa.0.014.i36 %.not.i43 = icmp eq i64 %246, %1 br i1 %.not.i43, label %.loopexit.loopexit, label %247 247: ; preds = %245, %.lr.ph.i33 %.sroa.0.014.i36 = phi i64 [ 0, %.lr.ph.i33 ], [ %246, %245 ] %248 = getelementptr inbounds i8, ptr %0, i64 %.sroa.0.014.i36 %249 = sub nuw i64 %1, %.sroa.0.014.i36 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) call fastcc void %.sroa.2118.0.copyload(ptr nonnull sret({ i64, i16, [6 x i8] }) %5, ptr nonnull readonly align 1 %.sroa.0117.0.copyload, ptr nonnull readonly align 1 %248, i64 %249) #13, !noalias !104 %.sroa.011.0.copyload.i39 = load i64, ptr %5, align 8 %sunkaddr287 = getelementptr inbounds i8, ptr %5, i64 8 %.sroa.212.0.copyload.i40 = load i16, ptr %sunkaddr287, align 8 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) %.not7.i41 = icmp eq i16 %.sroa.212.0.copyload.i40, 0 br i1 %.not7.i41, label %245, label %common.ret .loopexit.loopexit: ; preds = %245 %.sroa.0119.0.copyload.pre = load ptr, ptr %3, align 8 %sunkaddr288 = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.2120.0.copyload.pre = load ptr, ptr %sunkaddr288, align 8 br label %.loopexit .loopexit: ; preds = %.loopexit.loopexit, %243 %.sroa.2120.0.copyload = phi ptr [ %.sroa.2120.0.copyload.pre, %.loopexit.loopexit ], [ %.sroa.2118.0.copyload, %243 ] %.sroa.0119.0.copyload = phi ptr [ %.sroa.0119.0.copyload.pre, %.loopexit.loopexit ], [ %.sroa.0117.0.copyload, %243 ] %250 = extractvalue { ptr, i64 } %237, 0 %251 = extractvalue { ptr, i64 } %237, 1 %.not.i45 = icmp eq i64 %162, 0 br i1 %.not.i45, label %common.ret, label %.lr.ph.i46 .lr.ph.i46: ; preds = %.loopexit %.not13.i.i = icmp eq i64 %251, 0 br i1 %.not13.i.i, label %common.ret, label %.lr.ph.i.i.preheader .lr.ph.i.i.preheader: ; preds = %.lr.ph.i46 br label %.lr.ph.i.i .lr.ph.i.i: ; preds = %.lr.ph.i.i.preheader, %.loopexit.i %.sroa.0.06.i = phi i64 [ %257, %.loopexit.i ], [ 0, %.lr.ph.i.i.preheader ] br label %254 252: ; preds = %254 %253 = add nuw i64 %.sroa.011.0.copyload.i.i, %.sroa.0.014.i.i %.not.i.i48 = icmp eq i64 %253, %251 br i1 %.not.i.i48, label %.loopexit.i, label %254 254: ; preds = %252, %.lr.ph.i.i %.sroa.0.014.i.i = phi i64 [ 0, %.lr.ph.i.i ], [ %253, %252 ] %255 = getelementptr inbounds i8, ptr %250, i64 %.sroa.0.014.i.i %256 = sub nuw i64 %251, %.sroa.0.014.i.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) call fastcc void %.sroa.2120.0.copyload(ptr nonnull sret({ i64, i16, [6 x i8] }) %5, ptr nonnull readonly align 1 %.sroa.0119.0.copyload, ptr nonnull readonly align 1 %255, i64 %256) #13, !noalias !107 %.sroa.011.0.copyload.i.i = load i64, ptr %5, align 8 %sunkaddr289 = getelementptr inbounds i8, ptr %5, i64 8 %.sroa.212.0.copyload.i.i = load i16, ptr %sunkaddr289, align 8 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) %.not7.i.i = icmp eq i16 %.sroa.212.0.copyload.i.i, 0 br i1 %.not7.i.i, label %252, label %common.ret .loopexit.i: ; preds = %252 %257 = add nuw i64 %.sroa.0.06.i, 1 %exitcond.not.i = icmp eq i64 %257, %162 br i1 %exitcond.not.i, label %common.ret, label %.lr.ph.i.i 258: ; preds = %236 %259 = lshr i64 %162, 1 %260 = add nuw i64 %162, 1 %261 = lshr i64 %260, 1 %.sroa.0121.0.copyload = load ptr, ptr %3, align 8 %.sroa.2122.0..sroa_idx = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.2122.0.copyload = load ptr, ptr %.sroa.2122.0..sroa_idx, align 8 %262 = extractvalue { ptr, i64 } %237, 0 %263 = extractvalue { ptr, i64 } %237, 1 %.not.i49 = icmp ult i64 %162, 2 br i1 %.not.i49, label %.loopexit158, label %.lr.ph.i50 .lr.ph.i50: ; preds = %258 %.not13.i.i52 = icmp eq i64 %263, 0 br i1 %.not13.i.i52, label %.loopexit158, label %.lr.ph.i.i54.preheader .lr.ph.i.i54.preheader: ; preds = %.lr.ph.i50 br label %.lr.ph.i.i54 .lr.ph.i.i54: ; preds = %.lr.ph.i.i54.preheader, %.loopexit.i64 %.sroa.0.06.i55 = phi i64 [ %269, %.loopexit.i64 ], [ 0, %.lr.ph.i.i54.preheader ] br label %266 264: ; preds = %266 %265 = add nuw i64 %.sroa.011.0.copyload.i.i59, %.sroa.0.014.i.i58 %.not.i.i63 = icmp eq i64 %265, %263 br i1 %.not.i.i63, label %.loopexit.i64, label %266 266: ; preds = %264, %.lr.ph.i.i54 %.sroa.0.014.i.i58 = phi i64 [ 0, %.lr.ph.i.i54 ], [ %265, %264 ] %267 = getelementptr inbounds i8, ptr %262, i64 %.sroa.0.014.i.i58 %268 = sub nuw i64 %263, %.sroa.0.014.i.i58 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) call fastcc void %.sroa.2122.0.copyload(ptr nonnull sret({ i64, i16, [6 x i8] }) %5, ptr nonnull readonly align 1 %.sroa.0121.0.copyload, ptr nonnull readonly align 1 %267, i64 %268) #13, !noalias !110 %.sroa.011.0.copyload.i.i59 = load i64, ptr %5, align 8 %sunkaddr290 = getelementptr inbounds i8, ptr %5, i64 8 %.sroa.212.0.copyload.i.i60 = load i16, ptr %sunkaddr290, align 8 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) %.not7.i.i61 = icmp eq i16 %.sroa.212.0.copyload.i.i60, 0 br i1 %.not7.i.i61, label %264, label %common.ret .loopexit.i64: ; preds = %264 %269 = add nuw nsw i64 %.sroa.0.06.i55, 1 %exitcond.not.i65 = icmp eq i64 %269, %259 br i1 %exitcond.not.i65, label %.loopexit158.loopexit, label %.lr.ph.i.i54 .loopexit158.loopexit: ; preds = %.loopexit.i64 %.sroa.0123.0.copyload.pre = load ptr, ptr %3, align 8 %sunkaddr291 = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.2124.0.copyload.pre = load ptr, ptr %sunkaddr291, align 8 br label %.loopexit158 .loopexit158: ; preds = %.loopexit158.loopexit, %258, %.lr.ph.i50 %.sroa.2124.0.copyload = phi ptr [ %.sroa.2124.0.copyload.pre, %.loopexit158.loopexit ], [ %.sroa.2122.0.copyload, %258 ], [ %.sroa.2122.0.copyload, %.lr.ph.i50 ] %.sroa.0123.0.copyload = phi ptr [ %.sroa.0123.0.copyload.pre, %.loopexit158.loopexit ], [ %.sroa.0121.0.copyload, %258 ], [ %.sroa.0121.0.copyload, %.lr.ph.i50 ] %270 = icmp eq i64 %1, 0 br i1 %270, label %.loopexit156, label %.lr.ph.i68 .lr.ph.i68: ; preds = %.loopexit158 br label %273 271: ; preds = %273 %272 = add nuw i64 %.sroa.011.0.copyload.i74, %.sroa.0.014.i71 %.not.i78 = icmp eq i64 %272, %1 br i1 %.not.i78, label %.loopexit156, label %273 273: ; preds = %271, %.lr.ph.i68 %.sroa.0.014.i71 = phi i64 [ 0, %.lr.ph.i68 ], [ %272, %271 ] %274 = getelementptr inbounds i8, ptr %0, i64 %.sroa.0.014.i71 %275 = sub nuw i64 %1, %.sroa.0.014.i71 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) call fastcc void %.sroa.2124.0.copyload(ptr nonnull sret({ i64, i16, [6 x i8] }) %5, ptr nonnull readonly align 1 %.sroa.0123.0.copyload, ptr nonnull readonly align 1 %274, i64 %275) #13, !noalias !113 %.sroa.011.0.copyload.i74 = load i64, ptr %5, align 8 %sunkaddr292 = getelementptr inbounds i8, ptr %5, i64 8 %.sroa.212.0.copyload.i75 = load i16, ptr %sunkaddr292, align 8 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) %.not7.i76 = icmp eq i16 %.sroa.212.0.copyload.i75, 0 br i1 %.not7.i76, label %271, label %common.ret .loopexit156: ; preds = %271, %.loopexit158 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 8 dereferenceable(16) %3, i64 16, i1 false) %276 = call fastcc i16 @io.Writer.writeBytesNTimes(ptr nonnull readonly align 8 %13, ptr nonnull readonly align 1 %262, i64 %263, i64 %261) br label %common.ret 277: ; preds = %236 %.sroa.0125.0.copyload = load ptr, ptr %3, align 8 %.sroa.2126.0..sroa_idx = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.2126.0.copyload = load ptr, ptr %.sroa.2126.0..sroa_idx, align 8 %278 = extractvalue { ptr, i64 } %237, 0 %279 = extractvalue { ptr, i64 } %237, 1 %.not.i80 = icmp eq i64 %162, 0 br i1 %.not.i80, label %.loopexit162, label %.lr.ph.i81 .lr.ph.i81: ; preds = %277 %.not13.i.i83 = icmp eq i64 %279, 0 br i1 %.not13.i.i83, label %.loopexit162, label %.lr.ph.i.i85.preheader .lr.ph.i.i85.preheader: ; preds = %.lr.ph.i81 br label %.lr.ph.i.i85 .lr.ph.i.i85: ; preds = %.lr.ph.i.i85.preheader, %.loopexit.i95 %.sroa.0.06.i86 = phi i64 [ %285, %.loopexit.i95 ], [ 0, %.lr.ph.i.i85.preheader ] br label %282 280: ; preds = %282 %281 = add nuw i64 %.sroa.011.0.copyload.i.i90, %.sroa.0.014.i.i89 %.not.i.i94 = icmp eq i64 %281, %279 br i1 %.not.i.i94, label %.loopexit.i95, label %282 282: ; preds = %280, %.lr.ph.i.i85 %.sroa.0.014.i.i89 = phi i64 [ 0, %.lr.ph.i.i85 ], [ %281, %280 ] %283 = getelementptr inbounds i8, ptr %278, i64 %.sroa.0.014.i.i89 %284 = sub nuw i64 %279, %.sroa.0.014.i.i89 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) call fastcc void %.sroa.2126.0.copyload(ptr nonnull sret({ i64, i16, [6 x i8] }) %5, ptr nonnull readonly align 1 %.sroa.0125.0.copyload, ptr nonnull readonly align 1 %283, i64 %284) #13, !noalias !116 %.sroa.011.0.copyload.i.i90 = load i64, ptr %5, align 8 %sunkaddr293 = getelementptr inbounds i8, ptr %5, i64 8 %.sroa.212.0.copyload.i.i91 = load i16, ptr %sunkaddr293, align 8 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) %.not7.i.i92 = icmp eq i16 %.sroa.212.0.copyload.i.i91, 0 br i1 %.not7.i.i92, label %280, label %common.ret .loopexit.i95: ; preds = %280 %285 = add nuw i64 %.sroa.0.06.i86, 1 %exitcond.not.i96 = icmp eq i64 %285, %162 br i1 %exitcond.not.i96, label %.loopexit162.loopexit, label %.lr.ph.i.i85 .loopexit162.loopexit: ; preds = %.loopexit.i95 %.sroa.0127.0.copyload.pre = load ptr, ptr %3, align 8 %sunkaddr294 = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.2128.0.copyload.pre = load ptr, ptr %sunkaddr294, align 8 br label %.loopexit162 .loopexit162: ; preds = %.loopexit162.loopexit, %277, %.lr.ph.i81 %.sroa.2128.0.copyload = phi ptr [ %.sroa.2128.0.copyload.pre, %.loopexit162.loopexit ], [ %.sroa.2126.0.copyload, %277 ], [ %.sroa.2126.0.copyload, %.lr.ph.i81 ] %.sroa.0127.0.copyload = phi ptr [ %.sroa.0127.0.copyload.pre, %.loopexit162.loopexit ], [ %.sroa.0125.0.copyload, %277 ], [ %.sroa.0125.0.copyload, %.lr.ph.i81 ] %286 = icmp eq i64 %1, 0 br i1 %286, label %common.ret, label %.lr.ph.i99 .lr.ph.i99: ; preds = %.loopexit162 br label %289 287: ; preds = %289 %288 = add nuw i64 %.sroa.011.0.copyload.i105, %.sroa.0.014.i102 %.not.i109 = icmp eq i64 %288, %1 br i1 %.not.i109, label %common.ret, label %289 289: ; preds = %287, %.lr.ph.i99 %.sroa.0.014.i102 = phi i64 [ 0, %.lr.ph.i99 ], [ %288, %287 ] %290 = getelementptr inbounds i8, ptr %0, i64 %.sroa.0.014.i102 %291 = sub nuw i64 %1, %.sroa.0.014.i102 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) call fastcc void %.sroa.2128.0.copyload(ptr nonnull sret({ i64, i16, [6 x i8] }) %5, ptr nonnull readonly align 1 %.sroa.0127.0.copyload, ptr nonnull readonly align 1 %290, i64 %291) #13, !noalias !119 %.sroa.011.0.copyload.i105 = load i64, ptr %5, align 8 %sunkaddr295 = getelementptr inbounds i8, ptr %5, i64 8 %.sroa.212.0.copyload.i106 = load i16, ptr %sunkaddr295, align 8 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) %.not7.i107 = icmp eq i16 %.sroa.212.0.copyload.i106, 0 br i1 %.not7.i107, label %287, label %common.ret } ; Function Attrs: cold noreturn nounwind uwtable define internal fastcc void @posix.abort() unnamed_addr #2 !section_prefix !14 { tail call void @abort() unreachable } ; Function Attrs: nounwind uwtable define internal fastcc i16 @io.Writer.writeBytesNTimes(ptr nocapture nonnull readonly align 8 %0, ptr nonnull readonly align 1 %1, i64 %2, i64 %3) unnamed_addr #0 { %5 = alloca [16 x i8], align 8 %.not = icmp eq i64 %3, 0 br i1 %.not, label %common.ret, label %.lr.ph .lr.ph: ; preds = %4 %.not13.i = icmp eq i64 %2, 0 br i1 %.not13.i, label %common.ret, label %.lr.ph.i.preheader .lr.ph.i.preheader: ; preds = %.lr.ph br label %.lr.ph.i common.ret: ; preds = %.loopexit, %8, %.lr.ph, %4 %common.ret.op = phi i16 [ 0, %4 ], [ 0, %.lr.ph ], [ %.sroa.212.0.copyload.i, %8 ], [ 0, %.loopexit ] ret i16 %common.ret.op .lr.ph.i: ; preds = %.lr.ph.i.preheader, %.loopexit %.sroa.0.06 = phi i64 [ %11, %.loopexit ], [ 0, %.lr.ph.i.preheader ] %.sroa.0.0.copyload = load ptr, ptr %0, align 8 %sunkaddr = getelementptr inbounds i8, ptr %0, i64 8 %.sroa.2.0.copyload = load ptr, ptr %sunkaddr, align 8 br label %8 6: ; preds = %8 %7 = add nuw i64 %.sroa.011.0.copyload.i, %.sroa.0.014.i %.not.i = icmp eq i64 %7, %2 br i1 %.not.i, label %.loopexit, label %8 8: ; preds = %6, %.lr.ph.i %.sroa.0.014.i = phi i64 [ 0, %.lr.ph.i ], [ %7, %6 ] %9 = getelementptr inbounds i8, ptr %1, i64 %.sroa.0.014.i %10 = sub nuw i64 %2, %.sroa.0.014.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) call fastcc void %.sroa.2.0.copyload(ptr nonnull sret({ i64, i16, [6 x i8] }) %5, ptr nonnull readonly align 1 %.sroa.0.0.copyload, ptr nonnull readonly align 1 %9, i64 %10) #13, !noalias !122 %.sroa.011.0.copyload.i = load i64, ptr %5, align 8 %sunkaddr18 = getelementptr inbounds i8, ptr %5, i64 8 %.sroa.212.0.copyload.i = load i16, ptr %sunkaddr18, align 8 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) %.not7.i = icmp eq i16 %.sroa.212.0.copyload.i, 0 br i1 %.not7.i, label %6, label %common.ret .loopexit: ; preds = %6 %11 = add nuw i64 %.sroa.0.06, 1 %exitcond.not = icmp eq i64 %11, %3 br i1 %exitcond.not, label %common.ret, label %.lr.ph.i } ; Function Attrs: noreturn nounwind uwtable declare void @abort() local_unnamed_addr #8 ; Function Attrs: nounwind uwtable declare i32 @pthread_threadid_np(ptr align 1, ptr nonnull align 8) local_unnamed_addr #0 ; Function Attrs: nounwind uwtable declare void @os_unfair_lock_lock(ptr nonnull align 4) local_unnamed_addr #0 ; Function Attrs: nounwind uwtable declare void @os_unfair_lock_unlock(ptr nonnull align 4) local_unnamed_addr #0 ; Function Attrs: nounwind uwtable declare i32 @__ulock_wait2(i32, ptr readonly align 1, i64, i64, i64) local_unnamed_addr #0 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) declare void @llvm.assume(i1 noundef) #9 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.usub.sat.i64(i64, i64) #10 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) declare void @llvm.experimental.noalias.scope.decl(metadata) #11 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #12 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #12 ; Function Attrs: nounwind declare i8 @llvm.x86.atomic.sub.cc.i8(ptr, i8, i32 immarg) #13 attributes #0 = { nounwind uwtable "frame-pointer"="none" "target-cpu"="skylake" "target-features"="-16bit-mode,-32bit-mode,-3dnow,-3dnowa,+64bit,+adx,+aes,+allow-light-256-bit,-amx-bf16,-amx-complex,-amx-fp16,-amx-int8,-amx-tile,+avx,-avx10.1-256,-avx10.1-512,+avx2,-avx512bf16,-avx512bitalg,-avx512bw,-avx512cd,-avx512dq,-avx512er,-avx512f,-avx512fp16,-avx512ifma,-avx512pf,-avx512vbmi,-avx512vbmi2,-avx512vl,-avx512vnni,-avx512vp2intersect,-avx512vpopcntdq,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,+bmi,+bmi2,-branchfusion,-ccmp,-cf,-cldemote,+clflushopt,-clwb,-clzero,+cmov,-cmpccxadd,+crc32,+cx16,+cx8,-egpr,-enqcmd,+ermsb,-evex512,+f16c,-false-deps-getmant,-false-deps-lzcnt-tzcnt,-false-deps-mulc,-false-deps-mullq,-false-deps-perm,+false-deps-popcnt,-false-deps-range,-fast-11bytenop,+fast-15bytenop,-fast-7bytenop,-fast-bextr,+fast-gather,-fast-hops,-fast-lzcnt,-fast-movbe,+fast-scalar-fsqrt,-fast-scalar-shift-masks,+fast-shld-rotate,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle,+fast-vector-fsqrt,-fast-vector-shift-masks,-faster-shift-than-shuffle,+fma,-fma4,+fsgsbase,-fsrm,+fxsr,-gfni,-harden-sls-ijmp,-harden-sls-ret,-hreset,-idivl-to-divb,+idivq-to-divl,+invpcid,-kl,-lea-sp,-lea-uses-ag,-lvi-cfi,-lvi-load-hardening,-lwp,+lzcnt,+macrofusion,+mmx,+movbe,-movdir64b,-movdiri,-mwaitx,-ndd,-no-bypass-delay,+no-bypass-delay-blend,+no-bypass-delay-mov,+no-bypass-delay-shuffle,+nopl,-pad-short-functions,+pclmul,-pconfig,-pku,+popcnt,-ppx,-prefer-128-bit,-prefer-256-bit,-prefer-mask-registers,-prefer-movmsk-over-vtest,-prefer-no-gather,-prefer-no-scatter,-prefetchi,-prefetchwt1,+prfchw,-ptwrite,-push2pop2,-raoint,-rdpid,-rdpru,+rdrnd,+rdseed,-retpoline,-retpoline-external-thunk,-retpoline-indirect-branches,-retpoline-indirect-calls,-rtm,+sahf,-sbb-dep-breaking,-serialize,-seses,+sgx,-sha,-sha512,-shstk,+slow-3ops-lea,-slow-incdec,-slow-lea,-slow-pmaddwd,-slow-pmulld,-slow-shld,-slow-two-mem-ops,-slow-unaligned-mem-16,-slow-unaligned-mem-32,-sm3,-sm4,-soft-float,+sse,+sse2,+sse3,+sse4.1,+sse4.2,-sse4a,-sse-unaligned-mem,+ssse3,-tagged-globals,-tbm,-tsxldtrk,-tuning-fast-imm-vector-shift,-uintr,-use-glm-div-sqrt-costs,-use-slm-arith-costs,-usermsr,-vaes,-vpclmulqdq,+vzeroupper,-waitpkg,-wbnoinvd,-widekl,+x87,-xop,+xsave,+xsavec,+xsaveopt,+xsaves" } attributes #1 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "frame-pointer"="none" "target-cpu"="skylake" "target-features"="-16bit-mode,-32bit-mode,-3dnow,-3dnowa,+64bit,+adx,+aes,+allow-light-256-bit,-amx-bf16,-amx-complex,-amx-fp16,-amx-int8,-amx-tile,+avx,-avx10.1-256,-avx10.1-512,+avx2,-avx512bf16,-avx512bitalg,-avx512bw,-avx512cd,-avx512dq,-avx512er,-avx512f,-avx512fp16,-avx512ifma,-avx512pf,-avx512vbmi,-avx512vbmi2,-avx512vl,-avx512vnni,-avx512vp2intersect,-avx512vpopcntdq,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,+bmi,+bmi2,-branchfusion,-ccmp,-cf,-cldemote,+clflushopt,-clwb,-clzero,+cmov,-cmpccxadd,+crc32,+cx16,+cx8,-egpr,-enqcmd,+ermsb,-evex512,+f16c,-false-deps-getmant,-false-deps-lzcnt-tzcnt,-false-deps-mulc,-false-deps-mullq,-false-deps-perm,+false-deps-popcnt,-false-deps-range,-fast-11bytenop,+fast-15bytenop,-fast-7bytenop,-fast-bextr,+fast-gather,-fast-hops,-fast-lzcnt,-fast-movbe,+fast-scalar-fsqrt,-fast-scalar-shift-masks,+fast-shld-rotate,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle,+fast-vector-fsqrt,-fast-vector-shift-masks,-faster-shift-than-shuffle,+fma,-fma4,+fsgsbase,-fsrm,+fxsr,-gfni,-harden-sls-ijmp,-harden-sls-ret,-hreset,-idivl-to-divb,+idivq-to-divl,+invpcid,-kl,-lea-sp,-lea-uses-ag,-lvi-cfi,-lvi-load-hardening,-lwp,+lzcnt,+macrofusion,+mmx,+movbe,-movdir64b,-movdiri,-mwaitx,-ndd,-no-bypass-delay,+no-bypass-delay-blend,+no-bypass-delay-mov,+no-bypass-delay-shuffle,+nopl,-pad-short-functions,+pclmul,-pconfig,-pku,+popcnt,-ppx,-prefer-128-bit,-prefer-256-bit,-prefer-mask-registers,-prefer-movmsk-over-vtest,-prefer-no-gather,-prefer-no-scatter,-prefetchi,-prefetchwt1,+prfchw,-ptwrite,-push2pop2,-raoint,-rdpid,-rdpru,+rdrnd,+rdseed,-retpoline,-retpoline-external-thunk,-retpoline-indirect-branches,-retpoline-indirect-calls,-rtm,+sahf,-sbb-dep-breaking,-serialize,-seses,+sgx,-sha,-sha512,-shstk,+slow-3ops-lea,-slow-incdec,-slow-lea,-slow-pmaddwd,-slow-pmulld,-slow-shld,-slow-two-mem-ops,-slow-unaligned-mem-16,-slow-unaligned-mem-32,-sm3,-sm4,-soft-float,+sse,+sse2,+sse3,+sse4.1,+sse4.2,-sse4a,-sse-unaligned-mem,+ssse3,-tagged-globals,-tbm,-tsxldtrk,-tuning-fast-imm-vector-shift,-uintr,-use-glm-div-sqrt-costs,-use-slm-arith-costs,-usermsr,-vaes,-vpclmulqdq,+vzeroupper,-waitpkg,-wbnoinvd,-widekl,+x87,-xop,+xsave,+xsavec,+xsaveopt,+xsaves" } attributes #2 = { cold noreturn nounwind uwtable "frame-pointer"="none" "target-cpu"="skylake" "target-features"="-16bit-mode,-32bit-mode,-3dnow,-3dnowa,+64bit,+adx,+aes,+allow-light-256-bit,-amx-bf16,-amx-complex,-amx-fp16,-amx-int8,-amx-tile,+avx,-avx10.1-256,-avx10.1-512,+avx2,-avx512bf16,-avx512bitalg,-avx512bw,-avx512cd,-avx512dq,-avx512er,-avx512f,-avx512fp16,-avx512ifma,-avx512pf,-avx512vbmi,-avx512vbmi2,-avx512vl,-avx512vnni,-avx512vp2intersect,-avx512vpopcntdq,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,+bmi,+bmi2,-branchfusion,-ccmp,-cf,-cldemote,+clflushopt,-clwb,-clzero,+cmov,-cmpccxadd,+crc32,+cx16,+cx8,-egpr,-enqcmd,+ermsb,-evex512,+f16c,-false-deps-getmant,-false-deps-lzcnt-tzcnt,-false-deps-mulc,-false-deps-mullq,-false-deps-perm,+false-deps-popcnt,-false-deps-range,-fast-11bytenop,+fast-15bytenop,-fast-7bytenop,-fast-bextr,+fast-gather,-fast-hops,-fast-lzcnt,-fast-movbe,+fast-scalar-fsqrt,-fast-scalar-shift-masks,+fast-shld-rotate,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle,+fast-vector-fsqrt,-fast-vector-shift-masks,-faster-shift-than-shuffle,+fma,-fma4,+fsgsbase,-fsrm,+fxsr,-gfni,-harden-sls-ijmp,-harden-sls-ret,-hreset,-idivl-to-divb,+idivq-to-divl,+invpcid,-kl,-lea-sp,-lea-uses-ag,-lvi-cfi,-lvi-load-hardening,-lwp,+lzcnt,+macrofusion,+mmx,+movbe,-movdir64b,-movdiri,-mwaitx,-ndd,-no-bypass-delay,+no-bypass-delay-blend,+no-bypass-delay-mov,+no-bypass-delay-shuffle,+nopl,-pad-short-functions,+pclmul,-pconfig,-pku,+popcnt,-ppx,-prefer-128-bit,-prefer-256-bit,-prefer-mask-registers,-prefer-movmsk-over-vtest,-prefer-no-gather,-prefer-no-scatter,-prefetchi,-prefetchwt1,+prfchw,-ptwrite,-push2pop2,-raoint,-rdpid,-rdpru,+rdrnd,+rdseed,-retpoline,-retpoline-external-thunk,-retpoline-indirect-branches,-retpoline-indirect-calls,-rtm,+sahf,-sbb-dep-breaking,-serialize,-seses,+sgx,-sha,-sha512,-shstk,+slow-3ops-lea,-slow-incdec,-slow-lea,-slow-pmaddwd,-slow-pmulld,-slow-shld,-slow-two-mem-ops,-slow-unaligned-mem-16,-slow-unaligned-mem-32,-sm3,-sm4,-soft-float,+sse,+sse2,+sse3,+sse4.1,+sse4.2,-sse4a,-sse-unaligned-mem,+ssse3,-tagged-globals,-tbm,-tsxldtrk,-tuning-fast-imm-vector-shift,-uintr,-use-glm-div-sqrt-costs,-use-slm-arith-costs,-usermsr,-vaes,-vpclmulqdq,+vzeroupper,-waitpkg,-wbnoinvd,-widekl,+x87,-xop,+xsave,+xsavec,+xsaveopt,+xsaves" } attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #5 = { mustprogress nofree norecurse nosync nounwind willreturn uwtable "frame-pointer"="none" "target-cpu"="skylake" "target-features"="-16bit-mode,-32bit-mode,-3dnow,-3dnowa,+64bit,+adx,+aes,+allow-light-256-bit,-amx-bf16,-amx-complex,-amx-fp16,-amx-int8,-amx-tile,+avx,-avx10.1-256,-avx10.1-512,+avx2,-avx512bf16,-avx512bitalg,-avx512bw,-avx512cd,-avx512dq,-avx512er,-avx512f,-avx512fp16,-avx512ifma,-avx512pf,-avx512vbmi,-avx512vbmi2,-avx512vl,-avx512vnni,-avx512vp2intersect,-avx512vpopcntdq,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,+bmi,+bmi2,-branchfusion,-ccmp,-cf,-cldemote,+clflushopt,-clwb,-clzero,+cmov,-cmpccxadd,+crc32,+cx16,+cx8,-egpr,-enqcmd,+ermsb,-evex512,+f16c,-false-deps-getmant,-false-deps-lzcnt-tzcnt,-false-deps-mulc,-false-deps-mullq,-false-deps-perm,+false-deps-popcnt,-false-deps-range,-fast-11bytenop,+fast-15bytenop,-fast-7bytenop,-fast-bextr,+fast-gather,-fast-hops,-fast-lzcnt,-fast-movbe,+fast-scalar-fsqrt,-fast-scalar-shift-masks,+fast-shld-rotate,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle,+fast-vector-fsqrt,-fast-vector-shift-masks,-faster-shift-than-shuffle,+fma,-fma4,+fsgsbase,-fsrm,+fxsr,-gfni,-harden-sls-ijmp,-harden-sls-ret,-hreset,-idivl-to-divb,+idivq-to-divl,+invpcid,-kl,-lea-sp,-lea-uses-ag,-lvi-cfi,-lvi-load-hardening,-lwp,+lzcnt,+macrofusion,+mmx,+movbe,-movdir64b,-movdiri,-mwaitx,-ndd,-no-bypass-delay,+no-bypass-delay-blend,+no-bypass-delay-mov,+no-bypass-delay-shuffle,+nopl,-pad-short-functions,+pclmul,-pconfig,-pku,+popcnt,-ppx,-prefer-128-bit,-prefer-256-bit,-prefer-mask-registers,-prefer-movmsk-over-vtest,-prefer-no-gather,-prefer-no-scatter,-prefetchi,-prefetchwt1,+prfchw,-ptwrite,-push2pop2,-raoint,-rdpid,-rdpru,+rdrnd,+rdseed,-retpoline,-retpoline-external-thunk,-retpoline-indirect-branches,-retpoline-indirect-calls,-rtm,+sahf,-sbb-dep-breaking,-serialize,-seses,+sgx,-sha,-sha512,-shstk,+slow-3ops-lea,-slow-incdec,-slow-lea,-slow-pmaddwd,-slow-pmulld,-slow-shld,-slow-two-mem-ops,-slow-unaligned-mem-16,-slow-unaligned-mem-32,-sm3,-sm4,-soft-float,+sse,+sse2,+sse3,+sse4.1,+sse4.2,-sse4a,-sse-unaligned-mem,+ssse3,-tagged-globals,-tbm,-tsxldtrk,-tuning-fast-imm-vector-shift,-uintr,-use-glm-div-sqrt-costs,-use-slm-arith-costs,-usermsr,-vaes,-vpclmulqdq,+vzeroupper,-waitpkg,-wbnoinvd,-widekl,+x87,-xop,+xsave,+xsavec,+xsaveopt,+xsaves" } attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #7 = { nofree nounwind uwtable "frame-pointer"="none" "target-cpu"="skylake" "target-features"="-16bit-mode,-32bit-mode,-3dnow,-3dnowa,+64bit,+adx,+aes,+allow-light-256-bit,-amx-bf16,-amx-complex,-amx-fp16,-amx-int8,-amx-tile,+avx,-avx10.1-256,-avx10.1-512,+avx2,-avx512bf16,-avx512bitalg,-avx512bw,-avx512cd,-avx512dq,-avx512er,-avx512f,-avx512fp16,-avx512ifma,-avx512pf,-avx512vbmi,-avx512vbmi2,-avx512vl,-avx512vnni,-avx512vp2intersect,-avx512vpopcntdq,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,+bmi,+bmi2,-branchfusion,-ccmp,-cf,-cldemote,+clflushopt,-clwb,-clzero,+cmov,-cmpccxadd,+crc32,+cx16,+cx8,-egpr,-enqcmd,+ermsb,-evex512,+f16c,-false-deps-getmant,-false-deps-lzcnt-tzcnt,-false-deps-mulc,-false-deps-mullq,-false-deps-perm,+false-deps-popcnt,-false-deps-range,-fast-11bytenop,+fast-15bytenop,-fast-7bytenop,-fast-bextr,+fast-gather,-fast-hops,-fast-lzcnt,-fast-movbe,+fast-scalar-fsqrt,-fast-scalar-shift-masks,+fast-shld-rotate,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle,+fast-vector-fsqrt,-fast-vector-shift-masks,-faster-shift-than-shuffle,+fma,-fma4,+fsgsbase,-fsrm,+fxsr,-gfni,-harden-sls-ijmp,-harden-sls-ret,-hreset,-idivl-to-divb,+idivq-to-divl,+invpcid,-kl,-lea-sp,-lea-uses-ag,-lvi-cfi,-lvi-load-hardening,-lwp,+lzcnt,+macrofusion,+mmx,+movbe,-movdir64b,-movdiri,-mwaitx,-ndd,-no-bypass-delay,+no-bypass-delay-blend,+no-bypass-delay-mov,+no-bypass-delay-shuffle,+nopl,-pad-short-functions,+pclmul,-pconfig,-pku,+popcnt,-ppx,-prefer-128-bit,-prefer-256-bit,-prefer-mask-registers,-prefer-movmsk-over-vtest,-prefer-no-gather,-prefer-no-scatter,-prefetchi,-prefetchwt1,+prfchw,-ptwrite,-push2pop2,-raoint,-rdpid,-rdpru,+rdrnd,+rdseed,-retpoline,-retpoline-external-thunk,-retpoline-indirect-branches,-retpoline-indirect-calls,-rtm,+sahf,-sbb-dep-breaking,-serialize,-seses,+sgx,-sha,-sha512,-shstk,+slow-3ops-lea,-slow-incdec,-slow-lea,-slow-pmaddwd,-slow-pmulld,-slow-shld,-slow-two-mem-ops,-slow-unaligned-mem-16,-slow-unaligned-mem-32,-sm3,-sm4,-soft-float,+sse,+sse2,+sse3,+sse4.1,+sse4.2,-sse4a,-sse-unaligned-mem,+ssse3,-tagged-globals,-tbm,-tsxldtrk,-tuning-fast-imm-vector-shift,-uintr,-use-glm-div-sqrt-costs,-use-slm-arith-costs,-usermsr,-vaes,-vpclmulqdq,+vzeroupper,-waitpkg,-wbnoinvd,-widekl,+x87,-xop,+xsave,+xsavec,+xsaveopt,+xsaves" } attributes #8 = { noreturn nounwind uwtable "frame-pointer"="none" "target-cpu"="skylake" "target-features"="-16bit-mode,-32bit-mode,-3dnow,-3dnowa,+64bit,+adx,+aes,+allow-light-256-bit,-amx-bf16,-amx-complex,-amx-fp16,-amx-int8,-amx-tile,+avx,-avx10.1-256,-avx10.1-512,+avx2,-avx512bf16,-avx512bitalg,-avx512bw,-avx512cd,-avx512dq,-avx512er,-avx512f,-avx512fp16,-avx512ifma,-avx512pf,-avx512vbmi,-avx512vbmi2,-avx512vl,-avx512vnni,-avx512vp2intersect,-avx512vpopcntdq,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,+bmi,+bmi2,-branchfusion,-ccmp,-cf,-cldemote,+clflushopt,-clwb,-clzero,+cmov,-cmpccxadd,+crc32,+cx16,+cx8,-egpr,-enqcmd,+ermsb,-evex512,+f16c,-false-deps-getmant,-false-deps-lzcnt-tzcnt,-false-deps-mulc,-false-deps-mullq,-false-deps-perm,+false-deps-popcnt,-false-deps-range,-fast-11bytenop,+fast-15bytenop,-fast-7bytenop,-fast-bextr,+fast-gather,-fast-hops,-fast-lzcnt,-fast-movbe,+fast-scalar-fsqrt,-fast-scalar-shift-masks,+fast-shld-rotate,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle,+fast-vector-fsqrt,-fast-vector-shift-masks,-faster-shift-than-shuffle,+fma,-fma4,+fsgsbase,-fsrm,+fxsr,-gfni,-harden-sls-ijmp,-harden-sls-ret,-hreset,-idivl-to-divb,+idivq-to-divl,+invpcid,-kl,-lea-sp,-lea-uses-ag,-lvi-cfi,-lvi-load-hardening,-lwp,+lzcnt,+macrofusion,+mmx,+movbe,-movdir64b,-movdiri,-mwaitx,-ndd,-no-bypass-delay,+no-bypass-delay-blend,+no-bypass-delay-mov,+no-bypass-delay-shuffle,+nopl,-pad-short-functions,+pclmul,-pconfig,-pku,+popcnt,-ppx,-prefer-128-bit,-prefer-256-bit,-prefer-mask-registers,-prefer-movmsk-over-vtest,-prefer-no-gather,-prefer-no-scatter,-prefetchi,-prefetchwt1,+prfchw,-ptwrite,-push2pop2,-raoint,-rdpid,-rdpru,+rdrnd,+rdseed,-retpoline,-retpoline-external-thunk,-retpoline-indirect-branches,-retpoline-indirect-calls,-rtm,+sahf,-sbb-dep-breaking,-serialize,-seses,+sgx,-sha,-sha512,-shstk,+slow-3ops-lea,-slow-incdec,-slow-lea,-slow-pmaddwd,-slow-pmulld,-slow-shld,-slow-two-mem-ops,-slow-unaligned-mem-16,-slow-unaligned-mem-32,-sm3,-sm4,-soft-float,+sse,+sse2,+sse3,+sse4.1,+sse4.2,-sse4a,-sse-unaligned-mem,+ssse3,-tagged-globals,-tbm,-tsxldtrk,-tuning-fast-imm-vector-shift,-uintr,-use-glm-div-sqrt-costs,-use-slm-arith-costs,-usermsr,-vaes,-vpclmulqdq,+vzeroupper,-waitpkg,-wbnoinvd,-widekl,+x87,-xop,+xsave,+xsavec,+xsaveopt,+xsaves" } attributes #9 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } attributes #10 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #11 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) } attributes #12 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #13 = { nounwind } !llvm.module.flags = !{!0, !1} !0 = !{i32 8, !"PIC Level", i32 2} !1 = !{i32 7, !"PIE Level", i32 2} !2 = !{!3} !3 = distinct !{!3, !4, !"fmt.digits2: argument 0"} !4 = distinct !{!4, !"fmt.digits2"} !5 = !{!6} !6 = distinct !{!6, !7, !"fmt.digits2: argument 0"} !7 = distinct !{!7, !"fmt.digits2"} !8 = !{!9, !11} !9 = distinct !{!9, !10, !"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn: argument 0"} !10 = distinct !{!10, !"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn"} !11 = distinct !{!11, !12, !"io.Writer.write: argument 0"} !12 = distinct !{!12, !"io.Writer.write"} !13 = !{!11} !14 = !{!"function_section_prefix", !"unlikely"} !15 = !{!16} !16 = distinct !{!16, !17, !"fmt.bufPrint__anon_3279: argument 0"} !17 = distinct !{!17, !"fmt.bufPrint__anon_3279"} !18 = !{!19, !21, !16} !19 = distinct !{!19, !20, !"io.GenericWriter(*io.fixed_buffer_stream.FixedBufferStream([]u8),error{NoSpaceLeft},(function 'write')).typeErasedWriteFn: argument 0"} !20 = distinct !{!20, !"io.GenericWriter(*io.fixed_buffer_stream.FixedBufferStream([]u8),error{NoSpaceLeft},(function 'write')).typeErasedWriteFn"} !21 = distinct !{!21, !22, !"io.Writer.write: argument 0"} !22 = distinct !{!22, !"io.Writer.write"} !23 = !{!24, !19, !21, !16} !24 = distinct !{!24, !25, !"io.fixed_buffer_stream.FixedBufferStream([]u8).write: argument 0"} !25 = distinct !{!25, !"io.fixed_buffer_stream.FixedBufferStream([]u8).write"} !26 = !{!27} !27 = distinct !{!27, !28, !"posix.write: argument 0"} !28 = distinct !{!28, !"posix.write"} !29 = !{!30} !30 = distinct !{!30, !31, !"io.fixed_buffer_stream.FixedBufferStream([]u8).write: argument 0"} !31 = distinct !{!31, !"io.fixed_buffer_stream.FixedBufferStream([]u8).write"} !32 = !{!33, !35} !33 = distinct !{!33, !34, !"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn: argument 0"} !34 = distinct !{!34, !"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn"} !35 = distinct !{!35, !36, !"io.Writer.write: argument 0"} !36 = distinct !{!36, !"io.Writer.write"} !37 = !{!35} !38 = !{!39} !39 = distinct !{!39, !40, !"fmt.digits2: argument 0"} !40 = distinct !{!40, !"fmt.digits2"} !41 = !{!42} !42 = distinct !{!42, !43, !"fmt.digits2: argument 0"} !43 = distinct !{!43, !"fmt.digits2"} !44 = !{!45, !47} !45 = distinct !{!45, !46, !"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn: argument 0"} !46 = distinct !{!46, !"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn"} !47 = distinct !{!47, !48, !"io.Writer.write: argument 0"} !48 = distinct !{!48, !"io.Writer.write"} !49 = !{!47} !50 = !{!51, !53} !51 = distinct !{!51, !52, !"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn: argument 0"} !52 = distinct !{!52, !"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn"} !53 = distinct !{!53, !54, !"io.Writer.write: argument 0"} !54 = distinct !{!54, !"io.Writer.write"} !55 = !{!53} !56 = !{!57, !59} !57 = distinct !{!57, !58, !"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn: argument 0"} !58 = distinct !{!58, !"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn"} !59 = distinct !{!59, !60, !"io.Writer.write: argument 0"} !60 = distinct !{!60, !"io.Writer.write"} !61 = !{!59} !62 = !{!63, !65} !63 = distinct !{!63, !64, !"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn: argument 0"} !64 = distinct !{!64, !"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn"} !65 = distinct !{!65, !66, !"io.Writer.write: argument 0"} !66 = distinct !{!66, !"io.Writer.write"} !67 = !{!65} !68 = !{!69} !69 = distinct !{!69, !70, !"unicode.utf8CountCodepoints: argument 0"} !70 = distinct !{!70, !"unicode.utf8CountCodepoints"} !71 = !{!72, !69} !72 = distinct !{!72, !73, !"unicode.utf8Decode: argument 0"} !73 = distinct !{!73, !"unicode.utf8Decode"} !74 = !{!75} !75 = distinct !{!75, !76, !"unicode.utf8Decode2: argument 0"} !76 = distinct !{!76, !"unicode.utf8Decode2"} !77 = !{!75, !72, !69} !78 = !{!79} !79 = distinct !{!79, !80, !"unicode.utf8Decode3: argument 0"} !80 = distinct !{!80, !"unicode.utf8Decode3"} !81 = !{!82, !79, !72, !69} !82 = distinct !{!82, !83, !"unicode.utf8Decode3AllowSurrogateHalf: argument 0"} !83 = distinct !{!83, !"unicode.utf8Decode3AllowSurrogateHalf"} !84 = !{!85} !85 = distinct !{!85, !86, !"unicode.utf8Decode4: argument 0"} !86 = distinct !{!86, !"unicode.utf8Decode4"} !87 = !{!85, !72, !69} !88 = !{!89} !89 = distinct !{!89, !90, !"io.Writer.write: argument 0"} !90 = distinct !{!90, !"io.Writer.write"} !91 = !{!92} !92 = distinct !{!92, !93, !"io.Writer.write: argument 0"} !93 = distinct !{!93, !"io.Writer.write"} !94 = !{!95} !95 = distinct !{!95, !96, !"unicode.utf8EncodeImpl__anon_4051: argument 0"} !96 = distinct !{!96, !"unicode.utf8EncodeImpl__anon_4051"} !97 = !{!98, !95, !100} !98 = distinct !{!98, !99, !"unicode.utf8CodepointSequenceLength: argument 0"} !99 = distinct !{!99, !"unicode.utf8CodepointSequenceLength"} !100 = distinct !{!100, !101, !"unicode.utf8Encode: argument 0"} !101 = distinct !{!101, !"unicode.utf8Encode"} !102 = !{!95, !100} !103 = !{!100} !104 = !{!105} !105 = distinct !{!105, !106, !"io.Writer.write: argument 0"} !106 = distinct !{!106, !"io.Writer.write"} !107 = !{!108} !108 = distinct !{!108, !109, !"io.Writer.write: argument 0"} !109 = distinct !{!109, !"io.Writer.write"} !110 = !{!111} !111 = distinct !{!111, !112, !"io.Writer.write: argument 0"} !112 = distinct !{!112, !"io.Writer.write"} !113 = !{!114} !114 = distinct !{!114, !115, !"io.Writer.write: argument 0"} !115 = distinct !{!115, !"io.Writer.write"} !116 = !{!117} !117 = distinct !{!117, !118, !"io.Writer.write: argument 0"} !118 = distinct !{!118, !"io.Writer.write"} !119 = !{!120} !120 = distinct !{!120, !121, !"io.Writer.write: argument 0"} !121 = distinct !{!121, !"io.Writer.write"} !122 = !{!123} !123 = distinct !{!123, !124, !"io.Writer.write: argument 0"} !124 = distinct !{!124, !"io.Writer.write"}
Texte modifié
Ouvrir un fichier
; ModuleID = 'BitcodeBuffer' source_filename = "biggy" target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-macosx14.5.0-unknown" %macho.mach_header_64 = type { i32, i32, i32, i32, i32, i32, i32, i32 } %Thread.Mutex.Recursive = type { i64, i64, %Thread.Mutex, [4 x i8] } %Thread.Mutex = type { %Thread.Mutex.DarwinImpl } %Thread.Mutex.DarwinImpl = type { %c.darwin.os_unfair_lock } %c.darwin.os_unfair_lock = type { i32 } %"atomic.Value(u8)" = type { i8 } %fmt.FormatOptions = type { { i64, i8, [7 x i8] }, { i64, i8, [7 x i8] }, i21, i2, [3 x i8] } %io.Writer = type { ptr, ptr } %"io.fixed_buffer_stream.FixedBufferStream([]u8)" = type { { ptr, i64 }, i64 } @os.argv = internal unnamed_addr global { ptr, i64 } undef, align 8 @os.environ = internal unnamed_addr global { ptr, i64 } undef, align 8 @__anon_1669 = internal unnamed_addr constant { { ptr }, i32, i32 } { { ptr } { ptr @start.noopSigHandler }, i32 0, i32 0 }, align 8 @_mh_execute_header = weak_odr dso_local local_unnamed_addr global %macho.mach_header_64 undef, align 4 @__anon_2157 = internal unnamed_addr constant [16 x i8] c"(msg truncated)\00", align 1 @Progress.stderr_mutex = internal unnamed_addr global %Thread.Mutex.Recursive { i64 -1, i64 0, %Thread.Mutex zeroinitializer, [4 x i8] undef }, align 8 @__anon_1474 = internal unnamed_addr constant [5 x i8] c"{d}\0A\00", align 1 @__anon_1704 = internal unnamed_addr constant [40 x i8] c"failed to set noop SIGPIPE handler: {s}\00", align 1 @0 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 7, [6 x i8] undef }, align 8 @1 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 14, [6 x i8] undef }, align 8 @2 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 12, [6 x i8] undef }, align 8 @3 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 2, [6 x i8] undef }, align 8 @4 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 3, [6 x i8] undef }, align 8 @5 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 4, [6 x i8] undef }, align 8 @6 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 8, [6 x i8] undef }, align 8 @7 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 9, [6 x i8] undef }, align 8 @8 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 15, [6 x i8] undef }, align 8 @9 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 6, [6 x i8] undef }, align 8 @debug.panic_stage = internal thread_local unnamed_addr global i64 0, align 8 @debug.panicking = internal unnamed_addr global %"atomic.Value(u8)" zeroinitializer, align 1 @10 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 23, i3 undef, [1 x i8] undef }, align 2 @__anon_3683 = internal unnamed_addr constant [3 x i8] c"\EF\BF\BD", align 1 @11 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 5, [6 x i8] undef }, align 8 @__anon_3790 = internal unnamed_addr constant [201 x i8] c"00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899\00", align 1 @12 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 0, i3 1, [1 x i8] undef }, align 4 @13 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 0, i3 2, [1 x i8] undef }, align 4 @14 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 0, i3 3, [1 x i8] undef }, align 4 @15 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 0, i3 -4, [1 x i8] undef }, align 4 @__anon_3287 = internal unnamed_addr constant [18 x i8] c"thread {} panic: \00", align 1 @16 = private unnamed_addr constant %fmt.FormatOptions { { i64, i8, [7 x i8] } { i64 undef, i8 0, [7 x i8] undef }, { i64, i8, [7 x i8] } { i64 undef, i8 0, [7 x i8] undef }, i21 32, i2 -2, [3 x i8] undef }, align 8 @__anon_3300 = internal unnamed_addr constant [5 x i8] c"{s}\0A\00", align 1 @__anon_3318 = internal unnamed_addr constant [36 x i8] c"Panicked during a panic. Aborting.\0A\00", align 1 @__anon_3724 = internal unnamed_addr constant [49 x i8] c"Unable to dump stack trace: debug info stripped\0A\00", align 1 @17 = private unnamed_addr constant [22 x i8] c"OperationNotSupported\00", align 1 ; Function Attrs: nounwind uwtable define dso_local noundef i32 @main(i32 %0, ptr nonnull align 8 %1, ptr nonnull align 8 %2) local_unnamed_addr #0 { %4 = alloca [16509 x i8], align 1 %5 = alloca [16 x i8], align 8 %.sroa.0.i.i.i.i.i.i.i.i = alloca i16512, align 16 %6 = alloca [8 x i8], align 8 %7 = alloca [16 x i8], align 8 %8 = alloca [4 x i8], align 4 %9 = alloca [16 x i8], align 8 br label %10 10: ; preds = %10, %3 %lsr.iv = phi i64 [ %lsr.iv.next, %10 ], [ -1, %3 ] %11 = shl i64 %lsr.iv, 3 %scevgep = getelementptr i8, ptr %2, i64 %11 %scevgep13 = getelementptr i8, ptr %scevgep, i64 8 %12 = load ptr, ptr %scevgep13, align 8 %.not = icmp eq ptr %12, null %lsr.iv.next = add i64 %lsr.iv, 1 br i1 %.not, label %13, label %10 13: ; preds = %10 %14 = sext i32 %0 to i64 store ptr %1, ptr @os.argv, align 8 store i64 %14, ptr getelementptr inbounds ({ ptr, i64 }, ptr @os.argv, i64 0, i32 1), align 8 store ptr %2, ptr @os.environ, align 8 store i64 %lsr.iv.next, ptr getelementptr inbounds ({ ptr, i64 }, ptr @os.environ, i64 0, i32 1), align 8 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) %15 = tail call i32 @sigaction(i32 13, ptr noalias nonnull readonly align 8 @__anon_1669, ptr noalias align 8 null) %16 = icmp eq i32 %15, -1 br i1 %16, label %posix.errno__anon_3210.exit.i.i, label %start.maybeIgnoreSigpipe.exit posix.errno__anon_3210.exit.i.i: ; preds = %13 %17 = tail call ptr @__error() %18 = load i32, ptr %17, align 4 %.fr3.i.i = freeze i32 %18 %19 = and i32 %.fr3.i.i, 65535 %switch.i.i = icmp eq i32 %19, 0 br i1 %switch.i.i, label %start.maybeIgnoreSigpipe.exit, label %posix.sigaction.exit.i posix.sigaction.exit.i: ; preds = %posix.errno__anon_3210.exit.i.i store ptr @17, ptr %4, align 8 %.fca.1.gep.i = getelementptr inbounds { ptr, i64 }, ptr %4, i64 0, i32 1 store i64 21, ptr %.fca.1.gep.i, align 8 call fastcc void @debug.panic__anon_2624(ptr nonnull readonly align 8 %4) unreachable start.maybeIgnoreSigpipe.exit: ; preds = %13, %posix.errno__anon_3210.exit.i.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) %20 = call i32 @pthread_threadid_np(ptr align 1 null, ptr nonnull align 8 %4) %21 = load i64, ptr %4, align 8 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) %22 = load atomic i64, ptr @Progress.stderr_mutex unordered, align 8 %.not.i.i.i.i.i = icmp eq i64 %22, %21 br i1 %.not.i.i.i.i.i, label %._crit_edge.i.i.i.i.i, label %24 ._crit_edge.i.i.i.i.i: ; preds = %start.maybeIgnoreSigpipe.exit %.pre.i.i.i.i.i = load i64, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8 %23 = add nuw i64 %.pre.i.i.i.i.i, 1 br label %Thread.Mutex.Recursive.lock.exit.i.i.i.i 24: ; preds = %start.maybeIgnoreSigpipe.exit call void @os_unfair_lock_lock(ptr nonnull align 4 getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 2)) store atomic i64 %21, ptr @Progress.stderr_mutex unordered, align 8 br label %Thread.Mutex.Recursive.lock.exit.i.i.i.i Thread.Mutex.Recursive.lock.exit.i.i.i.i: ; preds = %24, %._crit_edge.i.i.i.i.i %25 = phi i64 [ %23, %._crit_edge.i.i.i.i.i ], [ 1, %24 ] store i64 %25, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8 store i32 2, ptr %8, align 4 store ptr %8, ptr %7, align 8 %.sroa.2.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %7, i64 8 store ptr @"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn", ptr %.sroa.2.0..sroa_idx.i.i, align 8 call void @llvm.lifetime.start.p0(i64 2064, ptr nonnull %.sroa.0.i.i.i.i.i.i.i.i) call void @llvm.lifetime.start.p0(i64 16509, ptr nonnull %4) store i16508 -10170291864599254685376928579451837474849162567202793202210005589829000001078205320552418457072995021665081016751661498373627049384699318424501181692820593184504087730148641241678808042364595648099335954245308528979249571015745002826186590929629881504912826401439521673436761967613685880371807232457262686567424590031041380673713995838060943073894429776039677102519416452786696299358972088899041919622869132413389847315698310753997445809635163863167518537049953145856120898487515084175003600571605920732046428967026145392827337980304413004181016851665875688004233509871598760500818920715799014335111801474484357883706457620708194488463786749410052154637190792137233742013162514773385877134386262850484887912034511384718707031119901541770568014454622534818196961900563346643897899550007564212094603016505689908364328097828672894286906663226798373444845834693955014696786963085485271317392968218570506297665977171100553475630578002558846609566914043356188967361610411543136798575744314602254384950974207577412792436485393343681447431637237619645239077207141954593409191577470854214214527062603987504056592716485429461337411416260411326122358005905006316691630702571168235469072537497205173435015314507595727846352208189390532350213091213800972487586332217101318593346932069519217231589404890187395493634737698008526992188059185372314824731375396348191019878904912839508442756350390540735539252897915733820543408757569669698347612105479742809551939160392021065832065405409081730683324439021651649491831037679012669450154646742117936765042759895960577820982932866878502251386683008049011770676146352569948875377603710833473891506210586138680283010472789540500225895060555108201701992727326595781983950669964075131259737163476094947430634318943636928287372962645431712200260631668466327845535662057485535837794525134023839265097149357341392598116869488624424785202638945781617525507938417812908847621126603840809577946471124135694835361573590901992187275827560839788808337132342294924890375309400257342009263852446339871433421676949846863282574082039977414219589803793916512909477524042210110800691164503650743380087245557641026211814759138938988902861017910466035027098468734696374409423704953462131615276035702698679732554136720945239658165359508037173360372815496654167204006231237426043465954430397642367117232930610595436866781711749420539266607239120223586178746215762403241013292054006749667406788906806805592302769876093682670642350035696145740990073504781641729792954366610972925522628335087544802633805690233302012159090369683206299864779369074527397582813287667049841022155179568481557777835146467492996478983466483796095978619494437171038193055428615448303476987170979391130540042796021914260857669773809570737629831468265070925527793456242603671249643407962165278914705488149199414094623300052410504342594660990694744188830372516809980695115283847259973757644302706098476458582967338215789704831373221098805862179408470429000015253437609814427186345113105380913865183211103854173139668163034753687379160010280613421026023890596514366114135274946001300700194910144693521056529983593765001894538632102620168685513626721747547826694134393963446602620483818228897392219995580293504842587667052922133905724401820039637095826339208144068128377429384676352007091773106260804817125447038141483776457981313958958092108328282828053626226628090709775490475240442376407471420986088375725056540403885755395629035905003996346421829048422358054746864793871834883615300995578921735883258386042117891005285543107032952574305665807856936503308918143218775773797369587210043046599546768617072387732655869462532049808040881980586736124414441700729276886084859965622473856577848273644660887511279610766981550723531537893109091954772728621697718590103892582178423141920898008271694828510750734262472584519256218653510185043492778801555081506017195136331276343395988406747764213253662884510302885907963443294007599360288788267089632492610674522627379722948196647439768648579013784052729708248828866232668193464937159485130054818011877242971754480988588904950251544526947897977338033018106506447157602740037907962641818493560785107234932326553825207764543212594416681681823492669465597871034101589352735991725895285081352274192696182365962855972508506787548097373692081044103866483153776147626484118284798381649312916432153698693244624539921281359272516104764491311933680047951327243268187343845278680242472956504586941343915803694364446442435372361783481084800047708582833218561233645375187287580425881439984086029571534196348134033146101419942736419641888862430531852148834144585678127762684826323916687596634753290731198722290470721336516647215194644802980928563903497893503658792688705282357034713790871476544032008607911697136089003142015145531481746494131435796427849458279257616606660487172062438048287573657170255549994951125054212584895866729458830403990657106990989224437000964710449092864360449583564842610076950491711517265333959716772707478792311035106252904185320928056511, ptr %.sroa.0.i.i.i.i.i.i.i.i, align 16 %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.13.i.i.i.i.i.i.i.i = load i16512, ptr %.sroa.0.i.i.i.i.i.i.i.i, align 16 %26 = trunc i16512 %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.13.i.i.i.i.i.i.i.i to i16508 %27 = icmp ugt i16508 %26, 99 %extract.t.i.i.i.i.i.i.i.i = trunc i16512 %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.13.i.i.i.i.i.i.i.i to i8 %extract.t9.i.i.i.i.i.i.i.i = trunc i16512 %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.13.i.i.i.i.i.i.i.i to i64 br i1 %27, label %.lr.ph.i.i.i.i.i.i.i.i_udiv-special-cases.preheader, label %._crit_edge.i.i.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i.i.i_udiv-special-cases.preheader: ; preds = %Thread.Mutex.Recursive.lock.exit.i.i.i.i %28 = trunc i16512 %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.13.i.i.i.i.i.i.i.i to i16508 br label %.lr.ph.i.i.i.i.i.i.i.i_udiv-special-cases .lr.ph.i.i.i.i.i.i.i.i_udiv-special-cases: ; preds = %.lr.ph.i.i.i.i.i.i.i.i_udiv-special-cases.preheader, %udiv-end %29 = phi i16508 [ %76, %udiv-end ], [ %28, %.lr.ph.i.i.i.i.i.i.i.i_udiv-special-cases.preheader ] %.sroa.09.14.i.i.i.i.i.i.i.i = phi i64 [ %30, %udiv-end ], [ 16509, %.lr.ph.i.i.i.i.i.i.i.i_udiv-special-cases.preheader ] %30 = add i64 %.sroa.09.14.i.i.i.i.i.i.i.i, -2 %.frozen = freeze i16508 %29 %31 = freeze i16508 100 %32 = freeze i16508 %.frozen %33 = icmp eq i16508 %31, 0 %34 = icmp eq i16508 %32, 0 %35 = or i1 %33, %34 %36 = call i16508 @llvm.ctlz.i16508(i16508 %31, i1 true) %37 = call i16508 @llvm.ctlz.i16508(i16508 %32, i1 true) %38 = sub i16508 %36, %37 %39 = icmp ugt i16508 %38, 16507 %40 = select i1 %35, i1 true, i1 %39 %41 = icmp eq i16508 %38, 16507 %42 = select i1 %40, i16508 0, i16508 %32 %43 = select i1 %40, i1 true, i1 %41 br i1 %43, label %udiv-end, label %udiv-bb1 udiv-loop-exit: ; preds = %udiv-do-while, %udiv-bb1 %44 = phi i16508 [ 0, %udiv-bb1 ], [ %59, %udiv-do-while ] %45 = phi i16508 [ %68, %udiv-bb1 ], [ %56, %udiv-do-while ] %46 = shl i16508 %45, 1 %47 = or i16508 %44, %46 br label %udiv-end udiv-do-while: ; preds = %udiv-do-while, %udiv-preheader %48 = phi i16508 [ 0, %udiv-preheader ], [ %59, %udiv-do-while ] %49 = phi i16508 [ %66, %udiv-preheader ], [ %62, %udiv-do-while ] %50 = phi i16508 [ %64, %udiv-preheader ], [ %61, %udiv-do-while ] %51 = phi i16508 [ %68, %udiv-preheader ], [ %56, %udiv-do-while ] %52 = shl i16508 %50, 1 %53 = lshr i16508 %51, 16507 %54 = or i16508 %52, %53 %55 = shl i16508 %51, 1 %56 = or i16508 %48, %55 %57 = sub i16508 %65, %54 %58 = ashr i16508 %57, 16507 %59 = and i16508 %58, 1 %60 = and i16508 %58, %31 %61 = sub i16508 %54, %60 %62 = add i16508 %49, -1 %63 = icmp eq i16508 %62, 0 br i1 %63, label %udiv-loop-exit, label %udiv-do-while udiv-preheader: ; preds = %udiv-bb1 %64 = lshr i16508 %32, %66 %65 = add i16508 %31, -1 br label %udiv-do-while udiv-bb1: ; preds = %.lr.ph.i.i.i.i.i.i.i.i_udiv-special-cases %66 = add i16508 %38, 1 %67 = sub i16508 16507, %38 %68 = shl i16508 %32, %67 %69 = icmp eq i16508 %66, 0 br i1 %69, label %udiv-loop-exit, label %udiv-preheader udiv-end: ; preds = %udiv-loop-exit, %.lr.ph.i.i.i.i.i.i.i.i_udiv-special-cases %70 = phi i16508 [ %47, %udiv-loop-exit ], [ %42, %.lr.ph.i.i.i.i.i.i.i.i_udiv-special-cases ] %71 = mul i16508 %70, 100 %.decomposed = sub i16508 %.frozen, %71 %72 = trunc i16508 %.decomposed to i64 %73 = shl nuw nsw i64 %72, 1 %74 = getelementptr inbounds i8, ptr @__anon_3790, i64 %73 %75 = load i16, ptr %74, align 1, !noalias !2 %sunkaddr = getelementptr inbounds i8, ptr %4, i64 %30 store i16 %75, ptr %sunkaddr, align 1 store i16508 %70, ptr %.sroa.0.i.i.i.i.i.i.i.i, align 16 %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.1.i.i.i.i.i.i.i.i = load i16512, ptr %.sroa.0.i.i.i.i.i.i.i.i, align 16 %76 = trunc i16512 %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.1.i.i.i.i.i.i.i.i to i16508 %77 = icmp ugt i16508 %76, 99 br i1 %77, label %.lr.ph.i.i.i.i.i.i.i.i_udiv-special-cases, label %._crit_edge.loopexit.i.i.i.i.i.i.i.i ._crit_edge.loopexit.i.i.i.i.i.i.i.i: ; preds = %udiv-end %78 = trunc i16512 %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.1.i.i.i.i.i.i.i.i to i16508 %extract.t10.i.i.i.i.i.i.i.i = trunc i16512 %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.1.i.i.i.i.i.i.i.i to i64 %extract.t7.i.i.i.i.i.i.i.i = trunc i16512 %.sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.i.0..sroa.0.i.i.0..sroa.0.i.i.0..sroa.0.i.0..sroa.0.i.0..sroa.0.0..sroa.0.0..sroa.0.0..sroa.0.0.1.i.i.i.i.i.i.i.i to i8 br label %._crit_edge.i.i.i.i.i.i.i.i ._crit_edge.i.i.i.i.i.i.i.i: ; preds = %._crit_edge.loopexit.i.i.i.i.i.i.i.i, %Thread.Mutex.Recursive.lock.exit.i.i.i.i %.sroa.09.1.lcssa.i.i.i.i.i.i.i.i = phi i64 [ 16509, %Thread.Mutex.Recursive.lock.exit.i.i.i.i ], [ %30, %._crit_edge.loopexit.i.i.i.i.i.i.i.i ] %.sroa.0.0..sroa.0.0..sroa.0.0.1.lcssa.off0.i.i.i.i.i.i.i.i = phi i8 [ %extract.t.i.i.i.i.i.i.i.i, %Thread.Mutex.Recursive.lock.exit.i.i.i.i ], [ %extract.t7.i.i.i.i.i.i.i.i, %._crit_edge.loopexit.i.i.i.i.i.i.i.i ] %.sroa.0.0..sroa.0.0..sroa.0.0.1.lcssa.off08.i.i.i.i.i.i.i.i = phi i64 [ %extract.t9.i.i.i.i.i.i.i.i, %Thread.Mutex.Recursive.lock.exit.i.i.i.i ], [ %extract.t10.i.i.i.i.i.i.i.i, %._crit_edge.loopexit.i.i.i.i.i.i.i.i ] %.lcssa.i.i.i.i.i.i.i.i = phi i16508 [ %26, %Thread.Mutex.Recursive.lock.exit.i.i.i.i ], [ %78, %._crit_edge.loopexit.i.i.i.i.i.i.i.i ] %79 = icmp ult i16508 %.lcssa.i.i.i.i.i.i.i.i, 10 br i1 %79, label %80, label %84 80: ; preds = %._crit_edge.i.i.i.i.i.i.i.i %81 = add i64 %.sroa.09.1.lcssa.i.i.i.i.i.i.i.i, -1 %82 = getelementptr inbounds [16509 x i8], ptr %4, i64 0, i64 %81 %83 = add nuw nsw i8 %.sroa.0.0..sroa.0.0..sroa.0.0.1.lcssa.off0.i.i.i.i.i.i.i.i, 48 store i8 %83, ptr %82, align 1 br label %fmt.formatType__anon_3567.exit.i.i.i.i 84: ; preds = %._crit_edge.i.i.i.i.i.i.i.i %85 = add i64 %.sroa.09.1.lcssa.i.i.i.i.i.i.i.i, -2 %86 = getelementptr inbounds i8, ptr %4, i64 %85 %87 = shl nuw nsw i64 %.sroa.0.0..sroa.0.0..sroa.0.0.1.lcssa.off08.i.i.i.i.i.i.i.i, 1 %88 = getelementptr inbounds i8, ptr @__anon_3790, i64 %87 %89 = load i16, ptr %88, align 1, !noalias !5 store i16 %89, ptr %86, align 1 br label %fmt.formatType__anon_3567.exit.i.i.i.i fmt.formatType__anon_3567.exit.i.i.i.i: ; preds = %84, %80 %.sroa.09.0.i.i.i.i.i.i.i.i = phi i64 [ %81, %80 ], [ %85, %84 ] %90 = getelementptr inbounds i8, ptr %4, i64 %.sroa.09.0.i.i.i.i.i.i.i.i %91 = sub nuw i64 16509, %.sroa.09.0.i.i.i.i.i.i.i.i %92 = call fastcc i16 @fmt.formatBuf__anon_3980(ptr nonnull readonly align 1 %90, i64 %91, ptr nonnull readonly align 8 @16, ptr nonnull readonly align 8 %7) call void @llvm.lifetime.end.p0(i64 2064, ptr nonnull %.sroa.0.i.i.i.i.i.i.i.i) call void @llvm.lifetime.end.p0(i64 16509, ptr nonnull %4) %.not.i.i.i.i = icmp eq i16 %92, 0 br i1 %.not.i.i.i.i, label %.preheader.i.i, label %.loopexit.i.i .preheader.i.i: ; preds = %fmt.formatType__anon_3567.exit.i.i.i.i br label %95 93: ; preds = %95 %94 = add nuw i64 %.sroa.0.0.copyload.i.i, %.sroa.0.014.i.i.i.i.i %.not.i.i.i4.i.i = icmp eq i64 %94, 1 br i1 %.not.i.i.i4.i.i, label %io.Writer.print__anon_2829.exit.i.i, label %95 95: ; preds = %93, %.preheader.i.i %.sroa.0.014.i.i.i.i.i = phi i64 [ %94, %93 ], [ 0, %.preheader.i.i ] %96 = getelementptr inbounds i8, ptr getelementptr inbounds ([5 x i8], ptr @__anon_1474, i64 0, i64 3), i64 %.sroa.0.014.i.i.i.i.i %97 = sub nuw i64 1, %.sroa.0.014.i.i.i.i.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) %.val.i.i.i = load i32, ptr %8, align 4, !noalias !8 call fastcc void @fs.File.write(ptr noalias %4, i32 %.val.i.i.i, ptr nonnull readonly align 1 %96, i64 %97), !noalias !8 %.sroa.0.0.copyload.i.i = load i64, ptr %4, align 8, !noalias !13 %sunkaddr14 = getelementptr inbounds i8, ptr %4, i64 8 %.sroa.4.0.copyload.i.i = load i16, ptr %sunkaddr14, align 8, !noalias !13 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) %.not7.i.i.i.i.i = icmp eq i16 %.sroa.4.0.copyload.i.i, 0 br i1 %.not7.i.i.i.i.i, label %93, label %.loopexit.i.i common.ret.sink.split.i.i: ; preds = %.loopexit.i.i, %io.Writer.print__anon_2829.exit.i.i store atomic i64 -1, ptr @Progress.stderr_mutex unordered, align 8 call void @os_unfair_lock_unlock(ptr nonnull align 4 getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 2)) br label %biggy.main.exit io.Writer.print__anon_2829.exit.i.i: ; preds = %93 %98 = load i64, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8 %99 = add i64 %98, -1 store i64 %99, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8 %100 = icmp eq i64 %99, 0 br i1 %100, label %common.ret.sink.split.i.i, label %biggy.main.exit .loopexit.i.i: ; preds = %95, %fmt.formatType__anon_3567.exit.i.i.i.i %101 = load i64, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8 %102 = add i64 %101, -1 store i64 %102, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8 %103 = icmp eq i64 %102, 0 br i1 %103, label %common.ret.sink.split.i.i, label %biggy.main.exit biggy.main.exit: ; preds = %common.ret.sink.split.i.i, %io.Writer.print__anon_2829.exit.i.i, %.loopexit.i.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) ret i32 0 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable define internal void @start.noopSigHandler(i32 %0) unnamed_addr #1 { ret void } ; Function Attrs: cold noreturn nounwind uwtable define internal fastcc void @debug.panic__anon_2624(ptr nocapture nonnull readonly align 8 %0) unnamed_addr #2 !section_prefix !14 { tail call fastcc void @debug.panicExtra__anon_3213(ptr nonnull readonly align 8 %0) unreachable } ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #3 ; Function Attrs: nounwind uwtable define internal fastcc void @"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn"(ptr noalias nocapture nonnull writeonly sret({ i64, i16, [6 x i8] }) %0, ptr nocapture nonnull readonly align 1 %1, ptr nocapture nonnull readonly align 1 %2, i64 %3) unnamed_addr #0 { %5 = alloca [16 x i8], align 8 %.val = load i32, ptr %1, align 4 call fastcc void @fs.File.write(ptr noalias %5, i32 %.val, ptr nonnull readonly align 1 %2, i64 %3) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr noundef nonnull align 8 dereferenceable(16) %5, i64 16, i1 false) ret void } ; Function Attrs: nounwind uwtable declare i32 @sigaction(i32, ptr noalias readonly align 8, ptr noalias align 8) local_unnamed_addr #0 ; Function Attrs: cold noreturn nounwind uwtable define internal fastcc void @debug.panicExtra__anon_3213(ptr nocapture nonnull readonly align 8 %0) unnamed_addr #2 !section_prefix !14 { %2 = alloca [16 x i8], align 8 %3 = alloca [8 x i8], align 8 %4 = alloca [24 x i8], align 8 %5 = alloca [4111 x i8], align 1 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) store ptr %5, ptr %4, align 8, !noalias !15 %.sroa.2.0..sroa_idx.i = getelementptr inbounds i8, ptr %4, i64 8 store i64 4096, ptr %.sroa.2.0..sroa_idx.i, align 8, !noalias !15 %.sroa.3.0..sroa_idx.i = getelementptr inbounds i8, ptr %4, i64 16 store i64 0, ptr %.sroa.3.0..sroa_idx.i, align 8, !noalias !15 %6 = ptrtoint ptr %4 to i64 store i64 %6, ptr %3, align 8, !noalias !15 store ptr %3, ptr %2, align 8, !noalias !15 %7 = getelementptr inbounds %io.Writer, ptr %2, i64 0, i32 1 store ptr @"io.GenericWriter(*io.fixed_buffer_stream.FixedBufferStream([]u8),error{NoSpaceLeft},(function 'write')).typeErasedWriteFn", ptr %7, align 8, !noalias !15 br label %8 8: ; preds = %12, %1 %.sroa.0.014.i.i.i = phi i64 [ 0, %1 ], [ %20, %12 ] %9 = load ptr, ptr %3, align 8, !noalias !18 %10 = getelementptr inbounds %"io.fixed_buffer_stream.FixedBufferStream([]u8)", ptr %9, i64 0, i32 1 %11 = load i64, ptr %10, align 8, !noalias !23 %.elt8.i.i.i = getelementptr inbounds { ptr, i64 }, ptr %9, i64 0, i32 1 %.unpack9.i.i.i = load i64, ptr %.elt8.i.i.i, align 8, !noalias !23 %.not.i.i6.i = icmp ugt i64 %.unpack9.i.i.i, %11 br i1 %.not.i.i6.i, label %12, label %.loopexit 12: ; preds = %8 %13 = sub nuw i64 36, %.sroa.0.014.i.i.i %14 = getelementptr inbounds i8, ptr @__anon_1704, i64 %.sroa.0.014.i.i.i %.unpack.i.i.i = load ptr, ptr %9, align 8, !noalias !23 %15 = sub nuw i64 %.unpack9.i.i.i, %11 %16 = call i64 @llvm.umin.i64(i64 %15, i64 %13) %17 = getelementptr inbounds i8, ptr %.unpack.i.i.i, i64 %11 call void @llvm.memcpy.p0.p0.i64(ptr align 1 %17, ptr nonnull align 1 %14, i64 %16, i1 false), !noalias !23 %sunkaddr = getelementptr inbounds i8, ptr %9, i64 16 %18 = load i64, ptr %sunkaddr, align 8, !noalias !23 %19 = add nuw i64 %18, %16 store i64 %19, ptr %sunkaddr, align 8, !noalias !23 %20 = add nuw i64 %16, %.sroa.0.014.i.i.i %.not.i.i.i = icmp eq i64 %20, 36 br i1 %.not.i.i.i, label %fmt.format__anon_3616.exit.i, label %8 fmt.format__anon_3616.exit.i: ; preds = %12 %.unpack.i.i = load ptr, ptr %0, align 8, !noalias !15 %.elt1.i.i = getelementptr inbounds { ptr, i64 }, ptr %0, i64 0, i32 1 %.unpack2.i.i = load i64, ptr %.elt1.i.i, align 8, !noalias !15 %21 = call fastcc i16 @fmt.formatBuf__anon_3980(ptr nonnull readonly align 1 %.unpack.i.i, i64 %.unpack2.i.i, ptr nonnull readonly align 8 @16, ptr nonnull readonly align 8 %2), !noalias !15 %22 = icmp eq i16 %21, 0 br i1 %22, label %24, label %.loopexit 23: ; preds = %.loopexit, %24 %.fca.0.load.pn = phi ptr [ %.val.i, %24 ], [ %5, %.loopexit ] %.fca.1.load.pn = phi i64 [ %.val3.i, %24 ], [ 4111, %.loopexit ] call fastcc void @debug.panicImpl(ptr nonnull readonly align 1 %.fca.0.load.pn, i64 %.fca.1.load.pn) unreachable 24: ; preds = %fmt.format__anon_3616.exit.i %.val.i = load ptr, ptr %4, align 8, !noalias !15 %sunkaddr6 = getelementptr inbounds i8, ptr %4, i64 16 %.val3.i = load i64, ptr %sunkaddr6, align 8, !noalias !15 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) br label %23 .loopexit: ; preds = %8, %fmt.format__anon_3616.exit.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) %25 = getelementptr inbounds i8, ptr %5, i64 4096 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(15) %25, ptr noundef nonnull align 1 dereferenceable(15) @__anon_2157, i64 15, i1 false) br label %23 } ; Function Attrs: nounwind uwtable define internal fastcc void @fs.File.write(ptr noalias nocapture nonnull writeonly %0, i32 %.0.val, ptr nocapture nonnull readonly align 1 %1, i64 %2) unnamed_addr #0 { %.sroa.16 = alloca [6 x i8], align 2 tail call void @llvm.experimental.noalias.scope.decl(metadata !26) %4 = icmp eq i64 %2, 0 br i1 %4, label %6, label %.preheader.i .preheader.i: ; preds = %3 %5 = tail call i64 @llvm.umin.i64(i64 %2, i64 2147483647) br label %7 6: ; preds = %3 call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, i8 0, i64 6, i1 false), !alias.scope !26 br label %posix.write.exit 7: ; preds = %posix.errno__anon_3734.exit.i, %.preheader.i %8 = tail call i64 @write(i32 %.0.val, ptr nonnull readonly align 1 %1, i64 %5), !noalias !26 %9 = icmp eq i64 %8, -1 br i1 %9, label %posix.errno__anon_3734.exit.i, label %posix.write.exit posix.errno__anon_3734.exit.i: ; preds = %7 %10 = tail call ptr @__error(), !noalias !26 %11 = load i32, ptr %10, align 4, !noalias !26 %12 = trunc i32 %11 to i16 %13 = zext i16 %12 to i32 switch i32 %13, label %posix.write.exit.loopexit [ i32 0, label %posix.write.exit i32 4, label %7 i32 22, label %14 i32 16, label %24 i32 35, label %15 i32 9, label %16 i32 54, label %23 i32 69, label %17 i32 27, label %18 i32 5, label %19 i32 28, label %20 i32 1, label %21 i32 32, label %22 ] 14: ; preds = %posix.errno__anon_3734.exit.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, ptr noundef nonnull align 2 dereferenceable(6) getelementptr inbounds ({ i64, i16, [6 x i8] }, ptr @0, i64 0, i32 2, i64 0), i64 6, i1 false) br label %posix.write.exit 15: ; preds = %posix.errno__anon_3734.exit.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, ptr noundef nonnull align 2 dereferenceable(6) getelementptr inbounds ({ i64, i16, [6 x i8] }, ptr @1, i64 0, i32 2, i64 0), i64 6, i1 false) br label %posix.write.exit 16: ; preds = %posix.errno__anon_3734.exit.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, ptr noundef nonnull align 2 dereferenceable(6) getelementptr inbounds ({ i64, i16, [6 x i8] }, ptr @2, i64 0, i32 2, i64 0), i64 6, i1 false) br label %posix.write.exit 17: ; preds = %posix.errno__anon_3734.exit.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, ptr noundef nonnull align 2 dereferenceable(6) getelementptr inbounds ({ i64, i16, [6 x i8] }, ptr @3, i64 0, i32 2, i64 0), i64 6, i1 false) br label %posix.write.exit 18: ; preds = %posix.errno__anon_3734.exit.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, ptr noundef nonnull align 2 dereferenceable(6) getelementptr inbounds ({ i64, i16, [6 x i8] }, ptr @4, i64 0, i32 2, i64 0), i64 6, i1 false) br label %posix.write.exit 19: ; preds = %posix.errno__anon_3734.exit.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, ptr noundef nonnull align 2 dereferenceable(6) getelementptr inbounds ({ i64, i16, [6 x i8] }, ptr @5, i64 0, i32 2, i64 0), i64 6, i1 false) br label %posix.write.exit 20: ; preds = %posix.errno__anon_3734.exit.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, ptr noundef nonnull align 2 dereferenceable(6) getelementptr inbounds ({ i64, i16, [6 x i8] }, ptr @11, i64 0, i32 2, i64 0), i64 6, i1 false) br label %posix.write.exit 21: ; preds = %posix.errno__anon_3734.exit.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, ptr noundef nonnull align 2 dereferenceable(6) getelementptr inbounds ({ i64, i16, [6 x i8] }, ptr @6, i64 0, i32 2, i64 0), i64 6, i1 false) br label %posix.write.exit 22: ; preds = %posix.errno__anon_3734.exit.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, ptr noundef nonnull align 2 dereferenceable(6) getelementptr inbounds ({ i64, i16, [6 x i8] }, ptr @7, i64 0, i32 2, i64 0), i64 6, i1 false) br label %posix.write.exit 23: ; preds = %posix.errno__anon_3734.exit.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, ptr noundef nonnull align 2 dereferenceable(6) getelementptr inbounds ({ i64, i16, [6 x i8] }, ptr @8, i64 0, i32 2, i64 0), i64 6, i1 false) br label %posix.write.exit 24: ; preds = %posix.errno__anon_3734.exit.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, ptr noundef nonnull align 2 dereferenceable(6) getelementptr inbounds ({ i64, i16, [6 x i8] }, ptr @9, i64 0, i32 2, i64 0), i64 6, i1 false) br label %posix.write.exit posix.write.exit.loopexit: ; preds = %posix.errno__anon_3734.exit.i br label %posix.write.exit posix.write.exit: ; preds = %7, %posix.errno__anon_3734.exit.i, %posix.write.exit.loopexit, %6, %14, %15, %16, %17, %18, %19, %20, %21, %22, %23, %24 %.sroa.0.0 = phi i64 [ 0, %6 ], [ undef, %22 ], [ undef, %21 ], [ undef, %20 ], [ undef, %19 ], [ undef, %18 ], [ undef, %17 ], [ undef, %23 ], [ undef, %16 ], [ undef, %15 ], [ undef, %24 ], [ undef, %14 ], [ %8, %posix.write.exit.loopexit ], [ %8, %7 ], [ -1, %posix.errno__anon_3734.exit.i ] %.sroa.14.0 = phi i16 [ 0, %6 ], [ 9, %22 ], [ 8, %21 ], [ 5, %20 ], [ 4, %19 ], [ 3, %18 ], [ 2, %17 ], [ 15, %23 ], [ 12, %16 ], [ 14, %15 ], [ 6, %24 ], [ 7, %14 ], [ 16, %posix.write.exit.loopexit ], [ 0, %7 ], [ 0, %posix.errno__anon_3734.exit.i ] store i64 %.sroa.0.0, ptr %0, align 8 %.sroa.14.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 8 store i16 %.sroa.14.0, ptr %.sroa.14.0..sroa_idx, align 8 %.sroa.16.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 10 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16.0..sroa_idx, ptr noundef nonnull align 2 dereferenceable(6) %.sroa.16, i64 6, i1 false) ret void } ; Function Attrs: nounwind uwtable declare ptr @__error() local_unnamed_addr #0 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write) declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4 ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn uwtable define internal fastcc void @"io.GenericWriter(*io.fixed_buffer_stream.FixedBufferStream([]u8),error{NoSpaceLeft},(function 'write')).typeErasedWriteFn"(ptr noalias nocapture nonnull writeonly sret({ i64, i16, [6 x i8] }) %0, ptr nocapture nonnull readonly align 1 %1, ptr nocapture nonnull readonly align 1 %2, i64 %3) unnamed_addr #5 { %.sroa.5 = alloca [6 x i8], align 2 %5 = load ptr, ptr %1, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !29) %6 = icmp eq i64 %3, 0 br i1 %6, label %7, label %8 7: ; preds = %4 call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.5, i8 0, i64 6, i1 false), !alias.scope !29 br label %"io.fixed_buffer_stream.FixedBufferStream([]u8).write.exit" 8: ; preds = %4 %9 = getelementptr inbounds %"io.fixed_buffer_stream.FixedBufferStream([]u8)", ptr %5, i64 0, i32 1 %10 = load i64, ptr %9, align 8, !noalias !29 %.elt8.i = getelementptr inbounds { ptr, i64 }, ptr %5, i64 0, i32 1 %.unpack9.i = load i64, ptr %.elt8.i, align 8, !noalias !29 %.not.i = icmp ugt i64 %.unpack9.i, %10 br i1 %.not.i, label %12, label %11 11: ; preds = %8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.5, ptr noundef nonnull align 2 dereferenceable(6) getelementptr inbounds ({ i64, i16, [6 x i8] }, ptr @11, i64 0, i32 2, i64 0), i64 6, i1 false) br label %"io.fixed_buffer_stream.FixedBufferStream([]u8).write.exit" 12: ; preds = %8 %.unpack.i = load ptr, ptr %5, align 8, !noalias !29 %13 = sub nuw i64 %.unpack9.i, %10 %14 = tail call i64 @llvm.umin.i64(i64 %13, i64 %3) %15 = getelementptr inbounds i8, ptr %.unpack.i, i64 %10 tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %15, ptr nonnull align 1 %2, i64 %14, i1 false), !noalias !29 %sunkaddr = getelementptr inbounds i8, ptr %5, i64 16 %16 = load i64, ptr %sunkaddr, align 8, !noalias !29 %17 = add nuw i64 %16, %14 store i64 %17, ptr %sunkaddr, align 8, !noalias !29 br label %"io.fixed_buffer_stream.FixedBufferStream([]u8).write.exit" "io.fixed_buffer_stream.FixedBufferStream([]u8).write.exit": ; preds = %7, %11, %12 %.sroa.0.0 = phi i64 [ 0, %7 ], [ %14, %12 ], [ undef, %11 ] %.sroa.4.0 = phi i16 [ 0, %7 ], [ 0, %12 ], [ 5, %11 ] store i64 %.sroa.0.0, ptr %0, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 8 store i16 %.sroa.4.0, ptr %.sroa.4.0..sroa_idx, align 8 %.sroa.5.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 10 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.5.0..sroa_idx, ptr noundef nonnull align 2 dereferenceable(6) %.sroa.5, i64 6, i1 false) ret void } ; Function Attrs: cold noreturn nounwind uwtable define internal fastcc void @debug.panicImpl(ptr nonnull readonly align 1 %0, i64 %1) unnamed_addr #2 !section_prefix !14 { %3 = alloca [65 x i8], align 1 %4 = alloca [16 x i8], align 8 %5 = alloca [16 x i8], align 8 %6 = alloca [16 x i8], align 8 %7 = alloca [16 x i8], align 8 %8 = alloca [4 x i8], align 4 %9 = alloca [16 x i8], align 8 %10 = alloca [8 x i8], align 8 %11 = alloca [8 x i8], align 8 %12 = alloca [16 x i8], align 8 %13 = alloca [4 x i8], align 4 %14 = alloca [16 x i8], align 8 %15 = alloca [4 x i8], align 4 %16 = load i64, ptr @debug.panic_stage, align 8 switch i64 %16, label %17 [ i64 0, label %18 i64 1, label %81 ] 17: ; preds = %io.Writer.print__anon_4006.exit, %2, %debug.waitForOtherThreadToFinishPanicking.exit call fastcc void @posix.abort() unreachable 18: ; preds = %2 store i64 1, ptr @debug.panic_stage, align 8 %19 = atomicrmw add ptr @debug.panicking, i8 1 seq_cst, align 1 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) %20 = call i32 @pthread_threadid_np(ptr align 1 null, ptr nonnull align 8 %3) %21 = load i64, ptr %3, align 8 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) %22 = load atomic i64, ptr @Progress.stderr_mutex unordered, align 8 %.not.i.i.i = icmp eq i64 %22, %21 br i1 %.not.i.i.i, label %._crit_edge.i.i.i, label %24 ._crit_edge.i.i.i: ; preds = %18 %.pre.i.i.i = load i64, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8 %23 = add nuw i64 %.pre.i.i.i, 1 br label %Thread.Mutex.Recursive.lock.exit.i.i 24: ; preds = %18 call void @os_unfair_lock_lock(ptr nonnull align 4 getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 2)) store atomic i64 %21, ptr @Progress.stderr_mutex unordered, align 8 br label %Thread.Mutex.Recursive.lock.exit.i.i Thread.Mutex.Recursive.lock.exit.i.i: ; preds = %24, %._crit_edge.i.i.i %25 = phi i64 [ %23, %._crit_edge.i.i.i ], [ 1, %24 ] store i64 %25, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) %26 = call i32 @pthread_threadid_np(ptr align 1 null, ptr nonnull align 8 %3) %27 = load i64, ptr %3, align 8 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) store i32 2, ptr %15, align 4 store ptr %15, ptr %14, align 8 %.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %14, i64 8 store ptr @"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn", ptr %.sroa.2.0..sroa_idx, align 8 br label %30 28: ; preds = %30 %29 = add nuw i64 %.sroa.022.0.copyload, %.sroa.0.014.i.i.i %.not.i.i.i18 = icmp eq i64 %29, 7 br i1 %.not.i.i.i18, label %33, label %30 30: ; preds = %28, %Thread.Mutex.Recursive.lock.exit.i.i %.sroa.0.014.i.i.i = phi i64 [ 0, %Thread.Mutex.Recursive.lock.exit.i.i ], [ %29, %28 ] %31 = getelementptr inbounds i8, ptr @__anon_3287, i64 %.sroa.0.014.i.i.i %32 = sub nuw i64 7, %.sroa.0.014.i.i.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) %.val.i = load i32, ptr %15, align 4, !noalias !32 call fastcc void @fs.File.write(ptr noalias %3, i32 %.val.i, ptr nonnull readonly align 1 %31, i64 %32), !noalias !32 %.sroa.022.0.copyload = load i64, ptr %3, align 8, !noalias !37 %sunkaddr = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.4.0.copyload = load i16, ptr %sunkaddr, align 8, !noalias !37 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) %.not7.i.i.i = icmp eq i16 %.sroa.4.0.copyload, 0 br i1 %.not7.i.i.i, label %28, label %.loopexit12 33: ; preds = %28 call void @llvm.lifetime.start.p0(i64 65, ptr nonnull %3) %34 = icmp ugt i64 %27, 99 br i1 %34, label %.lr.ph.i.i.i.i.i.i.preheader, label %._crit_edge.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i.preheader: ; preds = %33 br label %.lr.ph.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i.i.preheader, %.lr.ph.i.i.i.i.i.i %.sroa.0.03.i.i.i.i.i.i = phi i64 [ %40, %.lr.ph.i.i.i.i.i.i ], [ %27, %.lr.ph.i.i.i.i.i.i.preheader ] %.sroa.09.12.i.i.i.i.i.i = phi i64 [ %35, %.lr.ph.i.i.i.i.i.i ], [ 65, %.lr.ph.i.i.i.i.i.i.preheader ] %35 = add i64 %.sroa.09.12.i.i.i.i.i.i, -2 %scevgep = getelementptr i8, ptr %3, i64 %.sroa.09.12.i.i.i.i.i.i %scevgep45 = getelementptr i8, ptr %scevgep, i64 -2 %36 = urem i64 %.sroa.0.03.i.i.i.i.i.i, 100 %37 = shl nuw nsw i64 %36, 1 %38 = getelementptr inbounds i8, ptr @__anon_3790, i64 %37 %39 = load i16, ptr %38, align 1, !noalias !38 store i16 %39, ptr %scevgep45, align 1 %40 = udiv i64 %.sroa.0.03.i.i.i.i.i.i, 100 %41 = icmp ugt i64 %.sroa.0.03.i.i.i.i.i.i, 9999 br i1 %41, label %.lr.ph.i.i.i.i.i.i, label %._crit_edge.i.i.i.i.i.i ._crit_edge.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i.i, %33 %.sroa.09.1.lcssa.i.i.i.i.i.i = phi i64 [ 65, %33 ], [ %35, %.lr.ph.i.i.i.i.i.i ] %.sroa.0.0.lcssa.i.i.i.i.i.i = phi i64 [ %27, %33 ], [ %40, %.lr.ph.i.i.i.i.i.i ] %42 = icmp ult i64 %.sroa.0.0.lcssa.i.i.i.i.i.i, 10 br i1 %42, label %43, label %48 43: ; preds = %._crit_edge.i.i.i.i.i.i %44 = add i64 %.sroa.09.1.lcssa.i.i.i.i.i.i, -1 %45 = getelementptr inbounds [65 x i8], ptr %3, i64 0, i64 %44 %46 = trunc i64 %.sroa.0.0.lcssa.i.i.i.i.i.i to i8 %47 = or disjoint i8 %46, 48 store i8 %47, ptr %45, align 1 br label %fmt.formatType__anon_4052.exit.i.i 48: ; preds = %._crit_edge.i.i.i.i.i.i %49 = add i64 %.sroa.09.1.lcssa.i.i.i.i.i.i, -2 %50 = getelementptr inbounds i8, ptr %3, i64 %49 %51 = shl nuw nsw i64 %.sroa.0.0.lcssa.i.i.i.i.i.i, 1 %52 = getelementptr inbounds i8, ptr @__anon_3790, i64 %51 %53 = load i16, ptr %52, align 1, !noalias !41 store i16 %53, ptr %50, align 1 br label %fmt.formatType__anon_4052.exit.i.i fmt.formatType__anon_4052.exit.i.i: ; preds = %48, %43 %.sroa.09.0.i.i.i.i.i.i = phi i64 [ %44, %43 ], [ %49, %48 ] %54 = getelementptr inbounds i8, ptr %3, i64 %.sroa.09.0.i.i.i.i.i.i %55 = sub nuw i64 65, %.sroa.09.0.i.i.i.i.i.i %56 = call fastcc i16 @fmt.formatBuf__anon_3980(ptr nonnull readonly align 1 %54, i64 %55, ptr nonnull readonly align 8 @16, ptr nonnull readonly align 8 %14) call void @llvm.lifetime.end.p0(i64 65, ptr nonnull %3) %.not2.i.i = icmp eq i16 %56, 0 br i1 %.not2.i.i, label %.preheader32, label %.loopexit12 .preheader32: ; preds = %fmt.formatType__anon_4052.exit.i.i br label %59 57: ; preds = %59 %58 = add nuw i64 %.sroa.023.0.copyload, %.sroa.0.014.i5.i.i %.not.i12.i.i = icmp eq i64 %58, 8 br i1 %.not.i12.i.i, label %io.Writer.print__anon_4004.exit, label %59 59: ; preds = %.preheader32, %57 %.sroa.0.014.i5.i.i = phi i64 [ %58, %57 ], [ 0, %.preheader32 ] %60 = getelementptr inbounds i8, ptr getelementptr inbounds ([18 x i8], ptr @__anon_3287, i64 0, i64 9), i64 %.sroa.0.014.i5.i.i %61 = sub nuw i64 8, %.sroa.0.014.i5.i.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) %.val.i19 = load i32, ptr %15, align 4, !noalias !44 call fastcc void @fs.File.write(ptr noalias %3, i32 %.val.i19, ptr nonnull readonly align 1 %60, i64 %61), !noalias !44 %.sroa.023.0.copyload = load i64, ptr %3, align 8, !noalias !49 %sunkaddr46 = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.424.0.copyload = load i16, ptr %sunkaddr46, align 8, !noalias !49 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) %.not7.i10.i.i = icmp eq i16 %.sroa.424.0.copyload, 0 br i1 %.not7.i10.i.i, label %57, label %.loopexit12 io.Writer.print__anon_4004.exit: ; preds = %57 store i32 2, ptr %13, align 4 store ptr %13, ptr %12, align 8 %.sroa.26.0..sroa_idx = getelementptr inbounds i8, ptr %12, i64 8 store ptr @"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn", ptr %.sroa.26.0..sroa_idx, align 8 %62 = call fastcc i16 @fmt.formatBuf__anon_3980(ptr nonnull readonly align 1 %0, i64 %1, ptr nonnull readonly align 8 @16, ptr nonnull readonly align 8 %12) %.not.i.i = icmp eq i16 %62, 0 br i1 %.not.i.i, label %.preheader, label %.loopexit .preheader: ; preds = %io.Writer.print__anon_4004.exit br label %65 63: ; preds = %65 %64 = add nuw i64 %.sroa.026.0.copyload, %.sroa.0.014.i.i.i24 %.not.i.i.i28 = icmp eq i64 %64, 1 br i1 %.not.i.i.i28, label %io.Writer.print__anon_4005.exit, label %65 65: ; preds = %.preheader, %63 %.sroa.0.014.i.i.i24 = phi i64 [ %64, %63 ], [ 0, %.preheader ] %66 = getelementptr inbounds i8, ptr getelementptr inbounds ([5 x i8], ptr @__anon_3300, i64 0, i64 3), i64 %.sroa.0.014.i.i.i24 %67 = sub nuw i64 1, %.sroa.0.014.i.i.i24 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) %.val.i20 = load i32, ptr %13, align 4, !noalias !50 call fastcc void @fs.File.write(ptr noalias %3, i32 %.val.i20, ptr nonnull readonly align 1 %66, i64 %67), !noalias !50 %.sroa.026.0.copyload = load i64, ptr %3, align 8, !noalias !55 %sunkaddr47 = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.427.0.copyload = load i16, ptr %sunkaddr47, align 8, !noalias !55 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) %.not7.i.i.i27 = icmp eq i16 %.sroa.427.0.copyload, 0 br i1 %.not7.i.i.i27, label %63, label %.loopexit .loopexit12: ; preds = %30, %59, %fmt.formatType__anon_4052.exit.i.i call fastcc void @posix.abort() unreachable .loopexit: ; preds = %65, %io.Writer.print__anon_4004.exit call fastcc void @posix.abort() unreachable io.Writer.print__anon_4005.exit: ; preds = %63 br label %68 68: ; preds = %68, %io.Writer.print__anon_4005.exit %.sroa.0.014.i.i.i.i = phi i64 [ 0, %io.Writer.print__anon_4005.exit ], [ %71, %68 ] %69 = getelementptr inbounds i8, ptr @__anon_3724, i64 %.sroa.0.014.i.i.i.i %70 = sub nuw i64 48, %.sroa.0.014.i.i.i.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) call fastcc void @fs.File.write(ptr noalias %3, i32 2, ptr nonnull readonly align 1 %69, i64 %70), !noalias !56 %.sroa.04.0.copyload.i = load i64, ptr %3, align 8, !noalias !61 %sunkaddr48 = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.4.0.copyload.i = load i16, ptr %sunkaddr48, align 8, !noalias !61 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) %.not7.i.i.i.i = icmp ne i16 %.sroa.4.0.copyload.i, 0 %71 = add nuw i64 %.sroa.04.0.copyload.i, %.sroa.0.014.i.i.i.i %.not.i.i.i.i = icmp eq i64 %71, 48 %or.cond.i.i.i = select i1 %.not7.i.i.i.i, i1 true, i1 %.not.i.i.i.i br i1 %or.cond.i.i.i, label %debug.dumpCurrentStackTrace.exit, label %68 debug.dumpCurrentStackTrace.exit: ; preds = %68 %72 = load i64, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8 %73 = add i64 %72, -1 store i64 %73, ptr getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 1), align 8 %74 = icmp eq i64 %73, 0 br i1 %74, label %75, label %debug.unlockStdErr.exit 75: ; preds = %debug.dumpCurrentStackTrace.exit store atomic i64 -1, ptr @Progress.stderr_mutex unordered, align 8 call void @os_unfair_lock_unlock(ptr nonnull align 4 getelementptr inbounds (%Thread.Mutex.Recursive, ptr @Progress.stderr_mutex, i64 0, i32 2)) br label %debug.unlockStdErr.exit debug.unlockStdErr.exit: ; preds = %debug.dumpCurrentStackTrace.exit, %75 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) %76 = call i8 @llvm.x86.atomic.sub.cc.i8(ptr @debug.panicking, i8 1, i32 4) %77 = trunc i8 %76 to i1 br i1 %77, label %debug.waitForOtherThreadToFinishPanicking.exit, label %78 78: ; preds = %debug.unlockStdErr.exit store i32 0, ptr %3, align 4 br label %79 79: ; preds = %79, %78 %80 = call i32 @__ulock_wait2(i32 16777217, ptr nonnull readonly align 1 %3, i64 0, i64 0, i64 0) br label %79 debug.waitForOtherThreadToFinishPanicking.exit: ; preds = %debug.unlockStdErr.exit call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) br label %17 81: ; preds = %2 store i64 2, ptr @debug.panic_stage, align 8 br label %82 82: ; preds = %82, %81 %.sroa.0.014.i.i.i31 = phi i64 [ 0, %81 ], [ %85, %82 ] %83 = getelementptr inbounds i8, ptr @__anon_3318, i64 %.sroa.0.014.i.i.i31 %84 = sub nuw i64 35, %.sroa.0.014.i.i.i31 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) call fastcc void @fs.File.write(ptr noalias %3, i32 2, ptr nonnull readonly align 1 %83, i64 %84), !noalias !62 %.sroa.029.0.copyload = load i64, ptr %3, align 8, !noalias !67 %sunkaddr49 = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.430.0.copyload = load i16, ptr %sunkaddr49, align 8, !noalias !67 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) %.not7.i.i.i34 = icmp ne i16 %.sroa.430.0.copyload, 0 %85 = add nuw i64 %.sroa.029.0.copyload, %.sroa.0.014.i.i.i31 %.not.i.i.i35 = icmp eq i64 %85, 35 %or.cond.i.i = select i1 %.not7.i.i.i34, i1 true, i1 %.not.i.i.i35 br i1 %or.cond.i.i, label %io.Writer.print__anon_4006.exit, label %82 io.Writer.print__anon_4006.exit: ; preds = %82 %86 = icmp eq i16 %.sroa.430.0.copyload, 0 br i1 %86, label %17, label %87 87: ; preds = %io.Writer.print__anon_4006.exit tail call fastcc void @posix.abort() unreachable } ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.umin.i64(i64, i64) #6 ; Function Attrs: nofree nounwind uwtable declare noundef i64 @write(i32 noundef, ptr nocapture noundef nonnull readonly align 1, i64 noundef) local_unnamed_addr #7 ; Function Attrs: nounwind uwtable define internal fastcc i16 @fmt.formatBuf__anon_3980(ptr nonnull readonly align 1 %0, i64 %1, ptr nocapture nonnull readonly align 8 %2, ptr nocapture nonnull readonly align 8 %3) unnamed_addr #0 { %5 = alloca [16 x i8], align 8 %6 = alloca [16 x i8], align 8 %7 = alloca [16 x i8], align 8 %8 = alloca [16 x i8], align 8 %9 = alloca [16 x i8], align 8 %10 = alloca [16 x i8], align 8 %.sroa.4.i = alloca i8, align 2 %11 = alloca [16 x i8], align 8 %12 = alloca [16 x i8], align 8 %.sroa.0.sroa.0.i2.i.i = alloca i24, align 4 %.sroa.0.sroa.0.i.i.i.i = alloca i24, align 4 %.sroa.0.sroa.0.i.i.i = alloca i24, align 4 %.sroa.014.i.i = alloca i64, align 8 %.sroa.010.i.i = alloca i64, align 8 %.sroa.08.i.i = alloca i64, align 8 %13 = alloca [16 x i8], align 8 %14 = alloca [4 x i8], align 4 %.sroa.2.0..sroa_idx = getelementptr inbounds %fmt.FormatOptions, ptr %2, i64 0, i32 1, i32 1 %.sroa.2.0.copyload = load i8, ptr %.sroa.2.0..sroa_idx, align 8 %.not = icmp eq i8 %.sroa.2.0.copyload, 0 br i1 %.not, label %150, label %15 common.ret: ; preds = %158, %156, %282, %289, %287, %266, %273, %247, %.loopexit.i, %254, %153, %151, %unicode.utf8CountCodepoints.exit.thread135, %.loopexit162, %.lr.ph.i46, %.loopexit, %150, %.loopexit156 %common.ret.op = phi i16 [ %276, %.loopexit156 ], [ 0, %150 ], [ 0, %.loopexit ], [ 0, %.lr.ph.i46 ], [ 0, %.loopexit162 ], [ 0, %unicode.utf8CountCodepoints.exit.thread135 ], [ %.sroa.212.0.copyload.i, %153 ], [ 0, %151 ], [ %.sroa.212.0.copyload.i.i, %254 ], [ 0, %.loopexit.i ], [ %.sroa.212.0.copyload.i40, %247 ], [ %.sroa.212.0.copyload.i75, %273 ], [ %.sroa.212.0.copyload.i.i60, %266 ], [ %.sroa.212.0.copyload.i106, %289 ], [ 0, %287 ], [ %.sroa.212.0.copyload.i.i91, %282 ], [ %.sroa.212.0.copyload.i27, %158 ], [ 0, %156 ] ret i16 %common.ret.op 15: ; preds = %4 %16 = getelementptr inbounds %fmt.FormatOptions, ptr %2, i64 0, i32 1 %.sroa.0.0.copyload = load i64, ptr %16, align 8 %.not54.i = icmp eq i64 %1, 0 br i1 %.not54.i, label %unicode.utf8CountCodepoints.exit.thread135, label %.preheader.i.preheader .preheader.i.preheader: ; preds = %15 %const = bitcast i64 81604378624 to i64 br label %.preheader.i .preheader.i: ; preds = %.preheader.i.preheader, %24 %.sroa.0.051.i = phi i64 [ %.sroa.0.2.i, %24 ], [ 0, %.preheader.i.preheader ] %.sroa.03.050.i = phi i64 [ %.sroa.03.2.i, %24 ], [ 0, %.preheader.i.preheader ] %17 = add nuw i64 %.sroa.03.050.i, 8 %.not43.i = icmp ugt i64 %17, %1 br i1 %.not43.i, label %._crit_edge.i, label %.lr.ph.i.preheader .lr.ph.i.preheader: ; preds = %.preheader.i br label %.lr.ph.i ._crit_edge.i: ; preds = %.lr.ph.i, %21, %.preheader.i %.sroa.03.1.lcssa.i = phi i64 [ %.sroa.03.050.i, %.preheader.i ], [ %lsr.iv, %.lr.ph.i ], [ %lsr.iv.next, %21 ] %.sroa.0.1.lcssa.i = phi i64 [ %.sroa.0.051.i, %.preheader.i ], [ %.sroa.0.145.i, %.lr.ph.i ], [ %22, %21 ] %18 = icmp ult i64 %.sroa.03.1.lcssa.i, %1 br i1 %18, label %26, label %24 .lr.ph.i: ; preds = %.lr.ph.i.preheader, %21 %lsr.iv = phi i64 [ %.sroa.03.050.i, %.lr.ph.i.preheader ], [ %lsr.iv.next, %21 ] %.sroa.0.145.i = phi i64 [ %22, %21 ], [ %.sroa.0.051.i, %.lr.ph.i.preheader ] %scevgep = getelementptr i8, ptr %0, i64 %lsr.iv %19 = load i64, ptr %scevgep, align 1, !noalias !68 %20 = and i64 %19, -9187201950435737472 %.not27.i = icmp eq i64 %20, 0 br i1 %.not27.i, label %21, label %._crit_edge.i 21: ; preds = %.lr.ph.i %22 = add i64 %.sroa.0.145.i, 8 %lsr.iv.next = add i64 %lsr.iv, 8 %23 = add i64 %lsr.iv.next, 8 %.not.i = icmp ugt i64 %23, %1 br i1 %.not.i, label %._crit_edge.i, label %.lr.ph.i 24: ; preds = %48, %._crit_edge.i %.sroa.03.2.i = phi i64 [ %43, %48 ], [ %.sroa.03.1.lcssa.i, %._crit_edge.i ] %.sroa.0.2.i = phi i64 [ %49, %48 ], [ %.sroa.0.1.lcssa.i, %._crit_edge.i ] %25 = icmp ult i64 %.sroa.03.2.i, %1 br i1 %25, label %.preheader.i, label %unicode.utf8CountCodepoints.exit 26: ; preds = %._crit_edge.i %27 = getelementptr inbounds i8, ptr %0, i64 %.sroa.03.1.lcssa.i %28 = load i8, ptr %27, align 1, !noalias !68 %29 = icmp sgt i8 %28, -1 br i1 %29, label %unicode.utf8ByteSequenceLength.exit.i, label %30 30: ; preds = %26 %31 = and i8 %28, -32 %32 = icmp eq i8 %31, -64 br i1 %32, label %unicode.utf8ByteSequenceLength.exit.i, label %33 33: ; preds = %30 %34 = and i8 %28, -16 %35 = icmp eq i8 %34, -32 br i1 %35, label %unicode.utf8ByteSequenceLength.exit.i, label %36 36: ; preds = %33 %37 = and i8 %28, -8 %38 = icmp eq i8 %37, -16 %..i.i = select i1 %38, ptr @15, ptr @10 br label %unicode.utf8ByteSequenceLength.exit.i unicode.utf8ByteSequenceLength.exit.i: ; preds = %36, %33, %30, %26 %39 = phi ptr [ @12, %26 ], [ @13, %30 ], [ @14, %33 ], [ %..i.i, %36 ] %40 = load i16, ptr %39, align 2, !noalias !68 %.sroa_idx.i = getelementptr inbounds i8, ptr %39, i64 2 %41 = load i8, ptr %.sroa_idx.i, align 2, !noalias !68 %promoted = zext i8 %41 to i64 %.not28.i = icmp eq i16 %40, 0 br i1 %.not28.i, label %42, label %unicode.utf8CountCodepoints.exit 42: ; preds = %unicode.utf8ByteSequenceLength.exit.i %.mask.i = and i64 %promoted, 7 %43 = add nuw i64 %.sroa.03.1.lcssa.i, %.mask.i %44 = icmp ugt i64 %43, %1 br i1 %44, label %unicode.utf8CountCodepoints.exit, label %45 45: ; preds = %42 %46 = trunc i64 %promoted to i8 %47 = trunc i8 %46 to i3 %cond.i = icmp eq i3 %47, 1 br i1 %cond.i, label %48, label %50 48: ; preds = %unicode.utf8Decode.exit.i, %45 %49 = add nuw i64 %.sroa.0.1.lcssa.i, 1 br label %24 50: ; preds = %45 %51 = trunc i64 %promoted to i8 %52 = trunc i8 %51 to i3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) %53 = zext i3 %52 to i32 switch i32 %53, label %54 [ i32 4, label %103 i32 2, label %55 i32 3, label %72 ] 54: ; preds = %50 unreachable 55: ; preds = %50 %sunkaddr = getelementptr i8, ptr %0, i64 %.sroa.03.1.lcssa.i %sunkaddr260 = getelementptr i8, ptr %sunkaddr, i64 1 %.val1.i.i = load i8, ptr %sunkaddr260, align 1, !noalias !71 tail call void @llvm.experimental.noalias.scope.decl(metadata !74) call void @llvm.lifetime.start.p0(i64 3, ptr nonnull %.sroa.0.sroa.0.i2.i.i) %56 = and i8 %28, 31 %57 = zext nneg i8 %56 to i21 store i21 %57, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !77 %58 = and i8 %.val1.i.i, -64 %.not.i.i.i = icmp eq i8 %58, -128 br i1 %.not.i.i.i, label %60, label %59 59: ; preds = %55 store i64 %const, ptr %5, align 8, !alias.scope !74, !noalias !71 br label %unicode.utf8Decode2.exit.i.i 60: ; preds = %55 %.sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0..i.i.i = load i24, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !77 %61 = trunc i24 %.sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0..i.i.i to i21 %62 = shl i21 %61, 6 store i21 %62, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !77 %.sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.1.i.i.i = load i24, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !77 %63 = trunc i24 %.sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.1.i.i.i to i21 %64 = and i8 %.val1.i.i, 63 %65 = zext nneg i8 %64 to i21 %66 = or i21 %63, %65 store i21 %66, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !77 %.sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.5.i.i.i = load i24, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !77 %67 = trunc i24 %.sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.5.i.i.i to i21 %68 = icmp ult i21 %67, 128 br i1 %68, label %69, label %70 69: ; preds = %60 %const258 = bitcast i64 85899345920 to i64 store i64 %const258, ptr %5, align 8, !alias.scope !74, !noalias !71 br label %unicode.utf8Decode2.exit.i.i 70: ; preds = %60 %71 = trunc i24 %.sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.5.i.i.i to i21 %sunkaddr263 = getelementptr inbounds i8, ptr %5, i64 4 store i16 0, ptr %sunkaddr263, align 4, !alias.scope !74, !noalias !71 store i21 %71, ptr %5, align 8, !alias.scope !74, !noalias !71 br label %unicode.utf8Decode2.exit.i.i unicode.utf8Decode2.exit.i.i: ; preds = %70, %69, %59 call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %.sroa.0.sroa.0.i2.i.i) br label %unicode.utf8Decode.exit.i 72: ; preds = %50 tail call void @llvm.experimental.noalias.scope.decl(metadata !78) call void @llvm.lifetime.start.p0(i64 3, ptr nonnull %5) %73 = and i8 %28, 15 %74 = zext nneg i8 %73 to i21 store i21 %74, ptr %5, align 4, !noalias !81 %sunkaddr265 = getelementptr inbounds i8, ptr %0, i64 %.sroa.03.1.lcssa.i %sunkaddr266 = getelementptr inbounds i8, ptr %sunkaddr265, i64 1 %75 = load i8, ptr %sunkaddr266, align 1, !noalias !81 %76 = and i8 %75, -64 %.not.i.i.i.i = icmp eq i8 %76, -128 br i1 %.not.i.i.i.i, label %77, label %95 77: ; preds = %72 %.sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0..i.i.i.i = load i24, ptr %5, align 4, !noalias !81 %78 = trunc i24 %.sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0..i.i.i.i to i21 %79 = shl i21 %78, 6 store i21 %79, ptr %5, align 4, !noalias !81 %.sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.1.i.i.i.i = load i24, ptr %5, align 4, !noalias !81 %80 = trunc i24 %.sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.1.i.i.i.i to i21 %81 = and i8 %75, 63 %82 = zext nneg i8 %81 to i21 %83 = or i21 %80, %82 store i21 %83, ptr %5, align 4, !noalias !81 %sunkaddr268 = getelementptr inbounds i8, ptr %0, i64 %.sroa.03.1.lcssa.i %sunkaddr269 = getelementptr inbounds i8, ptr %sunkaddr268, i64 2 %84 = load i8, ptr %sunkaddr269, align 1, !noalias !81 %85 = and i8 %84, -64 %.not46.i.i.i.i = icmp eq i8 %85, -128 br i1 %.not46.i.i.i.i, label %86, label %95 86: ; preds = %77 %.sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.5.i.i.i.i = load i24, ptr %5, align 4, !noalias !81 %87 = trunc i24 %.sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.5.i.i.i.i to i21 %88 = shl i21 %87, 6 store i21 %88, ptr %5, align 4, !noalias !81 %.sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.9.i.i.i.i = load i24, ptr %5, align 4, !noalias !81 %89 = trunc i24 %.sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.9.i.i.i.i to i21 %90 = and i8 %84, 63 %91 = zext nneg i8 %90 to i21 %92 = or i21 %89, %91 store i21 %92, ptr %5, align 4, !noalias !81 %.sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.13.i.i.i.i = load i24, ptr %5, align 4, !noalias !81 %93 = trunc i24 %.sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.13.i.i.i.i to i21 %94 = icmp ult i21 %93, 2048 br i1 %94, label %95, label %96 95: ; preds = %86, %77, %72 %.sroa.51.0.ph.i.i.i = phi i16 [ 19, %72 ], [ 19, %77 ], [ 20, %86 ] call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %5) %sunkaddr271 = getelementptr inbounds i8, ptr %5, i64 4 store i16 %.sroa.51.0.ph.i.i.i, ptr %sunkaddr271, align 4, !alias.scope !78, !noalias !71 br label %unicode.utf8Decode.exit.i 96: ; preds = %86 %97 = trunc i24 %.sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.13.i.i.i.i to i21 call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %5) %98 = and i21 %97, -2048 %99 = icmp eq i21 %98, 55296 br i1 %99, label %100, label %101 100: ; preds = %96 store i64 90194313216, ptr %5, align 8, !alias.scope !78, !noalias !71 br label %unicode.utf8Decode.exit.i 101: ; preds = %96 %102 = trunc i24 %.sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.i.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.13.i.i.i.i to i21 %sunkaddr272 = getelementptr inbounds i8, ptr %5, i64 4 store i16 0, ptr %sunkaddr272, align 4, !alias.scope !78, !noalias !71 store i21 %102, ptr %5, align 8, !alias.scope !78, !noalias !71 br label %unicode.utf8Decode.exit.i 103: ; preds = %50 tail call void @llvm.experimental.noalias.scope.decl(metadata !84) call void @llvm.lifetime.start.p0(i64 3, ptr nonnull %.sroa.0.sroa.0.i2.i.i) %104 = and i8 %28, 7 %105 = zext nneg i8 %104 to i21 store i21 %105, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %sunkaddr274 = getelementptr inbounds i8, ptr %0, i64 %.sroa.03.1.lcssa.i %sunkaddr275 = getelementptr inbounds i8, ptr %sunkaddr274, i64 1 %106 = load i8, ptr %sunkaddr275, align 1, !noalias !87 %107 = and i8 %106, -64 %.not.i3.i.i = icmp eq i8 %107, -128 br i1 %.not.i3.i.i, label %109, label %108 108: ; preds = %103 store i64 %const, ptr %5, align 8, !alias.scope !84, !noalias !71 br label %unicode.utf8Decode4.exit.i.i 109: ; preds = %103 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0..i4.i.i = load i24, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %110 = trunc i24 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0..i4.i.i to i21 %111 = shl i21 %110, 6 store i21 %111, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.1.i5.i.i = load i24, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %112 = trunc i24 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.1.i5.i.i to i21 %113 = and i8 %106, 63 %114 = zext nneg i8 %113 to i21 %115 = or i21 %112, %114 store i21 %115, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %sunkaddr277 = getelementptr inbounds i8, ptr %0, i64 %.sroa.03.1.lcssa.i %sunkaddr278 = getelementptr inbounds i8, ptr %sunkaddr277, i64 2 %116 = load i8, ptr %sunkaddr278, align 1, !noalias !87 %117 = and i8 %116, -64 %.not73.i.i.i = icmp eq i8 %117, -128 br i1 %.not73.i.i.i, label %119, label %118 118: ; preds = %109 store i64 %const, ptr %5, align 8, !alias.scope !84, !noalias !71 br label %unicode.utf8Decode4.exit.i.i 119: ; preds = %109 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.5.i6.i.i = load i24, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %120 = trunc i24 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.5.i6.i.i to i21 %121 = shl i21 %120, 6 store i21 %121, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.9.i.i.i = load i24, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %122 = trunc i24 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.9.i.i.i to i21 %123 = and i8 %116, 63 %124 = zext nneg i8 %123 to i21 %125 = or i21 %122, %124 store i21 %125, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %sunkaddr280 = getelementptr inbounds i8, ptr %0, i64 %.sroa.03.1.lcssa.i %sunkaddr281 = getelementptr inbounds i8, ptr %sunkaddr280, i64 3 %126 = load i8, ptr %sunkaddr281, align 1, !noalias !87 %127 = and i8 %126, -64 %.not74.i.i.i = icmp eq i8 %127, -128 br i1 %.not74.i.i.i, label %129, label %128 128: ; preds = %119 store i64 %const, ptr %5, align 8, !alias.scope !84, !noalias !71 br label %unicode.utf8Decode4.exit.i.i 129: ; preds = %119 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.13.i.i.i = load i24, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %130 = trunc i24 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.13.i.i.i to i21 %131 = shl i21 %130, 6 store i21 %131, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.17.i.i.i = load i24, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %132 = trunc i24 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.17.i.i.i to i21 %133 = and i8 %126, 63 %134 = zext nneg i8 %133 to i21 %135 = or i21 %132, %134 store i21 %135, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.21.i.i.i = load i24, ptr %.sroa.0.sroa.0.i2.i.i, align 4, !noalias !87 %136 = trunc i24 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.21.i.i.i to i21 %137 = icmp ult i21 %136, 65536 br i1 %137, label %138, label %139 138: ; preds = %129 %const259 = bitcast i64 85899345920 to i64 store i64 %const259, ptr %5, align 8, !alias.scope !84, !noalias !71 br label %unicode.utf8Decode4.exit.i.i 139: ; preds = %129 %140 = trunc i24 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.21.i.i.i to i21 %141 = icmp ugt i21 %140, -983041 br i1 %141, label %142, label %143 142: ; preds = %139 store i64 94489280512, ptr %5, align 8, !alias.scope !84, !noalias !71 br label %unicode.utf8Decode4.exit.i.i 143: ; preds = %139 %144 = trunc i24 %.sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.i.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.i2.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.sroa.0.0..sroa.0.0.21.i.i.i to i21 %sunkaddr283 = getelementptr inbounds i8, ptr %5, i64 4 store i16 0, ptr %sunkaddr283, align 4, !alias.scope !84, !noalias !71 store i21 %144, ptr %5, align 8, !alias.scope !84, !noalias !71 br label %unicode.utf8Decode4.exit.i.i unicode.utf8Decode4.exit.i.i: ; preds = %143, %142, %138, %128, %118, %108 call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %.sroa.0.sroa.0.i2.i.i) br label %unicode.utf8Decode.exit.i unicode.utf8Decode.exit.i: ; preds = %unicode.utf8Decode4.exit.i.i, %101, %100, %95, %unicode.utf8Decode2.exit.i.i %145 = phi ptr [ %5, %unicode.utf8Decode2.exit.i.i ], [ %5, %unicode.utf8Decode4.exit.i.i ], [ %5, %95 ], [ %5, %100 ], [ %5, %101 ] %146 = load i64, ptr %145, align 8, !noalias !71 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) %147 = and i64 %146, 281470681743360 %.not29.i = icmp eq i64 %147, 0 br i1 %.not29.i, label %48, label %unicode.utf8CountCodepoints.exit unicode.utf8CountCodepoints.exit: ; preds = %42, %unicode.utf8Decode.exit.i, %unicode.utf8ByteSequenceLength.exit.i, %24 %148 = phi i64 [ %.sroa.0.2.i, %24 ], [ %1, %unicode.utf8ByteSequenceLength.exit.i ], [ %1, %unicode.utf8Decode.exit.i ], [ %1, %42 ] %149 = tail call i64 @llvm.usub.sat.i64(i64 %.sroa.0.0.copyload, i64 %148) %.not12 = icmp ugt i64 %.sroa.0.0.copyload, %148 br i1 %.not12, label %161, label %.lr.ph.i20 unicode.utf8CountCodepoints.exit.thread135: ; preds = %15 %.not12136.not = icmp eq i64 %.sroa.0.0.copyload, 0 br i1 %.not12136.not, label %common.ret, label %161 150: ; preds = %4 %.sroa.0129.0.copyload = load ptr, ptr %3, align 8 %.sroa.2130.0..sroa_idx = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.2130.0.copyload = load ptr, ptr %.sroa.2130.0..sroa_idx, align 8 %.not13.i = icmp eq i64 %1, 0 br i1 %.not13.i, label %common.ret, label %.lr.ph.i17 .lr.ph.i17: ; preds = %150 br label %153 151: ; preds = %153 %152 = add nuw i64 %.sroa.011.0.copyload.i, %.sroa.0.014.i %.not.i18 = icmp eq i64 %152, %1 br i1 %.not.i18, label %common.ret, label %153 153: ; preds = %151, %.lr.ph.i17 %.sroa.0.014.i = phi i64 [ 0, %.lr.ph.i17 ], [ %152, %151 ] %154 = getelementptr inbounds i8, ptr %0, i64 %.sroa.0.014.i %155 = sub nuw i64 %1, %.sroa.0.014.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) call fastcc void %.sroa.2130.0.copyload(ptr nonnull sret({ i64, i16, [6 x i8] }) %5, ptr nonnull readonly align 1 %.sroa.0129.0.copyload, ptr nonnull readonly align 1 %154, i64 %155) #13, !noalias !88 %.sroa.011.0.copyload.i = load i64, ptr %5, align 8 %sunkaddr284 = getelementptr inbounds i8, ptr %5, i64 8 %.sroa.212.0.copyload.i = load i16, ptr %sunkaddr284, align 8 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) %.not7.i = icmp eq i16 %.sroa.212.0.copyload.i, 0 br i1 %.not7.i, label %151, label %common.ret .lr.ph.i20: ; preds = %unicode.utf8CountCodepoints.exit %.sroa.0112.0.copyload = load ptr, ptr %3, align 8 %.sroa.2.0..sroa_idx113 = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.2.0.copyload114 = load ptr, ptr %.sroa.2.0..sroa_idx113, align 8 br label %158 156: ; preds = %158 %157 = add nuw i64 %.sroa.011.0.copyload.i26, %.sroa.0.014.i23 %.not.i30 = icmp eq i64 %157, %1 br i1 %.not.i30, label %common.ret, label %158 158: ; preds = %156, %.lr.ph.i20 %.sroa.0.014.i23 = phi i64 [ 0, %.lr.ph.i20 ], [ %157, %156 ] %159 = getelementptr inbounds i8, ptr %0, i64 %.sroa.0.014.i23 %160 = sub nuw i64 %1, %.sroa.0.014.i23 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) call fastcc void %.sroa.2.0.copyload114(ptr nonnull sret({ i64, i16, [6 x i8] }) %5, ptr nonnull readonly align 1 %.sroa.0112.0.copyload, ptr nonnull readonly align 1 %159, i64 %160) #13, !noalias !91 %.sroa.011.0.copyload.i26 = load i64, ptr %5, align 8 %sunkaddr285 = getelementptr inbounds i8, ptr %5, i64 8 %.sroa.212.0.copyload.i27 = load i16, ptr %sunkaddr285, align 8 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) %.not7.i28 = icmp eq i16 %.sroa.212.0.copyload.i27, 0 br i1 %.not7.i28, label %156, label %common.ret 161: ; preds = %unicode.utf8CountCodepoints.exit.thread135, %unicode.utf8CountCodepoints.exit %162 = phi i64 [ %.sroa.0.0.copyload, %unicode.utf8CountCodepoints.exit.thread135 ], [ %149, %unicode.utf8CountCodepoints.exit ] %163 = getelementptr inbounds %fmt.FormatOptions, ptr %2, i64 0, i32 2 %164 = load i32, ptr %163, align 8 %165 = trunc i32 %164 to i21 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) tail call void @llvm.experimental.noalias.scope.decl(metadata !94) %166 = icmp ult i21 %165, 128 br i1 %166, label %167, label %169 167: ; preds = %161 %168 = load i32, ptr @12, align 4, !noalias !97 br label %unicode.utf8CodepointSequenceLength.exit.i.i 169: ; preds = %161 %170 = trunc i32 %164 to i21 %171 = icmp ult i21 %170, 2048 br i1 %171, label %172, label %174 172: ; preds = %169 %173 = load i32, ptr @13, align 4, !noalias !97 br label %unicode.utf8CodepointSequenceLength.exit.i.i 174: ; preds = %169 %175 = trunc i32 %164 to i21 %176 = icmp ult i21 %175, 65536 br i1 %176, label %177, label %179 177: ; preds = %174 %178 = load i32, ptr @14, align 4, !noalias !97 br label %unicode.utf8CodepointSequenceLength.exit.i.i 179: ; preds = %174 %180 = trunc i32 %164 to i21 %181 = icmp ult i21 %180, -983040 %182 = load i32, ptr @15, align 4, !noalias !97 %spec.select.i.i.i = select i1 %181, i32 %182, i32 26 br label %unicode.utf8CodepointSequenceLength.exit.i.i unicode.utf8CodepointSequenceLength.exit.i.i: ; preds = %179, %177, %172, %167 %.sink.i.i.i = phi i32 [ %178, %177 ], [ %173, %172 ], [ %168, %167 ], [ %spec.select.i.i.i, %179 ] %.sroa.2.0.extract.shift.i.i = lshr i32 %.sink.i.i.i, 16 %183 = and i32 %.sink.i.i.i, 65535 %.not.i.i = icmp eq i32 %183, 0 %184 = trunc i32 %.sroa.2.0.extract.shift.i.i to i3 br i1 %.not.i.i, label %185, label %unicode.utf8Encode.exit.thread 185: ; preds = %unicode.utf8CodepointSequenceLength.exit.i.i %186 = zext i3 %184 to i32 switch i32 %186, label %187 [ i32 1, label %188 i32 2, label %190 i32 3, label %198 i32 4, label %215 ] 187: ; preds = %185 unreachable 188: ; preds = %185 %189 = trunc i32 %164 to i8 store i8 %189, ptr %14, align 4, !noalias !102 br label %232 190: ; preds = %185 %191 = lshr i32 %164, 6 %192 = trunc i32 %191 to i8 %193 = or i8 %192, -64 store i8 %193, ptr %14, align 4, !noalias !102 %194 = getelementptr inbounds i8, ptr %14, i64 1 %195 = trunc i32 %164 to i8 %196 = and i8 %195, 63 %197 = or disjoint i8 %196, -128 store i8 %197, ptr %194, align 1, !noalias !102 br label %232 198: ; preds = %185 %199 = trunc i32 %164 to i21 %200 = and i21 %199, -2048 %201 = icmp eq i21 %200, 55296 br i1 %201, label %unicode.utf8Encode.exit.thread, label %202 202: ; preds = %198 %203 = lshr i32 %164, 12 %204 = trunc i32 %203 to i8 %205 = or i8 %204, -32 store i8 %205, ptr %14, align 4, !noalias !102 %206 = getelementptr inbounds i8, ptr %14, i64 1 %207 = lshr i32 %164, 6 %208 = trunc i32 %207 to i8 %209 = and i8 %208, 63 %210 = or disjoint i8 %209, -128 store i8 %210, ptr %206, align 1, !noalias !102 %211 = getelementptr inbounds i8, ptr %14, i64 2 %212 = trunc i32 %164 to i8 %213 = and i8 %212, 63 %214 = or disjoint i8 %213, -128 store i8 %214, ptr %211, align 2, !noalias !102 br label %232 215: ; preds = %185 %216 = trunc i32 %164 to i21 %217 = lshr i21 %216, 18 %218 = trunc i21 %217 to i8 %219 = lshr i32 %164, 12 %220 = trunc i32 %219 to i8 %221 = and i8 %220, 63 %222 = lshr i32 %164, 6 %223 = trunc i32 %222 to i8 %224 = and i8 %223, 63 %225 = trunc i32 %164 to i8 %226 = and i8 %225, 63 %227 = insertelement <4 x i8> poison, i8 %218, i64 0 %228 = insertelement <4 x i8> %227, i8 %221, i64 1 %229 = insertelement <4 x i8> %228, i8 %224, i64 2 %230 = insertelement <4 x i8> %229, i8 %226, i64 3 %231 = or disjoint <4 x i8> %230, <i8 -16, i8 -128, i8 -128, i8 -128> store <4 x i8> %231, ptr %14, align 4, !noalias !102 br label %232 unicode.utf8Encode.exit.thread: ; preds = %unicode.utf8CodepointSequenceLength.exit.i.i, %198 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) br label %236 232: ; preds = %215, %202, %190, %188 store i3 %184, ptr %5, align 2, !alias.scope !94, !noalias !103 %.sroa.4.i.0..sroa.4.i.0..sroa.4.i.0..sroa.4.0..sroa.4.0..sroa.4.2..pre.i = load i8, ptr %5, align 2, !noalias !103 %promoted286 = zext i8 %.sroa.4.i.0..sroa.4.i.0..sroa.4.i.0..sroa.4.0..sroa.4.0..sroa.4.2..pre.i to i64 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) %233 = insertvalue { ptr, i64 } poison, ptr %14, 0 %234 = and i64 %promoted286, 7 %235 = insertvalue { ptr, i64 } %233, i64 %234, 1 br label %236 236: ; preds = %unicode.utf8Encode.exit.thread, %232 %237 = phi { ptr, i64 } [ %235, %232 ], [ { ptr @__anon_3683, i64 3 }, %unicode.utf8Encode.exit.thread ] %238 = getelementptr inbounds %fmt.FormatOptions, ptr %2, i64 0, i32 3 %239 = load i8, ptr %238, align 4 %240 = trunc i8 %239 to i2 %241 = zext i2 %240 to i32 switch i32 %241, label %242 [ i32 0, label %243 i32 1, label %258 i32 2, label %277 ] 242: ; preds = %236 unreachable 243: ; preds = %236 %244 = icmp eq i64 %1, 0 %.sroa.0117.0.copyload = load ptr, ptr %3, align 8 %.sroa.2118.0..sroa_idx = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.2118.0.copyload = load ptr, ptr %.sroa.2118.0..sroa_idx, align 8 br i1 %244, label %.loopexit, label %.lr.ph.i33 .lr.ph.i33: ; preds = %243 br label %247 245: ; preds = %247 %246 = add nuw i64 %.sroa.011.0.copyload.i39, %.sroa.0.014.i36 %.not.i43 = icmp eq i64 %246, %1 br i1 %.not.i43, label %.loopexit.loopexit, label %247 247: ; preds = %245, %.lr.ph.i33 %.sroa.0.014.i36 = phi i64 [ 0, %.lr.ph.i33 ], [ %246, %245 ] %248 = getelementptr inbounds i8, ptr %0, i64 %.sroa.0.014.i36 %249 = sub nuw i64 %1, %.sroa.0.014.i36 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) call fastcc void %.sroa.2118.0.copyload(ptr nonnull sret({ i64, i16, [6 x i8] }) %5, ptr nonnull readonly align 1 %.sroa.0117.0.copyload, ptr nonnull readonly align 1 %248, i64 %249) #13, !noalias !104 %.sroa.011.0.copyload.i39 = load i64, ptr %5, align 8 %sunkaddr287 = getelementptr inbounds i8, ptr %5, i64 8 %.sroa.212.0.copyload.i40 = load i16, ptr %sunkaddr287, align 8 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) %.not7.i41 = icmp eq i16 %.sroa.212.0.copyload.i40, 0 br i1 %.not7.i41, label %245, label %common.ret .loopexit.loopexit: ; preds = %245 %.sroa.0119.0.copyload.pre = load ptr, ptr %3, align 8 %sunkaddr288 = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.2120.0.copyload.pre = load ptr, ptr %sunkaddr288, align 8 br label %.loopexit .loopexit: ; preds = %.loopexit.loopexit, %243 %.sroa.2120.0.copyload = phi ptr [ %.sroa.2120.0.copyload.pre, %.loopexit.loopexit ], [ %.sroa.2118.0.copyload, %243 ] %.sroa.0119.0.copyload = phi ptr [ %.sroa.0119.0.copyload.pre, %.loopexit.loopexit ], [ %.sroa.0117.0.copyload, %243 ] %250 = extractvalue { ptr, i64 } %237, 0 %251 = extractvalue { ptr, i64 } %237, 1 %.not.i45 = icmp eq i64 %162, 0 br i1 %.not.i45, label %common.ret, label %.lr.ph.i46 .lr.ph.i46: ; preds = %.loopexit %.not13.i.i = icmp eq i64 %251, 0 br i1 %.not13.i.i, label %common.ret, label %.lr.ph.i.i.preheader .lr.ph.i.i.preheader: ; preds = %.lr.ph.i46 br label %.lr.ph.i.i .lr.ph.i.i: ; preds = %.lr.ph.i.i.preheader, %.loopexit.i %.sroa.0.06.i = phi i64 [ %257, %.loopexit.i ], [ 0, %.lr.ph.i.i.preheader ] br label %254 252: ; preds = %254 %253 = add nuw i64 %.sroa.011.0.copyload.i.i, %.sroa.0.014.i.i %.not.i.i48 = icmp eq i64 %253, %251 br i1 %.not.i.i48, label %.loopexit.i, label %254 254: ; preds = %252, %.lr.ph.i.i %.sroa.0.014.i.i = phi i64 [ 0, %.lr.ph.i.i ], [ %253, %252 ] %255 = getelementptr inbounds i8, ptr %250, i64 %.sroa.0.014.i.i %256 = sub nuw i64 %251, %.sroa.0.014.i.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) call fastcc void %.sroa.2120.0.copyload(ptr nonnull sret({ i64, i16, [6 x i8] }) %5, ptr nonnull readonly align 1 %.sroa.0119.0.copyload, ptr nonnull readonly align 1 %255, i64 %256) #13, !noalias !107 %.sroa.011.0.copyload.i.i = load i64, ptr %5, align 8 %sunkaddr289 = getelementptr inbounds i8, ptr %5, i64 8 %.sroa.212.0.copyload.i.i = load i16, ptr %sunkaddr289, align 8 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) %.not7.i.i = icmp eq i16 %.sroa.212.0.copyload.i.i, 0 br i1 %.not7.i.i, label %252, label %common.ret .loopexit.i: ; preds = %252 %257 = add nuw i64 %.sroa.0.06.i, 1 %exitcond.not.i = icmp eq i64 %257, %162 br i1 %exitcond.not.i, label %common.ret, label %.lr.ph.i.i 258: ; preds = %236 %259 = lshr i64 %162, 1 %260 = add nuw i64 %162, 1 %261 = lshr i64 %260, 1 %.sroa.0121.0.copyload = load ptr, ptr %3, align 8 %.sroa.2122.0..sroa_idx = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.2122.0.copyload = load ptr, ptr %.sroa.2122.0..sroa_idx, align 8 %262 = extractvalue { ptr, i64 } %237, 0 %263 = extractvalue { ptr, i64 } %237, 1 %.not.i49 = icmp ult i64 %162, 2 br i1 %.not.i49, label %.loopexit158, label %.lr.ph.i50 .lr.ph.i50: ; preds = %258 %.not13.i.i52 = icmp eq i64 %263, 0 br i1 %.not13.i.i52, label %.loopexit158, label %.lr.ph.i.i54.preheader .lr.ph.i.i54.preheader: ; preds = %.lr.ph.i50 br label %.lr.ph.i.i54 .lr.ph.i.i54: ; preds = %.lr.ph.i.i54.preheader, %.loopexit.i64 %.sroa.0.06.i55 = phi i64 [ %269, %.loopexit.i64 ], [ 0, %.lr.ph.i.i54.preheader ] br label %266 264: ; preds = %266 %265 = add nuw i64 %.sroa.011.0.copyload.i.i59, %.sroa.0.014.i.i58 %.not.i.i63 = icmp eq i64 %265, %263 br i1 %.not.i.i63, label %.loopexit.i64, label %266 266: ; preds = %264, %.lr.ph.i.i54 %.sroa.0.014.i.i58 = phi i64 [ 0, %.lr.ph.i.i54 ], [ %265, %264 ] %267 = getelementptr inbounds i8, ptr %262, i64 %.sroa.0.014.i.i58 %268 = sub nuw i64 %263, %.sroa.0.014.i.i58 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) call fastcc void %.sroa.2122.0.copyload(ptr nonnull sret({ i64, i16, [6 x i8] }) %5, ptr nonnull readonly align 1 %.sroa.0121.0.copyload, ptr nonnull readonly align 1 %267, i64 %268) #13, !noalias !110 %.sroa.011.0.copyload.i.i59 = load i64, ptr %5, align 8 %sunkaddr290 = getelementptr inbounds i8, ptr %5, i64 8 %.sroa.212.0.copyload.i.i60 = load i16, ptr %sunkaddr290, align 8 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) %.not7.i.i61 = icmp eq i16 %.sroa.212.0.copyload.i.i60, 0 br i1 %.not7.i.i61, label %264, label %common.ret .loopexit.i64: ; preds = %264 %269 = add nuw nsw i64 %.sroa.0.06.i55, 1 %exitcond.not.i65 = icmp eq i64 %269, %259 br i1 %exitcond.not.i65, label %.loopexit158.loopexit, label %.lr.ph.i.i54 .loopexit158.loopexit: ; preds = %.loopexit.i64 %.sroa.0123.0.copyload.pre = load ptr, ptr %3, align 8 %sunkaddr291 = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.2124.0.copyload.pre = load ptr, ptr %sunkaddr291, align 8 br label %.loopexit158 .loopexit158: ; preds = %.loopexit158.loopexit, %258, %.lr.ph.i50 %.sroa.2124.0.copyload = phi ptr [ %.sroa.2124.0.copyload.pre, %.loopexit158.loopexit ], [ %.sroa.2122.0.copyload, %258 ], [ %.sroa.2122.0.copyload, %.lr.ph.i50 ] %.sroa.0123.0.copyload = phi ptr [ %.sroa.0123.0.copyload.pre, %.loopexit158.loopexit ], [ %.sroa.0121.0.copyload, %258 ], [ %.sroa.0121.0.copyload, %.lr.ph.i50 ] %270 = icmp eq i64 %1, 0 br i1 %270, label %.loopexit156, label %.lr.ph.i68 .lr.ph.i68: ; preds = %.loopexit158 br label %273 271: ; preds = %273 %272 = add nuw i64 %.sroa.011.0.copyload.i74, %.sroa.0.014.i71 %.not.i78 = icmp eq i64 %272, %1 br i1 %.not.i78, label %.loopexit156, label %273 273: ; preds = %271, %.lr.ph.i68 %.sroa.0.014.i71 = phi i64 [ 0, %.lr.ph.i68 ], [ %272, %271 ] %274 = getelementptr inbounds i8, ptr %0, i64 %.sroa.0.014.i71 %275 = sub nuw i64 %1, %.sroa.0.014.i71 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) call fastcc void %.sroa.2124.0.copyload(ptr nonnull sret({ i64, i16, [6 x i8] }) %5, ptr nonnull readonly align 1 %.sroa.0123.0.copyload, ptr nonnull readonly align 1 %274, i64 %275) #13, !noalias !113 %.sroa.011.0.copyload.i74 = load i64, ptr %5, align 8 %sunkaddr292 = getelementptr inbounds i8, ptr %5, i64 8 %.sroa.212.0.copyload.i75 = load i16, ptr %sunkaddr292, align 8 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) %.not7.i76 = icmp eq i16 %.sroa.212.0.copyload.i75, 0 br i1 %.not7.i76, label %271, label %common.ret .loopexit156: ; preds = %271, %.loopexit158 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 8 dereferenceable(16) %3, i64 16, i1 false) %276 = call fastcc i16 @io.Writer.writeBytesNTimes(ptr nonnull readonly align 8 %13, ptr nonnull readonly align 1 %262, i64 %263, i64 %261) br label %common.ret 277: ; preds = %236 %.sroa.0125.0.copyload = load ptr, ptr %3, align 8 %.sroa.2126.0..sroa_idx = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.2126.0.copyload = load ptr, ptr %.sroa.2126.0..sroa_idx, align 8 %278 = extractvalue { ptr, i64 } %237, 0 %279 = extractvalue { ptr, i64 } %237, 1 %.not.i80 = icmp eq i64 %162, 0 br i1 %.not.i80, label %.loopexit162, label %.lr.ph.i81 .lr.ph.i81: ; preds = %277 %.not13.i.i83 = icmp eq i64 %279, 0 br i1 %.not13.i.i83, label %.loopexit162, label %.lr.ph.i.i85.preheader .lr.ph.i.i85.preheader: ; preds = %.lr.ph.i81 br label %.lr.ph.i.i85 .lr.ph.i.i85: ; preds = %.lr.ph.i.i85.preheader, %.loopexit.i95 %.sroa.0.06.i86 = phi i64 [ %285, %.loopexit.i95 ], [ 0, %.lr.ph.i.i85.preheader ] br label %282 280: ; preds = %282 %281 = add nuw i64 %.sroa.011.0.copyload.i.i90, %.sroa.0.014.i.i89 %.not.i.i94 = icmp eq i64 %281, %279 br i1 %.not.i.i94, label %.loopexit.i95, label %282 282: ; preds = %280, %.lr.ph.i.i85 %.sroa.0.014.i.i89 = phi i64 [ 0, %.lr.ph.i.i85 ], [ %281, %280 ] %283 = getelementptr inbounds i8, ptr %278, i64 %.sroa.0.014.i.i89 %284 = sub nuw i64 %279, %.sroa.0.014.i.i89 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) call fastcc void %.sroa.2126.0.copyload(ptr nonnull sret({ i64, i16, [6 x i8] }) %5, ptr nonnull readonly align 1 %.sroa.0125.0.copyload, ptr nonnull readonly align 1 %283, i64 %284) #13, !noalias !116 %.sroa.011.0.copyload.i.i90 = load i64, ptr %5, align 8 %sunkaddr293 = getelementptr inbounds i8, ptr %5, i64 8 %.sroa.212.0.copyload.i.i91 = load i16, ptr %sunkaddr293, align 8 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) %.not7.i.i92 = icmp eq i16 %.sroa.212.0.copyload.i.i91, 0 br i1 %.not7.i.i92, label %280, label %common.ret .loopexit.i95: ; preds = %280 %285 = add nuw i64 %.sroa.0.06.i86, 1 %exitcond.not.i96 = icmp eq i64 %285, %162 br i1 %exitcond.not.i96, label %.loopexit162.loopexit, label %.lr.ph.i.i85 .loopexit162.loopexit: ; preds = %.loopexit.i95 %.sroa.0127.0.copyload.pre = load ptr, ptr %3, align 8 %sunkaddr294 = getelementptr inbounds i8, ptr %3, i64 8 %.sroa.2128.0.copyload.pre = load ptr, ptr %sunkaddr294, align 8 br label %.loopexit162 .loopexit162: ; preds = %.loopexit162.loopexit, %277, %.lr.ph.i81 %.sroa.2128.0.copyload = phi ptr [ %.sroa.2128.0.copyload.pre, %.loopexit162.loopexit ], [ %.sroa.2126.0.copyload, %277 ], [ %.sroa.2126.0.copyload, %.lr.ph.i81 ] %.sroa.0127.0.copyload = phi ptr [ %.sroa.0127.0.copyload.pre, %.loopexit162.loopexit ], [ %.sroa.0125.0.copyload, %277 ], [ %.sroa.0125.0.copyload, %.lr.ph.i81 ] %286 = icmp eq i64 %1, 0 br i1 %286, label %common.ret, label %.lr.ph.i99 .lr.ph.i99: ; preds = %.loopexit162 br label %289 287: ; preds = %289 %288 = add nuw i64 %.sroa.011.0.copyload.i105, %.sroa.0.014.i102 %.not.i109 = icmp eq i64 %288, %1 br i1 %.not.i109, label %common.ret, label %289 289: ; preds = %287, %.lr.ph.i99 %.sroa.0.014.i102 = phi i64 [ 0, %.lr.ph.i99 ], [ %288, %287 ] %290 = getelementptr inbounds i8, ptr %0, i64 %.sroa.0.014.i102 %291 = sub nuw i64 %1, %.sroa.0.014.i102 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) call fastcc void %.sroa.2128.0.copyload(ptr nonnull sret({ i64, i16, [6 x i8] }) %5, ptr nonnull readonly align 1 %.sroa.0127.0.copyload, ptr nonnull readonly align 1 %290, i64 %291) #13, !noalias !119 %.sroa.011.0.copyload.i105 = load i64, ptr %5, align 8 %sunkaddr295 = getelementptr inbounds i8, ptr %5, i64 8 %.sroa.212.0.copyload.i106 = load i16, ptr %sunkaddr295, align 8 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) %.not7.i107 = icmp eq i16 %.sroa.212.0.copyload.i106, 0 br i1 %.not7.i107, label %287, label %common.ret } ; Function Attrs: cold noreturn nounwind uwtable define internal fastcc void @posix.abort() unnamed_addr #2 !section_prefix !14 { tail call void @abort() unreachable } ; Function Attrs: nounwind uwtable define internal fastcc i16 @io.Writer.writeBytesNTimes(ptr nocapture nonnull readonly align 8 %0, ptr nonnull readonly align 1 %1, i64 %2, i64 %3) unnamed_addr #0 { %5 = alloca [16 x i8], align 8 %.not = icmp eq i64 %3, 0 br i1 %.not, label %common.ret, label %.lr.ph .lr.ph: ; preds = %4 %.not13.i = icmp eq i64 %2, 0 br i1 %.not13.i, label %common.ret, label %.lr.ph.i.preheader .lr.ph.i.preheader: ; preds = %.lr.ph br label %.lr.ph.i common.ret: ; preds = %.loopexit, %8, %.lr.ph, %4 %common.ret.op = phi i16 [ 0, %4 ], [ 0, %.lr.ph ], [ %.sroa.212.0.copyload.i, %8 ], [ 0, %.loopexit ] ret i16 %common.ret.op .lr.ph.i: ; preds = %.lr.ph.i.preheader, %.loopexit %.sroa.0.06 = phi i64 [ %11, %.loopexit ], [ 0, %.lr.ph.i.preheader ] %.sroa.0.0.copyload = load ptr, ptr %0, align 8 %sunkaddr = getelementptr inbounds i8, ptr %0, i64 8 %.sroa.2.0.copyload = load ptr, ptr %sunkaddr, align 8 br label %8 6: ; preds = %8 %7 = add nuw i64 %.sroa.011.0.copyload.i, %.sroa.0.014.i %.not.i = icmp eq i64 %7, %2 br i1 %.not.i, label %.loopexit, label %8 8: ; preds = %6, %.lr.ph.i %.sroa.0.014.i = phi i64 [ 0, %.lr.ph.i ], [ %7, %6 ] %9 = getelementptr inbounds i8, ptr %1, i64 %.sroa.0.014.i %10 = sub nuw i64 %2, %.sroa.0.014.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) call fastcc void %.sroa.2.0.copyload(ptr nonnull sret({ i64, i16, [6 x i8] }) %5, ptr nonnull readonly align 1 %.sroa.0.0.copyload, ptr nonnull readonly align 1 %9, i64 %10) #13, !noalias !122 %.sroa.011.0.copyload.i = load i64, ptr %5, align 8 %sunkaddr18 = getelementptr inbounds i8, ptr %5, i64 8 %.sroa.212.0.copyload.i = load i16, ptr %sunkaddr18, align 8 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) %.not7.i = icmp eq i16 %.sroa.212.0.copyload.i, 0 br i1 %.not7.i, label %6, label %common.ret .loopexit: ; preds = %6 %11 = add nuw i64 %.sroa.0.06, 1 %exitcond.not = icmp eq i64 %11, %3 br i1 %exitcond.not, label %common.ret, label %.lr.ph.i } ; Function Attrs: noreturn nounwind uwtable declare void @abort() local_unnamed_addr #8 ; Function Attrs: nounwind uwtable declare i32 @pthread_threadid_np(ptr align 1, ptr nonnull align 8) local_unnamed_addr #0 ; Function Attrs: nounwind uwtable declare void @os_unfair_lock_lock(ptr nonnull align 4) local_unnamed_addr #0 ; Function Attrs: nounwind uwtable declare void @os_unfair_lock_unlock(ptr nonnull align 4) local_unnamed_addr #0 ; Function Attrs: nounwind uwtable declare i32 @__ulock_wait2(i32, ptr readonly align 1, i64, i64, i64) local_unnamed_addr #0 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) declare void @llvm.assume(i1 noundef) #9 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.usub.sat.i64(i64, i64) #10 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) declare void @llvm.experimental.noalias.scope.decl(metadata) #11 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #12 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #12 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i16508 @llvm.ctlz.i16508(i16508, i1 immarg) #10 ; Function Attrs: nounwind declare i8 @llvm.x86.atomic.sub.cc.i8(ptr, i8, i32 immarg) #13 attributes #0 = { nounwind uwtable "frame-pointer"="none" "target-cpu"="skylake" "target-features"="-16bit-mode,-32bit-mode,-3dnow,-3dnowa,+64bit,+adx,+aes,+allow-light-256-bit,-amx-bf16,-amx-complex,-amx-fp16,-amx-int8,-amx-tile,+avx,-avx10.1-256,-avx10.1-512,+avx2,-avx512bf16,-avx512bitalg,-avx512bw,-avx512cd,-avx512dq,-avx512er,-avx512f,-avx512fp16,-avx512ifma,-avx512pf,-avx512vbmi,-avx512vbmi2,-avx512vl,-avx512vnni,-avx512vp2intersect,-avx512vpopcntdq,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,+bmi,+bmi2,-branchfusion,-ccmp,-cf,-cldemote,+clflushopt,-clwb,-clzero,+cmov,-cmpccxadd,+crc32,+cx16,+cx8,-egpr,-enqcmd,+ermsb,-evex512,+f16c,-false-deps-getmant,-false-deps-lzcnt-tzcnt,-false-deps-mulc,-false-deps-mullq,-false-deps-perm,+false-deps-popcnt,-false-deps-range,-fast-11bytenop,+fast-15bytenop,-fast-7bytenop,-fast-bextr,+fast-gather,-fast-hops,-fast-lzcnt,-fast-movbe,+fast-scalar-fsqrt,-fast-scalar-shift-masks,+fast-shld-rotate,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle,+fast-vector-fsqrt,-fast-vector-shift-masks,-faster-shift-than-shuffle,+fma,-fma4,+fsgsbase,-fsrm,+fxsr,-gfni,-harden-sls-ijmp,-harden-sls-ret,-hreset,-idivl-to-divb,+idivq-to-divl,+invpcid,-kl,-lea-sp,-lea-uses-ag,-lvi-cfi,-lvi-load-hardening,-lwp,+lzcnt,+macrofusion,+mmx,+movbe,-movdir64b,-movdiri,-mwaitx,-ndd,-no-bypass-delay,+no-bypass-delay-blend,+no-bypass-delay-mov,+no-bypass-delay-shuffle,+nopl,-pad-short-functions,+pclmul,-pconfig,-pku,+popcnt,-ppx,-prefer-128-bit,-prefer-256-bit,-prefer-mask-registers,-prefer-movmsk-over-vtest,-prefer-no-gather,-prefer-no-scatter,-prefetchi,-prefetchwt1,+prfchw,-ptwrite,-push2pop2,-raoint,-rdpid,-rdpru,+rdrnd,+rdseed,-retpoline,-retpoline-external-thunk,-retpoline-indirect-branches,-retpoline-indirect-calls,-rtm,+sahf,-sbb-dep-breaking,-serialize,-seses,+sgx,-sha,-sha512,-shstk,+slow-3ops-lea,-slow-incdec,-slow-lea,-slow-pmaddwd,-slow-pmulld,-slow-shld,-slow-two-mem-ops,-slow-unaligned-mem-16,-slow-unaligned-mem-32,-sm3,-sm4,-soft-float,+sse,+sse2,+sse3,+sse4.1,+sse4.2,-sse4a,-sse-unaligned-mem,+ssse3,-tagged-globals,-tbm,-tsxldtrk,-tuning-fast-imm-vector-shift,-uintr,-use-glm-div-sqrt-costs,-use-slm-arith-costs,-usermsr,-vaes,-vpclmulqdq,+vzeroupper,-waitpkg,-wbnoinvd,-widekl,+x87,-xop,+xsave,+xsavec,+xsaveopt,+xsaves" } attributes #1 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "frame-pointer"="none" "target-cpu"="skylake" "target-features"="-16bit-mode,-32bit-mode,-3dnow,-3dnowa,+64bit,+adx,+aes,+allow-light-256-bit,-amx-bf16,-amx-complex,-amx-fp16,-amx-int8,-amx-tile,+avx,-avx10.1-256,-avx10.1-512,+avx2,-avx512bf16,-avx512bitalg,-avx512bw,-avx512cd,-avx512dq,-avx512er,-avx512f,-avx512fp16,-avx512ifma,-avx512pf,-avx512vbmi,-avx512vbmi2,-avx512vl,-avx512vnni,-avx512vp2intersect,-avx512vpopcntdq,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,+bmi,+bmi2,-branchfusion,-ccmp,-cf,-cldemote,+clflushopt,-clwb,-clzero,+cmov,-cmpccxadd,+crc32,+cx16,+cx8,-egpr,-enqcmd,+ermsb,-evex512,+f16c,-false-deps-getmant,-false-deps-lzcnt-tzcnt,-false-deps-mulc,-false-deps-mullq,-false-deps-perm,+false-deps-popcnt,-false-deps-range,-fast-11bytenop,+fast-15bytenop,-fast-7bytenop,-fast-bextr,+fast-gather,-fast-hops,-fast-lzcnt,-fast-movbe,+fast-scalar-fsqrt,-fast-scalar-shift-masks,+fast-shld-rotate,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle,+fast-vector-fsqrt,-fast-vector-shift-masks,-faster-shift-than-shuffle,+fma,-fma4,+fsgsbase,-fsrm,+fxsr,-gfni,-harden-sls-ijmp,-harden-sls-ret,-hreset,-idivl-to-divb,+idivq-to-divl,+invpcid,-kl,-lea-sp,-lea-uses-ag,-lvi-cfi,-lvi-load-hardening,-lwp,+lzcnt,+macrofusion,+mmx,+movbe,-movdir64b,-movdiri,-mwaitx,-ndd,-no-bypass-delay,+no-bypass-delay-blend,+no-bypass-delay-mov,+no-bypass-delay-shuffle,+nopl,-pad-short-functions,+pclmul,-pconfig,-pku,+popcnt,-ppx,-prefer-128-bit,-prefer-256-bit,-prefer-mask-registers,-prefer-movmsk-over-vtest,-prefer-no-gather,-prefer-no-scatter,-prefetchi,-prefetchwt1,+prfchw,-ptwrite,-push2pop2,-raoint,-rdpid,-rdpru,+rdrnd,+rdseed,-retpoline,-retpoline-external-thunk,-retpoline-indirect-branches,-retpoline-indirect-calls,-rtm,+sahf,-sbb-dep-breaking,-serialize,-seses,+sgx,-sha,-sha512,-shstk,+slow-3ops-lea,-slow-incdec,-slow-lea,-slow-pmaddwd,-slow-pmulld,-slow-shld,-slow-two-mem-ops,-slow-unaligned-mem-16,-slow-unaligned-mem-32,-sm3,-sm4,-soft-float,+sse,+sse2,+sse3,+sse4.1,+sse4.2,-sse4a,-sse-unaligned-mem,+ssse3,-tagged-globals,-tbm,-tsxldtrk,-tuning-fast-imm-vector-shift,-uintr,-use-glm-div-sqrt-costs,-use-slm-arith-costs,-usermsr,-vaes,-vpclmulqdq,+vzeroupper,-waitpkg,-wbnoinvd,-widekl,+x87,-xop,+xsave,+xsavec,+xsaveopt,+xsaves" } attributes #2 = { cold noreturn nounwind uwtable "frame-pointer"="none" "target-cpu"="skylake" "target-features"="-16bit-mode,-32bit-mode,-3dnow,-3dnowa,+64bit,+adx,+aes,+allow-light-256-bit,-amx-bf16,-amx-complex,-amx-fp16,-amx-int8,-amx-tile,+avx,-avx10.1-256,-avx10.1-512,+avx2,-avx512bf16,-avx512bitalg,-avx512bw,-avx512cd,-avx512dq,-avx512er,-avx512f,-avx512fp16,-avx512ifma,-avx512pf,-avx512vbmi,-avx512vbmi2,-avx512vl,-avx512vnni,-avx512vp2intersect,-avx512vpopcntdq,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,+bmi,+bmi2,-branchfusion,-ccmp,-cf,-cldemote,+clflushopt,-clwb,-clzero,+cmov,-cmpccxadd,+crc32,+cx16,+cx8,-egpr,-enqcmd,+ermsb,-evex512,+f16c,-false-deps-getmant,-false-deps-lzcnt-tzcnt,-false-deps-mulc,-false-deps-mullq,-false-deps-perm,+false-deps-popcnt,-false-deps-range,-fast-11bytenop,+fast-15bytenop,-fast-7bytenop,-fast-bextr,+fast-gather,-fast-hops,-fast-lzcnt,-fast-movbe,+fast-scalar-fsqrt,-fast-scalar-shift-masks,+fast-shld-rotate,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle,+fast-vector-fsqrt,-fast-vector-shift-masks,-faster-shift-than-shuffle,+fma,-fma4,+fsgsbase,-fsrm,+fxsr,-gfni,-harden-sls-ijmp,-harden-sls-ret,-hreset,-idivl-to-divb,+idivq-to-divl,+invpcid,-kl,-lea-sp,-lea-uses-ag,-lvi-cfi,-lvi-load-hardening,-lwp,+lzcnt,+macrofusion,+mmx,+movbe,-movdir64b,-movdiri,-mwaitx,-ndd,-no-bypass-delay,+no-bypass-delay-blend,+no-bypass-delay-mov,+no-bypass-delay-shuffle,+nopl,-pad-short-functions,+pclmul,-pconfig,-pku,+popcnt,-ppx,-prefer-128-bit,-prefer-256-bit,-prefer-mask-registers,-prefer-movmsk-over-vtest,-prefer-no-gather,-prefer-no-scatter,-prefetchi,-prefetchwt1,+prfchw,-ptwrite,-push2pop2,-raoint,-rdpid,-rdpru,+rdrnd,+rdseed,-retpoline,-retpoline-external-thunk,-retpoline-indirect-branches,-retpoline-indirect-calls,-rtm,+sahf,-sbb-dep-breaking,-serialize,-seses,+sgx,-sha,-sha512,-shstk,+slow-3ops-lea,-slow-incdec,-slow-lea,-slow-pmaddwd,-slow-pmulld,-slow-shld,-slow-two-mem-ops,-slow-unaligned-mem-16,-slow-unaligned-mem-32,-sm3,-sm4,-soft-float,+sse,+sse2,+sse3,+sse4.1,+sse4.2,-sse4a,-sse-unaligned-mem,+ssse3,-tagged-globals,-tbm,-tsxldtrk,-tuning-fast-imm-vector-shift,-uintr,-use-glm-div-sqrt-costs,-use-slm-arith-costs,-usermsr,-vaes,-vpclmulqdq,+vzeroupper,-waitpkg,-wbnoinvd,-widekl,+x87,-xop,+xsave,+xsavec,+xsaveopt,+xsaves" } attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #5 = { mustprogress nofree norecurse nosync nounwind willreturn uwtable "frame-pointer"="none" "target-cpu"="skylake" "target-features"="-16bit-mode,-32bit-mode,-3dnow,-3dnowa,+64bit,+adx,+aes,+allow-light-256-bit,-amx-bf16,-amx-complex,-amx-fp16,-amx-int8,-amx-tile,+avx,-avx10.1-256,-avx10.1-512,+avx2,-avx512bf16,-avx512bitalg,-avx512bw,-avx512cd,-avx512dq,-avx512er,-avx512f,-avx512fp16,-avx512ifma,-avx512pf,-avx512vbmi,-avx512vbmi2,-avx512vl,-avx512vnni,-avx512vp2intersect,-avx512vpopcntdq,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,+bmi,+bmi2,-branchfusion,-ccmp,-cf,-cldemote,+clflushopt,-clwb,-clzero,+cmov,-cmpccxadd,+crc32,+cx16,+cx8,-egpr,-enqcmd,+ermsb,-evex512,+f16c,-false-deps-getmant,-false-deps-lzcnt-tzcnt,-false-deps-mulc,-false-deps-mullq,-false-deps-perm,+false-deps-popcnt,-false-deps-range,-fast-11bytenop,+fast-15bytenop,-fast-7bytenop,-fast-bextr,+fast-gather,-fast-hops,-fast-lzcnt,-fast-movbe,+fast-scalar-fsqrt,-fast-scalar-shift-masks,+fast-shld-rotate,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle,+fast-vector-fsqrt,-fast-vector-shift-masks,-faster-shift-than-shuffle,+fma,-fma4,+fsgsbase,-fsrm,+fxsr,-gfni,-harden-sls-ijmp,-harden-sls-ret,-hreset,-idivl-to-divb,+idivq-to-divl,+invpcid,-kl,-lea-sp,-lea-uses-ag,-lvi-cfi,-lvi-load-hardening,-lwp,+lzcnt,+macrofusion,+mmx,+movbe,-movdir64b,-movdiri,-mwaitx,-ndd,-no-bypass-delay,+no-bypass-delay-blend,+no-bypass-delay-mov,+no-bypass-delay-shuffle,+nopl,-pad-short-functions,+pclmul,-pconfig,-pku,+popcnt,-ppx,-prefer-128-bit,-prefer-256-bit,-prefer-mask-registers,-prefer-movmsk-over-vtest,-prefer-no-gather,-prefer-no-scatter,-prefetchi,-prefetchwt1,+prfchw,-ptwrite,-push2pop2,-raoint,-rdpid,-rdpru,+rdrnd,+rdseed,-retpoline,-retpoline-external-thunk,-retpoline-indirect-branches,-retpoline-indirect-calls,-rtm,+sahf,-sbb-dep-breaking,-serialize,-seses,+sgx,-sha,-sha512,-shstk,+slow-3ops-lea,-slow-incdec,-slow-lea,-slow-pmaddwd,-slow-pmulld,-slow-shld,-slow-two-mem-ops,-slow-unaligned-mem-16,-slow-unaligned-mem-32,-sm3,-sm4,-soft-float,+sse,+sse2,+sse3,+sse4.1,+sse4.2,-sse4a,-sse-unaligned-mem,+ssse3,-tagged-globals,-tbm,-tsxldtrk,-tuning-fast-imm-vector-shift,-uintr,-use-glm-div-sqrt-costs,-use-slm-arith-costs,-usermsr,-vaes,-vpclmulqdq,+vzeroupper,-waitpkg,-wbnoinvd,-widekl,+x87,-xop,+xsave,+xsavec,+xsaveopt,+xsaves" } attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #7 = { nofree nounwind uwtable "frame-pointer"="none" "target-cpu"="skylake" "target-features"="-16bit-mode,-32bit-mode,-3dnow,-3dnowa,+64bit,+adx,+aes,+allow-light-256-bit,-amx-bf16,-amx-complex,-amx-fp16,-amx-int8,-amx-tile,+avx,-avx10.1-256,-avx10.1-512,+avx2,-avx512bf16,-avx512bitalg,-avx512bw,-avx512cd,-avx512dq,-avx512er,-avx512f,-avx512fp16,-avx512ifma,-avx512pf,-avx512vbmi,-avx512vbmi2,-avx512vl,-avx512vnni,-avx512vp2intersect,-avx512vpopcntdq,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,+bmi,+bmi2,-branchfusion,-ccmp,-cf,-cldemote,+clflushopt,-clwb,-clzero,+cmov,-cmpccxadd,+crc32,+cx16,+cx8,-egpr,-enqcmd,+ermsb,-evex512,+f16c,-false-deps-getmant,-false-deps-lzcnt-tzcnt,-false-deps-mulc,-false-deps-mullq,-false-deps-perm,+false-deps-popcnt,-false-deps-range,-fast-11bytenop,+fast-15bytenop,-fast-7bytenop,-fast-bextr,+fast-gather,-fast-hops,-fast-lzcnt,-fast-movbe,+fast-scalar-fsqrt,-fast-scalar-shift-masks,+fast-shld-rotate,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle,+fast-vector-fsqrt,-fast-vector-shift-masks,-faster-shift-than-shuffle,+fma,-fma4,+fsgsbase,-fsrm,+fxsr,-gfni,-harden-sls-ijmp,-harden-sls-ret,-hreset,-idivl-to-divb,+idivq-to-divl,+invpcid,-kl,-lea-sp,-lea-uses-ag,-lvi-cfi,-lvi-load-hardening,-lwp,+lzcnt,+macrofusion,+mmx,+movbe,-movdir64b,-movdiri,-mwaitx,-ndd,-no-bypass-delay,+no-bypass-delay-blend,+no-bypass-delay-mov,+no-bypass-delay-shuffle,+nopl,-pad-short-functions,+pclmul,-pconfig,-pku,+popcnt,-ppx,-prefer-128-bit,-prefer-256-bit,-prefer-mask-registers,-prefer-movmsk-over-vtest,-prefer-no-gather,-prefer-no-scatter,-prefetchi,-prefetchwt1,+prfchw,-ptwrite,-push2pop2,-raoint,-rdpid,-rdpru,+rdrnd,+rdseed,-retpoline,-retpoline-external-thunk,-retpoline-indirect-branches,-retpoline-indirect-calls,-rtm,+sahf,-sbb-dep-breaking,-serialize,-seses,+sgx,-sha,-sha512,-shstk,+slow-3ops-lea,-slow-incdec,-slow-lea,-slow-pmaddwd,-slow-pmulld,-slow-shld,-slow-two-mem-ops,-slow-unaligned-mem-16,-slow-unaligned-mem-32,-sm3,-sm4,-soft-float,+sse,+sse2,+sse3,+sse4.1,+sse4.2,-sse4a,-sse-unaligned-mem,+ssse3,-tagged-globals,-tbm,-tsxldtrk,-tuning-fast-imm-vector-shift,-uintr,-use-glm-div-sqrt-costs,-use-slm-arith-costs,-usermsr,-vaes,-vpclmulqdq,+vzeroupper,-waitpkg,-wbnoinvd,-widekl,+x87,-xop,+xsave,+xsavec,+xsaveopt,+xsaves" } attributes #8 = { noreturn nounwind uwtable "frame-pointer"="none" "target-cpu"="skylake" "target-features"="-16bit-mode,-32bit-mode,-3dnow,-3dnowa,+64bit,+adx,+aes,+allow-light-256-bit,-amx-bf16,-amx-complex,-amx-fp16,-amx-int8,-amx-tile,+avx,-avx10.1-256,-avx10.1-512,+avx2,-avx512bf16,-avx512bitalg,-avx512bw,-avx512cd,-avx512dq,-avx512er,-avx512f,-avx512fp16,-avx512ifma,-avx512pf,-avx512vbmi,-avx512vbmi2,-avx512vl,-avx512vnni,-avx512vp2intersect,-avx512vpopcntdq,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,+bmi,+bmi2,-branchfusion,-ccmp,-cf,-cldemote,+clflushopt,-clwb,-clzero,+cmov,-cmpccxadd,+crc32,+cx16,+cx8,-egpr,-enqcmd,+ermsb,-evex512,+f16c,-false-deps-getmant,-false-deps-lzcnt-tzcnt,-false-deps-mulc,-false-deps-mullq,-false-deps-perm,+false-deps-popcnt,-false-deps-range,-fast-11bytenop,+fast-15bytenop,-fast-7bytenop,-fast-bextr,+fast-gather,-fast-hops,-fast-lzcnt,-fast-movbe,+fast-scalar-fsqrt,-fast-scalar-shift-masks,+fast-shld-rotate,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle,+fast-vector-fsqrt,-fast-vector-shift-masks,-faster-shift-than-shuffle,+fma,-fma4,+fsgsbase,-fsrm,+fxsr,-gfni,-harden-sls-ijmp,-harden-sls-ret,-hreset,-idivl-to-divb,+idivq-to-divl,+invpcid,-kl,-lea-sp,-lea-uses-ag,-lvi-cfi,-lvi-load-hardening,-lwp,+lzcnt,+macrofusion,+mmx,+movbe,-movdir64b,-movdiri,-mwaitx,-ndd,-no-bypass-delay,+no-bypass-delay-blend,+no-bypass-delay-mov,+no-bypass-delay-shuffle,+nopl,-pad-short-functions,+pclmul,-pconfig,-pku,+popcnt,-ppx,-prefer-128-bit,-prefer-256-bit,-prefer-mask-registers,-prefer-movmsk-over-vtest,-prefer-no-gather,-prefer-no-scatter,-prefetchi,-prefetchwt1,+prfchw,-ptwrite,-push2pop2,-raoint,-rdpid,-rdpru,+rdrnd,+rdseed,-retpoline,-retpoline-external-thunk,-retpoline-indirect-branches,-retpoline-indirect-calls,-rtm,+sahf,-sbb-dep-breaking,-serialize,-seses,+sgx,-sha,-sha512,-shstk,+slow-3ops-lea,-slow-incdec,-slow-lea,-slow-pmaddwd,-slow-pmulld,-slow-shld,-slow-two-mem-ops,-slow-unaligned-mem-16,-slow-unaligned-mem-32,-sm3,-sm4,-soft-float,+sse,+sse2,+sse3,+sse4.1,+sse4.2,-sse4a,-sse-unaligned-mem,+ssse3,-tagged-globals,-tbm,-tsxldtrk,-tuning-fast-imm-vector-shift,-uintr,-use-glm-div-sqrt-costs,-use-slm-arith-costs,-usermsr,-vaes,-vpclmulqdq,+vzeroupper,-waitpkg,-wbnoinvd,-widekl,+x87,-xop,+xsave,+xsavec,+xsaveopt,+xsaves" } attributes #9 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } attributes #10 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #11 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) } attributes #12 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #13 = { nounwind } !llvm.module.flags = !{!0, !1} !0 = !{i32 8, !"PIC Level", i32 2} !1 = !{i32 7, !"PIE Level", i32 2} !2 = !{!3} !3 = distinct !{!3, !4, !"fmt.digits2: argument 0"} !4 = distinct !{!4, !"fmt.digits2"} !5 = !{!6} !6 = distinct !{!6, !7, !"fmt.digits2: argument 0"} !7 = distinct !{!7, !"fmt.digits2"} !8 = !{!9, !11} !9 = distinct !{!9, !10, !"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn: argument 0"} !10 = distinct !{!10, !"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn"} !11 = distinct !{!11, !12, !"io.Writer.write: argument 0"} !12 = distinct !{!12, !"io.Writer.write"} !13 = !{!11} !14 = !{!"function_section_prefix", !"unlikely"} !15 = !{!16} !16 = distinct !{!16, !17, !"fmt.bufPrint__anon_3279: argument 0"} !17 = distinct !{!17, !"fmt.bufPrint__anon_3279"} !18 = !{!19, !21, !16} !19 = distinct !{!19, !20, !"io.GenericWriter(*io.fixed_buffer_stream.FixedBufferStream([]u8),error{NoSpaceLeft},(function 'write')).typeErasedWriteFn: argument 0"} !20 = distinct !{!20, !"io.GenericWriter(*io.fixed_buffer_stream.FixedBufferStream([]u8),error{NoSpaceLeft},(function 'write')).typeErasedWriteFn"} !21 = distinct !{!21, !22, !"io.Writer.write: argument 0"} !22 = distinct !{!22, !"io.Writer.write"} !23 = !{!24, !19, !21, !16} !24 = distinct !{!24, !25, !"io.fixed_buffer_stream.FixedBufferStream([]u8).write: argument 0"} !25 = distinct !{!25, !"io.fixed_buffer_stream.FixedBufferStream([]u8).write"} !26 = !{!27} !27 = distinct !{!27, !28, !"posix.write: argument 0"} !28 = distinct !{!28, !"posix.write"} !29 = !{!30} !30 = distinct !{!30, !31, !"io.fixed_buffer_stream.FixedBufferStream([]u8).write: argument 0"} !31 = distinct !{!31, !"io.fixed_buffer_stream.FixedBufferStream([]u8).write"} !32 = !{!33, !35} !33 = distinct !{!33, !34, !"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn: argument 0"} !34 = distinct !{!34, !"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn"} !35 = distinct !{!35, !36, !"io.Writer.write: argument 0"} !36 = distinct !{!36, !"io.Writer.write"} !37 = !{!35} !38 = !{!39} !39 = distinct !{!39, !40, !"fmt.digits2: argument 0"} !40 = distinct !{!40, !"fmt.digits2"} !41 = !{!42} !42 = distinct !{!42, !43, !"fmt.digits2: argument 0"} !43 = distinct !{!43, !"fmt.digits2"} !44 = !{!45, !47} !45 = distinct !{!45, !46, !"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn: argument 0"} !46 = distinct !{!46, !"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn"} !47 = distinct !{!47, !48, !"io.Writer.write: argument 0"} !48 = distinct !{!48, !"io.Writer.write"} !49 = !{!47} !50 = !{!51, !53} !51 = distinct !{!51, !52, !"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn: argument 0"} !52 = distinct !{!52, !"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn"} !53 = distinct !{!53, !54, !"io.Writer.write: argument 0"} !54 = distinct !{!54, !"io.Writer.write"} !55 = !{!53} !56 = !{!57, !59} !57 = distinct !{!57, !58, !"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn: argument 0"} !58 = distinct !{!58, !"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn"} !59 = distinct !{!59, !60, !"io.Writer.write: argument 0"} !60 = distinct !{!60, !"io.Writer.write"} !61 = !{!59} !62 = !{!63, !65} !63 = distinct !{!63, !64, !"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn: argument 0"} !64 = distinct !{!64, !"io.GenericWriter(fs.File,error{DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,AccessDenied,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer,Unexpected},(function 'write')).typeErasedWriteFn"} !65 = distinct !{!65, !66, !"io.Writer.write: argument 0"} !66 = distinct !{!66, !"io.Writer.write"} !67 = !{!65} !68 = !{!69} !69 = distinct !{!69, !70, !"unicode.utf8CountCodepoints: argument 0"} !70 = distinct !{!70, !"unicode.utf8CountCodepoints"} !71 = !{!72, !69} !72 = distinct !{!72, !73, !"unicode.utf8Decode: argument 0"} !73 = distinct !{!73, !"unicode.utf8Decode"} !74 = !{!75} !75 = distinct !{!75, !76, !"unicode.utf8Decode2: argument 0"} !76 = distinct !{!76, !"unicode.utf8Decode2"} !77 = !{!75, !72, !69} !78 = !{!79} !79 = distinct !{!79, !80, !"unicode.utf8Decode3: argument 0"} !80 = distinct !{!80, !"unicode.utf8Decode3"} !81 = !{!82, !79, !72, !69} !82 = distinct !{!82, !83, !"unicode.utf8Decode3AllowSurrogateHalf: argument 0"} !83 = distinct !{!83, !"unicode.utf8Decode3AllowSurrogateHalf"} !84 = !{!85} !85 = distinct !{!85, !86, !"unicode.utf8Decode4: argument 0"} !86 = distinct !{!86, !"unicode.utf8Decode4"} !87 = !{!85, !72, !69} !88 = !{!89} !89 = distinct !{!89, !90, !"io.Writer.write: argument 0"} !90 = distinct !{!90, !"io.Writer.write"} !91 = !{!92} !92 = distinct !{!92, !93, !"io.Writer.write: argument 0"} !93 = distinct !{!93, !"io.Writer.write"} !94 = !{!95} !95 = distinct !{!95, !96, !"unicode.utf8EncodeImpl__anon_4051: argument 0"} !96 = distinct !{!96, !"unicode.utf8EncodeImpl__anon_4051"} !97 = !{!98, !95, !100} !98 = distinct !{!98, !99, !"unicode.utf8CodepointSequenceLength: argument 0"} !99 = distinct !{!99, !"unicode.utf8CodepointSequenceLength"} !100 = distinct !{!100, !101, !"unicode.utf8Encode: argument 0"} !101 = distinct !{!101, !"unicode.utf8Encode"} !102 = !{!95, !100} !103 = !{!100} !104 = !{!105} !105 = distinct !{!105, !106, !"io.Writer.write: argument 0"} !106 = distinct !{!106, !"io.Writer.write"} !107 = !{!108} !108 = distinct !{!108, !109, !"io.Writer.write: argument 0"} !109 = distinct !{!109, !"io.Writer.write"} !110 = !{!111} !111 = distinct !{!111, !112, !"io.Writer.write: argument 0"} !112 = distinct !{!112, !"io.Writer.write"} !113 = !{!114} !114 = distinct !{!114, !115, !"io.Writer.write: argument 0"} !115 = distinct !{!115, !"io.Writer.write"} !116 = !{!117} !117 = distinct !{!117, !118, !"io.Writer.write: argument 0"} !118 = distinct !{!118, !"io.Writer.write"} !119 = !{!120} !120 = distinct !{!120, !121, !"io.Writer.write: argument 0"} !121 = distinct !{!121, !"io.Writer.write"} !122 = !{!123} !123 = distinct !{!123, !124, !"io.Writer.write: argument 0"} !124 = distinct !{!124, !"io.Writer.write"}
Trouver la différence