brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 10a722f Raw
52 lines · plain
1; RUN: llc < %s -mtriple=bpfel | FileCheck -check-prefixes=CHECK %s2 3; Source code:4; struct test_t {5;       int a;6;       char b;7;       int c;8;       char d;9; };10; void foo(ptr);11; void test() {12;       struct test_t t = {.a = 5};13;       foo(&t);14; }15 16%struct.test_t = type { i32, i8, i32, i8 }17 18@test.t = private unnamed_addr constant %struct.test_t { i32 5, i8 0, i32 0, i8 0 }, align 419 20; Function Attrs: nounwind21define dso_local void @test() local_unnamed_addr #0 {22; CHECK-LABEL: test:23  %1 = alloca %struct.test_t, align 424  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1) #325  call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %1, ptr align 4 @test.t, i64 16, i1 false)26; CHECK: r1 = 027; CHECK: *(u64 *)(r10 - 8) = r128; CHECK: r1 = 529; CHECK: *(u64 *)(r10 - 16) = r130; CHECK: r1 = r1031; CHECK: r1 += -1632  call void @foo(ptr nonnull %1) #333; CHECK: call foo34  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1) #335  ret void36}37 38; Function Attrs: argmemonly nounwind39declare void @llvm.lifetime.start.p0(i64, ptr nocapture) #140 41; Function Attrs: argmemonly nounwind42declare void @llvm.memcpy.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1) #143 44declare dso_local void @foo(ptr) local_unnamed_addr45 46; Function Attrs: argmemonly nounwind47declare void @llvm.lifetime.end.p0(i64, ptr nocapture) #148 49attributes #0 = { nounwind }50attributes #1 = { argmemonly nounwind }51attributes #3 = { nounwind }52