Update tests for LLVM 19

This commit is contained in:
Christoffer Lerno
2024-06-11 00:27:58 +02:00
parent 407dec0238
commit 43c11118ec
5 changed files with 47 additions and 47 deletions

View File

@@ -26,10 +26,10 @@ fn void main() {
@test.c = local_unnamed_addr global i32 0, align 4 @test.c = local_unnamed_addr global i32 0, align 4
@test.d = local_unnamed_addr global i32 0, align 4 @test.d = local_unnamed_addr global i32 0, align 4
@test.abc = local_unnamed_addr global [3 x i32] zeroinitializer, align 4 @test.abc = local_unnamed_addr global [3 x i32] zeroinitializer, align 4
@test.b = local_unnamed_addr global ptr getelementptr (i8, ptr @test.a, i64 28), align 8 @test.b = local_unnamed_addr global ptr getelementptr
@test.bf = local_unnamed_addr global ptr getelementptr (i8, ptr @test.abc, i64 16), align 8 @test.bf = local_unnamed_addr global ptr getelementptr
@test.bf2 = local_unnamed_addr global ptr getelementptr inbounds (i8, ptr @test.abc, i64 8), align 8 @test.bf2 = local_unnamed_addr global ptr getelementptr inbounds (i8, ptr @test.abc, i64 8), align 8
@test.bf3 = local_unnamed_addr global ptr getelementptr (i8, ptr @test.abc, i64 16), align 8 @test.bf3 = local_unnamed_addr global ptr getelementptr
@.taddr.9 = private global i32 42, align 4 @.taddr.9 = private global i32 42, align 4
@.taddr.10 = private global i8 99, align 1 @.taddr.10 = private global i8 99, align 1
@.taddr.11 = private global %"char[]" { ptr @.str, i64 3 }, align 8 @.taddr.11 = private global %"char[]" { ptr @.str, i64 3 }, align 8
@@ -43,7 +43,7 @@ entry:
%taddr = alloca i32, align 4 %taddr = alloca i32, align 4
%taddr1 = alloca i8, align 1 %taddr1 = alloca i8, align 1
%taddr3 = alloca %"char[]", align 8 %taddr3 = alloca %"char[]", align 8
store ptr getelementptr (i8, ptr @test.abc, i64 28), ptr %bf34, align 8 store ptr getelementptr (i8, ptr
store i32 42, ptr %taddr, align 4 store i32 42, ptr %taddr, align 4
%0 = insertvalue %any undef, ptr %taddr, 0 %0 = insertvalue %any undef, ptr %taddr, 0
%1 = insertvalue %any %0, i64 ptrtoint (ptr @"$ct.int" to i64), 1 %1 = insertvalue %any %0, i64 ptrtoint (ptr @"$ct.int" to i64), 1

View File

@@ -40,14 +40,14 @@ entry:
%value6 = alloca i32, align 4 %value6 = alloca i32, align 4
%varargslots = alloca [1 x %any], align 16 %varargslots = alloca [1 x %any], align 16
%retparam = alloca i64, align 8 %retparam = alloca i64, align 8
call void @llvm.dbg.declare(metadata ptr %a, metadata !10, metadata !DIExpression()), !dbg !12 !12
store i32 111, ptr %a, align 4, !dbg !13 store i32 111, ptr %a, align 4, !dbg !13
call void @llvm.dbg.declare(metadata ptr %x, metadata !14, metadata !DIExpression()), !dbg !15 !15
store ptr %a, ptr %x1, align 8 store ptr %a, ptr %x1, align 8
%0 = load ptr, ptr %x1, align 8, !dbg !16 %0 = load ptr, ptr %x1, align 8, !dbg !16
%1 = load atomic i32, ptr %0 seq_cst, align 4, !dbg !16 %1 = load atomic i32, ptr %0 seq_cst, align 4, !dbg !16
store i32 %1, ptr %x, align 4, !dbg !16 store i32 %1, ptr %x, align 4, !dbg !16
call void @llvm.dbg.declare(metadata ptr %y, metadata !20, metadata !DIExpression()), !dbg !21 !21
store ptr %a, ptr %x2, align 8 store ptr %a, ptr %x2, align 8
%2 = load ptr, ptr %x2, align 8, !dbg !22 %2 = load ptr, ptr %x2, align 8, !dbg !22
%3 = load atomic volatile i32, ptr %2 monotonic, align 4, !dbg !22 %3 = load atomic volatile i32, ptr %2 monotonic, align 4, !dbg !22
@@ -80,9 +80,9 @@ entry:
%.anon2 = alloca i32, align 4 %.anon2 = alloca i32, align 4
%.anon3 = alloca ptr, align 8 %.anon3 = alloca ptr, align 8
store i32 %0, ptr %.anon, align 4 store i32 %0, ptr %.anon, align 4
call void @llvm.dbg.declare(metadata ptr %.anon, metadata !43, metadata !DIExpression()), !dbg !44 !44
store ptr %1, ptr %.anon1, align 8 store ptr %1, ptr %.anon1, align 8
call void @llvm.dbg.declare(metadata ptr %.anon1, metadata !45, metadata !DIExpression()), !dbg !44 !44
%2 = load i32, ptr %.anon, align 4 %2 = load i32, ptr %.anon, align 4
store i32 %2, ptr %.anon2, align 4 store i32 %2, ptr %.anon2, align 4
%3 = load ptr, ptr %.anon1, align 8 %3 = load ptr, ptr %.anon1, align 8
@@ -90,16 +90,14 @@ entry:
call void @test.main(), !dbg !46 call void @test.main(), !dbg !46
ret i32 0, !dbg !49 ret i32 0, !dbg !49
} }
e
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs:
declare i64 @std.io.printfn(ptr, ptr, i64, ptr, i64) #0 declare i64 @std.io.printfn(ptr, ptr, i64, ptr, i64) #0
declare i1 @llvm.expect.i1(i1, i1) #2 declare i1 @llvm.expect.i1(i1, i1)
!llvm.module.flags = !{!0, !1, !2, !3} !llvm.module.flags = !{!0, !1, !2, !3}
!llvm.dbg.cu = !{!4} !llvm.dbg.cu = !{!4}
!0 = !{i32 2, !"Dwarf Version", i32 4} !0 = !{i32 2, !"Dwarf Version", i32 4}
!1 = !{i32 2, !"Debug Info Version", i32 3} !1 = !{i32 2, !"Debug Info Version", i32 3}
!2 = !{i32 2, !"frame-pointer", i32 2} !2 = !{i32 2, !"frame-pointer", i32 2}

View File

@@ -19,7 +19,7 @@ fn void main() {
define void @test.foo() #0 !dbg !6 { define void @test.foo() #0 !dbg !6 {
entry: entry:
%values = alloca [1 x i32], align 4 %values = alloca [1 x i32], align 4
call void @llvm.dbg.declare(metadata ptr %values, metadata !10, metadata !DIExpression()), !dbg !15 !15
store i32 0, ptr %values, align 4, !dbg !15 store i32 0, ptr %values, align 4, !dbg !15
store i32 0, ptr %values, align 4, !dbg !16 store i32 0, ptr %values, align 4, !dbg !16
ret void, !dbg !16 ret void, !dbg !16

View File

@@ -139,8 +139,8 @@ entry:
%a = alloca i32, align 4 %a = alloca i32, align 4
%a.f = alloca i64, align 8 %a.f = alloca i64, align 8
store i32 %0, ptr %x, align 4 store i32 %0, ptr %x, align 4
call void @llvm.dbg.declare(metadata ptr %x, metadata !20, metadata !DIExpression()), !dbg !21 !21
call void @llvm.dbg.declare(metadata ptr %a, metadata !22, metadata !DIExpression()), !dbg !23 !23
%1 = load i32, ptr %x, align 4, !dbg !24 %1 = load i32, ptr %x, align 4, !dbg !24
store i32 %1, ptr %a, align 4, !dbg !24 store i32 %1, ptr %a, align 4, !dbg !24
store i64 0, ptr %a.f, align 8, !dbg !24 store i64 0, ptr %a.f, align 8, !dbg !24
@@ -169,9 +169,9 @@ entry:
store ptr %0, ptr %args, align 8 store ptr %0, ptr %args, align 8
%ptradd = getelementptr inbounds i8, ptr %args, i64 8 %ptradd = getelementptr inbounds i8, ptr %args, i64 8
store i64 %1, ptr %ptradd, align 8 store i64 %1, ptr %ptradd, align 8
call void @llvm.dbg.declare(metadata ptr %args, metadata !46, metadata !DIExpression()), !dbg !47 !47
call void @llvm.dbg.declare(metadata ptr %asdf, metadata !48, metadata !DIExpression()), !dbg !53 !53
%2 = call { i32, ptr } @attach.to_scope() #4, !dbg !54 %2 = call { i32, ptr } @attach.to_scope()
store { i32, ptr } %2, ptr %result, align 8 store { i32, ptr } %2, ptr %result, align 8
%lo = load i32, ptr %result, align 8, !dbg !55 %lo = load i32, ptr %result, align 8, !dbg !55
%ptradd1 = getelementptr inbounds i8, ptr %result, i64 8, !dbg !55 %ptradd1 = getelementptr inbounds i8, ptr %result, i64 8, !dbg !55
@@ -195,14 +195,14 @@ entry:
store i32 %0, ptr %attach, align 8 store i32 %0, ptr %attach, align 8
%ptradd = getelementptr inbounds i8, ptr %attach, i64 8 %ptradd = getelementptr inbounds i8, ptr %attach, i64 8
store ptr %1, ptr %ptradd, align 8 store ptr %1, ptr %ptradd, align 8
call void @llvm.dbg.declare(metadata ptr %attach, metadata !66, metadata !DIExpression()), !dbg !67 !67
store i64 %2, ptr %flags, align 8 store i64 %2, ptr %flags, align 8
call void @llvm.dbg.declare(metadata ptr %flags, metadata !68, metadata !DIExpression()), !dbg !69 !69
store ptr %3, ptr %name, align 8 store ptr %3, ptr %name, align 8
%ptradd1 = getelementptr inbounds i8, ptr %name, i64 8 %ptradd1 = getelementptr inbounds i8, ptr %name, i64 8
store i64 %4, ptr %ptradd1, align 8 store i64 %4, ptr %ptradd1, align 8
call void @llvm.dbg.declare(metadata ptr %name, metadata !70, metadata !DIExpression()), !dbg !71 !71
%5 = call ptr @std.core.mem.calloc(i64 8) #4, !dbg !72 %5 = call ptr @std.core.mem.calloc(i64 8)
ret ptr %5, !dbg !72 ret ptr %5, !dbg !72
} }
@@ -223,14 +223,14 @@ entry:
%error_var5 = alloca i64, align 8 %error_var5 = alloca i64, align 8
%error_var11 = alloca i64, align 8 %error_var11 = alloca i64, align 8
store <4 x float> %0, ptr %color, align 16 store <4 x float> %0, ptr %color, align 16
call void @llvm.dbg.declare(metadata ptr %color, metadata !84, metadata !DIExpression()), !dbg !85 !85
%1 = load <4 x float>, ptr %color, align 16 %1 = load <4 x float>, ptr %color, align 16
store <4 x float> %1, ptr %x, align 16 store <4 x float> %1, ptr %x, align 16
%2 = call ptr @std.io.stdout(), !dbg !86 %2 = call ptr @std.io.stdout(), !dbg !86
store ptr %2, ptr %out, align 8 store ptr %2, ptr %out, align 8
%3 = load <4 x float>, ptr %x, align 16 %3 = load <4 x float>, ptr %x, align 16
store <4 x float> %3, ptr %x1, align 16 store <4 x float> %3, ptr %x1, align 16
call void @llvm.dbg.declare(metadata ptr %len, metadata !90, metadata !DIExpression()), !dbg !92 !92
%4 = load ptr, ptr %out, align 8 %4 = load ptr, ptr %out, align 8
store ptr %4, ptr %out2, align 8 store ptr %4, ptr %out2, align 8
%5 = load <4 x float>, ptr %x1, align 16 %5 = load <4 x float>, ptr %x1, align 16
@@ -316,23 +316,23 @@ entry:
%scratch1 = alloca ptr, align 8 %scratch1 = alloca ptr, align 8
%asdf = alloca ptr, align 8 %asdf = alloca ptr, align 8
store %"Arena*[]" zeroinitializer, ptr %conflicts, align 8 store %"Arena*[]" zeroinitializer, ptr %conflicts, align 8
call void @llvm.dbg.declare(metadata ptr %scratch, metadata !107, metadata !DIExpression()), !dbg !117 !117
%lo = load ptr, ptr %conflicts, align 8, !dbg !119 %lo = load ptr, ptr %conflicts, align 8, !dbg !119
%ptradd = getelementptr inbounds i8, ptr %conflicts, i64 8, !dbg !119 %ptradd = getelementptr inbounds i8, ptr %conflicts, i64 8, !dbg !119
%hi = load i64, ptr %ptradd, align 8, !dbg !119 %hi = load i64, ptr %ptradd, align 8, !dbg !119
%0 = call { ptr, i64 } @arena_scratch_begin(ptr %lo, i64 %hi), !dbg !120 %0 = call { ptr, i64 } @arena_scratch_begin(ptr %lo, i64 %hi), !dbg !120
store { ptr, i64 } %0, ptr %result, align 8 store { ptr, i64 } %0, ptr %result, align 8
call void @llvm.memcpy.p0.p0.i32(ptr align 8 %scratch, ptr align 8 %result, i32 16, i1 false) call void @llvm.memcpy.p0.p0.i32(ptr align 8 %scratch, ptr align 8 %result, i32 16, i1 false)
call void @llvm.dbg.declare(metadata ptr %scratch1, metadata !121, metadata !DIExpression()), !dbg !122 !122
%1 = load ptr, ptr %scratch, align 8, !dbg !123 %1 = load ptr, ptr %scratch, align 8, !dbg !123
store ptr %1, ptr %scratch1, align 8, !dbg !123 store ptr %1, ptr %scratch1, align 8, !dbg !123
call void @llvm.dbg.declare(metadata ptr %asdf, metadata !125, metadata !DIExpression()), !dbg !127 !127
store ptr null, ptr %asdf, align 8, !dbg !127 store ptr null, ptr %asdf, align 8, !dbg !127
%2 = load ptr, ptr %asdf, align 8, !dbg !128 %2 = load ptr, ptr %asdf, align 8, !dbg !128
%lo2 = load ptr, ptr %scratch, align 8, !dbg !129 %lo2 = load ptr, ptr %scratch, align 8, !dbg !129
%ptradd3 = getelementptr inbounds i8, ptr %scratch, i64 8, !dbg !129 %ptradd3 = getelementptr inbounds i8, ptr %scratch, i64 8, !dbg !129
%hi4 = load i64, ptr %ptradd3, align 8, !dbg !129 %hi4 = load i64, ptr %ptradd3, align 8, !dbg !129
call void @arena_scratch_end(ptr %lo2, i64 %hi4) #4, !dbg !131 call void @arena_scratch_end(ptr %lo2, i64 %hi4)
ret ptr %2, !dbg !131 ret ptr %2, !dbg !131
} }
@@ -369,19 +369,19 @@ entry:
%len18 = alloca i64, align 8 %len18 = alloca i64, align 8
store ptr null, ptr %.cachedtype, align 8 store ptr null, ptr %.cachedtype, align 8
store i32 %0, ptr %.anon, align 4 store i32 %0, ptr %.anon, align 4
call void @llvm.dbg.declare(metadata ptr %.anon, metadata !136, metadata !DIExpression()), !dbg !137 !137
store ptr %1, ptr %.anon1, align 8 store ptr %1, ptr %.anon1, align 8
call void @llvm.dbg.declare(metadata ptr %.anon1, metadata !138, metadata !DIExpression()), !dbg !137 !137
%2 = load i32, ptr %.anon, align 4 %2 = load i32, ptr %.anon, align 4
store i32 %2, ptr %argc, align 4 store i32 %2, ptr %argc, align 4
%3 = load ptr, ptr %.anon1, align 8 %3 = load ptr, ptr %.anon1, align 8
store ptr %3, ptr %argv, align 8 store ptr %3, ptr %argv, align 8
call void @llvm.dbg.declare(metadata ptr %list, metadata !139, metadata !DIExpression()), !dbg !142 !142
%4 = load i32, ptr %argc, align 4 %4 = load i32, ptr %argc, align 4
store i32 %4, ptr %argc2, align 4 store i32 %4, ptr %argc2, align 4
%5 = load ptr, ptr %argv, align 8 %5 = load ptr, ptr %argv, align 8
store ptr %5, ptr %argv3, align 8 store ptr %5, ptr %argv3, align 8
call void @llvm.dbg.declare(metadata ptr %list5, metadata !143, metadata !DIExpression()), !dbg !145 !145
%6 = load i32, ptr %argc2, align 4, !dbg !147 %6 = load i32, ptr %argc2, align 4, !dbg !147
%sext = sext i32 %6 to i64, !dbg !147 %sext = sext i32 %6 to i64, !dbg !147
store i64 %sext, ptr %elements, align 8 store i64 %sext, ptr %elements, align 8
@@ -473,7 +473,7 @@ panic_block: ; preds = %assign_optional
noerr_block: ; preds = %expr_block.exit noerr_block: ; preds = %expr_block.exit
store %"char[][]" %28, ptr %list5, align 8, !dbg !151 store %"char[][]" %28, ptr %list5, align 8, !dbg !151
call void @llvm.dbg.declare(metadata ptr %i, metadata !165, metadata !DIExpression()), !dbg !167 !167
store i32 0, ptr %i, align 4, !dbg !168 store i32 0, ptr %i, align 4, !dbg !168
br label %loop.cond, !dbg !168 br label %loop.cond, !dbg !168
@@ -484,14 +484,14 @@ loop.cond: ; preds = %loop.exit, %noerr_b
br i1 %lt, label %loop.body, label %loop.exit26, !dbg !169 br i1 %lt, label %loop.body, label %loop.exit26, !dbg !169
loop.body: ; preds = %loop.cond loop.body: ; preds = %loop.cond
call void @llvm.dbg.declare(metadata ptr %arg, metadata !171, metadata !DIExpression()), !dbg !173 !173
%34 = load ptr, ptr %argv3, align 8, !dbg !174 %34 = load ptr, ptr %argv3, align 8, !dbg !174
%35 = load i32, ptr %i, align 4, !dbg !175 %35 = load i32, ptr %i, align 4, !dbg !175
%sext14 = sext i32 %35 to i64, !dbg !175 %sext14 = sext i32 %35 to i64, !dbg !175
%ptroffset = getelementptr inbounds [8 x i8], ptr %34, i64 %sext14, !dbg !175 %ptroffset = getelementptr inbounds [8 x i8], ptr %34, i64 %sext14, !dbg !175
%36 = load ptr, ptr %ptroffset, align 8, !dbg !175 %36 = load ptr, ptr %ptroffset, align 8, !dbg !175
store ptr %36, ptr %arg, align 8, !dbg !175 store ptr %36, ptr %arg, align 8, !dbg !175
call void @llvm.dbg.declare(metadata ptr %len, metadata !176, metadata !DIExpression()), !dbg !177 !177
store i64 0, ptr %len, align 8, !dbg !178 store i64 0, ptr %len, align 8, !dbg !178
%37 = load ptr, ptr %list5, align 8, !dbg !179 %37 = load ptr, ptr %list5, align 8, !dbg !179
%38 = load i32, ptr %i, align 4, !dbg !180 %38 = load i32, ptr %i, align 4, !dbg !180
@@ -500,7 +500,7 @@ loop.body: ; preds = %loop.cond
%39 = load ptr, ptr %arg, align 8, !dbg !181 %39 = load ptr, ptr %arg, align 8, !dbg !181
%40 = load ptr, ptr %arg, align 8 %40 = load ptr, ptr %arg, align 8
store ptr %40, ptr %ptr, align 8 store ptr %40, ptr %ptr, align 8
call void @llvm.dbg.declare(metadata ptr %len18, metadata !182, metadata !DIExpression()), !dbg !184 !184
store i64 0, ptr %len18, align 8, !dbg !186 store i64 0, ptr %len18, align 8, !dbg !186
br label %loop.cond19, !dbg !187 br label %loop.cond19, !dbg !187
@@ -538,23 +538,23 @@ loop.exit26: ; preds = %loop.cond
%49 = call i32 @test.main(ptr %lo, i64 %hi), !dbg !196 %49 = call i32 @test.main(ptr %lo, i64 %hi), !dbg !196
store i32 %49, ptr %blockret, align 4, !dbg !196 store i32 %49, ptr %blockret, align 4, !dbg !196
%50 = load ptr, ptr %list, align 8, !dbg !197 %50 = load ptr, ptr %list, align 8, !dbg !197
call void @std.core.mem.free(ptr %50) #4, !dbg !199 call void @std.core.mem.free(ptr %50)
br label %expr_block.exit28, !dbg !199 br label %expr_block.exit28, !dbg !199
expr_block.exit28: ; preds = %loop.exit26 expr_block.exit28: ; preds = %loop.exit26
%51 = load i32, ptr %blockret, align 4, !dbg !199 %51 = load i32, ptr %blockret, align 4, !dbg !199
ret i32 %51, !dbg !199 ret i32 %51, !dbg !199
} }
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
declare { i32, ptr } @attach.to_scope() #0 declare { i32, ptr } @attach.to_scope() #0
declare ptr @std.core.mem.calloc(i64) #0 declare ptr @std.core.mem.calloc(i64) #0
declare ptr @std.io.stdout() #0 declare ptr @std.io.stdout() #0
declare i64 @std.io.fprintf(ptr, i64, ptr, ptr, i64, ptr byval(%"any[]") align 8) #0 declare i64 @std.io.fprintf(ptr, i64, ptr, ptr, i64, ptr byval(%"any[]") align 8) #0
declare i1 @llvm.expect.i1(i1, i1) #2 declare i1 @llvm.expect.i1(i1, i1)
declare i64 @std.io.File.write_byte(ptr, i8 zeroext) #0 declare i64 @std.io.File.write_byte(ptr, i8 zeroext) #0
declare i64 @std.io.File.flush(ptr) #0 declare i64 @std.io.File.flush(ptr) #0
declare { ptr, i64 } @arena_scratch_begin(ptr, i64) #0 declare { ptr, i64 } @arena_scratch_begin(ptr, i64) #0
declare void @llvm.memcpy.p0.p0.i32(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i32, i1 immarg) #3 declare void @llvm.memcpy.p0.p0.i32(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i32, i1 immarg)
declare void @arena_scratch_end(ptr, i64) #0 declare void @arena_scratch_end(ptr, i64) #0
define weak_odr ptr @.dyn_search(ptr %0, ptr %1) unnamed_addr { define weak_odr ptr @.dyn_search(ptr %0, ptr %1) unnamed_addr {
entry: entry:

View File

@@ -22,26 +22,28 @@ entry:
store ptr %0, ptr %args, align 8 store ptr %0, ptr %args, align 8
%ptradd = getelementptr inbounds i8, ptr %args, i64 8 %ptradd = getelementptr inbounds i8, ptr %args, i64 8
store i64 %1, ptr %ptradd, align 8 store i64 %1, ptr %ptradd, align 8
call void @llvm.dbg.declare(metadata ptr %args, metadata !23, metadata !DIExpression()), !dbg !24 !24
call void @llvm.dbg.declare(metadata ptr %.anon, metadata !25, metadata !DIExpression()), !dbg !27 !27
%ptradd1 = getelementptr inbounds i8, ptr %args, i64 8, !dbg !27 %ptradd1 = getelementptr inbounds i8, ptr %args, i64 8, !dbg !27
%2 = load i64, ptr %ptradd1, align 8, !dbg !27 %2 = load i64, ptr %ptradd1, align 8, !dbg !27
store i64 %2, ptr %.anon, align 8, !dbg !27 store i64 %2, ptr %.anon, align 8, !dbg !27
call void @llvm.dbg.declare(metadata ptr %.anon2, metadata !25, metadata !DIExpression()), !dbg !27 !27
store i64 0, ptr %.anon2, align 8, !dbg !27 store i64 0, ptr %.anon2, align 8, !dbg !27
br label %loop.cond, !dbg !27 br label %loop.cond, !dbg !27
loop.cond: ; preds = %loop.body, %entry loop.cond: ; preds = %loop.body, %entry
%3 = load i64, ptr %.anon2, align 8, !dbg !27 %3 = load i64, ptr %.anon2, align 8, !dbg !27
%4 = load i64, ptr %.anon, align 8, !dbg !27 %4 = load i64, ptr %.anon, align 8, !dbg !27
%lt = icmp ult i64 %3, %4, !dbg !27 %lt = icmp ult i64 %3, %4, !dbg !27
br i1 %lt, label %loop.body, label %loop.exit, !dbg !27 br i1 %lt, label %loop.body, label %loop.exit, !dbg !27
loop.body: ; preds = %loop.cond loop.body: ; preds = %loop.cond
call void @llvm.dbg.declare(metadata ptr %a, metadata !28, metadata !DIExpression()), !dbg !30 !30
%5 = load ptr, ptr %args, align 8, !dbg !31 %5 = load ptr, ptr %args, align 8, !dbg !31
%6 = load i64, ptr %.anon2, align 8, !dbg !31 %6 = load i64, ptr %.anon2, align 8, !dbg !31
%ptroffset = getelementptr inbounds [16 x i8], ptr %5, i64 %6, !dbg !31 %ptroffset = getelementptr inbounds [16 x i8], ptr %5, i64 %6, !dbg !31
call void @llvm.memcpy.p0.p0.i32(ptr align 8 %a, ptr align 8 %ptroffset, i32 16, i1 false), !dbg !31 call void @llvm.memcpy.p0.p0.i32(ptr align 8 %a, ptr align 8 %ptroffset, i32 16, i1 false), !dbg !31
call void @llvm.dbg.declare(metadata ptr %x, metadata !32, metadata !DIExpression()), !dbg !35 !35
%ptradd3 = getelementptr inbounds i8, ptr %a, i64 8, !dbg !36 %ptradd3 = getelementptr inbounds i8, ptr %a, i64 8, !dbg !36
%7 = load i64, ptr %ptradd3, align 8, !dbg !36 %7 = load i64, ptr %ptradd3, align 8, !dbg !36
%trunc = trunc i64 %7 to i32, !dbg !36 %trunc = trunc i64 %7 to i32, !dbg !36