Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
실시간 편집
변경 없는 행 숨기기
줄바꿈 비활성화
레이아웃
나란히 보기
합쳐 보기
비교 단위
스마트
단어
글자
구문 강조
언어 선택
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 Diffchecker를 사용하는 방법. 데스크톱 앱을 사용하면 비교 데이터가 외부로 전송되지 않습니다!
데스크톱 앱 받기
LLVM small vs big
생성일
2년 전
비교 결과 만료 없음
초기화
내보내기
공유
설명
267 삭제
행
총
삭제
글자
총
삭제
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
356 행
복사
183 추가
행
총
추가
글자
총
추가
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
261 행
복사
; 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
복사
복사됨
복사
복사됨
@__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
복사
복사됨
복사
복사됨
@__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
복사
복사됨
복사
복사됨
@__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 {
복사
복사됨
복사
복사됨
%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
복사
복사됨
복사
복사됨
%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
복사
복사됨
복사
복사됨
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
복사
복사됨
복사
복사됨
.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
복사
복사됨
복사
복사됨
.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
복사
복사됨
복사
복사됨
%
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
복사
복사됨
복사
복사됨
._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
복사
복사됨
복사
복사됨
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
복사
복사됨
복사
복사됨
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
복사
복사됨
복사
복사됨
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
복사
복사됨
복사
복사됨
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
복사
복사됨
복사
복사됨
.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
저장된 비교 결과
원본
파일 열기
; 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"}
수정본
파일 열기
; 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"}
비교하기