mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
29 lines
743 B
Plaintext
29 lines
743 B
Plaintext
// #target: macos-aarch64
|
|
module test;
|
|
|
|
struct Large {
|
|
void*[8] pointers;
|
|
}
|
|
|
|
extern fn void pass_large(Large);
|
|
|
|
fn void example() {
|
|
Large l = {};
|
|
pass_large(l);
|
|
pass_large(l);
|
|
}
|
|
|
|
/* #expect: test.ll
|
|
|
|
define void @test.example() #0 {
|
|
entry:
|
|
%l = alloca %Large, align 8
|
|
%indirectarg = alloca %Large, align 8
|
|
%indirectarg1 = alloca %Large, align 8
|
|
call void @llvm.memset.p0.i64(ptr align 8 %l, i8 0, i64 64, i1 false)
|
|
call void @llvm.memcpy.p0.p0.i32(ptr align 8 %indirectarg, ptr align 8 %l, i32 64, i1 false)
|
|
call void @pass_large(ptr align 8 %indirectarg)
|
|
call void @llvm.memcpy.p0.p0.i32(ptr align 8 %indirectarg1, ptr align 8 %l, i32 64, i1 false)
|
|
call void @pass_large(ptr align 8 %indirectarg1)
|
|
ret void
|
|
} |