Skip to content

Instantly share code, notes, and snippets.

@John-Colvin
Last active July 31, 2023 17:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save John-Colvin/f106a8512dfbdf79e6d4ecf0bdc87307 to your computer and use it in GitHub Desktop.
Save John-Colvin/f106a8512dfbdf79e6d4ecf0bdc87307 to your computer and use it in GitHub Desktop.
module dump
bin/sdc -c -o obj/sdlib/gc.o sdlib/d/gc/allocclass.d sdlib/d/gc/arena.d sdlib/d/gc/base.d sdlib/d/gc/bin.d sdlib/d/gc/bitmap.d sdlib/d/gc/capi.d sdlib/d/gc/emap.d sdlib/d/gc/extent.d sdlib/d/gc/finddivisor.d sdlib/d/gc/heap.d sdlib/d/gc/hpd.d sdlib/d/gc/pages.d sdlib/d/gc/rbtree.d sdlib/d/gc/region.d sdlib/d/gc/ring.d sdlib/d/gc/rtree.d sdlib/d/gc/sizeclass.d sdlib/d/gc/spec.d sdlib/d/gc/tcache.d sdlib/d/gc/util.d -Isdlib
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i64 undef
define i64 @__ctfe() #0 {
store i64 1, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i64 undef
define i64 @__ctfe() #0 {
store i64 64, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i8 undef
define i64 @__ctfe() #0 {
%1 = call i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 8)
store i8 %1, ptr @__ctBuf, align 1
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
store i64 8, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i1 @__ctfe() #0 {
ret i1 true
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
store i64 8, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i1 @__ctfe() #0 {
ret i1 true
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
store i64 4096, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
store i64 17592186040320, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
store i64 7, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
store i64 64, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
store i64 63, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
store i64 4095, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
store i64 2097152, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
store i64 2097151, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
store i64 281474976710656, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
store i64 281474976710655, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
store i64 128, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
store i64 128, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
store i64 281474976710528, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
store i64 4096, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
store i64 4095, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i32 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
store i32 1, ptr @__ctBuf, align 4
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i32 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
store i32 2, ptr @__ctBuf, align 4
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i32 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
store i32 3, ptr @__ctBuf, align 4
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i32 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
store i32 4, ptr @__ctBuf, align 4
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i32 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
store i32 5, ptr @__ctBuf, align 4
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i1 @__ctfe() #0 {
ret i1 true
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
store i64 16, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
@__ctBuf = global i32 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
store i32 36, ptr @__ctBuf, align 4
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
ret i64 2
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
@__ctBuf = global [2 x %S2gc1d5rtree5Level] undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define i64 @__ctfe() #0 {
%1 = call %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level zeroinitializer, i32 18, i32 30)
%2 = insertvalue [2 x %S2gc1d5rtree5Level] undef, %S2gc1d5rtree5Level %1, 0
%3 = call %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level zeroinitializer, i32 18, i32 12)
%4 = insertvalue [2 x %S2gc1d5rtree5Level] %2, %S2gc1d5rtree5Level %3, 1
store [2 x %S2gc1d5rtree5Level] %4, ptr @__ctBuf, align 4
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
@__ctBuf = global i64 undef
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
define i64 @__ctfe() #0 {
br i1 true, label %bound_ok, label %bound_fail, !prof !0
bound_fail: ; preds = %0
call void @__sd_array_outofbounds({ i64, ptr } { i64 12, ptr @.str }, i32 28)
unreachable
bound_ok: ; preds = %0
%1 = load i32, ptr @_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level, align 4
%2 = zext i32 %1 to i64
%3 = shl i64 1, %2
store i64 %3, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
!0 = !{!"branch_weights", i32 65536, i32 0}
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
br i1 true, label %bound_ok, label %bound_fail, !prof !0
bound_fail: ; preds = %0
call void @__sd_array_outofbounds({ i64, ptr } { i64 12, ptr @.str }, i32 29)
unreachable
bound_ok: ; preds = %0
%1 = load i32, ptr getelementptr inbounds (%S2gc1d5rtree5Level, ptr @_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level, i64 1), align 4
%2 = zext i32 %1 to i64
%3 = shl i64 1, %2
store i64 %3, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
!0 = !{!"branch_weights", i32 65536, i32 0}
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
br i1 true, label %bound_ok, label %bound_fail, !prof !0
bound_fail: ; preds = %0
call void @__sd_array_outofbounds({ i64, ptr } { i64 12, ptr @.str }, i32 31)
unreachable
bound_ok: ; preds = %0
%1 = load i32, ptr getelementptr inbounds (%S2gc1d5rtree5Level, ptr @_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level, i32 0, i32 1), align 4
%2 = zext i32 %1 to i64
%3 = shl i64 1, %2
store i64 %3, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
!0 = !{!"branch_weights", i32 65536, i32 0}
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
store i64 281474976706560, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@__ctBuf = global i32 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
store i32 4098, ptr @__ctBuf, align 4
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@__ctBuf = global i32 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
store i32 -1, ptr @__ctBuf, align 4
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i1 @__ctfe() #0 {
ret i1 true
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
ret i64 40
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
ret i64 56
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
ret i64 56
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
ret i64 8
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
ret i64 8
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
ret i64 8
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
ret i64 192
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
ret i64 16
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
ret i64 8176
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
store i64 850045863, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
store i64 1018212795, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
%S5posix3sys7pthread15pthread_mutex_t = type { i64, [56 x i8] }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@__ctBuf = global %S5posix3sys7pthread15pthread_mutex_t undef
@_D5posix3sys7pthread25PTHREAD_MUTEX_INITIALIZERyS5posix3sys7pthread15pthread_mutex_t = linkonce_odr constant %S5posix3sys7pthread15pthread_mutex_t zeroinitializer
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
%1 = load %S5posix3sys7pthread15pthread_mutex_t, ptr @_D5posix3sys7pthread25PTHREAD_MUTEX_INITIALIZERyS5posix3sys7pthread15pthread_mutex_t, align 8
store %S5posix3sys7pthread15pthread_mutex_t %1, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
%S5posix3sys7pthread15pthread_mutex_t = type { i64, [56 x i8] }
%S5posix3sys7pthread14pthread_cond_t = type { i64, [40 x i8] }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@_D5posix3sys7pthread25PTHREAD_MUTEX_INITIALIZERyS5posix3sys7pthread15pthread_mutex_t = linkonce_odr constant %S5posix3sys7pthread15pthread_mutex_t zeroinitializer
@__ctBuf = global %S5posix3sys7pthread14pthread_cond_t undef
@_D5posix3sys7pthread24PTHREAD_COND_INITIALIZERyS5posix3sys7pthread14pthread_cond_t = linkonce_odr constant %S5posix3sys7pthread14pthread_cond_t zeroinitializer
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
%1 = load %S5posix3sys7pthread14pthread_cond_t, ptr @_D5posix3sys7pthread24PTHREAD_COND_INITIALIZERyS5posix3sys7pthread14pthread_cond_t, align 8
store %S5posix3sys7pthread14pthread_cond_t %1, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
%S5posix3sys7pthread15pthread_mutex_t = type { i64, [56 x i8] }
%S5posix3sys7pthread14pthread_cond_t = type { i64, [40 x i8] }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@_D5posix3sys7pthread25PTHREAD_MUTEX_INITIALIZERyS5posix3sys7pthread15pthread_mutex_t = linkonce_odr constant %S5posix3sys7pthread15pthread_mutex_t zeroinitializer
@_D5posix3sys7pthread24PTHREAD_COND_INITIALIZERyS5posix3sys7pthread14pthread_cond_t = linkonce_odr constant %S5posix3sys7pthread14pthread_cond_t zeroinitializer
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
store i64 1, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
%S5posix3sys7pthread15pthread_mutex_t = type { i64, [56 x i8] }
%S5posix3sys7pthread14pthread_cond_t = type { i64, [40 x i8] }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@_D5posix3sys7pthread25PTHREAD_MUTEX_INITIALIZERyS5posix3sys7pthread15pthread_mutex_t = linkonce_odr constant %S5posix3sys7pthread15pthread_mutex_t zeroinitializer
@_D5posix3sys7pthread24PTHREAD_COND_INITIALIZERyS5posix3sys7pthread14pthread_cond_t = linkonce_odr constant %S5posix3sys7pthread14pthread_cond_t zeroinitializer
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
store i64 2, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
%S5posix3sys7pthread15pthread_mutex_t = type { i64, [56 x i8] }
%S5posix3sys7pthread14pthread_cond_t = type { i64, [40 x i8] }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@_D5posix3sys7pthread25PTHREAD_MUTEX_INITIALIZERyS5posix3sys7pthread15pthread_mutex_t = linkonce_odr constant %S5posix3sys7pthread15pthread_mutex_t zeroinitializer
@_D5posix3sys7pthread24PTHREAD_COND_INITIALIZERyS5posix3sys7pthread14pthread_cond_t = linkonce_odr constant %S5posix3sys7pthread14pthread_cond_t zeroinitializer
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
store i64 -4, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
%S5posix3sys7pthread15pthread_mutex_t = type { i64, [56 x i8] }
%S5posix3sys7pthread14pthread_cond_t = type { i64, [40 x i8] }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@_D5posix3sys7pthread25PTHREAD_MUTEX_INITIALIZERyS5posix3sys7pthread15pthread_mutex_t = linkonce_odr constant %S5posix3sys7pthread15pthread_mutex_t zeroinitializer
@_D5posix3sys7pthread24PTHREAD_COND_INITIALIZERyS5posix3sys7pthread14pthread_cond_t = linkonce_odr constant %S5posix3sys7pthread14pthread_cond_t zeroinitializer
@__ctBuf = global i32 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
store i32 1, ptr @__ctBuf, align 4
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
%S5posix3sys7pthread15pthread_mutex_t = type { i64, [56 x i8] }
%S5posix3sys7pthread14pthread_cond_t = type { i64, [40 x i8] }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@_D5posix3sys7pthread25PTHREAD_MUTEX_INITIALIZERyS5posix3sys7pthread15pthread_mutex_t = linkonce_odr constant %S5posix3sys7pthread15pthread_mutex_t zeroinitializer
@_D5posix3sys7pthread24PTHREAD_COND_INITIALIZERyS5posix3sys7pthread14pthread_cond_t = linkonce_odr constant %S5posix3sys7pthread14pthread_cond_t zeroinitializer
@__ctBuf = global i32 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
store i32 2, ptr @__ctBuf, align 4
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
%S5posix3sys7pthread15pthread_mutex_t = type { i64, [56 x i8] }
%S5posix3sys7pthread14pthread_cond_t = type { i64, [40 x i8] }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@_D5posix3sys7pthread25PTHREAD_MUTEX_INITIALIZERyS5posix3sys7pthread15pthread_mutex_t = linkonce_odr constant %S5posix3sys7pthread15pthread_mutex_t zeroinitializer
@_D5posix3sys7pthread24PTHREAD_COND_INITIALIZERyS5posix3sys7pthread14pthread_cond_t = linkonce_odr constant %S5posix3sys7pthread14pthread_cond_t zeroinitializer
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i32 @__ctfe() #0 {
ret i32 2
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
%S5posix3sys7pthread15pthread_mutex_t = type { i64, [56 x i8] }
%S5posix3sys7pthread14pthread_cond_t = type { i64, [40 x i8] }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@_D5posix3sys7pthread25PTHREAD_MUTEX_INITIALIZERyS5posix3sys7pthread15pthread_mutex_t = linkonce_odr constant %S5posix3sys7pthread15pthread_mutex_t zeroinitializer
@_D5posix3sys7pthread24PTHREAD_COND_INITIALIZERyS5posix3sys7pthread14pthread_cond_t = linkonce_odr constant %S5posix3sys7pthread14pthread_cond_t zeroinitializer
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i32 @__ctfe() #0 {
ret i32 1
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
%S5posix3sys7pthread15pthread_mutex_t = type { i64, [56 x i8] }
%S5posix3sys7pthread14pthread_cond_t = type { i64, [40 x i8] }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@_D5posix3sys7pthread25PTHREAD_MUTEX_INITIALIZERyS5posix3sys7pthread15pthread_mutex_t = linkonce_odr constant %S5posix3sys7pthread15pthread_mutex_t zeroinitializer
@_D5posix3sys7pthread24PTHREAD_COND_INITIALIZERyS5posix3sys7pthread14pthread_cond_t = linkonce_odr constant %S5posix3sys7pthread14pthread_cond_t zeroinitializer
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i1 @__ctfe() #0 {
ret i1 true
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
%S5posix3sys7pthread15pthread_mutex_t = type { i64, [56 x i8] }
%S5posix3sys7pthread14pthread_cond_t = type { i64, [40 x i8] }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@_D5posix3sys7pthread25PTHREAD_MUTEX_INITIALIZERyS5posix3sys7pthread15pthread_mutex_t = linkonce_odr constant %S5posix3sys7pthread15pthread_mutex_t zeroinitializer
@_D5posix3sys7pthread24PTHREAD_COND_INITIALIZERyS5posix3sys7pthread14pthread_cond_t = linkonce_odr constant %S5posix3sys7pthread14pthread_cond_t zeroinitializer
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i1 @__ctfe() #0 {
ret i1 true
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
%S5posix3sys7pthread15pthread_mutex_t = type { i64, [56 x i8] }
%S5posix3sys7pthread14pthread_cond_t = type { i64, [40 x i8] }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@_D5posix3sys7pthread25PTHREAD_MUTEX_INITIALIZERyS5posix3sys7pthread15pthread_mutex_t = linkonce_odr constant %S5posix3sys7pthread15pthread_mutex_t zeroinitializer
@_D5posix3sys7pthread24PTHREAD_COND_INITIALIZERyS5posix3sys7pthread14pthread_cond_t = linkonce_odr constant %S5posix3sys7pthread14pthread_cond_t zeroinitializer
@__ctBuf = global i64 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
store i64 16384, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
%S5posix3sys7pthread15pthread_mutex_t = type { i64, [56 x i8] }
%S5posix3sys7pthread14pthread_cond_t = type { i64, [40 x i8] }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@_D5posix3sys7pthread25PTHREAD_MUTEX_INITIALIZERyS5posix3sys7pthread15pthread_mutex_t = linkonce_odr constant %S5posix3sys7pthread15pthread_mutex_t zeroinitializer
@_D5posix3sys7pthread24PTHREAD_COND_INITIALIZERyS5posix3sys7pthread14pthread_cond_t = linkonce_odr constant %S5posix3sys7pthread14pthread_cond_t zeroinitializer
@__ctBuf = global i64 undef
@.str.1 = private unnamed_addr constant [12 x i8] c"d/gc/util.d\00"
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
%1 = call i64 @_D2gc1d4util7alignUpFMmmZm(i64 24, i64 8)
%2 = udiv i64 128, %1
store i64 %2, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
define linkonce_odr i64 @_D2gc1d4util7alignUpFMmmZm(i64 %arg.size, i64 %arg.alignment) #0 {
%size = alloca i64, align 8
store i64 %arg.size, ptr %size, align 8
%alignment = alloca i64, align 8
store i64 %arg.alignment, ptr %alignment, align 8
%ret = alloca i64, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %alignment, align 8
%2 = call i1 @_D2gc1d4util6isPow2TTmZ6isPow2FMmZb(i64 %1)
br i1 %2, label %assert.success, label %assert.fail
assert.fail: ; preds = %entry
call void @__sd_assert_fail({ i64, ptr } { i64 11, ptr @.str.1 }, i32 200)
unreachable
assert.success: ; preds = %entry
%3 = load i64, ptr %size, align 8
%4 = load i64, ptr %alignment, align 8
%5 = add i64 %3, %4
%6 = sub i64 %5, 1
%7 = load i64, ptr %alignment, align 8
%8 = xor i64 %7, -1
%9 = add i64 %8, 1
%10 = and i64 %6, %9
store i64 %10, ptr %ret, align 8
%11 = load i64, ptr %ret, align 8
%12 = load i64, ptr %size, align 8
%13 = icmp uge i64 %11, %12
br i1 %13, label %assert.success1, label %assert.fail2
assert.fail2: ; preds = %assert.success
call void @__sd_assert_fail({ i64, ptr } { i64 11, ptr @.str.1 }, i32 204)
unreachable
assert.success1: ; preds = %assert.success
%14 = load i64, ptr %ret, align 8
ret i64 %14
}
define linkonce_odr i1 @_D2gc1d4util6isPow2TTmZ6isPow2FMmZb(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = call i64 @llvm.ctpop.i64(i64 %1)
%3 = icmp eq i64 %2, 1
ret i1 %3
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctpop.i64(i64 %0) #1
; Function Attrs: noreturn
declare void @__sd_assert_fail({ i64, ptr } %0, i32 %1) #2
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
%S5posix3sys7pthread15pthread_mutex_t = type { i64, [56 x i8] }
%S5posix3sys7pthread14pthread_cond_t = type { i64, [40 x i8] }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@_D5posix3sys7pthread25PTHREAD_MUTEX_INITIALIZERyS5posix3sys7pthread15pthread_mutex_t = linkonce_odr constant %S5posix3sys7pthread15pthread_mutex_t zeroinitializer
@_D5posix3sys7pthread24PTHREAD_COND_INITIALIZERyS5posix3sys7pthread14pthread_cond_t = linkonce_odr constant %S5posix3sys7pthread14pthread_cond_t zeroinitializer
@.str.1 = private unnamed_addr constant [12 x i8] c"d/gc/util.d\00"
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define linkonce_odr i64 @_D2gc1d4util7alignUpFMmmZm(i64 %arg.size, i64 %arg.alignment) #0 {
%size = alloca i64, align 8
store i64 %arg.size, ptr %size, align 8
%alignment = alloca i64, align 8
store i64 %arg.alignment, ptr %alignment, align 8
%ret = alloca i64, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %alignment, align 8
%2 = call i1 @_D2gc1d4util6isPow2TTmZ6isPow2FMmZb(i64 %1)
br i1 %2, label %assert.success, label %assert.fail
assert.fail: ; preds = %entry
call void @__sd_assert_fail({ i64, ptr } { i64 11, ptr @.str.1 }, i32 200)
unreachable
assert.success: ; preds = %entry
%3 = load i64, ptr %size, align 8
%4 = load i64, ptr %alignment, align 8
%5 = add i64 %3, %4
%6 = sub i64 %5, 1
%7 = load i64, ptr %alignment, align 8
%8 = xor i64 %7, -1
%9 = add i64 %8, 1
%10 = and i64 %6, %9
store i64 %10, ptr %ret, align 8
%11 = load i64, ptr %ret, align 8
%12 = load i64, ptr %size, align 8
%13 = icmp uge i64 %11, %12
br i1 %13, label %assert.success1, label %assert.fail2
assert.fail2: ; preds = %assert.success
call void @__sd_assert_fail({ i64, ptr } { i64 11, ptr @.str.1 }, i32 204)
unreachable
assert.success1: ; preds = %assert.success
%14 = load i64, ptr %ret, align 8
ret i64 %14
}
define linkonce_odr i1 @_D2gc1d4util6isPow2TTmZ6isPow2FMmZb(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = call i64 @llvm.ctpop.i64(i64 %1)
%3 = icmp eq i64 %2, 1
ret i1 %3
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctpop.i64(i64 %0) #1
; Function Attrs: noreturn
declare void @__sd_assert_fail({ i64, ptr } %0, i32 %1) #2
define i1 @__ctfe() #0 {
ret i1 true
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
%S5posix3sys7pthread15pthread_mutex_t = type { i64, [56 x i8] }
%S5posix3sys7pthread14pthread_cond_t = type { i64, [40 x i8] }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@_D5posix3sys7pthread25PTHREAD_MUTEX_INITIALIZERyS5posix3sys7pthread15pthread_mutex_t = linkonce_odr constant %S5posix3sys7pthread15pthread_mutex_t zeroinitializer
@_D5posix3sys7pthread24PTHREAD_COND_INITIALIZERyS5posix3sys7pthread14pthread_cond_t = linkonce_odr constant %S5posix3sys7pthread14pthread_cond_t zeroinitializer
@.str.1 = private unnamed_addr constant [12 x i8] c"d/gc/util.d\00"
@__ctBuf = global i32 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define linkonce_odr i64 @_D2gc1d4util7alignUpFMmmZm(i64 %arg.size, i64 %arg.alignment) #0 {
%size = alloca i64, align 8
store i64 %arg.size, ptr %size, align 8
%alignment = alloca i64, align 8
store i64 %arg.alignment, ptr %alignment, align 8
%ret = alloca i64, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %alignment, align 8
%2 = call i1 @_D2gc1d4util6isPow2TTmZ6isPow2FMmZb(i64 %1)
br i1 %2, label %assert.success, label %assert.fail
assert.fail: ; preds = %entry
call void @__sd_assert_fail({ i64, ptr } { i64 11, ptr @.str.1 }, i32 200)
unreachable
assert.success: ; preds = %entry
%3 = load i64, ptr %size, align 8
%4 = load i64, ptr %alignment, align 8
%5 = add i64 %3, %4
%6 = sub i64 %5, 1
%7 = load i64, ptr %alignment, align 8
%8 = xor i64 %7, -1
%9 = add i64 %8, 1
%10 = and i64 %6, %9
store i64 %10, ptr %ret, align 8
%11 = load i64, ptr %ret, align 8
%12 = load i64, ptr %size, align 8
%13 = icmp uge i64 %11, %12
br i1 %13, label %assert.success1, label %assert.fail2
assert.fail2: ; preds = %assert.success
call void @__sd_assert_fail({ i64, ptr } { i64 11, ptr @.str.1 }, i32 204)
unreachable
assert.success1: ; preds = %assert.success
%14 = load i64, ptr %ret, align 8
ret i64 %14
}
define linkonce_odr i1 @_D2gc1d4util6isPow2TTmZ6isPow2FMmZb(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = call i64 @llvm.ctpop.i64(i64 %1)
%3 = icmp eq i64 %2, 1
ret i1 %3
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctpop.i64(i64 %0) #1
; Function Attrs: noreturn
declare void @__sd_assert_fail({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
store i32 512, ptr @__ctBuf, align 4
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
%S5posix3sys7pthread15pthread_mutex_t = type { i64, [56 x i8] }
%S5posix3sys7pthread14pthread_cond_t = type { i64, [40 x i8] }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@_D5posix3sys7pthread25PTHREAD_MUTEX_INITIALIZERyS5posix3sys7pthread15pthread_mutex_t = linkonce_odr constant %S5posix3sys7pthread15pthread_mutex_t zeroinitializer
@_D5posix3sys7pthread24PTHREAD_COND_INITIALIZERyS5posix3sys7pthread14pthread_cond_t = linkonce_odr constant %S5posix3sys7pthread14pthread_cond_t zeroinitializer
@.str.1 = private unnamed_addr constant [12 x i8] c"d/gc/util.d\00"
@__ctBuf = global i32 undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define linkonce_odr i64 @_D2gc1d4util7alignUpFMmmZm(i64 %arg.size, i64 %arg.alignment) #0 {
%size = alloca i64, align 8
store i64 %arg.size, ptr %size, align 8
%alignment = alloca i64, align 8
store i64 %arg.alignment, ptr %alignment, align 8
%ret = alloca i64, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %alignment, align 8
%2 = call i1 @_D2gc1d4util6isPow2TTmZ6isPow2FMmZb(i64 %1)
br i1 %2, label %assert.success, label %assert.fail
assert.fail: ; preds = %entry
call void @__sd_assert_fail({ i64, ptr } { i64 11, ptr @.str.1 }, i32 200)
unreachable
assert.success: ; preds = %entry
%3 = load i64, ptr %size, align 8
%4 = load i64, ptr %alignment, align 8
%5 = add i64 %3, %4
%6 = sub i64 %5, 1
%7 = load i64, ptr %alignment, align 8
%8 = xor i64 %7, -1
%9 = add i64 %8, 1
%10 = and i64 %6, %9
store i64 %10, ptr %ret, align 8
%11 = load i64, ptr %ret, align 8
%12 = load i64, ptr %size, align 8
%13 = icmp uge i64 %11, %12
br i1 %13, label %assert.success1, label %assert.fail2
assert.fail2: ; preds = %assert.success
call void @__sd_assert_fail({ i64, ptr } { i64 11, ptr @.str.1 }, i32 204)
unreachable
assert.success1: ; preds = %assert.success
%14 = load i64, ptr %ret, align 8
ret i64 %14
}
define linkonce_odr i1 @_D2gc1d4util6isPow2TTmZ6isPow2FMmZb(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = call i64 @llvm.ctpop.i64(i64 %1)
%3 = icmp eq i64 %2, 1
ret i1 %3
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctpop.i64(i64 %0) #1
; Function Attrs: noreturn
declare void @__sd_assert_fail({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
store i32 512, ptr @__ctBuf, align 4
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
%S5posix3sys7pthread15pthread_mutex_t = type { i64, [56 x i8] }
%S5posix3sys7pthread14pthread_cond_t = type { i64, [40 x i8] }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@_D5posix3sys7pthread25PTHREAD_MUTEX_INITIALIZERyS5posix3sys7pthread15pthread_mutex_t = linkonce_odr constant %S5posix3sys7pthread15pthread_mutex_t zeroinitializer
@_D5posix3sys7pthread24PTHREAD_COND_INITIALIZERyS5posix3sys7pthread14pthread_cond_t = linkonce_odr constant %S5posix3sys7pthread14pthread_cond_t zeroinitializer
@.str.1 = private unnamed_addr constant [12 x i8] c"d/gc/util.d\00"
@__ctBuf = global { i64, ptr } undef
@.str.2 = private unnamed_addr constant [7 x i8] c"phnode\00"
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define linkonce_odr i64 @_D2gc1d4util7alignUpFMmmZm(i64 %arg.size, i64 %arg.alignment) #0 {
%size = alloca i64, align 8
store i64 %arg.size, ptr %size, align 8
%alignment = alloca i64, align 8
store i64 %arg.alignment, ptr %alignment, align 8
%ret = alloca i64, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %alignment, align 8
%2 = call i1 @_D2gc1d4util6isPow2TTmZ6isPow2FMmZb(i64 %1)
br i1 %2, label %assert.success, label %assert.fail
assert.fail: ; preds = %entry
call void @__sd_assert_fail({ i64, ptr } { i64 11, ptr @.str.1 }, i32 200)
unreachable
assert.success: ; preds = %entry
%3 = load i64, ptr %size, align 8
%4 = load i64, ptr %alignment, align 8
%5 = add i64 %3, %4
%6 = sub i64 %5, 1
%7 = load i64, ptr %alignment, align 8
%8 = xor i64 %7, -1
%9 = add i64 %8, 1
%10 = and i64 %6, %9
store i64 %10, ptr %ret, align 8
%11 = load i64, ptr %ret, align 8
%12 = load i64, ptr %size, align 8
%13 = icmp uge i64 %11, %12
br i1 %13, label %assert.success1, label %assert.fail2
assert.fail2: ; preds = %assert.success
call void @__sd_assert_fail({ i64, ptr } { i64 11, ptr @.str.1 }, i32 204)
unreachable
assert.success1: ; preds = %assert.success
%14 = load i64, ptr %ret, align 8
ret i64 %14
}
define linkonce_odr i1 @_D2gc1d4util6isPow2TTmZ6isPow2FMmZb(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = call i64 @llvm.ctpop.i64(i64 %1)
%3 = icmp eq i64 %2, 1
ret i1 %3
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctpop.i64(i64 %0) #1
; Function Attrs: noreturn
declare void @__sd_assert_fail({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
store { i64, ptr } { i64 6, ptr @.str.2 }, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
%S5posix3sys7pthread15pthread_mutex_t = type { i64, [56 x i8] }
%S5posix3sys7pthread14pthread_cond_t = type { i64, [40 x i8] }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@_D5posix3sys7pthread25PTHREAD_MUTEX_INITIALIZERyS5posix3sys7pthread15pthread_mutex_t = linkonce_odr constant %S5posix3sys7pthread15pthread_mutex_t zeroinitializer
@_D5posix3sys7pthread24PTHREAD_COND_INITIALIZERyS5posix3sys7pthread14pthread_cond_t = linkonce_odr constant %S5posix3sys7pthread14pthread_cond_t zeroinitializer
@.str.1 = private unnamed_addr constant [12 x i8] c"d/gc/util.d\00"
@.str.2 = private unnamed_addr constant [7 x i8] c"phnode\00"
@__ctBuf = global { i64, ptr } undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define linkonce_odr i64 @_D2gc1d4util7alignUpFMmmZm(i64 %arg.size, i64 %arg.alignment) #0 {
%size = alloca i64, align 8
store i64 %arg.size, ptr %size, align 8
%alignment = alloca i64, align 8
store i64 %arg.alignment, ptr %alignment, align 8
%ret = alloca i64, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %alignment, align 8
%2 = call i1 @_D2gc1d4util6isPow2TTmZ6isPow2FMmZb(i64 %1)
br i1 %2, label %assert.success, label %assert.fail
assert.fail: ; preds = %entry
call void @__sd_assert_fail({ i64, ptr } { i64 11, ptr @.str.1 }, i32 200)
unreachable
assert.success: ; preds = %entry
%3 = load i64, ptr %size, align 8
%4 = load i64, ptr %alignment, align 8
%5 = add i64 %3, %4
%6 = sub i64 %5, 1
%7 = load i64, ptr %alignment, align 8
%8 = xor i64 %7, -1
%9 = add i64 %8, 1
%10 = and i64 %6, %9
store i64 %10, ptr %ret, align 8
%11 = load i64, ptr %ret, align 8
%12 = load i64, ptr %size, align 8
%13 = icmp uge i64 %11, %12
br i1 %13, label %assert.success1, label %assert.fail2
assert.fail2: ; preds = %assert.success
call void @__sd_assert_fail({ i64, ptr } { i64 11, ptr @.str.1 }, i32 204)
unreachable
assert.success1: ; preds = %assert.success
%14 = load i64, ptr %ret, align 8
ret i64 %14
}
define linkonce_odr i1 @_D2gc1d4util6isPow2TTmZ6isPow2FMmZb(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = call i64 @llvm.ctpop.i64(i64 %1)
%3 = icmp eq i64 %2, 1
ret i1 %3
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctpop.i64(i64 %0) #1
; Function Attrs: noreturn
declare void @__sd_assert_fail({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
store { i64, ptr } { i64 6, ptr @.str.2 }, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
%S5posix3sys7pthread15pthread_mutex_t = type { i64, [56 x i8] }
%S5posix3sys7pthread14pthread_cond_t = type { i64, [40 x i8] }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@_D5posix3sys7pthread25PTHREAD_MUTEX_INITIALIZERyS5posix3sys7pthread15pthread_mutex_t = linkonce_odr constant %S5posix3sys7pthread15pthread_mutex_t zeroinitializer
@_D5posix3sys7pthread24PTHREAD_COND_INITIALIZERyS5posix3sys7pthread14pthread_cond_t = linkonce_odr constant %S5posix3sys7pthread14pthread_cond_t zeroinitializer
@.str.1 = private unnamed_addr constant [12 x i8] c"d/gc/util.d\00"
@.str.2 = private unnamed_addr constant [7 x i8] c"phnode\00"
@__ctBuf = global { i64, ptr } undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define linkonce_odr i64 @_D2gc1d4util7alignUpFMmmZm(i64 %arg.size, i64 %arg.alignment) #0 {
%size = alloca i64, align 8
store i64 %arg.size, ptr %size, align 8
%alignment = alloca i64, align 8
store i64 %arg.alignment, ptr %alignment, align 8
%ret = alloca i64, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %alignment, align 8
%2 = call i1 @_D2gc1d4util6isPow2TTmZ6isPow2FMmZb(i64 %1)
br i1 %2, label %assert.success, label %assert.fail
assert.fail: ; preds = %entry
call void @__sd_assert_fail({ i64, ptr } { i64 11, ptr @.str.1 }, i32 200)
unreachable
assert.success: ; preds = %entry
%3 = load i64, ptr %size, align 8
%4 = load i64, ptr %alignment, align 8
%5 = add i64 %3, %4
%6 = sub i64 %5, 1
%7 = load i64, ptr %alignment, align 8
%8 = xor i64 %7, -1
%9 = add i64 %8, 1
%10 = and i64 %6, %9
store i64 %10, ptr %ret, align 8
%11 = load i64, ptr %ret, align 8
%12 = load i64, ptr %size, align 8
%13 = icmp uge i64 %11, %12
br i1 %13, label %assert.success1, label %assert.fail2
assert.fail2: ; preds = %assert.success
call void @__sd_assert_fail({ i64, ptr } { i64 11, ptr @.str.1 }, i32 204)
unreachable
assert.success1: ; preds = %assert.success
%14 = load i64, ptr %ret, align 8
ret i64 %14
}
define linkonce_odr i1 @_D2gc1d4util6isPow2TTmZ6isPow2FMmZb(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = call i64 @llvm.ctpop.i64(i64 %1)
%3 = icmp eq i64 %2, 1
ret i1 %3
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctpop.i64(i64 %0) #1
; Function Attrs: noreturn
declare void @__sd_assert_fail({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
store { i64, ptr } { i64 6, ptr @.str.2 }, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
%S5posix3sys7pthread15pthread_mutex_t = type { i64, [56 x i8] }
%S5posix3sys7pthread14pthread_cond_t = type { i64, [40 x i8] }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@_D5posix3sys7pthread25PTHREAD_MUTEX_INITIALIZERyS5posix3sys7pthread15pthread_mutex_t = linkonce_odr constant %S5posix3sys7pthread15pthread_mutex_t zeroinitializer
@_D5posix3sys7pthread24PTHREAD_COND_INITIALIZERyS5posix3sys7pthread14pthread_cond_t = linkonce_odr constant %S5posix3sys7pthread14pthread_cond_t zeroinitializer
@.str.1 = private unnamed_addr constant [12 x i8] c"d/gc/util.d\00"
@.str.2 = private unnamed_addr constant [7 x i8] c"phnode\00"
@__ctBuf = global { i64, ptr } undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define linkonce_odr i64 @_D2gc1d4util7alignUpFMmmZm(i64 %arg.size, i64 %arg.alignment) #0 {
%size = alloca i64, align 8
store i64 %arg.size, ptr %size, align 8
%alignment = alloca i64, align 8
store i64 %arg.alignment, ptr %alignment, align 8
%ret = alloca i64, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %alignment, align 8
%2 = call i1 @_D2gc1d4util6isPow2TTmZ6isPow2FMmZb(i64 %1)
br i1 %2, label %assert.success, label %assert.fail
assert.fail: ; preds = %entry
call void @__sd_assert_fail({ i64, ptr } { i64 11, ptr @.str.1 }, i32 200)
unreachable
assert.success: ; preds = %entry
%3 = load i64, ptr %size, align 8
%4 = load i64, ptr %alignment, align 8
%5 = add i64 %3, %4
%6 = sub i64 %5, 1
%7 = load i64, ptr %alignment, align 8
%8 = xor i64 %7, -1
%9 = add i64 %8, 1
%10 = and i64 %6, %9
store i64 %10, ptr %ret, align 8
%11 = load i64, ptr %ret, align 8
%12 = load i64, ptr %size, align 8
%13 = icmp uge i64 %11, %12
br i1 %13, label %assert.success1, label %assert.fail2
assert.fail2: ; preds = %assert.success
call void @__sd_assert_fail({ i64, ptr } { i64 11, ptr @.str.1 }, i32 204)
unreachable
assert.success1: ; preds = %assert.success
%14 = load i64, ptr %ret, align 8
ret i64 %14
}
define linkonce_odr i1 @_D2gc1d4util6isPow2TTmZ6isPow2FMmZb(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = call i64 @llvm.ctpop.i64(i64 %1)
%3 = icmp eq i64 %2, 1
ret i1 %3
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctpop.i64(i64 %0) #1
; Function Attrs: noreturn
declare void @__sd_assert_fail({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
store { i64, ptr } { i64 6, ptr @.str.2 }, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
%S5posix3sys7pthread15pthread_mutex_t = type { i64, [56 x i8] }
%S5posix3sys7pthread14pthread_cond_t = type { i64, [40 x i8] }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@_D5posix3sys7pthread25PTHREAD_MUTEX_INITIALIZERyS5posix3sys7pthread15pthread_mutex_t = linkonce_odr constant %S5posix3sys7pthread15pthread_mutex_t zeroinitializer
@_D5posix3sys7pthread24PTHREAD_COND_INITIALIZERyS5posix3sys7pthread14pthread_cond_t = linkonce_odr constant %S5posix3sys7pthread14pthread_cond_t zeroinitializer
@.str.1 = private unnamed_addr constant [12 x i8] c"d/gc/util.d\00"
@.str.2 = private unnamed_addr constant [7 x i8] c"phnode\00"
@__ctBuf = global { i64, ptr } undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define linkonce_odr i64 @_D2gc1d4util7alignUpFMmmZm(i64 %arg.size, i64 %arg.alignment) #0 {
%size = alloca i64, align 8
store i64 %arg.size, ptr %size, align 8
%alignment = alloca i64, align 8
store i64 %arg.alignment, ptr %alignment, align 8
%ret = alloca i64, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %alignment, align 8
%2 = call i1 @_D2gc1d4util6isPow2TTmZ6isPow2FMmZb(i64 %1)
br i1 %2, label %assert.success, label %assert.fail
assert.fail: ; preds = %entry
call void @__sd_assert_fail({ i64, ptr } { i64 11, ptr @.str.1 }, i32 200)
unreachable
assert.success: ; preds = %entry
%3 = load i64, ptr %size, align 8
%4 = load i64, ptr %alignment, align 8
%5 = add i64 %3, %4
%6 = sub i64 %5, 1
%7 = load i64, ptr %alignment, align 8
%8 = xor i64 %7, -1
%9 = add i64 %8, 1
%10 = and i64 %6, %9
store i64 %10, ptr %ret, align 8
%11 = load i64, ptr %ret, align 8
%12 = load i64, ptr %size, align 8
%13 = icmp uge i64 %11, %12
br i1 %13, label %assert.success1, label %assert.fail2
assert.fail2: ; preds = %assert.success
call void @__sd_assert_fail({ i64, ptr } { i64 11, ptr @.str.1 }, i32 204)
unreachable
assert.success1: ; preds = %assert.success
%14 = load i64, ptr %ret, align 8
ret i64 %14
}
define linkonce_odr i1 @_D2gc1d4util6isPow2TTmZ6isPow2FMmZb(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = call i64 @llvm.ctpop.i64(i64 %1)
%3 = icmp eq i64 %2, 1
ret i1 %3
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctpop.i64(i64 %0) #1
; Function Attrs: noreturn
declare void @__sd_assert_fail({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
store { i64, ptr } { i64 6, ptr @.str.2 }, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
%S5posix3sys7pthread15pthread_mutex_t = type { i64, [56 x i8] }
%S5posix3sys7pthread14pthread_cond_t = type { i64, [40 x i8] }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@_D5posix3sys7pthread25PTHREAD_MUTEX_INITIALIZERyS5posix3sys7pthread15pthread_mutex_t = linkonce_odr constant %S5posix3sys7pthread15pthread_mutex_t zeroinitializer
@_D5posix3sys7pthread24PTHREAD_COND_INITIALIZERyS5posix3sys7pthread14pthread_cond_t = linkonce_odr constant %S5posix3sys7pthread14pthread_cond_t zeroinitializer
@.str.1 = private unnamed_addr constant [12 x i8] c"d/gc/util.d\00"
@.str.2 = private unnamed_addr constant [7 x i8] c"phnode\00"
@__ctBuf = global { i64, ptr } undef
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define linkonce_odr i64 @_D2gc1d4util7alignUpFMmmZm(i64 %arg.size, i64 %arg.alignment) #0 {
%size = alloca i64, align 8
store i64 %arg.size, ptr %size, align 8
%alignment = alloca i64, align 8
store i64 %arg.alignment, ptr %alignment, align 8
%ret = alloca i64, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %alignment, align 8
%2 = call i1 @_D2gc1d4util6isPow2TTmZ6isPow2FMmZb(i64 %1)
br i1 %2, label %assert.success, label %assert.fail
assert.fail: ; preds = %entry
call void @__sd_assert_fail({ i64, ptr } { i64 11, ptr @.str.1 }, i32 200)
unreachable
assert.success: ; preds = %entry
%3 = load i64, ptr %size, align 8
%4 = load i64, ptr %alignment, align 8
%5 = add i64 %3, %4
%6 = sub i64 %5, 1
%7 = load i64, ptr %alignment, align 8
%8 = xor i64 %7, -1
%9 = add i64 %8, 1
%10 = and i64 %6, %9
store i64 %10, ptr %ret, align 8
%11 = load i64, ptr %ret, align 8
%12 = load i64, ptr %size, align 8
%13 = icmp uge i64 %11, %12
br i1 %13, label %assert.success1, label %assert.fail2
assert.fail2: ; preds = %assert.success
call void @__sd_assert_fail({ i64, ptr } { i64 11, ptr @.str.1 }, i32 204)
unreachable
assert.success1: ; preds = %assert.success
%14 = load i64, ptr %ret, align 8
ret i64 %14
}
define linkonce_odr i1 @_D2gc1d4util6isPow2TTmZ6isPow2FMmZb(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = call i64 @llvm.ctpop.i64(i64 %1)
%3 = icmp eq i64 %2, 1
ret i1 %3
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctpop.i64(i64 %0) #1
; Function Attrs: noreturn
declare void @__sd_assert_fail({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
store { i64, ptr } { i64 6, ptr @.str.2 }, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
; ModuleID = 'sdlib/d/gc/allocclass.d'
source_filename = "sdlib/d/gc/allocclass.d"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
%S2gc1d5rtree5Level = type { i32, i32 }
%S5posix3sys7pthread15pthread_mutex_t = type { i64, [56 x i8] }
%S5posix3sys7pthread14pthread_cond_t = type { i64, [40 x i8] }
@_D2gc1d5rtree6LevelsyG2yS2gc1d5rtree5Level = linkonce_odr constant [2 x %S2gc1d5rtree5Level] [%S2gc1d5rtree5Level { i32 18, i32 30 }, %S2gc1d5rtree5Level { i32 18, i32 12 }]
@.str = private unnamed_addr constant [13 x i8] c"d/gc/rtree.d\00"
@_D5posix3sys7pthread25PTHREAD_MUTEX_INITIALIZERyS5posix3sys7pthread15pthread_mutex_t = linkonce_odr constant %S5posix3sys7pthread15pthread_mutex_t zeroinitializer
@_D5posix3sys7pthread24PTHREAD_COND_INITIALIZERyS5posix3sys7pthread14pthread_cond_t = linkonce_odr constant %S5posix3sys7pthread14pthread_cond_t zeroinitializer
@.str.1 = private unnamed_addr constant [12 x i8] c"d/gc/util.d\00"
@.str.2 = private unnamed_addr constant [7 x i8] c"phnode\00"
@__ctBuf = global { i64, ptr } undef
@.str.3 = private unnamed_addr constant [9 x i8] c"object.d\00"
@.str.4 = private unnamed_addr constant [10 x i8] c"return n.\00"
@.str.5 = private unnamed_addr constant [2 x i8] c";\00"
define linkonce_odr i8 @_D2gc1d4util9log2floorTTmZ9log2floorFMmZh(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = icmp eq i64 %1, 0
br i1 %2, label %then, label %endif
then: ; preds = %entry
ret i8 0
endif: ; preds = %entry
%3 = load i64, ptr %x, align 8
%4 = call i64 @llvm.ctlz.i64(i64 %3, i1 false)
%5 = sub i64 64, %4
%6 = sub i64 %5, 1
%7 = trunc i64 %6 to i8
ret i8 %7
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctlz.i64(i64 %0, i1 immarg %1) #1
define linkonce_odr %S2gc1d5rtree5Level @_D2gc1d5rtree5Level6__ctorFMS2gc1d5rtree5LevelkkZS2gc1d5rtree5Level(%S2gc1d5rtree5Level %arg.this, i32 %arg.bits, i32 %arg.shift) #0 {
%this = alloca %S2gc1d5rtree5Level, align 8
store %S2gc1d5rtree5Level %arg.this, ptr %this, align 4
%bits = alloca i32, align 4
store i32 %arg.bits, ptr %bits, align 4
%shift = alloca i32, align 4
store i32 %arg.shift, ptr %shift, align 4
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 0
%2 = load i32, ptr %bits, align 4
store i32 %2, ptr %1, align 4
%3 = getelementptr inbounds %S2gc1d5rtree5Level, ptr %this, i32 0, i32 1
%4 = load i32, ptr %shift, align 4
store i32 %4, ptr %3, align 4
%5 = load %S2gc1d5rtree5Level, ptr %this, align 4
ret %S2gc1d5rtree5Level %5
}
; Function Attrs: noreturn
declare void @__sd_array_outofbounds({ i64, ptr } %0, i32 %1) #2
define linkonce_odr i64 @_D2gc1d4util7alignUpFMmmZm(i64 %arg.size, i64 %arg.alignment) #0 {
%size = alloca i64, align 8
store i64 %arg.size, ptr %size, align 8
%alignment = alloca i64, align 8
store i64 %arg.alignment, ptr %alignment, align 8
%ret = alloca i64, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %alignment, align 8
%2 = call i1 @_D2gc1d4util6isPow2TTmZ6isPow2FMmZb(i64 %1)
br i1 %2, label %assert.success, label %assert.fail
assert.fail: ; preds = %entry
call void @__sd_assert_fail({ i64, ptr } { i64 11, ptr @.str.1 }, i32 200)
unreachable
assert.success: ; preds = %entry
%3 = load i64, ptr %size, align 8
%4 = load i64, ptr %alignment, align 8
%5 = add i64 %3, %4
%6 = sub i64 %5, 1
%7 = load i64, ptr %alignment, align 8
%8 = xor i64 %7, -1
%9 = add i64 %8, 1
%10 = and i64 %6, %9
store i64 %10, ptr %ret, align 8
%11 = load i64, ptr %ret, align 8
%12 = load i64, ptr %size, align 8
%13 = icmp uge i64 %11, %12
br i1 %13, label %assert.success1, label %assert.fail2
assert.fail2: ; preds = %assert.success
call void @__sd_assert_fail({ i64, ptr } { i64 11, ptr @.str.1 }, i32 204)
unreachable
assert.success1: ; preds = %assert.success
%14 = load i64, ptr %ret, align 8
ret i64 %14
}
define linkonce_odr i1 @_D2gc1d4util6isPow2TTmZ6isPow2FMmZb(i64 %arg.x) #0 {
%x = alloca i64, align 8
store i64 %arg.x, ptr %x, align 8
br label %entry
entry: ; preds = %0
%1 = load i64, ptr %x, align 8
%2 = call i64 @llvm.ctpop.i64(i64 %1)
%3 = icmp eq i64 %2, 1
ret i1 %3
}
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.ctpop.i64(i64 %0) #1
; Function Attrs: noreturn
declare void @__sd_assert_fail({ i64, ptr } %0, i32 %1) #2
define i64 @__ctfe() #0 {
%1 = call { i64, ptr } @_D6object17__sd_array_concatTTyAyaTyaZ17__sd_array_concatFMyAyayAyaZAya({ i64, ptr } { i64 9, ptr @.str.4 }, { i64, ptr } { i64 6, ptr @.str.2 })
%2 = call { i64, ptr } @_D6object17__sd_array_concatTTAyaTyaZ17__sd_array_concatFMAyaAyaZAya({ i64, ptr } %1, { i64, ptr } { i64 1, ptr @.str.5 })
store { i64, ptr } %2, ptr @__ctBuf, align 8
ret i64 ptrtoint (ptr @__ctBuf to i64)
}
define linkonce_odr { i64, ptr } @_D6object17__sd_array_concatTTAyaTyaZ17__sd_array_concatFMAyaAyaZAya({ i64, ptr } %arg.lhs, { i64, ptr } %arg.rhs) #0 {
%lhs = alloca { i64, ptr }, align 8
store { i64, ptr } %arg.lhs, ptr %lhs, align 8
%rhs = alloca { i64, ptr }, align 8
store { i64, ptr } %arg.rhs, ptr %rhs, align 8
%length = alloca i64, align 8
%ptr = alloca ptr, align 8
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds { i64, ptr }, ptr %lhs, i32 0, i32 0
%2 = load i64, ptr %1, align 8
%3 = getelementptr inbounds { i64, ptr }, ptr %rhs, i32 0, i32 0
%4 = load i64, ptr %3, align 8
%5 = add i64 %2, %4
store i64 %5, ptr %length, align 8
%6 = load i64, ptr %length, align 8
%7 = mul i64 %6, 1
%8 = call ptr @__sd_gc_array_alloc(i64 %7)
store ptr %8, ptr %ptr, align 8
%9 = load ptr, ptr %ptr, align 8
%10 = getelementptr inbounds { i64, ptr }, ptr %lhs, i32 0, i32 1
%11 = load ptr, ptr %10, align 8
%12 = getelementptr inbounds { i64, ptr }, ptr %lhs, i32 0, i32 0
%13 = load i64, ptr %12, align 8
%14 = mul i64 %13, 1
%15 = call ptr @memcpy(ptr %9, ptr %11, i64 %14)
%16 = load ptr, ptr %ptr, align 8
%17 = getelementptr inbounds { i64, ptr }, ptr %lhs, i32 0, i32 0
%18 = load i64, ptr %17, align 8
%19 = getelementptr inbounds i8, ptr %16, i64 %18
%20 = getelementptr inbounds { i64, ptr }, ptr %rhs, i32 0, i32 1
%21 = load ptr, ptr %20, align 8
%22 = getelementptr inbounds { i64, ptr }, ptr %rhs, i32 0, i32 0
%23 = load i64, ptr %22, align 8
%24 = mul i64 %23, 1
%25 = call ptr @memcpy(ptr %19, ptr %21, i64 %24)
%26 = load ptr, ptr %ptr, align 8
%27 = load i64, ptr %length, align 8
%28 = icmp ule i64 0, %27
br i1 %28, label %bound_ok, label %bound_fail, !prof !0
bound_fail: ; preds = %entry
call void @__sd_array_outofbounds({ i64, ptr } { i64 8, ptr @.str.3 }, i32 60)
unreachable
bound_ok: ; preds = %entry
%29 = sub i64 %27, 0
%30 = insertvalue { i64, ptr } undef, i64 %29, 0
%31 = getelementptr inbounds i8, ptr %26, i64 0
%32 = insertvalue { i64, ptr } %30, ptr %31, 1
ret { i64, ptr } %32
}
declare ptr @__sd_gc_array_alloc(i64 %0) #0
declare ptr @memcpy(ptr %0, ptr %1, i64 %2) #0
define linkonce_odr { i64, ptr } @_D6object17__sd_array_concatTTyAyaTyaZ17__sd_array_concatFMyAyayAyaZAya({ i64, ptr } %arg.lhs, { i64, ptr } %arg.rhs) #0 {
%lhs = alloca { i64, ptr }, align 8
store { i64, ptr } %arg.lhs, ptr %lhs, align 8
%rhs = alloca { i64, ptr }, align 8
store { i64, ptr } %arg.rhs, ptr %rhs, align 8
%length = alloca i64, align 8
%ptr = alloca ptr, align 8
br label %entry
entry: ; preds = %0
%1 = getelementptr inbounds { i64, ptr }, ptr %lhs, i32 0, i32 0
%2 = load i64, ptr %1, align 8
%3 = getelementptr inbounds { i64, ptr }, ptr %rhs, i32 0, i32 0
%4 = load i64, ptr %3, align 8
%5 = add i64 %2, %4
store i64 %5, ptr %length, align 8
%6 = load i64, ptr %length, align 8
%7 = mul i64 %6, 1
%8 = call ptr @__sd_gc_array_alloc(i64 %7)
store ptr %8, ptr %ptr, align 8
%9 = load ptr, ptr %ptr, align 8
%10 = getelementptr inbounds { i64, ptr }, ptr %lhs, i32 0, i32 1
%11 = load ptr, ptr %10, align 8
%12 = getelementptr inbounds { i64, ptr }, ptr %lhs, i32 0, i32 0
%13 = load i64, ptr %12, align 8
%14 = mul i64 %13, 1
%15 = call ptr @memcpy(ptr %9, ptr %11, i64 %14)
%16 = load ptr, ptr %ptr, align 8
%17 = getelementptr inbounds { i64, ptr }, ptr %lhs, i32 0, i32 0
%18 = load i64, ptr %17, align 8
%19 = getelementptr inbounds i8, ptr %16, i64 %18
%20 = getelementptr inbounds { i64, ptr }, ptr %rhs, i32 0, i32 1
%21 = load ptr, ptr %20, align 8
%22 = getelementptr inbounds { i64, ptr }, ptr %rhs, i32 0, i32 0
%23 = load i64, ptr %22, align 8
%24 = mul i64 %23, 1
%25 = call ptr @memcpy(ptr %19, ptr %21, i64 %24)
%26 = load ptr, ptr %ptr, align 8
%27 = load i64, ptr %length, align 8
%28 = icmp ule i64 0, %27
br i1 %28, label %bound_ok, label %bound_fail, !prof !0
bound_fail: ; preds = %entry
call void @__sd_array_outofbounds({ i64, ptr } { i64 8, ptr @.str.3 }, i32 60)
unreachable
bound_ok: ; preds = %entry
%29 = sub i64 %27, 0
%30 = insertvalue { i64, ptr } undef, i64 %29, 0
%31 = getelementptr inbounds i8, ptr %26, i64 0
%32 = insertvalue { i64, ptr } %30, ptr %31, 1
ret { i64, ptr } %32
}
attributes #0 = { "frame-pointer"="none" }
attributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn "frame-pointer"="none" }
attributes #2 = { noreturn "frame-pointer"="none" }
!0 = !{!"branch_weights", i32 65536, i32 0}
make: *** [obj/sdlib/gc.o] Segmentation fault: 11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment