xref: /aosp_15_r20/external/llvm/test/CodeGen/BPF/byval.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: not llc -march=bpf < %s 2> %t1
2*9880d681SAndroid Build Coastguard Worker; RUN: FileCheck %s < %t1
3*9880d681SAndroid Build Coastguard Worker; CHECK: by value not supported
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Worker%struct.S = type { [10 x i32] }
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind uwtable
8*9880d681SAndroid Build Coastguard Workerdefine void @bar(i32 %a) #0 {
9*9880d681SAndroid Build Coastguard Workerentry:
10*9880d681SAndroid Build Coastguard Worker  %.compoundliteral = alloca %struct.S, align 8
11*9880d681SAndroid Build Coastguard Worker  %arrayinit.begin = getelementptr inbounds %struct.S, %struct.S* %.compoundliteral, i64 0, i32 0, i64 0
12*9880d681SAndroid Build Coastguard Worker  store i32 1, i32* %arrayinit.begin, align 8
13*9880d681SAndroid Build Coastguard Worker  %arrayinit.element = getelementptr inbounds %struct.S, %struct.S* %.compoundliteral, i64 0, i32 0, i64 1
14*9880d681SAndroid Build Coastguard Worker  store i32 2, i32* %arrayinit.element, align 4
15*9880d681SAndroid Build Coastguard Worker  %arrayinit.element2 = getelementptr inbounds %struct.S, %struct.S* %.compoundliteral, i64 0, i32 0, i64 2
16*9880d681SAndroid Build Coastguard Worker  store i32 3, i32* %arrayinit.element2, align 8
17*9880d681SAndroid Build Coastguard Worker  %arrayinit.start = getelementptr inbounds %struct.S, %struct.S* %.compoundliteral, i64 0, i32 0, i64 3
18*9880d681SAndroid Build Coastguard Worker  %scevgep4 = bitcast i32* %arrayinit.start to i8*
19*9880d681SAndroid Build Coastguard Worker  call void @llvm.memset.p0i8.i64(i8* %scevgep4, i8 0, i64 28, i32 4, i1 false)
20*9880d681SAndroid Build Coastguard Worker  call void @foo(i32 %a, %struct.S* byval align 8 %.compoundliteral) #3
21*9880d681SAndroid Build Coastguard Worker  ret void
22*9880d681SAndroid Build Coastguard Worker}
23*9880d681SAndroid Build Coastguard Worker
24*9880d681SAndroid Build Coastguard Workerdeclare void @foo(i32, %struct.S* byval align 8) #1
25*9880d681SAndroid Build Coastguard Worker
26*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind
27*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) #3
28