llvm-project/llvm/test/CodeGen/BPF/bpf-fastcall-5.ll
Fangrui Song c5037db4ac [BPF,test] Change llc -march= to -mtriple=
Similar to 806761a7629df268c8aed49657aeccffa6bca449

-mtriple= specifies the full target triple while -march= merely sets the
architecture part of the default target triple (e.g. Windows, macOS),
leaving a target triple which may not make sense.

Therefore, -march= is error-prone and not recommended for tests without
a target triple. The issue has been benign as we recognize
bpf*-apple-darwin as ELF instead of rejecting it outrightly.
2024-12-15 11:04:24 -08:00

36 lines
801 B
LLVM

; RUN: llc -O2 --mtriple=bpfel %s -o - | FileCheck %s
; Generated from the following C code:
;
; extern int foo(void) __attribute__((bpf_fastcall));
;
; int bar(int a, int b, int c, int d, int e) {
; foo();
; return e;
; }
;
; Using the following command:
;
; clang --target=bpf -emit-llvm -O2 -S -o - t.c
;
; (unnecessary attrs removed maually)
; Check that function marked with bpf_fastcall does not clobber W1-W5.
define dso_local i32 @bar(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e) {
entry:
%call = tail call i32 @foo() #0
ret i32 %e
}
; CHECK: # %bb.0:
; CHECK-NEXT: *(u64 *)(r10 - 8) = r5
; CHECK-NEXT: call foo
; CHECK-NEXT: r5 = *(u64 *)(r10 - 8)
; CHECK-NEXT: w0 = w5
; CHECK-NEXT: exit
declare dso_local i32 @foo() #0
attributes #0 = { "bpf_fastcall" }