brintos

brintos / llvm-project-archived public Read only

0
0
Text · 741 B · e673506 Raw
36 lines · plain
1; RUN: llc -O2 --mtriple=bpfel %s -o - | FileCheck %s2 3; Generated from the following C code:4;5;   extern int foo(void) __attribute__((bpf_fastcall));6;7;   int bar(int a) {8;     foo();9;     return a;10;   }11;12; Using the following command:13;14;   clang --target=bpf -emit-llvm -O2 -S -o - t.c15;16; (unnecessary attrs removed maually)17 18; Check that function marked with bpf_fastcall does not clobber W1-W5.19 20define dso_local i32 @bar(i32 %a) {21entry:22  %call = tail call i32 @foo() #023  ret i32 %a24}25 26; CHECK:      # %bb.0:27; CHECK-NEXT:   *(u64 *)(r10 - 8) = r128; CHECK-NEXT:   call foo29; CHECK-NEXT:   r1 = *(u64 *)(r10 - 8)30; CHECK-NEXT:   w0 = w131; CHECK-NEXT:   exit32 33declare dso_local i32 @foo() #034 35attributes #0 = { "bpf_fastcall" }36